omdev 0.0.0.dev292__tar.gz → 0.0.0.dev293__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 (281) hide show
  1. {omdev-0.0.0.dev292/omdev.egg-info → omdev-0.0.0.dev293}/PKG-INFO +2 -2
  2. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/precheck/base.py +5 -7
  3. omdev-0.0.0.dev293/omdev/precheck/caches.py +77 -0
  4. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/precheck/git.py +2 -3
  5. omdev-0.0.0.dev293/omdev/precheck/imports.py +76 -0
  6. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/precheck/lite.py +3 -1
  7. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/precheck/main.py +73 -26
  8. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/precheck/manifests.py +3 -1
  9. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/precheck/scripts.py +8 -2
  10. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/ptk/__init__.py +2 -0
  11. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293/omdev.egg-info}/PKG-INFO +2 -2
  12. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev.egg-info/SOURCES.txt +2 -0
  13. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev.egg-info/requires.txt +1 -1
  14. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/pyproject.toml +2 -2
  15. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/LICENSE +0 -0
  16. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/MANIFEST.in +0 -0
  17. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/README.md +0 -0
  18. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/.manifests.json +0 -0
  19. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/__about__.py +0 -0
  20. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/__init__.py +0 -0
  21. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/amalg/__init__.py +0 -0
  22. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/amalg/__main__.py +0 -0
  23. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/amalg/gen.py +0 -0
  24. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/amalg/imports.py +0 -0
  25. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/amalg/main.py +0 -0
  26. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/amalg/manifests.py +0 -0
  27. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/amalg/resources.py +0 -0
  28. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/amalg/srcfiles.py +0 -0
  29. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/amalg/strip.py +0 -0
  30. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/amalg/types.py +0 -0
  31. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/amalg/typing.py +0 -0
  32. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/antlr/__init__.py +0 -0
  33. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/antlr/consts.py +0 -0
  34. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/antlr/gen.py +0 -0
  35. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cache/__init__.py +0 -0
  36. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cache/compute/__init__.py +0 -0
  37. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cache/compute/cache.py +0 -0
  38. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cache/compute/contexts.py +0 -0
  39. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cache/compute/currents.py +0 -0
  40. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cache/compute/fns.py +0 -0
  41. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cache/compute/resolvers.py +0 -0
  42. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cache/compute/storage.py +0 -0
  43. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cache/compute/types.py +0 -0
  44. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cache/data/__init__.py +0 -0
  45. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cache/data/actions.py +0 -0
  46. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cache/data/cache.py +0 -0
  47. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cache/data/consts.py +0 -0
  48. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cache/data/defaults.py +0 -0
  49. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cache/data/manifests.py +0 -0
  50. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cache/data/specs.py +0 -0
  51. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cc/__init__.py +0 -0
  52. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cc/__main__.py +0 -0
  53. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cc/cdeps.py +0 -0
  54. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cc/cdeps.toml +0 -0
  55. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cc/cli.py +0 -0
  56. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cexts/__init__.py +0 -0
  57. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cexts/_boilerplate.cc +0 -0
  58. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cexts/_distutils/LICENSE +0 -0
  59. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cexts/_distutils/__init__.py +0 -0
  60. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cexts/_distutils/build_ext.py +0 -0
  61. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cexts/_distutils/compilers/__init__.py +0 -0
  62. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cexts/_distutils/compilers/ccompiler.py +0 -0
  63. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cexts/_distutils/compilers/options.py +0 -0
  64. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cexts/_distutils/compilers/unixccompiler.py +0 -0
  65. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cexts/_distutils/dir_util.py +0 -0
  66. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cexts/_distutils/errors.py +0 -0
  67. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cexts/_distutils/extension.py +0 -0
  68. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cexts/_distutils/file_util.py +0 -0
  69. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cexts/_distutils/modified.py +0 -0
  70. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cexts/_distutils/spawn.py +0 -0
  71. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cexts/_distutils/sysconfig.py +0 -0
  72. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cexts/_distutils/util.py +0 -0
  73. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cexts/_distutils/version.py +0 -0
  74. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cexts/build.py +0 -0
  75. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cexts/cmake.py +0 -0
  76. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cexts/importhook.py +0 -0
  77. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cexts/magic.py +0 -0
  78. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cexts/scan.py +0 -0
  79. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/ci/__init__.py +0 -0
  80. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/ci/__main__.py +0 -0
  81. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/ci/cache.py +0 -0
  82. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/ci/ci.py +0 -0
  83. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/ci/cli.py +0 -0
  84. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/ci/compose.py +0 -0
  85. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/ci/consts.py +0 -0
  86. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/ci/docker/__init__.py +0 -0
  87. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/ci/docker/buildcaching.py +0 -0
  88. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/ci/docker/cache.py +0 -0
  89. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/ci/docker/cacheserved/__init__.py +0 -0
  90. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/ci/docker/cacheserved/cache.py +0 -0
  91. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/ci/docker/cacheserved/manifests.py +0 -0
  92. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/ci/docker/cmds.py +0 -0
  93. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/ci/docker/dataserver.py +0 -0
  94. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/ci/docker/imagepulling.py +0 -0
  95. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/ci/docker/inject.py +0 -0
  96. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/ci/docker/packing.py +0 -0
  97. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/ci/docker/repositories.py +0 -0
  98. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/ci/docker/utils.py +0 -0
  99. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/ci/github/__init__.py +0 -0
  100. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/ci/github/api/__init__.py +0 -0
  101. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/ci/github/api/clients.py +0 -0
  102. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/ci/github/api/v1/__init__.py +0 -0
  103. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/ci/github/api/v1/api.py +0 -0
  104. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/ci/github/api/v1/client.py +0 -0
  105. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/ci/github/api/v2/__init__.py +0 -0
  106. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/ci/github/api/v2/api.py +0 -0
  107. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/ci/github/api/v2/azure.py +0 -0
  108. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/ci/github/api/v2/client.py +0 -0
  109. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/ci/github/bootstrap.py +0 -0
  110. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/ci/github/cache.py +0 -0
  111. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/ci/github/cli.py +0 -0
  112. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/ci/github/env.py +0 -0
  113. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/ci/github/inject.py +0 -0
  114. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/ci/inject.py +0 -0
  115. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/ci/requirements.py +0 -0
  116. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/ci/shell.py +0 -0
  117. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/ci/utils.py +0 -0
  118. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cli/__init__.py +0 -0
  119. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cli/__main__.py +0 -0
  120. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cli/_pathhack.py +0 -0
  121. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cli/clicli.py +0 -0
  122. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cli/install.py +0 -0
  123. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cli/main.py +0 -0
  124. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cli/managers.py +0 -0
  125. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cli/types.py +0 -0
  126. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/clipboard/__init__.py +0 -0
  127. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/clipboard/clipboard.py +0 -0
  128. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/clipboard/darwin_cf.py +0 -0
  129. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/clipboard/linux_x11.py +0 -0
  130. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/cmake.py +0 -0
  131. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/dataserver/__init__.py +0 -0
  132. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/dataserver/handlers.py +0 -0
  133. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/dataserver/http.py +0 -0
  134. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/dataserver/routes.py +0 -0
  135. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/dataserver/server.py +0 -0
  136. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/dataserver/targets.py +0 -0
  137. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/git/__init__.py +0 -0
  138. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/git/magic.py +0 -0
  139. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/git/revisions.py +0 -0
  140. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/git/shallow.py +0 -0
  141. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/git/status.py +0 -0
  142. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/home/__init__.py +0 -0
  143. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/home/paths.py +0 -0
  144. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/home/secrets.py +0 -0
  145. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/home/shadow.py +0 -0
  146. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/imgur.py +0 -0
  147. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/interp/__init__.py +0 -0
  148. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/interp/__main__.py +0 -0
  149. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/interp/cli.py +0 -0
  150. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/interp/default.py +0 -0
  151. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/interp/inject.py +0 -0
  152. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/interp/inspect.py +0 -0
  153. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/interp/providers/__init__.py +0 -0
  154. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/interp/providers/base.py +0 -0
  155. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/interp/providers/inject.py +0 -0
  156. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/interp/providers/running.py +0 -0
  157. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/interp/providers/standalone.py +0 -0
  158. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/interp/providers/system.py +0 -0
  159. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/interp/pyenv/__init__.py +0 -0
  160. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/interp/pyenv/inject.py +0 -0
  161. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/interp/pyenv/install.py +0 -0
  162. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/interp/pyenv/provider.py +0 -0
  163. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/interp/pyenv/pyenv.py +0 -0
  164. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/interp/resolvers.py +0 -0
  165. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/interp/types.py +0 -0
  166. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/interp/uv/__init__.py +0 -0
  167. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/interp/uv/inject.py +0 -0
  168. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/interp/uv/provider.py +0 -0
  169. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/interp/uv/uv.py +0 -0
  170. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/interp/venvs.py +0 -0
  171. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/magic/__init__.py +0 -0
  172. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/magic/__main__.py +0 -0
  173. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/magic/cli.py +0 -0
  174. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/magic/find.py +0 -0
  175. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/magic/magic.py +0 -0
  176. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/magic/prepare.py +0 -0
  177. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/magic/styles.py +0 -0
  178. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/manifests/__init__.py +0 -0
  179. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/manifests/__main__.py +0 -0
  180. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/manifests/build.py +0 -0
  181. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/manifests/dumping.py +0 -0
  182. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/manifests/main.py +0 -0
  183. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/mypy/__init__.py +0 -0
  184. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/mypy/debug.py +0 -0
  185. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/oci/__init__.py +0 -0
  186. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/oci/building.py +0 -0
  187. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/oci/compression.py +0 -0
  188. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/oci/data.py +0 -0
  189. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/oci/datarefs.py +0 -0
  190. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/oci/dataserver.py +0 -0
  191. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/oci/loading.py +0 -0
  192. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/oci/media.py +0 -0
  193. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/oci/pack/__init__.py +0 -0
  194. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/oci/pack/packing.py +0 -0
  195. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/oci/pack/repositories.py +0 -0
  196. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/oci/pack/unpacking.py +0 -0
  197. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/oci/repositories.py +0 -0
  198. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/oci/tars.py +0 -0
  199. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/packaging/__init__.py +0 -0
  200. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/packaging/marshal.py +0 -0
  201. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/packaging/names.py +0 -0
  202. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/packaging/requires.py +0 -0
  203. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/packaging/revisions.py +0 -0
  204. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/packaging/specifiers.py +0 -0
  205. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/packaging/versions.py +0 -0
  206. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/packaging/wheelfile.py +0 -0
  207. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/pip.py +0 -0
  208. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/precheck/__init__.py +0 -0
  209. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/precheck/__main__.py +0 -0
  210. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/ptk/apps/__init__.py +0 -0
  211. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/ptk/apps/ncdu.py +0 -0
  212. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/py/__init__.py +0 -0
  213. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/py/attrdocs.py +0 -0
  214. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/py/bracepy.py +0 -0
  215. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/py/classdot.py +0 -0
  216. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/py/findimports.py +0 -0
  217. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/py/scripts/__init__.py +0 -0
  218. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/py/scripts/bumpversion.py +0 -0
  219. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/py/scripts/execstat.py +0 -0
  220. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/py/scripts/importtrace.py +0 -0
  221. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/py/srcheaders.py +0 -0
  222. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/py/tools/__init__.py +0 -0
  223. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/py/tools/importscan.py +0 -0
  224. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/py/tools/mkrelimp.py +0 -0
  225. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/pyproject/__init__.py +0 -0
  226. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/pyproject/__main__.py +0 -0
  227. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/pyproject/cexts.py +0 -0
  228. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/pyproject/cli.py +0 -0
  229. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/pyproject/configs.py +0 -0
  230. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/pyproject/inject.py +0 -0
  231. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/pyproject/pkg.py +0 -0
  232. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/pyproject/reqs.py +0 -0
  233. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/pyproject/resources/__init__.py +0 -0
  234. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/pyproject/resources/docker-dev.sh +0 -0
  235. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/pyproject/resources/python.sh +0 -0
  236. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/pyproject/venvs.py +0 -0
  237. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/scripts/__init__.py +0 -0
  238. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/scripts/ci.py +0 -0
  239. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/scripts/interp.py +0 -0
  240. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/scripts/pyproject.py +0 -0
  241. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/scripts/slowcat.py +0 -0
  242. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/scripts/tmpexec.py +0 -0
  243. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/tagstrings.py +0 -0
  244. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/tokens/__init__.py +0 -0
  245. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/tokens/all.py +0 -0
  246. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/tokens/tokenizert.py +0 -0
  247. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/tokens/utils.py +0 -0
  248. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/tools/__init__.py +0 -0
  249. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/tools/cloc.py +0 -0
  250. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/tools/diff.py +0 -0
  251. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/tools/doc.py +0 -0
  252. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/tools/docker.py +0 -0
  253. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/tools/git/__init__.py +0 -0
  254. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/tools/git/__main__.py +0 -0
  255. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/tools/git/cli.py +0 -0
  256. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/tools/git/consts.py +0 -0
  257. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/tools/git/messages.py +0 -0
  258. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/tools/intellij.py +0 -0
  259. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/tools/json/__init__.py +0 -0
  260. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/tools/json/__main__.py +0 -0
  261. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/tools/json/cli.py +0 -0
  262. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/tools/json/formats.py +0 -0
  263. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/tools/json/io.py +0 -0
  264. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/tools/json/parsing.py +0 -0
  265. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/tools/json/processing.py +0 -0
  266. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/tools/json/rendering.py +0 -0
  267. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/tools/linehisto.py +0 -0
  268. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/tools/mkenv.py +0 -0
  269. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/tools/notebook.py +0 -0
  270. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/tools/pawk/__init__.py +0 -0
  271. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/tools/pawk/__main__.py +0 -0
  272. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/tools/pawk/pawk.py +0 -0
  273. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/tools/pip.py +0 -0
  274. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/tools/prof.py +0 -0
  275. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/tools/qr.py +0 -0
  276. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/tools/shadow.py +0 -0
  277. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev/tools/sqlrepl.py +0 -0
  278. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev.egg-info/dependency_links.txt +0 -0
  279. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev.egg-info/entry_points.txt +0 -0
  280. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/omdev.egg-info/top_level.txt +0 -0
  281. {omdev-0.0.0.dev292 → omdev-0.0.0.dev293}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: omdev
