str-to-obj 2024.4__py3-none-any.whl → 2024.6__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/__init__.py +0 -4
- str_to_obj/api/catalog.py +58 -0
- str_to_obj/api/type.py +58 -0
- str_to_obj/catalog/boolean.py +1 -1
- str_to_obj/catalog/collection.py +1 -3
- str_to_obj/interface/console.py +0 -1
- str_to_obj/main.py +2 -2
- str_to_obj/task/casting.py +12 -14
- str_to_obj/task/comparison.py +3 -3
- str_to_obj/type/annotation.py +56 -34
- str_to_obj/type/hint.py +51 -30
- str_to_obj/type/hint_tree.py +60 -41
- str_to_obj/type/type.py +61 -37
- str_to_obj/type/value.py +52 -30
- str_to_obj/version.py +1 -1
- {str_to_obj-2024.4.dist-info → str_to_obj-2024.6.dist-info}/METADATA +28 -19
- str_to_obj-2024.6.dist-info/RECORD +26 -0
- {str_to_obj-2024.4.dist-info → str_to_obj-2024.6.dist-info}/WHEEL +1 -1
- str_to_obj-2024.4.dist-info/RECORD +0 -24
- {str_to_obj-2024.4.dist-info → str_to_obj-2024.6.dist-info}/top_level.txt +0 -0
str_to_obj/__init__.py
CHANGED
@@ -6,12 +6,8 @@ SEE COPYRIGHT NOTICE BELOW
|
|
6
6
|
|
7
7
|
from str_to_obj.main import ObjectFromStr
|
8
8
|
from str_to_obj.runtime.value import INVALID_VALUE
|
9
|
-
from str_to_obj.task.casting import CastValue
|
10
|
-
from str_to_obj.type.annotation import annotation_t
|
11
|
-
from str_to_obj.type.type import type_t
|
12
9
|
from str_to_obj.version import __version__
|
13
10
|
|
14
|
-
|
15
11
|
"""
|
16
12
|
COPYRIGHT NOTICE
|
17
13
|
|
@@ -0,0 +1,58 @@
|
|
1
|
+
"""
|
2
|
+
Copyright CNRS/Inria/UniCA
|
3
|
+
Contributor(s): Eric Debreuve (eric.debreuve@cnrs.fr) since 2023
|
4
|
+
SEE COPYRIGHT NOTICE BELOW
|
5
|
+
"""
|
6
|
+
|
7
|
+
from str_to_obj.catalog.boolean import boolean_mode_e, boolean_t
|
8
|
+
from str_to_obj.catalog.callable import callable_t
|
9
|
+
from str_to_obj.catalog.choices import choices_t
|
10
|
+
from str_to_obj.catalog.collection import collection_t
|
11
|
+
from str_to_obj.catalog.number import number_t
|
12
|
+
from str_to_obj.catalog.path import path_purpose_e, path_t, path_type_e
|
13
|
+
|
14
|
+
"""
|
15
|
+
COPYRIGHT NOTICE
|
16
|
+
|
17
|
+
This software is governed by the CeCILL license under French law and
|
18
|
+
abiding by the rules of distribution of free software. You can use,
|
19
|
+
modify and/ or redistribute the software under the terms of the CeCILL
|
20
|
+
license as circulated by CEA, CNRS and INRIA at the following URL
|
21
|
+
"http://www.cecill.info".
|
22
|
+
|
23
|
+
As a counterpart to the access to the source code and rights to copy,
|
24
|
+
modify and redistribute granted by the license, users are provided only
|
25
|
+
with a limited warranty and the software's author, the holder of the
|
26
|
+
economic rights, and the successive licensors have only limited
|
27
|
+
liability.
|
28
|
+
|
29
|
+
In this respect, the user's attention is drawn to the risks associated
|
30
|
+
with loading, using, modifying and/or developing or reproducing the
|
31
|
+
software by the user in light of its specific status of free software,
|
32
|
+
that may mean that it is complicated to manipulate, and that also
|
33
|
+
therefore means that it is reserved for developers and experienced
|
34
|
+
professionals having in-depth computer knowledge. Users are therefore
|
35
|
+
encouraged to load and test the software's suitability as regards their
|
36
|
+
requirements in conditions enabling the security of their systems and/or
|
37
|
+
data to be ensured and, more generally, to use and operate it in the
|
38
|
+
same conditions as regards security.
|
39
|
+
|
40
|
+
The fact that you are presently reading this means that you have had
|
41
|
+
knowledge of the CeCILL license and that you accept its terms.
|
42
|
+
|
43
|
+
SEE LICENCE NOTICE: file README-LICENCE-utf8.txt at project source root.
|
44
|
+
|
45
|
+
This software is being developed by Eric Debreuve, a CNRS employee and
|
46
|
+
member of team Morpheme.
|
47
|
+
Team Morpheme is a joint team between Inria, CNRS, and UniCA.
|
48
|
+
It is hosted by the Centre Inria d'Université Côte d'Azur, Laboratory
|
49
|
+
I3S, and Laboratory iBV.
|
50
|
+
|
51
|
+
CNRS: https://www.cnrs.fr/index.php/en
|
52
|
+
Inria: https://www.inria.fr/en/
|
53
|
+
UniCA: https://univ-cotedazur.eu/
|
54
|
+
Centre Inria d'Université Côte d'Azur: https://www.inria.fr/en/centre/sophia/
|
55
|
+
I3S: https://www.i3s.unice.fr/en/
|
56
|
+
iBV: http://ibv.unice.fr/
|
57
|
+
Team Morpheme: https://team.inria.fr/morpheme/
|
58
|
+
"""
|
str_to_obj/api/type.py
ADDED
@@ -0,0 +1,58 @@
|
|
1
|
+
"""
|
2
|
+
Copyright CNRS/Inria/UniCA
|
3
|
+
Contributor(s): Eric Debreuve (eric.debreuve@cnrs.fr) since 2023
|
4
|
+
SEE COPYRIGHT NOTICE BELOW
|
5
|
+
"""
|
6
|
+
|
7
|
+
from str_to_obj.runtime.type import ANY_TYPE
|
8
|
+
from str_to_obj.task.casting import CastValue
|
9
|
+
from str_to_obj.task.comparison import TypesAreCompatible
|
10
|
+
from str_to_obj.type.annotation import annotation_t
|
11
|
+
from str_to_obj.type.hint_tree import hint_t
|
12
|
+
from str_to_obj.type.type import type_t
|
13
|
+
|
14
|
+
"""
|
15
|
+
COPYRIGHT NOTICE
|
16
|
+
|
17
|
+
This software is governed by the CeCILL license under French law and
|
18
|
+
abiding by the rules of distribution of free software. You can use,
|
19
|
+
modify and/ or redistribute the software under the terms of the CeCILL
|
20
|
+
license as circulated by CEA, CNRS and INRIA at the following URL
|
21
|
+
"http://www.cecill.info".
|
22
|
+
|
23
|
+
As a counterpart to the access to the source code and rights to copy,
|
24
|
+
modify and redistribute granted by the license, users are provided only
|
25
|
+
with a limited warranty and the software's author, the holder of the
|
26
|
+
economic rights, and the successive licensors have only limited
|
27
|
+
liability.
|
28
|
+
|
29
|
+
In this respect, the user's attention is drawn to the risks associated
|
30
|
+
with loading, using, modifying and/or developing or reproducing the
|
31
|
+
software by the user in light of its specific status of free software,
|
32
|
+
that may mean that it is complicated to manipulate, and that also
|
33
|
+
therefore means that it is reserved for developers and experienced
|
34
|
+
professionals having in-depth computer knowledge. Users are therefore
|
35
|
+
encouraged to load and test the software's suitability as regards their
|
36
|
+
requirements in conditions enabling the security of their systems and/or
|
37
|
+
data to be ensured and, more generally, to use and operate it in the
|
38
|
+
same conditions as regards security.
|
39
|
+
|
40
|
+
The fact that you are presently reading this means that you have had
|
41
|
+
knowledge of the CeCILL license and that you accept its terms.
|
42
|
+
|
43
|
+
SEE LICENCE NOTICE: file README-LICENCE-utf8.txt at project source root.
|
44
|
+
|
45
|
+
This software is being developed by Eric Debreuve, a CNRS employee and
|
46
|
+
member of team Morpheme.
|
47
|
+
Team Morpheme is a joint team between Inria, CNRS, and UniCA.
|
48
|
+
It is hosted by the Centre Inria d'Université Côte d'Azur, Laboratory
|
49
|
+
I3S, and Laboratory iBV.
|
50
|
+
|
51
|
+
CNRS: https://www.cnrs.fr/index.php/en
|
52
|
+
Inria: https://www.inria.fr/en/
|
53
|
+
UniCA: https://univ-cotedazur.eu/
|
54
|
+
Centre Inria d'Université Côte d'Azur: https://www.inria.fr/en/centre/sophia/
|
55
|
+
I3S: https://www.i3s.unice.fr/en/
|
56
|
+
iBV: http://ibv.unice.fr/
|
57
|
+
Team Morpheme: https://team.inria.fr/morpheme/
|
58
|
+
"""
|
str_to_obj/catalog/boolean.py
CHANGED
@@ -8,7 +8,7 @@ import dataclasses as d
|
|
8
8
|
import typing as h
|
9
9
|
from enum import Enum as enum_t
|
10
10
|
|
11
|
-
from logger_36 import FormattedMessage
|
11
|
+
from logger_36.format import FormattedMessage
|
12
12
|
from str_to_obj.type.annotation import annotation_t
|
13
13
|
from str_to_obj.type.hint import annotated_hint_t
|
14
14
|
|
str_to_obj/catalog/collection.py
CHANGED
@@ -4,8 +4,6 @@ Contributor(s): Eric Debreuve (eric.debreuve@cnrs.fr) since 2023
|
|
4
4
|
SEE COPYRIGHT NOTICE BELOW
|
5
5
|
"""
|
6
6
|
|
7
|
-
from __future__ import annotations
|
8
|
-
|
9
7
|
import dataclasses as d
|
10
8
|
import types as t
|
11
9
|
import typing as h
|
@@ -72,7 +70,7 @@ class collection_t(annotation_t):
|
|
72
70
|
cls,
|
73
71
|
stripe: any_hint_h | tuple[any_hint_h, ...] | type_t | tuple[type_t, ...],
|
74
72
|
/,
|
75
|
-
) ->
|
73
|
+
) -> h.Self:
|
76
74
|
""""""
|
77
75
|
if not isinstance(stripe, (type_t | tuple[type_t, ...])):
|
78
76
|
stripe = type_t.NewForHint(stripe)
|
str_to_obj/interface/console.py
CHANGED
str_to_obj/main.py
CHANGED
@@ -9,14 +9,14 @@ import types as t
|
|
9
9
|
import typing as h
|
10
10
|
|
11
11
|
from str_to_obj.task.casting import CastValue
|
12
|
-
from str_to_obj.type.hint_tree import any_hint_h,
|
12
|
+
from str_to_obj.type.hint_tree import any_hint_h, hint_t
|
13
13
|
|
14
14
|
|
15
15
|
def ObjectFromStr(
|
16
16
|
string: str,
|
17
17
|
/,
|
18
18
|
*,
|
19
|
-
expected_type: any_hint_h |
|
19
|
+
expected_type: any_hint_h | hint_t | type[t.NoneType] = None,
|
20
20
|
) -> tuple[h.Any, list[str]]:
|
21
21
|
"""
|
22
22
|
expected_type: Must not be passed explicitly as None since None is interpreted as
|
str_to_obj/task/casting.py
CHANGED
@@ -4,15 +4,13 @@ Contributor(s): Eric Debreuve (eric.debreuve@cnrs.fr) since 2023
|
|
4
4
|
SEE COPYRIGHT NOTICE BELOW
|
5
5
|
"""
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
import dataclasses as dtcl
|
7
|
+
import dataclasses as d
|
10
8
|
import types as t
|
11
9
|
import typing as h
|
12
10
|
from pathlib import Path as path_t
|
13
11
|
|
14
12
|
from str_to_obj.type.hint import any_hint_h, simple_hint_h
|
15
|
-
from str_to_obj.type.hint_tree import
|
13
|
+
from str_to_obj.type.hint_tree import hint_t
|
16
14
|
|
17
15
|
|
18
16
|
class _not_a_leaf_node_t:
|
@@ -22,7 +20,7 @@ class _not_a_leaf_node_t:
|
|
22
20
|
_NOT_A_LEAF_NODE = _not_a_leaf_node_t()
|
23
21
|
|
24
22
|
|
25
|
-
@
|
23
|
+
@d.dataclass(slots=True, repr=False, eq=False)
|
26
24
|
class _value_node_t:
|
27
25
|
"""
|
28
26
|
Leave elements to the tree.
|
@@ -33,12 +31,12 @@ class _value_node_t:
|
|
33
31
|
leaf_value: h.Any | None = _NOT_A_LEAF_NODE
|
34
32
|
|
35
33
|
|
36
|
-
@
|
34
|
+
@d.dataclass(slots=True, repr=False, eq=False)
|
37
35
|
class _value_tree_t(_value_node_t):
|
38
|
-
elements: tuple[
|
36
|
+
elements: tuple[h.Self, ...] = None
|
39
37
|
|
40
38
|
@classmethod
|
41
|
-
def NewFromValue(cls, value: h.Any, /) ->
|
39
|
+
def NewFromValue(cls, value: h.Any, /) -> h.Self:
|
42
40
|
""""""
|
43
41
|
if isinstance(value, h.Iterable) and not isinstance(value, str):
|
44
42
|
elements = tuple(cls.NewFromValue(_elm) for _elm in value)
|
@@ -54,7 +52,7 @@ class _value_tree_t(_value_node_t):
|
|
54
52
|
return self.leaf_value
|
55
53
|
|
56
54
|
def CastValue(
|
57
|
-
self, hint_tree:
|
55
|
+
self, hint_tree: hint_t, /, *, only_check_validity: bool = False
|
58
56
|
) -> tuple[h.Any, list[str]] | list[str]:
|
59
57
|
""""""
|
60
58
|
issues = self._CastToHint(hint_tree)
|
@@ -69,7 +67,7 @@ class _value_tree_t(_value_node_t):
|
|
69
67
|
else:
|
70
68
|
return self._RebuiltValue(), []
|
71
69
|
|
72
|
-
def _CastToHint(self, hint_node:
|
70
|
+
def _CastToHint(self, hint_node: hint_t, /) -> list[str]:
|
73
71
|
"""
|
74
72
|
Returned value=the value tree has been successfully cast to the hint tree
|
75
73
|
specification, or not.
|
@@ -183,7 +181,7 @@ class _value_tree_t(_value_node_t):
|
|
183
181
|
f"Expected=Value following template {hint_node.template_as_str}."
|
184
182
|
]
|
185
183
|
|
186
|
-
def _CompliesWithAnnotations(self, hint_node:
|
184
|
+
def _CompliesWithAnnotations(self, hint_node: hint_t, /) -> list[str]:
|
187
185
|
""""""
|
188
186
|
output = []
|
189
187
|
|
@@ -195,15 +193,15 @@ class _value_tree_t(_value_node_t):
|
|
195
193
|
|
196
194
|
def CastValue(
|
197
195
|
value: h.Any,
|
198
|
-
hint: any_hint_h |
|
196
|
+
hint: any_hint_h | hint_t,
|
199
197
|
/,
|
200
198
|
*,
|
201
199
|
only_check_validity: bool = False,
|
202
200
|
) -> tuple[h.Any, list[str]] | list[str]:
|
203
201
|
""""""
|
204
202
|
value_tree = _value_tree_t.NewFromValue(value)
|
205
|
-
if not isinstance(hint,
|
206
|
-
hint =
|
203
|
+
if not isinstance(hint, hint_t):
|
204
|
+
hint = hint_t.NewForHint(hint)
|
207
205
|
|
208
206
|
return value_tree.CastValue(hint, only_check_validity=only_check_validity)
|
209
207
|
|
str_to_obj/task/comparison.py
CHANGED
@@ -7,12 +7,12 @@ SEE COPYRIGHT NOTICE BELOW
|
|
7
7
|
import types as t
|
8
8
|
import typing as h
|
9
9
|
|
10
|
-
from str_to_obj.type.hint_tree import
|
10
|
+
from str_to_obj.type.hint_tree import hint_t
|
11
11
|
|
12
12
|
|
13
13
|
def TypesAreCompatible(
|
14
|
-
one:
|
15
|
-
another:
|
14
|
+
one: hint_t,
|
15
|
+
another: hint_t,
|
16
16
|
/,
|
17
17
|
*,
|
18
18
|
strict_mode: bool = True,
|
str_to_obj/type/annotation.py
CHANGED
@@ -1,35 +1,10 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
# modify and/ or redistribute the software under the terms of the CeCILL
|
9
|
-
# license as circulated by CEA, CNRS and INRIA at the following URL
|
10
|
-
# "http://www.cecill.info".
|
11
|
-
#
|
12
|
-
# As a counterpart to the access to the source code and rights to copy,
|
13
|
-
# modify and redistribute granted by the license, users are provided only
|
14
|
-
# with a limited warranty and the software's author, the holder of the
|
15
|
-
# economic rights, and the successive licensors have only limited
|
16
|
-
# liability.
|
17
|
-
#
|
18
|
-
# In this respect, the user's attention is drawn to the risks associated
|
19
|
-
# with loading, using, modifying and/or developing or reproducing the
|
20
|
-
# software by the user in light of its specific status of free software,
|
21
|
-
# that may mean that it is complicated to manipulate, and that also
|
22
|
-
# therefore means that it is reserved for developers and experienced
|
23
|
-
# professionals having in-depth computer knowledge. Users are therefore
|
24
|
-
# encouraged to load and test the software's suitability as regards their
|
25
|
-
# requirements in conditions enabling the security of their systems and/or
|
26
|
-
# data to be ensured and, more generally, to use and operate it in the
|
27
|
-
# same conditions as regards security.
|
28
|
-
#
|
29
|
-
# The fact that you are presently reading this means that you have had
|
30
|
-
# knowledge of the CeCILL license and that you accept its terms.
|
31
|
-
|
32
|
-
import dataclasses as dtcl
|
1
|
+
"""
|
2
|
+
Copyright CNRS/Inria/UniCA
|
3
|
+
Contributor(s): Eric Debreuve (eric.debreuve@cnrs.fr) since 2023
|
4
|
+
SEE COPYRIGHT NOTICE BELOW
|
5
|
+
"""
|
6
|
+
|
7
|
+
import dataclasses as d
|
33
8
|
import typing as h
|
34
9
|
|
35
10
|
from rich.text import Text as text_t
|
@@ -37,7 +12,7 @@ from str_to_obj.interface.console import NameValueTypeAsRichStr, TypeAsRichStr
|
|
37
12
|
from str_to_obj.type.hint import annotated_hint_t, non_complex_hint_h
|
38
13
|
|
39
14
|
|
40
|
-
@
|
15
|
+
@d.dataclass(slots=True, repr=False, eq=False)
|
41
16
|
class annotation_t:
|
42
17
|
ACCEPTED_TYPES: h.ClassVar[tuple[non_complex_hint_h, ...]] = (h.Any,)
|
43
18
|
|
@@ -73,9 +48,56 @@ class annotation_t:
|
|
73
48
|
""""""
|
74
49
|
output = [TypeAsRichStr(self)]
|
75
50
|
|
76
|
-
names = (_fld.name for _fld in
|
51
|
+
names = (_fld.name for _fld in d.fields(self))
|
77
52
|
for name in names:
|
78
53
|
value = getattr(self, name)
|
79
54
|
output.append(f" {NameValueTypeAsRichStr(name, value, separator=' = ')}")
|
80
55
|
|
81
56
|
return "\n".join(output)
|
57
|
+
|
58
|
+
|
59
|
+
"""
|
60
|
+
COPYRIGHT NOTICE
|
61
|
+
|
62
|
+
This software is governed by the CeCILL license under French law and
|
63
|
+
abiding by the rules of distribution of free software. You can use,
|
64
|
+
modify and/ or redistribute the software under the terms of the CeCILL
|
65
|
+
license as circulated by CEA, CNRS and INRIA at the following URL
|
66
|
+
"http://www.cecill.info".
|
67
|
+
|
68
|
+
As a counterpart to the access to the source code and rights to copy,
|
69
|
+
modify and redistribute granted by the license, users are provided only
|
70
|
+
with a limited warranty and the software's author, the holder of the
|
71
|
+
economic rights, and the successive licensors have only limited
|
72
|
+
liability.
|
73
|
+
|
74
|
+
In this respect, the user's attention is drawn to the risks associated
|
75
|
+
with loading, using, modifying and/or developing or reproducing the
|
76
|
+
software by the user in light of its specific status of free software,
|
77
|
+
that may mean that it is complicated to manipulate, and that also
|
78
|
+
therefore means that it is reserved for developers and experienced
|
79
|
+
professionals having in-depth computer knowledge. Users are therefore
|
80
|
+
encouraged to load and test the software's suitability as regards their
|
81
|
+
requirements in conditions enabling the security of their systems and/or
|
82
|
+
data to be ensured and, more generally, to use and operate it in the
|
83
|
+
same conditions as regards security.
|
84
|
+
|
85
|
+
The fact that you are presently reading this means that you have had
|
86
|
+
knowledge of the CeCILL license and that you accept its terms.
|
87
|
+
|
88
|
+
SEE LICENCE NOTICE: file README-LICENCE-utf8.txt at project source root.
|
89
|
+
|
90
|
+
This software is being developed by Eric Debreuve, a CNRS employee and
|
91
|
+
member of team Morpheme.
|
92
|
+
Team Morpheme is a joint team between Inria, CNRS, and UniCA.
|
93
|
+
It is hosted by the Centre Inria d'Université Côte d'Azur, Laboratory
|
94
|
+
I3S, and Laboratory iBV.
|
95
|
+
|
96
|
+
CNRS: https://www.cnrs.fr/index.php/en
|
97
|
+
Inria: https://www.inria.fr/en/
|
98
|
+
UniCA: https://univ-cotedazur.eu/
|
99
|
+
Centre Inria d'Université Côte d'Azur: https://www.inria.fr/en/centre/sophia/
|
100
|
+
I3S: https://www.i3s.unice.fr/en/
|
101
|
+
iBV: http://ibv.unice.fr/
|
102
|
+
Team Morpheme: https://team.inria.fr/morpheme/
|
103
|
+
"""
|
str_to_obj/type/hint.py
CHANGED
@@ -1,33 +1,8 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
# This software is governed by the CeCILL license under French law and
|
7
|
-
# abiding by the rules of distribution of free software. You can use,
|
8
|
-
# modify and/ or redistribute the software under the terms of the CeCILL
|
9
|
-
# license as circulated by CEA, CNRS and INRIA at the following URL
|
10
|
-
# "http://www.cecill.info".
|
11
|
-
#
|
12
|
-
# As a counterpart to the access to the source code and rights to copy,
|
13
|
-
# modify and redistribute granted by the license, users are provided only
|
14
|
-
# with a limited warranty and the software's author, the holder of the
|
15
|
-
# economic rights, and the successive licensors have only limited
|
16
|
-
# liability.
|
17
|
-
#
|
18
|
-
# In this respect, the user's attention is drawn to the risks associated
|
19
|
-
# with loading, using, modifying and/or developing or reproducing the
|
20
|
-
# software by the user in light of its specific status of free software,
|
21
|
-
# that may mean that it is complicated to manipulate, and that also
|
22
|
-
# therefore means that it is reserved for developers and experienced
|
23
|
-
# professionals having in-depth computer knowledge. Users are therefore
|
24
|
-
# encouraged to load and test the software's suitability as regards their
|
25
|
-
# requirements in conditions enabling the security of their systems and/or
|
26
|
-
# data to be ensured and, more generally, to use and operate it in the
|
27
|
-
# same conditions as regards security.
|
28
|
-
#
|
29
|
-
# The fact that you are presently reading this means that you have had
|
30
|
-
# knowledge of the CeCILL license and that you accept its terms.
|
1
|
+
"""
|
2
|
+
Copyright CNRS/Inria/UniCA
|
3
|
+
Contributor(s): Eric Debreuve (eric.debreuve@cnrs.fr) since 2023
|
4
|
+
SEE COPYRIGHT NOTICE BELOW
|
5
|
+
"""
|
31
6
|
|
32
7
|
import types as t
|
33
8
|
import typing as h
|
@@ -55,3 +30,49 @@ any_hint_h = raw_hint_h | annotated_hint_t
|
|
55
30
|
# - EllipsisType for GenericAlias, as in: tuple[int, ...]
|
56
31
|
# - None for UnionType, as in: int | None
|
57
32
|
complex_hint_additions_h = t.EllipsisType | None
|
33
|
+
|
34
|
+
"""
|
35
|
+
COPYRIGHT NOTICE
|
36
|
+
|
37
|
+
This software is governed by the CeCILL license under French law and
|
38
|
+
abiding by the rules of distribution of free software. You can use,
|
39
|
+
modify and/ or redistribute the software under the terms of the CeCILL
|
40
|
+
license as circulated by CEA, CNRS and INRIA at the following URL
|
41
|
+
"http://www.cecill.info".
|
42
|
+
|
43
|
+
As a counterpart to the access to the source code and rights to copy,
|
44
|
+
modify and redistribute granted by the license, users are provided only
|
45
|
+
with a limited warranty and the software's author, the holder of the
|
46
|
+
economic rights, and the successive licensors have only limited
|
47
|
+
liability.
|
48
|
+
|
49
|
+
In this respect, the user's attention is drawn to the risks associated
|
50
|
+
with loading, using, modifying and/or developing or reproducing the
|
51
|
+
software by the user in light of its specific status of free software,
|
52
|
+
that may mean that it is complicated to manipulate, and that also
|
53
|
+
therefore means that it is reserved for developers and experienced
|
54
|
+
professionals having in-depth computer knowledge. Users are therefore
|
55
|
+
encouraged to load and test the software's suitability as regards their
|
56
|
+
requirements in conditions enabling the security of their systems and/or
|
57
|
+
data to be ensured and, more generally, to use and operate it in the
|
58
|
+
same conditions as regards security.
|
59
|
+
|
60
|
+
The fact that you are presently reading this means that you have had
|
61
|
+
knowledge of the CeCILL license and that you accept its terms.
|
62
|
+
|
63
|
+
SEE LICENCE NOTICE: file README-LICENCE-utf8.txt at project source root.
|
64
|
+
|
65
|
+
This software is being developed by Eric Debreuve, a CNRS employee and
|
66
|
+
member of team Morpheme.
|
67
|
+
Team Morpheme is a joint team between Inria, CNRS, and UniCA.
|
68
|
+
It is hosted by the Centre Inria d'Université Côte d'Azur, Laboratory
|
69
|
+
I3S, and Laboratory iBV.
|
70
|
+
|
71
|
+
CNRS: https://www.cnrs.fr/index.php/en
|
72
|
+
Inria: https://www.inria.fr/en/
|
73
|
+
UniCA: https://univ-cotedazur.eu/
|
74
|
+
Centre Inria d'Université Côte d'Azur: https://www.inria.fr/en/centre/sophia/
|
75
|
+
I3S: https://www.i3s.unice.fr/en/
|
76
|
+
iBV: http://ibv.unice.fr/
|
77
|
+
Team Morpheme: https://team.inria.fr/morpheme/
|
78
|
+
"""
|
str_to_obj/type/hint_tree.py
CHANGED
@@ -1,42 +1,15 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
# This software is governed by the CeCILL license under French law and
|
7
|
-
# abiding by the rules of distribution of free software. You can use,
|
8
|
-
# modify and/ or redistribute the software under the terms of the CeCILL
|
9
|
-
# license as circulated by CEA, CNRS and INRIA at the following URL
|
10
|
-
# "http://www.cecill.info".
|
11
|
-
#
|
12
|
-
# As a counterpart to the access to the source code and rights to copy,
|
13
|
-
# modify and redistribute granted by the license, users are provided only
|
14
|
-
# with a limited warranty and the software's author, the holder of the
|
15
|
-
# economic rights, and the successive licensors have only limited
|
16
|
-
# liability.
|
17
|
-
#
|
18
|
-
# In this respect, the user's attention is drawn to the risks associated
|
19
|
-
# with loading, using, modifying and/or developing or reproducing the
|
20
|
-
# software by the user in light of its specific status of free software,
|
21
|
-
# that may mean that it is complicated to manipulate, and that also
|
22
|
-
# therefore means that it is reserved for developers and experienced
|
23
|
-
# professionals having in-depth computer knowledge. Users are therefore
|
24
|
-
# encouraged to load and test the software's suitability as regards their
|
25
|
-
# requirements in conditions enabling the security of their systems and/or
|
26
|
-
# data to be ensured and, more generally, to use and operate it in the
|
27
|
-
# same conditions as regards security.
|
28
|
-
#
|
29
|
-
# The fact that you are presently reading this means that you have had
|
30
|
-
# knowledge of the CeCILL license and that you accept its terms.
|
31
|
-
|
32
|
-
from __future__ import annotations
|
1
|
+
"""
|
2
|
+
Copyright CNRS/Inria/UniCA
|
3
|
+
Contributor(s): Eric Debreuve (eric.debreuve@cnrs.fr) since 2023
|
4
|
+
SEE COPYRIGHT NOTICE BELOW
|
5
|
+
"""
|
33
6
|
|
34
|
-
import dataclasses as
|
7
|
+
import dataclasses as d
|
35
8
|
import re as regx
|
36
9
|
import types as t
|
37
10
|
import typing as h
|
38
11
|
|
39
|
-
from logger_36 import FormattedMessage
|
12
|
+
from logger_36.format import FormattedMessage
|
40
13
|
from str_to_obj.task.inspection import HintComponents
|
41
14
|
from str_to_obj.type.annotation import annotation_t
|
42
15
|
from str_to_obj.type.hint import (
|
@@ -47,22 +20,22 @@ from str_to_obj.type.hint import (
|
|
47
20
|
)
|
48
21
|
|
49
22
|
|
50
|
-
@
|
23
|
+
@d.dataclass(slots=True, repr=False, eq=False)
|
51
24
|
class _hint_node_t:
|
52
25
|
"""
|
53
26
|
Leave elements to the tree.
|
54
27
|
"""
|
55
28
|
|
56
29
|
type: non_complex_hint_h | t.UnionType | t.EllipsisType | type[t.NoneType]
|
57
|
-
annotations: tuple[annotation_t, ...] =
|
30
|
+
annotations: tuple[annotation_t, ...] = d.field(default_factory=tuple)
|
58
31
|
|
59
32
|
|
60
|
-
@
|
61
|
-
class
|
62
|
-
elements: tuple[
|
33
|
+
@d.dataclass(slots=True, repr=False, eq=False)
|
34
|
+
class hint_t(_hint_node_t):
|
35
|
+
elements: tuple[h.Self, ...] = None
|
63
36
|
|
64
37
|
@classmethod
|
65
|
-
def NewForHint(cls, hint: any_hint_h | complex_hint_additions_h, /) ->
|
38
|
+
def NewForHint(cls, hint: any_hint_h | complex_hint_additions_h, /) -> h.Self:
|
66
39
|
"""
|
67
40
|
Note that type hints cannot translate into hint trees with an OR-node having a child
|
68
41
|
OR-node. For example: str | (int | float) is interpreted as str | int | float. This
|
@@ -162,7 +135,7 @@ class hint_tree_t(_hint_node_t):
|
|
162
135
|
# """"""
|
163
136
|
# output = [TypeAsRichStr(self)]
|
164
137
|
#
|
165
|
-
# names = (_fld.name for _fld in
|
138
|
+
# names = (_fld.name for _fld in d.fields(self))
|
166
139
|
# for name in names:
|
167
140
|
# value = getattr(self, name)
|
168
141
|
# output.append(f" {NameValueTypeAsRichStr(name, value, separator='@=@')}")
|
@@ -170,3 +143,49 @@ class hint_tree_t(_hint_node_t):
|
|
170
143
|
# output = AlignedOnSeparator(output, "@=@", " = ")
|
171
144
|
#
|
172
145
|
# return "\n".join(output)
|
146
|
+
|
147
|
+
"""
|
148
|
+
COPYRIGHT NOTICE
|
149
|
+
|
150
|
+
This software is governed by the CeCILL license under French law and
|
151
|
+
abiding by the rules of distribution of free software. You can use,
|
152
|
+
modify and/ or redistribute the software under the terms of the CeCILL
|
153
|
+
license as circulated by CEA, CNRS and INRIA at the following URL
|
154
|
+
"http://www.cecill.info".
|
155
|
+
|
156
|
+
As a counterpart to the access to the source code and rights to copy,
|
157
|
+
modify and redistribute granted by the license, users are provided only
|
158
|
+
with a limited warranty and the software's author, the holder of the
|
159
|
+
economic rights, and the successive licensors have only limited
|
160
|
+
liability.
|
161
|
+
|
162
|
+
In this respect, the user's attention is drawn to the risks associated
|
163
|
+
with loading, using, modifying and/or developing or reproducing the
|
164
|
+
software by the user in light of its specific status of free software,
|
165
|
+
that may mean that it is complicated to manipulate, and that also
|
166
|
+
therefore means that it is reserved for developers and experienced
|
167
|
+
professionals having in-depth computer knowledge. Users are therefore
|
168
|
+
encouraged to load and test the software's suitability as regards their
|
169
|
+
requirements in conditions enabling the security of their systems and/or
|
170
|
+
data to be ensured and, more generally, to use and operate it in the
|
171
|
+
same conditions as regards security.
|
172
|
+
|
173
|
+
The fact that you are presently reading this means that you have had
|
174
|
+
knowledge of the CeCILL license and that you accept its terms.
|
175
|
+
|
176
|
+
SEE LICENCE NOTICE: file README-LICENCE-utf8.txt at project source root.
|
177
|
+
|
178
|
+
This software is being developed by Eric Debreuve, a CNRS employee and
|
179
|
+
member of team Morpheme.
|
180
|
+
Team Morpheme is a joint team between Inria, CNRS, and UniCA.
|
181
|
+
It is hosted by the Centre Inria d'Université Côte d'Azur, Laboratory
|
182
|
+
I3S, and Laboratory iBV.
|
183
|
+
|
184
|
+
CNRS: https://www.cnrs.fr/index.php/en
|
185
|
+
Inria: https://www.inria.fr/en/
|
186
|
+
UniCA: https://univ-cotedazur.eu/
|
187
|
+
Centre Inria d'Université Côte d'Azur: https://www.inria.fr/en/centre/sophia/
|
188
|
+
I3S: https://www.i3s.unice.fr/en/
|
189
|
+
iBV: http://ibv.unice.fr/
|
190
|
+
Team Morpheme: https://team.inria.fr/morpheme/
|
191
|
+
"""
|
str_to_obj/type/type.py
CHANGED
@@ -1,45 +1,22 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
# modify and/ or redistribute the software under the terms of the CeCILL
|
9
|
-
# license as circulated by CEA, CNRS and INRIA at the following URL
|
10
|
-
# "http://www.cecill.info".
|
11
|
-
#
|
12
|
-
# As a counterpart to the access to the source code and rights to copy,
|
13
|
-
# modify and redistribute granted by the license, users are provided only
|
14
|
-
# with a limited warranty and the software's author, the holder of the
|
15
|
-
# economic rights, and the successive licensors have only limited
|
16
|
-
# liability.
|
17
|
-
#
|
18
|
-
# In this respect, the user's attention is drawn to the risks associated
|
19
|
-
# with loading, using, modifying and/or developing or reproducing the
|
20
|
-
# software by the user in light of its specific status of free software,
|
21
|
-
# that may mean that it is complicated to manipulate, and that also
|
22
|
-
# therefore means that it is reserved for developers and experienced
|
23
|
-
# professionals having in-depth computer knowledge. Users are therefore
|
24
|
-
# encouraged to load and test the software's suitability as regards their
|
25
|
-
# requirements in conditions enabling the security of their systems and/or
|
26
|
-
# data to be ensured and, more generally, to use and operate it in the
|
27
|
-
# same conditions as regards security.
|
28
|
-
#
|
29
|
-
# The fact that you are presently reading this means that you have had
|
30
|
-
# knowledge of the CeCILL license and that you accept its terms.
|
31
|
-
|
32
|
-
import dataclasses as dtcl
|
1
|
+
"""
|
2
|
+
Copyright CNRS/Inria/UniCA
|
3
|
+
Contributor(s): Eric Debreuve (eric.debreuve@cnrs.fr) since 2023
|
4
|
+
SEE COPYRIGHT NOTICE BELOW
|
5
|
+
"""
|
6
|
+
|
7
|
+
import dataclasses as d
|
33
8
|
import typing as h
|
34
9
|
|
35
10
|
from rich.text import Text as text_t
|
36
|
-
from str_to_obj import
|
11
|
+
from str_to_obj.main import ObjectFromStr
|
37
12
|
from str_to_obj.runtime.value import INVALID_VALUE
|
38
|
-
from str_to_obj.
|
13
|
+
from str_to_obj.task.casting import CastValue
|
14
|
+
from str_to_obj.type.annotation import annotation_t
|
15
|
+
from str_to_obj.type.hint_tree import hint_t
|
39
16
|
|
40
17
|
|
41
|
-
@
|
42
|
-
class type_t(
|
18
|
+
@d.dataclass(slots=True, repr=False, eq=False)
|
19
|
+
class type_t(hint_t):
|
43
20
|
def FirstAnnotationWithType(
|
44
21
|
self, stripe: type[annotation_t], /
|
45
22
|
) -> annotation_t | None:
|
@@ -80,7 +57,7 @@ class type_t(hint_tree_t):
|
|
80
57
|
return "[yellow]" + "::".join(output) + "[/]"
|
81
58
|
|
82
59
|
|
83
|
-
@
|
60
|
+
@d.dataclass(slots=True, repr=False, eq=False)
|
84
61
|
class any_type_t(type_t):
|
85
62
|
def FirstAnnotationWithType(
|
86
63
|
self, stripe: type[annotation_t], /
|
@@ -95,3 +72,50 @@ class any_type_t(type_t):
|
|
95
72
|
def InterpretedValueOf(self, value: h.Any, /) -> tuple[h.Any, list[str]]:
|
96
73
|
""""""
|
97
74
|
return value, []
|
75
|
+
|
76
|
+
|
77
|
+
"""
|
78
|
+
COPYRIGHT NOTICE
|
79
|
+
|
80
|
+
This software is governed by the CeCILL license under French law and
|
81
|
+
abiding by the rules of distribution of free software. You can use,
|
82
|
+
modify and/ or redistribute the software under the terms of the CeCILL
|
83
|
+
license as circulated by CEA, CNRS and INRIA at the following URL
|
84
|
+
"http://www.cecill.info".
|
85
|
+
|
86
|
+
As a counterpart to the access to the source code and rights to copy,
|
87
|
+
modify and redistribute granted by the license, users are provided only
|
88
|
+
with a limited warranty and the software's author, the holder of the
|
89
|
+
economic rights, and the successive licensors have only limited
|
90
|
+
liability.
|
91
|
+
|
92
|
+
In this respect, the user's attention is drawn to the risks associated
|
93
|
+
with loading, using, modifying and/or developing or reproducing the
|
94
|
+
software by the user in light of its specific status of free software,
|
95
|
+
that may mean that it is complicated to manipulate, and that also
|
96
|
+
therefore means that it is reserved for developers and experienced
|
97
|
+
professionals having in-depth computer knowledge. Users are therefore
|
98
|
+
encouraged to load and test the software's suitability as regards their
|
99
|
+
requirements in conditions enabling the security of their systems and/or
|
100
|
+
data to be ensured and, more generally, to use and operate it in the
|
101
|
+
same conditions as regards security.
|
102
|
+
|
103
|
+
The fact that you are presently reading this means that you have had
|
104
|
+
knowledge of the CeCILL license and that you accept its terms.
|
105
|
+
|
106
|
+
SEE LICENCE NOTICE: file README-LICENCE-utf8.txt at project source root.
|
107
|
+
|
108
|
+
This software is being developed by Eric Debreuve, a CNRS employee and
|
109
|
+
member of team Morpheme.
|
110
|
+
Team Morpheme is a joint team between Inria, CNRS, and UniCA.
|
111
|
+
It is hosted by the Centre Inria d'Université Côte d'Azur, Laboratory
|
112
|
+
I3S, and Laboratory iBV.
|
113
|
+
|
114
|
+
CNRS: https://www.cnrs.fr/index.php/en
|
115
|
+
Inria: https://www.inria.fr/en/
|
116
|
+
UniCA: https://univ-cotedazur.eu/
|
117
|
+
Centre Inria d'Université Côte d'Azur: https://www.inria.fr/en/centre/sophia/
|
118
|
+
I3S: https://www.i3s.unice.fr/en/
|
119
|
+
iBV: http://ibv.unice.fr/
|
120
|
+
Team Morpheme: https://team.inria.fr/morpheme/
|
121
|
+
"""
|
str_to_obj/type/value.py
CHANGED
@@ -1,33 +1,8 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
# This software is governed by the CeCILL license under French law and
|
7
|
-
# abiding by the rules of distribution of free software. You can use,
|
8
|
-
# modify and/ or redistribute the software under the terms of the CeCILL
|
9
|
-
# license as circulated by CEA, CNRS and INRIA at the following URL
|
10
|
-
# "http://www.cecill.info".
|
11
|
-
#
|
12
|
-
# As a counterpart to the access to the source code and rights to copy,
|
13
|
-
# modify and redistribute granted by the license, users are provided only
|
14
|
-
# with a limited warranty and the software's author, the holder of the
|
15
|
-
# economic rights, and the successive licensors have only limited
|
16
|
-
# liability.
|
17
|
-
#
|
18
|
-
# In this respect, the user's attention is drawn to the risks associated
|
19
|
-
# with loading, using, modifying and/or developing or reproducing the
|
20
|
-
# software by the user in light of its specific status of free software,
|
21
|
-
# that may mean that it is complicated to manipulate, and that also
|
22
|
-
# therefore means that it is reserved for developers and experienced
|
23
|
-
# professionals having in-depth computer knowledge. Users are therefore
|
24
|
-
# encouraged to load and test the software's suitability as regards their
|
25
|
-
# requirements in conditions enabling the security of their systems and/or
|
26
|
-
# data to be ensured and, more generally, to use and operate it in the
|
27
|
-
# same conditions as regards security.
|
28
|
-
#
|
29
|
-
# The fact that you are presently reading this means that you have had
|
30
|
-
# knowledge of the CeCILL license and that you accept its terms.
|
1
|
+
"""
|
2
|
+
Copyright CNRS/Inria/UniCA
|
3
|
+
Contributor(s): Eric Debreuve (eric.debreuve@cnrs.fr) since 2023
|
4
|
+
SEE COPYRIGHT NOTICE BELOW
|
5
|
+
"""
|
31
6
|
|
32
7
|
|
33
8
|
class invalid_value_t:
|
@@ -45,3 +20,50 @@ class invalid_value_t:
|
|
45
20
|
def __rich__(self) -> str:
|
46
21
|
""""""
|
47
22
|
return f"[red]{self.__class__.TEXT}[/]"
|
23
|
+
|
24
|
+
|
25
|
+
"""
|
26
|
+
COPYRIGHT NOTICE
|
27
|
+
|
28
|
+
This software is governed by the CeCILL license under French law and
|
29
|
+
abiding by the rules of distribution of free software. You can use,
|
30
|
+
modify and/ or redistribute the software under the terms of the CeCILL
|
31
|
+
license as circulated by CEA, CNRS and INRIA at the following URL
|
32
|
+
"http://www.cecill.info".
|
33
|
+
|
34
|
+
As a counterpart to the access to the source code and rights to copy,
|
35
|
+
modify and redistribute granted by the license, users are provided only
|
36
|
+
with a limited warranty and the software's author, the holder of the
|
37
|
+
economic rights, and the successive licensors have only limited
|
38
|
+
liability.
|
39
|
+
|
40
|
+
In this respect, the user's attention is drawn to the risks associated
|
41
|
+
with loading, using, modifying and/or developing or reproducing the
|
42
|
+
software by the user in light of its specific status of free software,
|
43
|
+
that may mean that it is complicated to manipulate, and that also
|
44
|
+
therefore means that it is reserved for developers and experienced
|
45
|
+
professionals having in-depth computer knowledge. Users are therefore
|
46
|
+
encouraged to load and test the software's suitability as regards their
|
47
|
+
requirements in conditions enabling the security of their systems and/or
|
48
|
+
data to be ensured and, more generally, to use and operate it in the
|
49
|
+
same conditions as regards security.
|
50
|
+
|
51
|
+
The fact that you are presently reading this means that you have had
|
52
|
+
knowledge of the CeCILL license and that you accept its terms.
|
53
|
+
|
54
|
+
SEE LICENCE NOTICE: file README-LICENCE-utf8.txt at project source root.
|
55
|
+
|
56
|
+
This software is being developed by Eric Debreuve, a CNRS employee and
|
57
|
+
member of team Morpheme.
|
58
|
+
Team Morpheme is a joint team between Inria, CNRS, and UniCA.
|
59
|
+
It is hosted by the Centre Inria d'Université Côte d'Azur, Laboratory
|
60
|
+
I3S, and Laboratory iBV.
|
61
|
+
|
62
|
+
CNRS: https://www.cnrs.fr/index.php/en
|
63
|
+
Inria: https://www.inria.fr/en/
|
64
|
+
UniCA: https://univ-cotedazur.eu/
|
65
|
+
Centre Inria d'Université Côte d'Azur: https://www.inria.fr/en/centre/sophia/
|
66
|
+
I3S: https://www.i3s.unice.fr/en/
|
67
|
+
iBV: http://ibv.unice.fr/
|
68
|
+
Team Morpheme: https://team.inria.fr/morpheme/
|
69
|
+
"""
|
str_to_obj/version.py
CHANGED
@@ -1,18 +1,18 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: str-to-obj
|
3
|
-
Version: 2024.
|
3
|
+
Version: 2024.6
|
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
|
7
7
|
Author-email: eric.debreuve@cnrs.fr
|
8
8
|
License: CeCILL-2.1
|
9
|
-
Project-URL: Documentation, https://src.koda.cnrs.fr/eric.debreuve/str-to-obj
|
9
|
+
Project-URL: Documentation, https://src.koda.cnrs.fr/eric.debreuve/str-to-obj/-/wikis/home
|
10
10
|
Project-URL: Source, https://src.koda.cnrs.fr/eric.debreuve/str-to-obj/
|
11
11
|
Keywords: str,character string,Python object,conversion,type hint,type annotation
|
12
12
|
Classifier: Topic :: Software Development
|
13
13
|
Classifier: Intended Audience :: Developers
|
14
14
|
Classifier: License :: OSI Approved :: CEA CNRS Inria Logiciel Libre License, version 2.1 (CeCILL-2.1)
|
15
|
-
Classifier: Programming Language :: Python :: 3
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
16
16
|
Classifier: Development Status :: 4 - Beta
|
17
17
|
Requires-Python: >=3.11
|
18
18
|
Description-Content-Type: text/x-rst
|
@@ -34,6 +34,9 @@ Requires-Dist: rich
|
|
34
34
|
.. |DOCUMENTATION_URL| replace:: https://src.koda.cnrs.fr/eric.debreuve/str-to-obj/-/wikis/home
|
35
35
|
.. _DOCUMENTATION_URL: https://src.koda.cnrs.fr/eric.debreuve/str-to-obj/-/wikis/home
|
36
36
|
|
37
|
+
.. |DEPENDENCIES_MANDATORY| replace:: logger_36, rich
|
38
|
+
.. |DEPENDENCIES_OPTIONAL| replace:: None
|
39
|
+
|
37
40
|
|
38
41
|
|
39
42
|
===================================
|
@@ -42,6 +45,13 @@ Requires-Dist: rich
|
|
42
45
|
|
43
46
|
|
44
47
|
|
48
|
+
Documentation
|
49
|
+
=============
|
50
|
+
|
51
|
+
The documentation is available at |DOCUMENTATION_URL|_.
|
52
|
+
|
53
|
+
|
54
|
+
|
45
55
|
Installation
|
46
56
|
============
|
47
57
|
|
@@ -51,14 +61,6 @@ at: |PYPI_PROJECT_URL|_.
|
|
51
61
|
It should be installable from Python distribution platforms or Integrated Development Environments (IDEs).
|
52
62
|
Otherwise, it can be installed from a command console using `pip <https://pip.pypa.io/>`_:
|
53
63
|
|
54
|
-
..
|
55
|
-
- For all users, after acquiring administrative rights:
|
56
|
-
- First installation: ``pip install`` |PYPI_NAME_LITERAL|
|
57
|
-
- Installation update: ``pip install --upgrade`` |PYPI_NAME_LITERAL|
|
58
|
-
- For the current user (no administrative rights required):
|
59
|
-
- First installation: ``pip install --user`` |PYPI_NAME_LITERAL|
|
60
|
-
- Installation update: ``pip install --user --upgrade`` |PYPI_NAME_LITERAL|
|
61
|
-
|
62
64
|
+--------------+-------------------------------------------------------+----------------------------------------------------------+
|
63
65
|
| | For all users (after acquiring administrative rights) | For the current user (no administrative rights required) |
|
64
66
|
+==============+=======================================================+==========================================================+
|
@@ -69,27 +71,34 @@ Otherwise, it can be installed from a command console using `pip <https://pip.py
|
|
69
71
|
|
70
72
|
|
71
73
|
|
72
|
-
|
73
|
-
|
74
|
+
Dependencies
|
75
|
+
============
|
74
76
|
|
75
|
-
The
|
77
|
+
The development relies on several packages:
|
78
|
+
|
79
|
+
- Mandatory: |DEPENDENCIES_MANDATORY|
|
80
|
+
- Optional: |DEPENDENCIES_OPTIONAL|
|
81
|
+
|
82
|
+
The mandatory dependencies, if any, are installed automatically by `pip <https://pip.pypa.io/>`_, if they are not already, as part of the installation of |PROJECT_NAME|.
|
83
|
+
Python distribution platforms or Integrated Development Environments (IDEs) should also take care of this.
|
84
|
+
The optional dependencies, if any, must be installed independently by following the related instructions, for added functionalities of |PROJECT_NAME|.
|
76
85
|
|
77
86
|
|
78
87
|
|
79
88
|
Acknowledgments
|
80
89
|
===============
|
81
90
|
|
82
|
-
|
91
|
+
.. image:: https://img.shields.io/badge/code%20style-black-000000.svg
|
92
|
+
:target: https://github.com/psf/black
|
93
|
+
.. image:: https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336
|
94
|
+
:target: https://pycqa.github.io/isort/
|
83
95
|
|
84
|
-
The
|
85
|
-
(see ``install_requires`` in ``setup.py``, if present; otherwise ``import`` statements should be searched for).
|
96
|
+
The project is developed with `PyCharm Community <https://www.jetbrains.com/pycharm/>`_.
|
86
97
|
|
87
98
|
The code is formatted by `Black <https://github.com/psf/black/>`_, *The Uncompromising Code Formatter*.
|
88
99
|
|
89
100
|
The imports are ordered by `isort <https://github.com/timothycrosley/isort/>`_... *your imports, so you don't have to*.
|
90
101
|
|
91
|
-
|
92
|
-
|
93
102
|
..
|
94
103
|
COPYRIGHT NOTICE
|
95
104
|
|
@@ -0,0 +1,26 @@
|
|
1
|
+
str_to_obj/__init__.py,sha256=PCxTXaZiI5pN2HqQPeS4q6r-QgwBrDGwGplHCWACQzA,2318
|
2
|
+
str_to_obj/main.py,sha256=ebOat0qc3CQPGXC6RCOLGswDrGuobAziwSCawv6rSK4,3102
|
3
|
+
str_to_obj/version.py,sha256=LBCw-ZZUoX13xuS_ZDbgVb5pOKJrbeI-M12p4irxEbU,2206
|
4
|
+
str_to_obj/api/catalog.py,sha256=6ka6JciGdHFP93lg0yq2LO3iZBHfq0upZfXxQSg1izk,2521
|
5
|
+
str_to_obj/api/type.py,sha256=yxD5wTtnh_h8Wa9_k1eex-nrkjtfh4ZJI6Db6hJHI9w,2468
|
6
|
+
str_to_obj/catalog/boolean.py,sha256=7F0E36wQGkOxMMolqN5JF4zWOBJHLU9NDwOPt-LiFjQ,3489
|
7
|
+
str_to_obj/catalog/callable.py,sha256=NCoogYzVBUSqiYEj_DoG-szqQdnYhvSj0xdyvg1W7Jw,3626
|
8
|
+
str_to_obj/catalog/choices.py,sha256=YvRkgThmUhGVOl-SeNXrVC5Gwg9shCDdU0-dJ9Zk_zw,3798
|
9
|
+
str_to_obj/catalog/collection.py,sha256=OkwsgiMFrdvIvLqp1e_bgjBix677knrCSo-vOes86pQ,6767
|
10
|
+
str_to_obj/catalog/number.py,sha256=U__ZF9TYMuIlIyY1QHIK2f89cPPCvmrNMhK3sCA7n0E,5461
|
11
|
+
str_to_obj/catalog/path.py,sha256=xBrQJ-RMH-y_oaWP-uUTSpIKcL2vrtXoqrSaaS4HRpg,3857
|
12
|
+
str_to_obj/interface/console.py,sha256=t_prEhOHOOtsIld5orw2sIfaDjiy_kEO5Xy3Hr0Js3g,3037
|
13
|
+
str_to_obj/runtime/type.py,sha256=IGgBgvYu5QrxWKiEEwg5Hn1DNLYZrm6VX7b1o6_OMCI,2288
|
14
|
+
str_to_obj/runtime/value.py,sha256=l5I8_Aewu8Yzndnz03dUI_tfN0ZL-hMht2FmDYSUQL8,2268
|
15
|
+
str_to_obj/task/casting.py,sha256=GXwnnKnv8420nqlMb5sWkiWula5ZH-UxvWTjyr2Ra98,9138
|
16
|
+
str_to_obj/task/comparison.py,sha256=HBzv7gBtOnROsC6Sq-FYpgd_MKzVJreboNiqkza3vJ8,3178
|
17
|
+
str_to_obj/task/inspection.py,sha256=M8YnYq4A_Zz7rC2kgTYSSSawTnG2dCug5FBoCOBJ5g8,3127
|
18
|
+
str_to_obj/type/annotation.py,sha256=xXShME2Q344N3QlsqKtU6ttne54tTVC3b62CHU1TGUM,3838
|
19
|
+
str_to_obj/type/hint.py,sha256=w-yos8eD4CHQsXPfnqeqAc-ozyDWqzw46FOWDtAh7dM,2810
|
20
|
+
str_to_obj/type/hint_tree.py,sha256=hm0JbEXc5lPl0djiBj0tksmfmZaeFtpo_qtZv1uXe7s,6690
|
21
|
+
str_to_obj/type/type.py,sha256=ywc7GpzM1BsoQ3F0qk4wZ2DG1KZllw-PNv_umIGt8hA,4147
|
22
|
+
str_to_obj/type/value.py,sha256=r9Ko5HHant1JGbsO7vH1unRBr9guc61Jz2piuJT0BjM,2533
|
23
|
+
str_to_obj-2024.6.dist-info/METADATA,sha256=uHOtXMI95EtKqHF57ML92wyg_GC6P_pepvKWKCYqWsE,6464
|
24
|
+
str_to_obj-2024.6.dist-info/WHEEL,sha256=y4mX-SOX4fYIkonsAGA5N0Oy-8_gI4FXw5HNI1xqvWg,91
|
25
|
+
str_to_obj-2024.6.dist-info/top_level.txt,sha256=h-6bR_TAnXRGVSLTeNPlivlaG64xYM3E__Xg7sCgeug,11
|
26
|
+
str_to_obj-2024.6.dist-info/RECORD,,
|
@@ -1,24 +0,0 @@
|
|
1
|
-
str_to_obj/__init__.py,sha256=kNBfT5wXbdCVGkV3X5dsFRQlyKOZNWkcQZ66qVQuOvM,2457
|
2
|
-
str_to_obj/main.py,sha256=5XDr99VfwrHeK1cCbfsjRymYGVWhdTOX6zv37mw28uY,3112
|
3
|
-
str_to_obj/version.py,sha256=aTeq7VS44HQH_4_o0oDkd9qALDOYV21GXwluTQ7iTmY,2206
|
4
|
-
str_to_obj/catalog/boolean.py,sha256=06q5CqJrWj_HvNj5XiVu-28e0l6_6QqNRVFW_QEmJ-w,3482
|
5
|
-
str_to_obj/catalog/callable.py,sha256=NCoogYzVBUSqiYEj_DoG-szqQdnYhvSj0xdyvg1W7Jw,3626
|
6
|
-
str_to_obj/catalog/choices.py,sha256=YvRkgThmUhGVOl-SeNXrVC5Gwg9shCDdU0-dJ9Zk_zw,3798
|
7
|
-
str_to_obj/catalog/collection.py,sha256=rceqOpiTRX9YqYoZGr0DNlVxSEv5nVOQeQUCCk_aCVc,6809
|
8
|
-
str_to_obj/catalog/number.py,sha256=U__ZF9TYMuIlIyY1QHIK2f89cPPCvmrNMhK3sCA7n0E,5461
|
9
|
-
str_to_obj/catalog/path.py,sha256=xBrQJ-RMH-y_oaWP-uUTSpIKcL2vrtXoqrSaaS4HRpg,3857
|
10
|
-
str_to_obj/interface/console.py,sha256=jiN5ffXfMo_N4Me2BHGZyau9yfR_H9xAnrJMMK3q6Dg,3038
|
11
|
-
str_to_obj/runtime/type.py,sha256=IGgBgvYu5QrxWKiEEwg5Hn1DNLYZrm6VX7b1o6_OMCI,2288
|
12
|
-
str_to_obj/runtime/value.py,sha256=l5I8_Aewu8Yzndnz03dUI_tfN0ZL-hMht2FmDYSUQL8,2268
|
13
|
-
str_to_obj/task/casting.py,sha256=n_GffWFlNPlN9xhevq4_VOqaQsI-jWkXDTBTGhDNz7w,9232
|
14
|
-
str_to_obj/task/comparison.py,sha256=UfAagi4dYtOstJYW9V4B3lZ3jwMVDMVZI1xk5hzrJ2I,3193
|
15
|
-
str_to_obj/task/inspection.py,sha256=M8YnYq4A_Zz7rC2kgTYSSSawTnG2dCug5FBoCOBJ5g8,3127
|
16
|
-
str_to_obj/type/annotation.py,sha256=dmLMtOnbP4NP7pPYEy9r7YhHF21EoTyz2BaO4vkB7qk,3216
|
17
|
-
str_to_obj/type/hint.py,sha256=jlQgGosqoszkreJYFS_pga5RpqrUiLYALoxtzrB5rPU,2180
|
18
|
-
str_to_obj/type/hint_tree.py,sha256=KXm_-_tiD0EZr4OAl5JShW2Zoet_owK0PioVi-XsCaU,6119
|
19
|
-
str_to_obj/type/type.py,sha256=6KZgHRKZi1zzJ9KiW2LLvUXVr0EALUM4Yz8cwvgFeBg,3459
|
20
|
-
str_to_obj/type/value.py,sha256=9sXtYf0kVHVpcczS_ZtVZa9_M17pIlYSZjYYE33sS1Y,1904
|
21
|
-
str_to_obj-2024.4.dist-info/METADATA,sha256=8SxgoB9FfLufWJh6Ts4nUZgW-n78l7s5qvMW9SMsgmM,6130
|
22
|
-
str_to_obj-2024.4.dist-info/WHEEL,sha256=cpQTJ5IWu9CdaPViMhC9YzF8gZuS5-vlfoFihTBC86A,91
|
23
|
-
str_to_obj-2024.4.dist-info/top_level.txt,sha256=h-6bR_TAnXRGVSLTeNPlivlaG64xYM3E__Xg7sCgeug,11
|
24
|
-
str_to_obj-2024.4.dist-info/RECORD,,
|
File without changes
|