omdev 0.0.0.dev534__tar.gz → 0.0.0.dev536__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 (438) hide show
  1. {omdev-0.0.0.dev534/omdev.egg-info → omdev-0.0.0.dev536}/PKG-INFO +4 -4
  2. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/__about__.py +1 -1
  3. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/pyproject/pkg.py +4 -0
  4. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/pyproject/tools/aboutdeps.py +1 -1
  5. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/scripts/ci.py +2 -2
  6. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/scripts/interp.py +2 -2
  7. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/scripts/lib/io/streams.py +130 -82
  8. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/scripts/lib/logs.py +2 -2
  9. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/scripts/pyproject.py +7 -3
  10. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tools/git/cli.py +1 -8
  11. omdev-0.0.0.dev536/omdev/tools/git/consts.py +15 -0
  12. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tui/textual/__init__.py +5 -0
  13. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536/omdev.egg-info}/PKG-INFO +4 -4
  14. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev.egg-info/requires.txt +3 -3
  15. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/pyproject.toml +4 -4
  16. omdev-0.0.0.dev534/omdev/tools/git/consts.py +0 -1
  17. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/LICENSE +0 -0
  18. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/MANIFEST.in +0 -0
  19. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/README.md +0 -0
  20. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/.omlish-manifests.json +0 -0
  21. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/README.md +0 -0
  22. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/__init__.py +0 -0
  23. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/amalg/__init__.py +0 -0
  24. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/amalg/__main__.py +0 -0
  25. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/amalg/cli/__init__.py +0 -0
  26. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/amalg/cli/main.py +0 -0
  27. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/amalg/gen/__init__.py +0 -0
  28. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/amalg/gen/gen.py +0 -0
  29. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/amalg/gen/imports.py +0 -0
  30. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/amalg/gen/manifests.py +0 -0
  31. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/amalg/gen/resources.py +0 -0
  32. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/amalg/gen/srcfiles.py +0 -0
  33. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/amalg/gen/strip.py +0 -0
  34. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/amalg/gen/types.py +0 -0
  35. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/amalg/gen/typing.py +0 -0
  36. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/amalg/info.py +0 -0
  37. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/amalg/sources.py +0 -0
  38. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cache/__init__.py +0 -0
  39. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cache/compute/__init__.py +0 -0
  40. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cache/compute/cache.py +0 -0
  41. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cache/compute/contexts.py +0 -0
  42. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cache/compute/currents.py +0 -0
  43. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cache/compute/fns.py +0 -0
  44. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cache/compute/resolvers.py +0 -0
  45. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cache/compute/storage.py +0 -0
  46. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cache/compute/types.py +0 -0
  47. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cache/data/__init__.py +0 -0
  48. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cache/data/actions.py +0 -0
  49. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cache/data/cache.py +0 -0
  50. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cache/data/consts.py +0 -0
  51. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cache/data/defaults.py +0 -0
  52. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cache/data/manifests.py +0 -0
  53. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cache/data/specs.py +0 -0
  54. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/capi/__init__.py +0 -0
  55. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/capi/darwin/__init__.py +0 -0
  56. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/capi/darwin/aps.py +0 -0
  57. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/capi/darwin/ax.py +0 -0
  58. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/capi/darwin/cf.py +0 -0
  59. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/capi/darwin/cg.py +0 -0
  60. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/capi/linux/__init__.py +0 -0
  61. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/capi/linux/x11.py +0 -0
  62. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cc/__init__.py +0 -0
  63. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cc/__main__.py +0 -0
  64. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cc/cdeps.py +0 -0
  65. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cc/cdeps.toml +0 -0
  66. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cc/cli.py +0 -0
  67. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cc/srclangs.py +0 -0
  68. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cexts/__init__.py +0 -0
  69. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cexts/_boilerplate.cc +0 -0
  70. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cexts/_distutils/LICENSE +0 -0
  71. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cexts/_distutils/__init__.py +0 -0
  72. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cexts/_distutils/build_ext.py +0 -0
  73. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cexts/_distutils/compilers/__init__.py +0 -0
  74. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cexts/_distutils/compilers/ccompiler.py +0 -0
  75. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cexts/_distutils/compilers/options.py +0 -0
  76. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cexts/_distutils/compilers/unixccompiler.py +0 -0
  77. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cexts/_distutils/dir_util.py +0 -0
  78. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cexts/_distutils/errors.py +0 -0
  79. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cexts/_distutils/extension.py +0 -0
  80. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cexts/_distutils/file_util.py +0 -0
  81. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cexts/_distutils/modified.py +0 -0
  82. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cexts/_distutils/spawn.py +0 -0
  83. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cexts/_distutils/sysconfig.py +0 -0
  84. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cexts/_distutils/util.py +0 -0
  85. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cexts/_distutils/version.py +0 -0
  86. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cexts/build.py +0 -0
  87. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cexts/cmake.py +0 -0
  88. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cexts/importhook.py +0 -0
  89. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cexts/magic.py +0 -0
  90. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cexts/scan.py +0 -0
  91. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/ci/__init__.py +0 -0
  92. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/ci/__main__.py +0 -0
  93. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/ci/cache.py +0 -0
  94. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/ci/ci.py +0 -0
  95. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/ci/cli.py +0 -0
  96. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/ci/compose.py +0 -0
  97. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/ci/consts.py +0 -0
  98. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/ci/docker/__init__.py +0 -0
  99. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/ci/docker/buildcaching.py +0 -0
  100. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/ci/docker/cache.py +0 -0
  101. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/ci/docker/cacheserved/__init__.py +0 -0
  102. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/ci/docker/cacheserved/cache.py +0 -0
  103. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/ci/docker/cacheserved/manifests.py +0 -0
  104. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/ci/docker/cmds.py +0 -0
  105. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/ci/docker/dataserver.py +0 -0
  106. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/ci/docker/imagepulling.py +0 -0
  107. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/ci/docker/inject.py +0 -0
  108. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/ci/docker/packing.py +0 -0
  109. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/ci/docker/repositories.py +0 -0
  110. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/ci/docker/utils.py +0 -0
  111. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/ci/github/__init__.py +0 -0
  112. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/ci/github/api/__init__.py +0 -0
  113. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/ci/github/api/clients.py +0 -0
  114. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/ci/github/api/v1/__init__.py +0 -0
  115. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/ci/github/api/v1/api.py +0 -0
  116. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/ci/github/api/v1/client.py +0 -0
  117. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/ci/github/api/v2/__init__.py +0 -0
  118. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/ci/github/api/v2/api.py +0 -0
  119. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/ci/github/api/v2/azure.py +0 -0
  120. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/ci/github/api/v2/client.py +0 -0
  121. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/ci/github/bootstrap.py +0 -0
  122. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/ci/github/cache.py +0 -0
  123. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/ci/github/cli.py +0 -0
  124. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/ci/github/env.py +0 -0
  125. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/ci/github/inject.py +0 -0
  126. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/ci/inject.py +0 -0
  127. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/ci/requirements.py +0 -0
  128. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/ci/shell.py +0 -0
  129. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/ci/utils.py +0 -0
  130. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cli/__init__.py +0 -0
  131. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cli/__main__.py +0 -0
  132. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cli/_pathhack.py +0 -0
  133. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cli/clicli.py +0 -0
  134. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cli/install.py +0 -0
  135. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cli/main.py +0 -0
  136. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cli/managers.py +0 -0
  137. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cli/types.py +0 -0
  138. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/clipboard/__init__.py +0 -0
  139. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/clipboard/capi/__init__.py +0 -0
  140. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/clipboard/capi/darwin_cf.py +0 -0
  141. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/clipboard/capi/linux_x11.py +0 -0
  142. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/clipboard/commands.py +0 -0
  143. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/clipboard/platform.py +0 -0
  144. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/clipboard/types.py +0 -0
  145. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cmake.py +0 -0
  146. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cmdlog/__init__.py +0 -0
  147. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cmdlog/__main__.py +0 -0
  148. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cmdlog/_cmdlog.py +0 -0
  149. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cmdlog/cli.py +0 -0
  150. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/cmdlog/cmdlog.py +0 -0
  151. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/dataclasses/__init__.py +0 -0
  152. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/dataclasses/__main__.py +0 -0
  153. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/dataclasses/_dumping.py +0 -0
  154. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/dataclasses/_template.py +0 -0
  155. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/dataclasses/cli.py +0 -0
  156. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/dataclasses/codegen.py +0 -0
  157. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/dataclasses/dumping.py +0 -0
  158. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/dataserver/__init__.py +0 -0
  159. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/dataserver/handlers.py +0 -0
  160. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/dataserver/http.py +0 -0
  161. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/dataserver/routes.py +0 -0
  162. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/dataserver/server.py +0 -0
  163. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/dataserver/targets.py +0 -0
  164. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/dockerdev/__init__.py +0 -0
  165. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/dockerdev/__main__.py +0 -0
  166. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/dockerdev/cli.py +0 -0
  167. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/dockerdev/config.toml +0 -0
  168. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/dockerdev/content.py +0 -0
  169. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/dockerdev/gen.py +0 -0
  170. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/dockerdev/helpers.py +0 -0
  171. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/dockerdev/ops.py +0 -0
  172. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/dockerdev/rendering.py +0 -0
  173. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/dockerdev/resources/.python-versions.json +0 -0
  174. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/dockerdev/resources/configs/.gdbinit +0 -0
  175. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/dockerdev/resources/configs/.tmux.conf +0 -0
  176. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/dockerdev/resources/configs/.vimrc +0 -0
  177. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/dockerdev/resources/depsets/python.toml +0 -0
  178. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/dockerdev/resources/depsets/system.toml +0 -0
  179. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/dockerdev/resources/depsets/x11.toml +0 -0
  180. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/dockerdev/resources/fragments/apt.sh +0 -0
  181. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/dockerdev/resources/fragments/docker.sh +0 -0
  182. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/dockerdev/resources/fragments/firefox.sh +0 -0
  183. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/dockerdev/resources/fragments/go.sh +0 -0
  184. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/dockerdev/resources/fragments/jdk.sh +0 -0
  185. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/dockerdev/resources/fragments/nvm.sh +0 -0
  186. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/dockerdev/resources/fragments/pyenv.sh +0 -0
  187. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/dockerdev/resources/fragments/rust.sh +0 -0
  188. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/dockerdev/resources/fragments/sshd.sh +0 -0
  189. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/dockerdev/resources/fragments/uv.sh +0 -0
  190. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/dockerdev/resources/fragments/vcpkg.sh +0 -0
  191. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/dockerdev/resources/fragments/zig.sh +0 -0
  192. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/dockerdev/resources/xu +0 -0
  193. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/git/__init__.py +0 -0
  194. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/git/magic.py +0 -0
  195. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/git/revisions.py +0 -0
  196. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/git/shallow.py +0 -0
  197. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/git/status.py +0 -0
  198. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/home/__init__.py +0 -0
  199. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/home/paths.py +0 -0
  200. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/home/secrets.py +0 -0
  201. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/home/shadow.py +0 -0
  202. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/imgur.py +0 -0
  203. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/intellij/__init__.py +0 -0
  204. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/intellij/cli.py +0 -0
  205. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/intellij/ides.py +0 -0
  206. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/intellij/open.py +0 -0
  207. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/interp/__init__.py +0 -0
  208. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/interp/__main__.py +0 -0
  209. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/interp/cli.py +0 -0
  210. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/interp/default.py +0 -0
  211. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/interp/inject.py +0 -0
  212. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/interp/inspect.py +0 -0
  213. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/interp/providers/__init__.py +0 -0
  214. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/interp/providers/base.py +0 -0
  215. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/interp/providers/inject.py +0 -0
  216. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/interp/providers/running.py +0 -0
  217. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/interp/providers/standalone.py +0 -0
  218. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/interp/providers/system.py +0 -0
  219. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/interp/pyenv/__init__.py +0 -0
  220. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/interp/pyenv/inject.py +0 -0
  221. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/interp/pyenv/install.py +0 -0
  222. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/interp/pyenv/provider.py +0 -0
  223. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/interp/pyenv/pyenv.py +0 -0
  224. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/interp/resolvers.py +0 -0
  225. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/interp/types.py +0 -0
  226. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/interp/uv/__init__.py +0 -0
  227. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/interp/uv/inject.py +0 -0
  228. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/interp/uv/provider.py +0 -0
  229. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/interp/uv/uv.py +0 -0
  230. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/interp/venvs.py +0 -0
  231. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/irc/__init__.py +0 -0
  232. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/irc/messages/__init__.py +0 -0
  233. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/irc/messages/base.py +0 -0
  234. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/irc/messages/formats.py +0 -0
  235. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/irc/messages/messages.py +0 -0
  236. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/irc/messages/parsing.py +0 -0
  237. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/irc/numerics/__init__.py +0 -0
  238. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/irc/numerics/formats.py +0 -0
  239. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/irc/numerics/numerics.py +0 -0
  240. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/irc/numerics/types.py +0 -0
  241. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/irc/protocol/LICENSE +0 -0
  242. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/irc/protocol/__init__.py +0 -0
  243. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/irc/protocol/consts.py +0 -0
  244. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/irc/protocol/errors.py +0 -0
  245. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/irc/protocol/message.py +0 -0
  246. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/irc/protocol/nuh.py +0 -0
  247. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/irc/protocol/parsing.py +0 -0
  248. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/irc/protocol/rendering.py +0 -0
  249. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/irc/protocol/tags.py +0 -0
  250. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/irc/protocol/utils.py +0 -0
  251. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/java/__init__.py +0 -0
  252. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/java/__main__.py +0 -0
  253. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/java/cli.py +0 -0
  254. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/java/pomgen.py +0 -0
  255. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/java/xml.py +0 -0
  256. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/magic/__init__.py +0 -0
  257. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/magic/__main__.py +0 -0
  258. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/magic/cli.py +0 -0
  259. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/magic/find.py +0 -0
  260. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/magic/magic.py +0 -0
  261. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/magic/prepare.py +0 -0
  262. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/magic/styles.py +0 -0
  263. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/manifests/__init__.py +0 -0
  264. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/manifests/__main__.py +0 -0
  265. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/manifests/_dumping.py +0 -0
  266. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/manifests/building.py +0 -0
  267. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/manifests/dumping.py +0 -0
  268. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/manifests/main.py +0 -0
  269. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/markdown/__init__.py +0 -0
  270. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/markdown/incparse.py +0 -0
  271. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/markdown/tokens.py +0 -0
  272. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/mypy/__init__.py +0 -0
  273. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/mypy/debug.py +0 -0
  274. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/mypy/report.py +0 -0
  275. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/oci/__init__.py +0 -0
  276. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/oci/building.py +0 -0
  277. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/oci/compression.py +0 -0
  278. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/oci/data.py +0 -0
  279. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/oci/datarefs.py +0 -0
  280. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/oci/dataserver.py +0 -0
  281. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/oci/loading.py +0 -0
  282. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/oci/media.py +0 -0
  283. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/oci/pack/__init__.py +0 -0
  284. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/oci/pack/packing.py +0 -0
  285. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/oci/pack/repositories.py +0 -0
  286. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/oci/pack/unpacking.py +0 -0
  287. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/oci/repositories.py +0 -0
  288. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/oci/tars.py +0 -0
  289. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/packaging/__init__.py +0 -0
  290. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/packaging/marshal.py +0 -0
  291. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/packaging/names.py +0 -0
  292. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/packaging/requires.py +0 -0
  293. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/packaging/revisions.py +0 -0
  294. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/packaging/specifiers.py +0 -0
  295. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/packaging/versions.py +0 -0
  296. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/packaging/wheelfile.py +0 -0
  297. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/pip.py +0 -0
  298. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/precheck/__init__.py +0 -0
  299. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/precheck/__main__.py +0 -0
  300. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/precheck/base.py +0 -0
  301. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/precheck/blanklines.py +0 -0
  302. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/precheck/caches.py +0 -0
  303. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/precheck/git.py +0 -0
  304. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/precheck/imports.py +0 -0
  305. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/precheck/lite.py +0 -0
  306. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/precheck/main.py +0 -0
  307. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/precheck/manifests.py +0 -0
  308. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/precheck/scripts.py +0 -0
  309. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/precheck/unicode.py +0 -0
  310. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/py/__init__.py +0 -0
  311. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/py/asts/__init__.py +0 -0
  312. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/py/asts/parents.py +0 -0
  313. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/py/asts/toplevel.py +0 -0
  314. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/py/asts/visitors.py +0 -0
  315. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/py/attrdocs.py +0 -0
  316. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/py/bracepy.py +0 -0
  317. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/py/classdot.py +0 -0
  318. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/py/docstrings/LICENSE +0 -0
  319. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/py/docstrings/__init__.py +0 -0
  320. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/py/docstrings/attrdoc.py +0 -0
  321. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/py/docstrings/common.py +0 -0
  322. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/py/docstrings/epydoc.py +0 -0
  323. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/py/docstrings/google.py +0 -0
  324. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/py/docstrings/numpydoc.py +0 -0
  325. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/py/docstrings/parser.py +0 -0
  326. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/py/docstrings/rest.py +0 -0
  327. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/py/findimports.py +0 -0
  328. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/py/reprs.py +0 -0
  329. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/py/scripts/__init__.py +0 -0
  330. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/py/scripts/bumpversion.py +0 -0
  331. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/py/scripts/execstat.py +0 -0
  332. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/py/scripts/importtrace.py +0 -0
  333. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/py/srcheaders.py +0 -0
  334. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/py/tokens/__init__.py +0 -0
  335. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/py/tokens/all.py +0 -0
  336. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/py/tokens/tokenizert.py +0 -0
  337. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/py/tokens/utils.py +0 -0
  338. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/py/tools/__init__.py +0 -0
  339. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/py/tools/importscan.py +0 -0
  340. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/py/tools/mkrelimp.py +0 -0
  341. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/py/tools/pipdepup.py +0 -0
  342. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/pyproject/__init__.py +0 -0
  343. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/pyproject/__main__.py +0 -0
  344. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/pyproject/cli.py +0 -0
  345. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/pyproject/configs.py +0 -0
  346. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/pyproject/inject.py +0 -0
  347. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/pyproject/reqs.py +0 -0
  348. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/pyproject/resources/dockerdev.sh +0 -0
  349. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/pyproject/resources/python.sh +0 -0
  350. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/pyproject/tools/__init__.py +0 -0
  351. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/pyproject/tools/buildrs.py +0 -0
  352. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/pyproject/tools/pyversions.py +0 -0
  353. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/pyproject/venvs.py +0 -0
  354. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/pyproject/versions.py +0 -0
  355. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/rs/__init__.py +0 -0
  356. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/scripts/__init__.py +0 -0
  357. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/scripts/lib/__init__.py +0 -0
  358. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/scripts/lib/formats/__init__.py +0 -0
  359. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/scripts/lib/formats/goyaml.py +0 -0
  360. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/scripts/lib/inject.py +0 -0
  361. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/scripts/lib/io/__init__.py +0 -0
  362. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/scripts/lib/marshal.py +0 -0
  363. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/scripts/slowcat.py +0 -0
  364. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/scripts/tmpexec.py +0 -0
  365. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tagstrings.py +0 -0
  366. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tools/__init__.py +0 -0
  367. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tools/cloc.py +0 -0
  368. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tools/diff.py +0 -0
  369. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tools/doc.py +0 -0
  370. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tools/docker.py +0 -0
  371. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tools/git/__init__.py +0 -0
  372. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tools/git/__main__.py +0 -0
  373. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tools/git/cloning.py +0 -0
  374. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tools/git/messages.py +0 -0
  375. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tools/json/__init__.py +0 -0
  376. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tools/json/__main__.py +0 -0
  377. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tools/json/cli.py +0 -0
  378. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tools/json/formats.py +0 -0
  379. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tools/json/io.py +0 -0
  380. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tools/json/parsing.py +0 -0
  381. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tools/json/processing.py +0 -0
  382. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tools/json/rendering.py +0 -0
  383. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tools/jsonview/__init__.py +0 -0
  384. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tools/jsonview/__main__.py +0 -0
  385. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tools/jsonview/cli.py +0 -0
  386. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tools/jsonview/resources/jsonview.css +0 -0
  387. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tools/jsonview/resources/jsonview.html.j2 +0 -0
  388. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tools/jsonview/resources/jsonview.js +0 -0
  389. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tools/linehisto.py +0 -0
  390. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tools/mkenv.py +0 -0
  391. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tools/notebook.py +0 -0
  392. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tools/pawk/README.md +0 -0
  393. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tools/pawk/__init__.py +0 -0
  394. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tools/pawk/__main__.py +0 -0
  395. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tools/pawk/pawk.py +0 -0
  396. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tools/pip.py +0 -0
  397. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tools/prof.py +0 -0
  398. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tools/qr.py +0 -0
  399. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tools/shadow.py +0 -0
  400. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tools/shell.py +0 -0
  401. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tools/sqlrepl.py +0 -0
  402. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tui/__init__.py +0 -0
  403. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tui/apps/__init__.py +0 -0
  404. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tui/apps/edit/__init__.py +0 -0
  405. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tui/apps/edit/main.py +0 -0
  406. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tui/apps/irc/__init__.py +0 -0
  407. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tui/apps/irc/__main__.py +0 -0
  408. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tui/apps/irc/app.py +0 -0
  409. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tui/apps/irc/client.py +0 -0
  410. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tui/apps/irc/commands.py +0 -0
  411. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tui/apps/irc/main.py +0 -0
  412. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tui/apps/markdown/__init__.py +0 -0
  413. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tui/apps/markdown/__main__.py +0 -0
  414. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tui/apps/markdown/cli.py +0 -0
  415. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tui/rich/__init__.py +0 -0
  416. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tui/rich/console2.py +0 -0
  417. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tui/rich/markdown2.py +0 -0
  418. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tui/textual/app2.py +0 -0
  419. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tui/textual/autocomplete/LICENSE +0 -0
  420. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tui/textual/autocomplete/__init__.py +0 -0
  421. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tui/textual/autocomplete/matching.py +0 -0
  422. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tui/textual/autocomplete/paths.py +0 -0
  423. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tui/textual/autocomplete/widget.py +0 -0
  424. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tui/textual/binding2.py +0 -0
  425. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tui/textual/clipboard.py +0 -0
  426. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tui/textual/debug/__init__.py +0 -0
  427. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tui/textual/debug/dominfo.py +0 -0
  428. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tui/textual/debug/screen.py +0 -0
  429. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tui/textual/devtools.py +0 -0
  430. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tui/textual/drivers2.py +0 -0
  431. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tui/textual/logging2.py +0 -0
  432. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tui/textual/screen2.py +0 -0
  433. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev/tui/textual/types.py +0 -0
  434. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev.egg-info/SOURCES.txt +0 -0
  435. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev.egg-info/dependency_links.txt +0 -0
  436. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev.egg-info/entry_points.txt +0 -0
  437. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/omdev.egg-info/top_level.txt +0 -0
  438. {omdev-0.0.0.dev534 → omdev-0.0.0.dev536}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: omdev
