omdev 0.0.0.dev231__tar.gz → 0.0.0.dev233__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 (263) hide show
  1. {omdev-0.0.0.dev231/omdev.egg-info → omdev-0.0.0.dev233}/PKG-INFO +2 -2
  2. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/.manifests.json +20 -4
  3. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cache/data/defaults.py +2 -1
  4. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cli/main.py +5 -16
  5. omdev-0.0.0.dev233/omdev/home/paths.py +20 -0
  6. omdev-0.0.0.dev233/omdev/home/secrets.py +33 -0
  7. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/imgur.py +1 -1
  8. omdev-0.0.0.dev233/omdev/tools/git/__main__.py +11 -0
  9. omdev-0.0.0.dev231/omdev/tools/git.py → omdev-0.0.0.dev233/omdev/tools/git/cli.py +22 -9
  10. omdev-0.0.0.dev233/omdev/tools/git/messages.py +60 -0
  11. omdev-0.0.0.dev233/omdev/tools/json/__init__.py +0 -0
  12. omdev-0.0.0.dev233/omdev/tools/pawk/__init__.py +0 -0
  13. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233/omdev.egg-info}/PKG-INFO +2 -2
  14. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev.egg-info/SOURCES.txt +7 -2
  15. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev.egg-info/requires.txt +1 -1
  16. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/pyproject.toml +2 -2
  17. omdev-0.0.0.dev231/omdev/secrets.py +0 -23
  18. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/LICENSE +0 -0
  19. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/MANIFEST.in +0 -0
  20. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/README.rst +0 -0
  21. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/__about__.py +0 -0
  22. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/__init__.py +0 -0
  23. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/amalg/__init__.py +0 -0
  24. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/amalg/__main__.py +0 -0
  25. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/amalg/gen.py +0 -0
  26. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/amalg/imports.py +0 -0
  27. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/amalg/main.py +0 -0
  28. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/amalg/manifests.py +0 -0
  29. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/amalg/resources.py +0 -0
  30. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/amalg/srcfiles.py +0 -0
  31. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/amalg/strip.py +0 -0
  32. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/amalg/types.py +0 -0
  33. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/amalg/typing.py +0 -0
  34. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/antlr/__init__.py +0 -0
  35. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/antlr/consts.py +0 -0
  36. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/antlr/gen.py +0 -0
  37. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/bracepy.py +0 -0
  38. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cache/__init__.py +0 -0
  39. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cache/compute/__init__.py +0 -0
  40. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cache/compute/cache.py +0 -0
  41. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cache/compute/contexts.py +0 -0
  42. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cache/compute/currents.py +0 -0
  43. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cache/compute/fns.py +0 -0
  44. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cache/compute/resolvers.py +0 -0
  45. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cache/compute/storage.py +0 -0
  46. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cache/compute/types.py +0 -0
  47. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cache/data/__init__.py +0 -0
  48. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cache/data/actions.py +0 -0
  49. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cache/data/cache.py +0 -0
  50. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cache/data/consts.py +0 -0
  51. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cache/data/manifests.py +0 -0
  52. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cache/data/specs.py +0 -0
  53. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cc/__init__.py +0 -0
  54. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cc/__main__.py +0 -0
  55. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cc/cdeps.py +0 -0
  56. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cc/cdeps.toml +0 -0
  57. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cc/cli.py +0 -0
  58. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cexts/__init__.py +0 -0
  59. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cexts/_boilerplate.cc +0 -0
  60. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cexts/_distutils/LICENSE +0 -0
  61. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cexts/_distutils/__init__.py +0 -0
  62. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cexts/_distutils/build_ext.py +0 -0
  63. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cexts/_distutils/compilers/__init__.py +0 -0
  64. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cexts/_distutils/compilers/ccompiler.py +0 -0
  65. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cexts/_distutils/compilers/options.py +0 -0
  66. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cexts/_distutils/compilers/unixccompiler.py +0 -0
  67. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cexts/_distutils/dir_util.py +0 -0
  68. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cexts/_distutils/errors.py +0 -0
  69. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cexts/_distutils/extension.py +0 -0
  70. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cexts/_distutils/file_util.py +0 -0
  71. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cexts/_distutils/modified.py +0 -0
  72. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cexts/_distutils/spawn.py +0 -0
  73. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cexts/_distutils/sysconfig.py +0 -0
  74. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cexts/_distutils/util.py +0 -0
  75. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cexts/_distutils/version.py +0 -0
  76. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cexts/build.py +0 -0
  77. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cexts/cmake.py +0 -0
  78. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cexts/importhook.py +0 -0
  79. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cexts/magic.py +0 -0
  80. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cexts/scan.py +0 -0
  81. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/ci/__init__.py +0 -0
  82. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/ci/__main__.py +0 -0
  83. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/ci/cache.py +0 -0
  84. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/ci/ci.py +0 -0
  85. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/ci/cli.py +0 -0
  86. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/ci/compose.py +0 -0
  87. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/ci/consts.py +0 -0
  88. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/ci/docker/__init__.py +0 -0
  89. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/ci/docker/buildcaching.py +0 -0
  90. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/ci/docker/cache.py +0 -0
  91. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/ci/docker/cacheserved.py +0 -0
  92. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/ci/docker/cmds.py +0 -0
  93. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/ci/docker/dataserver.py +0 -0
  94. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/ci/docker/imagepulling.py +0 -0
  95. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/ci/docker/inject.py +0 -0
  96. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/ci/docker/packing.py +0 -0
  97. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/ci/docker/repositories.py +0 -0
  98. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/ci/docker/utils.py +0 -0
  99. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/ci/github/__init__.py +0 -0
  100. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/ci/github/api.py +0 -0
  101. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/ci/github/bootstrap.py +0 -0
  102. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/ci/github/cache.py +0 -0
  103. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/ci/github/cli.py +0 -0
  104. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/ci/github/client.py +0 -0
  105. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/ci/github/env.py +0 -0
  106. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/ci/github/inject.py +0 -0
  107. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/ci/inject.py +0 -0
  108. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/ci/requirements.py +0 -0
  109. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/ci/shell.py +0 -0
  110. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/ci/utils.py +0 -0
  111. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/classdot.py +0 -0
  112. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cli/__init__.py +0 -0
  113. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cli/__main__.py +0 -0
  114. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cli/_pathhack.py +0 -0
  115. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cli/clicli.py +0 -0
  116. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cli/install.py +0 -0
  117. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cli/managers.py +0 -0
  118. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cli/types.py +0 -0
  119. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/clipboard/__init__.py +0 -0
  120. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/clipboard/clipboard.py +0 -0
  121. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/clipboard/darwin_cf.py +0 -0
  122. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/clipboard/linux_x11.py +0 -0
  123. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/cmake.py +0 -0
  124. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/dataserver/__init__.py +0 -0
  125. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/dataserver/handlers.py +0 -0
  126. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/dataserver/http.py +0 -0
  127. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/dataserver/routes.py +0 -0
  128. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/dataserver/server.py +0 -0
  129. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/dataserver/targets.py +0 -0
  130. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/findimports.py +0 -0
  131. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/git/__init__.py +0 -0
  132. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/git/revisions.py +0 -0
  133. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/git/shallow.py +0 -0
  134. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/git/status.py +0 -0
  135. {omdev-0.0.0.dev231/omdev/interp/providers → omdev-0.0.0.dev233/omdev/home}/__init__.py +0 -0
  136. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/interp/__init__.py +0 -0
  137. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/interp/__main__.py +0 -0
  138. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/interp/cli.py +0 -0
  139. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/interp/default.py +0 -0
  140. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/interp/inject.py +0 -0
  141. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/interp/inspect.py +0 -0
  142. {omdev-0.0.0.dev231/omdev/interp/pyenv → omdev-0.0.0.dev233/omdev/interp/providers}/__init__.py +0 -0
  143. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/interp/providers/base.py +0 -0
  144. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/interp/providers/inject.py +0 -0
  145. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/interp/providers/running.py +0 -0
  146. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/interp/providers/standalone.py +0 -0
  147. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/interp/providers/system.py +0 -0
  148. {omdev-0.0.0.dev231/omdev/interp/uv → omdev-0.0.0.dev233/omdev/interp/pyenv}/__init__.py +0 -0
  149. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/interp/pyenv/inject.py +0 -0
  150. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/interp/pyenv/install.py +0 -0
  151. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/interp/pyenv/provider.py +0 -0
  152. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/interp/pyenv/pyenv.py +0 -0
  153. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/interp/resolvers.py +0 -0
  154. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/interp/types.py +0 -0
  155. {omdev-0.0.0.dev231/omdev/mypy → omdev-0.0.0.dev233/omdev/interp/uv}/__init__.py +0 -0
  156. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/interp/uv/inject.py +0 -0
  157. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/interp/uv/provider.py +0 -0
  158. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/interp/uv/uv.py +0 -0
  159. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/interp/venvs.py +0 -0
  160. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/magic/__init__.py +0 -0
  161. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/magic/__main__.py +0 -0
  162. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/magic/cli.py +0 -0
  163. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/magic/find.py +0 -0
  164. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/magic/magic.py +0 -0
  165. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/magic/prepare.py +0 -0
  166. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/magic/styles.py +0 -0
  167. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/manifests/__init__.py +0 -0
  168. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/manifests/__main__.py +0 -0
  169. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/manifests/build.py +0 -0
  170. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/manifests/main.py +0 -0
  171. {omdev-0.0.0.dev231/omdev/oci → omdev-0.0.0.dev233/omdev/mypy}/__init__.py +0 -0
  172. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/mypy/debug.py +0 -0
  173. {omdev-0.0.0.dev231/omdev/oci/pack → omdev-0.0.0.dev233/omdev/oci}/__init__.py +0 -0
  174. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/oci/building.py +0 -0
  175. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/oci/compression.py +0 -0
  176. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/oci/data.py +0 -0
  177. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/oci/datarefs.py +0 -0
  178. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/oci/dataserver.py +0 -0
  179. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/oci/loading.py +0 -0
  180. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/oci/media.py +0 -0
  181. {omdev-0.0.0.dev231/omdev/packaging → omdev-0.0.0.dev233/omdev/oci/pack}/__init__.py +0 -0
  182. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/oci/pack/packing.py +0 -0
  183. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/oci/pack/repositories.py +0 -0
  184. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/oci/pack/unpacking.py +0 -0
  185. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/oci/repositories.py +0 -0
  186. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/oci/tars.py +0 -0
  187. {omdev-0.0.0.dev231/omdev/precheck → omdev-0.0.0.dev233/omdev/packaging}/__init__.py +0 -0
  188. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/packaging/marshal.py +0 -0
  189. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/packaging/names.py +0 -0
  190. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/packaging/requires.py +0 -0
  191. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/packaging/specifiers.py +0 -0
  192. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/packaging/versions.py +0 -0
  193. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/pip.py +0 -0
  194. {omdev-0.0.0.dev231/omdev/ptk/apps → omdev-0.0.0.dev233/omdev/precheck}/__init__.py +0 -0
  195. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/precheck/__main__.py +0 -0
  196. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/precheck/base.py +0 -0
  197. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/precheck/git.py +0 -0
  198. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/precheck/lite.py +0 -0
  199. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/precheck/main.py +0 -0
  200. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/precheck/manifests.py +0 -0
  201. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/precheck/scripts.py +0 -0
  202. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/ptk/__init__.py +0 -0
  203. {omdev-0.0.0.dev231/omdev/pycharm → omdev-0.0.0.dev233/omdev/ptk/apps}/__init__.py +0 -0
  204. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/ptk/apps/ncdu.py +0 -0
  205. {omdev-0.0.0.dev231/omdev/pyproject/resources → omdev-0.0.0.dev233/omdev/pycharm}/__init__.py +0 -0
  206. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/pycharm/__main__.py +0 -0
  207. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/pycharm/cli.py +0 -0
  208. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/pyproject/__init__.py +0 -0
  209. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/pyproject/__main__.py +0 -0
  210. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/pyproject/cexts.py +0 -0
  211. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/pyproject/cli.py +0 -0
  212. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/pyproject/configs.py +0 -0
  213. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/pyproject/inject.py +0 -0
  214. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/pyproject/pkg.py +0 -0
  215. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/pyproject/reqs.py +0 -0
  216. {omdev-0.0.0.dev231/omdev/tokens → omdev-0.0.0.dev233/omdev/pyproject/resources}/__init__.py +0 -0
  217. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/pyproject/resources/docker-dev.sh +0 -0
  218. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/pyproject/resources/python.sh +0 -0
  219. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/pyproject/venvs.py +0 -0
  220. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/revisions.py +0 -0
  221. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/scripts/__init__.py +0 -0
  222. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/scripts/bumpversion.py +0 -0
  223. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/scripts/ci.py +0 -0
  224. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/scripts/execrss.py +0 -0
  225. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/scripts/exectime.py +0 -0
  226. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/scripts/importtrace.py +0 -0
  227. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/scripts/interp.py +0 -0
  228. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/scripts/pyproject.py +0 -0
  229. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/scripts/slowcat.py +0 -0
  230. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/scripts/tmpexec.py +0 -0
  231. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/tagstrings.py +0 -0
  232. {omdev-0.0.0.dev231/omdev/tools/json → omdev-0.0.0.dev233/omdev/tokens}/__init__.py +0 -0
  233. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/tokens/all.py +0 -0
  234. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/tokens/tokenizert.py +0 -0
  235. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/tokens/utils.py +0 -0
  236. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/tools/__init__.py +0 -0
  237. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/tools/cloc.py +0 -0
  238. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/tools/doc.py +0 -0
  239. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/tools/docker.py +0 -0
  240. {omdev-0.0.0.dev231/omdev/tools/pawk → omdev-0.0.0.dev233/omdev/tools/git}/__init__.py +0 -0
  241. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/tools/importscan.py +0 -0
  242. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/tools/json/__main__.py +0 -0
  243. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/tools/json/cli.py +0 -0
  244. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/tools/json/formats.py +0 -0
  245. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/tools/json/io.py +0 -0
  246. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/tools/json/parsing.py +0 -0
  247. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/tools/json/processing.py +0 -0
  248. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/tools/json/rendering.py +0 -0
  249. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/tools/linehisto.py +0 -0
  250. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/tools/mkenv.py +0 -0
  251. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/tools/mkrelimp.py +0 -0
  252. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/tools/notebook.py +0 -0
  253. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/tools/pawk/__main__.py +0 -0
  254. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/tools/pawk/pawk.py +0 -0
  255. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/tools/pip.py +0 -0
  256. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/tools/prof.py +0 -0
  257. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/tools/qr.py +0 -0
  258. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/tools/sqlrepl.py +0 -0
  259. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev/wheelfile.py +0 -0
  260. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev.egg-info/dependency_links.txt +0 -0
  261. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev.egg-info/entry_points.txt +0 -0
  262. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/omdev.egg-info/top_level.txt +0 -0
  263. {omdev-0.0.0.dev231 → omdev-0.0.0.dev233}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: omdev
