dsp-tools 17.0.0.post10__py3-none-any.whl → 17.0.0.post21__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.
Potentially problematic release.
This version of dsp-tools might be problematic. Click here for more details.
- dsp_tools/cli/call_action.py +68 -25
- dsp_tools/clients/metadata_client.py +24 -0
- dsp_tools/clients/metadata_client_live.py +42 -0
- dsp_tools/clients/ontology_client.py +21 -0
- dsp_tools/clients/ontology_client_live.py +139 -0
- dsp_tools/commands/create/__init__.py +0 -0
- dsp_tools/commands/create/communicate_problems.py +19 -0
- dsp_tools/commands/create/constants.py +7 -0
- dsp_tools/commands/create/create_on_server/__init__.py +0 -0
- dsp_tools/commands/create/create_on_server/cardinalities.py +121 -0
- dsp_tools/commands/create/create_on_server/mappers.py +12 -0
- dsp_tools/commands/create/models/__init__.py +0 -0
- dsp_tools/commands/create/models/input_problems.py +32 -0
- dsp_tools/commands/create/models/parsed_ontology.py +48 -0
- dsp_tools/commands/create/models/parsed_project.py +49 -0
- dsp_tools/commands/create/models/rdf_ontology.py +19 -0
- dsp_tools/commands/create/models/server_project_info.py +25 -0
- dsp_tools/commands/create/parsing/__init__.py +0 -0
- dsp_tools/commands/create/parsing/parse_ontology.py +108 -0
- dsp_tools/commands/create/parsing/parse_project.py +99 -0
- dsp_tools/commands/create/parsing/parsing_utils.py +43 -0
- dsp_tools/commands/create/serialisation/__init__.py +0 -0
- dsp_tools/commands/create/serialisation/ontology.py +41 -0
- dsp_tools/commands/project/create/project_create_all.py +35 -25
- dsp_tools/commands/project/create/project_create_ontologies.py +39 -89
- dsp_tools/commands/project/legacy_models/resourceclass.py +0 -33
- dsp_tools/error/exceptions.py +16 -0
- dsp_tools/utils/data_formats/iri_util.py +7 -0
- dsp_tools/utils/rdflib_utils.py +10 -0
- {dsp_tools-17.0.0.post10.dist-info → dsp_tools-17.0.0.post21.dist-info}/METADATA +1 -1
- {dsp_tools-17.0.0.post10.dist-info → dsp_tools-17.0.0.post21.dist-info}/RECORD +33 -10
- {dsp_tools-17.0.0.post10.dist-info → dsp_tools-17.0.0.post21.dist-info}/WHEEL +1 -1
- {dsp_tools-17.0.0.post10.dist-info → dsp_tools-17.0.0.post21.dist-info}/entry_points.txt +0 -0
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
from typing import Any
|
|
2
2
|
from typing import Optional
|
|
3
|
+
from typing import cast
|
|
3
4
|
|
|
4
5
|
import regex
|
|
5
6
|
from loguru import logger
|
|
6
7
|
|
|
8
|
+
from dsp_tools.clients.authentication_client import AuthenticationClient
|
|
7
9
|
from dsp_tools.clients.connection import Connection
|
|
10
|
+
from dsp_tools.clients.ontology_client_live import OntologyClientLive
|
|
11
|
+
from dsp_tools.commands.create.communicate_problems import print_problem_collection
|
|
12
|
+
from dsp_tools.commands.create.create_on_server.cardinalities import add_all_cardinalities
|
|
13
|
+
from dsp_tools.commands.create.models.parsed_ontology import ParsedOntology
|
|
14
|
+
from dsp_tools.commands.create.models.server_project_info import CreatedIriCollection
|
|
15
|
+
from dsp_tools.commands.create.models.server_project_info import ProjectIriLookup
|
|
8
16
|
from dsp_tools.commands.project.legacy_models.context import Context
|
|
9
|
-
from dsp_tools.commands.project.legacy_models.helpers import Cardinality
|
|
10
17
|
from dsp_tools.commands.project.legacy_models.ontology import Ontology
|
|
11
18
|
from dsp_tools.commands.project.legacy_models.project import Project
|
|
12
19
|
from dsp_tools.commands.project.legacy_models.propertyclass import PropertyClass
|
|
@@ -25,6 +32,9 @@ def create_ontologies(
|
|
|
25
32
|
ontology_definitions: list[dict[str, Any]],
|
|
26
33
|
project_remote: Project,
|
|
27
34
|
verbose: bool,
|
|
35
|
+
parsed_ontologies: list[ParsedOntology],
|
|
36
|
+
project_iri_lookup: ProjectIriLookup,
|
|
37
|
+
auth: AuthenticationClient,
|
|
28
38
|
) -> bool:
|
|
29
39
|
"""
|
|
30
40
|
Iterates over the ontologies in a JSON project file and creates the ontologies that don't exist on the DSP server
|
|
@@ -39,6 +49,9 @@ def create_ontologies(
|
|
|
39
49
|
ontology_definitions: the "ontologies" section of the parsed JSON project file
|
|
40
50
|
project_remote: representation of the project on the DSP server
|
|
41
51
|
verbose: verbose switch
|
|
52
|
+
parsed_ontologies: parsed ontologies
|
|
53
|
+
project_iri_lookup: lookup for IRIs
|
|
54
|
+
auth: Authentication Client
|
|
42
55
|
|
|
43
56
|
Raises:
|
|
44
57
|
InputError: if an error occurs during the creation of an ontology.
|
|
@@ -47,6 +60,8 @@ def create_ontologies(
|
|
|
47
60
|
Returns:
|
|
48
61
|
True if everything went smoothly, False otherwise
|
|
49
62
|
"""
|
|
63
|
+
success_collection = CreatedIriCollection()
|
|
64
|
+
onto_client = OntologyClientLive(auth.server, auth)
|
|
50
65
|
|
|
51
66
|
overall_success = True
|
|
52
67
|
|
|
@@ -60,6 +75,9 @@ def create_ontologies(
|
|
|
60
75
|
logger.exception(err_msg)
|
|
61
76
|
project_ontologies = []
|
|
62
77
|
|
|
78
|
+
for existing_onto in project_ontologies:
|
|
79
|
+
project_iri_lookup.add_onto(existing_onto.name, existing_onto.iri)
|
|
80
|
+
|
|
63
81
|
created_ontos: list[tuple[dict[str, Any], Ontology, dict[str, ResourceClass]]] = []
|
|
64
82
|
for ontology_definition in ontology_definitions:
|
|
65
83
|
ontology_remote = _create_ontology(
|
|
@@ -75,6 +93,8 @@ def create_ontologies(
|
|
|
75
93
|
if not ontology_remote:
|
|
76
94
|
overall_success = False
|
|
77
95
|
continue
|
|
96
|
+
else:
|
|
97
|
+
project_iri_lookup.add_onto(ontology_remote.name, ontology_remote.iri)
|
|
78
98
|
|
|
79
99
|
# add the empty resource classes to the remote ontology
|
|
80
100
|
last_modification_date, remote_res_classes, success = _add_resource_classes_to_remote_ontology(
|
|
@@ -85,11 +105,12 @@ def create_ontologies(
|
|
|
85
105
|
last_modification_date=ontology_remote.lastModificationDate,
|
|
86
106
|
verbose=verbose,
|
|
87
107
|
)
|
|
108
|
+
success_collection.classes.update(set(remote_res_classes.keys()))
|
|
88
109
|
if not success:
|
|
89
110
|
overall_success = False
|
|
90
111
|
|
|
91
112
|
# add the property classes to the remote ontology
|
|
92
|
-
last_modification_date, success = _add_property_classes_to_remote_ontology(
|
|
113
|
+
last_modification_date, success, property_successes = _add_property_classes_to_remote_ontology(
|
|
93
114
|
onto_name=ontology_definition["name"],
|
|
94
115
|
property_definitions=ontology_definition.get("properties", []),
|
|
95
116
|
ontology_remote=ontology_remote,
|
|
@@ -99,22 +120,21 @@ def create_ontologies(
|
|
|
99
120
|
knora_api_prefix=knora_api_prefix,
|
|
100
121
|
verbose=verbose,
|
|
101
122
|
)
|
|
123
|
+
success_collection.properties.update(property_successes)
|
|
102
124
|
created_ontos.append((ontology_definition, ontology_remote, remote_res_classes))
|
|
103
125
|
if not success:
|
|
104
126
|
overall_success = False
|
|
105
127
|
|
|
106
128
|
print("Add cardinalities to resource classes...")
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
)
|
|
116
|
-
if not success:
|
|
117
|
-
overall_success = False
|
|
129
|
+
problems = add_all_cardinalities(
|
|
130
|
+
ontologies=parsed_ontologies,
|
|
131
|
+
project_iri_lookup=project_iri_lookup,
|
|
132
|
+
created_iris=success_collection,
|
|
133
|
+
onto_client=onto_client,
|
|
134
|
+
)
|
|
135
|
+
if problems:
|
|
136
|
+
overall_success = False
|
|
137
|
+
print_problem_collection(problems)
|
|
118
138
|
|
|
119
139
|
return overall_success
|
|
120
140
|
|
|
@@ -297,7 +317,7 @@ def _add_property_classes_to_remote_ontology(
|
|
|
297
317
|
last_modification_date: DateTimeStamp,
|
|
298
318
|
knora_api_prefix: str,
|
|
299
319
|
verbose: bool,
|
|
300
|
-
) -> tuple[DateTimeStamp, bool]:
|
|
320
|
+
) -> tuple[DateTimeStamp, bool, set[str]]:
|
|
301
321
|
"""
|
|
302
322
|
Creates the property classes defined in the "properties" section of an ontology. The
|
|
303
323
|
containing project and the containing ontology must already be existing on the DSP server.
|
|
@@ -317,6 +337,7 @@ def _add_property_classes_to_remote_ontology(
|
|
|
317
337
|
Returns:
|
|
318
338
|
a tuple consisting of the last modification date of the ontology, and the success status
|
|
319
339
|
"""
|
|
340
|
+
property_successes = set()
|
|
320
341
|
overall_success = True
|
|
321
342
|
print(" Create property classes...")
|
|
322
343
|
logger.info("Create property classes...")
|
|
@@ -370,11 +391,13 @@ def _add_property_classes_to_remote_ontology(
|
|
|
370
391
|
comment=LangString(prop_class["comments"]) if prop_class.get("comments") else None,
|
|
371
392
|
)
|
|
372
393
|
try:
|
|
373
|
-
last_modification_date,
|
|
394
|
+
last_modification_date, prop_class_created = prop_class_local.create(last_modification_date)
|
|
374
395
|
ontology_remote.lastModificationDate = last_modification_date
|
|
375
396
|
if verbose:
|
|
376
397
|
print(f" Created property class '{prop_class['name']}'")
|
|
377
398
|
logger.info(f"Created property class '{prop_class['name']}'")
|
|
399
|
+
prop_iri = cast(str, prop_class_created.iri)
|
|
400
|
+
property_successes.add(prop_iri)
|
|
378
401
|
except BaseError as err:
|
|
379
402
|
err_msg = f"Unable to create property class '{prop_class['name']}'"
|
|
380
403
|
if found := regex.search(
|
|
@@ -386,7 +409,7 @@ def _add_property_classes_to_remote_ontology(
|
|
|
386
409
|
logger.exception(err_msg)
|
|
387
410
|
overall_success = False
|
|
388
411
|
|
|
389
|
-
return last_modification_date, overall_success
|
|
412
|
+
return last_modification_date, overall_success, property_successes
|
|
390
413
|
|
|
391
414
|
|
|
392
415
|
def _sort_prop_classes(
|
|
@@ -423,76 +446,3 @@ def _sort_prop_classes(
|
|
|
423
446
|
ok_propclass_names.append(prop_name)
|
|
424
447
|
prop_classes_to_sort.remove(prop)
|
|
425
448
|
return sorted_prop_classes
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
def _add_cardinalities_to_resource_classes(
|
|
429
|
-
resclass_definitions: list[dict[str, Any]],
|
|
430
|
-
ontology_remote: Ontology,
|
|
431
|
-
remote_res_classes: dict[str, ResourceClass],
|
|
432
|
-
knora_api_prefix: str,
|
|
433
|
-
context: Context,
|
|
434
|
-
verbose: bool,
|
|
435
|
-
) -> bool:
|
|
436
|
-
"""
|
|
437
|
-
Iterates over the resource classes of an ontology of a JSON project definition, and adds the cardinalities to each
|
|
438
|
-
resource class. The resource classes and the properties must already be existing on the DSP server.
|
|
439
|
-
If an error occurs during creation of a cardinality, it is printed out, the process continues, but the success
|
|
440
|
-
status will be false.
|
|
441
|
-
|
|
442
|
-
Args:
|
|
443
|
-
resclass_definitions: the part of the parsed JSON project file that contains the resources of the current onto
|
|
444
|
-
ontology_remote: representation of the current ontology on the DSP server
|
|
445
|
-
remote_res_classes: representations of the resource classes on the DSP server
|
|
446
|
-
knora_api_prefix: the prefix that stands for the knora-api ontology
|
|
447
|
-
context: the context of the current project
|
|
448
|
-
verbose: verbose switch
|
|
449
|
-
|
|
450
|
-
Returns:
|
|
451
|
-
success status
|
|
452
|
-
"""
|
|
453
|
-
overall_success = True
|
|
454
|
-
print(f" Add cardinalities to resource classes of ontology '{ontology_remote.iri}'...")
|
|
455
|
-
logger.info(f"Add cardinalities to resource classes of ontology '{ontology_remote.iri}'...")
|
|
456
|
-
switcher = {
|
|
457
|
-
"1": Cardinality.C_1,
|
|
458
|
-
"0-1": Cardinality.C_0_1,
|
|
459
|
-
"0-n": Cardinality.C_0_n,
|
|
460
|
-
"1-n": Cardinality.C_1_n,
|
|
461
|
-
}
|
|
462
|
-
for res_class in resclass_definitions:
|
|
463
|
-
res_class_remote = remote_res_classes.get(f"{ontology_remote.iri}#{res_class['name']}")
|
|
464
|
-
if not res_class_remote:
|
|
465
|
-
msg = (
|
|
466
|
-
f"Unable to add cardinalities to resource class '{res_class['name']}': "
|
|
467
|
-
f"This class doesn't exist on the DSP server."
|
|
468
|
-
)
|
|
469
|
-
print(f"WARNINIG: {msg}")
|
|
470
|
-
logger.exception(msg)
|
|
471
|
-
overall_success = False
|
|
472
|
-
continue
|
|
473
|
-
for card_info in res_class.get("cardinalities", []):
|
|
474
|
-
if ":" in card_info["propname"]:
|
|
475
|
-
prefix, prop = card_info["propname"].split(":")
|
|
476
|
-
qualified_propname = card_info["propname"] if prefix else f"{ontology_remote.name}:{prop}"
|
|
477
|
-
else:
|
|
478
|
-
qualified_propname = knora_api_prefix + card_info["propname"]
|
|
479
|
-
|
|
480
|
-
try:
|
|
481
|
-
last_modification_date = res_class_remote.addProperty(
|
|
482
|
-
property_id=qualified_propname,
|
|
483
|
-
cardinality=switcher[card_info["cardinality"]],
|
|
484
|
-
gui_order=card_info.get("gui_order"),
|
|
485
|
-
last_modification_date=ontology_remote.lastModificationDate,
|
|
486
|
-
context=context,
|
|
487
|
-
)
|
|
488
|
-
ontology_remote.lastModificationDate = last_modification_date
|
|
489
|
-
if verbose:
|
|
490
|
-
print(f" Added cardinality '{card_info['propname']}' to resource class '{res_class['name']}'")
|
|
491
|
-
logger.info(f"Added cardinality '{card_info['propname']}' to resource class '{res_class['name']}'")
|
|
492
|
-
except BaseError:
|
|
493
|
-
err_msg = f"Unable to add cardinality '{qualified_propname}' to resource class {res_class['name']}."
|
|
494
|
-
print(f"WARNING: {err_msg}")
|
|
495
|
-
logger.exception(err_msg)
|
|
496
|
-
overall_success = False
|
|
497
|
-
|
|
498
|
-
return overall_success
|
|
@@ -477,39 +477,6 @@ class ResourceClass(Model):
|
|
|
477
477
|
def has_properties(self) -> dict[str, HasProperty]:
|
|
478
478
|
return self._has_properties
|
|
479
479
|
|
|
480
|
-
def getProperty(self, property_id: str) -> Optional[HasProperty]:
|
|
481
|
-
if self._has_properties is None:
|
|
482
|
-
return None
|
|
483
|
-
else:
|
|
484
|
-
return self._has_properties.get(self._context.get_prefixed_iri(property_id))
|
|
485
|
-
|
|
486
|
-
def addProperty(
|
|
487
|
-
self,
|
|
488
|
-
last_modification_date: DateTimeStamp,
|
|
489
|
-
property_id: str,
|
|
490
|
-
cardinality: Cardinality,
|
|
491
|
-
context: Context,
|
|
492
|
-
gui_order: Optional[int] = None,
|
|
493
|
-
) -> DateTimeStamp:
|
|
494
|
-
self._context.context.update(context.context)
|
|
495
|
-
if self._has_properties.get(property_id) is None:
|
|
496
|
-
latest_modification_date, resclass = HasProperty(
|
|
497
|
-
con=self._con,
|
|
498
|
-
context=self._context,
|
|
499
|
-
ontology_id=self._ontology_id,
|
|
500
|
-
property_id=property_id,
|
|
501
|
-
resclass_id=self.iri,
|
|
502
|
-
cardinality=cardinality,
|
|
503
|
-
gui_order=gui_order,
|
|
504
|
-
).create(last_modification_date)
|
|
505
|
-
hp = resclass.getProperty(property_id)
|
|
506
|
-
hp.ontology_id = self._context.iri_from_prefix(self._ontology_id)
|
|
507
|
-
hp.resclass_id = self._iri
|
|
508
|
-
self._has_properties[hp.property_id] = hp
|
|
509
|
-
return latest_modification_date
|
|
510
|
-
else:
|
|
511
|
-
raise BaseError("Property already has cardinality in this class! " + property_id)
|
|
512
|
-
|
|
513
480
|
@classmethod
|
|
514
481
|
def fromJsonObj(cls, con: Connection, context: Context, json_obj: Any) -> ResourceClass:
|
|
515
482
|
if isinstance(json_obj, list):
|
dsp_tools/error/exceptions.py
CHANGED
|
@@ -45,6 +45,18 @@ class InternalError(BaseError):
|
|
|
45
45
|
super().__init__(default_msg)
|
|
46
46
|
|
|
47
47
|
|
|
48
|
+
class DockerNotReachableError(BaseError):
|
|
49
|
+
"""This error is raised when docker is not running."""
|
|
50
|
+
|
|
51
|
+
def __init__(self) -> None:
|
|
52
|
+
msg = "Docker is not running properly. Please start Docker and try again."
|
|
53
|
+
super().__init__(msg)
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
class DspApiNotReachableError(BaseError):
|
|
57
|
+
"""This error is raised when the DSP-API could not be reached on localhost."""
|
|
58
|
+
|
|
59
|
+
|
|
48
60
|
class InputError(BaseError):
|
|
49
61
|
"""This error is raised when the user input is invalid. The message should be as user-friendly as possible."""
|
|
50
62
|
|
|
@@ -53,6 +65,10 @@ class InvalidGuiAttributeError(BaseError):
|
|
|
53
65
|
"""This error is raised when a invalid gui-attribute is used."""
|
|
54
66
|
|
|
55
67
|
|
|
68
|
+
class UnexpectedApiResponseError(BaseError):
|
|
69
|
+
"""This error is raised when the API gives an unexpected response, that we cannot anticipate and handle cleanly."""
|
|
70
|
+
|
|
71
|
+
|
|
56
72
|
class UserFilepathNotFoundError(InputError):
|
|
57
73
|
"""This error is raised if a filepath from the user does not exist."""
|
|
58
74
|
|
|
@@ -12,3 +12,10 @@ def is_iri(s: str) -> bool:
|
|
|
12
12
|
def is_resource_iri(s: str) -> bool:
|
|
13
13
|
"""Checks whether a string is a valid resource IRI."""
|
|
14
14
|
return regex.fullmatch(_resource_iri_pattern, s) is not None
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def from_dsp_iri_to_prefixed_iri(iri: str) -> str:
|
|
18
|
+
dsp_iri_re = r".+\/(.+?)\/v2#(.+)$"
|
|
19
|
+
if not (found := regex.search(dsp_iri_re, iri)):
|
|
20
|
+
return iri
|
|
21
|
+
return f"{found.group(1)}:{found.group(2)}"
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import json
|
|
2
|
+
from typing import Any
|
|
3
|
+
|
|
4
|
+
from rdflib import Graph
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
def serialise_json(rdf_graph: Graph) -> list[dict[str, Any]]:
|
|
8
|
+
graph_bytes = rdf_graph.serialize(format="json-ld", encoding="utf-8")
|
|
9
|
+
json_graph: list[dict[str, Any]] = json.loads(graph_bytes)
|
|
10
|
+
return json_graph
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: dsp-tools
|
|
3
|
-
Version: 17.0.0.
|
|
3
|
+
Version: 17.0.0.post21
|
|
4
4
|
Summary: DSP-TOOLS is a Python package with a command line interface that helps you interact with a DaSCH service platform (DSP) server.
|
|
5
5
|
Author: DaSCH - Swiss National Data and Service Center for the Humanities
|
|
6
6
|
Author-email: DaSCH - Swiss National Data and Service Center for the Humanities <info@dasch.swiss>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
dsp_tools/__init__.py,sha256=XdzLhY_8FUFmPtUEawAvEA8apQ_jlgspb2HpmNjlDV8,158
|
|
2
2
|
dsp_tools/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3
3
|
dsp_tools/cli/args.py,sha256=tS16NvgIMdQuaDWb0cNC8TIK7wY-i4pQe7NFYrzt5Bo,694
|
|
4
|
-
dsp_tools/cli/call_action.py,sha256=
|
|
4
|
+
dsp_tools/cli/call_action.py,sha256=i0VS1qkokvxtcxKj_4V0QWe49sLMZxa8eEqMnl2yr9E,12556
|
|
5
5
|
dsp_tools/cli/create_parsers.py,sha256=zi0E7AHV25B_wXt_8Jcan0Tc6y7aG0vipS5rya5gP9s,17764
|
|
6
6
|
dsp_tools/cli/entry_point.py,sha256=gdexHqVDAy8_Atf0oUxvPVQyDGWUSUhio396U5Oc0RI,10331
|
|
7
7
|
dsp_tools/clients/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -12,7 +12,29 @@ dsp_tools/clients/connection_live.py,sha256=Y0T-F93FFGnY2Z7qHhG56v3Ajg7U7ATq4QHI
|
|
|
12
12
|
dsp_tools/clients/fuseki_metrics.py,sha256=Vy_aWOusnzlD0EnbyHZcTtPIpMEfRA_ihtYbysTq7sQ,2059
|
|
13
13
|
dsp_tools/clients/legal_info_client.py,sha256=itDvGQf1VV1WiH2oHVcH1epSUSdJPRDwdRUvmCw8P4s,742
|
|
14
14
|
dsp_tools/clients/legal_info_client_live.py,sha256=9nOe8Y-oQRHh4TkD2-tjdxLNNTonQ0i-P6UjCGgIBGA,5987
|
|
15
|
+
dsp_tools/clients/metadata_client.py,sha256=Ozlnz8-_lgPHHKPXsRyLDx1ccvBPoIYLbAJcfYnKvXY,610
|
|
16
|
+
dsp_tools/clients/metadata_client_live.py,sha256=LKaGCBZTAyJg0JHxrDOkcrb_Z3csNKXHEhKiWlVylis,1739
|
|
17
|
+
dsp_tools/clients/ontology_client.py,sha256=bATGyI8YFFCl0yis9beJjGB1ZlJuO_GqYnlB-2ulv94,638
|
|
18
|
+
dsp_tools/clients/ontology_client_live.py,sha256=8uWoRxwlCvUHQZYQsQ5XojAlpEAqzIhFNYROQfsNWf4,5367
|
|
15
19
|
dsp_tools/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
20
|
+
dsp_tools/commands/create/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
21
|
+
dsp_tools/commands/create/communicate_problems.py,sha256=GdAOiUZevrYFhRINyDMhcbXdUqtGDKb2nEelhdfSFR0,885
|
|
22
|
+
dsp_tools/commands/create/constants.py,sha256=ZzWNn_zh-0Oy0SJmGivQbcAnQTmwT0akNchZUppXgh0,276
|
|
23
|
+
dsp_tools/commands/create/create_on_server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
24
|
+
dsp_tools/commands/create/create_on_server/cardinalities.py,sha256=QW0i6TSNmP-dGS2WSad1np9QHz41-A51ArspuAQZGJg,5260
|
|
25
|
+
dsp_tools/commands/create/create_on_server/mappers.py,sha256=Lu2DJAICOZu7WP_1UDvyvRAi0T9ZGO88kvx0UfI6v5I,564
|
|
26
|
+
dsp_tools/commands/create/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
27
|
+
dsp_tools/commands/create/models/input_problems.py,sha256=Oa8-fQy2FTtmfXzMVdhBE9Cs3PlOgTWga4XmK5QkM7s,665
|
|
28
|
+
dsp_tools/commands/create/models/parsed_ontology.py,sha256=EUuD47SmWXyB74vGdxGwuvRzq1f4_YdciwYmqcEwqWc,815
|
|
29
|
+
dsp_tools/commands/create/models/parsed_project.py,sha256=Gnl9gJEm5sNbccYG24cwT4doS-oqh_cywjbqk1V4wZQ,928
|
|
30
|
+
dsp_tools/commands/create/models/rdf_ontology.py,sha256=TyXHmblr9j5XZFVqjLT516MrVYPgzjXWvTX4TckEPPk,361
|
|
31
|
+
dsp_tools/commands/create/models/server_project_info.py,sha256=k5EVYo8ZJhMMB5XKja9Xl6CFQ_oLRFdRZPjMyj4XmO4,699
|
|
32
|
+
dsp_tools/commands/create/parsing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
33
|
+
dsp_tools/commands/create/parsing/parse_ontology.py,sha256=4cqo2wa9wcLBszWXgPrixQgaHYPHfENQbF6dkeBVNiU,4268
|
|
34
|
+
dsp_tools/commands/create/parsing/parse_project.py,sha256=CghB-pJ6RcllOP0jn8Hs50kRcxS2Q0iS8A_QNGbjzZU,4005
|
|
35
|
+
dsp_tools/commands/create/parsing/parsing_utils.py,sha256=-kr9ulha4T6reaQsQ2lImuqKEp2w4tQi66tjm2lDa9w,1636
|
|
36
|
+
dsp_tools/commands/create/serialisation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
37
|
+
dsp_tools/commands/create/serialisation/ontology.py,sha256=NK4kjriHs7dt5fXNiIBc1z_mE9szI4YemJ--hkYYeCk,1581
|
|
16
38
|
dsp_tools/commands/excel2json/CLAUDE.md,sha256=y7ZcmrHbewN48sV0wyZhNfXDXdERG4PRvdz02Mqh0gg,3399
|
|
17
39
|
dsp_tools/commands/excel2json/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
18
40
|
dsp_tools/commands/excel2json/json_header.py,sha256=3PkhYHloGhuK9_zl7XrqboRksquWzGsdNNNo7-LC2c8,13543
|
|
@@ -55,10 +77,10 @@ dsp_tools/commands/ingest_xmlupload/upload_files/upload_files.py,sha256=QXj58UiT
|
|
|
55
77
|
dsp_tools/commands/project/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
56
78
|
dsp_tools/commands/project/create/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
57
79
|
dsp_tools/commands/project/create/parse_project.py,sha256=xYcFaUtKLZigxDZpD7O2JNueHmy_-Ar1iE2LJe97gos,4081
|
|
58
|
-
dsp_tools/commands/project/create/project_create_all.py,sha256=
|
|
80
|
+
dsp_tools/commands/project/create/project_create_all.py,sha256=GM1XjpRvGoT79wGO9VF27c8CBdV42dIOhcT3AdKSwzg,24888
|
|
59
81
|
dsp_tools/commands/project/create/project_create_default_permissions.py,sha256=CygzQ4rFF6SYUCkSvrO6gkjpINWZh4wjq_2V0PExwso,5990
|
|
60
82
|
dsp_tools/commands/project/create/project_create_lists.py,sha256=A9kKe4gVP1Ug869102bRXK5RraZUtGzv5cWyFfK_DEA,7963
|
|
61
|
-
dsp_tools/commands/project/create/project_create_ontologies.py,sha256=
|
|
83
|
+
dsp_tools/commands/project/create/project_create_ontologies.py,sha256=Ie5WHTKg5S1bRCg3SmmbB1tjem3NwRrX3N32TeAWzyI,19465
|
|
62
84
|
dsp_tools/commands/project/create/project_validate.py,sha256=H5TVvqO5V63roGEde1J0n21twkajy4AkVSDGmZb4Jp8,27443
|
|
63
85
|
dsp_tools/commands/project/get/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
64
86
|
dsp_tools/commands/project/get/get.py,sha256=_5LxbSP5Fi0PyXODjvND3ZC9E_x91yk6Xb6tcldG5j0,6447
|
|
@@ -73,7 +95,7 @@ dsp_tools/commands/project/legacy_models/model.py,sha256=AzxebBc5Y19kPFvsr4cPLWr
|
|
|
73
95
|
dsp_tools/commands/project/legacy_models/ontology.py,sha256=uXX0U4FVzx53GIjTyZhCN96oxdSc1Jaq-O818XrsSEc,12557
|
|
74
96
|
dsp_tools/commands/project/legacy_models/project.py,sha256=TlC-DPvaIxCdhnO82s_92lcC8--JzO840cLzrmrG4Fo,12012
|
|
75
97
|
dsp_tools/commands/project/legacy_models/propertyclass.py,sha256=tDr23zwcZptZzBIAQSW27aRtRuSbM6PI_hk2ZXnuLm8,16954
|
|
76
|
-
dsp_tools/commands/project/legacy_models/resourceclass.py,sha256=
|
|
98
|
+
dsp_tools/commands/project/legacy_models/resourceclass.py,sha256=eMorLi4x3zaeq-zBgf3lniKRpcJnQNpGLkJUPPTPsYY,26599
|
|
77
99
|
dsp_tools/commands/project/legacy_models/user.py,sha256=qJ1vxK_yQbLb7z1i7KmJA3j5wYZKAUHPBGIhIXHhfq4,16057
|
|
78
100
|
dsp_tools/commands/project/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
79
101
|
dsp_tools/commands/project/models/permissions_client.py,sha256=v_Y02kTWFi7l9JE18lUxkyjc-vyt8KK7h8MN8MtsgXw,2494
|
|
@@ -164,7 +186,7 @@ dsp_tools/config/logger_config.py,sha256=Bw2Gu5F2d8un_KNk0hvNtV7fvN2TlThqo6gSwqe
|
|
|
164
186
|
dsp_tools/config/warnings_config.py,sha256=15_Lt227HLqhdn6v-zJbi1KG9Fo6Zi1_4fp_a-iY72w,1142
|
|
165
187
|
dsp_tools/error/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
166
188
|
dsp_tools/error/custom_warnings.py,sha256=7C2DscIz9k7IfM8uebIsKWPcWcSjwpDqbIRDaPw7bI8,1053
|
|
167
|
-
dsp_tools/error/exceptions.py,sha256=
|
|
189
|
+
dsp_tools/error/exceptions.py,sha256=giLM6Hx17lMdCjNdlwMr4zqdGcqUHypAxESSAtkvvnU,4853
|
|
168
190
|
dsp_tools/error/problems.py,sha256=DotzVg3MYvMJmernd9tTBmDHoT1MOkHdiWVv8iMoFSk,265
|
|
169
191
|
dsp_tools/error/xmllib_errors.py,sha256=DpYCsBIx_GmsBAUlfk2VMqtzD5IGMRbd2yXTcrJFHR4,549
|
|
170
192
|
dsp_tools/error/xmllib_warnings.py,sha256=sS9jJXGJtQqCiJ9P2zCM5gpIhTpChbujQz_fPvxLm8g,1557
|
|
@@ -193,12 +215,13 @@ dsp_tools/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
193
215
|
dsp_tools/utils/ansi_colors.py,sha256=p2vq-wzfmE-wdDddvC26UcOA6Z1qhFTdzP0dPoW4sy0,1691
|
|
194
216
|
dsp_tools/utils/data_formats/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
195
217
|
dsp_tools/utils/data_formats/date_util.py,sha256=VLNQnSsUX6NB1IY3Ry5KCxCLgHHYN0TSSBRn8hyXN-4,4714
|
|
196
|
-
dsp_tools/utils/data_formats/iri_util.py,sha256=
|
|
218
|
+
dsp_tools/utils/data_formats/iri_util.py,sha256=O_TQb104ukjVsaqgkstz54QvjgqFPLSxVvqH6HVNjQc,670
|
|
197
219
|
dsp_tools/utils/data_formats/shared.py,sha256=9AybXCAboojvRULZPud5e6B7UkjQOuN6f5fiVxwuZe8,2618
|
|
198
220
|
dsp_tools/utils/data_formats/uri_util.py,sha256=9UGrbtxHVI0Ka0ttxd39KDhGeeP0xOdVLjt6HyV-Ic8,3257
|
|
199
221
|
dsp_tools/utils/fuseki_bloating.py,sha256=yUCSijVf_Ne9iWUK_IzbPAkOMkN8Xt9ttPcWWRSIgMI,2381
|
|
200
222
|
dsp_tools/utils/json_parsing.py,sha256=KlNvwnZoq-gJqnOVH7tiZMzgdld_3IunuOVvlEVXGXc,1684
|
|
201
223
|
dsp_tools/utils/rdflib_constants.py,sha256=D5HO7oILBRiQI-bJj14pbCx6zhKY4RGqjIjq6S_IawU,652
|
|
224
|
+
dsp_tools/utils/rdflib_utils.py,sha256=M9UCXMe8W3SDQ0DYh4i6lRwYkyWozrWLl19NP5A-RlY,284
|
|
202
225
|
dsp_tools/utils/replace_id_with_iri.py,sha256=5M5vXWJIQ0oO4ELwIt_5QeYBvyGESBc2smuNThHiQUY,2928
|
|
203
226
|
dsp_tools/utils/request_utils.py,sha256=KxiFpQ_IH1ZCIF-SknPjRMP5-ZtLP3wWzwSrEZDB2fk,6902
|
|
204
227
|
dsp_tools/utils/xml_parsing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -237,7 +260,7 @@ dsp_tools/xmllib/models/res.py,sha256=c3edvilYZVDmv2O6Z36sSkHXcuKPAJLfWVpStDTMuJ
|
|
|
237
260
|
dsp_tools/xmllib/models/root.py,sha256=x8_vrDSJ1pZUJUL8LR460dZe4Cg57G_Hy-Zfr2S29dw,13562
|
|
238
261
|
dsp_tools/xmllib/value_checkers.py,sha256=Yx3r6_WoZ5Lev8Orp8yDzd03JvP2GBmFNSFT2dzrycM,10712
|
|
239
262
|
dsp_tools/xmllib/value_converters.py,sha256=WMYS5hd1VlrLLBXnf6pv9yYoPBsv_2MxOO6xv-QsRW4,29218
|
|
240
|
-
dsp_tools-17.0.0.
|
|
241
|
-
dsp_tools-17.0.0.
|
|
242
|
-
dsp_tools-17.0.0.
|
|
243
|
-
dsp_tools-17.0.0.
|
|
263
|
+
dsp_tools-17.0.0.post21.dist-info/WHEEL,sha256=M6du7VZflc4UPsGphmOXHANdgk8zessdJG0DBUuoA-U,78
|
|
264
|
+
dsp_tools-17.0.0.post21.dist-info/entry_points.txt,sha256=qjRfEbkeAwLU_AE2Q-l4Y9irPNmu4Wna-3bfRp1bqV4,62
|
|
265
|
+
dsp_tools-17.0.0.post21.dist-info/METADATA,sha256=c-CiHkhfevQLuSoAyhtEYoAA1CF4nWN8HoR5o7H6e_8,4285
|
|
266
|
+
dsp_tools-17.0.0.post21.dist-info/RECORD,,
|
|
File without changes
|