omdev 0.0.0.dev553__tar.gz → 0.0.0.dev554__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 (473) hide show
  1. {omdev-0.0.0.dev553/omdev.egg-info → omdev-0.0.0.dev554}/PKG-INFO +4 -4
  2. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/__about__.py +1 -1
  3. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/dockerdev/cli.py +8 -1
  4. omdev-0.0.0.dev554/omdev/dockerdev/resources/scripts/install-codex +4 -0
  5. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/irc/messages/messages.py +3 -3
  6. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/scripts/ci.py +73 -18
  7. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/scripts/lib/formats/goyaml.py +3 -3
  8. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/scripts/lib/io/pipelines.py +68 -12
  9. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/scripts/lib/io/streams.py +31 -1
  10. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/scripts/lib/logs.py +2 -2
  11. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/scripts/pyproject.py +2 -2
  12. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554/omdev.egg-info}/PKG-INFO +4 -4
  13. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev.egg-info/SOURCES.txt +1 -0
  14. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev.egg-info/requires.txt +3 -3
  15. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/pyproject.toml +4 -4
  16. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/LICENSE +0 -0
  17. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/MANIFEST.in +0 -0
  18. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/README.md +0 -0
  19. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/.omlish-manifests.json +0 -0
  20. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/README.md +0 -0
  21. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/__init__.py +0 -0
  22. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/amalg/__init__.py +0 -0
  23. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/amalg/__main__.py +0 -0
  24. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/amalg/cli/__init__.py +0 -0
  25. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/amalg/cli/main.py +0 -0
  26. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/amalg/gen/__init__.py +0 -0
  27. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/amalg/gen/gen.py +0 -0
  28. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/amalg/gen/imports.py +0 -0
  29. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/amalg/gen/manifests.py +0 -0
  30. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/amalg/gen/resources.py +0 -0
  31. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/amalg/gen/srcfiles.py +0 -0
  32. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/amalg/gen/strip.py +0 -0
  33. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/amalg/gen/types.py +0 -0
  34. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/amalg/gen/typing.py +0 -0
  35. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/amalg/info.py +0 -0
  36. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/amalg/sources.py +0 -0
  37. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cache/__init__.py +0 -0
  38. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cache/compute/__init__.py +0 -0
  39. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cache/compute/cache.py +0 -0
  40. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cache/compute/contexts.py +0 -0
  41. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cache/compute/currents.py +0 -0
  42. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cache/compute/fns.py +0 -0
  43. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cache/compute/resolvers.py +0 -0
  44. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cache/compute/storage.py +0 -0
  45. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cache/compute/types.py +0 -0
  46. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cache/data/__init__.py +0 -0
  47. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cache/data/actions.py +0 -0
  48. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cache/data/cache.py +0 -0
  49. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cache/data/consts.py +0 -0
  50. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cache/data/defaults.py +0 -0
  51. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cache/data/manifests.py +0 -0
  52. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cache/data/specs.py +0 -0
  53. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/capi/__init__.py +0 -0
  54. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/capi/darwin/__init__.py +0 -0
  55. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/capi/darwin/aps.py +0 -0
  56. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/capi/darwin/ax.py +0 -0
  57. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/capi/darwin/cf.py +0 -0
  58. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/capi/darwin/cg.py +0 -0
  59. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/capi/linux/__init__.py +0 -0
  60. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/capi/linux/x11.py +0 -0
  61. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cc/__init__.py +0 -0
  62. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cc/__main__.py +0 -0
  63. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cc/cdeps.py +0 -0
  64. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cc/cdeps.toml +0 -0
  65. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cc/cli.py +0 -0
  66. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cc/srclangs.py +0 -0
  67. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cexts/__init__.py +0 -0
  68. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cexts/_boilerplate.cc +0 -0
  69. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cexts/_distutils/LICENSE +0 -0
  70. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cexts/_distutils/__init__.py +0 -0
  71. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cexts/_distutils/build_ext.py +0 -0
  72. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cexts/_distutils/compilers/__init__.py +0 -0
  73. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cexts/_distutils/compilers/ccompiler.py +0 -0
  74. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cexts/_distutils/compilers/options.py +0 -0
  75. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cexts/_distutils/compilers/unixccompiler.py +0 -0
  76. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cexts/_distutils/dir_util.py +0 -0
  77. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cexts/_distutils/errors.py +0 -0
  78. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cexts/_distutils/extension.py +0 -0
  79. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cexts/_distutils/file_util.py +0 -0
  80. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cexts/_distutils/modified.py +0 -0
  81. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cexts/_distutils/spawn.py +0 -0
  82. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cexts/_distutils/sysconfig.py +0 -0
  83. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cexts/_distutils/util.py +0 -0
  84. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cexts/_distutils/version.py +0 -0
  85. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cexts/build.py +0 -0
  86. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cexts/cmake.py +0 -0
  87. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cexts/importhook.py +0 -0
  88. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cexts/magic.py +0 -0
  89. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cexts/scan.py +0 -0
  90. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/ci/__init__.py +0 -0
  91. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/ci/__main__.py +0 -0
  92. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/ci/cache.py +0 -0
  93. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/ci/ci.py +0 -0
  94. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/ci/cli.py +0 -0
  95. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/ci/compose.py +0 -0
  96. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/ci/consts.py +0 -0
  97. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/ci/docker/__init__.py +0 -0
  98. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/ci/docker/buildcaching.py +0 -0
  99. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/ci/docker/cache.py +0 -0
  100. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/ci/docker/cacheserved/__init__.py +0 -0
  101. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/ci/docker/cacheserved/cache.py +0 -0
  102. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/ci/docker/cacheserved/manifests.py +0 -0
  103. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/ci/docker/cmds.py +0 -0
  104. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/ci/docker/dataserver.py +0 -0
  105. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/ci/docker/imagepulling.py +0 -0
  106. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/ci/docker/inject.py +0 -0
  107. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/ci/docker/packing.py +0 -0
  108. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/ci/docker/repositories.py +0 -0
  109. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/ci/docker/utils.py +0 -0
  110. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/ci/github/__init__.py +0 -0
  111. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/ci/github/api/__init__.py +0 -0
  112. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/ci/github/api/clients.py +0 -0
  113. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/ci/github/api/v1/__init__.py +0 -0
  114. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/ci/github/api/v1/api.py +0 -0
  115. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/ci/github/api/v1/client.py +0 -0
  116. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/ci/github/api/v2/__init__.py +0 -0
  117. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/ci/github/api/v2/api.py +0 -0
  118. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/ci/github/api/v2/azure.py +0 -0
  119. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/ci/github/api/v2/client.py +0 -0
  120. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/ci/github/bootstrap.py +0 -0
  121. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/ci/github/cache.py +0 -0
  122. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/ci/github/cli.py +0 -0
  123. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/ci/github/env.py +0 -0
  124. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/ci/github/inject.py +0 -0
  125. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/ci/inject.py +0 -0
  126. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/ci/requirements.py +0 -0
  127. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/ci/shell.py +0 -0
  128. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/ci/utils.py +0 -0
  129. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cli/__init__.py +0 -0
  130. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cli/__main__.py +0 -0
  131. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cli/_pathhack.py +0 -0
  132. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cli/clicli.py +0 -0
  133. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cli/install.py +0 -0
  134. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cli/main.py +0 -0
  135. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cli/managers.py +0 -0
  136. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cli/types.py +0 -0
  137. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/clipboard/__init__.py +0 -0
  138. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/clipboard/capi/__init__.py +0 -0
  139. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/clipboard/capi/darwin_cf.py +0 -0
  140. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/clipboard/capi/linux_x11.py +0 -0
  141. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/clipboard/commands.py +0 -0
  142. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/clipboard/platform.py +0 -0
  143. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/clipboard/types.py +0 -0
  144. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cmake.py +0 -0
  145. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cmdlog/__init__.py +0 -0
  146. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cmdlog/__main__.py +0 -0
  147. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cmdlog/_cmdlog.py +0 -0
  148. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cmdlog/cli.py +0 -0
  149. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/cmdlog/cmdlog.py +0 -0
  150. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/dataclasses/__init__.py +0 -0
  151. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/dataclasses/__main__.py +0 -0
  152. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/dataclasses/_dumping.py +0 -0
  153. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/dataclasses/_template.py +0 -0
  154. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/dataclasses/cli.py +0 -0
  155. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/dataclasses/codegen.py +0 -0
  156. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/dataclasses/dumping.py +0 -0
  157. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/dataserver/__init__.py +0 -0
  158. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/dataserver/handlers.py +0 -0
  159. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/dataserver/http.py +0 -0
  160. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/dataserver/routes.py +0 -0
  161. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/dataserver/server.py +0 -0
  162. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/dataserver/targets.py +0 -0
  163. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/diffs/__init__.py +0 -0
  164. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/diffs/__main__.py +0 -0
  165. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/diffs/cli.py +0 -0
  166. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/diffs/parsing.py +0 -0
  167. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/diffs/rendering.py +0 -0
  168. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/diffs/types.py +0 -0
  169. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/dockerdev/__init__.py +0 -0
  170. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/dockerdev/__main__.py +0 -0
  171. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/dockerdev/config.py +0 -0
  172. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/dockerdev/config.toml +0 -0
  173. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/dockerdev/content.py +0 -0
  174. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/dockerdev/gen.py +0 -0
  175. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/dockerdev/helpers.py +0 -0
  176. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/dockerdev/ops.py +0 -0
  177. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/dockerdev/rendering.py +0 -0
  178. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/dockerdev/resources/.python-versions.json +0 -0
  179. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/dockerdev/resources/configs/.gdbinit +0 -0
  180. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/dockerdev/resources/configs/.tmux.conf +0 -0
  181. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/dockerdev/resources/configs/.vimrc +0 -0
  182. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/dockerdev/resources/depsets/python.toml +0 -0
  183. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/dockerdev/resources/depsets/system.toml +0 -0
  184. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/dockerdev/resources/depsets/x11.toml +0 -0
  185. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/dockerdev/resources/fragments/apt.sh +0 -0
  186. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/dockerdev/resources/fragments/docker.sh +0 -0
  187. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/dockerdev/resources/fragments/firefox.sh +0 -0
  188. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/dockerdev/resources/fragments/go.sh +0 -0
  189. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/dockerdev/resources/fragments/jdk.sh +0 -0
  190. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/dockerdev/resources/fragments/man.sh +0 -0
  191. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/dockerdev/resources/fragments/nvm.sh +0 -0
  192. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/dockerdev/resources/fragments/pyenv.sh +0 -0
  193. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/dockerdev/resources/fragments/rbenv.sh +0 -0
  194. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/dockerdev/resources/fragments/rust.sh +0 -0
  195. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/dockerdev/resources/fragments/sshd.sh +0 -0
  196. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/dockerdev/resources/fragments/user.sh +0 -0
  197. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/dockerdev/resources/fragments/uv.sh +0 -0
  198. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/dockerdev/resources/fragments/vcpkg.sh +0 -0
  199. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/dockerdev/resources/fragments/zig.sh +0 -0
  200. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/dockerdev/resources/scripts/install-claude +0 -0
  201. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/dockerdev/resources/scripts/run-dbus +0 -0
  202. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/git/__init__.py +0 -0
  203. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/git/magic.py +0 -0
  204. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/git/revisions.py +0 -0
  205. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/git/shallow.py +0 -0
  206. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/git/status.py +0 -0
  207. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/home/__init__.py +0 -0
  208. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/home/paths.py +0 -0
  209. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/home/secrets.py +0 -0
  210. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/home/shadow.py +0 -0
  211. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/imgur.py +0 -0
  212. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/intellij/__init__.py +0 -0
  213. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/intellij/cli.py +0 -0
  214. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/intellij/ides.py +0 -0
  215. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/intellij/open.py +0 -0
  216. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/interp/__init__.py +0 -0
  217. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/interp/__main__.py +0 -0
  218. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/interp/cli.py +0 -0
  219. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/interp/default.py +0 -0
  220. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/interp/inject.py +0 -0
  221. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/interp/inspect.py +0 -0
  222. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/interp/providers/__init__.py +0 -0
  223. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/interp/providers/base.py +0 -0
  224. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/interp/providers/inject.py +0 -0
  225. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/interp/providers/running.py +0 -0
  226. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/interp/providers/standalone.py +0 -0
  227. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/interp/providers/system.py +0 -0
  228. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/interp/pyenv/__init__.py +0 -0
  229. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/interp/pyenv/inject.py +0 -0
  230. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/interp/pyenv/install.py +0 -0
  231. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/interp/pyenv/provider.py +0 -0
  232. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/interp/pyenv/pyenv.py +0 -0
  233. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/interp/resolvers.py +0 -0
  234. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/interp/types.py +0 -0
  235. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/interp/uv/__init__.py +0 -0
  236. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/interp/uv/inject.py +0 -0
  237. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/interp/uv/provider.py +0 -0
  238. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/interp/uv/uv.py +0 -0
  239. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/interp/venvs.py +0 -0
  240. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/irc/__init__.py +0 -0
  241. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/irc/messages/__init__.py +0 -0
  242. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/irc/messages/base.py +0 -0
  243. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/irc/messages/formats.py +0 -0
  244. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/irc/messages/parsing.py +0 -0
  245. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/irc/numerics/__init__.py +0 -0
  246. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/irc/numerics/formats.py +0 -0
  247. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/irc/numerics/numerics.py +0 -0
  248. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/irc/numerics/types.py +0 -0
  249. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/irc/protocol/LICENSE +0 -0
  250. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/irc/protocol/__init__.py +0 -0
  251. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/irc/protocol/consts.py +0 -0
  252. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/irc/protocol/errors.py +0 -0
  253. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/irc/protocol/message.py +0 -0
  254. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/irc/protocol/nuh.py +0 -0
  255. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/irc/protocol/parsing.py +0 -0
  256. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/irc/protocol/rendering.py +0 -0
  257. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/irc/protocol/tags.py +0 -0
  258. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/irc/protocol/utils.py +0 -0
  259. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/java/__init__.py +0 -0
  260. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/java/__main__.py +0 -0
  261. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/java/cli.py +0 -0
  262. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/java/pomgen.py +0 -0
  263. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/java/utils.py +0 -0
  264. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/java/xml.py +0 -0
  265. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/magic/__init__.py +0 -0
  266. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/magic/__main__.py +0 -0
  267. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/magic/cli.py +0 -0
  268. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/magic/find.py +0 -0
  269. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/magic/magic.py +0 -0
  270. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/magic/prepare.py +0 -0
  271. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/magic/styles.py +0 -0
  272. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/manifests/__init__.py +0 -0
  273. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/manifests/__main__.py +0 -0
  274. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/manifests/_dumping.py +0 -0
  275. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/manifests/building.py +0 -0
  276. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/manifests/dumping.py +0 -0
  277. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/manifests/main.py +0 -0
  278. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/markdown/__init__.py +0 -0
  279. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/markdown/incparse.py +0 -0
  280. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/markdown/tokens.py +0 -0
  281. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/mypy/__init__.py +0 -0
  282. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/mypy/debug.py +0 -0
  283. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/mypy/report.py +0 -0
  284. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/oci/__init__.py +0 -0
  285. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/oci/building.py +0 -0
  286. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/oci/compression.py +0 -0
  287. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/oci/data.py +0 -0
  288. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/oci/datarefs.py +0 -0
  289. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/oci/dataserver.py +0 -0
  290. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/oci/loading.py +0 -0
  291. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/oci/media.py +0 -0
  292. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/oci/pack/__init__.py +0 -0
  293. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/oci/pack/packing.py +0 -0
  294. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/oci/pack/repositories.py +0 -0
  295. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/oci/pack/unpacking.py +0 -0
  296. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/oci/repositories.py +0 -0
  297. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/oci/tars.py +0 -0
  298. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/packaging/__init__.py +0 -0
  299. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/packaging/marshal.py +0 -0
  300. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/packaging/names.py +0 -0
  301. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/packaging/requires.py +0 -0
  302. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/packaging/revisions.py +0 -0
  303. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/packaging/specifiers.py +0 -0
  304. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/packaging/versions.py +0 -0
  305. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/packaging/wheelfile.py +0 -0
  306. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/pip.py +0 -0
  307. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/precheck/__init__.py +0 -0
  308. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/precheck/__main__.py +0 -0
  309. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/precheck/base.py +0 -0
  310. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/precheck/blanklines.py +0 -0
  311. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/precheck/caches.py +0 -0
  312. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/precheck/git.py +0 -0
  313. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/precheck/imports.py +0 -0
  314. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/precheck/lite.py +0 -0
  315. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/precheck/main.py +0 -0
  316. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/precheck/manifests.py +0 -0
  317. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/precheck/scripts.py +0 -0
  318. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/precheck/unicode.py +0 -0
  319. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/py/__init__.py +0 -0
  320. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/py/asts/__init__.py +0 -0
  321. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/py/asts/parents.py +0 -0
  322. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/py/asts/toplevel.py +0 -0
  323. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/py/asts/visitors.py +0 -0
  324. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/py/attrdocs.py +0 -0
  325. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/py/bracepy.py +0 -0
  326. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/py/classdot.py +0 -0
  327. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/py/docstrings/LICENSE +0 -0
  328. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/py/docstrings/__init__.py +0 -0
  329. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/py/docstrings/attrdoc.py +0 -0
  330. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/py/docstrings/common.py +0 -0
  331. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/py/docstrings/epydoc.py +0 -0
  332. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/py/docstrings/google.py +0 -0
  333. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/py/docstrings/numpydoc.py +0 -0
  334. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/py/docstrings/parser.py +0 -0
  335. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/py/docstrings/rest.py +0 -0
  336. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/py/findimports.py +0 -0
  337. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/py/reprs.py +0 -0
  338. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/py/scripts/__init__.py +0 -0
  339. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/py/scripts/bumpversion.py +0 -0
  340. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/py/scripts/execstat.py +0 -0
  341. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/py/scripts/importtrace.py +0 -0
  342. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/py/srcheaders.py +0 -0
  343. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/py/tokens/__init__.py +0 -0
  344. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/py/tokens/all.py +0 -0
  345. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/py/tokens/tokenizert.py +0 -0
  346. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/py/tokens/utils.py +0 -0
  347. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/py/tools/__init__.py +0 -0
  348. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/py/tools/importscan.py +0 -0
  349. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/py/tools/mkrelimp.py +0 -0
  350. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/py/tools/pipdepup.py +0 -0
  351. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/pyproject/__init__.py +0 -0
  352. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/pyproject/__main__.py +0 -0
  353. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/pyproject/cli.py +0 -0
  354. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/pyproject/configs.py +0 -0
  355. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/pyproject/inject.py +0 -0
  356. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/pyproject/pkg.py +0 -0
  357. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/pyproject/reqs.py +0 -0
  358. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/pyproject/resources/dockerdev.sh +0 -0
  359. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/pyproject/resources/python.sh +0 -0
  360. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/pyproject/tools/__init__.py +0 -0
  361. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/pyproject/tools/aboutdeps.py +0 -0
  362. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/pyproject/tools/buildrs.py +0 -0
  363. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/pyproject/tools/pyversions.py +0 -0
  364. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/pyproject/venvs.py +0 -0
  365. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/pyproject/versions.py +0 -0
  366. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/rs/__init__.py +0 -0
  367. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/scripts/__init__.py +0 -0
  368. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/scripts/interp.py +0 -0
  369. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/scripts/lib/__init__.py +0 -0
  370. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/scripts/lib/formats/__init__.py +0 -0
  371. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/scripts/lib/inject.py +0 -0
  372. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/scripts/lib/io/__init__.py +0 -0
  373. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/scripts/lib/marshal.py +0 -0
  374. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/scripts/slowcat.py +0 -0
  375. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/scripts/tmpexec.py +0 -0
  376. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tagstrings.py +0 -0
  377. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tools/__init__.py +0 -0
  378. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tools/cloc.py +0 -0
  379. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tools/diff.py +0 -0
  380. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tools/doc.py +0 -0
  381. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tools/docker.py +0 -0
  382. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tools/git/__init__.py +0 -0
  383. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tools/git/__main__.py +0 -0
  384. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tools/git/cli.py +0 -0
  385. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tools/git/cloning.py +0 -0
  386. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tools/git/consts.py +0 -0
  387. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tools/git/messages.py +0 -0
  388. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tools/json/__init__.py +0 -0
  389. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tools/json/__main__.py +0 -0
  390. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tools/json/cli.py +0 -0
  391. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tools/json/formats.py +0 -0
  392. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tools/json/io.py +0 -0
  393. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tools/json/parsing.py +0 -0
  394. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tools/json/processing.py +0 -0
  395. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tools/json/rendering.py +0 -0
  396. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tools/jsonview/__init__.py +0 -0
  397. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tools/jsonview/__main__.py +0 -0
  398. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tools/jsonview/cli.py +0 -0
  399. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tools/jsonview/resources/jsonview.css +0 -0
  400. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tools/jsonview/resources/jsonview.html.j2 +0 -0
  401. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tools/jsonview/resources/jsonview.js +0 -0
  402. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tools/linehisto.py +0 -0
  403. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tools/mkenv.py +0 -0
  404. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tools/notebook.py +0 -0
  405. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tools/pawk/README.md +0 -0
  406. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tools/pawk/__init__.py +0 -0
  407. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tools/pawk/__main__.py +0 -0
  408. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tools/pawk/pawk.py +0 -0
  409. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tools/pip.py +0 -0
  410. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tools/prof.py +0 -0
  411. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tools/qr.py +0 -0
  412. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tools/shadow.py +0 -0
  413. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tools/shell.py +0 -0
  414. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tools/sqlrepl.py +0 -0
  415. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/__init__.py +0 -0
  416. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/apps/__init__.py +0 -0
  417. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/apps/edit/__init__.py +0 -0
  418. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/apps/edit/main.py +0 -0
  419. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/apps/irc/__init__.py +0 -0
  420. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/apps/irc/__main__.py +0 -0
  421. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/apps/irc/app.py +0 -0
  422. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/apps/irc/client.py +0 -0
  423. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/apps/irc/commands.py +0 -0
  424. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/apps/irc/main.py +0 -0
  425. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/apps/jtree/LICENSE +0 -0
  426. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/apps/jtree/__init__.py +0 -0
  427. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/apps/jtree/__main__.py +0 -0
  428. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/apps/jtree/app.py +0 -0
  429. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/apps/jtree/cli.py +0 -0
  430. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/apps/jtree/styles/layout.tcss +0 -0
  431. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/apps/jtree/utils.py +0 -0
  432. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/apps/jtree/widgets.py +0 -0
  433. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/apps/markdown/__init__.py +0 -0
  434. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/apps/markdown/__main__.py +0 -0
  435. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/apps/markdown/cli.py +0 -0
  436. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/rich/__init__.py +0 -0
  437. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/rich/console2.py +0 -0
  438. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/rich/diff/LICENSE +0 -0
  439. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/rich/diff/__init__.py +0 -0
  440. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/rich/diff/__main__.py +0 -0
  441. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/rich/diff/_compat.py +0 -0
  442. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/rich/diff/cli.py +0 -0
  443. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/rich/diff/renderables.py +0 -0
  444. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/rich/diff/rendering.py +0 -0
  445. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/rich/diff/underlinebar.py +0 -0
  446. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/rich/markdown2.py +0 -0
  447. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/rich/textual/__init__.py +0 -0
  448. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/rich/textual/dark.py +0 -0
  449. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/rich/textual/dump.py +0 -0
  450. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/rich/textual/themes.py +0 -0
  451. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/textual/__init__.py +0 -0
  452. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/textual/app2.py +0 -0
  453. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/textual/autocomplete/LICENSE +0 -0
  454. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/textual/autocomplete/__init__.py +0 -0
  455. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/textual/autocomplete/matching.py +0 -0
  456. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/textual/autocomplete/paths.py +0 -0
  457. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/textual/autocomplete/widget.py +0 -0
  458. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/textual/binding2.py +0 -0
  459. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/textual/clipboard.py +0 -0
  460. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/textual/debug/__init__.py +0 -0
  461. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/textual/debug/dominfo.py +0 -0
  462. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/textual/debug/screen.py +0 -0
  463. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/textual/devtools.py +0 -0
  464. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/textual/drivers2.py +0 -0
  465. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/textual/logging2.py +0 -0
  466. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/textual/render2.py +0 -0
  467. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/textual/screen2.py +0 -0
  468. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/textual/types.py +0 -0
  469. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev/tui/textual/widgets2.py +0 -0
  470. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev.egg-info/dependency_links.txt +0 -0
  471. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev.egg-info/entry_points.txt +0 -0
  472. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/omdev.egg-info/top_level.txt +0 -0
  473. {omdev-0.0.0.dev553 → omdev-0.0.0.dev554}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: omdev
