str-to-obj 2025.2__tar.gz → 2025.4__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.
Files changed (37) hide show
  1. {str_to_obj-2025.2 → str_to_obj-2025.4}/PKG-INFO +1 -1
  2. {str_to_obj-2025.2 → str_to_obj-2025.4}/package/str_to_obj/catalog/collection.py +6 -6
  3. {str_to_obj-2025.2 → str_to_obj-2025.4}/package/str_to_obj/catalog/number.py +7 -7
  4. {str_to_obj-2025.2 → str_to_obj-2025.4}/package/str_to_obj/type/hint_tree.py +4 -3
  5. {str_to_obj-2025.2 → str_to_obj-2025.4}/package/str_to_obj/version.py +1 -1
  6. {str_to_obj-2025.2 → str_to_obj-2025.4}/package/str_to_obj.egg-info/PKG-INFO +1 -1
  7. {str_to_obj-2025.2 → str_to_obj-2025.4}/MANIFEST.in +0 -0
  8. {str_to_obj-2025.2 → str_to_obj-2025.4}/README-COPYRIGHT-utf8.txt +0 -0
  9. {str_to_obj-2025.2 → str_to_obj-2025.4}/README-LICENCE-utf8.txt +0 -0
  10. {str_to_obj-2025.2 → str_to_obj-2025.4}/README.rst +0 -0
  11. {str_to_obj-2025.2 → str_to_obj-2025.4}/documentation/wiki/description.asciidoc +0 -0
  12. {str_to_obj-2025.2 → str_to_obj-2025.4}/package/str_to_obj/__init__.py +0 -0
  13. {str_to_obj-2025.2 → str_to_obj-2025.4}/package/str_to_obj/api/catalog.py +0 -0
  14. {str_to_obj-2025.2 → str_to_obj-2025.4}/package/str_to_obj/api/type.py +0 -0
  15. {str_to_obj-2025.2 → str_to_obj-2025.4}/package/str_to_obj/catalog/boolean.py +0 -0
  16. {str_to_obj-2025.2 → str_to_obj-2025.4}/package/str_to_obj/catalog/callable.py +0 -0
  17. {str_to_obj-2025.2 → str_to_obj-2025.4}/package/str_to_obj/catalog/choices.py +0 -0
  18. {str_to_obj-2025.2 → str_to_obj-2025.4}/package/str_to_obj/catalog/path.py +0 -0
  19. {str_to_obj-2025.2 → str_to_obj-2025.4}/package/str_to_obj/interface/console.py +0 -0
  20. {str_to_obj-2025.2 → str_to_obj-2025.4}/package/str_to_obj/main.py +0 -0
  21. {str_to_obj-2025.2 → str_to_obj-2025.4}/package/str_to_obj/runtime/type.py +0 -0
  22. {str_to_obj-2025.2 → str_to_obj-2025.4}/package/str_to_obj/runtime/value.py +0 -0
  23. {str_to_obj-2025.2 → str_to_obj-2025.4}/package/str_to_obj/task/casting.py +0 -0
  24. {str_to_obj-2025.2 → str_to_obj-2025.4}/package/str_to_obj/task/comparison.py +0 -0
  25. {str_to_obj-2025.2 → str_to_obj-2025.4}/package/str_to_obj/task/inspection.py +0 -0
  26. {str_to_obj-2025.2 → str_to_obj-2025.4}/package/str_to_obj/type/annotation.py +0 -0
  27. {str_to_obj-2025.2 → str_to_obj-2025.4}/package/str_to_obj/type/hint.py +0 -0
  28. {str_to_obj-2025.2 → str_to_obj-2025.4}/package/str_to_obj/type/type.py +0 -0
  29. {str_to_obj-2025.2 → str_to_obj-2025.4}/package/str_to_obj/type/value.py +0 -0
  30. {str_to_obj-2025.2 → str_to_obj-2025.4}/package/str_to_obj.egg-info/SOURCES.txt +0 -0
  31. {str_to_obj-2025.2 → str_to_obj-2025.4}/package/str_to_obj.egg-info/dependency_links.txt +0 -0
  32. {str_to_obj-2025.2 → str_to_obj-2025.4}/package/str_to_obj.egg-info/requires.txt +0 -0
  33. {str_to_obj-2025.2 → str_to_obj-2025.4}/package/str_to_obj.egg-info/top_level.txt +0 -0
  34. {str_to_obj-2025.2 → str_to_obj-2025.4}/pyproject.toml +0 -0
  35. {str_to_obj-2025.2 → str_to_obj-2025.4}/requirements.txt +0 -0
  36. {str_to_obj-2025.2 → str_to_obj-2025.4}/setup.cfg +0 -0
  37. {str_to_obj-2025.2 → str_to_obj-2025.4}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: str-to-obj
