omdev 0.0.0.dev462__tar.gz → 0.0.0.dev489__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 (385) hide show
  1. {omdev-0.0.0.dev462/omdev.egg-info → omdev-0.0.0.dev489}/PKG-INFO +8 -8
  2. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/.omlish-manifests.json +1 -1
  3. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/__about__.py +5 -4
  4. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/amalg/gen/gen.py +49 -6
  5. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/amalg/gen/imports.py +1 -1
  6. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/amalg/gen/manifests.py +1 -1
  7. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/amalg/gen/resources.py +1 -1
  8. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/amalg/gen/srcfiles.py +13 -3
  9. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/amalg/gen/strip.py +1 -1
  10. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/amalg/gen/types.py +1 -1
  11. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/amalg/gen/typing.py +1 -1
  12. omdev-0.0.0.dev489/omdev/amalg/info.py +32 -0
  13. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/ci/cli.py +1 -2
  14. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cli/clicli.py +19 -1
  15. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cmdlog/cli.py +1 -2
  16. omdev-0.0.0.dev489/omdev/dataclasses/_dumping.py +1960 -0
  17. omdev-0.0.0.dev489/omdev/dataclasses/_template.py +22 -0
  18. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/dataclasses/cli.py +6 -1
  19. omdev-0.0.0.dev489/omdev/dataclasses/codegen.py +375 -0
  20. omdev-0.0.0.dev489/omdev/dataclasses/dumping.py +200 -0
  21. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/interp/types.py +3 -2
  22. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/interp/uv/provider.py +37 -0
  23. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/manifests/_dumping.py +69 -25
  24. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/packaging/specifiers.py +2 -1
  25. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/packaging/versions.py +4 -4
  26. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/packaging/wheelfile.py +2 -0
  27. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/precheck/caches.py +1 -1
  28. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/precheck/main.py +1 -2
  29. omdev-0.0.0.dev489/omdev/py/asts/parents.py +28 -0
  30. omdev-0.0.0.dev489/omdev/py/asts/toplevel.py +123 -0
  31. omdev-0.0.0.dev489/omdev/py/asts/visitors.py +18 -0
  32. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/py/attrdocs.py +1 -1
  33. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/py/bracepy.py +12 -4
  34. omdev-0.0.0.dev489/omdev/py/reprs.py +32 -0
  35. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/py/srcheaders.py +1 -1
  36. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/py/tools/mkrelimp.py +1 -1
  37. omdev-0.0.0.dev489/omdev/py/tools/pipdepup.py +633 -0
  38. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/pyproject/pkg.py +189 -44
  39. omdev-0.0.0.dev489/omdev/pyproject/tools/aboutdeps.py +60 -0
  40. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/scripts/ci.py +211 -33
  41. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/scripts/interp.py +167 -35
  42. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/scripts/lib/inject.py +66 -25
  43. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/scripts/lib/logs.py +75 -27
  44. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/scripts/lib/marshal.py +67 -25
  45. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/scripts/pyproject.py +391 -79
  46. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/tools/git/cli.py +9 -0
  47. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/tools/json/formats.py +2 -0
  48. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/tools/jsonview/cli.py +31 -5
  49. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/tools/pawk/pawk.py +2 -2
  50. omdev-0.0.0.dev489/omdev/tui/__init__.py +0 -0
  51. omdev-0.0.0.dev489/omdev/tui/apps/__init__.py +0 -0
  52. omdev-0.0.0.dev489/omdev/tui/apps/edit/__init__.py +0 -0
  53. omdev-0.0.0.dev489/omdev/tui/apps/edit/main.py +167 -0
  54. omdev-0.0.0.dev489/omdev/tui/apps/irc/__init__.py +0 -0
  55. omdev-0.0.0.dev489/omdev/tui/apps/irc/__main__.py +4 -0
  56. omdev-0.0.0.dev489/omdev/tui/apps/irc/app.py +286 -0
  57. omdev-0.0.0.dev489/omdev/tui/apps/irc/client.py +187 -0
  58. omdev-0.0.0.dev489/omdev/tui/apps/irc/commands.py +175 -0
  59. omdev-0.0.0.dev489/omdev/tui/apps/irc/main.py +26 -0
  60. omdev-0.0.0.dev489/omdev/tui/apps/markdown/__init__.py +0 -0
  61. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/tui/rich/__init__.py +4 -0
  62. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/tui/textual/__init__.py +78 -4
  63. omdev-0.0.0.dev489/omdev/tui/textual/app2.py +11 -0
  64. omdev-0.0.0.dev489/omdev/tui/textual/autocomplete/LICENSE +21 -0
  65. omdev-0.0.0.dev489/omdev/tui/textual/autocomplete/__init__.py +33 -0
  66. omdev-0.0.0.dev489/omdev/tui/textual/autocomplete/matching.py +226 -0
  67. omdev-0.0.0.dev489/omdev/tui/textual/autocomplete/paths.py +202 -0
  68. omdev-0.0.0.dev489/omdev/tui/textual/autocomplete/widget.py +612 -0
  69. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489/omdev.egg-info}/PKG-INFO +8 -8
  70. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev.egg-info/SOURCES.txt +32 -6
  71. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev.egg-info/requires.txt +7 -7
  72. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/pyproject.toml +8 -8
  73. omdev-0.0.0.dev462/omdev/dataclasses/codegen.py +0 -95
  74. omdev-0.0.0.dev462/omdev/pyproject/cexts.py +0 -110
  75. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/LICENSE +0 -0
  76. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/MANIFEST.in +0 -0
  77. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/README.md +0 -0
  78. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/__init__.py +0 -0
  79. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/amalg/__init__.py +0 -0
  80. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/amalg/__main__.py +0 -0
  81. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/amalg/cli/__init__.py +0 -0
  82. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/amalg/cli/main.py +0 -0
  83. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/amalg/gen/__init__.py +0 -0
  84. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/amalg/sources.py +0 -0
  85. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cache/__init__.py +0 -0
  86. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cache/compute/__init__.py +0 -0
  87. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cache/compute/cache.py +0 -0
  88. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cache/compute/contexts.py +0 -0
  89. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cache/compute/currents.py +0 -0
  90. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cache/compute/fns.py +0 -0
  91. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cache/compute/resolvers.py +0 -0
  92. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cache/compute/storage.py +0 -0
  93. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cache/compute/types.py +0 -0
  94. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cache/data/__init__.py +0 -0
  95. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cache/data/actions.py +0 -0
  96. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cache/data/cache.py +0 -0
  97. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cache/data/consts.py +0 -0
  98. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cache/data/defaults.py +0 -0
  99. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cache/data/manifests.py +0 -0
  100. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cache/data/specs.py +0 -0
  101. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/capi/__init__.py +0 -0
  102. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/capi/darwin/__init__.py +0 -0
  103. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/capi/darwin/aps.py +0 -0
  104. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/capi/darwin/ax.py +0 -0
  105. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/capi/darwin/cf.py +0 -0
  106. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/capi/darwin/cg.py +0 -0
  107. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/capi/linux/__init__.py +0 -0
  108. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/capi/linux/x11.py +0 -0
  109. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cc/__init__.py +0 -0
  110. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cc/__main__.py +0 -0
  111. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cc/cdeps.py +0 -0
  112. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cc/cdeps.toml +0 -0
  113. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cc/cli.py +0 -0
  114. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cc/srclangs.py +0 -0
  115. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cexts/__init__.py +0 -0
  116. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cexts/_boilerplate.cc +0 -0
  117. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cexts/_distutils/LICENSE +0 -0
  118. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cexts/_distutils/__init__.py +0 -0
  119. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cexts/_distutils/build_ext.py +0 -0
  120. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cexts/_distutils/compilers/__init__.py +0 -0
  121. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cexts/_distutils/compilers/ccompiler.py +0 -0
  122. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cexts/_distutils/compilers/options.py +0 -0
  123. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cexts/_distutils/compilers/unixccompiler.py +0 -0
  124. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cexts/_distutils/dir_util.py +0 -0
  125. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cexts/_distutils/errors.py +0 -0
  126. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cexts/_distutils/extension.py +0 -0
  127. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cexts/_distutils/file_util.py +0 -0
  128. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cexts/_distutils/modified.py +0 -0
  129. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cexts/_distutils/spawn.py +0 -0
  130. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cexts/_distutils/sysconfig.py +0 -0
  131. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cexts/_distutils/util.py +0 -0
  132. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cexts/_distutils/version.py +0 -0
  133. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cexts/build.py +0 -0
  134. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cexts/cmake.py +0 -0
  135. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cexts/importhook.py +0 -0
  136. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cexts/magic.py +0 -0
  137. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cexts/scan.py +0 -0
  138. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/ci/__init__.py +0 -0
  139. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/ci/__main__.py +0 -0
  140. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/ci/cache.py +0 -0
  141. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/ci/ci.py +0 -0
  142. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/ci/compose.py +0 -0
  143. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/ci/consts.py +0 -0
  144. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/ci/docker/__init__.py +0 -0
  145. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/ci/docker/buildcaching.py +0 -0
  146. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/ci/docker/cache.py +0 -0
  147. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/ci/docker/cacheserved/__init__.py +0 -0
  148. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/ci/docker/cacheserved/cache.py +0 -0
  149. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/ci/docker/cacheserved/manifests.py +0 -0
  150. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/ci/docker/cmds.py +0 -0
  151. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/ci/docker/dataserver.py +0 -0
  152. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/ci/docker/imagepulling.py +0 -0
  153. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/ci/docker/inject.py +0 -0
  154. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/ci/docker/packing.py +0 -0
  155. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/ci/docker/repositories.py +0 -0
  156. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/ci/docker/utils.py +0 -0
  157. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/ci/github/__init__.py +0 -0
  158. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/ci/github/api/__init__.py +0 -0
  159. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/ci/github/api/clients.py +0 -0
  160. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/ci/github/api/v1/__init__.py +0 -0
  161. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/ci/github/api/v1/api.py +0 -0
  162. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/ci/github/api/v1/client.py +0 -0
  163. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/ci/github/api/v2/__init__.py +0 -0
  164. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/ci/github/api/v2/api.py +0 -0
  165. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/ci/github/api/v2/azure.py +0 -0
  166. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/ci/github/api/v2/client.py +0 -0
  167. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/ci/github/bootstrap.py +0 -0
  168. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/ci/github/cache.py +0 -0
  169. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/ci/github/cli.py +0 -0
  170. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/ci/github/env.py +0 -0
  171. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/ci/github/inject.py +0 -0
  172. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/ci/inject.py +0 -0
  173. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/ci/requirements.py +0 -0
  174. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/ci/shell.py +0 -0
  175. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/ci/utils.py +0 -0
  176. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cli/__init__.py +0 -0
  177. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cli/__main__.py +0 -0
  178. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cli/_pathhack.py +0 -0
  179. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cli/install.py +0 -0
  180. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cli/main.py +0 -0
  181. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cli/managers.py +0 -0
  182. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cli/types.py +0 -0
  183. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/clipboard/__init__.py +0 -0
  184. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/clipboard/clipboard.py +0 -0
  185. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/clipboard/darwin_cf.py +0 -0
  186. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/clipboard/linux_x11.py +0 -0
  187. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cmake.py +0 -0
  188. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cmdlog/__init__.py +0 -0
  189. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cmdlog/__main__.py +0 -0
  190. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cmdlog/_cmdlog.py +0 -0
  191. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/cmdlog/cmdlog.py +0 -0
  192. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/dataclasses/__init__.py +0 -0
  193. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/dataclasses/__main__.py +0 -0
  194. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/dataserver/__init__.py +0 -0
  195. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/dataserver/handlers.py +0 -0
  196. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/dataserver/http.py +0 -0
  197. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/dataserver/routes.py +0 -0
  198. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/dataserver/server.py +0 -0
  199. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/dataserver/targets.py +0 -0
  200. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/git/__init__.py +0 -0
  201. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/git/magic.py +0 -0
  202. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/git/revisions.py +0 -0
  203. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/git/shallow.py +0 -0
  204. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/git/status.py +0 -0
  205. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/home/__init__.py +0 -0
  206. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/home/paths.py +0 -0
  207. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/home/secrets.py +0 -0
  208. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/home/shadow.py +0 -0
  209. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/imgur.py +0 -0
  210. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/intellij/__init__.py +0 -0
  211. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/intellij/cli.py +0 -0
  212. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/intellij/ides.py +0 -0
  213. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/intellij/open.py +0 -0
  214. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/interp/__init__.py +0 -0
  215. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/interp/__main__.py +0 -0
  216. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/interp/cli.py +0 -0
  217. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/interp/default.py +0 -0
  218. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/interp/inject.py +0 -0
  219. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/interp/inspect.py +0 -0
  220. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/interp/providers/__init__.py +0 -0
  221. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/interp/providers/base.py +0 -0
  222. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/interp/providers/inject.py +0 -0
  223. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/interp/providers/running.py +0 -0
  224. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/interp/providers/standalone.py +0 -0
  225. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/interp/providers/system.py +0 -0
  226. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/interp/pyenv/__init__.py +0 -0
  227. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/interp/pyenv/inject.py +0 -0
  228. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/interp/pyenv/install.py +0 -0
  229. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/interp/pyenv/provider.py +0 -0
  230. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/interp/pyenv/pyenv.py +0 -0
  231. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/interp/resolvers.py +0 -0
  232. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/interp/uv/__init__.py +0 -0
  233. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/interp/uv/inject.py +0 -0
  234. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/interp/uv/uv.py +0 -0
  235. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/interp/venvs.py +0 -0
  236. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/irc/__init__.py +0 -0
  237. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/irc/messages/__init__.py +0 -0
  238. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/irc/messages/base.py +0 -0
  239. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/irc/messages/formats.py +0 -0
  240. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/irc/messages/messages.py +0 -0
  241. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/irc/messages/parsing.py +0 -0
  242. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/irc/numerics/__init__.py +0 -0
  243. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/irc/numerics/formats.py +0 -0
  244. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/irc/numerics/numerics.py +0 -0
  245. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/irc/numerics/types.py +0 -0
  246. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/irc/protocol/LICENSE +0 -0
  247. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/irc/protocol/__init__.py +0 -0
  248. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/irc/protocol/consts.py +0 -0
  249. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/irc/protocol/errors.py +0 -0
  250. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/irc/protocol/message.py +0 -0
  251. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/irc/protocol/nuh.py +0 -0
  252. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/irc/protocol/parsing.py +0 -0
  253. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/irc/protocol/rendering.py +0 -0
  254. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/irc/protocol/tags.py +0 -0
  255. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/irc/protocol/utils.py +0 -0
  256. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/magic/__init__.py +0 -0
  257. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/magic/__main__.py +0 -0
  258. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/magic/cli.py +0 -0
  259. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/magic/find.py +0 -0
  260. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/magic/magic.py +0 -0
  261. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/magic/prepare.py +0 -0
  262. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/magic/styles.py +0 -0
  263. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/manifests/__init__.py +0 -0
  264. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/manifests/__main__.py +0 -0
  265. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/manifests/building.py +0 -0
  266. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/manifests/dumping.py +0 -0
  267. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/manifests/main.py +0 -0
  268. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/markdown/__init__.py +0 -0
  269. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/markdown/incparse.py +0 -0
  270. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/markdown/tokens.py +0 -0
  271. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/mypy/__init__.py +0 -0
  272. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/mypy/debug.py +0 -0
  273. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/mypy/report.py +0 -0
  274. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/oci/__init__.py +0 -0
  275. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/oci/building.py +0 -0
  276. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/oci/compression.py +0 -0
  277. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/oci/data.py +0 -0
  278. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/oci/datarefs.py +0 -0
  279. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/oci/dataserver.py +0 -0
  280. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/oci/loading.py +0 -0
  281. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/oci/media.py +0 -0
  282. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/oci/pack/__init__.py +0 -0
  283. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/oci/pack/packing.py +0 -0
  284. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/oci/pack/repositories.py +0 -0
  285. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/oci/pack/unpacking.py +0 -0
  286. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/oci/repositories.py +0 -0
  287. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/oci/tars.py +0 -0
  288. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/packaging/__init__.py +0 -0
  289. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/packaging/marshal.py +0 -0
  290. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/packaging/names.py +0 -0
  291. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/packaging/requires.py +0 -0
  292. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/packaging/revisions.py +0 -0
  293. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/pip.py +0 -0
  294. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/precheck/__init__.py +0 -0
  295. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/precheck/__main__.py +0 -0
  296. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/precheck/base.py +0 -0
  297. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/precheck/blanklines.py +0 -0
  298. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/precheck/git.py +0 -0
  299. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/precheck/imports.py +0 -0
  300. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/precheck/lite.py +0 -0
  301. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/precheck/manifests.py +0 -0
  302. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/precheck/scripts.py +0 -0
  303. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/precheck/unicode.py +0 -0
  304. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/py/__init__.py +0 -0
  305. {omdev-0.0.0.dev462/omdev/py/scripts → omdev-0.0.0.dev489/omdev/py/asts}/__init__.py +0 -0
  306. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/py/classdot.py +0 -0
  307. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/py/docstrings/LICENSE +0 -0
  308. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/py/docstrings/__init__.py +0 -0
  309. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/py/docstrings/attrdoc.py +0 -0
  310. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/py/docstrings/common.py +0 -0
  311. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/py/docstrings/epydoc.py +0 -0
  312. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/py/docstrings/google.py +0 -0
  313. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/py/docstrings/numpydoc.py +0 -0
  314. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/py/docstrings/parser.py +0 -0
  315. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/py/docstrings/rest.py +0 -0
  316. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/py/findimports.py +0 -0
  317. {omdev-0.0.0.dev462/omdev/py/tools → omdev-0.0.0.dev489/omdev/py/scripts}/__init__.py +0 -0
  318. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/py/scripts/bumpversion.py +0 -0
  319. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/py/scripts/execstat.py +0 -0
  320. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/py/scripts/importtrace.py +0 -0
  321. {omdev-0.0.0.dev462/omdev/pyproject/resources → omdev-0.0.0.dev489/omdev/py/tokens}/__init__.py +0 -0
  322. {omdev-0.0.0.dev462/omdev → omdev-0.0.0.dev489/omdev/py}/tokens/all.py +0 -0
  323. {omdev-0.0.0.dev462/omdev → omdev-0.0.0.dev489/omdev/py}/tokens/tokenizert.py +0 -0
  324. {omdev-0.0.0.dev462/omdev → omdev-0.0.0.dev489/omdev/py}/tokens/utils.py +0 -0
  325. {omdev-0.0.0.dev462/omdev/scripts/lib → omdev-0.0.0.dev489/omdev/py/tools}/__init__.py +0 -0
  326. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/py/tools/importscan.py +0 -0
  327. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/pyproject/__init__.py +0 -0
  328. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/pyproject/__main__.py +0 -0
  329. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/pyproject/cli.py +0 -0
  330. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/pyproject/configs.py +0 -0
  331. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/pyproject/inject.py +0 -0
  332. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/pyproject/reqs.py +0 -0
  333. {omdev-0.0.0.dev462/omdev/tokens → omdev-0.0.0.dev489/omdev/pyproject/resources}/__init__.py +0 -0
  334. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/pyproject/resources/docker-dev.sh +0 -0
  335. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/pyproject/resources/python.sh +0 -0
  336. {omdev-0.0.0.dev462/omdev/tools/git → omdev-0.0.0.dev489/omdev/pyproject/tools}/__init__.py +0 -0
  337. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/pyproject/venvs.py +0 -0
  338. {omdev-0.0.0.dev462/omdev/tools/json → omdev-0.0.0.dev489/omdev/rs}/__init__.py +0 -0
  339. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/scripts/__init__.py +0 -0
  340. {omdev-0.0.0.dev462/omdev/tools/jsonview → omdev-0.0.0.dev489/omdev/scripts/lib}/__init__.py +0 -0
  341. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/scripts/slowcat.py +0 -0
  342. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/scripts/tmpexec.py +0 -0
  343. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/tagstrings.py +0 -0
  344. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/tools/__init__.py +0 -0
  345. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/tools/cloc.py +0 -0
  346. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/tools/diff.py +0 -0
  347. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/tools/doc.py +0 -0
  348. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/tools/docker.py +0 -0
  349. {omdev-0.0.0.dev462/omdev/tools/jsonview/resources → omdev-0.0.0.dev489/omdev/tools/git}/__init__.py +0 -0
  350. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/tools/git/__main__.py +0 -0
  351. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/tools/git/cloning.py +0 -0
  352. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/tools/git/consts.py +0 -0
  353. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/tools/git/messages.py +0 -0
  354. {omdev-0.0.0.dev462/omdev/tools/pawk → omdev-0.0.0.dev489/omdev/tools/json}/__init__.py +0 -0
  355. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/tools/json/__main__.py +0 -0
  356. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/tools/json/cli.py +0 -0
  357. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/tools/json/io.py +0 -0
  358. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/tools/json/parsing.py +0 -0
  359. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/tools/json/processing.py +0 -0
  360. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/tools/json/rendering.py +0 -0
  361. {omdev-0.0.0.dev462/omdev/tui → omdev-0.0.0.dev489/omdev/tools/jsonview}/__init__.py +0 -0
  362. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/tools/jsonview/__main__.py +0 -0
  363. {omdev-0.0.0.dev462/omdev/tui/apps → omdev-0.0.0.dev489/omdev/tools/jsonview/resources}/__init__.py +0 -0
  364. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/tools/jsonview/resources/jsonview.css +0 -0
  365. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/tools/jsonview/resources/jsonview.js +0 -0
  366. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/tools/linehisto.py +0 -0
  367. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/tools/mkenv.py +0 -0
  368. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/tools/notebook.py +0 -0
  369. {omdev-0.0.0.dev462/omdev/tui/apps/markdown → omdev-0.0.0.dev489/omdev/tools/pawk}/__init__.py +0 -0
  370. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/tools/pawk/__main__.py +0 -0
  371. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/tools/pip.py +0 -0
  372. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/tools/prof.py +0 -0
  373. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/tools/qr.py +0 -0
  374. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/tools/shadow.py +0 -0
  375. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/tools/shell.py +0 -0
  376. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/tools/sqlrepl.py +0 -0
  377. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/tui/apps/markdown/__main__.py +0 -0
  378. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/tui/apps/markdown/cli.py +0 -0
  379. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/tui/rich/console2.py +0 -0
  380. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/tui/rich/markdown2.py +0 -0
  381. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev/tui/textual/drivers2.py +0 -0
  382. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev.egg-info/dependency_links.txt +0 -0
  383. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev.egg-info/entry_points.txt +0 -0
  384. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/omdev.egg-info/top_level.txt +0 -0
  385. {omdev-0.0.0.dev462 → omdev-0.0.0.dev489}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: omdev
