omlish 0.0.0.dev450__py3-none-any.whl → 0.0.0.dev451__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 CHANGED
@@ -1,5 +1,5 @@
1
- __version__ = '0.0.0.dev450'
2
- __revision__ = '06a2dac5a7edcb1d06e2cc83c467c9b78d637e60'
1
+ __version__ = '0.0.0.dev451'
2
+ __revision__ = 'b98dd08060441838ed591bdf5f4d756786413c17'
3
3
 
4
4
 
5
5
  #
@@ -8,7 +8,7 @@ from .harness import BOOTSTRAP_TYPES_BY_NAME
8
8
 
9
9
 
10
10
  @lang.static_init
11
- def _install_standard_marshalling() -> None:
11
+ def _install_standard_marshaling() -> None:
12
12
  cfgs_poly = msh.Polymorphism(
13
13
  Bootstrap.Config,
14
14
  [msh.Impl(b.Config, n) for n, b in BOOTSTRAP_TYPES_BY_NAME.items()],
omlish/diag/pydevd.py CHANGED
@@ -119,7 +119,19 @@ def _pydevd() -> types.ModuleType | None:
119
119
 
120
120
 
121
121
  def is_present() -> bool:
122
- return lang.can_import('pydevd')
122
+ # FIXME: try to use `lang.can_import('pydevd'), but raises with:
123
+ # INTERNALERROR> File "/Users/spinlock/src/wrmsr/omlish/omlish/lang/imports/resolving.py", line 16, in can_import
124
+ # INTERNALERROR> spec = importlib.util.find_spec(name, package)
125
+ # INTERNALERROR> File "<frozen importlib.util>", line 111, in find_spec
126
+ # INTERNALERROR> ValueError: pydevd.__spec__ is None
127
+ # Really want to avoid actually importing pydevd due to side-effects, slowness, and even a pkg_resources deprecation
128
+ # warning...
129
+ try:
130
+ __import__('pydevd')
131
+ except ImportError:
132
+ return False
133
+ else:
134
+ return True
123
135
 
124
136
 
125
137
  def get_setup() -> dict | None:
omlish/formats/dotenv.py CHANGED
@@ -584,7 +584,7 @@ def dotenv_values(
584
584
  For example, `foo=bar` results in `{"foo": "bar"}` whereas `foo` alone results in
585
585
  `{"foo": None}`
586
586
 
587
- Parameters:
587
+ Args:
588
588
  path: Absolute or relative path to the .env file.
589
589
  stream: `StringIO` object with .env content, used if `path` is `None`.
590
590
  verbose: Whether to output a warning if the .env file is missing.
omlish/lite/pycharm.py CHANGED
@@ -6,7 +6,7 @@ import typing as ta
6
6
  ##
7
7
 
8
8
 
9
- DEFAULT_PYCHARM_VERSION = '242.23726.102'
9
+ DEFAULT_PYCHARM_VERSION = '252.26199.168'
10
10
 
11
11
 
12
12
  @dc.dataclass(frozen=True)
@@ -2,6 +2,7 @@ import typing as ta
2
2
 
3
3
  from ... import cached
4
4
  from ... import check
5
+ from ... import collections as col
5
6
  from ... import dataclasses as dc
6
7
  from ... import lang
7
8
  from ... import reflect as rfl
@@ -52,18 +53,41 @@ PRIMITIVE_UNION_TYPES: tuple[type, ...] = (
52
53
  float,
53
54
  int,
54
55
  str,
56
+ bool,
55
57
  )
56
58
 
57
59
 
60
+ class DestructuredPrimitiveUnionType(ta.NamedTuple):
61
+ prim: ta.Sequence[type]
62
+ non_prim: ta.Sequence[rfl.Type]
63
+
64
+
65
+ def _destructure_primitive_union_type(
66
+ rty: rfl.Type,
67
+ prim_tys: ta.Container[type] = PRIMITIVE_UNION_TYPES,
68
+ ) -> DestructuredPrimitiveUnionType | None:
69
+ if not isinstance(rty, rfl.Union):
70
+ return None
71
+
72
+ pr = col.partition(rty.args, lambda a: isinstance(a, type) and a in prim_tys)
73
+ if not pr.t or len(pr.f) > 1:
74
+ return None
75
+
76
+ return DestructuredPrimitiveUnionType(*pr) # type: ignore[arg-type]
77
+
78
+
58
79
  #
59
80
 
60
81
 
61
82
  @dc.dataclass(frozen=True)
62
83
  class PrimitiveUnionMarshaler(Marshaler):
63
84
  tys: ta.Sequence[type]
85
+ x: Marshaler | None = None
64
86
 
65
87
  def marshal(self, ctx: MarshalContext, o: ta.Any) -> Value:
66
88
  if type(o) not in self.tys:
89
+ if self.x is not None:
90
+ return self.x.marshal(ctx, o)
67
91
  raise TypeError(o)
68
92
  return o
69
93
 
@@ -73,11 +97,14 @@ class PrimitiveUnionMarshalerFactory(SimpleMarshalerFactory):
73
97
  tys: ta.Sequence[type] = PRIMITIVE_UNION_TYPES
74
98
 
75
99
  def guard(self, ctx: MarshalContext, rty: rfl.Type) -> bool:
76
- return isinstance(rty, rfl.Union) and all(a in self.tys for a in rty.args)
100
+ return _destructure_primitive_union_type(rty, self.tys) is not None
77
101
 
78
102
  def fn(self, ctx: MarshalContext, rty: rfl.Type) -> Marshaler:
79
- args = check.isinstance(rty, rfl.Union).args
80
- return PrimitiveUnionMarshaler([t for t in self.tys if t in args])
103
+ prim, non_prim = check.not_none(_destructure_primitive_union_type(rty, self.tys))
104
+ return PrimitiveUnionMarshaler(
105
+ prim,
106
+ ctx.make(check.single(non_prim)) if non_prim else None,
107
+ )
81
108
 
82
109
 
83
110
  #
@@ -86,9 +113,12 @@ class PrimitiveUnionMarshalerFactory(SimpleMarshalerFactory):
86
113
  @dc.dataclass(frozen=True)
87
114
  class PrimitiveUnionUnmarshaler(Unmarshaler):
88
115
  tys: ta.Sequence[type]
116
+ x: Unmarshaler | None = None
89
117
 
90
118
  def unmarshal(self, ctx: UnmarshalContext, v: Value) -> ta.Any:
91
119
  if type(v) not in self.tys:
120
+ if self.x is not None:
121
+ return self.x.unmarshal(ctx, v)
92
122
  raise TypeError(v)
93
123
  return v
94
124
 
@@ -98,11 +128,14 @@ class PrimitiveUnionUnmarshalerFactory(SimpleUnmarshalerFactory):
98
128
  tys: ta.Sequence[type] = PRIMITIVE_UNION_TYPES
99
129
 
100
130
  def guard(self, ctx: UnmarshalContext, rty: rfl.Type) -> bool:
101
- return isinstance(rty, rfl.Union) and all(a in self.tys for a in rty.args)
131
+ return _destructure_primitive_union_type(rty, self.tys) is not None
102
132
 
103
133
  def fn(self, ctx: UnmarshalContext, rty: rfl.Type) -> Unmarshaler:
104
- args = check.isinstance(rty, rfl.Union).args
105
- return PrimitiveUnionUnmarshaler([t for t in self.tys if t in args])
134
+ prim, non_prim = check.not_none(_destructure_primitive_union_type(rty, self.tys))
135
+ return PrimitiveUnionUnmarshaler(
136
+ prim,
137
+ ctx.make(check.single(non_prim)) if non_prim else None,
138
+ )
106
139
 
107
140
 
108
141
  #
omlish/secrets/marshal.py CHANGED
@@ -54,7 +54,7 @@ def marshal_secret_field(f: dc.Field) -> dc.Field:
54
54
 
55
55
 
56
56
  @lang.static_init
57
- def _install_standard_marshalling() -> None:
57
+ def _install_standard_marshaling() -> None:
58
58
  msh.install_standard_factories(
59
59
  msh.ForbiddenTypeMarshalerFactory({Secret}),
60
60
  msh.ForbiddenTypeUnmarshalerFactory({Secret}),
@@ -51,7 +51,7 @@ class NotSpecifiedUnionUnmarshalerFactory(msh.UnmarshalerFactoryMatchClass):
51
51
 
52
52
 
53
53
  @lang.static_init
54
- def _install_standard_marshalling() -> None:
54
+ def _install_standard_marshaling() -> None:
55
55
  msh.install_standard_factories(
56
56
  msh.ForbiddenTypeMarshalerFactory({_NOT_SPECIFIED_RTY}),
57
57
  msh.ForbiddenTypeUnmarshalerFactory({_NOT_SPECIFIED_RTY}),
@@ -22,7 +22,7 @@ class _KeywordsUnmarshaler(msh.Unmarshaler):
22
22
 
23
23
 
24
24
  @lang.static_init
25
- def _install_standard_marshalling() -> None:
25
+ def _install_standard_marshaling() -> None:
26
26
  msh.install_standard_factories(
27
27
  msh.TypeMapMarshalerFactory({Keywords: _KeywordsMarshaler()}),
28
28
  msh.TypeMapUnmarshalerFactory({Keywords: _KeywordsUnmarshaler()}),
@@ -138,7 +138,7 @@ class _SchemaUnmarshalerFactory(msh.UnmarshalerFactoryMatchClass):
138
138
 
139
139
 
140
140
  @lang.static_init
141
- def _install_standard_marshalling() -> None:
141
+ def _install_standard_marshaling() -> None:
142
142
  msh.install_standard_factories(
143
143
  _ReferenceUnionMarshalerFactory(),
144
144
  _ReferenceUnionUnmarshalerFactory(),
@@ -63,7 +63,7 @@ class LowerEnumMarshaler(msh.Marshaler, msh.Unmarshaler):
63
63
 
64
64
 
65
65
  @lang.static_init
66
- def _install_standard_marshalling() -> None:
66
+ def _install_standard_marshaling() -> None:
67
67
  for ty, ns in [
68
68
  (BinaryOp, BinaryOps),
69
69
  (UnaryOp, UnaryOps),
@@ -16,6 +16,6 @@ def _install_poly(cls: type) -> None:
16
16
 
17
17
 
18
18
  @lang.static_init
19
- def _install_standard_marshalling() -> None:
19
+ def _install_standard_marshaling() -> None:
20
20
  _install_poly(Dtype)
21
21
  _install_poly(Element)
@@ -144,7 +144,7 @@ class TypedValuesUnmarshalerFactory(msh.UnmarshalerFactoryMatchClass):
144
144
 
145
145
 
146
146
  @lang.static_init
147
- def _install_standard_marshalling() -> None:
147
+ def _install_standard_marshaling() -> None:
148
148
  msh.install_standard_factories(
149
149
  TypedValueMarshalerFactory(),
150
150
  TypedValueUnmarshalerFactory(),
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: omlish
3
- Version: 0.0.0.dev450
3
+ Version: 0.0.0.dev451
4
4
  Summary: omlish
5
5
  Author: wrmsr
6
6
  License-Expression: BSD-3-Clause
@@ -1,5 +1,5 @@
1
1
  omlish/.omlish-manifests.json,sha256=FLw7xkPiSXuImZgqSP8BwrEib2R1doSzUPLUkc-QUIA,8410
2
- omlish/__about__.py,sha256=pAgRECTFzk0v1aWP_EMCioDMp_FL4IXyuUAF95ZEw0Q,3613
2
+ omlish/__about__.py,sha256=AWLCwwvTv_7_gUJfD0oOHrTpxeV811jn706gT5iNOPI,3613
3
3
  omlish/__init__.py,sha256=SsyiITTuK0v74XpKV8dqNaCmjOlan1JZKrHQv5rWKPA,253
4
4
  omlish/c3.py,sha256=ZNIMl1kwg3qdei4DiUrJPQe5M81S1e76N-GuNSwLBAE,8683
5
5
  omlish/cached.py,sha256=MLap_p0rdGoDIMVhXVHm1tsbcWobJF0OanoodV03Ju8,542
@@ -48,7 +48,7 @@ omlish/asyncs/ioproxy/proxy.py,sha256=TmWNQb7iOKyEk8ZOG2gZuk0RhziymwypWblZQ5u2QS
48
48
  omlish/asyncs/ioproxy/typing.py,sha256=ZM-9HRO4dpy-RqomSkyRha9s901ckL30bwjACi2TJ8s,2475
49
49
  omlish/bootstrap/__init__.py,sha256=svuRMcY-rqA31fLnHpTRRAs1uN63MXIeGcKK3NoKhL0,691
50
50
  omlish/bootstrap/__main__.py,sha256=GKhsZdPdJtzE4qnjt34-EvL07nLJVZD-d8nxfGl7EEI,188
51
- omlish/bootstrap/_marshal.py,sha256=aKLeiOyPW6DelVK78dmw0axQzOMHX-ALrSqOOzYh05w,486
51
+ omlish/bootstrap/_marshal.py,sha256=FF2sUEoLZyQ55F53hLmoeox6Y24XJuKryZXAIth-nJs,485
52
52
  omlish/bootstrap/base.py,sha256=K9CaPlVO7X5dsvmEp-lZw32Ud52K0DoEbPIWGB7Hgcs,1075
53
53
  omlish/bootstrap/diag.py,sha256=nTHKrZBdyEYoTpctwOpwzSMbQ2dROGkxpdzWfoe2xZg,5353
54
54
  omlish/bootstrap/harness.py,sha256=qPYW7CXUdLi-a3BK6GvbdAPb91j5IiRlBPcXCjRGzZo,1995
@@ -204,7 +204,7 @@ omlish/diag/procfs.py,sha256=eeB3L9UpNBpAfsax3U6OczayYboPlFzOGplqlQ4gBNY,9700
204
204
  omlish/diag/procstats.py,sha256=EJEe2Zc58ykBoTfqMXro7H52aQa_pd6uC2hsIPFceso,825
205
205
  omlish/diag/ps.py,sha256=MEpMU6fbkh0bSWrOHh_okOa0JDTUSUQUVSYBdh1TGvE,1672
206
206
  omlish/diag/pycharm.py,sha256=9Mgn5T2ZdlEUL3VV-GzVmCBs_ZtIpLwaUzP6pgHEUEo,4712
207
- omlish/diag/pydevd.py,sha256=4_tKEwjj2tUL3DMNdB1IXZ-zKZjTJd6o75kL0JKEZAk,7593
207
+ omlish/diag/pydevd.py,sha256=P8izkeCEJWXFLqOWS6X8qUH3rlcfhiE07ZJOPGa5xYU,8203
208
208
  omlish/diag/threads.py,sha256=sjtlTl41wxssoVCDkBB6xeLF-9kJEK3eA6hmSFWJSQA,3643
209
209
  omlish/diag/timers.py,sha256=cxX3GgjTIjBx9DI4pzCCO5Hfqb1TM3uo22yim7kjfRU,3831
210
210
  omlish/diag/_pycharm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -237,7 +237,7 @@ omlish/formats/__init__.py,sha256=T0AG1gFnqQ5JiHN0UPQjQ-7g5tnxMIG-mgOvMYExYAM,21
237
237
  omlish/formats/cbor.py,sha256=o_Hbe4kthO9CeXK-FySrw0dHVlrdyTo2Y8PpGRDfZ3c,514
238
238
  omlish/formats/cloudpickle.py,sha256=16si4yUp_pAdDWGECAWf6HLA2PwSANGGgDoMLGZUem8,579
239
239
  omlish/formats/codecs.py,sha256=n_02fv1Qk2ixG9vDkTZKdRHGWPKnvDBDdOMVKfnElOI,1641
240
- omlish/formats/dotenv.py,sha256=2BjwqsgLgXCmvyNeWq6_xigfH4OIcIoaJbYIuVmul5E,19351
240
+ omlish/formats/dotenv.py,sha256=nDLVPtWHsJaPWKv9Nl8IXSg2R6fayH40nUEBg_7Ozoc,19345
241
241
  omlish/formats/logfmt.py,sha256=i_pKnzFFyNAcPiqC4FiTYPC6tJujlaGuw94V2YNVkf8,2639
242
242
  omlish/formats/pickle.py,sha256=jdp4E9WH9qVPBE3sSqbqDtUo18RbTSIiSpSzJ-IEVZw,529
243
243
  omlish/formats/props.py,sha256=orlqpFG88hL39apzaAOHmNooQv-kbnXX2WggZjdI-U8,18934
@@ -481,7 +481,7 @@ omlish/lite/marshal.py,sha256=oVqVwqTArFUj9lYhmKg_MVgnqlCAUvOnYgtU3bBu_bk,23020
481
481
  omlish/lite/maybes.py,sha256=sJ4dawgBxlZ4oB9dZ3bhBb_8AOJlIW0nVIFgFZ1huXE,4384
482
482
  omlish/lite/maysync.py,sha256=Otd-xqWaMzY9xBF5SiLKxu4kG_GaWGk8qTGFDAHXDm4,14803
483
483
  omlish/lite/objects.py,sha256=HzN_4J6w6WDLKDrW8jSNUKgfAR5vUsB42rtSCu04oqQ,1921
484
- omlish/lite/pycharm.py,sha256=FRHGcCDo42UzZXqNwW_DkhI-6kb_CmJKPiQ8F6mYkLA,1174
484
+ omlish/lite/pycharm.py,sha256=fdSTwtdqGRL0P9IkCrDAPqQkJsegq1NfYyVG2N6cy4w,1174
485
485
  omlish/lite/reflect.py,sha256=aTRQJ-hgnyRxr0dFxivUTScmUgP7zcw_iDQZIsarG24,2119
486
486
  omlish/lite/resources.py,sha256=YNSmX1Ohck1aoWRs55a-o5ChVbFJIQhtbqE-XwF55Oc,326
487
487
  omlish/lite/runtime.py,sha256=J59skBq9kwo1H2s36jAk-k87eKPUtua6CmuXh-3dgmE,464
@@ -571,7 +571,7 @@ omlish/marshal/polymorphism/__init__.py,sha256=e2UTrSL0qp7w_1vkdxDWd7sXlWhep2KPV
571
571
  omlish/marshal/polymorphism/marshal.py,sha256=ZnayCbRj3451U4py1-9dU99PHvjQuQk-ZQDGgzQjF4U,2292
572
572
  omlish/marshal/polymorphism/metadata.py,sha256=c-sOVGvV96OqMfdXUVcVXK8u4xtxHjdHJFXmUx7Km40,3327
573
573
  omlish/marshal/polymorphism/standard.py,sha256=6wwFFwL9fTwIDqhynZr05naL8gVNC_RnPux-8vmja8o,587
574
- omlish/marshal/polymorphism/unions.py,sha256=AWNyzETvgADOjPmXsHloXgbvjZ4GX9b_iNmD6ZdXsT0,4445
574
+ omlish/marshal/polymorphism/unions.py,sha256=kbUAPw4sv9w4gV-rlndHbJLmht_pn9MbLx_CCnaqsw8,5459
575
575
  omlish/marshal/polymorphism/unmarshal.py,sha256=8bLeI9UxUluoIqkRJSJIbdCsKkXjx3myYe9uWs16QjY,2483
576
576
  omlish/marshal/singular/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
577
577
  omlish/marshal/singular/base64.py,sha256=OZ3Ydwy64S0M-xlktYy5MagzyzTOVYayUXblq8ZK-AE,1164
@@ -627,7 +627,7 @@ omlish/reflect/types.py,sha256=4Plo_1cHIk8-68lu8_c_SUEohy19exTNDsgvuVbOJ5A,16066
627
627
  omlish/secrets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
628
628
  omlish/secrets/all.py,sha256=qBxUFIqxCExADL71taNH_W6FYT9QvOrdcaMeUUPO3aw,298
629
629
  omlish/secrets/crypto.py,sha256=q0Hca5oMwvh39r0hrupN_ewxhlllbdDgAgVoloYFmDg,3714
630
- omlish/secrets/marshal.py,sha256=u90n1OfRfdpH1T2F0xK_pAPH1ENYL6acFt6XdVd3KvI,1986
630
+ omlish/secrets/marshal.py,sha256=RmafPrkmSnO4YEjwLI21z1XQirdg55WMJ8U7zdJ_BqA,1985
631
631
  omlish/secrets/openssl.py,sha256=4zp1KZ1EVRNaBS0VIokTqnamy3ZeeC1XN2wSXx4lEcM,6215
632
632
  omlish/secrets/pwgen.py,sha256=Z5i1qMKK4idOZvWai5dXkI59gX7pYzFFlFYAj7qEmqA,1706
633
633
  omlish/secrets/pwhash.py,sha256=Jctv3QzcMvVPXJsWA3w3LDUlzmyUDGEWG9sLiJz1xaw,4107
@@ -660,12 +660,12 @@ omlish/specs/jmespath/parser.py,sha256=uNk9_xQ9cZJC1h5naoH1HMbCs4B0WhV2jN5AvhdKT
660
660
  omlish/specs/jmespath/scope.py,sha256=gsVjmAVF0b7s2SevWb0rBbURayiMSIuXfzO4v1ONIrY,1595
661
661
  omlish/specs/jmespath/visitor.py,sha256=6OCi7oa4IsGW5fCqAeFuXYEwn-aLKuMrNMFtQKSpJWo,16951
662
662
  omlish/specs/jsonrpc/__init__.py,sha256=u2kcJeo6YWEvFYf7OqDNKThszGLSmXYFNJpqXmXgm1M,504
663
- omlish/specs/jsonrpc/_marshal.py,sha256=LJ6V6O7iFIfQx5-DeP7GN23Ao_amThECnntqlBv8c2Y,1857
663
+ omlish/specs/jsonrpc/_marshal.py,sha256=I4mw9uGwrlNe5xXoJixpefPuP-fh2QiDZsTBI4gAQZI,1856
664
664
  omlish/specs/jsonrpc/conns.py,sha256=zvWnBHuSoGnvbGVk72Usp4IFsLscrzPozqR2hmFjnDI,7029
665
665
  omlish/specs/jsonrpc/errors.py,sha256=WxEU7k1TqeZAo_H6eU0LcrXSd-Gi_3fTvtxjXZ9qKww,712
666
666
  omlish/specs/jsonrpc/types.py,sha256=Se9ecG-_k-kY_Qlt9QD2t3y26oY4sXTcskp6XZfVans,3054
667
667
  omlish/specs/jsonschema/__init__.py,sha256=12JNHdvV-LN0d0Ir80Ch8msVb4JqGSjB0wLSwW1oN2U,1187
668
- omlish/specs/jsonschema/_marshal.py,sha256=-pmBtNnKC0sxGg3TMVWngTbSSAwG1zQyt0D6aZutd84,873
668
+ omlish/specs/jsonschema/_marshal.py,sha256=LTIMWdBkBQ_1gdVwTszfPu9wIrPYbdG2MGts1bbLFqM,872
669
669
  omlish/specs/jsonschema/types.py,sha256=_H7ma99hD3_Xu42BFGHOXRI5p79tY8WBX8QE36k7lbw,472
670
670
  omlish/specs/jsonschema/keywords/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
671
671
  omlish/specs/jsonschema/keywords/base.py,sha256=_O_VZySO5j5vnEiQWojk3zwaj7OQowT0e6bk3UYDTeM,3011
@@ -690,7 +690,7 @@ omlish/specs/jsonschema/schemas/draft202012/vocabularies/meta-data.json,sha256=j
690
690
  omlish/specs/jsonschema/schemas/draft202012/vocabularies/unevaluated.json,sha256=Lb-8tzmUtnCwl2SSre4f_7RsIWgnhNL1pMpWH54tDLQ,506
691
691
  omlish/specs/jsonschema/schemas/draft202012/vocabularies/validation.json,sha256=cBCjHlQfMtK-ch4t40jfdcmzaHaj7TBId_wKvaHTelg,2834
692
692
  omlish/specs/openapi/__init__.py,sha256=KS7OHPBlXwBeTvmsUQy0VMzKYdz2RyH3qLF3bU0NXUw,147
693
- omlish/specs/openapi/_marshal.py,sha256=6CB2LCwFfU5rstqkgN_j4Z5rbnba2glzOxcSd01uffI,4451
693
+ omlish/specs/openapi/_marshal.py,sha256=PYx4Jj8bxnimUwuFi6Y5-Nj1HternkSSx-Rovn-Wp2k,4450
694
694
  omlish/specs/openapi/openapi.py,sha256=6KGY_d8HOyG7ssHIWM40MCXgIMzNLiLKHYNggTSpAYM,12027
695
695
  omlish/sql/__init__.py,sha256=JjgIiP2YfiHHIANP7qgkJUG0IMIRzzvKntyhdDKeNdY,384
696
696
  omlish/sql/abc.py,sha256=3hrCjB4jnPVMef_YXClCblzYUZ9l9yaxJJdd5_Nu9GM,4043
@@ -718,7 +718,7 @@ omlish/sql/api/queries.py,sha256=OVsVqNyXXJQVDPfV3GFE2gwnHyGEenS65rTQRTNGx1Y,735
718
718
  omlish/sql/api/resources.py,sha256=RcjnsNoyFWG0VR8YDijwuyZtnxlGQe8jiPQVl_inzIc,2266
719
719
  omlish/sql/api/rows.py,sha256=Jo3AA_6Wt7tlwLO6-rp0arzYFqZXSxPudGPkW2xCYgQ,1346
720
720
  omlish/sql/queries/__init__.py,sha256=qoikGQZuwDkOBwGKdUVov_Ur3I-mezSDLLdzqwRw6l8,1567
721
- omlish/sql/queries/_marshal.py,sha256=PwfcCmf-qeKsiL61c_GjUID6flLCiDiltFndPBhQIAM,2992
721
+ omlish/sql/queries/_marshal.py,sha256=rVCQAyDEBo7LhjD0PlKqg8cLTs8WQS9ngCehz4Hvz4Q,2991
722
722
  omlish/sql/queries/base.py,sha256=nsavenCsZgzpITSI1zGEAi95K3cRDfAxRgNJKJmYul0,3502
723
723
  omlish/sql/queries/binary.py,sha256=dcEzeEn104AMPuQ7QrJU2O-YCN3SUdxB5S4jaWKOUqY,2253
724
724
  omlish/sql/queries/exprs.py,sha256=dG9L218QtJM1HtDYIMWqHimK03N6AL1WONk3FvVRcXY,1480
@@ -736,7 +736,7 @@ omlish/sql/queries/stmts.py,sha256=pBqwD7dRlqMu6uh6vR3xaWOEgbZCcFWbOQ9ryYd17T4,4
736
736
  omlish/sql/queries/unary.py,sha256=MEYBDZn_H0bexmUrJeONOv5-gIpYowUaXOsEHeQM4ks,1144
737
737
  omlish/sql/queries/unions.py,sha256=w9lKrQ38nMme_gyDPciZNqyCBhwFkLusc9fjmBDu48U,438
738
738
  omlish/sql/tabledefs/__init__.py,sha256=eFaO_QQaEv4Z9CLxFSzZgmXqxPI7xKTpDI6outo1VPk,150
739
- omlish/sql/tabledefs/_marshal.py,sha256=5Z7K433SzfN7-z8Yd7FJRzOV9tJv-ErRMA6inZ2iBCE,475
739
+ omlish/sql/tabledefs/_marshal.py,sha256=1yV2xDNX9iDY1y8QYj1CBDHwlqO6v4xEwDeSGyluMKc,474
740
740
  omlish/sql/tabledefs/dtypes.py,sha256=X0N6Y1c2bQ4HC0WA-Yv_jZPvGlSqO7hMIV-towDw3MU,367
741
741
  omlish/sql/tabledefs/elements.py,sha256=lP_Ch19hKmiGYPQVeC8HpFaKdTYnXi2FfpfwKMxZOck,1674
742
742
  omlish/sql/tabledefs/lower.py,sha256=i4_QkVlVH5U99O6pqokrB661AudNVJ9Q-OwtkKOBleU,1410
@@ -818,13 +818,13 @@ omlish/typedvalues/collection.py,sha256=CK4Vk9kJqAt2V8o6I4zGyv2u9DKov12uSvsGdqEd
818
818
  omlish/typedvalues/consumer.py,sha256=lDOE-O_sgGbOvbcBg2g5ZRaV2WixnuEYxFsJBaj18oU,4690
819
819
  omlish/typedvalues/generic.py,sha256=ft-x4X3k1oFirtYnDfsvrI3ZQikWM8lGLrvrOEbcGq0,742
820
820
  omlish/typedvalues/holder.py,sha256=vu-umn-h1nvUqmtV5T9ZfQ_OoOYsERu8PhI2N48Ryns,1133
821
- omlish/typedvalues/marshal.py,sha256=AtBz7Jq-BfW8vwM7HSxSpR85JAXmxK2T0xDblmm1HI0,4956
821
+ omlish/typedvalues/marshal.py,sha256=65LsnEiRrGdHvSBhXsEIgprCdOpz3mdEsJfx5avlq4A,4955
822
822
  omlish/typedvalues/of_.py,sha256=UXkxSj504WI2UrFlqdZJbu2hyDwBhL7XVrc2qdR02GQ,1309
823
823
  omlish/typedvalues/reflect.py,sha256=PAvKW6T4cW7u--iX80w3HWwZUS3SmIZ2_lQjT65uAyk,1026
824
824
  omlish/typedvalues/values.py,sha256=ym46I-q2QJ_6l4UlERqv3yj87R-kp8nCKMRph0xQ3UA,1307
825
- omlish-0.0.0.dev450.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
826
- omlish-0.0.0.dev450.dist-info/METADATA,sha256=DwUHc-Z09a7IkYIMSrhnyjgwyNUGM9xvFiLSCEQsIXs,19003
827
- omlish-0.0.0.dev450.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
828
- omlish-0.0.0.dev450.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
829
- omlish-0.0.0.dev450.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
830
- omlish-0.0.0.dev450.dist-info/RECORD,,
825
+ omlish-0.0.0.dev451.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
826
+ omlish-0.0.0.dev451.dist-info/METADATA,sha256=RUeIz2vQhHfOWnmVVON0-V6329t2jdfajK1I_Ih2ZJg,19003
827
+ omlish-0.0.0.dev451.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
828
+ omlish-0.0.0.dev451.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
829
+ omlish-0.0.0.dev451.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
830
+ omlish-0.0.0.dev451.dist-info/RECORD,,