omdev 0.0.0.dev527__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.dev527/omdev.egg-info → omdev-0.0.0.dev529}/PKG-INFO +2 -2
  2. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/amalg/cli/main.py +1 -0
  3. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/amalg/gen/typing.py +1 -0
  4. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cc/cli.py +3 -0
  5. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/dataclasses/_dumping.py +43 -41
  6. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/dockerdev/gen.py +5 -6
  7. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/dockerdev/helpers.py +13 -17
  8. omdev-0.0.0.dev529/omdev/dockerdev/resources/.pkgdata +2 -0
  9. omdev-0.0.0.dev529/omdev/dockerdev/resources/.python-versions.json +15 -0
  10. omdev-0.0.0.dev529/omdev/dockerdev/resources/configs/.gdbinit +2 -0
  11. omdev-0.0.0.dev529/omdev/dockerdev/resources/configs/.pkgdata +2 -0
  12. omdev-0.0.0.dev529/omdev/dockerdev/resources/configs/.tmux.conf +7 -0
  13. omdev-0.0.0.dev529/omdev/dockerdev/resources/configs/.vimrc +6 -0
  14. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/java/cli.py +11 -2
  15. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/manifests/_dumping.py +43 -41
  16. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/pyproject/configs.py +1 -1
  17. omdev-0.0.0.dev529/omdev/pyproject/versions.py +23 -0
  18. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/scripts/ci.py +43 -41
  19. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/scripts/interp.py +43 -41
  20. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/scripts/lib/inject.py +43 -41
  21. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/scripts/lib/io/streams.py +2 -2
  22. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/scripts/lib/marshal.py +43 -41
  23. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/scripts/pyproject.py +49 -65
  24. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529/omdev.egg-info}/PKG-INFO +2 -2
  25. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev.egg-info/SOURCES.txt +6 -0
  26. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev.egg-info/requires.txt +1 -1
  27. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/pyproject.toml +4 -2
  28. omdev-0.0.0.dev527/omdev/pyproject/versions.py +0 -40
  29. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/LICENSE +0 -0
  30. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/MANIFEST.in +0 -0
  31. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/README.md +0 -0
  32. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/.omlish-manifests.json +0 -0
  33. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/README.md +0 -0
  34. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/__about__.py +0 -0
  35. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/__init__.py +0 -0
  36. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/amalg/__init__.py +0 -0
  37. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/amalg/__main__.py +0 -0
  38. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/amalg/cli/__init__.py +0 -0
  39. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/amalg/gen/__init__.py +0 -0
  40. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/amalg/gen/gen.py +0 -0
  41. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/amalg/gen/imports.py +0 -0
  42. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/amalg/gen/manifests.py +0 -0
  43. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/amalg/gen/resources.py +0 -0
  44. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/amalg/gen/srcfiles.py +0 -0
  45. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/amalg/gen/strip.py +0 -0
  46. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/amalg/gen/types.py +0 -0
  47. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/amalg/info.py +0 -0
  48. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/amalg/sources.py +0 -0
  49. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cache/__init__.py +0 -0
  50. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cache/compute/__init__.py +0 -0
  51. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cache/compute/cache.py +0 -0
  52. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cache/compute/contexts.py +0 -0
  53. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cache/compute/currents.py +0 -0
  54. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cache/compute/fns.py +0 -0
  55. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cache/compute/resolvers.py +0 -0
  56. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cache/compute/storage.py +0 -0
  57. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cache/compute/types.py +0 -0
  58. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cache/data/__init__.py +0 -0
  59. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cache/data/actions.py +0 -0
  60. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cache/data/cache.py +0 -0
  61. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cache/data/consts.py +0 -0
  62. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cache/data/defaults.py +0 -0
  63. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cache/data/manifests.py +0 -0
  64. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cache/data/specs.py +0 -0
  65. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/capi/__init__.py +0 -0
  66. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/capi/darwin/__init__.py +0 -0
  67. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/capi/darwin/aps.py +0 -0
  68. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/capi/darwin/ax.py +0 -0
  69. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/capi/darwin/cf.py +0 -0
  70. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/capi/darwin/cg.py +0 -0
  71. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/capi/linux/__init__.py +0 -0
  72. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/capi/linux/x11.py +0 -0
  73. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cc/__init__.py +0 -0
  74. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cc/__main__.py +0 -0
  75. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cc/cdeps.py +0 -0
  76. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cc/cdeps.toml +0 -0
  77. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cc/srclangs.py +0 -0
  78. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cexts/__init__.py +0 -0
  79. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cexts/_boilerplate.cc +0 -0
  80. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cexts/_distutils/LICENSE +0 -0
  81. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cexts/_distutils/__init__.py +0 -0
  82. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cexts/_distutils/build_ext.py +0 -0
  83. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cexts/_distutils/compilers/__init__.py +0 -0
  84. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cexts/_distutils/compilers/ccompiler.py +0 -0
  85. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cexts/_distutils/compilers/options.py +0 -0
  86. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cexts/_distutils/compilers/unixccompiler.py +0 -0
  87. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cexts/_distutils/dir_util.py +0 -0
  88. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cexts/_distutils/errors.py +0 -0
  89. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cexts/_distutils/extension.py +0 -0
  90. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cexts/_distutils/file_util.py +0 -0
  91. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cexts/_distutils/modified.py +0 -0
  92. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cexts/_distutils/spawn.py +0 -0
  93. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cexts/_distutils/sysconfig.py +0 -0
  94. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cexts/_distutils/util.py +0 -0
  95. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cexts/_distutils/version.py +0 -0
  96. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cexts/build.py +0 -0
  97. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cexts/cmake.py +0 -0
  98. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cexts/importhook.py +0 -0
  99. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cexts/magic.py +0 -0
  100. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cexts/scan.py +0 -0
  101. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/ci/__init__.py +0 -0
  102. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/ci/__main__.py +0 -0
  103. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/ci/cache.py +0 -0
  104. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/ci/ci.py +0 -0
  105. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/ci/cli.py +0 -0
  106. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/ci/compose.py +0 -0
  107. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/ci/consts.py +0 -0
  108. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/ci/docker/__init__.py +0 -0
  109. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/ci/docker/buildcaching.py +0 -0
  110. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/ci/docker/cache.py +0 -0
  111. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/ci/docker/cacheserved/__init__.py +0 -0
  112. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/ci/docker/cacheserved/cache.py +0 -0
  113. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/ci/docker/cacheserved/manifests.py +0 -0
  114. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/ci/docker/cmds.py +0 -0
  115. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/ci/docker/dataserver.py +0 -0
  116. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/ci/docker/imagepulling.py +0 -0
  117. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/ci/docker/inject.py +0 -0
  118. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/ci/docker/packing.py +0 -0
  119. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/ci/docker/repositories.py +0 -0
  120. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/ci/docker/utils.py +0 -0
  121. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/ci/github/__init__.py +0 -0
  122. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/ci/github/api/__init__.py +0 -0
  123. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/ci/github/api/clients.py +0 -0
  124. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/ci/github/api/v1/__init__.py +0 -0
  125. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/ci/github/api/v1/api.py +0 -0
  126. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/ci/github/api/v1/client.py +0 -0
  127. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/ci/github/api/v2/__init__.py +0 -0
  128. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/ci/github/api/v2/api.py +0 -0
  129. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/ci/github/api/v2/azure.py +0 -0
  130. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/ci/github/api/v2/client.py +0 -0
  131. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/ci/github/bootstrap.py +0 -0
  132. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/ci/github/cache.py +0 -0
  133. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/ci/github/cli.py +0 -0
  134. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/ci/github/env.py +0 -0
  135. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/ci/github/inject.py +0 -0
  136. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/ci/inject.py +0 -0
  137. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/ci/requirements.py +0 -0
  138. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/ci/shell.py +0 -0
  139. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/ci/utils.py +0 -0
  140. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cli/__init__.py +0 -0
  141. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cli/__main__.py +0 -0
  142. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cli/_pathhack.py +0 -0
  143. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cli/clicli.py +0 -0
  144. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cli/install.py +0 -0
  145. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cli/main.py +0 -0
  146. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cli/managers.py +0 -0
  147. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cli/types.py +0 -0
  148. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/clipboard/__init__.py +0 -0
  149. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/clipboard/capi/__init__.py +0 -0
  150. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/clipboard/capi/darwin_cf.py +0 -0
  151. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/clipboard/capi/linux_x11.py +0 -0
  152. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/clipboard/commands.py +0 -0
  153. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/clipboard/platform.py +0 -0
  154. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/clipboard/types.py +0 -0
  155. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cmake.py +0 -0
  156. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cmdlog/__init__.py +0 -0
  157. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cmdlog/__main__.py +0 -0
  158. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cmdlog/_cmdlog.py +0 -0
  159. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cmdlog/cli.py +0 -0
  160. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/cmdlog/cmdlog.py +0 -0
  161. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/dataclasses/__init__.py +0 -0
  162. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/dataclasses/__main__.py +0 -0
  163. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/dataclasses/_template.py +0 -0
  164. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/dataclasses/cli.py +0 -0
  165. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/dataclasses/codegen.py +0 -0
  166. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/dataclasses/dumping.py +0 -0
  167. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/dataserver/__init__.py +0 -0
  168. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/dataserver/handlers.py +0 -0
  169. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/dataserver/http.py +0 -0
  170. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/dataserver/routes.py +0 -0
  171. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/dataserver/server.py +0 -0
  172. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/dataserver/targets.py +0 -0
  173. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/dockerdev/__init__.py +0 -0
  174. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/dockerdev/config.toml +0 -0
  175. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/dockerdev/content.py +0 -0
  176. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/dockerdev/ops.py +0 -0
  177. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/dockerdev/rendering.py +0 -0
  178. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/dockerdev/resources/__init__.py +0 -0
  179. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/dockerdev/resources/configs/__init__.py +0 -0
  180. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/dockerdev/resources/depsets/__init__.py +0 -0
  181. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/dockerdev/resources/depsets/python.toml +0 -0
  182. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/dockerdev/resources/depsets/system.toml +0 -0
  183. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/dockerdev/resources/depsets/x11.toml +0 -0
  184. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/dockerdev/resources/fragments/__init__.py +0 -0
  185. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/dockerdev/resources/fragments/apt.sh +0 -0
  186. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/dockerdev/resources/fragments/docker.sh +0 -0
  187. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/dockerdev/resources/fragments/firefox.sh +0 -0
  188. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/dockerdev/resources/fragments/go.sh +0 -0
  189. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/dockerdev/resources/fragments/jdk.sh +0 -0
  190. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/dockerdev/resources/fragments/nvm.sh +0 -0
  191. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/dockerdev/resources/fragments/pyenv.sh +0 -0
  192. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/dockerdev/resources/fragments/rust.sh +0 -0
  193. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/dockerdev/resources/fragments/sshd.sh +0 -0
  194. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/dockerdev/resources/fragments/vcpkg.sh +0 -0
  195. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/dockerdev/resources/fragments/zig.sh +0 -0
  196. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/dockerdev/resources/xu +0 -0
  197. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/git/__init__.py +0 -0
  198. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/git/magic.py +0 -0
  199. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/git/revisions.py +0 -0
  200. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/git/shallow.py +0 -0
  201. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/git/status.py +0 -0
  202. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/home/__init__.py +0 -0
  203. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/home/paths.py +0 -0
  204. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/home/secrets.py +0 -0
  205. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/home/shadow.py +0 -0
  206. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/imgur.py +0 -0
  207. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/intellij/__init__.py +0 -0
  208. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/intellij/cli.py +0 -0
  209. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/intellij/ides.py +0 -0
  210. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/intellij/open.py +0 -0
  211. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/interp/__init__.py +0 -0
  212. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/interp/__main__.py +0 -0
  213. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/interp/cli.py +0 -0
  214. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/interp/default.py +0 -0
  215. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/interp/inject.py +0 -0
  216. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/interp/inspect.py +0 -0
  217. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/interp/providers/__init__.py +0 -0
  218. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/interp/providers/base.py +0 -0
  219. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/interp/providers/inject.py +0 -0
  220. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/interp/providers/running.py +0 -0
  221. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/interp/providers/standalone.py +0 -0
  222. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/interp/providers/system.py +0 -0
  223. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/interp/pyenv/__init__.py +0 -0
  224. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/interp/pyenv/inject.py +0 -0
  225. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/interp/pyenv/install.py +0 -0
  226. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/interp/pyenv/provider.py +0 -0
  227. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/interp/pyenv/pyenv.py +0 -0
  228. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/interp/resolvers.py +0 -0
  229. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/interp/types.py +0 -0
  230. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/interp/uv/__init__.py +0 -0
  231. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/interp/uv/inject.py +0 -0
  232. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/interp/uv/provider.py +0 -0
  233. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/interp/uv/uv.py +0 -0
  234. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/interp/venvs.py +0 -0
  235. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/irc/__init__.py +0 -0
  236. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/irc/messages/__init__.py +0 -0
  237. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/irc/messages/base.py +0 -0
  238. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/irc/messages/formats.py +0 -0
  239. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/irc/messages/messages.py +0 -0
  240. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/irc/messages/parsing.py +0 -0
  241. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/irc/numerics/__init__.py +0 -0
  242. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/irc/numerics/formats.py +0 -0
  243. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/irc/numerics/numerics.py +0 -0
  244. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/irc/numerics/types.py +0 -0
  245. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/irc/protocol/LICENSE +0 -0
  246. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/irc/protocol/__init__.py +0 -0
  247. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/irc/protocol/consts.py +0 -0
  248. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/irc/protocol/errors.py +0 -0
  249. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/irc/protocol/message.py +0 -0
  250. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/irc/protocol/nuh.py +0 -0
  251. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/irc/protocol/parsing.py +0 -0
  252. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/irc/protocol/rendering.py +0 -0
  253. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/irc/protocol/tags.py +0 -0
  254. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/irc/protocol/utils.py +0 -0
  255. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/java/__init__.py +0 -0
  256. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/java/__main__.py +0 -0
  257. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/java/pomgen.py +0 -0
  258. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/java/xml.py +0 -0
  259. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/magic/__init__.py +0 -0
  260. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/magic/__main__.py +0 -0
  261. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/magic/cli.py +0 -0
  262. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/magic/find.py +0 -0
  263. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/magic/magic.py +0 -0
  264. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/magic/prepare.py +0 -0
  265. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/magic/styles.py +0 -0
  266. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/manifests/__init__.py +0 -0
  267. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/manifests/__main__.py +0 -0
  268. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/manifests/building.py +0 -0
  269. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/manifests/dumping.py +0 -0
  270. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/manifests/main.py +0 -0
  271. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/markdown/__init__.py +0 -0
  272. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/markdown/incparse.py +0 -0
  273. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/markdown/tokens.py +0 -0
  274. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/mypy/__init__.py +0 -0
  275. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/mypy/debug.py +0 -0
  276. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/mypy/report.py +0 -0
  277. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/oci/__init__.py +0 -0
  278. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/oci/building.py +0 -0
  279. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/oci/compression.py +0 -0
  280. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/oci/data.py +0 -0
  281. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/oci/datarefs.py +0 -0
  282. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/oci/dataserver.py +0 -0
  283. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/oci/loading.py +0 -0
  284. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/oci/media.py +0 -0
  285. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/oci/pack/__init__.py +0 -0
  286. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/oci/pack/packing.py +0 -0
  287. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/oci/pack/repositories.py +0 -0
  288. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/oci/pack/unpacking.py +0 -0
  289. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/oci/repositories.py +0 -0
  290. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/oci/tars.py +0 -0
  291. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/packaging/__init__.py +0 -0
  292. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/packaging/marshal.py +0 -0
  293. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/packaging/names.py +0 -0
  294. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/packaging/requires.py +0 -0
  295. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/packaging/revisions.py +0 -0
  296. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/packaging/specifiers.py +0 -0
  297. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/packaging/versions.py +0 -0
  298. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/packaging/wheelfile.py +0 -0
  299. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/pip.py +0 -0
  300. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/precheck/__init__.py +0 -0
  301. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/precheck/__main__.py +0 -0
  302. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/precheck/base.py +0 -0
  303. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/precheck/blanklines.py +0 -0
  304. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/precheck/caches.py +0 -0
  305. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/precheck/git.py +0 -0
  306. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/precheck/imports.py +0 -0
  307. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/precheck/lite.py +0 -0
  308. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/precheck/main.py +0 -0
  309. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/precheck/manifests.py +0 -0
  310. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/precheck/scripts.py +0 -0
  311. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/precheck/unicode.py +0 -0
  312. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/py/__init__.py +0 -0
  313. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/py/asts/__init__.py +0 -0
  314. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/py/asts/parents.py +0 -0
  315. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/py/asts/toplevel.py +0 -0
  316. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/py/asts/visitors.py +0 -0
  317. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/py/attrdocs.py +0 -0
  318. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/py/bracepy.py +0 -0
  319. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/py/classdot.py +0 -0
  320. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/py/docstrings/LICENSE +0 -0
  321. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/py/docstrings/__init__.py +0 -0
  322. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/py/docstrings/attrdoc.py +0 -0
  323. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/py/docstrings/common.py +0 -0
  324. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/py/docstrings/epydoc.py +0 -0
  325. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/py/docstrings/google.py +0 -0
  326. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/py/docstrings/numpydoc.py +0 -0
  327. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/py/docstrings/parser.py +0 -0
  328. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/py/docstrings/rest.py +0 -0
  329. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/py/findimports.py +0 -0
  330. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/py/reprs.py +0 -0
  331. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/py/scripts/__init__.py +0 -0
  332. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/py/scripts/bumpversion.py +0 -0
  333. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/py/scripts/execstat.py +0 -0
  334. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/py/scripts/importtrace.py +0 -0
  335. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/py/srcheaders.py +0 -0
  336. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/py/tokens/__init__.py +0 -0
  337. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/py/tokens/all.py +0 -0
  338. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/py/tokens/tokenizert.py +0 -0
  339. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/py/tokens/utils.py +0 -0
  340. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/py/tools/__init__.py +0 -0
  341. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/py/tools/importscan.py +0 -0
  342. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/py/tools/mkrelimp.py +0 -0
  343. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/py/tools/pipdepup.py +0 -0
  344. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/pyproject/__init__.py +0 -0
  345. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/pyproject/__main__.py +0 -0
  346. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/pyproject/cli.py +0 -0
  347. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/pyproject/inject.py +0 -0
  348. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/pyproject/pkg.py +0 -0
  349. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/pyproject/reqs.py +0 -0
  350. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/pyproject/resources/__init__.py +0 -0
  351. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/pyproject/resources/docker-dev.sh +0 -0
  352. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/pyproject/resources/python.sh +0 -0
  353. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/pyproject/tools/__init__.py +0 -0
  354. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/pyproject/tools/aboutdeps.py +0 -0
  355. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/pyproject/tools/buildrs.py +0 -0
  356. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/pyproject/tools/pyversions.py +0 -0
  357. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/pyproject/venvs.py +0 -0
  358. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/rs/__init__.py +0 -0
  359. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/scripts/__init__.py +0 -0
  360. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/scripts/lib/__init__.py +0 -0
  361. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/scripts/lib/io/__init__.py +0 -0
  362. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/scripts/lib/logs.py +0 -0
  363. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/scripts/slowcat.py +0 -0
  364. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/scripts/tmpexec.py +0 -0
  365. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tagstrings.py +0 -0
  366. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tools/__init__.py +0 -0
  367. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tools/cloc.py +0 -0
  368. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tools/diff.py +0 -0
  369. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tools/doc.py +0 -0
  370. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tools/docker.py +0 -0
  371. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tools/git/__init__.py +0 -0
  372. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tools/git/__main__.py +0 -0
  373. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tools/git/cli.py +0 -0
  374. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tools/git/cloning.py +0 -0
  375. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tools/git/consts.py +0 -0
  376. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tools/git/messages.py +0 -0
  377. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tools/json/__init__.py +0 -0
  378. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tools/json/__main__.py +0 -0
  379. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tools/json/cli.py +0 -0
  380. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tools/json/formats.py +0 -0
  381. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tools/json/io.py +0 -0
  382. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tools/json/parsing.py +0 -0
  383. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tools/json/processing.py +0 -0
  384. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tools/json/rendering.py +0 -0
  385. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tools/jsonview/__init__.py +0 -0
  386. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tools/jsonview/__main__.py +0 -0
  387. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tools/jsonview/cli.py +0 -0
  388. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tools/jsonview/resources/__init__.py +0 -0
  389. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tools/jsonview/resources/jsonview.css +0 -0
  390. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tools/jsonview/resources/jsonview.html.j2 +0 -0
  391. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tools/jsonview/resources/jsonview.js +0 -0
  392. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tools/linehisto.py +0 -0
  393. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tools/mkenv.py +0 -0
  394. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tools/notebook.py +0 -0
  395. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tools/pawk/README.md +0 -0
  396. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tools/pawk/__init__.py +0 -0
  397. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tools/pawk/__main__.py +0 -0
  398. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tools/pawk/pawk.py +0 -0
  399. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tools/pip.py +0 -0
  400. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tools/prof.py +0 -0
  401. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tools/qr.py +0 -0
  402. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tools/shadow.py +0 -0
  403. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tools/shell.py +0 -0
  404. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tools/sqlrepl.py +0 -0
  405. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tui/__init__.py +0 -0
  406. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tui/apps/__init__.py +0 -0
  407. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tui/apps/edit/__init__.py +0 -0
  408. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tui/apps/edit/main.py +0 -0
  409. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tui/apps/irc/__init__.py +0 -0
  410. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tui/apps/irc/__main__.py +0 -0
  411. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tui/apps/irc/app.py +0 -0
  412. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tui/apps/irc/client.py +0 -0
  413. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tui/apps/irc/commands.py +0 -0
  414. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tui/apps/irc/main.py +0 -0
  415. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tui/apps/markdown/__init__.py +0 -0
  416. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tui/apps/markdown/__main__.py +0 -0
  417. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tui/apps/markdown/cli.py +0 -0
  418. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tui/rich/__init__.py +0 -0
  419. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tui/rich/console2.py +0 -0
  420. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tui/rich/markdown2.py +0 -0
  421. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tui/textual/__init__.py +0 -0
  422. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tui/textual/app2.py +0 -0
  423. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tui/textual/autocomplete/LICENSE +0 -0
  424. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tui/textual/autocomplete/__init__.py +0 -0
  425. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tui/textual/autocomplete/matching.py +0 -0
  426. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tui/textual/autocomplete/paths.py +0 -0
  427. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tui/textual/autocomplete/widget.py +0 -0
  428. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tui/textual/binding2.py +0 -0
  429. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tui/textual/clipboard.py +0 -0
  430. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tui/textual/debug/__init__.py +0 -0
  431. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tui/textual/debug/dominfo.py +0 -0
  432. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tui/textual/debug/screen.py +0 -0
  433. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tui/textual/devtools.py +0 -0
  434. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tui/textual/drivers2.py +0 -0
  435. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tui/textual/logging2.py +0 -0
  436. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tui/textual/screen2.py +0 -0
  437. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev/tui/textual/types.py +0 -0
  438. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev.egg-info/dependency_links.txt +0 -0
  439. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev.egg-info/entry_points.txt +0 -0
  440. {omdev-0.0.0.dev527 → omdev-0.0.0.dev529}/omdev.egg-info/top_level.txt +0 -0
  441. {omdev-0.0.0.dev527 → 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.dev527
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.dev527
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"
@@ -11,6 +11,7 @@ TODO:
11
11
  - more sanity checks lol
12
12
  - typealias - support # noqa, other comments, and lamely support multiline by just stealing lines till it parses
13
13
  - remove `if __name__ == '__main__':` blocks - thus, convention: no def _main() for these
14
+ - pyz! zipimport -> single `__main__.py` file + shebang
14
15
 
15
16
  See:
16
17
  - https://github.com/xonsh/amalgamate - mine is for portability not speed, and doesn't try to work on unmodified code
@@ -30,6 +30,7 @@ def _is_typing(
30
30
  exclude_newtypes: bool = False,
31
31
  ) -> bool:
32
32
  es = tks.join_toks(lts).strip()
33
+ # FIXME: doesn't handle lines ending with `noqa` comments lol
33
34
  if es.endswith(NO_MOVE_COMMENT):
34
35
  return False
35
36
  if any(es.endswith(sfx) for sfx in (TYPE_ALIAS_COMMENT, NOQA_TYPE_ALIAS_COMMENT)):
@@ -24,6 +24,9 @@ TODO:
24
24
  - cc ij, based off of cmake
25
25
  - fix CFLAGS/CCFLAGS/CPPFLAGS/CXXFLAGS
26
26
  - jit-gen cmake mode? multi-src builds
27
+ - alt exec modes (* share / dedupe with java cli *):
28
+ - fork/exec, just leave temp dir
29
+ - fork, set pr_deathsig, exec, forward signals
27
30
  """
28
31
  import os
29
32
  import shlex
@@ -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='0ce40cc68bd1b18604293a0b4924efabb6033766'),
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,23 +333,25 @@ 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
348
- def isinstance(self, v: ta.Any, spec: ta.Type[T], msg: CheckMessage = None) -> T:
350
+ def isinstance(self, v: ta.Any, spec: ta.Type[T], msg: CheckMessage = None, /) -> T:
349
351
  ...
350
352
 
351
353
  @ta.overload
352
- def isinstance(self, v: ta.Any, spec: ta.Any, msg: CheckMessage = None) -> ta.Any:
354
+ def isinstance(self, v: ta.Any, spec: ta.Any, msg: CheckMessage = None, /) -> ta.Any:
353
355
  ...
354
356
 
355
357
  def isinstance(self, v, spec, msg=None):
@@ -365,14 +367,14 @@ class Checks:
365
367
  return v
366
368
 
367
369
  @ta.overload
368
- def of_isinstance(self, spec: ta.Type[T], msg: CheckMessage = None) -> ta.Callable[[ta.Any], T]:
370
+ def of_isinstance(self, spec: ta.Type[T], msg: CheckMessage = None, /) -> ta.Callable[[ta.Any], T]:
369
371
  ...
370
372
 
371
373
  @ta.overload
372
- def of_isinstance(self, spec: ta.Any, msg: CheckMessage = None) -> ta.Callable[[ta.Any], ta.Any]:
374
+ def of_isinstance(self, spec: ta.Any, msg: CheckMessage = None, /) -> ta.Callable[[ta.Any], ta.Any]:
373
375
  ...
374
376
 
375
- def of_isinstance(self, spec, msg=None):
377
+ def of_isinstance(self, spec, msg=None, /):
376
378
  spec = self._unpack_isinstance_spec(spec)
377
379
 
378
380
  def inner(v):
@@ -380,7 +382,7 @@ class Checks:
380
382
 
381
383
  return inner
382
384
 
383
- def cast(self, v: ta.Any, cls: ta.Type[T], msg: CheckMessage = None) -> T:
385
+ def cast(self, v: ta.Any, cls: ta.Type[T], msg: CheckMessage = None, /) -> T:
384
386
  if not isinstance(v, cls):
385
387
  self._raise(
386
388
  TypeError,
@@ -391,13 +393,13 @@ class Checks:
391
393
 
392
394
  return v
393
395
 
394
- def of_cast(self, cls: ta.Type[T], msg: CheckMessage = None) -> ta.Callable[[T], T]:
396
+ def of_cast(self, cls: ta.Type[T], msg: CheckMessage = None, /) -> ta.Callable[[T], T]:
395
397
  def inner(v):
396
398
  return self.cast(v, cls, msg)
397
399
 
398
400
  return inner
399
401
 
400
- def not_isinstance(self, v: T, spec: ta.Any, msg: CheckMessage = None) -> T: # noqa
402
+ def not_isinstance(self, v: T, spec: ta.Any, msg: CheckMessage = None, /) -> T: # noqa
401
403
  if isinstance(v, self._unpack_isinstance_spec(spec)):
402
404
  self._raise(
403
405
  TypeError,
@@ -409,7 +411,7 @@ class Checks:
409
411
 
410
412
  return v
411
413
 
412
- def of_not_isinstance(self, spec: ta.Any, msg: CheckMessage = None) -> ta.Callable[[T], T]:
414
+ def of_not_isinstance(self, spec: ta.Any, msg: CheckMessage = None, /) -> ta.Callable[[T], T]:
413
415
  spec = self._unpack_isinstance_spec(spec)
414
416
 
415
417
  def inner(v):
@@ -419,7 +421,7 @@ class Checks:
419
421
 
420
422
  ##
421
423
 
422
- def issubclass(self, v: ta.Type[T], spec: ta.Any, msg: CheckMessage = None) -> ta.Type[T]: # noqa
424
+ def issubclass(self, v: ta.Type[T], spec: ta.Any, msg: CheckMessage = None, /) -> ta.Type[T]: # noqa
423
425
  if not issubclass(v, spec):
424
426
  self._raise(
425
427
  TypeError,
@@ -431,7 +433,7 @@ class Checks:
431
433
 
432
434
  return v
433
435
 
434
- def not_issubclass(self, v: ta.Type[T], spec: ta.Any, msg: CheckMessage = None) -> ta.Type[T]:
436
+ def not_issubclass(self, v: ta.Type[T], spec: ta.Any, msg: CheckMessage = None, /) -> ta.Type[T]:
435
437
  if issubclass(v, spec):
436
438
  self._raise(
437
439
  TypeError,
@@ -443,7 +445,7 @@ class Checks:
443
445
 
444
446
  return v
445
447
 
446
- def not_issubclass_except_nameerror(self, v: ta.Type[T], spec: ta.Callable[[], type], msg: CheckMessage = None) -> ta.Type[T]: # noqa
448
+ def not_issubclass_except_nameerror(self, v: ta.Type[T], spec: ta.Callable[[], type], msg: CheckMessage = None, /) -> ta.Type[T]: # noqa
447
449
  try:
448
450
  c = spec()
449
451
  except NameError:
@@ -462,7 +464,7 @@ class Checks:
462
464
 
463
465
  #
464
466
 
465
- def in_(self, v: T, c: ta.Container[T], msg: CheckMessage = None) -> T:
467
+ def in_(self, v: T, c: ta.Container[T], msg: CheckMessage = None, /) -> T:
466
468
  if v not in c:
467
469
  self._raise(
468
470
  ValueError,
@@ -474,7 +476,7 @@ class Checks:
474
476
 
475
477
  return v
476
478
 
477
- def not_in(self, v: T, c: ta.Container[T], msg: CheckMessage = None) -> T:
479
+ def not_in(self, v: T, c: ta.Container[T], msg: CheckMessage = None, /) -> T:
478
480
  if v in c:
479
481
  self._raise(
480
482
  ValueError,
@@ -486,7 +488,7 @@ class Checks:
486
488
 
487
489
  return v
488
490
 
489
- def empty(self, v: SizedT, msg: CheckMessage = None) -> SizedT:
491
+ def empty(self, v: SizedT, msg: CheckMessage = None, /) -> SizedT:
490
492
  if len(v) != 0:
491
493
  self._raise(
492
494
  ValueError,
@@ -498,7 +500,7 @@ class Checks:
498
500
 
499
501
  return v
500
502
 
501
- def iterempty(self, v: ta.Iterable[T], msg: CheckMessage = None) -> ta.Iterable[T]:
503
+ def iterempty(self, v: ta.Iterable[T], msg: CheckMessage = None, /) -> ta.Iterable[T]:
502
504
  it = iter(v)
503
505
  try:
504
506
  next(it)
@@ -515,7 +517,7 @@ class Checks:
515
517
 
516
518
  return v
517
519
 
518
- def not_empty(self, v: SizedT, msg: CheckMessage = None) -> SizedT:
520
+ def not_empty(self, v: SizedT, msg: CheckMessage = None, /) -> SizedT:
519
521
  if len(v) == 0:
520
522
  self._raise(
521
523
  ValueError,
@@ -527,7 +529,7 @@ class Checks:
527
529
 
528
530
  return v
529
531
 
530
- def unique(self, it: ta.Iterable[T], msg: CheckMessage = None) -> ta.Iterable[T]:
532
+ def unique(self, it: ta.Iterable[T], msg: CheckMessage = None, /) -> ta.Iterable[T]:
531
533
  dupes = [e for e, c in collections.Counter(it).items() if c > 1]
532
534
  if dupes:
533
535
  self._raise(
@@ -539,7 +541,7 @@ class Checks:
539
541
 
540
542
  return it
541
543
 
542
- def single(self, obj: ta.Iterable[T], msg: CheckMessage = None) -> T:
544
+ def single(self, obj: ta.Iterable[T], msg: CheckMessage = None, /) -> T:
543
545
  try:
544
546
  [value] = obj
545
547
  except ValueError:
@@ -553,7 +555,7 @@ class Checks:
553
555
 
554
556
  return value
555
557
 
556
- def opt_single(self, obj: ta.Iterable[T], msg: CheckMessage = None) -> ta.Optional[T]:
558
+ def opt_single(self, obj: ta.Iterable[T], msg: CheckMessage = None, /) -> ta.Optional[T]:
557
559
  it = iter(obj)
558
560
  try:
559
561
  value = next(it)
@@ -575,7 +577,7 @@ class Checks:
575
577
 
576
578
  raise RuntimeError # noqa
577
579
 
578
- async def async_single(self, obj: ta.AsyncIterable[T], msg: CheckMessage = None) -> T:
580
+ async def async_single(self, obj: ta.AsyncIterable[T], msg: CheckMessage = None, /) -> T:
579
581
  ait = obj.__aiter__()
580
582
 
581
583
  try:
@@ -604,7 +606,7 @@ class Checks:
604
606
 
605
607
  raise RuntimeError # noqa
606
608
 
607
- async def async_opt_single(self, obj: ta.AsyncIterable[T], msg: CheckMessage = None) -> ta.Optional[T]:
609
+ async def async_opt_single(self, obj: ta.AsyncIterable[T], msg: CheckMessage = None, /) -> ta.Optional[T]:
608
610
  ait = obj.__aiter__()
609
611
 
610
612
  try:
@@ -634,7 +636,7 @@ class Checks:
634
636
 
635
637
  #
636
638
 
637
- def none(self, v: ta.Any, msg: CheckMessage = None) -> None:
639
+ def none(self, v: ta.Any, msg: CheckMessage = None, /) -> None:
638
640
  if v is not None:
639
641
  self._raise(
640
642
  ValueError,
@@ -644,7 +646,7 @@ class Checks:
644
646
  render_fmt='%s',
645
647
  )
646
648
 
647
- def not_none(self, v: ta.Optional[T], msg: CheckMessage = None) -> T:
649
+ def not_none(self, v: ta.Optional[T], msg: CheckMessage = None, /) -> T:
648
650
  if v is None:
649
651
  self._raise(
650
652
  ValueError,
@@ -658,7 +660,7 @@ class Checks:
658
660
 
659
661
  #
660
662
 
661
- def equal(self, v: T, o: ta.Any, msg: CheckMessage = None) -> T:
663
+ def equal(self, v: T, o: ta.Any, msg: CheckMessage = None, /) -> T:
662
664
  if o != v:
663
665
  self._raise(
664
666
  ValueError,
@@ -670,7 +672,7 @@ class Checks:
670
672
 
671
673
  return v
672
674
 
673
- def not_equal(self, v: T, o: ta.Any, msg: CheckMessage = None) -> T:
675
+ def not_equal(self, v: T, o: ta.Any, msg: CheckMessage = None, /) -> T:
674
676
  if o == v:
675
677
  self._raise(
676
678
  ValueError,
@@ -682,7 +684,7 @@ class Checks:
682
684
 
683
685
  return v
684
686
 
685
- def is_(self, v: T, o: ta.Any, msg: CheckMessage = None) -> T:
687
+ def is_(self, v: T, o: ta.Any, msg: CheckMessage = None, /) -> T:
686
688
  if o is not v:
687
689
  self._raise(
688
690
  ValueError,
@@ -694,7 +696,7 @@ class Checks:
694
696
 
695
697
  return v
696
698
 
697
- def is_not(self, v: T, o: ta.Any, msg: CheckMessage = None) -> T:
699
+ def is_not(self, v: T, o: ta.Any, msg: CheckMessage = None, /) -> T:
698
700
  if o is v:
699
701
  self._raise(
700
702
  ValueError,
@@ -706,7 +708,7 @@ class Checks:
706
708
 
707
709
  return v
708
710
 
709
- def callable(self, v: T, msg: CheckMessage = None) -> T: # noqa
711
+ def callable(self, v: T, msg: CheckMessage = None, /) -> T: # noqa
710
712
  if not callable(v):
711
713
  self._raise(
712
714
  TypeError,
@@ -718,7 +720,7 @@ class Checks:
718
720
 
719
721
  return v
720
722
 
721
- def non_empty_str(self, v: ta.Optional[str], msg: CheckMessage = None) -> str:
723
+ def non_empty_str(self, v: ta.Optional[str], msg: CheckMessage = None, /) -> str:
722
724
  if not isinstance(v, str) or not v:
723
725
  self._raise(
724
726
  ValueError,
@@ -730,7 +732,7 @@ class Checks:
730
732
 
731
733
  return v
732
734
 
733
- def replacing(self, expected: ta.Any, old: ta.Any, new: T, msg: CheckMessage = None) -> T:
735
+ def replacing(self, expected: ta.Any, old: ta.Any, new: T, msg: CheckMessage = None, /) -> T:
734
736
  if old != expected:
735
737
  self._raise(
736
738
  ValueError,
@@ -742,7 +744,7 @@ class Checks:
742
744
 
743
745
  return new
744
746
 
745
- def replacing_none(self, old: ta.Any, new: T, msg: CheckMessage = None) -> T:
747
+ def replacing_none(self, old: ta.Any, new: T, msg: CheckMessage = None, /) -> T:
746
748
  if old is not None:
747
749
  self._raise(
748
750
  ValueError,
@@ -756,7 +758,7 @@ class Checks:
756
758
 
757
759
  #
758
760
 
759
- def arg(self, v: bool, msg: CheckMessage = None) -> None:
761
+ def arg(self, v: bool, msg: CheckMessage = None, /) -> None:
760
762
  if not v:
761
763
  self._raise(
762
764
  RuntimeError,
@@ -766,7 +768,7 @@ class Checks:
766
768
  render_fmt='%s',
767
769
  )
768
770
 
769
- def state(self, v: bool, msg: CheckMessage = None) -> None:
771
+ def state(self, v: bool, msg: CheckMessage = None, /) -> None:
770
772
  if not v:
771
773
  self._raise(
772
774
  RuntimeError,
@@ -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)