omdev 0.0.0.dev533__tar.gz → 0.0.0.dev535__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 (445) hide show
  1. {omdev-0.0.0.dev533/omdev.egg-info → omdev-0.0.0.dev535}/PKG-INFO +2 -2
  2. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/dataclasses/_dumping.py +5 -5
  3. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/dockerdev/cli.py +43 -0
  4. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/manifests/_dumping.py +5 -5
  5. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/pyproject/pkg.py +51 -12
  6. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/pyproject/tools/aboutdeps.py +1 -1
  7. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/scripts/ci.py +5 -5
  8. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/scripts/interp.py +5 -5
  9. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/scripts/lib/formats/goyaml.py +5 -5
  10. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/scripts/lib/inject.py +5 -5
  11. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/scripts/lib/io/streams.py +24 -13
  12. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/scripts/lib/marshal.py +5 -5
  13. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/scripts/pyproject.py +55 -18
  14. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535/omdev.egg-info}/PKG-INFO +2 -2
  15. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev.egg-info/SOURCES.txt +1 -9
  16. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev.egg-info/requires.txt +1 -1
  17. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/pyproject.toml +19 -15
  18. omdev-0.0.0.dev533/omdev/dockerdev/resources/.pkgdata +0 -2
  19. omdev-0.0.0.dev533/omdev/dockerdev/resources/configs/.pkgdata +0 -2
  20. omdev-0.0.0.dev533/omdev/tools/pawk/__init__.py +0 -0
  21. omdev-0.0.0.dev533/omdev/tui/__init__.py +0 -0
  22. omdev-0.0.0.dev533/omdev/tui/apps/__init__.py +0 -0
  23. omdev-0.0.0.dev533/omdev/tui/apps/edit/__init__.py +0 -0
  24. omdev-0.0.0.dev533/omdev/tui/apps/irc/__init__.py +0 -0
  25. omdev-0.0.0.dev533/omdev/tui/apps/markdown/__init__.py +0 -0
  26. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/LICENSE +0 -0
  27. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/MANIFEST.in +0 -0
  28. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/README.md +0 -0
  29. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/.omlish-manifests.json +0 -0
  30. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/README.md +0 -0
  31. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/__about__.py +0 -0
  32. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/__init__.py +0 -0
  33. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/amalg/__init__.py +0 -0
  34. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/amalg/__main__.py +0 -0
  35. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/amalg/cli/__init__.py +0 -0
  36. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/amalg/cli/main.py +0 -0
  37. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/amalg/gen/__init__.py +0 -0
  38. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/amalg/gen/gen.py +0 -0
  39. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/amalg/gen/imports.py +0 -0
  40. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/amalg/gen/manifests.py +0 -0
  41. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/amalg/gen/resources.py +0 -0
  42. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/amalg/gen/srcfiles.py +0 -0
  43. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/amalg/gen/strip.py +0 -0
  44. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/amalg/gen/types.py +0 -0
  45. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/amalg/gen/typing.py +0 -0
  46. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/amalg/info.py +0 -0
  47. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/amalg/sources.py +0 -0
  48. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cache/__init__.py +0 -0
  49. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cache/compute/__init__.py +0 -0
  50. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cache/compute/cache.py +0 -0
  51. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cache/compute/contexts.py +0 -0
  52. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cache/compute/currents.py +0 -0
  53. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cache/compute/fns.py +0 -0
  54. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cache/compute/resolvers.py +0 -0
  55. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cache/compute/storage.py +0 -0
  56. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cache/compute/types.py +0 -0
  57. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cache/data/__init__.py +0 -0
  58. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cache/data/actions.py +0 -0
  59. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cache/data/cache.py +0 -0
  60. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cache/data/consts.py +0 -0
  61. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cache/data/defaults.py +0 -0
  62. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cache/data/manifests.py +0 -0
  63. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cache/data/specs.py +0 -0
  64. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/capi/__init__.py +0 -0
  65. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/capi/darwin/__init__.py +0 -0
  66. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/capi/darwin/aps.py +0 -0
  67. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/capi/darwin/ax.py +0 -0
  68. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/capi/darwin/cf.py +0 -0
  69. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/capi/darwin/cg.py +0 -0
  70. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/capi/linux/__init__.py +0 -0
  71. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/capi/linux/x11.py +0 -0
  72. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cc/__init__.py +0 -0
  73. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cc/__main__.py +0 -0
  74. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cc/cdeps.py +0 -0
  75. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cc/cdeps.toml +0 -0
  76. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cc/cli.py +0 -0
  77. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cc/srclangs.py +0 -0
  78. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cexts/__init__.py +0 -0
  79. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cexts/_boilerplate.cc +0 -0
  80. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cexts/_distutils/LICENSE +0 -0
  81. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cexts/_distutils/__init__.py +0 -0
  82. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cexts/_distutils/build_ext.py +0 -0
  83. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cexts/_distutils/compilers/__init__.py +0 -0
  84. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cexts/_distutils/compilers/ccompiler.py +0 -0
  85. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cexts/_distutils/compilers/options.py +0 -0
  86. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cexts/_distutils/compilers/unixccompiler.py +0 -0
  87. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cexts/_distutils/dir_util.py +0 -0
  88. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cexts/_distutils/errors.py +0 -0
  89. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cexts/_distutils/extension.py +0 -0
  90. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cexts/_distutils/file_util.py +0 -0
  91. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cexts/_distutils/modified.py +0 -0
  92. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cexts/_distutils/spawn.py +0 -0
  93. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cexts/_distutils/sysconfig.py +0 -0
  94. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cexts/_distutils/util.py +0 -0
  95. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cexts/_distutils/version.py +0 -0
  96. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cexts/build.py +0 -0
  97. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cexts/cmake.py +0 -0
  98. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cexts/importhook.py +0 -0
  99. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cexts/magic.py +0 -0
  100. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cexts/scan.py +0 -0
  101. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/ci/__init__.py +0 -0
  102. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/ci/__main__.py +0 -0
  103. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/ci/cache.py +0 -0
  104. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/ci/ci.py +0 -0
  105. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/ci/cli.py +0 -0
  106. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/ci/compose.py +0 -0
  107. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/ci/consts.py +0 -0
  108. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/ci/docker/__init__.py +0 -0
  109. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/ci/docker/buildcaching.py +0 -0
  110. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/ci/docker/cache.py +0 -0
  111. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/ci/docker/cacheserved/__init__.py +0 -0
  112. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/ci/docker/cacheserved/cache.py +0 -0
  113. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/ci/docker/cacheserved/manifests.py +0 -0
  114. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/ci/docker/cmds.py +0 -0
  115. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/ci/docker/dataserver.py +0 -0
  116. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/ci/docker/imagepulling.py +0 -0
  117. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/ci/docker/inject.py +0 -0
  118. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/ci/docker/packing.py +0 -0
  119. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/ci/docker/repositories.py +0 -0
  120. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/ci/docker/utils.py +0 -0
  121. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/ci/github/__init__.py +0 -0
  122. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/ci/github/api/__init__.py +0 -0
  123. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/ci/github/api/clients.py +0 -0
  124. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/ci/github/api/v1/__init__.py +0 -0
  125. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/ci/github/api/v1/api.py +0 -0
  126. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/ci/github/api/v1/client.py +0 -0
  127. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/ci/github/api/v2/__init__.py +0 -0
  128. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/ci/github/api/v2/api.py +0 -0
  129. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/ci/github/api/v2/azure.py +0 -0
  130. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/ci/github/api/v2/client.py +0 -0
  131. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/ci/github/bootstrap.py +0 -0
  132. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/ci/github/cache.py +0 -0
  133. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/ci/github/cli.py +0 -0
  134. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/ci/github/env.py +0 -0
  135. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/ci/github/inject.py +0 -0
  136. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/ci/inject.py +0 -0
  137. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/ci/requirements.py +0 -0
  138. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/ci/shell.py +0 -0
  139. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/ci/utils.py +0 -0
  140. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cli/__init__.py +0 -0
  141. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cli/__main__.py +0 -0
  142. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cli/_pathhack.py +0 -0
  143. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cli/clicli.py +0 -0
  144. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cli/install.py +0 -0
  145. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cli/main.py +0 -0
  146. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cli/managers.py +0 -0
  147. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cli/types.py +0 -0
  148. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/clipboard/__init__.py +0 -0
  149. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/clipboard/capi/__init__.py +0 -0
  150. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/clipboard/capi/darwin_cf.py +0 -0
  151. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/clipboard/capi/linux_x11.py +0 -0
  152. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/clipboard/commands.py +0 -0
  153. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/clipboard/platform.py +0 -0
  154. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/clipboard/types.py +0 -0
  155. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cmake.py +0 -0
  156. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cmdlog/__init__.py +0 -0
  157. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cmdlog/__main__.py +0 -0
  158. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cmdlog/_cmdlog.py +0 -0
  159. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cmdlog/cli.py +0 -0
  160. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/cmdlog/cmdlog.py +0 -0
  161. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/dataclasses/__init__.py +0 -0
  162. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/dataclasses/__main__.py +0 -0
  163. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/dataclasses/_template.py +0 -0
  164. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/dataclasses/cli.py +0 -0
  165. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/dataclasses/codegen.py +0 -0
  166. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/dataclasses/dumping.py +0 -0
  167. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/dataserver/__init__.py +0 -0
  168. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/dataserver/handlers.py +0 -0
  169. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/dataserver/http.py +0 -0
  170. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/dataserver/routes.py +0 -0
  171. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/dataserver/server.py +0 -0
  172. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/dataserver/targets.py +0 -0
  173. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/dockerdev/__init__.py +0 -0
  174. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/dockerdev/__main__.py +0 -0
  175. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/dockerdev/config.toml +0 -0
  176. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/dockerdev/content.py +0 -0
  177. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/dockerdev/gen.py +0 -0
  178. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/dockerdev/helpers.py +0 -0
  179. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/dockerdev/ops.py +0 -0
  180. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/dockerdev/rendering.py +0 -0
  181. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/dockerdev/resources/.python-versions.json +0 -0
  182. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/dockerdev/resources/configs/.gdbinit +0 -0
  183. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/dockerdev/resources/configs/.tmux.conf +0 -0
  184. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/dockerdev/resources/configs/.vimrc +0 -0
  185. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/dockerdev/resources/depsets/python.toml +0 -0
  186. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/dockerdev/resources/depsets/system.toml +0 -0
  187. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/dockerdev/resources/depsets/x11.toml +0 -0
  188. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/dockerdev/resources/fragments/apt.sh +0 -0
  189. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/dockerdev/resources/fragments/docker.sh +0 -0
  190. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/dockerdev/resources/fragments/firefox.sh +0 -0
  191. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/dockerdev/resources/fragments/go.sh +0 -0
  192. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/dockerdev/resources/fragments/jdk.sh +0 -0
  193. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/dockerdev/resources/fragments/nvm.sh +0 -0
  194. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/dockerdev/resources/fragments/pyenv.sh +0 -0
  195. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/dockerdev/resources/fragments/rust.sh +0 -0
  196. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/dockerdev/resources/fragments/sshd.sh +0 -0
  197. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/dockerdev/resources/fragments/uv.sh +0 -0
  198. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/dockerdev/resources/fragments/vcpkg.sh +0 -0
  199. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/dockerdev/resources/fragments/zig.sh +0 -0
  200. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/dockerdev/resources/xu +0 -0
  201. {omdev-0.0.0.dev533/omdev/dockerdev/resources → omdev-0.0.0.dev535/omdev/git}/__init__.py +0 -0
  202. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/git/magic.py +0 -0
  203. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/git/revisions.py +0 -0
  204. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/git/shallow.py +0 -0
  205. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/git/status.py +0 -0
  206. {omdev-0.0.0.dev533/omdev/dockerdev/resources/configs → omdev-0.0.0.dev535/omdev/home}/__init__.py +0 -0
  207. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/home/paths.py +0 -0
  208. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/home/secrets.py +0 -0
  209. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/home/shadow.py +0 -0
  210. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/imgur.py +0 -0
  211. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/intellij/__init__.py +0 -0
  212. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/intellij/cli.py +0 -0
  213. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/intellij/ides.py +0 -0
  214. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/intellij/open.py +0 -0
  215. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/interp/__init__.py +0 -0
  216. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/interp/__main__.py +0 -0
  217. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/interp/cli.py +0 -0
  218. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/interp/default.py +0 -0
  219. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/interp/inject.py +0 -0
  220. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/interp/inspect.py +0 -0
  221. {omdev-0.0.0.dev533/omdev/dockerdev/resources/depsets → omdev-0.0.0.dev535/omdev/interp/providers}/__init__.py +0 -0
  222. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/interp/providers/base.py +0 -0
  223. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/interp/providers/inject.py +0 -0
  224. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/interp/providers/running.py +0 -0
  225. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/interp/providers/standalone.py +0 -0
  226. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/interp/providers/system.py +0 -0
  227. {omdev-0.0.0.dev533/omdev/dockerdev/resources/fragments → omdev-0.0.0.dev535/omdev/interp/pyenv}/__init__.py +0 -0
  228. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/interp/pyenv/inject.py +0 -0
  229. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/interp/pyenv/install.py +0 -0
  230. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/interp/pyenv/provider.py +0 -0
  231. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/interp/pyenv/pyenv.py +0 -0
  232. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/interp/resolvers.py +0 -0
  233. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/interp/types.py +0 -0
  234. {omdev-0.0.0.dev533/omdev/git → omdev-0.0.0.dev535/omdev/interp/uv}/__init__.py +0 -0
  235. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/interp/uv/inject.py +0 -0
  236. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/interp/uv/provider.py +0 -0
  237. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/interp/uv/uv.py +0 -0
  238. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/interp/venvs.py +0 -0
  239. {omdev-0.0.0.dev533/omdev/home → omdev-0.0.0.dev535/omdev/irc}/__init__.py +0 -0
  240. {omdev-0.0.0.dev533/omdev/interp/providers → omdev-0.0.0.dev535/omdev/irc/messages}/__init__.py +0 -0
  241. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/irc/messages/base.py +0 -0
  242. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/irc/messages/formats.py +0 -0
  243. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/irc/messages/messages.py +0 -0
  244. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/irc/messages/parsing.py +0 -0
  245. {omdev-0.0.0.dev533/omdev/interp/pyenv → omdev-0.0.0.dev535/omdev/irc/numerics}/__init__.py +0 -0
  246. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/irc/numerics/formats.py +0 -0
  247. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/irc/numerics/numerics.py +0 -0
  248. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/irc/numerics/types.py +0 -0
  249. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/irc/protocol/LICENSE +0 -0
  250. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/irc/protocol/__init__.py +0 -0
  251. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/irc/protocol/consts.py +0 -0
  252. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/irc/protocol/errors.py +0 -0
  253. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/irc/protocol/message.py +0 -0
  254. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/irc/protocol/nuh.py +0 -0
  255. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/irc/protocol/parsing.py +0 -0
  256. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/irc/protocol/rendering.py +0 -0
  257. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/irc/protocol/tags.py +0 -0
  258. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/irc/protocol/utils.py +0 -0
  259. {omdev-0.0.0.dev533/omdev/interp/uv → omdev-0.0.0.dev535/omdev/java}/__init__.py +0 -0
  260. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/java/__main__.py +0 -0
  261. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/java/cli.py +0 -0
  262. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/java/pomgen.py +0 -0
  263. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/java/xml.py +0 -0
  264. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/magic/__init__.py +0 -0
  265. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/magic/__main__.py +0 -0
  266. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/magic/cli.py +0 -0
  267. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/magic/find.py +0 -0
  268. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/magic/magic.py +0 -0
  269. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/magic/prepare.py +0 -0
  270. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/magic/styles.py +0 -0
  271. {omdev-0.0.0.dev533/omdev/irc → omdev-0.0.0.dev535/omdev/manifests}/__init__.py +0 -0
  272. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/manifests/__main__.py +0 -0
  273. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/manifests/building.py +0 -0
  274. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/manifests/dumping.py +0 -0
  275. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/manifests/main.py +0 -0
  276. {omdev-0.0.0.dev533/omdev/irc/messages → omdev-0.0.0.dev535/omdev/markdown}/__init__.py +0 -0
  277. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/markdown/incparse.py +0 -0
  278. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/markdown/tokens.py +0 -0
  279. {omdev-0.0.0.dev533/omdev/irc/numerics → omdev-0.0.0.dev535/omdev/mypy}/__init__.py +0 -0
  280. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/mypy/debug.py +0 -0
  281. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/mypy/report.py +0 -0
  282. {omdev-0.0.0.dev533/omdev/java → omdev-0.0.0.dev535/omdev/oci}/__init__.py +0 -0
  283. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/oci/building.py +0 -0
  284. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/oci/compression.py +0 -0
  285. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/oci/data.py +0 -0
  286. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/oci/datarefs.py +0 -0
  287. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/oci/dataserver.py +0 -0
  288. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/oci/loading.py +0 -0
  289. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/oci/media.py +0 -0
  290. {omdev-0.0.0.dev533/omdev/manifests → omdev-0.0.0.dev535/omdev/oci/pack}/__init__.py +0 -0
  291. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/oci/pack/packing.py +0 -0
  292. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/oci/pack/repositories.py +0 -0
  293. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/oci/pack/unpacking.py +0 -0
  294. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/oci/repositories.py +0 -0
  295. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/oci/tars.py +0 -0
  296. {omdev-0.0.0.dev533/omdev/markdown → omdev-0.0.0.dev535/omdev/packaging}/__init__.py +0 -0
  297. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/packaging/marshal.py +0 -0
  298. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/packaging/names.py +0 -0
  299. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/packaging/requires.py +0 -0
  300. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/packaging/revisions.py +0 -0
  301. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/packaging/specifiers.py +0 -0
  302. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/packaging/versions.py +0 -0
  303. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/packaging/wheelfile.py +0 -0
  304. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/pip.py +0 -0
  305. {omdev-0.0.0.dev533/omdev/mypy → omdev-0.0.0.dev535/omdev/precheck}/__init__.py +0 -0
  306. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/precheck/__main__.py +0 -0
  307. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/precheck/base.py +0 -0
  308. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/precheck/blanklines.py +0 -0
  309. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/precheck/caches.py +0 -0
  310. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/precheck/git.py +0 -0
  311. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/precheck/imports.py +0 -0
  312. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/precheck/lite.py +0 -0
  313. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/precheck/main.py +0 -0
  314. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/precheck/manifests.py +0 -0
  315. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/precheck/scripts.py +0 -0
  316. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/precheck/unicode.py +0 -0
  317. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/py/__init__.py +0 -0
  318. {omdev-0.0.0.dev533/omdev/oci → omdev-0.0.0.dev535/omdev/py/asts}/__init__.py +0 -0
  319. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/py/asts/parents.py +0 -0
  320. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/py/asts/toplevel.py +0 -0
  321. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/py/asts/visitors.py +0 -0
  322. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/py/attrdocs.py +0 -0
  323. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/py/bracepy.py +0 -0
  324. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/py/classdot.py +0 -0
  325. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/py/docstrings/LICENSE +0 -0
  326. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/py/docstrings/__init__.py +0 -0
  327. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/py/docstrings/attrdoc.py +0 -0
  328. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/py/docstrings/common.py +0 -0
  329. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/py/docstrings/epydoc.py +0 -0
  330. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/py/docstrings/google.py +0 -0
  331. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/py/docstrings/numpydoc.py +0 -0
  332. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/py/docstrings/parser.py +0 -0
  333. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/py/docstrings/rest.py +0 -0
  334. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/py/findimports.py +0 -0
  335. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/py/reprs.py +0 -0
  336. {omdev-0.0.0.dev533/omdev/oci/pack → omdev-0.0.0.dev535/omdev/py/scripts}/__init__.py +0 -0
  337. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/py/scripts/bumpversion.py +0 -0
  338. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/py/scripts/execstat.py +0 -0
  339. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/py/scripts/importtrace.py +0 -0
  340. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/py/srcheaders.py +0 -0
  341. {omdev-0.0.0.dev533/omdev/packaging → omdev-0.0.0.dev535/omdev/py/tokens}/__init__.py +0 -0
  342. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/py/tokens/all.py +0 -0
  343. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/py/tokens/tokenizert.py +0 -0
  344. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/py/tokens/utils.py +0 -0
  345. {omdev-0.0.0.dev533/omdev/precheck → omdev-0.0.0.dev535/omdev/py/tools}/__init__.py +0 -0
  346. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/py/tools/importscan.py +0 -0
  347. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/py/tools/mkrelimp.py +0 -0
  348. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/py/tools/pipdepup.py +0 -0
  349. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/pyproject/__init__.py +0 -0
  350. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/pyproject/__main__.py +0 -0
  351. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/pyproject/cli.py +0 -0
  352. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/pyproject/configs.py +0 -0
  353. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/pyproject/inject.py +0 -0
  354. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/pyproject/reqs.py +0 -0
  355. /omdev-0.0.0.dev533/omdev/pyproject/resources/docker-dev.sh → /omdev-0.0.0.dev535/omdev/pyproject/resources/dockerdev.sh +0 -0
  356. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/pyproject/resources/python.sh +0 -0
  357. {omdev-0.0.0.dev533/omdev/py/asts → omdev-0.0.0.dev535/omdev/pyproject/tools}/__init__.py +0 -0
  358. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/pyproject/tools/buildrs.py +0 -0
  359. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/pyproject/tools/pyversions.py +0 -0
  360. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/pyproject/venvs.py +0 -0
  361. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/pyproject/versions.py +0 -0
  362. {omdev-0.0.0.dev533/omdev/py/scripts → omdev-0.0.0.dev535/omdev/rs}/__init__.py +0 -0
  363. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/scripts/__init__.py +0 -0
  364. {omdev-0.0.0.dev533/omdev/py/tokens → omdev-0.0.0.dev535/omdev/scripts/lib}/__init__.py +0 -0
  365. {omdev-0.0.0.dev533/omdev/py/tools → omdev-0.0.0.dev535/omdev/scripts/lib/formats}/__init__.py +0 -0
  366. {omdev-0.0.0.dev533/omdev/pyproject/resources → omdev-0.0.0.dev535/omdev/scripts/lib/io}/__init__.py +0 -0
  367. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/scripts/lib/logs.py +0 -0
  368. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/scripts/slowcat.py +0 -0
  369. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/scripts/tmpexec.py +0 -0
  370. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tagstrings.py +0 -0
  371. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tools/__init__.py +0 -0
  372. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tools/cloc.py +0 -0
  373. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tools/diff.py +0 -0
  374. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tools/doc.py +0 -0
  375. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tools/docker.py +0 -0
  376. {omdev-0.0.0.dev533/omdev/pyproject/tools → omdev-0.0.0.dev535/omdev/tools/git}/__init__.py +0 -0
  377. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tools/git/__main__.py +0 -0
  378. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tools/git/cli.py +0 -0
  379. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tools/git/cloning.py +0 -0
  380. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tools/git/consts.py +0 -0
  381. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tools/git/messages.py +0 -0
  382. {omdev-0.0.0.dev533/omdev/rs → omdev-0.0.0.dev535/omdev/tools/json}/__init__.py +0 -0
  383. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tools/json/__main__.py +0 -0
  384. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tools/json/cli.py +0 -0
  385. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tools/json/formats.py +0 -0
  386. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tools/json/io.py +0 -0
  387. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tools/json/parsing.py +0 -0
  388. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tools/json/processing.py +0 -0
  389. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tools/json/rendering.py +0 -0
  390. {omdev-0.0.0.dev533/omdev/scripts/lib → omdev-0.0.0.dev535/omdev/tools/jsonview}/__init__.py +0 -0
  391. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tools/jsonview/__main__.py +0 -0
  392. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tools/jsonview/cli.py +0 -0
  393. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tools/jsonview/resources/jsonview.css +0 -0
  394. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tools/jsonview/resources/jsonview.html.j2 +0 -0
  395. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tools/jsonview/resources/jsonview.js +0 -0
  396. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tools/linehisto.py +0 -0
  397. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tools/mkenv.py +0 -0
  398. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tools/notebook.py +0 -0
  399. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tools/pawk/README.md +0 -0
  400. {omdev-0.0.0.dev533/omdev/scripts/lib/formats → omdev-0.0.0.dev535/omdev/tools/pawk}/__init__.py +0 -0
  401. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tools/pawk/__main__.py +0 -0
  402. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tools/pawk/pawk.py +0 -0
  403. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tools/pip.py +0 -0
  404. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tools/prof.py +0 -0
  405. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tools/qr.py +0 -0
  406. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tools/shadow.py +0 -0
  407. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tools/shell.py +0 -0
  408. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tools/sqlrepl.py +0 -0
  409. {omdev-0.0.0.dev533/omdev/scripts/lib/io → omdev-0.0.0.dev535/omdev/tui}/__init__.py +0 -0
  410. {omdev-0.0.0.dev533/omdev/tools/git → omdev-0.0.0.dev535/omdev/tui/apps}/__init__.py +0 -0
  411. {omdev-0.0.0.dev533/omdev/tools/json → omdev-0.0.0.dev535/omdev/tui/apps/edit}/__init__.py +0 -0
  412. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tui/apps/edit/main.py +0 -0
  413. {omdev-0.0.0.dev533/omdev/tools/jsonview → omdev-0.0.0.dev535/omdev/tui/apps/irc}/__init__.py +0 -0
  414. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tui/apps/irc/__main__.py +0 -0
  415. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tui/apps/irc/app.py +0 -0
  416. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tui/apps/irc/client.py +0 -0
  417. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tui/apps/irc/commands.py +0 -0
  418. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tui/apps/irc/main.py +0 -0
  419. {omdev-0.0.0.dev533/omdev/tools/jsonview/resources → omdev-0.0.0.dev535/omdev/tui/apps/markdown}/__init__.py +0 -0
  420. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tui/apps/markdown/__main__.py +0 -0
  421. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tui/apps/markdown/cli.py +0 -0
  422. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tui/rich/__init__.py +0 -0
  423. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tui/rich/console2.py +0 -0
  424. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tui/rich/markdown2.py +0 -0
  425. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tui/textual/__init__.py +0 -0
  426. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tui/textual/app2.py +0 -0
  427. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tui/textual/autocomplete/LICENSE +0 -0
  428. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tui/textual/autocomplete/__init__.py +0 -0
  429. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tui/textual/autocomplete/matching.py +0 -0
  430. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tui/textual/autocomplete/paths.py +0 -0
  431. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tui/textual/autocomplete/widget.py +0 -0
  432. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tui/textual/binding2.py +0 -0
  433. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tui/textual/clipboard.py +0 -0
  434. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tui/textual/debug/__init__.py +0 -0
  435. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tui/textual/debug/dominfo.py +0 -0
  436. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tui/textual/debug/screen.py +0 -0
  437. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tui/textual/devtools.py +0 -0
  438. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tui/textual/drivers2.py +0 -0
  439. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tui/textual/logging2.py +0 -0
  440. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tui/textual/screen2.py +0 -0
  441. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev/tui/textual/types.py +0 -0
  442. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev.egg-info/dependency_links.txt +0 -0
  443. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev.egg-info/entry_points.txt +0 -0
  444. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/omdev.egg-info/top_level.txt +0 -0
  445. {omdev-0.0.0.dev533 → omdev-0.0.0.dev535}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: omdev
