labfreed 0.2.6a5__tar.gz → 0.2.6a6__tar.gz

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 labfreed might be problematic. Click here for more details.

Files changed (49) hide show
  1. {labfreed-0.2.6a5 → labfreed-0.2.6a6}/PKG-INFO +1 -1
  2. {labfreed-0.2.6a5 → labfreed-0.2.6a6}/labfreed/__init__.py +1 -1
  3. {labfreed-0.2.6a5 → labfreed-0.2.6a6}/labfreed/pac_id_resolver/cit_v2.py +6 -1
  4. {labfreed-0.2.6a5 → labfreed-0.2.6a6}/labfreed/pac_id_resolver/resolver.py +9 -5
  5. {labfreed-0.2.6a5 → labfreed-0.2.6a6}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  6. {labfreed-0.2.6a5 → labfreed-0.2.6a6}/.github/workflows/pypi-publish.yml +0 -0
  7. {labfreed-0.2.6a5 → labfreed-0.2.6a6}/.github/workflows/run-tests.yml +0 -0
  8. {labfreed-0.2.6a5 → labfreed-0.2.6a6}/CHANGELOG.md +0 -0
  9. {labfreed-0.2.6a5 → labfreed-0.2.6a6}/LICENSE +0 -0
  10. {labfreed-0.2.6a5 → labfreed-0.2.6a6}/README.md +0 -0
  11. {labfreed-0.2.6a5 → labfreed-0.2.6a6}/labfreed/labfreed_infrastructure.py +0 -0
  12. {labfreed-0.2.6a5 → labfreed-0.2.6a6}/labfreed/pac_cat/__init__.py +0 -0
  13. {labfreed-0.2.6a5 → labfreed-0.2.6a6}/labfreed/pac_cat/category_base.py +0 -0
  14. {labfreed-0.2.6a5 → labfreed-0.2.6a6}/labfreed/pac_cat/pac_cat.py +0 -0
  15. {labfreed-0.2.6a5 → labfreed-0.2.6a6}/labfreed/pac_cat/predefined_categories.py +0 -0
  16. {labfreed-0.2.6a5 → labfreed-0.2.6a6}/labfreed/pac_id/__init__.py +0 -0
  17. {labfreed-0.2.6a5 → labfreed-0.2.6a6}/labfreed/pac_id/extension.py +0 -0
  18. {labfreed-0.2.6a5 → labfreed-0.2.6a6}/labfreed/pac_id/id_segment.py +0 -0
  19. {labfreed-0.2.6a5 → labfreed-0.2.6a6}/labfreed/pac_id/pac_id.py +0 -0
  20. {labfreed-0.2.6a5 → labfreed-0.2.6a6}/labfreed/pac_id/url_parser.py +0 -0
  21. {labfreed-0.2.6a5 → labfreed-0.2.6a6}/labfreed/pac_id/url_serializer.py +0 -0
  22. {labfreed-0.2.6a5 → labfreed-0.2.6a6}/labfreed/pac_id_resolver/__init__.py +0 -0
  23. {labfreed-0.2.6a5 → labfreed-0.2.6a6}/labfreed/pac_id_resolver/cit_common.py +0 -0
  24. {labfreed-0.2.6a5 → labfreed-0.2.6a6}/labfreed/pac_id_resolver/cit_v1.py +0 -0
  25. {labfreed-0.2.6a5 → labfreed-0.2.6a6}/labfreed/pac_id_resolver/services.py +0 -0
  26. {labfreed-0.2.6a5 → labfreed-0.2.6a6}/labfreed/qr/__init__.py +0 -0
  27. {labfreed-0.2.6a5 → labfreed-0.2.6a6}/labfreed/qr/generate_qr.py +0 -0
  28. {labfreed-0.2.6a5 → labfreed-0.2.6a6}/labfreed/trex/__init__.py +0 -0
  29. {labfreed-0.2.6a5 → labfreed-0.2.6a6}/labfreed/trex/python_convenience/__init__.py +0 -0
  30. {labfreed-0.2.6a5 → labfreed-0.2.6a6}/labfreed/trex/python_convenience/data_table.py +0 -0
  31. {labfreed-0.2.6a5 → labfreed-0.2.6a6}/labfreed/trex/python_convenience/pyTREX.py +0 -0
  32. {labfreed-0.2.6a5 → labfreed-0.2.6a6}/labfreed/trex/python_convenience/quantity.py +0 -0
  33. {labfreed-0.2.6a5 → labfreed-0.2.6a6}/labfreed/trex/table_segment.py +0 -0
  34. {labfreed-0.2.6a5 → labfreed-0.2.6a6}/labfreed/trex/trex.py +0 -0
  35. {labfreed-0.2.6a5 → labfreed-0.2.6a6}/labfreed/trex/trex_base_models.py +0 -0
  36. {labfreed-0.2.6a5 → labfreed-0.2.6a6}/labfreed/trex/value_segments.py +0 -0
  37. {labfreed-0.2.6a5 → labfreed-0.2.6a6}/labfreed/utilities/base36.py +0 -0
  38. {labfreed-0.2.6a5 → labfreed-0.2.6a6}/labfreed/well_known_extensions/__init__.py +0 -0
  39. {labfreed-0.2.6a5 → labfreed-0.2.6a6}/labfreed/well_known_extensions/default_extension_interpreters.py +0 -0
  40. {labfreed-0.2.6a5 → labfreed-0.2.6a6}/labfreed/well_known_extensions/display_name_extension.py +0 -0
  41. {labfreed-0.2.6a5 → labfreed-0.2.6a6}/labfreed/well_known_extensions/trex_extension.py +0 -0
  42. {labfreed-0.2.6a5 → labfreed-0.2.6a6}/labfreed/well_known_keys/gs1/__init__.py +0 -0
  43. {labfreed-0.2.6a5 → labfreed-0.2.6a6}/labfreed/well_known_keys/gs1/gs1.py +0 -0
  44. {labfreed-0.2.6a5 → labfreed-0.2.6a6}/labfreed/well_known_keys/gs1/gs1_ai_enum_sorted.py +0 -0
  45. {labfreed-0.2.6a5 → labfreed-0.2.6a6}/labfreed/well_known_keys/labfreed/well_known_keys.py +0 -0
  46. {labfreed-0.2.6a5 → labfreed-0.2.6a6}/labfreed/well_known_keys/unece/UneceUnits.json +0 -0
  47. {labfreed-0.2.6a5 → labfreed-0.2.6a6}/labfreed/well_known_keys/unece/__init__.py +0 -0
  48. {labfreed-0.2.6a5 → labfreed-0.2.6a6}/labfreed/well_known_keys/unece/unece_units.py +0 -0
  49. {labfreed-0.2.6a5 → labfreed-0.2.6a6}/pyproject.toml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: labfreed
