cmem-cmemc 24.3.3__py3-none-any.whl → 25.1.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.
Files changed (42) hide show
  1. cmem_cmemc/__init__.py +1 -160
  2. cmem_cmemc/cli.py +138 -0
  3. cmem_cmemc/command.py +36 -0
  4. cmem_cmemc/commands/admin.py +7 -6
  5. cmem_cmemc/commands/client.py +4 -3
  6. cmem_cmemc/commands/config.py +3 -2
  7. cmem_cmemc/commands/dataset.py +18 -17
  8. cmem_cmemc/commands/graph.py +20 -22
  9. cmem_cmemc/commands/manual.py +56 -0
  10. cmem_cmemc/commands/metrics.py +11 -11
  11. cmem_cmemc/commands/migration.py +4 -3
  12. cmem_cmemc/commands/project.py +10 -10
  13. cmem_cmemc/commands/python.py +29 -2
  14. cmem_cmemc/commands/query.py +31 -14
  15. cmem_cmemc/commands/resource.py +4 -3
  16. cmem_cmemc/commands/scheduler.py +4 -4
  17. cmem_cmemc/commands/store.py +2 -2
  18. cmem_cmemc/commands/user.py +10 -9
  19. cmem_cmemc/commands/validation.py +2 -2
  20. cmem_cmemc/commands/variable.py +1 -1
  21. cmem_cmemc/commands/vocabulary.py +11 -10
  22. cmem_cmemc/commands/workflow.py +18 -18
  23. cmem_cmemc/completion.py +76 -49
  24. cmem_cmemc/config_parser.py +44 -0
  25. cmem_cmemc/context.py +166 -97
  26. cmem_cmemc/exceptions.py +15 -2
  27. cmem_cmemc/manual_helper/graph.py +2 -0
  28. cmem_cmemc/manual_helper/multi_page.py +1 -1
  29. cmem_cmemc/manual_helper/single_page.py +2 -0
  30. cmem_cmemc/migrations/remove_noop_triple_251.py +50 -0
  31. cmem_cmemc/migrations/shapes_widget_integrations_243.py +0 -5
  32. cmem_cmemc/object_list.py +3 -3
  33. cmem_cmemc/parameter_types/path.py +7 -0
  34. cmem_cmemc/placeholder.py +69 -0
  35. cmem_cmemc/utils.py +49 -15
  36. {cmem_cmemc-24.3.3.dist-info → cmem_cmemc-25.1.0.dist-info}/METADATA +14 -14
  37. cmem_cmemc-25.1.0.dist-info/RECORD +59 -0
  38. cmem_cmemc-25.1.0.dist-info/entry_points.txt +3 -0
  39. cmem_cmemc-24.3.3.dist-info/RECORD +0 -54
  40. cmem_cmemc-24.3.3.dist-info/entry_points.txt +0 -3
  41. {cmem_cmemc-24.3.3.dist-info → cmem_cmemc-25.1.0.dist-info}/LICENSE +0 -0
  42. {cmem_cmemc-24.3.3.dist-info → cmem_cmemc-25.1.0.dist-info}/WHEEL +0 -0
cmem_cmemc/utils.py CHANGED
@@ -12,16 +12,18 @@ from typing import TYPE_CHECKING
12
12
  from zipfile import BadZipFile, ZipFile
13
13
 
14
14
  import requests
15
+ from click import ClickException
15
16
  from cmem.cmempy.dp.proxy.graph import get_graphs_list
16
17
  from cmem.cmempy.queries import QueryCatalog
17
18
  from cmem.cmempy.workspace.projects.project import get_projects
18
19
  from prometheus_client import Metric
19
20
 
21
+ from cmem_cmemc.config_parser import PureSectionConfigParser
20
22
  from cmem_cmemc.constants import NAMESPACES
23
+ from cmem_cmemc.smart_path import SmartPath
21
24
 
22
25
  if TYPE_CHECKING:
23
26
  from cmem_cmemc.context import ApplicationContext
24
- from cmem_cmemc.smart_path import SmartPath
25
27
 
26
28
 
27
29
  def get_version() -> str:
@@ -29,11 +31,11 @@ def get_version() -> str:
29
31
  return cmemc_version("cmem-cmemc")
