omdev 0.0.0.dev172__py3-none-any.whl → 0.0.0.dev174__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.
- omdev/scripts/interp.py +29 -0
- omdev/scripts/pyproject.py +46 -0
- {omdev-0.0.0.dev172.dist-info → omdev-0.0.0.dev174.dist-info}/METADATA +2 -2
- {omdev-0.0.0.dev172.dist-info → omdev-0.0.0.dev174.dist-info}/RECORD +8 -8
- {omdev-0.0.0.dev172.dist-info → omdev-0.0.0.dev174.dist-info}/LICENSE +0 -0
- {omdev-0.0.0.dev172.dist-info → omdev-0.0.0.dev174.dist-info}/WHEEL +0 -0
- {omdev-0.0.0.dev172.dist-info → omdev-0.0.0.dev174.dist-info}/entry_points.txt +0 -0
- {omdev-0.0.0.dev172.dist-info → omdev-0.0.0.dev174.dist-info}/top_level.txt +0 -0
omdev/scripts/interp.py
CHANGED
@@ -1049,6 +1049,9 @@ log = logging.getLogger(__name__)
|
|
1049
1049
|
# ../../../omlish/lite/reflect.py
|
1050
1050
|
|
1051
1051
|
|
1052
|
+
##
|
1053
|
+
|
1054
|
+
|
1052
1055
|
_GENERIC_ALIAS_TYPES = (
|
1053
1056
|
ta._GenericAlias, # type: ignore # noqa
|
1054
1057
|
*([ta._SpecialGenericAlias] if hasattr(ta, '_SpecialGenericAlias') else []), # noqa
|
@@ -1066,6 +1069,9 @@ is_union_alias = functools.partial(is_generic_alias, origin=ta.Union)
|
|
1066
1069
|
is_callable_alias = functools.partial(is_generic_alias, origin=ta.Callable)
|
1067
1070
|
|
1068
1071
|
|
1072
|
+
##
|
1073
|
+
|
1074
|
+
|
1069
1075
|
def is_optional_alias(spec: ta.Any) -> bool:
|
1070
1076
|
return (
|
1071
1077
|
isinstance(spec, _GENERIC_ALIAS_TYPES) and # noqa
|
@@ -1080,6 +1086,9 @@ def get_optional_alias_arg(spec: ta.Any) -> ta.Any:
|
|
1080
1086
|
return it
|
1081
1087
|
|
1082
1088
|
|
1089
|
+
##
|
1090
|
+
|
1091
|
+
|
1083
1092
|
def is_new_type(spec: ta.Any) -> bool:
|
1084
1093
|
if isinstance(ta.NewType, type):
|
1085
1094
|
return isinstance(spec, ta.NewType)
|
@@ -1092,6 +1101,26 @@ def get_new_type_supertype(spec: ta.Any) -> ta.Any:
|
|
1092
1101
|
return spec.__supertype__
|
1093
1102
|
|
1094
1103
|
|
1104
|
+
##
|
1105
|
+
|
1106
|
+
|
1107
|
+
def is_literal_type(spec: ta.Any) -> bool:
|
1108
|
+
if hasattr(ta, '_LiteralGenericAlias'):
|
1109
|
+
return isinstance(spec, ta._LiteralGenericAlias) # noqa
|
1110
|
+
else:
|
1111
|
+
return (
|
1112
|
+
isinstance(spec, ta._GenericAlias) and # type: ignore # noqa
|
1113
|
+
spec.__origin__ is ta.Literal
|
1114
|
+
)
|
1115
|
+
|
1116
|
+
|
1117
|
+
def get_literal_type_args(spec: ta.Any) -> ta.Iterable[ta.Any]:
|
1118
|
+
return spec.__args__
|
1119
|
+
|
1120
|
+
|
1121
|
+
##
|
1122
|
+
|
1123
|
+
|
1095
1124
|
def deep_subclasses(cls: ta.Type[T]) -> ta.Iterator[ta.Type[T]]:
|
1096
1125
|
seen = set()
|
1097
1126
|
todo = list(reversed(cls.__subclasses__()))
|
omdev/scripts/pyproject.py
CHANGED
@@ -2341,6 +2341,9 @@ log = logging.getLogger(__name__)
|
|
2341
2341
|
# ../../../omlish/lite/reflect.py
|
2342
2342
|
|
2343
2343
|
|
2344
|
+
##
|
2345
|
+
|
2346
|
+
|
2344
2347
|
_GENERIC_ALIAS_TYPES = (
|
2345
2348
|
ta._GenericAlias, # type: ignore # noqa
|
2346
2349
|
*([ta._SpecialGenericAlias] if hasattr(ta, '_SpecialGenericAlias') else []), # noqa
|
@@ -2358,6 +2361,9 @@ is_union_alias = functools.partial(is_generic_alias, origin=ta.Union)
|
|
2358
2361
|
is_callable_alias = functools.partial(is_generic_alias, origin=ta.Callable)
|
2359
2362
|
|
2360
2363
|
|
2364
|
+
##
|
2365
|
+
|
2366
|
+
|
2361
2367
|
def is_optional_alias(spec: ta.Any) -> bool:
|
2362
2368
|
return (
|
2363
2369
|
isinstance(spec, _GENERIC_ALIAS_TYPES) and # noqa
|
@@ -2372,6 +2378,9 @@ def get_optional_alias_arg(spec: ta.Any) -> ta.Any:
|
|
2372
2378
|
return it
|
2373
2379
|
|
2374
2380
|
|
2381
|
+
##
|
2382
|
+
|
2383
|
+
|
2375
2384
|
def is_new_type(spec: ta.Any) -> bool:
|
2376
2385
|
if isinstance(ta.NewType, type):
|
2377
2386
|
return isinstance(spec, ta.NewType)
|
@@ -2384,6 +2393,26 @@ def get_new_type_supertype(spec: ta.Any) -> ta.Any:
|
|
2384
2393
|
return spec.__supertype__
|
2385
2394
|
|
2386
2395
|
|
2396
|
+
##
|
2397
|
+
|
2398
|
+
|
2399
|
+
def is_literal_type(spec: ta.Any) -> bool:
|
2400
|
+
if hasattr(ta, '_LiteralGenericAlias'):
|
2401
|
+
return isinstance(spec, ta._LiteralGenericAlias) # noqa
|
2402
|
+
else:
|
2403
|
+
return (
|
2404
|
+
isinstance(spec, ta._GenericAlias) and # type: ignore # noqa
|
2405
|
+
spec.__origin__ is ta.Literal
|
2406
|
+
)
|
2407
|
+
|
2408
|
+
|
2409
|
+
def get_literal_type_args(spec: ta.Any) -> ta.Iterable[ta.Any]:
|
2410
|
+
return spec.__args__
|
2411
|
+
|
2412
|
+
|
2413
|
+
##
|
2414
|
+
|
2415
|
+
|
2387
2416
|
def deep_subclasses(cls: ta.Type[T]) -> ta.Iterator[ta.Type[T]]:
|
2388
2417
|
seen = set()
|
2389
2418
|
todo = list(reversed(cls.__subclasses__()))
|
@@ -3830,6 +3859,18 @@ class OptionalObjMarshaler(ObjMarshaler):
|
|
3830
3859
|
return self.item.unmarshal(o, ctx)
|
3831
3860
|
|
3832
3861
|
|
3862
|
+
@dc.dataclass(frozen=True)
|
3863
|
+
class LiteralObjMarshaler(ObjMarshaler):
|
3864
|
+
item: ObjMarshaler
|
3865
|
+
vs: frozenset
|
3866
|
+
|
3867
|
+
def marshal(self, o: ta.Any, ctx: 'ObjMarshalContext') -> ta.Any:
|
3868
|
+
return self.item.marshal(check.in_(o, self.vs), ctx)
|
3869
|
+
|
3870
|
+
def unmarshal(self, o: ta.Any, ctx: 'ObjMarshalContext') -> ta.Any:
|
3871
|
+
return check.in_(self.item.unmarshal(o, ctx), self.vs)
|
3872
|
+
|
3873
|
+
|
3833
3874
|
@dc.dataclass(frozen=True)
|
3834
3875
|
class MappingObjMarshaler(ObjMarshaler):
|
3835
3876
|
ty: type
|
@@ -4041,6 +4082,11 @@ class ObjMarshalerManager:
|
|
4041
4082
|
if is_new_type(ty):
|
4042
4083
|
return rec(get_new_type_supertype(ty))
|
4043
4084
|
|
4085
|
+
if is_literal_type(ty):
|
4086
|
+
lvs = frozenset(get_literal_type_args(ty))
|
4087
|
+
lty = check.single(set(map(type, lvs)))
|
4088
|
+
return LiteralObjMarshaler(rec(lty), lvs)
|
4089
|
+
|
4044
4090
|
if is_generic_alias(ty):
|
4045
4091
|
try:
|
4046
4092
|
mt = self._generic_mapping_types[ta.get_origin(ty)]
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: omdev
|
3
|
-
Version: 0.0.0.
|
3
|
+
Version: 0.0.0.dev174
|
4
4
|
Summary: omdev
|
5
5
|
Author: wrmsr
|
6
6
|
License: BSD-3-Clause
|
@@ -12,7 +12,7 @@ Classifier: Operating System :: OS Independent
|
|
12
12
|
Classifier: Operating System :: POSIX
|
13
13
|
Requires-Python: >=3.12
|
14
14
|
License-File: LICENSE
|
15
|
-
Requires-Dist: omlish==0.0.0.
|
15
|
+
Requires-Dist: omlish==0.0.0.dev174
|
16
16
|
Provides-Extra: all
|
17
17
|
Requires-Dist: black~=24.10; extra == "all"
|
18
18
|
Requires-Dist: pycparser~=2.22; extra == "all"
|
@@ -134,8 +134,8 @@ omdev/scripts/bumpversion.py,sha256=Kn7fo73Hs8uJh3Hi3EIyLOlzLPWAC6dwuD_lZ3cIzuY,
|
|
134
134
|
omdev/scripts/execrss.py,sha256=mR0G0wERBYtQmVIn63lCIIFb5zkCM6X_XOENDFYDBKc,651
|
135
135
|
omdev/scripts/exectime.py,sha256=sFb376GflU6s9gNX-2-we8hgH6w5MuQNS9g6i4SqJIo,610
|
136
136
|
omdev/scripts/importtrace.py,sha256=oa7CtcWJVMNDbyIEiRHej6ICfABfErMeo4_haIqe18Q,14041
|
137
|
-
omdev/scripts/interp.py,sha256=
|
138
|
-
omdev/scripts/pyproject.py,sha256=
|
137
|
+
omdev/scripts/interp.py,sha256=Bdtcovhk8Sa8-LmbGyz5TLty7RI3W_DAjxjGQJUvR6s,100905
|
138
|
+
omdev/scripts/pyproject.py,sha256=oe2zzPZRMnvIpZVRc9pg3ihXuhWy0q7fZerzGR0ZmB0,206497
|
139
139
|
omdev/scripts/slowcat.py,sha256=lssv4yrgJHiWfOiHkUut2p8E8Tq32zB-ujXESQxFFHY,2728
|
140
140
|
omdev/scripts/tmpexec.py,sha256=WTYcf56Tj2qjYV14AWmV8SfT0u6Y8eIU6cKgQRvEK3c,1442
|
141
141
|
omdev/toml/__init__.py,sha256=Y3l4WY4JRi2uLG6kgbGp93fuGfkxkKwZDvhsa0Rwgtk,15
|
@@ -164,9 +164,9 @@ omdev/tools/json/rendering.py,sha256=jNShMfCpFR9-Kcn6cUFuOChXHjg71diuTC4x7Ofmz-o
|
|
164
164
|
omdev/tools/pawk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
165
165
|
omdev/tools/pawk/__main__.py,sha256=VCqeRVnqT1RPEoIrqHFSu4PXVMg4YEgF4qCQm90-eRI,66
|
166
166
|
omdev/tools/pawk/pawk.py,sha256=Eckymn22GfychCQcQi96BFqRo_LmiJ-EPhC8TTUJdB4,11446
|
167
|
-
omdev-0.0.0.
|
168
|
-
omdev-0.0.0.
|
169
|
-
omdev-0.0.0.
|
170
|
-
omdev-0.0.0.
|
171
|
-
omdev-0.0.0.
|
172
|
-
omdev-0.0.0.
|
167
|
+
omdev-0.0.0.dev174.dist-info/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
|
168
|
+
omdev-0.0.0.dev174.dist-info/METADATA,sha256=M9mFTr12QzmuRjwgqyALIPWj7MSYjbu-vdiVDVn-ApA,1760
|
169
|
+
omdev-0.0.0.dev174.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
|
170
|
+
omdev-0.0.0.dev174.dist-info/entry_points.txt,sha256=dHLXFmq5D9B8qUyhRtFqTGWGxlbx3t5ejedjrnXNYLU,33
|
171
|
+
omdev-0.0.0.dev174.dist-info/top_level.txt,sha256=1nr7j30fEWgLYHW3lGR9pkdHkb7knv1U1ES1XRNVQ6k,6
|
172
|
+
omdev-0.0.0.dev174.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|