3
- Version: 0.0.0.dev553
3
+ Version: 0.0.0.dev554
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.dev553
17
+ Requires-Dist: omlish==0.0.0.dev554
18
18
  Provides-Extra: all
19
19
  Requires-Dist: black~=26.3; extra == "all"
20
20
  Requires-Dist: pycparser~=3.0; extra == "all"
@@ -23,7 +23,7 @@ Requires-Dist: docutils~=0.22; extra == "all"
23
23
  Requires-Dist: markdown-it-py~=4.0; extra == "all"
24
24
  Requires-Dist: mdit-py-plugins~=0.5; extra == "all"
25
25
  Requires-Dist: pygments~=2.20; extra == "all"
26
- Requires-Dist: mypy~=1.19; extra == "all"
26
+ Requires-Dist: mypy~=1.20; extra == "all"
27
27
  Requires-Dist: gprof2dot~=2025.4; extra == "all"
28
28
  Requires-Dist: segno~=1.6; extra == "all"
29
29
  Requires-Dist: rich~=14.3; extra == "all"
@@ -41,7 +41,7 @@ Requires-Dist: markdown-it-py~=4.0; extra == "doc"
41
41
  Requires-Dist: mdit-py-plugins~=0.5; extra == "doc"
42
42
  Requires-Dist: pygments~=2.20; extra == "doc"
