omdev 0.0.0.dev434__tar.gz → 0.0.0.dev435__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 (333) hide show
  1. {omdev-0.0.0.dev434/omdev.egg-info → omdev-0.0.0.dev435}/PKG-INFO +2 -2
  2. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/.omlish-manifests.json +1 -1
  3. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/packaging/specifiers.py +2 -2
  4. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/packaging/versions.py +6 -6
  5. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/py/tools/importscan.py +2 -2
  6. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/scripts/ci.py +6 -6
  7. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/scripts/interp.py +12 -12
  8. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/scripts/pyproject.py +12 -12
  9. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/tools/docker.py +19 -7
  10. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435/omdev.egg-info}/PKG-INFO +2 -2
  11. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev.egg-info/requires.txt +1 -1
  12. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/pyproject.toml +2 -2
  13. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/LICENSE +0 -0
  14. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/MANIFEST.in +0 -0
  15. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/README.md +0 -0
  16. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/__about__.py +0 -0
  17. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/__init__.py +0 -0
  18. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/amalg/__init__.py +0 -0
  19. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/amalg/__main__.py +0 -0
  20. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/amalg/cli/__init__.py +0 -0
  21. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/amalg/cli/main.py +0 -0
  22. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/amalg/gen/__init__.py +0 -0
  23. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/amalg/gen/gen.py +0 -0
  24. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/amalg/gen/imports.py +0 -0
  25. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/amalg/gen/manifests.py +0 -0
  26. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/amalg/gen/resources.py +0 -0
  27. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/amalg/gen/srcfiles.py +0 -0
  28. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/amalg/gen/strip.py +0 -0
  29. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/amalg/gen/types.py +0 -0
  30. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/amalg/gen/typing.py +0 -0
  31. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/amalg/sources.py +0 -0
  32. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cache/__init__.py +0 -0
  33. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cache/compute/__init__.py +0 -0
  34. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cache/compute/cache.py +0 -0
  35. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cache/compute/contexts.py +0 -0
  36. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cache/compute/currents.py +0 -0
  37. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cache/compute/fns.py +0 -0
  38. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cache/compute/resolvers.py +0 -0
  39. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cache/compute/storage.py +0 -0
  40. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cache/compute/types.py +0 -0
  41. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cache/data/__init__.py +0 -0
  42. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cache/data/actions.py +0 -0
  43. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cache/data/cache.py +0 -0
  44. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cache/data/consts.py +0 -0
  45. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cache/data/defaults.py +0 -0
  46. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cache/data/manifests.py +0 -0
  47. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cache/data/specs.py +0 -0
  48. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/capi/__init__.py +0 -0
  49. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/capi/darwin/__init__.py +0 -0
  50. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/capi/darwin/aps.py +0 -0
  51. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/capi/darwin/ax.py +0 -0
  52. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/capi/darwin/cf.py +0 -0
  53. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/capi/darwin/cg.py +0 -0
  54. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/capi/linux/__init__.py +0 -0
  55. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/capi/linux/x11.py +0 -0
  56. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cc/__init__.py +0 -0
  57. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cc/__main__.py +0 -0
  58. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cc/cdeps.py +0 -0
  59. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cc/cdeps.toml +0 -0
  60. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cc/cli.py +0 -0
  61. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cc/srclangs.py +0 -0
  62. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cexts/__init__.py +0 -0
  63. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cexts/_boilerplate.cc +0 -0
  64. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cexts/_distutils/LICENSE +0 -0
  65. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cexts/_distutils/__init__.py +0 -0
  66. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cexts/_distutils/build_ext.py +0 -0
  67. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cexts/_distutils/compilers/__init__.py +0 -0
  68. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cexts/_distutils/compilers/ccompiler.py +0 -0
  69. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cexts/_distutils/compilers/options.py +0 -0
  70. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cexts/_distutils/compilers/unixccompiler.py +0 -0
  71. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cexts/_distutils/dir_util.py +0 -0
  72. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cexts/_distutils/errors.py +0 -0
  73. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cexts/_distutils/extension.py +0 -0
  74. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cexts/_distutils/file_util.py +0 -0
  75. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cexts/_distutils/modified.py +0 -0
  76. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cexts/_distutils/spawn.py +0 -0
  77. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cexts/_distutils/sysconfig.py +0 -0
  78. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cexts/_distutils/util.py +0 -0
  79. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cexts/_distutils/version.py +0 -0
  80. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cexts/build.py +0 -0
  81. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cexts/cmake.py +0 -0
  82. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cexts/importhook.py +0 -0
  83. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cexts/magic.py +0 -0
  84. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cexts/scan.py +0 -0
  85. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ci/__init__.py +0 -0
  86. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ci/__main__.py +0 -0
  87. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ci/cache.py +0 -0
  88. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ci/ci.py +0 -0
  89. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ci/cli.py +0 -0
  90. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ci/compose.py +0 -0
  91. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ci/consts.py +0 -0
  92. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ci/docker/__init__.py +0 -0
  93. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ci/docker/buildcaching.py +0 -0
  94. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ci/docker/cache.py +0 -0
  95. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ci/docker/cacheserved/__init__.py +0 -0
  96. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ci/docker/cacheserved/cache.py +0 -0
  97. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ci/docker/cacheserved/manifests.py +0 -0
  98. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ci/docker/cmds.py +0 -0
  99. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ci/docker/dataserver.py +0 -0
  100. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ci/docker/imagepulling.py +0 -0
  101. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ci/docker/inject.py +0 -0
  102. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ci/docker/packing.py +0 -0
  103. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ci/docker/repositories.py +0 -0
  104. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ci/docker/utils.py +0 -0
  105. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ci/github/__init__.py +0 -0
  106. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ci/github/api/__init__.py +0 -0
  107. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ci/github/api/clients.py +0 -0
  108. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ci/github/api/v1/__init__.py +0 -0
  109. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ci/github/api/v1/api.py +0 -0
  110. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ci/github/api/v1/client.py +0 -0
  111. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ci/github/api/v2/__init__.py +0 -0
  112. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ci/github/api/v2/api.py +0 -0
  113. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ci/github/api/v2/azure.py +0 -0
  114. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ci/github/api/v2/client.py +0 -0
  115. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ci/github/bootstrap.py +0 -0
  116. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ci/github/cache.py +0 -0
  117. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ci/github/cli.py +0 -0
  118. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ci/github/env.py +0 -0
  119. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ci/github/inject.py +0 -0
  120. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ci/inject.py +0 -0
  121. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ci/requirements.py +0 -0
  122. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ci/shell.py +0 -0
  123. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ci/utils.py +0 -0
  124. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cli/__init__.py +0 -0
  125. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cli/__main__.py +0 -0
  126. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cli/_pathhack.py +0 -0
  127. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cli/clicli.py +0 -0
  128. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cli/install.py +0 -0
  129. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cli/main.py +0 -0
  130. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cli/managers.py +0 -0
  131. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cli/types.py +0 -0
  132. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/clipboard/__init__.py +0 -0
  133. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/clipboard/clipboard.py +0 -0
  134. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/clipboard/darwin_cf.py +0 -0
  135. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/clipboard/linux_x11.py +0 -0
  136. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cmake.py +0 -0
  137. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cmdlog/__init__.py +0 -0
  138. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cmdlog/__main__.py +0 -0
  139. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cmdlog/_cmdlog.py +0 -0
  140. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cmdlog/cli.py +0 -0
  141. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/cmdlog/cmdlog.py +0 -0
  142. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/dataclasses/__init__.py +0 -0
  143. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/dataclasses/__main__.py +0 -0
  144. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/dataclasses/cli.py +0 -0
  145. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/dataclasses/codegen.py +0 -0
  146. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/dataserver/__init__.py +0 -0
  147. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/dataserver/handlers.py +0 -0
  148. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/dataserver/http.py +0 -0
  149. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/dataserver/routes.py +0 -0
  150. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/dataserver/server.py +0 -0
  151. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/dataserver/targets.py +0 -0
  152. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/git/__init__.py +0 -0
  153. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/git/magic.py +0 -0
  154. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/git/revisions.py +0 -0
  155. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/git/shallow.py +0 -0
  156. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/git/status.py +0 -0
  157. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/home/__init__.py +0 -0
  158. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/home/paths.py +0 -0
  159. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/home/secrets.py +0 -0
  160. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/home/shadow.py +0 -0
  161. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/imgur.py +0 -0
  162. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/intellij/__init__.py +0 -0
  163. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/intellij/cli.py +0 -0
  164. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/intellij/ides.py +0 -0
  165. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/intellij/open.py +0 -0
  166. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/interp/__init__.py +0 -0
  167. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/interp/__main__.py +0 -0
  168. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/interp/cli.py +0 -0
  169. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/interp/default.py +0 -0
  170. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/interp/inject.py +0 -0
  171. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/interp/inspect.py +0 -0
  172. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/interp/providers/__init__.py +0 -0
  173. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/interp/providers/base.py +0 -0
  174. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/interp/providers/inject.py +0 -0
  175. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/interp/providers/running.py +0 -0
  176. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/interp/providers/standalone.py +0 -0
  177. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/interp/providers/system.py +0 -0
  178. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/interp/pyenv/__init__.py +0 -0
  179. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/interp/pyenv/inject.py +0 -0
  180. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/interp/pyenv/install.py +0 -0
  181. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/interp/pyenv/provider.py +0 -0
  182. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/interp/pyenv/pyenv.py +0 -0
  183. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/interp/resolvers.py +0 -0
  184. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/interp/types.py +0 -0
  185. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/interp/uv/__init__.py +0 -0
  186. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/interp/uv/inject.py +0 -0
  187. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/interp/uv/provider.py +0 -0
  188. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/interp/uv/uv.py +0 -0
  189. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/interp/venvs.py +0 -0
  190. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/magic/__init__.py +0 -0
  191. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/magic/__main__.py +0 -0
  192. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/magic/cli.py +0 -0
  193. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/magic/find.py +0 -0
  194. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/magic/magic.py +0 -0
  195. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/magic/prepare.py +0 -0
  196. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/magic/styles.py +0 -0
  197. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/manifests/__init__.py +0 -0
  198. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/manifests/__main__.py +0 -0
  199. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/manifests/_dumping.py +0 -0
  200. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/manifests/building.py +0 -0
  201. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/manifests/dumping.py +0 -0
  202. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/manifests/main.py +0 -0
  203. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/mypy/__init__.py +0 -0
  204. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/mypy/debug.py +0 -0
  205. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/mypy/report.py +0 -0
  206. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/oci/__init__.py +0 -0
  207. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/oci/building.py +0 -0
  208. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/oci/compression.py +0 -0
  209. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/oci/data.py +0 -0
  210. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/oci/datarefs.py +0 -0
  211. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/oci/dataserver.py +0 -0
  212. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/oci/loading.py +0 -0
  213. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/oci/media.py +0 -0
  214. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/oci/pack/__init__.py +0 -0
  215. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/oci/pack/packing.py +0 -0
  216. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/oci/pack/repositories.py +0 -0
  217. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/oci/pack/unpacking.py +0 -0
  218. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/oci/repositories.py +0 -0
  219. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/oci/tars.py +0 -0
  220. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/packaging/__init__.py +0 -0
  221. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/packaging/marshal.py +0 -0
  222. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/packaging/names.py +0 -0
  223. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/packaging/requires.py +0 -0
  224. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/packaging/revisions.py +0 -0
  225. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/packaging/wheelfile.py +0 -0
  226. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/pip.py +0 -0
  227. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/precheck/__init__.py +0 -0
  228. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/precheck/__main__.py +0 -0
  229. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/precheck/base.py +0 -0
  230. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/precheck/caches.py +0 -0
  231. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/precheck/git.py +0 -0
  232. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/precheck/imports.py +0 -0
  233. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/precheck/lite.py +0 -0
  234. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/precheck/main.py +0 -0
  235. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/precheck/manifests.py +0 -0
  236. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/precheck/scripts.py +0 -0
  237. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/precheck/unicode.py +0 -0
  238. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ptk/__init__.py +0 -0
  239. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ptk/apps/__init__.py +0 -0
  240. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ptk/apps/ncdu.py +0 -0
  241. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ptk/confirm.py +0 -0
  242. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ptk/markdown/LICENSE +0 -0
  243. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ptk/markdown/__init__.py +0 -0
  244. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ptk/markdown/__main__.py +0 -0
  245. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ptk/markdown/border.py +0 -0
  246. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ptk/markdown/cli.py +0 -0
  247. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ptk/markdown/markdown.py +0 -0
  248. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ptk/markdown/parser.py +0 -0
  249. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ptk/markdown/styles.py +0 -0
  250. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ptk/markdown/tags.py +0 -0
  251. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/ptk/markdown/utils.py +0 -0
  252. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/py/__init__.py +0 -0
  253. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/py/attrdocs.py +0 -0
  254. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/py/bracepy.py +0 -0
  255. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/py/classdot.py +0 -0
  256. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/py/docstrings/LICENSE +0 -0
  257. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/py/docstrings/__init__.py +0 -0
  258. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/py/docstrings/attrdoc.py +0 -0
  259. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/py/docstrings/common.py +0 -0
  260. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/py/docstrings/epydoc.py +0 -0
  261. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/py/docstrings/google.py +0 -0
  262. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/py/docstrings/numpydoc.py +0 -0
  263. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/py/docstrings/parser.py +0 -0
  264. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/py/docstrings/rest.py +0 -0
  265. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/py/findimports.py +0 -0
  266. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/py/scripts/__init__.py +0 -0
  267. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/py/scripts/bumpversion.py +0 -0
  268. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/py/scripts/execstat.py +0 -0
  269. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/py/scripts/importtrace.py +0 -0
  270. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/py/srcheaders.py +0 -0
  271. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/py/tools/__init__.py +0 -0
  272. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/py/tools/mkrelimp.py +0 -0
  273. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/pyproject/__init__.py +0 -0
  274. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/pyproject/__main__.py +0 -0
  275. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/pyproject/cexts.py +0 -0
  276. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/pyproject/cli.py +0 -0
  277. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/pyproject/configs.py +0 -0
  278. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/pyproject/inject.py +0 -0
  279. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/pyproject/pkg.py +0 -0
  280. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/pyproject/reqs.py +0 -0
  281. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/pyproject/resources/__init__.py +0 -0
  282. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/pyproject/resources/docker-dev.sh +0 -0
  283. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/pyproject/resources/python.sh +0 -0
  284. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/pyproject/venvs.py +0 -0
  285. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/scripts/__init__.py +0 -0
  286. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/scripts/slowcat.py +0 -0
  287. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/scripts/tmpexec.py +0 -0
  288. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/tagstrings.py +0 -0
  289. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/tokens/__init__.py +0 -0
  290. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/tokens/all.py +0 -0
  291. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/tokens/tokenizert.py +0 -0
  292. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/tokens/utils.py +0 -0
  293. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/tools/__init__.py +0 -0
  294. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/tools/cloc.py +0 -0
  295. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/tools/diff.py +0 -0
  296. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/tools/doc.py +0 -0
  297. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/tools/git/__init__.py +0 -0
  298. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/tools/git/__main__.py +0 -0
  299. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/tools/git/cli.py +0 -0
  300. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/tools/git/cloning.py +0 -0
  301. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/tools/git/consts.py +0 -0
  302. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/tools/git/messages.py +0 -0
  303. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/tools/json/__init__.py +0 -0
  304. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/tools/json/__main__.py +0 -0
  305. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/tools/json/cli.py +0 -0
  306. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/tools/json/formats.py +0 -0
  307. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/tools/json/io.py +0 -0
  308. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/tools/json/parsing.py +0 -0
  309. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/tools/json/processing.py +0 -0
  310. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/tools/json/rendering.py +0 -0
  311. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/tools/jsonview/__init__.py +0 -0
  312. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/tools/jsonview/__main__.py +0 -0
  313. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/tools/jsonview/cli.py +0 -0
  314. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/tools/jsonview/resources/__init__.py +0 -0
  315. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/tools/jsonview/resources/jsonview.css +0 -0
  316. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/tools/jsonview/resources/jsonview.js +0 -0
  317. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/tools/linehisto.py +0 -0
  318. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/tools/mkenv.py +0 -0
  319. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/tools/notebook.py +0 -0
  320. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/tools/pawk/__init__.py +0 -0
  321. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/tools/pawk/__main__.py +0 -0
  322. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/tools/pawk/pawk.py +0 -0
  323. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/tools/pip.py +0 -0
  324. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/tools/prof.py +0 -0
  325. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/tools/qr.py +0 -0
  326. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/tools/shadow.py +0 -0
  327. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/tools/shell.py +0 -0
  328. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev/tools/sqlrepl.py +0 -0
  329. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev.egg-info/SOURCES.txt +0 -0
  330. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev.egg-info/dependency_links.txt +0 -0
  331. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev.egg-info/entry_points.txt +0 -0
  332. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/omdev.egg-info/top_level.txt +0 -0
  333. {omdev-0.0.0.dev434 → omdev-0.0.0.dev435}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: omdev