30
32
 
31
33
 
32
- def check_python_version(ctx: "ApplicationContext") -> None:
34
+ def check_python_version(ctx: type["ApplicationContext"]) -> None:
33
35
  """Check the runtime python version and warn or error."""
34
36
  version = sys.version_info
35
37
  major_expected = [3]
36
- minor_expected = [10, 11, 12]
38
+ minor_expected = [10, 11, 12, 13]
37
39
  if version.major not in major_expected:
38
40
  ctx.echo_error(f"Error: cmemc can not be executed with Python {version.major}.")
39
41
  sys.exit(1)
@@ -44,10 +46,13 @@ def check_python_version(ctx: "ApplicationContext") -> None:
44
46
  )
45
47
 
46
48
 
47
- def extract_error_message(error: Exception) -> str:
49
+ def extract_error_message(error: Exception, ignore_error_prefix: bool = False) -> str:
48
50
  """Extract a message from an exception."""
49
51
  # exceptions with response is HTTPError
50
52
  message = type(error).__name__ + ": " + str(error) + "\n"
53
+ if ignore_error_prefix:
54
+ message = str(error) + "\n"
55
+
51
56
  try:
52
57
  # try to load Problem Details for HTTP API JSON
53
58
  details = json.loads(error.response.text) # type: ignore[attr-defined]
@@ -59,7 +64,7 @@ def extract_error_message(error: Exception) -> str:
59
64
  except (AttributeError, ValueError):
60
65
  # is not json or any other issue, output plain response text
61
66
  pass
62
- return message
67
+ return message.strip()
63
68
 
64
69
 
65
70
  def iri_to_qname(iri: str) -> str:
@@ -204,14 +209,14 @@ def split_task_id(task_id: str) -> tuple[str, str]:
204
209
 
205
210
  Raises:
206
211
  ------
207
- ValueError: in case the task ID is not splittable
212
+ ClickException: in case the task ID is not splittable
208
213
 
209
214
  """
210
215
  try:
211
216
  project_part = task_id.split(":")[0]
212
217
  task_part = task_id.split(":")[1]
213
218
  except IndexError as error:
214
- raise ValueError(f"{task_id} is not a valid task ID.") from error
219
+ raise ClickException(f"{task_id} is not a valid task ID.") from error
215
220
  return project_part, task_part
216
221
 
217
222
 
@@ -247,8 +252,8 @@ def check_or_select_project(app: "ApplicationContext", project_id: str | None =
247
252
 
248
253
  Raises:
249
254
  ------
250
- ValueError: if no projects available.
251
- ValueError: if more than one project is.
255
+ ClickException: if no projects available.
256
+ ClickException: if more than one project is.
252
257
 
253
258
  Returns:
254
259
  -------
@@ -268,13 +273,13 @@ def check_or_select_project(app: "ApplicationContext", project_id: str | None =
268
273
  return project_name
269
274
 
270
275
  if len(projects) == 0:
271
- raise ValueError(
276
+ raise ClickException(
272
277
  "There are no projects available. "
273
278
  "Please create a project with 'cmemc project create'."
274
279
  )
275
280
 
276
281
  # more than one project
277
- raise ValueError(
282
+ raise ClickException(
278
283
  "There is more than one project available so you need to "
279
284
  "specify the project with '--project'."
280
285
  )
@@ -349,17 +354,17 @@ def get_query_text(file_or_uri: str, required_projections: set) -> str:
349
354
 
350
355
  Raises:
351
356
  ------
352
- ValueError: If the input is not a readable file or a query URI,
357
+ ClickException: If the input is not a readable file or a query URI,
353
358
  or if the query contains placeholders,
354
359
  or if the query does not include the required projections.
355
360
 
356
361
  """
357
362
  sparql_query = QueryCatalog().get_query(file_or_uri)
358
363
  if sparql_query is None:
359
- raise ValueError(f"{file_or_uri} is neither a readable file nor a query URI.")
364
+ raise ClickException(f"{file_or_uri} is neither a readable file nor a query URI.")
360
365
 
361
366
  if sparql_query.get_placeholder_keys():
362
- raise ValueError("Placeholder queries are not supported.")
367
+ raise ClickException("Placeholder queries are not supported.")
363
368
 
