omlish 0.0.0.dev126__tar.gz → 0.0.0.dev127__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (497) hide show
  1. {omlish-0.0.0.dev126/omlish.egg-info → omlish-0.0.0.dev127}/PKG-INFO +1 -1
  2. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/__about__.py +2 -2
  3. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/collections/__init__.py +1 -1
  4. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/formats/props.py +1 -1
  5. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/http/consts.py +1 -1
  6. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/inject/impl/inspect.py +10 -3
  7. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lang/__init__.py +10 -7
  8. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lang/typing.py +0 -50
  9. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lite/http/parsing.py +35 -0
  10. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lite/inject.py +135 -27
  11. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lite/logs.py +1 -1
  12. omlish-0.0.0.dev127/omlish/lite/typing.py +53 -0
  13. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/specs/jmespath/__init__.py +1 -1
  14. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/specs/jmespath/cli.py +1 -1
  15. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/text/asdl.py +1 -1
  16. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127/omlish.egg-info}/PKG-INFO +1 -1
  17. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/pyproject.toml +1 -1
  18. omlish-0.0.0.dev126/omlish/lite/typing.py +0 -13
  19. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/LICENSE +0 -0
  20. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/MANIFEST.in +0 -0
  21. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/README.rst +0 -0
  22. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/.manifests.json +0 -0
  23. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/__init__.py +0 -0
  24. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/__init__.py +0 -0
  25. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/BufferedTokenStream.py +0 -0
  26. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/CommonTokenFactory.py +0 -0
  27. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/CommonTokenStream.py +0 -0
  28. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/FileStream.py +0 -0
  29. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/InputStream.py +0 -0
  30. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/IntervalSet.py +0 -0
  31. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/LICENSE.txt +0 -0
  32. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/LL1Analyzer.py +0 -0
  33. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/Lexer.py +0 -0
  34. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/ListTokenSource.py +0 -0
  35. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/Parser.py +0 -0
  36. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/ParserInterpreter.py +0 -0
  37. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/ParserRuleContext.py +0 -0
  38. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/PredictionContext.py +0 -0
  39. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/Recognizer.py +0 -0
  40. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/RuleContext.py +0 -0
  41. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/StdinStream.py +0 -0
  42. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/Token.py +0 -0
  43. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/TokenStreamRewriter.py +0 -0
  44. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/Utils.py +0 -0
  45. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/__init__.py +0 -0
  46. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/_pygrun.py +0 -0
  47. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/atn/ATN.py +0 -0
  48. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/atn/ATNConfig.py +0 -0
  49. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/atn/ATNConfigSet.py +0 -0
  50. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/atn/ATNDeserializationOptions.py +0 -0
  51. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/atn/ATNDeserializer.py +0 -0
  52. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/atn/ATNSimulator.py +0 -0
  53. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/atn/ATNState.py +0 -0
  54. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/atn/ATNType.py +0 -0
  55. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/atn/LexerATNSimulator.py +0 -0
  56. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/atn/LexerAction.py +0 -0
  57. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/atn/LexerActionExecutor.py +0 -0
  58. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/atn/ParserATNSimulator.py +0 -0
  59. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/atn/PredictionMode.py +0 -0
  60. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/atn/SemanticContext.py +0 -0
  61. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/atn/Transition.py +0 -0
  62. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/atn/__init__.py +0 -0
  63. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/dfa/DFA.py +0 -0
  64. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/dfa/DFASerializer.py +0 -0
  65. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/dfa/DFAState.py +0 -0
  66. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/dfa/__init__.py +0 -0
  67. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/error/DiagnosticErrorListener.py +0 -0
  68. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/error/ErrorListener.py +0 -0
  69. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/error/ErrorStrategy.py +0 -0
  70. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/error/Errors.py +0 -0
  71. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/error/__init__.py +0 -0
  72. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/tree/Chunk.py +0 -0
  73. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/tree/ParseTreeMatch.py +0 -0
  74. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/tree/ParseTreePattern.py +0 -0
  75. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/tree/ParseTreePatternMatcher.py +0 -0
  76. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/tree/RuleTagToken.py +0 -0
  77. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/tree/TokenTagToken.py +0 -0
  78. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/tree/Tree.py +0 -0
  79. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/tree/Trees.py +0 -0
  80. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/tree/__init__.py +0 -0
  81. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/xpath/XPath.py +0 -0
  82. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/xpath/XPathLexer.py +0 -0
  83. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/antlr/_runtime/xpath/__init__.py +0 -0
  84. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/argparse.py +0 -0
  85. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/asyncs/__init__.py +0 -0
  86. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/asyncs/anyio.py +0 -0
  87. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/asyncs/asyncio.py +0 -0
  88. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/asyncs/asyncs.py +0 -0
  89. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/asyncs/bridge.py +0 -0
  90. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/asyncs/flavors.py +0 -0
  91. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/asyncs/trio.py +0 -0
  92. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/asyncs/trio_asyncio.py +0 -0
  93. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/bootstrap/__init__.py +0 -0
  94. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/bootstrap/__main__.py +0 -0
  95. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/bootstrap/base.py +0 -0
  96. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/bootstrap/diag.py +0 -0
  97. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/bootstrap/harness.py +0 -0
  98. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/bootstrap/main.py +0 -0
  99. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/bootstrap/marshal.py +0 -0
  100. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/bootstrap/sys.py +0 -0
  101. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/c3.py +0 -0
  102. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/cached.py +0 -0
  103. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/check.py +0 -0
  104. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/collections/_abc.py +0 -0
  105. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/collections/cache/__init__.py +0 -0
  106. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/collections/cache/descriptor.py +0 -0
  107. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/collections/cache/impl.py +0 -0
  108. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/collections/cache/types.py +0 -0
  109. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/collections/coerce.py +0 -0
  110. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/collections/exceptions.py +0 -0
  111. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/collections/frozen.py +0 -0
  112. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/collections/hasheq.py +0 -0
  113. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/collections/identity.py +0 -0
  114. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/collections/indexed.py +0 -0
  115. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/collections/mappings.py +0 -0
  116. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/collections/ordered.py +0 -0
  117. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/collections/persistent.py +0 -0
  118. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/collections/skiplist.py +0 -0
  119. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/collections/sorted.py +0 -0
  120. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/collections/treap.py +0 -0
  121. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/collections/treapmap.py +0 -0
  122. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/collections/unmodifiable.py +0 -0
  123. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/collections/utils.py +0 -0
  124. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/concurrent/__init__.py +0 -0
  125. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/concurrent/executors.py +0 -0
  126. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/concurrent/futures.py +0 -0
  127. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/concurrent/threadlets.py +0 -0
  128. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/configs/__init__.py +0 -0
  129. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/configs/classes.py +0 -0
  130. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/configs/flattening.py +0 -0
  131. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/configs/strings.py +0 -0
  132. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/dataclasses/__init__.py +0 -0
  133. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/dataclasses/impl/LICENSE +0 -0
  134. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/dataclasses/impl/__init__.py +0 -0
  135. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/dataclasses/impl/api.py +0 -0
  136. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/dataclasses/impl/as_.py +0 -0
  137. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/dataclasses/impl/copy.py +0 -0
  138. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/dataclasses/impl/descriptors.py +0 -0
  139. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/dataclasses/impl/exceptions.py +0 -0
  140. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/dataclasses/impl/fields.py +0 -0
  141. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/dataclasses/impl/frozen.py +0 -0
  142. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/dataclasses/impl/hashing.py +0 -0
  143. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/dataclasses/impl/init.py +0 -0
  144. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/dataclasses/impl/internals.py +0 -0
  145. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/dataclasses/impl/main.py +0 -0
  146. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/dataclasses/impl/metaclass.py +0 -0
  147. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/dataclasses/impl/metadata.py +0 -0
  148. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/dataclasses/impl/order.py +0 -0
  149. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/dataclasses/impl/params.py +0 -0
  150. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/dataclasses/impl/processing.py +0 -0
  151. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/dataclasses/impl/reflect.py +0 -0
  152. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/dataclasses/impl/replace.py +0 -0
  153. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/dataclasses/impl/repr.py +0 -0
  154. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/dataclasses/impl/simple.py +0 -0
  155. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/dataclasses/impl/slots.py +0 -0
  156. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/dataclasses/impl/utils.py +0 -0
  157. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/dataclasses/utils.py +0 -0
  158. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/datetimes.py +0 -0
  159. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/defs.py +0 -0
  160. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/diag/__init__.py +0 -0
  161. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/diag/_pycharm/__init__.py +0 -0
  162. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/diag/_pycharm/runhack.py +0 -0
  163. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/diag/asts.py +0 -0
  164. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/diag/debug.py +0 -0
  165. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/diag/procfs.py +0 -0
  166. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/diag/procstats.py +0 -0
  167. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/diag/ps.py +0 -0
  168. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/diag/pycharm.py +0 -0
  169. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/diag/pydevd.py +0 -0
  170. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/diag/replserver/__init__.py +0 -0
  171. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/diag/replserver/__main__.py +0 -0
  172. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/diag/replserver/console.py +0 -0
  173. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/diag/replserver/server.py +0 -0
  174. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/diag/threads.py +0 -0
  175. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/dispatch/__init__.py +0 -0
  176. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/dispatch/_dispatch2.py +0 -0
  177. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/dispatch/_dispatch3.py +0 -0
  178. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/dispatch/dispatch.py +0 -0
  179. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/dispatch/functions.py +0 -0
  180. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/dispatch/methods.py +0 -0
  181. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/docker/__init__.py +0 -0
  182. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/docker/cli.py +0 -0
  183. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/docker/compose.py +0 -0
  184. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/docker/helpers.py +0 -0
  185. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/docker/hub.py +0 -0
  186. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/docker/manifests.py +0 -0
  187. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/dynamic.py +0 -0
  188. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/fnpairs.py +0 -0
  189. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/fnpipes.py +0 -0
  190. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/formats/__init__.py +0 -0
  191. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/formats/dotenv.py +0 -0
  192. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/formats/json/__init__.py +0 -0
  193. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/formats/json/backends/__init__.py +0 -0
  194. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/formats/json/backends/base.py +0 -0
  195. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/formats/json/backends/default.py +0 -0
  196. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/formats/json/backends/jiter.py +0 -0
  197. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/formats/json/backends/orjson.py +0 -0
  198. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/formats/json/backends/std.py +0 -0
  199. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/formats/json/backends/ujson.py +0 -0
  200. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/formats/json/cli/__init__.py +0 -0
  201. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/formats/json/cli/__main__.py +0 -0
  202. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/formats/json/cli/cli.py +0 -0
  203. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/formats/json/cli/formats.py +0 -0
  204. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/formats/json/cli/io.py +0 -0
  205. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/formats/json/cli/parsing.py +0 -0
  206. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/formats/json/cli/processing.py +0 -0
  207. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/formats/json/cli/rendering.py +0 -0
  208. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/formats/json/consts.py +0 -0
  209. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/formats/json/encoding.py +0 -0
  210. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/formats/json/json.py +0 -0
  211. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/formats/json/literals.py +0 -0
  212. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/formats/json/render.py +0 -0
  213. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/formats/json/stream/__init__.py +0 -0
  214. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/formats/json/stream/build.py +0 -0
  215. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/formats/json/stream/lex.py +0 -0
  216. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/formats/json/stream/parse.py +0 -0
  217. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/formats/json/stream/render.py +0 -0
  218. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/formats/json/types.py +0 -0
  219. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/formats/xml.py +0 -0
  220. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/formats/yaml.py +0 -0
  221. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/genmachine.py +0 -0
  222. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/graphs/__init__.py +0 -0
  223. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/graphs/dags.py +0 -0
  224. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/graphs/domination.py +0 -0
  225. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/graphs/dot/__init__.py +0 -0
  226. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/graphs/dot/items.py +0 -0
  227. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/graphs/dot/make.py +0 -0
  228. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/graphs/dot/rendering.py +0 -0
  229. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/graphs/dot/utils.py +0 -0
  230. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/graphs/trees.py +0 -0
  231. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/http/__init__.py +0 -0
  232. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/http/asgi.py +0 -0
  233. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/http/clients.py +0 -0
  234. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/http/cookies.py +0 -0
  235. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/http/dates.py +0 -0
  236. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/http/encodings.py +0 -0
  237. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/http/headers.py +0 -0
  238. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/http/json.py +0 -0
  239. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/http/jwt.py +0 -0
  240. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/http/multipart.py +0 -0
  241. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/http/sessions.py +0 -0
  242. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/http/sse.py +0 -0
  243. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/http/wsgi.py +0 -0
  244. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/inject/__init__.py +0 -0
  245. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/inject/binder.py +0 -0
  246. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/inject/bindings.py +0 -0
  247. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/inject/eagers.py +0 -0
  248. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/inject/elements.py +0 -0
  249. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/inject/exceptions.py +0 -0
  250. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/inject/impl/__init__.py +0 -0
  251. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/inject/impl/bindings.py +0 -0
  252. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/inject/impl/elements.py +0 -0
  253. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/inject/impl/injector.py +0 -0
  254. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/inject/impl/multis.py +0 -0
  255. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/inject/impl/origins.py +0 -0
  256. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/inject/impl/privates.py +0 -0
  257. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/inject/impl/providers.py +0 -0
  258. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/inject/impl/proxy.py +0 -0
  259. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/inject/impl/scopes.py +0 -0
  260. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/inject/injector.py +0 -0
  261. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/inject/inspect.py +0 -0
  262. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/inject/keys.py +0 -0
  263. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/inject/listeners.py +0 -0
  264. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/inject/managed.py +0 -0
  265. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/inject/multis.py +0 -0
  266. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/inject/origins.py +0 -0
  267. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/inject/overrides.py +0 -0
  268. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/inject/privates.py +0 -0
  269. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/inject/providers.py +0 -0
  270. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/inject/scopes.py +0 -0
  271. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/inject/types.py +0 -0
  272. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/inject/utils.py +0 -0
  273. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/io/__init__.py +0 -0
  274. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/io/_abc.py +0 -0
  275. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/io/pyio.py +0 -0
  276. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/io/trampoline.py +0 -0
  277. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/iterators.py +0 -0
  278. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lang/cached.py +0 -0
  279. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lang/classes/__init__.py +0 -0
  280. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lang/classes/abstract.py +0 -0
  281. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lang/classes/restrict.py +0 -0
  282. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lang/classes/simple.py +0 -0
  283. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lang/classes/virtual.py +0 -0
  284. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lang/clsdct.py +0 -0
  285. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lang/cmp.py +0 -0
  286. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lang/contextmanagers.py +0 -0
  287. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lang/datetimes.py +0 -0
  288. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lang/descriptors.py +0 -0
  289. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lang/exceptions.py +0 -0
  290. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lang/functions.py +0 -0
  291. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lang/imports.py +0 -0
  292. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lang/iterables.py +0 -0
  293. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lang/maybes.py +0 -0
  294. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lang/objects.py +0 -0
  295. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lang/resolving.py +0 -0
  296. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lang/resources.py +0 -0
  297. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lang/strings.py +0 -0
  298. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lang/sys.py +0 -0
  299. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lang/timeouts.py +0 -0
  300. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/libc.py +0 -0
  301. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lifecycles/__init__.py +0 -0
  302. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lifecycles/abstract.py +0 -0
  303. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lifecycles/base.py +0 -0
  304. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lifecycles/contextmanagers.py +0 -0
  305. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lifecycles/controller.py +0 -0
  306. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lifecycles/manager.py +0 -0
  307. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lifecycles/states.py +0 -0
  308. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lifecycles/transitions.py +0 -0
  309. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lite/__init__.py +0 -0
  310. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lite/cached.py +0 -0
  311. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lite/check.py +0 -0
  312. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lite/contextmanagers.py +0 -0
  313. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lite/docker.py +0 -0
  314. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lite/http/__init__.py +0 -0
  315. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lite/http/coroserver.py +0 -0
  316. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lite/http/handlers.py +0 -0
  317. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lite/http/versions.py +0 -0
  318. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lite/io.py +0 -0
  319. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lite/journald.py +0 -0
  320. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lite/json.py +0 -0
  321. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lite/marshal.py +0 -0
  322. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lite/maybes.py +0 -0
  323. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lite/pidfile.py +0 -0
  324. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lite/reflect.py +0 -0
  325. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lite/runtime.py +0 -0
  326. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lite/secrets.py +0 -0
  327. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lite/socket.py +0 -0
  328. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lite/socketserver.py +0 -0
  329. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lite/strings.py +0 -0
  330. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/lite/subprocesses.py +0 -0
  331. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/logs/__init__.py +0 -0
  332. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/logs/_abc.py +0 -0
  333. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/logs/configs.py +0 -0
  334. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/logs/formatters.py +0 -0
  335. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/logs/handlers.py +0 -0
  336. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/logs/noisy.py +0 -0
  337. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/logs/utils.py +0 -0
  338. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/marshal/__init__.py +0 -0
  339. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/marshal/any.py +0 -0
  340. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/marshal/base.py +0 -0
  341. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/marshal/base64.py +0 -0
  342. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/marshal/dataclasses.py +0 -0
  343. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/marshal/datetimes.py +0 -0
  344. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/marshal/enums.py +0 -0
  345. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/marshal/exceptions.py +0 -0
  346. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/marshal/factories.py +0 -0
  347. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/marshal/forbidden.py +0 -0
  348. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/marshal/global_.py +0 -0
  349. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/marshal/helpers.py +0 -0
  350. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/marshal/iterables.py +0 -0
  351. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/marshal/mappings.py +0 -0
  352. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/marshal/maybes.py +0 -0
  353. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/marshal/namedtuples.py +0 -0
  354. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/marshal/naming.py +0 -0
  355. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/marshal/newtypes.py +0 -0
  356. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/marshal/nop.py +0 -0
  357. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/marshal/numbers.py +0 -0
  358. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/marshal/objects.py +0 -0
  359. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/marshal/optionals.py +0 -0
  360. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/marshal/polymorphism.py +0 -0
  361. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/marshal/primitives.py +0 -0
  362. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/marshal/registries.py +0 -0
  363. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/marshal/standard.py +0 -0
  364. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/marshal/unions.py +0 -0
  365. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/marshal/utils.py +0 -0
  366. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/marshal/uuids.py +0 -0
  367. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/marshal/values.py +0 -0
  368. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/matchfns.py +0 -0
  369. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/math/__init__.py +0 -0
  370. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/math/bits.py +0 -0
  371. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/math/floats.py +0 -0
  372. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/math/stats.py +0 -0
  373. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/multiprocessing.py +0 -0
  374. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/os.py +0 -0
  375. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/reflect/__init__.py +0 -0
  376. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/reflect/inspect.py +0 -0
  377. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/reflect/isinstance.py +0 -0
  378. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/reflect/ops.py +0 -0
  379. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/reflect/subst.py +0 -0
  380. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/reflect/types.py +0 -0
  381. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/runmodule.py +0 -0
  382. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/secrets/__init__.py +0 -0
  383. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/secrets/crypto.py +0 -0
  384. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/secrets/marshal.py +0 -0
  385. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/secrets/openssl.py +0 -0
  386. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/secrets/pwgen.py +0 -0
  387. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/secrets/pwhash.py +0 -0
  388. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/secrets/secrets.py +0 -0
  389. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/secrets/subprocesses.py +0 -0
  390. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/specs/__init__.py +0 -0
  391. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/specs/jmespath/LICENSE +0 -0
  392. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/specs/jmespath/__main__.py +0 -0
  393. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/specs/jmespath/ast.py +0 -0
  394. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/specs/jmespath/exceptions.py +0 -0
  395. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/specs/jmespath/functions.py +0 -0
  396. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/specs/jmespath/lexer.py +0 -0
  397. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/specs/jmespath/parser.py +0 -0
  398. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/specs/jmespath/scope.py +0 -0
  399. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/specs/jmespath/visitor.py +0 -0
  400. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/specs/jsonrpc/__init__.py +0 -0
  401. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/specs/jsonrpc/errors.py +0 -0
  402. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/specs/jsonrpc/marshal.py +0 -0
  403. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/specs/jsonrpc/types.py +0 -0
  404. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/specs/jsonschema/__init__.py +0 -0
  405. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/specs/jsonschema/keywords/__init__.py +0 -0
  406. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/specs/jsonschema/keywords/base.py +0 -0
  407. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/specs/jsonschema/keywords/core.py +0 -0
  408. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/specs/jsonschema/keywords/metadata.py +0 -0
  409. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/specs/jsonschema/keywords/parse.py +0 -0
  410. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/specs/jsonschema/keywords/render.py +0 -0
  411. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/specs/jsonschema/keywords/validation.py +0 -0
  412. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/specs/jsonschema/schemas/__init__.py +0 -0
  413. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/specs/jsonschema/schemas/draft202012/__init__.py +0 -0
  414. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/specs/jsonschema/schemas/draft202012/metaschema.json +0 -0
  415. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/specs/jsonschema/schemas/draft202012/vocabularies/__init__.py +0 -0
  416. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/specs/jsonschema/schemas/draft202012/vocabularies/applicator.json +0 -0
  417. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/specs/jsonschema/schemas/draft202012/vocabularies/content.json +0 -0
  418. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/specs/jsonschema/schemas/draft202012/vocabularies/core.json +0 -0
  419. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/specs/jsonschema/schemas/draft202012/vocabularies/format-annotation.json +0 -0
  420. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/specs/jsonschema/schemas/draft202012/vocabularies/format-assertion.json +0 -0
  421. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/specs/jsonschema/schemas/draft202012/vocabularies/format.json +0 -0
  422. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/specs/jsonschema/schemas/draft202012/vocabularies/meta-data.json +0 -0
  423. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/specs/jsonschema/schemas/draft202012/vocabularies/unevaluated.json +0 -0
  424. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/specs/jsonschema/schemas/draft202012/vocabularies/validation.json +0 -0
  425. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/specs/jsonschema/types.py +0 -0
  426. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/specs/openapi/__init__.py +0 -0
  427. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/specs/openapi/marshal.py +0 -0
  428. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/specs/openapi/openapi.py +0 -0
  429. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/sql/__init__.py +0 -0
  430. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/sql/_abc.py +0 -0
  431. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/sql/alchemy/__init__.py +0 -0
  432. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/sql/alchemy/asyncs.py +0 -0
  433. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/sql/alchemy/duckdb.py +0 -0
  434. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/sql/alchemy/exprs.py +0 -0
  435. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/sql/alchemy/secrets.py +0 -0
  436. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/sql/alchemy/sqlean.py +0 -0
  437. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/sql/dbapi.py +0 -0
  438. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/sql/dbs.py +0 -0
  439. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/sql/params.py +0 -0
  440. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/sql/qualifiedname.py +0 -0
  441. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/sql/queries/__init__.py +0 -0
  442. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/sql/queries/base.py +0 -0
  443. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/sql/queries/binary.py +0 -0
  444. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/sql/queries/building.py +0 -0
  445. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/sql/queries/exprs.py +0 -0
  446. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/sql/queries/idents.py +0 -0
  447. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/sql/queries/inserts.py +0 -0
  448. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/sql/queries/marshal.py +0 -0
  449. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/sql/queries/multi.py +0 -0
  450. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/sql/queries/names.py +0 -0
  451. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/sql/queries/ops.py +0 -0
  452. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/sql/queries/relations.py +0 -0
  453. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/sql/queries/rendering.py +0 -0
  454. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/sql/queries/selects.py +0 -0
  455. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/sql/queries/stmts.py +0 -0
  456. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/sql/queries/unary.py +0 -0
  457. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/sql/tabledefs/__init__.py +0 -0
  458. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/sql/tabledefs/alchemy.py +0 -0
  459. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/sql/tabledefs/dtypes.py +0 -0
  460. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/sql/tabledefs/elements.py +0 -0
  461. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/sql/tabledefs/lower.py +0 -0
  462. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/sql/tabledefs/marshal.py +0 -0
  463. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/sql/tabledefs/tabledefs.py +0 -0
  464. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/sync.py +0 -0
  465. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/term.py +0 -0
  466. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/testing/__init__.py +0 -0
  467. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/testing/pytest/__init__.py +0 -0
  468. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/testing/pytest/helpers.py +0 -0
  469. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/testing/pytest/inject/__init__.py +0 -0
  470. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/testing/pytest/inject/harness.py +0 -0
  471. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/testing/pytest/marks.py +0 -0
  472. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/testing/pytest/plugins/__init__.py +0 -0
  473. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/testing/pytest/plugins/_registry.py +0 -0
  474. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/testing/pytest/plugins/asyncs.py +0 -0
  475. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/testing/pytest/plugins/depskip.py +0 -0
  476. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/testing/pytest/plugins/logging.py +0 -0
  477. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/testing/pytest/plugins/managermarks.py +0 -0
  478. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/testing/pytest/plugins/pydevd.py +0 -0
  479. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/testing/pytest/plugins/repeat.py +0 -0
  480. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/testing/pytest/plugins/skips.py +0 -0
  481. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/testing/pytest/plugins/spacing.py +0 -0
  482. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/testing/pytest/plugins/switches.py +0 -0
  483. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/testing/pytest/plugins/utils.py +0 -0
  484. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/testing/pytest/skip.py +0 -0
  485. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/testing/testing.py +0 -0
  486. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/text/__init__.py +0 -0
  487. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/text/delimit.py +0 -0
  488. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/text/glyphsplit.py +0 -0
  489. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/text/indent.py +0 -0
  490. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/text/parts.py +0 -0
  491. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish/text/random.py +0 -0
  492. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish.egg-info/SOURCES.txt +0 -0
  493. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish.egg-info/dependency_links.txt +0 -0
  494. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish.egg-info/entry_points.txt +0 -0
  495. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish.egg-info/requires.txt +0 -0
  496. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/omlish.egg-info/top_level.txt +0 -0
  497. {omlish-0.0.0.dev126 → omlish-0.0.0.dev127}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: omlish