3
- Version: 0.0.0.dev434
3
+ Version: 0.0.0.dev435
4
4
  Summary: omdev
5
5
  Author: wrmsr
6
6
  License-Expression: BSD-3-Clause
@@ -14,7 +14,7 @@ Classifier: Programming Language :: Python :: 3.13
14
14
  Requires-Python: >=3.13
15
15
  Description-Content-Type: text/markdown
16
16
  License-File: LICENSE
17
- Requires-Dist: omlish==0.0.0.dev434
17
+ Requires-Dist: omlish==0.0.0.dev435
18
18
  Provides-Extra: all
19
19
  Requires-Dist: black~=25.1; extra == "all"
20
20
  Requires-Dist: pycparser~=2.23; extra == "all"
@@ -368,7 +368,7 @@
368
368
  "module": ".tools.docker",
369
369
  "attr": "_CLI_MODULE",
370
370
  "file": "omdev/tools/docker.py",
371
- "line": 259,
371
+ "line": 271,
372
372
  "value": {
373
373
  "!.cli.types.CliModule": {
374
374
  "name": "docker",
@@ -31,9 +31,9 @@ from .versions import Version
31
31
  from .versions import canonicalize_version
32
32
 
33
33
 
34
- UnparsedVersion = ta.Union['Version', str]
34
+ UnparsedVersion = ta.Union['Version', str] # ta.TypeAlias
35
35
  UnparsedVersionVar = ta.TypeVar('UnparsedVersionVar', bound=UnparsedVersion)
36
- CallableVersionOperator = ta.Callable[['Version', str], bool]
36
+ CallableVersionOperator = ta.Callable[['Version', str], bool] # ta.TypeAlias
37
37
 
38
38
 
39
39
  ##
@@ -27,13 +27,13 @@ import re
27
27
  import typing as ta
28
28
 
29
29
 
30
- VersionLocalType = ta.Tuple[ta.Union[int, str], ...]
30
+ VersionLocalType = ta.Tuple[ta.Union[int, str], ...] # ta.TypeAlias
31
31
 
32
- VersionCmpPrePostDevType = ta.Union['InfinityVersionType', 'NegativeInfinityVersionType', ta.Tuple[str, int]]
33
- _VersionCmpLocalType0 = ta.Tuple[ta.Union[ta.Tuple[int, str], ta.Tuple['NegativeInfinityVersionType', ta.Union[int, str]]], ...] # noqa
34
- VersionCmpLocalType = ta.Union['NegativeInfinityVersionType', _VersionCmpLocalType0]
35
- VersionCmpKey = ta.Tuple[int, ta.Tuple[int, ...], VersionCmpPrePostDevType, VersionCmpPrePostDevType, VersionCmpPrePostDevType, VersionCmpLocalType] # noqa
36
- VersionComparisonMethod = ta.Callable[[VersionCmpKey, VersionCmpKey], bool]
32
+ VersionCmpPrePostDevType = ta.Union['InfinityVersionType', 'NegativeInfinityVersionType', ta.Tuple[str, int]] # ta.TypeAlias # noqa
33
+ _VersionCmpLocalType0 = ta.Tuple[ta.Union[ta.Tuple[int, str], ta.Tuple['NegativeInfinityVersionType', ta.Union[int, str]]], ...] # ta.TypeAlias # noqa
34
+ VersionCmpLocalType = ta.Union['NegativeInfinityVersionType', _VersionCmpLocalType0] # ta.TypeAlias
35
+ VersionCmpKey = ta.Tuple[int, ta.Tuple[int, ...], VersionCmpPrePostDevType, VersionCmpPrePostDevType, VersionCmpPrePostDevType, VersionCmpLocalType] # ta.TypeAlias # noqa
36
+ VersionComparisonMethod = ta.Callable[[VersionCmpKey, VersionCmpKey], bool] # ta.TypeAlias
37
37
 
38
38
 
39
39
  ##
@@ -23,8 +23,8 @@ import sys
23
23
  import typing as ta
24
24
 
25
25
  from omlish import check
26
- from omlish import concurrent as cu
27
26
  from omlish import lang
27
+ from omlish.concurrent import all as conc
28
28
 
29
29
  from ...cli import CliModule
30
30
 
@@ -163,7 +163,7 @@ def run(
163
163
  specs.append(spec)
164
164
 
165
165
  out: dict[str, Item] = {}
166
- with cu.new_executor(num_threads) as ex:
166
+ with conc.new_executor(num_threads) as ex:
167
167
  futs = [ex.submit(run_one, spec, **kwargs) for spec in specs]
168
168
  for fut in futs:
169
169
  item = fut.result()
@@ -108,7 +108,7 @@ AsyncExitStackedT = ta.TypeVar('AsyncExitStackedT', bound='AsyncExitStacked')
108
108
  LogLevel = int # ta.TypeAlias
109
109
 
110
110
  # ../../omlish/sockets/addresses.py
111
- SocketAddress = ta.Any
111
+ SocketAddress = ta.Any # ta.TypeAlias
112
112
 
113
113
  # github/api/v2/api.py
114
114
  GithubCacheServiceV2RequestT = ta.TypeVar('GithubCacheServiceV2RequestT')
@@ -150,10 +150,10 @@ HttpHandler = ta.Callable[['HttpHandlerRequest'], 'HttpHandlerResponse'] # ta.T
150
150
  HttpHandlerResponseData = ta.Union[bytes, 'HttpHandlerResponseStreamedData'] # ta.TypeAlias # noqa
151
151
 
152
152
  # ../../omlish/lite/inject.py
153
- InjectorKeyCls = ta.Union[type, ta.NewType]
154
- InjectorProviderFn = ta.Callable[['Injector'], ta.Any]
155
- InjectorProviderFnMap = ta.Mapping['InjectorKey', 'InjectorProviderFn']
156
- InjectorBindingOrBindings = ta.Union['InjectorBinding', 'InjectorBindings']
153
+ InjectorKeyCls = ta.Union[type, ta.NewType] # ta.TypeAlias
154
+ InjectorProviderFn = ta.Callable[['Injector'], ta.Any] # ta.TypeAlias
155
+ InjectorProviderFnMap = ta.Mapping['InjectorKey', 'InjectorProviderFn'] # ta.TypeAlias
156
+ InjectorBindingOrBindings = ta.Union['InjectorBinding', 'InjectorBindings'] # ta.TypeAlias
157
157
 
158
158
  # ../../omlish/logs/contexts.py
159
159
  LoggingContextInfoT = ta.TypeVar('LoggingContextInfoT', bound=LoggingContextInfo)
@@ -165,7 +165,7 @@ SocketServerHandler = ta.Callable[['SocketAndAddress'], None] # ta.TypeAlias
165
165
  DataServerTargetT = ta.TypeVar('DataServerTargetT', bound='DataServerTarget')
166
166
 
167
167
  # ../../omlish/http/coro/server/server.py
168
- CoroHttpServerFactory = ta.Callable[[SocketAddress], 'CoroHttpServer']
168
+ CoroHttpServerFactory = ta.Callable[[SocketAddress], 'CoroHttpServer'] # ta.TypeAlias
169
169
 
170
170
  # ../../omlish/subprocesses/base.py
171
171
  SubprocessChannelOption = ta.Literal['pipe', 'stdout', 'devnull'] # ta.TypeAlias
@@ -53,12 +53,12 @@ if sys.version_info < (3, 8):
53
53
 
54
54
 
55
55
  # ../packaging/versions.py
56
- VersionLocalType = ta.Tuple[ta.Union[int, str], ...]
57
- VersionCmpPrePostDevType = ta.Union['InfinityVersionType', 'NegativeInfinityVersionType', ta.Tuple[str, int]]
58
- _VersionCmpLocalType0 = ta.Tuple[ta.Union[ta.Tuple[int, str], ta.Tuple['NegativeInfinityVersionType', ta.Union[int, str]]], ...] # noqa
59
- VersionCmpLocalType = ta.Union['NegativeInfinityVersionType', _VersionCmpLocalType0]
60
- VersionCmpKey = ta.Tuple[int, ta.Tuple[int, ...], VersionCmpPrePostDevType, VersionCmpPrePostDevType, VersionCmpPrePostDevType, VersionCmpLocalType] # noqa
61
- VersionComparisonMethod = ta.Callable[[VersionCmpKey, VersionCmpKey], bool]
56
+ VersionLocalType = ta.Tuple[ta.Union[int, str], ...] # ta.TypeAlias
57
+ VersionCmpPrePostDevType = ta.Union['InfinityVersionType', 'NegativeInfinityVersionType', ta.Tuple[str, int]] # ta.TypeAlias # noqa
58
+ _VersionCmpLocalType0 = ta.Tuple[ta.Union[ta.Tuple[int, str], ta.Tuple['NegativeInfinityVersionType', ta.Union[int, str]]], ...] # ta.TypeAlias # noqa
59
+ VersionCmpLocalType = ta.Union['NegativeInfinityVersionType', _VersionCmpLocalType0] # ta.TypeAlias
60
+ VersionCmpKey = ta.Tuple[int, ta.Tuple[int, ...], VersionCmpPrePostDevType, VersionCmpPrePostDevType, VersionCmpPrePostDevType, VersionCmpLocalType] # ta.TypeAlias # noqa
61
+ VersionComparisonMethod = ta.Callable[[VersionCmpKey, VersionCmpKey], bool] # ta.TypeAlias
62
62
 
63
63
  # ../../omlish/lite/cached.py
64
64
  T = ta.TypeVar('T')
@@ -76,9 +76,9 @@ CheckArgsRenderer = ta.Callable[..., ta.Optional[str]] # ta.TypeAlias
76
76
  LogLevel = int # ta.TypeAlias
77
77
 
78
78
  # ../packaging/specifiers.py
79
- UnparsedVersion = ta.Union['Version', str]
79
+ UnparsedVersion = ta.Union['Version', str] # ta.TypeAlias
80
80
  UnparsedVersionVar = ta.TypeVar('UnparsedVersionVar', bound=UnparsedVersion)
81
- CallableVersionOperator = ta.Callable[['Version', str], bool]
81
+ CallableVersionOperator = ta.Callable[['Version', str], bool] # ta.TypeAlias
82
82
 
83
83
  # ../../omlish/argparse/cli.py
84
84
  ArgparseCmdFn = ta.Callable[[], ta.Optional[int]] # ta.TypeAlias
@@ -93,10 +93,10 @@ TimeoutLike = ta.Union['Timeout', ta.Type['Timeout.DEFAULT'], ta.Iterable['Timeo
93
93
  AwaitableT = ta.TypeVar('AwaitableT', bound=ta.Awaitable)
94
94
 
95
95
  # ../../omlish/lite/inject.py
96
- InjectorKeyCls = ta.Union[type, ta.NewType]
97
- InjectorProviderFn = ta.Callable[['Injector'], ta.Any]
98
- InjectorProviderFnMap = ta.Mapping['InjectorKey', 'InjectorProviderFn']
99
- InjectorBindingOrBindings = ta.Union['InjectorBinding', 'InjectorBindings']
96
+ InjectorKeyCls = ta.Union[type, ta.NewType] # ta.TypeAlias
97
+ InjectorProviderFn = ta.Callable[['Injector'], ta.Any] # ta.TypeAlias
98
+ InjectorProviderFnMap = ta.Mapping['InjectorKey', 'InjectorProviderFn'] # ta.TypeAlias
99
+ InjectorBindingOrBindings = ta.Union['InjectorBinding', 'InjectorBindings'] # ta.TypeAlias
100
100
 
101
101
  # ../../omlish/subprocesses/base.py
102
102
  SubprocessChannelOption = ta.Literal['pipe', 'stdout', 'devnull'] # ta.TypeAlias
@@ -84,12 +84,12 @@ if sys.version_info < (3, 8):
84
84
 
85
85
 
86
86
  # ../packaging/versions.py
87
- VersionLocalType = ta.Tuple[ta.Union[int, str], ...]
88
- VersionCmpPrePostDevType = ta.Union['InfinityVersionType', 'NegativeInfinityVersionType', ta.Tuple[str, int]]
89
- _VersionCmpLocalType0 = ta.Tuple[ta.Union[ta.Tuple[int, str], ta.Tuple['NegativeInfinityVersionType', ta.Union[int, str]]], ...] # noqa
90
- VersionCmpLocalType = ta.Union['NegativeInfinityVersionType', _VersionCmpLocalType0]
91
- VersionCmpKey = ta.Tuple[int, ta.Tuple[int, ...], VersionCmpPrePostDevType, VersionCmpPrePostDevType, VersionCmpPrePostDevType, VersionCmpLocalType] # noqa
92
- VersionComparisonMethod = ta.Callable[[VersionCmpKey, VersionCmpKey], bool]
87
+ VersionLocalType = ta.Tuple[ta.Union[int, str], ...] # ta.TypeAlias
88
+ VersionCmpPrePostDevType = ta.Union['InfinityVersionType', 'NegativeInfinityVersionType', ta.Tuple[str, int]] # ta.TypeAlias # noqa
89
+ _VersionCmpLocalType0 = ta.Tuple[ta.Union[ta.Tuple[int, str], ta.Tuple['NegativeInfinityVersionType', ta.Union[int, str]]], ...] # ta.TypeAlias # noqa
90
+ VersionCmpLocalType = ta.Union['NegativeInfinityVersionType', _VersionCmpLocalType0] # ta.TypeAlias
91
+ VersionCmpKey = ta.Tuple[int, ta.Tuple[int, ...], VersionCmpPrePostDevType, VersionCmpPrePostDevType, VersionCmpPrePostDevType, VersionCmpLocalType] # ta.TypeAlias # noqa
92
+ VersionComparisonMethod = ta.Callable[[VersionCmpKey, VersionCmpKey], bool] # ta.TypeAlias
93
93
 
94
94
  # ../../omlish/formats/toml/parser.py
95
95
  TomlParseFloat = ta.Callable[[str], ta.Any] # ta.TypeAlias
@@ -117,9 +117,9 @@ A2 = ta.TypeVar('A2')
117
117
  LogLevel = int # ta.TypeAlias
118
118
 
119
119
  # ../packaging/specifiers.py
120
- UnparsedVersion = ta.Union['Version', str]
120
+ UnparsedVersion = ta.Union['Version', str] # ta.TypeAlias
121
121
  UnparsedVersionVar = ta.TypeVar('UnparsedVersionVar', bound=UnparsedVersion)
122
- CallableVersionOperator = ta.Callable[['Version', str], bool]
122
+ CallableVersionOperator = ta.Callable[['Version', str], bool] # ta.TypeAlias
123
123
 
124
124
  # ../../omlish/argparse/cli.py
125
125
  ArgparseCmdFn = ta.Callable[[], ta.Optional[int]] # ta.TypeAlias
@@ -141,10 +141,10 @@ LoggingContextInfo = ta.Any # ta.TypeAlias
141
141
  AwaitableT = ta.TypeVar('AwaitableT', bound=ta.Awaitable)
142
142
 
143
143
  # ../../omlish/lite/inject.py
144
- InjectorKeyCls = ta.Union[type, ta.NewType]
145
- InjectorProviderFn = ta.Callable[['Injector'], ta.Any]
146
- InjectorProviderFnMap = ta.Mapping['InjectorKey', 'InjectorProviderFn']
147
- InjectorBindingOrBindings = ta.Union['InjectorBinding', 'InjectorBindings']
144
+ InjectorKeyCls = ta.Union[type, ta.NewType] # ta.TypeAlias
145
+ InjectorProviderFn = ta.Callable[['Injector'], ta.Any] # ta.TypeAlias
146
+ InjectorProviderFnMap = ta.Mapping['InjectorKey', 'InjectorProviderFn'] # ta.TypeAlias
147
+ InjectorBindingOrBindings = ta.Union['InjectorBinding', 'InjectorBindings'] # ta.TypeAlias
148
148
 
149
149
  # ../../omlish/logs/contexts.py
150
150
  LoggingContextInfoT = ta.TypeVar('LoggingContextInfoT', bound=LoggingContextInfo)
@@ -13,12 +13,14 @@ import re
13
13
  import shutil
14
14
  import subprocess
15
15
  import sys
16
+ import threading
16
17
  import typing as ta
17
18
 
18
19
  from omlish import check
19
20
  from omlish import lang
20
21
  from omlish import marshal as msh
21
22
  from omlish.argparse import all as ap
23
+ from omlish.concurrent import all as conc
22
24
  from omlish.docker import all as dck
23
25
  from omlish.docker.ns1 import build_docker_ns1_run_cmd
24
26
  from omlish.formats import json
@@ -204,6 +206,7 @@ class Cli(ap.Cli):
204
206
 
205
207
  @ap.cmd(
206
208
  ap.arg('-f', '--file'),
209
+ ap.arg('-p', '--parallelism', type=int, default=4),
207
210
  )
208
211
  def compose_image_updates(self) -> None:
209
212
  if self.args.file:
@@ -215,23 +218,32 @@ class Cli(ap.Cli):
215
218
  yml_src = f.read()
216
219
 
217
220
  cfg_dct = yaml.safe_load(yml_src)
218
- for svc_name, svc_dct in cfg_dct.get('services', {}).items():
219
- if not (img := svc_dct.get('image')):
220
- continue
221
221
 
222
+ print_lock = threading.Lock()
223
+
224
+ def do_svc(svc_name: str, img: str) -> None: # noqa
222
225
  repo, _, base = img.partition(':')
223
226
  try:
224
227
  if (info := dck.get_hub_repo_info(repo)) is None:
225
- continue
228
+ return
226
229
 
227
230
  lt = dck.select_latest_tag(info.tags, base=base)
228
231
  if f'{repo}:{lt}' == img:
229
- continue
232
+ return
230
233
 
231
- print(f'{svc_name}: {lt}')
234
+ with print_lock:
235
+ print(f'{svc_name}: {lt}')
232
236
 
233
237
  except Exception as e: # noqa
234
- print(f'Error checking docker update for {svc_name}: {e!r}', file=sys.stderr)
238
+ with print_lock:
239
+ print(f'Error checking docker update for {svc_name}: {e!r}', file=sys.stderr)
240
+
241
+ with conc.new_executor(self.args.parallelism) as exe:
242
+ conc.wait_futures([
243
+ exe.submit(do_svc, svc_name, img)
244
+ for svc_name, svc_dct in cfg_dct.get('services', {}).items()
245
+ if (img := svc_dct.get('image'))
246
+ ])
235
247
 
236
248
  #
237
249
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: omdev
3
- Version: 0.0.0.dev434
3
+ Version: 0.0.0.dev435
4
4
  Summary: omdev
5
5
  Author: wrmsr
6
6
  License-Expression: BSD-3-Clause
@@ -14,7 +14,7 @@ Classifier: Programming Language :: Python :: 3.13
14
14
  Requires-Python: >=3.13
15
15
  Description-Content-Type: text/markdown
16
16
  License-File: LICENSE
17
- Requires-Dist: omlish==0.0.0.dev434
17
+ Requires-Dist: omlish==0.0.0.dev435
18
18
  Provides-Extra: all
19
19
  Requires-Dist: black~=25.1; extra == "all"
20
20
  Requires-Dist: pycparser~=2.23; extra == "all"
@@ -1,4 +1,4 @@
1
- omlish==0.0.0.dev434
1
+ omlish==0.0.0.dev435
2
2
 
3
3
  [all]
4
4
  black~=25.1
@@ -13,7 +13,7 @@ urls = {source = 'https://github.com/wrmsr/omlish'}
13
13
  license = 'BSD-3-Clause'
14
14
  readme = 'README.md'
15
15
  requires-python = '>=3.13'
16
- version = '0.0.0.dev434'
16
+ version = '0.0.0.dev435'
17
17
  classifiers = [
18
18
  'Development Status :: 2 - Pre-Alpha',
19
19
  'Intended Audience :: Developers',
@@ -24,7 +24,7 @@ classifiers = [
24
24
  ]
25
25
  description = 'omdev'
26
26
  dependencies = [
27
- 'omlish == 0.0.0.dev434',
27
+ 'omlish == 0.0.0.dev435',
28
28
  ]
29
29
 
30
30
  [project.optional-dependencies]
File without changes
File without changes
File without changes