omlish 0.0.0.dev484__py3-none-any.whl → 0.0.0.dev493__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.

Potentially problematic release.


This version of omlish might be problematic. Click here for more details.

Files changed (62) hide show
  1. omlish/README.md +199 -0
  2. omlish/__about__.py +8 -3
  3. omlish/dataclasses/impl/generation/plans.py +2 -17
  4. omlish/dataclasses/impl/generation/processor.py +2 -2
  5. omlish/dataclasses/impl/processing/driving.py +13 -1
  6. omlish/diag/_pycharm/runhack.py +1 -1
  7. omlish/inject/__init__.py +19 -11
  8. omlish/inject/_dataclasses.py +1485 -1323
  9. omlish/inject/binder.py +7 -4
  10. omlish/inject/eagers.py +2 -0
  11. omlish/inject/helpers/late.py +76 -0
  12. omlish/inject/{managed.py → helpers/managed.py} +10 -10
  13. omlish/inject/impl/elements.py +7 -4
  14. omlish/inject/impl/injector.py +10 -7
  15. omlish/inject/inspect.py +1 -1
  16. omlish/lang/__init__.py +2 -0
  17. omlish/lifecycles/README.md +30 -0
  18. omlish/lifecycles/__init__.py +87 -13
  19. omlish/lifecycles/_dataclasses.py +1388 -0
  20. omlish/lifecycles/base.py +178 -64
  21. omlish/lifecycles/contextmanagers.py +113 -4
  22. omlish/lifecycles/controller.py +150 -87
  23. omlish/lifecycles/injection.py +143 -0
  24. omlish/lifecycles/listeners.py +56 -0
  25. omlish/lifecycles/managed.py +142 -0
  26. omlish/lifecycles/manager.py +218 -93
  27. omlish/lifecycles/states.py +2 -0
  28. omlish/lifecycles/transitions.py +3 -0
  29. omlish/lifecycles/unwrap.py +57 -0
  30. omlish/lite/typing.py +18 -0
  31. omlish/logs/_amalg.py +1 -1
  32. omlish/logs/all.py +25 -11
  33. omlish/logs/asyncs.py +73 -0
  34. omlish/logs/base.py +101 -12
  35. omlish/logs/contexts.py +4 -1
  36. omlish/logs/lists.py +125 -0
  37. omlish/logs/modules.py +19 -1
  38. omlish/logs/std/loggers.py +6 -1
  39. omlish/logs/std/noisy.py +11 -9
  40. omlish/logs/{standard.py → std/standard.py} +3 -4
  41. omlish/logs/utils.py +16 -1
  42. omlish/marshal/_dataclasses.py +781 -781
  43. omlish/reflect/__init__.py +43 -26
  44. omlish/reflect/ops.py +10 -1
  45. omlish/specs/jmespath/_dataclasses.py +559 -559
  46. omlish/specs/jsonschema/keywords/_dataclasses.py +220 -220
  47. omlish/sql/__init__.py +24 -5
  48. omlish/sql/api/dbapi.py +1 -1
  49. omlish/sql/dbapi/__init__.py +15 -0
  50. omlish/sql/{dbapi.py → dbapi/drivers.py} +2 -2
  51. omlish/sql/queries/__init__.py +3 -0
  52. omlish/testing/pytest/plugins/asyncs/plugin.py +2 -0
  53. omlish/text/docwrap/cli.py +5 -0
  54. {omlish-0.0.0.dev484.dist-info → omlish-0.0.0.dev493.dist-info}/METADATA +8 -5
  55. {omlish-0.0.0.dev484.dist-info → omlish-0.0.0.dev493.dist-info}/RECORD +61 -51
  56. omlish/lifecycles/abstract.py +0 -86
  57. /omlish/inject/{impl → helpers}/proxy.py +0 -0
  58. /omlish/sql/{abc.py → dbapi/abc.py} +0 -0
  59. {omlish-0.0.0.dev484.dist-info → omlish-0.0.0.dev493.dist-info}/WHEEL +0 -0
  60. {omlish-0.0.0.dev484.dist-info → omlish-0.0.0.dev493.dist-info}/entry_points.txt +0 -0
  61. {omlish-0.0.0.dev484.dist-info → omlish-0.0.0.dev493.dist-info}/licenses/LICENSE +0 -0
  62. {omlish-0.0.0.dev484.dist-info → omlish-0.0.0.dev493.dist-info}/top_level.txt +0 -0
omlish/sql/__init__.py CHANGED
@@ -7,18 +7,37 @@ with _lang.auto_proxy_init(globals()):
7
7
 
8
8
  from . import api # noqa
9
9
 
10
+ from . import dbapi # noqa
11
+
12
+ from . import queries # noqa
13
+
14
+ #
15
+
10
16
  from .dbs import ( # noqa
11
- DbLoc,
12
- DbSpec,
13
17
  DbType,
14
18
  DbTypes,
15
- HostDbLoc,
19
+
20
+ DbLoc,
16
21
  UrlDbLoc,
22
+ HostDbLoc,
23
+
24
+ DbSpec,
25
+ )
26
+
27
+ from .params import ( # noqa
28
+ ParamKey,
29
+ ParamsPreparer,
30
+ LinearParamsPreparer,
31
+ NumericParamsPreparer,
32
+ NamedParamsPreparer,
33
+
34
+ ParamStyle,
35
+ make_params_preparer,
36
+
37
+ substitute_params,
17
38
  )
18
39
 
19
40
  from .qualifiedname import ( # noqa
20
41
  QualifiedName,
21
42
  qn,
22
43
  )
23
-
24
- from . import queries # noqa
omlish/sql/api/dbapi.py CHANGED
@@ -1,7 +1,7 @@
1
1
  import typing as ta
2
2
 
3
3
  from ... import check
4
- from .. import abc as dbapi_abc
4
+ from ..dbapi import abc as dbapi_abc
5
5
  from .base import Adapter
6
6
  from .base import Conn
7
7
  from .base import Db
@@ -0,0 +1,15 @@
1
+ from .abc import ( # noqa
2
+ DbapiTypeCode,
3
+ DbapiColumnDescription,
4
+ DbapiColumnDescription_,
5
+ DbapiConnection,
6
+ DbapiCursor,
7
+ DbapiThreadSafety,
8
+ DbapiModule,
9
+ )
10
+
11
+ from .drivers import ( # noqa
12
+ DbapiDialect,
13
+ DbapiDriver,
14
+ DbapiDrivers,
15
+ )
@@ -41,8 +41,8 @@ ROWID type
41
41
  import dataclasses as dc
42
42
  import enum
43
43
 
44
- from .. import lang
45
- from .params import ParamStyle
44
+ from ... import lang
45
+ from ..params import ParamStyle
46
46
 
47
47
 
48
48
  ##
@@ -65,9 +65,12 @@ from .relations import ( # noqa
65
65
  )
66
66
 
67
67
  from .rendering import ( # noqa
68
+ RenderedQuery,
69
+ RenderedQueryParts,
68
70
  Renderer,
69
71
  StdRenderer,
70
72
  render,
73
+ render_parts,
71
74
  )
72
75
 
