omlish 0.0.0.dev396__py3-none-any.whl → 0.0.0.dev398__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 -2
- omlish/dataclasses/impl/configs.py +57 -0
- omlish/dataclasses/impl/processing/driving.py +10 -0
- omlish/diag/timers.py +4 -0
- omlish/inject/.dataclasses.json +3 -0
- omlish/marshal/.dataclasses.json +3 -0
- {omlish-0.0.0.dev396.dist-info → omlish-0.0.0.dev398.dist-info}/METADATA +1 -1
- {omlish-0.0.0.dev396.dist-info → omlish-0.0.0.dev398.dist-info}/RECORD +12 -10
- {omlish-0.0.0.dev396.dist-info → omlish-0.0.0.dev398.dist-info}/WHEEL +0 -0
- {omlish-0.0.0.dev396.dist-info → omlish-0.0.0.dev398.dist-info}/entry_points.txt +0 -0
- {omlish-0.0.0.dev396.dist-info → omlish-0.0.0.dev398.dist-info}/licenses/LICENSE +0 -0
- {omlish-0.0.0.dev396.dist-info → omlish-0.0.0.dev398.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.dev398'
|
2
|
+
__revision__ = '36ad9ea49db19a697cb584dc80f1fac002db95f3'
|
3
3
|
|
4
4
|
|
5
5
|
#
|
@@ -175,6 +175,7 @@ class SetuptoolsBase:
|
|
175
175
|
'*.g4',
|
176
176
|
'*.h',
|
177
177
|
|
178
|
+
'.dataclasses.json',
|
178
179
|
'.manifests.json',
|
179
180
|
|
180
181
|
'LICENSE',
|
@@ -1,4 +1,7 @@
|
|
1
1
|
import dataclasses as dc
|
2
|
+
import importlib.resources
|
3
|
+
import json
|
4
|
+
import typing as ta
|
2
5
|
|
3
6
|
|
4
7
|
##
|
@@ -10,3 +13,57 @@ PACKAGE_CONFIG_FILE_NAME = '.dataclasses.json'
|
|
10
13
|
@dc.dataclass(frozen=True, kw_only=True)
|
11
14
|
class PackageConfig:
|
12
15
|
codegen: bool = False
|
16
|
+
|
17
|
+
def __init_subclass__(cls, **kwargs):
|
18
|
+
raise TypeError
|
19
|
+
|
20
|
+
@classmethod
|
21
|
+
def loads(cls, s: str) -> 'PackageConfig':
|
22
|
+
return cls(**json.loads(s))
|
23
|
+
|
24
|
+
def dumps(self) -> str:
|
25
|
+
return json.dumps(dc.asdict(self), indent=2)
|
26
|
+
|
27
|
+
|
28
|
+
DEFAULT_PACKAGE_CONFIG = PackageConfig()
|
29
|
+
|
30
|
+
|
31
|
+
##
|
32
|
+
|
33
|
+
|
34
|
+
class PackageConfigCache:
|
35
|
+
def __init__(self) -> None:
|
36
|
+
super().__init__()
|
37
|
+
|
38
|
+
self._dct: dict[str, PackageConfig | None] = {}
|
39
|
+
|
40
|
+
@ta.overload
|
41
|
+
def get(self, pkg: str, default: PackageConfig) -> PackageConfig:
|
42
|
+
...
|
43
|
+
|
44
|
+
@ta.overload
|
45
|
+
def get(self, pkg: str, default: PackageConfig | None = None) -> PackageConfig | None:
|
46
|
+
...
|
47
|
+
|
48
|
+
def get(self, pkg, default=None):
|
49
|
+
try:
|
50
|
+
return self._dct[pkg]
|
51
|
+
except KeyError:
|
52
|
+
pass
|
53
|
+
|
54
|
+
try:
|
55
|
+
s = importlib.resources.read_text(pkg, PACKAGE_CONFIG_FILE_NAME)
|
56
|
+
except FileNotFoundError:
|
57
|
+
self._dct[pkg] = None
|
58
|
+
else:
|
59
|
+
c = PackageConfig.loads(s)
|
60
|
+
self._dct[pkg] = c
|
61
|
+
return c
|
62
|
+
|
63
|
+
if '.' not in pkg:
|
64
|
+
return default
|
65
|
+
|
66
|
+
return self.get(pkg.rpartition('.')[0], default)
|
67
|
+
|
68
|
+
|
69
|
+
PACKAGE_CONFIG_CACHE = PackageConfigCache()
|
@@ -5,6 +5,8 @@ import typing as ta
|
|
5
5
|
from .... import lang
|
6
6
|
from ...specs import ClassSpec
|
7
7
|
from .. import concerns as _concerns # noqa # imported for registration
|
8
|
+
from ..configs import DEFAULT_PACKAGE_CONFIG
|
9
|
+
from ..configs import PACKAGE_CONFIG_CACHE
|
8
10
|
from ..generation import processor as gp
|
9
11
|
from .base import ProcessingContext
|
10
12
|
from .base import ProcessingOption
|
@@ -49,6 +51,14 @@ def drive_cls_processing(
|
|
49
51
|
|
50
52
|
#
|
51
53
|
|
54
|
+
pkg_config = DEFAULT_PACKAGE_CONFIG
|
55
|
+
cls_mod = cls.__module__
|
56
|
+
if '.' in cls_mod:
|
57
|
+
cls_pkg = cls_mod.rpartition('.')[0]
|
58
|
+
pkg_cfg = PACKAGE_CONFIG_CACHE.get(cls_pkg, pkg_config) # noqa
|
59
|
+
|
60
|
+
#
|
61
|
+
|
52
62
|
ctx = ProcessingContext(
|
53
63
|
cls,
|
54
64
|
cs,
|
omlish/diag/timers.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
omlish/.manifests.json,sha256=aT8yZ-Zh-9wfHl5Ym5ouiWC1i0cy7Q7RlhzavB6VLPI,8587
|
2
|
-
omlish/__about__.py,sha256=
|
2
|
+
omlish/__about__.py,sha256=dRrWqHFV5THCmmnpoM1Tlo_cK2tUVqDwDa4KOvAV1gI,3576
|
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
|
@@ -144,7 +144,7 @@ omlish/dataclasses/inspect.py,sha256=EpVb50CsEUWpn70gkjBa-hI1mr5_VubHTERsofgE-Lw
|
|
144
144
|
omlish/dataclasses/reflection.py,sha256=6BD2FUiOEtpi_2JREWyVzemjbBJdBMUm8XxQ9SVIKGs,2799
|
145
145
|
omlish/dataclasses/specs.py,sha256=JFpMILJhxiWYmfTD4TDl03O13o1i0Rwgf14WpI7U9go,6193
|
146
146
|
omlish/dataclasses/impl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
147
|
-
omlish/dataclasses/impl/configs.py,sha256=
|
147
|
+
omlish/dataclasses/impl/configs.py,sha256=n1MOPGTulIVLMR2e4hbtU1FbHJTAVrOFXOCPU-fujVw,1442
|
148
148
|
omlish/dataclasses/impl/utils.py,sha256=jAD6IIILo70aD_s60CaqRU2YvpZxBKy4K5EG-MTiqVo,1871
|
149
149
|
omlish/dataclasses/impl/api/__init__.py,sha256=k5iS9QOwf_f4iOfGffYhnqDOcmEIwEUUTp00u11kIPM,455
|
150
150
|
omlish/dataclasses/impl/api/classes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -190,7 +190,7 @@ omlish/dataclasses/impl/generation/registry.py,sha256=x8E1I5XjAQmTiMr9LsdcQeVc06
|
|
190
190
|
omlish/dataclasses/impl/generation/utils.py,sha256=u6DWRvzxgqrxqyfAGzNOyDvnOJYdMTYyZ7l1oOOiXrI,2089
|
191
191
|
omlish/dataclasses/impl/processing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
192
192
|
omlish/dataclasses/impl/processing/base.py,sha256=NA2uR2S039cm3yNd3F_PEw9aA2EQFdq0drtheZwdlGo,2000
|
193
|
-
omlish/dataclasses/impl/processing/driving.py,sha256=
|
193
|
+
omlish/dataclasses/impl/processing/driving.py,sha256=jCGdOVPM7hpLMZNino81acQ5AwX_e0g0b_CqTpZn8XA,1885
|
194
194
|
omlish/dataclasses/impl/processing/priority.py,sha256=fNyGY2lYXIfTn9klHM86gHOOQpHjdKlCGxO0GfrggLs,265
|
195
195
|
omlish/dataclasses/impl/processing/registry.py,sha256=qTCVUOTYjDKGTxMXYUjvck3SsYXg47HEcxtrKfLWtw8,1886
|
196
196
|
omlish/dataclasses/metaclass/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -217,7 +217,7 @@ omlish/diag/ps.py,sha256=MEpMU6fbkh0bSWrOHh_okOa0JDTUSUQUVSYBdh1TGvE,1672
|
|
217
217
|
omlish/diag/pycharm.py,sha256=9Mgn5T2ZdlEUL3VV-GzVmCBs_ZtIpLwaUzP6pgHEUEo,4712
|
218
218
|
omlish/diag/pydevd.py,sha256=WPfDgsLe-zCOpnPMlAYEVliTQxk4jmcOKvI19nd-SAI,7589
|
219
219
|
omlish/diag/threads.py,sha256=1-x02VCDZ407gfbtXm1pWK-ubqhqfePm9PMqkHCVoqk,3642
|
220
|
-
omlish/diag/timers.py,sha256=
|
220
|
+
omlish/diag/timers.py,sha256=cxX3GgjTIjBx9DI4pzCCO5Hfqb1TM3uo22yim7kjfRU,3831
|
221
221
|
omlish/diag/_pycharm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
222
222
|
omlish/diag/_pycharm/runhack.py,sha256=f4R9SOH0nDfO2WqPh0xQ9-45qOLrtTVysS-hSwtbdOA,37864
|
223
223
|
omlish/diag/replserver/__init__.py,sha256=uLo6V2aQ29v9z3IMELlPDSlG3_2iOT4-_X8VniF-EgE,235
|
@@ -359,6 +359,7 @@ omlish/http/coro/server/fdio.py,sha256=qZE4g5y4XESsTObSKyVggI-yzig57gSGJb4Z0rcHv
|
|
359
359
|
omlish/http/coro/server/server.py,sha256=5gvueSCUzqBqQRf0GJ6wGroD9DiWxQNi6N17MlEtBLU,18660
|
360
360
|
omlish/http/coro/server/simple.py,sha256=j1RZ3niKrgGM2qFnjdYWn_eniZzay5j49Ca4L3u8vO4,3296
|
361
361
|
omlish/http/coro/server/sockets.py,sha256=24gU6wpIZuzYWKQD8UsHyYfTZlbcUFvkqXq5KVgWpQo,2261
|
362
|
+
omlish/inject/.dataclasses.json,sha256=wXWUy_IR8AolAa2RQnqn_mo2QnmVcvUJmayIykdVl0I,22
|
362
363
|
omlish/inject/__init__.py,sha256=Ou6_wAovmxOpbdhGKsV8GbYRH0_S_h0XQSBDPeYpP0g,1978
|
363
364
|
omlish/inject/binder.py,sha256=woOK7I5fk4K4kDF684Ia003jE_lviGQXacNKAmXqx5M,5114
|
364
365
|
omlish/inject/bindings.py,sha256=PlvOnUREjvc6F8nOJdzl1k9SAf80icRB4qWFqDop87M,536
|
@@ -515,6 +516,7 @@ omlish/manifests/globals.py,sha256=LZm4ueBjlC023uxL8zvivSyzMgx5O8kSbo9oNfhF_DE,2
|
|
515
516
|
omlish/manifests/loading.py,sha256=S-yEGsnBEu670ya6Bc09QqbRtA5rBp5rA4D3zuJUl9M,8070
|
516
517
|
omlish/manifests/static.py,sha256=7YwOVh_Ek9_aTrWsWNO8kWS10_j4K7yv3TpXZSHsvDY,501
|
517
518
|
omlish/manifests/types.py,sha256=5hQuY-WZ9VMqHZXr-9Dayg380JsnX2vJzXyw6vC6UDs,317
|
519
|
+
omlish/marshal/.dataclasses.json,sha256=wXWUy_IR8AolAa2RQnqn_mo2QnmVcvUJmayIykdVl0I,22
|
518
520
|
omlish/marshal/__init__.py,sha256=MtQkMih6iJO0S7tbzVWBUjDr9wQhiCm3poTyLslaPFo,3584
|
519
521
|
omlish/marshal/base.py,sha256=3GMrhJBcnVrVtlQRQLOMgvV66MciAYpHKEQi5Ns3dIk,11853
|
520
522
|
omlish/marshal/errors.py,sha256=g5XJyTHd__8lfwQ4KwgK-E5WR6MoNTMrqKP2U_QRQQQ,307
|
@@ -900,9 +902,9 @@ omlish/typedvalues/marshal.py,sha256=AtBz7Jq-BfW8vwM7HSxSpR85JAXmxK2T0xDblmm1HI0
|
|
900
902
|
omlish/typedvalues/of_.py,sha256=UXkxSj504WI2UrFlqdZJbu2hyDwBhL7XVrc2qdR02GQ,1309
|
901
903
|
omlish/typedvalues/reflect.py,sha256=PAvKW6T4cW7u--iX80w3HWwZUS3SmIZ2_lQjT65uAyk,1026
|
902
904
|
omlish/typedvalues/values.py,sha256=ym46I-q2QJ_6l4UlERqv3yj87R-kp8nCKMRph0xQ3UA,1307
|
903
|
-
omlish-0.0.0.
|
904
|
-
omlish-0.0.0.
|
905
|
-
omlish-0.0.0.
|
906
|
-
omlish-0.0.0.
|
907
|
-
omlish-0.0.0.
|
908
|
-
omlish-0.0.0.
|
905
|
+
omlish-0.0.0.dev398.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
|
906
|
+
omlish-0.0.0.dev398.dist-info/METADATA,sha256=-zBtiqOWPdJmttpBmtmIGNoQLtbboQvzfRTDkHGaAS0,18825
|
907
|
+
omlish-0.0.0.dev398.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
908
|
+
omlish-0.0.0.dev398.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
|
909
|
+
omlish-0.0.0.dev398.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
|
910
|
+
omlish-0.0.0.dev398.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|