364
369
  result = sparql_query.get_json_results()
365
370
  projected_vars = set(result["head"]["vars"])
@@ -367,7 +372,7 @@ def get_query_text(file_or_uri: str, required_projections: set) -> str:
367
372
  missing_projections = required_projections - projected_vars
368
373
  if missing_projections:
369
374
  missing = ", ".join(missing_projections)
370
- raise ValueError(f"Select query must include projections for: {missing}")
375
+ raise ClickException(f"Select query must include projections for: {missing}")
371
376
  txt: str = sparql_query.text
372
377
  return txt
373
378
 
@@ -380,3 +385,32 @@ def validate_zipfile(zipfile: str | pathlib.Path) -> bool:
380
385
  except BadZipFile:
381
386
  return False
382
387
  return True
388
+
389
+
390
+ def str_to_bool(value: str | bool) -> bool:
391
+ """Convert common string representations of boolean values to True/False."""
392
+ if isinstance(value, bool): # If it's already a boolean, return it directly
393
+ return value
394
+ return str(value).strip().lower() in {"true", "yes", "1", "on"}
395
+
396
+
397
+ def is_enabled(params: dict[str, str], config: PureSectionConfigParser, key: str) -> bool:
398
+ """Check if a parameter is enabled."""
399
+ # Check in params dictionary (highest priority)
400
+ if key in params and str_to_bool(params[key]):
401
+ return True
402
+ key = f"CMEMC_{key.upper()}"
403
+ section = params.get("connection")
404
+ defaults = config.defaults()
405
+ if section is None:
406
+ section = defaults.get("CMEMC_CONNECTION")
407
+
408
+ # Check in the specified section
409
+ if section and section in config and key in config[section]:
410
+ return str_to_bool(config[section][key])
411
+
412
+ # Check in the default section
413
+ if key in defaults:
414
+ return str_to_bool(config.defaults()[key])
415
+
416
+ return False
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: cmem-cmemc
3
- Version: 24.3.3
3
+ Version: 25.1.0
4
4
  Summary: Command line client for eccenca Corporate Memory
5
5
  License: Apache-2.0
6
6
  Author: eccenca
@@ -25,28 +25,28 @@ Classifier: Programming Language :: Python :: 3 :: Only
25
25
  Classifier: Topic :: Database
26
26
  Classifier: Topic :: Software Development :: Testing
27
27
  Classifier: Topic :: Utilities
28
- Requires-Dist: beautifulsoup4 (>=4.12.3,<5.0.0)
28
+ Requires-Dist: beautifulsoup4 (>=4.13.3,<5.0.0)
29
29
  Requires-Dist: certifi (>=2024.2.2)
30
- Requires-Dist: click (>=8.1.7,<9.0.0)
30
+ Requires-Dist: click (>=8.1.8,<9.0.0)
31
31
  Requires-Dist: click-didyoumean (>=0.3.1,<0.4.0)
32
32
  Requires-Dist: click-help-colors (>=0.9.4,<0.10.0)
33
- Requires-Dist: cmem-cmempy (==24.3.0)
34
- Requires-Dist: configparser (>=6.0.1,<7.0.0)
35
- Requires-Dist: jinja2 (>=3.1.4,<4.0.0)
33
+ Requires-Dist: cmem-cmempy (==25.1.0)
34
+ Requires-Dist: configparser (>=7.2.0,<8.0.0)
35
+ Requires-Dist: jinja2 (>=3.1.6,<4.0.0)
36
36
  Requires-Dist: junit-xml (>=1.9,<2.0)
37
37
  Requires-Dist: natsort (>=8.4.0,<9.0.0)
38
38
  Requires-Dist: packaging (>=24.2,<25.0)
39
- Requires-Dist: prometheus-client (>=0.21.0,<0.22.0)
40
- Requires-Dist: pygments (>=2.18.0,<3.0.0)
41
- Requires-Dist: pyjwt (>=2.9.0,<3.0.0)
39
+ Requires-Dist: prometheus-client (>=0.21.1,<0.22.0)
40
+ Requires-Dist: pygments (>=2.19.1,<3.0.0)
41
+ Requires-Dist: pyjwt (>=2.10.1,<3.0.0)
42
42
  Requires-Dist: python-dateutil (>=2.9.0.post0,<3.0.0)