3
- Version: 0.0.0.dev292
3
+ Version: 0.0.0.dev293
4
4
  Summary: omdev
5
5
  Author: wrmsr
6
6
  License: BSD-3-Clause
@@ -12,7 +12,7 @@ Classifier: Operating System :: OS Independent
12
12
  Classifier: Operating System :: POSIX
13
13
  Requires-Python: >=3.12
14
14
  License-File: LICENSE
15
- Requires-Dist: omlish==0.0.0.dev292
15
+ Requires-Dist: omlish==0.0.0.dev293
16
16
  Provides-Extra: all
17
17
  Requires-Dist: black~=25.1; extra == "all"
18
18
  Requires-Dist: pycparser~=2.22; extra == "all"
@@ -2,6 +2,9 @@ import abc
2
2
  import dataclasses as dc
3
3
  import typing as ta
4
4
 
5
+ from omlish import lang
6
+ from omlish.configs import all as cfgs
7
+
5
8
 
6
9
  PrecheckConfigT = ta.TypeVar('PrecheckConfigT', bound='Precheck.Config')
7
10
 
@@ -17,16 +20,11 @@ class PrecheckContext:
17
20
  ##
18
21
 
19
22
 
20
- class Precheck(abc.ABC, ta.Generic[PrecheckConfigT]):
23
+ class Precheck(cfgs.Configurable[PrecheckConfigT], lang.Abstract):
21
24
  @dc.dataclass(frozen=True)