3
- Version: 0.0.0.dev231
3
+ Version: 0.0.0.dev233
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.dev231
15
+ Requires-Dist: omlish==0.0.0.dev233
16
16
  Provides-Extra: all
17
17
  Requires-Dist: black~=25.1; extra == "all"
18
18
  Requires-Dist: pycparser~=2.22; extra == "all"
@@ -276,14 +276,30 @@
276
276
  }
277
277
  },
278
278
  {
279
- "module": ".tools.git",
279
+ "module": ".tools.git.__main__",
280
280
  "attr": "_CLI_MODULE",
281
- "file": "omdev/tools/git.py",
282
- "line": 231,
281
+ "file": "omdev/tools/git/__main__.py",
282
+ "line": 4,
283
283
  "value": {
284
284
  "$.cli.types.CliModule": {
285
285
  "cmd_name": "git",
286
- "mod_name": "omdev.tools.git"
286
+ "mod_name": "omdev.tools.git.__main__"
287
+ }
288
+ }
289
+ },
290
+ {
291
+ "module": ".tools.git.messages",
292
+ "attr": "_TIMESTAMP_GIT_MESSAGE_GENERATOR_MANIFEST",
293
+ "file": "omdev/tools/git/messages.py",
294
+ "line": 54,
295
+ "value": {
296
+ "$.tools.git.messages.GitMessageGeneratorManifest": {
297
+ "mod_name": "omdev.tools.git.messages",
298
+ "attr_name": "TimestampGitMessageGenerator",
299
+ "name": "timestamp",
300
+ "aliases": [
301
+ "ts"
302
+ ]
287
303
  }
288
304
  }
289
305
  },
