calkit-python 0.38.3__tar.gz → 0.38.4__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 (326) hide show
  1. {calkit_python-0.38.3 → calkit_python-0.38.4}/PKG-INFO +5 -5
  2. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/cli/core.py +19 -0
  3. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/cli/list.py +15 -9
  4. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/cli/main/core.py +12 -19
  5. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/cli/new.py +5 -5
  6. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/cli-reference.md +268 -267
  7. {calkit_python-0.38.3 → calkit_python-0.38.4}/pyproject.toml +4 -4
  8. {calkit_python-0.38.3 → calkit_python-0.38.4}/uv.lock +60 -54
  9. {calkit_python-0.38.3 → calkit_python-0.38.4}/.claude-plugin/marketplace.json +0 -0
  10. {calkit_python-0.38.3 → calkit_python-0.38.4}/.gitignore +0 -0
  11. {calkit_python-0.38.3 → calkit_python-0.38.4}/.pre-commit-config.yaml +0 -0
  12. {calkit_python-0.38.3 → calkit_python-0.38.4}/.prettierignore +0 -0
  13. {calkit_python-0.38.3 → calkit_python-0.38.4}/.python-version +0 -0
  14. {calkit_python-0.38.3 → calkit_python-0.38.4}/.vscode/launch.json +0 -0
  15. {calkit_python-0.38.3 → calkit_python-0.38.4}/.vscode/tasks.json +0 -0
  16. {calkit_python-0.38.3 → calkit_python-0.38.4}/.yarnrc.yml +0 -0
  17. {calkit_python-0.38.3 → calkit_python-0.38.4}/AGENTS.md +0 -0
  18. {calkit_python-0.38.3 → calkit_python-0.38.4}/CITATION.cff +0 -0
  19. {calkit_python-0.38.3 → calkit_python-0.38.4}/CODE_OF_CONDUCT.md +0 -0
  20. {calkit_python-0.38.3 → calkit_python-0.38.4}/CONTRIBUTING.md +0 -0
  21. {calkit_python-0.38.3 → calkit_python-0.38.4}/LICENSE +0 -0
  22. {calkit_python-0.38.3 → calkit_python-0.38.4}/Makefile +0 -0
  23. {calkit_python-0.38.3 → calkit_python-0.38.4}/README.md +0 -0
  24. {calkit_python-0.38.3 → calkit_python-0.38.4}/agent-plugin/.claude-plugin/plugin.json +0 -0
  25. {calkit_python-0.38.3 → calkit_python-0.38.4}/agent-plugin/skills/add-pipeline-stage/SKILL.md +0 -0
  26. {calkit_python-0.38.3 → calkit_python-0.38.4}/agent-plugin/skills/conventions/SKILL.md +0 -0
  27. {calkit_python-0.38.3 → calkit_python-0.38.4}/agent-plugin/skills/create-pipeline/SKILL.md +0 -0
  28. {calkit_python-0.38.3 → calkit_python-0.38.4}/babel.config.js +0 -0
  29. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/__init__.py +0 -0
  30. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/__main__.py +0 -0
  31. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/calc.py +0 -0
  32. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/check.py +0 -0
  33. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/cli/__init__.py +0 -0
  34. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/cli/check.py +0 -0
  35. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/cli/cloud.py +0 -0
  36. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/cli/config.py +0 -0
  37. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/cli/describe.py +0 -0
  38. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/cli/dev.py +0 -0
  39. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/cli/import_.py +0 -0
  40. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/cli/latex.py +0 -0
  41. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/cli/main/__init__.py +0 -0
  42. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/cli/main/xr.py +0 -0
  43. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/cli/notebooks.py +0 -0
  44. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/cli/office.py +0 -0
  45. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/cli/overleaf.py +0 -0
  46. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/cli/slurm.py +0 -0
  47. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/cli/update.py +0 -0
  48. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/cloud.py +0 -0
  49. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/conda.py +0 -0
  50. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/config.py +0 -0
  51. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/core.py +0 -0
  52. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/datasets.py +0 -0
  53. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/detect.py +0 -0
  54. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/docker.py +0 -0
  55. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/dvc/__init__.py +0 -0
  56. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/dvc/core.py +0 -0
  57. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/dvc/zip.py +0 -0
  58. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/environments.py +0 -0
  59. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/fs.py +0 -0
  60. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/git.py +0 -0
  61. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/github.py +0 -0
  62. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/gui.py +0 -0
  63. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/invenio.py +0 -0
  64. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/julia.py +0 -0
  65. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/jupyter.py +0 -0
  66. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/jupyterlab/__init__.py +0 -0
  67. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/jupyterlab/routes.py +0 -0
  68. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/labextension/package.json +0 -0
  69. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/labextension/schemas/calkit/package.json.orig +0 -0
  70. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/labextension/schemas/calkit/plugin.json +0 -0
  71. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/labextension/static/502.9a2c5772a15466e923ef.js +0 -0
  72. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/labextension/static/695.2c41003a452d43d2b358.js +0 -0
  73. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/labextension/static/867.a42a046aa5108f54f8fb.js +0 -0
  74. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/labextension/static/909.e3f9cc3408834a7fdcc3.js +0 -0
  75. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/labextension/static/946.050af2abf7845cfbdbd2.js +0 -0
  76. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/labextension/static/946.050af2abf7845cfbdbd2.js.LICENSE.txt +0 -0
  77. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/labextension/static/b2f1c3efe70cb539d121.png +0 -0
  78. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/labextension/static/remoteEntry.65469af996e7a96aa983.js +0 -0
  79. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/labextension/static/style.js +0 -0
  80. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/labextension/static/third-party-licenses.json +0 -0
  81. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/licenses.py +0 -0
  82. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/magics.py +0 -0
  83. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/matlab.py +0 -0
  84. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/models/__init__.py +0 -0
  85. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/models/core.py +0 -0
  86. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/models/io.py +0 -0
  87. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/models/iteration.py +0 -0
  88. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/models/pipeline.py +0 -0
  89. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/notebooks.py +0 -0
  90. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/office.py +0 -0
  91. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/ops.py +0 -0
  92. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/overleaf.py +0 -0
  93. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/pipeline.py +0 -0
  94. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/releases.py +0 -0
  95. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/server.py +0 -0
  96. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/templates/__init__.py +0 -0
  97. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/templates/core.py +0 -0
  98. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/templates/latex/__init__.py +0 -0
  99. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/templates/latex/article/paper.tex +0 -0
  100. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/templates/latex/core.py +0 -0
  101. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/templates/latex/jfm/jfm.bst +0 -0
  102. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/templates/latex/jfm/jfm.cls +0 -0
  103. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/templates/latex/jfm/lineno-FLM.sty +0 -0
  104. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/templates/latex/jfm/paper.tex +0 -0
  105. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/templates/latex/jfm/upmath.sty +0 -0
  106. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/tests/__init__.py +0 -0
  107. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/tests/cli/__init__.py +0 -0
  108. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/tests/cli/main/__init__.py +0 -0
  109. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/tests/cli/main/test_core.py +0 -0
  110. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/tests/cli/main/test_xr.py +0 -0
  111. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/tests/cli/test_check.py +0 -0
  112. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/tests/cli/test_cloud.py +0 -0
  113. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/tests/cli/test_config.py +0 -0
  114. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/tests/cli/test_import.py +0 -0
  115. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/tests/cli/test_latex.py +0 -0
  116. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/tests/cli/test_list.py +0 -0
  117. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/tests/cli/test_new.py +0 -0
  118. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/tests/cli/test_notebooks.py +0 -0
  119. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/tests/cli/test_overleaf.py +0 -0
  120. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/tests/cli/test_update.py +0 -0
  121. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/tests/dvc/__init__.py +0 -0
  122. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/tests/dvc/test_core.py +0 -0
  123. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/tests/dvc/test_zip.py +0 -0
  124. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/tests/jupyterlab/__init__.py +0 -0
  125. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/tests/jupyterlab/test_routes.py +0 -0
  126. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/tests/models/__init__.py +0 -0
  127. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/tests/models/test_iteration.py +0 -0
  128. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/tests/models/test_pipeline.py +0 -0
  129. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/tests/test_calc.py +0 -0
  130. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/tests/test_check.py +0 -0
  131. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/tests/test_cloud.py +0 -0
  132. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/tests/test_conda.py +0 -0
  133. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/tests/test_core.py +0 -0
  134. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/tests/test_detect.py +0 -0
  135. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/tests/test_docker.py +0 -0
  136. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/tests/test_environments.py +0 -0
  137. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/tests/test_fs.py +0 -0
  138. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/tests/test_git.py +0 -0
  139. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/tests/test_invenio.py +0 -0
  140. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/tests/test_julia.py +0 -0
  141. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/tests/test_jupyter.py +0 -0
  142. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/tests/test_magics.py +0 -0
  143. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/tests/test_matlab.py +0 -0
  144. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/tests/test_notebooks.py +0 -0
  145. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/tests/test_pipeline.py +0 -0
  146. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/tests/test_releases.py +0 -0
  147. {calkit_python-0.38.3 → calkit_python-0.38.4}/calkit/tests/test_templates.py +0 -0
  148. {calkit_python-0.38.3 → calkit_python-0.38.4}/conftest.py +0 -0
  149. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/CNAME +0 -0
  150. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/ai-tools.md +0 -0
  151. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/apps.md +0 -0
  152. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/calculations.md +0 -0
  153. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/calkit-yaml.md +0 -0
  154. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/cloud-integration.md +0 -0
  155. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/datasets.md +0 -0
  156. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/dependencies.md +0 -0
  157. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/environments.md +0 -0
  158. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/examples.md +0 -0
  159. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/governance.md +0 -0
  160. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/help.md +0 -0
  161. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/img/c-to-the-k-white.svg +0 -0
  162. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/img/calkit-fragmentation-compendium.png +0 -0
  163. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/img/calkit-no-bg.png +0 -0
  164. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/img/connect-zenodo.png +0 -0
  165. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/img/jupyterlab/all-green.png +0 -0
  166. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/img/jupyterlab/collect-data-stale.png +0 -0
  167. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/img/jupyterlab/new-env.png +0 -0
  168. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/img/jupyterlab/new-notebook.png +0 -0
  169. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/img/jupyterlab/pipeline-badge.png +0 -0
  170. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/img/jupyterlab-params.png +0 -0
  171. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/img/plos-osi-code-2024-03.png +0 -0
  172. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/img/vscode-nb-params.png +0 -0
  173. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/index.md +0 -0
  174. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/installation.md +0 -0
  175. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/jupyterlab.md +0 -0
  176. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/local-server.md +0 -0
  177. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/notebooks.md +0 -0
  178. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/overleaf.md +0 -0
  179. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/pipeline/index.md +0 -0
  180. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/pipeline/manual-steps.md +0 -0
  181. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/pipeline/running-and-logging.md +0 -0
  182. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/pipeline/slurm.md +0 -0
  183. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/quickstart.md +0 -0
  184. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/references.md +0 -0
  185. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/releases.md +0 -0
  186. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/reproducibility.md +0 -0
  187. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/adding-latex-pub-docker.md +0 -0
  188. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/conda-envs.md +0 -0
  189. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/existing-project.md +0 -0
  190. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/first-project.md +0 -0
  191. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/github-actions.md +0 -0
  192. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/img/actions-repo-secrets.png +0 -0
  193. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/img/latex-codespaces/building-codespace.png +0 -0
  194. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/img/latex-codespaces/codespaces-secrets-2.png +0 -0
  195. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/img/latex-codespaces/editor-split.png +0 -0
  196. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/img/latex-codespaces/go-to-linked-code.png +0 -0
  197. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/img/latex-codespaces/issue-from-selection.png +0 -0
  198. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/img/latex-codespaces/new-project.png +0 -0
  199. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/img/latex-codespaces/new-pub-2.png +0 -0
  200. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/img/latex-codespaces/new-token.png +0 -0
  201. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/img/latex-codespaces/paper.tex.png +0 -0
  202. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/img/latex-codespaces/project-home-3.png +0 -0
  203. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/img/latex-codespaces/push.png +0 -0
  204. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/img/latex-codespaces/stage.png +0 -0
  205. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/img/office/anakin-excel.jpg +0 -0
  206. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/img/office/chart-more-rows.png +0 -0
  207. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/img/office/create-project.png +0 -0
  208. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/img/office/elsevier-research-data-guidelines.png +0 -0
  209. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/img/office/excel-chart.png +0 -0
  210. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/img/office/excel-data.png +0 -0
  211. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/img/office/insert-link-to-file.png +0 -0
  212. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/img/office/needs-clone.png +0 -0
  213. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/img/office/new-stage.png +0 -0
  214. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/img/office/phd-comics-version-control.webp +0 -0
  215. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/img/office/pipeline-out-of-date.png +0 -0
  216. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/img/office/status-more-rows.png +0 -0
  217. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/img/office/uncommitted-changes.png +0 -0
  218. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/img/office/untracked-data.png +0 -0
  219. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/img/office/updated-publication.png +0 -0
  220. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/img/office/word-to-pdf-stage-2.png +0 -0
  221. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/img/office/workflow-page.png +0 -0
  222. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/img/openfoam/clone.png +0 -0
  223. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/img/openfoam/create-project.png +0 -0
  224. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/img/openfoam/datasets-page.png +0 -0
  225. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/img/openfoam/figure-on-website-updated.png +0 -0
  226. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/img/openfoam/figure-on-website.png +0 -0
  227. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/img/openfoam/new-token.png +0 -0
  228. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/img/openfoam/reclone.png +0 -0
  229. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/img/openfoam/status-after-import-dataset.png +0 -0
  230. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/img/quick-actions.png +0 -0
  231. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/img/run-proc.png +0 -0
  232. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/img/vscode-slurm-notebook/create-calkit-env.png +0 -0
  233. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/img/vscode-slurm-notebook/create-inner-env.png +0 -0
  234. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/img/vscode-slurm-notebook/create-new-calkit-env.png +0 -0
  235. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/img/vscode-slurm-notebook/select-calkit-env.png +0 -0
  236. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/img/vscode-slurm-notebook/slurm-job-running.png +0 -0
  237. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/img/vscode-slurm-notebook/slurm-launch-options.png +0 -0
  238. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/img/vscode-slurm-notebook/starting-slurm-job.png +0 -0
  239. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/index.md +0 -0
  240. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/jupyterlab.md +0 -0
  241. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/latex-codespaces.md +0 -0
  242. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/matlab.md +0 -0
  243. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/notebook-pipeline.md +0 -0
  244. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/office.md +0 -0
  245. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/openfoam.md +0 -0
  246. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/procedures.md +0 -0
  247. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/tutorials/vscode-slurm-notebook.md +0 -0
  248. {calkit_python-0.38.3 → calkit_python-0.38.4}/docs/version-control.md +0 -0
  249. {calkit_python-0.38.3 → calkit_python-0.38.4}/install.json +0 -0
  250. {calkit_python-0.38.3 → calkit_python-0.38.4}/jest.config.js +0 -0
  251. {calkit_python-0.38.3 → calkit_python-0.38.4}/jupyter-config/server-config/calkit.json +0 -0
  252. {calkit_python-0.38.3 → calkit_python-0.38.4}/mkdocs.yml +0 -0
  253. {calkit_python-0.38.3 → calkit_python-0.38.4}/package.json +0 -0
  254. {calkit_python-0.38.3 → calkit_python-0.38.4}/schema/plugin.json +0 -0
  255. {calkit_python-0.38.3 → calkit_python-0.38.4}/scripts/generate-docs-references.py +0 -0
  256. {calkit_python-0.38.3 → calkit_python-0.38.4}/scripts/install.ps1 +0 -0
  257. {calkit_python-0.38.3 → calkit_python-0.38.4}/scripts/install.sh +0 -0
  258. {calkit_python-0.38.3 → calkit_python-0.38.4}/scripts/make-calk9.sh +0 -0
  259. {calkit_python-0.38.3 → calkit_python-0.38.4}/scripts/sync-docs.py +0 -0
  260. {calkit_python-0.38.3 → calkit_python-0.38.4}/src/__tests__/useQueries.spec.ts +0 -0
  261. {calkit_python-0.38.3 → calkit_python-0.38.4}/src/calkit-config.ts +0 -0
  262. {calkit_python-0.38.3 → calkit_python-0.38.4}/src/cell-output-marker.ts +0 -0
  263. {calkit_python-0.38.3 → calkit_python-0.38.4}/src/components/commit-dialog.tsx +0 -0
  264. {calkit_python-0.38.3 → calkit_python-0.38.4}/src/components/environment-editor.tsx +0 -0
  265. {calkit_python-0.38.3 → calkit_python-0.38.4}/src/components/notebook-registration.tsx +0 -0
  266. {calkit_python-0.38.3 → calkit_python-0.38.4}/src/components/notebook-toolbar.tsx +0 -0
  267. {calkit_python-0.38.3 → calkit_python-0.38.4}/src/components/pipeline-status-bar.tsx +0 -0
  268. {calkit_python-0.38.3 → calkit_python-0.38.4}/src/components/project-info-editor.tsx +0 -0
  269. {calkit_python-0.38.3 → calkit_python-0.38.4}/src/components/sidebar-settings.tsx +0 -0
  270. {calkit_python-0.38.3 → calkit_python-0.38.4}/src/components/sidebar.tsx +0 -0
  271. {calkit_python-0.38.3 → calkit_python-0.38.4}/src/components/stage-editor.tsx +0 -0
  272. {calkit_python-0.38.3 → calkit_python-0.38.4}/src/feature-flags.ts +0 -0
  273. {calkit_python-0.38.3 → calkit_python-0.38.4}/src/file-browser-menu.ts +0 -0
  274. {calkit_python-0.38.3 → calkit_python-0.38.4}/src/hooks/__tests__/useQueries.test.tsx +0 -0
  275. {calkit_python-0.38.3 → calkit_python-0.38.4}/src/hooks/useQueries.ts +0 -0
  276. {calkit_python-0.38.3 → calkit_python-0.38.4}/src/icons.ts +0 -0
  277. {calkit_python-0.38.3 → calkit_python-0.38.4}/src/index.ts +0 -0
  278. {calkit_python-0.38.3 → calkit_python-0.38.4}/src/io-tracker.ts +0 -0
  279. {calkit_python-0.38.3 → calkit_python-0.38.4}/src/pipeline-state.ts +0 -0
  280. {calkit_python-0.38.3 → calkit_python-0.38.4}/src/queryClient.ts +0 -0
  281. {calkit_python-0.38.3 → calkit_python-0.38.4}/src/request.ts +0 -0
  282. {calkit_python-0.38.3 → calkit_python-0.38.4}/src/shims-mainmenu.d.ts +0 -0
  283. {calkit_python-0.38.3 → calkit_python-0.38.4}/style/base.css +0 -0
  284. {calkit_python-0.38.3 → calkit_python-0.38.4}/style/cell-output-marker.css +0 -0
  285. {calkit_python-0.38.3 → calkit_python-0.38.4}/style/environment-editor.css +0 -0
  286. {calkit_python-0.38.3 → calkit_python-0.38.4}/style/environment-selector.css +0 -0
  287. {calkit_python-0.38.3 → calkit_python-0.38.4}/style/img/calkit-no-bg.png +0 -0
  288. {calkit_python-0.38.3 → calkit_python-0.38.4}/style/index.css +0 -0
  289. {calkit_python-0.38.3 → calkit_python-0.38.4}/style/index.js +0 -0
  290. {calkit_python-0.38.3 → calkit_python-0.38.4}/style/notebook-toolbar.css +0 -0
  291. {calkit_python-0.38.3 → calkit_python-0.38.4}/style/pipeline-status-bar.css +0 -0
  292. {calkit_python-0.38.3 → calkit_python-0.38.4}/style/sidebar.css +0 -0
  293. {calkit_python-0.38.3 → calkit_python-0.38.4}/test/dvc-md5-dir/osx-arm64.txt +0 -0
  294. {calkit_python-0.38.3 → calkit_python-0.38.4}/test/nb-julia.ipynb +0 -0
  295. {calkit_python-0.38.3 → calkit_python-0.38.4}/test/nb-params.ipynb +0 -0
  296. {calkit_python-0.38.3 → calkit_python-0.38.4}/test/nb-subdir.ipynb +0 -0
  297. {calkit_python-0.38.3 → calkit_python-0.38.4}/test/pipeline.ipynb +0 -0
  298. {calkit_python-0.38.3 → calkit_python-0.38.4}/test/script.py +0 -0
  299. {calkit_python-0.38.3 → calkit_python-0.38.4}/test/test-log.log +0 -0
  300. {calkit_python-0.38.3 → calkit_python-0.38.4}/tsconfig.json +0 -0
  301. {calkit_python-0.38.3 → calkit_python-0.38.4}/tsconfig.test.json +0 -0
  302. {calkit_python-0.38.3 → calkit_python-0.38.4}/ui-tests/.gitignore +0 -0
  303. {calkit_python-0.38.3 → calkit_python-0.38.4}/ui-tests/README.md +0 -0
  304. {calkit_python-0.38.3 → calkit_python-0.38.4}/ui-tests/jupyter_server_test_config.py +0 -0
  305. {calkit_python-0.38.3 → calkit_python-0.38.4}/ui-tests/package.json +0 -0
  306. {calkit_python-0.38.3 → calkit_python-0.38.4}/ui-tests/playwright.config.js +0 -0
  307. {calkit_python-0.38.3 → calkit_python-0.38.4}/ui-tests/tests/calkit.spec.ts +0 -0
  308. {calkit_python-0.38.3 → calkit_python-0.38.4}/ui-tests/yarn.lock +0 -0
  309. {calkit_python-0.38.3 → calkit_python-0.38.4}/vscode-ext/.gitignore +0 -0
  310. {calkit_python-0.38.3 → calkit_python-0.38.4}/vscode-ext/.vscodeignore +0 -0
  311. {calkit_python-0.38.3 → calkit_python-0.38.4}/vscode-ext/CHANGELOG.md +0 -0
  312. {calkit_python-0.38.3 → calkit_python-0.38.4}/vscode-ext/LICENSE +0 -0
  313. {calkit_python-0.38.3 → calkit_python-0.38.4}/vscode-ext/README.md +0 -0
  314. {calkit_python-0.38.3 → calkit_python-0.38.4}/vscode-ext/images/calkit-no-bg.png +0 -0
  315. {calkit_python-0.38.3 → calkit_python-0.38.4}/vscode-ext/package-lock.json +0 -0
  316. {calkit_python-0.38.3 → calkit_python-0.38.4}/vscode-ext/package.json +0 -0
  317. {calkit_python-0.38.3 → calkit_python-0.38.4}/vscode-ext/scripts/set-proposed-api.js +0 -0
  318. {calkit_python-0.38.3 → calkit_python-0.38.4}/vscode-ext/src/environments.ts +0 -0
  319. {calkit_python-0.38.3 → calkit_python-0.38.4}/vscode-ext/src/extension.ts +0 -0
  320. {calkit_python-0.38.3 → calkit_python-0.38.4}/vscode-ext/src/notebooks.ts +0 -0
  321. {calkit_python-0.38.3 → calkit_python-0.38.4}/vscode-ext/src/test/environments.test.ts +0 -0
  322. {calkit_python-0.38.3 → calkit_python-0.38.4}/vscode-ext/src/test/kernel-selection.test.ts +0 -0
  323. {calkit_python-0.38.3 → calkit_python-0.38.4}/vscode-ext/src/test/notebooks.test.ts +0 -0
  324. {calkit_python-0.38.3 → calkit_python-0.38.4}/vscode-ext/src/types.ts +0 -0
  325. {calkit_python-0.38.3 → calkit_python-0.38.4}/vscode-ext/tsconfig.json +0 -0
  326. {calkit_python-0.38.3 → calkit_python-0.38.4}/yarn.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: calkit-python