3
- Version: 0.0.0.dev533
3
+ Version: 0.0.0.dev535
4
4
  Summary: omdev
5
5
  Author: wrmsr
6
6
  License-Expression: BSD-3-Clause
@@ -14,7 +14,7 @@ Classifier: Programming Language :: Python :: 3.13
14
14
  Requires-Python: >=3.13
15
15
  Description-Content-Type: text/markdown
16
16
  License-File: LICENSE
17
- Requires-Dist: omlish==0.0.0.dev533
17
+ Requires-Dist: omlish==0.0.0.dev535
18
18
  Provides-Extra: all
19
19
  Requires-Dist: black~=26.1; extra == "all"
20
20
  Requires-Dist: pycparser~=3.0; extra == "all"
@@ -38,7 +38,7 @@ def __omlish_amalg__(): # noqa
38
38
  return dict(
39
39
  src_files=[
40
40
  dict(path='../../omlish/lite/abstract.py', sha1='a2fc3f3697fa8de5247761e9d554e70176f37aac'),
41
- dict(path='../../omlish/lite/check.py', sha1='df0ed561b5782545e34e61dd3424f69f836a87c0'),
41
+ dict(path='../../omlish/lite/check.py', sha1='5e625d74d4ad4e0492e25acac42820baa9956965'),
42
42
  dict(path='../../omlish/lite/json.py', sha1='57eeddc4d23a17931e00284ffa5cb6e3ce089486'),
43
43
  dict(path='../../omlish/lite/objects.py', sha1='9566bbf3530fd71fcc56321485216b592fae21e9'),
44
44
  dict(path='../../omlish/lite/reflect.py', sha1='c4fec44bf144e9d93293c996af06f6c65fc5e63d'),
@@ -355,7 +355,7 @@ class Checks:
355
355
  ...
356
356
 
357
357
  def isinstance(self, v, spec, msg=None):
358
- if not isinstance(v, self._unpack_isinstance_spec(spec)):
358
+ if not isinstance(v, spec if type(spec) is type else self._unpack_isinstance_spec(spec)):
359
359
  self._raise(
360
360
  TypeError,
361
361
  'Must be instance',
@@ -375,7 +375,7 @@ class Checks:
375
375
  ...
376
376
 
377
377
  def of_isinstance(self, spec, msg=None, /):
378
- spec = self._unpack_isinstance_spec(spec)
378
+ spec = spec if type(spec) is type else self._unpack_isinstance_spec(spec)
379
379
 
380
380
  def inner(v):
381
381
  return self.isinstance(v, spec, msg)
@@ -400,7 +400,7 @@ class Checks:
400
400
  return inner
401
401
 
402
402
  def not_isinstance(self, v: T, spec: ta.Any, msg: CheckMessage = None, /) -> T: # noqa
403
- if isinstance(v, self._unpack_isinstance_spec(spec)):
403
+ if isinstance(v, spec if type(spec) is type else self._unpack_isinstance_spec(spec)):
404
404
  self._raise(
405
405
  TypeError,
406
406
  'Must not be instance',
@@ -412,7 +412,7 @@ class Checks:
412
412
  return v
413
413
 
414
414
  def of_not_isinstance(self, spec: ta.Any, msg: CheckMessage = None, /) -> ta.Callable[[T], T]:
415
- spec = self._unpack_isinstance_spec(spec)
415
+ spec = spec if type(spec) is type else self._unpack_isinstance_spec(spec)
416
416
 
417
417
  def inner(v):
418
418
  return self.not_isinstance(v, spec, msg)
@@ -1,3 +1,46 @@
1
+ """
2
+ TODO:
3
+ - default run bash
4
+ - all of the below stuff
5
+
6
+ ====
7
+
8
+ if [ -t 1 ] ; then
9
+ TTY_ENV_ARGS="-e LINES=$(tput lines) -e COLUMNS=$(tput cols)"
10
+ else
11
+ TTY_ENV_ARGS=""
12
+ fi
13
+
14
+ SERVICE_NAME="$(basename "$SCRIPT_DIR")-dev"
15
+ if ! [ $# -eq 0 ] ; then
16
+ if [ "$1" = "--amd64" ] ; then
17
+ SERVICE_NAME="$SERVICE_NAME-amd64"
18
+ shift
19
+ fi
20
+ fi
21
+
22
+ CONTAINER_ID=$(docker-compose -f 'docker/compose.yml' ps -q "$SERVICE_NAME")
23
+ if [ -z "$CONTAINER_ID" ] ; then
24
+ echo "$SERVICE_NAME not running" 1>&2
25
+ exit 1
26
+ fi
27
+
28
+ if [ -z "$DOCKER_HOST_PLATFORM" ] ; then
29
+ if [ $(uname) = "Linux" ] ; then
30
+ DOCKER_HOST_PLATFORM=linux
31
+ elif [ $(uname) = "Darwin" ] ; then
32
+ DOCKER_HOST_PLATFORM=darwin
33
+ fi
34
+ fi
35
+
36
+ exec docker exec \
37
+ $TTY_ENV_ARGS \
38
+ -e DOCKER_HOST_PLATFORM="$DOCKER_HOST_PLATFORM" \
39
+ --privileged \
40
+ --detach-keys 'ctrl-o,ctrl-d' \
41
+ -it "$CONTAINER_ID" \
42
+ "$@"
43
+ """
1
44
  import os.path
2
45
  import re
3
46
  import shutil
@@ -39,7 +39,7 @@ def __omlish_amalg__(): # noqa
39
39
  src_files=[
40
40
  dict(path='../../omlish/lite/abstract.py', sha1='a2fc3f3697fa8de5247761e9d554e70176f37aac'),
41
41
  dict(path='../../omlish/lite/cached.py', sha1='0c33cf961ac8f0727284303c7a30c5ea98f714f2'),
42
- dict(path='../../omlish/lite/check.py', sha1='df0ed561b5782545e34e61dd3424f69f836a87c0'),
42
+ dict(path='../../omlish/lite/check.py', sha1='5e625d74d4ad4e0492e25acac42820baa9956965'),
43
43
  dict(path='../../omlish/lite/objects.py', sha1='9566bbf3530fd71fcc56321485216b592fae21e9'),
44
44
  dict(path='../../omlish/lite/reflect.py', sha1='c4fec44bf144e9d93293c996af06f6c65fc5e63d'),
45
45
  dict(path='../../omlish/lite/strings.py', sha1='89831ecbc34ad80e118a865eceb390ed399dc4d6'),
@@ -471,7 +471,7 @@ class Checks:
471
471
  ...
472
472
 
473
473
  def isinstance(self, v, spec, msg=None):
474
- if not isinstance(v, self._unpack_isinstance_spec(spec)):
474
+ if not isinstance(v, spec if type(spec) is type else self._unpack_isinstance_spec(spec)):
475
475
  self._raise(
476
476
  TypeError,
477
477
  'Must be instance',
@@ -491,7 +491,7 @@ class Checks:
491
491
  ...
492
492
 
493
493
  def of_isinstance(self, spec, msg=None, /):
494
- spec = self._unpack_isinstance_spec(spec)
494
+ spec = spec if type(spec) is type else self._unpack_isinstance_spec(spec)
495
495
 
496
496
  def inner(v):
497
497
  return self.isinstance(v, spec, msg)
@@ -516,7 +516,7 @@ class Checks:
516
516
  return inner
517
517
 
518
518
  def not_isinstance(self, v: T, spec: ta.Any, msg: CheckMessage = None, /) -> T: # noqa
519
- if isinstance(v, self._unpack_isinstance_spec(spec)):
519
+ if isinstance(v, spec if type(spec) is type else self._unpack_isinstance_spec(spec)):
520
520
  self._raise(
521
521
  TypeError,
522
522
  'Must not be instance',
@@ -528,7 +528,7 @@ class Checks:
528
528
  return v
529
529
 
530
530
  def of_not_isinstance(self, spec: ta.Any, msg: CheckMessage = None, /) -> ta.Callable[[T], T]:
531
- spec = self._unpack_isinstance_spec(spec)
531
+ spec = spec if type(spec) is type else self._unpack_isinstance_spec(spec)
532
532
 
533
533
  def inner(v):
534
534
  return self.not_isinstance(v, spec, msg)
@@ -27,6 +27,7 @@ vcs+protocol://repo_url/#egg=pkg&subdirectory=pkg_dir
27
27
  # ruff: noqa: UP006 UP007 UP045
28
28
  import abc
29
29
  import dataclasses as dc
30
+ import glob
30
31
  import importlib
31
32
  import inspect
32
33
  import os.path
@@ -40,6 +41,7 @@ import typing as ta
40
41
  from omlish.formats.toml.writer import TomlWriter
41
42
  from omlish.lite.abstract import Abstract
42
43
  from omlish.lite.cached import cached_nullary
44
+ from omlish.lite.check import check
43
45
  from omlish.logs.modules import get_module_logger
44
46
  from omlish.subprocesses.sync import subprocesses
45
47
 
@@ -150,28 +152,63 @@ class BasePyprojectPackageGenerator(Abstract):
150
152
  inc: ta.List[str]
151
153
  exc: ta.List[str]
152
154
 
155
+ _PKG_DATA_EXCLUDE_DIRS: ta.ClassVar[ta.AbstractSet[str]] = frozenset([
156
+ '__pycache__',
157
+ ])
158
+
153
159
  @cached_nullary
154
- def _collect_pkg_data(self) -> _PkgData:
155
- inc: ta.List[str] = []
156
- exc: ta.List[str] = []
160
+ def _collect_pkg_data(self) -> ta.Mapping[str, _PkgData]:
161
+ dct: ta.Dict[str, BasePyprojectPackageGenerator._PkgData] = {}
157
162
 
158
163
  for p, ds, fs in os.walk(self._dir_name): # noqa
159
164
  for f in fs:
160
165
  if f != '.pkgdata':
161
166
  continue
162
- rp = os.path.relpath(p, self._dir_name)
163
- log.info('Found pkgdata %s for pkg %s', rp, self._dir_name)
167
+
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
+
164
173
  with open(os.path.join(p, f)) as fo:
165
174
  src = fo.read()
175
+
176
+ pn = p.replace(os.sep, '.')
177
+ check.not_in(pn, dct)
178
+
179
+ inc: ta.List[str] = []
180
+ exc: ta.List[str] = []
181
+
166
182
  for l in src.splitlines():
167
183
  if not (l := l.strip()):
168
184
  continue
185
+
169
186
  if (bang := l.startswith('!')):
170
187
  l = l[1:]
171
- rlp = os.path.join(rp, l) if rp != '.' else l
172
- (exc if bang else inc).append(rlp)
173
188
 
174
- return self._PkgData(inc, exc)
189
+ if '**' in l:
190
+ if bang:
191
+ raise ValueError('Cannot exclude recursive globs')
192
+ check.state(not l.endswith(os.sep))
193
+ ge = l.rsplit(os.sep, maxsplit=1)[-1]
194
+
195
+ gds = set()
196
+ for g in glob.glob(l, root_dir=p, recursive=True):
197
+ if os.path.isfile(gp := os.path.join(p, g)):
198
+ if any(gpp in self._PKG_DATA_EXCLUDE_DIRS for gpp in os.path.dirname(gp).split(os.sep)):
199
+ continue
200
+ gd = os.path.dirname(g)
201
+ gds.add(gd)
202
+
203
+ for gd in sorted(gds):
204
+ inc.append(os.path.join(gd, ge))
205
+
206
+ else:
207
+ (exc if bang else inc).append(l)
208
+
209
+ dct[pn] = self._PkgData(inc, exc)
210
+
211
+ return dct
175
212
 
176
213
  #
177
214
 
@@ -353,10 +390,12 @@ class PyprojectPackageGenerator(BasePyprojectPackageGenerator):
353
390
  epd = dict(st.pop('exclude_package_data', {}))
354
391
 
355
392
  cpd = self._collect_pkg_data()
356
- if cpd.inc:
357
- pd['*'] = [*pd.get('*', []), *sorted(set(cpd.inc))]
358
- if cpd.exc:
359
- epd['*'] = [*epd.get('*', []), *sorted(set(cpd.exc))]
393
+ for pdk, pdv in cpd.items():
394
+ pdl = TomlWriter.Literal(f"'{pdk}'")
395
+ if pdv.inc:
396
+ pd.setdefault(pdl, []).extend(sorted(set(pdv.inc)))
397
+ if pdv.exc:
398
+ pd.setdefault(pdl, []).extend(sorted(set(pdv.exc)))
360
399
 
361
400
  if pd:
362
401
  pyp_dct['tool.setuptools.package-data'] = pd
@@ -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]
@@ -101,7 +101,7 @@ def __omlish_amalg__(): # noqa
101
101
  dict(path='../../omlish/lite/abstract.py', sha1='a2fc3f3697fa8de5247761e9d554e70176f37aac'),
102
102
  dict(path='../../omlish/lite/asyncs.py', sha1='b3f2251c56617ce548abf9c333ac996b63edb23e'),
103
103
  dict(path='../../omlish/lite/cached.py', sha1='0c33cf961ac8f0727284303c7a30c5ea98f714f2'),
104
- dict(path='../../omlish/lite/check.py', sha1='df0ed561b5782545e34e61dd3424f69f836a87c0'),
104
+ dict(path='../../omlish/lite/check.py', sha1='5e625d74d4ad4e0492e25acac42820baa9956965'),
105
105
  dict(path='../../omlish/lite/contextmanagers.py', sha1='993f5ed96d3410f739a20363f55670d5e5267fa3'),
106
106
  dict(path='../../omlish/lite/dataclasses.py', sha1='8b144d1d9474d96cf2a35f4db5cb224c30f538d6'),
107
107
  dict(path='../../omlish/lite/json.py', sha1='57eeddc4d23a17931e00284ffa5cb6e3ce089486'),
@@ -1372,7 +1372,7 @@ class Checks:
1372
1372
  ...
1373
1373
 
1374
1374
  def isinstance(self, v, spec, msg=None):
1375
- if not isinstance(v, self._unpack_isinstance_spec(spec)):
1375
+ if not isinstance(v, spec if type(spec) is type else self._unpack_isinstance_spec(spec)):
1376
1376
  self._raise(
1377
1377
  TypeError,
1378
1378
  'Must be instance',
@@ -1392,7 +1392,7 @@ class Checks:
1392
1392
  ...
1393
1393
 
1394
1394
  def of_isinstance(self, spec, msg=None, /):
1395
- spec = self._unpack_isinstance_spec(spec)
1395
+ spec = spec if type(spec) is type else self._unpack_isinstance_spec(spec)
1396
1396
 
1397
1397
  def inner(v):
1398
1398
  return self.isinstance(v, spec, msg)
@@ -1417,7 +1417,7 @@ class Checks:
1417
1417
  return inner
1418
1418
 
1419
1419
  def not_isinstance(self, v: T, spec: ta.Any, msg: CheckMessage = None, /) -> T: # noqa
1420
- if isinstance(v, self._unpack_isinstance_spec(spec)):
1420
+ if isinstance(v, spec if type(spec) is type else self._unpack_isinstance_spec(spec)):
1421
1421
  self._raise(
1422
1422
  TypeError,
1423
1423
  'Must not be instance',
@@ -1429,7 +1429,7 @@ class Checks:
1429
1429
  return v
1430
1430
 
1431
1431
  def of_not_isinstance(self, spec: ta.Any, msg: CheckMessage = None, /) -> ta.Callable[[T], T]:
1432
- spec = self._unpack_isinstance_spec(spec)
1432
+ spec = spec if type(spec) is type else self._unpack_isinstance_spec(spec)
1433
1433
 
1434
1434
  def inner(v):
1435
1435
  return self.not_isinstance(v, spec, msg)
@@ -56,7 +56,7 @@ def __omlish_amalg__(): # noqa
56
56
  dict(path='../packaging/versions.py', sha1='71627ad600b3529b829b0e227b0952f2c63c7271'),
57
57
  dict(path='../../omlish/lite/abstract.py', sha1='a2fc3f3697fa8de5247761e9d554e70176f37aac'),
58
58
  dict(path='../../omlish/lite/cached.py', sha1='0c33cf961ac8f0727284303c7a30c5ea98f714f2'),
59
- dict(path='../../omlish/lite/check.py', sha1='df0ed561b5782545e34e61dd3424f69f836a87c0'),
59
+ dict(path='../../omlish/lite/check.py', sha1='5e625d74d4ad4e0492e25acac42820baa9956965'),
60
60
  dict(path='../../omlish/lite/json.py', sha1='57eeddc4d23a17931e00284ffa5cb6e3ce089486'),
61
61
  dict(path='../../omlish/lite/reflect.py', sha1='c4fec44bf144e9d93293c996af06f6c65fc5e63d'),
62
62
  dict(path='../../omlish/lite/strings.py', sha1='89831ecbc34ad80e118a865eceb390ed399dc4d6'),
@@ -970,7 +970,7 @@ class Checks:
970
970
  ...
971
971
 
972
972
  def isinstance(self, v, spec, msg=None):
973
- if not isinstance(v, self._unpack_isinstance_spec(spec)):
973
+ if not isinstance(v, spec if type(spec) is type else self._unpack_isinstance_spec(spec)):
974
974
  self._raise(
975
975
  TypeError,
976
976
  'Must be instance',
@@ -990,7 +990,7 @@ class Checks:
990
990
  ...
991
991
 
992
992
  def of_isinstance(self, spec, msg=None, /):
993
- spec = self._unpack_isinstance_spec(spec)
993
+ spec = spec if type(spec) is type else self._unpack_isinstance_spec(spec)
994
994
 
995
995
  def inner(v):
996
996
  return self.isinstance(v, spec, msg)
@@ -1015,7 +1015,7 @@ class Checks:
1015
1015
  return inner
1016
1016
 
1017
1017
  def not_isinstance(self, v: T, spec: ta.Any, msg: CheckMessage = None, /) -> T: # noqa
1018
- if isinstance(v, self._unpack_isinstance_spec(spec)):
1018
+ if isinstance(v, spec if type(spec) is type else self._unpack_isinstance_spec(spec)):
1019
1019
  self._raise(
1020
1020
  TypeError,
1021
1021
  'Must not be instance',
@@ -1027,7 +1027,7 @@ class Checks:
1027
1027
  return v
1028
1028
 
1029
1029
  def of_not_isinstance(self, spec: ta.Any, msg: CheckMessage = None, /) -> ta.Callable[[T], T]:
1030
- spec = self._unpack_isinstance_spec(spec)
1030
+ spec = spec if type(spec) is type else self._unpack_isinstance_spec(spec)
1031
1031
 
1032
1032
  def inner(v):
1033
1033
  return self.not_isinstance(v, spec, msg)
@@ -35,7 +35,7 @@ def __omlish_amalg__(): # noqa
35
35
  return dict(
36
36
  src_files=[
37
37
  dict(path='../../../lite/abstract.py', sha1='a2fc3f3697fa8de5247761e9d554e70176f37aac'),
38
- dict(path='../../../lite/check.py', sha1='df0ed561b5782545e34e61dd3424f69f836a87c0'),
38
+ dict(path='../../../lite/check.py', sha1='5e625d74d4ad4e0492e25acac42820baa9956965'),
39
39
  dict(path='../../../lite/dataclasses.py', sha1='8b144d1d9474d96cf2a35f4db5cb224c30f538d6'),
40
40
  dict(path='errors.py', sha1='8fa73c90292f56f8faaedebb2f478ff6a3b95460'),
41
41
  dict(path='tokens.py', sha1='d52876a2a525bc99eb554fe28c3d27e7e01f43a9'),
@@ -357,7 +357,7 @@ class Checks:
357
357
  ...
358
358
 
359
359
  def isinstance(self, v, spec, msg=None):
360
- if not isinstance(v, self._unpack_isinstance_spec(spec)):
360
+ if not isinstance(v, spec if type(spec) is type else self._unpack_isinstance_spec(spec)):
361
361
  self._raise(
362
362
  TypeError,
363
363
  'Must be instance',
@@ -377,7 +377,7 @@ class Checks:
377
377
  ...
378
378
 
379
379
  def of_isinstance(self, spec, msg=None, /):
380
- spec = self._unpack_isinstance_spec(spec)
380
+ spec = spec if type(spec) is type else self._unpack_isinstance_spec(spec)
381
381
 
382
382
  def inner(v):
383
383
  return self.isinstance(v, spec, msg)
@@ -402,7 +402,7 @@ class Checks:
402
402
  return inner
403
403
 
404
404
  def not_isinstance(self, v: T, spec: ta.Any, msg: CheckMessage = None, /) -> T: # noqa
405
- if isinstance(v, self._unpack_isinstance_spec(spec)):
405
+ if isinstance(v, spec if type(spec) is type else self._unpack_isinstance_spec(spec)):
406
406
  self._raise(
407
407
  TypeError,
408
408
  'Must not be instance',
@@ -414,7 +414,7 @@ class Checks:
414
414
  return v
415
415
 
416
416
  def of_not_isinstance(self, spec: ta.Any, msg: CheckMessage = None, /) -> ta.Callable[[T], T]:
417
- spec = self._unpack_isinstance_spec(spec)
417
+ spec = spec if type(spec) is type else self._unpack_isinstance_spec(spec)
418
418
 
419
419
  def inner(v):
420
420
  return self.not_isinstance(v, spec, msg)
@@ -32,7 +32,7 @@ def __omlish_amalg__(): # noqa
32
32
  return dict(
33
33
  src_files=[
34
34
  dict(path='abstract.py', sha1='a2fc3f3697fa8de5247761e9d554e70176f37aac'),
35
- dict(path='check.py', sha1='df0ed561b5782545e34e61dd3424f69f836a87c0'),
35
+ dict(path='check.py', sha1='5e625d74d4ad4e0492e25acac42820baa9956965'),
36
36
  dict(path='reflect.py', sha1='c4fec44bf144e9d93293c996af06f6c65fc5e63d'),
37
37
  dict(path='maybes.py', sha1='04d2fcbea17028a5e6b8e7a7fb742375495ed233'),
38
38
  dict(path='inject.py', sha1='6f097e3170019a34ff6834d36fcc9cbeed3a7ab4'),
@@ -355,7 +355,7 @@ class Checks:
355
355
  ...
356
356
 
357
357
  def isinstance(self, v, spec, msg=None):
358
- if not isinstance(v, self._unpack_isinstance_spec(spec)):
358
+ if not isinstance(v, spec if type(spec) is type else self._unpack_isinstance_spec(spec)):
359
359
  self._raise(
360
360
  TypeError,
361
361
  'Must be instance',
@@ -375,7 +375,7 @@ class Checks:
375
375
  ...
376
376
 
377
377
  def of_isinstance(self, spec, msg=None, /):
378
- spec = self._unpack_isinstance_spec(spec)
378
+ spec = spec if type(spec) is type else self._unpack_isinstance_spec(spec)
379
379
 
380
380
  def inner(v):
381
381
  return self.isinstance(v, spec, msg)
@@ -400,7 +400,7 @@ class Checks:
400
400
  return inner
401
401
 
402
402
  def not_isinstance(self, v: T, spec: ta.Any, msg: CheckMessage = None, /) -> T: # noqa
403
- if isinstance(v, self._unpack_isinstance_spec(spec)):
403
+ if isinstance(v, spec if type(spec) is type else self._unpack_isinstance_spec(spec)):
404
404
  self._raise(
405
405
  TypeError,
406
406
  'Must not be instance',
@@ -412,7 +412,7 @@ class Checks:
412
412
  return v
413
413
 
414
414
  def of_not_isinstance(self, spec: ta.Any, msg: CheckMessage = None, /) -> ta.Callable[[T], T]:
415
- spec = self._unpack_isinstance_spec(spec)
415
+ spec = spec if type(spec) is type else self._unpack_isinstance_spec(spec)
416
416
 
417
417
  def inner(v):
418
418
  return self.not_isinstance(v, spec, msg)
@@ -30,12 +30,12 @@ def __omlish_amalg__(): # noqa
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'),
33
+ dict(path='utils.py', sha1='b3b7ed67bff8b7f2b60d821eda9afa93ffb2ba1f'),
34
34
  dict(path='direct.py', sha1='83c33460e9490a77a00ae66251617ba98128b56b'),
35
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'),
36
+ dict(path='adapters.py', sha1='f434206c6d8a0fd3961b1a44077ee69668e8bd0c'),
37
+ dict(path='linear.py', sha1='a6cebf552cc4d3277809eb0c63b99981e74d3731'),
38
+ dict(path='segmented.py', sha1='b48b53fd9a37902c382421658b50e3054f33abe4'),
39
39
  dict(path='_amalg.py', sha1='9c88a055447d7b37da1b356e6a1e00b7c4a9a3cb'),
40
40
  ],
41
41
  )
@@ -50,6 +50,9 @@ T = ta.TypeVar('T')
50
50
  # types.py
51
51
  BytesLikeOrMemoryview = ta.Union[bytes, bytearray, memoryview] # ta.TypeAlias
52
52
 
53
+ # utils.py
54
+ CanByteStreamBuffer = ta.Union[BytesLikeOrMemoryview, 'ByteStreamBufferLike'] # ta.TypeAlias
55
+
53
56
 
54
57
  ########################################
55
58
  # ../errors.py
@@ -1643,7 +1646,7 @@ class BytesIoByteStreamBuffer(MutableByteStreamBuffer):
1643
1646
  def __init__(
1644
1647
  self,
1645
1648
  *,
1646
- compaction_threshold: int = 0x10000,
1649
+ compaction_threshold: int = 64 * 1024,
1647
1650
  ) -> None:
1648
1651
  super().__init__()
1649
1652
 
@@ -1795,7 +1798,7 @@ class LinearByteStreamBuffer(BaseByteStreamBufferLike, MutableByteStreamBuffer):
1795
1798
  *,
1796
1799
  max_size: ta.Optional[int] = None,
1797
1800
  initial_capacity: int = 0,
1798
- compact_threshold: int = 0x10000,
1801
+ compact_threshold: int = 64 * 1024,
1799
1802
  ) -> None:
1800
1803
  super().__init__()
1801
1804
 
@@ -1939,7 +1942,7 @@ class LinearByteStreamBuffer(BaseByteStreamBufferLike, MutableByteStreamBuffer):
1939
1942
  return _EMPTY_DIRECT_BYTE_STREAM_BUFFER_VIEW
1940
1943
 
1941
1944
  # 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])
1945
+ b = ByteStreamBuffers.memoryview_to_bytes(memoryview(self._ba)[self._rpos:self._rpos + n])
1943
1946
  self._rpos += n
1944
1947
 
1945
1948
  # If we consumed everything, reset best-effort; otherwise allow compaction policy to handle later.
@@ -2075,7 +2078,15 @@ class SegmentedByteStreamBufferView(BaseByteStreamBufferLike, ByteStreamBufferVi
2075
2078
 
2076
2079
  self._segs = tuple(segs)
2077
2080
  for mv in self._segs:
2078
- self._len += len(mv)
2081
+ if (mvl := len(mv)) < 1:
2082
+ raise ValueError('Empty segment')
2083
+ self._len += mvl
2084
+
2085
+ @classmethod
2086
+ def of_opt(cls, segs: ta.Sequence[memoryview]) -> ta.Optional['SegmentedByteStreamBufferView']:
2087
+ if not segs:
2088
+ return None
2089
+ return cls(segs)
2079
2090
 
2080
2091
  _len = 0
2081
2092
 
@@ -2094,8 +2105,8 @@ class SegmentedByteStreamBufferView(BaseByteStreamBufferLike, ByteStreamBufferVi
2094
2105
  if not self._segs:
2095
2106
  return b''
2096
2107
  if len(self._segs) == 1:
2097
- return bytes(self._segs[0])
2098
- return b''.join(bytes(mv) for mv in self._segs)
2108
+ return ByteStreamBuffers.memoryview_to_bytes(self._segs[0])
2109
+ return b''.join(ByteStreamBuffers.memoryview_to_bytes(mv) for mv in self._segs)
2099
2110
 
2100
2111
 
2101
2112
  class SegmentedByteStreamBuffer(BaseByteStreamBufferLike, MutableByteStreamBuffer):
@@ -2260,7 +2271,7 @@ class SegmentedByteStreamBuffer(BaseByteStreamBufferLike, MutableByteStreamBuffe
2260
2271
  if self._chunk_size and (float(used) / float(self._chunk_size)) < self._chunk_compact_threshold:
2261
2272
  if not self._segs or self._segs[-1] is not a:
2262
2273
  raise RuntimeError('active not at tail')
2263
- self._segs[-1] = bytes(memoryview(a)[:used])
2274
+ self._segs[-1] = ByteStreamBuffers.memoryview_to_bytes(memoryview(a)[:used])
2264
2275
 
2265
2276
  else:
2266
2277
  # Try to shrink in-place to used bytes. If exported views exist, this can BufferError; fall back to bytes()
@@ -2270,7 +2281,7 @@ class SegmentedByteStreamBuffer(BaseByteStreamBufferLike, MutableByteStreamBuffe
2270
2281
  try:
2271
2282
  del a[used:] # may raise BufferError if any exports exist
2272
2283
  except BufferError:
2273
- self._segs[-1] = bytes(memoryview(a)[:used])
2284
+ self._segs[-1] = ByteStreamBuffers.memoryview_to_bytes(memoryview(a)[:used])
2274
2285
 
2275
2286
  self._active = None
2276
2287
  self._active_used = 0
@@ -2386,7 +2397,7 @@ class SegmentedByteStreamBuffer(BaseByteStreamBufferLike, MutableByteStreamBuffe
2386
2397
  self._segs.append(b)
2387
2398
  self._len += n
2388
2399
  else:
2389
- bb = bytes(memoryview(b)[:n])
2400
+ bb = ByteStreamBuffers.memoryview_to_bytes(memoryview(b)[:n])
2390
2401
  self._segs.append(bb)
2391
2402
  self._len += n
2392
2403
 
@@ -41,7 +41,7 @@ def __omlish_amalg__(): # noqa
41
41
  return dict(
42
42
  src_files=[
43
43
  dict(path='abstract.py', sha1='a2fc3f3697fa8de5247761e9d554e70176f37aac'),
44
- dict(path='check.py', sha1='df0ed561b5782545e34e61dd3424f69f836a87c0'),
44
+ dict(path='check.py', sha1='5e625d74d4ad4e0492e25acac42820baa9956965'),
45
45
  dict(path='objects.py', sha1='9566bbf3530fd71fcc56321485216b592fae21e9'),
46
46
  dict(path='reflect.py', sha1='c4fec44bf144e9d93293c996af06f6c65fc5e63d'),
47
47
  dict(path='strings.py', sha1='89831ecbc34ad80e118a865eceb390ed399dc4d6'),
@@ -356,7 +356,7 @@ class Checks:
356
356
  ...
357
357
 
358
358
  def isinstance(self, v, spec, msg=None):
359
- if not isinstance(v, self._unpack_isinstance_spec(spec)):
359
+ if not isinstance(v, spec if type(spec) is type else self._unpack_isinstance_spec(spec)):
360
360
  self._raise(
361
361
  TypeError,
362
362
  'Must be instance',
@@ -376,7 +376,7 @@ class Checks:
376
376
  ...
377
377
 
378
378
  def of_isinstance(self, spec, msg=None, /):
379
- spec = self._unpack_isinstance_spec(spec)
379
+ spec = spec if type(spec) is type else self._unpack_isinstance_spec(spec)
380
380
 
381
381
  def inner(v):
382
382
  return self.isinstance(v, spec, msg)
@@ -401,7 +401,7 @@ class Checks:
401
401
  return inner
402
402
 
403
403
  def not_isinstance(self, v: T, spec: ta.Any, msg: CheckMessage = None, /) -> T: # noqa
404
- if isinstance(v, self._unpack_isinstance_spec(spec)):
404
+ if isinstance(v, spec if type(spec) is type else self._unpack_isinstance_spec(spec)):
405
405
  self._raise(
406
406
  TypeError,
407
407
  'Must not be instance',
@@ -413,7 +413,7 @@ class Checks:
413
413
  return v
414
414
 
415
415
  def of_not_isinstance(self, spec: ta.Any, msg: CheckMessage = None, /) -> ta.Callable[[T], T]:
416
- spec = self._unpack_isinstance_spec(spec)
416
+ spec = spec if type(spec) is type else self._unpack_isinstance_spec(spec)
417
417
 
418
418
  def inner(v):
419
419
  return self.not_isinstance(v, spec, msg)