@@ -2,6 +2,7 @@ import os.path
2
2
 
3
3
  from omlish import lang
4
4
 
5
+ from ...home.paths import get_cache_dir
5
6
  from .cache import Cache
6
7
 
7
8
 
@@ -10,7 +11,7 @@ from .cache import Cache
10
11
 
11
12
  @lang.cached_function(lock=True)
12
13
  def default_dir() -> str:
13
- return os.path.expanduser('~/.cache/omlish/data')
14
+ return os.path.join(get_cache_dir(), 'data')
14
15
 
15
16
 
16
17
  @lang.cached_function(lock=True)
@@ -185,23 +185,12 @@ def _build_arg_parser() -> argparse.ArgumentParser:
185
185
  def _build_cmd_set(args: ta.Any) -> CliCmdSet:
186
186
  ldr = ManifestLoader.from_entry_point(globals())
187
187
 
188
- pkgs: list[str] = []
189
-
190
- def scan_pkg_root(r: str) -> None:
191
- r = os.path.expanduser(r)
192
- for n in os.listdir(r):
193
- if os.path.isdir(p := os.path.join(r, n)) and os.path.exists(os.path.join(p, '__init__.py')):
194
- pkgs.append(n)
195
-
196
- if args.cli_pkg_root:
197
- for r in args.cli_pkg_root:
198
- scan_pkg_root(r)
199
-
200
- else:
201
- pkgs.extend(ldr.discover())
188
+ #
202
189
 
