omdev 0.0.0.dev528__tar.gz → 0.0.0.dev529__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 (441) hide show
  1. {omdev-0.0.0.dev528/omdev.egg-info → omdev-0.0.0.dev529}/PKG-INFO +2 -2
  2. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/dataclasses/_dumping.py +9 -7
  3. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/dockerdev/gen.py +5 -6
  4. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/dockerdev/helpers.py +13 -17
  5. omdev-0.0.0.dev529/omdev/dockerdev/resources/.pkgdata +2 -0
  6. omdev-0.0.0.dev529/omdev/dockerdev/resources/.python-versions.json +15 -0
  7. omdev-0.0.0.dev529/omdev/dockerdev/resources/configs/.gdbinit +2 -0
  8. omdev-0.0.0.dev529/omdev/dockerdev/resources/configs/.pkgdata +2 -0
  9. omdev-0.0.0.dev529/omdev/dockerdev/resources/configs/.tmux.conf +7 -0
  10. omdev-0.0.0.dev529/omdev/dockerdev/resources/configs/.vimrc +6 -0
  11. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/java/cli.py +11 -2
  12. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/manifests/_dumping.py +9 -7
  13. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/pyproject/configs.py +1 -1
  14. omdev-0.0.0.dev529/omdev/pyproject/versions.py +23 -0
  15. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/scripts/ci.py +9 -7
  16. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/scripts/interp.py +9 -7
  17. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/scripts/lib/inject.py +9 -7
  18. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/scripts/lib/io/streams.py +2 -2
  19. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/scripts/lib/marshal.py +9 -7
  20. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/scripts/pyproject.py +15 -31
  21. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529/omdev.egg-info}/PKG-INFO +2 -2
  22. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev.egg-info/SOURCES.txt +6 -0
  23. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev.egg-info/requires.txt +1 -1
  24. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/pyproject.toml +4 -2
  25. omdev-0.0.0.dev528/omdev/pyproject/versions.py +0 -40
  26. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/LICENSE +0 -0
  27. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/MANIFEST.in +0 -0
  28. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/README.md +0 -0
  29. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/.omlish-manifests.json +0 -0
  30. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/README.md +0 -0
  31. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/__about__.py +0 -0
  32. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/__init__.py +0 -0
  33. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/amalg/__init__.py +0 -0
  34. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/amalg/__main__.py +0 -0
  35. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/amalg/cli/__init__.py +0 -0
  36. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/amalg/cli/main.py +0 -0
  37. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/amalg/gen/__init__.py +0 -0
  38. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/amalg/gen/gen.py +0 -0
  39. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/amalg/gen/imports.py +0 -0
  40. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/amalg/gen/manifests.py +0 -0
  41. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/amalg/gen/resources.py +0 -0
  42. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/amalg/gen/srcfiles.py +0 -0
  43. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/amalg/gen/strip.py +0 -0
  44. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/amalg/gen/types.py +0 -0
  45. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/amalg/gen/typing.py +0 -0
  46. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/amalg/info.py +0 -0
  47. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/amalg/sources.py +0 -0
  48. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cache/__init__.py +0 -0
  49. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cache/compute/__init__.py +0 -0
  50. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cache/compute/cache.py +0 -0
  51. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cache/compute/contexts.py +0 -0
  52. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cache/compute/currents.py +0 -0
  53. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cache/compute/fns.py +0 -0
  54. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cache/compute/resolvers.py +0 -0
  55. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cache/compute/storage.py +0 -0
  56. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cache/compute/types.py +0 -0
  57. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cache/data/__init__.py +0 -0
  58. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cache/data/actions.py +0 -0
  59. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cache/data/cache.py +0 -0
  60. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cache/data/consts.py +0 -0
  61. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cache/data/defaults.py +0 -0
  62. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cache/data/manifests.py +0 -0
  63. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cache/data/specs.py +0 -0
  64. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/capi/__init__.py +0 -0
  65. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/capi/darwin/__init__.py +0 -0
  66. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/capi/darwin/aps.py +0 -0
  67. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/capi/darwin/ax.py +0 -0
  68. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/capi/darwin/cf.py +0 -0
  69. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/capi/darwin/cg.py +0 -0
  70. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/capi/linux/__init__.py +0 -0
  71. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/capi/linux/x11.py +0 -0
  72. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cc/__init__.py +0 -0
  73. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cc/__main__.py +0 -0
  74. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cc/cdeps.py +0 -0
  75. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cc/cdeps.toml +0 -0
  76. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cc/cli.py +0 -0
  77. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cc/srclangs.py +0 -0
  78. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cexts/__init__.py +0 -0
  79. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cexts/_boilerplate.cc +0 -0
  80. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cexts/_distutils/LICENSE +0 -0
  81. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cexts/_distutils/__init__.py +0 -0
  82. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cexts/_distutils/build_ext.py +0 -0
  83. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cexts/_distutils/compilers/__init__.py +0 -0
  84. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cexts/_distutils/compilers/ccompiler.py +0 -0
  85. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cexts/_distutils/compilers/options.py +0 -0
  86. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cexts/_distutils/compilers/unixccompiler.py +0 -0
  87. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cexts/_distutils/dir_util.py +0 -0
  88. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cexts/_distutils/errors.py +0 -0
  89. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cexts/_distutils/extension.py +0 -0
  90. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cexts/_distutils/file_util.py +0 -0
  91. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cexts/_distutils/modified.py +0 -0
  92. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cexts/_distutils/spawn.py +0 -0
  93. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cexts/_distutils/sysconfig.py +0 -0
  94. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cexts/_distutils/util.py +0 -0
  95. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cexts/_distutils/version.py +0 -0
  96. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cexts/build.py +0 -0
  97. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cexts/cmake.py +0 -0
  98. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cexts/importhook.py +0 -0
  99. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cexts/magic.py +0 -0
  100. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cexts/scan.py +0 -0
  101. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/ci/__init__.py +0 -0
  102. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/ci/__main__.py +0 -0
  103. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/ci/cache.py +0 -0
  104. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/ci/ci.py +0 -0
  105. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/ci/cli.py +0 -0
  106. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/ci/compose.py +0 -0
  107. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/ci/consts.py +0 -0
  108. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/ci/docker/__init__.py +0 -0
  109. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/ci/docker/buildcaching.py +0 -0
  110. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/ci/docker/cache.py +0 -0
  111. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/ci/docker/cacheserved/__init__.py +0 -0
  112. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/ci/docker/cacheserved/cache.py +0 -0
  113. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/ci/docker/cacheserved/manifests.py +0 -0
  114. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/ci/docker/cmds.py +0 -0
  115. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/ci/docker/dataserver.py +0 -0
  116. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/ci/docker/imagepulling.py +0 -0
  117. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/ci/docker/inject.py +0 -0
  118. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/ci/docker/packing.py +0 -0
  119. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/ci/docker/repositories.py +0 -0
  120. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/ci/docker/utils.py +0 -0
  121. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/ci/github/__init__.py +0 -0
  122. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/ci/github/api/__init__.py +0 -0
  123. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/ci/github/api/clients.py +0 -0
  124. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/ci/github/api/v1/__init__.py +0 -0
  125. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/ci/github/api/v1/api.py +0 -0
  126. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/ci/github/api/v1/client.py +0 -0
  127. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/ci/github/api/v2/__init__.py +0 -0
  128. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/ci/github/api/v2/api.py +0 -0
  129. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/ci/github/api/v2/azure.py +0 -0
  130. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/ci/github/api/v2/client.py +0 -0
  131. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/ci/github/bootstrap.py +0 -0
  132. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/ci/github/cache.py +0 -0
  133. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/ci/github/cli.py +0 -0
  134. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/ci/github/env.py +0 -0
  135. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/ci/github/inject.py +0 -0
  136. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/ci/inject.py +0 -0
  137. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/ci/requirements.py +0 -0
  138. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/ci/shell.py +0 -0
  139. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/ci/utils.py +0 -0
  140. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cli/__init__.py +0 -0
  141. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cli/__main__.py +0 -0
  142. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cli/_pathhack.py +0 -0
  143. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cli/clicli.py +0 -0
  144. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cli/install.py +0 -0
  145. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cli/main.py +0 -0
  146. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cli/managers.py +0 -0
  147. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cli/types.py +0 -0
  148. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/clipboard/__init__.py +0 -0
  149. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/clipboard/capi/__init__.py +0 -0
  150. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/clipboard/capi/darwin_cf.py +0 -0
  151. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/clipboard/capi/linux_x11.py +0 -0
  152. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/clipboard/commands.py +0 -0
  153. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/clipboard/platform.py +0 -0
  154. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/clipboard/types.py +0 -0
  155. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cmake.py +0 -0
  156. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cmdlog/__init__.py +0 -0
  157. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cmdlog/__main__.py +0 -0
  158. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cmdlog/_cmdlog.py +0 -0
  159. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cmdlog/cli.py +0 -0
  160. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/cmdlog/cmdlog.py +0 -0
  161. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/dataclasses/__init__.py +0 -0
  162. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/dataclasses/__main__.py +0 -0
  163. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/dataclasses/_template.py +0 -0
  164. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/dataclasses/cli.py +0 -0
  165. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/dataclasses/codegen.py +0 -0
  166. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/dataclasses/dumping.py +0 -0
  167. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/dataserver/__init__.py +0 -0
  168. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/dataserver/handlers.py +0 -0
  169. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/dataserver/http.py +0 -0
  170. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/dataserver/routes.py +0 -0
  171. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/dataserver/server.py +0 -0
  172. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/dataserver/targets.py +0 -0
  173. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/dockerdev/__init__.py +0 -0
  174. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/dockerdev/config.toml +0 -0
  175. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/dockerdev/content.py +0 -0
  176. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/dockerdev/ops.py +0 -0
  177. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/dockerdev/rendering.py +0 -0
  178. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/dockerdev/resources/__init__.py +0 -0
  179. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/dockerdev/resources/configs/__init__.py +0 -0
  180. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/dockerdev/resources/depsets/__init__.py +0 -0
  181. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/dockerdev/resources/depsets/python.toml +0 -0
  182. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/dockerdev/resources/depsets/system.toml +0 -0
  183. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/dockerdev/resources/depsets/x11.toml +0 -0
  184. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/dockerdev/resources/fragments/__init__.py +0 -0
  185. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/dockerdev/resources/fragments/apt.sh +0 -0
  186. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/dockerdev/resources/fragments/docker.sh +0 -0
  187. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/dockerdev/resources/fragments/firefox.sh +0 -0
  188. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/dockerdev/resources/fragments/go.sh +0 -0
  189. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/dockerdev/resources/fragments/jdk.sh +0 -0
  190. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/dockerdev/resources/fragments/nvm.sh +0 -0
  191. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/dockerdev/resources/fragments/pyenv.sh +0 -0
  192. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/dockerdev/resources/fragments/rust.sh +0 -0
  193. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/dockerdev/resources/fragments/sshd.sh +0 -0
  194. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/dockerdev/resources/fragments/vcpkg.sh +0 -0
  195. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/dockerdev/resources/fragments/zig.sh +0 -0
  196. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/dockerdev/resources/xu +0 -0
  197. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/git/__init__.py +0 -0
  198. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/git/magic.py +0 -0
  199. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/git/revisions.py +0 -0
  200. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/git/shallow.py +0 -0
  201. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/git/status.py +0 -0
  202. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/home/__init__.py +0 -0
  203. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/home/paths.py +0 -0
  204. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/home/secrets.py +0 -0
  205. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/home/shadow.py +0 -0
  206. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/imgur.py +0 -0
  207. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/intellij/__init__.py +0 -0
  208. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/intellij/cli.py +0 -0
  209. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/intellij/ides.py +0 -0
  210. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/intellij/open.py +0 -0
  211. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/interp/__init__.py +0 -0
  212. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/interp/__main__.py +0 -0
  213. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/interp/cli.py +0 -0
  214. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/interp/default.py +0 -0
  215. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/interp/inject.py +0 -0
  216. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/interp/inspect.py +0 -0
  217. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/interp/providers/__init__.py +0 -0
  218. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/interp/providers/base.py +0 -0
  219. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/interp/providers/inject.py +0 -0
  220. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/interp/providers/running.py +0 -0
  221. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/interp/providers/standalone.py +0 -0
  222. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/interp/providers/system.py +0 -0
  223. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/interp/pyenv/__init__.py +0 -0
  224. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/interp/pyenv/inject.py +0 -0
  225. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/interp/pyenv/install.py +0 -0
  226. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/interp/pyenv/provider.py +0 -0
  227. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/interp/pyenv/pyenv.py +0 -0
  228. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/interp/resolvers.py +0 -0
  229. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/interp/types.py +0 -0
  230. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/interp/uv/__init__.py +0 -0
  231. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/interp/uv/inject.py +0 -0
  232. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/interp/uv/provider.py +0 -0
  233. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/interp/uv/uv.py +0 -0
  234. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/interp/venvs.py +0 -0
  235. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/irc/__init__.py +0 -0
  236. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/irc/messages/__init__.py +0 -0
  237. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/irc/messages/base.py +0 -0
  238. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/irc/messages/formats.py +0 -0
  239. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/irc/messages/messages.py +0 -0
  240. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/irc/messages/parsing.py +0 -0
  241. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/irc/numerics/__init__.py +0 -0
  242. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/irc/numerics/formats.py +0 -0
  243. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/irc/numerics/numerics.py +0 -0
  244. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/irc/numerics/types.py +0 -0
  245. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/irc/protocol/LICENSE +0 -0
  246. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/irc/protocol/__init__.py +0 -0
  247. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/irc/protocol/consts.py +0 -0
  248. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/irc/protocol/errors.py +0 -0
  249. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/irc/protocol/message.py +0 -0
  250. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/irc/protocol/nuh.py +0 -0
  251. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/irc/protocol/parsing.py +0 -0
  252. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/irc/protocol/rendering.py +0 -0
  253. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/irc/protocol/tags.py +0 -0
  254. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/irc/protocol/utils.py +0 -0
  255. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/java/__init__.py +0 -0
  256. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/java/__main__.py +0 -0
  257. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/java/pomgen.py +0 -0
  258. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/java/xml.py +0 -0
  259. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/magic/__init__.py +0 -0
  260. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/magic/__main__.py +0 -0
  261. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/magic/cli.py +0 -0
  262. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/magic/find.py +0 -0
  263. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/magic/magic.py +0 -0
  264. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/magic/prepare.py +0 -0
  265. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/magic/styles.py +0 -0
  266. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/manifests/__init__.py +0 -0
  267. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/manifests/__main__.py +0 -0
  268. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/manifests/building.py +0 -0
  269. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/manifests/dumping.py +0 -0
  270. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/manifests/main.py +0 -0
  271. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/markdown/__init__.py +0 -0
  272. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/markdown/incparse.py +0 -0
  273. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/markdown/tokens.py +0 -0
  274. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/mypy/__init__.py +0 -0
  275. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/mypy/debug.py +0 -0
  276. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/mypy/report.py +0 -0
  277. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/oci/__init__.py +0 -0
  278. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/oci/building.py +0 -0
  279. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/oci/compression.py +0 -0
  280. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/oci/data.py +0 -0
  281. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/oci/datarefs.py +0 -0
  282. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/oci/dataserver.py +0 -0
  283. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/oci/loading.py +0 -0
  284. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/oci/media.py +0 -0
  285. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/oci/pack/__init__.py +0 -0
  286. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/oci/pack/packing.py +0 -0
  287. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/oci/pack/repositories.py +0 -0
  288. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/oci/pack/unpacking.py +0 -0
  289. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/oci/repositories.py +0 -0
  290. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/oci/tars.py +0 -0
  291. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/packaging/__init__.py +0 -0
  292. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/packaging/marshal.py +0 -0
  293. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/packaging/names.py +0 -0
  294. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/packaging/requires.py +0 -0
  295. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/packaging/revisions.py +0 -0
  296. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/packaging/specifiers.py +0 -0
  297. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/packaging/versions.py +0 -0
  298. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/packaging/wheelfile.py +0 -0
  299. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/pip.py +0 -0
  300. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/precheck/__init__.py +0 -0
  301. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/precheck/__main__.py +0 -0
  302. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/precheck/base.py +0 -0
  303. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/precheck/blanklines.py +0 -0
  304. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/precheck/caches.py +0 -0
  305. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/precheck/git.py +0 -0
  306. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/precheck/imports.py +0 -0
  307. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/precheck/lite.py +0 -0
  308. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/precheck/main.py +0 -0
  309. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/precheck/manifests.py +0 -0
  310. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/precheck/scripts.py +0 -0
  311. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/precheck/unicode.py +0 -0
  312. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/py/__init__.py +0 -0
  313. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/py/asts/__init__.py +0 -0
  314. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/py/asts/parents.py +0 -0
  315. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/py/asts/toplevel.py +0 -0
  316. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/py/asts/visitors.py +0 -0
  317. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/py/attrdocs.py +0 -0
  318. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/py/bracepy.py +0 -0
  319. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/py/classdot.py +0 -0
  320. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/py/docstrings/LICENSE +0 -0
  321. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/py/docstrings/__init__.py +0 -0
  322. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/py/docstrings/attrdoc.py +0 -0
  323. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/py/docstrings/common.py +0 -0
  324. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/py/docstrings/epydoc.py +0 -0
  325. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/py/docstrings/google.py +0 -0
  326. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/py/docstrings/numpydoc.py +0 -0
  327. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/py/docstrings/parser.py +0 -0
  328. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/py/docstrings/rest.py +0 -0
  329. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/py/findimports.py +0 -0
  330. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/py/reprs.py +0 -0
  331. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/py/scripts/__init__.py +0 -0
  332. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/py/scripts/bumpversion.py +0 -0
  333. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/py/scripts/execstat.py +0 -0
  334. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/py/scripts/importtrace.py +0 -0
  335. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/py/srcheaders.py +0 -0
  336. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/py/tokens/__init__.py +0 -0
  337. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/py/tokens/all.py +0 -0
  338. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/py/tokens/tokenizert.py +0 -0
  339. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/py/tokens/utils.py +0 -0
  340. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/py/tools/__init__.py +0 -0
  341. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/py/tools/importscan.py +0 -0
  342. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/py/tools/mkrelimp.py +0 -0
  343. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/py/tools/pipdepup.py +0 -0
  344. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/pyproject/__init__.py +0 -0
  345. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/pyproject/__main__.py +0 -0
  346. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/pyproject/cli.py +0 -0
  347. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/pyproject/inject.py +0 -0
  348. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/pyproject/pkg.py +0 -0
  349. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/pyproject/reqs.py +0 -0
  350. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/pyproject/resources/__init__.py +0 -0
  351. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/pyproject/resources/docker-dev.sh +0 -0
  352. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/pyproject/resources/python.sh +0 -0
  353. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/pyproject/tools/__init__.py +0 -0
  354. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/pyproject/tools/aboutdeps.py +0 -0
  355. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/pyproject/tools/buildrs.py +0 -0
  356. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/pyproject/tools/pyversions.py +0 -0
  357. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/pyproject/venvs.py +0 -0
  358. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/rs/__init__.py +0 -0
  359. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/scripts/__init__.py +0 -0
  360. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/scripts/lib/__init__.py +0 -0
  361. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/scripts/lib/io/__init__.py +0 -0
  362. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/scripts/lib/logs.py +0 -0
  363. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/scripts/slowcat.py +0 -0
  364. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/scripts/tmpexec.py +0 -0
  365. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tagstrings.py +0 -0
  366. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tools/__init__.py +0 -0
  367. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tools/cloc.py +0 -0
  368. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tools/diff.py +0 -0
  369. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tools/doc.py +0 -0
  370. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tools/docker.py +0 -0
  371. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tools/git/__init__.py +0 -0
  372. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tools/git/__main__.py +0 -0
  373. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tools/git/cli.py +0 -0
  374. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tools/git/cloning.py +0 -0
  375. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tools/git/consts.py +0 -0
  376. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tools/git/messages.py +0 -0
  377. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tools/json/__init__.py +0 -0
  378. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tools/json/__main__.py +0 -0
  379. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tools/json/cli.py +0 -0
  380. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tools/json/formats.py +0 -0
  381. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tools/json/io.py +0 -0
  382. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tools/json/parsing.py +0 -0
  383. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tools/json/processing.py +0 -0
  384. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tools/json/rendering.py +0 -0
  385. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tools/jsonview/__init__.py +0 -0
  386. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tools/jsonview/__main__.py +0 -0
  387. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tools/jsonview/cli.py +0 -0
  388. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tools/jsonview/resources/__init__.py +0 -0
  389. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tools/jsonview/resources/jsonview.css +0 -0
  390. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tools/jsonview/resources/jsonview.html.j2 +0 -0
  391. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tools/jsonview/resources/jsonview.js +0 -0
  392. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tools/linehisto.py +0 -0
  393. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tools/mkenv.py +0 -0
  394. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tools/notebook.py +0 -0
  395. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tools/pawk/README.md +0 -0
  396. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tools/pawk/__init__.py +0 -0
  397. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tools/pawk/__main__.py +0 -0
  398. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tools/pawk/pawk.py +0 -0
  399. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tools/pip.py +0 -0
  400. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tools/prof.py +0 -0
  401. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tools/qr.py +0 -0
  402. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tools/shadow.py +0 -0
  403. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tools/shell.py +0 -0
  404. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tools/sqlrepl.py +0 -0
  405. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tui/__init__.py +0 -0
  406. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tui/apps/__init__.py +0 -0
  407. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tui/apps/edit/__init__.py +0 -0
  408. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tui/apps/edit/main.py +0 -0
  409. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tui/apps/irc/__init__.py +0 -0
  410. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tui/apps/irc/__main__.py +0 -0
  411. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tui/apps/irc/app.py +0 -0
  412. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tui/apps/irc/client.py +0 -0
  413. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tui/apps/irc/commands.py +0 -0
  414. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tui/apps/irc/main.py +0 -0
  415. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tui/apps/markdown/__init__.py +0 -0
  416. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tui/apps/markdown/__main__.py +0 -0
  417. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tui/apps/markdown/cli.py +0 -0
  418. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tui/rich/__init__.py +0 -0
  419. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tui/rich/console2.py +0 -0
  420. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tui/rich/markdown2.py +0 -0
  421. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tui/textual/__init__.py +0 -0
  422. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tui/textual/app2.py +0 -0
  423. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tui/textual/autocomplete/LICENSE +0 -0
  424. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tui/textual/autocomplete/__init__.py +0 -0
  425. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tui/textual/autocomplete/matching.py +0 -0
  426. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tui/textual/autocomplete/paths.py +0 -0
  427. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tui/textual/autocomplete/widget.py +0 -0
  428. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tui/textual/binding2.py +0 -0
  429. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tui/textual/clipboard.py +0 -0
  430. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tui/textual/debug/__init__.py +0 -0
  431. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tui/textual/debug/dominfo.py +0 -0
  432. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tui/textual/debug/screen.py +0 -0
  433. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tui/textual/devtools.py +0 -0
  434. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tui/textual/drivers2.py +0 -0
  435. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tui/textual/logging2.py +0 -0
  436. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tui/textual/screen2.py +0 -0
  437. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev/tui/textual/types.py +0 -0
  438. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev.egg-info/dependency_links.txt +0 -0
  439. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev.egg-info/entry_points.txt +0 -0
  440. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/omdev.egg-info/top_level.txt +0 -0
  441. {omdev-0.0.0.dev528 → omdev-0.0.0.dev529}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: omdev
