calkit-python 0.35.0__tar.gz → 0.35.2__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 (277) hide show
  1. {calkit_python-0.35.0 → calkit_python-0.35.2}/PKG-INFO +1 -1
  2. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/cli/main.py +26 -12
  3. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/cli/new.py +15 -0
  4. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/models/core.py +1 -0
  5. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/models/pipeline.py +10 -0
  6. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/environments.md +24 -0
  7. {calkit_python-0.35.0 → calkit_python-0.35.2}/.gitignore +0 -0
  8. {calkit_python-0.35.0 → calkit_python-0.35.2}/.pre-commit-config.yaml +0 -0
  9. {calkit_python-0.35.0 → calkit_python-0.35.2}/.prettierignore +0 -0
  10. {calkit_python-0.35.0 → calkit_python-0.35.2}/.python-version +0 -0
  11. {calkit_python-0.35.0 → calkit_python-0.35.2}/.yarnrc.yml +0 -0
  12. {calkit_python-0.35.0 → calkit_python-0.35.2}/CITATION.cff +0 -0
  13. {calkit_python-0.35.0 → calkit_python-0.35.2}/CODE_OF_CONDUCT.md +0 -0
  14. {calkit_python-0.35.0 → calkit_python-0.35.2}/CONTRIBUTING.md +0 -0
  15. {calkit_python-0.35.0 → calkit_python-0.35.2}/LICENSE +0 -0
  16. {calkit_python-0.35.0 → calkit_python-0.35.2}/Makefile +0 -0
  17. {calkit_python-0.35.0 → calkit_python-0.35.2}/README.md +0 -0
  18. {calkit_python-0.35.0 → calkit_python-0.35.2}/babel.config.js +0 -0
  19. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/__init__.py +0 -0
  20. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/__main__.py +0 -0
  21. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/calc.py +0 -0
  22. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/check.py +0 -0
  23. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/cli/__init__.py +0 -0
  24. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/cli/check.py +0 -0
  25. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/cli/cloud.py +0 -0
  26. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/cli/config.py +0 -0
  27. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/cli/core.py +0 -0
  28. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/cli/describe.py +0 -0
  29. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/cli/import_.py +0 -0
  30. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/cli/latex.py +0 -0
  31. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/cli/list.py +0 -0
  32. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/cli/notebooks.py +0 -0
  33. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/cli/office.py +0 -0
  34. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/cli/overleaf.py +0 -0
  35. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/cli/slurm.py +0 -0
  36. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/cli/update.py +0 -0
  37. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/cloud.py +0 -0
  38. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/conda.py +0 -0
  39. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/config.py +0 -0
  40. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/core.py +0 -0
  41. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/datasets.py +0 -0
  42. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/detect.py +0 -0
  43. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/docker.py +0 -0
  44. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/dvc.py +0 -0
  45. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/environments.py +0 -0
  46. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/fs.py +0 -0
  47. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/git.py +0 -0
  48. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/github.py +0 -0
  49. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/gui.py +0 -0
  50. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/invenio.py +0 -0
  51. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/julia.py +0 -0
  52. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/jupyter.py +0 -0
  53. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/jupyterlab/__init__.py +0 -0
  54. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/jupyterlab/routes.py +0 -0
  55. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/labextension/package.json +0 -0
  56. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/labextension/schemas/calkit/package.json.orig +0 -0
  57. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/labextension/schemas/calkit/plugin.json +0 -0
  58. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/labextension/static/502.9a2c5772a15466e923ef.js +0 -0
  59. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/labextension/static/695.2c41003a452d43d2b358.js +0 -0
  60. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/labextension/static/867.a42a046aa5108f54f8fb.js +0 -0
  61. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/labextension/static/909.651be47ca47390b78a92.js +0 -0
  62. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/labextension/static/946.050af2abf7845cfbdbd2.js +0 -0
  63. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/labextension/static/946.050af2abf7845cfbdbd2.js.LICENSE.txt +0 -0
  64. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/labextension/static/b2f1c3efe70cb539d121.png +0 -0
  65. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/labextension/static/remoteEntry.c091821b3d7f2d287a67.js +0 -0
  66. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/labextension/static/style.js +0 -0
  67. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/labextension/static/third-party-licenses.json +0 -0
  68. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/licenses.py +0 -0
  69. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/magics.py +0 -0
  70. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/matlab.py +0 -0
  71. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/models/__init__.py +0 -0
  72. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/models/io.py +0 -0
  73. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/models/iteration.py +0 -0
  74. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/notebooks.py +0 -0
  75. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/office.py +0 -0
  76. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/ops.py +0 -0
  77. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/overleaf.py +0 -0
  78. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/pipeline.py +0 -0
  79. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/releases.py +0 -0
  80. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/server.py +0 -0
  81. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/templates/__init__.py +0 -0
  82. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/templates/core.py +0 -0
  83. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/templates/latex/__init__.py +0 -0
  84. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/templates/latex/article/paper.tex +0 -0
  85. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/templates/latex/core.py +0 -0
  86. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/templates/latex/jfm/jfm.bst +0 -0
  87. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/templates/latex/jfm/jfm.cls +0 -0
  88. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/templates/latex/jfm/lineno-FLM.sty +0 -0
  89. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/templates/latex/jfm/paper.tex +0 -0
  90. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/templates/latex/jfm/upmath.sty +0 -0
  91. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/tests/__init__.py +0 -0
  92. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/tests/cli/__init__.py +0 -0
  93. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/tests/cli/test_check.py +0 -0
  94. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/tests/cli/test_config.py +0 -0
  95. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/tests/cli/test_import.py +0 -0
  96. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/tests/cli/test_latex.py +0 -0
  97. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/tests/cli/test_list.py +0 -0
  98. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/tests/cli/test_main.py +0 -0
  99. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/tests/cli/test_new.py +0 -0
  100. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/tests/cli/test_notebooks.py +0 -0
  101. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/tests/cli/test_overleaf.py +0 -0
  102. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/tests/jupyterlab/__init__.py +0 -0
  103. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/tests/jupyterlab/test_routes.py +0 -0
  104. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/tests/models/__init__.py +0 -0
  105. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/tests/models/test_iteration.py +0 -0
  106. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/tests/models/test_pipeline.py +0 -0
  107. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/tests/test_calc.py +0 -0
  108. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/tests/test_check.py +0 -0
  109. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/tests/test_conda.py +0 -0
  110. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/tests/test_core.py +0 -0
  111. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/tests/test_detect.py +0 -0
  112. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/tests/test_dvc.py +0 -0
  113. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/tests/test_environments.py +0 -0
  114. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/tests/test_fs.py +0 -0
  115. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/tests/test_git.py +0 -0
  116. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/tests/test_invenio.py +0 -0
  117. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/tests/test_julia.py +0 -0
  118. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/tests/test_jupyter.py +0 -0
  119. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/tests/test_magics.py +0 -0
  120. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/tests/test_matlab.py +0 -0
  121. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/tests/test_notebooks.py +0 -0
  122. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/tests/test_pipeline.py +0 -0
  123. {calkit_python-0.35.0 → calkit_python-0.35.2}/calkit/tests/test_templates.py +0 -0
  124. {calkit_python-0.35.0 → calkit_python-0.35.2}/conftest.py +0 -0
  125. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/CNAME +0 -0
  126. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/apps.md +0 -0
  127. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/calculations.md +0 -0
  128. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/calkit-yaml.md +0 -0
  129. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/cli-reference.md +0 -0
  130. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/cloud-integration.md +0 -0
  131. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/datasets.md +0 -0
  132. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/dependencies.md +0 -0
  133. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/examples.md +0 -0
  134. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/governance.md +0 -0
  135. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/help.md +0 -0
  136. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/img/c-to-the-k-white.svg +0 -0
  137. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/img/calkit-fragmentation-compendium.png +0 -0
  138. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/img/calkit-no-bg.png +0 -0
  139. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/img/connect-zenodo.png +0 -0
  140. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/img/jupyterlab/all-green.png +0 -0
  141. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/img/jupyterlab/collect-data-stale.png +0 -0
  142. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/img/jupyterlab/new-env.png +0 -0
  143. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/img/jupyterlab/new-notebook.png +0 -0
  144. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/img/jupyterlab/pipeline-badge.png +0 -0
  145. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/img/jupyterlab-params.png +0 -0
  146. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/img/plos-osi-code-2024-03.png +0 -0
  147. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/img/vscode-nb-params.png +0 -0
  148. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/index.md +0 -0
  149. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/installation.md +0 -0
  150. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/jupyterlab.md +0 -0
  151. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/local-server.md +0 -0
  152. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/notebooks.md +0 -0
  153. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/overleaf.md +0 -0
  154. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/pipeline/index.md +0 -0
  155. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/pipeline/manual-steps.md +0 -0
  156. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/pipeline/running-and-logging.md +0 -0
  157. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/pipeline/slurm.md +0 -0
  158. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/quickstart.md +0 -0
  159. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/references.md +0 -0
  160. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/releases.md +0 -0
  161. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/reproducibility.md +0 -0
  162. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/adding-latex-pub-docker.md +0 -0
  163. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/conda-envs.md +0 -0
  164. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/existing-project.md +0 -0
  165. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/first-project.md +0 -0
  166. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/github-actions.md +0 -0
  167. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/img/actions-repo-secrets.png +0 -0
  168. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/img/latex-codespaces/building-codespace.png +0 -0
  169. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/img/latex-codespaces/codespaces-secrets-2.png +0 -0
  170. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/img/latex-codespaces/editor-split.png +0 -0
  171. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/img/latex-codespaces/go-to-linked-code.png +0 -0
  172. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/img/latex-codespaces/issue-from-selection.png +0 -0
  173. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/img/latex-codespaces/new-project.png +0 -0
  174. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/img/latex-codespaces/new-pub-2.png +0 -0
  175. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/img/latex-codespaces/new-token.png +0 -0
  176. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/img/latex-codespaces/paper.tex.png +0 -0
  177. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/img/latex-codespaces/project-home-3.png +0 -0
  178. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/img/latex-codespaces/push.png +0 -0
  179. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/img/latex-codespaces/stage.png +0 -0
  180. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/img/office/anakin-excel.jpg +0 -0
  181. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/img/office/chart-more-rows.png +0 -0
  182. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/img/office/create-project.png +0 -0
  183. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/img/office/elsevier-research-data-guidelines.png +0 -0
  184. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/img/office/excel-chart.png +0 -0
  185. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/img/office/excel-data.png +0 -0
  186. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/img/office/insert-link-to-file.png +0 -0
  187. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/img/office/needs-clone.png +0 -0
  188. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/img/office/new-stage.png +0 -0
  189. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/img/office/phd-comics-version-control.webp +0 -0
  190. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/img/office/pipeline-out-of-date.png +0 -0
  191. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/img/office/status-more-rows.png +0 -0
  192. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/img/office/uncommitted-changes.png +0 -0
  193. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/img/office/untracked-data.png +0 -0
  194. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/img/office/updated-publication.png +0 -0
  195. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/img/office/word-to-pdf-stage-2.png +0 -0
  196. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/img/office/workflow-page.png +0 -0
  197. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/img/openfoam/clone.png +0 -0
  198. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/img/openfoam/create-project.png +0 -0
  199. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/img/openfoam/datasets-page.png +0 -0
  200. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/img/openfoam/figure-on-website-updated.png +0 -0
  201. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/img/openfoam/figure-on-website.png +0 -0
  202. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/img/openfoam/new-token.png +0 -0
  203. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/img/openfoam/reclone.png +0 -0
  204. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/img/openfoam/status-after-import-dataset.png +0 -0
  205. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/img/quick-actions.png +0 -0
  206. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/img/run-proc.png +0 -0
  207. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/index.md +0 -0
  208. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/jupyterlab.md +0 -0
  209. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/latex-codespaces.md +0 -0
  210. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/matlab.md +0 -0
  211. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/notebook-pipeline.md +0 -0
  212. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/office.md +0 -0
  213. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/openfoam.md +0 -0
  214. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/tutorials/procedures.md +0 -0
  215. {calkit_python-0.35.0 → calkit_python-0.35.2}/docs/version-control.md +0 -0
  216. {calkit_python-0.35.0 → calkit_python-0.35.2}/install.json +0 -0
  217. {calkit_python-0.35.0 → calkit_python-0.35.2}/jest.config.js +0 -0
  218. {calkit_python-0.35.0 → calkit_python-0.35.2}/jupyter-config/server-config/calkit.json +0 -0
  219. {calkit_python-0.35.0 → calkit_python-0.35.2}/mkdocs.yml +0 -0
  220. {calkit_python-0.35.0 → calkit_python-0.35.2}/package.json +0 -0
  221. {calkit_python-0.35.0 → calkit_python-0.35.2}/pyproject.toml +0 -0
  222. {calkit_python-0.35.0 → calkit_python-0.35.2}/schema/plugin.json +0 -0
  223. {calkit_python-0.35.0 → calkit_python-0.35.2}/scripts/install.ps1 +0 -0
  224. {calkit_python-0.35.0 → calkit_python-0.35.2}/scripts/install.sh +0 -0
  225. {calkit_python-0.35.0 → calkit_python-0.35.2}/scripts/make-calk9.sh +0 -0
  226. {calkit_python-0.35.0 → calkit_python-0.35.2}/scripts/sync-docs.py +0 -0
  227. {calkit_python-0.35.0 → calkit_python-0.35.2}/src/__tests__/useQueries.spec.ts +0 -0
  228. {calkit_python-0.35.0 → calkit_python-0.35.2}/src/calkit-config.ts +0 -0
  229. {calkit_python-0.35.0 → calkit_python-0.35.2}/src/cell-output-marker.ts +0 -0
  230. {calkit_python-0.35.0 → calkit_python-0.35.2}/src/components/commit-dialog.tsx +0 -0
  231. {calkit_python-0.35.0 → calkit_python-0.35.2}/src/components/environment-editor.tsx +0 -0
  232. {calkit_python-0.35.0 → calkit_python-0.35.2}/src/components/notebook-registration.tsx +0 -0
  233. {calkit_python-0.35.0 → calkit_python-0.35.2}/src/components/notebook-toolbar.tsx +0 -0
  234. {calkit_python-0.35.0 → calkit_python-0.35.2}/src/components/pipeline-status-bar.tsx +0 -0
  235. {calkit_python-0.35.0 → calkit_python-0.35.2}/src/components/project-info-editor.tsx +0 -0
  236. {calkit_python-0.35.0 → calkit_python-0.35.2}/src/components/sidebar-settings.tsx +0 -0
  237. {calkit_python-0.35.0 → calkit_python-0.35.2}/src/components/sidebar.tsx +0 -0
  238. {calkit_python-0.35.0 → calkit_python-0.35.2}/src/components/stage-editor.tsx +0 -0
  239. {calkit_python-0.35.0 → calkit_python-0.35.2}/src/feature-flags.ts +0 -0
  240. {calkit_python-0.35.0 → calkit_python-0.35.2}/src/file-browser-menu.ts +0 -0
  241. {calkit_python-0.35.0 → calkit_python-0.35.2}/src/hooks/__tests__/useQueries.test.tsx +0 -0
  242. {calkit_python-0.35.0 → calkit_python-0.35.2}/src/hooks/useQueries.ts +0 -0
  243. {calkit_python-0.35.0 → calkit_python-0.35.2}/src/icons.ts +0 -0
  244. {calkit_python-0.35.0 → calkit_python-0.35.2}/src/index.ts +0 -0
  245. {calkit_python-0.35.0 → calkit_python-0.35.2}/src/io-tracker.ts +0 -0
  246. {calkit_python-0.35.0 → calkit_python-0.35.2}/src/pipeline-state.ts +0 -0
  247. {calkit_python-0.35.0 → calkit_python-0.35.2}/src/queryClient.ts +0 -0
  248. {calkit_python-0.35.0 → calkit_python-0.35.2}/src/request.ts +0 -0
  249. {calkit_python-0.35.0 → calkit_python-0.35.2}/src/shims-mainmenu.d.ts +0 -0
  250. {calkit_python-0.35.0 → calkit_python-0.35.2}/style/base.css +0 -0
  251. {calkit_python-0.35.0 → calkit_python-0.35.2}/style/cell-output-marker.css +0 -0
  252. {calkit_python-0.35.0 → calkit_python-0.35.2}/style/environment-editor.css +0 -0
  253. {calkit_python-0.35.0 → calkit_python-0.35.2}/style/environment-selector.css +0 -0
  254. {calkit_python-0.35.0 → calkit_python-0.35.2}/style/img/calkit-no-bg.png +0 -0
  255. {calkit_python-0.35.0 → calkit_python-0.35.2}/style/index.css +0 -0
  256. {calkit_python-0.35.0 → calkit_python-0.35.2}/style/index.js +0 -0
  257. {calkit_python-0.35.0 → calkit_python-0.35.2}/style/notebook-toolbar.css +0 -0
  258. {calkit_python-0.35.0 → calkit_python-0.35.2}/style/pipeline-status-bar.css +0 -0
  259. {calkit_python-0.35.0 → calkit_python-0.35.2}/style/sidebar.css +0 -0
  260. {calkit_python-0.35.0 → calkit_python-0.35.2}/test/dvc-md5-dir/osx-arm64.txt +0 -0
  261. {calkit_python-0.35.0 → calkit_python-0.35.2}/test/nb-julia.ipynb +0 -0
  262. {calkit_python-0.35.0 → calkit_python-0.35.2}/test/nb-params.ipynb +0 -0
  263. {calkit_python-0.35.0 → calkit_python-0.35.2}/test/nb-subdir.ipynb +0 -0
  264. {calkit_python-0.35.0 → calkit_python-0.35.2}/test/pipeline.ipynb +0 -0
  265. {calkit_python-0.35.0 → calkit_python-0.35.2}/test/script.py +0 -0
  266. {calkit_python-0.35.0 → calkit_python-0.35.2}/test/test-log.log +0 -0
  267. {calkit_python-0.35.0 → calkit_python-0.35.2}/tsconfig.json +0 -0
  268. {calkit_python-0.35.0 → calkit_python-0.35.2}/tsconfig.test.json +0 -0
  269. {calkit_python-0.35.0 → calkit_python-0.35.2}/ui-tests/.gitignore +0 -0
  270. {calkit_python-0.35.0 → calkit_python-0.35.2}/ui-tests/README.md +0 -0
  271. {calkit_python-0.35.0 → calkit_python-0.35.2}/ui-tests/jupyter_server_test_config.py +0 -0
  272. {calkit_python-0.35.0 → calkit_python-0.35.2}/ui-tests/package.json +0 -0
  273. {calkit_python-0.35.0 → calkit_python-0.35.2}/ui-tests/playwright.config.js +0 -0
  274. {calkit_python-0.35.0 → calkit_python-0.35.2}/ui-tests/tests/calkit.spec.ts +0 -0
  275. {calkit_python-0.35.0 → calkit_python-0.35.2}/ui-tests/yarn.lock +0 -0
  276. {calkit_python-0.35.0 → calkit_python-0.35.2}/uv.lock +0 -0
  277. {calkit_python-0.35.0 → calkit_python-0.35.2}/yarn.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: calkit-python
