str-to-obj 2025.1__py3-none-any.whl → 2025.3__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
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,,