omdev 0.0.0.dev535__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.dev535/omdev.egg-info → omdev-0.0.0.dev536}/PKG-INFO +4 -4
  2. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/__about__.py +1 -1
  3. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/scripts/ci.py +2 -2
  4. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/scripts/interp.py +2 -2
  5. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/scripts/lib/io/streams.py +111 -74
  6. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/scripts/lib/logs.py +2 -2
  7. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/scripts/pyproject.py +2 -2
  8. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tools/git/cli.py +1 -8
  9. omdev-0.0.0.dev536/omdev/tools/git/consts.py +15 -0
  10. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tui/textual/__init__.py +5 -0
  11. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536/omdev.egg-info}/PKG-INFO +4 -4
  12. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev.egg-info/requires.txt +3 -3
  13. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/pyproject.toml +4 -4
  14. omdev-0.0.0.dev535/omdev/tools/git/consts.py +0 -1
  15. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/LICENSE +0 -0
  16. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/MANIFEST.in +0 -0
  17. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/README.md +0 -0
  18. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/.omlish-manifests.json +0 -0
  19. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/README.md +0 -0
  20. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/__init__.py +0 -0
  21. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/amalg/__init__.py +0 -0
  22. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/amalg/__main__.py +0 -0
  23. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/amalg/cli/__init__.py +0 -0
  24. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/amalg/cli/main.py +0 -0
  25. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/amalg/gen/__init__.py +0 -0
  26. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/amalg/gen/gen.py +0 -0
  27. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/amalg/gen/imports.py +0 -0
  28. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/amalg/gen/manifests.py +0 -0
  29. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/amalg/gen/resources.py +0 -0
  30. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/amalg/gen/srcfiles.py +0 -0
  31. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/amalg/gen/strip.py +0 -0
  32. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/amalg/gen/types.py +0 -0
  33. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/amalg/gen/typing.py +0 -0
  34. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/amalg/info.py +0 -0
  35. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/amalg/sources.py +0 -0
  36. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cache/__init__.py +0 -0
  37. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cache/compute/__init__.py +0 -0
  38. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cache/compute/cache.py +0 -0
  39. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cache/compute/contexts.py +0 -0
  40. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cache/compute/currents.py +0 -0
  41. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cache/compute/fns.py +0 -0
  42. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cache/compute/resolvers.py +0 -0
  43. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cache/compute/storage.py +0 -0
  44. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cache/compute/types.py +0 -0
  45. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cache/data/__init__.py +0 -0
  46. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cache/data/actions.py +0 -0
  47. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cache/data/cache.py +0 -0
  48. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cache/data/consts.py +0 -0
  49. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cache/data/defaults.py +0 -0
  50. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cache/data/manifests.py +0 -0
  51. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cache/data/specs.py +0 -0
  52. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/capi/__init__.py +0 -0
  53. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/capi/darwin/__init__.py +0 -0
  54. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/capi/darwin/aps.py +0 -0
  55. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/capi/darwin/ax.py +0 -0
  56. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/capi/darwin/cf.py +0 -0
  57. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/capi/darwin/cg.py +0 -0
  58. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/capi/linux/__init__.py +0 -0
  59. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/capi/linux/x11.py +0 -0
  60. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cc/__init__.py +0 -0
  61. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cc/__main__.py +0 -0
  62. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cc/cdeps.py +0 -0
  63. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cc/cdeps.toml +0 -0
  64. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cc/cli.py +0 -0
  65. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cc/srclangs.py +0 -0
  66. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cexts/__init__.py +0 -0
  67. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cexts/_boilerplate.cc +0 -0
  68. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cexts/_distutils/LICENSE +0 -0
  69. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cexts/_distutils/__init__.py +0 -0
  70. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cexts/_distutils/build_ext.py +0 -0
  71. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cexts/_distutils/compilers/__init__.py +0 -0
  72. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cexts/_distutils/compilers/ccompiler.py +0 -0
  73. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cexts/_distutils/compilers/options.py +0 -0
  74. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cexts/_distutils/compilers/unixccompiler.py +0 -0
  75. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cexts/_distutils/dir_util.py +0 -0
  76. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cexts/_distutils/errors.py +0 -0
  77. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cexts/_distutils/extension.py +0 -0
  78. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cexts/_distutils/file_util.py +0 -0
  79. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cexts/_distutils/modified.py +0 -0
  80. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cexts/_distutils/spawn.py +0 -0
  81. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cexts/_distutils/sysconfig.py +0 -0
  82. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cexts/_distutils/util.py +0 -0
  83. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cexts/_distutils/version.py +0 -0
  84. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cexts/build.py +0 -0
  85. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cexts/cmake.py +0 -0
  86. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cexts/importhook.py +0 -0
  87. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cexts/magic.py +0 -0
  88. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cexts/scan.py +0 -0
  89. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/ci/__init__.py +0 -0
  90. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/ci/__main__.py +0 -0
  91. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/ci/cache.py +0 -0
  92. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/ci/ci.py +0 -0
  93. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/ci/cli.py +0 -0
  94. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/ci/compose.py +0 -0
  95. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/ci/consts.py +0 -0
  96. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/ci/docker/__init__.py +0 -0
  97. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/ci/docker/buildcaching.py +0 -0
  98. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/ci/docker/cache.py +0 -0
  99. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/ci/docker/cacheserved/__init__.py +0 -0
  100. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/ci/docker/cacheserved/cache.py +0 -0
  101. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/ci/docker/cacheserved/manifests.py +0 -0
  102. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/ci/docker/cmds.py +0 -0
  103. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/ci/docker/dataserver.py +0 -0
  104. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/ci/docker/imagepulling.py +0 -0
  105. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/ci/docker/inject.py +0 -0
  106. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/ci/docker/packing.py +0 -0
  107. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/ci/docker/repositories.py +0 -0
  108. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/ci/docker/utils.py +0 -0
  109. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/ci/github/__init__.py +0 -0
  110. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/ci/github/api/__init__.py +0 -0
  111. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/ci/github/api/clients.py +0 -0
  112. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/ci/github/api/v1/__init__.py +0 -0
  113. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/ci/github/api/v1/api.py +0 -0
  114. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/ci/github/api/v1/client.py +0 -0
  115. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/ci/github/api/v2/__init__.py +0 -0
  116. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/ci/github/api/v2/api.py +0 -0
  117. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/ci/github/api/v2/azure.py +0 -0
  118. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/ci/github/api/v2/client.py +0 -0
  119. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/ci/github/bootstrap.py +0 -0
  120. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/ci/github/cache.py +0 -0
  121. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/ci/github/cli.py +0 -0
  122. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/ci/github/env.py +0 -0
  123. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/ci/github/inject.py +0 -0
  124. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/ci/inject.py +0 -0
  125. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/ci/requirements.py +0 -0
  126. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/ci/shell.py +0 -0
  127. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/ci/utils.py +0 -0
  128. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cli/__init__.py +0 -0
  129. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cli/__main__.py +0 -0
  130. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cli/_pathhack.py +0 -0
  131. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cli/clicli.py +0 -0
  132. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cli/install.py +0 -0
  133. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cli/main.py +0 -0
  134. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cli/managers.py +0 -0
  135. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cli/types.py +0 -0
  136. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/clipboard/__init__.py +0 -0
  137. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/clipboard/capi/__init__.py +0 -0
  138. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/clipboard/capi/darwin_cf.py +0 -0
  139. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/clipboard/capi/linux_x11.py +0 -0
  140. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/clipboard/commands.py +0 -0
  141. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/clipboard/platform.py +0 -0
  142. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/clipboard/types.py +0 -0
  143. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cmake.py +0 -0
  144. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cmdlog/__init__.py +0 -0
  145. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cmdlog/__main__.py +0 -0
  146. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cmdlog/_cmdlog.py +0 -0
  147. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cmdlog/cli.py +0 -0
  148. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/cmdlog/cmdlog.py +0 -0
  149. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/dataclasses/__init__.py +0 -0
  150. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/dataclasses/__main__.py +0 -0
  151. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/dataclasses/_dumping.py +0 -0
  152. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/dataclasses/_template.py +0 -0
  153. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/dataclasses/cli.py +0 -0
  154. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/dataclasses/codegen.py +0 -0
  155. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/dataclasses/dumping.py +0 -0
  156. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/dataserver/__init__.py +0 -0
  157. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/dataserver/handlers.py +0 -0
  158. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/dataserver/http.py +0 -0
  159. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/dataserver/routes.py +0 -0
  160. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/dataserver/server.py +0 -0
  161. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/dataserver/targets.py +0 -0
  162. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/dockerdev/__init__.py +0 -0
  163. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/dockerdev/__main__.py +0 -0
  164. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/dockerdev/cli.py +0 -0
  165. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/dockerdev/config.toml +0 -0
  166. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/dockerdev/content.py +0 -0
  167. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/dockerdev/gen.py +0 -0
  168. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/dockerdev/helpers.py +0 -0
  169. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/dockerdev/ops.py +0 -0
  170. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/dockerdev/rendering.py +0 -0
  171. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/dockerdev/resources/.python-versions.json +0 -0
  172. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/dockerdev/resources/configs/.gdbinit +0 -0
  173. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/dockerdev/resources/configs/.tmux.conf +0 -0
  174. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/dockerdev/resources/configs/.vimrc +0 -0
  175. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/dockerdev/resources/depsets/python.toml +0 -0
  176. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/dockerdev/resources/depsets/system.toml +0 -0
  177. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/dockerdev/resources/depsets/x11.toml +0 -0
  178. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/dockerdev/resources/fragments/apt.sh +0 -0
  179. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/dockerdev/resources/fragments/docker.sh +0 -0
  180. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/dockerdev/resources/fragments/firefox.sh +0 -0
  181. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/dockerdev/resources/fragments/go.sh +0 -0
  182. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/dockerdev/resources/fragments/jdk.sh +0 -0
  183. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/dockerdev/resources/fragments/nvm.sh +0 -0
  184. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/dockerdev/resources/fragments/pyenv.sh +0 -0
  185. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/dockerdev/resources/fragments/rust.sh +0 -0
  186. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/dockerdev/resources/fragments/sshd.sh +0 -0
  187. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/dockerdev/resources/fragments/uv.sh +0 -0
  188. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/dockerdev/resources/fragments/vcpkg.sh +0 -0
  189. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/dockerdev/resources/fragments/zig.sh +0 -0
  190. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/dockerdev/resources/xu +0 -0
  191. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/git/__init__.py +0 -0
  192. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/git/magic.py +0 -0
  193. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/git/revisions.py +0 -0
  194. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/git/shallow.py +0 -0
  195. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/git/status.py +0 -0
  196. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/home/__init__.py +0 -0
  197. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/home/paths.py +0 -0
  198. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/home/secrets.py +0 -0
  199. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/home/shadow.py +0 -0
  200. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/imgur.py +0 -0
  201. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/intellij/__init__.py +0 -0
  202. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/intellij/cli.py +0 -0
  203. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/intellij/ides.py +0 -0
  204. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/intellij/open.py +0 -0
  205. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/interp/__init__.py +0 -0
  206. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/interp/__main__.py +0 -0
  207. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/interp/cli.py +0 -0
  208. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/interp/default.py +0 -0
  209. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/interp/inject.py +0 -0
  210. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/interp/inspect.py +0 -0
  211. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/interp/providers/__init__.py +0 -0
  212. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/interp/providers/base.py +0 -0
  213. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/interp/providers/inject.py +0 -0
  214. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/interp/providers/running.py +0 -0
  215. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/interp/providers/standalone.py +0 -0
  216. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/interp/providers/system.py +0 -0
  217. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/interp/pyenv/__init__.py +0 -0
  218. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/interp/pyenv/inject.py +0 -0
  219. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/interp/pyenv/install.py +0 -0
  220. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/interp/pyenv/provider.py +0 -0
  221. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/interp/pyenv/pyenv.py +0 -0
  222. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/interp/resolvers.py +0 -0
  223. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/interp/types.py +0 -0
  224. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/interp/uv/__init__.py +0 -0
  225. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/interp/uv/inject.py +0 -0
  226. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/interp/uv/provider.py +0 -0
  227. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/interp/uv/uv.py +0 -0
  228. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/interp/venvs.py +0 -0
  229. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/irc/__init__.py +0 -0
  230. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/irc/messages/__init__.py +0 -0
  231. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/irc/messages/base.py +0 -0
  232. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/irc/messages/formats.py +0 -0
  233. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/irc/messages/messages.py +0 -0
  234. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/irc/messages/parsing.py +0 -0
  235. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/irc/numerics/__init__.py +0 -0
  236. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/irc/numerics/formats.py +0 -0
  237. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/irc/numerics/numerics.py +0 -0
  238. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/irc/numerics/types.py +0 -0
  239. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/irc/protocol/LICENSE +0 -0
  240. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/irc/protocol/__init__.py +0 -0
  241. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/irc/protocol/consts.py +0 -0
  242. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/irc/protocol/errors.py +0 -0
  243. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/irc/protocol/message.py +0 -0
  244. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/irc/protocol/nuh.py +0 -0
  245. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/irc/protocol/parsing.py +0 -0
  246. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/irc/protocol/rendering.py +0 -0
  247. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/irc/protocol/tags.py +0 -0
  248. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/irc/protocol/utils.py +0 -0
  249. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/java/__init__.py +0 -0
  250. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/java/__main__.py +0 -0
  251. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/java/cli.py +0 -0
  252. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/java/pomgen.py +0 -0
  253. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/java/xml.py +0 -0
  254. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/magic/__init__.py +0 -0
  255. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/magic/__main__.py +0 -0
  256. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/magic/cli.py +0 -0
  257. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/magic/find.py +0 -0
  258. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/magic/magic.py +0 -0
  259. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/magic/prepare.py +0 -0
  260. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/magic/styles.py +0 -0
  261. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/manifests/__init__.py +0 -0
  262. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/manifests/__main__.py +0 -0
  263. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/manifests/_dumping.py +0 -0
  264. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/manifests/building.py +0 -0
  265. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/manifests/dumping.py +0 -0
  266. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/manifests/main.py +0 -0
  267. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/markdown/__init__.py +0 -0
  268. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/markdown/incparse.py +0 -0
  269. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/markdown/tokens.py +0 -0
  270. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/mypy/__init__.py +0 -0
  271. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/mypy/debug.py +0 -0
  272. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/mypy/report.py +0 -0
  273. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/oci/__init__.py +0 -0
  274. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/oci/building.py +0 -0
  275. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/oci/compression.py +0 -0
  276. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/oci/data.py +0 -0
  277. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/oci/datarefs.py +0 -0
  278. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/oci/dataserver.py +0 -0
  279. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/oci/loading.py +0 -0
  280. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/oci/media.py +0 -0
  281. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/oci/pack/__init__.py +0 -0
  282. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/oci/pack/packing.py +0 -0
  283. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/oci/pack/repositories.py +0 -0
  284. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/oci/pack/unpacking.py +0 -0
  285. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/oci/repositories.py +0 -0
  286. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/oci/tars.py +0 -0
  287. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/packaging/__init__.py +0 -0
  288. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/packaging/marshal.py +0 -0
  289. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/packaging/names.py +0 -0
  290. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/packaging/requires.py +0 -0
  291. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/packaging/revisions.py +0 -0
  292. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/packaging/specifiers.py +0 -0
  293. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/packaging/versions.py +0 -0
  294. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/packaging/wheelfile.py +0 -0
  295. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/pip.py +0 -0
  296. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/precheck/__init__.py +0 -0
  297. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/precheck/__main__.py +0 -0
  298. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/precheck/base.py +0 -0
  299. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/precheck/blanklines.py +0 -0
  300. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/precheck/caches.py +0 -0
  301. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/precheck/git.py +0 -0
  302. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/precheck/imports.py +0 -0
  303. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/precheck/lite.py +0 -0
  304. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/precheck/main.py +0 -0
  305. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/precheck/manifests.py +0 -0
  306. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/precheck/scripts.py +0 -0
  307. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/precheck/unicode.py +0 -0
  308. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/py/__init__.py +0 -0
  309. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/py/asts/__init__.py +0 -0
  310. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/py/asts/parents.py +0 -0
  311. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/py/asts/toplevel.py +0 -0
  312. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/py/asts/visitors.py +0 -0
  313. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/py/attrdocs.py +0 -0
  314. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/py/bracepy.py +0 -0
  315. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/py/classdot.py +0 -0
  316. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/py/docstrings/LICENSE +0 -0
  317. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/py/docstrings/__init__.py +0 -0
  318. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/py/docstrings/attrdoc.py +0 -0
  319. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/py/docstrings/common.py +0 -0
  320. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/py/docstrings/epydoc.py +0 -0
  321. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/py/docstrings/google.py +0 -0
  322. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/py/docstrings/numpydoc.py +0 -0
  323. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/py/docstrings/parser.py +0 -0
  324. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/py/docstrings/rest.py +0 -0
  325. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/py/findimports.py +0 -0
  326. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/py/reprs.py +0 -0
  327. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/py/scripts/__init__.py +0 -0
  328. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/py/scripts/bumpversion.py +0 -0
  329. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/py/scripts/execstat.py +0 -0
  330. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/py/scripts/importtrace.py +0 -0
  331. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/py/srcheaders.py +0 -0
  332. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/py/tokens/__init__.py +0 -0
  333. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/py/tokens/all.py +0 -0
  334. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/py/tokens/tokenizert.py +0 -0
  335. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/py/tokens/utils.py +0 -0
  336. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/py/tools/__init__.py +0 -0
  337. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/py/tools/importscan.py +0 -0
  338. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/py/tools/mkrelimp.py +0 -0
  339. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/py/tools/pipdepup.py +0 -0
  340. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/pyproject/__init__.py +0 -0
  341. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/pyproject/__main__.py +0 -0
  342. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/pyproject/cli.py +0 -0
  343. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/pyproject/configs.py +0 -0
  344. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/pyproject/inject.py +0 -0
  345. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/pyproject/pkg.py +0 -0
  346. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/pyproject/reqs.py +0 -0
  347. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/pyproject/resources/dockerdev.sh +0 -0
  348. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/pyproject/resources/python.sh +0 -0
  349. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/pyproject/tools/__init__.py +0 -0
  350. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/pyproject/tools/aboutdeps.py +0 -0
  351. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/pyproject/tools/buildrs.py +0 -0
  352. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/pyproject/tools/pyversions.py +0 -0
  353. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/pyproject/venvs.py +0 -0
  354. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/pyproject/versions.py +0 -0
  355. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/rs/__init__.py +0 -0
  356. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/scripts/__init__.py +0 -0
  357. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/scripts/lib/__init__.py +0 -0
  358. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/scripts/lib/formats/__init__.py +0 -0
  359. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/scripts/lib/formats/goyaml.py +0 -0
  360. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/scripts/lib/inject.py +0 -0
  361. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/scripts/lib/io/__init__.py +0 -0
  362. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/scripts/lib/marshal.py +0 -0
  363. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/scripts/slowcat.py +0 -0
  364. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/scripts/tmpexec.py +0 -0
  365. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tagstrings.py +0 -0
  366. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tools/__init__.py +0 -0
  367. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tools/cloc.py +0 -0
  368. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tools/diff.py +0 -0
  369. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tools/doc.py +0 -0
  370. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tools/docker.py +0 -0
  371. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tools/git/__init__.py +0 -0
  372. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tools/git/__main__.py +0 -0
  373. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tools/git/cloning.py +0 -0
  374. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tools/git/messages.py +0 -0
  375. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tools/json/__init__.py +0 -0
  376. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tools/json/__main__.py +0 -0
  377. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tools/json/cli.py +0 -0
  378. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tools/json/formats.py +0 -0
  379. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tools/json/io.py +0 -0
  380. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tools/json/parsing.py +0 -0
  381. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tools/json/processing.py +0 -0
  382. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tools/json/rendering.py +0 -0
  383. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tools/jsonview/__init__.py +0 -0
  384. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tools/jsonview/__main__.py +0 -0
  385. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tools/jsonview/cli.py +0 -0
  386. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tools/jsonview/resources/jsonview.css +0 -0
  387. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tools/jsonview/resources/jsonview.html.j2 +0 -0
  388. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tools/jsonview/resources/jsonview.js +0 -0
  389. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tools/linehisto.py +0 -0
  390. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tools/mkenv.py +0 -0
  391. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tools/notebook.py +0 -0
  392. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tools/pawk/README.md +0 -0
  393. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tools/pawk/__init__.py +0 -0
  394. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tools/pawk/__main__.py +0 -0
  395. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tools/pawk/pawk.py +0 -0
  396. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tools/pip.py +0 -0
  397. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tools/prof.py +0 -0
  398. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tools/qr.py +0 -0
  399. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tools/shadow.py +0 -0
  400. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tools/shell.py +0 -0
  401. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tools/sqlrepl.py +0 -0
  402. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tui/__init__.py +0 -0
  403. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tui/apps/__init__.py +0 -0
  404. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tui/apps/edit/__init__.py +0 -0
  405. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tui/apps/edit/main.py +0 -0
  406. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tui/apps/irc/__init__.py +0 -0
  407. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tui/apps/irc/__main__.py +0 -0
  408. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tui/apps/irc/app.py +0 -0
  409. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tui/apps/irc/client.py +0 -0
  410. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tui/apps/irc/commands.py +0 -0
  411. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tui/apps/irc/main.py +0 -0
  412. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tui/apps/markdown/__init__.py +0 -0
  413. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tui/apps/markdown/__main__.py +0 -0
  414. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tui/apps/markdown/cli.py +0 -0
  415. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tui/rich/__init__.py +0 -0
  416. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tui/rich/console2.py +0 -0
  417. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tui/rich/markdown2.py +0 -0
  418. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tui/textual/app2.py +0 -0
  419. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tui/textual/autocomplete/LICENSE +0 -0
  420. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tui/textual/autocomplete/__init__.py +0 -0
  421. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tui/textual/autocomplete/matching.py +0 -0
  422. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tui/textual/autocomplete/paths.py +0 -0
  423. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tui/textual/autocomplete/widget.py +0 -0
  424. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tui/textual/binding2.py +0 -0
  425. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tui/textual/clipboard.py +0 -0
  426. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tui/textual/debug/__init__.py +0 -0
  427. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tui/textual/debug/dominfo.py +0 -0
  428. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tui/textual/debug/screen.py +0 -0
  429. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tui/textual/devtools.py +0 -0
  430. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tui/textual/drivers2.py +0 -0
  431. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tui/textual/logging2.py +0 -0
  432. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tui/textual/screen2.py +0 -0
  433. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev/tui/textual/types.py +0 -0
  434. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev.egg-info/SOURCES.txt +0 -0
  435. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev.egg-info/dependency_links.txt +0 -0
  436. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev.egg-info/entry_points.txt +0 -0
  437. {omdev-0.0.0.dev535 → omdev-0.0.0.dev536}/omdev.egg-info/top_level.txt +0 -0
  438. {omdev-0.0.0.dev535 → 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.dev535
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.dev535
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': [
@@ -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='b3b7ed67bff8b7f2b60d821eda9afa93ffb2ba1f'),
34
- dict(path='direct.py', sha1='83c33460e9490a77a00ae66251617ba98128b56b'),
35
- dict(path='scanning.py', sha1='6ab39887d0d2d3002201b786c4715e64804c66c8'),
36
- dict(path='adapters.py', sha1='f434206c6d8a0fd3961b1a44077ee69668e8bd0c'),
37
- dict(path='linear.py', sha1='a6cebf552cc4d3277809eb0c63b99981e74d3731'),
38
- dict(path='segmented.py', sha1='b48b53fd9a37902c382421658b50e3054f33abe4'),
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,10 +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
52
 
