calkit-python 0.41.19__tar.gz → 0.41.20__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.
- {calkit_python-0.41.19 → calkit_python-0.41.20}/CONTRIBUTING.md +1 -1
- {calkit_python-0.41.19 → calkit_python-0.41.20}/PKG-INFO +2 -2
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/cli/main/core.py +20 -3
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/dvc/zip.py +17 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/tests/cli/main/test_core.py +23 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/tests/dvc/test_zip.py +25 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/help.md +1 -1
- {calkit_python-0.41.19 → calkit_python-0.41.20}/pyproject.toml +1 -1
- {calkit_python-0.41.19 → calkit_python-0.41.20}/uv.lock +1064 -136
- {calkit_python-0.41.19 → calkit_python-0.41.20}/.claude-plugin/marketplace.json +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/.gitattributes +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/.gitignore +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/.pre-commit-config.yaml +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/.prettierignore +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/.prettierrc.json +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/.python-version +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/.vscode/launch.json +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/.vscode/tasks.json +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/AGENTS.md +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/CITATION.cff +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/CODE_OF_CONDUCT.md +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/LICENSE +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/Makefile +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/README.md +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/agent-plugin/.claude-plugin/plugin.json +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/agent-plugin/skills/add-pipeline-stage/SKILL.md +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/agent-plugin/skills/conventions/SKILL.md +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/agent-plugin/skills/create-pipeline/SKILL.md +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/__init__.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/__main__.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/calc.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/check.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/cli/__init__.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/cli/check.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/cli/cloud.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/cli/config.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/cli/core.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/cli/delete.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/cli/describe.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/cli/dev.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/cli/import_.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/cli/latex.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/cli/list.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/cli/main/__init__.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/cli/main/xr.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/cli/new.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/cli/notebooks.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/cli/office.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/cli/overleaf.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/cli/scheduler.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/cli/update.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/cloud.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/conda.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/config.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/core.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/datasets.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/dependencies.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/detect.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/docker.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/dvc/__init__.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/dvc/core.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/environments.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/fs.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/git.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/github.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/gui.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/install.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/invenio.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/julia.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/jupyter.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/jupyterlab/__init__.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/jupyterlab/routes.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/labextension/package.json +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/labextension/schemas/calkit/package.json.orig +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/labextension/schemas/calkit/plugin.json +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/labextension/static/502.9a2c5772a15466e923ef.js +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/labextension/static/695.2c41003a452d43d2b358.js +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/labextension/static/867.a42a046aa5108f54f8fb.js +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/labextension/static/909.e3f9cc3408834a7fdcc3.js +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/labextension/static/946.050af2abf7845cfbdbd2.js +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/labextension/static/946.050af2abf7845cfbdbd2.js.LICENSE.txt +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/labextension/static/b2f1c3efe70cb539d121.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/labextension/static/remoteEntry.ac9035764d5b2adbb542.js +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/labextension/static/style.js +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/labextension/static/third-party-licenses.json +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/licenses.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/magics.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/matlab.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/models/__init__.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/models/core.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/models/io.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/models/iteration.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/models/pipeline.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/notebooks.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/office.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/ops.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/overleaf.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/pipeline.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/releases.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/server.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/templates/__init__.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/templates/core.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/templates/latex/__init__.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/templates/latex/article/paper.tex +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/templates/latex/core.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/templates/latex/jfm/jfm.bst +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/templates/latex/jfm/jfm.cls +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/templates/latex/jfm/lineno-FLM.sty +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/templates/latex/jfm/paper.tex +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/templates/latex/jfm/upmath.sty +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/tests/__init__.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/tests/cli/__init__.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/tests/cli/main/__init__.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/tests/cli/main/test_lock.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/tests/cli/main/test_subprojects.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/tests/cli/main/test_xr.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/tests/cli/test_check.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/tests/cli/test_cloud.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/tests/cli/test_config.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/tests/cli/test_delete.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/tests/cli/test_import.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/tests/cli/test_latex.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/tests/cli/test_list.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/tests/cli/test_new.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/tests/cli/test_notebooks.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/tests/cli/test_overleaf.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/tests/cli/test_scheduler.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/tests/cli/test_update.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/tests/dvc/__init__.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/tests/dvc/test_core.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/tests/jupyterlab/__init__.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/tests/jupyterlab/conftest.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/tests/jupyterlab/test_routes.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/tests/models/__init__.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/tests/models/test_core.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/tests/models/test_iteration.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/tests/models/test_pipeline.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/tests/test_calc.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/tests/test_check.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/tests/test_cloud.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/tests/test_conda.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/tests/test_core.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/tests/test_dependencies.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/tests/test_detect.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/tests/test_docker.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/tests/test_environments.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/tests/test_fs.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/tests/test_git.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/tests/test_install.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/tests/test_invenio.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/tests/test_julia.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/tests/test_jupyter.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/tests/test_licenses.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/tests/test_magics.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/tests/test_matlab.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/tests/test_notebooks.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/tests/test_pipeline.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/tests/test_releases.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/calkit/tests/test_templates.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/CNAME +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/acknowledgements.md +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/ai-tools.md +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/apps.md +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/calculations.md +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/calkit-yaml.md +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/cli-reference.md +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/cloud-integration.md +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/datasets.md +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/dependencies.md +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/environments.md +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/examples.md +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/governance.md +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/hpc.md +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/img/c-to-the-k-white.svg +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/img/calkit-fragmentation-compendium.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/img/calkit-no-bg.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/img/caltech.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/img/connect-zenodo.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/img/jupyterlab/all-green.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/img/jupyterlab/collect-data-stale.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/img/jupyterlab/new-env.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/img/jupyterlab/new-notebook.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/img/jupyterlab/pipeline-badge.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/img/jupyterlab-params.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/img/pipeline.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/img/plos-osi-code-2024-03.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/img/schmidt-sciences.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/img/vscode-nb-params.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/index.md +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/installation.md +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/jupyterlab.md +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/local-server.md +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/notebooks.md +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/overleaf.md +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/pipeline/index.md +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/pipeline/manual-steps.md +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/pipeline/running-and-logging.md +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/quickstart.md +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/references.md +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/releases.md +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/reproducibility.md +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/subprojects.md +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/adding-latex-pub-docker.md +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/ai-agents.md +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/conda-envs.md +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/existing-project.md +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/first-project.md +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/github-actions.md +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/img/actions-repo-secrets.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/img/latex-codespaces/building-codespace.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/img/latex-codespaces/codespaces-secrets-2.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/img/latex-codespaces/editor-split.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/img/latex-codespaces/go-to-linked-code.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/img/latex-codespaces/issue-from-selection.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/img/latex-codespaces/new-project.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/img/latex-codespaces/new-pub-2.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/img/latex-codespaces/new-token.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/img/latex-codespaces/paper.tex.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/img/latex-codespaces/project-home-3.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/img/latex-codespaces/push.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/img/latex-codespaces/stage.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/img/office/anakin-excel.jpg +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/img/office/chart-more-rows.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/img/office/create-project.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/img/office/elsevier-research-data-guidelines.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/img/office/excel-chart.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/img/office/excel-data.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/img/office/insert-link-to-file.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/img/office/needs-clone.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/img/office/new-stage.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/img/office/phd-comics-version-control.webp +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/img/office/pipeline-out-of-date.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/img/office/status-more-rows.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/img/office/uncommitted-changes.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/img/office/untracked-data.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/img/office/updated-publication.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/img/office/word-to-pdf-stage-2.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/img/office/workflow-page.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/img/openfoam/clone.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/img/openfoam/create-project.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/img/openfoam/datasets-page.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/img/openfoam/figure-on-website-updated.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/img/openfoam/figure-on-website.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/img/openfoam/new-token.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/img/openfoam/reclone.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/img/openfoam/status-after-import-dataset.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/img/quick-actions.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/img/run-proc.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/img/vscode-slurm-notebook/create-calkit-env.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/img/vscode-slurm-notebook/create-inner-env.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/img/vscode-slurm-notebook/create-new-calkit-env.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/img/vscode-slurm-notebook/select-calkit-env.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/img/vscode-slurm-notebook/slurm-job-running.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/img/vscode-slurm-notebook/slurm-launch-options.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/img/vscode-slurm-notebook/starting-slurm-job.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/index.md +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/jupyterlab.md +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/latex-codespaces.md +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/matlab.md +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/notebook-pipeline.md +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/office.md +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/openfoam.md +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/procedures.md +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/tutorials/vscode-slurm-notebook.md +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/docs/version-control.md +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/flake.lock +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/flake.nix +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/jupyterlab-ext/.yarnrc.yml +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/jupyterlab-ext/babel.config.js +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/jupyterlab-ext/install.json +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/jupyterlab-ext/jest.config.js +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/jupyterlab-ext/jupyter-config/server-config/calkit.json +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/jupyterlab-ext/package.json +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/jupyterlab-ext/schema/plugin.json +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/jupyterlab-ext/src/__tests__/useQueries.spec.ts +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/jupyterlab-ext/src/calkit-config.ts +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/jupyterlab-ext/src/cell-output-marker.ts +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/jupyterlab-ext/src/components/commit-dialog.tsx +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/jupyterlab-ext/src/components/environment-editor.tsx +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/jupyterlab-ext/src/components/notebook-registration.tsx +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/jupyterlab-ext/src/components/notebook-toolbar.tsx +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/jupyterlab-ext/src/components/pipeline-status-bar.tsx +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/jupyterlab-ext/src/components/project-info-editor.tsx +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/jupyterlab-ext/src/components/sidebar-settings.tsx +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/jupyterlab-ext/src/components/sidebar.tsx +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/jupyterlab-ext/src/components/stage-editor.tsx +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/jupyterlab-ext/src/feature-flags.ts +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/jupyterlab-ext/src/file-browser-menu.ts +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/jupyterlab-ext/src/hooks/__tests__/useQueries.test.tsx +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/jupyterlab-ext/src/hooks/useQueries.ts +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/jupyterlab-ext/src/icons.ts +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/jupyterlab-ext/src/index.ts +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/jupyterlab-ext/src/io-tracker.ts +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/jupyterlab-ext/src/pipeline-state.ts +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/jupyterlab-ext/src/queryClient.ts +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/jupyterlab-ext/src/request.ts +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/jupyterlab-ext/src/shims-mainmenu.d.ts +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/jupyterlab-ext/style/base.css +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/jupyterlab-ext/style/cell-output-marker.css +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/jupyterlab-ext/style/environment-editor.css +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/jupyterlab-ext/style/environment-selector.css +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/jupyterlab-ext/style/img/calkit-no-bg.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/jupyterlab-ext/style/index.css +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/jupyterlab-ext/style/index.js +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/jupyterlab-ext/style/notebook-toolbar.css +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/jupyterlab-ext/style/pipeline-status-bar.css +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/jupyterlab-ext/style/sidebar.css +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/jupyterlab-ext/tsconfig.json +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/jupyterlab-ext/tsconfig.test.json +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/jupyterlab-ext/ui-tests/.gitignore +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/jupyterlab-ext/ui-tests/README.md +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/jupyterlab-ext/ui-tests/jupyter_server_test_config.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/jupyterlab-ext/ui-tests/package.json +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/jupyterlab-ext/ui-tests/playwright.config.js +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/jupyterlab-ext/ui-tests/tests/calkit.spec.ts +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/jupyterlab-ext/ui-tests/yarn.lock +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/jupyterlab-ext/yarn.lock +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/mkdocs.yml +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/scripts/generate-docs-references.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/scripts/install.ps1 +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/scripts/install.sh +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/scripts/make-calk9.sh +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/scripts/sync-docs.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/test/dvc-md5-dir/osx-arm64.txt +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/test/nb-julia.ipynb +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/test/nb-params.ipynb +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/test/nb-subdir.ipynb +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/test/pipeline.ipynb +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/test/script.py +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/test/test-log.log +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/vscode-ext/.gitignore +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/vscode-ext/.vscodeignore +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/vscode-ext/CHANGELOG.md +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/vscode-ext/LICENSE +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/vscode-ext/README.md +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/vscode-ext/images/calkit-icon.svg +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/vscode-ext/images/calkit-no-bg.png +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/vscode-ext/package-lock.json +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/vscode-ext/package.json +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/vscode-ext/scripts/set-proposed-api.js +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/vscode-ext/src/environments.ts +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/vscode-ext/src/extension.ts +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/vscode-ext/src/figures/core.ts +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/vscode-ext/src/figures/view.ts +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/vscode-ext/src/notebooks.ts +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/vscode-ext/src/pipeline/core.ts +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/vscode-ext/src/sidebar.ts +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/vscode-ext/src/test/environments.test.ts +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/vscode-ext/src/test/figures.test.ts +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/vscode-ext/src/test/kernel-selection.test.ts +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/vscode-ext/src/test/notebooks.test.ts +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/vscode-ext/src/test/pipeline.test.ts +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/vscode-ext/src/types.ts +0 -0
- {calkit_python-0.41.19 → calkit_python-0.41.20}/vscode-ext/tsconfig.json +0 -0
|
@@ -98,7 +98,7 @@ This guide will help you get started.
|
|
|
98
98
|
## 🎉 Join the community
|
|
99
99
|
|
|
100
100
|
- Participate in **[GitHub Discussions](https://github.com/calkit/discussions)**.
|
|
101
|
-
- Join our [**Discord**](https://discord.gg/
|
|
101
|
+
- Join our [**Discord**](https://discord.gg/m2MBC79HzD) for real-time collaboration.
|
|
102
102
|
- Follow our updates on [**LinkedIn**](https://linkedin.com/company/calkit).
|
|
103
103
|
|
|
104
104
|
We appreciate your help in making Calkit better! 🚀
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: calkit-python
|
|
3
|
-
Version: 0.41.
|
|
3
|
+
Version: 0.41.20
|
|
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,7 +26,7 @@ Requires-Dist: arithmeval
|
|
|
26
26
|
Requires-Dist: bibtexparser
|
|
27
27
|
Requires-Dist: checksumdir
|
|
28
28
|
Requires-Dist: docx2pdf
|
|
29
|
-
Requires-Dist: dvc==3.67.1
|
|
29
|
+
Requires-Dist: dvc[all]==3.67.1
|
|
30
30
|
Requires-Dist: fastapi
|
|
31
31
|
Requires-Dist: fsspec>=2026.4.0
|
|
32
32
|
Requires-Dist: gitpython
|
|
@@ -179,11 +179,26 @@ def init(
|
|
|
179
179
|
typer.Option(
|
|
180
180
|
"--force",
|
|
181
181
|
"-f",
|
|
182
|
-
help="
|
|
182
|
+
help="Re-initialize even if the project is already initialized.",
|
|
183
183
|
),
|
|
184
184
|
] = False,
|
|
185
185
|
):
|
|
186
186
|
"""Initialize the current working directory."""
|
|
187
|
+
import git
|
|
188
|
+
from git.exc import InvalidGitRepositoryError
|
|
189
|
+
|
|
190
|
+
def _project_is_initialized() -> bool:
|
|
191
|
+
try:
|
|
192
|
+
git.Repo(".", search_parent_directories=False)
|
|
193
|
+
except InvalidGitRepositoryError:
|
|
194
|
+
return False
|
|
195
|
+
return os.path.isfile(".dvc/config") and os.path.isfile("calkit.yaml")
|
|
196
|
+
|
|
197
|
+
if _project_is_initialized() and not force:
|
|
198
|
+
raise_error(
|
|
199
|
+
"This project is already initialized. "
|
|
200
|
+
"Use --force to re-initialize."
|
|
201
|
+
)
|
|
187
202
|
subprocess.run(["git", "init"])
|
|
188
203
|
result = calkit.dvc.run_dvc_command(
|
|
189
204
|
["init"] + (["--force"] if force else [])
|
|
@@ -197,13 +212,15 @@ def init(
|
|
|
197
212
|
# Commit the newly created .dvc directory
|
|
198
213
|
repo = calkit.git.get_repo()
|
|
199
214
|
repo.git.add(".dvc")
|
|
200
|
-
|
|
215
|
+
if calkit.git.get_staged_files(repo=repo):
|
|
216
|
+
repo.git.commit("-m", "Initialize DVC")
|
|
201
217
|
# Create an empty calkit.yaml if one doesn't already exist
|
|
202
218
|
if not os.path.isfile("calkit.yaml"):
|
|
203
219
|
with open("calkit.yaml", "w"):
|
|
204
220
|
pass
|
|
205
221
|
repo.git.add("calkit.yaml")
|
|
206
|
-
|
|
222
|
+
if calkit.git.get_staged_files(repo=repo):
|
|
223
|
+
repo.git.commit("-m", "Initialize Calkit")
|
|
207
224
|
# TODO: Initialize `dvc.yaml`
|
|
208
225
|
# TODO: Add a sane .gitignore file
|
|
209
226
|
# TODO: Add a sane LICENSE file?
|
|
@@ -499,6 +499,23 @@ def _sync_one(
|
|
|
499
499
|
# pipeline output that hasn't been produced yet on a fresh run)
|
|
500
500
|
if workspace_hash is None and zip_hash is None:
|
|
501
501
|
return None
|
|
502
|
+
# Workspace doesn't exist with no prior sync record while syncing to-zip —
|
|
503
|
+
# there's nothing to push into the zip (e.g., the zip was pulled but
|
|
504
|
+
# never unzipped into the workspace)
|
|
505
|
+
if (
|
|
506
|
+
workspace_hash is None
|
|
507
|
+
and last_sync_record is None
|
|
508
|
+
and direction == "to-zip"
|
|
509
|
+
):
|
|
510
|
+
return None
|
|
511
|
+
# Zip doesn't exist with no prior sync record while syncing to-workspace —
|
|
512
|
+
# there's nothing to pull into the workspace
|
|
513
|
+
if (
|
|
514
|
+
zip_hash is None
|
|
515
|
+
and last_sync_record is None
|
|
516
|
+
and direction == "to-workspace"
|
|
517
|
+
):
|
|
518
|
+
return None
|
|
502
519
|
# Deletion + change on the other side is a conflict
|
|
503
520
|
if workspace_deleted and zip_changed and direction == "both":
|
|
504
521
|
raise RuntimeError(
|
|
@@ -60,6 +60,16 @@ def test_init(tmp_dir):
|
|
|
60
60
|
subprocess.check_call(["calkit", "init"])
|
|
61
61
|
assert os.path.isfile("calkit.yaml")
|
|
62
62
|
assert calkit.load_calkit_info() == {}
|
|
63
|
+
# Already initialized: init without --force fails and does not clobber
|
|
64
|
+
result = subprocess.run(
|
|
65
|
+
["calkit", "init"],
|
|
66
|
+
capture_output=True,
|
|
67
|
+
text=True,
|
|
68
|
+
)
|
|
69
|
+
assert result.returncode != 0
|
|
70
|
+
assert "already initialized" in result.stderr.lower()
|
|
71
|
+
assert "use --force" in result.stderr.lower()
|
|
72
|
+
assert calkit.load_calkit_info() == {}
|
|
63
73
|
# init must not clobber a pre-existing calkit.yaml
|
|
64
74
|
os.makedirs("sub")
|
|
65
75
|
ck_info = {"name": "test-project"}
|
|
@@ -67,6 +77,19 @@ def test_init(tmp_dir):
|
|
|
67
77
|
calkit.ryaml.dump(ck_info, f)
|
|
68
78
|
subprocess.check_call(["calkit", "init"], cwd="sub")
|
|
69
79
|
assert calkit.load_calkit_info(wdir="sub") == ck_info
|
|
80
|
+
# Fully initialized project blocks init without --force
|
|
81
|
+
result = subprocess.run(
|
|
82
|
+
["calkit", "init"],
|
|
83
|
+
cwd="sub",
|
|
84
|
+
capture_output=True,
|
|
85
|
+
text=True,
|
|
86
|
+
)
|
|
87
|
+
assert result.returncode != 0
|
|
88
|
+
assert "already initialized" in result.stderr.lower()
|
|
89
|
+
assert calkit.load_calkit_info(wdir="sub") == ck_info
|
|
90
|
+
# --force allows re-initialization without clobbering calkit.yaml
|
|
91
|
+
subprocess.check_call(["calkit", "init", "--force"], cwd="sub")
|
|
92
|
+
assert calkit.load_calkit_info(wdir="sub") == ck_info
|
|
70
93
|
|
|
71
94
|
|
|
72
95
|
@skipif_windows_docker
|
|
@@ -303,3 +303,28 @@ def test_sync_one(tmp_dir, monkeypatch):
|
|
|
303
303
|
assert result is not None
|
|
304
304
|
assert (src7 / "a.txt").read_text() == "hello"
|
|
305
305
|
assert get_sync_record(str(src7.as_posix())) is not None
|
|
306
|
+
# Zip exists but workspace was never unzipped (no sync record) with
|
|
307
|
+
# direction=to-zip: nothing to push, skip without error
|
|
308
|
+
src8 = tmp_dir / "src8"
|
|
309
|
+
src8.mkdir()
|
|
310
|
+
(src8 / "a.txt").write_text("hello")
|
|
311
|
+
zip_out8 = str(tmp_dir / calkit.dvc.zip.ZIPS_DIR / "src8.zip")
|
|
312
|
+
zip_(str(src8), zip_out8)
|
|
313
|
+
shutil.rmtree(str(src8))
|
|
314
|
+
write_zip_path_map({str(src8.as_posix()): zip_out8})
|
|
315
|
+
result = sync_one(str(src8), zip_out8, direction="to-zip")
|
|
316
|
+
assert result is None
|
|
317
|
+
assert os.path.isfile(zip_out8)
|
|
318
|
+
assert not os.path.exists(str(src8))
|
|
319
|
+
# Workspace exists but zip was never created (no sync record) with
|
|
320
|
+
# direction=to-workspace: nothing to pull, skip without error
|
|
321
|
+
src9 = tmp_dir / "src9"
|
|
322
|
+
src9.mkdir()
|
|
323
|
+
(src9 / "a.txt").write_text("hello")
|
|
324
|
+
zip_out9 = str(tmp_dir / calkit.dvc.zip.ZIPS_DIR / "src9.zip")
|
|
325
|
+
write_zip_path_map({str(src9.as_posix()): zip_out9})
|
|
326
|
+
result = sync_one(str(src9), zip_out9, direction="to-workspace")
|
|
327
|
+
assert result is None
|
|
328
|
+
assert not os.path.exists(zip_out9)
|
|
329
|
+
assert get_sync_record(str(src9.as_posix())) is None
|
|
330
|
+
assert (src9 / "a.txt").read_text() == "hello"
|
|
@@ -7,7 +7,7 @@ To get in touch with the community,
|
|
|
7
7
|
check out the
|
|
8
8
|
[discussion forum](https://github.com/orgs/calkit/discussions)
|
|
9
9
|
or the
|
|
10
|
-
[Discord server](https://discord.gg/
|
|
10
|
+
[Discord server](https://discord.gg/m2MBC79HzD).
|
|
11
11
|
|
|
12
12
|
If you want to get in touch directly,
|
|
13
13
|
feel free to
|