3
- Version: 0.0.0.dev462
3
+ Version: 0.0.0.dev489
4
4
  Summary: omdev
5
5
  Author: wrmsr
6
6
  License-Expression: BSD-3-Clause
@@ -14,22 +14,22 @@ 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.dev462
17
+ Requires-Dist: omlish==0.0.0.dev489
18
18
  Provides-Extra: all
19
- Requires-Dist: black~=25.9; extra == "all"
19
+ Requires-Dist: black~=25.12; extra == "all"
20
20
  Requires-Dist: pycparser~=2.23; extra == "all"
21
21
  Requires-Dist: pcpp~=1.30; extra == "all"
22
22
  Requires-Dist: docutils~=0.22; extra == "all"
23
23
  Requires-Dist: markdown-it-py~=4.0; extra == "all"
24
24
  Requires-Dist: mdit-py-plugins~=0.5; extra == "all"
25
25
  Requires-Dist: pygments~=2.19; extra == "all"
26
- Requires-Dist: mypy~=1.18; extra == "all"
26
+ Requires-Dist: mypy~=1.19; extra == "all"
27
27
  Requires-Dist: gprof2dot~=2025.4; extra == "all"
28
28
  Requires-Dist: segno~=1.6; extra == "all"
29
29
  Requires-Dist: rich~=14.2; extra == "all"