22
- class Config:
25
+ class Config(cfgs.Configurable.Config):
23
26
  pass
24
27
 
25
- def __init__(self, context: PrecheckContext, config: PrecheckConfigT) -> None:
26
- super().__init__()
27
- self._context = context
28
- self._config = config
29
-
30
28
  @dc.dataclass(frozen=True)
31
29
  class Violation:
32
30
  pc: 'Precheck'
@@ -0,0 +1,77 @@
1
+ import ast
2
+ import os
3
+ import typing as ta
4
+
5
+ from omlish import dataclasses as dc
6
+ from omlish import lang
7
+ from omlish.text.filecache import TextFileCache
8
+
9
+ from ..py.srcheaders import PyHeaderLine
10
+ from ..py.srcheaders import get_py_header_lines
11
+ from ..tokens import all as tks
12
+
13
+
14
+ ##
15
+
16
+
17
+ class DirWalkCache:
18
+ @dc.dataclass(frozen=True)
19
+ class Entry:
20
+ root: str
21
+ dirs: ta.Sequence[str]
22
+ files: ta.Sequence[str]
23
+
24
+ @lang.cached_function
25
+ def list_dir(self, path: str) -> ta.Sequence[Entry]:
26
+ return [
27
+ self.Entry(root, list(dirs), list(files))
28
+ for root, dirs, files in os.walk(path)
29
+ ]
30
+
31
+
32
+ ##
33
+
34
+
35
+ @dc.dataclass(frozen=True)
36
+ class AstCache:
37
+ _tfc: TextFileCache = dc.field(repr=False)
38
+
39
+ @lang.cached_function
40
+ def get_file_ast(self, path: str) -> ast.AST | Exception:
41
+ try:
42
+ tfe = self._tfc.get_entry(path)
43
+ return ast.parse(tfe.text(), path)
44
+ except Exception as e: # noqa
45
+ return e
46
+
47
+
48
+ ##
49
+
50
+
51
+ @dc.dataclass(frozen=True)
52
+ class TokensCache:
53
+ _tfc: TextFileCache = dc.field(repr=False)
54
+
55
+ @lang.cached_function
56
+ def get_file_tokens(self, path: str) -> tks.Tokens | Exception:
57
+ try:
58
+ tfe = self._tfc.get_entry(path)
59
+ return tks.src_to_tokens(tfe.text())
60
+ except Exception as e: # noqa
61
+ return e
62
+
63
+
64
+ ##
65
+
66
+
67
+ @dc.dataclass(frozen=True)
68
+ class HeadersCache:
69
+ _tfc: TextFileCache = dc.field(repr=False)
70
+
71
+ @lang.cached_function
72
+ def get_file_headers(self, path: str) -> ta.Sequence[PyHeaderLine] | Exception:
73
+ try:
74
+ tfe = self._tfc.get_entry(path)
75
+ return get_py_header_lines(tfe.text())
76
+ except Exception as e: # noqa
77
+ return e
@@ -3,7 +3,6 @@ import dataclasses as dc
3
3
  import typing as ta
