arkindex-base-worker 0.3.7rc4__py3-none-any.whl → 0.5.0a1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {arkindex_base_worker-0.3.7rc4.dist-info → arkindex_base_worker-0.5.0a1.dist-info}/METADATA +18 -19
- arkindex_base_worker-0.5.0a1.dist-info/RECORD +61 -0
- {arkindex_base_worker-0.3.7rc4.dist-info → arkindex_base_worker-0.5.0a1.dist-info}/WHEEL +1 -1
- {arkindex_base_worker-0.3.7rc4.dist-info → arkindex_base_worker-0.5.0a1.dist-info}/top_level.txt +2 -0
- arkindex_worker/cache.py +1 -1
- arkindex_worker/image.py +167 -2
- arkindex_worker/models.py +18 -0
- arkindex_worker/utils.py +98 -4
- arkindex_worker/worker/__init__.py +117 -218
- arkindex_worker/worker/base.py +39 -46
- arkindex_worker/worker/classification.py +45 -29
- arkindex_worker/worker/corpus.py +86 -0
- arkindex_worker/worker/dataset.py +89 -26
- arkindex_worker/worker/element.py +352 -91
- arkindex_worker/worker/entity.py +13 -11
- arkindex_worker/worker/image.py +21 -0
- arkindex_worker/worker/metadata.py +26 -16
- arkindex_worker/worker/process.py +92 -0
- arkindex_worker/worker/task.py +5 -4
- arkindex_worker/worker/training.py +25 -10
- arkindex_worker/worker/transcription.py +89 -68
- arkindex_worker/worker/version.py +3 -1
- hooks/pre_gen_project.py +3 -0
- tests/__init__.py +8 -0
- tests/conftest.py +47 -58
- tests/test_base_worker.py +212 -12
- tests/test_dataset_worker.py +294 -437
- tests/test_elements_worker/{test_classifications.py → test_classification.py} +313 -200
- tests/test_elements_worker/test_cli.py +3 -11
- tests/test_elements_worker/test_corpus.py +168 -0
- tests/test_elements_worker/test_dataset.py +106 -157
- tests/test_elements_worker/test_element.py +427 -0
- tests/test_elements_worker/test_element_create_multiple.py +715 -0
- tests/test_elements_worker/test_element_create_single.py +528 -0
- tests/test_elements_worker/test_element_list_children.py +969 -0
- tests/test_elements_worker/test_element_list_parents.py +530 -0
- tests/test_elements_worker/{test_entities.py → test_entity_create.py} +37 -195
- tests/test_elements_worker/test_entity_list_and_check.py +160 -0
- tests/test_elements_worker/test_image.py +66 -0
- tests/test_elements_worker/test_metadata.py +252 -161
- tests/test_elements_worker/test_process.py +89 -0
- tests/test_elements_worker/test_task.py +8 -18
- tests/test_elements_worker/test_training.py +17 -8
- tests/test_elements_worker/test_transcription_create.py +873 -0
- tests/test_elements_worker/test_transcription_create_with_elements.py +951 -0
- tests/test_elements_worker/test_transcription_list.py +450 -0
- tests/test_elements_worker/test_version.py +60 -0
- tests/test_elements_worker/test_worker.py +578 -293
- tests/test_image.py +542 -209
- tests/test_merge.py +1 -2
- tests/test_utils.py +89 -4
- worker-demo/tests/__init__.py +0 -0
- worker-demo/tests/conftest.py +32 -0
- worker-demo/tests/test_worker.py +12 -0
- worker-demo/worker_demo/__init__.py +6 -0
- worker-demo/worker_demo/worker.py +19 -0
- arkindex_base_worker-0.3.7rc4.dist-info/RECORD +0 -41
- tests/test_elements_worker/test_elements.py +0 -2713
- tests/test_elements_worker/test_transcriptions.py +0 -2119
- {arkindex_base_worker-0.3.7rc4.dist-info → arkindex_base_worker-0.5.0a1.dist-info}/LICENSE +0 -0
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import uuid
|
|
2
2
|
|
|
3
3
|
import pytest
|
|
4
|
-
from apistar.exceptions import ErrorResponse
|
|
5
4
|
|
|
5
|
+
from arkindex.exceptions import ErrorResponse
|
|
6
6
|
from arkindex_worker.models import Artifact
|
|
7
|
-
from tests
|
|
7
|
+
from tests import FIXTURES_DIR
|
|
8
8
|
from tests.test_elements_worker import BASE_API_CALLS
|
|
9
9
|
|
|
10
10
|
TASK_ID = uuid.UUID("cafecafe-cafe-cafe-cafe-cafecafecafe")
|
|
@@ -33,22 +33,17 @@ def test_list_artifacts_api_error(responses, mock_dataset_worker):
|
|
|
33
33
|
responses.add(
|
|
34
34
|
responses.GET,
|
|
35
35
|
f"http://testserver/api/v1/task/{TASK_ID}/artifacts/",
|
|
36
|
-
status=
|
|
36
|
+
status=418,
|
|
37
37
|
)
|
|
38
38
|
|
|
39
39
|
with pytest.raises(ErrorResponse):
|
|
40
40
|
mock_dataset_worker.list_artifacts(task_id=TASK_ID)
|
|
41
41
|
|
|
42
|
-
assert len(responses.calls) == len(BASE_API_CALLS) +
|
|
42
|
+
assert len(responses.calls) == len(BASE_API_CALLS) + 1
|
|
43
43
|
assert [
|
|
44
44
|
(call.request.method, call.request.url) for call in responses.calls
|
|
45
45
|
] == BASE_API_CALLS + [
|
|
46
|
-
|
|
47
|
-
("GET", f"http://testserver/api/v1/task/{TASK_ID}/artifacts/"),
|
|
48
|
-
("GET", f"http://testserver/api/v1/task/{TASK_ID}/artifacts/"),
|
|
49
|
-
("GET", f"http://testserver/api/v1/task/{TASK_ID}/artifacts/"),
|
|
50
|
-
("GET", f"http://testserver/api/v1/task/{TASK_ID}/artifacts/"),
|
|
51
|
-
("GET", f"http://testserver/api/v1/task/{TASK_ID}/artifacts/"),
|
|
46
|
+
("GET", f"http://testserver/api/v1/task/{TASK_ID}/artifacts/")
|
|
52
47
|
]
|
|
53
48
|
|
|
54
49
|
|
|
@@ -153,7 +148,7 @@ def test_download_artifact_api_error(responses, mock_dataset_worker, default_art
|
|
|
153
148
|
responses.add(
|
|
154
149
|
responses.GET,
|
|
155
150
|
f"http://testserver/api/v1/task/{TASK_ID}/artifact/dataset_id.tar.zst",
|
|
156
|
-
status=
|
|
151
|
+
status=418,
|
|
157
152
|
)
|
|
158
153
|
|
|
159
154
|
with pytest.raises(ErrorResponse):
|
|
@@ -161,16 +156,11 @@ def test_download_artifact_api_error(responses, mock_dataset_worker, default_art
|
|
|
161
156
|
task_id=TASK_ID, artifact=default_artifact
|
|
162
157
|
)
|
|
163
158
|
|
|
164
|
-
assert len(responses.calls) == len(BASE_API_CALLS) +
|
|
159
|
+
assert len(responses.calls) == len(BASE_API_CALLS) + 1
|
|
165
160
|
assert [
|
|
166
161
|
(call.request.method, call.request.url) for call in responses.calls
|
|
167
162
|
] == BASE_API_CALLS + [
|
|
168
|
-
|
|
169
|
-
("GET", f"http://testserver/api/v1/task/{TASK_ID}/artifact/dataset_id.tar.zst"),
|
|
170
|
-
("GET", f"http://testserver/api/v1/task/{TASK_ID}/artifact/dataset_id.tar.zst"),
|
|
171
|
-
("GET", f"http://testserver/api/v1/task/{TASK_ID}/artifact/dataset_id.tar.zst"),
|
|
172
|
-
("GET", f"http://testserver/api/v1/task/{TASK_ID}/artifact/dataset_id.tar.zst"),
|
|
173
|
-
("GET", f"http://testserver/api/v1/task/{TASK_ID}/artifact/dataset_id.tar.zst"),
|
|
163
|
+
("GET", f"http://testserver/api/v1/task/{TASK_ID}/artifact/dataset_id.tar.zst")
|
|
174
164
|
]
|
|
175
165
|
|
|
176
166
|
|
|
@@ -8,7 +8,7 @@ from arkindex_worker.worker import BaseWorker
|
|
|
8
8
|
from arkindex_worker.worker.training import TrainingMixin, create_archive
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
@pytest.fixture
|
|
11
|
+
@pytest.fixture
|
|
12
12
|
def mock_training_worker(monkeypatch):
|
|
13
13
|
class TrainingWorker(BaseWorker, TrainingMixin):
|
|
14
14
|
"""
|
|
@@ -22,7 +22,7 @@ def mock_training_worker(monkeypatch):
|
|
|
22
22
|
return training_worker
|
|
23
23
|
|
|
24
24
|
|
|
25
|
-
@pytest.fixture
|
|
25
|
+
@pytest.fixture
|
|
26
26
|
def default_model_version():
|
|
27
27
|
return {
|
|
28
28
|
"id": "model_version_id",
|
|
@@ -181,7 +181,10 @@ def test_validate_model_version_not_created(mock_training_worker):
|
|
|
181
181
|
|
|
182
182
|
@pytest.mark.parametrize("deletion_failed", [True, False])
|
|
183
183
|
def test_validate_model_version_hash_conflict(
|
|
184
|
-
mock_training_worker,
|
|
184
|
+
mock_training_worker,
|
|
185
|
+
default_model_version,
|
|
186
|
+
caplog,
|
|
187
|
+
deletion_failed,
|
|
185
188
|
):
|
|
186
189
|
mock_training_worker.model_version = {"id": "another_id"}
|
|
187
190
|
args = {
|
|
@@ -190,11 +193,11 @@ def test_validate_model_version_hash_conflict(
|
|
|
190
193
|
"size": 30,
|
|
191
194
|
}
|
|
192
195
|
mock_training_worker.api_client.add_error_response(
|
|
193
|
-
"
|
|
196
|
+
"PartialUpdateModelVersion",
|
|
194
197
|
id="another_id",
|
|
195
198
|
status_code=409,
|
|
196
|
-
body=args,
|
|
197
|
-
content=
|
|
199
|
+
body={"state": "available", **args},
|
|
200
|
+
content={"id": ["model_version_id"]},
|
|
198
201
|
)
|
|
199
202
|
if deletion_failed:
|
|
200
203
|
mock_training_worker.api_client.add_error_response(
|
|
@@ -209,6 +212,11 @@ def test_validate_model_version_hash_conflict(
|
|
|
209
212
|
id="another_id",
|
|
210
213
|
response="No content",
|
|
211
214
|
)
|
|
215
|
+
mock_training_worker.api_client.add_response(
|
|
216
|
+
"RetrieveModelVersion",
|
|
217
|
+
id="model_version_id",
|
|
218
|
+
response=default_model_version,
|
|
219
|
+
)
|
|
212
220
|
|
|
213
221
|
mock_training_worker.validate_model_version(**args)
|
|
214
222
|
assert mock_training_worker.model_version == default_model_version
|
|
@@ -231,6 +239,7 @@ def test_validate_model_version_hash_conflict(
|
|
|
231
239
|
),
|
|
232
240
|
(logging.WARNING, "Removing the pending model version."),
|
|
233
241
|
*error_msg,
|
|
242
|
+
(logging.INFO, "Retrieving the existing model version."),
|
|
234
243
|
(logging.INFO, "Model version model_version_id is now available."),
|
|
235
244
|
]
|
|
236
245
|
|
|
@@ -243,9 +252,9 @@ def test_validate_model_version(mock_training_worker, default_model_version, cap
|
|
|
243
252
|
"size": 30,
|
|
244
253
|
}
|
|
245
254
|
mock_training_worker.api_client.add_response(
|
|
246
|
-
"
|
|
255
|
+
"PartialUpdateModelVersion",
|
|
247
256
|
id="model_version_id",
|
|
248
|
-
body=args,
|
|
257
|
+
body={"state": "available", **args},
|
|
249
258
|
response=default_model_version,
|
|
250
259
|
)
|
|
251
260
|
|