43
43
  Requires-Dist: requests (>=2.32.3,<3.0.0)
44
- Requires-Dist: rich (>=13.9.1,<14.0.0)
45
- Requires-Dist: six (>=1.16.0,<2.0.0)
46
- Requires-Dist: smart-open (>=7.0.5,<8.0.0)
44
+ Requires-Dist: rich (>=14.0.0,<15.0.0)
45
+ Requires-Dist: six (>=1.17.0,<2.0.0)
46
+ Requires-Dist: smart-open (>=7.1.0,<8.0.0)
47
47
  Requires-Dist: timeago (>=1.0.16,<2.0.0)
48
- Requires-Dist: treelib (>=1.7.0,<2.0.0)
49
- Requires-Dist: urllib3 (>=2.2.3,<3.0.0)
48
+ Requires-Dist: treelib (>=1.7.1,<2.0.0)
49
+ Requires-Dist: urllib3 (>=2.3.0,<3.0.0)
50
50
  Project-URL: Homepage, https://eccenca.com/go/cmemc
51
51
  Description-Content-Type: text/markdown
52
52
 
@@ -0,0 +1,59 @@
1
+ cmem_cmemc/__init__.py,sha256=-RPEVweA-fcmEAynszDDMKwArJgxZpGW61UBiV7O4Og,24
2
+ cmem_cmemc/_cmemc.zsh,sha256=fmkrBHIQxus8cp2AgO1tzZ5mNZdGL_83cYz3a9uAdsg,1326
3
+ cmem_cmemc/cli.py,sha256=vDdSHFmXUstC3T7OlbPSd0hXxyigJE4VVgRMcsNz5cc,4538
4
+ cmem_cmemc/command.py,sha256=nBtrwPKFJLRpD3IPk5hKyn2LOMl-1ae7SV9iRhgky8k,1958
5
+ cmem_cmemc/command_group.py,sha256=0ltd8xY0yN6_ARR2kkwx7Hibj4glT9M0_bnjKlMhz8g,3371
6
+ cmem_cmemc/commands/__init__.py,sha256=NaGM5jOzf0S_-4UIAwlVDOf2AZ3mliGPoRLXQJfTyZs,22
7
+ cmem_cmemc/commands/acl.py,sha256=zy27D_GeEaYEn3P6EEHtQ55sbWkjgwTgspCeuBWPL14,16006
8
+ cmem_cmemc/commands/admin.py,sha256=VGFEen4aVcKr2Fk3IoVu3JX-r8r99r7iE-3QFrkjJs0,9249
9
+ cmem_cmemc/commands/client.py,sha256=nBs7MoF2wF45AteTCeIQrXcOwKmHHCd8_lG_SM2mQSA,5127
10
+ cmem_cmemc/commands/config.py,sha256=MXiBGMKOj8zVyKOBwly1Hg3ywkylfIBUjEz30WkibkU,5777
11
+ cmem_cmemc/commands/dataset.py,sha256=zylVsfBD92LzHgQ96edNKaQNsf0zKoPro0VQdX--Mu8,30488
12
+ cmem_cmemc/commands/graph.py,sha256=RrrmiMTwKcD8CpWoM5ZUNwOFlOO8AIlauS39G_h41xg,32486
13
+ cmem_cmemc/commands/manual.py,sha256=-sZWeFL92Kj8gL3VYsbpKh2ZaVTyM3LgKaUcpNn9u3A,2179
14
+ cmem_cmemc/commands/metrics.py,sha256=pIBRTq90f7MEI99HLdFLN3D1xQ2Z2u6VKUeTIz0X7DY,12205
15
+ cmem_cmemc/commands/migration.py,sha256=MtavtlvXrmFfgBGL_GWlDat_8Ub6cjHeAiNorKtQo_0,9644
16
+ cmem_cmemc/commands/project.py,sha256=cAJ6Bwl0clzOP4b6CXa8wXsISrLQJTFEL-vJf_btjPc,20585
17
+ cmem_cmemc/commands/python.py,sha256=1It8_6Lh79hHafEtHtl7f3SkJt8Zj_VEIH-muczl5ys,11947
18
+ cmem_cmemc/commands/query.py,sha256=AFOBjeDYtSHpPthY8PTfPoBiNikOqMhk8c8SVzsXEVY,27579
19
+ cmem_cmemc/commands/resource.py,sha256=O0RV-lJNdTI3-pTmnKv5zcAkfTkuFVs0UbmknCbsgUU,7788
20
+ cmem_cmemc/commands/scheduler.py,sha256=Ew-VvhyuoLr4YTPCjEAcQWK1LV8lFoH1cnVjfVwIQnM,8761
21
+ cmem_cmemc/commands/store.py,sha256=zZiOBu2rGqZDkfp2xgO7GLHMRhO3Yxt0myODBNM_K3M,10411
22
+ cmem_cmemc/commands/user.py,sha256=ANZpeOBA46xiqOcNPrueComsCV0gEBbav-vOL9VgyX4,12535
23
+ cmem_cmemc/commands/validation.py,sha256=Fv5yBIXzqy8FyjIzo-wJkv_7H5bhtcQhMxFIlJEVoBw,29495
24
+ cmem_cmemc/commands/variable.py,sha256=VZ60pl98xoOFCkRGdTnJENfgaHWoUoUTgkgfMT4TQgQ,11568
25
+ cmem_cmemc/commands/vocabulary.py,sha256=fdXsG7gspA6HeOasXis1ky9UIZG-qRYP-NiFcvzCTKM,17840
26
+ cmem_cmemc/commands/workflow.py,sha256=RRSWJsJzL5w-E7gb--aQgqU1BB1uZt-XCCLaHcNVhxs,25536
27
+ cmem_cmemc/commands/workspace.py,sha256=IcZgBsvtulLRFofS70qpln6oKQIZunrVLfSAUeiFhCA,4579
28
+ cmem_cmemc/completion.py,sha256=I-unDn_zDO5H0fNsRRIgHodQ3_NtCi_sxALwpRickaE,45723
29
+ cmem_cmemc/config_parser.py,sha256=NduwOT-BB_uAk3pz1Y-ex18RQJW-jjHzkQKCEUUK6Hc,1276
30
+ cmem_cmemc/constants.py,sha256=VKNF5-6fzZXWzPgm1OAGhWvyL4YE8SRq52kkpJjUgB0,475
31
+ cmem_cmemc/context.py,sha256=MQG-Qg0UwgaRe-MUgiD_xdF3uNaA3XwFSqtj-1uq8-w,22247
32
+ cmem_cmemc/exceptions.py,sha256=0lsGOfXhciNGJloJGERMbbPuBbs5IwIIJ_5YnY9qQ-8,546
33
+ cmem_cmemc/manual_helper/__init__.py,sha256=G3Lqw2aPxo8x63Tg7L0aa5VD9BMaRzZDmhrog7IuEPg,43
34
+ cmem_cmemc/manual_helper/graph.py,sha256=HU04NYWeJ6LmW4UC7qHr1v1qsm2Md61pJ-pgWUHFmHY,3647
35
+ cmem_cmemc/manual_helper/multi_page.py,sha256=EkP-7TdDKRnZbh1FYDaHv-goxfx1nQwan-EcpV0M3So,12235
36
+ cmem_cmemc/manual_helper/single_page.py,sha256=0mMn_IJwFCe-WPKAmxGEStb8IINLpQRxAx_F1pIxg1E,1526
37
+ cmem_cmemc/migrations/__init__.py,sha256=i6Ri7qN58ou_MwOzm2KibPkXOD7u-1ELky-nUE5LjAA,24
38
+ cmem_cmemc/migrations/abc.py,sha256=UGJzrvMzUFdp2-sosp49ObRI-SrUSzLJqLEhvB4QTzg,3564
39
+ cmem_cmemc/migrations/access_conditions_243.py,sha256=IXcvSuo9pLaTTo4XNBB6_ln-2TzOV5PU5ugti0BWbxA,5083
40
+ cmem_cmemc/migrations/bootstrap_data.py,sha256=RF0vyFTGUQ_RcpTTWZmm3XLAJAJX2gSYcGwcBmRmU8A,963
41
+ cmem_cmemc/migrations/remove_noop_triple_251.py,sha256=XIJyKsqOulpAWQQBb54H4ft4tJNrGJAcdfo5gyjiI1M,1492
42
+ cmem_cmemc/migrations/shapes_widget_integrations_243.py,sha256=8lQTOlEJvlrDvdvKkl5OAjnyx1jMRgQnU6Bk_fEORYQ,8543
43
+ cmem_cmemc/migrations/sparql_query_texts_242.py,sha256=K_GbxaX5-kkQKDZMq8UvT1vHazde53htwdDHGyB0b9s,1568
44
+ cmem_cmemc/migrations/workspace_configurations.py,sha256=tFmCdfEL10ICjqMXQEIf-9fveE41HBQ_jaWNQJENz50,998
45
+ cmem_cmemc/object_list.py,sha256=PKDZ-p61ep2MzygRXAe4uzP9CB9D8esoiC3lwra84P4,14734
46
+ cmem_cmemc/parameter_types/__init__.py,sha256=Jqhwnw5a2oPNMClzUyovWiieK60RCl3rvSNr-t3wP84,36
47
+ cmem_cmemc/parameter_types/path.py,sha256=M56PGdjploN2pEYaNAk6_qomAX54crLW8E9XZsFvRuI,2270
48
+ cmem_cmemc/placeholder.py,sha256=PzZWpVBa7WPP5_5f-HlSoaZaOnto-1Dr9XuCTSpPnNM,2386
49
+ cmem_cmemc/smart_path/__init__.py,sha256=zDgm1kDrzLyCuIcNb8VXSdnb_CcVNjGkjgiIDVlsh74,3023
50
+ cmem_cmemc/smart_path/clients/__init__.py,sha256=YFOm69BfTCRvAcJjN_CoUmCv3kzEciyYOPUG337p_pA,1696
51
+ cmem_cmemc/smart_path/clients/http.py,sha256=3clZu2v4uuOvPY4MY_8SVSy7hIXJDNooahFRBRpy0ok,2347
52
+ cmem_cmemc/string_processor.py,sha256=kSVePdgFmf2ekurKj6TbDJn6ur82VGLwCsTJ9ODfBEU,2879
53
+ cmem_cmemc/title_helper.py,sha256=7frjAR54_Xc1gszOWXfzSmKFTawNJQ7kkXhZcHmQLyw,1250
54
+ cmem_cmemc/utils.py,sha256=TTis2uwB1KB_1Q7oebblsLsNf54Sn-UzIXKBfq874KU,13489
55
+ cmem_cmemc-25.1.0.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
56
+ cmem_cmemc-25.1.0.dist-info/METADATA,sha256=IKbknWeYYEPgjS_xcMtXDwFl92eY8tbV29_4qe9b9z8,5642
57
+ cmem_cmemc-25.1.0.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
58
+ cmem_cmemc-25.1.0.dist-info/entry_points.txt,sha256=2G0AWAyz501EHpFTjIxccdlCTsHt80NT0pdUGP1QkPA,45
59
+ cmem_cmemc-25.1.0.dist-info/RECORD,,
@@ -0,0 +1,3 @@
1
+ [console_scripts]
2
+ cmemc=cmem_cmemc.cli:main
3
+
@@ -1,54 +0,0 @@
1
- cmem_cmemc/__init__.py,sha256=JI0MMWttUaMATsR_9Sw2Y5I6PX3NCxogVX73Hjo6g7M,5516
2
- cmem_cmemc/_cmemc.zsh,sha256=fmkrBHIQxus8cp2AgO1tzZ5mNZdGL_83cYz3a9uAdsg,1326
3
- cmem_cmemc/command.py,sha256=OsrQOqHpMjiucdpyac8xzxBaSWehYIA7xkO651z8iTs,702
4
- cmem_cmemc/command_group.py,sha256=0ltd8xY0yN6_ARR2kkwx7Hibj4glT9M0_bnjKlMhz8g,3371
5
- cmem_cmemc/commands/__init__.py,sha256=NaGM5jOzf0S_-4UIAwlVDOf2AZ3mliGPoRLXQJfTyZs,22
6
- cmem_cmemc/commands/acl.py,sha256=zy27D_GeEaYEn3P6EEHtQ55sbWkjgwTgspCeuBWPL14,16006
7
- cmem_cmemc/commands/admin.py,sha256=IrhWPNJxdE5GO9UumsI8lv9PqFc_0oUh72FmQIKdl9c,9192
8
- cmem_cmemc/commands/client.py,sha256=gKh22OvYDi95q2U4czH4UPYyDRw_Ngk2K0frDywl3B4,5074
9
- cmem_cmemc/commands/config.py,sha256=j0zc9EFWW7Kw9bzSb_r16m-A0LZersKbZ9j5GE0mGcQ,5734
10
- cmem_cmemc/commands/dataset.py,sha256=xsIUiC2aMDiESjnZvjDY5Mh2fvSooOijQmo5A7RvY40,30397
11
- cmem_cmemc/commands/graph.py,sha256=OHBMHLU5PNrbnxinvjE5Z7FQv8bU8WW-0RCfdoovXl0,32412
12
- cmem_cmemc/commands/metrics.py,sha256=zsyHezoYwig6jIdn7g9NZMqt9DxG6dQRoO0vP3Eu0Rc,12176
13
- cmem_cmemc/commands/migration.py,sha256=SFmEeUP744oJMdbz3RXA-zPtqeV6iWcBKiaKhWsMZe0,9538
14
- cmem_cmemc/commands/project.py,sha256=1BwAAZvupImqkW3Q3dXdkMir8-wnWRMsewnOyVui3QY,20545
15
- cmem_cmemc/commands/python.py,sha256=80k-z6AcL1Ibp5CqVHATjvK0t9wv24QsepDB0vrfDFU,10760
16
- cmem_cmemc/commands/query.py,sha256=KUck4w7PD0e5JYg5Eykf2QAMBfpwmgskEiIA-X_PqZs,26973
17
- cmem_cmemc/commands/resource.py,sha256=ZC_0PM0YnEB3Xf4i0siaTKxHT0Ixjz2Y3QTXuVPuhRE,7739
18
- cmem_cmemc/commands/scheduler.py,sha256=yKVGcewhrXFfSKEOlvEFwaIfWCOK1x7VLhm-i-SSw68,8729
19
- cmem_cmemc/commands/store.py,sha256=hChKTSQ4zAQZ3bFforyYBW9d2CAitInKGW2WSaE8m7c,10411
20
- cmem_cmemc/commands/user.py,sha256=9ju6Q4SdqQncbnFRmN0O27Md9KDl8SD-4SXsBDNw4oA,12464
21
- cmem_cmemc/commands/validation.py,sha256=Iji13uzhWlyjKlEuEJCDIb-XPwCTO_wzThI1PB--8D8,29485
22
- cmem_cmemc/commands/variable.py,sha256=DSNxiS5PlexzNdYz9f0-O0hxqakbsxv847U7I9UhKUI,11568
23
- cmem_cmemc/commands/vocabulary.py,sha256=pAxRM-Y9lzmZ0dT3NBpBGKa2nlbY0thWBdfN2FESXQ8,17767
24
- cmem_cmemc/commands/workflow.py,sha256=vQiaH3L1ZXjf5SuorwdjrD6nF_5nxZ9Xkd7eCNGwxk8,25512
25
- cmem_cmemc/commands/workspace.py,sha256=IcZgBsvtulLRFofS70qpln6oKQIZunrVLfSAUeiFhCA,4579
26
- cmem_cmemc/completion.py,sha256=zgT0ihoePxl8RdmH-9wn1LBAYbeD3Scj9-nX0FcFBTY,44330
27
- cmem_cmemc/constants.py,sha256=VKNF5-6fzZXWzPgm1OAGhWvyL4YE8SRq52kkpJjUgB0,475
28
- cmem_cmemc/context.py,sha256=JJUCfhLT9xKQScSXL1a7US9YE6c1fpFKLLjE7kxCieM,19482
29
- cmem_cmemc/exceptions.py,sha256=SpUHdmVM8cZpSjBv6ICgr9NLr3OJ5XO42DlvjohprVo,232
30
- cmem_cmemc/manual_helper/__init__.py,sha256=G3Lqw2aPxo8x63Tg7L0aa5VD9BMaRzZDmhrog7IuEPg,43
31
- cmem_cmemc/manual_helper/graph.py,sha256=qDchHdjRRDW2oZ66by81NxhoDgNxXaAUxq2keewEiVU,3598
32
- cmem_cmemc/manual_helper/multi_page.py,sha256=5nvN1P7zTgzrnuoT7yA7abyT7EOVa24Jvp3Q2xZmXro,12236
33
- cmem_cmemc/manual_helper/single_page.py,sha256=sVSeaZmPa-Cs6dtp27MqyiO6rIrskY9BtDyeAZhBWXM,1477
34
- cmem_cmemc/migrations/__init__.py,sha256=i6Ri7qN58ou_MwOzm2KibPkXOD7u-1ELky-nUE5LjAA,24
35
- cmem_cmemc/migrations/abc.py,sha256=UGJzrvMzUFdp2-sosp49ObRI-SrUSzLJqLEhvB4QTzg,3564
36
- cmem_cmemc/migrations/access_conditions_243.py,sha256=IXcvSuo9pLaTTo4XNBB6_ln-2TzOV5PU5ugti0BWbxA,5083
37
- cmem_cmemc/migrations/bootstrap_data.py,sha256=RF0vyFTGUQ_RcpTTWZmm3XLAJAJX2gSYcGwcBmRmU8A,963
38
- cmem_cmemc/migrations/shapes_widget_integrations_243.py,sha256=jRWtTFeMom-xUI7UaoTa3DoLmmdwFmaw9XYxvnelxMo,8746
39
- cmem_cmemc/migrations/sparql_query_texts_242.py,sha256=K_GbxaX5-kkQKDZMq8UvT1vHazde53htwdDHGyB0b9s,1568
40
- cmem_cmemc/migrations/workspace_configurations.py,sha256=tFmCdfEL10ICjqMXQEIf-9fveE41HBQ_jaWNQJENz50,998
41
- cmem_cmemc/object_list.py,sha256=NYArisZxCV4pws_Tgk_xyltLN6TStkxQAgy-WLlzOxc,14712
42
- cmem_cmemc/parameter_types/__init__.py,sha256=Jqhwnw5a2oPNMClzUyovWiieK60RCl3rvSNr-t3wP84,36
43
- cmem_cmemc/parameter_types/path.py,sha256=hrisrXA1V8AtlWv-zxMYFGyf3RBCet4CW-Z2yTmhcwg,2002
44
- cmem_cmemc/smart_path/__init__.py,sha256=zDgm1kDrzLyCuIcNb8VXSdnb_CcVNjGkjgiIDVlsh74,3023
45
- cmem_cmemc/smart_path/clients/__init__.py,sha256=YFOm69BfTCRvAcJjN_CoUmCv3kzEciyYOPUG337p_pA,1696
46
- cmem_cmemc/smart_path/clients/http.py,sha256=3clZu2v4uuOvPY4MY_8SVSy7hIXJDNooahFRBRpy0ok,2347
47
- cmem_cmemc/string_processor.py,sha256=kSVePdgFmf2ekurKj6TbDJn6ur82VGLwCsTJ9ODfBEU,2879
48
- cmem_cmemc/title_helper.py,sha256=7frjAR54_Xc1gszOWXfzSmKFTawNJQ7kkXhZcHmQLyw,1250
49
- cmem_cmemc/utils.py,sha256=DXcJo6F2rYP1xeaI3wSvUVlS6GXbGTDJZLci7T5Rgd4,12220
50
- cmem_cmemc-24.3.3.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
51
- cmem_cmemc-24.3.3.dist-info/METADATA,sha256=SwZmHE0rxwd7XEA1ag86JS0GMyOIP-YLt89jBHa3d9Y,5641
52
- cmem_cmemc-24.3.3.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
53
- cmem_cmemc-24.3.3.dist-info/entry_points.txt,sha256=znWUTG-zgDITu6Frsd-OtNxBxj6Uo8Fa7bz6gaZYMrA,41
54
- cmem_cmemc-24.3.3.dist-info/RECORD,,
@@ -1,3 +0,0 @@
1
- [console_scripts]
2
- cmemc=cmem_cmemc:main
3
-