3
- Version: 2025.2
3
+ Version: 2025.4
4
4
  Summary: Convert strings to Python objects guided by (potentially annotated) type hints
5
5
  Home-page: https://src.koda.cnrs.fr/eric.debreuve/str-to-obj/
6
6
  Author: Eric Debreuve
@@ -8,7 +8,7 @@ import dataclasses as d
8
8
  import types as t
9
9
  import typing as h
10
10
 
11
- from logger_36 import LOGGER
11
+ from logger_36 import L
12
12
  from str_to_obj.type.annotation import annotation_t
13
13
  from str_to_obj.type.hint import any_hint_h
14
14
  from str_to_obj.type.type import type_t
@@ -48,10 +48,10 @@ class collection_t(annotation_t):
48
48
  else:
49
49
  self.lengths = tuple(sorted(self.lengths))
50
50
 
51
- with LOGGER.AddedContextLevel("Collection Annotation"):
51
+ with L.AddedContextLevel("Collection Annotation"):
52
52
  if isinstance(self.items_types, h.Sequence):
53
53
  if max(self.lengths) > self.items_types.__len__():
54
- LOGGER.StageIssue(
54
+ L.StageIssue(
55
55
  f'Allowed length(s) ("{original_lengths}") must not exceed '
56
56
  f"the length of the item types sequence "
57
57
  f'("{original_item_types}")'
@@ -59,7 +59,7 @@ class collection_t(annotation_t):
59
59
  if self.lengths != self.__class__.ANY_LENGTH:
60
60
  for length in self.lengths:
61
61
  if (not isinstance(length, int)) or (length < 0):
62
- LOGGER.StageIssue(
62
+ L.StageIssue(
63
63
  f"Invalid length in {self.lengths}",
64
64
  actual=length,
65
65
  expected="strictly positive integer",
@@ -76,8 +76,8 @@ class collection_t(annotation_t):
76
76
  stripe = type_t.NewForHint(stripe)
77
77
 
78
78
  if stripe.type not in cls.ACCEPTED_TYPES:
79
- with LOGGER.AddedContextLevel("Collection Annotation"):
80
- LOGGER.StageIssue(
79
+ with L.AddedContextLevel("Collection Annotation"):
80
+ L.StageIssue(
81
81
  f"Invalid type",
82
82
  actual=stripe.type.__name__,
83
83
  expected=", ".join(_elm.__name__ for _elm in cls.ACCEPTED_TYPES),
@@ -7,7 +7,7 @@ SEE COPYRIGHT NOTICE BELOW
7
7
  import dataclasses as d
8
8
  import typing as h
9
9
 
10
- from logger_36 import LOGGER
10
+ from logger_36 import L
11
11
  from str_to_obj.type.annotation import annotation_t
12
12
 
13
13
  number_h = int | float
@@ -30,11 +30,11 @@ class number_t(annotation_t):
30
30
  """"""
31
31
  stripe = self.__class__
32
32
 
33
- with LOGGER.AddedContextLevel("Number Annotation"):
33
+ with L.AddedContextLevel("Number Annotation"):
34
34
  if (self.min != stripe.INFINITY_NEG) and not isinstance(
35
35
  self.min, number_h.__args__
36
36
  ):
37
- LOGGER.StageIssue(
37
+ L.StageIssue(
38
38
  f"Invalid type for min value {self.min}",
39
39
  actual=type(self.min).__name__,
40
40
  expected=number_h,
@@ -42,7 +42,7 @@ class number_t(annotation_t):
42
42
  if (self.max != stripe.INFINITY_POS) and not isinstance(
43
43
  self.max, number_h.__args__
44
44
  ):
45
- LOGGER.StageIssue(
45
+ L.StageIssue(
46
46
  f"Invalid type for max value {self.max}",
47
47
  actual=type(self.max).__name__,
48
48
  expected=number_h,
@@ -50,13 +50,13 @@ class number_t(annotation_t):
50
50
  if (self.precision != stripe.INFINITE_PRECISION) and not isinstance(
51
51
  self.precision, number_h.__args__
52
52
  ):
53
- LOGGER.StageIssue(
53
+ L.StageIssue(
54
54
  f"Invalid type for precision {self.precision}",
55
55
  actual=type(self.precision).__name__,
56
56
  expected=number_h,
57
57
  )
58
58
  if self.precision < 0:
59
- LOGGER.StageIssue(f"Invalid, negative precision {self.precision}")
59
+ L.StageIssue(f"Invalid, negative precision {self.precision}")
60
60
  if (self.min > self.max) or (
61
61
  (self.min == self.max)
62
62
  and not (self.min_inclusive and self.max_inclusive)
@@ -69,7 +69,7 @@ class number_t(annotation_t):
69
69
  closing = "]"
70
70
  else:
71
71
  closing = "["
72
- LOGGER.StageIssue(
72
+ L.StageIssue(
73
73
  f"Empty value interval {opening}{self.min},{self.max}{closing}"
74
74
  )
75
75
 
@@ -17,9 +17,10 @@ from str_to_obj.type.hint import (
17
17
  any_hint_h,
18
18
  complex_hint_additions_h,
19
19
  non_complex_hint_h,
20
- simple_hint_h,
21
20
  )
22
21
 
22
+ hint_node_type_h = non_complex_hint_h | t.UnionType | t.EllipsisType | type[t.NoneType]
23
+
23
24
 
24
25
  @d.dataclass(slots=True, repr=False, eq=False)
25
26
  class _hint_node_t:
@@ -29,7 +30,7 @@ class _hint_node_t:
29
30
  otherwise.
30
31
  """
31
32
 
32
- type: non_complex_hint_h | t.UnionType | t.EllipsisType | type[t.NoneType]
33
+ type: hint_node_type_h
33
34
  annotations: tuple[annotation_t, ...] = d.field(default_factory=tuple)
34
35
  literal_s: tuple[h.Any, ...] | None = None
35
36
 
@@ -112,7 +113,7 @@ class hint_t(_hint_node_t):
112
113
  return output
113
114
 
114
115
  @property
115
- def template(self) -> type[_hint_node_t.type] | dict[int, h.Any] | None:
116
+ def template(self) -> type[hint_node_type_h] | dict[int, h.Any] | None:
116
117
  """"""
117
118
  if self.type is t.NoneType:
118
119
  return None
@@ -4,7 +4,7 @@ Contributor(s): Eric Debreuve (eric.debreuve@cnrs.fr) since 2023
4
4
  SEE COPYRIGHT NOTICE BELOW
5
5
  """
6
6
 
7
- __version__ = "2025.2"
7
+ __version__ = "2025.4"
8
8
 
9
9
 
10
10
  """
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: str-to-obj
3
- Version: 2025.2
3
+ Version: 2025.4
4
4
  Summary: Convert strings to Python objects guided by (potentially annotated) type hints
5
5
  Home-page: https://src.koda.cnrs.fr/eric.debreuve/str-to-obj/
6
6
  Author: Eric Debreuve
File without changes
File without changes
File without changes
File without changes
File without changes