omdev 0.0.0.dev211__tar.gz → 0.0.0.dev213__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (225) hide show
  1. {omdev-0.0.0.dev211/omdev.egg-info → omdev-0.0.0.dev213}/PKG-INFO +2 -5
  2. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/.manifests.json +15 -1
  3. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/__about__.py +0 -4
  4. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/amalg/gen.py +2 -3
  5. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/amalg/imports.py +4 -5
  6. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/amalg/manifests.py +7 -10
  7. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/amalg/resources.py +24 -27
  8. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/amalg/srcfiles.py +7 -10
  9. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/amalg/strip.py +4 -5
  10. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/amalg/types.py +1 -1
  11. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/amalg/typing.py +9 -8
  12. omdev-0.0.0.dev213/omdev/cc/cdeps.py +71 -0
  13. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/cc/cdeps.toml +19 -2
  14. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/cc/cli.py +13 -1
  15. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/ci/ci.py +71 -48
  16. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/ci/cli.py +22 -10
  17. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/ci/compose.py +30 -56
  18. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/ci/docker.py +35 -16
  19. omdev-0.0.0.dev213/omdev/ci/github/cache.py +324 -0
  20. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/ci/github/cacheapi.py +1 -1
  21. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/ci/github/cli.py +2 -2
  22. omdev-0.0.0.dev213/omdev/ci/github/curl.py +209 -0
  23. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/ci/requirements.py +2 -2
  24. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/git/shallow.py +1 -1
  25. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/scripts/ci.py +948 -451
  26. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/scripts/interp.py +23 -0
  27. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/scripts/pyproject.py +23 -0
  28. omdev-0.0.0.dev213/omdev/tokens/all.py +35 -0
  29. omdev-0.0.0.dev213/omdev/tokens/tokenizert.py +215 -0
  30. omdev-0.0.0.dev211/omdev/tokens.py → omdev-0.0.0.dev213/omdev/tokens/utils.py +6 -12
  31. omdev-0.0.0.dev213/omdev/tools/mkenv.py +131 -0
  32. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/tools/mkrelimp.py +4 -6
  33. omdev-0.0.0.dev213/omdev/tools/pawk/__init__.py +0 -0
  34. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213/omdev.egg-info}/PKG-INFO +2 -5
  35. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev.egg-info/SOURCES.txt +6 -1
  36. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev.egg-info/requires.txt +1 -5
  37. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/pyproject.toml +2 -6
  38. omdev-0.0.0.dev211/omdev/cc/cdeps.py +0 -38
  39. omdev-0.0.0.dev211/omdev/ci/github/cache.py +0 -355
  40. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/LICENSE +0 -0
  41. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/MANIFEST.in +0 -0
  42. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/README.rst +0 -0
  43. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/__init__.py +0 -0
  44. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/amalg/__init__.py +0 -0
  45. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/amalg/__main__.py +0 -0
  46. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/amalg/main.py +0 -0
  47. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/antlr/__init__.py +0 -0
  48. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/antlr/consts.py +0 -0
  49. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/antlr/gen.py +0 -0
  50. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/bracepy.py +0 -0
  51. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/cache/__init__.py +0 -0
  52. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/cache/compute/__init__.py +0 -0
  53. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/cache/compute/cache.py +0 -0
  54. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/cache/compute/contexts.py +0 -0
  55. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/cache/compute/currents.py +0 -0
  56. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/cache/compute/fns.py +0 -0
  57. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/cache/compute/resolvers.py +0 -0
  58. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/cache/compute/storage.py +0 -0
  59. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/cache/compute/types.py +0 -0
  60. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/cache/data/__init__.py +0 -0
  61. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/cache/data/actions.py +0 -0
  62. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/cache/data/cache.py +0 -0
  63. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/cache/data/consts.py +0 -0
  64. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/cache/data/defaults.py +0 -0
  65. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/cache/data/manifests.py +0 -0
  66. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/cache/data/specs.py +0 -0
  67. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/cc/__init__.py +0 -0
  68. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/cc/__main__.py +0 -0
  69. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/cexts/__init__.py +0 -0
  70. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/cexts/_boilerplate.cc +0 -0
  71. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/cexts/_distutils/LICENSE +0 -0
  72. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/cexts/_distutils/__init__.py +0 -0
  73. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/cexts/_distutils/build_ext.py +0 -0
  74. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/cexts/_distutils/compilers/__init__.py +0 -0
  75. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/cexts/_distutils/compilers/ccompiler.py +0 -0
  76. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/cexts/_distutils/compilers/options.py +0 -0
  77. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/cexts/_distutils/compilers/unixccompiler.py +0 -0
  78. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/cexts/_distutils/dir_util.py +0 -0
  79. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/cexts/_distutils/errors.py +0 -0
  80. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/cexts/_distutils/extension.py +0 -0
  81. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/cexts/_distutils/file_util.py +0 -0
  82. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/cexts/_distutils/modified.py +0 -0
  83. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/cexts/_distutils/spawn.py +0 -0
  84. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/cexts/_distutils/sysconfig.py +0 -0
  85. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/cexts/_distutils/util.py +0 -0
  86. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/cexts/_distutils/version.py +0 -0
  87. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/cexts/build.py +0 -0
  88. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/cexts/cmake.py +0 -0
  89. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/cexts/importhook.py +0 -0
  90. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/cexts/magic.py +0 -0
  91. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/cexts/scan.py +0 -0
  92. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/ci/__init__.py +0 -0
  93. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/ci/__main__.py +0 -0
  94. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/ci/cache.py +0 -0
  95. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/ci/github/__init__.py +0 -0
  96. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/ci/github/bootstrap.py +0 -0
  97. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/ci/shell.py +0 -0
  98. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/ci/utils.py +0 -0
  99. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/classdot.py +0 -0
  100. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/cli/__init__.py +0 -0
  101. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/cli/__main__.py +0 -0
  102. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/cli/_pathhack.py +0 -0
  103. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/cli/clicli.py +0 -0
  104. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/cli/install.py +0 -0
  105. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/cli/main.py +0 -0
  106. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/cli/managers.py +0 -0
  107. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/cli/types.py +0 -0
  108. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/clipboard/__init__.py +0 -0
  109. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/clipboard/clipboard.py +0 -0
  110. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/clipboard/darwin_cf.py +0 -0
  111. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/clipboard/linux_x11.py +0 -0
  112. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/cmake.py +0 -0
  113. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/findimports.py +0 -0
  114. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/git/__init__.py +0 -0
  115. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/git/revisions.py +0 -0
  116. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/git/status.py +0 -0
  117. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/imgur.py +0 -0
  118. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/interp/__init__.py +0 -0
  119. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/interp/__main__.py +0 -0
  120. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/interp/cli.py +0 -0
  121. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/interp/default.py +0 -0
  122. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/interp/inject.py +0 -0
  123. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/interp/inspect.py +0 -0
  124. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/interp/providers/__init__.py +0 -0
  125. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/interp/providers/base.py +0 -0
  126. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/interp/providers/inject.py +0 -0
  127. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/interp/providers/running.py +0 -0
  128. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/interp/providers/standalone.py +0 -0
  129. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/interp/providers/system.py +0 -0
  130. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/interp/pyenv/__init__.py +0 -0
  131. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/interp/pyenv/inject.py +0 -0
  132. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/interp/pyenv/install.py +0 -0
  133. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/interp/pyenv/provider.py +0 -0
  134. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/interp/pyenv/pyenv.py +0 -0
  135. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/interp/resolvers.py +0 -0
  136. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/interp/types.py +0 -0
  137. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/interp/uv/__init__.py +0 -0
  138. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/interp/uv/inject.py +0 -0
  139. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/interp/uv/provider.py +0 -0
  140. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/interp/uv/uv.py +0 -0
  141. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/interp/venvs.py +0 -0
  142. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/magic/__init__.py +0 -0
  143. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/magic/__main__.py +0 -0
  144. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/magic/cli.py +0 -0
  145. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/magic/find.py +0 -0
  146. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/magic/magic.py +0 -0
  147. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/magic/prepare.py +0 -0
  148. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/magic/styles.py +0 -0
  149. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/manifests/__init__.py +0 -0
  150. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/manifests/__main__.py +0 -0
  151. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/manifests/build.py +0 -0
  152. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/manifests/main.py +0 -0
  153. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/mypy/__init__.py +0 -0
  154. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/mypy/debug.py +0 -0
  155. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/packaging/__init__.py +0 -0
  156. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/packaging/marshal.py +0 -0
  157. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/packaging/names.py +0 -0
  158. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/packaging/requires.py +0 -0
  159. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/packaging/specifiers.py +0 -0
  160. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/packaging/versions.py +0 -0
  161. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/pip.py +0 -0
  162. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/precheck/__init__.py +0 -0
  163. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/precheck/__main__.py +0 -0
  164. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/precheck/base.py +0 -0
  165. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/precheck/git.py +0 -0
  166. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/precheck/lite.py +0 -0
  167. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/precheck/main.py +0 -0
  168. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/precheck/manifests.py +0 -0
  169. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/precheck/scripts.py +0 -0
  170. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/ptk/__init__.py +0 -0
  171. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/ptk/apps/__init__.py +0 -0
  172. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/ptk/apps/ncdu.py +0 -0
  173. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/pycharm/__init__.py +0 -0
  174. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/pycharm/__main__.py +0 -0
  175. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/pycharm/cli.py +0 -0
  176. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/pyproject/__init__.py +0 -0
  177. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/pyproject/__main__.py +0 -0
  178. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/pyproject/cexts.py +0 -0
  179. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/pyproject/cli.py +0 -0
  180. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/pyproject/configs.py +0 -0
  181. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/pyproject/inject.py +0 -0
  182. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/pyproject/pkg.py +0 -0
  183. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/pyproject/reqs.py +0 -0
  184. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/pyproject/resources/__init__.py +0 -0
  185. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/pyproject/resources/docker-dev.sh +0 -0
  186. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/pyproject/resources/python.sh +0 -0
  187. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/pyproject/venvs.py +0 -0
  188. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/revisions.py +0 -0
  189. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/scripts/__init__.py +0 -0
  190. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/scripts/bumpversion.py +0 -0
  191. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/scripts/execrss.py +0 -0
  192. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/scripts/exectime.py +0 -0
  193. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/scripts/importtrace.py +0 -0
  194. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/scripts/slowcat.py +0 -0
  195. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/scripts/tmpexec.py +0 -0
  196. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/secrets.py +0 -0
  197. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/tagstrings.py +0 -0
  198. {omdev-0.0.0.dev211/omdev/tools/json → omdev-0.0.0.dev213/omdev/tokens}/__init__.py +0 -0
  199. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/tools/__init__.py +0 -0
  200. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/tools/cloc.py +0 -0
  201. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/tools/doc.py +0 -0
  202. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/tools/docker.py +0 -0
  203. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/tools/git.py +0 -0
  204. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/tools/importscan.py +0 -0
  205. {omdev-0.0.0.dev211/omdev/tools/pawk → omdev-0.0.0.dev213/omdev/tools/json}/__init__.py +0 -0
  206. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/tools/json/__main__.py +0 -0
  207. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/tools/json/cli.py +0 -0
  208. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/tools/json/formats.py +0 -0
  209. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/tools/json/io.py +0 -0
  210. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/tools/json/parsing.py +0 -0
  211. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/tools/json/processing.py +0 -0
  212. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/tools/json/rendering.py +0 -0
  213. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/tools/linehisto.py +0 -0
  214. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/tools/notebook.py +0 -0
  215. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/tools/pawk/__main__.py +0 -0
  216. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/tools/pawk/pawk.py +0 -0
  217. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/tools/pip.py +0 -0
  218. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/tools/prof.py +0 -0
  219. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/tools/qr.py +0 -0
  220. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/tools/sqlrepl.py +0 -0
  221. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev/wheelfile.py +0 -0
  222. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev.egg-info/dependency_links.txt +0 -0
  223. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev.egg-info/entry_points.txt +0 -0
  224. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/omdev.egg-info/top_level.txt +0 -0
  225. {omdev-0.0.0.dev211 → omdev-0.0.0.dev213}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: omdev
