str-to-obj 2025.1__py3-none-any.whl → 2025.3__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.
str_to_obj/main.py CHANGED
@@ -29,11 +29,7 @@ def ObjectFromStr(
29
29
  issues = [f'{string}: Invalid value; Expected="NONE" or "None" or "none".']
30
30
  return None, issues
31
31
 
32
- # value = _ObjectFromStr(string)
33
- try:
34
- value = bstr.literal_eval(string)
35
- except (SyntaxError, ValueError):
36
- value = string
32
+ value = _ObjectFromStr(string)
37
33
 
38
34
  if expected_type is None:
39
35
  return value, []
@@ -41,21 +37,21 @@ def ObjectFromStr(
41
37
  return CastValue(value, expected_type)
42
38
 
43
39
 
44
- # def _ObjectFromStr(string: str | h.Any, /)-> h.Any:
45
- # """"""
46
- # # if not isinstance(string, str):
47
- # # return string
48
- #
49
- # try:
50
- # value = bstr.literal_eval(string)
51
- # except (SyntaxError, ValueError):
52
- # value = string
53
- #
54
- # # if isinstance(value, h.Sequence) and not isinstance(value, str):
55
- # # stripe = type(value)
56
- # # value = stripe(_ObjectFromStr(_elm) for _elm in value)
57
- #
58
- # return value
40
+ def _ObjectFromStr(string: str | h.Any, /)-> h.Any:
41
+ """"""
42
+ if not isinstance(string, str):
43
+ return string
44
+
45
+ try:
46
+ value = bstr.literal_eval(string)
47
+ except (SyntaxError, ValueError):
48
+ value = string
49
+
50
+ if isinstance(value, h.Sequence) and not isinstance(value, str):
51
+ stripe = type(value)
52
+ value = stripe(_ObjectFromStr(_elm) for _elm in value)
53
+
54
+ return value
59
55
 
60
56
 
61
57
  """
@@ -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) -> simple_hint_h | 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
str_to_obj/version.py CHANGED
@@ -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.1"
7
+ __version__ = "2025.3"
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.1
3
+ Version: 2025.3
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
@@ -1,6 +1,6 @@
1
1
  str_to_obj/__init__.py,sha256=R22_7BvT9x1iJjVZzl1MraNV1TR73TBxnmiYasVp_Kw,2645
2
- str_to_obj/main.py,sha256=rzKdcK_qJ7IR29aIOZCDoNhQVfFV-EgF-pf35SNwDXA,3592
3
- str_to_obj/version.py,sha256=xNV5y9HqVZrz1nqjMLfqnMFHZE0yv6lVMBi5BS2quKQ,2206
2
+ str_to_obj/main.py,sha256=oxAWYP1tlED9Xk-GXJ45H_fUFYN9aNAOVK8rIvMd5dM,3441
3
+ str_to_obj/version.py,sha256=C8ZnOk6zy1HZcG0OVBHibqjKlpRCJy7cq2Ar9rGopww,2206
4
4
  str_to_obj/api/catalog.py,sha256=6ka6JciGdHFP93lg0yq2LO3iZBHfq0upZfXxQSg1izk,2521
5
5
  str_to_obj/api/type.py,sha256=yxD5wTtnh_h8Wa9_k1eex-nrkjtfh4ZJI6Db6hJHI9w,2468
6
6
  str_to_obj/catalog/boolean.py,sha256=G2ZkLqf1e3cpMzjiGgd3E0aAVs6_xlpzG3U2LiOFbio,3508
@@ -17,10 +17,10 @@ str_to_obj/task/comparison.py,sha256=HBzv7gBtOnROsC6Sq-FYpgd_MKzVJreboNiqkza3vJ8
17
17
  str_to_obj/task/inspection.py,sha256=M8YnYq4A_Zz7rC2kgTYSSSawTnG2dCug5FBoCOBJ5g8,3127
18
18
  str_to_obj/type/annotation.py,sha256=xXShME2Q344N3QlsqKtU6ttne54tTVC3b62CHU1TGUM,3838
19
19
  str_to_obj/type/hint.py,sha256=w-yos8eD4CHQsXPfnqeqAc-ozyDWqzw46FOWDtAh7dM,2810
20
- str_to_obj/type/hint_tree.py,sha256=0A0X-waAWLs8Q3MQ4FXlqQaIUXz6cDhBgw8vloIj0x4,7895
20
+ str_to_obj/type/hint_tree.py,sha256=DA69tIjrjQixPcLQCgI3MEnbIPDsRRNNYOb0SLA3pUI,7922
21
21
  str_to_obj/type/type.py,sha256=ywc7GpzM1BsoQ3F0qk4wZ2DG1KZllw-PNv_umIGt8hA,4147
22
22
  str_to_obj/type/value.py,sha256=r9Ko5HHant1JGbsO7vH1unRBr9guc61Jz2piuJT0BjM,2533
23
- str_to_obj-2025.1.dist-info/METADATA,sha256=Lxej_DybExSfQvS6D5v_LVvvE7Gcd6GylHCpF4oHIUs,6717
24
- str_to_obj-2025.1.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
25
- str_to_obj-2025.1.dist-info/top_level.txt,sha256=h-6bR_TAnXRGVSLTeNPlivlaG64xYM3E__Xg7sCgeug,11
26
- str_to_obj-2025.1.dist-info/RECORD,,
23
+ str_to_obj-2025.3.dist-info/METADATA,sha256=j-MjI8mpKIm1deFIgL3P0Y0dpP_giJeC0t36dvI2o1I,6717
24
+ str_to_obj-2025.3.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
25
+ str_to_obj-2025.3.dist-info/top_level.txt,sha256=h-6bR_TAnXRGVSLTeNPlivlaG64xYM3E__Xg7sCgeug,11
26
+ str_to_obj-2025.3.dist-info/RECORD,,