3
- Version: 0.2.6a5
3
+ Version: 0.2.6a6
4
4
  Summary: Python implementation of LabFREED building blocks
5
5
  Author-email: Reto Thürer <thuerer.r@buchi.com>
6
6
  Requires-Python: >=3.11
@@ -2,7 +2,7 @@
2
2
  Python implementation of LabFREED building blocks
3
3
  '''
4
4
 
5
- __version__ = "0.2.6a5"
5
+ __version__ = "0.2.6a6"
6
6
 
7
7
  from labfreed.pac_id import * # noqa: F403
8
8
  from labfreed.pac_cat import * # noqa: F403
@@ -130,7 +130,12 @@ class CIT_v2(LabFREED_BaseModel):
130
130
 
131
131
  @classmethod
132
132
  def from_yaml(cls, yml:str) -> Self:
133
- return cls.model_validate(yml)
133
+ try:
134
+ d = yaml.safe_load(yml)
135
+ except yaml.YAMLError as e:
136
+ # not a valid yaml
137
+ raise ValueError("This is not a valid yaml") from e
138
+ return cls.model_validate(d)
134
139
 
135
140
  def __str__(self):
136
141
  yml = yaml.dump(self.model_dump() )
@@ -1,4 +1,6 @@
1
+ from functools import lru_cache
1
2
  import logging
3
+ import traceback
2
4
  from typing import Self
3
5
  import yaml
4
6
  from requests import get
@@ -24,11 +26,11 @@ def load_cit(path):
24
26
 
25
27
  def cit_from_str(s:str, origin:str='') -> CIT_v1|CIT_v2:
26
28
  try:
27
- cit_yml= yaml.safe_load(s)
28
- cit2 = CIT_v2.from_yaml(cit_yml)
29
+ cit2 = CIT_v2.from_yaml(s)
29
30
  cit_version = 'v2'
30
31
  except Exception:
31
32
  cit2 = None
33
+ traceback.print_exc()
32
34
  try:
33
35
  cit1 = CIT_v1.from_csv(s, origin)
34
36
  cit_version = 'v1'
@@ -38,6 +40,7 @@ def cit_from_str(s:str, origin:str='') -> CIT_v1|CIT_v2:
38
40
  cit = cit2 or cit1 or None
39
41
  return cit
40
42
 
43
+ @lru_cache
41
44
  def _get_issuer_cit(issuer:str):
42
45
  '''Gets the issuer's cit.'''
43
46
  url = 'HTTPS://PAC.' + issuer + '/coupling-information-table'
@@ -64,15 +67,16 @@ class PAC_ID_Resolver():
64
67
  self._cits = cits
65
68
 
66
69
 
67
- def resolve(self, pac_url:PAC_ID|str, check_service_status=True) -> list[ServiceGroup]:
70
+ def resolve(self, pac_url:PAC_ID|str, check_service_status=True, use_issuer_cit=True) -> list[ServiceGroup]:
68
71
  '''Resolve a PAC-ID'''
69
72
  if isinstance(pac_url, str):
70
73
  pac_id = PAC_CAT.from_url(pac_url)
71
74
  pac_id_catless = PAC_ID.from_url(pac_url, try_pac_cat=False)
72
75
 
73
76
  cits = self._cits.copy()
74
- if issuer_cit := _get_issuer_cit(pac_id.issuer):
75
- cits.append(issuer_cit)
77
+ if use_issuer_cit:
78
+ if issuer_cit := _get_issuer_cit(pac_id.issuer):
79
+ cits.append(issuer_cit)
76
80
 
77
81
  matches = []
78
82
  for cit in cits:
File without changes
File without changes
File without changes
File without changes