omdev 0.0.0.dev214__tar.gz → 0.0.0.dev216__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (225) hide show
  1. {omdev-0.0.0.dev214/omdev.egg-info → omdev-0.0.0.dev216}/PKG-INFO +2 -2
  2. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/scripts/ci.py +3 -3
  3. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/scripts/interp.py +1 -1
  4. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/scripts/pyproject.py +80 -13
  5. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/tools/json/formats.py +4 -0
  6. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216/omdev.egg-info}/PKG-INFO +2 -2
  7. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev.egg-info/requires.txt +1 -1
  8. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/pyproject.toml +2 -2
  9. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/LICENSE +0 -0
  10. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/MANIFEST.in +0 -0
  11. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/README.rst +0 -0
  12. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/.manifests.json +0 -0
  13. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/__about__.py +0 -0
  14. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/__init__.py +0 -0
  15. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/amalg/__init__.py +0 -0
  16. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/amalg/__main__.py +0 -0
  17. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/amalg/gen.py +0 -0
  18. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/amalg/imports.py +0 -0
  19. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/amalg/main.py +0 -0
  20. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/amalg/manifests.py +0 -0
  21. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/amalg/resources.py +0 -0
  22. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/amalg/srcfiles.py +0 -0
  23. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/amalg/strip.py +0 -0
  24. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/amalg/types.py +0 -0
  25. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/amalg/typing.py +0 -0
  26. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/antlr/__init__.py +0 -0
  27. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/antlr/consts.py +0 -0
  28. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/antlr/gen.py +0 -0
  29. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/bracepy.py +0 -0
  30. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cache/__init__.py +0 -0
  31. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cache/compute/__init__.py +0 -0
  32. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cache/compute/cache.py +0 -0
  33. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cache/compute/contexts.py +0 -0
  34. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cache/compute/currents.py +0 -0
  35. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cache/compute/fns.py +0 -0
  36. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cache/compute/resolvers.py +0 -0
  37. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cache/compute/storage.py +0 -0
  38. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cache/compute/types.py +0 -0
  39. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cache/data/__init__.py +0 -0
  40. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cache/data/actions.py +0 -0
  41. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cache/data/cache.py +0 -0
  42. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cache/data/consts.py +0 -0
  43. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cache/data/defaults.py +0 -0
  44. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cache/data/manifests.py +0 -0
  45. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cache/data/specs.py +0 -0
  46. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cc/__init__.py +0 -0
  47. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cc/__main__.py +0 -0
  48. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cc/cdeps.py +0 -0
  49. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cc/cdeps.toml +0 -0
  50. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cc/cli.py +0 -0
  51. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cexts/__init__.py +0 -0
  52. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cexts/_boilerplate.cc +0 -0
  53. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cexts/_distutils/LICENSE +0 -0
  54. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cexts/_distutils/__init__.py +0 -0
  55. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cexts/_distutils/build_ext.py +0 -0
  56. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cexts/_distutils/compilers/__init__.py +0 -0
  57. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cexts/_distutils/compilers/ccompiler.py +0 -0
  58. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cexts/_distutils/compilers/options.py +0 -0
  59. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cexts/_distutils/compilers/unixccompiler.py +0 -0
  60. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cexts/_distutils/dir_util.py +0 -0
  61. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cexts/_distutils/errors.py +0 -0
  62. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cexts/_distutils/extension.py +0 -0
  63. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cexts/_distutils/file_util.py +0 -0
  64. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cexts/_distutils/modified.py +0 -0
  65. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cexts/_distutils/spawn.py +0 -0
  66. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cexts/_distutils/sysconfig.py +0 -0
  67. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cexts/_distutils/util.py +0 -0
  68. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cexts/_distutils/version.py +0 -0
  69. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cexts/build.py +0 -0
  70. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cexts/cmake.py +0 -0
  71. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cexts/importhook.py +0 -0
  72. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cexts/magic.py +0 -0
  73. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cexts/scan.py +0 -0
  74. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/ci/__init__.py +0 -0
  75. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/ci/__main__.py +0 -0
  76. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/ci/cache.py +0 -0
  77. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/ci/ci.py +0 -0
  78. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/ci/cli.py +0 -0
  79. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/ci/compose.py +0 -0
  80. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/ci/consts.py +0 -0
  81. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/ci/docker.py +0 -0
  82. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/ci/github/__init__.py +0 -0
  83. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/ci/github/api.py +0 -0
  84. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/ci/github/bootstrap.py +0 -0
  85. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/ci/github/cache.py +0 -0
  86. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/ci/github/cli.py +0 -0
  87. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/ci/github/client.py +0 -0
  88. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/ci/github/env.py +0 -0
  89. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/ci/requirements.py +0 -0
  90. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/ci/shell.py +0 -0
  91. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/ci/utils.py +0 -0
  92. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/classdot.py +0 -0
  93. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cli/__init__.py +0 -0
  94. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cli/__main__.py +0 -0
  95. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cli/_pathhack.py +0 -0
  96. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cli/clicli.py +0 -0
  97. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cli/install.py +0 -0
  98. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cli/main.py +0 -0
  99. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cli/managers.py +0 -0
  100. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cli/types.py +0 -0
  101. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/clipboard/__init__.py +0 -0
  102. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/clipboard/clipboard.py +0 -0
  103. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/clipboard/darwin_cf.py +0 -0
  104. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/clipboard/linux_x11.py +0 -0
  105. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/cmake.py +0 -0
  106. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/findimports.py +0 -0
  107. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/git/__init__.py +0 -0
  108. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/git/revisions.py +0 -0
  109. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/git/shallow.py +0 -0
  110. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/git/status.py +0 -0
  111. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/imgur.py +0 -0
  112. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/interp/__init__.py +0 -0
  113. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/interp/__main__.py +0 -0
  114. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/interp/cli.py +0 -0
  115. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/interp/default.py +0 -0
  116. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/interp/inject.py +0 -0
  117. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/interp/inspect.py +0 -0
  118. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/interp/providers/__init__.py +0 -0
  119. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/interp/providers/base.py +0 -0
  120. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/interp/providers/inject.py +0 -0
  121. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/interp/providers/running.py +0 -0
  122. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/interp/providers/standalone.py +0 -0
  123. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/interp/providers/system.py +0 -0
  124. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/interp/pyenv/__init__.py +0 -0
  125. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/interp/pyenv/inject.py +0 -0
  126. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/interp/pyenv/install.py +0 -0
  127. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/interp/pyenv/provider.py +0 -0
  128. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/interp/pyenv/pyenv.py +0 -0
  129. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/interp/resolvers.py +0 -0
  130. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/interp/types.py +0 -0
  131. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/interp/uv/__init__.py +0 -0
  132. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/interp/uv/inject.py +0 -0
  133. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/interp/uv/provider.py +0 -0
  134. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/interp/uv/uv.py +0 -0
  135. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/interp/venvs.py +0 -0
  136. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/magic/__init__.py +0 -0
  137. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/magic/__main__.py +0 -0
  138. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/magic/cli.py +0 -0
  139. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/magic/find.py +0 -0
  140. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/magic/magic.py +0 -0
  141. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/magic/prepare.py +0 -0
  142. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/magic/styles.py +0 -0
  143. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/manifests/__init__.py +0 -0
  144. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/manifests/__main__.py +0 -0
  145. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/manifests/build.py +0 -0
  146. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/manifests/main.py +0 -0
  147. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/mypy/__init__.py +0 -0
  148. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/mypy/debug.py +0 -0
  149. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/packaging/__init__.py +0 -0
  150. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/packaging/marshal.py +0 -0
  151. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/packaging/names.py +0 -0
  152. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/packaging/requires.py +0 -0
  153. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/packaging/specifiers.py +0 -0
  154. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/packaging/versions.py +0 -0
  155. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/pip.py +0 -0
  156. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/precheck/__init__.py +0 -0
  157. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/precheck/__main__.py +0 -0
  158. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/precheck/base.py +0 -0
  159. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/precheck/git.py +0 -0
  160. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/precheck/lite.py +0 -0
  161. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/precheck/main.py +0 -0
  162. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/precheck/manifests.py +0 -0
  163. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/precheck/scripts.py +0 -0
  164. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/ptk/__init__.py +0 -0
  165. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/ptk/apps/__init__.py +0 -0
  166. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/ptk/apps/ncdu.py +0 -0
  167. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/pycharm/__init__.py +0 -0
  168. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/pycharm/__main__.py +0 -0
  169. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/pycharm/cli.py +0 -0
  170. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/pyproject/__init__.py +0 -0
  171. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/pyproject/__main__.py +0 -0
  172. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/pyproject/cexts.py +0 -0
  173. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/pyproject/cli.py +0 -0
  174. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/pyproject/configs.py +0 -0
  175. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/pyproject/inject.py +0 -0
  176. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/pyproject/pkg.py +0 -0
  177. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/pyproject/reqs.py +0 -0
  178. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/pyproject/resources/__init__.py +0 -0
  179. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/pyproject/resources/docker-dev.sh +0 -0
  180. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/pyproject/resources/python.sh +0 -0
  181. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/pyproject/venvs.py +0 -0
  182. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/revisions.py +0 -0
  183. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/scripts/__init__.py +0 -0
  184. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/scripts/bumpversion.py +0 -0
  185. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/scripts/execrss.py +0 -0
  186. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/scripts/exectime.py +0 -0
  187. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/scripts/importtrace.py +0 -0
  188. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/scripts/slowcat.py +0 -0
  189. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/scripts/tmpexec.py +0 -0
  190. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/secrets.py +0 -0
  191. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/tagstrings.py +0 -0
  192. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/tokens/__init__.py +0 -0
  193. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/tokens/all.py +0 -0
  194. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/tokens/tokenizert.py +0 -0
  195. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/tokens/utils.py +0 -0
  196. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/tools/__init__.py +0 -0
  197. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/tools/cloc.py +0 -0
  198. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/tools/doc.py +0 -0
  199. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/tools/docker.py +0 -0
  200. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/tools/git.py +0 -0
  201. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/tools/importscan.py +0 -0
  202. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/tools/json/__init__.py +0 -0
  203. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/tools/json/__main__.py +0 -0
  204. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/tools/json/cli.py +0 -0
  205. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/tools/json/io.py +0 -0
  206. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/tools/json/parsing.py +0 -0
  207. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/tools/json/processing.py +0 -0
  208. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/tools/json/rendering.py +0 -0
  209. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/tools/linehisto.py +0 -0
  210. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/tools/mkenv.py +0 -0
  211. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/tools/mkrelimp.py +0 -0
  212. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/tools/notebook.py +0 -0
  213. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/tools/pawk/__init__.py +0 -0
  214. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/tools/pawk/__main__.py +0 -0
  215. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/tools/pawk/pawk.py +0 -0
  216. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/tools/pip.py +0 -0
  217. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/tools/prof.py +0 -0
  218. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/tools/qr.py +0 -0
  219. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/tools/sqlrepl.py +0 -0
  220. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev/wheelfile.py +0 -0
  221. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev.egg-info/SOURCES.txt +0 -0
  222. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev.egg-info/dependency_links.txt +0 -0
  223. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev.egg-info/entry_points.txt +0 -0
  224. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/omdev.egg-info/top_level.txt +0 -0
  225. {omdev-0.0.0.dev214 → omdev-0.0.0.dev216}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: omdev