73
76
  from .selects import ( # noqa
@@ -1,6 +1,8 @@
1
1
  """
2
2
  TODO:
3
3
  - auto drain_asyncio
4
+ - sync backend - sync_await
5
+ - maysync backend
4
6
  """
5
7
  import contextvars
6
8
  import functools
@@ -1,6 +1,11 @@
1
1
  """
2
2
  Usable as a jetbrains external tool:
3
3
  `om docwrap -i "$FilePath$" -s "$SelectionStartLine$" -e "$SelectionEndLine$"`
4
+
5
+ TODO:
6
+ - -> omdev.tools
7
+ - at least file extension awareness, preserve say # prefixes in py comment blocks
8
+ - maybe treesitter? or just special case py
4
9
  """
5
10
  import argparse
6
11
  import sys
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: omlish
3
- Version: 0.0.0.dev484
3
+ Version: 0.0.0.dev493
4
4
  Summary: omlish
5
5
  Author: wrmsr
6
6
  License-Expression: BSD-3-Clause
@@ -39,7 +39,7 @@ Requires-Dist: sqlalchemy[asyncio]~=2.0; extra == "all"
39
39
  Requires-Dist: pg8000~=1.31; extra == "all"
40
40
  Requires-Dist: pymysql~=1.1; extra == "all"
41
41
  Requires-Dist: aiomysql~=0.3; extra == "all"
42
- Requires-Dist: aiosqlite~=0.21; extra == "all"
42
+ Requires-Dist: aiosqlite~=0.22; extra == "all"
43
43
  Requires-Dist: asyncpg~=0.31; extra == "all"
44
44
  Requires-Dist: apsw~=3.51; extra == "all"
45
45
  Requires-Dist: sqlean.py~=3.50; extra == "all"
@@ -87,7 +87,7 @@ Provides-Extra: sqldrivers
87
87
  Requires-Dist: pg8000~=1.31; extra == "sqldrivers"
88
88
  Requires-Dist: pymysql~=1.1; extra == "sqldrivers"
89
89
  Requires-Dist: aiomysql~=0.3; extra == "sqldrivers"
90
- Requires-Dist: aiosqlite~=0.21; extra == "sqldrivers"
90
+ Requires-Dist: aiosqlite~=0.22; extra == "sqldrivers"
91
91
  Requires-Dist: asyncpg~=0.31; extra == "sqldrivers"
92
92
  Requires-Dist: apsw~=3.51; extra == "sqldrivers"
93
93
  Requires-Dist: sqlean.py~=3.50; extra == "sqldrivers"
@@ -167,7 +167,7 @@ dependencies of any kind**.
167
167
  - An optional [metaclass](https://github.com/wrmsr/omlish/blob/master/omlish/dataclasses/metaclass) which removes the
168
168
  need for re-decorating subclasses (with support for inheritance of dataclass parameters like `frozen`), and some
169
169
  basic [base classes](https://github.com/wrmsr/omlish/blob/master/omlish/dataclasses/metaclass/bases.py).
170
- - (Nearly finished) support for ahead-of-time / build-time code generation, greatly reducing import times.
170
+ - Support for ahead-of-time / build-time code generation, significantly reducing import times.
171
171
 
172
172
  The stdlib-equivalent api is exported in such a way as to appear to be direct aliases for the stdlib api itself,
173
173
  simplifying tool support.
@@ -247,6 +247,10 @@ dependencies of any kind**.
247
247
  *any-future-event-loop-impl* without having multiple fighting plugins (*[I know, I know](https://xkcd.com/927/)*).
248
248
  - **[plugins](https://github.com/wrmsr/omlish/blob/master/omlish/testing/pytest/plugins)** - Various other plugins.
249
249
 
250
+ - **[typedvalues](https://github.com/wrmsr/omlish/blob/master/omlish/typedvalues)** - A little toolkit around 'boxed'
251
+ values, whose 'box' types convey more information than the bare values themselves. A rebellion against kwargs and env
252
+ vars: instead of `foo(bar=1, baz=2)`, you do `foo(Bar(1), Baz(2))`.
253
+
250
254
  - **[lite](https://github.com/wrmsr/omlish/blob/master/omlish/lite)** - The standard library of 'lite' code. This is the
251
255
  only package beneath `lang`, and parts of it are re-exported by it for deduplication. On top of miscellaneous
252
256
  utilities it contains a handful of independent, self-contained, significantly simplified 'lite' equivalents of some
@@ -294,7 +298,6 @@ examples are:
294
298
  - **anyio** - While lite code must use only asyncio, non-trivial async standard code prefers to be written to anyio.
295
299
  - **pytest** - What is used for all standard testing - as lite code has no dependencies of any kind its testing uses
296
300
  stdlib's [unittest](https://docs.python.org/3/library/unittest.html).
297
- - **wrapt** - For (optionally-enabled) injector circular proxies.
298
301
  - **sqlalchemy** - The codebase has migrated away from SQLAlchemy in favor of the internal api but it retains it as an
299
302
  optional dep to support adapting the internal api to it.
300
303
 
@@ -1,5 +1,6 @@
1
1
  omlish/.omlish-manifests.json,sha256=DSpBKF_HnebIrj-XaLeXQFnSLqqEG-6HlBpLsdXuNAM,8691
2
- omlish/__about__.py,sha256=w2ocS_ohFhJ_ZZ73ZP4TsJc9yDlwawAirp2McgnH9BU,3611
2
+ omlish/README.md,sha256=oAuU-_Ic6AoGdrW5McPDgS6wKfbFFx3sq6Uubj-T7j0,14691
3
+ omlish/__about__.py,sha256=ZU7LwiONu10_OtuesdAKPnr7LOofnAVf75gDOhNDaoc,3683
3
4
  omlish/__init__.py,sha256=SsyiITTuK0v74XpKV8dqNaCmjOlan1JZKrHQv5rWKPA,253
4
5
  omlish/c3.py,sha256=ZNIMl1kwg3qdei4DiUrJPQe5M81S1e76N-GuNSwLBAE,8683
5
6
  omlish/cached.py,sha256=MLap_p0rdGoDIMVhXVHm1tsbcWobJF0OanoodV03Ju8,542
@@ -177,13 +178,13 @@ omlish/dataclasses/impl/generation/globals.py,sha256=OMu7ySwWQVv3aid--pRoa_kjHDv
177
178
  omlish/dataclasses/impl/generation/idents.py,sha256=GHvfuZMmmibJNxAM-8pZPTSy1kCC4oLx8Lb-jgriZsc,182
178
179
  omlish/dataclasses/impl/generation/manifests.py,sha256=tRLO59eysC13z_lbPxaErPy-xM3BIBRpj8MhmbYoGnE,309
179
180
  omlish/dataclasses/impl/generation/ops.py,sha256=A5RGc1TTA6KRl-ozE04Ko7brxzdX6Vw-wVCRc_ICLXA,1737
180
- omlish/dataclasses/impl/generation/plans.py,sha256=lUKBIWG_fNQlSMiPpsT8UHpUBOsTUdFwm9-v6ofbTvs,537
181
- omlish/dataclasses/impl/generation/processor.py,sha256=ShAH0IsNFbf_d-tpQvo97N9TWGMqx2-gAQ2mazE86ro,7689
181
+ omlish/dataclasses/impl/generation/plans.py,sha256=s7CS3kGzcHU6ogWqjXOGAbCfyGj33XBdxH4cGBzeXwQ,344
182
+ omlish/dataclasses/impl/generation/processor.py,sha256=H70pDT0CqJbp_frRZKbO4rNJhdrcEB-QlDVs9Bnmujs,7688
182
183
  omlish/dataclasses/impl/generation/registry.py,sha256=x8E1I5XjAQmTiMr9LsdcQeVc0688lUIOTtv9Zf0OFzo,1008
183
184
  omlish/dataclasses/impl/generation/utils.py,sha256=u6DWRvzxgqrxqyfAGzNOyDvnOJYdMTYyZ7l1oOOiXrI,2089
184
185
  omlish/dataclasses/impl/processing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
185
186
  omlish/dataclasses/impl/processing/base.py,sha256=Wq_1iJwl1lGAJwm6VAyE3rw0g31XTCxyaZAmfMmhNRk,2285
186
- omlish/dataclasses/impl/processing/driving.py,sha256=O4OVwSixNsVsglqhZSVBpUzcBjrB2HLgIUsUQ_veo8s,1922
187
+ omlish/dataclasses/impl/processing/driving.py,sha256=TXG3-2UufBd5N2PROfE2p3QxKnOJPSd-Kas4-NnN1rQ,2269
187
188
  omlish/dataclasses/impl/processing/priority.py,sha256=fNyGY2lYXIfTn9klHM86gHOOQpHjdKlCGxO0GfrggLs,265
188
189
  omlish/dataclasses/impl/processing/registry.py,sha256=qTCVUOTYjDKGTxMXYUjvck3SsYXg47HEcxtrKfLWtw8,1886
189
190
  omlish/dataclasses/metaclass/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -209,7 +210,7 @@ omlish/diag/pydevd.py,sha256=JEHC0hiSJxL-vVtuxKUi1BNkgUKnRC1N4alDg6JP5WQ,8363
209
210
  omlish/diag/threads.py,sha256=sjtlTl41wxssoVCDkBB6xeLF-9kJEK3eA6hmSFWJSQA,3643
210
211
  omlish/diag/timers.py,sha256=cxX3GgjTIjBx9DI4pzCCO5Hfqb1TM3uo22yim7kjfRU,3831
211
212
  omlish/diag/_pycharm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
212
- omlish/diag/_pycharm/runhack.py,sha256=IxawPyqrPfY1fpV1D_9dZXxny89fVSR3RlmqlbaRctw,37869
213
+ omlish/diag/_pycharm/runhack.py,sha256=N39_rwzY9AyDYAmEEF8uRWBYQ2UYtcCDe4MzSj92F1M,37877
213
214
  omlish/diag/cmds/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
214
215
  omlish/diag/cmds/lslocks.py,sha256=iEYe3OqcbMCKg1NbtO2EsYsnr2GnDYnNdi6Cbb_zEKM,1756
215
216
  omlish/diag/cmds/lsof.py,sha256=hmrEZJNY0rQxa42t2Y3e3w5ZVe8rJqO2eI7_8HmzZEQ,9113
@@ -358,19 +359,18 @@ omlish/http/flasky/requests.py,sha256=w3eTcfbGv3TUuolncGyDJnWNxZhrztz_OTpiFxoNIk
358
359
  omlish/http/flasky/responses.py,sha256=fXRe6z9al1o4br7YIFUIfXUFUWY3mhVqXj7tLY4NXUM,591
359
360
  omlish/http/flasky/routes.py,sha256=w4YNt9n4sWqs78ktQ5vWAaYZL9vAWxtX4gXL26uFZTs,398
360
361
  omlish/http/flasky/types.py,sha256=Mag-Amc9CT9Lyri3tY0uVRc4U1g-gry6DgUetuhIUqg,159
361
- omlish/inject/__init__.py,sha256=Lk7QjS05T5Zi_zRx3pEUpUhQ9Q2XxLCAgZi0iHhuzpA,3259
362
- omlish/inject/_dataclasses.py,sha256=KBCeyfIHkYVQfKW6EOSHOEuFX587GQjsfydbxTkdn8E,221756
363
- omlish/inject/binder.py,sha256=ET0BC-tCYVhlQK5-7KKwgRGcFFkzscPgY107TnFu7oQ,4361
362
+ omlish/inject/__init__.py,sha256=fsAckNs_cPHR3czrwR19UGxsQfykW-OcLzV3JAgUoUg,3392
363
+ omlish/inject/_dataclasses.py,sha256=6daj53n09rGVPGxGLPeXongBMKVy5lXRBGxva8AJlno,229014
364
+ omlish/inject/binder.py,sha256=gEA6mxPu4SillKIGnvK0XIFPBUMCWsZRDUugjiFqbwA,4522
364
365
  omlish/inject/bindings.py,sha256=PlvOnUREjvc6F8nOJdzl1k9SAf80icRB4qWFqDop87M,536
365
- omlish/inject/eagers.py,sha256=JBY7PcjXt-Rg9scQ1ol9xpcoTLXkXC_Ie9uwTWdzUkA,340
366
+ omlish/inject/eagers.py,sha256=nRbzKX3XIM6II7ix63iwQquK9gkN6722D3txOVfLKWw,388
366
367
  omlish/inject/elements.py,sha256=CYlMsRlO0nAF14f8xecPPS1SizRvBa0wt4S2Z13bGhI,2005
367
368
  omlish/inject/errors.py,sha256=_wkN2tF55gQzmMOMKJC_9jYHBZzaBiCDcyqI9Sf2UZs,626
368
369
  omlish/inject/injector.py,sha256=EN9MP-jGPPFADo-jkgXFKskSHUXkxaDhw7VsXt-u_wY,1832
369
- omlish/inject/inspect.py,sha256=d1IOpgPV1UCUm0uqLRa8PW-jGdfrhzaV1qLitANfCDY,1420
370
+ omlish/inject/inspect.py,sha256=20JPcAVLD_YYhh9eHM9m5aasiJ1ducqxJfiPuIPDFxs,1420
370
371
  omlish/inject/keys.py,sha256=7jnI2cw7cvLlzZAfe5SC50O3oPOpOB6iGZGTigyfQvs,682
371
372
  omlish/inject/listeners.py,sha256=bav7-uzfpajFAmH_snM0PW2oCfMavmhbE6R4-gjOmJ8,620
372
373
  omlish/inject/lite.py,sha256=AFOCj_SznDCPjkiVSKdFXL2hH1q2o4kaDnzkxRWDpsI,2615
373
- omlish/inject/managed.py,sha256=jaZiiLqHHhL5aHtryou7M15QgHvZ8rSIHveG7ka9sAw,3087
374
374
  omlish/inject/maysync.py,sha256=VeKD2Ke-MMAP63qGNrbrEqtr5NDIWaRxkREaGZ-61L8,443
375
375
  omlish/inject/multis.py,sha256=NNiHConMRmKVqs-FNrSQWIQtXVgTy2cQR59R1p_55kQ,3504
376
376
  omlish/inject/origins.py,sha256=-qXa18rIIkNwBdTrvASRDjgPYnoY6n6OPC222jJDrXg,551
@@ -383,12 +383,15 @@ omlish/inject/types.py,sha256=Z-ZEdgtCpHBNrbxxKaMVvfeD7hYXdL4rC7A9_VGxZ6g,256
383
383
  omlish/inject/helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
384
384
  omlish/inject/helpers/constfn.py,sha256=Q7yfaGtxEb3L9izvwWSHh8udvR111qOtUYItw6OiyXo,416
385
385
  omlish/inject/helpers/id.py,sha256=F1RYU03q4evteO6O3NDjwHZtPgd7MUK-qwsQAH1X-P0,435
386
+ omlish/inject/helpers/late.py,sha256=RDb8MKfHIFTuxbrrdUzjG8iWGV8Tn17W1CtWoc1oY44,1964
387
+ omlish/inject/helpers/managed.py,sha256=m0GV5wx9wu654bBquYnqFzllVjLLnGFjfEaVPJe1kzs,3097
386
388
  omlish/inject/helpers/multis.py,sha256=4V85CdxxuYANAEn44IQbXHDYjPbBQ9jLrEP5XpzV2bI,3807
389
+ omlish/inject/helpers/proxy.py,sha256=S1qNn-5pbsAj9hhasQZ9nnFSCX8SuAYCcBOZ6BtKxlk,1641
387
390
  omlish/inject/helpers/wrappers.py,sha256=f3mulTNuItvmXnn7E4JHk9UESjsf-ponvlDfIpAHbk4,1319
388
391
  omlish/inject/impl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
389
392
  omlish/inject/impl/bindings.py,sha256=xSvUcoDz8NH-aNHPwBPEZsFg73K2WcF_A63npVbGt_k,420
390
- omlish/inject/impl/elements.py,sha256=9s5UmUKUvEvS3SkCrhaMbPEDEeOj3bOOdH1ekRdejGQ,6712
391
- omlish/inject/impl/injector.py,sha256=S4nQ_Yb23ZSkBDPcM8l93HHBj8Ij-yPw0bejulCQbvg,8234
393
+ omlish/inject/impl/elements.py,sha256=-db996vTX_rtTYuCwLoAsO1GcJt38ydfDKgHbs9U1fw,6844
394
+ omlish/inject/impl/injector.py,sha256=xsSKayq1r2C0ciX2_M8l_Kp1x2-awPC9nO2zsBLV5Es,8388
392
395
  omlish/inject/impl/inspect.py,sha256=6emiBEyaVmH2m1U5Zv5VX7-f8Gor0VOQSUEqhlcT6VU,3366
393
396
  omlish/inject/impl/maysync.py,sha256=k0fiUF9GG5kQ2nP6nNNwCoqSHzgmiqR6EXiezANO374,1166
394
397
  omlish/inject/impl/multis.py,sha256=5aKXnmSocwqu7y6WicvYX1-QGTz9iHubxRq9j0enlgk,2174
@@ -396,7 +399,6 @@ omlish/inject/impl/origins.py,sha256=dgGdkoMN6I4DZrWjlpZYijeFsrF6Up1WPq_QSAgTtuQ
396
399
  omlish/inject/impl/privates.py,sha256=uxMAl0MOPu-MeLd-q1DySu7J5FcdRVL1B0XgC4dnB6I,2667
397
400
  omlish/inject/impl/providers.py,sha256=qqPUF9qZZ-CGTTc7ZPskjexM2aK8xdY0gLPMshB5VKw,2127
398
401
  omlish/inject/impl/providersmap.py,sha256=NOIbX_sTAL8uXf-lMoOiFTFZQMe6ywLU7nIghgF_ISw,1326
399
- omlish/inject/impl/proxy.py,sha256=S1qNn-5pbsAj9hhasQZ9nnFSCX8SuAYCcBOZ6BtKxlk,1641
400
402
  omlish/inject/impl/scopes.py,sha256=sqtjHe6g0pAEOHqIARXGiIE9mKmGmlqh1FDpskV4TIw,5923
401
403
  omlish/inject/impl/sync.py,sha256=_aLaC-uVNHOePcfE1as61Ni7fuyHZpjEafIWBc7FvC0,1049
402
404
  omlish/io/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -434,7 +436,7 @@ omlish/iterators/recipes.py,sha256=wOwOZg-zWG9Zc3wcAxJFSe2rtavVBYwZOfG09qYEx_4,4
434
436
  omlish/iterators/tools.py,sha256=M16LXrJhMdsz5ea2qH0vws30ZvhQuQSCVFSLpRf_gTg,2096
435
437
  omlish/iterators/transforms.py,sha256=gy7f6PoPwyy1aLEA0u1bpe8E3S08c7O5KF8SkWG7pbc,3572
436
438
  omlish/iterators/unique.py,sha256=BSE-eanva8byFCJi09Nt2zzTsVr8LnTqY1PIInGYRs0,1396
437
- omlish/lang/__init__.py,sha256=0_55t4_LWUAD1-xcDqQnE4bbmKFXlt0OldLMw-IT2UI,10936
439
+ omlish/lang/__init__.py,sha256=KMDK-m5hncjE2qNl5BrKhyDS2we6UAgUi2kufDl-3gk,10958
438
440
  omlish/lang/_asyncs.cc,sha256=ko_d9pv6C0MfEL-HfvJz2R6uaz_OEFLpInwtY-NGTf4,4062
439
441
  omlish/lang/asyncs.py,sha256=EGVZ3pJ-4onvVfslcRBCa40J-M_lUPT55s5YSCE8GDs,2176
440
442
  omlish/lang/attrstorage.py,sha256=UUnoENCMQF3twBfxBcIKa5mpXsAxWnNYDayhU8xgmpU,5224
@@ -483,14 +485,19 @@ omlish/lang/imports/lazy.py,sha256=Eefs9hkj5surMdwgxX_Q3BOqPcox10v0sKT5rKIQknc,8
483
485
  omlish/lang/imports/proxy.py,sha256=hn5jhBubr1Hfb51X5L6oR2h9yYya_Lmzb_xxE-s18jU,16171
484
486
  omlish/lang/imports/resolving.py,sha256=DeRarn35Fryg5JhVhy8wbiC9lvr58AnllI9B_reswUE,2085
485
487
  omlish/lang/imports/traversal.py,sha256=pbFQIa880NGjSfcLsno2vE_G41_CLwDHb-7gWg2J3BI,2855
486
- omlish/lifecycles/__init__.py,sha256=zOuvV4pErPwxcKUSgshmME2Duw9GrjwckpNmW3FPKng,810
487
- omlish/lifecycles/abstract.py,sha256=1nMCFVislFq-boMD6TK9APIkRm_5OzcpSsDs2XnByVQ,2248
488
- omlish/lifecycles/base.py,sha256=sCmzj2F-JcFD2qDsjNOPhKSbDIJaT9CEKK19RqkP-sg,2462
489
- omlish/lifecycles/contextmanagers.py,sha256=8-i1WJA79b_Jsv-tqvEkD4hh13UaHKXDOrhYZBIGz7E,2090
490
- omlish/lifecycles/controller.py,sha256=oFYc8m9TNwBSb6vqHxt9mFcpED7FdqehDfrIoli7fc4,4768
491
- omlish/lifecycles/manager.py,sha256=92s1IH_gDP25PM5tFuPMP2hD_6s5fPi_VzZiDS5549g,5449
492
- omlish/lifecycles/states.py,sha256=6gTdY3hn7-1sJ60lA3GeMx5RVKvXtFBBXE4KEjoO1Hs,1297
493
- omlish/lifecycles/transitions.py,sha256=3IFdWGtAeoy3XRlIyW7yCKV4e4Iof9ytkqklGMRFYQs,1944
488
+ omlish/lifecycles/README.md,sha256=I-b1RM3GcVDHldDsd_7TJa6GBXbFzE4yXdayCnWVHiY,2418
489
+ omlish/lifecycles/__init__.py,sha256=UGyPmBCGciuKamlBRrnGQ7OT6w0ftSF3oavZeqDHKY8,2299
490
+ omlish/lifecycles/_dataclasses.py,sha256=7xOERs2uCy4tMAmIP4aQZDn57zD7AMv5Q8aSAqj9efo,64916
491
+ omlish/lifecycles/base.py,sha256=su26DkMDaQDazNffpFH3aM1KCPIF2nE6Fa9jWqC-mmU,6013
492
+ omlish/lifecycles/contextmanagers.py,sha256=8exOCkFIrq6x71hzRoLB7RDtiLz8Gimu3uDSEyEtkdQ,4999
493
+ omlish/lifecycles/controller.py,sha256=v3xhrxLSjl9PbE7JcgvotNg5gt07wuLsv5j0tuiwOiI,6719
494
+ omlish/lifecycles/injection.py,sha256=h-8Tcgk21TudKoYwJVdHgrpMozgoNsE7SjM71-hm7Ig,4166
495
+ omlish/lifecycles/listeners.py,sha256=5LCwR2-NV75RuIf0IZc398vqH0rsaDaAWiFtyynGOYo,1418
496
+ omlish/lifecycles/managed.py,sha256=cHro1PMzWzFGYcd4lxE76YxsYabfaryPUcdHktCBpvg,3690
497
+ omlish/lifecycles/manager.py,sha256=yv3GHXbKYjlGQIxiKw4NoiyMjZVuELXKWphIuGMaylw,8787
498
+ omlish/lifecycles/states.py,sha256=k3_aG-bICjapzis15_HNNeUfV2dD6STrqeQX1HJv34E,1327
499
+ omlish/lifecycles/transitions.py,sha256=_vVMC4j6vK4ywu2NwBYCS6T1hJtMpdr38Xg_mCFX3U8,1975
500
+ omlish/lifecycles/unwrap.py,sha256=gZ-7_FbOSOGrwE7CYWu9lZXFrYTe1FoObwMgn4BV2bY,1062
494
501
  omlish/lite/__init__.py,sha256=cyZEpGob7XjU8DohyNxVe5CQRk4CQ5vrHL42OdhQb8w,148
495
502
  omlish/lite/abstract.py,sha256=uXKPgubjZmV3J_py2yZJRUyPtcYzlSGkZ5IqlT32_Dk,4926
496
503
  omlish/lite/args.py,sha256=ILJXAiN3KjIoJwY42aKpYPngUdxHIy9ssVIExFVz3fE,978
@@ -517,20 +524,21 @@ omlish/lite/strings.py,sha256=rapGrc2BrIDstAEJov3pG_30PimOIR7IFVYioyTi-MM,1831
517
524
  omlish/lite/timeouts.py,sha256=OLU9iju2pkk3niM20aPnmA6AqabFmW8zeLDu6WsuaxA,5008
518
525
  omlish/lite/timing.py,sha256=KTlEa5PyT6BXf8AwGVWUNtoVgRx9zwSUrBQnkpygK78,262
519
526
  omlish/lite/types.py,sha256=QM9whf55r7TmmQBRApIWSlyVKsl1p_jcut_YheyZMFY,146
520
- omlish/lite/typing.py,sha256=RZBto50cqbeZrLbFtSPMmxc0gR-dnRsH02Yx4t4xosQ,1580
527
+ omlish/lite/typing.py,sha256=bumqLiwd4EyxKApuVOxmVthDEvV59ktt2oh0jtmR4-U,1923
521
528
  omlish/lite/wrappers.py,sha256=d00Ls2kFHuogKd5wEBaU65VNCN10YXIZtiwu1mbMpmA,530
522
529
  omlish/logs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
523
- omlish/logs/_amalg.py,sha256=XTfwEPyxNLHgDq3rEDa5WnotoyFIxvvcAKeqOFZxBY8,204
524
- omlish/logs/all.py,sha256=al8E9Rdub2_NCLWq2PHtTVOu0LRR_r2Eza6LRPz3pzg,1721
525
- omlish/logs/base.py,sha256=Z1hfwYS2LgMJxFIyHiOvYa2meu2MH3kQDkhaWRNzt0M,5698
526
- omlish/logs/contexts.py,sha256=qMX-BrOKmYIBOXIlSntKJT9mcsRryTqfcTFp9K1GJmE,4836
530
+ omlish/logs/_amalg.py,sha256=9aaOU324p9ZhjfP-wdmbjbKYbjVgxucrJPYfM1oHxuo,208
531
+ omlish/logs/all.py,sha256=UHajvzVCoPjfXCNfe4ShTsDA24m4e80b4z5f6tIGV2k,2022
532
+ omlish/logs/asyncs.py,sha256=uwgt68z-hZQvSqMhjBsNRoFefMOG_-PatfNTJEvXJ8s,2189
533
+ omlish/logs/base.py,sha256=s3BkKfvj6Ssh8qxIMhT4W5Oc7nYjWeLKW0LWTC0JNvs,7340
534
+ omlish/logs/contexts.py,sha256=dhwBjSrxcVpXng2pGI1IEs-kJTnS4bndmlviZTkGXTk,4956
527
535
  omlish/logs/formatters.py,sha256=g8oGfP_ok0nrW9opIIh5LqcQTmdufWFGO-9pRKX4m3Q,242
528
536
  omlish/logs/infos.py,sha256=Nr2SbyI978vP5BTiVZsXUBdy2k0CUiwggcW-wewJHmo,11560
529
537
  omlish/logs/levels.py,sha256=Eze-k_LPgFzbNMnG10F2bRKfL3veQpIxiegvN5rGeWM,2909
530
- omlish/logs/modules.py,sha256=wZ_PNCYhAaEdnGE5k0JvChcqn9nhtEpmwuH74Bwn5gg,266
538
+ omlish/logs/lists.py,sha256=v1-im8ZkFA2k8gBkYnlHJrh-7krG1VybpNq6fVxpt0c,3282
539
+ omlish/logs/modules.py,sha256=UQfnFjChHE11AnmzdoMPeaz70AYlrTbvII8zDk1_IEI,825
531
540
  omlish/logs/protocols.py,sha256=e_zizD3pQdYlU6bg3xGB3_ARUTcoHUfar_uLjCo-SPw,961
532
- omlish/logs/standard.py,sha256=btp0YOUb3AsANG0D1rqGK-z25O4HN7p1PJj9ecJ80WI,3323
533
- omlish/logs/utils.py,sha256=IFmms9tQWDReUuO4GarBDPkMP7h-h54nf0qT-g6iMAA,1887
541
+ omlish/logs/utils.py,sha256=ao53iE7LAEM4wFolz1UPph6TvoPLIb1v7qhmI4mF4os,2262
534
542
  omlish/logs/warnings.py,sha256=xyhDgiPy1p8Kp5D9sb_NZiBnQ26SUppaHqC27dtQzok,67
535
543
  omlish/logs/std/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
536
544
  omlish/logs/std/configs.py,sha256=aDQahqBJXJpmQBaxXVK5S2xi_I_nrLLcCLTq6Q2K6EQ,1037
@@ -538,10 +546,11 @@ omlish/logs/std/filters.py,sha256=Z8tHOvBRiP-OYm2z5cwY-lYXRimNgferEARMwvwx5Pw,38
538
546
  omlish/logs/std/formatters.py,sha256=mORjx6kPQ-nYvek0Lyg1PZh0vtSYr6Vk-UJtRNW9_8k,645
539
547
  omlish/logs/std/handlers.py,sha256=uTWOT6oayBUEftKmJ8yo89ZP4plv5eQ8Lbcmt-IGl8c,469
540
548
  omlish/logs/std/json.py,sha256=QJ5lywLsRsPyVno2nk2kOw-Z1z3bfrDiZzqcRUdWUMY,1382
541
- omlish/logs/std/loggers.py,sha256=hJIEC5BGaDOxgikTYKJ_qA_moS4CcHLMDAVKFDDKdHo,1144
542
- omlish/logs/std/noisy.py,sha256=hWpbseerZqlHdEPEajDTSmcRhx8LmmNAxz_7GBZAO9s,353
549
+ omlish/logs/std/loggers.py,sha256=8PpQ0Y1tAejTnO1Hk_Nl_hBRrdjkYB6_iyrV0Nc5oJ0,1199
550
+ omlish/logs/std/noisy.py,sha256=50vpOURytdPdf5eSwNZVYOAbp0Zmsp0SI5VpwAxL9AU,525
543
551
  omlish/logs/std/proxy.py,sha256=9MVV5kbj9nwl3KZGtrYCIb5XTpv33f33zZ7P_B58fX0,2394
544
552
  omlish/logs/std/records.py,sha256=oI3eVPzoCNPRiEh2hA8BDKp1vM3uetYecek1AB0B3UA,25426
553
+ omlish/logs/std/standard.py,sha256=ukYl3Tkm0m0fdTgqNd4Qoi_qQQWwRf8HN9vSmTWX6pk,3290
545
554
  omlish/logs/typed/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
546
555
  omlish/logs/typed/bindings.py,sha256=7F6zPZKJ0cclg58xIMMrOG-vLv1KJ5dsXGwg9glSZFg,19919
547
556
  omlish/logs/typed/contexts.py,sha256=MU1RqHtmYbnxoLfLhMZbTbRd-WfYEyeVo7_3VnG3rY0,4027
@@ -554,7 +563,7 @@ omlish/manifests/loading.py,sha256=WtlWb0rwtHLPEukY28Lva3b6_BQup8cUpyplUsKSWQY,1
554
563
  omlish/manifests/static.py,sha256=9BaPBLkuzxHmg5A-5k9BjjBFINCdmFOIu06dMFgCfz4,497
555
564
  omlish/manifests/types.py,sha256=NeOGuIVrcbqjCDbQ3MnCxxHAgHnw0CkWJsBzo230PWE,453
556
565
  omlish/marshal/__init__.py,sha256=zmNQNAla57SbwjW7iz74nmEIvrnx8Dp6k5qvqwCeAHM,6548
557
- omlish/marshal/_dataclasses.py,sha256=-r3M54Zahb_oaIHjwCCrM4XOxUAPfR51SEttDkY-zOo,134092
566
+ omlish/marshal/_dataclasses.py,sha256=W0tSNV00k2yiNPM-wxlSDC3eS1iRj8QdjOp6ejkKFkM,134092
558
567
  omlish/marshal/globals.py,sha256=Q6G18hcUwUDDNnpyRPnR5Tn_XZpZCSIEXo09nYSOaNU,2236
559
568
  omlish/marshal/naming.py,sha256=Mk5YrbES836_KflNNRoc5Ajd96iMYLQIMERKx1KpT4g,865
560
569
  omlish/marshal/standard.py,sha256=8Qy5L3qMHO-V_fu78tM62wMcGpF0kgrFrxn06IRbFXQ,6906
@@ -649,9 +658,9 @@ omlish/os/pidfiles/cli.py,sha256=dAKukx4mrarH8t7KZM4n_XSfTk3ycShGAFqRrirK5dw,207
649
658
  omlish/os/pidfiles/manager.py,sha256=oOnL90ttOG5ba_k9XPJ18reP7M5S-_30ln4OAfYV5W8,2357
650
659
  omlish/os/pidfiles/pidfile.py,sha256=KlqrW7I-lYVDNJspFHE89i_A0HTTteT5B99b7vpTfNs,4400
651
660
  omlish/os/pidfiles/pinning.py,sha256=JJBpW-9cM9Jv_2l0LP4vXQhpx8EnjFaLUnt1FnxrKhw,6676
652
- omlish/reflect/__init__.py,sha256=omD3VLFQtYTwPxrTH6gLATQIax9sTGGKc-7ps96-q0g,1202
661
+ omlish/reflect/__init__.py,sha256=8aGiDBmRHWtQYiN7z62N5qkf0OaqmStLJqkNyx2nq1Y,1256
653
662
  omlish/reflect/inspect.py,sha256=dUrVz8VfAdLVFtFpW416DxzVC17D80cvFb_g2Odzgq8,1823
654
- omlish/reflect/ops.py,sha256=4mGvFMw5D6XGbhDhdCqZ1dZsiqezUTenDv63FIDohpY,3029
663
+ omlish/reflect/ops.py,sha256=GYqoNZS9txhwUXaj1BnaTk5rOISwBec2dB8muZxA8EU,3052
655
664
  omlish/reflect/subst.py,sha256=_lfNS2m2UiJgqARQtmGLTGo7CrSm9OMvVzt6GWOEX6M,4590
656
665
  omlish/reflect/types.py,sha256=iKLnOhOfbssFp7J4TNFif6as4SyNVFRYlCv7zLQH4iU,16159
657
666
  omlish/secrets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -681,7 +690,7 @@ omlish/specs/__init__.py,sha256=fxpcfXEWESH2kiPStKhl2dAdfLkZVTt_cssZKyqBLiQ,87
681
690
  omlish/specs/jmespath/LICENSE,sha256=IH-ZZlZkS8XMkf_ubNVD1aYHQ2l_wd0tmHtXrCcYpRU,1113
682
691
  omlish/specs/jmespath/__init__.py,sha256=aKDqajwWrB-FJFsGkPxDkXzJPeebk4rz_g4JYQnCn4g,2268
683
692
  omlish/specs/jmespath/__main__.py,sha256=AkowPx7ASpK0E4EMq0MiwVarLDB7alConH-2mBOGYIA,194
684
- omlish/specs/jmespath/_dataclasses.py,sha256=XMFCmsv5gwUJnKue_Bo9ycXDke8qWXTstphp9KLk6LY,130085
693
+ omlish/specs/jmespath/_dataclasses.py,sha256=jCeJOJiq43Ko9JqyoSXyz90LucvMByPu0RRPLTwSMzs,130085
685
694
  omlish/specs/jmespath/ast.py,sha256=PmUJYWlxTzOooSvzgjbFxus5SXATHPxNqvCgRzOlqv8,5657
686
695
  omlish/specs/jmespath/cli.py,sha256=oQ8u8sKM9kysB2rGChXrCl7RgsUgo6MNrWtzdLz4eIA,2147
687
696
  omlish/specs/jmespath/errors.py,sha256=mJ8z6Q5XmQgZ_rZBAF42ahqqVXvsGqw8rwG0wJorLmk,4444
@@ -699,7 +708,7 @@ omlish/specs/jsonschema/__init__.py,sha256=12JNHdvV-LN0d0Ir80Ch8msVb4JqGSjB0wLSw
699
708
  omlish/specs/jsonschema/_marshal.py,sha256=LTIMWdBkBQ_1gdVwTszfPu9wIrPYbdG2MGts1bbLFqM,872
700
709
  omlish/specs/jsonschema/types.py,sha256=_H7ma99hD3_Xu42BFGHOXRI5p79tY8WBX8QE36k7lbw,472
701
710
  omlish/specs/jsonschema/keywords/__init__.py,sha256=RRhYsfitdBmiGGCWOPIJ3K-XE7zOufVMNZrowCRAPXw,99
702
- omlish/specs/jsonschema/keywords/_dataclasses.py,sha256=aVLB9tSj0aSLJmIRHcMbhcoHB8WwOGUV4oOdKW4iJoA,71113
711
+ omlish/specs/jsonschema/keywords/_dataclasses.py,sha256=M1p3GRcv4xHO4HaBd2Myva3BKF3l6l6KaJnuM9c-AwI,71113
703
712
  omlish/specs/jsonschema/keywords/base.py,sha256=_O_VZySO5j5vnEiQWojk3zwaj7OQowT0e6bk3UYDTeM,3011
704
713
  omlish/specs/jsonschema/keywords/core.py,sha256=3Pbi8d-eocEAxEdemNa0ldp5lrLWNmH0Tye-5rglUoU,535
705
714
  omlish/specs/jsonschema/keywords/format.py,sha256=9trrxHe38FDx47I8UfvO4PD_IygRlkEyTUJ3XlxDM6Y,244
@@ -724,9 +733,7 @@ omlish/specs/jsonschema/schemas/draft202012/vocabularies/validation.json,sha256=
724
733
  omlish/specs/openapi/__init__.py,sha256=KS7OHPBlXwBeTvmsUQy0VMzKYdz2RyH3qLF3bU0NXUw,147
725
734
  omlish/specs/openapi/_marshal.py,sha256=DpI0ibKPIpOA1AsxrCawPHaJfPmGmexnqUjtLb64UbI,4712
726
735
  omlish/specs/openapi/openapi.py,sha256=6KGY_d8HOyG7ssHIWM40MCXgIMzNLiLKHYNggTSpAYM,12027
727
- omlish/sql/__init__.py,sha256=JjgIiP2YfiHHIANP7qgkJUG0IMIRzzvKntyhdDKeNdY,384
728
- omlish/sql/abc.py,sha256=3hrCjB4jnPVMef_YXClCblzYUZ9l9yaxJJdd5_Nu9GM,4043
729
- omlish/sql/dbapi.py,sha256=DfMxCyltpMj6hUiLti1omUvJyMGbrkGxcz2ywolOpPA,2979
736
+ omlish/sql/__init__.py,sha256=B16eDgP1DKBdj3I100e-G_d7gbNDdLOMaXeFRXhVXFA,678
730
737
  omlish/sql/dbs.py,sha256=65e388987upJpsFX8bNL7uhiYv2sCsmk9Y04V0MXdsI,1873
731
738
  omlish/sql/params.py,sha256=curSYbKThciBmovPnTHF9MH-RDVU7OEdTh0X9LXYJ4o,4436
732
739
  omlish/sql/qualifiedname.py,sha256=KdWOozaxsCi5hhsW6KwFM0HD3lTtBtJHDJ5HOx4DsWc,2447
@@ -743,13 +750,16 @@ omlish/sql/api/_queries.py,sha256=FqIrtU6JdzQD4S4zv9tdDuzCLHSgJjK8WSfT7Ag4umI,53
743
750
  omlish/sql/api/asquery.py,sha256=8eBoJyyu0kHW3k3yytEcT-B6UAI_slKB0QtSK_WQS7g,1203
744
751
  omlish/sql/api/base.py,sha256=0QwQBi5qwpYCYewKtDF3HLUau-Z92NOmOtuQqsHJC-I,1316
745
752
  omlish/sql/api/columns.py,sha256=UBol4bfwZ1nhcjv2gE1JhUMzRFeqtiCDo2T9CUGYb64,1943
746
- omlish/sql/api/dbapi.py,sha256=FhNlUZTJERbWmJjEUDmgmN99X3i0lUEwYMp6odvFGmw,2629
753
+ omlish/sql/api/dbapi.py,sha256=efL7H6Eqyg7c3sNH11danzt-rej49BbEmvWxMmcw9ms,2634
747
754
  omlish/sql/api/errors.py,sha256=YtC2gz5DqRTT3uCJniUOufVH1GEnFIc5ElkYLK3BHwM,230
748
755
  omlish/sql/api/funcs.py,sha256=Raa8kL65l1JprMsJupFw-8EPO6MxxDhm0OPSwecMLOI,2045
749
756
  omlish/sql/api/queries.py,sha256=OVsVqNyXXJQVDPfV3GFE2gwnHyGEenS65rTQRTNGx1Y,735
750
757
  omlish/sql/api/resources.py,sha256=RcjnsNoyFWG0VR8YDijwuyZtnxlGQe8jiPQVl_inzIc,2266
751
758
  omlish/sql/api/rows.py,sha256=Jo3AA_6Wt7tlwLO6-rp0arzYFqZXSxPudGPkW2xCYgQ,1346
752
- omlish/sql/queries/__init__.py,sha256=qoikGQZuwDkOBwGKdUVov_Ur3I-mezSDLLdzqwRw6l8,1567
759
+ omlish/sql/dbapi/__init__.py,sha256=LvI5IyMvE9dNwL507M4kgUW9lv2OFhRt--TsUvsi_UE,270
760
+ omlish/sql/dbapi/abc.py,sha256=3hrCjB4jnPVMef_YXClCblzYUZ9l9yaxJJdd5_Nu9GM,4043
761
+ omlish/sql/dbapi/drivers.py,sha256=EYsNTJ-ej-mVMRxM7_68RcdEz5aUhoZH88BtEbvGLWI,2981
762
+ omlish/sql/queries/__init__.py,sha256=0azJqrDw24ugKk9FWc2AOke7VofdJqHKferF5pzRH6s,1628
753
763
  omlish/sql/queries/_marshal.py,sha256=dQZsDLVYipKlAZ4TvWtDgeIo4tBKDisZdN2n3C4lnnc,3004
754
764
  omlish/sql/queries/base.py,sha256=nsavenCsZgzpITSI1zGEAi95K3cRDfAxRgNJKJmYul0,3502
755
765
  omlish/sql/queries/binary.py,sha256=dcEzeEn104AMPuQ7QrJU2O-YCN3SUdxB5S4jaWKOUqY,2253
@@ -817,7 +827,7 @@ omlish/testing/pytest/plugins/utils.py,sha256=7NZIe_AiblFEm7fIOL66up4k0sdBL3RZgj
817
827
  omlish/testing/pytest/plugins/asyncs/__init__.py,sha256=TTNhFmP_krug1973sq_bpWBTIvg68-1nbuVLSs92Z6k,41
818
828
  omlish/testing/pytest/plugins/asyncs/consts.py,sha256=0NOCkzV43dOu3u97BqYMQ4mPG8JuFncpWibkOZpCqX4,55
819
829
  omlish/testing/pytest/plugins/asyncs/fixtures.py,sha256=2m0wdmvehLGI0JI1auNP1xxzjwlPrlsgGBlodMkxXOA,11319
820
- omlish/testing/pytest/plugins/asyncs/plugin.py,sha256=cQEdInjYxXswOMexTdZTkcNpM3RKeQiKxdS7fjwIsq0,6088
830
+ omlish/testing/pytest/plugins/asyncs/plugin.py,sha256=RvFgmDJL8pdNrsv6QzDiF_zkNeJNd_QoqtVAjQ-vOyc,6136
821
831
  omlish/testing/pytest/plugins/asyncs/utils.py,sha256=YYh6XW_WmHnQCWw1jUMi0HOX_PkRnM-u5_dlVth2tt8,299
822
832
  omlish/testing/pytest/plugins/asyncs/backends/__init__.py,sha256=DpJGt5KA2N2pNXy59raVyJH1969M1AP80pJAqIlNEAs,359
823
833
  omlish/testing/pytest/plugins/asyncs/backends/asyncio.py,sha256=V4bPSbGRbSHuoRRMFhufqOam49oRycobtChN1eldvRI,825
@@ -851,7 +861,7 @@ omlish/text/textwrap.py,sha256=fTe04E4T5MpMGLz5QOTfT8T93FdiIT1tohEpzL28_zI,1874
851
861
  omlish/text/docwrap/__init__.py,sha256=NQh0gVyJSxUOAX7nnwsAOwHVPeuZ8abVaN5topQI6gE,42
852
862
  omlish/text/docwrap/__main__.py,sha256=3hMNzeIH10EWPTnbn9uNjlQ1vdptCRC_bswTibGnbr8,185
853
863
  omlish/text/docwrap/api.py,sha256=n192nC7LAKftrF09OvsOdjHVeroAHMmnOx6khVZHyUI,1694
854
- omlish/text/docwrap/cli.py,sha256=AqFbgCmFd3AfzNRopOXjO8PFueNvI2EPzDnOoUXznlQ,2009
864
+ omlish/text/docwrap/cli.py,sha256=gCDrkRkMh6NHdtaSqwtz9N09qMbVqnIcOIjwqXuqeMA,2163
855
865
  omlish/text/docwrap/groups.py,sha256=8__fk1q3KX7tRBcWQ2RprpFS2p4QYnRtCNOxbUBaOVI,1887
856
866
  omlish/text/docwrap/lists.py,sha256=8ZTfXV-hJaTZTf0jAkODke0Z87kZDS5w-xGqNlc0U_c,4693
857
867
  omlish/text/docwrap/parts.py,sha256=KT2Pc4CoEVcHvcrLsD7bmRxr3hypOXDyXFY7cMoFA8I,3463
@@ -871,9 +881,9 @@ omlish/typedvalues/marshal.py,sha256=2xqX6JllhtGpmeYkU7C-qzgU__0x-vd6CzYbAsocQlc
871
881
  omlish/typedvalues/of_.py,sha256=UXkxSj504WI2UrFlqdZJbu2hyDwBhL7XVrc2qdR02GQ,1309
872
882
  omlish/typedvalues/reflect.py,sha256=PAvKW6T4cW7u--iX80w3HWwZUS3SmIZ2_lQjT65uAyk,1026
873
883
  omlish/typedvalues/values.py,sha256=OnFGb2YvAZa0pb7X31MZiWmBCwctK47yVIq9FDD81As,1426
874
- omlish-0.0.0.dev484.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
875
- omlish-0.0.0.dev484.dist-info/METADATA,sha256=2qOdsZJ85RINjh9Xc6GNm9M2yPnWDH13hZq2zH0s988,19032
876
- omlish-0.0.0.dev484.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
877
- omlish-0.0.0.dev484.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
878
- omlish-0.0.0.dev484.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
879
- omlish-0.0.0.dev484.dist-info/RECORD,,
884
+ omlish-0.0.0.dev493.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
885
+ omlish-0.0.0.dev493.dist-info/METADATA,sha256=tmjjvmQ50Ks6symagV6dixT8ZqA5q8zvwxNMgr3SICs,19263
886
+ omlish-0.0.0.dev493.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
887
+ omlish-0.0.0.dev493.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
888
+ omlish-0.0.0.dev493.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
889
+ omlish-0.0.0.dev493.dist-info/RECORD,,
@@ -1,86 +0,0 @@
1
- import typing as ta
2
-
3
- from .. import cached
4
- from .. import dataclasses as dc
5
- from .. import lang
6
- from .base import AsyncLifecycle
7
- from .base import Lifecycle
8
-
9
-
10
- AbstractLifecycleT = ta.TypeVar('AbstractLifecycleT', bound='AbstractLifecycle')
11
-
12
- AbstractAsyncLifecycleT = ta.TypeVar('AbstractAsyncLifecycleT', bound='AbstractAsyncLifecycle')
13
-
14
-
15
- ##
16
-
17
-
18
- class AbstractLifecycle(lang.Abstract):
19
- @dc.dataclass(frozen=True)
20
- class _Lifecycle(Lifecycle, lang.Final, ta.Generic[AbstractLifecycleT]):
21
- obj: AbstractLifecycleT
22
-
23
- def lifecycle_construct(self) -> None:
24
- self.obj._lifecycle_construct() # noqa
25
-
26
- def lifecycle_start(self) -> None:
27
- self.obj._lifecycle_start() # noqa
28
-
29
- def lifecycle_stop(self) -> None:
30
- self.obj._lifecycle_stop() # noqa
31
-
32
- def lifecycle_destroy(self) -> None:
33
- self.obj._lifecycle_destroy() # noqa
34
-
35
- @cached.property
36
- def _lifecycle(self) -> _Lifecycle[ta.Self]:
37
- return AbstractLifecycle._Lifecycle(self)
38
-
39
- def _lifecycle_construct(self) -> None:
40
- pass
41
-
42
- def _lifecycle_start(self) -> None:
43
- pass
44
-
45
- def _lifecycle_stop(self) -> None:
46
- pass
47
-
48
- def _lifecycle_destroy(self) -> None:
49
- pass
50
-
51
-
52
- ##
53
-
54
-
55
- class AbstractAsyncLifecycle(lang.Abstract):
56
- @dc.dataclass(frozen=True)
57
- class _Lifecycle(AsyncLifecycle, lang.Final, ta.Generic[AbstractAsyncLifecycleT]):
58
- obj: AbstractAsyncLifecycleT
59
-
60
- async def lifecycle_construct(self) -> None:
61
- await self.obj._lifecycle_construct() # noqa
62
-
63
- async def lifecycle_start(self) -> None:
64
- await self.obj._lifecycle_start() # noqa
65
-
66
- async def lifecycle_stop(self) -> None:
67
- await self.obj._lifecycle_stop() # noqa
68
-
69
- async def lifecycle_destroy(self) -> None:
70
- await self.obj._lifecycle_destroy() # noqa
71
-
72
- @cached.property
73
- def _lifecycle(self) -> _Lifecycle[ta.Self]:
74
- return AbstractAsyncLifecycle._Lifecycle(self)
75
-
76
- async def _lifecycle_construct(self) -> None:
77
- pass
78
-
79
- async def _lifecycle_start(self) -> None:
80
- pass
81
-
82
- async def _lifecycle_stop(self) -> None:
83
- pass
84
-
85
- async def _lifecycle_destroy(self) -> None:
86
- pass
File without changes
File without changes