3
- Version: 0.0.0.dev126
3
+ Version: 0.0.0.dev127
4
4
  Summary: omlish
5
5
  Author: wrmsr
6
6
  License: BSD-3-Clause
@@ -1,5 +1,5 @@
1
- __version__ = '0.0.0.dev126'
2
- __revision__ = '631da43a3ae4f71529271e291fc643834c85c462'
1
+ __version__ = '0.0.0.dev127'
2
+ __revision__ = '270ecbafef8e08ba95e97d41fdbf2b0f40df097f'
3
3
 
4
4
 
5
5
  #
@@ -13,7 +13,7 @@ from .coerce import ( # noqa
13
13
  frozenset_of,
14
14
  frozenset_of_or_none,
15
15
  frozenset_or_none,
16
- map,
16
+ map, # noqa
17
17
  map_of,
18
18
  map_of_or_none,
19
19
  map_or_none,
@@ -548,7 +548,7 @@ class Properties(collections.abc.MutableMapping):
548
548
  month = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
549
549
  now = time.gmtime()
550
550
  print(
551
- '#%s %s %02d %02d:%02d:%02d UTC %04d' % (
551
+ '#%s %s %02d %02d:%02d:%02d UTC %04d' % ( # noqa
552
552
  day_of_week[now.tm_wday],
553
553
  month[now.tm_mon - 1],
554
554
  now.tm_mday,
@@ -11,7 +11,7 @@ import http
11
11
 
12
12
 
13
13
  def format_status(status: http.HTTPStatus) -> str:
14
- return '%d %s' % (int(status), status.phrase)
14
+ return f'{int(status)} {status.phrase}'
15
15
 
16
16
 
17
17
  STATUS_OK = format_status(http.HTTPStatus.OK)
@@ -10,12 +10,12 @@ import inspect
10
10
  import typing as ta
11
11
  import weakref
12
12
 
13
+ from ... import check
13
14
  from ... import reflect as rfl
14
15
  from ..exceptions import ConflictingKeyError
15
16
  from ..inspect import Kwarg
16
17
  from ..inspect import KwargsTarget
17
18
  from ..keys import Key
18
- from ..keys import as_key
19
19
  from ..types import Tag
20
20
 
21
21
 
@@ -72,15 +72,22 @@ def build_kwargs_target(
72
72
  obj: ta.Any,
73
73
  *,
74
74
  skip_args: int = 0,
75
- skip_kwargs: ta.Iterable[ta.Any] | None = None,
75
+ skip_kwargs: ta.Iterable[str] | None = None,
76
76
  raw_optional: bool = False,
77
77
  ) -> KwargsTarget:
78
78
  sig = signature(obj)
79
79
  tags = _TAGS.get(obj)
80
80
 
81
- seen: set[Key] = set(map(as_key, skip_kwargs)) if skip_kwargs is not None else set()
81
+ skip_names: set[str] = set()
82
+ if skip_kwargs is not None:
83
+ skip_names.update(check.not_isinstance(skip_kwargs, str))
84
+
85
+ seen: set[Key] = set()
82
86
  kws: list[Kwarg] = []
83
87
  for p in list(sig.parameters.values())[skip_args:]:
88
+ if p.name in skip_names:
89
+ continue
90
+
84
91
  if p.annotation is inspect.Signature.empty:
85
92
  if p.default is not inspect.Parameter.empty:
86
93
  raise KeyError(f'{obj}, {p.name}')
@@ -1,5 +1,3 @@
1
- # This module should import nothing but stdlib modules, and as few as possible. That *includes* lite - no using lite.
2
-
3
1
  from .cached import ( # noqa
4
2
  cached_function,
5
3
  cached_property,
@@ -219,14 +217,19 @@ from .timeouts import ( # noqa
219
217
  )
220
218
 
221
219
  from .typing import ( # noqa
222
- AnyFunc,
223
220
  BytesLike,
224
- Func0,
225
- Func1,
226
- Func2,
227
- Func3,
228
221
  SequenceNotStr,
229
222
  protocol_check,
230
223
  typed_lambda,
231
224
  typed_partial,
232
225
  )
226
+
227
+ ##
228
+
229
+ from ..lite.typing import ( # noqa
230
+ AnyFunc,
231
+ Func0,
232
+ Func1,
233
+ Func2,
234
+ Func3,
235
+ )
@@ -5,7 +5,6 @@ TODO:
5
5
  - probably need to gen types per inst
6
6
  - typed_factory
7
7
  """
8
- import dataclasses as dc
9
8
  import functools
10
9
  import inspect
11
10
  import typing as ta
@@ -17,11 +16,6 @@ T = ta.TypeVar('T')
17
16
  T_co = ta.TypeVar('T_co', covariant=True)
18
17
  T_contra = ta.TypeVar('T_contra', contravariant=True)
19
18
 
20
- A0 = ta.TypeVar('A0')
21
- A1 = ta.TypeVar('A1')
22
- A2 = ta.TypeVar('A2')
23
-
24
-
25
19
  BytesLike: ta.TypeAlias = bytes | bytearray
26
20
 
27
21
 
@@ -102,50 +96,6 @@ def typed_partial(obj, **kw): # noqa
102
96
  return _update_wrapper_no_anns(lam, obj)
103
97
 
104
98
 
105
- ##
106
- # A workaround for typing deficiencies (like `Argument 2 to NewType(...) must be subclassable`).
107
-
108
-
109
- @dc.dataclass(frozen=True)
110
- class AnyFunc(ta.Generic[T]):
111
- fn: ta.Callable[..., T]
112
-
113
- def __call__(self, *args: ta.Any, **kwargs: ta.Any) -> T:
114
- return self.fn(*args, **kwargs)
115
-
116
-
117
- @dc.dataclass(frozen=True)
118
- class Func0(ta.Generic[T]):
119
- fn: ta.Callable[[], T]
120
-
121
- def __call__(self) -> T:
122
- return self.fn()
123
-
124
-
125
- @dc.dataclass(frozen=True)
126
- class Func1(ta.Generic[A0, T]):
127
- fn: ta.Callable[[A0], T]
128
-
129
- def __call__(self, a0: A0) -> T:
130
- return self.fn(a0)
131
-
132
-
133
- @dc.dataclass(frozen=True)
134
- class Func2(ta.Generic[A0, A1, T]):
135
- fn: ta.Callable[[A0, A1], T]
136
-
137
- def __call__(self, a0: A0, a1: A1) -> T:
138
- return self.fn(a0, a1)
139
-
140
-
141
- @dc.dataclass(frozen=True)
142
- class Func3(ta.Generic[A0, A1, A2, T]):
143
- fn: ta.Callable[[A0, A1, A2], T]
144
-
145
- def __call__(self, a0: A0, a1: A1, a2: A2) -> T:
146
- return self.fn(a0, a1, a2)
147
-
148
-
149
99
  ##
150
100
 
151
101
 
@@ -1,4 +1,39 @@
1
1
  # ruff: noqa: UP006 UP007
2
+ # PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
3
+ # --------------------------------------------
4
+ #
5
+ # 1. This LICENSE AGREEMENT is between the Python Software Foundation ("PSF"), and the Individual or Organization
6
+ # ("Licensee") accessing and otherwise using this software ("Python") in source or binary form and its associated
7
+ # documentation.
8
+ #
9
+ # 2. Subject to the terms and conditions of this License Agreement, PSF hereby grants Licensee a nonexclusive,
10
+ # royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative
11
+ # works, distribute, and otherwise use Python alone or in any derivative version, provided, however, that PSF's License
12
+ # Agreement and PSF's notice of copyright, i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
13
+ # 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 Python Software Foundation; All Rights Reserved" are retained in Python
14
+ # alone or in any derivative version prepared by Licensee.
15
+ #
16
+ # 3. In the event Licensee prepares a derivative work that is based on or incorporates Python or any part thereof, and
17
+ # wants to make the derivative work available to others as provided herein, then Licensee hereby agrees to include in
18
+ # any such work a brief summary of the changes made to Python.
19
+ #
20
+ # 4. PSF is making Python available to Licensee on an "AS IS" basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES,
21
+ # EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY
22
+ # OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT INFRINGE ANY THIRD PARTY
23
+ # RIGHTS.
24
+ #
25
+ # 5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL
26
+ # DAMAGES OR LOSS AS A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON, OR ANY DERIVATIVE THEREOF, EVEN IF
27
+ # ADVISED OF THE POSSIBILITY THEREOF.
28
+ #
29
+ # 6. This License Agreement will automatically terminate upon a material breach of its terms and conditions.
30
+ #
31
+ # 7. Nothing in this License Agreement shall be deemed to create any relationship of agency, partnership, or joint
32
+ # venture between PSF and Licensee. This License Agreement does not grant permission to use PSF trademarks or trade
33
+ # name in a trademark sense to endorse or promote products or services of Licensee, or any third party.
34
+ #
35
+ # 8. By copying, installing or otherwise using Python, Licensee agrees to be bound by the terms and conditions of this
36
+ # License Agreement.
2
37
  import abc
3
38
  import http.client
4
39
  import http.server
@@ -14,10 +14,10 @@ from .maybes import Maybe
14
14
  from .reflect import get_optional_alias_arg
15
15
  from .reflect import is_new_type
16
16
  from .reflect import is_optional_alias
17
- from .typing import Func
18
17
 
19
18
 
20
19
  T = ta.TypeVar('T')
20
+ U = ta.TypeVar('U')
21
21
 
22
22
  InjectorKeyCls = ta.Union[type, ta.NewType]
23
23
 
@@ -90,11 +90,23 @@ class Injector(abc.ABC):
90
90
  raise NotImplementedError
91
91
 
92
92
  @abc.abstractmethod
93
- def provide_kwargs(self, obj: ta.Any) -> ta.Mapping[str, ta.Any]:
93
+ def provide_kwargs(
94
+ self,
95
+ obj: ta.Any,
96
+ *,
97
+ skip_args: int = 0,
98
+ skip_kwargs: ta.Optional[ta.Iterable[ta.Any]] = None,
99
+ ) -> ta.Mapping[str, ta.Any]:
94
100
  raise NotImplementedError
95
101
 
96
102
  @abc.abstractmethod
97
- def inject(self, obj: ta.Any) -> ta.Any:
103
+ def inject(
104
+ self,
105
+ obj: ta.Any,
106
+ *,
107
+ args: ta.Optional[ta.Sequence[ta.Any]] = None,
108
+ kwargs: ta.Optional[ta.Mapping[str, ta.Any]] = None,
109
+ ) -> ta.Any:
98
110
  raise NotImplementedError
99
111
 
100
112
  def __getitem__(
@@ -108,8 +120,12 @@ class Injector(abc.ABC):
108
120
  # exceptions
109
121
 
110
122
 
123
+ class InjectorError(Exception):
124
+ pass
125
+
126
+
111
127
  @dc.dataclass(frozen=True)
112
- class InjectorKeyError(Exception):
128
+ class InjectorKeyError(InjectorError):
113
129
  key: InjectorKey
114
130
 
115
131
  source: ta.Any = None
@@ -316,29 +332,49 @@ def build_injector_provider_map(bs: InjectorBindings) -> ta.Mapping[InjectorKey,
316
332
  # inspection
317
333
 
318
334
 
319
- # inspect.signature(eval_str=True) was added in 3.10 and we have to support 3.8, so we have to get_type_hints to eval
320
- # str annotations *in addition to* getting the signature for parameter information.
321
335
  class _InjectionInspection(ta.NamedTuple):
322
336
  signature: inspect.Signature
323
337
  type_hints: ta.Mapping[str, ta.Any]
338
+ args_offset: int
324
339
 
325
340
 
326
341
  _INJECTION_INSPECTION_CACHE: ta.MutableMapping[ta.Any, _InjectionInspection] = weakref.WeakKeyDictionary()
327
342
 
328
343
 
329
344
  def _do_injection_inspect(obj: ta.Any) -> _InjectionInspection:
330
- uw = obj
345
+ tgt = obj
346
+ if isinstance(tgt, type) and tgt.__init__ is not object.__init__: # type: ignore[misc]
347
+ # Python 3.8's inspect.signature can't handle subclasses overriding __new__, always generating *args/**kwargs.
348
+ # - https://bugs.python.org/issue40897
349
+ # - https://github.com/python/cpython/commit/df7c62980d15acd3125dfbd81546dad359f7add7
350
+ tgt = tgt.__init__ # type: ignore[misc]
351
+ has_generic_base = True
352
+ else:
353
+ has_generic_base = False
354
+
355
+ # inspect.signature(eval_str=True) was added in 3.10 and we have to support 3.8, so we have to get_type_hints to
356
+ # eval str annotations *in addition to* getting the signature for parameter information.
357
+ uw = tgt
358
+ has_partial = False
331
359
  while True:
332
360
  if isinstance(uw, functools.partial):
361
+ has_partial = True
333
362
  uw = uw.func
334
363
  else:
335
364
  if (uw2 := inspect.unwrap(uw)) is uw:
336
365
  break
337
366
  uw = uw2
338
367
 
368
+ if has_generic_base and has_partial:
369
+ raise InjectorError(
370
+ 'Injector inspection does not currently support both a typing.Generic base and a functools.partial: '
371
+ f'{obj}',
372
+ )
373
+
339
374
  return _InjectionInspection(
340
- inspect.signature(obj),
375
+ inspect.signature(tgt),
341
376
  ta.get_type_hints(uw),
377
+ 1 if has_generic_base else 0,
342
378
  )
343
379
 
344
380
 
@@ -369,14 +405,23 @@ def build_injection_kwargs_target(
369
405
  obj: ta.Any,
370
406
  *,
371
407
  skip_args: int = 0,
372
- skip_kwargs: ta.Optional[ta.Iterable[ta.Any]] = None,
408
+ skip_kwargs: ta.Optional[ta.Iterable[str]] = None,
373
409
  raw_optional: bool = False,
374
410
  ) -> InjectionKwargsTarget:
375
411
  insp = _injection_inspect(obj)
376
412
 
377
- seen: ta.Set[InjectorKey] = set(map(as_injector_key, skip_kwargs)) if skip_kwargs is not None else set()
413
+ params = list(insp.signature.parameters.values())
414
+
415
+ skip_names: ta.Set[str] = set()
416
+ if skip_kwargs is not None:
417
+ skip_names.update(check_not_isinstance(skip_kwargs, str))
418
+
419
+ seen: ta.Set[InjectorKey] = set()
378
420
  kws: ta.List[InjectionKwarg] = []
379
- for p in list(insp.signature.parameters.values())[skip_args:]:
421
+ for p in params[insp.args_offset + skip_args:]:
422
+ if p.name in skip_names:
423
+ continue
424
+
380
425
  if p.annotation is inspect.Signature.empty:
381
426
  if p.default is not inspect.Parameter.empty:
382
427
  raise KeyError(f'{obj}, {p.name}')
@@ -385,6 +430,7 @@ def build_injection_kwargs_target(
385
430
  if p.kind not in (inspect.Parameter.POSITIONAL_OR_KEYWORD, inspect.Parameter.KEYWORD_ONLY):
386
431
  raise TypeError(insp)
387
432
 
433
+ # 3.8 inspect.signature doesn't eval_str but typing.get_type_hints does, so prefer that.
388
434
  ann = insp.type_hints.get(p.name, p.annotation)
389
435
  if (
390
436
  not raw_optional and
@@ -452,8 +498,19 @@ class _Injector(Injector):
452
498
  return v.must()
453
499
  raise UnboundInjectorKeyError(key)
454
500
 
455
- def provide_kwargs(self, obj: ta.Any) -> ta.Mapping[str, ta.Any]:
456
- kt = build_injection_kwargs_target(obj)
501
+ def provide_kwargs(
502
+ self,
503
+ obj: ta.Any,
504
+ *,
505
+ skip_args: int = 0,
506
+ skip_kwargs: ta.Optional[ta.Iterable[ta.Any]] = None,
507
+ ) -> ta.Mapping[str, ta.Any]:
508
+ kt = build_injection_kwargs_target(
509
+ obj,
510
+ skip_args=skip_args,
511
+ skip_kwargs=skip_kwargs,
512
+ )
513
+
457
514
  ret: ta.Dict[str, ta.Any] = {}
458
515
  for kw in kt.kwargs:
459
516
  if kw.has_default:
@@ -465,9 +522,24 @@ class _Injector(Injector):
465
522
  ret[kw.name] = v
466
523
  return ret
467
524
 
468
- def inject(self, obj: ta.Any) -> ta.Any:
469
- kws = self.provide_kwargs(obj)
470
- return obj(**kws)
525
+ def inject(
526
+ self,
527
+ obj: ta.Any,
528
+ *,
529
+ args: ta.Optional[ta.Sequence[ta.Any]] = None,
530
+ kwargs: ta.Optional[ta.Mapping[str, ta.Any]] = None,
531
+ ) -> ta.Any:
532
+ provided = self.provide_kwargs(
533
+ obj,
534
+ skip_args=len(args) if args is not None else 0,
535
+ skip_kwargs=kwargs if kwargs is not None else None,
536
+ )
537
+
538
+ return obj(
539
+ *(args if args is not None else ()),
540
+ **(kwargs if kwargs is not None else {}),
541
+ **provided,
542
+ )
471
543
 
472
544
 
473
545
  ###
@@ -606,16 +678,42 @@ class InjectorBinder:
606
678
 
607
679
 
608
680
  def make_injector_factory(
609
- factory_cls: ta.Any,
610
- factory_fn: ta.Callable[..., T],
611
- ) -> ta.Callable[..., Func[T]]:
612
- def outer(injector: Injector) -> factory_cls:
681
+ fn: ta.Callable[..., T],
682
+ cls: U,
683
+ ann: ta.Any = None,
684
+ ) -> ta.Callable[..., U]:
685
+ if ann is None:
686
+ ann = cls
687
+
688
+ def outer(injector: Injector) -> ann:
613
689
  def inner(*args, **kwargs):
614
- return injector.inject(functools.partial(factory_fn, *args, **kwargs))
615
- return Func(inner)
690
+ return injector.inject(fn, args=args, kwargs=kwargs)
691
+ return cls(inner) # type: ignore
692
+
616
693
  return outer
617
694
 
618
695
 
696
+ def make_injector_array_type(
697
+ ele: ta.Union[InjectorKey, InjectorKeyCls],
698
+ cls: U,
699
+ ann: ta.Any = None,
700
+ ) -> ta.Callable[..., U]:
701
+ if isinstance(ele, InjectorKey):
702
+ if not ele.array:
703
+ raise InjectorError('Provided key must be array', ele)
704
+ key = ele
705
+ else:
706
+ key = dc.replace(as_injector_key(ele), array=True)
707
+
708
+ if ann is None:
709
+ ann = cls
710
+
711
+ def inner(injector: Injector) -> ann:
712
+ return cls(injector.provide(key)) # type: ignore[operator]
713
+
714
+ return inner
715
+
716
+
619
717
  ##
620
718
 
621
719
 
@@ -650,8 +748,8 @@ class Injection:
650
748
  # injector
651
749
 
652
750
  @classmethod
653
- def create_injector(cls, *args: InjectorBindingOrBindings, p: ta.Optional[Injector] = None) -> Injector:
654
- return _Injector(as_injector_bindings(*args), p)
751
+ def create_injector(cls, *args: InjectorBindingOrBindings, parent: ta.Optional[Injector] = None) -> Injector:
752
+ return _Injector(as_injector_bindings(*args), parent)
655
753
 
656
754
  # binder
657
755
 
@@ -691,10 +789,20 @@ class Injection:
691
789
  @classmethod
692
790
  def bind_factory(
693
791
  cls,
694
- factory_cls: ta.Any,
695
- factory_fn: ta.Callable[..., T],
792
+ fn: ta.Callable[..., T],
793
+ cls_: U,
794
+ ann: ta.Any = None,
795
+ ) -> InjectorBindingOrBindings:
796
+ return cls.bind(make_injector_factory(fn, cls_, ann))
797
+
798
+ @classmethod
799
+ def bind_array_type(
800
+ cls,
801
+ ele: ta.Union[InjectorKey, InjectorKeyCls],
802
+ cls_: U,
803
+ ann: ta.Any = None,
696
804
  ) -> InjectorBindingOrBindings:
697
- return cls.bind(make_injector_factory(factory_cls, factory_fn))
805
+ return cls.bind(make_injector_array_type(ele, cls_, ann))
698
806
 
699
807
 
700
808
  inj = Injection
@@ -92,7 +92,7 @@ class StandardLogFormatter(logging.Formatter):
92
92
  return ct.strftime(datefmt) # noqa
93
93
  else:
94
94
  t = ct.strftime('%Y-%m-%d %H:%M:%S')
95
- return '%s.%03d' % (t, record.msecs)
95
+ return '%s.%03d' % (t, record.msecs) # noqa
96
96
 
97
97
 
98
98
  ##
@@ -0,0 +1,53 @@
1
+ import dataclasses as dc
2
+ import typing as ta
3
+
4
+
5
+ T = ta.TypeVar('T')
6
+
7
+ A0 = ta.TypeVar('A0')
8
+ A1 = ta.TypeVar('A1')
9
+ A2 = ta.TypeVar('A2')
10
+
11
+
12
+ ##
13
+ # A workaround for typing deficiencies (like `Argument 2 to NewType(...) must be subclassable`).
14
+
15
+
16
+ @dc.dataclass(frozen=True)
17
+ class AnyFunc(ta.Generic[T]):
18
+ fn: ta.Callable[..., T]
19
+
20
+ def __call__(self, *args: ta.Any, **kwargs: ta.Any) -> T:
21
+ return self.fn(*args, **kwargs)
22
+
23
+
24
+ @dc.dataclass(frozen=True)
25
+ class Func0(ta.Generic[T]):
26
+ fn: ta.Callable[[], T]
27
+
28
+ def __call__(self) -> T:
29
+ return self.fn()
30
+
31
+
32
+ @dc.dataclass(frozen=True)
33
+ class Func1(ta.Generic[A0, T]):
34
+ fn: ta.Callable[[A0], T]
35
+
36
+ def __call__(self, a0: A0) -> T:
37
+ return self.fn(a0)
38
+
39
+
40
+ @dc.dataclass(frozen=True)
41
+ class Func2(ta.Generic[A0, A1, T]):
42
+ fn: ta.Callable[[A0, A1], T]
43
+
44
+ def __call__(self, a0: A0, a1: A1) -> T:
45
+ return self.fn(a0, a1)
46
+
47
+
48
+ @dc.dataclass(frozen=True)
49
+ class Func3(ta.Generic[A0, A1, A2, T]):
50
+ fn: ta.Callable[[A0, A1, A2], T]
51
+
52
+ def __call__(self, a0: A0, a1: A1, a2: A2) -> T:
53
+ return self.fn(a0, a1, a2)
@@ -33,7 +33,7 @@ from . import lexer # noqa
33
33
  from . import parser # noqa
34
34
 
35
35
  from .parser import ( # noqa
36
- compile,
36
+ compile, # noqa
37
37
  search,
38
38
  )
39
39
 
@@ -11,7 +11,7 @@ from .exceptions import JmespathTypeError
11
11
  from .exceptions import JmespathValueError
12
12
  from .exceptions import ParseError
13
13
  from .exceptions import UnknownFunctionError
14
- from .parser import compile
14
+ from .parser import compile # noqa
15
15
  from .parser import search
16
16
  from .visitor import node_type
17
17
 
@@ -403,7 +403,7 @@ class AsdlParser:
403
403
  * Reads in the next token
404
404
  """
405
405
 
406
- if isinstance(kind, tuple) and self.cur().kind in kind or self.cur().kind == kind:
406
+ if (isinstance(kind, tuple) and self.cur().kind in kind) or self.cur().kind == kind:
407
407
  value = self.cur().value
408
408
  self._advance()
409
409
  return value
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: omlish
3
- Version: 0.0.0.dev126
3
+ Version: 0.0.0.dev127
4
4
  Summary: omlish
5
5
  Author: wrmsr
6
6
  License: BSD-3-Clause
@@ -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.dev126'
15
+ version = '0.0.0.dev127'
16
16
  classifiers = [
17
17
  'License :: OSI Approved :: BSD License',
18
18
  'Development Status :: 2 - Pre-Alpha',
@@ -1,13 +0,0 @@
1
- import dataclasses as dc
2
- import typing as ta
3
-
4
-
5
- T = ta.TypeVar('T')
6
-
7
-
8
- @dc.dataclass(frozen=True)
9
- class Func(ta.Generic[T]):
10
- fn: ta.Callable[..., T]
11
-
12
- def __call__(self, *args: ta.Any, **kwargs: ta.Any) -> T:
13
- return self.fn(*args, **kwargs)
File without changes
File without changes
File without changes