3
- Version: 0.38.3
3
+ Version: 0.38.4
4
4
  Summary: Reproducibility simplified.
5
5
  Project-URL: Homepage, https://calkit.org
6
6
  Project-URL: Issues, https://github.com/calkit/calkit/issues
@@ -26,9 +26,9 @@ Requires-Dist: arithmeval
26
26
  Requires-Dist: bibtexparser
27
27
  Requires-Dist: checksumdir
28
28
  Requires-Dist: docx2pdf
29
- Requires-Dist: dvc==3.66.1
29
+ Requires-Dist: dvc==3.67.1
30
30
  Requires-Dist: fastapi
31
- Requires-Dist: fsspec>=2026.2.0
31
+ Requires-Dist: fsspec>=2026.4.0
32
32
  Requires-Dist: gitpython
33
33
  Requires-Dist: json2latex>=0.0.3
34
34
  Requires-Dist: jupyterlab>=4.4.5
@@ -45,10 +45,10 @@ Requires-Dist: python-dotenv>=1
45
45
  Requires-Dist: pywin32; platform_system == 'Windows'
46
46
  Requires-Dist: requests
47
47
  Requires-Dist: sqlitedict>=2.1.0
48
- Requires-Dist: texsoup>=0.3.1
48
+ Requires-Dist: texsoup>=0.3.3
49
49
  Requires-Dist: toml>=0.10.2