53
53
  # utils.py
54
- CanByteStreamBuffer = ta.Union[BytesLikeOrMemoryview, 'ByteStreamBufferLike'] # ta.TypeAlias
54
+ CanByteStreamBuffer = ta.Union[BytesLike, 'ByteStreamBufferLike'] # ta.TypeAlias
55
55
 
56
56
 
57
57
  ########################################
@@ -501,7 +501,7 @@ class MutableByteStreamBuffer(ByteStreamBuffer, Abstract):
501
501
  raise NotImplementedError
502
502
 
503
503
  @abc.abstractmethod
504
- def write(self, data: BytesLikeOrMemoryview, /) -> None:
504
+ def write(self, data: BytesLike, /) -> None:
505
505
  """
506
506
  Append `data` to the end of the readable region (after any existing unread bytes).
507
507
 
@@ -1045,22 +1045,23 @@ class ByteStreamBufferReader:
1045
1045
 
1046
1046
 
1047
1047
  class ByteStreamBuffers(NamespaceClass):
1048
- @staticmethod
1049
- def memoryview_to_bytes(mv: memoryview, /) -> bytes:
1050
- 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
1051
- return obj # type: ignore[return-value]
1052
-
1053
- return mv.tobytes()
1054
-
1055
- ##
1056
-
1057
- _CAN_CONVERT_TYPES: ta.ClassVar[ta.Tuple[type, ...]] = (
1048
+ _BYTES_TYPES: ta.ClassVar[ta.Tuple[type, ...]] = (
1058
1049
  bytes,
1059
1050
  bytearray,
1051
+ )
1052
+
1053
+ _BYTES_LIKE_TYPES: ta.ClassVar[ta.Tuple[type, ...]] = (
1054
+ *_BYTES_TYPES,
1060
1055
  memoryview,
1056
+ )
1057
+
1058
+ _CAN_CONVERT_TYPES: ta.ClassVar[ta.Tuple[type, ...]] = (
1059
+ *_BYTES_LIKE_TYPES,
1061
1060
  ByteStreamBufferLike,
1062
1061
  )
1063
1062
 
1063
+ #
1064
+
1064
1065
  @classmethod
1065
1066
  def can_bytes(cls, obj: ta.Any, /) -> bool:
1066
1067
  return type(obj) in (cts := cls._CAN_CONVERT_TYPES) or isinstance(obj, cts)
@@ -1069,77 +1070,89 @@ class ByteStreamBuffers(NamespaceClass):
1069
1070
 
1070
1071
  @classmethod
1071
1072
  @ta.overload
1072
- 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]:
1073
1080
  ...
1074
1081
 
1075
1082
  @classmethod
1076
1083
  @ta.overload
1077
- 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:
1078
1091
  ...
1079
1092
 
1080
- @classmethod
1081
- def buffer_to_bytes(cls, obj, or_none=False, /):
1082
- if type(obj) is memoryview or isinstance(obj, memoryview):
1083
- return cls.memoryview_to_bytes(obj)
1084
-
1085
- elif isinstance(obj, ByteStreamBufferView):
1086
- return obj.tobytes()
1087
-
1088
- elif isinstance(obj, ByteStreamBufferLike):
1089
- return b''.join(bytes(mv) for mv in obj.segments())
1090
-
1091
- elif or_none:
1092
- return None
1093
-
1094
- else:
1095
- raise TypeError(obj)
1096
-
1097
- #
1098
-
1099
1093
  @classmethod
1100
1094
  @ta.overload
1101
- 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]:
1102
1102
  ...
1103
1103
 
1104
1104
  @classmethod
1105
1105
  @ta.overload
1106
- 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]:
1107
1113
  ...
1108
1114
 
1109
1115
  @classmethod
1110
- def any_to_bytes(cls, obj, or_none=False, /):
1111
- if (ot := type(obj)) is bytes:
1112
- return obj
1113
- elif ot is bytearray:
1114
- 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)
1115
1134
 
1116
- elif isinstance(obj, bytes):
1117
- return obj
1118
- elif isinstance(obj, bytearray):
1119
- return bytes(obj)
1135
+ elif isinstance(obj, memoryview):
1136
+ return cls.memoryview_to_bytes_strict(obj)
1120
1137
 
1121
1138
  else:
1122
- 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
1123
1141
 
1124
- #
1142
+ elif isinstance(obj, memoryview):
1143
+ return cls.memoryview_to_bytes(obj)
1125
1144
 
1126
- @classmethod
1127
- @ta.overload
1128
- def any_to_bytes_or_bytearray(cls, obj: ta.Any, or_none: ta.Literal[True], /) -> ta.Union[bytes, bytearray, None]:
1129
- ...
1145
+ if isinstance(obj, ByteStreamBufferView):
1146
+ return obj.tobytes()
1130
1147
 
1131
- @classmethod
1132
- @ta.overload
1133
- def any_to_bytes_or_bytearray(cls, obj: ta.Any, or_none: ta.Literal[False] = False, /) -> ta.Union[bytes, bytearray]: # noqa
1134
- ...
1148
+ elif isinstance(obj, ByteStreamBufferLike):
1149
+ return b''.join(bytes(mv) for mv in obj.segments())
1135
1150
 
1136
- @classmethod
1137
- def any_to_bytes_or_bytearray(cls, obj, or_none=False, /):
1138
- if (ot := type(obj)) is bytes or ot is bytearray or isinstance(obj, (bytes, bytearray)):
1139
- return obj
1151
+ elif or_none:
1152
+ return None
1140
1153
 
1141
1154
  else:
1142
- return cls.buffer_to_bytes(obj, or_none) # noqa
1155
+ raise TypeError(obj)
1143
1156
 
1144
1157
  #
1145
1158
 
@@ -1164,7 +1177,7 @@ class ByteStreamBuffers(NamespaceClass):
1164
1177
  else:
1165
1178
  raise TypeError(obj)
1166
1179
 
1167
- ##
1180
+ #
1168
1181
 
1169
1182
  @staticmethod
1170
1183
  def iter_segments(obj: ta.Any, /) -> ta.Iterator[memoryview]:
@@ -1184,6 +1197,8 @@ class ByteStreamBuffers(NamespaceClass):
1184
1197
  else:
1185
1198
  raise TypeError(obj)
1186
1199
 
1200
+ #
1201
+
1187
1202
  @staticmethod
1188
1203
  def split(buf: ByteStreamBuffer, sep: bytes, /, *, final: bool = False) -> ta.List[ByteStreamBufferView]:
1189
1204
  out: ta.List[ByteStreamBufferView] = []
@@ -1193,6 +1208,22 @@ class ByteStreamBuffers(NamespaceClass):
1193
1208
  out.append(buf.split_to(len(buf)))
1194
1209
  return out
1195
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
+
1196
1227
 
1197
1228
  ########################################
1198
1229
  # ../direct.py
@@ -1202,7 +1233,7 @@ class ByteStreamBuffers(NamespaceClass):
1202
1233
 
1203
1234
 
1204
1235
  class BaseDirectByteStreamBufferLike(BaseByteStreamBufferLike, Abstract):
1205
- def __init__(self, data: BytesLikeOrMemoryview) -> None:
1236
+ def __init__(self, data: BytesLike) -> None:
1206
1237
  super().__init__()
1207
1238
 
1208
1239
  self._data = data
@@ -1282,7 +1313,7 @@ class DirectByteStreamBuffer(BaseDirectByteStreamBufferLike, ByteStreamBuffer):
1282
1313
  b'GET /path HTTP/1.1\\r\\nHost: example.com'
1283
1314
  """