3
- Version: 0.0.0.dev214
3
+ Version: 0.0.0.dev216
4
4
  Summary: omdev
5
5
  Author: wrmsr
6
6
  License: BSD-3-Clause
@@ -12,7 +12,7 @@ Classifier: Operating System :: OS Independent
12
12
  Classifier: Operating System :: POSIX
13
13
  Requires-Python: >=3.12
14
14
  License-File: LICENSE
15
- Requires-Dist: omlish==0.0.0.dev214
15
+ Requires-Dist: omlish==0.0.0.dev216
16
16
  Provides-Extra: all
17
17
  Requires-Dist: black~=24.10; extra == "all"
18
18
  Requires-Dist: pycparser~=2.22; extra == "all"
@@ -167,7 +167,7 @@ def asyncio_once(fn: CallableT) -> CallableT:
167
167
  return ta.cast(CallableT, inner)
168
168
 
169
169
 
170
- def drain_tasks(loop=None):
170
+ def drain_asyncio_tasks(loop=None):
171
171
  if loop is None:
172
172
  loop = asyncio.get_running_loop()
173
173
 
@@ -182,7 +182,7 @@ def draining_asyncio_tasks() -> ta.Iterator[None]:
182
182
  yield
183
183
  finally:
184
184
  if loop is not None:
185
- drain_tasks(loop) # noqa
185
+ drain_asyncio_tasks(loop) # noqa
186
186
 
187
187
 
188
188
  async def asyncio_wait_concurrent(
@@ -2563,7 +2563,7 @@ TODO:
2563
2563
 
2564
2564
  STANDARD_LOG_FORMAT_PARTS = [
2565
2565
  ('asctime', '%(asctime)-15s'),
2566
- ('process', 'pid=%(process)-6s'),
2566
+ ('process', 'pid=%(process)s'),
2567
2567
  ('thread', 'tid=%(thread)x'),
2568
2568
  ('levelname', '%(levelname)s'),
2569
2569
  ('name', '%(name)s'),
@@ -3500,7 +3500,7 @@ TODO:
3500
3500
 
3501
3501
  STANDARD_LOG_FORMAT_PARTS = [
3502
3502
  ('asctime', '%(asctime)-15s'),
3503
- ('process', 'pid=%(process)-6s'),
3503
+ ('process', 'pid=%(process)s'),
3504
3504
  ('thread', 'tid=%(thread)x'),
3505
3505
  ('levelname', '%(levelname)s'),
3506
3506
  ('name', '%(name)s'),
@@ -4962,6 +4962,7 @@ inj = InjectionApi()
4962
4962
  TODO:
4963
4963
  - pickle stdlib objs? have to pin to 3.8 pickle protocol, will be cross-version
4964
4964
  - literals
4965
+ - Options.sequence_cls = list, mapping_cls = dict, ... - def with_mutable_containers() -> Options
4965
4966
  """
4966
4967
 
4967
4968
 
@@ -5114,21 +5115,55 @@ class IterableObjMarshaler(ObjMarshaler):
5114
5115
  @dc.dataclass(frozen=True)
5115
5116
  class FieldsObjMarshaler(ObjMarshaler):
5116
5117
  ty: type
5117
- fs: ta.Mapping[str, ObjMarshaler]
5118
+
5119
+ @dc.dataclass(frozen=True)
5120
+ class Field:
5121
+ att: str
5122
+ key: str
5123
+ m: ObjMarshaler
5124
+
5125
+ omit_if_none: bool = False
5126
+
5127
+ fs: ta.Sequence[Field]
5128
+
5118
5129
  non_strict: bool = False
5119
5130
 
5131
+ #
5132
+
5133
+ _fs_by_att: ta.ClassVar[ta.Mapping[str, Field]]
5134
+ _fs_by_key: ta.ClassVar[ta.Mapping[str, Field]]
5135
+
5136
+ def __post_init__(self) -> None:
5137
+ fs_by_att: dict = {}
5138
+ fs_by_key: dict = {}
5139
+ for f in self.fs:
5140
+ check.not_in(check.non_empty_str(f.att), fs_by_att)
5141
+ check.not_in(check.non_empty_str(f.key), fs_by_key)
5142
+ fs_by_att[f.att] = f
5143
+ fs_by_key[f.key] = f
5144
+ self.__dict__['_fs_by_att'] = fs_by_att
5145
+ self.__dict__['_fs_by_key'] = fs_by_key
5146
+
5147
+ #
5148
+
5120
5149
  def marshal(self, o: ta.Any, ctx: 'ObjMarshalContext') -> ta.Any:
5121
- return {
5122
- k: m.marshal(getattr(o, k), ctx)
5123
- for k, m in self.fs.items()
5124
- }
5150
+ d = {}
5151
+ for f in self.fs:
5152
+ mv = f.m.marshal(getattr(o, f.att), ctx)
5153
+ if mv is None and f.omit_if_none:
5154
+ continue
5155
+ d[f.key] = mv
5156
+ return d
5125
5157
 
5126
5158
  def unmarshal(self, o: ta.Any, ctx: 'ObjMarshalContext') -> ta.Any:
5127
- return self.ty(**{
5128
- k: self.fs[k].unmarshal(v, ctx)
5129
- for k, v in o.items()
5130
- if not (self.non_strict or ctx.options.non_strict_fields) or k in self.fs
5131
- })
5159
+ kw = {}
5160
+ for k, v in o.items():
5161
+ if (f := self._fs_by_key.get(k)) is None:
5162
+ if not (self.non_strict or ctx.options.non_strict_fields):
5163
+ raise KeyError(k)
5164
+ continue
5165
+ kw[f.att] = f.m.unmarshal(v, ctx)
5166
+ return self.ty(**kw)
5132
5167
 
5133
5168
 
5134
5169
  @dc.dataclass(frozen=True)
@@ -5263,6 +5298,22 @@ def register_single_field_type_obj_marshaler(fld, ty=None):
5263
5298
  ##
5264
5299
 
5265
5300
 
5301
+ class ObjMarshalerFieldMetadata:
5302
+ def __new__(cls, *args, **kwargs): # noqa
5303
+ raise TypeError
5304
+
5305
+
5306
+ class OBJ_MARSHALER_FIELD_KEY(ObjMarshalerFieldMetadata): # noqa
5307
+ pass
5308
+
5309
+
5310
+ class OBJ_MARSHALER_OMIT_IF_NONE(ObjMarshalerFieldMetadata): # noqa
5311
+ pass
5312
+
5313
+
5314
+ ##
5315
+
5316
+
5266
5317
  class ObjMarshalerManager:
5267
5318
  def __init__(
5268
5319
  self,
@@ -5322,14 +5373,30 @@ class ObjMarshalerManager:
5322
5373
  if dc.is_dataclass(ty):
5323
5374
  return FieldsObjMarshaler(
5324
5375
  ty,
5325
- {f.name: rec(f.type) for f in dc.fields(ty)},
5376
+ [
5377
+ FieldsObjMarshaler.Field(
5378
+ att=f.name,
5379
+ key=check.non_empty_str(fk),
5380
+ m=rec(f.type),
5381
+ omit_if_none=check.isinstance(f.metadata.get(OBJ_MARSHALER_OMIT_IF_NONE, False), bool),
5382
+ )
5383
+ for f in dc.fields(ty)
5384
+ if (fk := f.metadata.get(OBJ_MARSHALER_FIELD_KEY, f.name)) is not None
5385
+ ],
5326
5386
  non_strict=non_strict_fields,
5327
5387
  )
5328
5388
 
5329
5389
  if issubclass(ty, tuple) and hasattr(ty, '_fields'):
5330
5390
  return FieldsObjMarshaler(
5331
5391
  ty,
5332
- {p.name: rec(p.annotation) for p in inspect.signature(ty).parameters.values()},
5392
+ [
5393
+ FieldsObjMarshaler.Field(
5394
+ att=p.name,
5395
+ key=p.name,
5396
+ m=rec(p.annotation),
5397
+ )
5398
+ for p in inspect.signature(ty).parameters.values()
5399
+ ],
5333
5400
  non_strict=non_strict_fields,
5334
5401
  )
5335
5402
 
@@ -5673,7 +5740,7 @@ TODO:
5673
5740
 
5674
5741
  STANDARD_LOG_FORMAT_PARTS = [
5675
5742
  ('asctime', '%(asctime)-15s'),
5676
- ('process', 'pid=%(process)-6s'),
5743
+ ('process', 'pid=%(process)s'),
5677
5744
  ('thread', 'tid=%(thread)x'),
5678
5745
  ('levelname', '%(levelname)s'),
5679
5746
  ('name', '%(name)s'),
@@ -18,6 +18,7 @@ if ta.TYPE_CHECKING:
18
18
  import yaml
19
19
 
20
20
  from omlish.formats import dotenv
21
+ from omlish.formats import json5
21
22
  from omlish.formats import props
22
23
  from omlish.formats import xml
23
24
 
@@ -29,6 +30,7 @@ else:
29
30
  yaml = lang.proxy_import('yaml')
30
31
 
31
32
  dotenv = lang.proxy_import('omlish.formats.dotenv')
33
+ json5 = lang.proxy_import('omlish.formats.json5')
32
34
  props = lang.proxy_import('omlish.formats.props')
33
35
  xml = lang.proxy_import('omlish.formats.xml')
34
36
 
@@ -45,6 +47,8 @@ class Format:
45
47
  class Formats(enum.Enum):
46
48
  JSON = Format(['json'], json.load)
47
49
 
50
+ JSON5 = Format(['json5'], lambda f: json5.loads(f.read()))
51
+
48
52
  YAML = Format(['yaml', 'yml'], lambda f: yaml.safe_load(f))
49
53
 
50
54
  TOML = Format(['toml'], lambda f: tomllib.loads(f.read()))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: omdev
3
- Version: 0.0.0.dev214
3
+ Version: 0.0.0.dev216
4
4
  Summary: omdev
5
5
  Author: wrmsr
6
6
  License: BSD-3-Clause
@@ -12,7 +12,7 @@ Classifier: Operating System :: OS Independent
12
12
  Classifier: Operating System :: POSIX
13
13
  Requires-Python: >=3.12
14
14
  License-File: LICENSE
15
- Requires-Dist: omlish==0.0.0.dev214
15
+ Requires-Dist: omlish==0.0.0.dev216
16
16
  Provides-Extra: all
17
17
  Requires-Dist: black~=24.10; extra == "all"
18
18
  Requires-Dist: pycparser~=2.22; extra == "all"
@@ -1,4 +1,4 @@
1
- omlish==0.0.0.dev214
1
+ omlish==0.0.0.dev216
2
2
 
3
3
  [all]
4
4
  black~=24.10
@@ -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.dev214'
15
+ version = '0.0.0.dev216'
16
16
  classifiers = [
17
17
  'License :: OSI Approved :: BSD License',
18
18
  'Development Status :: 2 - Pre-Alpha',
@@ -22,7 +22,7 @@ classifiers = [
22
22
  ]
23
23
  description = 'omdev'
24
24
  dependencies = [
25
- 'omlish == 0.0.0.dev214',
25
+ 'omlish == 0.0.0.dev216',
26
26
  ]
27
27
 
28
28
  [project.optional-dependencies]
File without changes
File without changes
File without changes
File without changes
File without changes