dsp-tools 17.0.0.post29__py3-none-any.whl → 18.0.0__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.

Files changed (38) hide show
  1. dsp_tools/cli/args.py +13 -0
  2. dsp_tools/cli/call_action.py +34 -330
  3. dsp_tools/cli/call_action_files_only.py +74 -0
  4. dsp_tools/cli/call_action_with_network.py +203 -0
  5. dsp_tools/cli/create_parsers.py +50 -11
  6. dsp_tools/cli/utils.py +87 -0
  7. dsp_tools/clients/list_client.py +49 -0
  8. dsp_tools/clients/list_client_live.py +157 -0
  9. dsp_tools/clients/{ontology_client.py → ontology_clients.py} +17 -2
  10. dsp_tools/clients/{ontology_client_live.py → ontology_create_client_live.py} +2 -2
  11. dsp_tools/clients/ontology_get_client_live.py +65 -0
  12. dsp_tools/clients/project_client.py +10 -0
  13. dsp_tools/clients/project_client_live.py +30 -0
  14. dsp_tools/commands/create/create_on_server/cardinalities.py +14 -8
  15. dsp_tools/commands/create/create_on_server/lists.py +150 -0
  16. dsp_tools/commands/create/lists_only.py +45 -0
  17. dsp_tools/commands/create/models/input_problems.py +13 -0
  18. dsp_tools/commands/create/models/parsed_project.py +14 -1
  19. dsp_tools/commands/create/models/rdf_ontology.py +0 -7
  20. dsp_tools/commands/create/models/server_project_info.py +17 -3
  21. dsp_tools/commands/create/parsing/parse_lists.py +45 -0
  22. dsp_tools/commands/create/parsing/parse_project.py +23 -4
  23. dsp_tools/commands/project/create/project_create_all.py +17 -13
  24. dsp_tools/commands/project/create/project_create_default_permissions.py +8 -6
  25. dsp_tools/commands/project/create/project_create_ontologies.py +30 -18
  26. dsp_tools/commands/project/legacy_models/listnode.py +0 -30
  27. dsp_tools/commands/validate_data/models/api_responses.py +2 -16
  28. dsp_tools/commands/validate_data/prepare_data/prepare_data.py +8 -7
  29. dsp_tools/commands/validate_data/sparql/value_shacl.py +1 -1
  30. dsp_tools/error/exceptions.py +8 -0
  31. dsp_tools/resources/start-stack/docker-compose.yml +23 -23
  32. dsp_tools/utils/ansi_colors.py +2 -0
  33. {dsp_tools-17.0.0.post29.dist-info → dsp_tools-18.0.0.dist-info}/METADATA +1 -1
  34. {dsp_tools-17.0.0.post29.dist-info → dsp_tools-18.0.0.dist-info}/RECORD +36 -27
  35. {dsp_tools-17.0.0.post29.dist-info → dsp_tools-18.0.0.dist-info}/WHEEL +1 -1
  36. dsp_tools/commands/project/create/project_create_lists.py +0 -200
  37. dsp_tools/commands/validate_data/api_clients.py +0 -124
  38. {dsp_tools-17.0.0.post29.dist-info → dsp_tools-18.0.0.dist-info}/entry_points.txt +0 -0
@@ -1,6 +1,8 @@
1
1
  from loguru import logger
2
2
 
3
3
  from dsp_tools.commands.project.models.permissions_client import PermissionsClient
4
+ from dsp_tools.utils.ansi_colors import BOLD
5
+ from dsp_tools.utils.ansi_colors import RESET_TO_DEFAULT
4
6
 
5
7
  USER_IRI_PREFIX = "http://www.knora.org/ontology/knora-admin#"
6
8
 
@@ -11,23 +13,23 @@ def create_default_permissions(
11
13
  default_permissions_overrule: dict[str, str | list[str]] | None,
12
14
  shortcode: str,
13
15
  ) -> bool:
14
- logger.info("Set default permissions...")
15
- print("Set default permissions...")
16
+ print(BOLD + "Processing default permissions:" + RESET_TO_DEFAULT)
17
+ logger.info("Processing default permissions:")
16
18
  if not _delete_existing_doaps(perm_client):
17
- print("WARNING: Cannot delete the existing default permissions")
19
+ print(" WARNING: Cannot delete the existing default permissions")
18
20
  logger.warning("Cannot delete the existing default permissions")
19
21
  return False
20
22
  if not _create_new_doap(perm_client, default_permissions):
21
- print("WARNING: Cannot create default permissions")
23
+ print(" WARNING: Cannot create default permissions")
22
24
  logger.warning("Cannot create default permissions")
23
25
  return False
24
26
  if default_permissions_overrule:
25
27
  if not _create_overrules(perm_client, default_permissions_overrule, shortcode):
26
- print("WARNING: Cannot create default permissions overrules")
28
+ print(" WARNING: Cannot create default permissions overrules")
27
29
  logger.warning("Cannot create default permissions overrules")
28
30
  return False
31
+ print(" Default permissions have been set")
29
32
  logger.info("Default permissions have been set")
30
- print("Default permissions have been set")
31
33
  return True
32
34
 
33
35
 
@@ -7,11 +7,12 @@ from loguru import logger
7
7
 
8
8
  from dsp_tools.clients.authentication_client import AuthenticationClient
9
9
  from dsp_tools.clients.connection import Connection
10
- from dsp_tools.clients.ontology_client_live import OntologyClientLive
10
+ from dsp_tools.clients.ontology_create_client_live import OntologyCreateClientLive
11
11
  from dsp_tools.commands.create.communicate_problems import print_problem_collection
12
12
  from dsp_tools.commands.create.create_on_server.cardinalities import add_all_cardinalities
13
13
  from dsp_tools.commands.create.models.parsed_ontology import ParsedOntology
14
14
  from dsp_tools.commands.create.models.server_project_info import CreatedIriCollection
15
+ from dsp_tools.commands.create.models.server_project_info import ListNameToIriLookup
15
16
  from dsp_tools.commands.create.models.server_project_info import ProjectIriLookup