3
- Version: 0.0.0.dev211
3
+ Version: 0.0.0.dev213
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.dev211
15
+ Requires-Dist: omlish==0.0.0.dev213
16
16
  Provides-Extra: all
17
17
  Requires-Dist: black~=24.10; extra == "all"
18
18
  Requires-Dist: pycparser~=2.22; extra == "all"
@@ -24,7 +24,6 @@ Requires-Dist: mypy~=1.11; extra == "all"
24
24
  Requires-Dist: gprof2dot~=2024.6; extra == "all"
25
25
  Requires-Dist: prompt-toolkit~=3.0; extra == "all"
26
26
  Requires-Dist: segno~=1.6; extra == "all"
27
- Requires-Dist: tokenize-rt~=6.1; extra == "all"
28
27
  Requires-Dist: wheel~=0.44; extra == "all"
29
28
  Provides-Extra: black
30
29
  Requires-Dist: black~=24.10; extra == "black"
@@ -43,7 +42,5 @@ Provides-Extra: ptk
43
42
  Requires-Dist: prompt-toolkit~=3.0; extra == "ptk"
44
43
  Provides-Extra: qr
45
44
  Requires-Dist: segno~=1.6; extra == "qr"
46
- Provides-Extra: tokens
47
- Requires-Dist: tokenize-rt~=6.1; extra == "tokens"
48
45
  Provides-Extra: wheel