1284
1315
 
1285
- def __init__(self, data: BytesLikeOrMemoryview) -> None:
1316
+ def __init__(self, data: BytesLike) -> None:
1286
1317
  super().__init__(data)
1287
1318
 
1288
1319
  self._rpos = 0
@@ -1448,7 +1479,7 @@ class ScanningByteStreamBuffer(BaseByteStreamBufferLike, MutableByteStreamBuffer
1448
1479
 
1449
1480
  #
1450
1481
 
1451
- def write(self, data: BytesLikeOrMemoryview, /) -> None:
1482
+ def write(self, data: BytesLike, /) -> None:
1452
1483
  self._buf.write(data)
1453
1484
 
1454
1485
  def reserve(self, n: int, /) -> memoryview:
@@ -1701,7 +1732,7 @@ class BytesIoByteStreamBuffer(MutableByteStreamBuffer):
1701
1732
  self._rpos += n
1702
1733
  return DirectByteStreamBufferView(out)
1703
1734
 
1704
- def write(self, data: BytesLikeOrMemoryview, /) -> None:
1735
+ def write(self, data: BytesLike, /) -> None:
1705
1736
  if not data:
1706
1737
  return
1707
1738
  if isinstance(data, memoryview):
@@ -1854,7 +1885,7 @@ class LinearByteStreamBuffer(BaseByteStreamBufferLike, MutableByteStreamBuffer):
1854
1885
  if self._resv_start is not None:
1855
1886
  raise OutstandingReserveByteStreamBufferError('outstanding reserve')
1856
1887
 
1857
- def write(self, data: BytesLikeOrMemoryview, /) -> None:
1888
+ def write(self, data: BytesLike, /) -> None:
1858
1889
  self._check_no_reserve()
1859
1890
  if not data:
1860
1891
  return
@@ -2088,6 +2119,12 @@ class SegmentedByteStreamBufferView(BaseByteStreamBufferLike, ByteStreamBufferVi
2088
2119
  return None
2089
2120
  return cls(segs)
2090
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)
2127
+
2091
2128
  _len = 0
2092
2129
 
2093
2130
  def __len__(self) -> int:
@@ -2286,7 +2323,7 @@ class SegmentedByteStreamBuffer(BaseByteStreamBufferLike, MutableByteStreamBuffe
2286
2323
  self._active = None
2287
2324
  self._active_used = 0
2288
2325
 
2289
- def write(self, data: BytesLikeOrMemoryview, /) -> None:
2326
+ def write(self, data: BytesLike, /) -> None:
2290
2327
  if not data:
2291
2328
  return
2292
2329
  if isinstance(data, memoryview):
@@ -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'),
@@ -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
 
@@ -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.dev535
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.dev535
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.dev535
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
@@ -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.dev535'
16
+ version = '0.0.0.dev536'
17
17
  classifiers = [
18
18
  'Development Status :: 2 - Pre-Alpha',
19
19
  'Intended Audience :: Developers',
@@ -24,12 +24,12 @@ classifiers = [
24
24
  ]
25
25
  description = 'omdev'
26
26
  dependencies = [
27
- 'omlish == 0.0.0.dev535',
27
+ 'omlish == 0.0.0.dev536',
28
28
  ]
29
29
 
30
30
  [project.optional-dependencies]
31
31
  all = [
32
- 'black ~= 26.1',
32
+ 'black ~= 26.3',
33
33
  'pycparser ~= 3.0',
34
34
  'pcpp ~= 1.30',
35
35
  'docutils ~= 0.22',
@@ -45,7 +45,7 @@ all = [
45
45
  'textual-speedups ~= 0.2',
46
46
  ]
47
47
  black = [
48
- 'black ~= 26.1',
48
+ 'black ~= 26.3',
49
49
  ]
50
50
  c = [
51
51
  'pycparser ~= 3.0',
@@ -1 +0,0 @@
1
- DEFAULT_TIME_FMT = '%Y-%m-%dT%H:%M:%SZ'
File without changes
File without changes
File without changes