omlish 0.0.0.dev98__tar.gz → 0.0.0.dev99__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {omlish-0.0.0.dev98/omlish.egg-info → omlish-0.0.0.dev99}/PKG-INFO +5 -5
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/__about__.py +4 -4
- omlish-0.0.0.dev99/omlish/cached.py +19 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/collections/__init__.py +7 -0
- omlish-0.0.0.dev99/omlish/collections/hasheq.py +155 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/fnpairs.py +8 -10
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/lang/__init__.py +1 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/lang/classes/__init__.py +1 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/lang/classes/abstract.py +13 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99/omlish.egg-info}/PKG-INFO +5 -5
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish.egg-info/SOURCES.txt +1 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish.egg-info/requires.txt +4 -4
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/pyproject.toml +5 -5
- omlish-0.0.0.dev98/omlish/cached.py +0 -8
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/LICENSE +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/MANIFEST.in +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/README.rst +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/.manifests.json +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/BufferedTokenStream.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/CommonTokenFactory.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/CommonTokenStream.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/FileStream.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/InputStream.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/IntervalSet.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/LL1Analyzer.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/Lexer.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/ListTokenSource.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/Parser.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/ParserInterpreter.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/ParserRuleContext.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/PredictionContext.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/Recognizer.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/RuleContext.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/StdinStream.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/Token.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/TokenStreamRewriter.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/Utils.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/_pygrun.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/atn/ATN.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/atn/ATNConfig.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/atn/ATNConfigSet.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/atn/ATNDeserializationOptions.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/atn/ATNDeserializer.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/atn/ATNSimulator.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/atn/ATNState.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/atn/ATNType.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/atn/LexerATNSimulator.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/atn/LexerAction.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/atn/LexerActionExecutor.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/atn/ParserATNSimulator.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/atn/PredictionMode.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/atn/SemanticContext.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/atn/Transition.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/atn/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/dfa/DFA.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/dfa/DFASerializer.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/dfa/DFAState.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/dfa/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/error/DiagnosticErrorListener.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/error/ErrorListener.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/error/ErrorStrategy.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/error/Errors.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/error/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/tree/Chunk.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/tree/ParseTreeMatch.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/tree/ParseTreePattern.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/tree/ParseTreePatternMatcher.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/tree/RuleTagToken.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/tree/TokenTagToken.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/tree/Tree.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/tree/Trees.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/tree/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/xpath/XPath.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/xpath/XPathLexer.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/xpath/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/argparse.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/asyncs/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/asyncs/anyio.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/asyncs/asyncio.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/asyncs/asyncs.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/asyncs/bridge.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/asyncs/flavors.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/asyncs/trio.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/asyncs/trio_asyncio.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/bootstrap/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/bootstrap/__main__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/bootstrap/base.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/bootstrap/diag.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/bootstrap/harness.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/bootstrap/main.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/bootstrap/marshal.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/bootstrap/sys.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/c3.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/check.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/collections/_abc.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/collections/_io_abc.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/collections/cache/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/collections/cache/descriptor.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/collections/cache/impl.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/collections/cache/types.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/collections/coerce.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/collections/exceptions.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/collections/frozen.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/collections/identity.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/collections/indexed.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/collections/mappings.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/collections/ordered.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/collections/persistent.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/collections/skiplist.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/collections/sorted.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/collections/treap.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/collections/treapmap.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/collections/unmodifiable.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/collections/utils.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/concurrent/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/concurrent/executors.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/concurrent/futures.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/concurrent/threadlets.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/configs/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/configs/classes.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/configs/flattening.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/configs/strings.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/dataclasses/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/dataclasses/impl/LICENSE +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/dataclasses/impl/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/dataclasses/impl/api.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/dataclasses/impl/as_.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/dataclasses/impl/copy.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/dataclasses/impl/descriptors.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/dataclasses/impl/exceptions.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/dataclasses/impl/fields.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/dataclasses/impl/frozen.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/dataclasses/impl/hashing.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/dataclasses/impl/init.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/dataclasses/impl/internals.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/dataclasses/impl/main.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/dataclasses/impl/metaclass.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/dataclasses/impl/metadata.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/dataclasses/impl/order.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/dataclasses/impl/params.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/dataclasses/impl/processing.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/dataclasses/impl/reflect.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/dataclasses/impl/replace.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/dataclasses/impl/repr.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/dataclasses/impl/simple.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/dataclasses/impl/slots.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/dataclasses/impl/utils.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/dataclasses/utils.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/datetimes.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/defs.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/diag/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/diag/_pycharm/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/diag/_pycharm/runhack.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/diag/asts.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/diag/debug.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/diag/procfs.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/diag/procstats.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/diag/ps.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/diag/pycharm/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/diag/pycharm/cli.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/diag/pycharm/pycharm.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/diag/pydevd.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/diag/replserver/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/diag/replserver/__main__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/diag/replserver/console.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/diag/replserver/server.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/diag/threads.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/dispatch/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/dispatch/_dispatch2.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/dispatch/_dispatch3.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/dispatch/dispatch.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/dispatch/functions.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/dispatch/methods.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/docker/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/docker/cli.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/docker/compose.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/docker/helpers.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/docker/hub.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/docker/manifests.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/dynamic.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/fnpipes.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/formats/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/formats/dotenv.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/formats/json/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/formats/json/backends/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/formats/json/backends/base.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/formats/json/backends/default.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/formats/json/backends/jiter.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/formats/json/backends/orjson.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/formats/json/backends/std.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/formats/json/backends/ujson.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/formats/json/cli/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/formats/json/cli/__main__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/formats/json/cli/cli.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/formats/json/cli/formats.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/formats/json/consts.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/formats/json/encoding.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/formats/json/json.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/formats/json/render.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/formats/json/stream/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/formats/json/stream/build.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/formats/json/stream/lex.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/formats/json/stream/parse.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/formats/json/stream/render.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/formats/props.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/formats/xml.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/formats/yaml.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/genmachine.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/graphs/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/graphs/dags.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/graphs/domination.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/graphs/dot/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/graphs/dot/items.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/graphs/dot/make.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/graphs/dot/rendering.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/graphs/dot/utils.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/graphs/trees.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/http/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/http/asgi.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/http/clients.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/http/consts.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/http/cookies.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/http/dates.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/http/encodings.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/http/headers.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/http/json.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/http/multipart.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/http/sessions.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/http/sse.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/http/wsgi.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/inject/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/inject/binder.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/inject/bindings.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/inject/eagers.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/inject/elements.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/inject/exceptions.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/inject/impl/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/inject/impl/bindings.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/inject/impl/elements.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/inject/impl/injector.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/inject/impl/inspect.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/inject/impl/multis.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/inject/impl/origins.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/inject/impl/privates.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/inject/impl/providers.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/inject/impl/proxy.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/inject/impl/scopes.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/inject/injector.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/inject/inspect.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/inject/keys.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/inject/listeners.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/inject/managed.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/inject/multis.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/inject/origins.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/inject/overrides.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/inject/privates.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/inject/providers.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/inject/scopes.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/inject/types.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/inject/utils.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/iterators.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/lang/cached.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/lang/classes/restrict.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/lang/classes/simple.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/lang/classes/virtual.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/lang/clsdct.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/lang/cmp.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/lang/contextmanagers.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/lang/datetimes.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/lang/descriptors.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/lang/exceptions.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/lang/functions.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/lang/imports.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/lang/iterables.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/lang/maybes.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/lang/objects.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/lang/resolving.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/lang/resources.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/lang/strings.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/lang/sys.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/lang/timeouts.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/lang/typing.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/libc.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/lifecycles/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/lifecycles/abstract.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/lifecycles/base.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/lifecycles/contextmanagers.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/lifecycles/controller.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/lifecycles/manager.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/lifecycles/states.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/lifecycles/transitions.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/lite/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/lite/cached.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/lite/check.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/lite/contextmanagers.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/lite/io.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/lite/json.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/lite/logs.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/lite/marshal.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/lite/pidfile.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/lite/reflect.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/lite/runtime.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/lite/secrets.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/lite/strings.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/lite/subprocesses.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/logs/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/logs/_abc.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/logs/configs.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/logs/formatters.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/logs/handlers.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/logs/noisy.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/logs/utils.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/marshal/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/marshal/any.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/marshal/base.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/marshal/base64.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/marshal/dataclasses.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/marshal/datetimes.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/marshal/enums.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/marshal/exceptions.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/marshal/factories.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/marshal/forbidden.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/marshal/global_.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/marshal/helpers.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/marshal/iterables.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/marshal/mappings.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/marshal/maybes.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/marshal/naming.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/marshal/newtypes.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/marshal/nop.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/marshal/numbers.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/marshal/objects.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/marshal/optionals.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/marshal/polymorphism.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/marshal/primitives.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/marshal/registries.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/marshal/standard.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/marshal/unions.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/marshal/utils.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/marshal/uuids.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/marshal/values.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/matchfns.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/math/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/math/bits.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/math/floats.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/math/stats.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/multiprocessing.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/os.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/reflect/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/reflect/isinstance.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/reflect/ops.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/reflect/subst.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/reflect/types.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/runmodule.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/secrets/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/secrets/crypto.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/secrets/marshal.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/secrets/openssl.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/secrets/pwgen.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/secrets/pwhash.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/secrets/secrets.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/secrets/subprocesses.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/specs/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/specs/jmespath/LICENSE +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/specs/jmespath/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/specs/jmespath/__main__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/specs/jmespath/ast.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/specs/jmespath/cli.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/specs/jmespath/exceptions.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/specs/jmespath/functions.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/specs/jmespath/lexer.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/specs/jmespath/parser.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/specs/jmespath/scope.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/specs/jmespath/visitor.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/specs/jsonrpc/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/specs/jsonrpc/errors.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/specs/jsonrpc/marshal.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/specs/jsonrpc/types.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/specs/jsonschema/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/specs/jsonschema/keywords/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/specs/jsonschema/keywords/base.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/specs/jsonschema/keywords/core.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/specs/jsonschema/keywords/metadata.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/specs/jsonschema/keywords/parse.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/specs/jsonschema/keywords/render.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/specs/jsonschema/keywords/validation.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/specs/jsonschema/schemas/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/specs/jsonschema/schemas/draft202012/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/specs/jsonschema/schemas/draft202012/metaschema.json +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/specs/jsonschema/schemas/draft202012/vocabularies/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/specs/jsonschema/schemas/draft202012/vocabularies/applicator.json +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/specs/jsonschema/schemas/draft202012/vocabularies/content.json +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/specs/jsonschema/schemas/draft202012/vocabularies/core.json +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/specs/jsonschema/schemas/draft202012/vocabularies/format-annotation.json +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/specs/jsonschema/schemas/draft202012/vocabularies/format-assertion.json +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/specs/jsonschema/schemas/draft202012/vocabularies/format.json +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/specs/jsonschema/schemas/draft202012/vocabularies/meta-data.json +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/specs/jsonschema/schemas/draft202012/vocabularies/unevaluated.json +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/specs/jsonschema/schemas/draft202012/vocabularies/validation.json +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/specs/jsonschema/types.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/specs/openapi/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/specs/openapi/marshal.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/specs/openapi/openapi.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/sql/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/sql/_abc.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/sql/alchemy/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/sql/alchemy/asyncs.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/sql/alchemy/duckdb.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/sql/alchemy/exprs.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/sql/alchemy/secrets.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/sql/alchemy/sqlean.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/sql/dbapi.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/sql/dbs.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/sql/params.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/sql/qualifiedname.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/sql/queries/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/sql/queries/base.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/sql/queries/binary.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/sql/queries/building.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/sql/queries/exprs.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/sql/queries/idents.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/sql/queries/inserts.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/sql/queries/marshal.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/sql/queries/multi.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/sql/queries/names.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/sql/queries/ops.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/sql/queries/relations.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/sql/queries/rendering.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/sql/queries/selects.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/sql/queries/stmts.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/sql/queries/unary.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/sql/tabledefs/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/sql/tabledefs/alchemy.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/sql/tabledefs/dtypes.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/sql/tabledefs/elements.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/sql/tabledefs/lower.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/sql/tabledefs/marshal.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/sql/tabledefs/tabledefs.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/sync.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/term.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/testing/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/testing/pytest/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/testing/pytest/helpers.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/testing/pytest/inject/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/testing/pytest/inject/harness.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/testing/pytest/marks.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/testing/pytest/plugins/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/testing/pytest/plugins/_registry.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/testing/pytest/plugins/asyncs.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/testing/pytest/plugins/depskip.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/testing/pytest/plugins/logging.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/testing/pytest/plugins/managermarks.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/testing/pytest/plugins/pydevd.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/testing/pytest/plugins/repeat.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/testing/pytest/plugins/skips.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/testing/pytest/plugins/spacing.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/testing/pytest/plugins/switches.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/testing/pytest/plugins/utils.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/testing/pytest/skip.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/testing/testing.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/text/__init__.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/text/asdl.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/text/delimit.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/text/glyphsplit.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/text/indent.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/text/parts.py +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish.egg-info/dependency_links.txt +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish.egg-info/entry_points.txt +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish.egg-info/top_level.txt +0 -0
- {omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: omlish
|
3
|
-
Version: 0.0.0.
|
3
|
+
Version: 0.0.0.dev99
|
4
4
|
Summary: omlish
|
5
5
|
Author: wrmsr
|
6
6
|
License: BSD-3-Clause
|
@@ -20,7 +20,7 @@ Requires-Dist: trio~=0.27; extra == "all"
|
|
20
20
|
Requires-Dist: trio-asyncio~=0.15; extra == "all"
|
21
21
|
Requires-Dist: lz4~=4.3; extra == "all"
|
22
22
|
Requires-Dist: python-snappy~=0.7; extra == "all"
|
23
|
-
Requires-Dist:
|
23
|
+
Requires-Dist: zstandard~=0.23; extra == "all"
|
24
24
|
Requires-Dist: asttokens~=2.4; extra == "all"
|
25
25
|
Requires-Dist: executing~=2.1; extra == "all"
|
26
26
|
Requires-Dist: psutil~=6.0; extra == "all"
|
@@ -29,7 +29,7 @@ Requires-Dist: ujson~=5.10; extra == "all"
|
|
29
29
|
Requires-Dist: json5~=0.9; extra == "all"
|
30
30
|
Requires-Dist: pyyaml~=6.0; extra == "all"
|
31
31
|
Requires-Dist: cbor2~=5.6; extra == "all"
|
32
|
-
Requires-Dist: cloudpickle~=3.
|
32
|
+
Requires-Dist: cloudpickle~=3.1; extra == "all"
|
33
33
|
Requires-Dist: httpx[http2]~=0.27; extra == "all"
|
34
34
|
Requires-Dist: wrapt~=1.14; extra == "all"
|
35
35
|
Requires-Dist: cryptography~=43.0; extra == "all"
|
@@ -59,7 +59,7 @@ Requires-Dist: trio-asyncio~=0.15; extra == "async"
|
|
59
59
|
Provides-Extra: compress
|
60
60
|
Requires-Dist: lz4~=4.3; extra == "compress"
|
61
61
|
Requires-Dist: python-snappy~=0.7; extra == "compress"
|
62
|
-
Requires-Dist:
|
62
|
+
Requires-Dist: zstandard~=0.23; extra == "compress"
|
63
63
|
Provides-Extra: diag
|
64
64
|
Requires-Dist: asttokens~=2.4; extra == "diag"
|
65
65
|
Requires-Dist: executing~=2.1; extra == "diag"
|
@@ -70,7 +70,7 @@ Requires-Dist: ujson~=5.10; extra == "formats"
|
|
70
70
|
Requires-Dist: json5~=0.9; extra == "formats"
|
71
71
|
Requires-Dist: pyyaml~=6.0; extra == "formats"
|
72
72
|
Requires-Dist: cbor2~=5.6; extra == "formats"
|
73
|
-
Requires-Dist: cloudpickle~=3.
|
73
|
+
Requires-Dist: cloudpickle~=3.1; extra == "formats"
|
74
74
|
Provides-Extra: http
|
75
75
|
Requires-Dist: httpx[http2]~=0.27; extra == "http"
|
76
76
|
Provides-Extra: misc
|
@@ -1,5 +1,5 @@
|
|
1
|
-
__version__ = '0.0.0.
|
2
|
-
__revision__ = '
|
1
|
+
__version__ = '0.0.0.dev99'
|
2
|
+
__revision__ = '68bd172d5acce0086e88d20a01fe294fc1fc390c'
|
3
3
|
|
4
4
|
|
5
5
|
#
|
@@ -47,7 +47,7 @@ class Project(ProjectBase):
|
|
47
47
|
|
48
48
|
'python-snappy ~= 0.7',
|
49
49
|
|
50
|
-
'
|
50
|
+
'zstandard ~= 0.23',
|
51
51
|
],
|
52
52
|
|
53
53
|
'diag': [
|
@@ -67,7 +67,7 @@ class Project(ProjectBase):
|
|
67
67
|
|
68
68
|
'cbor2 ~= 5.6',
|
69
69
|
|
70
|
-
'cloudpickle ~= 3.
|
70
|
+
'cloudpickle ~= 3.1',
|
71
71
|
],
|
72
72
|
|
73
73
|
'http': [
|
@@ -0,0 +1,19 @@
|
|
1
|
+
"""
|
2
|
+
This module solely exists for import convenience - tools will tend to resolve the imported 'property' as if it were from
|
3
|
+
builtins and thus not distinguish it from a normal property.
|
4
|
+
|
5
|
+
from omlish import cached
|
6
|
+
|
7
|
+
class C:
|
8
|
+
@cached.property
|
9
|
+
def p(self) -> str: ...
|
10
|
+
|
11
|
+
"""
|
12
|
+
from .lang.cached import _CachedProperty # noqa
|
13
|
+
from .lang.cached import cached_function
|
14
|
+
|
15
|
+
function = cached_function
|
16
|
+
|
17
|
+
property = property # noqa
|
18
|
+
|
19
|
+
globals()['property'] = _CachedProperty # noqa
|
@@ -0,0 +1,155 @@
|
|
1
|
+
"""
|
2
|
+
TODO:
|
3
|
+
- order preserving / linked list?
|
4
|
+
- ItemsView
|
5
|
+
"""
|
6
|
+
import abc
|
7
|
+
import dataclasses as dc
|
8
|
+
import typing as ta
|
9
|
+
|
10
|
+
from .. import lang
|
11
|
+
from .mappings import yield_dict_init
|
12
|
+
|
13
|
+
|
14
|
+
K = ta.TypeVar('K')
|
15
|
+
V = ta.TypeVar('V')
|
16
|
+
K2 = ta.TypeVar('K2')
|
17
|
+
V2 = ta.TypeVar('V2')
|
18
|
+
|
19
|
+
|
20
|
+
class HashEq(lang.Abstract, ta.Generic[K]):
|
21
|
+
@abc.abstractmethod
|
22
|
+
def hash(self, k: K) -> int:
|
23
|
+
raise NotImplementedError
|
24
|
+
|
25
|
+
@abc.abstractmethod
|
26
|
+
def eq(self, l: K, r: K) -> bool:
|
27
|
+
raise NotImplementedError
|
28
|
+
|
29
|
+
|
30
|
+
@lang.unabstract_class([
|
31
|
+
('hash', '_hash'),
|
32
|
+
('eq', '_eq'),
|
33
|
+
])
|
34
|
+
@dc.dataclass(frozen=True)
|
35
|
+
class HashEq_(ta.Generic[K]): # noqa
|
36
|
+
hash: ta.Callable[[K], int]
|
37
|
+
eq: ta.Callable[[K, K], bool]
|
38
|
+
|
39
|
+
def _hash(self, k: K) -> int:
|
40
|
+
return self.hash(k)
|
41
|
+
|
42
|
+
def _eq(self, l: K, r: K) -> bool:
|
43
|
+
return self.eq(l, r)
|
44
|
+
|
45
|
+
|
46
|
+
class hash_eq(HashEq[K], lang.NotInstantiable, lang.Final): # noqa
|
47
|
+
"""Workaround for PEP 695 support."""
|
48
|
+
|
49
|
+
def __new__( # type: ignore[misc]
|
50
|
+
cls,
|
51
|
+
hash: ta.Callable[[K], int], # noqa
|
52
|
+
eq: ta.Callable[[K, K], bool],
|
53
|
+
) -> HashEq[K]:
|
54
|
+
return HashEq_(hash, eq) # type: ignore
|
55
|
+
|
56
|
+
def hash(self, k: K) -> int:
|
57
|
+
raise TypeError
|
58
|
+
|
59
|
+
def eq(self, l: K, r: K) -> bool:
|
60
|
+
raise TypeError
|
61
|
+
|
62
|
+
|
63
|
+
class HashEqMap(ta.Mapping[K, V]):
|
64
|
+
class _Node(ta.NamedTuple, ta.Generic[K2, V2]):
|
65
|
+
k: K2
|
66
|
+
v: V2
|
67
|
+
h: int
|
68
|
+
|
69
|
+
def __init__(self, hash_eq: HashEq[K], *args: ta.Any, **kwargs: ta.Any) -> None:
|
70
|
+
super().__init__()
|
71
|
+
|
72
|
+
self._hash_eq = hash_eq
|
73
|
+
self._dct: dict[int, list[HashEqMap._Node[K, V]]] = {}
|
74
|
+
self._len = 0
|
75
|
+
|
76
|
+
for k, v in yield_dict_init(*args, **kwargs):
|
77
|
+
self[k] = v
|
78
|
+
|
79
|
+
def __len__(self) -> int:
|
80
|
+
return self._len
|
81
|
+
|
82
|
+
def __contains__(self, k: K) -> bool: # type: ignore[override]
|
83
|
+
h = self._hash_eq.hash(k)
|
84
|
+
try:
|
85
|
+
l = self._dct[h]
|
86
|
+
except KeyError:
|
87
|
+
return False
|
88
|
+
return any(self._hash_eq.eq(k, e.k) for e in l)
|
89
|
+
|
90
|
+
def __getitem__(self, k: K) -> V:
|
91
|
+
h = self._hash_eq.hash(k)
|
92
|
+
l = self._dct[h]
|
93
|
+
for e in l:
|
94
|
+
if self._hash_eq.eq(k, e.k):
|
95
|
+
return e.v
|
96
|
+
raise KeyError(k)
|
97
|
+
|
98
|
+
def __setitem__(self, k: K, v: V) -> None:
|
99
|
+
h = self._hash_eq.hash(k)
|
100
|
+
n = HashEqMap._Node(k, v, h)
|
101
|
+
|
102
|
+
try:
|
103
|
+
l = self._dct[h]
|
104
|
+
except KeyError:
|
105
|
+
l = [n]
|
106
|
+
self._dct[h] = l
|
107
|
+
self._len += 1
|
108
|
+
return
|
109
|
+
|
110
|
+
for i, e in enumerate(l):
|
111
|
+
if self._hash_eq.eq(k, e.k):
|
112
|
+
l[i] = n
|
113
|
+
return
|
114
|
+
|
115
|
+
l.append(n)
|
116
|
+
self._len += 1
|
117
|
+
|
118
|
+
def __delitem__(self, k: K) -> None:
|
119
|
+
h = self._hash_eq.hash(k)
|
120
|
+
l = self._dct[h]
|
121
|
+
for i, e in enumerate(l):
|
122
|
+
if self._hash_eq.eq(k, e.k):
|
123
|
+
del l[i]
|
124
|
+
self._len -= 1
|
125
|
+
return
|
126
|
+
raise KeyError(k)
|
127
|
+
|
128
|
+
def __iter__(self) -> ta.Iterator[K]:
|
129
|
+
return self.iterkeys()
|
130
|
+
|
131
|
+
def iterkeys(self) -> ta.Iterator[K]:
|
132
|
+
for l in self._dct.values():
|
133
|
+
for e in l:
|
134
|
+
yield e.k
|
135
|
+
|
136
|
+
def itervalues(self) -> ta.Iterator[V]:
|
137
|
+
for l in self._dct.values():
|
138
|
+
for e in l:
|
139
|
+
yield e.v
|
140
|
+
|
141
|
+
def iteritems(self) -> ta.Iterator[tuple[K, V]]:
|
142
|
+
for l in self._dct.values():
|
143
|
+
for e in l:
|
144
|
+
yield (e.k, e.v)
|
145
|
+
|
146
|
+
# FIXME:
|
147
|
+
|
148
|
+
def keys(self) -> ta.Iterable[K]: # type: ignore[override]
|
149
|
+
return lang.itergen(self.iterkeys)
|
150
|
+
|
151
|
+
def values(self) -> ta.Iterable[V]: # type: ignore[override]
|
152
|
+
return lang.itergen(self.itervalues)
|
153
|
+
|
154
|
+
def items(self) -> ta.Iterable[tuple[K, V]]: # type: ignore[override]
|
155
|
+
return lang.itergen(self.iteritems)
|
@@ -38,7 +38,7 @@ if ta.TYPE_CHECKING:
|
|
38
38
|
import lz4.frame as _lz4_frame
|
39
39
|
import snappy as _snappy
|
40
40
|
import yaml as _yaml
|
41
|
-
import
|
41
|
+
import zstandard as _zstandard
|
42
42
|
|
43
43
|
else:
|
44
44
|
_bz2 = lang.proxy_import('bz2')
|
@@ -55,7 +55,7 @@ else:
|
|
55
55
|
_lz4_frame = lang.proxy_import('lz4.frame')
|
56
56
|
_snappy = lang.proxy_import('snappy')
|
57
57
|
_yaml = lang.proxy_import('yaml')
|
58
|
-
|
58
|
+
_zstandard = lang.proxy_import('zstandard')
|
59
59
|
|
60
60
|
|
61
61
|
##
|
@@ -92,6 +92,10 @@ class FnPair(ta.Generic[F, T], abc.ABC):
|
|
92
92
|
##
|
93
93
|
|
94
94
|
|
95
|
+
@lang.unabstract_class([
|
96
|
+
('forward', '_forward'),
|
97
|
+
('backward', 'backward'),
|
98
|
+
])
|
95
99
|
@dc.dataclass(frozen=True)
|
96
100
|
class Simple(FnPair[F, T]):
|
97
101
|
forward: ta.Callable[[F], T] # type: ignore
|
@@ -104,12 +108,6 @@ class Simple(FnPair[F, T]):
|
|
104
108
|
return self.backward(t)
|
105
109
|
|
106
110
|
|
107
|
-
# HACK: ABC workaround. Our dataclasses handle this with `override=True` but we don't want to dep that in here.
|
108
|
-
Simple.forward = Simple._forward # type: ignore # noqa
|
109
|
-
Simple.backward = Simple._backward # type: ignore # noqa
|
110
|
-
Simple.__abstractmethods__ = frozenset() # noqa
|
111
|
-
|
112
|
-
|
113
111
|
of = Simple
|
114
112
|
|
115
113
|
NOP: FnPair[ta.Any, ta.Any] = of(lang.identity, lang.identity)
|
@@ -356,10 +354,10 @@ class Snappy(Compression):
|
|
356
354
|
@_register_extension('zstd')
|
357
355
|
class Zstd(Compression):
|
358
356
|
def forward(self, f: bytes) -> bytes:
|
359
|
-
return
|
357
|
+
return _zstandard.compress(f)
|
360
358
|
|
361
359
|
def backward(self, t: bytes) -> bytes:
|
362
|
-
return
|
360
|
+
return _zstandard.decompress(t)
|
363
361
|
|
364
362
|
|
365
363
|
##
|
@@ -72,3 +72,16 @@ def is_abstract_class(obj: ta.Any) -> bool:
|
|
72
72
|
|
73
73
|
def is_abstract(obj: ta.Any) -> bool:
|
74
74
|
return is_abstract_method(obj) or is_abstract_class(obj)
|
75
|
+
|
76
|
+
|
77
|
+
def unabstract_class(
|
78
|
+
impls: ta.Iterable[tuple[str, ta.Any]],
|
79
|
+
) -> ta.Callable[[type[T]], type[T]]:
|
80
|
+
def inner(cls):
|
81
|
+
for name, impl in impls:
|
82
|
+
if isinstance(impl, str):
|
83
|
+
impl = getattr(cls, impl)
|
84
|
+
setattr(cls, name, impl)
|
85
|
+
setattr(cls, '__abstractmethods__', frozenset())
|
86
|
+
return cls
|
87
|
+
return inner
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: omlish
|
3
|
-
Version: 0.0.0.
|
3
|
+
Version: 0.0.0.dev99
|
4
4
|
Summary: omlish
|
5
5
|
Author: wrmsr
|
6
6
|
License: BSD-3-Clause
|
@@ -20,7 +20,7 @@ Requires-Dist: trio~=0.27; extra == "all"
|
|
20
20
|
Requires-Dist: trio-asyncio~=0.15; extra == "all"
|
21
21
|
Requires-Dist: lz4~=4.3; extra == "all"
|
22
22
|
Requires-Dist: python-snappy~=0.7; extra == "all"
|
23
|
-
Requires-Dist:
|
23
|
+
Requires-Dist: zstandard~=0.23; extra == "all"
|
24
24
|
Requires-Dist: asttokens~=2.4; extra == "all"
|
25
25
|
Requires-Dist: executing~=2.1; extra == "all"
|
26
26
|
Requires-Dist: psutil~=6.0; extra == "all"
|
@@ -29,7 +29,7 @@ Requires-Dist: ujson~=5.10; extra == "all"
|
|
29
29
|
Requires-Dist: json5~=0.9; extra == "all"
|
30
30
|
Requires-Dist: pyyaml~=6.0; extra == "all"
|
31
31
|
Requires-Dist: cbor2~=5.6; extra == "all"
|
32
|
-
Requires-Dist: cloudpickle~=3.
|
32
|
+
Requires-Dist: cloudpickle~=3.1; extra == "all"
|
33
33
|
Requires-Dist: httpx[http2]~=0.27; extra == "all"
|
34
34
|
Requires-Dist: wrapt~=1.14; extra == "all"
|
35
35
|
Requires-Dist: cryptography~=43.0; extra == "all"
|
@@ -59,7 +59,7 @@ Requires-Dist: trio-asyncio~=0.15; extra == "async"
|
|
59
59
|
Provides-Extra: compress
|
60
60
|
Requires-Dist: lz4~=4.3; extra == "compress"
|
61
61
|
Requires-Dist: python-snappy~=0.7; extra == "compress"
|
62
|
-
Requires-Dist:
|
62
|
+
Requires-Dist: zstandard~=0.23; extra == "compress"
|
63
63
|
Provides-Extra: diag
|
64
64
|
Requires-Dist: asttokens~=2.4; extra == "diag"
|
65
65
|
Requires-Dist: executing~=2.1; extra == "diag"
|
@@ -70,7 +70,7 @@ Requires-Dist: ujson~=5.10; extra == "formats"
|
|
70
70
|
Requires-Dist: json5~=0.9; extra == "formats"
|
71
71
|
Requires-Dist: pyyaml~=6.0; extra == "formats"
|
72
72
|
Requires-Dist: cbor2~=5.6; extra == "formats"
|
73
|
-
Requires-Dist: cloudpickle~=3.
|
73
|
+
Requires-Dist: cloudpickle~=3.1; extra == "formats"
|
74
74
|
Provides-Extra: http
|
75
75
|
Requires-Dist: httpx[http2]~=0.27; extra == "http"
|
76
76
|
Provides-Extra: misc
|
@@ -110,6 +110,7 @@ omlish/collections/_io_abc.py
|
|
110
110
|
omlish/collections/coerce.py
|
111
111
|
omlish/collections/exceptions.py
|
112
112
|
omlish/collections/frozen.py
|
113
|
+
omlish/collections/hasheq.py
|
113
114
|
omlish/collections/identity.py
|
114
115
|
omlish/collections/indexed.py
|
115
116
|
omlish/collections/mappings.py
|
@@ -7,7 +7,7 @@ trio~=0.27
|
|
7
7
|
trio-asyncio~=0.15
|
8
8
|
lz4~=4.3
|
9
9
|
python-snappy~=0.7
|
10
|
-
|
10
|
+
zstandard~=0.23
|
11
11
|
asttokens~=2.4
|
12
12
|
executing~=2.1
|
13
13
|
psutil~=6.0
|
@@ -16,7 +16,7 @@ ujson~=5.10
|
|
16
16
|
json5~=0.9
|
17
17
|
pyyaml~=6.0
|
18
18
|
cbor2~=5.6
|
19
|
-
cloudpickle~=3.
|
19
|
+
cloudpickle~=3.1
|
20
20
|
httpx[http2]~=0.27
|
21
21
|
wrapt~=1.14
|
22
22
|
cryptography~=43.0
|
@@ -41,7 +41,7 @@ trio-asyncio~=0.15
|
|
41
41
|
[compress]
|
42
42
|
lz4~=4.3
|
43
43
|
python-snappy~=0.7
|
44
|
-
|
44
|
+
zstandard~=0.23
|
45
45
|
|
46
46
|
[diag]
|
47
47
|
asttokens~=2.4
|
@@ -54,7 +54,7 @@ ujson~=5.10
|
|
54
54
|
json5~=0.9
|
55
55
|
pyyaml~=6.0
|
56
56
|
cbor2~=5.6
|
57
|
-
cloudpickle~=3.
|
57
|
+
cloudpickle~=3.1
|
58
58
|
|
59
59
|
[http]
|
60
60
|
httpx[http2]~=0.27
|
@@ -12,7 +12,7 @@ authors = [
|
|
12
12
|
urls = {source = 'https://github.com/wrmsr/omlish'}
|
13
13
|
license = {text = 'BSD-3-Clause'}
|
14
14
|
requires-python = '>=3.12'
|
15
|
-
version = '0.0.0.
|
15
|
+
version = '0.0.0.dev99'
|
16
16
|
classifiers = [
|
17
17
|
'License :: OSI Approved :: BSD License',
|
18
18
|
'Development Status :: 2 - Pre-Alpha',
|
@@ -31,7 +31,7 @@ all = [
|
|
31
31
|
'trio-asyncio ~= 0.15',
|
32
32
|
'lz4 ~= 4.3',
|
33
33
|
'python-snappy ~= 0.7',
|
34
|
-
'
|
34
|
+
'zstandard ~= 0.23',
|
35
35
|
'asttokens ~= 2.4',
|
36
36
|
'executing ~= 2.1',
|
37
37
|
'psutil ~= 6.0',
|
@@ -40,7 +40,7 @@ all = [
|
|
40
40
|
'json5 ~= 0.9',
|
41
41
|
'pyyaml ~= 6.0',
|
42
42
|
'cbor2 ~= 5.6',
|
43
|
-
'cloudpickle ~= 3.
|
43
|
+
'cloudpickle ~= 3.1',
|
44
44
|
'httpx[http2] ~= 0.27',
|
45
45
|
'wrapt ~= 1.14',
|
46
46
|
'cryptography ~= 43.0',
|
@@ -72,7 +72,7 @@ async = [
|
|
72
72
|
compress = [
|
73
73
|
'lz4 ~= 4.3',
|
74
74
|
'python-snappy ~= 0.7',
|
75
|
-
'
|
75
|
+
'zstandard ~= 0.23',
|
76
76
|
]
|
77
77
|
diag = [
|
78
78
|
'asttokens ~= 2.4',
|
@@ -85,7 +85,7 @@ formats = [
|
|
85
85
|
'json5 ~= 0.9',
|
86
86
|
'pyyaml ~= 6.0',
|
87
87
|
'cbor2 ~= 5.6',
|
88
|
-
'cloudpickle ~= 3.
|
88
|
+
'cloudpickle ~= 3.1',
|
89
89
|
]
|
90
90
|
http = [
|
91
91
|
'httpx[http2] ~= 0.27',
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/atn/ATNDeserializationOptions.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/error/DiagnosticErrorListener.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{omlish-0.0.0.dev98 → omlish-0.0.0.dev99}/omlish/antlr/_runtime/tree/ParseTreePatternMatcher.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|