-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapi_testing.py
More file actions
135 lines (105 loc) · 4.19 KB
/
api_testing.py
File metadata and controls
135 lines (105 loc) · 4.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
import os
import load_dotenv
from uwazi_api.Reference import Reference, SelectionRectangle
from uwazi_api.UwaziAdapter import UwaziAdapter
import pandas as pd
load_dotenv.load_dotenv()
UWAZI_USER = os.getenv("UWAZI_USER", "admin")
UWAZI_PASSWORD = os.getenv("UWAZI_PASSWORD", "admin")
UWAZI_URL = os.getenv("UWAZI_URL", "http://localhost:3000")
UWAZI_TEMPLATE_ID = os.getenv("UWAZI_TEMPLATE_ID", "")
def upload_entity_to_localhost():
uwazi_adapter = UwaziAdapter(user=UWAZI_USER, password=UWAZI_PASSWORD, url=UWAZI_URL)
entity = {
"title": "title_of_the_entity",
"template": "template_id_like_4e57cdd6f54e0a1304c0d5dd",
"metadata": {"property_name": [{"value": "property_value"}]},
}
shared_id = uwazi_adapter.entities.upload(entity=entity, language="en")
print(uwazi_adapter.entities.get_one(shared_id=shared_id, language="en"))
uwazi_adapter.entities.delete(share_id=shared_id)
print(uwazi_adapter.templates.get())
def create_relationship():
uwazi_adapter = UwaziAdapter(user=UWAZI_USER, password=UWAZI_PASSWORD, url=UWAZI_URL)
reference = Reference(
text="29 DE JULIO DE 1991",
selection_rectangles=[
SelectionRectangle(
top=172.94667742693863,
left=335.66813738787613,
width=155.3464233398437,
height=17.629629629629626,
page="1",
),
],
)
uwazi_adapter.relationships.create(
file_entity_shared_id="0mg4pkm4y78n",
file_id="68f098050058648f7a83c35f",
reference=reference,
to_entity_shared_id="cos3av69d98",
relationship_type_id="68f097b60058648f7a83c307",
language="en",
)
def search_entities():
uwazi_adapter = UwaziAdapter(user=UWAZI_USER, password=UWAZI_PASSWORD, url=UWAZI_URL)
entities = uwazi_adapter.entities.get_from_text(
search_term="Malawi", template_id="68f0c2400058648f7a83d39f", start_from=0, batch_size=300, language="en"
)
print(entities)
def update_entity():
data = {
"_id": "69120830deb0c2aa4cfc8f3f",
"__v": 1,
"language": "en",
"metadata": {"foo_date": [{"value": 1794355200}]},
"sharedId": "6jcdjm1k453",
"template": UWAZI_TEMPLATE_ID,
"title": "1",
}
uwazi_adapter = UwaziAdapter(user=UWAZI_USER, password=UWAZI_PASSWORD, url=UWAZI_URL)
uwazi_adapter.entities.upload(entity=data, language="en")
def loop_entities():
uwazi_adapter = UwaziAdapter(user=UWAZI_USER, password=UWAZI_PASSWORD, url=UWAZI_URL)
start = 0
batch_size = 100
dataframes = []
while True:
batch = uwazi_adapter.entities.get_pandas_dataframe(
start_from=start,
batch_size=start + batch_size,
template_id=UWAZI_TEMPLATE_ID,
language="en",
published=False,
)
if batch is None or (isinstance(batch, pd.DataFrame) and batch.empty):
break
dataframes.append(batch)
start += batch_size
if dataframes:
combined_df = pd.concat(dataframes, ignore_index=True)
return combined_df
else:
return pd.DataFrame()
def get_dictionaries():
uwazi_adapter = UwaziAdapter(user=UWAZI_USER, password=UWAZI_USER, url=UWAZI_URL)
dictionaries = uwazi_adapter.thesauris.get(language="en")
print(dictionaries)
return dictionaries
def upload_dataframe(df, template_name):
uwazi_adapter = UwaziAdapter(user=UWAZI_USER, password=UWAZI_PASSWORD, url=UWAZI_URL)
return uwazi_adapter.csv.upload_dataframe(df=df, template_name=template_name)
def upload_pdf():
uwazi_adapter = UwaziAdapter(user=UWAZI_USER, password=UWAZI_PASSWORD, url=UWAZI_URL)
with open("data/test_document.pdf", "rb") as f:
pdf_bytes = f.read()
uwazi_adapter.files.upload_file_from_bytes(
file_bytes=pdf_bytes, title="test_document.pdf", share_id="u9ce1e3sfph", language="en"
)
if __name__ == "__main__":
upload_pdf()
# df = loop_entities()
# print(df.head().to_string())
# df.loc[0, "title"] = "Updated Title via CSV Upload 2"
# one_row_df = df.head(1).reset_index(drop=True)
# print(upload_dataframe(one_row_df, template_name="API TEST"))