cmem-cmemc 24.1.1rc1__py3-none-any.whl → 24.1.2__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.
cmem_cmemc/__init__.py CHANGED
@@ -1,4 +1,5 @@
1
1
  """The main command line interface."""
2
+
2
3
  import contextlib
3
4
  import os
4
5
  import sys
@@ -1,4 +1,5 @@
1
1
  """cmemc commands."""
2
+
2
3
  from click_didyoumean import DYMGroup
3
4
  from click_help_colors import HelpColorsCommand, HelpColorsGroup
4
5
 
@@ -1,4 +1,5 @@
1
1
  """admin commands for cmem command line interface."""
2
+
2
3
  from datetime import UTC, datetime
3
4
 
4
5
  import click
@@ -41,9 +42,6 @@ def _check_graphdb_license(app: ApplicationContext, data: dict, months: int, exi
41
42
  # DP < 24.1 has no graph license information here
42
43
  return
43
44
  expiration_date_str = data["dp"]["info"]["store"]["licenseExpiration"]
44
- if expiration_date_str == "1970-01-01":
45
- # DP = 24.1 outputs this for GraphDB free ...¯\_(ツ)_/¯
46
- return
47
45
  expiration_date = datetime.strptime(expiration_date_str, "%Y-%m-%d").astimezone(tz=UTC)
48
46
  grace_starts = expiration_date - relativedelta(months=months)
49
47
  if grace_starts < datetime.now(tz=UTC):
@@ -1,4 +1,5 @@
1
1
  """configuration commands for cmem command line interface."""
2
+
2
3
  import click
3
4
 
4
5
  from cmem_cmemc.commands import CmemcCommand, CmemcGroup
@@ -1,4 +1,5 @@
1
1
  """dataset commands for cmem command line interface."""
2
+
2
3
  import json
3
4
  import re
4
5
  from pathlib import Path
@@ -284,7 +285,7 @@ def _check_or_set_dataset_type(
284
285
 
285
286
  """
286
287
  source = Path(dataset_file).name if dataset_file else ""
287
- target = parameter_dict["file"] if "file" in parameter_dict else ""
288
+ target = parameter_dict.get("file", "")
288
289
  suggestions = (
289
290
  (".ttl", "file"),
290
291
  (".csv", "csv"),
@@ -1,4 +1,5 @@
1
1
  """graph commands for cmem command line interface."""
2
+
2
3
  import hashlib
3
4
  import json
4
5
  import os
@@ -1,4 +1,5 @@
1
1
  """DataIntegration project commands for the cmem command line interface."""
2
+
2
3
  import os
3
4
  import shutil
4
5
  import tempfile
@@ -1,4 +1,5 @@
1
1
  """DataIntegration python management commands."""
2
+
2
3
  import sys
3
4
  from dataclasses import asdict
4
5
  from re import match
@@ -49,6 +50,10 @@ def install_command(app: ApplicationContext, package: str) -> None:
49
50
  .tar.gz file, by uploading a build distribution .whl file, or by
50
51
  specifying a package name, i.e., a pip requirement specifier with a
51
52
  package name available on pypi.org (e.g. `requests==2.27.1`).
53
+
54
+ Note: The tab-completion of this command lists only public packages from
55
+ pypi.org and not from additional or changed python package repositories you
56
+ may have configured on the server.
52
57
  """
53
58
  app.echo_info(f"Install package {package} ... ", nl=False)
54
59
  try:
@@ -1,4 +1,5 @@
1
1
  """query commands for cmem command line interface."""
2
+
2
3
  import json
3
4
  import sys
4
5
  from hashlib import sha1
@@ -1,4 +1,5 @@
1
1
  """DataIntegration dataset resource commands for cmemc."""
2
+
2
3
  import re
3
4
 
4
5
  import click
@@ -1,4 +1,5 @@
1
1
  """DataIntegration scheduler commands for the cmem command line interface."""
2
+
2
3
  from typing import Any
3
4
 
4
5
  import click
@@ -1,4 +1,5 @@
1
1
  """DataPlatform store commands for the cmem command line interface."""
2
+
2
3
  import os
3
4
  from pathlib import Path
4
5
 
@@ -1,4 +1,5 @@
1
1
  """Keycloak user management commands"""
2
+
2
3
  import sys
3
4
  from getpass import getpass
4
5
 
@@ -1,4 +1,5 @@
1
1
  """graph validation command group"""
2
+
2
3
  import time
3
4
  from datetime import UTC, datetime
4
5
 
@@ -295,7 +296,7 @@ def _get_resource_count(batch_validation: dict) -> str:
295
296
 
296
297
  def _get_violation_count(process_data: dict) -> str:
297
298
  """Get violation count from validation report"""
298
- if process_data.get("executionStarted", None) is None:
299
+ if process_data.get("executionStarted") is None:
299
300
  return "-"
300
301
  resources = str(process_data.get("resourcesWithViolationsCount", "0"))
301
302
  violations = str(process_data.get("violationsCount", "0"))
@@ -1,4 +1,5 @@
1
1
  """DataIntegration variable commands for cmemc."""
2
+
2
3
  import re
3
4
 
4
5
  import click
@@ -1,4 +1,5 @@
1
1
  """vocabularies commands for cmem command line interface."""
2
+
2
3
  import io
3
4
  from datetime import UTC, datetime
4
5
  from re import match
@@ -150,7 +151,7 @@ def _insert_catalog_entry(iri: str, prefix: str, namespace: str, label: str, lan
150
151
 
151
152
 
152
153
  def _get_vocabulary_metadata_from_file(
153
- file: io.StringIO, namespace_given: bool = False
154
+ file: io.BytesIO, namespace_given: bool = False
154
155
  ) -> dict[str, str]:
155
156
  """Get potential graph iri and prefix/namespace from a turtle file."""
156
157
  metadata = {"iri": "", "prefix": "", "namespace": ""}
@@ -345,19 +346,19 @@ def import_command(
345
346
  description which correctly uses the `vann:preferredNamespacePrefix` and
346
347
  `vann:preferredNamespaceUri` properties.
347
348
  """
348
- string_buffer = io.StringIO()
349
+ _buffer = io.BytesIO()
349
350
  with click.open_file(file, "rb") as file_handle:
350
- string_buffer.write(file_handle.read().decode("utf-8"))
351
- string_buffer.seek(0)
351
+ _buffer.write(file_handle.read())
352
+ _buffer.seek(0)
352
353
 
353
354
  # fetch metadata
354
355
  if namespace != (None, None):
355
356
  _validate_namespace(app, namespace)
356
- meta_data = _get_vocabulary_metadata_from_file(string_buffer, True)
357
+ meta_data = _get_vocabulary_metadata_from_file(_buffer, True)
357
358
  meta_data["prefix"] = namespace[0] # type: ignore[assignment]
358
359
  meta_data["namespace"] = namespace[1] # type: ignore[assignment]
359
360
  else:
360
- meta_data = _get_vocabulary_metadata_from_file(string_buffer, False)
361
+ meta_data = _get_vocabulary_metadata_from_file(_buffer, False)
361
362
  iri = meta_data["iri"]
362
363
 
363
364
  success_message = "done"
@@ -368,8 +369,8 @@ def import_command(
368
369
  raise ValueError(f"Proposed graph {iri} does already exist.")
369
370
  app.echo_info(f"Import {file} as vocabulary to {iri} ... ", nl=False)
370
371
  # upload graph
371
- string_buffer.seek(0)
372
- graph_api.post_streamed(iri, string_buffer, replace=True)
372
+ _buffer.seek(0)
373
+ graph_api.post_streamed(iri, _buffer, replace=True)
373
374
 
374
375
  # resolve label
375
376
  resolved_label_object: dict = resolve([iri], graph=iri)[iri]
@@ -1,4 +1,5 @@
1
1
  """workflow commands for cmem command line interface."""
2
+
2
3
  import re
3
4
  import sys
4
5
  import time
@@ -338,9 +339,9 @@ def _workflow_echo_status(app: ApplicationContext, status: dict) -> None:
338
339
  f"statusName is {status_name}, expecting one of: " "Running, Canceling or Waiting."
339
340
  )
340
341
  # not running can be Idle or Finished
341
- if "failed" in status and status["failed"]:
342
+ if status.get("failed"):
342
343
  app.echo_error(message, nl=True, err=False)
343
- elif "cancelled" in status and status["cancelled"]:
344
+ elif status.get("cancelled"):
344
345
  app.echo_warning(message)
345
346
  elif status["statusName"] == "Idle":
346
347
  app.echo_info(message)
@@ -1,4 +1,5 @@
1
1
  """workspace commands for cmem command line interface."""
2
+
2
3
  import os
3
4
  from pathlib import Path
4
5
 
cmem_cmemc/completion.py CHANGED
@@ -1,4 +1,5 @@
1
1
  """Utility functions for CLI auto-completion functionality."""
2
+
2
3
  # ruff: noqa: ARG001
3
4
  import os
4
5
  from contextlib import suppress
cmem_cmemc/constants.py CHANGED
@@ -1,4 +1,5 @@
1
1
  """cmemc constants"""
2
+
2
3
  NAMESPACES = {
3
4
  "void": "http://rdfs.org/ns/void#",
4
5
  "di": "https://vocab.eccenca.com/di/",
cmem_cmemc/context.py CHANGED
@@ -1,4 +1,5 @@
1
1
  """The main command line interface."""
2
+
2
3
  import ast
3
4
  import configparser
4
5
  import json
@@ -21,6 +22,7 @@ from pygments.lexers import get_lexer_by_name
21
22
  from rich import box
22
23
  from rich.console import Console
23
24
  from rich.table import Table
25
+ from urllib3.exceptions import InsecureRequestWarning
24
26
 
25
27
  from cmem_cmemc.exceptions import InvalidConfigurationError
26
28
 
@@ -47,6 +49,8 @@ KNOWN_CONFIG_KEYS = {
47
49
 
48
50
  KNOWN_SECRET_KEYS = ("OAUTH_PASSWORD", "OAUTH_CLIENT_SECRET", "OAUTH_ACCESS_TOKEN")
49
51
 
52
+ SSL_VERIFY_WARNING = "SSL verification is disabled (SSL_VERIFY=False)."
53
+
50
54
 
51
55
  class ApplicationContext:
52
56
  """Context of the command line interface."""
@@ -142,12 +146,6 @@ class ApplicationContext:
142
146
  self.set_credential_from_process(_, _ + "_PROCESS", config)
143
147
 
144
148
  self.echo_debug(f"CA bundle loaded from {cmempy_config.get_requests_ca_bundle()}")
145
- # If cert validation is disabled, output a warning
146
- # Also disable library warnings:
147
- # https://urllib3.readthedocs.io/en/latest/advanced-usage.html
148
- if not cmempy_config.get_ssl_verify():
149
- self.echo_warning("SSL verification is disabled (SSL_VERIFY=False).")
150
- urllib3.disable_warnings()
151
149
  return
152
150
 
153
151
  def set_connection_from_params(self, params: dict) -> None:
@@ -192,7 +190,7 @@ class ApplicationContext:
192
190
  self.config = self.get_config()
193
191
  self.connection = None
194
192
  if section_string is None or section_string == "":
195
- self.echo_debug("No config given, use API default connection.")
193
+ self.echo_debug("No config given, use API defaults or environment connection.")
196
194
  elif section_string not in self.config:
197
195
  raise InvalidConfigurationError(
198
196
  f"There is no connection '{section_string}' configured in "
@@ -202,6 +200,14 @@ class ApplicationContext:
202
200
  self.echo_debug(f"Use connection config: {section_string}")
203
201
  self.connection = self.config[section_string]
204
202
  self.configure_cmempy(self.connection)
203
+
204
+ # If cert validation is disabled, output a warning
205
+ # Also disable library warnings:
206
+ # https://urllib3.readthedocs.io/en/latest/advanced-usage.html#tls-warnings
207
+ if not cmempy_config.get_ssl_verify():
208
+ self.echo_warning(SSL_VERIFY_WARNING)
209
+ urllib3.disable_warnings(category=InsecureRequestWarning)
210
+
205
211
  return self.connection
206
212
 
207
213
  def get_config_file(self) -> Path:
@@ -1,4 +1,5 @@
1
1
  """Generate a help text and command structure graph."""
2
+
2
3
  import contextlib
3
4
 
4
5
  import click.core
@@ -1,4 +1,5 @@
1
1
  """Generate a multi page documentation for documentation.eccenca.com."""
2
+
2
3
  import re
3
4
  from pathlib import Path
4
5
 
cmem_cmemc/object_list.py CHANGED
@@ -1,4 +1,5 @@
1
1
  """Filterable object list."""
2
+
2
3
  import re
3
4
  from abc import ABC, abstractmethod
4
5
  from collections.abc import Callable
cmem_cmemc/utils.py CHANGED
@@ -1,4 +1,5 @@
1
1
  """Utility functions for CLI interface."""
2
+
2
3
  import json
3
4
  import os
4
5
  import re
@@ -295,6 +296,8 @@ def get_published_packages() -> list[PublishedPackage]:
295
296
  name = _.findChildren(class_="package-snippet__name")[0].getText()
296
297
  if name == "cmem-plugin-base":
297
298
  continue
299
+ if not name.startswith("cmem-plugin-"):
300
+ continue
298
301
  description = _.findChildren(class_="package-snippet__description")[0].getText()
299
302
  package_version = _.findChildren(class_="package-snippet__version")[0].getText()
300
303
  published = _.findChildren(name="time")[0].attrs["datetime"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cmem-cmemc
3
- Version: 24.1.1rc1
3
+ Version: 24.1.2
4
4
  Summary: Command line client for eccenca Corporate Memory
5
5
  Home-page: https://eccenca.com/go/cmemc
6
6
  License: Apache 2.0
@@ -26,7 +26,7 @@ Requires-Dist: certifi (>=2023.5.7)
26
26
  Requires-Dist: click (>=8.1.7,<9.0.0)
27
27
  Requires-Dist: click-didyoumean (>=0.3.0,<0.4.0)
28
28
  Requires-Dist: click-help-colors (>=0.9.1,<0.10.0)
29
- Requires-Dist: cmem-cmempy (==24.1.0)
29
+ Requires-Dist: cmem-cmempy (==24.1.1)
30
30
  Requires-Dist: configparser (>=5.3.0,<6.0.0)
31
31
  Requires-Dist: jinja2 (>=3.1.2,<4.0.0)
32
32
  Requires-Dist: natsort (>=8.3.1,<9.0.0)
@@ -0,0 +1,37 @@
1
+ cmem_cmemc/__init__.py,sha256=WOoZ0R_OAd5p6NAtcQGFdvDv5OLBeQOUYWHY-f3CNzc,5789
2
+ cmem_cmemc/_cmemc.zsh,sha256=fmkrBHIQxus8cp2AgO1tzZ5mNZdGL_83cYz3a9uAdsg,1326
3
+ cmem_cmemc/commands/__init__.py,sha256=_PsHWhMFwyfRAYInt0AOs3dA3Cuqhsnf_enFLjxVCGQ,3626
4
+ cmem_cmemc/commands/acl.py,sha256=cA76UvQquhZc9MdS3e94kcfSn9V_RzTQ5XM0Ko6w6hM,13769
5
+ cmem_cmemc/commands/admin.py,sha256=tlN4bK_xcqeEUnA0DlbNPsSMXm_CeF_K1_mvybBqLe8,8658
6
+ cmem_cmemc/commands/client.py,sha256=23Sc3h64eAMaB4bJVfiamR470DMpDj1hsPWKsxUSMLg,5039
7
+ cmem_cmemc/commands/config.py,sha256=9-xEtHoJyaqU9J7C8a3Q7SpPvJQHLufMXxZYuXYQ5Pk,5699
8
+ cmem_cmemc/commands/dataset.py,sha256=hn3449Aby_lMgBHumSHqFn6SZS9q3cmh3ZMoUOG85RE,30198
9
+ cmem_cmemc/commands/graph.py,sha256=_VtYwOU3SmNbKAQaSKHrVSTOSP3FCrs-W4jmzTQzx7M,27329
10
+ cmem_cmemc/commands/metrics.py,sha256=BlZvYvp1RWLl9rEknxxcOnOh2_zQgGqMEEXFwtJa58E,7832
11
+ cmem_cmemc/commands/project.py,sha256=XP4vovTTgMzvO-218SpWYnFejayWoNN4DLTp448zVuU,19268
12
+ cmem_cmemc/commands/python.py,sha256=4fYWztPZjLVuz12vuApHE8el9zQvbnwGDiLh1fo7vqA,9666
13
+ cmem_cmemc/commands/query.py,sha256=mx_pZB9ovD8j_svpdDTE82R1pUrwL41OICwcExpXA4s,26792
14
+ cmem_cmemc/commands/resource.py,sha256=n6ri6Tu2sNUNZuNfNGpRnMQxOx9VeTFGL1OWXUKKpjE,7534
15
+ cmem_cmemc/commands/scheduler.py,sha256=L9Cl7u3Nq3UjfgRzayivxxCHq2U6ZtpqtTCsXsndnFg,8512
16
+ cmem_cmemc/commands/store.py,sha256=PybRXCO6R84lEWR8fsTB1jZrc8CMGrWejpruPuM9lIM,6741
17
+ cmem_cmemc/commands/user.py,sha256=0BbPoPhguSeMjLUn29Qh3kRcMbpQ75bAwDHgYWrZMyQ,12288
18
+ cmem_cmemc/commands/validation.py,sha256=vCjkFyJOAJWjFedhgdOUabSopQUt7b0bZUPt2DB0Z4g,19943
19
+ cmem_cmemc/commands/variable.py,sha256=IvQ-Yzg2z8Hb-ZstEuOCTMBDg0N931z_73K9xZPbdoM,11356
20
+ cmem_cmemc/commands/vocabulary.py,sha256=rwPSMiJ9wrDww7Jmk20wsrbx2JqAHeXZ1_F9rpWoFjM,16679
21
+ cmem_cmemc/commands/workflow.py,sha256=Uq4KaSUYuIlLQr-VyLGyhTEJOh873iSvH5rGu6KtIsY,24609
22
+ cmem_cmemc/commands/workspace.py,sha256=4kMstZejLdP8KIrt9p3BMw8mrrNUrdX7E8_fSI78nc4,4097
23
+ cmem_cmemc/completion.py,sha256=amF9lWdxrWvS1CAQkEOQH1S7FpbmMniw6xjKlFOw4kY,42011
24
+ cmem_cmemc/constants.py,sha256=s16jrvmIt42a1SrahwjON5prk8ry6MuAXHeBnuMDZyY,422
25
+ cmem_cmemc/context.py,sha256=mcCY8c1JPOTB_1mWEBsxgOfRzgA69Vnfh2HN6h20hmU,17707
26
+ cmem_cmemc/exceptions.py,sha256=SpUHdmVM8cZpSjBv6ICgr9NLr3OJ5XO42DlvjohprVo,232
27
+ cmem_cmemc/manual_helper/__init__.py,sha256=G3Lqw2aPxo8x63Tg7L0aa5VD9BMaRzZDmhrog7IuEPg,43
28
+ cmem_cmemc/manual_helper/graph.py,sha256=qDchHdjRRDW2oZ66by81NxhoDgNxXaAUxq2keewEiVU,3598
29
+ cmem_cmemc/manual_helper/multi_page.py,sha256=K-S2_NubrHGynO5I_IMAanO2pZN2KETUV00wpjMqvjI,12171
30
+ cmem_cmemc/manual_helper/single_page.py,sha256=sVSeaZmPa-Cs6dtp27MqyiO6rIrskY9BtDyeAZhBWXM,1477
31
+ cmem_cmemc/object_list.py,sha256=QU-8JE5jvFcrUelEC4l5z7A9SInNnCRzRTS1bMw5FZc,13256
32
+ cmem_cmemc/utils.py,sha256=AiZMholCLF744TaNH-k86WNQavtCQstNfiwKQ2lJ5B4,10720
33
+ cmem_cmemc-24.1.2.dist-info/LICENSE,sha256=WNHhf_5RCaeuKWyq_K39vmp9F28LxKsB4SpomwSZ2L0,11357
34
+ cmem_cmemc-24.1.2.dist-info/METADATA,sha256=FFvhFZZOK8AaUlRNYUouNuYF1Zd9yN8PxuQYE1dcZ2I,2619
35
+ cmem_cmemc-24.1.2.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
36
+ cmem_cmemc-24.1.2.dist-info/entry_points.txt,sha256=znWUTG-zgDITu6Frsd-OtNxBxj6Uo8Fa7bz6gaZYMrA,41
37
+ cmem_cmemc-24.1.2.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 1.8.1
2
+ Generator: poetry-core 1.9.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
@@ -1,37 +0,0 @@
1
- cmem_cmemc/__init__.py,sha256=w73jTA8dNxxVbGqEXjpwavMgGaFxbtYLe7xfdhgA6DE,5788
2
- cmem_cmemc/_cmemc.zsh,sha256=fmkrBHIQxus8cp2AgO1tzZ5mNZdGL_83cYz3a9uAdsg,1326
3
- cmem_cmemc/commands/__init__.py,sha256=Bv4Pqp3Zd6hiR8nD9ynGZV5XEyNCm24lulNYunrh6V8,3625
4
- cmem_cmemc/commands/acl.py,sha256=cA76UvQquhZc9MdS3e94kcfSn9V_RzTQ5XM0Ko6w6hM,13769
5
- cmem_cmemc/commands/admin.py,sha256=qM1Qeoo1teRupYBY_E1qLVmszNxfez7AImtlblMDTHg,8783
6
- cmem_cmemc/commands/client.py,sha256=23Sc3h64eAMaB4bJVfiamR470DMpDj1hsPWKsxUSMLg,5039
7
- cmem_cmemc/commands/config.py,sha256=BazGuXA5Pcs-yal6QAnf-16CEv59bnCVDqhJkLJMiKE,5698
8
- cmem_cmemc/commands/dataset.py,sha256=o11fMe9oAhgWRkFaBebnCTf5S3MYE3byLOEah_rOJYM,30225
9
- cmem_cmemc/commands/graph.py,sha256=cylE7IBe-BRMHhYvCl8SSSfDDn1UKzaiqbYg0JzDWz0,27328
10
- cmem_cmemc/commands/metrics.py,sha256=BlZvYvp1RWLl9rEknxxcOnOh2_zQgGqMEEXFwtJa58E,7832
11
- cmem_cmemc/commands/project.py,sha256=9yBFWVVNn2owv27VQJbW0SL_LA2K70NJ57NMkQso8y4,19267
12
- cmem_cmemc/commands/python.py,sha256=9XPLExJ19BqXIYOp34KZtTRheSiChQya5I7gSCBaMso,9468
13
- cmem_cmemc/commands/query.py,sha256=BV0l_4slhoZPcUD0uZCAJmW-bamj4dVvVhP5BrDDMRY,26791
14
- cmem_cmemc/commands/resource.py,sha256=baOyuyF5TVHT1goMC8fB5V_mg0NoiM3oVGE7UrDTW0w,7533
15
- cmem_cmemc/commands/scheduler.py,sha256=DFmb8ISYr94xYeZ07PrLwCU5en7XKtWbAnVsKkKHnSA,8511
16
- cmem_cmemc/commands/store.py,sha256=hgY4VhsGEVUac2B0MjGIvSr4tUzl4gWu_x8XsBMNPfE,6740
17
- cmem_cmemc/commands/user.py,sha256=Ma-dEI_Nr0dout4GlAdkWw5ydKATlG8In1O3aPTpS3o,12287
18
- cmem_cmemc/commands/validation.py,sha256=rKNatJbkAmfc19gGUvs0FusPKuJ0ZUXN1Yl1kHtFvSU,19948
19
- cmem_cmemc/commands/variable.py,sha256=a2U6r0bCI90WPGi_ZMw2Wpy8_qNbLCHfTIgVuUMOwWQ,11355
20
- cmem_cmemc/commands/vocabulary.py,sha256=OvIrSrgLuo3FO69zdrFm5e-eEcrc2tX_h71XCm_Bh7I,16738
21
- cmem_cmemc/commands/workflow.py,sha256=DqxxdvbBQBMF1PCgGi4uBiXyV6EsFOEpES7Bi71lBtU,24649
22
- cmem_cmemc/commands/workspace.py,sha256=XA0Zo_C9A8yaIi75iumtUnpimYinbQvZLszFbLl4qDs,4096
23
- cmem_cmemc/completion.py,sha256=r6XOG6nOCnfL8HLqIbXnID_eHoZTK0OUxB-QWxOouT0,42010
24
- cmem_cmemc/constants.py,sha256=rQ7QXkO99y3TA2isjx209C62Zt2u72lwRrteq9OkKo8,421
25
- cmem_cmemc/context.py,sha256=SVtbOjgtrL7f80llPa_z5aNExdbrxlYY3uGtv20M2U8,17549
26
- cmem_cmemc/exceptions.py,sha256=SpUHdmVM8cZpSjBv6ICgr9NLr3OJ5XO42DlvjohprVo,232
27
- cmem_cmemc/manual_helper/__init__.py,sha256=G3Lqw2aPxo8x63Tg7L0aa5VD9BMaRzZDmhrog7IuEPg,43
28
- cmem_cmemc/manual_helper/graph.py,sha256=tJsqv5eSIvlpFpQIQ5SZCLPYsaOnwsUUAKHniXpwVlE,3597
29
- cmem_cmemc/manual_helper/multi_page.py,sha256=JeRHTgfXD_8Ani9wzyBK8aUOfKfYeaat3U90I-CdykE,12170
30
- cmem_cmemc/manual_helper/single_page.py,sha256=sVSeaZmPa-Cs6dtp27MqyiO6rIrskY9BtDyeAZhBWXM,1477
31
- cmem_cmemc/object_list.py,sha256=6TeJ2sc8olLhXYvPCr_CUE009RjsgpEYEl2AUm5G6Vg,13255
32
- cmem_cmemc/utils.py,sha256=2ma2yVIbII9aCHGcZl9k9j1Xcx34d5dPhs_ncVVsk7Y,10650
33
- cmem_cmemc-24.1.1rc1.dist-info/LICENSE,sha256=WNHhf_5RCaeuKWyq_K39vmp9F28LxKsB4SpomwSZ2L0,11357
34
- cmem_cmemc-24.1.1rc1.dist-info/METADATA,sha256=NVOp7Mt0WV5nnnEpn5El37CRLJfO7NhAf-GWkNJ3jE8,2622
35
- cmem_cmemc-24.1.1rc1.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
36
- cmem_cmemc-24.1.1rc1.dist-info/entry_points.txt,sha256=znWUTG-zgDITu6Frsd-OtNxBxj6Uo8Fa7bz6gaZYMrA,41
37
- cmem_cmemc-24.1.1rc1.dist-info/RECORD,,