30
- Requires-Dist: textual~=6.3; extra == "all"
30
+ Requires-Dist: textual~=6.9; extra == "all"
31
31
  Provides-Extra: black
32
- Requires-Dist: black~=25.9; extra == "black"
32
+ Requires-Dist: black~=25.12; extra == "black"
33
33
  Provides-Extra: c
34
34
  Requires-Dist: pycparser~=2.23; extra == "c"
35
35
  Requires-Dist: pcpp~=1.30; extra == "c"
@@ -39,14 +39,14 @@ Requires-Dist: markdown-it-py~=4.0; extra == "doc"
39
39
  Requires-Dist: mdit-py-plugins~=0.5; extra == "doc"
40
40
  Requires-Dist: pygments~=2.19; extra == "doc"
41
41
  Provides-Extra: mypy
42
- Requires-Dist: mypy~=1.18; extra == "mypy"
42
+ Requires-Dist: mypy~=1.19; extra == "mypy"
43
43
  Provides-Extra: prof
44
44
  Requires-Dist: gprof2dot~=2025.4; extra == "prof"
45
45
  Provides-Extra: qr
46
46
  Requires-Dist: segno~=1.6; extra == "qr"
47
47
  Provides-Extra: tui
48
48
  Requires-Dist: rich~=14.2; extra == "tui"