3
- Version: 0.0.0.dev534
3
+ Version: 0.0.0.dev536
4
4
  Summary: omdev
5
5
  Author: wrmsr
6
6
  License-Expression: BSD-3-Clause
@@ -14,9 +14,9 @@ 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.dev534
17
+ Requires-Dist: omlish==0.0.0.dev536
18
18
  Provides-Extra: all
19
- Requires-Dist: black~=26.1; extra == "all"
19
+ Requires-Dist: black~=26.3; extra == "all"
20
20
  Requires-Dist: pycparser~=3.0; extra == "all"
21
21
  Requires-Dist: pcpp~=1.30; extra == "all"
22
22
  Requires-Dist: docutils~=0.22; extra == "all"
@@ -31,7 +31,7 @@ Requires-Dist: textual~=8.0; extra == "all"
31
31
  Requires-Dist: textual-dev~=1.8; extra == "all"
32
32
  Requires-Dist: textual-speedups~=0.2; extra == "all"
33
33
  Provides-Extra: black
34
- Requires-Dist: black~=26.1; extra == "black"
34
+ Requires-Dist: black~=26.3; extra == "black"
35
35
  Provides-Extra: c
36
36
  Requires-Dist: pycparser~=3.0; extra == "c"
37
37
  Requires-Dist: pcpp~=1.30; extra == "c"
