omlish 0.0.0.dev397__py3-none-any.whl → 0.0.0.dev399__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.
@@ -0,0 +1,94 @@
1
+ import contextlib
2
+ import sys
3
+ import typing as ta
4
+
5
+
6
+ ##
7
+
8
+
9
+ SPECIAL_IMPORTABLE: ta.AbstractSet[str] = frozenset([
10
+ '__init__.py',
11
+ '__main__.py',
12
+ ])
13
+
14
+
15
+ def yield_importable(
16
+ package_root: str,
17
+ *,
18
+ recursive: bool = False,
19
+ filter: ta.Callable[[str], bool] | None = None, # noqa
20
+ include_special: bool = False,
21
+ ) -> ta.Iterator[str]:
22
+ from importlib import resources
23
+
24
+ def rec(cur):
25
+ if cur.split('.')[-1] == '__pycache__':
26
+ return
27
+
28
+ try:
29
+ module = sys.modules[cur]
30
+ except KeyError:
31
+ try:
32
+ __import__(cur)
33
+ except ImportError:
34
+ return
35
+ module = sys.modules[cur]
36
+
37
+ # FIXME: pyox
38
+ if getattr(module, '__file__', None) is None:
39
+ return
40
+
41
+ for file in resources.files(cur).iterdir():
42
+ if file.is_file() and file.name.endswith('.py'):
43
+ if not (include_special or file.name not in SPECIAL_IMPORTABLE):
44
+ continue
45
+
46
+ name = cur + '.' + file.name[:-3]
47
+ if filter is not None and not filter(name):
48
+ continue
49
+
50
+ yield name
51
+
52
+ elif recursive and file.is_dir():
53
+ name = cur + '.' + file.name
54
+ if filter is not None and not filter(name):
55
+ continue
56
+ with contextlib.suppress(ImportError, NotImplementedError):
57
+ yield from rec(name)
58
+
59
+ yield from rec(package_root)
60
+
61
+
62
+ def yield_import_all(
63
+ package_root: str,
64
+ *,
65
+ globals: dict[str, ta.Any] | None = None, # noqa
66
+ locals: dict[str, ta.Any] | None = None, # noqa
67
+ recursive: bool = False,
68
+ filter: ta.Callable[[str], bool] | None = None, # noqa
69
+ include_special: bool = False,
70
+ ) -> ta.Iterator[str]:
71
+ for import_path in yield_importable(
72
+ package_root,
73
+ recursive=recursive,
74
+ filter=filter,
75
+ include_special=include_special,
76
+ ):
77
+ __import__(import_path, globals=globals, locals=locals)
78
+ yield import_path
79
+
80
+
81
+ def import_all(
82
+ package_root: str,
83
+ *,
84
+ recursive: bool = False,
85
+ filter: ta.Callable[[str], bool] | None = None, # noqa
86
+ include_special: bool = False,
87
+ ) -> None:
88
+ for _ in yield_import_all(
89
+ package_root,
90
+ recursive=recursive,
91
+ filter=filter,
92
+ include_special=include_special,
93
+ ):
94
+ pass
@@ -0,0 +1,59 @@
1
+ import typing as ta
2
+
3
+
4
+ ##
5
+
6
+
7
+ class LazyGlobals:
8
+ def __init__(
9
+ self,
10
+ *,
11
+ globals: ta.MutableMapping[str, ta.Any] | None = None, # noqa
12
+ update_globals: bool = False,
13
+ ) -> None:
14
+ super().__init__()
15
+
16
+ self._globals = globals
17
+ self._update_globals = update_globals
18
+
19
+ self._attr_fns: dict[str, ta.Callable[[], ta.Any]] = {}
20
+
21
+ @classmethod
22
+ def install(cls, globals: ta.MutableMapping[str, ta.Any]) -> 'LazyGlobals': # noqa
23
+ try:
24
+ xga = globals['__getattr__']
25
+ except KeyError:
26
+ pass
27
+ else:
28
+ if not isinstance(xga, cls):
29
+ raise RuntimeError(f'Module already has __getattr__ hook: {xga}') # noqa
30
+ return xga
31
+
32
+ lm = cls(
33
+ globals=globals,
34
+ update_globals=True,
35
+ )
36
+
37
+ globals['__getattr__'] = lm
38
+
39
+ return lm
40
+
41
+ def set_fn(self, attr: str, fn: ta.Callable[[], ta.Any]) -> 'LazyGlobals':
42
+ self._attr_fns[attr] = fn
43
+ return self
44
+
45
+ def get(self, attr: str) -> ta.Any:
46
+ try:
47
+ fn = self._attr_fns[attr]
48
+ except KeyError:
49
+ raise AttributeError(attr) from None
50
+
51
+ val = fn()
52
+
53
+ if self._update_globals and self._globals is not None:
54
+ self._globals[attr] = val
55
+
56
+ return val
57
+
58
+ def __call__(self, attr: str) -> ta.Any:
59
+ return self.get(attr)
omlish/lang/resources.py CHANGED
@@ -3,7 +3,7 @@ import functools
3
3
  import os.path