49
- Requires-Dist: textual~=6.3; extra == "tui"
49
+ Requires-Dist: textual~=6.9; extra == "tui"
50
50
  Dynamic: license-file
51
51
 
52
52
  # Overview
@@ -39,7 +39,7 @@
39
39
  "module": ".cli.clicli",
40
40
  "attr": "_CLI_MODULE",
41
41
  "file": "omdev/cli/clicli.py",
42
- "line": 233,
42
+ "line": 251,
43
43
  "value": {
44
44
  "!.cli.types.CliModule": {
45
45
  "name": "cli",
@@ -13,7 +13,7 @@ class Project(ProjectBase):
13
13
 
14
14
  optional_dependencies = {
15
15
  'black': [
16
- 'black ~= 25.9',
16
+ 'black ~= 25.12',
17
17
  ],
18
18
 
19
19
  'c': [
@@ -31,7 +31,7 @@ class Project(ProjectBase):
31
31
  ],
32
32
 
33
33
  'mypy': [
34
- 'mypy ~= 1.18',
34
+ 'mypy ~= 1.19',
35
35
  ],
36
36
 
37
37
  'prof': [
@@ -44,7 +44,7 @@ class Project(ProjectBase):
44
44
 
45
45
  'tui': [
46
46
  'rich ~= 14.2',
47
- 'textual ~= 6.3',
47
+ 'textual ~= 6.9',
48
48
  ],
49
49
  }
50
50
 
@@ -58,7 +58,8 @@ class Project(ProjectBase):
58
58
 
59
59
 
60
60
  class Setuptools(SetuptoolsBase):
61
- cexts = True
61
+ cext = True
62
+ rs = True
62
63
 
63
64
  find_packages = {
64
65
  'include': [Project.name, f'{Project.name}.*'],
@@ -9,7 +9,8 @@ from omlish.algorithm import all as alg
9
9
  from omlish.lite.runtime import LITE_REQUIRED_PYTHON_VERSION
10
10
 
11
11
  from ...git.magic import GIT_DIFF_OMIT_MAGIC
12
- from ...tokens import all as tks
12
+ from ...py.tokens import all as tks
13
+ from ..info import AMALG_INFO_ATTR
13
14
  from .srcfiles import SrcFile
14
15
  from .srcfiles import make_src_file
15
16
  from .strip import strip_main_lines
@@ -32,18 +33,22 @@ SCAN_COMMENT = '# @omlish-amalg '
32
33
 
33
34
 
34
35
  class AmalgGenerator:
36
+ DEFAULT_TARGET_LINE_LEN: ta.ClassVar[int] = 120
37
+
35
38
  def __init__(
36
39
  self,
37
40
  main_path: str,
38
41
  *,
39
42
  mounts: ta.Mapping[str, str],
40
43
  output_dir: str | None = None,
44
+ target_line_len: int | None = DEFAULT_TARGET_LINE_LEN,
41
45
  ) -> None:
42
46
  super().__init__()
43
47
 
44
48
  self._main_path = main_path
45
49
  self._mounts = mounts
46
50
  self._output_dir = output_dir
51
+ self._target_line_len = target_line_len
47
52
 
48
53
  @cached.function
49
54
  def _src_files(self) -> dict[str, SrcFile]:
@@ -105,6 +110,40 @@ class AmalgGenerator:
105
110
 
106
111
  return [*additional_header_lines, *header_lines]
107
112
 
113
+ def gen_amalg_info_block(self, sfs: ta.Sequence[str]) -> str:
114
+ md = os.path.dirname(self._main_path)
115
+ src_files = self._src_files()
116
+ sf_dcts = [
117
+ dict(
118
+ path=os.path.relpath(sfn, md),
119
+ sha1=src_files[sfn].sha1,
120
+ )
121
+ for sfn in sfs
122
+ ]
123
+ sf_lines = [
124
+ ''.join([
125
+ ' dict(',
126
+ ', '.join([f'{k}={v!r}' for k, v in sf_dct.items()]),
127
+ '),',
128
+ ])
129
+ for sf_dct in sf_dcts
130
+ ]
131
+ if (tll := self._target_line_len) is not None:
132
+ sf_lines = [
133
+ l + ' # noqa' if len(l) >= tll else l
134
+ for l in sf_lines
135
+ ]
136
+
137
+ return '\n'.join([
138
+ f'def {AMALG_INFO_ATTR}(): # noqa',
139
+ f' return dict(',
140
+ f' src_files=[',
141
+ *sf_lines,
142
+ f' ],',
143
+ f' )',
144
+ '',
145
+ ])
146
+
108
147
  @cached.function
109
148
  def gen_amalg(self) -> str:
110
149
  src_files = self._src_files()
@@ -137,6 +176,13 @@ class AmalgGenerator:
137
176
  out.write(il if isinstance(il, str) else tks.join_toks(il.toks))
138
177
  if dct:
139
178
  out.write('\n\n')
179
+ ##
180
+
181
+ ts = list(alg.toposort({ # noqa
182
+ f.path: {mp for i in f.imports if (mp := i.mod_path) is not None}
183
+ for f in src_files.values()
184
+ }))
185
+ sfs = [sf for ss in ts for sf in sorted(ss)]
140
186
 
141
187
  ##
142
188
 
@@ -155,11 +201,8 @@ class AmalgGenerator:
155
201
 
156
202
  ##
157
203
 
158
- ts = list(alg.toposort({ # noqa
159
- f.path: {mp for i in f.imports if (mp := i.mod_path) is not None}
160
- for f in src_files.values()
161
- }))
162
- sfs = [sf for ss in ts for sf in sorted(ss)]
204
+ out.write(self.gen_amalg_info_block(sfs))
205
+ out.write('\n\n')
163
206
 
164
207
  ##
165
208
 
@@ -4,7 +4,7 @@ import typing as ta
4
4
 
5
5
  from omlish import check
6
6
 
7
- from ...tokens import all as tks
7
+ from ...py.tokens import all as tks
8
8
 
9
9
 
10
10
  ##
@@ -2,7 +2,7 @@ import ast
2
2
 
3
3
  from omlish import check
4
4
 
5
- from ...tokens import all as tks
5
+ from ...py.tokens import all as tks
6
6
 
7
7
 
8
8
  ##
@@ -4,7 +4,7 @@ import itertools
4
4
  import os.path
5
5
  import typing as ta
6
6
 
7
- from ...tokens import all as tks
7
+ from ...py.tokens import all as tks
8
8
 
9
9
 
10
10
  ##
@@ -1,10 +1,11 @@
1
1
  import dataclasses as dc
2
+ import hashlib
2
3
  import typing as ta
3
4
 
4
5
  from omlish import collections as col
5
6
  from omlish import lang
6
7
 
7
- from ...tokens import all as tks
8
+ from ...py.tokens import all as tks
8
9
  from .imports import Import
9
10
  from .imports import make_import
10
11
  from .manifests import comment_out_manifest_comment
@@ -26,6 +27,9 @@ from .typing import skip_root_level_if_type_checking_block
26
27
  class SrcFile:
27
28
  path: str
28
29
 
30
+ src_bytes: bytes = dc.field(repr=False)
31
+ sha1: str = dc.field(repr=False)
32
+
29
33
  src: str = dc.field(repr=False)
30
34
  tokens: tks.Tokens = dc.field(repr=False)
31
35
  lines: ta.Sequence[tks.Tokens] = dc.field(repr=False)
@@ -56,9 +60,12 @@ def make_src_file(
56
60
  *,
57
61
  mounts: ta.Mapping[str, str],
58
62
  ) -> SrcFile:
59
- with open(path) as f:
60
- src = f.read().strip()
63
+ with open(path, 'rb') as f:
64
+ src_bytes = f.read()
65
+
66
+ sha1 = hashlib.sha1(src_bytes).hexdigest() # noqa
61
67
 
68
+ src = src_bytes.decode('utf-8').strip()
62
69
  tokens = tks.src_to_tokens(src)
63
70
  lines = tks.split_lines(tokens)
64
71
 
@@ -115,6 +122,9 @@ def make_src_file(
115
122
  return SrcFile(
116
123
  path=path,
117
124
 
125
+ src_bytes=src_bytes,
126
+ sha1=sha1,
127
+
118
128
  src=src,
119
129
  tokens=tokens,
120
130
  lines=lines,
@@ -2,7 +2,7 @@ import re
2
2
  import typing as ta
3
3
 
4
4
  from ... import magic
5
- from ...tokens import all as tks
5
+ from ...py.tokens import all as tks
6
6
 
7
7
 
8
8
  ##
@@ -1,6 +1,6 @@
1
1
  import typing as ta
2
2
 
3
- from ...tokens import all as tks
3
+ from ...py.tokens import all as tks
4
4
 
5
5
 
6
6
  Tokens: ta.TypeAlias = tks.Tokens
@@ -2,7 +2,7 @@ import dataclasses as dc
2
2
 
3
3
  from omlish import check
4
4
 
5
- from ...tokens import all as tks
5
+ from ...py.tokens import all as tks
6
6
 
7
7
 
8
8
  ##
@@ -0,0 +1,32 @@
1
+ # ruff: noqa: UP045
2
+ # @omlish-lite
3
+ import typing as ta
4
+
5
+
6
+ ##
7
+
8
+
9
+ AMALG_INFO_ATTR = '__omlish_amalg__'
10
+
11
+
12
+ class AmalgInfoSrcFile(ta.NamedTuple):
13
+ path: str
14
+ sha1: str
15
+
16
+
17
+ class AmalgInfo(ta.NamedTuple):
18
+ src_files: ta.Sequence[AmalgInfoSrcFile]
19
+
20
+
21
+ def get_amalg_info() -> ta.Optional[AmalgInfo]:
22
+ try:
23
+ fn = globals()[AMALG_INFO_ATTR]
24
+ except KeyError:
25
+ return None
26
+ dct = fn()
27
+ dct['src_files'] = [AmalgInfoSrcFile(**sf_dct) for sf_dct in dct['src_files']]
28
+ return AmalgInfo(**dct)
29
+
30
+
31
+ def is_amalg() -> bool:
32
+ return AMALG_INFO_ATTR in globals()
@@ -14,7 +14,6 @@ import argparse
14
14
  import asyncio
15
15
  import itertools
16
16
  import os.path
17
- import sys
18
17
  import typing as ta
19
18
 
20
19
  from omlish.argparse.cli import ArgparseCli
@@ -260,7 +259,7 @@ async def _async_main() -> ta.Optional[int]:
260
259
  def _main() -> None:
261
260
  configure_standard_logging('DEBUG')
262
261
 
263
- sys.exit(rc if isinstance(rc := asyncio.run(_async_main()), int) else 0)
262
+ raise SystemExit(rc if isinstance(rc := asyncio.run(_async_main()), int) else 0)
264
263
 
265
264
 
266
265
  if __name__ == '__main__':
@@ -1,3 +1,4 @@
1
+ import dataclasses as dc
1
2
  import inspect
2
3
  import os
3
4
  import re
@@ -13,6 +14,7 @@ from omlish import lang
13
14
  from omlish.argparse import all as ap
14
15
  from omlish.os.temp import temp_dir_context
15
16
 
17
+ from ..packaging.versions import Version
16
18
  from ..pip import get_root_dists
17
19
  from ..pip import lookup_latest_package_version
18
20
  from . import install
@@ -87,16 +89,26 @@ class CliCli(ap.Cli):
87
89
 
88
90
  #
89
91
 
92
+ @dc.dataclass()
93
+ class ReinstallWouldNotUpgradeError(Exception):
94
+ current_version: str
95
+ target_version: str
96
+
97
+ def __str__(self) -> str:
98
+ return f'Current version {self.current_version} is not older than target version {self.target_version} '
99
+
90
100
  @ap.cmd(
91
101
  ap.arg('--url', default=DEFAULT_REINSTALL_URL),
92
102
  ap.arg('--local', action='store_true'),
93
103
  ap.arg('--no-deps', action='store_true'),
94
104
  ap.arg('--no-uv', action='store_true'),
95
105
  ap.arg('--dry-run', action='store_true'),
106
+ ap.arg('--must-upgrade', action='store_true'),
96
107
  ap.arg('--version'),
97
108
  ap.arg('extra_deps', nargs='*'),
98
109
  )
99
110
  def reinstall(self) -> None:
111
+ current_version = __about__.__version__
100
112
  latest_version = _parse_latest_version_str(lookup_latest_package_version(__package__.split('.')[0]))
101
113
 
102
114
  if self.args.version is not None:
@@ -104,6 +116,12 @@ class CliCli(ap.Cli):
104
116
  else:
105
117
  target_version = latest_version
106
118
 
119
+ if self.args.must_upgrade:
120
+ current_vo = Version(current_version)
121
+ target_vo = Version(target_version)
122
+ if not (target_vo > current_vo):
123
+ raise CliCli.ReinstallWouldNotUpgradeError(current_version, target_version)
124
+
107
125
  #
108
126
 
109
127
  dep_set: set[str] = set(self.args.extra_deps or [])
@@ -186,7 +204,7 @@ class CliCli(ap.Cli):
186
204
 
187
205
  #
188
206
 
189
- print(f'Current version: {__about__.__version__}')
207
+ print(f'Current version: {current_version}')
190
208
  print(f'Latest version: {latest_version}')
191
209
  print(f'Target version: {target_version}')
192
210
  print()
@@ -1,7 +1,6 @@
1
1
  import argparse
2
2
  import os.path
3
3
  import subprocess
4
- import sys
5
4
  import typing as ta
6
5
 
7
6
  from omlish.formats import json
@@ -60,7 +59,7 @@ def _main() -> None:
60
59
  entry_dcts = [json.loads(sl) for l in log_lines if (sl := l.strip())]
61
60
  print(json.dumps_compact(entry_dcts))
62
61
 
63
- sys.exit(rc)
62
+ raise SystemExit(rc)
64
63
 
65
64
 
66
65
  if __name__ == '__main__':