203
- if not pkgs:
204
- scan_pkg_root(os.getcwd())
190
+ pkgs = ldr.scan_or_discover_pkgs(
191
+ specified_roots=args.cli_pkg_root,
192
+ fallback_root=os.getcwd(),
193
+ )
205
194
 
206
195
  #
207
196
 
@@ -0,0 +1,20 @@
1
+ """
2
+ TODO:
3
+ - XDG cache root
4
+ """
5
+ import os.path
6
+
7
+
8
+ HOME_DIR_ENV_VAR = 'OMLISH_HOME'
9
+ DEFAULT_HOME_DIR = '~/.omlish'
10
+
11
+ CACHE_DIR_ENV_VAR = 'OMLISH_CACHE'
12
+ DEFAULT_CACHE_DIR = '~/.cache/omlish'
13
+
14
+
15
+ def get_home_dir() -> str:
16
+ return os.path.expanduser(os.getenv(HOME_DIR_ENV_VAR, DEFAULT_HOME_DIR))
17
+
18
+
19
+ def get_cache_dir() -> str:
20
+ return os.path.expanduser(os.getenv(DEFAULT_CACHE_DIR, DEFAULT_CACHE_DIR))
@@ -0,0 +1,33 @@
1
+ import os.path
2
+ import typing as ta
3
+
4
+ from omlish import lang
5
+ from omlish.secrets import all as sec
6
+
7
+ from .paths import get_home_dir
8
+
9
+
10
+ if ta.TYPE_CHECKING:
11
+ import yaml
12
+ else:
13
+ yaml = lang.proxy_import('yaml')
14
+
15
+
16
+ SECRETS_FILE_ENV_VAR = 'OMLISH_SECRETS'
17
+ DEFAULT_SECRETS_FILE_NAME = 'secrets.yml'
18
+
19
+
20
+ def get_secrets_file() -> str:
21
+ return os.path.expanduser(os.getenv(SECRETS_FILE_ENV_VAR, os.path.join(get_home_dir(), DEFAULT_SECRETS_FILE_NAME)))
22
+
23
+
24
+ def load_secrets() -> sec.Secrets:
25
+ dct: dict[str, sec.Secret] = {}
26
+ try:
27
+ with open(get_secrets_file()) as f:
28
+ for k, v in yaml.safe_load(f).items():
29
+ if isinstance(v, str):
30
+ dct[k] = sec.Secret(key=k, value=v)
31
+ except FileNotFoundError:
32
+ pass
33
+ return sec.MappingSecrets(dct)
@@ -33,7 +33,7 @@ from omlish.http import all as hu
33
33
  from omlish.secrets.secrets import Secret