50
50
  Requires-Dist: tqdm>=4.67.1
51
- Requires-Dist: typer==0.24.1
51
+ Requires-Dist: typer==0.25.1
52
52
  Requires-Dist: uvicorn
53
53
  Provides-Extra: data
54
54
  Requires-Dist: pandas>=2.2.3; extra == 'data'
@@ -3,15 +3,34 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  import os
6
+ import re
6
7
  import subprocess
7
8
  from typing import TYPE_CHECKING
8
9
 
9
10
  import typer
11
+ from typer.core import TyperGroup
10
12
 
11
13
  if TYPE_CHECKING:
12
14
  import click
13
15
 
14
16
 
17
+ class AliasGroup(TyperGroup):
18
+ """TyperGroup that resolves command aliases defined with '|' in the name."""
19
+
20
+ _CMD_SPLIT_P = re.compile(r" ?[,|] ?")
21
+
22
+ def get_command(self, ctx, cmd_name):
23
+ cmd_name = self._group_cmd_name(cmd_name)
24
+ return super().get_command(ctx, cmd_name)
25
+
26
+ def _group_cmd_name(self, default_name):
27
+ for cmd in self.commands.values():
28
+ name = cmd.name
29
+ if name and default_name in self._CMD_SPLIT_P.split(name):
30
+ return name
31
+ return default_name
32
+
33
+
15
34
  def complete_stage_names(
16
35
  ctx: "click.Context",
17
36
  param: "click.Parameter",
@@ -7,9 +7,9 @@ from typing import Annotated, Literal
7
7
  import typer
8
8
 
9
9
  import calkit
10
- from calkit.cli import warn
10
+ from calkit.cli import AliasGroup, warn
11
11
 
12
- list_app = typer.Typer(no_args_is_help=True)
12
+ list_app = typer.Typer(cls=AliasGroup, no_args_is_help=True)
13
13
 
14
14
 
15
15
  def _list_objects(
@@ -50,33 +50,37 @@ def _list_objects(
50
50
  typer.echo(f" {k}: {v}")
51
51
 
52
52
 
53
- @list_app.command(name="notebooks")
53
+ @list_app.command(name="notebooks|nb")
54
54
  def list_notebooks():
55
+ """List notebooks in the project."""
55
56
  _list_objects("notebooks")
56
57
 
57
58
 
58
- @list_app.command(name="figures")
59
+ @list_app.command(name="figures|figs")
59
60
  def list_figures():
61
+ """List figures in the project."""
60
62
  _list_objects("figures")
61
63
 
62
64
 
63
65
  @list_app.command(name="datasets")
64
66
  def list_datasets():
67
+ """List datasets in the project."""
65
68
  _list_objects("datasets")
66
69
 
67
70
 
68
- @list_app.command(name="publications")
71
+ @list_app.command(name="publications|pubs")
69
72
  def list_publications():
73
+ """List publications in the project."""
70
74
  _list_objects("publications")
71
75
 
72
76
 
73
- @list_app.command(name="references")
77
+ @list_app.command(name="references|refs")
74
78
  def list_references():
79
+ """List reference collections in the project."""
75
80
  _list_objects("references")
76
81
 
77
82
 
78
- @list_app.command(name="environments")
79
- @list_app.command(name="envs")
83
+ @list_app.command(name="environments|envs")
80
84
  def list_environments():
81
85
  """List environments in the project."""
82
86
  envs = calkit.load_calkit_info().get("environments", {})
@@ -88,6 +92,7 @@ def list_environments():
88
92
 
89
93
  @list_app.command(name="templates")
90
94
  def list_templates():
95
+ """List all available Calkit templates."""
91
96
  for kind, tpl_dict in calkit.templates.TEMPLATES.items():
92
97
  for name in tpl_dict:
93
98
  typer.echo(f"{kind}/{name}")
@@ -95,6 +100,7 @@ def list_templates():
95
100
 
96
101
  @list_app.command(name="procedures")
97
102
  def list_procedures():
103
+ """List procedures in the current project."""
98
104
  ck_info = calkit.load_calkit_info()
99
105
  for p in ck_info.get("procedures", {}):
100
106
  typer.echo(p)
@@ -134,7 +140,7 @@ def list_stages(
134
140
  typer.Option("--kind", "-k", help="Filter stages by kind."),
135
141
  ] = None,
136
142
  ):
137
- """List stages."""
143
+ """List pipeline stages."""
138
144
  stages = calkit.load_calkit_info().get("pipeline", {}).get("stages", {})
139
145
  for name, stage in stages.items():
140
146
  if kinds is not None and stage.get("kind") not in kinds:
@@ -31,6 +31,7 @@ from calkit import (
31
31
  DVC_SIZE_THRESH_BYTES,
32
32
  )
33
33
  from calkit.cli import (
34
+ AliasGroup,
34
35
  complete_stage_names,
35
36
  print_sep,
36
37
  raise_error,
@@ -60,27 +61,25 @@ from calkit.cli.slurm import slurm_app
60
61
  from calkit.cli.update import update_app
61
62
 
62
63
  app = typer.Typer(
64
+ cls=AliasGroup,
63
65
  invoke_without_command=True,
64
66
  no_args_is_help=True,
65
67
  context_settings=dict(help_option_names=["-h", "--help"]),
66
68
  pretty_exceptions_show_locals=False,
67
69
  )
68
70
  app.add_typer(config_app, name="config", help="Configure Calkit.")
69
- app.add_typer(new_app, name="new", help="Create a new Calkit object.")
71
+ app.add_typer(new_app, name="new|create", help="Create a new Calkit object.")
70
72
  app.add_typer(
71
- new_app,
72
- name="create",
73
- help="Create a new Calkit object (alias for 'new').",
73
+ notebooks_app, name="notebooks|nb", help="Work with Jupyter notebooks."
74
74
  )
75
- app.add_typer(notebooks_app, name="nb", help="Work with Jupyter notebooks.")
76
- app.add_typer(list_app, name="list", help="List Calkit objects.")
77
- app.add_typer(describe_app, name="describe", help="Describe things.")
75
+ app.add_typer(list_app, name="list|ls", help="List Calkit objects.")
76
+ app.add_typer(describe_app, name="describe|desc", help="Describe things.")
78
77
  app.add_typer(import_app, name="import", help="Import objects.")
79
78
  app.add_typer(office_app, name="office", help="Work with Microsoft Office.")
80
79
  app.add_typer(update_app, name="update", help="Update objects.")
81
80
  app.add_typer(check_app, name="check", help="Check things.")
82
- app.add_typer(latex_app, name="latex", help="Work with LaTeX.")
83
- app.add_typer(overleaf_app, name="overleaf", help="Interact with Overleaf.")
81
+ app.add_typer(latex_app, name="latex|tex", help="Work with LaTeX.")
82
+ app.add_typer(overleaf_app, name="overleaf|ol", help="Interact with Overleaf.")
84
83
  app.add_typer(cloud_app, name="cloud", help="Interact with a Calkit Cloud.")
85
84
  app.add_typer(slurm_app, name="slurm", help="Work with SLURM.")
86
85
  app.add_typer(dev_app, name="dev", help="Developer tools.", hidden=True)
@@ -295,7 +294,7 @@ def _format_dvc_data_status(status: dict, zip_path_map: dict) -> str:
295
294
  return "\n".join(lines) + "\n"
296
295
 
297
296
 
298
- @app.command(name="status")
297
+ @app.command(name="status|st")
299
298
  def get_status(
300
299
  targets: Annotated[
301
300
  list[str] | None,
@@ -862,7 +861,7 @@ def commit(
862
861
  push()
863
862
 
864
863
 
865
- @app.command(name="save")
864
+ @app.command(name="save|sv")
866
865
  def save(
867
866
  paths: Annotated[
868
867
  Optional[list[str]],
@@ -1732,12 +1731,7 @@ def manual_step(
1732
1731
 
1733
1732
 
1734
1733
  @app.command(
1735
- name="runenv",
1736
- help="Execute a command in an environment (alias for 'xenv').",
1737
- context_settings={"ignore_unknown_options": True},
1738
- )
1739
- @app.command(
1740
- name="xenv",
1734
+ name="xenv|runenv",
1741
1735
  help="Execute a command in an environment.",
1742
1736
  context_settings={"ignore_unknown_options": True},
1743
1737
  )
@@ -2247,8 +2241,7 @@ def run_in_env(
2247
2241
  raise_error("Environment kind not supported")
2248
2242
 
2249
2243
 
2250
- @app.command(name="runproc", help="Execute a procedure (alias for 'xproc').")
2251
- @app.command(name="xproc", help="Execute a procedure.")
2244
+ @app.command(name="xproc|runproc", help="Execute a procedure.")
2252
2245
  def run_procedure(
2253
2246
  name: Annotated[str, typer.Argument(help="The name of the procedure.")],
2254
2247
  no_commit: Annotated[
@@ -13,10 +13,10 @@ import typer
13
13
  from typing_extensions import Annotated
14
14
 
15
15
  import calkit
16
- from calkit.cli import raise_error, warn
16
+ from calkit.cli import AliasGroup, raise_error, warn
17
17
  from calkit.core import ryaml
18
18
 
19
- new_app = typer.Typer(no_args_is_help=True)
19
+ new_app = typer.Typer(cls=AliasGroup, no_args_is_help=True)
20
20
 
21
21
 
22
22
  def _check_path_dir(path: str):
@@ -455,7 +455,7 @@ def new_project(
455
455
  typer.echo(success_message)
456
456
 
457
457
 
458
- @new_app.command(name="figure")
458
+ @new_app.command(name="figure|fig")
459
459
  def new_figure(
460
460
  path: str,
461
461
  title: Annotated[str, typer.Option("--title")],
@@ -598,7 +598,7 @@ def new_question(
598
598
  repo.git.commit(["-m", "Add question"])
599
599
 
600
600
 
601
- @new_app.command("notebook")
601
+ @new_app.command("notebook|nb")
602
602
  def new_notebook(
603
603
  path: Annotated[str, typer.Argument(help="Notebook path (relative)")],
604
604
  title: Annotated[str, typer.Option("--title")],
@@ -1028,7 +1028,7 @@ def new_dataset(
1028
1028
  repo.git.commit(["-m", f"Add dataset {path}"])
1029
1029
 
1030
1030
 
1031
- @new_app.command(name="publication", help="Create a new publication.")
1031
+ @new_app.command(name="publication|pub", help="Create a new publication.")
1032
1032
  def new_publication(
1033
1033
  path: Annotated[
1034
1034
  str,