4
4
  import typing as ta
5
5
 
6
- from .imports import proxy_import
6
+ from .imports.lazy import proxy_import
7
7
 
8
8
 
9
9
  if ta.TYPE_CHECKING:
@@ -184,6 +184,6 @@ from .values import ( # noqa
184
184
  ##
185
185
 
186
186
 
187
- from ..lang.imports import _trigger_conditional_imports # noqa
187
+ from .. import lang as _lang
188
188
 
189
- _trigger_conditional_imports(__package__)
189
+ _lang.trigger_conditional_imports(__package__)
omlish/secrets/all.py CHANGED
@@ -21,7 +21,7 @@ ref = SecretRef
21
21
  ##
22
22
 
23
23
 
24
- from ..lang.imports import _register_conditional_import # noqa
24
+ from .. import lang as _lang # noqa
25
25
 
26
26
  # FIXME: only happens when 'all' is imported lol
27
- _register_conditional_import('..marshal', '.marshal', __package__)
27
+ _lang.register_conditional_import('..marshal', '.marshal', __package__)
omlish/secrets/secrets.py CHANGED
@@ -341,4 +341,4 @@ class EnvVarSecrets(Secrets):
341
341
  ##
342
342
 
343
343
 
344
- lang.imports._register_conditional_import('..marshal', '.marshal', __package__) # noqa
344
+ lang.register_conditional_import('..marshal', '.marshal', __package__)
@@ -36,6 +36,6 @@ from .types import ( # noqa
36
36
  ##
37
37
 
38
38
 
39
- from ...lang.imports import _register_conditional_import # noqa
39
+ from ... import lang as _lang
40
40
 
41
- _register_conditional_import('...marshal', '.marshal', __package__)
41
+ _lang.register_conditional_import('...marshal', '.marshal', __package__)
@@ -69,6 +69,6 @@ from .types import ( # noqa
69
69
  ##
70
70
 
71
71
 
72
- from ...lang.imports import _register_conditional_import # noqa
72
+ from ... import lang as _lang
73
73
 
74
- _register_conditional_import('...marshal', '.marshal', __package__)
74
+ _lang.register_conditional_import('...marshal', '.marshal', __package__)
@@ -6,6 +6,6 @@ from .openapi import ( # noqa
6
6
  ##
7
7
 
8
8
 
9
- from ...lang.imports import _register_conditional_import # noqa
9
+ from ... import lang as _lang
10
10
 
11
- _register_conditional_import('...marshal', '.marshal', __package__)
11
+ _lang.register_conditional_import('...marshal', '.marshal', __package__)
@@ -71,6 +71,6 @@ from .rows import ( # noqa
71
71
  ##
72
72
 
73
73
 
74
- from ...lang.imports import _register_conditional_import # noqa
74
+ from ... import lang as _lang
75
75
 
76
- _register_conditional_import('..queries', '._queries', __package__)
76
+ _lang.register_conditional_import('..queries', '._queries', __package__)
@@ -112,14 +112,8 @@ Q = StdBuilder()
112
112
  ##
113
113
 
114
114
 
115
- from ...lang.imports import _register_conditional_import # noqa
115
+ from ... import lang as _lang # noqa
116
116
 
117
- _register_conditional_import('...marshal', '.marshal', __package__)
117
+ _lang.register_conditional_import('...marshal', '.marshal', __package__)
118
118
 
119
-
120
- ##
121
-
122
-
123
- from ...lang.imports import _trigger_conditional_imports # noqa
124
-
125
- _trigger_conditional_imports(__package__)
119
+ _lang.trigger_conditional_imports(__package__)
@@ -6,6 +6,6 @@ from .tabledefs import ( # noqa
6
6
  ##
7
7
 
8
8
 
9
- from ...lang.imports import _register_conditional_import # noqa
9
+ from ... import lang as _lang
10
10
 
11
- _register_conditional_import('...marshal', '.marshal', __package__)
11
+ _lang.register_conditional_import('...marshal', '.marshal', __package__)
@@ -49,6 +49,6 @@ from .values import ( # noqa
49
49
  ##
50
50
 
51
51
 
52
- from ..lang.imports import _register_conditional_import # noqa
52
+ from .. import lang as _lang
53
53
 
54
- _register_conditional_import('..marshal', '.marshal', __package__)
54
+ _lang.register_conditional_import('..marshal', '.marshal', __package__)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: omlish
3
- Version: 0.0.0.dev397
3
+ Version: 0.0.0.dev399
4
4
  Summary: omlish
5
5
  Author: wrmsr
6
6
  License-Expression: BSD-3-Clause
@@ -1,5 +1,5 @@
1
1
  omlish/.manifests.json,sha256=aT8yZ-Zh-9wfHl5Ym5ouiWC1i0cy7Q7RlhzavB6VLPI,8587
2
- omlish/__about__.py,sha256=Y09IIgXKv1XD2mBZnp9zvDIHGJ37iCSYjxlzxVDoq1M,3576
2
+ omlish/__about__.py,sha256=fsEaOnDS-IEelnR6gQvtXqr8_KRBvYJ0sk9zeUjWmkI,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
@@ -60,7 +60,7 @@ omlish/asyncs/ioproxy/io.py,sha256=XMVPk5_q7b-1YYf2YxO2duSKzEWpuhY5X_leI3QWsHY,5
60
60
  omlish/asyncs/ioproxy/proxier.py,sha256=dYXiVkDJVCzasMP4eMNSvSO1eNsd6CIRTtLyoa8YzNc,4492
61
61
  omlish/asyncs/ioproxy/proxy.py,sha256=s9bnjVPkTVtW5dh_vcpKNwbzEhA2zZZKF-U1BWZ5LPo,3911
62
62
  omlish/asyncs/ioproxy/typing.py,sha256=ZM-9HRO4dpy-RqomSkyRha9s901ckL30bwjACi2TJ8s,2475
63
- omlish/bootstrap/__init__.py,sha256=-Rtsg7uPQNhh1dIT9nqrz96XlqizwoLnWf-FwOEstJI,730
63
+ omlish/bootstrap/__init__.py,sha256=JgP3xsEsCphIQs2jI4um2uPI0RN8nCPMXl6FuiPC1js,700
64
64
  omlish/bootstrap/__main__.py,sha256=4jCwsaogp0FrJjJZ85hzF4-WqluPeheHbfeoKynKvNs,194
65
65
  omlish/bootstrap/base.py,sha256=d8hqn4hp1XMMi5PgcJBQXPKmW47epu8CxBlqDZiRZb4,1073
66
66
  omlish/bootstrap/diag.py,sha256=nTHKrZBdyEYoTpctwOpwzSMbQ2dROGkxpdzWfoe2xZg,5353
@@ -425,7 +425,7 @@ omlish/iterators/iterators.py,sha256=RxW35yQ5ed8vBQ22IqpDXFx-i5JiLQdp7-pkMZXhJJ8
425
425
  omlish/iterators/recipes.py,sha256=wOwOZg-zWG9Zc3wcAxJFSe2rtavVBYwZOfG09qYEx_4,472
426
426
  omlish/iterators/tools.py,sha256=M16LXrJhMdsz5ea2qH0vws30ZvhQuQSCVFSLpRf_gTg,2096
427
427
  omlish/iterators/unique.py,sha256=Nw0pSaNEcHAkve0ugfLPvJcirDOn9ECyC5wIL8JlJKI,1395
428
- omlish/lang/__init__.py,sha256=6BdwvNwV1p8O_bcnfa6Upjdb7Ah15VfxtliDo76fm4U,6843
428
+ omlish/lang/__init__.py,sha256=3Gd6wcpol_c0hpzxgVZd7s0DB9iEYmKj2XlZPTWn9e4,7202
429
429
  omlish/lang/attrs.py,sha256=zFiVuGVOq88x45464T_LxDa-ZEq_RD9zJLq2zeVEBDc,5105
430
430
  omlish/lang/casing.py,sha256=cFUlbDdXLhwnWwcYx4qnM5c4zGX7hIRUfcjiZbxUD28,4636
431
431
  omlish/lang/clsdct.py,sha256=HAGIvBSbCefzRjXriwYSBLO7QHKRv2UsE78jixOb-fA,1828
@@ -438,8 +438,8 @@ omlish/lang/enums.py,sha256=F9tflHfaAoV2MpyuhZzpfX9-H55M3zNa9hCszsngEo8,111
438
438
  omlish/lang/errors.py,sha256=shcS-NCnEUudF8qC_SmO2TQyjivKlS4TDjaz_faqQ0c,44
439
439
  omlish/lang/functions.py,sha256=aLdxhmqG0Pj9tBgsKdoCu_q15r82WIkNqDDSPQU19L8,5689
440
440
  omlish/lang/generators.py,sha256=a4D5HU_mySs2T2z3xCmE_s3t4QJkj0YRrK4-hhpGd0A,5197
441
- omlish/lang/imports.py,sha256=y9W9Y-d_cQ35QCLuSIPoa6vnEqSErFCz8b-34IH128U,10552
442
441
  omlish/lang/iterables.py,sha256=y1SX2Co3VsOeX2wlfFF7K3rwLvF7Dtre7VY6EpfwAwA,3338
442
+ omlish/lang/lazyglobals.py,sha256=G1hwpyIgM4PUkVJ_St3K-EdQkHQdWpFOcXao6I5LwyY,1435
443
443
  omlish/lang/maysyncs.py,sha256=kULOW2M9PFhLd1TdtmGGQstPgrJpl--JUv9FOHWl4f8,894
444
444
  omlish/lang/objects.py,sha256=ZsibJwNp1EXorbaObm9TlCNtuuM65snCmVb7H4_llqI,6116
445
445
  omlish/lang/outcomes.py,sha256=0PqxoKaGbBXU9UYZ6AE2QSq94Z-gFDt6wYdp0KomNQw,8712
@@ -447,7 +447,7 @@ omlish/lang/overrides.py,sha256=IBzK6ljfLX6TLgIyKTSjhqTLcuKRkQNVtEOnBLS4nuA,2095
447
447
  omlish/lang/params.py,sha256=sfbNoGrKCsAtubFufj_uh_WKshIgA8fqJ4PmLH1PH00,6639
448
448
  omlish/lang/recursion.py,sha256=1VfSqzKO-8Is3t9LKw0W4jwPfE0aBS70EUlbUxAx4eE,1900
449
449
  omlish/lang/resolving.py,sha256=ei9LDyJexsMMHB9z8diUkNmynWhd_da7h7TqrMYM6lA,1611
450
- omlish/lang/resources.py,sha256=WKkAddC3ctMK1bvGw-elGe8ZxAj2IaUTKVSu2nfgHTo,2839
450
+ omlish/lang/resources.py,sha256=QtuybNgdw5e2QL3jtKi-5ENH98JemsMRi21A40tYrzA,2844
451
451
  omlish/lang/strings.py,sha256=TY-v0iGu6BxEKb99YS-VmIJqc-sTAqMv7mCDJQALMnI,4550
452
452
  omlish/lang/sys.py,sha256=KPe1UOXk1VxlOYt_aLmhN0KqsA4wnP-4nm4WEwO49pw,411
453
453
  omlish/lang/typing.py,sha256=eWI3RKhVi-_SV2rN4SGq8IbFo5XbGapbiWeduF97uG8,3846
@@ -462,6 +462,12 @@ omlish/lang/classes/protocols.py,sha256=T98ZsHLgzw8hPvvNluxoreevoF8fD4zs8SwcnTXk
462
462
  omlish/lang/classes/restrict.py,sha256=Ki-UOc2yUVteqC7i_EgIVpeEcnvRHVczjts5Fyiz7Mk,4125
463
463
  omlish/lang/classes/simple.py,sha256=2C7u8k0K75xzcr6DT8zYd8U-1Yr_Xq1pfF3a0J6wo3g,2538
464
464
  omlish/lang/classes/virtual.py,sha256=z0MYQD9Q5MkX8DzF325wDB4J9XoYbsB09jZ1omC62To,3366
465
+ omlish/lang/imports/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
466
+ omlish/lang/imports/conditional.py,sha256=qxHYlE_xuwPJb6F9K8upagHxuYL0APPLWRVo5079Ipg,1007
467
+ omlish/lang/imports/lazy.py,sha256=gDv7ffrGsPEAHZ9a1Myt7Uf-4vqWErhCd1DaS7SQL0c,1464
468
+ omlish/lang/imports/proxyinit.py,sha256=fe9lVhBQ605OaJ8rEuF680yIqh4QFCUoioTEfesDYQc,12533
469
+ omlish/lang/imports/resolution.py,sha256=DeRarn35Fryg5JhVhy8wbiC9lvr58AnllI9B_reswUE,2085
470
+ omlish/lang/imports/traversal.py,sha256=lp1wPisPK-Op0i1dA3xmcQZeBUhYZxThIxoV6Ei0bgw,2523
465
471
  omlish/lifecycles/__init__.py,sha256=1FjYceXs-4fc-S-C9zFYmc2axHs4znnQHcJVHdY7a6E,578
466
472
  omlish/lifecycles/abstract.py,sha256=c9UY7oxzYZ_neh5DPE4yv5HfuDv7B4Mj_9Zo-B8KDSs,1114
467
473
  omlish/lifecycles/base.py,sha256=DeUxARnOufWfBvhZQbonl1RVJgbrSeK5QNM6dWEuOwA,1398
@@ -517,7 +523,7 @@ omlish/manifests/loading.py,sha256=S-yEGsnBEu670ya6Bc09QqbRtA5rBp5rA4D3zuJUl9M,8
517
523
  omlish/manifests/static.py,sha256=7YwOVh_Ek9_aTrWsWNO8kWS10_j4K7yv3TpXZSHsvDY,501
518
524
  omlish/manifests/types.py,sha256=5hQuY-WZ9VMqHZXr-9Dayg380JsnX2vJzXyw6vC6UDs,317
519
525
  omlish/marshal/.dataclasses.json,sha256=wXWUy_IR8AolAa2RQnqn_mo2QnmVcvUJmayIykdVl0I,22
520
- omlish/marshal/__init__.py,sha256=MtQkMih6iJO0S7tbzVWBUjDr9wQhiCm3poTyLslaPFo,3584
526
+ omlish/marshal/__init__.py,sha256=yquxGmP5r4ITDbR1_OCTy1y9Y5vU7SKL1gj467RVJkg,3554
521
527
  omlish/marshal/base.py,sha256=3GMrhJBcnVrVtlQRQLOMgvV66MciAYpHKEQi5Ns3dIk,11853
522
528
  omlish/marshal/errors.py,sha256=g5XJyTHd__8lfwQ4KwgK-E5WR6MoNTMrqKP2U_QRQQQ,307
523
529
  omlish/marshal/factories.py,sha256=Q926jSVjaQLEmStnHLhm_c_vqEysN1LnDCwAsFLIzXw,2970
@@ -601,13 +607,13 @@ omlish/reflect/ops.py,sha256=F77OTaw0Uw020cJCWX_Q4kL3wvxlJ8jV8wz7BctGL_k,2619
601
607
  omlish/reflect/subst.py,sha256=_lfNS2m2UiJgqARQtmGLTGo7CrSm9OMvVzt6GWOEX6M,4590
602
608
  omlish/reflect/types.py,sha256=uMcxUHVJWYYcmF9ODeJ9WfcQ0DejsqsEVIX5K0HjJSM,12018
603
609
  omlish/secrets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
604
- omlish/secrets/all.py,sha256=gv_d9SfyMxso30HsrSz9XmIrSZOdl3rLA5MSH0ZXfgM,486
610
+ omlish/secrets/all.py,sha256=xx1UyiokSFzdeR8c6Ro-Fi2XBUsQ2i0nR1foX12nH0c,464
605
611
  omlish/secrets/crypto.py,sha256=9D21lnvPhStwu8arD4ssT0ih0bDG-nlqIRdVgYL40xA,3708
606
612
  omlish/secrets/marshal.py,sha256=u90n1OfRfdpH1T2F0xK_pAPH1ENYL6acFt6XdVd3KvI,1986
607
613
  omlish/secrets/openssl.py,sha256=UT_dXJ4zA1s9e-UHoW_NLGHQO7iouUNPnJNkkpuw3JI,6213
608
614
  omlish/secrets/pwgen.py,sha256=5k7QMSysUfv9F65TDMdDlrhTIKy6QbMG3KT2HNVmnVg,1712
609
615
  omlish/secrets/pwhash.py,sha256=Jctv3QzcMvVPXJsWA3w3LDUlzmyUDGEWG9sLiJz1xaw,4107
610
- omlish/secrets/secrets.py,sha256=-U3VeyIswWcYh1zSuvjE2I7QTXyoH7UMzqNJTclnDCs,8029
616
+ omlish/secrets/secrets.py,sha256=kGYUS0fyZEBdWyWhv_uroyZqz31bwuXwk9FAQMZIvdo,8012
611
617
  omlish/secrets/ssl.py,sha256=HnH5MS31X9Uid7Iw1CWqviaVwMLF1Ha8RxZiiE-_iF8,158
612
618
  omlish/secrets/subprocesses.py,sha256=ZdShw4jrGDdyQW8mRMgl106-9qpCEq2J6w_x7ruz1wk,1217
613
619
  omlish/secrets/tempssl.py,sha256=KbNKGwiKw95Ly2b1OtNL2jhPa25aO0t_tvyNB5trUcU,1885
@@ -655,12 +661,12 @@ omlish/specs/jmespath/lexer.py,sha256=JmIZRTrOeW54ugc3MbZJplXQm5ksV9LB629JulxINR
655
661
  omlish/specs/jmespath/parser.py,sha256=uNk9_xQ9cZJC1h5naoH1HMbCs4B0WhV2jN5AvhdKToE,24716
656
662
  omlish/specs/jmespath/scope.py,sha256=gsVjmAVF0b7s2SevWb0rBbURayiMSIuXfzO4v1ONIrY,1595
657
663
  omlish/specs/jmespath/visitor.py,sha256=5MRzJplvuewOqByNs336wTR-3LrxJ3K3pTIdVLpanqU,16949
658
- omlish/specs/jsonrpc/__init__.py,sha256=ugIdqHXWZjSy1R1SkwoxstO2GCHEF4W95Ogl3_5_DV4,544
664
+ omlish/specs/jsonrpc/__init__.py,sha256=1ybm7J-luxhsTncrnsgZ9wV1K28b4QnK7pbZCl1AyA8,514
659
665
  omlish/specs/jsonrpc/conns.py,sha256=zvWnBHuSoGnvbGVk72Usp4IFsLscrzPozqR2hmFjnDI,7029
660
666
  omlish/specs/jsonrpc/errors.py,sha256=WxEU7k1TqeZAo_H6eU0LcrXSd-Gi_3fTvtxjXZ9qKww,712
661
667
  omlish/specs/jsonrpc/marshal.py,sha256=LJ6V6O7iFIfQx5-DeP7GN23Ao_amThECnntqlBv8c2Y,1857
662
668
  omlish/specs/jsonrpc/types.py,sha256=Se9ecG-_k-kY_Qlt9QD2t3y26oY4sXTcskp6XZfVans,3054
663
- omlish/specs/jsonschema/__init__.py,sha256=-A5mPI3NPcGxqTfux9gvV56O6GbQG9MytAGB98E-1DU,1227
669
+ omlish/specs/jsonschema/__init__.py,sha256=uV0ne41ScDhuXpY4w34_F3thT8r4aWoSjqwsp52S2PY,1197
664
670
  omlish/specs/jsonschema/marshal.py,sha256=-pmBtNnKC0sxGg3TMVWngTbSSAwG1zQyt0D6aZutd84,873
665
671
  omlish/specs/jsonschema/types.py,sha256=_H7ma99hD3_Xu42BFGHOXRI5p79tY8WBX8QE36k7lbw,472
666
672
  omlish/specs/jsonschema/keywords/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -685,7 +691,7 @@ omlish/specs/jsonschema/schemas/draft202012/vocabularies/format.json,sha256=UOu_
685
691
  omlish/specs/jsonschema/schemas/draft202012/vocabularies/meta-data.json,sha256=j3bW4U9Bubku-TO3CM3FFEyLUmhlGtEZGEhfsXVPHHY,892
686
692
  omlish/specs/jsonschema/schemas/draft202012/vocabularies/unevaluated.json,sha256=Lb-8tzmUtnCwl2SSre4f_7RsIWgnhNL1pMpWH54tDLQ,506
687
693
  omlish/specs/jsonschema/schemas/draft202012/vocabularies/validation.json,sha256=cBCjHlQfMtK-ch4t40jfdcmzaHaj7TBId_wKvaHTelg,2834
688
- omlish/specs/openapi/__init__.py,sha256=mIx7Askk3FNxGE1CDLBQUOOrRGYaqW7cPGVW4_nAFF4,187
694
+ omlish/specs/openapi/__init__.py,sha256=h__AA1kir9R_2ZGuYyXvChrRTSsbN9y9iAk-1CSy33g,157
689
695
  omlish/specs/openapi/marshal.py,sha256=6CB2LCwFfU5rstqkgN_j4Z5rbnba2glzOxcSd01uffI,4451
690
696
  omlish/specs/openapi/openapi.py,sha256=6KGY_d8HOyG7ssHIWM40MCXgIMzNLiLKHYNggTSpAYM,12027
691
697
  omlish/specs/proto/Protobuf3.g4,sha256=chDrovFsuZaHf5W35WZNts3jOa1ssPwvWiJR4yVIgjw,5552
@@ -710,7 +716,7 @@ omlish/sql/alchemy/duckdb.py,sha256=gdSrmUKtHRBWrNtqmug9RPuvHkSnxQmCosb0451j7Dk,
710
716
  omlish/sql/alchemy/exprs.py,sha256=-GhV9b_atIJlpn-aXmOMb2zDqRoML6NoqbU8cDvsWUs,328
711
717
  omlish/sql/alchemy/secrets.py,sha256=0_T9djpO7ScmmyjdUBrZ6QGFAvsG6NyHXA88O0Apasg,186
712
718
  omlish/sql/alchemy/sqlean.py,sha256=w6x2_mDOPWVLkgwHiOEUOJ217nakLwlI015gP670PSs,408
713
- omlish/sql/api/__init__.py,sha256=VJo12MNFn0-GfSrbnve_l6Uo9bOYePKpZNQ9nApaPcg,1066
719
+ omlish/sql/api/__init__.py,sha256=Lqia7OvW2CEMFXoyRyKZIYZneYv_vjnZVAvsvv08HV0,1036
714
720
  omlish/sql/api/_queries.py,sha256=FqIrtU6JdzQD4S4zv9tdDuzCLHSgJjK8WSfT7Ag4umI,530
715
721
  omlish/sql/api/asquery.py,sha256=8eBoJyyu0kHW3k3yytEcT-B6UAI_slKB0QtSK_WQS7g,1203
716
722
  omlish/sql/api/base.py,sha256=oYFywk1fraINEyCeuZ3TvGaEcI6CdSojYX8iuHaSSow,1332
@@ -729,7 +735,7 @@ omlish/sql/parsing/_antlr/MinisqlListener.py,sha256=4B9d9ONDxzrx1QR-g96Qw_ilAW_I
729
735
  omlish/sql/parsing/_antlr/MinisqlParser.py,sha256=htIMgNde8PqLj7mDV2cLo7kDiwn-acDZjr7mUBAC3PA,132479
730
736
  omlish/sql/parsing/_antlr/MinisqlVisitor.py,sha256=UPs2qA2VlNRP_LMwF0DpMxMir9tIS9w59vGTq07mmlI,10052
731
737
  omlish/sql/parsing/_antlr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
732
- omlish/sql/queries/__init__.py,sha256=l-7OZOMwzZXlRTgNibWMBwCC8-Lej8dkA4GTAHOb8OA,1627
738
+ omlish/sql/queries/__init__.py,sha256=iYwikMW9QAwkNevwJ08XmZuVvmVJZoXl-Hglpti0CgA,1538
733
739
  omlish/sql/queries/base.py,sha256=nsavenCsZgzpITSI1zGEAi95K3cRDfAxRgNJKJmYul0,3502
734
740
  omlish/sql/queries/binary.py,sha256=dcEzeEn104AMPuQ7QrJU2O-YCN3SUdxB5S4jaWKOUqY,2253
735
741
  omlish/sql/queries/exprs.py,sha256=dG9L218QtJM1HtDYIMWqHimK03N6AL1WONk3FvVRcXY,1480
@@ -747,7 +753,7 @@ omlish/sql/queries/std.py,sha256=FdJkXD7oiuj8mtVzvbsL1ZocEEAfaSdOsfTVB1YhtrE,699
747
753
  omlish/sql/queries/stmts.py,sha256=pBqwD7dRlqMu6uh6vR3xaWOEgbZCcFWbOQ9ryYd17T4,441
748
754
  omlish/sql/queries/unary.py,sha256=MEYBDZn_H0bexmUrJeONOv5-gIpYowUaXOsEHeQM4ks,1144
749
755
  omlish/sql/queries/unions.py,sha256=w9lKrQ38nMme_gyDPciZNqyCBhwFkLusc9fjmBDu48U,438
750
- omlish/sql/tabledefs/__init__.py,sha256=TvtQsp-jJu6_ZahyCOFAaElSSBcRftNyJpdiDPGYCDk,190
756
+ omlish/sql/tabledefs/__init__.py,sha256=IN2JFVXeeZ4l0yCOKPza8WnSeIA15TwzvKgoismwWGY,160
751
757
  omlish/sql/tabledefs/alchemy.py,sha256=fK00S_AdqadH2sG8SEATaFd7UnQS-vp1ECTYCnTSDuE,490
752
758
  omlish/sql/tabledefs/dtypes.py,sha256=X0N6Y1c2bQ4HC0WA-Yv_jZPvGlSqO7hMIV-towDw3MU,367
753
759
  omlish/sql/tabledefs/elements.py,sha256=lP_Ch19hKmiGYPQVeC8HpFaKdTYnXi2FfpfwKMxZOck,1674
@@ -892,7 +898,7 @@ omlish/text/antlr/_runtime/xpath/XPathLexer.py,sha256=WvGKQjQnu7pX5C4CFKtsCzba2B
892
898
  omlish/text/antlr/_runtime/xpath/__init__.py,sha256=lMd_BbXYdlDhZQN_q0TKN978XW5G0pq618F0NaLkpFE,71
893
899
  omlish/text/go/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
894
900
  omlish/text/go/quoting.py,sha256=zbcPEDWsdj7GAemtu0x8nwMqpIu2C_5iInSwn6mMWlE,9142
895
- omlish/typedvalues/__init__.py,sha256=vYdqZdjczcNrHVI35UxLH0z23dvLTzXjFeecrq2Ep-8,769
901
+ omlish/typedvalues/__init__.py,sha256=JHv6pUEGLMzQkiQRawQ2j5TfAlBrt_UL2hYHeFm_eFI,739
896
902
  omlish/typedvalues/accessor.py,sha256=2PQVoFrrCTOcZACAQ28GOvF9xhKyKz27GMSfS0xq5Pc,3184
897
903
  omlish/typedvalues/collection.py,sha256=CK4Vk9kJqAt2V8o6I4zGyv2u9DKov12uSvsGdqEd2Ws,5793
898
904
  omlish/typedvalues/consumer.py,sha256=lDOE-O_sgGbOvbcBg2g5ZRaV2WixnuEYxFsJBaj18oU,4690
@@ -902,9 +908,9 @@ omlish/typedvalues/marshal.py,sha256=AtBz7Jq-BfW8vwM7HSxSpR85JAXmxK2T0xDblmm1HI0
902
908
  omlish/typedvalues/of_.py,sha256=UXkxSj504WI2UrFlqdZJbu2hyDwBhL7XVrc2qdR02GQ,1309
903
909
  omlish/typedvalues/reflect.py,sha256=PAvKW6T4cW7u--iX80w3HWwZUS3SmIZ2_lQjT65uAyk,1026
904
910
  omlish/typedvalues/values.py,sha256=ym46I-q2QJ_6l4UlERqv3yj87R-kp8nCKMRph0xQ3UA,1307
905
- omlish-0.0.0.dev397.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
906
- omlish-0.0.0.dev397.dist-info/METADATA,sha256=VlewvZ45-nTzAIIgiVsIOjONizThrASJoM3edySTO9k,18825
907
- omlish-0.0.0.dev397.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
908
- omlish-0.0.0.dev397.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
909
- omlish-0.0.0.dev397.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
910
- omlish-0.0.0.dev397.dist-info/RECORD,,
911
+ omlish-0.0.0.dev399.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
912
+ omlish-0.0.0.dev399.dist-info/METADATA,sha256=Kezuj4MTMgqRhNq1Y3YMIosDiWl5vpGH3FlTb0FV60g,18825
913
+ omlish-0.0.0.dev399.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
914
+ omlish-0.0.0.dev399.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
915
+ omlish-0.0.0.dev399.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
916
+ omlish-0.0.0.dev399.dist-info/RECORD,,