4
4
 
5
5
  from .base import Precheck
6
- from .base import PrecheckContext
7
6
 
8
7
 
9
8
  ##
@@ -23,8 +22,8 @@ class GitBlacklistPrecheck(Precheck['GitBlacklistPrecheck.Config']):
23
22
  'secrets.yml',
24
23
  )
25
24
 
26
- def __init__(self, context: PrecheckContext, config: Config = Config()) -> None:
27
- super().__init__(context, config)
25
+ def __init__(self, config: Config = Config()) -> None:
26
+ super().__init__(config)
28
27
 
29
28
  async def run(self) -> ta.AsyncGenerator[Precheck.Violation, None]:
30
29
  for f in self._config.files:
@@ -0,0 +1,76 @@
1
+ import ast
2
+ import dataclasses as dc
3
+ import os.path
4
+ import typing as ta
5
+
6
+ from .base import Precheck
7
+ from .base import PrecheckContext
8
+ from .caches import AstCache
9
+ from .caches import DirWalkCache
10
+ from .caches import HeadersCache
11
+
12
+
13
+ ##
14
+
15
+
16
+ class RootRelativeImportPrecheck(Precheck['RootRelativeImportPrecheck.Config']):
17
+ @dc.dataclass(frozen=True)
18
+ class Config(Precheck.Config):
19
+ pass
20
+
21
+ def __init__(
22
+ self,
23
+ context: PrecheckContext,
24
+ config: Config = Config(),
25
+ *,
26
+ dir_walk_cache: DirWalkCache,
27
+ headers_cache: HeadersCache,
28
+ ast_cache: AstCache,
29
+ ) -> None:
30
+ super().__init__(config)
31
+
32
+ self._context = context
33
+
34
+ self._dir_walk_cache = dir_walk_cache
35
+ self._headers_cache = headers_cache
36
+ self._ast_cache = ast_cache
37
+
38
+ async def _run_py_file(self, py_file: str, src_root: str) -> ta.AsyncGenerator[Precheck.Violation, None]:
39
+ if isinstance(header_lines := self._headers_cache.get_file_headers(py_file), Exception):
40
+ return
41
+ if any(hl.src.strip() == '# ruff: noqa' for hl in header_lines):
42
+ return
43
+
44
+ py_file_ast = self._ast_cache.get_file_ast(py_file)
45
+ if not isinstance(py_file_ast, ast.Module):
46
+ return
47
+
48
+ for cur_node in py_file_ast.body:
49
+ if isinstance(cur_node, ast.Import):
50
+ imp_alias: ast.alias
51
+ for imp_alias in cur_node.names:
52
+ if imp_alias.name.split('.')[0] == src_root:
53
+ yield Precheck.Violation(self, f'Root relative import in file {py_file}: {imp_alias.name!r}')
54
+
55
+ elif isinstance(cur_node, ast.ImportFrom):
56
+ if cur_node.level == 0 and cur_node.module and cur_node.module.split('.')[0] == src_root:
57
+ yield Precheck.Violation(self, f'Root relative import in file {py_file}: {cur_node.module!r}')
58
+
59
+ return
60
+
61
+ async def _run_src_root(self, src_root: str) -> ta.AsyncGenerator[Precheck.Violation, None]:
62
+ py_files = [
63
+ os.path.join(e.root, f)
64
+ for e in self._dir_walk_cache.list_dir(src_root)
65
+ for f in e.files
66
+ if f.endswith('.py')
67
+ ]
68
+
69
+ for py_file in py_files:
70
+ async for v in self._run_py_file(py_file, src_root):
71
+ yield v
72
+
73
+ async def run(self) -> ta.AsyncGenerator[Precheck.Violation, None]:
74
+ for src_root in self._context.src_roots:
75
+ async for v in self._run_src_root(src_root):
76
+ yield v
@@ -29,7 +29,9 @@ class LitePython8Precheck(Precheck['LitePython8Precheck.Config']):
29
29
  concurrency: int = 4
