omlish 0.0.0.dev395__py3-none-any.whl → 0.0.0.dev396__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.
- omlish/__about__.py +3 -3
- omlish/collections/__init__.py +4 -0
- omlish/collections/trie.py +156 -0
- omlish/dataclasses/__init__.py +6 -6
- omlish/dataclasses/{api → impl/api}/classes/conversion.py +4 -4
- omlish/dataclasses/{api → impl/api}/classes/decorator.py +5 -5
- omlish/dataclasses/{api → impl/api}/classes/metadata.py +4 -4
- omlish/dataclasses/{api → impl/api}/classes/params.py +4 -4
- omlish/dataclasses/{api → impl/api}/fields/building.py +7 -7
- omlish/dataclasses/{api → impl/api}/fields/constructor.py +4 -4
- omlish/dataclasses/{api → impl/api}/fields/conversion.py +8 -8
- omlish/dataclasses/{api → impl/api}/fields/metadata.py +5 -5
- omlish/dataclasses/{concerns → impl/concerns}/copy.py +1 -1
- omlish/dataclasses/{concerns → impl/concerns}/fields.py +6 -6
- omlish/dataclasses/{concerns → impl/concerns}/frozen.py +3 -3
- omlish/dataclasses/{concerns → impl/concerns}/hash.py +1 -1
- omlish/dataclasses/{concerns → impl/concerns}/init.py +9 -9
- omlish/dataclasses/{concerns → impl/concerns}/matchargs.py +1 -1
- omlish/dataclasses/{concerns → impl/concerns}/mro.py +1 -1
- omlish/dataclasses/{concerns → impl/concerns}/params.py +2 -2
- omlish/dataclasses/{concerns → impl/concerns}/replace.py +4 -4
- omlish/dataclasses/{concerns → impl/concerns}/repr.py +3 -3
- omlish/dataclasses/impl/configs.py +12 -0
- omlish/dataclasses/{generation → impl/generation}/compilation.py +1 -1
- omlish/dataclasses/{generation → impl/generation}/execution.py +1 -1
- omlish/dataclasses/{generation → impl/generation}/globals.py +3 -3
- omlish/dataclasses/{generation → impl/generation}/mangling.py +1 -1
- omlish/dataclasses/{generation → impl/generation}/plans.py +1 -1
- omlish/dataclasses/{generation → impl/generation}/processor.py +41 -14
- omlish/dataclasses/{generation → impl/generation}/registry.py +2 -2
- omlish/dataclasses/impl/processing/__init__.py +0 -0
- omlish/dataclasses/{processing → impl/processing}/base.py +3 -3
- omlish/dataclasses/{processing → impl/processing}/driving.py +24 -2
- omlish/dataclasses/{processing → impl/processing}/registry.py +2 -2
- omlish/dataclasses/{utils.py → impl/utils.py} +1 -1
- omlish/dataclasses/inspect.py +4 -4
- omlish/dataclasses/metaclass/bases.py +2 -2
- omlish/dataclasses/metaclass/confer.py +1 -1
- omlish/dataclasses/metaclass/meta.py +1 -1
- omlish/dataclasses/metaclass/specs.py +1 -1
- omlish/dataclasses/reflection.py +9 -9
- omlish/dataclasses/tools/as_.py +2 -2
- omlish/dataclasses/tools/static.py +2 -2
- {omlish-0.0.0.dev395.dist-info → omlish-0.0.0.dev396.dist-info}/METADATA +3 -3
- {omlish-0.0.0.dev395.dist-info → omlish-0.0.0.dev396.dist-info}/RECORD +69 -66
- /omlish/dataclasses/{internals.py → _internals.py} +0 -0
- /omlish/dataclasses/{api/classes → impl}/__init__.py +0 -0
- /omlish/dataclasses/{api → impl/api}/__init__.py +0 -0
- /omlish/dataclasses/{api/fields → impl/api/classes}/__init__.py +0 -0
- /omlish/dataclasses/{api → impl/api}/classes/make.py +0 -0
- /omlish/dataclasses/{generation → impl/api/fields}/__init__.py +0 -0
- /omlish/dataclasses/{concerns → impl/concerns}/__init__.py +0 -0
- /omlish/dataclasses/{concerns → impl/concerns}/abc.py +0 -0
- /omlish/dataclasses/{concerns → impl/concerns}/doc.py +0 -0
- /omlish/dataclasses/{concerns → impl/concerns}/eq.py +0 -0
- /omlish/dataclasses/{concerns → impl/concerns}/order.py +0 -0
- /omlish/dataclasses/{concerns → impl/concerns}/override.py +0 -0
- /omlish/dataclasses/{concerns → impl/concerns}/slots.py +0 -0
- /omlish/dataclasses/{processing → impl/generation}/__init__.py +0 -0
- /omlish/dataclasses/{generation → impl/generation}/base.py +0 -0
- /omlish/dataclasses/{generation → impl/generation}/idents.py +0 -0
- /omlish/dataclasses/{generation → impl/generation}/manifests.py +0 -0
- /omlish/dataclasses/{generation → impl/generation}/ops.py +0 -0
- /omlish/dataclasses/{generation → impl/generation}/utils.py +0 -0
- /omlish/dataclasses/{processing → impl/processing}/priority.py +0 -0
- {omlish-0.0.0.dev395.dist-info → omlish-0.0.0.dev396.dist-info}/WHEEL +0 -0
- {omlish-0.0.0.dev395.dist-info → omlish-0.0.0.dev396.dist-info}/entry_points.txt +0 -0
- {omlish-0.0.0.dev395.dist-info → omlish-0.0.0.dev396.dist-info}/licenses/LICENSE +0 -0
- {omlish-0.0.0.dev395.dist-info → omlish-0.0.0.dev396.dist-info}/top_level.txt +0 -0
omlish/__about__.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
__version__ = '0.0.0.
|
2
|
-
__revision__ = '
|
1
|
+
__version__ = '0.0.0.dev396'
|
2
|
+
__revision__ = '00b57bae472acf724c5154303eaea5f0f847f129'
|
3
3
|
|
4
4
|
|
5
5
|
#
|
@@ -69,7 +69,7 @@ class Project(ProjectBase):
|
|
69
69
|
|
70
70
|
'pyyaml ~= 6.0',
|
71
71
|
|
72
|
-
'cbor2 ~= 5.
|
72
|
+
'cbor2 ~= 5.7',
|
73
73
|
|
74
74
|
'cloudpickle ~= 3.1',
|
75
75
|
],
|
omlish/collections/__init__.py
CHANGED
@@ -0,0 +1,156 @@
|
|
1
|
+
import typing as ta
|
2
|
+
|
3
|
+
|
4
|
+
K = ta.TypeVar('K')
|
5
|
+
V = ta.TypeVar('V')
|
6
|
+
K2 = ta.TypeVar('K2')
|
7
|
+
V2 = ta.TypeVar('V2')
|
8
|
+
|
9
|
+
|
10
|
+
##
|
11
|
+
|
12
|
+
|
13
|
+
class Trie(ta.MutableMapping[ta.Sequence[K], V], ta.Generic[K, V]):
|
14
|
+
class Node(ta.Generic[K2, V2]):
|
15
|
+
def __init__(self) -> None:
|
16
|
+
self._children: dict[K2, Trie.Node[K2, V2]] = {}
|
17
|
+
|
18
|
+
_value: V2
|
19
|
+
|
20
|
+
def __init_subclass__(cls, **kwargs):
|
21
|
+
raise TypeError
|
22
|
+
|
23
|
+
@property
|
24
|
+
def has_value(self) -> bool:
|
25
|
+
try:
|
26
|
+
self._value # noqa
|
27
|
+
except AttributeError:
|
28
|
+
return False
|
29
|
+
else:
|
30
|
+
return True
|
31
|
+
|
32
|
+
@property
|
33
|
+
def value(self) -> V2:
|
34
|
+
return self._value
|
35
|
+
|
36
|
+
@property
|
37
|
+
def children(self) -> ta.Mapping[K2, 'Trie.Node[K2, V2]']:
|
38
|
+
return self._children
|
39
|
+
|
40
|
+
def __init__(self) -> None:
|
41
|
+
super().__init__()
|
42
|
+
|
43
|
+
self._len = 0
|
44
|
+
self._root: Trie.Node[K, V] = Trie.Node()
|
45
|
+
|
46
|
+
@property
|
47
|
+
def root(self) -> Node[K, V]:
|
48
|
+
return self._root
|
49
|
+
|
50
|
+
def __len__(self) -> int:
|
51
|
+
return self._len
|
52
|
+
|
53
|
+
def get_node(self, k: ta.Iterable[K]) -> Node[K, V]:
|
54
|
+
cur = self._root
|
55
|
+
for x in k:
|
56
|
+
cur = cur._children[x] # noqa
|
57
|
+
return cur
|
58
|
+
|
59
|
+
def __getitem__(self, k: ta.Iterable[K]) -> V:
|
60
|
+
try:
|
61
|
+
node = self.get_node(k)
|
62
|
+
except KeyError:
|
63
|
+
raise KeyError(k) from None
|
64
|
+
|
65
|
+
try:
|
66
|
+
return node.value
|
67
|
+
except AttributeError:
|
68
|
+
raise KeyError(k) from None
|
69
|
+
|
70
|
+
def __setitem__(self, k: ta.Iterable[K], v: V) -> None:
|
71
|
+
cur = self._root
|
72
|
+
for x in k:
|
73
|
+
try:
|
74
|
+
cur = cur._children[x] # noqa
|
75
|
+
except KeyError:
|
76
|
+
nxt: Trie.Node[K, V] = Trie.Node()
|
77
|
+
cur._children[x] = nxt # noqa
|
78
|
+
cur = nxt
|
79
|
+
|
80
|
+
try:
|
81
|
+
cur._value # noqa
|
82
|
+
except AttributeError:
|
83
|
+
self._len += 1
|
84
|
+
cur._value = v # noqa
|
85
|
+
|
86
|
+
def __delitem__(self, k: ta.Iterable[K]) -> None:
|
87
|
+
stack: list[tuple[K, Trie.Node[K, V]]] = []
|
88
|
+
cur = self._root
|
89
|
+
for x in k:
|
90
|
+
stack.append((x, cur))
|
91
|
+
cur = cur._children[x] # noqa
|
92
|
+
|
93
|
+
try:
|
94
|
+
del cur._value # noqa
|
95
|
+
except AttributeError:
|
96
|
+
raise KeyError(k) from None
|
97
|
+
|
98
|
+
self._len -= 1
|
99
|
+
for x, parent in reversed(stack):
|
100
|
+
if cur.has_value or cur._children: # noqa
|
101
|
+
break
|
102
|
+
del parent._children[x] # noqa
|
103
|
+
cur = parent
|
104
|
+
|
105
|
+
def iter_nodes(
|
106
|
+
self,
|
107
|
+
*,
|
108
|
+
share_key: bool = False,
|
109
|
+
root: ta.Optional['Trie.Node[K, V]'] = None,
|
110
|
+
sort_children: bool | ta.Callable[[list[tuple[K, Node[K, V]]]], None] = False,
|
111
|
+
) -> ta.Iterator[tuple[ta.Sequence[K], Node[K, V]]]:
|
112
|
+
if root is None:
|
113
|
+
root = self._root
|
114
|
+
|
115
|
+
ic: ta.Callable[[ta.Mapping[K, Trie.Node[K, V]]], ta.Iterator[tuple[K, Trie.Node[K, V]]]]
|
116
|
+
if sort_children is True:
|
117
|
+
ic = lambda cd: iter(sorted(cd.items(), key=lambda t: t[0])) # type: ignore
|
118
|
+
elif sort_children is False:
|
119
|
+
ic = lambda cd: iter(cd.items())
|
120
|
+
else:
|
121
|
+
def ic(cd):
|
122
|
+
il = list(cd.items())
|
123
|
+
sort_children(il)
|
124
|
+
return iter(il)
|
125
|
+
|
126
|
+
key: list[K] = []
|
127
|
+
stack: list[tuple[Trie.Node[K, V], ta.Iterator[tuple[K, Trie.Node[K, V]]]]] = []
|
128
|
+
|
129
|
+
stack.append((root, ic(root._children))) # noqa
|
130
|
+
yield (key if share_key else tuple(key), root)
|
131
|
+
|
132
|
+
while stack:
|
133
|
+
node, it = stack[-1]
|
134
|
+
|
135
|
+
try:
|
136
|
+
k, c = next(it)
|
137
|
+
except StopIteration:
|
138
|
+
stack.pop()
|
139
|
+
if stack:
|
140
|
+
key.pop()
|
141
|
+
continue
|
142
|
+
key.append(k)
|
143
|
+
|
144
|
+
stack.append((c, ic(c._children))) # noqa
|
145
|
+
yield (key if share_key else tuple(key), c)
|
146
|
+
|
147
|
+
def iter_items(self, **kwargs: ta.Any) -> ta.Iterator[tuple[ta.Sequence[K], V]]:
|
148
|
+
for k, node in self.iter_nodes(**kwargs):
|
149
|
+
try:
|
150
|
+
yield (k, node._value) # noqa
|
151
|
+
except AttributeError:
|
152
|
+
pass
|
153
|
+
|
154
|
+
def __iter__(self) -> ta.Iterator[ta.Sequence[K]]:
|
155
|
+
for k, _ in self.iter_items():
|
156
|
+
yield k
|
omlish/dataclasses/__init__.py
CHANGED
@@ -22,7 +22,7 @@ from dataclasses import ( # noqa
|
|
22
22
|
replace,
|
23
23
|
)
|
24
24
|
|
25
|
-
from .api import ( # noqa
|
25
|
+
from .impl.api import ( # noqa
|
26
26
|
dataclass as xdataclass,
|
27
27
|
|
28
28
|
make_dataclass as xmake_dataclass,
|
@@ -30,15 +30,15 @@ from .api import ( # noqa
|
|
30
30
|
field as xfield,
|
31
31
|
)
|
32
32
|
|
33
|
+
from .impl.concerns.replace import ( # noqa
|
34
|
+
replace as xreplace,
|
35
|
+
)
|
36
|
+
|
33
37
|
from .tools.as_ import ( # noqa
|
34
38
|
asdict,
|
35
39
|
astuple,
|
36
40
|
)
|
37
41
|
|
38
|
-
from .concerns.replace import ( # noqa
|
39
|
-
replace as xreplace,
|
40
|
-
)
|
41
|
-
|
42
42
|
|
43
43
|
##
|
44
44
|
# globals hack
|
@@ -54,7 +54,7 @@ globals()['replace'] = xreplace
|
|
54
54
|
##
|
55
55
|
# additional interface
|
56
56
|
|
57
|
-
from .api import ( # noqa
|
57
|
+
from .impl.api import ( # noqa
|
58
58
|
append_class_metadata,
|
59
59
|
extra_class_params,
|
60
60
|
init,
|
@@ -1,9 +1,9 @@
|
|
1
1
|
import typing as ta
|
2
2
|
|
3
|
-
from
|
4
|
-
from
|
5
|
-
from
|
6
|
-
from
|
3
|
+
from ..... import check
|
4
|
+
from ...._internals import StdParams
|
5
|
+
from ....specs import ClassSpec
|
6
|
+
from ....specs import FieldSpec
|
7
7
|
|
8
8
|
|
9
9
|
##
|
@@ -5,12 +5,12 @@ TODO:
|
|
5
5
|
import inspect
|
6
6
|
import typing as ta
|
7
7
|
|
8
|
-
from
|
9
|
-
from
|
10
|
-
from
|
11
|
-
from
|
8
|
+
from ..... import check
|
9
|
+
from ..... import lang
|
10
|
+
from ...._internals import STD_FIELDS_ATTR
|
11
|
+
from ...._internals import STD_PARAMS_ATTR
|
12
|
+
from ....specs import ClassSpec
|
12
13
|
from ...processing.driving import drive_cls_processing
|
13
|
-
from ...specs import ClassSpec
|
14
14
|
from ...utils import class_decorator
|
15
15
|
from ..fields.building import build_cls_std_fields
|
16
16
|
from ..fields.conversion import std_field_to_field_spec
|
@@ -1,10 +1,10 @@
|
|
1
1
|
import dataclasses as dc
|
2
2
|
import typing as ta
|
3
3
|
|
4
|
-
from
|
5
|
-
from
|
6
|
-
from
|
7
|
-
from
|
4
|
+
from ..... import check
|
5
|
+
from ..... import lang
|
6
|
+
from .....lite.dataclasses import is_immediate_dataclass
|
7
|
+
from ....specs import InitFn
|
8
8
|
|
9
9
|
|
10
10
|
T = ta.TypeVar('T')
|
@@ -1,9 +1,9 @@
|
|
1
1
|
import typing as ta
|
2
2
|
|
3
|
-
from
|
4
|
-
from
|
5
|
-
from
|
6
|
-
from
|
3
|
+
from ..... import check
|
4
|
+
from ...._internals import STD_PARAMS_ATTR
|
5
|
+
from ...._internals import StdParams
|
6
|
+
from ....specs import ClassSpec
|
7
7
|
|
8
8
|
|
9
9
|
##
|
@@ -2,13 +2,13 @@ import dataclasses as dc
|
|
2
2
|
import types
|
3
3
|
import typing as ta
|
4
4
|
|
5
|
-
from
|
6
|
-
from
|
7
|
-
from
|
8
|
-
from
|
9
|
-
from
|
10
|
-
from
|
11
|
-
from
|
5
|
+
from ..... import check
|
6
|
+
from ...._internals import STD_FIELDS_ATTR
|
7
|
+
from ...._internals import StdFieldType
|
8
|
+
from ...._internals import std_is_classvar
|
9
|
+
from ...._internals import std_is_initvar
|
10
|
+
from ...._internals import std_is_kw_only
|
11
|
+
from ....inspect import get_cls_annotations
|
12
12
|
|
13
13
|
|
14
14
|
##
|
@@ -2,10 +2,10 @@ import collections
|
|
2
2
|
import dataclasses as dc
|
3
3
|
import typing as ta
|
4
4
|
|
5
|
-
from
|
6
|
-
from
|
7
|
-
from
|
8
|
-
from
|
5
|
+
from ..... import lang
|
6
|
+
from ....specs import CoerceFn
|
7
|
+
from ....specs import ReprFn
|
8
|
+
from ....specs import ValidateFn
|
9
9
|
from .metadata import _ExtraFieldParamsMetadata
|
10
10
|
from .metadata import extra_field_params
|
11
11
|
|
@@ -1,14 +1,14 @@
|
|
1
1
|
import dataclasses as dc
|
2
2
|
import typing as ta
|
3
3
|
|
4
|
-
from
|
5
|
-
from
|
6
|
-
from
|
7
|
-
from
|
8
|
-
from
|
9
|
-
from
|
10
|
-
from
|
11
|
-
from
|
4
|
+
from ..... import check
|
5
|
+
from ..... import lang
|
6
|
+
from ...._internals import StdFieldType
|
7
|
+
from ...._internals import std_field_type
|
8
|
+
from ....debug import DEBUG
|
9
|
+
from ....specs import DefaultFactory
|
10
|
+
from ....specs import FieldSpec
|
11
|
+
from ....specs import FieldType
|
12
12
|
from .metadata import _ExtraFieldParamsMetadata
|
13
13
|
from .metadata import set_field_spec_metadata
|
14
14
|
|
@@ -1,11 +1,11 @@
|
|
1
1
|
import dataclasses as dc
|
2
2
|
import typing as ta
|
3
3
|
|
4
|
-
from
|
5
|
-
from
|
6
|
-
from
|
7
|
-
from
|
8
|
-
from
|
4
|
+
from ..... import check
|
5
|
+
from ..... import lang
|
6
|
+
from ....debug import DEBUG
|
7
|
+
from ....specs import FieldSpec
|
8
|
+
from ....tools.modifiers import field_modifier
|
9
9
|
from ...utils import chain_mapping_proxy
|
10
10
|
|
11
11
|
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import dataclasses as dc
|
2
2
|
import typing as ta
|
3
3
|
|
4
|
+
from ...specs import FieldType
|
4
5
|
from ..generation.base import Generator
|
5
6
|
from ..generation.base import Plan
|
6
7
|
from ..generation.base import PlanResult
|
@@ -10,7 +11,6 @@ from ..generation.ops import Op
|
|
10
11
|
from ..generation.registry import register_generator_type
|
11
12
|
from ..generation.utils import build_attr_kwargs_body_src_lines
|
12
13
|
from ..processing.base import ProcessingContext
|
13
|
-
from ..specs import FieldType
|
14
14
|
|
15
15
|
|
16
16
|
##
|
@@ -1,18 +1,18 @@
|
|
1
1
|
import dataclasses as dc
|
2
2
|
import typing as ta
|
3
3
|
|
4
|
-
from
|
5
|
-
from
|
4
|
+
from .... import check
|
5
|
+
from ..._internals import STD_FIELDS_ATTR
|
6
|
+
from ...debug import DEBUG
|
7
|
+
from ...inspect import FieldsInspection
|
8
|
+
from ...specs import FieldSpec
|
9
|
+
from ...specs import FieldType
|
6
10
|
from ..generation.idents import IDENT_PREFIX
|
7
|
-
from ..inspect import FieldsInspection
|
8
|
-
from ..internals import STD_FIELDS_ATTR
|
9
11
|
from ..processing.base import ProcessingContext
|
10
12
|
from ..processing.base import Processor
|
11
13
|
from ..processing.priority import ProcessorPriority
|
12
14
|
from ..processing.registry import register_processing_context_item_factory
|
13
15
|
from ..processing.registry import register_processor_type
|
14
|
-
from ..specs import FieldSpec
|
15
|
-
from ..specs import FieldType
|
16
16
|
|
17
17
|
|
18
18
|
##
|
@@ -7,7 +7,9 @@ import dataclasses as dc
|
|
7
7
|
import typing as ta
|
8
8
|
import weakref
|
9
9
|
|
10
|
-
from
|
10
|
+
from .... import check
|
11
|
+
from ..._internals import STD_FIELDS_ATTR
|
12
|
+
from ..._internals import STD_PARAMS_ATTR
|
11
13
|
from ..generation.base import Generator
|
12
14
|
from ..generation.base import Plan
|
13
15
|
from ..generation.base import PlanResult
|
@@ -17,8 +19,6 @@ from ..generation.idents import IDENT_PREFIX
|
|
17
19
|
from ..generation.ops import AddMethodOp
|
18
20
|
from ..generation.ops import Op
|
19
21
|
from ..generation.registry import register_generator_type
|
20
|
-
from ..internals import STD_FIELDS_ATTR
|
21
|
-
from ..internals import STD_PARAMS_ATTR
|
22
22
|
from ..processing.base import ProcessingContext
|
23
23
|
|
24
24
|
|
@@ -7,7 +7,15 @@ import dataclasses as dc
|
|
7
7
|
import itertools
|
8
8
|
import typing as ta
|
9
9
|
|
10
|
-
from
|
10
|
+
from .... import check
|
11
|
+
from ..._internals import STD_POST_INIT_NAME
|
12
|
+
from ...inspect import FieldsInspection
|
13
|
+
from ...specs import CoerceFn
|
14
|
+
from ...specs import DefaultFactory
|
15
|
+
from ...specs import FieldSpec
|
16
|
+
from ...specs import FieldType
|
17
|
+
from ...specs import InitFn
|
18
|
+
from ...specs import ValidateFn
|
11
19
|
from ..generation.base import Generator
|
12
20
|
from ..generation.base import Plan
|
13
21
|
from ..generation.base import PlanResult
|
@@ -24,15 +32,7 @@ from ..generation.ops import OpRef
|
|
24
32
|
from ..generation.ops import Ref
|
25
33
|
from ..generation.registry import register_generator_type
|
26
34
|
from ..generation.utils import SetattrSrcBuilder
|
27
|
-
from ..inspect import FieldsInspection
|
28
|
-
from ..internals import STD_POST_INIT_NAME
|
29
35
|
from ..processing.base import ProcessingContext
|
30
|
-
from ..specs import CoerceFn
|
31
|
-
from ..specs import DefaultFactory
|
32
|
-
from ..specs import FieldSpec
|
33
|
-
from ..specs import FieldType
|
34
|
-
from ..specs import InitFn
|
35
|
-
from ..specs import ValidateFn
|
36
36
|
from .fields import InitFields
|
37
37
|
from .mro import MroDict
|
38
38
|
|
@@ -1,5 +1,5 @@
|
|
1
|
-
from
|
2
|
-
from
|
1
|
+
from .... import check
|
2
|
+
from ..._internals import STD_PARAMS_ATTR
|
3
3
|
from ..processing.base import Processor
|
4
4
|
from ..processing.priority import ProcessorPriority
|
5
5
|
from ..processing.registry import register_processor_type
|
@@ -1,10 +1,10 @@
|
|
1
1
|
import dataclasses as dc
|
2
2
|
import typing as ta
|
3
3
|
|
4
|
-
from
|
5
|
-
from
|
6
|
-
from
|
7
|
-
from
|
4
|
+
from ..._internals import STD_FIELDS_ATTR
|
5
|
+
from ..._internals import StdFieldType
|
6
|
+
from ..._internals import std_field_type
|
7
|
+
from ..._internals import std_is_dataclass_instance
|
8
8
|
from ..processing.base import Processor
|
9
9
|
from ..processing.priority import ProcessorPriority
|
10
10
|
from ..processing.registry import register_processor_type
|
@@ -1,6 +1,9 @@
|
|
1
1
|
import dataclasses as dc
|
2
2
|
import typing as ta
|
3
3
|
|
4
|
+
from ...specs import FieldSpec
|
5
|
+
from ...specs import FieldType
|
6
|
+
from ...specs import ReprFn
|
4
7
|
from ..generation.base import Generator
|
5
8
|
from ..generation.base import Plan
|
6
9
|
from ..generation.base import PlanResult
|
@@ -11,9 +14,6 @@ from ..generation.ops import OpRef
|
|
11
14
|
from ..generation.ops import Ref
|
12
15
|
from ..generation.registry import register_generator_type
|
13
16
|
from ..processing.base import ProcessingContext
|
14
|
-
from ..specs import FieldSpec
|
15
|
-
from ..specs import FieldType
|
16
|
-
from ..specs import ReprFn
|
17
17
|
from .fields import InitFields
|
18
18
|
|
19
19
|
|
@@ -3,9 +3,9 @@ import reprlib
|
|
3
3
|
import types
|
4
4
|
import typing as ta
|
5
5
|
|
6
|
-
from
|
7
|
-
from
|
8
|
-
from
|
6
|
+
from ...errors import FieldFnValidationError
|
7
|
+
from ...errors import FieldTypeValidationError
|
8
|
+
from ...errors import FnValidationError
|
9
9
|
from .idents import IDENT_PREFIX
|
10
10
|
|
11
11
|
|
@@ -8,8 +8,8 @@ import dataclasses as dc
|
|
8
8
|
import sys
|
9
9
|
import typing as ta
|
10
10
|
|
11
|
-
from
|
12
|
-
from
|
11
|
+
from .... import check
|
12
|
+
from .... import lang
|
13
13
|
from ..processing.base import ProcessingContext
|
14
14
|
from ..processing.base import ProcessingOption
|
15
15
|
from ..processing.base import Processor
|
@@ -43,6 +43,21 @@ class Verbose(ProcessingOption):
|
|
43
43
|
b: bool
|
44
44
|
|
45
45
|
|
46
|
+
class CompileCallback(ta.Protocol):
|
47
|
+
def __call__(
|
48
|
+
self,
|
49
|
+
ctx: ProcessingContext,
|
50
|
+
prepared: 'GeneratorProcessor.Prepared',
|
51
|
+
comp: OpCompiler.CompileResult,
|
52
|
+
) -> None:
|
53
|
+
...
|
54
|
+
|
55
|
+
|
56
|
+
@dc.dataclass(frozen=True)
|
57
|
+
class Codegen(ProcessingOption):
|
58
|
+
callback: CompileCallback
|
59
|
+
|
60
|
+
|
46
61
|
@register_processor_type(priority=ProcessorPriority.GENERATION)
|
47
62
|
class GeneratorProcessor(Processor):
|
48
63
|
class Mode(abc.ABC):
|
@@ -61,6 +76,15 @@ class GeneratorProcessor(Processor):
|
|
61
76
|
opx.execute(op)
|
62
77
|
|
63
78
|
class CompilerMode(Mode):
|
79
|
+
def __init__(
|
80
|
+
self,
|
81
|
+
*,
|
82
|
+
codegen: Codegen,
|
83
|
+
) -> None:
|
84
|
+
super().__init__()
|
85
|
+
|
86
|
+
self._codegen = codegen
|
87
|
+
|
64
88
|
def _process(self, gp: 'GeneratorProcessor', cls: type) -> None:
|
65
89
|
compiler = OpCompiler(
|
66
90
|
OpCompiler.AotStyle(),
|
@@ -115,18 +139,14 @@ class GeneratorProcessor(Processor):
|
|
115
139
|
|
116
140
|
fn(**kw)
|
117
141
|
|
118
|
-
|
142
|
+
if (cg := self._codegen) is not None and (cb := cg.callback) is not None:
|
143
|
+
cb(
|
144
|
+
gp._ctx, # noqa
|
145
|
+
gp.prepare(),
|
146
|
+
comp,
|
147
|
+
)
|
119
148
|
|
120
|
-
|
121
|
-
self,
|
122
|
-
ctx: ProcessingContext,
|
123
|
-
*,
|
124
|
-
mode: Mode = ExecutorMode(),
|
125
|
-
# mode: Mode = CompilerMode(),
|
126
|
-
) -> None:
|
127
|
-
super().__init__(ctx)
|
128
|
-
|
129
|
-
self._mode = mode
|
149
|
+
#
|
130
150
|
|
131
151
|
@dc.dataclass(frozen=True)
|
132
152
|
class Prepared:
|
@@ -177,6 +197,13 @@ class GeneratorProcessor(Processor):
|
|
177
197
|
def process(self, cls: type) -> type:
|
178
198
|
if (po := self._ctx.option(PlanOnly)) is not None and po.b:
|
179
199
|
self.prepare()
|
200
|
+
return cls
|
201
|
+
|
202
|
+
mode: GeneratorProcessor.Mode
|
203
|
+
if (cg := self._ctx.option(Codegen)) is not None: # noqa
|
204
|
+
mode = GeneratorProcessor.CompilerMode(codegen=cg)
|
180
205
|
else:
|
181
|
-
|
206
|
+
mode = GeneratorProcessor.ExecutorMode()
|
207
|
+
|
208
|
+
mode._process(self, cls) # noqa
|
182
209
|
return cls
|
File without changes
|
@@ -1,7 +1,11 @@
|
|
1
|
+
import contextlib
|
2
|
+
import contextvars
|
3
|
+
import typing as ta
|
1
4
|
|
5
|
+
from .... import lang
|
6
|
+
from ...specs import ClassSpec
|
2
7
|
from .. import concerns as _concerns # noqa # imported for registration
|
3
8
|
from ..generation import processor as gp
|
4
|
-
from ..specs import ClassSpec
|
5
9
|
from .base import ProcessingContext
|
6
10
|
from .base import ProcessingOption
|
7
11
|
from .base import Processor
|
@@ -12,6 +16,24 @@ from .registry import ordered_processor_types
|
|
12
16
|
##
|
13
17
|
|
14
18
|
|
19
|
+
_OPTIONS_CONTEXT_VAR: contextvars.ContextVar[ta.Sequence[ProcessingOption]] = contextvars.ContextVar(
|
20
|
+
f'{__name__}._OPTIONS_CONTEXT_VAR',
|
21
|
+
default=(),
|
22
|
+
)
|
23
|
+
|
24
|
+
|
25
|
+
@contextlib.contextmanager
|
26
|
+
def processing_options_context(*opts: ProcessingOption) -> ta.Iterator[None]:
|
27
|
+
with lang.context_var_setting(
|
28
|
+
_OPTIONS_CONTEXT_VAR,
|
29
|
+
(*_OPTIONS_CONTEXT_VAR.get(), *opts),
|
30
|
+
):
|
31
|
+
yield
|
32
|
+
|
33
|
+
|
34
|
+
##
|
35
|
+
|
36
|
+
|
15
37
|
def drive_cls_processing(
|
16
38
|
cls: type,
|
17
39
|
cs: ClassSpec,
|
@@ -19,7 +41,7 @@ def drive_cls_processing(
|
|
19
41
|
plan_only: bool = False,
|
20
42
|
verbose: bool = False,
|
21
43
|
) -> type:
|
22
|
-
options: list[ProcessingOption] =
|
44
|
+
options: list[ProcessingOption] = list(_OPTIONS_CONTEXT_VAR.get())
|
23
45
|
if plan_only:
|
24
46
|
options.append(gp.PlanOnly(True))
|
25
47
|
if verbose:
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import dataclasses as dc
|
2
2
|
import typing as ta
|
3
3
|
|
4
|
-
from
|
5
|
-
from
|
4
|
+
from .... import check
|
5
|
+
from .... import lang
|
6
6
|
from ..utils import SealableRegistry
|
7
7
|
from .base import ProcessingContextItemFactory
|
8
8
|
from .base import Processor
|
omlish/dataclasses/inspect.py
CHANGED
@@ -7,10 +7,10 @@ from .. import check
|
|
7
7
|
from .. import collections as col
|
8
8
|
from .. import lang
|
9
9
|
from .. import reflect as rfl
|
10
|
-
from .
|
11
|
-
from .
|
12
|
-
from .
|
13
|
-
from .
|
10
|
+
from ._internals import STD_FIELDS_ATTR
|
11
|
+
from ._internals import StdFieldType
|
12
|
+
from ._internals import std_field_type
|
13
|
+
from ._internals import std_is_kw_only
|
14
14
|
|
15
15
|
|
16
16
|
ClassAnnotations: ta.TypeAlias = ta.Mapping[str, ta.Any]
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import typing as ta
|
2
2
|
|
3
|
-
from ..api.classes.decorator import dataclass
|
4
|
-
from ..concerns.frozen import unchecked_frozen_base
|
3
|
+
from ..impl.api.classes.decorator import dataclass
|
4
|
+
from ..impl.concerns.frozen import unchecked_frozen_base
|
5
5
|
from .meta import DataMeta
|
6
6
|
from .specs import get_metaclass_spec
|
7
7
|
|
@@ -8,7 +8,7 @@ import dataclasses as dc
|
|
8
8
|
import typing as ta
|
9
9
|
|
10
10
|
from ... import lang
|
11
|
-
from ..api.classes.decorator import dataclass
|
11
|
+
from ..impl.api.classes.decorator import dataclass
|
12
12
|
from .confer import CONFER_METACLASS_PARAMS
|
13
13
|
from .confer import confer_kwargs
|
14
14
|
from .specs import MetaclassSpec
|
omlish/dataclasses/reflection.py
CHANGED
@@ -2,17 +2,17 @@ import dataclasses as dc
|
|
2
2
|
import typing as ta
|
3
3
|
|
4
4
|
from .. import lang
|
5
|
-
from .
|
6
|
-
from .
|
7
|
-
from .
|
8
|
-
from .api.
|
9
|
-
from .
|
10
|
-
from .
|
5
|
+
from ._internals import STD_PARAMS_ATTR
|
6
|
+
from ._internals import StdFieldType
|
7
|
+
from ._internals import std_field_type
|
8
|
+
from .impl.api.classes.conversion import std_params_to_class_spec
|
9
|
+
from .impl.api.classes.metadata import extract_cls_metadata
|
10
|
+
from .impl.api.classes.params import get_class_spec
|
11
|
+
from .impl.api.fields.conversion import std_field_to_field_spec
|
12
|
+
from .impl.concerns.fields import InitFields
|
13
|
+
from .impl.concerns.fields import calc_init_fields
|
11
14
|
from .inspect import FieldsInspection
|
12
15
|
from .inspect import inspect_fields
|
13
|
-
from .internals import STD_PARAMS_ATTR
|
14
|
-
from .internals import StdFieldType
|
15
|
-
from .internals import std_field_type
|
16
16
|
from .specs import ClassSpec
|
17
17
|
|
18
18
|
|
omlish/dataclasses/tools/as_.py
CHANGED
@@ -10,7 +10,7 @@ import typing as ta
|
|
10
10
|
|
11
11
|
from ... import lang
|
12
12
|
from ...lite.dataclasses import is_immediate_dataclass
|
13
|
-
from ..api.classes.decorator import dataclass
|
13
|
+
from ..impl.api.classes.decorator import dataclass
|
14
14
|
|
15
15
|
|
16
16
|
##
|
@@ -123,7 +123,7 @@ class Static(lang.Abstract):
|
|
123
123
|
new_fld.default_factory = (lambda v2: lambda: v2)(v) # noqa
|
124
124
|
|
125
125
|
# FIXME
|
126
|
-
from ..api.fields.metadata import _ExtraFieldParamsMetadata # noqa
|
126
|
+
from ..impl.api.fields.metadata import _ExtraFieldParamsMetadata # noqa
|
127
127
|
from ..specs import FieldSpec
|
128
128
|
try:
|
129
129
|
x_fs = fld.metadata[FieldSpec]
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: omlish
|
3
|
-
Version: 0.0.0.
|
3
|
+
Version: 0.0.0.dev396
|
4
4
|
Summary: omlish
|
5
5
|
Author: wrmsr
|
6
6
|
License-Expression: BSD-3-Clause
|
@@ -30,7 +30,7 @@ Requires-Dist: psutil~=7.0; extra == "all"
|
|
30
30
|
Requires-Dist: orjson~=3.11; extra == "all"
|
31
31
|
Requires-Dist: ujson~=5.10; extra == "all"
|
32
32
|
Requires-Dist: pyyaml~=6.0; extra == "all"
|
33
|
-
Requires-Dist: cbor2~=5.
|
33
|
+
Requires-Dist: cbor2~=5.7; extra == "all"
|
34
34
|
Requires-Dist: cloudpickle~=3.1; extra == "all"
|
35
35
|
Requires-Dist: httpx[http2]~=0.28; extra == "all"
|
36
36
|
Requires-Dist: wrapt~=1.17; extra == "all"
|
@@ -73,7 +73,7 @@ Provides-Extra: formats
|
|
73
73
|
Requires-Dist: orjson~=3.11; extra == "formats"
|
74
74
|
Requires-Dist: ujson~=5.10; extra == "formats"
|
75
75
|
Requires-Dist: pyyaml~=6.0; extra == "formats"
|
76
|
-
Requires-Dist: cbor2~=5.
|
76
|
+
Requires-Dist: cbor2~=5.7; extra == "formats"
|
77
77
|
Requires-Dist: cloudpickle~=3.1; extra == "formats"
|
78
78
|
Provides-Extra: http
|
79
79
|
Requires-Dist: httpx[http2]~=0.28; extra == "http"
|
@@ -1,5 +1,5 @@
|
|
1
1
|
omlish/.manifests.json,sha256=aT8yZ-Zh-9wfHl5Ym5ouiWC1i0cy7Q7RlhzavB6VLPI,8587
|
2
|
-
omlish/__about__.py,sha256=
|
2
|
+
omlish/__about__.py,sha256=jJq0cRSEqqPSEtQOLGlVNDiSSFi0eTxgXIOtJFOHIdY,3543
|
3
3
|
omlish/__init__.py,sha256=SsyiITTuK0v74XpKV8dqNaCmjOlan1JZKrHQv5rWKPA,253
|
4
4
|
omlish/c3.py,sha256=rer-TPOFDU6fYq_AWio_AmA-ckZ8JDY5shIzQ_yXfzA,8414
|
5
5
|
omlish/cached.py,sha256=MLap_p0rdGoDIMVhXVHm1tsbcWobJF0OanoodV03Ju8,542
|
@@ -76,7 +76,7 @@ omlish/codecs/funcs.py,sha256=or0Jogczuzk7csDTRl-HURMEjl8LXXqxxXYK45xcM5w,855
|
|
76
76
|
omlish/codecs/registry.py,sha256=PIf7XdwVX7Q85-MnyURtX9SKAYolK_r7wls9Z-qAsnA,3911
|
77
77
|
omlish/codecs/standard.py,sha256=eiZ4u9ep0XrA4Z_D1zJI0vmWyuN8HLrX4Se_r_Cq_ZM,60
|
78
78
|
omlish/codecs/text.py,sha256=uHhV8jBgH0iZgcrV0nl4-0a_9ofln4iFH4OXoVm2CW4,5709
|
79
|
-
omlish/collections/__init__.py,sha256
|
79
|
+
omlish/collections/__init__.py,sha256=bNcBs7Z-IbvfzG37uF44Ao4cQFZkTl1IcmTYpjajh3M,2675
|
80
80
|
omlish/collections/abc.py,sha256=p9zhL5oNV5WPyWmMn34fWfkuxPQAjOtL7WQA-Xsyhwk,2628
|
81
81
|
omlish/collections/bimap.py,sha256=3szDCscPJlFRtkpyVQNWneg4s50mr6Rd0jdTzVEIcnE,1661
|
82
82
|
omlish/collections/coerce.py,sha256=tAls15v_7p5bUN33R7Zbko87KW5toWHl9fRialCqyNY,7030
|
@@ -87,6 +87,7 @@ omlish/collections/mappings.py,sha256=lAzKP9RONLjFH7emIDoY-6jukuD-Sa7fdxzP7u6qrq
|
|
87
87
|
omlish/collections/multimaps.py,sha256=8Sqi1iVxUObnL47s8b1esa2TERoiEyyY4RBWF1VjDiw,3820
|
88
88
|
omlish/collections/ordered.py,sha256=XV_ufr3QycjQ3nIy9L3BufdBosWD-3wb5xVZEHpZocQ,2467
|
89
89
|
omlish/collections/ranked.py,sha256=McB8C2UQfUvrbmxGTpBz1-EZuyCLkBFtktzncMdt8_Y,2287
|
90
|
+
omlish/collections/trie.py,sha256=Oeld7SLVpVEi-VVhnXW5W5IHXDb55R6Vkn-8cPE31g4,4341
|
90
91
|
omlish/collections/unmodifiable.py,sha256=0ZkA_0paWlkgaU6OupFdSV0yFP--7XoI3lqhs3Ci6ME,4951
|
91
92
|
omlish/collections/utils.py,sha256=JYBYoConWxApqJLOjXR6GuQI76G0KQDjg6kkXrTofUw,4063
|
92
93
|
omlish/collections/cache/__init__.py,sha256=D1gO71VcwxFTZP9gAc9isHfg_TEdalwhsJcgGLvS9hg,233
|
@@ -135,74 +136,76 @@ omlish/daemons/services.py,sha256=laoUeJU7eVHuWl1062FBjPSD7jchOjhpYDc5FT2B3dM,34
|
|
135
136
|
omlish/daemons/spawning.py,sha256=psR73zOYjMKTqNpx1bMib8uU9wAZz62tw5TaWHrTdyY,5337
|
136
137
|
omlish/daemons/targets.py,sha256=00KmtlknMhQ5PyyVAhWl3rpeTMPym0GxvHHq6mYPZ7c,3051
|
137
138
|
omlish/daemons/waiting.py,sha256=RfgD1L33QQVbD2431dkKZGE4w6DUcGvYeRXXi8puAP4,1676
|
138
|
-
omlish/dataclasses/__init__.py,sha256=
|
139
|
+
omlish/dataclasses/__init__.py,sha256=Xkf8vRYt4C0_4H9DP2rjfzkByXNVUxL4EgoSB1p0eho,2162
|
140
|
+
omlish/dataclasses/_internals.py,sha256=vIGCZnStgD3ef4drYRtVOrxhxmAPa0vJpo4pXcDcQvM,3073
|
139
141
|
omlish/dataclasses/debug.py,sha256=giBiv6aXvX0IagwNCW64qBzNjfOFr3-VmgDy_KYlb-k,29
|
140
142
|
omlish/dataclasses/errors.py,sha256=tyv3WR6az66uGGiq9FIuCHvy1Ef-G7zeMY7mMG6hy2Y,2527
|
141
|
-
omlish/dataclasses/inspect.py,sha256=
|
142
|
-
omlish/dataclasses/
|
143
|
-
omlish/dataclasses/reflection.py,sha256=r0cZWIajIyPeacwR6PGfJGbL8dg7jHXZSvJjey81rPo,2766
|
143
|
+
omlish/dataclasses/inspect.py,sha256=EpVb50CsEUWpn70gkjBa-hI1mr5_VubHTERsofgE-Lw,4600
|
144
|
+
omlish/dataclasses/reflection.py,sha256=6BD2FUiOEtpi_2JREWyVzemjbBJdBMUm8XxQ9SVIKGs,2799
|
144
145
|
omlish/dataclasses/specs.py,sha256=JFpMILJhxiWYmfTD4TDl03O13o1i0Rwgf14WpI7U9go,6193
|
145
|
-
omlish/dataclasses/
|
146
|
-
omlish/dataclasses/
|
147
|
-
omlish/dataclasses/
|
148
|
-
omlish/dataclasses/api/
|
149
|
-
omlish/dataclasses/api/classes/
|
150
|
-
omlish/dataclasses/api/classes/
|
151
|
-
omlish/dataclasses/api/classes/
|
152
|
-
omlish/dataclasses/api/classes/
|
153
|
-
omlish/dataclasses/api/
|
154
|
-
omlish/dataclasses/api/
|
155
|
-
omlish/dataclasses/api/fields/
|
156
|
-
omlish/dataclasses/api/fields/
|
157
|
-
omlish/dataclasses/api/fields/
|
158
|
-
omlish/dataclasses/
|
159
|
-
omlish/dataclasses/
|
160
|
-
omlish/dataclasses/concerns/
|
161
|
-
omlish/dataclasses/concerns/
|
162
|
-
omlish/dataclasses/concerns/
|
163
|
-
omlish/dataclasses/concerns/
|
164
|
-
omlish/dataclasses/concerns/
|
165
|
-
omlish/dataclasses/concerns/
|
166
|
-
omlish/dataclasses/concerns/
|
167
|
-
omlish/dataclasses/concerns/
|
168
|
-
omlish/dataclasses/concerns/
|
169
|
-
omlish/dataclasses/concerns/
|
170
|
-
omlish/dataclasses/concerns/
|
171
|
-
omlish/dataclasses/concerns/
|
172
|
-
omlish/dataclasses/concerns/
|
173
|
-
omlish/dataclasses/concerns/
|
174
|
-
omlish/dataclasses/concerns/
|
175
|
-
omlish/dataclasses/
|
176
|
-
omlish/dataclasses/
|
177
|
-
omlish/dataclasses/generation/
|
178
|
-
omlish/dataclasses/generation/
|
179
|
-
omlish/dataclasses/generation/
|
180
|
-
omlish/dataclasses/generation/
|
181
|
-
omlish/dataclasses/generation/
|
182
|
-
omlish/dataclasses/generation/
|
183
|
-
omlish/dataclasses/generation/
|
184
|
-
omlish/dataclasses/generation/
|
185
|
-
omlish/dataclasses/generation/
|
186
|
-
omlish/dataclasses/generation/
|
187
|
-
omlish/dataclasses/generation/
|
146
|
+
omlish/dataclasses/impl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
147
|
+
omlish/dataclasses/impl/configs.py,sha256=ypaKmT7i_wBaS9EfChj1Ve5QySq443TBQLtaAZkDm_k,169
|
148
|
+
omlish/dataclasses/impl/utils.py,sha256=jAD6IIILo70aD_s60CaqRU2YvpZxBKy4K5EG-MTiqVo,1871
|
149
|
+
omlish/dataclasses/impl/api/__init__.py,sha256=k5iS9QOwf_f4iOfGffYhnqDOcmEIwEUUTp00u11kIPM,455
|
150
|
+
omlish/dataclasses/impl/api/classes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
151
|
+
omlish/dataclasses/impl/api/classes/conversion.py,sha256=T1I-aZKui2tv8rknuw9yCvGQLTrFnzTuHDFoezhE0ko,908
|
152
|
+
omlish/dataclasses/impl/api/classes/decorator.py,sha256=LqkAjNFpUeLThnnkzt1tIYKtIf8maDCkjrZzSbABZbg,4067
|
153
|
+
omlish/dataclasses/impl/api/classes/make.py,sha256=qcsELy9tpwMLr0RJmvlSgR0deh40nvxgy7RaG3SJ_nw,2939
|
154
|
+
omlish/dataclasses/impl/api/classes/metadata.py,sha256=sMZgtoZaybfCoBKOVj7hKc-xqfU2Lca9WFrqg8UAAsE,2773
|
155
|
+
omlish/dataclasses/impl/api/classes/params.py,sha256=cJAMxLHgW6xyKURlCnDQpA-TYfOgWpVBCavie-IZTOM,2000
|
156
|
+
omlish/dataclasses/impl/api/fields/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
157
|
+
omlish/dataclasses/impl/api/fields/building.py,sha256=8ruCNRY6ZHjWSmfUCH6jabh_LfiXkIOrR3fZ3WlHinY,3326
|
158
|
+
omlish/dataclasses/impl/api/fields/constructor.py,sha256=BNHIpZNMhnmxn7TlAa7CM4FunzupoSFWquvIsUa05JQ,1537
|
159
|
+
omlish/dataclasses/impl/api/fields/conversion.py,sha256=jh2k4klc-SkmpygPI1GJFNJd7ylj5dCKt2rwyAUSrfI,5144
|
160
|
+
omlish/dataclasses/impl/api/fields/metadata.py,sha256=klwez7mFsIiIQ3hxvXx5zhC53FPXqlHVzcyrHikIsCE,1938
|
161
|
+
omlish/dataclasses/impl/concerns/__init__.py,sha256=4Goga5wAOAbK6KcoHWC8jDC8M9ywgH7PfmXXxgCYCC8,208
|
162
|
+
omlish/dataclasses/impl/concerns/abc.py,sha256=ok2qE9ltgZXdf34YtLElTr7A-IYErJvVfP1-G2t2Sbc,391
|
163
|
+
omlish/dataclasses/impl/concerns/copy.py,sha256=0QoQkNNptD0mJdc4TJlD7lpDUm3kJNOH_EsqMLx_HB4,1762
|
164
|
+
omlish/dataclasses/impl/concerns/doc.py,sha256=SL0hj4EzXrVOhaDzHVDGnzylkOU7mcXtr9Tm3wuZnQQ,1344
|
165
|
+
omlish/dataclasses/impl/concerns/eq.py,sha256=PI0KKzJyIziRLgcjl8efjapf8baaRCdcuyGW83bCpEo,1720
|
166
|
+
omlish/dataclasses/impl/concerns/fields.py,sha256=JTO13HKs-swKnM7Qtb6El7FAfdLwxVLqULXAwotjus0,3318
|
167
|
+
omlish/dataclasses/impl/concerns/frozen.py,sha256=DTYB6aIZEqzYvWd3n6VF4Z40apWVOYKFbiYlTiGzaYE,4511
|
168
|
+
omlish/dataclasses/impl/concerns/hash.py,sha256=V5hNuvWG2GMxbhPD1E0nHW6NUR55-AjIy7LvH4gbfXA,4816
|
169
|
+
omlish/dataclasses/impl/concerns/init.py,sha256=8H7LHZfp_6PUUrFyFXy0Gq89x2fcAQO5uo4LOnZ-iIc,14552
|
170
|
+
omlish/dataclasses/impl/concerns/matchargs.py,sha256=AuVpQbUH2GPKEaogEU7HFDoJ7e8sDpwzmiPzBsblwfY,749
|
171
|
+
omlish/dataclasses/impl/concerns/mro.py,sha256=QTRNIcVaHZbLgHqg2dAbQUb0a2DCMql7FZNAiCrLTrI,408
|
172
|
+
omlish/dataclasses/impl/concerns/order.py,sha256=f1JVDkeTWllO9Tu79xKkjHul-_rpsYZXHMTnca8Di30,2469
|
173
|
+
omlish/dataclasses/impl/concerns/override.py,sha256=eegJ4KRs-p3Oj5ipY1eySwXJ3vFyVXG5gWRQZcsmvUQ,2810
|
174
|
+
omlish/dataclasses/impl/concerns/params.py,sha256=O_1f83gH8l_PzvOndxC4vlw2-bp8PNhNQUqB-0mJrWw,407
|
175
|
+
omlish/dataclasses/impl/concerns/replace.py,sha256=2lZCmTpz4uxMsNw8a29OzSykDqWHaINzvk13qyMpVUA,1509
|
176
|
+
omlish/dataclasses/impl/concerns/repr.py,sha256=j26G7vC147z-GJc86DbY__b1C4QPdiWlxeNNIujbqzM,3461
|
177
|
+
omlish/dataclasses/impl/concerns/slots.py,sha256=xg6346UT_oUlb0kYaWFbeJUKzZcpQx4nJkT86CXfI5c,5922
|
178
|
+
omlish/dataclasses/impl/generation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
179
|
+
omlish/dataclasses/impl/generation/base.py,sha256=adi68lJogtjx1SoxGJ5hqC-f-CMX2gWi8iALmucIwKo,686
|
180
|
+
omlish/dataclasses/impl/generation/compilation.py,sha256=SQ3wuVQRDhrDRcWMZXsD4TibmkgMUlrTY295DbIPCy4,6996
|
181
|
+
omlish/dataclasses/impl/generation/execution.py,sha256=iiMwCsSkTmnWpHjM80fgzkKhObIQHfF4pjxnnbEF0Bc,4819
|
182
|
+
omlish/dataclasses/impl/generation/globals.py,sha256=FhQidUvkz1O_JisA_Ifug1BUfrdvjkCt8ov5_0_quUo,2677
|
183
|
+
omlish/dataclasses/impl/generation/idents.py,sha256=GHvfuZMmmibJNxAM-8pZPTSy1kCC4oLx8Lb-jgriZsc,182
|
184
|
+
omlish/dataclasses/impl/generation/mangling.py,sha256=d4ki6OsJ4DmO6KmgDJLeV8Y58H6_hzeGUhGlJhg4ZUk,303
|
185
|
+
omlish/dataclasses/impl/generation/manifests.py,sha256=tRLO59eysC13z_lbPxaErPy-xM3BIBRpj8MhmbYoGnE,309
|
186
|
+
omlish/dataclasses/impl/generation/ops.py,sha256=dWse_SsoXtpDqXzDPJOqBeb9G5F7RrEChfGl4iTL0QE,1718
|
187
|
+
omlish/dataclasses/impl/generation/plans.py,sha256=lUKBIWG_fNQlSMiPpsT8UHpUBOsTUdFwm9-v6ofbTvs,537
|
188
|
+
omlish/dataclasses/impl/generation/processor.py,sha256=trwQmWPx31rT3FzDM3xIUYl95FapA8E4xyNQd4oK9_Y,5522
|
189
|
+
omlish/dataclasses/impl/generation/registry.py,sha256=x8E1I5XjAQmTiMr9LsdcQeVc0688lUIOTtv9Zf0OFzo,1008
|
190
|
+
omlish/dataclasses/impl/generation/utils.py,sha256=u6DWRvzxgqrxqyfAGzNOyDvnOJYdMTYyZ7l1oOOiXrI,2089
|
191
|
+
omlish/dataclasses/impl/processing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
192
|
+
omlish/dataclasses/impl/processing/base.py,sha256=NA2uR2S039cm3yNd3F_PEw9aA2EQFdq0drtheZwdlGo,2000
|
193
|
+
omlish/dataclasses/impl/processing/driving.py,sha256=08bwCvEGleguN__VHDwhW1P4dT8kQzFI7_IgWKANyLU,1580
|
194
|
+
omlish/dataclasses/impl/processing/priority.py,sha256=fNyGY2lYXIfTn9klHM86gHOOQpHjdKlCGxO0GfrggLs,265
|
195
|
+
omlish/dataclasses/impl/processing/registry.py,sha256=qTCVUOTYjDKGTxMXYUjvck3SsYXg47HEcxtrKfLWtw8,1886
|
188
196
|
omlish/dataclasses/metaclass/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
189
|
-
omlish/dataclasses/metaclass/bases.py,sha256=
|
190
|
-
omlish/dataclasses/metaclass/confer.py,sha256=
|
191
|
-
omlish/dataclasses/metaclass/meta.py,sha256=
|
192
|
-
omlish/dataclasses/metaclass/specs.py,sha256=
|
193
|
-
omlish/dataclasses/processing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
194
|
-
omlish/dataclasses/processing/base.py,sha256=v_XC7XlU5BHOhEJJoNirrI-wbQBOHvrhDCgo3CdnNyk,1997
|
195
|
-
omlish/dataclasses/processing/driving.py,sha256=k_0R0wxRaAKHp82snYeM5JGPWuTjYkVYpvTNdhv-QCA,1056
|
196
|
-
omlish/dataclasses/processing/priority.py,sha256=fNyGY2lYXIfTn9klHM86gHOOQpHjdKlCGxO0GfrggLs,265
|
197
|
-
omlish/dataclasses/processing/registry.py,sha256=iNDHwW1gsq8gTMi4XvNBBzab0OYdSKvDLQw9gCBt2FI,1884
|
197
|
+
omlish/dataclasses/metaclass/bases.py,sha256=dX8ctd6iZPZBedEI_Ty62qHzGtixUhda9eYF5lGsTtA,1404
|
198
|
+
omlish/dataclasses/metaclass/confer.py,sha256=y2qx9FiPmu2uNUi9Z8MLDL_pSGeiuDutVVAit145RuQ,1400
|
199
|
+
omlish/dataclasses/metaclass/meta.py,sha256=WZUQ_nhaQrar5XAkD22vdik2YiulEvKLwcCqBR7huRM,2644
|
200
|
+
omlish/dataclasses/metaclass/specs.py,sha256=ZFt7A5S2UQi5ecFGhd9ubnRD0maswQGERMCT0jrnuDM,794
|
198
201
|
omlish/dataclasses/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
199
|
-
omlish/dataclasses/tools/as_.py,sha256=
|
202
|
+
omlish/dataclasses/tools/as_.py,sha256=KP9ZQ6yh24QmLULGrQO2TucmEdVLtBj5YUZuUXa5HEY,2895
|
200
203
|
omlish/dataclasses/tools/iter.py,sha256=JQUFG4Gn-xthhJ3OEqXLOWkq2KhRMuIqvEow0HcFPZg,540
|
201
204
|
omlish/dataclasses/tools/modifiers.py,sha256=VpE16fYDIQo7dpT0oUbCuqr9WohMohmFdKHhVVjkQqE,1486
|
202
205
|
omlish/dataclasses/tools/only_.py,sha256=hPpqzr9YW09YmlX_QJNU2aePHYJEIrbGCPwmnvVS_to,849
|
203
206
|
omlish/dataclasses/tools/replace.py,sha256=izM9lPT6AhEtjqn22auqaofa0j69KO7iootF-2Uj4cY,396
|
204
207
|
omlish/dataclasses/tools/repr.py,sha256=KFvF6uv2YYIKq8O3ZNbEAS1tqRQALsJ-SUlBNPd5_GI,190
|
205
|
-
omlish/dataclasses/tools/static.py,sha256=
|
208
|
+
omlish/dataclasses/tools/static.py,sha256=YFTgCtUeomTmbkF_wBCgoH3sn-jGcbG15VvB2KXXOG0,8675
|
206
209
|
omlish/diag/__init__.py,sha256=c1q8vuapGH1YiYdU300FIJXMI1MOcnLNBZXr-zc8BXk,1181
|
207
210
|
omlish/diag/asts.py,sha256=MWh9XAG3m9L10FIJCyoNT2aU4Eft6tun_x9K0riq6Dk,3332
|
208
211
|
omlish/diag/debug.py,sha256=ClED7kKXeVMyKrjGIxcq14kXk9kvUJfytBQwK9y7c4Q,1637
|
@@ -897,9 +900,9 @@ omlish/typedvalues/marshal.py,sha256=AtBz7Jq-BfW8vwM7HSxSpR85JAXmxK2T0xDblmm1HI0
|
|
897
900
|
omlish/typedvalues/of_.py,sha256=UXkxSj504WI2UrFlqdZJbu2hyDwBhL7XVrc2qdR02GQ,1309
|
898
901
|
omlish/typedvalues/reflect.py,sha256=PAvKW6T4cW7u--iX80w3HWwZUS3SmIZ2_lQjT65uAyk,1026
|
899
902
|
omlish/typedvalues/values.py,sha256=ym46I-q2QJ_6l4UlERqv3yj87R-kp8nCKMRph0xQ3UA,1307
|
900
|
-
omlish-0.0.0.
|
901
|
-
omlish-0.0.0.
|
902
|
-
omlish-0.0.0.
|
903
|
-
omlish-0.0.0.
|
904
|
-
omlish-0.0.0.
|
905
|
-
omlish-0.0.0.
|
903
|
+
omlish-0.0.0.dev396.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
|
904
|
+
omlish-0.0.0.dev396.dist-info/METADATA,sha256=nrRec2gmc4umIswSuNbUNFqCKwNZmafqZF6S_CsjCsI,18825
|
905
|
+
omlish-0.0.0.dev396.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
906
|
+
omlish-0.0.0.dev396.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
|
907
|
+
omlish-0.0.0.dev396.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
|
908
|
+
omlish-0.0.0.dev396.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|