34
34
 
35
35
  from .cli import CliModule
36
- from .secrets import load_secrets
36
+ from .home.secrets import load_secrets
37
37
 
38
38
 
39
39
  @dc.dataclass(frozen=True)
@@ -0,0 +1,11 @@
1
+ from ...cli import CliModule
2
+
3
+
4
+ # @omlish-manifest
5
+ _CLI_MODULE = CliModule('git', __name__)
6
+
7
+
8
+ if __name__ == '__main__':
9
+ from .cli import _main # noqa
10
+
11
+ _main()
@@ -9,14 +9,17 @@ import typing as ta
9
9
  import urllib.parse
10
10
 
11
11
  from omlish import check
12
- from omlish import lang
13
12
  from omlish.argparse import all as ap
14
13
  from omlish.formats import json
15
14
  from omlish.logs import all as logs
16
15
 
17
- from ..cli import CliModule
18
- from ..git.status import GitStatusItem
19
- from ..git.status import get_git_status
16
+ from ...git.status import GitStatusItem
17
+ from ...git.status import get_git_status
18
+ from .messages import TimestampGitMessageGenerator
19
+ from .messages import load_message_generator_manifests
20
+
21
+
22
+ ##
20
23
 
21
24
 
22
25
  def rev_parse(rev: str) -> str:
@@ -186,7 +189,7 @@ class Cli(ap.Cli):
186
189
 
187
190
  @ap.cmd(
188
191
  ap.arg('-m', '--message', nargs='?'),
189
- ap.arg('--time-fmt', default='%Y-%m-%dT%H:%M:%SZ'),
192
+ ap.arg('--time-fmt', default=TimestampGitMessageGenerator.DEFAULT_TIME_FMT),
190
193
  ap.arg('dir', nargs='*'),
191
194
  aliases=['acp'],
192
195
  )
@@ -201,7 +204,7 @@ class Cli(ap.Cli):
201
204
  if self.args.message is not None:
202
205
  msg = self.args.message
203
206
  else:
204
- msg = lang.utcnow().strftime(self.args.time_fmt)
207
+ msg = TimestampGitMessageGenerator(self.args.time_fmt).generate_commit_message()
205
208
  subprocess.check_call(['git', 'commit', '-m', msg], cwd=cwd)
206
209
 
207
210
  subprocess.check_call(['git', 'push'], cwd=cwd)
@@ -227,11 +230,21 @@ class Cli(ap.Cli):
227
230
  for d in self.args.dir:
228
231
  run(d)
229
232
 
233
+ #
230
234
 
231
- # @omlish-manifest
232
- _CLI_MODULE = CliModule('git', __name__)
235
+ @ap.cmd()
236
+ def list_message_generators(self) -> None:
237
+ for mgm in load_message_generator_manifests():
238
+ print(mgm.name)
233
239
 
234
240
 
235
- if __name__ == '__main__':
241
+ ##
242
+
243
+
244
+ def _main() -> None:
236
245
  logs.configure_standard_logging('INFO')
237
246
  Cli()()
247
+
248
+
249
+ if __name__ == '__main__':
250
+ _main()
@@ -0,0 +1,60 @@
1
+ import abc
2
+ import dataclasses as dc
3
+ import os
4
+ import typing as ta
5
+
6
+ from omlish import cached
7
+ from omlish import lang
8
+ from omlish.manifests import load as manifest_load
9
+
10
+
11
+ ##
12
+
13
+
14
+ class GitMessageGenerator(abc.ABC):
15
+ @abc.abstractmethod
16
+ def generate_commit_message(self) -> str:
17
+ raise NotImplementedError
18
+
19
+
20
+ #
21
+
22
+
23
+ @dc.dataclass(frozen=True, kw_only=True)
24
+ class GitMessageGeneratorManifest:
25
+ mod_name: str
26
+ attr_name: str
27
+ name: str
28
+ aliases: ta.Collection[str] | None = None
29
+
30
+
31
+ @cached.function
32
+ def load_message_generator_manifests() -> ta.Sequence[GitMessageGeneratorManifest]:
33
+ ldr = manifest_load.MANIFEST_LOADER
34
+ pkgs = ldr.scan_or_discover_pkgs(fallback_root=os.getcwd())
35
+ mfs = ldr.load(*pkgs, only=[GitMessageGeneratorManifest])
36
+ return [mf.value for mf in mfs]
37
+
38
+
39
+ ##
40
+
41
+
42
+ @dc.dataclass(frozen=True)
43
+ class TimestampGitMessageGenerator(GitMessageGenerator):
44
+ DEFAULT_TIME_FMT: ta.ClassVar[str] = '%Y-%m-%d %H:%M:%S'
45
+ time_fmt: str = DEFAULT_TIME_FMT
46
+
47
+ def generate_commit_message(self) -> str:
48
+ return lang.utcnow().strftime(self.time_fmt)
49
+
50
+
51
+ #
52
+
53
+
54
+ # @omlish-manifest
55
+ _TIMESTAMP_GIT_MESSAGE_GENERATOR_MANIFEST = GitMessageGeneratorManifest(
56
+ mod_name=__name__,
57
+ attr_name='TimestampGitMessageGenerator',
58
+ name='timestamp',
59
+ aliases=['ts'],
60
+ )
File without changes
File without changes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: omdev
3
- Version: 0.0.0.dev231
3
+ Version: 0.0.0.dev233
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.dev231
15
+ Requires-Dist: omlish==0.0.0.dev233
16
16
  Provides-Extra: all