30
30
 
31
31
  def __init__(self, context: PrecheckContext, config: Config = Config()) -> None:
32
- super().__init__(context, config)
32
+ super().__init__(config)
33
+
34
+ self._context = context
33
35
 
34
36
  #
35
37
 
@@ -25,11 +25,18 @@ import os.path
25
25
  import sys
26
26
  import typing as ta
27
27
 
28
+ from omlish import inject as inj
28
29
  from omlish.logs import all as logs
29
30
 
30
31
  from .base import Precheck
31
32
  from .base import PrecheckContext
33
+ from .caches import AstCache
34
+ from .caches import DirWalkCache
35
+ from .caches import HeadersCache
36
+ from .caches import TextFileCache
37
+ from .caches import TokensCache
32
38
  from .git import GitBlacklistPrecheck
39
+ from .imports import RootRelativeImportPrecheck
33
40
  from .lite import LitePython8Precheck
34
41
  from .manifests import ManifestsPrecheck
35
42
  from .scripts import ScriptDepsPrecheck
@@ -41,6 +48,36 @@ log = logging.getLogger(__name__)
41
48
  ##
42
49
 
43
50
 
51
+ def bind_main(
52
+ ctx: PrecheckContext,
53
+ pc_cfgs: ta.Iterable[Precheck.Config],
54
+ ) -> inj.Elements:
55
+ lst: list[inj.Elemental] = [
56
+ inj.bind(ctx),
57
+
58
+ inj.set_binder[Precheck](),
59
+
60
+ inj.bind(AstCache, singleton=True),
61
+ inj.bind(DirWalkCache, singleton=True),
62
+ inj.bind(HeadersCache, singleton=True),
63
+ inj.bind(TextFileCache, singleton=True),
64
+ inj.bind(TokensCache, singleton=True),
65
+ ]
66
+
67
+ #
68
+
69
+ for pc_cfg in pc_cfgs:
70
+ lst.extend([
71
+ inj.bind(pc_cfg),
72
+ inj.bind(pc_cfg.configurable_cls, eager=True, singleton=True),
73
+ inj.set_binder[Precheck]().bind(pc_cfg.configurable_cls),
74
+ ])
75
+
76
+ #
77
+
78
+ return inj.as_elements(*lst)
79
+
80
+
44
81
  def _check_cmd(args) -> None:
45
82
  if not os.path.isfile('pyproject.toml'):
46
83
  raise RuntimeError('must run in project root')
@@ -49,34 +86,44 @@ def _check_cmd(args) -> None:
49
86
  src_roots=args.roots,
50
87
  )
51
88
 
52
- pcs: list[Precheck] = [
53
- GitBlacklistPrecheck(ctx),
54
- ScriptDepsPrecheck(ctx),
55
- LitePython8Precheck(ctx),
56
- ManifestsPrecheck(ctx),
89
+ pc_cfgs: list[Precheck.Config] = [
90
+ GitBlacklistPrecheck.Config(),
91
+ LitePython8Precheck.Config(),
92
+ ManifestsPrecheck.Config(),
93
+ RootRelativeImportPrecheck.Config(),
94
+ ScriptDepsPrecheck.Config(),
57
95
  ]
58
96
 
59
- async def run() -> list[Precheck.Violation]:
60
- vs: list[Precheck.Violation] = []
61
-
62
- for pc in pcs:
63
- log.info('Running precheck: %s', type(pc).__name__)
64
- async for v in pc.run():
65
- vs.append(v)
66
- print('*** VIOLATION ***')
67
- print(f'Seq: {len(vs)}')
68
- print(f'Precheck: {v.pc}')
69
- print(f'Message:')
70
- print(v.msg.strip())
71
- print()
72
-
73
- return vs
74
-
75
- vs = asyncio.run(run())
76
-
77
- if vs:
78
- print(f'{len(vs)} violations found')
79
- sys.exit(1)
97
+ with inj.create_managed_injector(bind_main(
98
+ ctx,
99
+ pc_cfgs,
100
+ )) as injector:
101
+ async def run() -> list[Precheck.Violation]:
102
+ vs: list[Precheck.Violation] = []
103
+
104
+ pcs = sorted(
105
+ injector[ta.AbstractSet[Precheck]],
106
+ key=lambda pc: type(pc).__name__,
107
+ )
108
+
109
+ for pc in pcs:
110
+ log.info('Running precheck: %s', type(pc).__name__)
111
+ async for v in pc.run():
112
+ vs.append(v)
113
+ print('*** VIOLATION ***')
114
+ print(f'Seq: {len(vs)}')
115
+ print(f'Precheck: {v.pc}')
116
+ print(f'Message:')
117
+ print(v.msg.strip())
118
+ print()
119
+
120
+ return vs
121
+
122
+ vs = asyncio.run(run())
123
+
124
+ if vs:
125
+ print(f'{len(vs)} violations found')
126
+ sys.exit(1)
80
127
 
81
128
 
82
129
  ##
@@ -16,7 +16,9 @@ class ManifestsPrecheck(Precheck['ManifestsPrecheck.Config']):
16
16
  pass
17
17
 
18
18
  def __init__(self, context: PrecheckContext, config: Config = Config()) -> None:
19
- super().__init__(context, config)
19
+ super().__init__(config)
20
+
21
+ self._context = context
20
22
 
21
23
  async def run(self) -> ta.AsyncGenerator[Precheck.Violation, None]:
22
24
  for src_root in self._context.src_roots:
@@ -17,8 +17,14 @@ class ScriptDepsPrecheck(Precheck['ScriptDepsPrecheck.Config']):
17
17
  class Config(Precheck.Config):
18
18
  pass
19
19
 
20
- def __init__(self, context: PrecheckContext, config: Config = Config()) -> None:
21
- super().__init__(context, config)
20
+ def __init__(
21
+ self,
22
+ context: PrecheckContext,
23
+ config: Config = Config(),
24
+ ) -> None:
25
+ super().__init__(config)
26
+
27
+ self._context = context
22
28
 
23
29
  async def run(self) -> ta.AsyncGenerator[Precheck.Violation, None]:
24
30
  for fp in magic.find_magic_files(
@@ -2,6 +2,7 @@
2
2
  # flake8: noqa: F401
3
3
 
4
4
  from prompt_toolkit import Application
5
+ from prompt_toolkit import prompt
5
6
  from prompt_toolkit.application import get_app
6
7
  from prompt_toolkit.application import get_app_session
7
8
  from prompt_toolkit.application import run_in_terminal
@@ -21,6 +22,7 @@ from prompt_toolkit.filters import is_searching
21
22
  from prompt_toolkit.filters import to_filter
22
23
  from prompt_toolkit.filters import vi_insert_mode
23
24
  from prompt_toolkit.filters import vi_navigation_mode
25
+ from prompt_toolkit.formatted_text import ANSI
24
26
  from prompt_toolkit.formatted_text import HTML
25
27
  from prompt_toolkit.formatted_text import AnyFormattedText
26
28
  from prompt_toolkit.formatted_text import FormattedText
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: omdev
3
- Version: 0.0.0.dev292
3
+ Version: 0.0.0.dev293
4
4
  Summary: omdev
5
5
  Author: wrmsr
6
6
  License: BSD-3-Clause
@@ -12,7 +12,7 @@ Classifier: Operating System :: OS Independent
12
12
  Classifier: Operating System :: POSIX
13
13
  Requires-Python: >=3.12
14
14
  License-File: LICENSE
15
- Requires-Dist: omlish==0.0.0.dev292
15
+ Requires-Dist: omlish==0.0.0.dev293
16
16
  Provides-Extra: all
17
17
  Requires-Dist: black~=25.1; extra == "all"
18
18
  Requires-Dist: pycparser~=2.22; extra == "all"
@@ -202,7 +202,9 @@ omdev/packaging/wheelfile.py
202
202
  omdev/precheck/__init__.py
203
203
  omdev/precheck/__main__.py
204
204
  omdev/precheck/base.py
205
+ omdev/precheck/caches.py
205
206
  omdev/precheck/git.py
207
+ omdev/precheck/imports.py
206
208
  omdev/precheck/lite.py
207
209
  omdev/precheck/main.py
208
210
  omdev/precheck/manifests.py
@@ -1,4 +1,4 @@
1
- omlish==0.0.0.dev292
1
+ omlish==0.0.0.dev293
2
2
 
3
3
  [all]
4
4
  black~=25.1
@@ -12,7 +12,7 @@ authors = [
12
12
  urls = {source = 'https://github.com/wrmsr/omlish'}
13
13
  license = {text = 'BSD-3-Clause'}
14
14
  requires-python = '>=3.12'
15
- version = '0.0.0.dev292'
15
+ version = '0.0.0.dev293'
16
16
  classifiers = [
17
17
  'License :: OSI Approved :: BSD License',
18
18
  'Development Status :: 2 - Pre-Alpha',
@@ -22,7 +22,7 @@ classifiers = [
22
22
  ]
23
23
  description = 'omdev'
24
24
  dependencies = [
25
- 'omlish == 0.0.0.dev292',
25
+ 'omlish == 0.0.0.dev293',
26
26
  ]
27
27
 
28
28
  [project.optional-dependencies]
File without changes
File without changes
File without changes