omlish 0.0.0.dev447__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.
- omlish/.omlish-manifests.json +12 -0
- omlish/README.md +199 -0
- omlish/__about__.py +21 -16
- omlish/argparse/all.py +17 -9
- omlish/argparse/cli.py +16 -3
- omlish/argparse/utils.py +21 -0
- omlish/asyncs/asyncio/rlock.py +110 -0
- omlish/asyncs/asyncio/sync.py +43 -0
- omlish/asyncs/asyncio/utils.py +2 -0
- omlish/asyncs/sync.py +25 -0
- omlish/bootstrap/_marshal.py +1 -1
- omlish/bootstrap/diag.py +12 -21
- omlish/bootstrap/main.py +2 -5
- omlish/bootstrap/sys.py +27 -28
- omlish/cexts/__init__.py +0 -0
- omlish/cexts/include/omlish/omlish.hh +1 -0
- omlish/collections/__init__.py +13 -1
- omlish/collections/attrregistry.py +210 -0
- omlish/collections/cache/impl.py +1 -0
- omlish/collections/identity.py +1 -0
- omlish/collections/mappings.py +28 -0
- omlish/collections/trie.py +5 -1
- omlish/collections/utils.py +77 -0
- omlish/concurrent/all.py +2 -1
- omlish/concurrent/futures.py +25 -0
- omlish/concurrent/threadlets.py +1 -1
- omlish/daemons/reparent.py +2 -3
- omlish/daemons/spawning.py +2 -3
- omlish/dataclasses/__init__.py +2 -0
- omlish/dataclasses/impl/api/classes/decorator.py +3 -0
- omlish/dataclasses/impl/api/classes/make.py +3 -0
- omlish/dataclasses/impl/concerns/repr.py +15 -2
- omlish/dataclasses/impl/configs.py +97 -37
- omlish/dataclasses/impl/generation/compilation.py +21 -19
- omlish/dataclasses/impl/generation/globals.py +1 -0
- omlish/dataclasses/impl/generation/ops.py +1 -0
- omlish/dataclasses/impl/generation/plans.py +2 -17
- omlish/dataclasses/impl/generation/processor.py +106 -25
- omlish/dataclasses/impl/processing/base.py +8 -0
- omlish/dataclasses/impl/processing/driving.py +19 -7
- omlish/dataclasses/specs.py +1 -0
- omlish/dataclasses/tools/modifiers.py +5 -0
- omlish/diag/_pycharm/runhack.py +1 -1
- omlish/diag/cmds/__init__.py +0 -0
- omlish/diag/{lslocks.py → cmds/lslocks.py} +6 -6
- omlish/diag/{lsof.py → cmds/lsof.py} +6 -6
- omlish/diag/{ps.py → cmds/ps.py} +6 -6
- omlish/diag/pycharm.py +16 -2
- omlish/diag/pydevd.py +58 -40
- omlish/diag/replserver/console.py +1 -1
- omlish/dispatch/__init__.py +18 -12
- omlish/dispatch/methods.py +50 -140
- omlish/dom/rendering.py +1 -1
- omlish/formats/dotenv.py +1 -1
- omlish/formats/json/stream/__init__.py +13 -0
- omlish/funcs/guard.py +225 -0
- omlish/graphs/dot/rendering.py +1 -1
- omlish/http/all.py +44 -4
- omlish/http/clients/asyncs.py +33 -27
- omlish/http/clients/base.py +17 -1
- omlish/http/clients/coro/__init__.py +0 -0
- omlish/http/clients/coro/sync.py +171 -0
- omlish/http/clients/default.py +208 -29
- omlish/http/clients/executor.py +56 -0
- omlish/http/clients/httpx.py +72 -11
- omlish/http/clients/middleware.py +181 -0
- omlish/http/clients/sync.py +33 -27
- omlish/http/clients/syncasync.py +49 -0
- omlish/http/clients/urllib.py +6 -3
- omlish/http/coro/client/connection.py +15 -6
- omlish/http/coro/io.py +2 -0
- omlish/http/flasky/__init__.py +40 -0
- omlish/http/flasky/_compat.py +2 -0
- omlish/http/flasky/api.py +82 -0
- omlish/http/flasky/app.py +203 -0
- omlish/http/flasky/cvs.py +59 -0
- omlish/http/flasky/requests.py +20 -0
- omlish/http/flasky/responses.py +23 -0
- omlish/http/flasky/routes.py +23 -0
- omlish/http/flasky/types.py +15 -0
- omlish/http/urls.py +67 -0
- omlish/inject/__init__.py +57 -29
- omlish/inject/_dataclasses.py +5148 -0
- omlish/inject/binder.py +11 -52
- omlish/inject/eagers.py +2 -0
- omlish/inject/elements.py +27 -0
- omlish/inject/helpers/__init__.py +0 -0
- omlish/inject/{utils.py → helpers/constfn.py} +3 -3
- omlish/inject/{tags.py → helpers/id.py} +2 -2
- omlish/inject/helpers/late.py +76 -0
- omlish/inject/{managed.py → helpers/managed.py} +10 -10
- omlish/inject/helpers/multis.py +143 -0
- omlish/inject/helpers/wrappers.py +54 -0
- omlish/inject/impl/elements.py +54 -21
- omlish/inject/impl/injector.py +29 -25
- omlish/inject/impl/inspect.py +10 -1
- omlish/inject/impl/maysync.py +3 -4
- omlish/inject/impl/multis.py +3 -0
- omlish/inject/impl/sync.py +3 -4
- omlish/inject/injector.py +31 -2
- omlish/inject/inspect.py +35 -0
- omlish/inject/maysync.py +2 -4
- omlish/inject/multis.py +8 -0
- omlish/inject/overrides.py +3 -3
- omlish/inject/privates.py +6 -0
- omlish/inject/providers.py +3 -2
- omlish/inject/sync.py +5 -4
- omlish/io/buffers.py +118 -0
- omlish/io/readers.py +29 -0
- omlish/iterators/transforms.py +2 -2
- omlish/lang/__init__.py +180 -97
- omlish/lang/_asyncs.cc +186 -0
- omlish/lang/asyncs.py +17 -0
- omlish/lang/casing.py +11 -0
- omlish/lang/contextmanagers.py +28 -4
- omlish/lang/functions.py +31 -22
- omlish/lang/imports/_capture.cc +11 -9
- omlish/lang/imports/capture.py +363 -170
- omlish/lang/imports/proxy.py +455 -152
- omlish/lang/lazyglobals.py +22 -9
- omlish/lang/params.py +17 -0
- omlish/lang/recursion.py +0 -1
- omlish/lang/sequences.py +124 -0
- omlish/lifecycles/README.md +30 -0
- omlish/lifecycles/__init__.py +87 -13
- omlish/lifecycles/_dataclasses.py +1388 -0
- omlish/lifecycles/base.py +178 -64
- omlish/lifecycles/contextmanagers.py +113 -4
- omlish/lifecycles/controller.py +150 -87
- omlish/lifecycles/injection.py +143 -0
- omlish/lifecycles/listeners.py +56 -0
- omlish/lifecycles/managed.py +142 -0
- omlish/lifecycles/manager.py +218 -93
- omlish/lifecycles/states.py +2 -0
- omlish/lifecycles/transitions.py +3 -0
- omlish/lifecycles/unwrap.py +57 -0
- omlish/lite/abstract.py +54 -24
- omlish/lite/asyncs.py +2 -2
- omlish/lite/attrops.py +2 -0
- omlish/lite/contextmanagers.py +4 -4
- omlish/lite/dataclasses.py +44 -0
- omlish/lite/maybes.py +8 -0
- omlish/lite/maysync.py +1 -5
- omlish/lite/pycharm.py +1 -1
- omlish/lite/typing.py +24 -0
- omlish/logs/_amalg.py +1 -1
- omlish/logs/all.py +25 -11
- omlish/logs/asyncs.py +73 -0
- omlish/logs/base.py +101 -12
- omlish/logs/contexts.py +4 -1
- omlish/logs/lists.py +125 -0
- omlish/logs/modules.py +19 -1
- omlish/logs/std/loggers.py +6 -1
- omlish/logs/std/noisy.py +11 -9
- omlish/logs/{standard.py → std/standard.py} +3 -4
- omlish/logs/utils.py +17 -2
- omlish/manifests/loading.py +2 -1
- omlish/marshal/__init__.py +33 -13
- omlish/marshal/_dataclasses.py +2774 -0
- omlish/marshal/base/configs.py +12 -0
- omlish/marshal/base/contexts.py +36 -21
- omlish/marshal/base/funcs.py +8 -11
- omlish/marshal/base/options.py +8 -0
- omlish/marshal/base/registries.py +146 -44
- omlish/marshal/base/types.py +40 -16
- omlish/marshal/composite/iterables.py +33 -20
- omlish/marshal/composite/literals.py +20 -18
- omlish/marshal/composite/mappings.py +36 -23
- omlish/marshal/composite/maybes.py +29 -19
- omlish/marshal/composite/newtypes.py +16 -16
- omlish/marshal/composite/optionals.py +14 -14
- omlish/marshal/composite/special.py +15 -15
- omlish/marshal/composite/unions/__init__.py +0 -0
- omlish/marshal/composite/unions/literals.py +93 -0
- omlish/marshal/composite/unions/primitives.py +103 -0
- omlish/marshal/factories/invalidate.py +18 -68
- omlish/marshal/factories/method.py +26 -0
- omlish/marshal/factories/moduleimport/factories.py +22 -65
- omlish/marshal/factories/multi.py +13 -25
- omlish/marshal/factories/recursive.py +42 -56
- omlish/marshal/factories/typecache.py +29 -74
- omlish/marshal/factories/typemap.py +42 -43
- omlish/marshal/objects/dataclasses.py +129 -106
- omlish/marshal/objects/marshal.py +18 -14
- omlish/marshal/objects/namedtuples.py +48 -42
- omlish/marshal/objects/unmarshal.py +19 -15
- omlish/marshal/polymorphism/marshal.py +9 -11
- omlish/marshal/polymorphism/metadata.py +16 -5
- omlish/marshal/polymorphism/standard.py +13 -1
- omlish/marshal/polymorphism/unions.py +15 -105
- omlish/marshal/polymorphism/unmarshal.py +9 -10
- omlish/marshal/singular/enums.py +14 -18
- omlish/marshal/standard.py +10 -6
- omlish/marshal/trivial/any.py +1 -1
- omlish/marshal/trivial/forbidden.py +21 -26
- omlish/metadata.py +23 -1
- omlish/os/forkhooks.py +4 -0
- omlish/os/pidfiles/pinning.py +2 -2
- omlish/reflect/__init__.py +43 -26
- omlish/reflect/ops.py +10 -1
- omlish/reflect/types.py +1 -0
- omlish/secrets/marshal.py +1 -1
- omlish/specs/jmespath/__init__.py +12 -3
- omlish/specs/jmespath/_dataclasses.py +2893 -0
- omlish/specs/jmespath/ast.py +1 -1
- omlish/specs/jsonrpc/__init__.py +13 -0
- omlish/specs/jsonrpc/_marshal.py +32 -23
- omlish/specs/jsonrpc/conns.py +10 -7
- omlish/specs/jsonschema/_marshal.py +1 -1
- omlish/specs/jsonschema/keywords/__init__.py +7 -0
- omlish/specs/jsonschema/keywords/_dataclasses.py +1644 -0
- omlish/specs/openapi/_marshal.py +31 -22
- omlish/sql/__init__.py +24 -5
- omlish/sql/{tabledefs/alchemy.py → alchemy/tabledefs.py} +2 -2
- omlish/sql/api/dbapi.py +1 -1
- omlish/sql/dbapi/__init__.py +15 -0
- omlish/sql/{dbapi.py → dbapi/drivers.py} +2 -2
- omlish/sql/queries/__init__.py +3 -0
- omlish/sql/queries/_marshal.py +2 -2
- omlish/sql/queries/rendering.py +1 -1
- omlish/sql/tabledefs/_marshal.py +1 -1
- omlish/subprocesses/base.py +4 -0
- omlish/subprocesses/editor.py +1 -1
- omlish/sync.py +155 -21
- omlish/term/alt.py +60 -0
- omlish/term/confirm.py +8 -8
- omlish/term/pager.py +235 -0
- omlish/term/terminfo.py +935 -0
- omlish/term/termstate.py +67 -0
- omlish/term/vt100/terminal.py +0 -3
- omlish/testing/pytest/plugins/asyncs/fixtures.py +4 -1
- omlish/testing/pytest/plugins/asyncs/plugin.py +2 -0
- omlish/testing/pytest/plugins/skips.py +2 -1
- omlish/testing/unittest/main.py +3 -3
- omlish/text/docwrap/__init__.py +3 -0
- omlish/text/docwrap/__main__.py +11 -0
- omlish/text/docwrap/api.py +83 -0
- omlish/text/docwrap/cli.py +91 -0
- omlish/text/docwrap/groups.py +84 -0
- omlish/text/docwrap/lists.py +167 -0
- omlish/text/docwrap/parts.py +146 -0
- omlish/text/docwrap/reflowing.py +106 -0
- omlish/text/docwrap/rendering.py +151 -0
- omlish/text/docwrap/utils.py +11 -0
- omlish/text/docwrap/wrapping.py +59 -0
- omlish/text/filecache.py +2 -2
- omlish/text/lorem.py +6 -0
- omlish/text/parts.py +2 -2
- omlish/text/textwrap.py +51 -0
- omlish/typedvalues/marshal.py +85 -59
- omlish/typedvalues/values.py +2 -1
- {omlish-0.0.0.dev447.dist-info → omlish-0.0.0.dev493.dist-info}/METADATA +36 -32
- {omlish-0.0.0.dev447.dist-info → omlish-0.0.0.dev493.dist-info}/RECORD +260 -199
- omlish/dataclasses/impl/generation/mangling.py +0 -18
- omlish/funcs/match.py +0 -227
- omlish/lifecycles/abstract.py +0 -86
- omlish/marshal/factories/match.py +0 -34
- omlish/marshal/factories/simple.py +0 -28
- /omlish/inject/{impl → helpers}/proxy.py +0 -0
- /omlish/inject/impl/{providers2.py → providersmap.py} +0 -0
- /omlish/sql/{abc.py → dbapi/abc.py} +0 -0
- {omlish-0.0.0.dev447.dist-info → omlish-0.0.0.dev493.dist-info}/WHEEL +0 -0
- {omlish-0.0.0.dev447.dist-info → omlish-0.0.0.dev493.dist-info}/entry_points.txt +0 -0
- {omlish-0.0.0.dev447.dist-info → omlish-0.0.0.dev493.dist-info}/licenses/LICENSE +0 -0
- {omlish-0.0.0.dev447.dist-info → omlish-0.0.0.dev493.dist-info}/top_level.txt +0 -0
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
# @omlish-lite
|
|
3
3
|
"""
|
|
4
4
|
TODO:
|
|
5
|
-
- !! move to std !!
|
|
6
5
|
- structured
|
|
7
6
|
- prefixed
|
|
8
7
|
- debug
|
|
@@ -13,9 +12,9 @@ import datetime
|
|
|
13
12
|
import logging
|
|
14
13
|
import typing as ta
|
|
15
14
|
|
|
16
|
-
from .
|
|
17
|
-
from .
|
|
18
|
-
from .
|
|
15
|
+
from .filters import TidLoggingFilter
|
|
16
|
+
from .json import JsonLoggingFormatter
|
|
17
|
+
from .proxy import ProxyLoggingHandler
|
|
19
18
|
|
|
20
19
|
|
|
21
20
|
##
|
omlish/logs/utils.py
CHANGED
|
@@ -11,13 +11,13 @@ from .protocols import LoggerLike
|
|
|
11
11
|
##
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
def
|
|
14
|
+
def exception_logging(log): # noqa
|
|
15
15
|
def outer(fn):
|
|
16
16
|
@functools.wraps(fn)
|
|
17
17
|
def inner(*args, **kwargs):
|
|
18
18
|
try:
|
|
19
19
|
return fn(*args, **kwargs)
|
|
20
|
-
except Exception:
|
|
20
|
+
except Exception as e: # noqa
|
|
21
21
|
log.exception('Error in %r', fn)
|
|
22
22
|
raise
|
|
23
23
|
|
|
@@ -26,6 +26,21 @@ def error_logging(log): # noqa
|
|
|
26
26
|
return outer
|
|
27
27
|
|
|
28
28
|
|
|
29
|
+
def async_exception_logging(alog): # noqa
|
|
30
|
+
def outer(fn):
|
|
31
|
+
@functools.wraps(fn)
|
|
32
|
+
async def inner(*args, **kwargs):
|
|
33
|
+
try:
|
|
34
|
+
return await fn(*args, **kwargs)
|
|
35
|
+
except Exception as e: # noqa
|
|
36
|
+
await alog.exception('Error in %r', fn)
|
|
37
|
+
raise
|
|
38
|
+
|
|
39
|
+
return inner
|
|
40
|
+
|
|
41
|
+
return outer
|
|
42
|
+
|
|
43
|
+
|
|
29
44
|
##
|
|
30
45
|
|
|
31
46
|
|
omlish/manifests/loading.py
CHANGED
|
@@ -13,7 +13,7 @@ TODO:
|
|
|
13
13
|
scan_root_dirs
|
|
14
14
|
- currently the cli cant subprocess itself and keep manifests working
|
|
15
15
|
- EnvVar cls is already lite
|
|
16
|
-
|
|
16
|
+
- can discover_packages deadlock with concurrent / multithreaded imports?
|
|
17
17
|
"""
|
|
18
18
|
import dataclasses as dc
|
|
19
19
|
import importlib.machinery
|
|
@@ -417,6 +417,7 @@ class ManifestLoader:
|
|
|
417
417
|
def _read_package_file_text(cls, package_name: str, file_name: str) -> ta.Optional[str]:
|
|
418
418
|
# importlib.resources.files actually imports the package - to avoid this, if possible, the file is read straight
|
|
419
419
|
# off the filesystem.
|
|
420
|
+
# FIXME: find_spec *still* imports the parent package to get __path__ to feed to _find_spec...
|
|
420
421
|
spec = importlib.util.find_spec(package_name)
|
|
421
422
|
if (
|
|
422
423
|
spec is not None and
|
omlish/marshal/__init__.py
CHANGED
|
@@ -49,11 +49,17 @@ with _lang.auto_proxy_init(globals()):
|
|
|
49
49
|
|
|
50
50
|
from .base.configs import ( # noqa
|
|
51
51
|
Config,
|
|
52
|
+
Configs,
|
|
53
|
+
|
|
52
54
|
ConfigRegistry,
|
|
53
55
|
)
|
|
54
56
|
|
|
55
57
|
from .base.contexts import ( # noqa
|
|
56
58
|
BaseContext,
|
|
59
|
+
|
|
60
|
+
MarshalFactoryContext,
|
|
61
|
+
UnmarshalFactoryContext,
|
|
62
|
+
|
|
57
63
|
MarshalContext,
|
|
58
64
|
UnmarshalContext,
|
|
59
65
|
)
|
|
@@ -108,19 +114,35 @@ with _lang.auto_proxy_init(globals()):
|
|
|
108
114
|
IterableUnmarshaler,
|
|
109
115
|
)
|
|
110
116
|
|
|
117
|
+
from .composite.optionals import ( # noqa
|
|
118
|
+
OptionalMarshaler,
|
|
119
|
+
OptionalUnmarshaler,
|
|
120
|
+
)
|
|
121
|
+
|
|
122
|
+
from .composite.unions.literals import ( # noqa
|
|
123
|
+
LITERAL_UNION_TYPES,
|
|
124
|
+
LiteralUnionMarshaler,
|
|
125
|
+
LiteralUnionMarshalerFactory,
|
|
126
|
+
LiteralUnionUnmarshaler,
|
|
127
|
+
LiteralUnionUnmarshalerFactory,
|
|
128
|
+
)
|
|
129
|
+
|
|
130
|
+
from .composite.unions.primitives import ( # noqa
|
|
131
|
+
PRIMITIVE_UNION_TYPES,
|
|
132
|
+
PrimitiveUnionMarshaler,
|
|
133
|
+
PrimitiveUnionMarshalerFactory,
|
|
134
|
+
PrimitiveUnionUnmarshaler,
|
|
135
|
+
PrimitiveUnionUnmarshalerFactory,
|
|
136
|
+
)
|
|
137
|
+
|
|
111
138
|
from .composite.wrapped import ( # noqa
|
|
112
139
|
WrappedMarshaler,
|
|
113
140
|
WrappedUnmarshaler,
|
|
114
141
|
)
|
|
115
142
|
|
|
116
|
-
from .factories.
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
)
|
|
120
|
-
|
|
121
|
-
from .factories.match import ( # noqa
|
|
122
|
-
MarshalerFactoryMatchClass,
|
|
123
|
-
UnmarshalerFactoryMatchClass,
|
|
143
|
+
from .factories.method import ( # noqa
|
|
144
|
+
MarshalerFactoryMethodClass,
|
|
145
|
+
UnmarshalerFactoryMethodClass,
|
|
124
146
|
)
|
|
125
147
|
|
|
126
148
|
from .factories.moduleimport.configs import ( # noqa
|
|
@@ -192,6 +214,7 @@ with _lang.auto_proxy_init(globals()):
|
|
|
192
214
|
)
|
|
193
215
|
|
|
194
216
|
from .polymorphism.metadata import ( # noqa
|
|
217
|
+
AutoStripSuffix,
|
|
195
218
|
FieldTypeTagging,
|
|
196
219
|
Impl,
|
|
197
220
|
Impls,
|
|
@@ -207,13 +230,8 @@ with _lang.auto_proxy_init(globals()):
|
|
|
207
230
|
)
|
|
208
231
|
|
|
209
232
|
from .polymorphism.unions import ( # noqa
|
|
210
|
-
PRIMITIVE_UNION_TYPES,
|
|
211
233
|
PolymorphismUnionMarshalerFactory,
|
|
212
234
|
PolymorphismUnionUnmarshalerFactory,
|
|
213
|
-
PrimitiveUnionMarshaler,
|
|
214
|
-
PrimitiveUnionMarshalerFactory,
|
|
215
|
-
PrimitiveUnionUnmarshaler,
|
|
216
|
-
PrimitiveUnionUnmarshalerFactory,
|
|
217
235
|
)
|
|
218
236
|
|
|
219
237
|
from .polymorphism.unmarshal import ( # noqa
|
|
@@ -225,6 +243,7 @@ with _lang.auto_proxy_init(globals()):
|
|
|
225
243
|
from .singular.base64 import ( # noqa
|
|
226
244
|
BASE64_MARSHALER_FACTORY,
|
|
227
245
|
BASE64_UNMARSHALER_FACTORY,
|
|
246
|
+
Base64MarshalerUnmarshaler,
|
|
228
247
|
)
|
|
229
248
|
|
|
230
249
|
from .singular.primitives import ( # noqa
|
|
@@ -233,6 +252,7 @@ with _lang.auto_proxy_init(globals()):
|
|
|
233
252
|
|
|
234
253
|
from .trivial.forbidden import ( # noqa
|
|
235
254
|
ForbiddenTypeMarshalerFactory,
|
|
255
|
+
ForbiddenTypeMarshalerFactoryUnmarshalerFactory,
|
|
236
256
|
ForbiddenTypeUnmarshalerFactory,
|
|
237
257
|
)
|
|
238
258
|
|