@@ -13,7 +13,7 @@ class Project(ProjectBase):
13
13
 
14
14
  optional_dependencies = {
15
15
  'black': [
16
- 'black ~= 26.1',
16
+ 'black ~= 26.3',
17
17
  ],
18
18
 
19
19
  'c': [
@@ -166,6 +166,10 @@ class BasePyprojectPackageGenerator(Abstract):
166
166
  continue
167
167
 
168
168
  log.info('Found pkgdata %s', p)
169
+
170
+ if not os.path.isfile(os.path.join(p, '__init__.py')):
171
+ raise RuntimeError(f'Cannot find __init__.py in {p}')
172
+
169
173
  with open(os.path.join(p, f)) as fo:
170
174
  src = fo.read()
171
175
 
@@ -45,7 +45,7 @@ def _main() -> None:
45
45
  if re.fullmatch(r'~=\s*\d+(\.\d+)*', str(opt_spec)):
46
46
  opt_spec = Specifier(str(opt_spec) + '.0')
47
47
 
48
- if opt_cn in pkgs:
48
+ if opt_cn in pkgs or opt_cn not in dist_dct:
49
49
  continue
50
50
 
51
51
  opt_dist = dist_dct[opt_cn]
@@ -149,7 +149,7 @@ def __omlish_amalg__(): # noqa
149
149
  dict(path='../../omlish/http/handlers.py', sha1='2b97d76b8e2e507b5c5b6a241d077c00960ee638'),
150
150
  dict(path='../../omlish/lite/inject.py', sha1='6f097e3170019a34ff6834d36fcc9cbeed3a7ab4'),
151
151
  dict(path='../../omlish/logs/contexts.py', sha1='1000a6d5ddfb642865ca532e34b1d50759781cf0'),
152
- dict(path='../../omlish/logs/std/standard.py', sha1='5c97c1b9f7ead58d6127d047b873398f708f288d'),
152
+ dict(path='../../omlish/logs/std/standard.py', sha1='472f1f0623d6bcd301612551432afa7e3a661a34'),
153
153
  dict(path='../../omlish/logs/utils.py', sha1='9b879044cbdc3172fd7282c7f2a4880b81261cdd'),
154
154
  dict(path='../../omlish/sockets/server/handlers.py', sha1='6f9adca9fa04774a28a488a4e2a11bb4492c71d0'),
155
155
  dict(path='../../omlish/subprocesses/run.py', sha1='8200e48f0c49d164df3503cd0143038d0c4d30aa'),
@@ -11528,7 +11528,7 @@ def configure_standard_logging(
11528
11528
  #
11529
11529
 
11530
11530
  if level is not None:
11531
- target.setLevel(level)
11531
+ target.setLevel(level.upper() if isinstance(level, str) else level)
11532
11532
 
11533
11533
  #
11534
11534
 
@@ -74,7 +74,7 @@ def __omlish_amalg__(): # noqa
74
74
  dict(path='types.py', sha1='caf068a6e81fb6e221d777b341ac5777d92b8091'),
75
75
  dict(path='../../omlish/asyncs/asyncio/timeouts.py', sha1='4d31b02b3c39b8f2fa7e94db36552fde6942e36a'),
76
76
  dict(path='../../omlish/lite/inject.py', sha1='6f097e3170019a34ff6834d36fcc9cbeed3a7ab4'),
77
- dict(path='../../omlish/logs/std/standard.py', sha1='5c97c1b9f7ead58d6127d047b873398f708f288d'),
77
+ dict(path='../../omlish/logs/std/standard.py', sha1='472f1f0623d6bcd301612551432afa7e3a661a34'),
78
78
  dict(path='../../omlish/subprocesses/run.py', sha1='8200e48f0c49d164df3503cd0143038d0c4d30aa'),
79
79
  dict(path='../../omlish/subprocesses/wrap.py', sha1='8a9b7d2255481fae15c05f5624b0cdc0766f4b3f'),
80
80
  dict(path='providers/base.py', sha1='f5d068c21f230d742e9015b033cd6320f4c68898'),
@@ -4647,7 +4647,7 @@ def configure_standard_logging(
4647
4647
  #
4648
4648
 
4649
4649
  if level is not None:
4650
- target.setLevel(level)
4650
+ target.setLevel(level.upper() if isinstance(level, str) else level)
4651
4651
 
4652
4652
  #
4653
4653
 
@@ -26,16 +26,16 @@ def __omlish_amalg__(): # noqa
26
26
  dict(path='errors.py', sha1='67ca85fd8741b5bfefe76c872ce1c30c18fab06f'),
27
27
  dict(path='../../lite/abstract.py', sha1='a2fc3f3697fa8de5247761e9d554e70176f37aac'),
28
28
  dict(path='../../lite/namespaces.py', sha1='27b12b6592403c010fb8b2a0af7c24238490d3a1'),
29
- dict(path='types.py', sha1='ab72e5d4a1e648ef79577be7d8c45853b1c5917d'),
29
+ dict(path='types.py', sha1='8959d244de95eaf9f118cc3fd2d713d85e55ff36'),
30
30
  dict(path='base.py', sha1='bdeaff419684dec34fd0dc59808a9686131992bc'),
31
31
  dict(path='framing.py', sha1='dc2d7f638b042619fd3d95789c71532a29fd5fe4'),
32
32
  dict(path='reading.py', sha1='7631635c46ab4b40bcaeb7c506cf15cb2d529a40'),
33
- dict(path='utils.py', sha1='476363dfce81e3177a66f066892ed3fcf773ead8'),
34
- dict(path='direct.py', sha1='83c33460e9490a77a00ae66251617ba98128b56b'),
35
- dict(path='scanning.py', sha1='6ab39887d0d2d3002201b786c4715e64804c66c8'),
36
- dict(path='adapters.py', sha1='ce4fc01bd81bb6b3402dc71e46c37849a80e476d'),
37
- dict(path='linear.py', sha1='b2d82224c6a3001eb8230d6a9c4de7cb3afe7d1c'),
38
- dict(path='segmented.py', sha1='4aeb1c22b7b5994132f0b5906d70b3e53201776b'),
33
+ dict(path='utils.py', sha1='eb08fa1d56284b078f973eea6796747b9bbdffdf'),
34
+ dict(path='direct.py', sha1='b01937212493e9a41644ac4e366e4cbab10332ce'),
35
+ dict(path='scanning.py', sha1='00522802dff772689be66151430754d4f9706dbc'),
36
+ dict(path='adapters.py', sha1='f38f33ef312c68ecda06ddee928e679fc86bd49e'),
37
+ dict(path='linear.py', sha1='82d8d806abd708e8d471f32cb49813be150bcf6a'),
38
+ dict(path='segmented.py', sha1='025cdf30e582a5a2b923e1859fbb4d3f367b811c'),
39
39
  dict(path='_amalg.py', sha1='9c88a055447d7b37da1b356e6a1e00b7c4a9a3cb'),
40
40
  ],
41
41
  )
@@ -48,7 +48,10 @@ def __omlish_amalg__(): # noqa
48
48
  T = ta.TypeVar('T')
49
49
 
50
50
  # types.py
51
- BytesLikeOrMemoryview = ta.Union[bytes, bytearray, memoryview] # ta.TypeAlias
51
+ BytesLike = ta.Union[bytes, bytearray, memoryview] # ta.TypeAlias
52
+
53
+ # utils.py
54
+ CanByteStreamBuffer = ta.Union[BytesLike, 'ByteStreamBufferLike'] # ta.TypeAlias
52
55
 
53
56
 
54
57
  ########################################
@@ -498,7 +501,7 @@ class MutableByteStreamBuffer(ByteStreamBuffer, Abstract):
498
501
  raise NotImplementedError
499
502
 
500
503
  @abc.abstractmethod
501
- def write(self, data: BytesLikeOrMemoryview, /) -> None:
504
+ def write(self, data: BytesLike, /) -> None:
502
505
  """
503
506
  Append `data` to the end of the readable region (after any existing unread bytes).
504
507
 
@@ -1042,22 +1045,23 @@ class ByteStreamBufferReader:
1042
1045
 
1043
1046
 
1044
1047
  class ByteStreamBuffers(NamespaceClass):
1045
- @staticmethod
1046
- def memoryview_to_bytes(mv: memoryview, /) -> bytes:
1047
- if (((ot := type(obj := mv.obj)) is bytes or ot is bytearray or isinstance(obj, (bytes, bytearray))) and len(mv) == len(obj)): # type: ignore[arg-type] # noqa
1048
- return obj # type: ignore[return-value]
1049
-
1050
- return mv.tobytes()
1051
-
1052
- ##
1053
-
1054
- _CAN_CONVERT_TYPES: ta.ClassVar[ta.Tuple[type, ...]] = (
1048
+ _BYTES_TYPES: ta.ClassVar[ta.Tuple[type, ...]] = (
1055
1049
  bytes,
1056
1050
  bytearray,
1051
+ )
1052
+
1053
+ _BYTES_LIKE_TYPES: ta.ClassVar[ta.Tuple[type, ...]] = (
1054
+ *_BYTES_TYPES,
1057
1055
  memoryview,
1056
+ )
1057
+
1058
+ _CAN_CONVERT_TYPES: ta.ClassVar[ta.Tuple[type, ...]] = (
1059
+ *_BYTES_LIKE_TYPES,
1058
1060
  ByteStreamBufferLike,
1059
1061
  )
1060
1062
 
1063
+ #
1064
+
1061
1065
  @classmethod
1062
1066
  def can_bytes(cls, obj: ta.Any, /) -> bool:
1063
1067
  return type(obj) in (cts := cls._CAN_CONVERT_TYPES) or isinstance(obj, cts)
@@ -1066,77 +1070,89 @@ class ByteStreamBuffers(NamespaceClass):
1066
1070
 
1067
1071
  @classmethod
1068
1072
  @ta.overload
1069
- def buffer_to_bytes(cls, obj: ta.Any, or_none: ta.Literal[True], /) -> ta.Optional[bytes]:
1073
+ def to_bytes(
1074
+ cls,
1075
+ obj: ta.Any,
1076
+ /, *,
1077
+ strict: ta.Literal[True],
1078
+ or_none: ta.Literal[True],
1079
+ ) -> ta.Optional[bytes]:
1070
1080
  ...
1071
1081
 
1072
1082
  @classmethod
1073
1083
  @ta.overload
1074
- def buffer_to_bytes(cls, obj: ta.Any, or_none: ta.Literal[False] = False, /) -> bytes:
1084
+ def to_bytes(
1085
+ cls,
1086
+ obj: ta.Any,
1087
+ /, *,
1088
+ strict: ta.Literal[True],
1089
+ or_none: ta.Literal[False] = False,
1090
+ ) -> bytes:
1075
1091
  ...
1076
1092
 
1077
- @classmethod
1078
- def buffer_to_bytes(cls, obj, or_none=False, /):
1079
- if type(obj) is memoryview or isinstance(obj, memoryview):
1080
- return cls.memoryview_to_bytes(obj)
1081
-
1082
- elif isinstance(obj, ByteStreamBufferView):
1083
- return obj.tobytes()
1084
-
1085
- elif isinstance(obj, ByteStreamBufferLike):
1086
- return b''.join(bytes(mv) for mv in obj.segments())
1087
-
1088
- elif or_none:
1089
- return None
1090
-
1091
- else:
1092
- raise TypeError(obj)
1093
-
1094
- #
1095
-
1096
1093
  @classmethod
1097
1094
  @ta.overload
1098
- def any_to_bytes(cls, obj: ta.Any, or_none: ta.Literal[True], /) -> ta.Optional[bytes]:
1095
+ def to_bytes(
1096
+ cls,
1097
+ obj: ta.Any,
1098
+ /, *,
1099
+ strict: ta.Literal[False] = False,
1100
+ or_none: ta.Literal[True],
1101
+ ) -> ta.Union[bytes, bytearray, None]:
1099
1102
  ...
1100
1103
 
1101
1104
  @classmethod
1102
1105
  @ta.overload
1103
- def any_to_bytes(cls, obj: ta.Any, or_none: ta.Literal[False] = False, /) -> bytes:
1106
+ def to_bytes(
1107
+ cls,
1108
+ obj: ta.Any,
1109
+ /, *,
1110
+ strict: ta.Literal[False] = False,
1111
+ or_none: ta.Literal[False] = False,
1112
+ ) -> ta.Union[bytes, bytearray]:
1104
1113
  ...
1105
1114
 
1106
1115
  @classmethod
1107
- def any_to_bytes(cls, obj, or_none=False, /):
1108
- if (ot := type(obj)) is bytes:
1109
- return obj
1110
- elif ot is bytearray:
1111
- return bytes(obj)
1116
+ def to_bytes(
1117
+ cls,
1118
+ obj,
1119
+ /, *,
1120
+ strict=False,
1121
+ or_none=False,
1122
+ ):
1123
+ """
1124
+ Returns a non-shared version of the given object. If a possibly shared memoryview is acceptable, use
1125
+ `iter_segments`.
1126
+ """
1127
+
1128
+ if strict:
1129
+ if (ot := type(obj)) is bytes or isinstance(obj, bytes):
1130
+ return obj
1131
+
1132
+ elif ot is bytearray:
1133
+ return bytes(obj)
1112
1134
 
1113
- elif isinstance(obj, bytes):
1114
- return obj
1115
- elif isinstance(obj, bytearray):
1116
- return bytes(obj)
1135
+ elif isinstance(obj, memoryview):
1136
+ return cls.memoryview_to_bytes_strict(obj)
1117
1137
 
1118
1138
  else:
1119
- return cls.buffer_to_bytes(obj, or_none) # noqa
1139
+ if (ot := type(obj)) is bytes or ot is bytearray or isinstance(obj, cls._BYTES_TYPES):
1140
+ return obj
1120
1141
 
1121
- #
1142
+ elif isinstance(obj, memoryview):
1143
+ return cls.memoryview_to_bytes(obj)
1122
1144
 
1123
- @classmethod
1124
- @ta.overload
1125
- def any_to_bytes_or_bytearray(cls, obj: ta.Any, or_none: ta.Literal[True], /) -> ta.Union[bytes, bytearray, None]:
1126
- ...
1145
+ if isinstance(obj, ByteStreamBufferView):
1146
+ return obj.tobytes()
1127
1147
 
1128
- @classmethod
1129
- @ta.overload
1130
- def any_to_bytes_or_bytearray(cls, obj: ta.Any, or_none: ta.Literal[False] = False, /) -> ta.Union[bytes, bytearray]: # noqa
1131
- ...
1148
+ elif isinstance(obj, ByteStreamBufferLike):
1149
+ return b''.join(bytes(mv) for mv in obj.segments())
1132
1150
 
1133
- @classmethod
1134
- def any_to_bytes_or_bytearray(cls, obj, or_none=False, /):
1135
- if (ot := type(obj)) is bytes or ot is bytearray or isinstance(obj, (bytes, bytearray)):
1136
- return obj
1151
+ elif or_none:
1152
+ return None
1137
1153
 
1138
1154
  else:
1139
- return cls.buffer_to_bytes(obj, or_none) # noqa
1155
+ raise TypeError(obj)
1140
1156
 
1141
1157
  #
1142
1158
 
@@ -1161,7 +1177,7 @@ class ByteStreamBuffers(NamespaceClass):
1161
1177
  else:
1162
1178
  raise TypeError(obj)
1163
1179
 
1164
- ##
1180
+ #
1165
1181
 
1166
1182
  @staticmethod
1167
1183
  def iter_segments(obj: ta.Any, /) -> ta.Iterator[memoryview]:
@@ -1181,6 +1197,8 @@ class ByteStreamBuffers(NamespaceClass):
1181
1197
  else:
1182
1198
  raise TypeError(obj)
1183
1199
 
1200
+ #
1201
+
1184
1202
  @staticmethod
1185
1203
  def split(buf: ByteStreamBuffer, sep: bytes, /, *, final: bool = False) -> ta.List[ByteStreamBufferView]:
1186
1204
  out: ta.List[ByteStreamBufferView] = []
@@ -1190,6 +1208,22 @@ class ByteStreamBuffers(NamespaceClass):
1190
1208
  out.append(buf.split_to(len(buf)))
1191
1209
  return out
1192
1210
 
1211
+ #
1212
+
1213
+ @classmethod
1214
+ def memoryview_to_bytes(cls, mv: memoryview, /) -> ta.Union[bytes, bytearray]:
1215
+ if (((ot := type(obj := mv.obj)) is bytes or ot is bytearray or isinstance(obj, cls._BYTES_TYPES)) and len(mv) == len(obj)): # type: ignore[arg-type] # noqa
1216
+ return obj # type: ignore[return-value]
1217
+
1218
+ return mv.tobytes()
1219
+
1220
+ @staticmethod
1221
+ def memoryview_to_bytes_strict(mv: memoryview, /) -> bytes:
1222
+ if (((ot := type(obj := mv.obj)) is bytes or isinstance(obj, bytes)) and len(mv) == len(obj)): # type: ignore[arg-type] # noqa
1223
+ return obj # type: ignore[return-value]
1224
+
1225
+ return mv.tobytes()
1226
+
1193
1227
 
1194
1228
  ########################################
1195
1229
  # ../direct.py
@@ -1199,7 +1233,7 @@ class ByteStreamBuffers(NamespaceClass):
1199
1233
 
1200
1234
 
1201
1235
  class BaseDirectByteStreamBufferLike(BaseByteStreamBufferLike, Abstract):
1202
- def __init__(self, data: BytesLikeOrMemoryview) -> None:
1236
+ def __init__(self, data: BytesLike) -> None:
1203
1237
  super().__init__()
1204
1238
 
1205
1239
  self._data = data
@@ -1279,7 +1313,7 @@ class DirectByteStreamBuffer(BaseDirectByteStreamBufferLike, ByteStreamBuffer):
1279
1313
  b'GET /path HTTP/1.1\\r\\nHost: example.com'
1280
1314
  """
1281
1315
 
1282
- def __init__(self, data: BytesLikeOrMemoryview) -> None:
1316
+ def __init__(self, data: BytesLike) -> None:
1283
1317
  super().__init__(data)
1284
1318
 
1285
1319
  self._rpos = 0
@@ -1445,7 +1479,7 @@ class ScanningByteStreamBuffer(BaseByteStreamBufferLike, MutableByteStreamBuffer
1445
1479
 
1446
1480
  #
1447
1481
 
1448
- def write(self, data: BytesLikeOrMemoryview, /) -> None:
1482
+ def write(self, data: BytesLike, /) -> None:
1449
1483
  self._buf.write(data)
1450
1484
 
1451
1485
  def reserve(self, n: int, /) -> memoryview:
@@ -1643,7 +1677,7 @@ class BytesIoByteStreamBuffer(MutableByteStreamBuffer):
1643
1677
  def __init__(
1644
1678
  self,
1645
1679
  *,
1646
- compaction_threshold: int = 0x10000,
1680
+ compaction_threshold: int = 64 * 1024,
1647
1681
  ) -> None:
1648
1682
  super().__init__()
1649
1683
 
@@ -1698,7 +1732,7 @@ class BytesIoByteStreamBuffer(MutableByteStreamBuffer):
1698
1732
  self._rpos += n
1699
1733
  return DirectByteStreamBufferView(out)
1700
1734
 
1701
- def write(self, data: BytesLikeOrMemoryview, /) -> None:
1735
+ def write(self, data: BytesLike, /) -> None:
1702
1736
  if not data:
1703
1737
  return
1704
1738
  if isinstance(data, memoryview):
@@ -1795,7 +1829,7 @@ class LinearByteStreamBuffer(BaseByteStreamBufferLike, MutableByteStreamBuffer):
1795
1829
  *,
1796
1830
  max_size: ta.Optional[int] = None,
1797
1831
  initial_capacity: int = 0,
1798
- compact_threshold: int = 0x10000,
1832
+ compact_threshold: int = 64 * 1024,
1799
1833
  ) -> None:
1800
1834
  super().__init__()
1801
1835
 
@@ -1851,7 +1885,7 @@ class LinearByteStreamBuffer(BaseByteStreamBufferLike, MutableByteStreamBuffer):
1851
1885
  if self._resv_start is not None:
1852
1886
  raise OutstandingReserveByteStreamBufferError('outstanding reserve')
1853
1887
 
1854
- def write(self, data: BytesLikeOrMemoryview, /) -> None:
1888
+ def write(self, data: BytesLike, /) -> None:
1855
1889
  self._check_no_reserve()
1856
1890
  if not data:
1857
1891
  return
@@ -1939,7 +1973,7 @@ class LinearByteStreamBuffer(BaseByteStreamBufferLike, MutableByteStreamBuffer):
1939
1973
  return _EMPTY_DIRECT_BYTE_STREAM_BUFFER_VIEW
1940
1974
 
1941
1975
  # Copy out the split prefix to keep the view stable even if the underlying buffer compacts.
1942
- b = bytes(memoryview(self._ba)[self._rpos:self._rpos + n])
1976
+ b = ByteStreamBuffers.memoryview_to_bytes(memoryview(self._ba)[self._rpos:self._rpos + n])
1943
1977
  self._rpos += n
1944
1978
 
1945
1979
  # If we consumed everything, reset best-effort; otherwise allow compaction policy to handle later.
@@ -2075,7 +2109,21 @@ class SegmentedByteStreamBufferView(BaseByteStreamBufferLike, ByteStreamBufferVi
2075
2109
 
2076
2110
  self._segs = tuple(segs)
2077
2111
  for mv in self._segs:
2078
- self._len += len(mv)
2112
+ if (mvl := len(mv)) < 1:
2113
+ raise ValueError('Empty segment')
2114
+ self._len += mvl
2115
+
2116
+ @classmethod
2117
+ def of_opt(cls, segs: ta.Sequence[memoryview]) -> ta.Optional['SegmentedByteStreamBufferView']:
2118
+ if not segs:
2119
+ return None
2120
+ return cls(segs)
2121
+
2122
+ @classmethod
2123
+ def or_else(cls, segs: ta.Sequence[memoryview], default: T) -> ta.Union['SegmentedByteStreamBufferView', T]:
2124
+ if not segs:
2125
+ return default
2126
+ return cls(segs)
2079
2127
 
2080
2128
  _len = 0
2081
2129
 
@@ -2094,8 +2142,8 @@ class SegmentedByteStreamBufferView(BaseByteStreamBufferLike, ByteStreamBufferVi
2094
2142
  if not self._segs:
2095
2143
  return b''
2096
2144
  if len(self._segs) == 1:
2097
- return bytes(self._segs[0])
2098
- return b''.join(bytes(mv) for mv in self._segs)
2145
+ return ByteStreamBuffers.memoryview_to_bytes(self._segs[0])
2146
+ return b''.join(ByteStreamBuffers.memoryview_to_bytes(mv) for mv in self._segs)
2099
2147
 
2100
2148
 
2101
2149
  class SegmentedByteStreamBuffer(BaseByteStreamBufferLike, MutableByteStreamBuffer):
@@ -2260,7 +2308,7 @@ class SegmentedByteStreamBuffer(BaseByteStreamBufferLike, MutableByteStreamBuffe
2260
2308
  if self._chunk_size and (float(used) / float(self._chunk_size)) < self._chunk_compact_threshold:
2261
2309
  if not self._segs or self._segs[-1] is not a:
2262
2310
  raise RuntimeError('active not at tail')
2263
- self._segs[-1] = bytes(memoryview(a)[:used])
2311
+ self._segs[-1] = ByteStreamBuffers.memoryview_to_bytes(memoryview(a)[:used])
2264
2312
 
2265
2313
  else:
2266
2314
  # Try to shrink in-place to used bytes. If exported views exist, this can BufferError; fall back to bytes()
@@ -2270,12 +2318,12 @@ class SegmentedByteStreamBuffer(BaseByteStreamBufferLike, MutableByteStreamBuffe
2270
2318
  try:
2271
2319
  del a[used:] # may raise BufferError if any exports exist
2272
2320
  except BufferError:
2273
- self._segs[-1] = bytes(memoryview(a)[:used])
2321
+ self._segs[-1] = ByteStreamBuffers.memoryview_to_bytes(memoryview(a)[:used])
2274
2322
 
2275
2323
  self._active = None
2276
2324
  self._active_used = 0
2277
2325
 
2278
- def write(self, data: BytesLikeOrMemoryview, /) -> None:
2326
+ def write(self, data: BytesLike, /) -> None:
2279
2327
  if not data:
2280
2328
  return
2281
2329
  if isinstance(data, memoryview):
@@ -2386,7 +2434,7 @@ class SegmentedByteStreamBuffer(BaseByteStreamBufferLike, MutableByteStreamBuffe
2386
2434
  self._segs.append(b)
2387
2435
  self._len += n
2388
2436
  else:
2389
- bb = bytes(memoryview(b)[:n])
2437
+ bb = ByteStreamBuffers.memoryview_to_bytes(memoryview(b)[:n])
2390
2438
  self._segs.append(bb)
2391
2439
  self._len += n
2392
2440
 
@@ -43,7 +43,7 @@ def __omlish_amalg__(): # noqa
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'),
46
- dict(path='std/standard.py', sha1='5c97c1b9f7ead58d6127d047b873398f708f288d'),
46
+ dict(path='std/standard.py', sha1='472f1f0623d6bcd301612551432afa7e3a661a34'),
47
47
  dict(path='base.py', sha1='eaa2ce213235815e2f86c50df6c41cfe26a43ba2'),
48
48
  dict(path='std/records.py', sha1='67e552537d9268d4df6939b8a92be885fda35238'),
49
49
  dict(path='std/loggers.py', sha1='dbdfc66188e6accb75d03454e43221d3fba0f011'),
@@ -1355,7 +1355,7 @@ def configure_standard_logging(
1355
1355
  #
1356
1356
 
1357
1357
  if level is not None:
1358
- target.setLevel(level)
1358
+ target.setLevel(level.upper() if isinstance(level, str) else level)
1359
1359
 
1360
1360
  #
1361
1361
 
@@ -124,7 +124,7 @@ def __omlish_amalg__(): # noqa
124
124
  dict(path='../../omlish/asyncs/asyncio/timeouts.py', sha1='4d31b02b3c39b8f2fa7e94db36552fde6942e36a'),
125
125
  dict(path='../../omlish/lite/inject.py', sha1='6f097e3170019a34ff6834d36fcc9cbeed3a7ab4'),
126
126
  dict(path='../../omlish/logs/contexts.py', sha1='1000a6d5ddfb642865ca532e34b1d50759781cf0'),
127
- dict(path='../../omlish/logs/std/standard.py', sha1='5c97c1b9f7ead58d6127d047b873398f708f288d'),
127
+ dict(path='../../omlish/logs/std/standard.py', sha1='472f1f0623d6bcd301612551432afa7e3a661a34'),
128
128
  dict(path='../../omlish/subprocesses/run.py', sha1='8200e48f0c49d164df3503cd0143038d0c4d30aa'),
129
129
  dict(path='../../omlish/subprocesses/wrap.py', sha1='8a9b7d2255481fae15c05f5624b0cdc0766f4b3f'),
130
130
  dict(path='../interp/providers/base.py', sha1='f5d068c21f230d742e9015b033cd6320f4c68898'),
@@ -148,7 +148,7 @@ def __omlish_amalg__(): # noqa
148
148
  dict(path='../interp/providers/system.py', sha1='9638a154475ca98775159d27739563ac7fb2eb16'),
149
149
  dict(path='../interp/pyenv/install.py', sha1='4a10a19717364b4ba9f3b8bf1d12621cf21ba8b8'),
150
150
  dict(path='../interp/uv/provider.py', sha1='3c3980878ad2b9fd2cd02172f9424954759c7f06'),
151
- dict(path='pkg.py', sha1='b2b63a3906d62e5911d2e5c0ee178041c53eff50'),
151
+ dict(path='pkg.py', sha1='2f0b5dc8cb359ee4d499f5a52a62b790b5557a3b'),
152
152
  dict(path='../interp/providers/inject.py', sha1='7cc9ebf58cf2ec09545321456bd9da9f9a3a79fb'),
153
153
  dict(path='../interp/pyenv/provider.py', sha1='377542ce01a35849e2a5b4a4dbafedc26882f983'),
154
154
  dict(path='../interp/uv/inject.py', sha1='e95d058c2340baa5a3155ec3440f311d1daa10a8'),
@@ -8558,7 +8558,7 @@ def configure_standard_logging(
8558
8558
  #
8559
8559
 
8560
8560
  if level is not None:
8561
- target.setLevel(level)
8561
+ target.setLevel(level.upper() if isinstance(level, str) else level)
8562
8562
 
8563
8563
  #
8564
8564
 
@@ -11799,6 +11799,10 @@ class BasePyprojectPackageGenerator(Abstract):
11799
11799
  continue
11800
11800
 
11801
11801
  log.info('Found pkgdata %s', p)
11802
+
11803
+ if not os.path.isfile(os.path.join(p, '__init__.py')):
11804
+ raise RuntimeError(f'Cannot find __init__.py in {p}')
11805
+
11802
11806
  with open(os.path.join(p, f)) as fo:
11803
11807
  src = fo.read()
11804
11808
 
@@ -1,5 +1,4 @@
1
1
  # ruff: noqa: UP006 UP007 UP045
2
- # @omlish-precheck-allow-any-unicode
3
2
  """
4
3
  TODO:
5
4
  - Handle:
@@ -480,12 +479,6 @@ class Cli(ap.Cli):
480
479
 
481
480
  #
482
481
 
483
- BUILTIN_COMMIT_MESSAGES: ta.Mapping[str, str] = {
484
- 'tableflip': '(╯°□°)╯︵ ┻━┻',
485
- 'tableunflip': '┬─┬ノ(º _ ºノ)',
486
- 'shrug': r'¯\_(ツ)_/¯',
487
- }
488
-
489
482
  @ap.cmd(
490
483
  ap.arg('-M', '--builtin-message', nargs='?'),
491
484
  accepts_unknown=True,
@@ -494,7 +487,7 @@ class Cli(ap.Cli):
494
487
  args: list[str] = []
495
488
 
496
489
  if (bim := self.args.builtin_message) is not None:
497
- args.extend(['-m', self.BUILTIN_COMMIT_MESSAGES[bim]])
490
+ args.extend(['-m', consts.BUILTIN_COMMIT_MESSAGES[bim]])
498
491
 
499
492
  subprocesses.check_call(
500
493
  'git',
@@ -0,0 +1,15 @@
1
+ # @omlish-precheck-allow-any-unicode
2
+ import typing as ta
3
+
4
+
5
+ ##
6
+
7
+
8
+ DEFAULT_TIME_FMT = '%Y-%m-%dT%H:%M:%SZ'
9
+
10
+
11
+ BUILTIN_COMMIT_MESSAGES: ta.Mapping[str, str] = {
12
+ 'tableflip': '(╯°□°)╯︵ ┻━┻',
13
+ 'tableunflip': '┬─┬ノ(º _ ºノ)',
14
+ 'shrug': r'¯\_(ツ)_/¯',
15
+ }
@@ -171,6 +171,7 @@ with _lang.auto_proxy_init(globals()):
171
171
  from textual.suggestions import get_suggestions # noqa
172
172
  from textual.timer import Timer # noqa
173
173
  from textual.timer import TimerCallback # noqa
174
+ from textual.visual import VisualType # noqa
174
175
  from textual.widget import Widget # noqa
175
176
  from textual.widgets import Button # noqa
176
177
  from textual.widgets import Checkbox # noqa
@@ -231,6 +232,10 @@ with _lang.auto_proxy_init(globals()):
231
232
 
232
233
  ##
233
234
 
235
+ from rich.text import Text # noqa
236
+
237
+ ##
238
+
234
239
  from .app2 import ( # noqa
235
240
  App,
236
241
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: omdev
3
- Version: 0.0.0.dev534
3
+ Version: 0.0.0.dev536
4
4
  Summary: omdev
5
5
  Author: wrmsr
6
6
  License-Expression: BSD-3-Clause
@@ -14,9 +14,9 @@ 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.dev534
17
+ Requires-Dist: omlish==0.0.0.dev536
18
18
  Provides-Extra: all
19
- Requires-Dist: black~=26.1; extra == "all"
19
+ Requires-Dist: black~=26.3; extra == "all"
20
20
  Requires-Dist: pycparser~=3.0; extra == "all"
21
21
  Requires-Dist: pcpp~=1.30; extra == "all"
22
22
  Requires-Dist: docutils~=0.22; extra == "all"
@@ -31,7 +31,7 @@ Requires-Dist: textual~=8.0; extra == "all"
31
31
  Requires-Dist: textual-dev~=1.8; extra == "all"
32
32
  Requires-Dist: textual-speedups~=0.2; extra == "all"
33
33
  Provides-Extra: black
34
- Requires-Dist: black~=26.1; extra == "black"
34
+ Requires-Dist: black~=26.3; extra == "black"
35
35
  Provides-Extra: c
36
36
  Requires-Dist: pycparser~=3.0; extra == "c"
37
37
  Requires-Dist: pcpp~=1.30; extra == "c"
@@ -1,7 +1,7 @@
1
- omlish==0.0.0.dev534
1
+ omlish==0.0.0.dev536
2
2
 
3
3
  [all]
4
- black~=26.1
4
+ black~=26.3
5
5
  pycparser~=3.0
6
6
  pcpp~=1.30
7
7
  docutils~=0.22
@@ -17,7 +17,7 @@ textual-dev~=1.8
17
17
  textual-speedups~=0.2
18
18
 
19
19
  [black]
20
- black~=26.1
20
+ black~=26.3
21
21
 
22
22
  [c]
23
23
  pycparser~=3.0