3
- Version: 0.35.0
3
+ Version: 0.35.2
4
4
  Summary: Reproducibility simplified.
5
5
  Project-URL: Homepage, https://calkit.org
6
6
  Project-URL: Issues, https://github.com/calkit/calkit/issues
@@ -735,6 +735,7 @@ def pull(
735
735
  def push(
736
736
  no_check_auth: Annotated[bool, typer.Option("--no-check-auth")] = False,
737
737
  no_dvc: Annotated[bool, typer.Option("--no-dvc")] = False,
738
+ no_git: Annotated[bool, typer.Option("--no-git")] = False,
738
739
  git_args: Annotated[
739
740
  list[str],
740
741
  typer.Option("--git-arg", help="Additional Git args."),
@@ -748,14 +749,6 @@ def push(
748
749
  ] = False,
749
750
  ):
750
751
  """Push with both Git and DVC."""
751
- typer.echo("Pushing to Git remote")
752
- try:
753
- git_cmd = ["git", "push"]
754
- if not no_recursive and "--recurse-submodules" not in git_args:
755
- git_cmd.append("--recurse-submodules=on-demand")
756
- subprocess.check_call(git_cmd + git_args)
757
- except subprocess.CalledProcessError:
758
- raise_error("Git push failed")
759
752
  if not no_dvc:
760
753
  typer.echo("Pushing to DVC remote")
761
754
  if not no_check_auth:
@@ -774,6 +767,15 @@ def push(
774
767
  result = run_dvc_command(["push"] + dvc_args)
775
768
  if result != 0:
776
769
  raise_error("DVC push failed")
770
+ if not no_git:
771
+ typer.echo("Pushing to Git remote")
772
+ try:
773
+ git_cmd = ["git", "push"]
774
+ if not no_recursive and "--recurse-submodules" not in git_args:
775
+ git_cmd.append("--recurse-submodules=on-demand")
776
+ subprocess.check_call(git_cmd + git_args)
777
+ except subprocess.CalledProcessError:
778
+ raise_error("Git push failed")
777
779
 
778
780
 
779
781
  @app.command(name="sync")
@@ -1470,6 +1472,12 @@ def run_in_env(
1470
1472
  if env["kind"] == "docker":
1471
1473
  if "image" not in env:
1472
1474
  raise_error("Image must be defined for Docker environments")
1475
+ command_mode = env.get("command_mode", "shell")
1476
+ if command_mode not in ["shell", "entrypoint"]:
1477
+ raise_error(
1478
+ "Invalid Docker environment 'command_mode': "
1479
+ f"{command_mode}; Use 'shell' or 'entrypoint'"
1480
+ )
1473
1481
  if not no_check:
1474
1482
  check_docker_env(
1475
1483
  tag=env["image"],
@@ -1487,7 +1495,6 @@ def run_in_env(
1487
1495
  args=env.get("args", []),
1488
1496
  quiet=not verbose,
1489
1497
  )
1490
- shell_cmd = _to_shell_cmd(cmd)
1491
1498
  docker_cmd = [
1492
1499
  "docker",
1493
1500
  "run",
@@ -1534,10 +1541,17 @@ def run_in_env(
1534
1541
  "-v",
1535
1542
  f"{os.getcwd()}:{docker_wdir_mount}",
1536
1543
  image_name,
1537
- shell,
1538
- "-c",
1539
- shell_cmd,
1540
1544
  ]
1545
+ if command_mode == "shell":
1546
+ shell_cmd = _to_shell_cmd(cmd)
1547
+ docker_cmd += [shell, "-c", shell_cmd]
1548
+ else:
1549
+ if not cmd:
1550
+ raise_error(
1551
+ "No command provided for Docker environment in "
1552
+ "'entrypoint' command mode"
1553
+ )
1554
+ docker_cmd += cmd
1541
1555
  if verbose:
1542
1556
  typer.echo(f"Running command: {docker_cmd}")
1543
1557
  try:
@@ -650,6 +650,17 @@ def new_docker_env(
650
650
  wdir: Annotated[
651
651
  str, typer.Option("--wdir", help="Working directory.")
652
652
  ] = "/work",
653
+ command_mode: Annotated[
654
+ str,
655
+ typer.Option(
656
+ "--command-mode",
657
+ help=(
658
+ "How to execute commands in the container: "
659
+ "'shell' runs shell -c, 'entrypoint' passes args "
660
+ "directly to the image entrypoint."
661
+ ),
662
+ ),
663
+ ] = "shell",
653
664
  user: Annotated[
654
665
  str | None,
655
666
  typer.Option(
@@ -703,6 +714,8 @@ def new_docker_env(
703
714
  )
704
715
  _, project_name = calkit.detect_project_name().split("/")
705
716
  image_name = f"{project_name}-{name}"
717
+ if command_mode not in ["shell", "entrypoint"]:
718
+ raise_error("--command-mode must be one of: shell, entrypoint")
706
719
  repo = git.Repo()
707
720
  if base and path is not None:
708
721
  txt = "FROM " + base + "\n\n"
@@ -746,6 +759,8 @@ def new_docker_env(
746
759
  env["user"] = user
747
760
  if gpus:
748
761
  env["gpus"] = gpus
762
+ if command_mode != "shell":
763
+ env["command_mode"] = command_mode
749
764
  if env_vars:
750
765
  env["env_vars"] = {} # type: ignore
751
766
  for var in env_vars:
@@ -110,6 +110,7 @@ class DockerEnvironment(Environment):
110
110
  image: str
111
111
  layers: list[str] | None = None
112
112
  shell: Literal["bash", "sh"] = "sh"
113
+ command_mode: Literal["shell", "entrypoint"] = "shell"
113
114
  platform: str | None = None
114
115
 
115
116
 
@@ -611,6 +611,15 @@ class DockerCommandStage(Stage):
611
611
  return self.command
612
612
 
613
613
 
614
+ class CommandStage(Stage):
615
+ kind: Literal["command"] = "command"
616
+ command: str
617
+
618
+ @property
619
+ def dvc_cmd(self) -> str:
620
+ return f"{self.xenv_cmd} {self.command}"
621
+
622
+
614
623
  class RScriptStage(Stage):
615
624
  kind: Literal["r-script"]
616
625
  script_path: RelativeChildPathString
@@ -919,6 +928,7 @@ class Pipeline(BaseModel):
919
928
  | ShellCommandStage
920
929
  | ShellScriptStage
921
930
  | DockerCommandStage
931
+ | CommandStage
922
932
  | RScriptStage
923
933
  | WordToPdfStage
924
934
  | JupyterNotebookStage
@@ -173,6 +173,30 @@ You can similarly jump into an interactive `bash` terminal with:
173
173
  calkit xenv -n foam bash
174
174
  ```
175
175
 
176
+ Some Docker images are CLI tools with an image entrypoint already defined
177
+ (for example `minlag/mermaid-cli`).
178
+ In that case, use `command_mode: entrypoint` so Calkit passes your command
179
+ arguments directly to the container entrypoint instead of running
180
+ `shell -c ...`.
181
+
182
+ ```yaml
183
+ # In calkit.yaml
184
+ environments:
185
+ mermaid:
186
+ kind: docker
187
+ image: minlag/mermaid-cli
188
+ wdir: /data
189
+ command_mode: entrypoint
190
+ ```
191
+
192
+ Then execute with:
193
+
194
+ ```sh
195
+ calkit xenv -n mermaid -- \
196
+ -i figures/my-mermaid-diagram.mmd \
197
+ -o figures/my-mermaid-diagram.pdf
198
+ ```
199
+
176
200
  But what if there isn't an image out there that has everything you need
177
201
  already installed into it?
178
202
  In this case, you can define and build a new derived image in the project
File without changes
File without changes
File without changes