17
17
  Requires-Dist: black~=25.1; extra == "all"
18
18
  Requires-Dist: pycparser~=2.22; extra == "all"
@@ -12,7 +12,6 @@ omdev/findimports.py
12
12
  omdev/imgur.py
13
13
  omdev/pip.py
14
14
  omdev/revisions.py
15
- omdev/secrets.py
16
15
  omdev/tagstrings.py
17
16
  omdev/wheelfile.py
18
17
  omdev.egg-info/PKG-INFO
@@ -131,6 +130,9 @@ omdev/git/__init__.py
131
130
  omdev/git/revisions.py
132
131
  omdev/git/shallow.py
133
132
  omdev/git/status.py
133
+ omdev/home/__init__.py
134
+ omdev/home/paths.py
135
+ omdev/home/secrets.py
134
136
  omdev/interp/__init__.py
135
137
  omdev/interp/__main__.py
136
138
  omdev/interp/cli.py
@@ -232,7 +234,6 @@ omdev/tools/__init__.py
232
234
  omdev/tools/cloc.py
233
235
  omdev/tools/doc.py
234
236
  omdev/tools/docker.py
235
- omdev/tools/git.py
236
237
  omdev/tools/importscan.py
237
238
  omdev/tools/linehisto.py
238
239
  omdev/tools/mkenv.py
@@ -242,6 +243,10 @@ omdev/tools/pip.py
242
243
  omdev/tools/prof.py
243
244
  omdev/tools/qr.py
244
245
  omdev/tools/sqlrepl.py
246
+ omdev/tools/git/__init__.py
247
+ omdev/tools/git/__main__.py
248
+ omdev/tools/git/cli.py
249
+ omdev/tools/git/messages.py
245
250
  omdev/tools/json/__init__.py
246
251
  omdev/tools/json/__main__.py
247
252
  omdev/tools/json/cli.py
@@ -1,4 +1,4 @@
1
- omlish==0.0.0.dev231
1
+ omlish==0.0.0.dev233
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.dev231'
15
+ version = '0.0.0.dev233'
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.dev231',
25
+ 'omlish == 0.0.0.dev233',
26
26
  ]
27
27
 
28
28
  [project.optional-dependencies]
@@ -1,23 +0,0 @@
1
- import os.path
2
- import typing as ta
3
-
4
- from omlish import lang
5
- from omlish.secrets import all as sec
6
-
7
-
8
- if ta.TYPE_CHECKING:
9
- import yaml
10
- else:
11
- yaml = lang.proxy_import('yaml')
12
-
13
-
14
- SECRETS_FILE = os.getenv('SECRETS_FILE', '~/.omlish/secrets.yml')
15
-
16
-
17
- def load_secrets() -> sec.Secrets:
18
- dct: dict[str, sec.Secret] = {}
19
- with open(os.path.expanduser(SECRETS_FILE)) as f:
20
- for k, v in yaml.safe_load(f).items():
21
- if isinstance(v, str):
22
- dct[k] = sec.Secret(key=k, value=v)
23
- return sec.MappingSecrets(dct)
File without changes
File without changes
File without changes