3
- Version: 0.0.0.dev528
3
+ Version: 0.0.0.dev529
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.dev528
17
+ Requires-Dist: omlish==0.0.0.dev529
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='4dee5d317d9e0fab5cd65f31a3cc1a496f7adfff'),
41
+ dict(path='../../omlish/lite/check.py', sha1='df0ed561b5782545e34e61dd3424f69f836a87c0'),
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'),
@@ -333,15 +333,17 @@ class Checks:
333
333
 
334
334
  #
335
335
 
336
- def _unpack_isinstance_spec(self, spec: ta.Any) -> tuple:
337
- if isinstance(spec, type):
338
- return (spec,)
336
+ def _unpack_isinstance_spec(self, spec: ta.Any) -> ta.Any:
337
+ if spec == ta.Any:
338
+ return object
339
+ if spec is None:
340
+ return None.__class__
339
341
  if not isinstance(spec, tuple):
340
- spec = (spec,)
342
+ return spec
343
+ if ta.Any in spec:
344
+ return object
341
345
  if None in spec:
342
346
  spec = tuple(filter(None, spec)) + (None.__class__,) # noqa
343
- if ta.Any in spec:
344
- spec = (object,)
345
347
  return spec
346
348
 
347
349
  @ta.overload
@@ -1,7 +1,4 @@
1
1
  """
2
- FIXME:
3
- - zipsafe / resourcey, but still hard refs .versions file in repo root lol
4
-
5
2
  TODO:
6
3
  - per-feature config, obv
7
4
 
@@ -134,9 +131,11 @@ def gen_ops(cfg: Config) -> ta.Sequence[Op]:
134
131
  ops.append(fragment_section(
135
132
  'pyenv',
136
133
  static_env=lambda: {
137
- 'PYENV_VERSIONS': list(read_versions_file_versions(*[
138
- f'PYTHON_{k}' for k in cfg.pyenv_version_keys
139
- ]).values()),
134
+ 'PYENV_VERSIONS': list(read_versions_file_versions(
135
+ 'resources',
136
+ '.python-versions.json',
137
+ cfg.pyenv_version_keys,
138
+ ).values()),
140
139
  },
141
140
  cache_mounts=['/root/.pyenv_cache'],
142
141
  ))
@@ -1,7 +1,11 @@
1
1
  import io
2
+ import json
2
3
  import tomllib
3
4
  import typing as ta
4
5
 
6
+ from omlish import check
7
+ from omlish import lang
8
+
5
9
  from .content import Content
6
10
  from .content import Resource
7
11
  from .content import StaticEnv
@@ -63,21 +67,13 @@ def render_apt_install_dep_sets(*names: str) -> str:
63
67
  ##
64
68
 
65
69
 
66
- def read_versions_file(file_path: str | None = None) -> ta.Mapping[str, str]:
67
- if file_path is None:
68
- file_path = '.versions'
69
- with open(file_path) as f:
70
- s = f.read()
71
-
72
- return {
73
- k.strip(): v.strip()
74
- for l in s.splitlines()
75
- for l in [l.split('#')[0].strip()]
76
- if '=' in l
77
- for k, _, v in [l.partition('=')]
78
- }
79
-
80
-
81
- def read_versions_file_versions(*keys: str, file_path: str | None = None) -> ta.Mapping[str, str]:
82
- dct = read_versions_file(file_path)
70
+ def read_versions_file_versions(
71
+ resource_path: str,
72
+ resource_name: str,
73
+ keys: ta.Sequence[str],
74
+ ) -> ta.Mapping[str, str]:
75
+ check.not_isinstance(keys, str)
76
+ rs = lang.get_relative_resources(resource_path, globals=globals())
77
+ src = rs[resource_name].read_text()
78
+ dct = json.loads(src)
83
79
  return {k: dct[k] for k in keys}
@@ -0,0 +1,15 @@
1
+ {
2
+ "8": "3.8.20",
3
+ "9": "3.9.25",
4
+ "10": "3.10.19",
5
+ "11": "3.11.14",
6
+ "12": "3.12.12",
7
+ "13": "3.13.12",
8
+ "13d": "3.13.12d",
9
+ "13t": "3.13.12t",
10
+ "13dt": "3.13.12dt",
11
+ "14": "3.14.3",
12
+ "14t": "3.14.3t",
13
+ "15": "3.15.0a6",
14
+ "15t": "3.15.0a6t"
15
+ }
@@ -0,0 +1,2 @@
1
+ handle SIGUSR1 nostop noprint
2
+ handle SIGUSR2 nostop noprint
@@ -0,0 +1,7 @@
1
+ setw -g mode-keys vi
2
+ set -g status-keys vi
3
+ set -sg escape-time 0
4
+ set -g status-fg black
5
+ set -g history-limit 50000
6
+ set -g update-environment "DISPLAY"
7
+ set -sg default-terminal "xterm-256color"
@@ -0,0 +1,6 @@
1
+ set number
2
+ syntax on
3
+ filetype indent plugin on
4
+ set tabstop=4
5
+ set shiftwidth=4
6
+ set expandtab
@@ -54,6 +54,7 @@ def build_maven_project(
54
54
  src_file: str,
55
55
  *,
56
56
  deps: ta.Sequence[str] | None = None,
57
+ require_symlink: bool = False,
57
58
  ) -> pg.Project:
58
59
  with open(src_file) as f:
59
60
  src = f.read()
@@ -64,9 +65,13 @@ def build_maven_project(
64
65
 
65
66
  if (pms := list(filter(None, map(PACKAGE_PAT.fullmatch, src.splitlines())))):
66
67
  group_id = pms[0].group(1)
68
+ can_symlink = True
67
69
  else:
70
+ if require_symlink:
71
+ raise ValueError(f'Cannot symlink source file, no package specified.')
68
72
  group_id = DEFAULT_PROJECT_GROUP_ID
69
73
  src = f'package {group_id};\n\n{src}'
74
+ can_symlink = False
70
75
 
71
76
  check.non_empty_str(group_id)
72
77
  group_id_parts = group_id.split('.')
@@ -109,8 +114,12 @@ def build_maven_project(
109
114
  sp_dir = os.path.join(sp_dir, gi_part)
110
115
  os.makedirs(sp_dir)
111
116
 
112
- with open(os.path.join(sp_dir, os.path.basename(src_file)), 'w') as f:
113
- f.write(src)
117
+ sp_src_file = os.path.join(sp_dir, os.path.basename(src_file))
118
+ if can_symlink:
119
+ os.symlink(os.path.abspath(src_file), os.path.abspath(sp_src_file))
120
+ else:
121
+ with open(sp_src_file, 'w') as f:
122
+ f.write(src)
114
123
 
115
124
  with open(os.path.join(root_dir, 'pom.xml'), 'w') as f:
116
125
  f.write(pom_xml)
@@ -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='4dee5d317d9e0fab5cd65f31a3cc1a496f7adfff'),
42
+ dict(path='../../omlish/lite/check.py', sha1='df0ed561b5782545e34e61dd3424f69f836a87c0'),
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'),
@@ -449,15 +449,17 @@ class Checks:
449
449
 
450
450
  #
451
451
 
452
- def _unpack_isinstance_spec(self, spec: ta.Any) -> tuple:
453
- if isinstance(spec, type):
454
- return (spec,)
452
+ def _unpack_isinstance_spec(self, spec: ta.Any) -> ta.Any:
453
+ if spec == ta.Any:
454
+ return object
455
+ if spec is None:
456
+ return None.__class__
455
457
  if not isinstance(spec, tuple):
456
- spec = (spec,)
458
+ return spec
459
+ if ta.Any in spec:
460
+ return object
457
461
  if None in spec:
458
462
  spec = tuple(filter(None, spec)) + (None.__class__,) # noqa
459
- if ta.Any in spec:
460
- spec = (object,)
461
463
  return spec
462
464
 
463
465
  @ta.overload
@@ -24,7 +24,7 @@ class PyprojectConfig:
24
24
  venvs: ta.Mapping[str, VenvConfig] = dc.field(default_factory=dict)
25
25
 
26
26
  venvs_dir: str = '.venvs'
27
- # versions_file: ta.Optional[str] = '.versions' # FIXME:
27
+ # versions_file: ta.Optional[str] = '.python-versions.json' # FIXME:
28
28
 
29
29
 
30
30
  class PyprojectConfigPreparer:
@@ -0,0 +1,23 @@
1
+ # ruff: noqa: UP045
2
+ import dataclasses as dc
3
+ import json
4
+ import os.path
5
+ import typing as ta
6
+
7
+ from omlish.lite.cached import cached_nullary
8
+
9
+
10
+ ##
11
+
12
+
13
+ @dc.dataclass(frozen=True)
14
+ class VersionsFile:
15
+ name: ta.Optional[str] = '.python-versions.json'
16
+
17
+ @cached_nullary
18
+ def pythons(self) -> ta.Mapping[str, str]:
19
+ if not self.name or not os.path.exists(self.name):
20
+ return {}
21
+ with open(self.name) as f:
22
+ s = f.read()
23
+ return json.loads(s)
@@ -100,7 +100,7 @@ def __omlish_amalg__(): # noqa
100
100
  dict(path='../../omlish/lite/abstract.py', sha1='a2fc3f3697fa8de5247761e9d554e70176f37aac'),
101
101
  dict(path='../../omlish/lite/asyncs.py', sha1='b3f2251c56617ce548abf9c333ac996b63edb23e'),
102
102
  dict(path='../../omlish/lite/cached.py', sha1='0c33cf961ac8f0727284303c7a30c5ea98f714f2'),
103
- dict(path='../../omlish/lite/check.py', sha1='4dee5d317d9e0fab5cd65f31a3cc1a496f7adfff'),
103
+ dict(path='../../omlish/lite/check.py', sha1='df0ed561b5782545e34e61dd3424f69f836a87c0'),
104
104
  dict(path='../../omlish/lite/contextmanagers.py', sha1='993f5ed96d3410f739a20363f55670d5e5267fa3'),
105
105
  dict(path='../../omlish/lite/dataclasses.py', sha1='73b7f5e5493c7ed12ff0ce36e37b596e5984cb08'),
106
106
  dict(path='../../omlish/lite/json.py', sha1='57eeddc4d23a17931e00284ffa5cb6e3ce089486'),
@@ -1357,15 +1357,17 @@ class Checks:
1357
1357
 
1358
1358
  #
1359
1359
 
1360
- def _unpack_isinstance_spec(self, spec: ta.Any) -> tuple:
1361
- if isinstance(spec, type):
1362
- return (spec,)
1360
+ def _unpack_isinstance_spec(self, spec: ta.Any) -> ta.Any:
1361
+ if spec == ta.Any:
1362
+ return object
1363
+ if spec is None:
1364
+ return None.__class__
1363
1365
  if not isinstance(spec, tuple):
1364
- spec = (spec,)
1366
+ return spec
1367
+ if ta.Any in spec:
1368
+ return object
1365
1369
  if None in spec:
1366
1370
  spec = tuple(filter(None, spec)) + (None.__class__,) # noqa
1367
- if ta.Any in spec:
1368
- spec = (object,)
1369
1371
  return spec
1370
1372
 
1371
1373
  @ta.overload
@@ -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='4dee5d317d9e0fab5cd65f31a3cc1a496f7adfff'),
59
+ dict(path='../../omlish/lite/check.py', sha1='df0ed561b5782545e34e61dd3424f69f836a87c0'),
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'),
@@ -948,15 +948,17 @@ class Checks:
948
948
 
949
949
  #
950
950
 
951
- def _unpack_isinstance_spec(self, spec: ta.Any) -> tuple:
952
- if isinstance(spec, type):
953
- return (spec,)
951
+ def _unpack_isinstance_spec(self, spec: ta.Any) -> ta.Any:
952
+ if spec == ta.Any:
953
+ return object
954
+ if spec is None:
955
+ return None.__class__
954
956
  if not isinstance(spec, tuple):
955
- spec = (spec,)
957
+ return spec
958
+ if ta.Any in spec:
959
+ return object
956
960
  if None in spec:
957
961
  spec = tuple(filter(None, spec)) + (None.__class__,) # noqa
958
- if ta.Any in spec:
959
- spec = (object,)
960
962
  return spec
961
963
 
962
964
  @ta.overload
@@ -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='4dee5d317d9e0fab5cd65f31a3cc1a496f7adfff'),
35
+ dict(path='check.py', sha1='df0ed561b5782545e34e61dd3424f69f836a87c0'),
36
36
  dict(path='reflect.py', sha1='c4fec44bf144e9d93293c996af06f6c65fc5e63d'),
37
37
  dict(path='maybes.py', sha1='04d2fcbea17028a5e6b8e7a7fb742375495ed233'),
38
38
  dict(path='inject.py', sha1='6f097e3170019a34ff6834d36fcc9cbeed3a7ab4'),
@@ -333,15 +333,17 @@ class Checks:
333
333
 
334
334
  #
335
335
 
336
- def _unpack_isinstance_spec(self, spec: ta.Any) -> tuple:
337
- if isinstance(spec, type):
338
- return (spec,)
336
+ def _unpack_isinstance_spec(self, spec: ta.Any) -> ta.Any:
337
+ if spec == ta.Any:
338
+ return object
339
+ if spec is None:
340
+ return None.__class__
339
341
  if not isinstance(spec, tuple):
340
- spec = (spec,)
342
+ return spec
343
+ if ta.Any in spec:
344
+ return object
341
345
  if None in spec:
342
346
  spec = tuple(filter(None, spec)) + (None.__class__,) # noqa
343
- if ta.Any in spec:
344
- spec = (object,)
345
347
  return spec
346
348
 
347
349
  @ta.overload
@@ -26,7 +26,7 @@ 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='36dfe0ba2bb0a7fdf255a3a2fcfc7a5fe2cce2c3'),
29
+ dict(path='types.py', sha1='8a12dc29f6e483dd8df5336c0d9b58a00b64e7ed'),
30
30
  dict(path='base.py', sha1='67ae88ffabae21210b5452fe49c9a3e01ca164c5'),
31
31
  dict(path='framing.py', sha1='dc2d7f638b042619fd3d95789c71532a29fd5fe4'),
32
32
  dict(path='reading.py', sha1='7631635c46ab4b40bcaeb7c506cf15cb2d529a40'),
@@ -329,7 +329,7 @@ class ByteStreamBufferLike(Abstract):
329
329
  - collectively represent exactly the readable bytes, in order
330
330
  - be 1-D, byte-oriented views (itemsize 1)
331
331
  - be non-copying views of the underlying storage
332
- - be non-empty - lack of data is represented by returning no segments, not a empty segments
332
+ - be non-empty - lack of data is represented by returning no segments, not empty segments
333
333
 
334
334
  Callers must assume that the returned views may be invalidated by subsequent mutations of the originating
335
335
  buffer/view (e.g., advancing, writing, reserving, committing), depending on the implementation's rules.
@@ -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='4dee5d317d9e0fab5cd65f31a3cc1a496f7adfff'),
44
+ dict(path='check.py', sha1='df0ed561b5782545e34e61dd3424f69f836a87c0'),
45
45
  dict(path='objects.py', sha1='9566bbf3530fd71fcc56321485216b592fae21e9'),
46
46
  dict(path='reflect.py', sha1='c4fec44bf144e9d93293c996af06f6c65fc5e63d'),
47
47
  dict(path='strings.py', sha1='89831ecbc34ad80e118a865eceb390ed399dc4d6'),
@@ -334,15 +334,17 @@ class Checks:
334
334
 
335
335
  #
336
336
 
337
- def _unpack_isinstance_spec(self, spec: ta.Any) -> tuple:
338
- if isinstance(spec, type):
339
- return (spec,)
337
+ def _unpack_isinstance_spec(self, spec: ta.Any) -> ta.Any:
338
+ if spec == ta.Any:
339
+ return object
340
+ if spec is None:
341
+ return None.__class__
340
342
  if not isinstance(spec, tuple):
341
- spec = (spec,)
343
+ return spec
344
+ if ta.Any in spec:
345
+ return object
342
346
  if None in spec:
343
347
  spec = tuple(filter(None, spec)) + (None.__class__,) # noqa
344
- if ta.Any in spec:
345
- spec = (object,)
346
348
  return spec
347
349
 
348
350
  @ta.overload
@@ -96,7 +96,7 @@ def __omlish_amalg__(): # noqa
96
96
  dict(path='../../omlish/lite/abstract.py', sha1='a2fc3f3697fa8de5247761e9d554e70176f37aac'),
97
97
  dict(path='../../omlish/lite/asyncs.py', sha1='b3f2251c56617ce548abf9c333ac996b63edb23e'),
98
98
  dict(path='../../omlish/lite/cached.py', sha1='0c33cf961ac8f0727284303c7a30c5ea98f714f2'),
99
- dict(path='../../omlish/lite/check.py', sha1='4dee5d317d9e0fab5cd65f31a3cc1a496f7adfff'),
99
+ dict(path='../../omlish/lite/check.py', sha1='df0ed561b5782545e34e61dd3424f69f836a87c0'),
100
100
  dict(path='../../omlish/lite/json.py', sha1='57eeddc4d23a17931e00284ffa5cb6e3ce089486'),
101
101
  dict(path='../../omlish/lite/objects.py', sha1='9566bbf3530fd71fcc56321485216b592fae21e9'),
102
102
  dict(path='../../omlish/lite/reflect.py', sha1='c4fec44bf144e9d93293c996af06f6c65fc5e63d'),
@@ -109,7 +109,7 @@ def __omlish_amalg__(): # noqa
109
109
  dict(path='../cexts/magic.py', sha1='4e5ce6732454f75c9dd27352959708d8fa7b1666'),
110
110
  dict(path='../magic/find.py', sha1='436228a9cf1d8bab6b9234d09f72913b0960382f'),
111
111
  dict(path='../packaging/specifiers.py', sha1='a56ab4e8c9b174adb523921f6280ac41e0fce749'),
112
- dict(path='versions.py', sha1='99aa1788f4eccb1901f21f2265862716d7580192'),
112
+ dict(path='versions.py', sha1='eb6579b9ea2bcee5f71e1af1e430429112f7fc8d'),
113
113
  dict(path='../../omlish/argparse/cli.py', sha1='f4dc3cd353d14386b5da0306768700e396afd2b3'),
114
114
  dict(path='../../omlish/lite/marshal.py', sha1='96348f5f2a26dc27d842d33cc3927e9da163436b'),
115
115
  dict(path='../../omlish/lite/maybes.py', sha1='04d2fcbea17028a5e6b8e7a7fb742375495ed233'),
@@ -156,7 +156,7 @@ def __omlish_amalg__(): # noqa
156
156
  dict(path='../interp/inject.py', sha1='b039abbadf0b096d2724182af2e0ebda2a230852'),
157
157
  dict(path='../interp/default.py', sha1='a799969a0d3f4b57538587b13ceb08f6334ebc16'),
158
158
  dict(path='../interp/venvs.py', sha1='9ba8f2c3131d7d519d5cf36ca69b75f9c6fe2b27'),
159
- dict(path='configs.py', sha1='28d20c0288eef4a5c61dd9b95071b7b15958b575'),
159
+ dict(path='configs.py', sha1='9e93e810184f9d6c7efd4a149dd5fbc9ad50d611'),
160
160
  dict(path='venvs.py', sha1='9f1935171017aeb802da56e14d7f41d632a7aa25'),
161
161
  dict(path='cli.py', sha1='ecf31ccef6b0e1d1505b46d24faf076b6be32760'),
162
162
  ],
@@ -2562,15 +2562,17 @@ class Checks:
2562
2562
 
2563
2563
  #
2564
2564
 
2565
- def _unpack_isinstance_spec(self, spec: ta.Any) -> tuple:
2566
- if isinstance(spec, type):
2567
- return (spec,)
2565
+ def _unpack_isinstance_spec(self, spec: ta.Any) -> ta.Any:
2566
+ if spec == ta.Any:
2567
+ return object
2568
+ if spec is None:
2569
+ return None.__class__
2568
2570
  if not isinstance(spec, tuple):
2569
- spec = (spec,)
2571
+ return spec
2572
+ if ta.Any in spec:
2573
+ return object
2570
2574
  if None in spec:
2571
2575
  spec = tuple(filter(None, spec)) + (None.__class__,) # noqa
2572
- if ta.Any in spec:
2573
- spec = (object,)
2574
2576
  return spec
2575
2577
 
2576
2578
  @ta.overload
@@ -4408,33 +4410,15 @@ class SpecifierSet(BaseSpecifier):
4408
4410
 
4409
4411
  @dc.dataclass(frozen=True)
4410
4412
  class VersionsFile:
4411
- name: ta.Optional[str] = '.versions'
4412
-
4413
- @staticmethod
4414
- def parse(s: str) -> ta.Mapping[str, str]:
4415
- return {
4416
- k: v
4417
- for l in s.splitlines()
4418
- if (sl := l.split('#')[0].strip())
4419
- for k, _, v in (sl.partition('='),)
4420
- }
4413
+ name: ta.Optional[str] = '.python-versions.json'
4421
4414
 
4422
4415
  @cached_nullary
4423
- def contents(self) -> ta.Mapping[str, str]:
4416
+ def pythons(self) -> ta.Mapping[str, str]:
4424
4417
  if not self.name or not os.path.exists(self.name):
4425
4418
  return {}
4426
4419
  with open(self.name) as f:
4427
4420
  s = f.read()
4428
- return self.parse(s)
4429
-
4430
- @staticmethod
4431
- def get_pythons(d: ta.Mapping[str, str]) -> ta.Mapping[str, str]:
4432
- pfx = 'PYTHON_'
4433
- return {k[len(pfx):].lower(): v for k, v in d.items() if k.startswith(pfx)}
4434
-
4435
- @cached_nullary
4436
- def pythons(self) -> ta.Mapping[str, str]:
4437
- return self.get_pythons(self.contents())
4421
+ return json.loads(s)
4438
4422
 
4439
4423
 
4440
4424
  ########################################
@@ -12749,7 +12733,7 @@ class PyprojectConfig:
12749
12733
  venvs: ta.Mapping[str, VenvConfig] = dc.field(default_factory=dict)
12750
12734
 
12751
12735
  venvs_dir: str = '.venvs'
12752
- # versions_file: ta.Optional[str] = '.versions' # FIXME:
12736
+ # versions_file: ta.Optional[str] = '.python-versions.json' # FIXME:
12753
12737
 
12754
12738
 
12755
12739
  class PyprojectConfigPreparer:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: omdev
3
- Version: 0.0.0.dev528
3
+ Version: 0.0.0.dev529
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.dev528
17
+ Requires-Dist: omlish==0.0.0.dev529
18
18
  Provides-Extra: all
19
19
  Requires-Dist: black~=26.1; extra == "all"
20
20
  Requires-Dist: pycparser~=3.0; extra == "all"
@@ -163,8 +163,14 @@ omdev/dockerdev/gen.py
163
163
  omdev/dockerdev/helpers.py
164
164
  omdev/dockerdev/ops.py
165
165
  omdev/dockerdev/rendering.py
166
+ omdev/dockerdev/resources/.pkgdata
167
+ omdev/dockerdev/resources/.python-versions.json
166
168
  omdev/dockerdev/resources/__init__.py
167
169
  omdev/dockerdev/resources/xu
170
+ omdev/dockerdev/resources/configs/.gdbinit
171
+ omdev/dockerdev/resources/configs/.pkgdata
172
+ omdev/dockerdev/resources/configs/.tmux.conf
173
+ omdev/dockerdev/resources/configs/.vimrc
168
174
  omdev/dockerdev/resources/configs/__init__.py
169
175
  omdev/dockerdev/resources/depsets/__init__.py
170
176
  omdev/dockerdev/resources/depsets/python.toml
@@ -1,4 +1,4 @@
1
- omlish==0.0.0.dev528
1
+ omlish==0.0.0.dev529
2
2
 
3
3
  [all]
4
4
  black~=26.1
@@ -13,7 +13,7 @@ urls = {source = 'https://github.com/wrmsr/omlish'}
13
13
  license = 'BSD-3-Clause'
14
14
  readme = 'README.md'
15
15
  requires-python = '>=3.13'
16
- version = '0.0.0.dev528'
16
+ version = '0.0.0.dev529'
17
17
  classifiers = [
18
18
  'Development Status :: 2 - Pre-Alpha',
19
19
  'Intended Audience :: Developers',
@@ -24,7 +24,7 @@ classifiers = [
24
24
  ]
25
25
  description = 'omdev'
26
26
  dependencies = [
27
- 'omlish == 0.0.0.dev528',
27
+ 'omlish == 0.0.0.dev529',
28
28
  ]
29
29
 
30
30
  [project.optional-dependencies]
@@ -106,7 +106,9 @@ exclude = [
106
106
  'cc/cdeps.toml',
107
107
  'dockerdev/config.toml',
108
108
  'dockerdev/resources/*',
109
+ 'dockerdev/resources/.*',
109
110
  'dockerdev/resources/configs/*',
111
+ 'dockerdev/resources/configs/.*',
110
112
  'dockerdev/resources/depsets/*',
111
113
  'dockerdev/resources/fragments/*',
112
114
  'pyproject/resources/*.sh',
@@ -1,40 +0,0 @@
1
- # ruff: noqa: UP045
2
- import dataclasses as dc
3
- import os.path
4
- import typing as ta
5
-
6
- from omlish.lite.cached import cached_nullary
7
-
8
-
9
- ##
10
-
11
-
12
- @dc.dataclass(frozen=True)
13
- class VersionsFile:
14
- name: ta.Optional[str] = '.versions'
15
-
16
- @staticmethod
17
- def parse(s: str) -> ta.Mapping[str, str]:
18
- return {
19
- k: v
20
- for l in s.splitlines()
21
- if (sl := l.split('#')[0].strip())
22
- for k, _, v in (sl.partition('='),)
23
- }
24
-
25
- @cached_nullary
26
- def contents(self) -> ta.Mapping[str, str]:
27
- if not self.name or not os.path.exists(self.name):
28
- return {}
29
- with open(self.name) as f:
30
- s = f.read()
31
- return self.parse(s)
32
-
33
- @staticmethod
34
- def get_pythons(d: ta.Mapping[str, str]) -> ta.Mapping[str, str]:
35
- pfx = 'PYTHON_'
36
- return {k[len(pfx):].lower(): v for k, v in d.items() if k.startswith(pfx)}
37
-
38
- @cached_nullary
39
- def pythons(self) -> ta.Mapping[str, str]:
40
- return self.get_pythons(self.contents())
File without changes
File without changes
File without changes