omlish 0.0.0.dev451__tar.gz → 0.0.0.dev453__tar.gz
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-0.0.0.dev451/omlish.egg-info → omlish-0.0.0.dev453}/PKG-INFO +1 -1
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/__about__.py +2 -2
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/collections/__init__.py +7 -1
- omlish-0.0.0.dev453/omlish/collections/attrregistry.py +182 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/collections/mappings.py +25 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/diag/pycharm.py +16 -2
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dispatch/methods.py +50 -140
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dom/rendering.py +1 -1
- omlish-0.0.0.dev453/omlish/funcs/guard.py +214 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/funcs/match.py +2 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/graphs/dot/rendering.py +1 -1
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lite/maybes.py +8 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/__init__.py +12 -5
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/base/contexts.py +4 -2
- omlish-0.0.0.dev453/omlish/marshal/base/registries.py +216 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/composite/literals.py +6 -2
- {omlish-0.0.0.dev451/omlish/marshal/polymorphism → omlish-0.0.0.dev453/omlish/marshal/composite}/unions.py +63 -34
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/factories/moduleimport/factories.py +8 -10
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/polymorphism/metadata.py +16 -5
- omlish-0.0.0.dev453/omlish/marshal/polymorphism/standard.py +34 -0
- omlish-0.0.0.dev453/omlish/marshal/polymorphism/unions.py +55 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/standard.py +6 -2
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sql/queries/_marshal.py +1 -1
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sql/queries/rendering.py +1 -1
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/text/parts.py +2 -2
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/typedvalues/marshal.py +1 -1
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453/omlish.egg-info}/PKG-INFO +1 -1
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish.egg-info/SOURCES.txt +3 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/pyproject.toml +1 -1
- omlish-0.0.0.dev451/omlish/marshal/base/registries.py +0 -142
- omlish-0.0.0.dev451/omlish/marshal/polymorphism/standard.py +0 -20
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/LICENSE +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/MANIFEST.in +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/README.md +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/.omlish-manifests.json +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/algorithm/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/algorithm/all.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/algorithm/distribute.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/algorithm/toposort.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/algorithm/unify.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/argparse/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/argparse/all.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/argparse/cli.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/asyncs/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/asyncs/all.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/asyncs/anyio/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/asyncs/anyio/backends.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/asyncs/anyio/futures.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/asyncs/anyio/signals.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/asyncs/anyio/streams.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/asyncs/anyio/subprocesses.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/asyncs/anyio/sync.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/asyncs/anyio/utils.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/asyncs/asyncio/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/asyncs/asyncio/all.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/asyncs/asyncio/channels.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/asyncs/asyncio/sockets.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/asyncs/asyncio/streams.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/asyncs/asyncio/subprocesses.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/asyncs/asyncio/timeouts.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/asyncs/asyncio/utils.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/asyncs/buffers.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/asyncs/flavors.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/asyncs/ioproxy/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/asyncs/ioproxy/all.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/asyncs/ioproxy/io.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/asyncs/ioproxy/proxier.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/asyncs/ioproxy/proxy.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/asyncs/ioproxy/typing.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/asyncs/trio.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/asyncs/trio_asyncio.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/bootstrap/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/bootstrap/__main__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/bootstrap/_marshal.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/bootstrap/base.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/bootstrap/diag.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/bootstrap/harness.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/bootstrap/main.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/bootstrap/sys.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/c3.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/cached.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/cexts/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/cexts/include/omlish/omlish.hh +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/check.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/codecs/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/codecs/base.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/codecs/bytes.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/codecs/chain.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/codecs/funcs.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/codecs/registry.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/codecs/standard.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/codecs/text.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/collections/abc.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/collections/bimap.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/collections/cache/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/collections/cache/descriptor.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/collections/cache/impl.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/collections/cache/types.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/collections/coerce.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/collections/frozen.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/collections/hasheq.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/collections/identity.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/collections/kv/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/collections/kv/base.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/collections/kv/capabilities.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/collections/kv/filtered.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/collections/kv/mappings.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/collections/kv/transformed.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/collections/kv/wrappers.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/collections/multimaps.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/collections/ordered.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/collections/persistent/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/collections/persistent/persistent.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/collections/persistent/treap.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/collections/persistent/treapmap.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/collections/ranked.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/collections/sorted/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/collections/sorted/skiplist.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/collections/sorted/sorted.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/collections/trie.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/collections/unmodifiable.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/collections/utils.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/concurrent/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/concurrent/all.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/concurrent/executors.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/concurrent/futures.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/concurrent/threadlets.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/configs/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/configs/all.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/configs/classes.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/configs/formats.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/configs/nginx.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/configs/processing/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/configs/processing/all.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/configs/processing/flattening.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/configs/processing/inheritance.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/configs/processing/matching.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/configs/processing/merging.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/configs/processing/names.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/configs/processing/rewriting.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/configs/processing/strings.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/configs/shadow.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/configs/types.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/daemons/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/daemons/daemon.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/daemons/launching.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/daemons/reparent.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/daemons/services.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/daemons/spawning.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/daemons/targets.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/daemons/waiting.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/_internals.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/debug.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/errors.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/impl/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/impl/api/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/impl/api/classes/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/impl/api/classes/conversion.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/impl/api/classes/decorator.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/impl/api/classes/make.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/impl/api/classes/metadata.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/impl/api/classes/params.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/impl/api/fields/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/impl/api/fields/building.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/impl/api/fields/constructor.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/impl/api/fields/conversion.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/impl/api/fields/metadata.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/impl/concerns/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/impl/concerns/abc.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/impl/concerns/copy.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/impl/concerns/doc.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/impl/concerns/eq.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/impl/concerns/fields.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/impl/concerns/frozen.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/impl/concerns/hash.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/impl/concerns/init.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/impl/concerns/matchargs.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/impl/concerns/mro.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/impl/concerns/order.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/impl/concerns/override.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/impl/concerns/params.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/impl/concerns/replace.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/impl/concerns/repr.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/impl/concerns/slots.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/impl/configs.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/impl/generation/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/impl/generation/base.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/impl/generation/compilation.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/impl/generation/execution.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/impl/generation/globals.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/impl/generation/idents.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/impl/generation/mangling.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/impl/generation/manifests.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/impl/generation/ops.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/impl/generation/plans.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/impl/generation/processor.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/impl/generation/registry.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/impl/generation/utils.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/impl/processing/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/impl/processing/base.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/impl/processing/driving.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/impl/processing/priority.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/impl/processing/registry.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/impl/utils.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/inspect.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/metaclass/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/metaclass/bases.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/metaclass/confer.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/metaclass/meta.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/metaclass/specs.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/reflection.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/specs.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/tools/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/tools/as_.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/tools/iter.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/tools/modifiers.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/tools/only_.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/tools/replace.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/tools/repr.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dataclasses/tools/static.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/datetimes.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/diag/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/diag/_pycharm/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/diag/_pycharm/runhack.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/diag/asts.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/diag/debug.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/diag/lslocks.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/diag/lsof.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/diag/procfs.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/diag/procstats.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/diag/ps.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/diag/pydevd.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/diag/replserver/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/diag/replserver/__main__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/diag/replserver/console.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/diag/replserver/server.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/diag/threads.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/diag/timers.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dispatch/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dispatch/dispatch.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dispatch/functions.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dispatch/impls.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/docker/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/docker/all.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/docker/cli.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/docker/compose.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/docker/consts.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/docker/detect.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/docker/hub.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/docker/manifests.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/docker/ns1.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/docker/ports.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/docker/timebomb.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dom/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dom/building.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/dom/content.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/formats/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/formats/cbor.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/formats/cloudpickle.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/formats/codecs.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/formats/dotenv.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/formats/edn/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/formats/edn/codec.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/formats/edn/lexing.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/formats/edn/parsing.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/formats/edn/values.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/formats/ini/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/formats/ini/codec.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/formats/ini/sections.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/formats/json/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/formats/json/backends/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/formats/json/backends/base.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/formats/json/backends/default.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/formats/json/backends/jiter.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/formats/json/backends/orjson.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/formats/json/backends/std.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/formats/json/backends/ujson.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/formats/json/codecs.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/formats/json/consts.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/formats/json/encoding.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/formats/json/literals.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/formats/json/rendering.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/formats/json/stream/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/formats/json/stream/building.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/formats/json/stream/errors.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/formats/json/stream/lexing.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/formats/json/stream/parsing.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/formats/json/stream/rendering.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/formats/json/stream/utils.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/formats/json/types.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/formats/json5/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/formats/json5/codec.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/formats/json5/errors.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/formats/json5/literals.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/formats/json5/parsing.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/formats/json5/rendering.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/formats/json5/stream.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/formats/logfmt.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/formats/pickle.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/formats/props.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/formats/repr.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/formats/toml/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/formats/toml/codec.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/formats/toml/parser.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/formats/toml/writer.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/formats/xml.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/formats/yaml.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/funcs/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/funcs/builders.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/funcs/genmachine.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/funcs/pairs.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/funcs/pipes.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/graphs/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/graphs/dags.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/graphs/domination.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/graphs/dot/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/graphs/dot/items.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/graphs/dot/make.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/graphs/dot/utils.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/graphs/trees.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/http/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/http/all.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/http/asgi.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/http/clients/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/http/clients/asyncs.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/http/clients/base.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/http/clients/default.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/http/clients/httpx.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/http/clients/sync.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/http/clients/urllib.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/http/consts.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/http/cookies.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/http/coro/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/http/coro/client/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/http/coro/client/connection.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/http/coro/client/errors.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/http/coro/client/headers.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/http/coro/client/response.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/http/coro/client/status.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/http/coro/client/validation.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/http/coro/io.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/http/coro/server/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/http/coro/server/fdio.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/http/coro/server/server.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/http/coro/server/simple.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/http/coro/server/sockets.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/http/dates.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/http/encodings.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/http/handlers.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/http/headers.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/http/json.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/http/jwt.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/http/multipart.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/http/parsing.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/http/sessions.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/http/sse.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/http/urllib.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/http/versions.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/http/wsgi.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/inject/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/inject/binder.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/inject/bindings.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/inject/eagers.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/inject/elements.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/inject/errors.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/inject/impl/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/inject/impl/bindings.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/inject/impl/elements.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/inject/impl/injector.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/inject/impl/inspect.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/inject/impl/maysync.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/inject/impl/multis.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/inject/impl/origins.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/inject/impl/privates.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/inject/impl/providers.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/inject/impl/providers2.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/inject/impl/proxy.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/inject/impl/scopes.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/inject/impl/sync.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/inject/injector.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/inject/inspect.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/inject/keys.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/inject/listeners.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/inject/lite.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/inject/managed.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/inject/maysync.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/inject/multis.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/inject/origins.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/inject/overrides.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/inject/privates.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/inject/providers.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/inject/scopes.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/inject/sync.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/inject/tags.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/inject/types.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/inject/utils.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/io/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/io/abc.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/io/buffers.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/io/compress/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/io/compress/abc.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/io/compress/adapters.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/io/compress/base.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/io/compress/brotli.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/io/compress/bz2.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/io/compress/codecs.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/io/compress/gzip.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/io/compress/lz4.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/io/compress/lzma.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/io/compress/snappy.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/io/compress/zlib.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/io/compress/zstd.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/io/coro/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/io/coro/consts.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/io/coro/direct.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/io/coro/readers.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/io/coro/stepped.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/io/fdio/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/io/fdio/handlers.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/io/fdio/kqueue.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/io/fdio/manager.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/io/fdio/pollers.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/io/fileno.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/io/pyio.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/iterators/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/iterators/iterators.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/iterators/recipes.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/iterators/tools.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/iterators/transforms.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/iterators/unique.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lang/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lang/asyncs.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lang/attrstorage.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lang/cached/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lang/cached/function.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lang/cached/property.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lang/casing.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lang/classes/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lang/classes/abstract.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lang/classes/bindable.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lang/classes/namespaces.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lang/classes/protocols.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lang/classes/restrict.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lang/classes/simple.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lang/classes/virtual.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lang/clsdct.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lang/collections.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lang/comparison.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lang/contextmanagers.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lang/datetimes.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lang/descriptors.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lang/enums.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lang/errors.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lang/functions.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lang/generators.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lang/imports/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lang/imports/_capture.cc +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lang/imports/capture.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lang/imports/conditional.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lang/imports/lazy.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lang/imports/proxy.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lang/imports/resolving.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lang/imports/traversal.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lang/iterables.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lang/lazyglobals.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lang/maybes.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lang/maysync.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lang/objects.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lang/outcomes.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lang/overrides.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lang/params.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lang/recursion.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lang/resolving.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lang/resources.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lang/strings.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lang/sys.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lang/typing.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/libc.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lifecycles/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lifecycles/abstract.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lifecycles/base.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lifecycles/contextmanagers.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lifecycles/controller.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lifecycles/manager.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lifecycles/states.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lifecycles/transitions.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lite/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lite/abstract.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lite/args.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lite/asyncs.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lite/attrops.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lite/cached.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lite/check.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lite/configs.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lite/contextmanagers.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lite/dataclasses.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lite/imports.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lite/inject.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lite/json.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lite/marshal.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lite/maysync.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lite/objects.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lite/pycharm.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lite/reflect.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lite/resources.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lite/runtime.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lite/secrets.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lite/strings.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lite/timeouts.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lite/timing.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lite/types.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lite/typing.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/lite/wrappers.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/logs/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/logs/_amalg.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/logs/all.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/logs/base.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/logs/contexts.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/logs/formatters.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/logs/infos.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/logs/levels.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/logs/modules.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/logs/protocols.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/logs/standard.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/logs/std/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/logs/std/configs.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/logs/std/filters.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/logs/std/formatters.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/logs/std/handlers.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/logs/std/json.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/logs/std/loggers.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/logs/std/noisy.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/logs/std/proxy.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/logs/std/records.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/logs/typed/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/logs/typed/bindings.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/logs/typed/contexts.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/logs/typed/types.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/logs/typed/values.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/logs/utils.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/logs/warnings.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/manifests/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/manifests/base.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/manifests/globals.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/manifests/loading.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/manifests/static.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/manifests/types.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/base/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/base/configs.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/base/errors.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/base/funcs.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/base/options.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/base/overrides.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/base/types.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/base/values.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/composite/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/composite/iterables.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/composite/mappings.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/composite/maybes.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/composite/newtypes.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/composite/optionals.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/composite/special.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/composite/wrapped.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/factories/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/factories/invalidate.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/factories/match.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/factories/moduleimport/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/factories/moduleimport/configs.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/factories/multi.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/factories/recursive.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/factories/simple.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/factories/typecache.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/factories/typemap.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/globals.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/naming.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/objects/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/objects/dataclasses.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/objects/helpers.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/objects/marshal.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/objects/metadata.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/objects/namedtuples.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/objects/unmarshal.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/polymorphism/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/polymorphism/marshal.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/polymorphism/unmarshal.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/singular/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/singular/base64.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/singular/datetimes.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/singular/enums.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/singular/numbers.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/singular/primitives.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/singular/uuids.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/trivial/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/trivial/any.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/trivial/forbidden.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/marshal/trivial/nop.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/math/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/math/bits.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/math/c.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/math/fixed.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/math/floats.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/math/histogram.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/math/stats.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/metadata.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/multiprocessing/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/multiprocessing/proxies.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/multiprocessing/spawn.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/os/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/os/atomics.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/os/deathpacts/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/os/deathpacts/base.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/os/deathpacts/heartbeatfile.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/os/deathpacts/pipe.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/os/deathsig.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/os/environ.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/os/fcntl.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/os/filemodes.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/os/files.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/os/forkhooks.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/os/journald.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/os/linux.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/os/mangle.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/os/paths.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/os/pidfiles/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/os/pidfiles/__main__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/os/pidfiles/cli.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/os/pidfiles/manager.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/os/pidfiles/pidfile.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/os/pidfiles/pinning.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/os/signals.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/os/sizes.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/os/temp.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/reflect/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/reflect/inspect.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/reflect/ops.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/reflect/subst.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/reflect/types.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/runmodule.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/secrets/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/secrets/all.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/secrets/crypto.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/secrets/marshal.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/secrets/openssl.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/secrets/pwgen.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/secrets/pwhash.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/secrets/secrets.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/secrets/ssl.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/secrets/subprocesses.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/secrets/tempssl.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/shlex.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sockets/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sockets/addresses.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sockets/bind.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sockets/handlers.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sockets/io.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sockets/ports.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sockets/server/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sockets/server/handlers.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sockets/server/server.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sockets/server/ssl.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sockets/server/threading.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sockets/wait.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/specs/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/specs/jmespath/LICENSE +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/specs/jmespath/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/specs/jmespath/__main__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/specs/jmespath/ast.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/specs/jmespath/cli.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/specs/jmespath/errors.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/specs/jmespath/functions.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/specs/jmespath/lexer.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/specs/jmespath/parser.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/specs/jmespath/scope.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/specs/jmespath/visitor.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/specs/jsonrpc/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/specs/jsonrpc/_marshal.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/specs/jsonrpc/conns.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/specs/jsonrpc/errors.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/specs/jsonrpc/types.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/specs/jsonschema/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/specs/jsonschema/_marshal.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/specs/jsonschema/keywords/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/specs/jsonschema/keywords/base.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/specs/jsonschema/keywords/core.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/specs/jsonschema/keywords/format.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/specs/jsonschema/keywords/metadata.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/specs/jsonschema/keywords/parse.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/specs/jsonschema/keywords/render.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/specs/jsonschema/keywords/validation.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/specs/jsonschema/schemas/LICENSE +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/specs/jsonschema/schemas/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/specs/jsonschema/schemas/draft202012/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/specs/jsonschema/schemas/draft202012/metaschema.json +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/specs/jsonschema/schemas/draft202012/vocabularies/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/specs/jsonschema/schemas/draft202012/vocabularies/applicator.json +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/specs/jsonschema/schemas/draft202012/vocabularies/content.json +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/specs/jsonschema/schemas/draft202012/vocabularies/core.json +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/specs/jsonschema/schemas/draft202012/vocabularies/format-annotation.json +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/specs/jsonschema/schemas/draft202012/vocabularies/format-assertion.json +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/specs/jsonschema/schemas/draft202012/vocabularies/format.json +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/specs/jsonschema/schemas/draft202012/vocabularies/meta-data.json +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/specs/jsonschema/schemas/draft202012/vocabularies/unevaluated.json +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/specs/jsonschema/schemas/draft202012/vocabularies/validation.json +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/specs/jsonschema/types.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/specs/openapi/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/specs/openapi/_marshal.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/specs/openapi/openapi.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sql/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sql/abc.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sql/alchemy/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sql/alchemy/apiadapter.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sql/alchemy/asyncs.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sql/alchemy/duckdb.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sql/alchemy/exprs.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sql/alchemy/secrets.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sql/alchemy/sqlean.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sql/alchemy/tabledefs.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sql/api/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sql/api/_queries.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sql/api/asquery.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sql/api/base.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sql/api/columns.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sql/api/dbapi.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sql/api/errors.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sql/api/funcs.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sql/api/queries.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sql/api/resources.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sql/api/rows.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sql/dbapi.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sql/dbs.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sql/params.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sql/qualifiedname.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sql/queries/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sql/queries/base.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sql/queries/binary.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sql/queries/exprs.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sql/queries/idents.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sql/queries/inserts.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sql/queries/multi.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sql/queries/names.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sql/queries/ops.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sql/queries/params.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sql/queries/relations.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sql/queries/selects.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sql/queries/std.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sql/queries/stmts.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sql/queries/unary.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sql/queries/unions.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sql/tabledefs/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sql/tabledefs/_marshal.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sql/tabledefs/dtypes.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sql/tabledefs/elements.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sql/tabledefs/lower.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sql/tabledefs/tabledefs.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/subprocesses/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/subprocesses/all.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/subprocesses/asyncs.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/subprocesses/base.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/subprocesses/editor.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/subprocesses/maysync.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/subprocesses/run.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/subprocesses/sync.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/subprocesses/utils.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/subprocesses/wrap.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/sync.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/term/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/term/codes.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/term/coloring.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/term/confirm.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/term/progressbar.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/term/vt100/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/term/vt100/c.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/term/vt100/states.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/term/vt100/terminal.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/testing/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/testing/pytest/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/testing/pytest/helpers.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/testing/pytest/inject/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/testing/pytest/inject/harness.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/testing/pytest/marks.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/testing/pytest/plugins/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/testing/pytest/plugins/_registry.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/testing/pytest/plugins/asyncs/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/testing/pytest/plugins/asyncs/backends/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/testing/pytest/plugins/asyncs/backends/asyncio.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/testing/pytest/plugins/asyncs/backends/base.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/testing/pytest/plugins/asyncs/backends/trio.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/testing/pytest/plugins/asyncs/backends/trio_asyncio.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/testing/pytest/plugins/asyncs/consts.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/testing/pytest/plugins/asyncs/fixtures.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/testing/pytest/plugins/asyncs/plugin.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/testing/pytest/plugins/asyncs/utils.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/testing/pytest/plugins/depskip.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/testing/pytest/plugins/logging.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/testing/pytest/plugins/managermarks.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/testing/pytest/plugins/pydevd.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/testing/pytest/plugins/repeat.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/testing/pytest/plugins/skips.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/testing/pytest/plugins/spacing.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/testing/pytest/plugins/switches/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/testing/pytest/plugins/switches/plugin.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/testing/pytest/plugins/switches/switches.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/testing/pytest/plugins/utils.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/testing/pytest/skip.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/testing/testing.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/testing/unittest/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/testing/unittest/__main__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/testing/unittest/loading.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/testing/unittest/main.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/testing/unittest/running.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/testing/unittest/types.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/text/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/text/asdl.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/text/decoding.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/text/delimit.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/text/filecache.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/text/glyphsplit.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/text/go/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/text/go/quoting.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/text/indent.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/text/linecache.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/text/mangle.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/text/minja.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/text/random.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/text/templating.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/typedvalues/__init__.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/typedvalues/accessor.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/typedvalues/collection.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/typedvalues/consumer.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/typedvalues/generic.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/typedvalues/holder.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/typedvalues/of_.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/typedvalues/reflect.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish/typedvalues/values.py +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish.egg-info/dependency_links.txt +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish.egg-info/entry_points.txt +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish.egg-info/requires.txt +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/omlish.egg-info/top_level.txt +0 -0
- {omlish-0.0.0.dev451 → omlish-0.0.0.dev453}/setup.cfg +0 -0
@@ -6,6 +6,11 @@ from .. import lang as _lang
|
|
6
6
|
with _lang.auto_proxy_init(globals()):
|
7
7
|
##
|
8
8
|
|
9
|
+
from .attrregistry import ( # noqa
|
10
|
+
AttrRegistry,
|
11
|
+
AttrRegistryCache,
|
12
|
+
)
|
13
|
+
|
9
14
|
from .bimap import ( # noqa
|
10
15
|
BiMap,
|
11
16
|
|
@@ -64,9 +69,10 @@ with _lang.auto_proxy_init(globals()):
|
|
64
69
|
from . import kv # noqa
|
65
70
|
|
66
71
|
from .mappings import ( # noqa
|
72
|
+
DynamicTypeMap,
|
67
73
|
MissingDict,
|
68
74
|
TypeMap,
|
69
|
-
|
75
|
+
dict_factory,
|
70
76
|
guarded_map_update,
|
71
77
|
multikey_dict,
|
72
78
|
)
|
@@ -0,0 +1,182 @@
|
|
1
|
+
import dataclasses as dc
|
2
|
+
import typing as ta
|
3
|
+
import weakref
|
4
|
+
|
5
|
+
from .. import check
|
6
|
+
from .. import lang
|
7
|
+
from .mappings import dict_factory
|
8
|
+
|
9
|
+
|
10
|
+
T = ta.TypeVar('T')
|
11
|
+
K = ta.TypeVar('K')
|
12
|
+
V = ta.TypeVar('V')
|
13
|
+
|
14
|
+
|
15
|
+
##
|
16
|
+
|
17
|
+
|
18
|
+
class AttrRegistry(ta.Generic[K, V]):
|
19
|
+
"""
|
20
|
+
MRO-honoring class member registry. There are many ways to do this, and this one is attr name based: a class is
|
21
|
+
considered to have objects registered to it based on whether or not they are accessible by a non-shadowed,
|
22
|
+
MRO-resolved named attribute on that class.
|
23
|
+
|
24
|
+
Care must be taken when overriding registered objects from superclasses in subclasses - shadowing the attribute name
|
25
|
+
of the superclass member will not automatically register the new member with the same name to the registry - it must
|
26
|
+
be explicitly registered itself. This is a feature, allowing for selective de-registration of objects in subclasses
|
27
|
+
via name shadowing.
|
28
|
+
"""
|
29
|
+
|
30
|
+
def __init__(
|
31
|
+
self,
|
32
|
+
*,
|
33
|
+
requires_override: bool = False,
|
34
|
+
is_override: ta.Callable[[ta.Any], bool] | None = None,
|
35
|
+
forbid_duplicates: bool = False,
|
36
|
+
identity: bool = False,
|
37
|
+
weak: bool = False,
|
38
|
+
) -> None:
|
39
|
+
super().__init__()
|
40
|
+
|
41
|
+
self._requires_override = requires_override
|
42
|
+
self._is_override = is_override
|
43
|
+
self._forbid_duplicates = forbid_duplicates
|
44
|
+
self._identity = identity
|
45
|
+
self._weak = weak
|
46
|
+
|
47
|
+
self._objs: ta.MutableMapping[K, V] = dict_factory(identity=identity, weak=weak)()
|
48
|
+
self._invalidate_callbacks: list[ta.Callable[[], None]] = []
|
49
|
+
|
50
|
+
def add_invalidate_callback(self, callback: ta.Callable[[], None]) -> None:
|
51
|
+
self._invalidate_callbacks.append(callback)
|
52
|
+
|
53
|
+
def register(self, obj: K, val: V) -> None:
|
54
|
+
check.not_in(obj, self._objs)
|
55
|
+
|
56
|
+
self._objs[obj] = val
|
57
|
+
|
58
|
+
for iv in self._invalidate_callbacks:
|
59
|
+
iv()
|
60
|
+
|
61
|
+
def _lookup(self, obj: ta.Any) -> lang.Maybe[V]:
|
62
|
+
if not self._identity:
|
63
|
+
try:
|
64
|
+
hash(obj)
|
65
|
+
except TypeError:
|
66
|
+
return lang.empty()
|
67
|
+
|
68
|
+
try:
|
69
|
+
val = self._objs[obj]
|
70
|
+
except KeyError:
|
71
|
+
return lang.empty()
|
72
|
+
else:
|
73
|
+
return lang.just(val)
|
74
|
+
|
75
|
+
@dc.dataclass()
|
76
|
+
class DuplicatesForbiddenError(Exception):
|
77
|
+
owner_cls: type
|
78
|
+
instance_cls: type
|
79
|
+
att: str
|
80
|
+
ex_att: str
|
81
|
+
|
82
|
+
def collect(self, instance_cls: type, owner_cls: type | None = None) -> dict[str, tuple[K, V]]:
|
83
|
+
if owner_cls is None:
|
84
|
+
owner_cls = instance_cls
|
85
|
+
|
86
|
+
mro = instance_cls.__mro__[-2::-1]
|
87
|
+
try:
|
88
|
+
mro_pos = mro.index(owner_cls)
|
89
|
+
except ValueError:
|
90
|
+
raise TypeError(f'Owner class {owner_cls} not in mro of instance class {instance_cls}') from None
|
91
|
+
|
92
|
+
mro_dct: dict[str, list[tuple[type, ta.Any]]] = {}
|
93
|
+
for cur_cls in mro[:mro_pos + 1]:
|
94
|
+
for att, obj in cur_cls.__dict__.items():
|
95
|
+
if att not in mro_dct:
|
96
|
+
if not self._lookup(obj).present:
|
97
|
+
continue
|
98
|
+
|
99
|
+
try:
|
100
|
+
lst = mro_dct[att]
|
101
|
+
except KeyError:
|
102
|
+
lst = mro_dct[att] = []
|
103
|
+
lst.append((cur_cls, obj))
|
104
|
+
|
105
|
+
#
|
106
|
+
|
107
|
+
seen: ta.MutableMapping[ta.Any, str] | None = None
|
108
|
+
if self._forbid_duplicates:
|
109
|
+
seen = dict_factory(identity=self._identity)()
|
110
|
+
|
111
|
+
out: dict[str, tuple[K, V]] = {}
|
112
|
+
for att, lst in mro_dct.items():
|
113
|
+
if not lst:
|
114
|
+
raise RuntimeError
|
115
|
+
_, obj = lst[-1]
|
116
|
+
|
117
|
+
if len(lst) > 1:
|
118
|
+
if self._requires_override and not (self._is_override or lang.is_override)(obj):
|
119
|
+
raise lang.RequiresOverrideError(
|
120
|
+
att,
|
121
|
+
instance_cls,
|
122
|
+
lst[-1][0],
|
123
|
+
lst[0][0],
|
124
|
+
)
|
125
|
+
|
126
|
+
if not (mv := self._lookup(obj)).present:
|
127
|
+
continue
|
128
|
+
|
129
|
+
if seen is not None:
|
130
|
+
try:
|
131
|
+
ex_att = seen[obj]
|
132
|
+
except KeyError:
|
133
|
+
pass
|
134
|
+
else:
|
135
|
+
raise AttrRegistry.DuplicatesForbiddenError(owner_cls, instance_cls, att, ex_att) # noqa
|
136
|
+
seen[obj] = att
|
137
|
+
|
138
|
+
out[att] = (obj, mv.must())
|
139
|
+
|
140
|
+
return out
|
141
|
+
|
142
|
+
|
143
|
+
##
|
144
|
+
|
145
|
+
|
146
|
+
class AttrRegistryCache(ta.Generic[K, V, T]):
|
147
|
+
def __init__(
|
148
|
+
self,
|
149
|
+
registry: AttrRegistry[K, V],
|
150
|
+
prepare: ta.Callable[[type, dict[str, tuple[K, V]]], T],
|
151
|
+
) -> None:
|
152
|
+
super().__init__()
|
153
|
+
|
154
|
+
self._registry = registry
|
155
|
+
self._prepare = prepare
|
156
|
+
|
157
|
+
self._cache: dict[ta.Any, T] = {}
|
158
|
+
|
159
|
+
def cache_remove(k, self_ref=weakref.ref(self)):
|
160
|
+
if (ref_self := self_ref()) is not None:
|
161
|
+
cache = ref_self._cache # noqa
|
162
|
+
try:
|
163
|
+
del cache[k]
|
164
|
+
except KeyError:
|
165
|
+
pass
|
166
|
+
|
167
|
+
self._cache_remove = cache_remove
|
168
|
+
|
169
|
+
registry.add_invalidate_callback(self._cache.clear)
|
170
|
+
|
171
|
+
def get(self, instance_cls: type) -> T:
|
172
|
+
cls_ref = weakref.ref(instance_cls)
|
173
|
+
try:
|
174
|
+
return self._cache[cls_ref]
|
175
|
+
except KeyError:
|
176
|
+
pass
|
177
|
+
del cls_ref
|
178
|
+
|
179
|
+
collected = self._registry.collect(instance_cls)
|
180
|
+
out = self._prepare(instance_cls, collected)
|
181
|
+
self._cache[weakref.ref(instance_cls, self._cache_remove)] = out
|
182
|
+
return out
|
@@ -1,6 +1,12 @@
|
|
1
1
|
import typing as ta
|
2
2
|
import weakref
|
3
3
|
|
4
|
+
from .. import lang
|
5
|
+
|
6
|
+
|
7
|
+
with lang.auto_proxy_import(globals()):
|
8
|
+
from . import identity as _identity
|
9
|
+
|
4
10
|
|
5
11
|
T = ta.TypeVar('T')
|
6
12
|
K = ta.TypeVar('K')
|
@@ -141,3 +147,22 @@ class MissingDict(dict[K, V]):
|
|
141
147
|
def __missing__(self, key):
|
142
148
|
v = self[key] = self._missing_fn(key)
|
143
149
|
return v
|
150
|
+
|
151
|
+
|
152
|
+
##
|
153
|
+
|
154
|
+
|
155
|
+
def dict_factory[K, V](
|
156
|
+
*,
|
157
|
+
identity: bool = False,
|
158
|
+
weak: bool = False,
|
159
|
+
) -> ta.Callable[..., ta.MutableMapping[K, V]]:
|
160
|
+
if identity:
|
161
|
+
if weak:
|
162
|
+
return _identity.IdentityWeakKeyDictionary
|
163
|
+
else:
|
164
|
+
return _identity.IdentityKeyDict
|
165
|
+
elif weak:
|
166
|
+
return weakref.WeakKeyDictionary
|
167
|
+
else:
|
168
|
+
return dict
|
@@ -191,9 +191,23 @@ def pycharm_remote_debugger_attach(prd: PycharmRemoteDebugger) -> None:
|
|
191
191
|
else:
|
192
192
|
pydevd_pycharm = _import_pydevd_pycharm(version=version)
|
193
193
|
|
194
|
+
import inspect
|
195
|
+
st_sig = inspect.signature(pydevd_pycharm.settrace)
|
196
|
+
|
197
|
+
kw: dict = {}
|
198
|
+
if 'stdoutToServer' in st_sig.parameters:
|
199
|
+
kw.update(
|
200
|
+
stdoutToServer=True,
|
201
|
+
stderrToServer=True,
|
202
|
+
)
|
203
|
+
else:
|
204
|
+
kw.update(
|
205
|
+
stdout_to_server=True,
|
206
|
+
stderr_to_server=True,
|
207
|
+
)
|
208
|
+
|
194
209
|
pydevd_pycharm.settrace(
|
195
210
|
host,
|
196
211
|
port=prd.port,
|
197
|
-
|
198
|
-
stderrToServer=True,
|
212
|
+
**kw,
|
199
213
|
)
|
@@ -4,13 +4,11 @@ TODO:
|
|
4
4
|
- ALT: A.f(super(), ... ? :/
|
5
5
|
- classmethod/staticmethod
|
6
6
|
"""
|
7
|
-
import contextlib
|
8
7
|
import functools
|
9
8
|
import typing as ta
|
10
|
-
import weakref
|
11
9
|
|
12
10
|
from .. import check
|
13
|
-
from .. import
|
11
|
+
from .. import collections as col
|
14
12
|
from .dispatch import Dispatcher
|
15
13
|
from .impls import get_impl_func_cls_set
|
16
14
|
|
@@ -34,9 +32,8 @@ class Method(ta.Generic[P, R]):
|
|
34
32
|
it must be explicitly `@register`'ed itself. This is a feature, allowing for selective de-registration of
|
35
33
|
implementations in subclasses via name shadowing.
|
36
34
|
|
37
|
-
Methods
|
38
|
-
|
39
|
-
visitors.
|
35
|
+
Methods can choose to allow external installation of implementations outside of direct subclasses. This is to be
|
36
|
+
used *extremely* rarely - basically only in the rare case of externally extensible type hierarchies with visitors.
|
40
37
|
"""
|
41
38
|
|
42
39
|
def __init__(
|
@@ -45,6 +42,7 @@ class Method(ta.Generic[P, R]):
|
|
45
42
|
*,
|
46
43
|
installable: bool = False,
|
47
44
|
requires_override: bool = False,
|
45
|
+
instance_cache: bool = False,
|
48
46
|
) -> None:
|
49
47
|
super().__init__()
|
50
48
|
|
@@ -53,9 +51,16 @@ class Method(ta.Generic[P, R]):
|
|
53
51
|
|
54
52
|
self._func = func
|
55
53
|
self._installable = installable
|
56
|
-
self.
|
54
|
+
self._instance_cache = instance_cache
|
57
55
|
|
58
|
-
self.
|
56
|
+
self._registry: col.AttrRegistry[ta.Callable, Method._Entry] = col.AttrRegistry(
|
57
|
+
requires_override=requires_override,
|
58
|
+
)
|
59
|
+
|
60
|
+
self._cache: col.AttrRegistryCache[ta.Callable, Method._Entry, ta.Callable] = col.AttrRegistryCache(
|
61
|
+
self._registry,
|
62
|
+
self._prepare,
|
63
|
+
)
|
59
64
|
|
60
65
|
# bpo-45678: special-casing for classmethod/staticmethod in Python <=3.9, as functools.update_wrapper doesn't
|
61
66
|
# work properly in singledispatchmethod.__get__ if it is applied to an unbound classmethod/staticmethod
|
@@ -68,19 +73,12 @@ class Method(ta.Generic[P, R]):
|
|
68
73
|
self._is_abstractmethod = getattr(func, '__isabstractmethod__', False) # noqa
|
69
74
|
self.update_wrapper(self)
|
70
75
|
|
71
|
-
self._dispatch_func_cache: dict[ta.Any, ta.Callable] = {}
|
72
|
-
|
73
|
-
def dispatch_func_cache_remove(k, self_ref=weakref.ref(self)):
|
74
|
-
if (ref_self := self_ref()) is not None:
|
75
|
-
cache = ref_self._dispatch_func_cache # noqa
|
76
|
-
with contextlib.suppress(KeyError):
|
77
|
-
del cache[k]
|
78
|
-
|
79
|
-
self._dispatch_func_cache_remove = dispatch_func_cache_remove
|
80
|
-
|
81
76
|
self._owner: type | None = None
|
82
77
|
self._name: str | None = None
|
83
78
|
|
79
|
+
class _Entry:
|
80
|
+
cls_set: frozenset[type]
|
81
|
+
|
84
82
|
def __set_name__(self, owner, name):
|
85
83
|
if self._owner is None:
|
86
84
|
self._owner = owner
|
@@ -102,83 +100,29 @@ class Method(ta.Generic[P, R]):
|
|
102
100
|
|
103
101
|
def register(self, impl: T, cls_set: frozenset[type] | None = None) -> T:
|
104
102
|
check.callable(impl)
|
105
|
-
if impl not in self._impls:
|
106
|
-
self._impls[impl] = cls_set # type: ignore
|
107
|
-
self._dispatch_func_cache.clear()
|
108
|
-
|
109
|
-
return impl
|
110
|
-
|
111
|
-
def _is_impl(self, obj: ta.Any) -> bool:
|
112
|
-
try:
|
113
|
-
hash(obj)
|
114
|
-
except TypeError:
|
115
|
-
return False
|
116
|
-
|
117
|
-
return obj in self._impls
|
118
103
|
|
119
|
-
|
120
|
-
if
|
121
|
-
|
104
|
+
entry = Method._Entry()
|
105
|
+
if cls_set is not None:
|
106
|
+
entry.cls_set = cls_set
|
122
107
|
|
123
|
-
|
124
|
-
try:
|
125
|
-
mro_pos = mro.index(owner_cls)
|
126
|
-
except ValueError:
|
127
|
-
raise TypeError(f'Owner class {owner_cls} not in mro of instance class {instance_cls}') from None
|
108
|
+
self._registry.register(ta.cast(ta.Callable, impl), entry)
|
128
109
|
|
129
|
-
|
130
|
-
for cur_cls in mro[:mro_pos + 1]:
|
131
|
-
for att, obj in cur_cls.__dict__.items():
|
132
|
-
if att not in mro_dct:
|
133
|
-
if not self._is_impl(obj):
|
134
|
-
continue
|
135
|
-
|
136
|
-
try:
|
137
|
-
lst = mro_dct[att]
|
138
|
-
except KeyError:
|
139
|
-
lst = mro_dct[att] = []
|
140
|
-
lst.append((cur_cls, obj))
|
141
|
-
|
142
|
-
#
|
110
|
+
return impl
|
143
111
|
|
112
|
+
def _build_dispatcher(self, collected: ta.Mapping[str, tuple[ta.Callable, _Entry]]) -> Dispatcher[str]:
|
144
113
|
disp: Dispatcher[str] = Dispatcher()
|
145
114
|
|
146
|
-
|
147
|
-
for att, lst in mro_dct.items():
|
148
|
-
if not lst:
|
149
|
-
raise RuntimeError
|
150
|
-
_, obj = lst[-1]
|
151
|
-
|
152
|
-
if len(lst) > 1:
|
153
|
-
if self._requires_override and not lang.is_override(obj):
|
154
|
-
raise lang.RequiresOverrideError(
|
155
|
-
att,
|
156
|
-
instance_cls,
|
157
|
-
lst[-1][0],
|
158
|
-
lst[0][0],
|
159
|
-
)
|
160
|
-
|
161
|
-
if not self._is_impl(obj):
|
162
|
-
continue
|
163
|
-
|
164
|
-
cls_set = self._impls[obj]
|
165
|
-
if cls_set is None:
|
166
|
-
cls_set = get_impl_func_cls_set(obj, arg_offset=1)
|
167
|
-
self._impls[obj] = cls_set
|
168
|
-
|
115
|
+
for a, (f, e) in collected.items():
|
169
116
|
try:
|
170
|
-
|
171
|
-
except
|
172
|
-
|
173
|
-
else:
|
174
|
-
raise TypeError(f'Duplicate impl: {owner_cls} {instance_cls} {att} {ex_att}')
|
175
|
-
seen[obj] = att
|
117
|
+
cls_set = e.cls_set
|
118
|
+
except AttributeError:
|
119
|
+
cls_set = e.cls_set = get_impl_func_cls_set(f, arg_offset=1)
|
176
120
|
|
177
|
-
disp.register(
|
121
|
+
disp.register(a, cls_set)
|
178
122
|
|
179
123
|
return disp
|
180
124
|
|
181
|
-
def
|
125
|
+
def _build_dispatch_func(self, disp: Dispatcher[str]) -> ta.Callable:
|
182
126
|
dispatch = disp.dispatch
|
183
127
|
type_ = type
|
184
128
|
getattr_ = getattr
|
@@ -190,25 +134,16 @@ class Method(ta.Generic[P, R]):
|
|
190
134
|
raise TypeError(f'{func_name} requires at least 1 positional argument')
|
191
135
|
|
192
136
|
if (impl_att := dispatch(type_(args[0]))) is not None:
|
193
|
-
|
194
|
-
return fn(*args, **kwargs)
|
137
|
+
return getattr_(self, impl_att)(*args, **kwargs)
|
195
138
|
|
196
139
|
return base_func.__get__(self)(*args, **kwargs) # noqa
|
197
140
|
|
198
141
|
self.update_wrapper(__call__)
|
199
142
|
return __call__
|
200
143
|
|
201
|
-
def
|
202
|
-
|
203
|
-
|
204
|
-
return self._dispatch_func_cache[cls_ref]
|
205
|
-
except KeyError:
|
206
|
-
pass
|
207
|
-
del cls_ref
|
208
|
-
|
209
|
-
att_disp = self.build_attr_dispatcher(instance_cls)
|
210
|
-
func = self.build_dispatch_func(att_disp)
|
211
|
-
self._dispatch_func_cache[weakref.ref(instance_cls, self._dispatch_func_cache_remove)] = func
|
144
|
+
def _prepare(self, instance_cls: type, collected: ta.Mapping[str, tuple[ta.Callable, _Entry]]) -> ta.Callable:
|
145
|
+
disp = self._build_dispatcher(collected)
|
146
|
+
func = self._build_dispatch_func(disp)
|
212
147
|
return func
|
213
148
|
|
214
149
|
def __get__(self, instance, owner=None):
|
@@ -216,16 +151,21 @@ class Method(ta.Generic[P, R]):
|
|
216
151
|
# FIXME: classmethod/staticmethod
|
217
152
|
return self
|
218
153
|
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
154
|
+
if self._instance_cache:
|
155
|
+
try:
|
156
|
+
return instance.__dict__[self._name]
|
157
|
+
except KeyError:
|
158
|
+
pass
|
159
|
+
|
160
|
+
bound = self._cache.get(type(instance)).__get__(instance, owner) # noqa
|
161
|
+
|
162
|
+
if self._instance_cache:
|
163
|
+
instance.__dict__[self._name] = bound
|
164
|
+
|
165
|
+
return bound
|
225
166
|
|
226
167
|
def __call__(self, *args: P.args, **kwargs: P.kwargs) -> R:
|
227
168
|
instance, *rest = args
|
228
|
-
instance_cls = type(instance)
|
229
169
|
|
230
170
|
# if instance_cls is super:
|
231
171
|
# owner = instance.__self_class__.__mro__[instance.__self_class__.__mro__.index(instance.__thisclass__) + 1]
|
@@ -233,55 +173,25 @@ class Method(ta.Generic[P, R]):
|
|
233
173
|
# func = self.build_dispatch_func(att_disp)
|
234
174
|
# return func.__get__(instance, instance.__thisclass__)(*rest, **kwargs)
|
235
175
|
|
236
|
-
|
237
|
-
func = self._dispatch_func_cache[weakref.ref(instance_cls)]
|
238
|
-
except KeyError:
|
239
|
-
func = self.get_dispatch_func(instance_cls)
|
240
|
-
return func.__get__(instance)(*rest, **kwargs) # noqa
|
176
|
+
return self.__get__(instance)(*rest, **kwargs)
|
241
177
|
|
242
178
|
|
243
179
|
##
|
244
180
|
|
245
181
|
|
246
|
-
@ta.overload
|
247
|
-
def method(
|
248
|
-
func: ta.Callable[P, R],
|
249
|
-
/,
|
250
|
-
*,
|
251
|
-
installable: bool = False,
|
252
|
-
requires_override: bool = False,
|
253
|
-
) -> Method[P, R]: # noqa
|
254
|
-
...
|
255
|
-
|
256
|
-
|
257
|
-
@ta.overload
|
258
182
|
def method(
|
259
|
-
func: None = None,
|
260
|
-
/,
|
261
183
|
*,
|
262
184
|
installable: bool = False,
|
263
185
|
requires_override: bool = False,
|
186
|
+
instance_cache: bool = False,
|
264
187
|
) -> ta.Callable[[ta.Callable[P, R]], Method[P, R]]: # noqa
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
def method(
|
269
|
-
func=None,
|
270
|
-
/,
|
271
|
-
*,
|
272
|
-
installable=False,
|
273
|
-
requires_override=False,
|
274
|
-
):
|
275
|
-
kw = dict(
|
188
|
+
return functools.partial(
|
189
|
+
Method, # type: ignore[arg-type]
|
276
190
|
installable=installable,
|
277
191
|
requires_override=requires_override,
|
192
|
+
instance_cache=instance_cache,
|
278
193
|
)
|
279
194
|
|
280
|
-
if func is None:
|
281
|
-
return functools.partial(Method, **kw)
|
282
|
-
|
283
|
-
return Method(func, **kw)
|
284
|
-
|
285
195
|
|
286
196
|
#
|
287
197
|
|
@@ -305,7 +215,7 @@ def install_method(
|
|
305
215
|
if on is None:
|
306
216
|
cls = owner
|
307
217
|
else:
|
308
|
-
cls = check.issubclass(on, owner)
|
218
|
+
cls = check.issubclass(on, owner) # noqa
|
309
219
|
|
310
220
|
check.arg(not hasattr(cls, a))
|
311
221
|
setattr(cls, a, fn)
|