49
46
  Requires-Dist: wheel~=0.44; extra == "wheel"
@@ -326,11 +326,25 @@
326
326
  }
327
327
  }
328
328
  },
329
+ {
330
+ "module": ".tools.mkenv",
331
+ "attr": "_CLI_MODULE",
332
+ "file": "omdev/tools/mkenv.py",
333
+ "line": 123,
334
+ "value": {
335
+ "$.cli.types.CliModule": {
336
+ "cmd_name": [
337
+ "mkenv"
338
+ ],
339
+ "mod_name": "omdev.tools.mkenv"
340
+ }
341
+ }
342
+ },
329
343
  {
330
344
  "module": ".tools.mkrelimp",
331
345
  "attr": "_CLI_MODULE",
332
346
  "file": "omdev/tools/mkrelimp.py",
333
- "line": 148,
347
+ "line": 146,
334
348
  "value": {
335
349
  "$.cli.types.CliModule": {
336
350
  "cmd_name": "py/mkrelimp",
@@ -45,10 +45,6 @@ class Project(ProjectBase):
45
45
  'segno ~= 1.6',
46
46
  ],
47
47
 
48
- 'tokens': [
49
- 'tokenize-rt ~= 6.1',
50
- ],
51
-
52
48
  'wheel': [
53
49
  'wheel ~= 0.44',
54
50
  ],
@@ -8,11 +8,10 @@ from omlish import collections as col
8
8
  from omlish import lang
9
9
  from omlish.lite.runtime import LITE_REQUIRED_PYTHON_VERSION
10
10
 
11
- from .. import tokens as tks
11
+ from ..tokens import all as tks
12
12
  from .srcfiles import SrcFile
13
13
  from .srcfiles import make_src_file
14
14
  from .strip import strip_main_lines
15
- from .types import Tokens
16
15
  from .typing import Typing
17
16
 
18
17
 
@@ -71,7 +70,7 @@ class AmalgGenerator:
71
70
  return self._src_files()[self._main_path]
72
71
 
73
72
  @cached.function
74
- def _header_lines(self) -> list[Tokens]:
73
+ def _header_lines(self) -> list[str]:
75
74
  header_lines = []
76
75
 
77
76
  if self._main_file().header_lines:
@@ -4,8 +4,7 @@ import typing as ta
4
4
 
5
5
  from omlish import check
6
6
 
7
- from .. import tokens as tks
8
- from .types import Tokens
7
+ from ..tokens import all as tks
9
8
 
10
9
 
11
10
  ##
@@ -22,11 +21,11 @@ class Import:
22
21
 
23
22
  mod_path: str | None
24
23
 
25
- toks: Tokens = dc.field(repr=False)
24
+ toks: tks.Tokens = dc.field(repr=False)
26
25
 
27
26
 
28
27
  def make_import(
29
- lts: Tokens,
28
+ lts: tks.Tokens,
30
29
  *,
31
30
  src_path: str,
32
31
  mounts: ta.Mapping[str, str],
@@ -90,7 +89,7 @@ def make_import(
90
89
  as_=as_,
91
90
 
92
91
  src_path=src_path,
93
- line=ft.line,
92
+ line=check.not_none(ft.line),
94
93
 
95
94
  mod_path=mod_path,
96
95
 
@@ -1,17 +1,14 @@
1
1
  import ast
2
2
 
3
- import tokenize_rt as trt
4
-
5
3
  from omlish import check
6
4
 
7
- from .. import tokens as tks
8
- from .types import Tokens
5
+ from ..tokens import all as tks
9
6
 
10
7
 
11
8
  ##
12
9
 
13
10
 
14
- def is_manifest_comment(line: Tokens) -> bool:
11
+ def is_manifest_comment(line: tks.Tokens) -> bool:
15
12
  if not line:
16
13
  return False
17
14
 
@@ -22,10 +19,10 @@ def is_manifest_comment(line: Tokens) -> bool:
22
19
 
23
20
 
24
21
  def comment_out_manifest_comment(
25
- line: Tokens,
26
- cls: list[Tokens],
22
+ line: tks.Tokens,
23
+ cls: list[tks.Tokens],
27
24
  i: int,
28
- ) -> tuple[list[Tokens], int]:
25
+ ) -> tuple[list[tks.Tokens], int]:
29
26
  mls = [line]
30
27
  while True:
31
28
  mls.append(cls[i])
@@ -41,8 +38,8 @@ def comment_out_manifest_comment(
41
38
  check.isinstance(check.single(mmod.body), ast.Assign)
42
39
  break
43
40
 
44
- out: list[Tokens] = [
45
- [trt.Token('COMMENT', '# ' + tks.join_toks(ml))]
41
+ out: list[tks.Tokens] = [
42
+ [tks.Token('COMMENT', '# ' + tks.join_toks(ml))]
46
43
  for ml in mls
47
44
  ]
48
45
 
@@ -4,10 +4,7 @@ import itertools
4
4
  import os.path
5
5
  import typing as ta
6
6
 
7
- import tokenize_rt as trt
8
-
9
- from .. import tokens as tks
10
- from .types import Tokens
7
+ from ..tokens import all as tks
11
8
 
12
9
 
13
10
  ##
@@ -19,7 +16,7 @@ class RootLevelResourcesRead(ta.NamedTuple):
19
16
  resource: str
20
17
 
21
18
 
22
- def is_root_level_resources_read(lts: Tokens) -> RootLevelResourcesRead | None:
19
+ def is_root_level_resources_read(lts: tks.Tokens) -> RootLevelResourcesRead | None:
23
20
  wts = list(tks.ignore_ws(lts, keep=['INDENT']))
24
21
 
25
22
  if not tks.match_toks(wts, [
@@ -47,36 +44,36 @@ def is_root_level_resources_read(lts: Tokens) -> RootLevelResourcesRead | None:
47
44
  def build_resource_lines(
48
45
  rsrc: RootLevelResourcesRead,
49
46
  path: str,
50
- ) -> list[Tokens]:
47
+ ) -> list[tks.Tokens]:
51
48
  rf = os.path.join(os.path.dirname(path), rsrc.resource)
52
49
 
53
50
  if rsrc.kind == 'binary':
54
51
  with open(rf, 'rb') as bf:
55
52
  rb = bf.read() # noqa
56
53
 
57
- out: list[Tokens] = [[
58
- trt.Token(name='NAME', src=rsrc.variable),
59
- trt.Token(name='UNIMPORTANT_WS', src=' '),
60
- trt.Token(name='OP', src='='),
61
- trt.Token(name='UNIMPORTANT_WS', src=' '),
62
- trt.Token(name='NAME', src='base64'),
63
- trt.Token(name='OP', src='.'),
64
- trt.Token(name='NAME', src='b64decode'),
65
- trt.Token(name='OP', src='('),
66
- trt.Token(name='NL', src='\n'),
54
+ out: list[tks.Tokens] = [[
55
+ tks.Token(name='NAME', src=rsrc.variable),
56
+ tks.Token(name='UNIMPORTANT_WS', src=' '),
57
+ tks.Token(name='OP', src='='),
58
+ tks.Token(name='UNIMPORTANT_WS', src=' '),
59
+ tks.Token(name='NAME', src='base64'),
60
+ tks.Token(name='OP', src='.'),
61
+ tks.Token(name='NAME', src='b64decode'),
62
+ tks.Token(name='OP', src='('),
63
+ tks.Token(name='NL', src='\n'),
67
64
  ]]
68
65
 
69
66
  rb64 = base64.b64encode(rb).decode('ascii')
70
67
  for chunk in itertools.batched(rb64, 96):
71
68
  out.append([
72
- trt.Token(name='UNIMPORTANT_WS', src=' '),
73
- trt.Token(name='STRING', src=f"'{''.join(chunk)}'"),
74
- trt.Token(name='NL', src='\n'),
69
+ tks.Token(name='UNIMPORTANT_WS', src=' '),
70
+ tks.Token(name='STRING', src=f"'{''.join(chunk)}'"),
71
+ tks.Token(name='NL', src='\n'),
75
72
  ])
76
73
 
77
74
  out.append([
78
- trt.Token(name='OP', src=')'),
79
- trt.Token(name='NEWLINE', src='\n'),
75
+ tks.Token(name='OP', src=')'),
76
+ tks.Token(name='NEWLINE', src='\n'),
80
77
  ])
81
78
 
82
79
  return out
@@ -87,12 +84,12 @@ def build_resource_lines(
87
84
  rt = rt.replace('\\', '\\\\') # Escape backslashes
88
85
  rt = rt.replace('"""', r'\"\"\"')
89
86
  return [[
90
- trt.Token(name='NAME', src=rsrc.variable),
91
- trt.Token(name='UNIMPORTANT_WS', src=' '),
92
- trt.Token(name='OP', src='='),
93
- trt.Token(name='UNIMPORTANT_WS', src=' '),
94
- trt.Token(name='STRING', src=f'"""\\\n{rt}""" # noqa\n'),
95
- trt.Token(name='NEWLINE', src=''),
87
+ tks.Token(name='NAME', src=rsrc.variable),
88
+ tks.Token(name='UNIMPORTANT_WS', src=' '),
89
+ tks.Token(name='OP', src='='),
90
+ tks.Token(name='UNIMPORTANT_WS', src=' '),
91
+ tks.Token(name='STRING', src=f'"""\\\n{rt}""" # noqa\n'),
92
+ tks.Token(name='NEWLINE', src=''),
96
93
  ]]
97
94
 
98
95
  else:
@@ -1,12 +1,10 @@
1
1
  import dataclasses as dc
2
2
  import typing as ta
3
3
 
4
- import tokenize_rt as trt
5
-
6
4
  from omlish import collections as col
7
5
  from omlish import lang
8
6
 
9
- from .. import tokens as tks
7
+ from ..tokens import all as tks
10
8
  from .imports import Import
11
9
  from .imports import make_import
12
10
  from .manifests import comment_out_manifest_comment
@@ -15,7 +13,6 @@ from .resources import build_resource_lines
15
13
  from .resources import is_root_level_resources_read
16
14
  from .strip import split_header_lines
17
15
  from .strip import strip_header_lines
18
- from .types import Tokens
19
16
  from .typing import Typing
20
17
  from .typing import is_root_level_if_type_checking_block
21
18
  from .typing import make_typing
@@ -30,13 +27,13 @@ class SrcFile:
30
27
  path: str
31
28
 
32
29
  src: str = dc.field(repr=False)
33
- tokens: Tokens = dc.field(repr=False)
34
- lines: ta.Sequence[Tokens] = dc.field(repr=False)
30
+ tokens: tks.Tokens = dc.field(repr=False)
31
+ lines: ta.Sequence[tks.Tokens] = dc.field(repr=False)
35
32
 
36
- header_lines: ta.Sequence[Tokens] = dc.field(repr=False)
33
+ header_lines: ta.Sequence[tks.Tokens] = dc.field(repr=False)
37
34
  imports: ta.Sequence[Import] = dc.field(repr=False)
38
35
  typings: ta.Sequence[Typing] = dc.field(repr=False)
39
- content_lines: ta.Sequence[Tokens] = dc.field(repr=False)
36
+ content_lines: ta.Sequence[tks.Tokens] = dc.field(repr=False)
40
37
 
41
38
  ruff_noqa: ta.AbstractSet[str] = dc.field(repr=False)
42
39
 
@@ -51,7 +48,7 @@ def make_src_file(
51
48
  with open(path) as f:
52
49
  src = f.read().strip()
53
50
 
54
- tokens = trt.src_to_tokens(src)
51
+ tokens = tks.src_to_tokens(src)
55
52
  lines = tks.split_lines(tokens)
56
53
 
57
54
  header_lines, cls = split_header_lines(lines)
@@ -61,7 +58,7 @@ def make_src_file(
61
58
 
62
59
  imps: list[Import] = []
63
60
  tys: list[Typing] = []
64
- ctls: list[Tokens] = []
61
+ ctls: list[tks.Tokens] = []
65
62
 
66
63
  has_binary_resources = False
67
64
 
@@ -2,8 +2,7 @@ import re
2
2
  import typing as ta
3
3
 
4
4
  from .. import magic
5
- from .. import tokens as tks
6
- from .types import Tokens
5
+ from ..tokens import all as tks
7
6
 
8
7
 
9
8
  ##
@@ -12,7 +11,7 @@ from .types import Tokens
12
11
  HEADER_NAMES = (*tks.WS_NAMES, 'COMMENT', 'STRING')
13
12
 
14
13
 
15
- def split_header_lines(lines: ta.Iterable[Tokens]) -> tuple[list[Tokens], list[Tokens]]:
14
+ def split_header_lines(lines: ta.Iterable[tks.Tokens]) -> tuple[list[tks.Tokens], list[tks.Tokens]]:
16
15
  ws = []
17
16
  nws = []
18
17
  for line in (it := iter(lines)):
@@ -31,7 +30,7 @@ def split_header_lines(lines: ta.Iterable[Tokens]) -> tuple[list[Tokens], list[T
31
30
  IF_MAIN_PAT = re.compile(r'if\s+__name__\s+==\s+[\'"]__main__[\'"]\s*:')
32
31
 
33
32
 
34
- def strip_main_lines(cls: ta.Sequence[Tokens]) -> list[Tokens]:
33
+ def strip_main_lines(cls: ta.Sequence[tks.Tokens]) -> list[tks.Tokens]:
35
34
  out = []
36
35
 
37
36
  for l in (it := iter(cls)):
@@ -59,7 +58,7 @@ STRIPPED_HEADER_PAT = magic.compile_magic_style_pat(
59
58
  )
60
59
 
61
60
 
62
- def strip_header_lines(hls: ta.Sequence[Tokens]) -> list[Tokens]:
61
+ def strip_header_lines(hls: ta.Sequence[tks.Tokens]) -> list[tks.Tokens]:
63
62
  if hls and tks.join_toks(hls[0]).startswith('#!'):
64
63
  hls = hls[1:]
65
64
  out = []
@@ -1,6 +1,6 @@
1
1
  import typing as ta
2
2
 
3
- from .. import tokens as tks
3
+ from ..tokens import all as tks
4
4
 
5
5
 
6
6
  Tokens: ta.TypeAlias = tks.Tokens
@@ -1,7 +1,8 @@
1
1
  import dataclasses as dc
2
2
 
3
- from .. import tokens as tks
4
- from .types import Tokens
3
+ from omlish import check
4
+
5
+ from ..tokens import all as tks
5
6
 
6
7
 
7
8
  ##
@@ -18,11 +19,11 @@ class Typing:
18
19
  src_path: str
19
20
  line: int
20
21
 
21
- toks: Tokens = dc.field(repr=False)
22
+ toks: tks.Tokens = dc.field(repr=False)
22
23
 
23
24
 
24
25
  def _is_typing(
25
- lts: Tokens,
26
+ lts: tks.Tokens,
26
27
  *,
27
28
  exclude_newtypes: bool = False,
28
29
  ) -> bool:
@@ -48,7 +49,7 @@ def _is_typing(
48
49
 
49
50
 
50
51
  def make_typing(
51
- lts: Tokens,
52
+ lts: tks.Tokens,
52
53
  *,
53
54
  src_path: str,
54
55
  ) -> Typing | None:
@@ -63,7 +64,7 @@ def make_typing(
63
64
  src=tks.join_toks(lts),
64
65
 
65
66
  src_path=src_path,
66
- line=ft.line,
67
+ line=check.not_none(ft.line),
67
68
 
68
69
  toks=lts,
69
70
  )
@@ -72,7 +73,7 @@ def make_typing(
72
73
  ##
73
74
 
74
75
 
75
- def is_root_level_if_type_checking_block(lts: Tokens) -> bool:
76
+ def is_root_level_if_type_checking_block(lts: tks.Tokens) -> bool:
76
77
  return tks.match_toks(tks.ignore_ws(lts, keep=['INDENT']), [
77
78
  ('NAME', 'if'),
78
79
  ('NAME', 'ta'),
@@ -83,7 +84,7 @@ def is_root_level_if_type_checking_block(lts: Tokens) -> bool:
83
84
 
84
85
 
85
86
  def skip_root_level_if_type_checking_block(
86
- cls: list[Tokens],
87
+ cls: list[tks.Tokens],
87
88
  i: int,
88
89
  ) -> int:
89
90
  def skip_block():
@@ -0,0 +1,71 @@
1
+ import dataclasses as dc
2
+ import tomllib
3
+ import typing as ta
4
+
5
+ from omlish import cached
6
+ from omlish import lang
7
+ from omlish import marshal as msh
8
+ from omlish.configs import all as configs
9
+
10
+
11
+ @dc.dataclass(frozen=True)
12
+ class Cdep:
13
+ @dc.dataclass(frozen=True)
14
+ class Git:
15
+ url: str
16
+ rev: str
17
+
18
+ subtrees: ta.Sequence[str] | None = None
19
+
20
+ git: Git
21
+
22
+ #
23
+
24
+ sources: ta.Sequence[str] | None = None
25
+ include: ta.Sequence[str] | None = None
26
+
27
+ #
28
+
29
+ @dc.dataclass(frozen=True)
30
+ class Cmake:
31
+ @dc.dataclass(frozen=True)
32
+ class FetchContent:
33
+ url: str | None = None
34
+
35
+ @dc.dataclass(frozen=True)
36
+ class Git:
37
+ repository: str | None = None
38
+ tag: str | None = None
39
+
40
+ git: Git | None = None
41
+
42
+ fetch_content: FetchContent | None = None
43
+
44
+ cmake: Cmake | None = None
45
+
46
+
47
+ def process_marshaled_cdep(obj: ta.Any) -> ta.Any:
48
+ obj = configs.processing.matched_rewrite(
49
+ lambda s: s if isinstance(s, str) else ''.join(s),
50
+ obj,
51
+ ('sources', None),
52
+ ('include', None),
53
+ )
54
+
55
+ return obj
56
+
57
+
58
+ @cached.function
59
+ def load_cdeps() -> ta.Mapping[str, Cdep]:
60
+ src = lang.get_relative_resources(globals=globals())['cdeps.toml'].read_text()
61
+ dct = tomllib.loads(src)
62
+
63
+ dct = {
64
+ **dct,
65
+ 'deps': {
66
+ k: process_marshaled_cdep(v)
67
+ for k, v in dct.get('deps', {}).items()
68
+ },
69
+ }
70
+
71
+ return msh.unmarshal(dct.get('deps', {}), ta.Mapping[str, Cdep]) # type: ignore
@@ -1,3 +1,18 @@
1
+ [deps.httplib]
2
+ include = ['.']
3
+
4
+ [deps.httplib.git]
5
+ url = 'https://github.com/yhirose/cpp-httplib'
6
+ rev = 'a7bc00e3307fecdb4d67545e93be7b88cfb1e186'
7
+ subtrees = ['httplib.h']
8
+
9
+ [deps.httplib.cmake.fetch_content.git]
10
+ repository = 'https://github.com/yhirose/cpp-httplib.git'
11
+ tag = 'a7bc00e3307fecdb4d67545e93be7b88cfb1e186'
12
+
13
+
14
+ #
15
+
1
16
  [deps.json]
2
17
  include = ['single_include']
3
18
 
@@ -6,8 +21,9 @@ url = 'https://github.com/nlohmann/json'
6
21
  rev = '9cca280a4d0ccf0c08f47a99aa71d1b0e52f8d03'
7
22
  subtrees = ['single_include']
8
23
 
9
- [deps.json.cmake]
10
- fetch_content_url = 'https://github.com/nlohmann/json/releases/download/v3.11.3/json.tar.xz'
24
+ [deps.json.cmake.fetch_content]
25
+ url = 'https://github.com/nlohmann/json/releases/download/v3.11.3/json.tar.xz'
26
+
11
27
 
12
28
  #
13
29
 
@@ -19,6 +35,7 @@ url = 'https://github.com/pybind/pybind11'
19
35
  rev = '945e251a6ce7273058b36214d94415e9c9530b8e'
20
36
  subtrees = ['include']
21
37
 
38
+
22
39
  #
23
40
 
24
41
  [deps.ut]
@@ -18,6 +18,8 @@ Freestanding options:
18
18
  TODO:
19
19
  - cext interop
20
20
  - gen cmake
21
+ - fix CFLAGS/CCFLAGS/CPPFLAGS/CXXFLAGS
22
+ - jit-gen cmake mode? multi-src builds
21
23
  """
22
24
  import os
23
25
  import shlex
@@ -35,6 +37,7 @@ from .. import magic
35
37
  from ..cache import data as dcache
36
38
  from .cdeps import Cdep
37
39
  from .cdeps import load_cdeps
40
+ from .cdeps import process_marshaled_cdep
38
41
 
39
42
 
40
43
  class Cli(ap.Cli):
@@ -64,16 +67,22 @@ class Cli(ap.Cli):
64
67
  if src_magic.key == '@omlish-cdeps':
65
68
  for dep in check.isinstance(src_magic.prepared, ta.Sequence):
66
69
  if isinstance(dep, ta.Mapping):
67
- dep = msh.unmarshal(dep, Cdep) # type: ignore
70
+ dep = process_marshaled_cdep(dep)
71
+ dep = msh.unmarshal(dep, Cdep)
68
72
  else:
69
73
  dep = load_cdeps()[check.isinstance(dep, str)]
70
74
 
75
+ if dep.sources:
76
+ # TODO
77
+ raise NotImplementedError
78
+
71
79
  dep_spec = dcache.GitSpec(
72
80
  url=dep.git.url,
73
81
  rev=dep.git.rev,
74
82
  subtrees=dep.git.subtrees,
75
83
  )
76
84
  dep_dir = dcache.default().get(dep_spec)
85
+
77
86
  for dep_inc in dep.include or []:
78
87
  inc_dir = os.path.join(dep_dir, dep_inc)
79
88
  check.state(os.path.isdir(inc_dir))
@@ -96,6 +105,9 @@ class Cli(ap.Cli):
96
105
  if cflags := os.environ.get('CFLAGS'):
97
106
  sh_parts.append(cflags) # Explicitly shell-unquoted
98
107
 
108
+ if ldflags := os.environ.get('LDFLAGS'):
109
+ sh_parts.append(ldflags) # Explicitly shell-unquoted
110
+
99
111
  sh_parts.extend([
100
112
  '-std=c++20',
101
113
  shlex.quote(os.path.abspath(src_file)),