16
17
  from dsp_tools.commands.project.legacy_models.context import Context
17
18
  from dsp_tools.commands.project.legacy_models.ontology import Ontology
@@ -22,13 +23,15 @@ from dsp_tools.error.exceptions import BaseError
22
23
  from dsp_tools.error.exceptions import InputError
23
24
  from dsp_tools.legacy_models.datetimestamp import DateTimeStamp
24
25
  from dsp_tools.legacy_models.langstring import LangString
26
+ from dsp_tools.utils.ansi_colors import BOLD
27
+ from dsp_tools.utils.ansi_colors import RESET_TO_DEFAULT
25
28
 
26
29
 
27
30
  def create_ontologies(
28
31
  con: Connection,
29
32
  context: Context,
30
33
  knora_api_prefix: str,
31
- names_and_iris_of_list_nodes: dict[str, Any],
34
+ list_name_2_iri: ListNameToIriLookup,
32
35
  ontology_definitions: list[dict[str, Any]],
33
36
  project_remote: Project,
34
37
  verbose: bool,
@@ -45,7 +48,7 @@ def create_ontologies(
45
48
  con: Connection to the DSP server
46
49
  context: prefixes and the ontology IRIs they stand for
47
50
  knora_api_prefix: the prefix that stands for the knora-api ontology
48
- names_and_iris_of_list_nodes: IRIs of list nodes that were already created and are available on the DSP server
51
+ list_name_2_iri: IRIs of list nodes that were already created and are available on the DSP server
49
52
  ontology_definitions: the "ontologies" section of the parsed JSON project file
50
53
  project_remote: representation of the project on the DSP server
51
54
  verbose: verbose switch
@@ -61,17 +64,15 @@ def create_ontologies(
61
64
  True if everything went smoothly, False otherwise
62
65
  """
63
66
  success_collection = CreatedIriCollection()
64
- onto_client = OntologyClientLive(auth.server, auth)
67
+ onto_client = OntologyCreateClientLive(auth.server, auth)
65
68
 
66
69
  overall_success = True
67
-
68
- print("Create ontologies...")
69
- logger.info("Create ontologies...")
70
+ logger.info("Processing Ontology Section")
70
71
  try:
71
72
  project_ontologies = Ontology.getProjectOntologies(con=con, project_id=str(project_remote.iri))
72
73
  except BaseError:
73
74
  err_msg = "Unable to retrieve remote ontologies. Cannot check if your ontology already exists."
74
- print("WARNING: {err_msg}")
75
+ print(f" WARNING: {err_msg}")
75
76
  logger.exception(err_msg)
76
77
  project_ontologies = []
77
78
 
@@ -114,7 +115,7 @@ def create_ontologies(
114
115
  onto_name=ontology_definition["name"],
115
116
  property_definitions=ontology_definition.get("properties", []),
116
117
  ontology_remote=ontology_remote,
117
- names_and_iris_of_list_nodes=names_and_iris_of_list_nodes,
118
+ list_name_2_iri=list_name_2_iri,
118
119
  con=con,
119
120
  last_modification_date=last_modification_date,
120
121
  knora_api_prefix=knora_api_prefix,
@@ -125,7 +126,7 @@ def create_ontologies(
125
126
  if not success:
126
127
  overall_success = False
127
128
 
128
- print("Add cardinalities to resource classes...")
129
+ print(BOLD + "Processing Cardinalities:" + RESET_TO_DEFAULT)
129
130
  problems = add_all_cardinalities(
130
131
  ontologies=parsed_ontologies,
131
132
  project_iri_lookup=project_iri_lookup,
@@ -173,12 +174,12 @@ def _create_ontology(
173
174
  # skip if it already exists on the DSP server
174
175
  if onto_name in [onto.name for onto in project_ontologies]:
175
176
  err_msg = f"Ontology '{onto_name}' already exists on the DSP server. Skipping..."
176
- print(f" WARNING: {err_msg}")
177
+ print(f"WARNING: {err_msg}")
177
178
  logger.warning(err_msg)
178
179
  return None
179
180
 
180
- print(f"Create ontology '{onto_name}'...")
181
- logger.info(f"Create ontology '{onto_name}'...")
181
+ print(BOLD + f"Processing ontology '{onto_name}':" + RESET_TO_DEFAULT)
182
+ logger.info(f"Processing ontology '{onto_name}'")
182
183
  ontology_local = Ontology(
183
184
  con=con,
184
185
  project=project_remote,
@@ -308,11 +309,11 @@ def _sort_resources(
308
309
  return sorted_resources
309
310
 
310
311
 
311
- def _add_property_classes_to_remote_ontology(
312
+ def _add_property_classes_to_remote_ontology( # noqa: PLR0912
312
313
  onto_name: str,
313
314
  property_definitions: list[dict[str, Any]],
314
315
  ontology_remote: Ontology,
315
- names_and_iris_of_list_nodes: dict[str, Any],
316
+ list_name_2_iri: ListNameToIriLookup,
316
317
  con: Connection,
317
318
  last_modification_date: DateTimeStamp,
318
319
  knora_api_prefix: str,
@@ -328,7 +329,7 @@ def _add_property_classes_to_remote_ontology(
328
329
  onto_name: name of the current ontology
329
330
  property_definitions: the part of the parsed JSON project file that contains the properties of the current onto
330
331
  ontology_remote: representation of the current ontology on the DSP server
331
- names_and_iris_of_list_nodes: IRIs of list nodes that were already created and are available on the DSP server
332
+ list_name_2_iri: IRIs of list nodes that were already created and are available on the DSP server
332
333
  con: connection to the DSP server
333
334
  last_modification_date: last modification date of the ontology on the DSP server
334
335
  knora_api_prefix: the prefix that stands for the knora-api ontology
@@ -373,7 +374,18 @@ def _add_property_classes_to_remote_ontology(
373
374
  # get the gui_attributes
374
375
  gui_attributes = prop_class.get("gui_attributes")
375
376
  if gui_attributes and gui_attributes.get("hlist"):
376
- list_iri = names_and_iris_of_list_nodes[gui_attributes["hlist"]]["id"]
377
+ list_name = gui_attributes["hlist"]
378
+ list_iri = list_name_2_iri.get_iri(list_name)
379
+ if not list_iri:
380
+ err_msg = (
381
+ f"Unable to create property class '{prop_class['name']}' "
382
+ f"because the list with the name '{list_name}' does not exist on the server."
383
+ )
384
+ print(f" WARNING: {err_msg}")
385
+ logger.warning(err_msg)
386
+ overall_success = False
387
+ continue
388
+
377
389
  gui_attributes["hlist"] = f"<{list_iri}>"
378
390
 
379
391
  # create the property class
@@ -405,7 +417,7 @@ def _add_property_classes_to_remote_ontology(
405
417
  err.message,
406
418
  ):
407
419
  err_msg += f", because it refers to a class of another project: '{found.group(1)}'."
408
- print(f"WARNING: {err_msg}")
420
+ print(f" WARNING: {err_msg}")
409
421
  logger.exception(err_msg)
410
422
  overall_success = False
411
423
 
@@ -301,36 +301,6 @@ class ListNode(Model):
301
301
  rootNodeIri=rootNodeIri,
302
302
  )
303
303
 
304
- def create(self) -> ListNode:
305
- """
306
- Create a new List
307
-
308
- :return: JSON-object from DSP-API
309
- """
310
- jsonobj = self._toJsonObj_create()
311
- if self._parent:
312
- result = self._con.post(ListNode.ROUTE_SLASH + quote_plus(self._parent), jsonobj)
313
- return ListNode.fromJsonObj(self._con, result["nodeinfo"])
314
- else:
315
- result = self._con.post(ListNode.ROUTE, jsonobj)
316
- return ListNode.fromJsonObj(self._con, result["list"]["listinfo"])
317
-
318
- def _toJsonObj_create(self):
319
- tmp = {}
320
- if self._project is None:
321
- raise BaseError("There must be a project id given!")
322
- tmp["projectIri"] = self._project
323
- if self._label.isEmpty():
324
- raise BaseError("There must be a valid ListNode label!")
325
- tmp["labels"] = self._label.toJsonObj()
326
- if self._comments:
327
- tmp["comments"] = self._comments.toJsonObj()
328
- if self._name:
329
- tmp["name"] = self._name
330
- if self._parent:
331
- tmp["parentNodeIri"] = self._parent
332
- return tmp
333
-
334
304
  def read(self) -> Any:
335
305
  """
336
306
  Read a project from DSP-API
@@ -5,6 +5,8 @@ from dataclasses import dataclass
5
5
  from rdflib import Graph
6
6
  from rdflib import URIRef
7
7
 
8
+ from dsp_tools.clients.list_client import OneList
9
+
8
10
 
9
11
  @dataclass
10
12
  class SHACLValidationReport:
@@ -24,22 +26,6 @@ class ListLookup:
24
26
  lists: dict[tuple[str, str], str]
25
27
 
26
28
 
27
- @dataclass
28
- class OneList:
29
- list_iri: str
30
- list_name: str
31
- nodes: list[OneNode]
32
-
33
- def hlist(self) -> str:
34
- return f'"hlist=<{self.list_iri}>"'
35
-
36
-
37
- @dataclass
38
- class OneNode:
39
- name: str
40
- iri: str
41
-
42
-
43
29
  @dataclass
44
30
  class SHACLListInfo:
45
31
  list_iri: URIRef
@@ -8,14 +8,15 @@ from rdflib import URIRef
8
8
 
9
9
  from dsp_tools.clients.authentication_client import AuthenticationClient
10
10
  from dsp_tools.clients.legal_info_client_live import LegalInfoClientLive
11
+ from dsp_tools.clients.list_client import OneList
12
+ from dsp_tools.clients.list_client_live import ListGetClientLive
11
13
  from dsp_tools.clients.metadata_client import ExistingResourcesRetrieved
12
14
  from dsp_tools.clients.metadata_client_live import MetadataClientLive
13
- from dsp_tools.commands.validate_data.api_clients import ListClient
14
- from dsp_tools.commands.validate_data.api_clients import OntologyClient
15
+ from dsp_tools.clients.ontology_clients import OntologyGetClient
16
+ from dsp_tools.clients.ontology_get_client_live import OntologyGetClientLive
15
17
  from dsp_tools.commands.validate_data.models.api_responses import EnabledLicenseIris
16
18
  from dsp_tools.commands.validate_data.models.api_responses import InfoForResourceInDB
17
19
  from dsp_tools.commands.validate_data.models.api_responses import ListLookup
18
- from dsp_tools.commands.validate_data.models.api_responses import OneList
19
20
  from dsp_tools.commands.validate_data.models.api_responses import ProjectDataFromApi
20
21
  from dsp_tools.commands.validate_data.models.validation import RDFGraphs
21
22
  from dsp_tools.commands.validate_data.prepare_data.get_rdf_like_data import get_rdf_like_data
@@ -71,8 +72,8 @@ def _make_list_lookup(project_lists: list[OneList]) -> ListLookup:
71
72
  def _get_project_specific_information_from_api(
72
73
  auth: AuthenticationClient, shortcode: str, do_not_request_resource_metadata_from_db: bool
73
74
  ) -> tuple[ProjectDataFromApi, ExistingResourcesRetrieved]:
74
- list_client = ListClient(auth.server, shortcode)
75
- all_lists = list_client.get_lists()
75
+ list_client = ListGetClientLive(auth.server, shortcode)
76
+ all_lists = list_client.get_all_lists_and_nodes()
76
77
  enabled_licenses = _get_license_iris(shortcode, auth)
77
78
  if do_not_request_resource_metadata_from_db:
78
79
  existing_resources_retrieved = ExistingResourcesRetrieved.FALSE
@@ -107,7 +108,7 @@ def _create_graphs(
107
108
  permission_ids: list[str],
108
109
  ) -> RDFGraphs:
109
110
  logger.debug("Create all graphs.")
110
- onto_client = OntologyClient(auth.server, shortcode)
111
+ onto_client = OntologyGetClientLive(auth.server, shortcode)
111
112
  ontologies, onto_iris = _get_project_ontos(onto_client)
112
113
  knora_ttl = onto_client.get_knora_api()
113
114
  knora_api = Graph()
@@ -154,7 +155,7 @@ def _bind_prefixes_to_graph(g: Graph, project_ontos: list[str]) -> Graph:
154
155
  return g
155
156
 
156
157
 
157
- def _get_project_ontos(onto_client: OntologyClient) -> tuple[Graph, list[str]]:
158
+ def _get_project_ontos(onto_client: OntologyGetClient) -> tuple[Graph, list[str]]:
158
159
  logger.debug("Get project ontologies from server.")
159
160
  all_ontos, onto_iris = onto_client.get_ontologies()
160
161
  onto_g = Graph()
@@ -8,7 +8,7 @@ from rdflib import Literal
8
8
  from rdflib import URIRef
9
9
  from rdflib.collection import Collection
10
10
 
11
- from dsp_tools.commands.validate_data.models.api_responses import OneList
11
+ from dsp_tools.clients.list_client import OneList
12
12
  from dsp_tools.commands.validate_data.models.api_responses import SHACLListInfo
13
13
  from dsp_tools.utils.rdflib_constants import KNORA_API
14
14
  from dsp_tools.utils.rdflib_constants import PropertyTypeAlias
@@ -154,3 +154,11 @@ class XmlUploadListNodeNotFoundError(BaseError):
154
154
 
155
155
  class UnknownDOAPException(BaseError):
156
156
  """Class for errors that are raised if a DOAP cannot be parsed"""
157
+
158
+
159
+ class CreateError(BaseError):
160
+ """Errors for the create command."""
161
+
162
+
163
+ class ProjectNotFoundError(CreateError):
164
+ """Class if a project is expected to exist but could not be found."""
@@ -3,7 +3,7 @@ services:
3
3
  api:
4
4
  # on the verge of every deployment, update the "image" value from the "api" value of
5
5
  # https://github.com/dasch-swiss/ops-deploy/blob/main/versions/RELEASE.json
6
- image: daschswiss/knora-api:v32.3.2
6
+ image: daschswiss/knora-api:v32.5.0
7
7
  depends_on:
8
8
  - sipi
9
9
  - db
@@ -28,7 +28,7 @@ services:
28
28
 
29
29
  sipi:
30
30
  # on the verge of every deployment, take the same tag as DSP-API
31
- image: daschswiss/knora-sipi:v32.3.2
31
+ image: daschswiss/knora-sipi:v32.5.0
32
32
  ports:
33
33
  - "1024:1024"
34
34
  volumes:
@@ -41,29 +41,9 @@ services:
41
41
  - KNORA_WEBAPI_KNORA_API_EXTERNAL_PORT=3333
42
42
  command: --config=/sipi/config/sipi.docker-config.lua
43
43
 
44
- app:
45
- # on the verge of every deployment, update the "image" value from the "app" value of
46
- # https://github.com/dasch-swiss/ops-deploy/blob/main/versions/RELEASE.json
47
- image: daschswiss/dsp-app:v11.47.2
48
- volumes:
49
- - ./dsp-app-config.json:/public/config/config.prod.json
50
- ports:
51
- - "4200:4200"
52
-
53
- db:
54
- # on the verge of every deployment, update the "image" value from the "db" value of
55
- # https://github.com/dasch-swiss/ops-deploy/blob/main/versions/RELEASE.json
56
- image: daschswiss/apache-jena-fuseki:5.5.0-2
57
- ports:
58
- - "3030:3030"
59
- environment:
60
- - TZ=Europe/Zurich
61
- - ADMIN_PASSWORD=test
62
- - JVM_ARGS=-Xmx3G
63
-
64
44
  ingest:
65
45
  # on the verge of every deployment, take the same tag as DSP-API
66
- image: daschswiss/dsp-ingest:v32.3.2
46
+ image: daschswiss/dsp-ingest:v32.5.0
67
47
  ports:
68
48
  - "3340:3340"
69
49
  volumes:
@@ -84,5 +64,25 @@ services:
84
64
  - DB_JDBC_URL=jdbc:sqlite:/opt/db/ingest.sqlite
85
65
  - DSP_API_URL=http://host.docker.internal:3333
86
66
 
67
+ app:
68
+ # on the verge of every deployment, update the "image" value from the "app" value of
69
+ # https://github.com/dasch-swiss/ops-deploy/blob/main/versions/RELEASE.json
70
+ image: daschswiss/dsp-app:v12.1.2
71
+ volumes:
72
+ - ./dsp-app-config.json:/public/config/config.prod.json
73
+ ports:
74
+ - "4200:4200"
75
+
76
+ db:
77
+ # on the verge of every deployment, update the "image" value from the "db" value of
78
+ # https://github.com/dasch-swiss/ops-deploy/blob/main/versions/RELEASE.json
79
+ image: daschswiss/apache-jena-fuseki:5.5.0-3
80
+ ports:
81
+ - "3030:3030"
82
+ environment:
83
+ - TZ=Europe/Zurich
84
+ - ADMIN_PASSWORD=test
85
+ - JVM_ARGS=-Xmx3G
86
+
87
87
  volumes:
88
88
  ingest-db:
@@ -12,6 +12,8 @@ SEQUENCE_END = "m"
12
12
  # reset to the default setting of the console
13
13
  RESET_TO_DEFAULT = f"{SEQUENCE_START}0{SEQUENCE_END}"
14
14
 
15
+ BOLD = f"{SEQUENCE_START}1{SEQUENCE_END}" # 1 (bold) ; 32 (green)
16
+
15
17
  # If you want to change for example both the text color and the background color you can combine the sequences
16
18
  # for example: BACKGROUND_BOLD_MAGENTA + YELLOW -> magenta background with yellow text
17
19
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: dsp-tools
3
- Version: 17.0.0.post29
3
+ Version: 18.0.0
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,9 +1,12 @@
1
1
  dsp_tools/__init__.py,sha256=XdzLhY_8FUFmPtUEawAvEA8apQ_jlgspb2HpmNjlDV8,158
2
2
  dsp_tools/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
- dsp_tools/cli/args.py,sha256=LhDmsQFBclEKBTarFJx-NB2K4fhzYSV9OjMLMxU3pNk,745
4
- dsp_tools/cli/call_action.py,sha256=7Hobk9PDABFn7f2vLq-7M6hU1-KnG115UGMVmJmBLKA,14122
5
- dsp_tools/cli/create_parsers.py,sha256=q3l4o6ApdOp6uQd63370EfKXwtwxnFKZ5PwHApc0Jzw,18553
3
+ dsp_tools/cli/args.py,sha256=qUoEQVULA3eaCkI1xSdEhEcM26rku0lejnjSnKoevGU,1038
4
+ dsp_tools/cli/call_action.py,sha256=l6pmY1SckKMkh-Y0DW1Aij2IR_D91uoe078fsruXkIQ,3275
5
+ dsp_tools/cli/call_action_files_only.py,sha256=T0A51uN4pClcLaDv_eREZMwEshAIlHMyEDPOOqZIOKg,2630
6
+ dsp_tools/cli/call_action_with_network.py,sha256=nEP60rXWZy_z4tkz5ed6DDOEkHMkXVuyheeNZQogjFs,8556
7
+ dsp_tools/cli/create_parsers.py,sha256=UgHp3_3siQoLe1GdFTLn2ya8Vjumf-NibT0Rd58UxuY,19567
6
8
  dsp_tools/cli/entry_point.py,sha256=gdexHqVDAy8_Atf0oUxvPVQyDGWUSUhio396U5Oc0RI,10331
9
+ dsp_tools/cli/utils.py,sha256=57Bmv33A61YHcWDDm2zGOsjEuB_bV6p9FYIdN_42UBs,3072
7
10
  dsp_tools/clients/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
11
  dsp_tools/clients/authentication_client.py,sha256=A9nTlOdUE4Ez0psWX6qXwuypNBAA2eSVfHIEPzRmoCs,267
9
12
  dsp_tools/clients/authentication_client_live.py,sha256=Bnc6-M2r_D8BNoZgKi5Rzc2vrz5RtRhwUNjJF3PrVTQ,1917
@@ -12,26 +15,34 @@ dsp_tools/clients/connection_live.py,sha256=Y0T-F93FFGnY2Z7qHhG56v3Ajg7U7ATq4QHI
12
15
  dsp_tools/clients/fuseki_metrics.py,sha256=Vy_aWOusnzlD0EnbyHZcTtPIpMEfRA_ihtYbysTq7sQ,2059
13
16
  dsp_tools/clients/legal_info_client.py,sha256=itDvGQf1VV1WiH2oHVcH1epSUSdJPRDwdRUvmCw8P4s,742
14
17
  dsp_tools/clients/legal_info_client_live.py,sha256=9nOe8Y-oQRHh4TkD2-tjdxLNNTonQ0i-P6UjCGgIBGA,5987
18
+ dsp_tools/clients/list_client.py,sha256=L1CcbUcmzwkJVKbrbXa7EB2myJ-sCchjZywwuPh2uS8,1118
19
+ dsp_tools/clients/list_client_live.py,sha256=yoznKeBus0gAIERUIjZAbEqGU1CA4AzRRLO48JkrBMU,6198
15
20
  dsp_tools/clients/metadata_client.py,sha256=GD4uYXP3kEym59JAqSub61xXDZSmZaQ2lKRF1_MgYS0,623
16
21
  dsp_tools/clients/metadata_client_live.py,sha256=SLq2Ssob3TQaTx6PUblD-DeTimSLA4Y6woo6246Fca8,1863
17
- dsp_tools/clients/ontology_client.py,sha256=bATGyI8YFFCl0yis9beJjGB1ZlJuO_GqYnlB-2ulv94,638
18
- dsp_tools/clients/ontology_client_live.py,sha256=8uWoRxwlCvUHQZYQsQ5XojAlpEAqzIhFNYROQfsNWf4,5367
22
+ dsp_tools/clients/ontology_clients.py,sha256=juigGsfZ1uP42gtyEstDzaMfjeKcriS34mgYaFbJW-Y,989
23
+ dsp_tools/clients/ontology_create_client_live.py,sha256=LOz3k2_ZiShEcdarhoscLFjsdMHG85mHGsbRuR7cq7Y,5386
24
+ dsp_tools/clients/ontology_get_client_live.py,sha256=MeTqWVqTBW22wEebulv3R8fDsjvW2_dd-cs0Wqllxe8,2698
25
+ dsp_tools/clients/project_client.py,sha256=1nsp-RLRTqD1ePk824R4XKbAKCWMYwiGR9uzA-0qRqg,243
26
+ dsp_tools/clients/project_client_live.py,sha256=NTnw_DG37YKfAouDExccwt79QHFsT66oPyrY3MXtVSY,1115
19
27
  dsp_tools/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
28
  dsp_tools/commands/create/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
29
  dsp_tools/commands/create/communicate_problems.py,sha256=GdAOiUZevrYFhRINyDMhcbXdUqtGDKb2nEelhdfSFR0,885
22
30
  dsp_tools/commands/create/constants.py,sha256=ZzWNn_zh-0Oy0SJmGivQbcAnQTmwT0akNchZUppXgh0,276
23
31
  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
32
+ dsp_tools/commands/create/create_on_server/cardinalities.py,sha256=bp-3NokfyhpE5ddKTkib9imFpZiMyRKcN-pHK_DHyfo,5518
33
+ dsp_tools/commands/create/create_on_server/lists.py,sha256=y_63BBpALfJKJ-wQfsgINEuevFnRolD07ZWt0Q4yFfA,6195
25
34
  dsp_tools/commands/create/create_on_server/mappers.py,sha256=Lu2DJAICOZu7WP_1UDvyvRAi0T9ZGO88kvx0UfI6v5I,564
35
+ dsp_tools/commands/create/lists_only.py,sha256=pSgl0XykdguR9445QIAvDTTRbsBuicIxgjD-zFQQzD0,2079
26
36
  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
37
+ dsp_tools/commands/create/models/input_problems.py,sha256=mFww8a-sFBtWvSNxywiQTprTa-74jMkE45K2UqJxFEc,1169
28
38
  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
39
+ dsp_tools/commands/create/models/parsed_project.py,sha256=wtUicIHhwv324noBNrC8qmA4P8zNzqqR7J04dOdbgo0,1166
40
+ dsp_tools/commands/create/models/rdf_ontology.py,sha256=c51riv5ZwlIIblr9Wn7QStr4AjtO4Bo1-2bPMKSsTH8,226
41
+ dsp_tools/commands/create/models/server_project_info.py,sha256=DtN0TChUh9hPSdt4ENgjJxRoI9CVcFe6NurgF-d5i_I,1134
32
42
  dsp_tools/commands/create/parsing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
43
+ dsp_tools/commands/create/parsing/parse_lists.py,sha256=iL-ijELdAgk3BZ36dDugfX2vYo9u4cnHCQh9RyPHqdw,2074
33
44
  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
45
+ dsp_tools/commands/create/parsing/parse_project.py,sha256=wYxy0EDcLMZ8Ie9ET9jc434tU75V7fWenDi9ROwDvoo,4828
35
46
  dsp_tools/commands/create/parsing/parsing_utils.py,sha256=X-ALTAwcQE8dBRiagb_O9D89d7WGvwnq77cNkNZDNpc,1563
36
47
  dsp_tools/commands/create/serialisation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
48
  dsp_tools/commands/create/serialisation/ontology.py,sha256=NK4kjriHs7dt5fXNiIBc1z_mE9szI4YemJ--hkYYeCk,1581
@@ -77,10 +88,9 @@ dsp_tools/commands/ingest_xmlupload/upload_files/upload_files.py,sha256=QXj58UiT
77
88
  dsp_tools/commands/project/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
78
89
  dsp_tools/commands/project/create/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
79
90
  dsp_tools/commands/project/create/parse_project.py,sha256=xYcFaUtKLZigxDZpD7O2JNueHmy_-Ar1iE2LJe97gos,4081
80
- dsp_tools/commands/project/create/project_create_all.py,sha256=GM1XjpRvGoT79wGO9VF27c8CBdV42dIOhcT3AdKSwzg,24888
81
- dsp_tools/commands/project/create/project_create_default_permissions.py,sha256=CygzQ4rFF6SYUCkSvrO6gkjpINWZh4wjq_2V0PExwso,5990
82
- dsp_tools/commands/project/create/project_create_lists.py,sha256=A9kKe4gVP1Ug869102bRXK5RraZUtGzv5cWyFfK_DEA,7963
83
- dsp_tools/commands/project/create/project_create_ontologies.py,sha256=Ie5WHTKg5S1bRCg3SmmbB1tjem3NwRrX3N32TeAWzyI,19465
91
+ dsp_tools/commands/project/create/project_create_all.py,sha256=9Am3ZjFyKsHAwEAoNl3rCRaFviJDkIQ4AaOYFm_xJgc,25145
92
+ dsp_tools/commands/project/create/project_create_default_permissions.py,sha256=4SPcyEIImW1ek_q94oLTtxndhkDNF_RNw13U_fKXsuM,6144
93
+ dsp_tools/commands/project/create/project_create_ontologies.py,sha256=DlDXJvrdrPpVO6cYyC4DpllYUn8rgQpF6RbRToO7X-A,20067
84
94
  dsp_tools/commands/project/create/project_validate.py,sha256=H5TVvqO5V63roGEde1J0n21twkajy4AkVSDGmZb4Jp8,27443
85
95
  dsp_tools/commands/project/get/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
86
96
  dsp_tools/commands/project/get/get.py,sha256=_5LxbSP5Fi0PyXODjvND3ZC9E_x91yk6Xb6tcldG5j0,6447
@@ -90,7 +100,7 @@ dsp_tools/commands/project/legacy_models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5
90
100
  dsp_tools/commands/project/legacy_models/context.py,sha256=hT69iRVpT0RDySe_8LQofvryENuj1jiTgv1mqTMbS8U,12190
91
101
  dsp_tools/commands/project/legacy_models/group.py,sha256=iSfcGZK2w7Zn8Hs4r_GCosSTGqhQNOS1vget-Kw8Isc,8138
92
102
  dsp_tools/commands/project/legacy_models/helpers.py,sha256=pU5jUeeRZnEi9Y_fm0xAayBmpOAxvU8XD9CXwRSFNgA,850
93
- dsp_tools/commands/project/legacy_models/listnode.py,sha256=wqBps8RakCdg19n90yaqRQG4EtzY56eTbXspPA1Jnrs,14932
103
+ dsp_tools/commands/project/legacy_models/listnode.py,sha256=7Uyf4p-SYB_3NXM4bU_1QpBbi3KZjLfeGwXMvS5aksk,13838
94
104
  dsp_tools/commands/project/legacy_models/model.py,sha256=AzxebBc5Y19kPFvsr4cPLWrKxZj6aGeT_te8NkgaRl4,247
95
105
  dsp_tools/commands/project/legacy_models/ontology.py,sha256=uXX0U4FVzx53GIjTyZhCN96oxdSc1Jaq-O818XrsSEc,12557
96
106
  dsp_tools/commands/project/legacy_models/project.py,sha256=TlC-DPvaIxCdhnO82s_92lcC8--JzO840cLzrmrG4Fo,12012
@@ -106,18 +116,17 @@ dsp_tools/commands/resume_xmlupload/resume_xmlupload.py,sha256=MibH5CwQ_nmSzkwJI
106
116
  dsp_tools/commands/start_stack.py,sha256=Dj3fBKVgiF4iEaShhFB8vkcOJdBs8vZMR7uuNDEeeBs,20383
107
117
  dsp_tools/commands/validate_data/CLAUDE.md,sha256=dQYFJtiayYh45kwrtFZWCVDMfPhkqSCTpQ7EUAuO6pc,7733
108
118
  dsp_tools/commands/validate_data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
109
- dsp_tools/commands/validate_data/api_clients.py,sha256=8LFiCQMwS22gWXvGo7p4DDtI8YiHfgVLBlmiA9ASaeI,5322
110
119
  dsp_tools/commands/validate_data/constants.py,sha256=Xr9iPYG4kpcgzUSy3ARjKv7dgSuMBVf2R69Uj7trcx0,2509
111
120
  dsp_tools/commands/validate_data/mappers.py,sha256=lA4Zdt2PHb4nvcOTv63oIPTI5Xs-5J2GSr3S1cDlZkM,7749
112
121
  dsp_tools/commands/validate_data/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
113
- dsp_tools/commands/validate_data/models/api_responses.py,sha256=RrHwxyx1o2j9sVCwZktTTSnRXHeathNmQxk2RBxJ93E,920
122
+ dsp_tools/commands/validate_data/models/api_responses.py,sha256=_Zs96nAC3pPY0hkfoJMzhpBZy8V5R1-1J2iJkiKSN7I,753
114
123
  dsp_tools/commands/validate_data/models/input_problems.py,sha256=QwUHcqONqveQbXaedKqbpqjpYNHSJbn0zDag0iQrCJg,3323
115
124
  dsp_tools/commands/validate_data/models/rdf_like_data.py,sha256=1TccR7UwC5idgrny6CQoFd-lPGzx7BdI8sorqWxgCv0,3313
116
125
  dsp_tools/commands/validate_data/models/validation.py,sha256=okYFrLhaSQCGfa8A7gR6Wz-nv0xsmyN5LlNgSqfVfG4,2296
117
126
  dsp_tools/commands/validate_data/prepare_data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
118
127
  dsp_tools/commands/validate_data/prepare_data/get_rdf_like_data.py,sha256=sU_VmMAvvNsjKkld6Coc_HJLt32nzXOimvKRxIbte-o,11620
119
128
  dsp_tools/commands/validate_data/prepare_data/make_data_graph.py,sha256=TANm9WA_z-oPGkoMIR2BGZrHtAkizDlnK_5WDVxQRoQ,4098
120
- dsp_tools/commands/validate_data/prepare_data/prepare_data.py,sha256=u47rlKkxI1wF2_r-0NeGjimI-frG-laF3u4FiJ-v1Lk,8246
129
+ dsp_tools/commands/validate_data/prepare_data/prepare_data.py,sha256=BcmAC8SLAmNS4kGrNOvMxpGQrWPJCVE1f1jDYRpSvYU,8320
121
130
  dsp_tools/commands/validate_data/process_validation_report/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
122
131
  dsp_tools/commands/validate_data/process_validation_report/get_user_validation_message.py,sha256=W5VYJPs8J3VvJAaFDBGBuCQ3Xtonhn1iRUOxwgO7xV0,16148
123
132
  dsp_tools/commands/validate_data/process_validation_report/query_validation_result.py,sha256=ln7zOq0LgkaVIoTNv2O72Z0tK6WX0UrbwAph-n0tD3E,22299
@@ -127,7 +136,7 @@ dsp_tools/commands/validate_data/sparql/__init__.py,sha256=47DEQpj8HBSa-_TImW-5J
127
136
  dsp_tools/commands/validate_data/sparql/cardinality_shacl.py,sha256=V45pljnAx6jvsE1VRDKMZjZ1HdmwoMUnPUCQrQIYHMU,7218
128
137
  dsp_tools/commands/validate_data/sparql/construct_shacl.py,sha256=pB8sHn8FiAEiweeIYHROUAJH0YeCk8NWbzEI98YuEIQ,3553
129
138
  dsp_tools/commands/validate_data/sparql/legal_info_shacl.py,sha256=2yhn5HfCJFJpOTB-3XNWfxP1KwW3zKxDfqPdhN_Sazg,1522
130
- dsp_tools/commands/validate_data/sparql/value_shacl.py,sha256=iEpBm4X-jARhGQU21VDK2KvOtMCHTXJzpm08Dda7x1w,13068
139
+ dsp_tools/commands/validate_data/sparql/value_shacl.py,sha256=uUkOlrMCcqzuVYQTXwTJOJw4RGDTd00y3OtLP41nY2c,13044
131
140
  dsp_tools/commands/validate_data/utils.py,sha256=L3kpuhn46x-OHap9RnN9QwUQjFYpkQFlFXzFKQfy5ZE,1990
132
141
  dsp_tools/commands/validate_data/validate_data.py,sha256=GKQv0G2pDnB_5wbUghk12wcCWBsc5hoNySsxuQ81C5U,13498
133
142
  dsp_tools/commands/validate_data/validation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -186,7 +195,7 @@ dsp_tools/config/logger_config.py,sha256=Bw2Gu5F2d8un_KNk0hvNtV7fvN2TlThqo6gSwqe
186
195
  dsp_tools/config/warnings_config.py,sha256=15_Lt227HLqhdn6v-zJbi1KG9Fo6Zi1_4fp_a-iY72w,1142
187
196
  dsp_tools/error/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
188
197
  dsp_tools/error/custom_warnings.py,sha256=7C2DscIz9k7IfM8uebIsKWPcWcSjwpDqbIRDaPw7bI8,1053
189
- dsp_tools/error/exceptions.py,sha256=jaKZE1aDWavHPIjYxc_upK9_tcPPEpaCd7PaIPuazNQ,5131
198
+ dsp_tools/error/exceptions.py,sha256=CjP6zUqODKH5qw9XEo-v3gJcP3Pct0bZ-UbYrIahu-I,5321
190
199
  dsp_tools/error/problems.py,sha256=DotzVg3MYvMJmernd9tTBmDHoT1MOkHdiWVv8iMoFSk,265
191
200
  dsp_tools/error/xmllib_errors.py,sha256=DpYCsBIx_GmsBAUlfk2VMqtzD5IGMRbd2yXTcrJFHR4,549
192
201
  dsp_tools/error/xmllib_warnings.py,sha256=sS9jJXGJtQqCiJ9P2zCM5gpIhTpChbujQz_fPvxLm8g,1557
@@ -204,7 +213,7 @@ dsp_tools/resources/schema/properties-only.json,sha256=a2APFD6mTiaM15VMktN2eZr6L
204
213
  dsp_tools/resources/schema/resources-only.json,sha256=PCCaZZ1vGEZdgwFcx9iGvNYbQywH_vImG8sDqu_OVQ0,4207
205
214
  dsp_tools/resources/start-stack/docker-compose.override-host.j2,sha256=ev36TSCZ7xFpnb7Fcw-s3iQLJkweHhNP2k3golvqcbs,255
206
215
  dsp_tools/resources/start-stack/docker-compose.override.yml,sha256=YsoEIWH6U2-M9wV5MkHR_xGpIppP3SDB8xDVWcVg3no,213
207
- dsp_tools/resources/start-stack/docker-compose.yml,sha256=qG9v49wq7iIl3XtCHzHV1c2yIP3vP1wJrsjBLi3--yA,2945
216
+ dsp_tools/resources/start-stack/docker-compose.yml,sha256=QxQe9F5ooWQsg3Rkg92hIqcF9GkBi-tl7zQA6Jfu1bM,2944
208
217
  dsp_tools/resources/start-stack/dsp-app-config.json,sha256=s1LZ81ch63mnQxQjldkaV7-3a_42xvxPmnuCvvPCB5c,584
209
218
  dsp_tools/resources/start-stack/dsp-app-config.override-host.j2,sha256=cVz6ybmJBcgF1FG7y6P4XjzbpMxqC6qKlrbcqAMOB2I,616
210
219
  dsp_tools/resources/validate_data/api-shapes-resource-cardinalities.ttl,sha256=xBG6zH9h6qakDeE7Yj28NmHvWpg-vYQ4k5e64WRdKn8,6861
@@ -212,7 +221,7 @@ dsp_tools/resources/validate_data/api-shapes.ttl,sha256=irPS80i3CEH4qUuokS5Y4jRs
212
221
  dsp_tools/resources/validate_data/shacl-cli-image.yml,sha256=xqjLfZOq1PbNFN9pfq4wN4Y1eSvkhHL6hbvY59uP2pM,125
213
222
  dsp_tools/resources/validate_data/validate-ontology.ttl,sha256=bPRUlPWJ4GQKzXWM3eKgs3pwcak-crDUeMp8g2j6xzU,4341
214
223
  dsp_tools/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
215
- dsp_tools/utils/ansi_colors.py,sha256=p2vq-wzfmE-wdDddvC26UcOA6Z1qhFTdzP0dPoW4sy0,1691
224
+ dsp_tools/utils/ansi_colors.py,sha256=aCMfANQ8lNtuJ33WgjNkTegI26ISGq8MElrLXrJua4s,1759
216
225
  dsp_tools/utils/data_formats/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
217
226
  dsp_tools/utils/data_formats/date_util.py,sha256=VLNQnSsUX6NB1IY3Ry5KCxCLgHHYN0TSSBRn8hyXN-4,4714
218
227
  dsp_tools/utils/data_formats/iri_util.py,sha256=oFcc3gcikmgJOf7iMhT4tfdUQg9wE7lUW5aysfHjylM,1030
@@ -260,7 +269,7 @@ dsp_tools/xmllib/models/res.py,sha256=c3edvilYZVDmv2O6Z36sSkHXcuKPAJLfWVpStDTMuJ
260
269
  dsp_tools/xmllib/models/root.py,sha256=x8_vrDSJ1pZUJUL8LR460dZe4Cg57G_Hy-Zfr2S29dw,13562
261
270
  dsp_tools/xmllib/value_checkers.py,sha256=Yx3r6_WoZ5Lev8Orp8yDzd03JvP2GBmFNSFT2dzrycM,10712
262
271
  dsp_tools/xmllib/value_converters.py,sha256=WMYS5hd1VlrLLBXnf6pv9yYoPBsv_2MxOO6xv-QsRW4,29218
263
- dsp_tools-17.0.0.post29.dist-info/WHEEL,sha256=M6du7VZflc4UPsGphmOXHANdgk8zessdJG0DBUuoA-U,78
264
- dsp_tools-17.0.0.post29.dist-info/entry_points.txt,sha256=qjRfEbkeAwLU_AE2Q-l4Y9irPNmu4Wna-3bfRp1bqV4,62
265
- dsp_tools-17.0.0.post29.dist-info/METADATA,sha256=FF_D8B5lb2KYa5zUpFZsJBWtXM6h3N1KYK1mwB0uDgU,4285
266
- dsp_tools-17.0.0.post29.dist-info/RECORD,,
272
+ dsp_tools-18.0.0.dist-info/WHEEL,sha256=UH59_qNuDUAa1VxQvC6fxmbl24EMw6DOIlT1yp8oeuU,78
273
+ dsp_tools-18.0.0.dist-info/entry_points.txt,sha256=qjRfEbkeAwLU_AE2Q-l4Y9irPNmu4Wna-3bfRp1bqV4,62
274
+ dsp_tools-18.0.0.dist-info/METADATA,sha256=j79Vnn6Ab7AjQuCuUpihzCmWwGbUtdsb0Q8zxmTANc8,4278
275
+ dsp_tools-18.0.0.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: uv 0.9.5
2
+ Generator: uv 0.9.6
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any