43
43
  Provides-Extra: mypy
44
- Requires-Dist: mypy~=1.19; extra == "mypy"
44
+ Requires-Dist: mypy~=1.20; extra == "mypy"
45
45
  Provides-Extra: prof
46
46
  Requires-Dist: gprof2dot~=2025.4; extra == "prof"
47
47
  Provides-Extra: qr
@@ -31,7 +31,7 @@ class Project(ProjectBase):
31
31
  ],
32
32
 
33
33
  'mypy': [
34
- 'mypy ~= 1.19',
34
+ 'mypy ~= 1.20',
35
35
  ],
36
36
 
37
37
  'prof': [
@@ -10,11 +10,12 @@ TODO:
10
10
  - launch / manage compose services
11
11
  - more cache dirs
12
12
  - --mount=type=bind,src="$(pwd)",dst=/omlish/pwd
13
- - --mount=type=bind,src=/host/dir,dst=/container/dir,readonly (git)
14
13
  - build --no-cache / cache bust
15
14
  - build args
16
15
  - auto go/zig vers
17
16
  - `run --pull=never`, `build --pull=false`
17
+ - !! shadow config !!
18
+ - default autoexec, default env vars
18
19
 
19
20
  ====
20
21
 
@@ -180,6 +181,7 @@ class Cli(ap.Cli):
180
181
  ap.arg('--mount', action='append'),
181
182
  ap.arg('-C', '--mount-caches', action='store_true'),
182
183
  ap.arg('-D', '--mount-docker-sock', action='store_true'),
184
+ ap.arg('-G', '--mount-git', action='store_true'),
183
185
 
184
186
  ap.arg('-P', '--privileged', action='store_true'),
185
187
 
@@ -237,6 +239,11 @@ class Cli(ap.Cli):
237
239
  os.makedirs(cld, exist_ok=True)
238
240
  run_args.append(f'--mount=type=bind,src={cld},dst={cr}')
239
241
 
242
+ if self.args.mount_git:
243
+ git_path = os.path.join(os.getcwd(), '.git')
244
+ check.state(os.path.isdir(git_path))
245
+ run_args.append(f'--mount=type=bind,src={git_path},dst=/git,ro')
246
+
240
247
  if not self.args.no_host_platform:
241
248
  run_args.extend([f'--env=DOCKER_HOST_PLATFORM={platform.system().lower()}'])
242
249
 
@@ -0,0 +1,4 @@
1
+ #!/bin/bash
2
+ set -ex
3
+
4
+ npm i -g @openai/codex
@@ -215,11 +215,11 @@ class JoinMessage(Message):
215
215
  def _validate_channels(self) -> None:
216
216
  check.not_isinstance(self.channels, str)
217
217
  if self.has_keys:
218
- for c, _ in self.channels: # type: ignore[misc]
218
+ for c, _ in self.channels: # type: ignore[str-unpack]
219
219
  check.non_empty_str(c)
220
220
  else:
221
- for c in self.channels:
222
- check.non_empty_str(c) # type: ignore
221
+ for c in self.channels: # type: ignore[assignment]
222
+ check.non_empty_str(c)
223
223
 
224
224
 
225
225
  @_register_irc_message
@@ -140,7 +140,7 @@ def __omlish_amalg__(): # noqa
140
140
  dict(path='../../omlish/lite/maybes.py', sha1='04d2fcbea17028a5e6b8e7a7fb742375495ed233'),
141
141
  dict(path='../../omlish/lite/runtime.py', sha1='2e752a27ae2bf89b1bb79b4a2da522a3ec360c70'),
142
142
  dict(path='../../omlish/lite/timeouts.py', sha1='2f19c808e582877f999d7ea7dde0acd6382266a2'),
143
- dict(path='../../omlish/logs/infos.py', sha1='4dd104bd468a8c438601dd0bbda619b47d2f1620'),
143
+ dict(path='../../omlish/logs/infos.py', sha1='52db10d2031fc187df82d816966d73420c795743'),
144
144
  dict(path='../../omlish/logs/metrics/base.py', sha1='95120732c745ceec5333f81553761ab6ff4bb3fb'),
145
145
  dict(path='../../omlish/logs/protocols.py', sha1='05ca4d1d7feb50c4e3b9f22ee371aa7bf4b3dbd1'),
146
146
  dict(path='../../omlish/logs/std/json.py', sha1='2a75553131e4d5331bb0cedde42aa183f403fc3b'),
@@ -160,7 +160,7 @@ def __omlish_amalg__(): # noqa
160
160
  dict(path='../../omlish/http/simple/handlers.py', sha1='9e49c2ba5518616ce15bed6bac80ab4c88ed3b83'),
161
161
  dict(path='../../omlish/io/pipelines/bytes/buffering.py', sha1='c19bddb05ef9449aa1a1c228901cab0d2d927946'),
162
162
  dict(path='../../omlish/io/pipelines/drivers/metadata.py', sha1='44e49cb87136933ffe867087897eab5004034a93'), # noqa
163
- dict(path='../../omlish/io/pipelines/flow/types.py', sha1='f6d06c7d6ca41a88930811507c966eeb073c15b3'),
163
+ dict(path='../../omlish/io/pipelines/flow/types.py', sha1='2826bfe5d7edada0ba6669b6696053f834423d55'),
164
164
  dict(path='../../omlish/io/pipelines/sched/types.py', sha1='854b3f0f8ed5da2132a516f787b9019f5cb4eef5'),
165
165
  dict(path='../../omlish/io/streams/base.py', sha1='bdeaff419684dec34fd0dc59808a9686131992bc'),
166
166
  dict(path='../../omlish/io/streams/framing.py', sha1='dc2d7f638b042619fd3d95789c71532a29fd5fe4'),
@@ -198,9 +198,9 @@ def __omlish_amalg__(): # noqa
198
198
  dict(path='../dataserver/server.py', sha1='e1ba8ca6f85458a64ede4ca07836aa103246132a'),
199
199
  dict(path='../oci/building.py', sha1='b4fea06c03ba02d3ecfc6d10d955dc76f263846a'),
200
200
  dict(path='../oci/loading.py', sha1='64d806ffad8d24087ccc29f759f672e6d795bee2'),
201
- dict(path='../../omlish/formats/yaml/goyaml/parsing.py', sha1='c92e4772e2d50f080bc1ca8a317d0c7aea5b710a'),
201
+ dict(path='../../omlish/formats/yaml/goyaml/parsing.py', sha1='aff489de2de0021d48486560a31fd2336bf39bf6'),
202
202
  dict(path='../../omlish/http/pipelines/servers/responses.py', sha1='d2bc2464c242a7206edc015a7d9c88a7e21802ed'), # noqa
203
- dict(path='../../omlish/io/streams/segmented.py', sha1='8d112d08e066f69527091486f8817af0db586333'),
203
+ dict(path='../../omlish/io/streams/segmented.py', sha1='ae33f03c97fdc8b2d0983f8697cee2f4994cab89'),
204
204
  dict(path='../../omlish/logs/asyncs.py', sha1='8376df395029a9d0957e2338adede895a9364215'),
205
205
  dict(path='../../omlish/logs/std/loggers.py', sha1='dbdfc66188e6accb75d03454e43221d3fba0f011'),
206
206
  dict(path='../../omlish/subprocesses/asyncs.py', sha1='bba44d524c24c6ac73168aee6343488414e5bf48'),
@@ -231,7 +231,7 @@ def __omlish_amalg__(): # noqa
231
231
  dict(path='docker/imagepulling.py', sha1='d6b1ca1ecb9aa5c593a25e6deb78e942c75ebcb4'),
232
232
  dict(path='github/api/v1/client.py', sha1='6ddd600cd8a7ff72a6a3408ded14240bafab6944'),
233
233
  dict(path='github/api/v2/client.py', sha1='e28f27c07011487d5a3f4ae32fdfa1a857d02459'),
234
- dict(path='../../omlish/http/simple/pipelines/handlers.py', sha1='ee85890fd7e5e37e89aafd16aa642ccecb5de677'), # noqa
234
+ dict(path='../../omlish/http/simple/pipelines/handlers.py', sha1='983efc23b5ae5e28a528c3c4cefdf5e1259a6743'), # noqa
235
235
  dict(path='ci.py', sha1='87b82e2bd86aa886764f1e0067251b056e359650'),
236
236
  dict(path='github/cache.py', sha1='d91f9c87d167574e94c99817e6c3a0f75925dfb9'),
237
237
  dict(path='github/cli.py', sha1='6d14b0eb4ca5f606ad2821b63b9707ce57f50406'),
@@ -9938,7 +9938,7 @@ class LoggingContextInfos:
9938
9938
 
9939
9939
  @classmethod
9940
9940
  def build(cls, level: int) -> 'LoggingContextInfos.Level':
9941
- nl: NamedLogLevel = level if level.__class__ is NamedLogLevel else NamedLogLevel(level) # type: ignore[assignment] # noqa
9941
+ nl: NamedLogLevel = level if level.__class__ is NamedLogLevel else NamedLogLevel(level) # noqa
9942
9942
  return cls(
9943
9943
  level=nl,
9944
9944
  name=logging.getLevelName(nl),
@@ -13173,31 +13173,57 @@ class IoPipelineFlowMessages(NamespaceClass):
13173
13173
 
13174
13174
 
13175
13175
  class IoPipelineFlow(Abstract):
13176
- @abc.abstractmethod
13177
- def is_auto_read(
13176
+ def _get_instance(
13178
13177
  self: ta.Union[
13179
13178
  'IoPipelineFlow',
13180
13179
  IoPipeline,
13181
13180
  IoPipelineHandlerContext,
13182
13181
  None,
13183
13182
  ],
13184
- ) -> bool:
13185
- # This strange construct grants the ability to do `IoPipelineFlow.is_auto_read(opt_flow)`, which is becoming
13186
- # increasingly frequently useful in real code.
13183
+ ) -> ta.Optional['IoPipelineFlow']:
13184
+ # This strange construct grants the ability to do things like `IoPipelineFlow.is_auto_read(opt_flow)`, which are
13185
+ # becoming increasingly frequently useful in real code.
13187
13186
  if self is None:
13188
- return False
13187
+ return None
13189
13188
 
13190
13189
  if isinstance(self, IoPipelineFlow):
13191
- return self.is_auto_read()
13190
+ return self
13192
13191
 
13193
13192
  if isinstance(self, IoPipelineHandlerContext):
13194
13193
  self = self._pipeline # noqa
13195
13194
 
13196
13195
  if isinstance(self, IoPipeline):
13197
- return (fc := self.services.find(IoPipelineFlow)) is None or fc.is_auto_read()
13196
+ return self.services.find(IoPipelineFlow)
13198
13197
 
13199
13198
  raise TypeError(self)
13200
13199
 
13200
+ #
13201
+
13202
+ @abc.abstractmethod
13203
+ def is_auto_read(
13204
+ self: ta.Union[
13205
+ 'IoPipelineFlow',
13206
+ IoPipeline,
13207
+ IoPipelineHandlerContext,
13208
+ None,
13209
+ ],
13210
+ ) -> bool:
13211
+ return (fc := IoPipelineFlow._get_instance(self)) is None or fc.is_auto_read()
13212
+
13213
+ #
13214
+
13215
+ @ta.final
13216
+ @classmethod
13217
+ def maybe_flush_output(cls, ctx: IoPipelineHandlerContext) -> None:
13218
+ if cls._get_instance(ctx) is not None:
13219
+ ctx.feed_out(IoPipelineFlowMessages.FlushOutput())
13220
+
13221
+ @ta.final
13222
+ @classmethod
13223
+ def maybe_ready_for_input(cls, ctx: IoPipelineHandlerContext) -> None:
13224
+ if (fc := cls._get_instance(ctx)) is not None and not fc.is_auto_read():
13225
+ ctx.feed_out(IoPipelineFlowMessages.ReadyForInput())
13226
+
13201
13227
 
13202
13228
  ########################################
13203
13229
  # ../../../omlish/io/pipelines/sched/types.py
@@ -26152,7 +26178,7 @@ class YamlParser:
26152
26178
  if isinstance(directive, YamlError):
26153
26179
  return directive
26154
26180
 
26155
- if directive.name == 'YAML':
26181
+ if check.not_none(directive.name).string() == 'YAML':
26156
26182
  if len(g.tokens) != 2:
26157
26183
  return YamlSyntaxError('unexpected format YAML directive', YamlParseToken.raw_token(g.first()))
26158
26184
  value_tk = g.tokens[1]
@@ -26169,7 +26195,7 @@ class YamlParser:
26169
26195
  return version_node
26170
26196
  directive.values.append(version_node)
26171
26197
 
26172
- elif directive.name == 'TAG':
26198
+ elif check.not_none(directive.name).string() == 'TAG':
26173
26199
  if len(g.tokens) != 3:
26174
26200
  return YamlSyntaxError('unexpected format TAG directive', YamlParseToken.raw_token(g.first()))
26175
26201
  tag_key = YamlNodeMakers.new_string_node(ctx, g.tokens[1])
@@ -26540,6 +26566,36 @@ class SegmentedByteStreamBuffer(BaseByteStreamBufferLike, MutableByteStreamBuffe
26540
26566
  self._active_used += dl
26541
26567
  self._len += dl
26542
26568
 
26569
+ def prepend(self, data: BytesLike, /) -> None:
26570
+ if not data:
26571
+ return
26572
+ if isinstance(data, memoryview):
26573
+ data = ByteStreamBuffers.memoryview_to_bytes(data) # noqa
26574
+
26575
+ dl = len(data)
26576
+
26577
+ if self._max_size is not None and self._len + dl > self._max_size:
26578
+ raise BufferTooLargeByteStreamBufferError('buffer exceeded max_size')
26579
+
26580
+ if self._head_off:
26581
+ s0 = self._segs[0]
26582
+ if s0 is self._active:
26583
+ if self._reserved_in_active:
26584
+ raise OutstandingReserveByteStreamBufferError('outstanding reserve')
26585
+ rl = self._active_readable_len()
26586
+ if self._head_off < rl:
26587
+ self._segs[0] = ByteStreamBuffers.memoryview_to_bytes(memoryview(self._active)[self._head_off:rl])
26588
+ else:
26589
+ self._segs.pop(0)
26590
+ self._active = None
26591
+ self._active_used = 0
26592
+ else:
26593
+ self._segs[0] = s0[self._head_off:]
26594
+ self._head_off = 0
26595
+
26596
+ self._segs.insert(0, data)
26597
+ self._len += dl
26598
+
26543
26599
  def reserve(self, n: int, /) -> memoryview:
26544
26600
  if n < 0:
26545
26601
  raise ValueError(n)
@@ -32547,8 +32603,7 @@ class SimpleHttpHandlerServerIoPipelineHandler(IoPipelineHandler):
32547
32603
  if isinstance(msg, IoPipelineMessages.InitialInput):
32548
32604
  ctx.feed_in(msg)
32549
32605
 
32550
- if not IoPipelineFlow.is_auto_read(ctx):
32551
- ctx.feed_out(IoPipelineFlowMessages.ReadyForInput())
32606
+ IoPipelineFlow.maybe_ready_for_input(ctx)
32552
32607
 
32553
32608
  return
32554
32609
 
@@ -41,7 +41,7 @@ def __omlish_amalg__(): # noqa
41
41
  dict(path='tokens.py', sha1='d52876a2a525bc99eb554fe28c3d27e7e01f43a9'),
42
42
  dict(path='ast.py', sha1='811593bad2d89bfecc4a688a8d5e92e66c026073'),
43
43
  dict(path='scanning.py', sha1='fe21556a59a30e12a110e85ef2b201a5d81f14d0'),
44
- dict(path='parsing.py', sha1='c92e4772e2d50f080bc1ca8a317d0c7aea5b710a'),
44
+ dict(path='parsing.py', sha1='aff489de2de0021d48486560a31fd2336bf39bf6'),
45
45
  dict(path='decoding.py', sha1='03e29317ab0a76549db8e6938dfe83596dfe48df'),
46
46
  dict(path='_amalg.py', sha1='85989224f581528c4a189dca142cb3ec086ecd3c'),
47
47
  ],
@@ -8600,7 +8600,7 @@ class YamlParser:
8600
8600
  if isinstance(directive, YamlError):
8601
8601
  return directive
8602
8602
 
8603
- if directive.name == 'YAML':
8603
+ if check.not_none(directive.name).string() == 'YAML':
8604
8604
  if len(g.tokens) != 2:
8605
8605
  return YamlSyntaxError('unexpected format YAML directive', YamlParseToken.raw_token(g.first()))
8606
8606
  value_tk = g.tokens[1]
@@ -8617,7 +8617,7 @@ class YamlParser:
8617
8617
  return version_node
8618
8618
  directive.values.append(version_node)
8619
8619
 
8620
- elif directive.name == 'TAG':
8620
+ elif check.not_none(directive.name).string() == 'TAG':
8621
8621
  if len(g.tokens) != 3:
8622
8622
  return YamlSyntaxError('unexpected format TAG directive', YamlParseToken.raw_token(g.first()))
8623
8623
  tag_key = YamlNodeMakers.new_string_node(ctx, g.tokens[1])
@@ -46,13 +46,13 @@ def __omlish_amalg__(): # noqa
46
46
  dict(path='../../logs/warnings.py', sha1='c4eb694b24773351107fcc058f3620f1dbfb6799'),
47
47
  dict(path='core.py', sha1='3dabd48ce0e19fd974a89ea7b4dd2b6c4118d36b'),
48
48
  dict(path='../streams/types.py', sha1='7145fd554b5065e18afeb23aa51f93f5b69777e7'),
49
- dict(path='../../logs/infos.py', sha1='4dd104bd468a8c438601dd0bbda619b47d2f1620'),
49
+ dict(path='../../logs/infos.py', sha1='52db10d2031fc187df82d816966d73420c795743'),
50
50
  dict(path='../../logs/metrics/base.py', sha1='95120732c745ceec5333f81553761ab6ff4bb3fb'),
51
51
  dict(path='../../logs/protocols.py', sha1='05ca4d1d7feb50c4e3b9f22ee371aa7bf4b3dbd1'),
52
52
  dict(path='asyncs.py', sha1='a78bd64bada44716809c19e95d6ca4a96f3a28d7'),
53
53
  dict(path='bytes/buffering.py', sha1='c19bddb05ef9449aa1a1c228901cab0d2d927946'),
54
54
  dict(path='drivers/metadata.py', sha1='44e49cb87136933ffe867087897eab5004034a93'),
55
- dict(path='flow/types.py', sha1='f6d06c7d6ca41a88930811507c966eeb073c15b3'),
55
+ dict(path='flow/types.py', sha1='2826bfe5d7edada0ba6669b6696053f834423d55'),
56
56
  dict(path='handlers/fns.py', sha1='6dd1901ebdbdb31caeffab06d239f1c41e3f2726'),
57
57
  dict(path='handlers/queues.py', sha1='f49d19c5dd7de77299bedbfb3a77a36479fd1edf'),
58
58
  dict(path='sched/types.py', sha1='854b3f0f8ed5da2132a516f787b9019f5cb4eef5'),
@@ -67,7 +67,7 @@ def __omlish_amalg__(): # noqa
67
67
  dict(path='../streams/scanning.py', sha1='9c8d60b56cd9fcd2eaef550b4f1459a93c48dbe9'),
68
68
  dict(path='../../logs/base.py', sha1='eaa2ce213235815e2f86c50df6c41cfe26a43ba2'),
69
69
  dict(path='../../logs/std/records.py', sha1='67e552537d9268d4df6939b8a92be885fda35238'),
70
- dict(path='../streams/segmented.py', sha1='8d112d08e066f69527091486f8817af0db586333'),
70
+ dict(path='../streams/segmented.py', sha1='ae33f03c97fdc8b2d0983f8697cee2f4994cab89'),
71
71
  dict(path='../../logs/asyncs.py', sha1='8376df395029a9d0957e2338adede895a9364215'),
72
72
  dict(path='../../logs/std/loggers.py', sha1='dbdfc66188e6accb75d03454e43221d3fba0f011'),
73
73
  dict(path='bytes/decoders.py', sha1='6f6d8bc1adc6a5277543389814bc26ef63e34561'),
@@ -3425,7 +3425,7 @@ class LoggingContextInfos:
3425
3425
 
3426
3426
  @classmethod
3427
3427
  def build(cls, level: int) -> 'LoggingContextInfos.Level':
3428
- nl: NamedLogLevel = level if level.__class__ is NamedLogLevel else NamedLogLevel(level) # type: ignore[assignment] # noqa
3428
+ nl: NamedLogLevel = level if level.__class__ is NamedLogLevel else NamedLogLevel(level) # noqa
3429
3429
  return cls(
3430
3430
  level=nl,
3431
3431
  name=logging.getLevelName(nl),
@@ -4075,31 +4075,57 @@ class IoPipelineFlowMessages(NamespaceClass):
4075
4075
 
4076
4076
 
4077
4077
  class IoPipelineFlow(Abstract):
4078
- @abc.abstractmethod
4079
- def is_auto_read(
4078
+ def _get_instance(
4080
4079
  self: ta.Union[
4081
4080
  'IoPipelineFlow',
4082
4081
  IoPipeline,
4083
4082
  IoPipelineHandlerContext,
4084
4083
  None,
4085
4084
  ],
4086
- ) -> bool:
4087
- # This strange construct grants the ability to do `IoPipelineFlow.is_auto_read(opt_flow)`, which is becoming
4088
- # increasingly frequently useful in real code.
4085
+ ) -> ta.Optional['IoPipelineFlow']:
4086
+ # This strange construct grants the ability to do things like `IoPipelineFlow.is_auto_read(opt_flow)`, which are
4087
+ # becoming increasingly frequently useful in real code.
4089
4088
  if self is None:
4090
- return False
4089
+ return None
4091
4090
 
4092
4091
  if isinstance(self, IoPipelineFlow):
4093
- return self.is_auto_read()
4092
+ return self
4094
4093
 
4095
4094
  if isinstance(self, IoPipelineHandlerContext):
4096
4095
  self = self._pipeline # noqa
4097
4096
 
4098
4097
  if isinstance(self, IoPipeline):
4099
- return (fc := self.services.find(IoPipelineFlow)) is None or fc.is_auto_read()
4098
+ return self.services.find(IoPipelineFlow)
4100
4099
 
4101
4100
  raise TypeError(self)
4102
4101
 
4102
+ #
4103
+
4104
+ @abc.abstractmethod
4105
+ def is_auto_read(
4106
+ self: ta.Union[
4107
+ 'IoPipelineFlow',
4108
+ IoPipeline,
4109
+ IoPipelineHandlerContext,
4110
+ None,
4111
+ ],
4112
+ ) -> bool:
4113
+ return (fc := IoPipelineFlow._get_instance(self)) is None or fc.is_auto_read()
4114
+
4115
+ #
4116
+
4117
+ @ta.final
4118
+ @classmethod
4119
+ def maybe_flush_output(cls, ctx: IoPipelineHandlerContext) -> None:
4120
+ if cls._get_instance(ctx) is not None:
4121
+ ctx.feed_out(IoPipelineFlowMessages.FlushOutput())
4122
+
4123
+ @ta.final
4124
+ @classmethod
4125
+ def maybe_ready_for_input(cls, ctx: IoPipelineHandlerContext) -> None:
4126
+ if (fc := cls._get_instance(ctx)) is not None and not fc.is_auto_read():
4127
+ ctx.feed_out(IoPipelineFlowMessages.ReadyForInput())
4128
+
4103
4129
 
4104
4130
  ########################################
4105
4131
  # ../handlers/fns.py
@@ -7142,6 +7168,36 @@ class SegmentedByteStreamBuffer(BaseByteStreamBufferLike, MutableByteStreamBuffe
7142
7168
  self._active_used += dl
7143
7169
  self._len += dl
7144
7170
 
7171
+ def prepend(self, data: BytesLike, /) -> None:
7172
+ if not data:
7173
+ return
7174
+ if isinstance(data, memoryview):
7175
+ data = ByteStreamBuffers.memoryview_to_bytes(data) # noqa
7176
+
7177
+ dl = len(data)
7178
+
7179
+ if self._max_size is not None and self._len + dl > self._max_size:
7180
+ raise BufferTooLargeByteStreamBufferError('buffer exceeded max_size')
7181
+
7182
+ if self._head_off:
7183
+ s0 = self._segs[0]
7184
+ if s0 is self._active:
7185
+ if self._reserved_in_active:
7186
+ raise OutstandingReserveByteStreamBufferError('outstanding reserve')
7187
+ rl = self._active_readable_len()
7188
+ if self._head_off < rl:
7189
+ self._segs[0] = ByteStreamBuffers.memoryview_to_bytes(memoryview(self._active)[self._head_off:rl])
7190
+ else:
7191
+ self._segs.pop(0)
7192
+ self._active = None
7193
+ self._active_used = 0
7194
+ else:
7195
+ self._segs[0] = s0[self._head_off:]
7196
+ self._head_off = 0
7197
+
7198
+ self._segs.insert(0, data)
7199
+ self._len += dl
7200
+
7145
7201
  def reserve(self, n: int, /) -> memoryview:
7146
7202
  if n < 0:
7147
7203
  raise ValueError(n)
@@ -35,7 +35,7 @@ def __omlish_amalg__(): # noqa
35
35
  dict(path='scanning.py', sha1='9c8d60b56cd9fcd2eaef550b4f1459a93c48dbe9'),
36
36
  dict(path='adapters.py', sha1='8692c9fdebae45867179ca55f02f53805c2b2b63'),
37
37
  dict(path='linear.py', sha1='94c28f36a07625a9ee97dff9229dc868e094bf06'),
38
- dict(path='segmented.py', sha1='8d112d08e066f69527091486f8817af0db586333'),
38
+ dict(path='segmented.py', sha1='ae33f03c97fdc8b2d0983f8697cee2f4994cab89'),
39
39
  dict(path='_amalg.py', sha1='9c88a055447d7b37da1b356e6a1e00b7c4a9a3cb'),
40
40
  ],
41
41
  )
@@ -2565,6 +2565,36 @@ class SegmentedByteStreamBuffer(BaseByteStreamBufferLike, MutableByteStreamBuffe
2565
2565
  self._active_used += dl
2566
2566
  self._len += dl
2567
2567
 
2568
+ def prepend(self, data: BytesLike, /) -> None:
2569
+ if not data:
2570
+ return
2571
+ if isinstance(data, memoryview):
2572
+ data = ByteStreamBuffers.memoryview_to_bytes(data) # noqa
2573
+
2574
+ dl = len(data)
2575
+
2576
+ if self._max_size is not None and self._len + dl > self._max_size:
2577
+ raise BufferTooLargeByteStreamBufferError('buffer exceeded max_size')
2578
+
2579
+ if self._head_off:
2580
+ s0 = self._segs[0]
2581
+ if s0 is self._active:
2582
+ if self._reserved_in_active:
2583
+ raise OutstandingReserveByteStreamBufferError('outstanding reserve')
2584
+ rl = self._active_readable_len()
2585
+ if self._head_off < rl:
2586
+ self._segs[0] = ByteStreamBuffers.memoryview_to_bytes(memoryview(self._active)[self._head_off:rl])
2587
+ else:
2588
+ self._segs.pop(0)
2589
+ self._active = None
2590
+ self._active_used = 0
2591
+ else:
2592
+ self._segs[0] = s0[self._head_off:]
2593
+ self._head_off = 0
2594
+
2595
+ self._segs.insert(0, data)
2596
+ self._len += dl
2597
+
2568
2598
  def reserve(self, n: int, /) -> memoryview:
2569
2599
  if n < 0:
2570
2600
  raise ValueError(n)
@@ -39,7 +39,7 @@ def __omlish_amalg__(): # noqa
39
39
  dict(path='std/filters.py', sha1='f36aab646d84d31e295b33aaaaa6f8b67ff38b3d'),
40
40
  dict(path='std/proxy.py', sha1='3e7301a2aa351127f9c85f61b2f85dcc3f15aafb'),
41
41
  dict(path='warnings.py', sha1='c4eb694b24773351107fcc058f3620f1dbfb6799'),
42
- dict(path='infos.py', sha1='4dd104bd468a8c438601dd0bbda619b47d2f1620'),
42
+ dict(path='infos.py', sha1='52db10d2031fc187df82d816966d73420c795743'),
43
43
  dict(path='metrics/base.py', sha1='95120732c745ceec5333f81553761ab6ff4bb3fb'),
44
44
  dict(path='std/json.py', sha1='2a75553131e4d5331bb0cedde42aa183f403fc3b'),
45
45
  dict(path='contexts.py', sha1='1000a6d5ddfb642865ca532e34b1d50759781cf0'),
@@ -517,7 +517,7 @@ class LoggingContextInfos:
517
517
 
518
518
  @classmethod
519
519
  def build(cls, level: int) -> 'LoggingContextInfos.Level':
520
- nl: NamedLogLevel = level if level.__class__ is NamedLogLevel else NamedLogLevel(level) # type: ignore[assignment] # noqa
520
+ nl: NamedLogLevel = level if level.__class__ is NamedLogLevel else NamedLogLevel(level) # noqa
521
521
  return cls(
522
522
  level=nl,
523
523
  name=logging.getLevelName(nl),
@@ -115,7 +115,7 @@ def __omlish_amalg__(): # noqa
115
115
  dict(path='../../omlish/lite/maybes.py', sha1='04d2fcbea17028a5e6b8e7a7fb742375495ed233'),
116
116
  dict(path='../../omlish/lite/runtime.py', sha1='2e752a27ae2bf89b1bb79b4a2da522a3ec360c70'),
117
117
  dict(path='../../omlish/lite/timeouts.py', sha1='2f19c808e582877f999d7ea7dde0acd6382266a2'),
118
- dict(path='../../omlish/logs/infos.py', sha1='4dd104bd468a8c438601dd0bbda619b47d2f1620'),
118
+ dict(path='../../omlish/logs/infos.py', sha1='52db10d2031fc187df82d816966d73420c795743'),
119
119
  dict(path='../../omlish/logs/metrics/base.py', sha1='95120732c745ceec5333f81553761ab6ff4bb3fb'),
120
120
  dict(path='../../omlish/logs/protocols.py', sha1='05ca4d1d7feb50c4e3b9f22ee371aa7bf4b3dbd1'),
121
121
  dict(path='../../omlish/logs/std/json.py', sha1='2a75553131e4d5331bb0cedde42aa183f403fc3b'),
@@ -6021,7 +6021,7 @@ class LoggingContextInfos:
6021
6021
 
6022
6022
  @classmethod
6023
6023
  def build(cls, level: int) -> 'LoggingContextInfos.Level':
6024
- nl: NamedLogLevel = level if level.__class__ is NamedLogLevel else NamedLogLevel(level) # type: ignore[assignment] # noqa
6024
+ nl: NamedLogLevel = level if level.__class__ is NamedLogLevel else NamedLogLevel(level) # noqa
6025
6025
  return cls(
6026
6026
  level=nl,
6027
6027
  name=logging.getLevelName(nl),
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: omdev
3
- Version: 0.0.0.dev553
3
+ Version: 0.0.0.dev554
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.dev553
17
+ Requires-Dist: omlish==0.0.0.dev554
18
18
  Provides-Extra: all
19
19
  Requires-Dist: black~=26.3; extra == "all"
20
20
  Requires-Dist: pycparser~=3.0; extra == "all"
@@ -23,7 +23,7 @@ Requires-Dist: docutils~=0.22; extra == "all"
23
23
  Requires-Dist: markdown-it-py~=4.0; extra == "all"
24
24
  Requires-Dist: mdit-py-plugins~=0.5; extra == "all"
25
25
  Requires-Dist: pygments~=2.20; extra == "all"
26
- Requires-Dist: mypy~=1.19; extra == "all"
26
+ Requires-Dist: mypy~=1.20; extra == "all"
27
27
  Requires-Dist: gprof2dot~=2025.4; extra == "all"
28
28
  Requires-Dist: segno~=1.6; extra == "all"
29
29
  Requires-Dist: rich~=14.3; extra == "all"
@@ -41,7 +41,7 @@ Requires-Dist: markdown-it-py~=4.0; extra == "doc"
41
41
  Requires-Dist: mdit-py-plugins~=0.5; extra == "doc"
42
42
  Requires-Dist: pygments~=2.20; extra == "doc"
43
43
  Provides-Extra: mypy
44
- Requires-Dist: mypy~=1.19; extra == "mypy"
44
+ Requires-Dist: mypy~=1.20; extra == "mypy"
45
45
  Provides-Extra: prof
46
46
  Requires-Dist: gprof2dot~=2025.4; extra == "prof"
47
47
  Provides-Extra: qr
@@ -195,6 +195,7 @@ omdev/dockerdev/resources/fragments/uv.sh
195
195
  omdev/dockerdev/resources/fragments/vcpkg.sh
196
196
  omdev/dockerdev/resources/fragments/zig.sh
197
197
  omdev/dockerdev/resources/scripts/install-claude
198
+ omdev/dockerdev/resources/scripts/install-codex
198
199
  omdev/dockerdev/resources/scripts/run-dbus
199
200
  omdev/git/__init__.py
200
201
  omdev/git/magic.py
@@ -1,4 +1,4 @@
1
- omlish==0.0.0.dev553
1
+ omlish==0.0.0.dev554
2
2
 
3
3
  [all]
4
4
  black~=26.3
@@ -8,7 +8,7 @@ docutils~=0.22
8
8
  markdown-it-py~=4.0
9
9
  mdit-py-plugins~=0.5
10
10
  pygments~=2.20
11
- mypy~=1.19
11
+ mypy~=1.20
12
12
  gprof2dot~=2025.4
13
13
  segno~=1.6
14
14
  rich~=14.3
@@ -30,7 +30,7 @@ mdit-py-plugins~=0.5
30
30
  pygments~=2.20
31
31
 
32
32
  [mypy]
33
- mypy~=1.19
33
+ mypy~=1.20
34
34
 
35
35
  [prof]
36
36
  gprof2dot~=2025.4
@@ -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.dev553'
16
+ version = '0.0.0.dev554'
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.dev553',
27
+ 'omlish == 0.0.0.dev554',
28
28
  ]
29
29
 
30
30
  [project.optional-dependencies]
@@ -36,7 +36,7 @@ all = [
36
36
  'markdown-it-py ~= 4.0',
37
37
  'mdit-py-plugins ~= 0.5',
38
38
  'pygments ~= 2.20',
39
- 'mypy ~= 1.19',
39
+ 'mypy ~= 1.20',
40
40
  'gprof2dot ~= 2025.4',
41
41
  'segno ~= 1.6',
42
42
  'rich ~= 14.3',
@@ -58,7 +58,7 @@ doc = [
58
58
  'pygments ~= 2.20',
59
59
  ]
60
60
  mypy = [
61
- 'mypy ~= 1.19',
61
+ 'mypy ~= 1.20',
62
62
  ]
63
63
  prof = [
64
64
  'gprof2dot ~= 2025.4',
File without changes
File without changes
File without changes