calkit-python 0.45.3__tar.gz → 0.46.0__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.45.3 → calkit_python-0.46.0}/PKG-INFO +4 -2
- {calkit_python-0.45.3 → calkit_python-0.46.0}/actions/run/README.md +4 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/actions/run/action.yml +19 -0
- {calkit_python-0.45.3/calkit/resources/github-actions → calkit_python-0.46.0/actions/run}/example.yml +4 -0
- calkit_python-0.46.0/agent-plugin/skills/build-paper-pipeline/SKILL.md +152 -0
- calkit_python-0.46.0/agent-plugin/skills/check-questions/SKILL.md +144 -0
- calkit_python-0.46.0/agent-plugin/skills/check-reproducibility/SKILL.md +112 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/agent-plugin/skills/conventions/SKILL.md +19 -76
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/cli/check.py +664 -126
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/cli/core.py +32 -3
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/cli/import_.py +194 -23
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/cli/latex.py +25 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/cli/list.py +106 -2
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/cli/main/core.py +520 -101
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/cli/new.py +65 -6
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/cli/scheduler.py +10 -16
- calkit_python-0.46.0/calkit/cli/sync.py +343 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/cli/update.py +176 -33
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/config.py +5 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/core.py +81 -21
- calkit_python-0.46.0/calkit/docker.py +1255 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/environments.py +160 -17
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/git.py +5 -2
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/hub.py +14 -2
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/models/core.py +419 -34
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/models/pipeline.py +284 -31
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/pipeline.py +93 -1
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/procedures.py +26 -0
- calkit_python-0.46.0/calkit/provenance.py +840 -0
- calkit_python-0.46.0/calkit/questions.py +809 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/releases.py +159 -0
- calkit_python-0.46.0/calkit/reproducibility.py +898 -0
- {calkit_python-0.45.3/actions/run → calkit_python-0.46.0/calkit/resources/github-actions}/example.yml +4 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/cli/main/test_core.py +297 -18
- calkit_python-0.46.0/calkit/tests/cli/test_check.py +1277 -0
- calkit_python-0.46.0/calkit/tests/cli/test_import.py +388 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/cli/test_latex.py +75 -13
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/cli/test_update.py +90 -19
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_core.py +17 -1
- calkit_python-0.46.0/calkit/tests/test_docker.py +492 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_environments.py +97 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_hub.py +45 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_models.py +8 -7
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_pipeline.py +468 -0
- calkit_python-0.46.0/calkit/tests/test_procedures.py +297 -0
- calkit_python-0.46.0/calkit/tests/test_provenance.py +580 -0
- calkit_python-0.46.0/calkit/tests/test_questions.py +358 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_releases.py +64 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_reproducibility.py +68 -1
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_schema.py +25 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/ai-tools.md +7 -1
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/calkit-yaml.md +73 -50
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/cli-reference.md +648 -493
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/environments.md +244 -38
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/hpc.md +11 -4
- calkit_python-0.46.0/docs/hub/self-hosting.md +167 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/pipeline/index.md +65 -39
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/provenance.md +160 -1
- calkit_python-0.46.0/docs/questions.md +138 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/releases.md +67 -0
- {calkit_python-0.45.3/vscode-ext → calkit_python-0.46.0/docs}/schemas/calkit.json +1174 -70
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/index.md +1 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/procedures.md +38 -17
- calkit_python-0.46.0/docs/tutorials/writing-first.md +151 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/version-control.md +26 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/.env.example +10 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/api/deps.py +2 -2
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/api/routes/misc.py +72 -1
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/api/routes/projects/core.py +248 -69
- calkit_python-0.46.0/hub/backend/app/cache.py +141 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/config.py +50 -1
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/core.py +2 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/git.py +188 -36
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/main.py +61 -2
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/models/core.py +4 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/pipeline.py +33 -7
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/projects.py +22 -2
- calkit_python-0.46.0/hub/backend/app/tasks.py +131 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/__init__.py +2 -4
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/api/routes/projects/test_activity.py +1 -5
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/api/routes/projects/test_core.py +72 -103
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/api/routes/projects/test_datasets.py +10 -18
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/api/routes/projects/test_dvc.py +6 -21
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/api/routes/projects/test_figure_upload.py +1 -3
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/api/routes/projects/test_figures.py +1 -3
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/api/routes/projects/test_fs.py +3 -7
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/api/routes/projects/test_misc.py +1 -2
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/api/routes/projects/test_overleaf_links.py +13 -18
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/api/routes/projects/test_pipeline.py +1 -2
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/api/routes/projects/test_publications.py +1 -2
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/api/routes/projects/test_reference_items.py +1 -3
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/api/routes/test_feedback.py +9 -9
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/api/routes/test_login.py +27 -33
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/api/routes/test_misc.py +61 -10
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/api/routes/test_releases.py +10 -36
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/api/routes/test_users.py +46 -58
- calkit_python-0.46.0/hub/backend/app/tests/test_cache.py +156 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/test_git.py +197 -0
- calkit_python-0.46.0/hub/backend/app/tests/test_tasks.py +54 -0
- calkit_python-0.46.0/hub/backend/app/thumbnails.py +139 -0
- calkit_python-0.46.0/hub/backend/app/warm.py +210 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/pyproject.toml +9 -0
- calkit_python-0.46.0/hub/config/grafana/provisioning/dashboards/warm-queue.json +342 -0
- calkit_python-0.46.0/hub/config/prometheus/prometheus.yml +31 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/docker-compose.yml +136 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/package-lock.json +1 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/package.json +1 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/client/index.ts +6 -1
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/client/schemas.gen.ts +113 -47
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/client/sdk.gen.ts +63 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/client/types.gen.ts +112 -23
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/ArtifactCompareModal.tsx +12 -3
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/Mermaid.tsx +94 -4
- calkit_python-0.46.0/hub/frontend/src/components/Common/TexText.tsx +84 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Datasets/NewDataset.tsx +5 -7
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Notebooks/NotebookView.tsx +51 -2
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Onboarding/ProjectChecklist.tsx +14 -4
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Projects/EditQuestion.tsx +19 -2
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Publications/PublicationComponents.tsx +7 -3
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/References/ReferencesInfoPanel.tsx +1 -1
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Tables/TableThumbnail.tsx +13 -2
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Tables/TableView.tsx +29 -3
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/hooks/useProject.ts +8 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/tables.test.ts +96 -3
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/tables.ts +173 -28
- calkit_python-0.46.0/hub/frontend/src/lib/tex.test.ts +45 -0
- calkit_python-0.46.0/hub/frontend/src/lib/tex.ts +76 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/datasets.tsx +24 -11
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/figures.tsx +137 -13
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/notebooks.tsx +2 -2
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/pipeline.tsx +168 -35
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/publications.tsx +4 -1
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/tables.tsx +2 -2
- {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/jest.config.js +22 -4
- {calkit_python-0.45.3 → calkit_python-0.46.0}/mkdocs.yml +1 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/pyproject.toml +7 -2
- {calkit_python-0.45.3 → calkit_python-0.46.0}/scripts/generate-docs-references.py +49 -34
- {calkit_python-0.45.3 → calkit_python-0.46.0}/uv.lock +84 -5
- {calkit_python-0.45.3/docs → calkit_python-0.46.0/vscode-ext}/schemas/calkit.json +1174 -70
- {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/src/extension.ts +3 -2
- calkit_python-0.45.3/calkit/cli/sync.py +0 -80
- calkit_python-0.45.3/calkit/docker.py +0 -470
- calkit_python-0.45.3/calkit/provenance.py +0 -28
- calkit_python-0.45.3/calkit/reproducibility.py +0 -476
- calkit_python-0.45.3/calkit/tests/cli/test_check.py +0 -368
- calkit_python-0.45.3/calkit/tests/cli/test_import.py +0 -25
- calkit_python-0.45.3/calkit/tests/test_docker.py +0 -70
- calkit_python-0.45.3/calkit/tests/test_procedures.py +0 -64
- calkit_python-0.45.3/docs/hub/self-hosting.md +0 -88
- calkit_python-0.45.3/docs/questions.md +0 -31
- calkit_python-0.45.3/hub/config/prometheus/prometheus.yml +0 -16
- {calkit_python-0.45.3 → calkit_python-0.46.0}/.claude-plugin/marketplace.json +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/.dockerignore +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/.gitattributes +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/.gitignore +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/.gitmodules +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/.pre-commit-config.yaml +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/.prettierignore +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/.prettierrc.json +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/.python-version +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/.vscode/launch.json +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/.vscode/tasks.json +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/AGENTS.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/CITATION.cff +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/CODE_OF_CONDUCT.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/CONTRIBUTING.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/LICENSE +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/Makefile +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/README.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/agent-plugin/.claude-plugin/plugin.json +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/agent-plugin/skills/add-pipeline-stage/SKILL.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/agent-plugin/skills/create-pipeline/SKILL.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/.gitignore +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/README.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/options.html +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/package-lock.json +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/package.json +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/popup.html +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/public/icons/calkit-128.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/public/icons/calkit-16.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/public/icons/calkit-32.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/public/icons/calkit-48.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/public/icons/calkit.svg +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/public/manifest.json +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/scripts/build-content.mjs +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/scripts/package-manifest.mjs +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/scripts/store-screenshots.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/scripts/watch.mjs +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/background/index.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/content/github.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/content/overleaf.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/content/references.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/core/api.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/core/auth.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/core/calkit-yaml.test.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/core/calkit-yaml.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/core/detect.test.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/core/detect.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/core/hub-url.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/core/hubs.test.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/core/hubs.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/core/latex.test.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/core/latex.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/core/lifecycle.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/core/messages.test.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/core/messages.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/core/pickers.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/core/storage.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/core/types.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/core/ui.test.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/core/ui.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/options/options.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/popup/popup.css +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/popup/popup.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/src/viewer/viewer.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/tsconfig.json +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/viewer.html +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/vite.config.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/vite.content.config.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/browser-ext/vitest.config.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/__init__.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/__main__.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/calc.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/cli/__init__.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/cli/config.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/cli/delete.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/cli/describe.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/cli/dev.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/cli/hub.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/cli/main/__init__.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/cli/main/xr.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/cli/notebooks.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/cli/office.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/cli/overleaf.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/conda.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/datasets.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/dependencies.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/detect.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/dvc/__init__.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/dvc/core.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/dvc/zip.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/fs.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/github.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/gui.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/install.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/invenio.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/julia.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/jupyter.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/jupyterlab/__init__.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/jupyterlab/routes.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/labextension/package.json +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/labextension/schemas/calkit/package.json.orig +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/labextension/schemas/calkit/plugin.json +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/labextension/static/502.9a2c5772a15466e923ef.js +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/labextension/static/695.2c41003a452d43d2b358.js +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/labextension/static/867.a42a046aa5108f54f8fb.js +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/labextension/static/909.6d8285ce7c45878ac508.js +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/labextension/static/946.050af2abf7845cfbdbd2.js +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/labextension/static/946.050af2abf7845cfbdbd2.js.LICENSE.txt +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/labextension/static/b2f1c3efe70cb539d121.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/labextension/static/remoteEntry.d7a43c7948f690d37d19.js +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/labextension/static/style.js +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/labextension/static/third-party-licenses.json +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/latex.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/licenses.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/magics.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/markdown.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/matlab.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/models/__init__.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/models/io.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/models/iteration.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/notebooks.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/office.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/ops.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/overleaf.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/resources/README.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/resources/__init__.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/resources/devcontainer/Dockerfile +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/resources/devcontainer/README.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/resources/devcontainer/base.json +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/resources/devcontainer/devcontainer.json +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/resources/devcontainer/scripts/check-envs.sh +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/resources/devcontainer/scripts/post-create.sh +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/resources/devcontainer/scripts/post-start.sh +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/resources/devcontainer/scripts/update-content.sh +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/resources/vscode/README.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/resources/vscode/extensions.json +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/resources/vscode/settings.json +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/schema.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/server.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/templates/__init__.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/templates/core.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/templates/latex/__init__.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/templates/latex/article/paper.tex +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/templates/latex/core.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/templates/latex/ieee-conference/paper.tex +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/templates/latex/jfm/jfm.bst +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/templates/latex/jfm/jfm.cls +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/templates/latex/jfm/lineno-FLM.sty +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/templates/latex/jfm/paper.tex +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/templates/latex/jfm/upmath.sty +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/templates/latex/report/paper.tex +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/__init__.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/cli/__init__.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/cli/main/__init__.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/cli/main/test_lock.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/cli/main/test_subprojects.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/cli/main/test_xr.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/cli/test_config.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/cli/test_core.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/cli/test_delete.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/cli/test_describe.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/cli/test_hub.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/cli/test_list.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/cli/test_new.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/cli/test_notebooks.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/cli/test_overleaf.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/cli/test_scheduler.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/cli/test_sync.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/dvc/__init__.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/dvc/test_core.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/dvc/test_zip.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/jupyterlab/__init__.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/jupyterlab/conftest.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/jupyterlab/test_routes.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/models/__init__.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/models/test_core.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/models/test_iteration.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/models/test_pipeline.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_calc.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_conda.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_config.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_dependencies.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_detect.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_docs_references.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_fs.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_git.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_install.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_invenio.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_julia.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_jupyter.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_keyring_windows.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_licenses.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_magics.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_markdown.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_matlab.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_notebooks.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_overleaf.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_resources.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_templates.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/tests/test_workspace.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/calkit/workspace.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/CNAME +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/acknowledgements.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/apps.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/browser-ext/index.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/browser-ext/privacy.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/calculations.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/cloud-integration.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/datasets.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/examples.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/governance.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/help.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/hub/index.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/img/c-to-the-k-white.svg +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/img/calkit-fragmentation-compendium.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/img/calkit-no-bg.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/img/caltech.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/img/connect-zenodo.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/img/jupyterlab/all-green.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/img/jupyterlab/collect-data-stale.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/img/jupyterlab/new-env.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/img/jupyterlab/new-notebook.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/img/jupyterlab/pipeline-badge.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/img/jupyterlab-params.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/img/pipeline.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/img/plos-osi-code-2024-03.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/img/schmidt-sciences.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/img/vscode-nb-params.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/index.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/installation.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/jupyterlab.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/latex.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/local-server.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/notebooks.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/overleaf.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/pipeline/manual-steps.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/pipeline/markdown.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/pipeline/running-and-logging.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/quickstart.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/references.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/reproducibility.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/requirements.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/subprojects.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/adding-latex-pub-docker.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/ai-agents.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/conda-envs.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/existing-project.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/first-project.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/github-actions.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/actions-repo-secrets.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/latex-codespaces/building-codespace.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/latex-codespaces/codespaces-secrets-2.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/latex-codespaces/editor-split.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/latex-codespaces/go-to-linked-code.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/latex-codespaces/issue-from-selection.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/latex-codespaces/new-project.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/latex-codespaces/new-pub-2.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/latex-codespaces/new-token.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/latex-codespaces/paper.tex.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/latex-codespaces/project-home-3.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/latex-codespaces/push.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/latex-codespaces/stage.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/office/anakin-excel.jpg +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/office/chart-more-rows.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/office/create-project.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/office/elsevier-research-data-guidelines.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/office/excel-chart.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/office/excel-data.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/office/insert-link-to-file.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/office/needs-clone.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/office/new-stage.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/office/phd-comics-version-control.webp +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/office/pipeline-out-of-date.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/office/status-more-rows.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/office/uncommitted-changes.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/office/untracked-data.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/office/updated-publication.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/office/word-to-pdf-stage-2.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/office/workflow-page.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/openfoam/clone.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/openfoam/create-project.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/openfoam/datasets-page.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/openfoam/figure-on-website-updated.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/openfoam/figure-on-website.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/openfoam/new-token.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/openfoam/reclone.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/openfoam/status-after-import-dataset.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/quick-actions.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/run-proc.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/vscode-slurm-notebook/create-calkit-env.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/vscode-slurm-notebook/create-inner-env.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/vscode-slurm-notebook/create-new-calkit-env.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/vscode-slurm-notebook/select-calkit-env.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/vscode-slurm-notebook/slurm-job-running.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/vscode-slurm-notebook/slurm-launch-options.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/img/vscode-slurm-notebook/starting-slurm-job.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/jupyterlab.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/latex-codespaces.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/matlab.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/notebook-pipeline.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/office.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/openfoam.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/runnable-readme.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/docs/tutorials/vscode-slurm-notebook.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown/.calkit/envs/jl/Manifest.toml +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown/.calkit/envs/jl/Project.toml +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown/.calkit/envs/py/.python-version +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown/.calkit/envs/py/pyproject.toml +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown/.calkit/envs/py/uv.lock +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown/.calkit/envs/r/.Rbuildignore +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown/.calkit/envs/r/.Rprofile +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown/.calkit/envs/r/DESCRIPTION +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown/.calkit/envs/r/renv/.gitignore +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown/.calkit/envs/r/renv/activate.R +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown/.calkit/envs/r/renv/settings.json +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown/.calkit/envs/r/renv.lock +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown/.dvc/.gitignore +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown/.dvc/config +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown/.dvcignore +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown/.gitignore +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown/README.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown/calkit.yaml +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown/data/data.csv +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown/data/data2.csv +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown/dvc.lock +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown/dvc.yaml +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown/figures/data2.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown/figures/figure.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown/results/fit.json +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown-python/.dvc/.gitignore +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown-python/.dvc/config +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown-python/.dvcignore +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown-python/.gitignore +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown-python/.python-version +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown-python/README.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown-python/calkit.yaml +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown-python/dvc.lock +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown-python/dvc.yaml +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown-python/figures/waves.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown-python/pyproject.toml +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown-python/src/wavetools/__init__.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/examples/markdown-python/uv.lock +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/flake.lock +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/flake.nix +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/.gitattributes +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/.gitignore +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/.vscode/launch.json +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/AGENTS.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/LICENSE +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/Makefile +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/README.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/.gitignore +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/.python-version +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/Dockerfile +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/Makefile +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/README.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/alembic.ini +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/__init__.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/README +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/env.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/script.py.mako +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/.keep +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/07c8236476c4_add_fields_to_usertoken.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/10a05eaedfbd_add_dataset_table.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/1546aa334cd5_make_project_description_nullable.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/1a31ce608336_add_cascade_delete_relationships.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/1fb6e38eb0e9_add_deviceauth_table.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/208e7457f3ba_add_title_to_project.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/2e7c25a00842_add_is_public_to_project.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/38e178698db2_update_subscription_model_to_use_plan_.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/3b1e67e9c318_add_usertoken_table.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/4dac15c0282a_add_stripe_customer_id_to_user.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/4e1c917fcca4_add_status_columns_to_project_table.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/5ba89308431f_add_project_table.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/5d6f8217c890_add_subscriber_user_id_to_org_.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/65b2d15cc702_add_github_username_field_to_user.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/697c3c1a8a27_add_git_repo_url_to_project.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/6f3a3afbea8b_add_number_field_to_question.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/7076d9b5c887_use_account_for_project_owner.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/71e1d1e69bbd_add_table_for_storing_user_github_tokens.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/799476973bce_add_created_ts_to_user_github_token_.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/7cacee34034c_add_parent_child_relationship_to_.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/97762605447f_add_onboarding_flags_and_feedback.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/9c0a54914c78_add_max_length_for_string_varchar_.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/9c4f70636d73_add_fields_to_usertoken.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/a333fc5aa994_index_project_folders_synced_with_.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/a4af19842927_create_table_to_store_user_zenodo_tokens.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/ab7816be480b_drop_items.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/ac622559475f_save_timestamps_for_github_token_.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/af024967630d_lowercase_account_names.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/c1f9a3e27d48_consolidate_comment_tables.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/c46a78ba506c_add_created_column_to_account.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/c749b39072d3_add_figurecomment.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/c7c41c3f0d22_add_user_external_credential_table.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/d01ce914143d_make_question_a_table.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/d21ed1c9537e_add_zenodo_user_id_column_to_user.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/d3a8021fb433_add_table_for_user_project_access.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/d4e5f6a7b8c9_ghless_membership_and_invitations.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/d6366015af35_add_discount_code_table.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/d98dd8ec85a3_edit_replace_id_integers_in_all_models_.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/dcef842dee10_add_refreshtoken_table.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/e1b0fa2a6d34_backfill_external_credentials_from_legacy_.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/e2412789c190_initialize_models.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/e7671197c00b_add_account_table.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/ed74edb0a9e6_create_table_for_user_overleaf_token.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/edcabfca98df_add_subscription_and_org_membership_.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/f0e23e048b1b_add_fields_to_project.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/f3a9c1b7e240_add_releases_feature.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/f5ad6445ad03_enable_user_project_access_to_be_null.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/alembic/versions/f74a96172dbd_add_table_for_locking_project_files.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/api/__init__.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/api/main.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/api/routes/__init__.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/api/routes/accounts.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/api/routes/datasets.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/api/routes/feedback.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/api/routes/login.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/api/routes/orgs.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/api/routes/projects/__init__.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/api/routes/projects/activity.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/api/routes/projects/datasets.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/api/routes/projects/dvc.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/api/routes/projects/figures.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/api/routes/projects/fs.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/api/routes/projects/pipeline.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/api/routes/projects/releases.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/api/routes/references.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/api/routes/users.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/arxiv.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/client.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/db.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/dvc.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/email-templates/build/new_account.html +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/email-templates/build/project_invitation.html +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/email-templates/build/release_share.html +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/email-templates/build/reset_password.html +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/email-templates/build/test_email.html +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/email-templates/build/verify_email.html +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/email-templates/src/new_account.mjml +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/email-templates/src/project_invitation.mjml +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/email-templates/src/release_share.mjml +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/email-templates/src/reset_password.mjml +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/email-templates/src/test_email.mjml +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/email-templates/src/verify_email.mjml +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/formatting.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/github.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/imports.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/messaging.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/mixpanel.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/models/__init__.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/models/projects.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/models/releases.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/orgs.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/pdftext.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/security.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/storage.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/stripe.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/subscriptions.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/api/__init__.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/api/routes/__init__.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/api/routes/projects/__init__.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/api/routes/projects/test_templates.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/conftest.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/test_arxiv.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/test_client.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/test_core.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/test_db.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/test_dvc.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/test_formatting.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/test_pdftext.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/test_pipeline.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/test_projects.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/test_users.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/tests/test_version.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/users.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/version.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/zenodo.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/app/zotero.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/prestart.sh +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/scripts/backend-pre-start.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/scripts/create-initial-data.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/scripts/format.sh +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/scripts/generate-client.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/scripts/lint.sh +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/scripts/rotate-fernet-secrets.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/scripts/test.sh +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/backend/tests-start.sh +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/config/alloy/config.alloy +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/config/grafana/provisioning/dashboards/dashboards.yml +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/config/grafana/provisioning/dashboards/fastapi.json +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/config/grafana/provisioning/datasources/datasources.yml +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/config/loki/loki.yml +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/docker-compose.override.yml +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/docker-compose.traefik.yml +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/docs/dev/database-migrations.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/docs/dev/deployment.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/docs/dev/development.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/.dockerignore +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/.gitignore +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/.nvmrc +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/Dockerfile +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/Makefile +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/README.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/biome.json +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/index.html +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/modify-openapi-operationids.js +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/nginx-backend-not-found.conf +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/nginx.conf +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/openapi-ts.config.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/playwright.config.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/public/assets/images/c-to-the-k.svg +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/public/assets/images/calkit-no-bg.svg +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/public/assets/images/calkit.svg +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/public/assets/images/fastapi-logo.svg +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/public/assets/images/favicon.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/public/assets/images/kdot.svg +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/public/tex/.gitignore +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/public/tex/LICENSE-busytex +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/public/tex/busytex.js +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/public/tex/busytex.wasm +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/public/tex/busytex_pipeline.js +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/public/tex/busytex_worker.js +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/scripts/download-tex-engine.sh +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/client/client/client.gen.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/client/client/index.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/client/client/types.gen.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/client/client/utils.gen.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/client/client.gen.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/client/core/auth.gen.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/client/core/bodySerializer.gen.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/client/core/params.gen.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/client/core/pathSerializer.gen.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/client/core/queryKeySerializer.gen.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/client/core/serverSentEvents.gen.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/client/core/types.gen.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/client/core/utils.gen.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Admin/AddUser.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Admin/EditUser.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Admin/FeatureVotesTable.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Admin/FeedbackTable.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/ActionsMenu.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/ClearableInput.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/CodeEditorPane.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/CommentsPanel.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/ConnectGitHubPrompt.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/ConnectZoteroPrompt.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/DeleteAlert.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/FeatureVoteButton.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/FilterableSelect.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/GlobalSearch.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/HelpFeedback.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/InputsRow.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/LoadingSpinner.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/Markdown.test.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/Markdown.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/Navbar.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/NoArtifactFound.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/NotBuiltAlert.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/NotFound.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/NotificationBell.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/OAuthButtons.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/PageMenu.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/PdfCanvas.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/PdfDocumentViewer.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/ProjectCommandPalette.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/RefPicker.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/Sidebar.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/SidebarItems.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/Tooltip.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/Topbar.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Common/UserMenu.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Datasets/BrowseDatasets.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Datasets/DataEntryGrid.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Datasets/DatasetViewer.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Environments/NewEnvironment.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Environments/ViewEnvironment.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Figures/FigureEditLauncher.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Figures/FigureEditor.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Figures/FigureFromExisting.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Figures/FigureView.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Figures/UploadFigure.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Files/EditFileInfo.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Files/FileContent.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Files/FileEditorModal.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Files/SelectedItemInfo.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Files/UploadFile.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Local/AddPath.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Local/DiscardChanges.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Local/IgnorePath.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Local/NewStage.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Local/SaveFiles.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Notebooks/NotebookRunLauncher.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Notebooks/NotebookRunner.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Onboarding/AccountSetupCard.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Onboarding/ChecklistCard.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Onboarding/CommandBlock.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Onboarding/FeaturedProjects.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Onboarding/ReproAudit.test.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Onboarding/ReproAudit.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Onboarding/StartPaths.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Onboarding/TipBubble.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Orgs/AddMember.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Orgs/NewOrg.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Pipeline/StageEditorModal.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Presentations/PresentationView.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Projects/AddCollaborator.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Projects/CloneProject.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Projects/CreateIssue.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Projects/CreateQuestion.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Projects/EditProject.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Projects/HelpContent.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Projects/InviteLinks.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Projects/MakeProjectPublic.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Projects/NewProject.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Projects/ProjectShowcase.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Projects/ProjectStatus.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Projects/RecentChanges.test.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Projects/RecentChanges.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Publications/ImportOverleaf.test.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Publications/ImportOverleaf.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Publications/LatexEditor.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Publications/NewPublication.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Publications/PdfAnnotator.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Publications/PublicationComponents.test.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Publications/PublicationView.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/References/DeleteReferenceItemDialog.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/References/DeleteReferencesCollectionDialog.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/References/EditReferenceItemModal.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/References/FileViewModal.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/References/ImportFromZoteroModal.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/References/LabelExistingReferences.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/References/NewReferencesCollection.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/References/ReferenceItemModal.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Releases/ArtifactReleasesPanel.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Releases/NewRelease.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Releases/PathPicker.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Releases/ReleasePdfAnnotator.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Releases/ReleaseViewer.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Releases/ReleasesTable.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Releases/ShareDialog.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Releases/releaseSort.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/Tables/TableView.test.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/UserSettings/Appearance.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/UserSettings/ChangePassword.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/UserSettings/ConnectedAccounts.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/UserSettings/DeleteAccount.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/UserSettings/DeleteConfirmation.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/UserSettings/NewToken.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/UserSettings/OnboardingChecklists.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/UserSettings/PickSubscription.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/UserSettings/Subscription.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/UserSettings/UpdateOverleafToken.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/UserSettings/UserInformation.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/components/UserSettings/UserTokens.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/hooks/useAuth.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/hooks/useCustomToast.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/hooks/useOnboarding.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/hooks/useSubmitOnCmdEnter.test.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/hooks/useSubmitOnCmdEnter.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/hooks/useTips.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/analytics.test.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/analytics.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/api.test.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/api.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/auth.test.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/auth.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/bibtex.test.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/bibtex.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/core.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/csv.test.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/csv.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/environments.test.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/environments.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/errors.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/figureScript.test.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/figureScript.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/fuzzy.test.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/fuzzy.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/github.test.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/github.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/google.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/keyboard.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/latexCompiler.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/latexProject.mapPaths.test.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/latexProject.test.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/latexProject.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/layout.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/notebook.test.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/notebook.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/onboarding.test.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/onboarding.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/pipelineYaml.test.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/pipelineYaml.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/projectFiles.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/provenance.test.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/provenance.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/pyodide.test.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/pyodide.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/releases.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/staleChunks.test.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/staleChunks.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/strings.test.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/strings.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/tips.test.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/tips.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/zenodo.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/lib/zotero.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/main.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routeTree.gen.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/__root.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/app.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/apps/$appName.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/apps/index.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/apps.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/collaborators.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/environments.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/files.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/history.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/index.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/local.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/presentations.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/references.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/releases.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/software.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/$accountName/$projectName/releases/$releaseName.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/$accountName/index.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/admin.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/datasets.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/index.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/new.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/orgs.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/projects.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout/settings.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/_layout.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/auth/google.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/auth/zenodo.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/auth/zotero.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/checkout.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/join/$token.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/login/device.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/login/index.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/recover-password.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/reset-password.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/signup.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/routes/verify-email.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/theme.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/src/vite-env.d.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/tests/auth.setup.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/tests/config.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/tests/figures-pagination.spec.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/tests/login.spec.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/tests/reset-password.spec.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/tests/user-settings.spec.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/tests/utils/mailcatcher.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/tests/utils/random.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/tests/utils/user.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/tsconfig.json +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/tsconfig.node.json +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/vite.config.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/frontend/vitest.config.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/scripts/build-push.sh +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/scripts/build.sh +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/scripts/deploy.sh +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/scripts/pem-to-env.sh +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/scripts/test-local.sh +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/scripts/test.sh +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/texmf-proxy/Dockerfile +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/texmf-proxy/README.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/hub/texmf-proxy/proxy.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/.yarnrc.yml +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/babel.config.js +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/install.json +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/jupyter-config/server-config/calkit.json +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/package.json +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/schema/plugin.json +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/src/__tests__/useQueries.spec.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/src/calkit-config.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/src/cell-output-marker.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/src/components/commit-dialog.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/src/components/environment-editor.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/src/components/notebook-registration.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/src/components/notebook-toolbar.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/src/components/pipeline-status-bar.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/src/components/project-info-editor.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/src/components/sidebar-settings.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/src/components/sidebar.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/src/components/stage-editor.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/src/feature-flags.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/src/file-browser-menu.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/src/hooks/__tests__/useQueries.test.tsx +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/src/hooks/useQueries.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/src/icons.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/src/index.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/src/io-tracker.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/src/pipeline-state.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/src/queryClient.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/src/request.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/src/shims-mainmenu.d.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/style/base.css +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/style/cell-output-marker.css +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/style/environment-editor.css +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/style/environment-selector.css +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/style/img/calkit-no-bg.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/style/index.css +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/style/index.js +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/style/notebook-toolbar.css +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/style/pipeline-status-bar.css +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/style/sidebar.css +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/tsconfig.json +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/tsconfig.test.json +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/ui-tests/.gitignore +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/ui-tests/README.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/ui-tests/jupyter_server_test_config.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/ui-tests/package.json +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/ui-tests/playwright.config.js +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/ui-tests/tests/calkit.spec.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/ui-tests/yarn.lock +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/jupyterlab-ext/yarn.lock +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/scripts/install.ps1 +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/scripts/install.sh +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/scripts/list-changes.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/scripts/make-ck9.sh +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/scripts/sync-docs.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/scripts/sync-resources.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/test/dvc-md5-dir/osx-arm64.txt +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/test/nb-julia.ipynb +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/test/nb-params.ipynb +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/test/nb-subdir.ipynb +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/test/pipeline.ipynb +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/test/script.py +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/test/test-log.log +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/.gitignore +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/.vscodeignore +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/LICENSE +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/README.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/changelog-notes.md +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/images/calkit-icon.svg +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/images/calkit-no-bg.png +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/package-lock.json +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/package.json +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/scripts/gen-changelog.js +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/scripts/set-proposed-api.js +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/src/environments.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/src/figures/core.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/src/figures/view.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/src/markdown/core.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/src/markdown/view.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/src/notebooks.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/src/pipeline/core.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/src/sidebar.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/src/test/environments.test.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/src/test/figures.test.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/src/test/kernel-selection.test.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/src/test/markdown.test.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/src/test/notebooks.test.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/src/test/pipeline.test.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/src/test/sidebar.test.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/src/test/yaml.test.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/src/types.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/src/yaml.ts +0 -0
- {calkit_python-0.45.3 → calkit_python-0.46.0}/vscode-ext/tsconfig.json +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: calkit-python
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.46.0
|
|
4
4
|
Summary: Reproducibility simplified.
|
|
5
5
|
Project-URL: Homepage, https://calkit.org
|
|
6
6
|
Project-URL: Issues, https://github.com/calkit/calkit/issues
|
|
@@ -40,15 +40,17 @@ Requires-Dist: pillow
|
|
|
40
40
|
Requires-Dist: psutil>=7.0.0
|
|
41
41
|
Requires-Dist: pydantic-settings
|
|
42
42
|
Requires-Dist: pydantic[email]
|
|
43
|
+
Requires-Dist: pygtrie<2.6.0
|
|
43
44
|
Requires-Dist: pyjwt
|
|
44
45
|
Requires-Dist: python-dotenv>=1
|
|
45
46
|
Requires-Dist: pywin32; platform_system == 'Windows'
|
|
46
47
|
Requires-Dist: requests
|
|
48
|
+
Requires-Dist: rich
|
|
47
49
|
Requires-Dist: sqlitedict>=2.1.0
|
|
48
50
|
Requires-Dist: texsoup>=0.3.3
|
|
49
51
|
Requires-Dist: toml>=0.10.2
|
|
50
52
|
Requires-Dist: tqdm>=4.67.1
|
|
51
|
-
Requires-Dist: typer==0.
|
|
53
|
+
Requires-Dist: typer==0.27.2
|
|
52
54
|
Requires-Dist: uvicorn
|
|
53
55
|
Provides-Extra: data
|
|
54
56
|
Requires-Dist: pandas>=2.2.3; extra == 'data'
|
|
@@ -43,6 +43,10 @@ on:
|
|
|
43
43
|
permissions:
|
|
44
44
|
contents: write
|
|
45
45
|
id-token: write
|
|
46
|
+
# Lets Docker environments configured with a registry push the images they
|
|
47
|
+
# build to the GitHub Container Registry, so later runs pull instead of
|
|
48
|
+
# rebuilding
|
|
49
|
+
packages: write
|
|
46
50
|
|
|
47
51
|
# Make sure we only ever run one per branch so we don't have issues pushing
|
|
48
52
|
# after running the pipeline
|
|
@@ -26,6 +26,14 @@ inputs:
|
|
|
26
26
|
description: Arguments passed to calkit run command.
|
|
27
27
|
required: false
|
|
28
28
|
default: ""
|
|
29
|
+
login_ghcr:
|
|
30
|
+
description: >-
|
|
31
|
+
Whether to log in to the GitHub Container Registry, so that Docker
|
|
32
|
+
environments configured to use it can push images they build and pull
|
|
33
|
+
them back instead of rebuilding. Requires the workflow to grant the
|
|
34
|
+
"packages: write" permission.
|
|
35
|
+
required: false
|
|
36
|
+
default: "true"
|
|
29
37
|
outputs: {}
|
|
30
38
|
runs:
|
|
31
39
|
using: composite
|
|
@@ -260,6 +268,17 @@ runs:
|
|
|
260
268
|
if: ${{ steps.detect.outputs.needs_docker == 'true' }}
|
|
261
269
|
uses: docker/setup-buildx-action@v3
|
|
262
270
|
|
|
271
|
+
# Logging in lets an environment with `registry: ghcr.io` push what it
|
|
272
|
+
# builds here, so that later runs and everyone's laptops pull the image
|
|
273
|
+
# instead of rebuilding it. Harmless when no environment uses a registry.
|
|
274
|
+
- name: Log in to the GitHub Container Registry
|
|
275
|
+
if: ${{ steps.detect.outputs.needs_docker == 'true' && inputs.login_ghcr == 'true' }}
|
|
276
|
+
uses: docker/login-action@v3
|
|
277
|
+
with:
|
|
278
|
+
registry: ghcr.io
|
|
279
|
+
username: ${{ github.actor }}
|
|
280
|
+
password: ${{ github.token }}
|
|
281
|
+
|
|
263
282
|
- name: Report unsupported environment kinds
|
|
264
283
|
if: ${{ steps.detect.outputs.unsupported_kinds != '' }}
|
|
265
284
|
shell: bash
|
|
@@ -10,6 +10,10 @@ on:
|
|
|
10
10
|
permissions:
|
|
11
11
|
contents: write
|
|
12
12
|
id-token: write
|
|
13
|
+
# Lets Docker environments configured with a registry push the images they
|
|
14
|
+
# build to the GitHub Container Registry, so later runs pull instead of
|
|
15
|
+
# rebuilding
|
|
16
|
+
packages: write
|
|
13
17
|
|
|
14
18
|
# Make sure we only ever run one per branch so we don't have issues pushing
|
|
15
19
|
# after running the pipeline
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: build-paper-pipeline
|
|
3
|
+
description: Build the pipeline stages a manuscript's TODO comments ask for,
|
|
4
|
+
working backwards from the writing to the analysis behind it, and keep the
|
|
5
|
+
project's questions and answers matching the paper. Use when the user
|
|
6
|
+
invokes `/calkit:build-paper-pipeline`, leaves TODO comments in a manuscript
|
|
7
|
+
for an agent to address, or asks to work backwards from the writing to the
|
|
8
|
+
project behind it. Only for TODOs in a manuscript, and only in a Calkit
|
|
9
|
+
project: not TODO comments in source code, not GitHub issues, not a task
|
|
10
|
+
list in someone's notes.
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Build the pipeline the paper asks for
|
|
14
|
+
|
|
15
|
+
The writing is the human's job. Deciding what the paper claims, and whether
|
|
16
|
+
a claim is worth making, is what nobody else can do for them. Everything
|
|
17
|
+
under a claim -- the stage that computes the number, the figure that shows
|
|
18
|
+
it, the question it answers -- is scaffolding, and scaffolding is what this
|
|
19
|
+
skill builds.
|
|
20
|
+
|
|
21
|
+
The user writes a sentence with a hole in it and marks the hole:
|
|
22
|
+
|
|
23
|
+
```latex
|
|
24
|
+
% TODO: report the mean speedup over the baseline, and plot the
|
|
25
|
+
% distribution across cases
|
|
26
|
+
Our method is faster than the baseline by \todo{}.
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
You fill the hole by building the project behind it, not by writing a
|
|
30
|
+
number into the sentence.
|
|
31
|
+
|
|
32
|
+
## The rule that makes this safe
|
|
33
|
+
|
|
34
|
+
**Never type a computed value into the manuscript.** A number you typed is
|
|
35
|
+
a number nobody can check, and it goes stale the moment a stage reruns. The
|
|
36
|
+
number reaches the page through the pipeline: a stage computes it and
|
|
37
|
+
writes it to a results file, a `json-to-latex` stage turns that file into
|
|
38
|
+
LaTeX commands, and the manuscript says `\result[Speedup]`. The same
|
|
39
|
+
applies to figures (`\ckfigure{...}` over a pipeline output) and to the
|
|
40
|
+
answers in `calkit.yaml` (`{name}` placeholders over `value` evidence).
|
|
41
|
+
|
|
42
|
+
If you find yourself about to write `2.4x` into a `.tex` file, stop: that
|
|
43
|
+
is the hole, not the fix. The `check-reproducibility` skill covers finding
|
|
44
|
+
and fixing a typed literal that is already in a manuscript; this one is
|
|
45
|
+
about not putting one there.
|
|
46
|
+
|
|
47
|
+
See the `conventions` skill for `calkit.yaml` structure and stage kinds,
|
|
48
|
+
`add-pipeline-stage` for adding one stage, and `create-pipeline` for
|
|
49
|
+
building a pipeline from scratch.
|
|
50
|
+
|
|
51
|
+
## Procedure
|
|
52
|
+
|
|
53
|
+
1. **Read the manuscript and collect the TODOs.** Look for `% TODO`,
|
|
54
|
+
`\todo{}`, `\TODO`, and prose that asserts something with no number or
|
|
55
|
+
figure behind it. Quote each one back to the user with what you think it
|
|
56
|
+
is asking for, grouped into: needs a computation, needs a figure, needs
|
|
57
|
+
data the project does not have, and needs a decision only they can make.
|
|
58
|
+
Do not start building until they have confirmed the list --- a
|
|
59
|
+
misunderstood TODO costs a whole stage.
|
|
60
|
+
|
|
61
|
+
2. **Say what is missing before you build.** For each TODO, name the inputs
|
|
62
|
+
it needs. If the project already has them, say which stage produces
|
|
63
|
+
them. If it does not, that TODO is blocked, and the honest answer is to
|
|
64
|
+
say so rather than to invent data. Blocked TODOs come in two kinds:
|
|
65
|
+
|
|
66
|
+
- **Data nobody has collected yet.** This is a manual step, not a
|
|
67
|
+
missing script. Add a `procedure` stage (see below) and tell the user
|
|
68
|
+
the pipeline now knows the step is outstanding.
|
|
69
|
+
- **Data that exists somewhere else.** Ask where. Declare it with
|
|
70
|
+
`imported_from` so the provenance chain reaches back past the project.
|
|
71
|
+
|
|
72
|
+
3. **Build a stage per computation.** One stage, one question. Prefer a
|
|
73
|
+
script over a notebook, since a script diffs cleanly and reruns
|
|
74
|
+
headlessly. Write the results to a JSON file under `results/` with keys
|
|
75
|
+
named the way the paper will refer to them.
|
|
76
|
+
|
|
77
|
+
4. **Inject, don't copy.** Add a `json-to-latex` stage over the results
|
|
78
|
+
file and reference the values from the manuscript with the generated
|
|
79
|
+
command. Replace the TODO with the sentence the user wrote, now with
|
|
80
|
+
`\result[...]` where the hole was.
|
|
81
|
+
|
|
82
|
+
5. **Make the question match the paper.** A claim in the paper is an answer
|
|
83
|
+
to a question. Add or update the entry under `questions` in
|
|
84
|
+
`calkit.yaml`: the `question` as the paper poses it, the `answer` as the
|
|
85
|
+
paper states it with `{name}` placeholders where numbers go, and
|
|
86
|
+
`evidence` naming the results file and key, the figure, and the
|
|
87
|
+
publication section that carries the argument. Run
|
|
88
|
+
`calkit check questions` and fix what it reports.
|
|
89
|
+
|
|
90
|
+
6. **Run the pipeline, then check your own work.** Run `calkit run`, then
|
|
91
|
+
`calkit check repro`, which reads the manuscript back and reports any
|
|
92
|
+
number in it that is not traceable to a pipeline output. A finding there
|
|
93
|
+
is a hole you closed by typing rather than by building, so go back to
|
|
94
|
+
step 3 for it. Show the user the rendered sentences
|
|
95
|
+
(`calkit list questions`) and the built document. Never commit a derived
|
|
96
|
+
output yourself, and never edit a results file by hand.
|
|
97
|
+
|
|
98
|
+
## Data a person has to collect
|
|
99
|
+
|
|
100
|
+
Some TODOs cannot be closed by any amount of code, because the measurement
|
|
101
|
+
has not been made. Do not leave that as a comment in the manuscript, where
|
|
102
|
+
nothing tracks it. Declare the procedure and make it a stage, so the
|
|
103
|
+
pipeline knows the step is outstanding and everything downstream waits on
|
|
104
|
+
it:
|
|
105
|
+
|
|
106
|
+
```yaml
|
|
107
|
+
procedures:
|
|
108
|
+
measure-rig:
|
|
109
|
+
title: Measure the rig
|
|
110
|
+
description: Read the temperature off the display at each setting.
|
|
111
|
+
steps:
|
|
112
|
+
- summary: Turn on the machine
|
|
113
|
+
wait_after_s: 5
|
|
114
|
+
- summary: Record the temperature
|
|
115
|
+
inputs:
|
|
116
|
+
temperature:
|
|
117
|
+
units: C
|
|
118
|
+
dtype: float
|
|
119
|
+
|
|
120
|
+
pipeline:
|
|
121
|
+
stages:
|
|
122
|
+
collect-data:
|
|
123
|
+
kind: procedure
|
|
124
|
+
procedure_name: measure-rig
|
|
125
|
+
plot-data:
|
|
126
|
+
kind: python-script
|
|
127
|
+
environment: py
|
|
128
|
+
script_path: scripts/plot-data.py
|
|
129
|
+
inputs:
|
|
130
|
+
- from_stage_outputs: collect-data
|
|
131
|
+
outputs:
|
|
132
|
+
- figures/temperature.png
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
`calkit run` walks the person through the steps and logs each one to
|
|
136
|
+
`.calkit/procedure-runs/measure-rig/`, which the next stage reads like any
|
|
137
|
+
other input. Write the procedure's steps in the words someone at the bench
|
|
138
|
+
would need, not in the words a program would; you are writing for a person
|
|
139
|
+
holding a thermometer.
|
|
140
|
+
|
|
141
|
+
## What to hand back
|
|
142
|
+
|
|
143
|
+
Say what you built, what you did not, and why:
|
|
144
|
+
|
|
145
|
+
- the stages you added and what each computes;
|
|
146
|
+
- the values and figures now injected, and where they land in the text;
|
|
147
|
+
- the questions you added or changed, and what `calkit check questions`
|
|
148
|
+
says;
|
|
149
|
+
- **every TODO you could not close**, with what is missing. This is the
|
|
150
|
+
most useful part of the report. A TODO left open because the data does
|
|
151
|
+
not exist is a finding; a TODO closed with a plausible-looking number is
|
|
152
|
+
a fabrication.
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: check-questions
|
|
3
|
+
description: Review a Calkit project's questions and answers against their
|
|
4
|
+
evidence. Use when the user invokes `/calkit:check-questions`, asks whether
|
|
5
|
+
the project's answers are still true, or after a pipeline run changes
|
|
6
|
+
results that answers cite.
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Check questions against evidence
|
|
10
|
+
|
|
11
|
+
An answer in `calkit.yaml` is a claim about the evidence as it was when the
|
|
12
|
+
answer was last edited. The pipeline keeps the evidence current; nothing
|
|
13
|
+
keeps the prose current. Calkit's deterministic check catches evidence
|
|
14
|
+
changing underneath an answer. This skill covers what a check cannot:
|
|
15
|
+
whether the sentence still follows from the evidence.
|
|
16
|
+
|
|
17
|
+
## Division of labor
|
|
18
|
+
|
|
19
|
+
Deterministic, done by `calkit check questions` — never re-derive by hand:
|
|
20
|
+
|
|
21
|
+
- every evidence path exists;
|
|
22
|
+
- every `value` key resolves in its file, and every `{name}` placeholder in
|
|
23
|
+
the prose resolves and formats;
|
|
24
|
+
- every publication `label` still exists in the LaTeX source;
|
|
25
|
+
- no evidence has changed (Git history for Git-tracked outputs, `dvc.lock`
|
|
26
|
+
for DVC-tracked ones) since the commit that last edited the question;
|
|
27
|
+
- each evidence path is produced by a pipeline stage, or declared with
|
|
28
|
+
`imported_from` or `created_by`. This one is advisory: it is reported as
|
|
29
|
+
`unattributed` and does not fail the check.
|
|
30
|
+
|
|
31
|
+
Judgment, done here — the check reads paths and hashes, and cannot read a
|
|
32
|
+
sentence:
|
|
33
|
+
|
|
34
|
+
- **does the evidence actually support the answer**, which is the reason
|
|
35
|
+
this skill exists;
|
|
36
|
+
- does the answer still follow from the evidence, given what changed;
|
|
37
|
+
- are numbers retyped into the prose that should be `{name}` placeholders;
|
|
38
|
+
- is the answer concise, and does it point at the publication section that
|
|
39
|
+
carries the argument rather than repeating it.
|
|
40
|
+
|
|
41
|
+
## Does the evidence support the answer?
|
|
42
|
+
|
|
43
|
+
A question can pass every deterministic check and still be wrong: the
|
|
44
|
+
paths resolve, the numbers render, nothing has changed since — and the
|
|
45
|
+
sentence claims something the evidence does not show. That is the failure
|
|
46
|
+
this skill is for, and it is not visible to the CLI. For each answer you
|
|
47
|
+
review, read the evidence yourself and ask, in this order:
|
|
48
|
+
|
|
49
|
+
1. **Does the evidence say what the answer says it says?** Open each entry:
|
|
50
|
+
the value at its key, the figure, the table, the publication section.
|
|
51
|
+
An answer of "the closure cuts error by {improvement:.1f}x" needs the
|
|
52
|
+
value behind `improvement` to be that ratio, not the two errors it was
|
|
53
|
+
computed from, and not a ratio over a different pair of cases.
|
|
54
|
+
2. **Does it support the claim's strength?** "Reduces error" needs a
|
|
55
|
+
difference; "reduces error by 40%" needs the number; "reduces error
|
|
56
|
+
across the range" needs evidence across the range, not at one point.
|
|
57
|
+
Weaken the sentence to what is there, or add the evidence that would
|
|
58
|
+
carry it.
|
|
59
|
+
3. **Does it cover the claim's scope?** A claim about all cases cited
|
|
60
|
+
against one case, a claim about the method cited against one dataset,
|
|
61
|
+
a general statement resting on the best run: the evidence is real and
|
|
62
|
+
the sentence reaches past it. Name the gap.
|
|
63
|
+
4. **Would the claim survive the evidence changing?** If a cited value
|
|
64
|
+
moved 10%, would the sentence still be true? If yes, the number is
|
|
65
|
+
decoration and the claim is vaguer than it looks. If a change of any
|
|
66
|
+
size would leave it standing, the evidence is not what the answer rests
|
|
67
|
+
on, and something is missing from `evidence`.
|
|
68
|
+
5. **Is anything load-bearing missing?** A claim resting on a comparison
|
|
69
|
+
needs both sides. A claim about significance needs the test, not the
|
|
70
|
+
means. If the reasoning runs through an artifact the entry does not
|
|
71
|
+
name, add it or say the answer cannot be checked as written.
|
|
72
|
+
6. **Is the causal language earned?** "Because", "leads to", "explains"
|
|
73
|
+
need more than co-movement. If the evidence is a correlation, the
|
|
74
|
+
answer should say so.
|
|
75
|
+
|
|
76
|
+
Report what you found, quoting the value or naming the figure. Where the
|
|
77
|
+
evidence does not support the sentence, propose the sentence it does
|
|
78
|
+
support and let the user decide; never edit the answer to match the
|
|
79
|
+
evidence without showing them both.
|
|
80
|
+
|
|
81
|
+
## Procedure
|
|
82
|
+
|
|
83
|
+
1. Run `calkit check questions --json` and read the report. Questions with
|
|
84
|
+
status `stale` or `error` need attention; `ok` ones pass the
|
|
85
|
+
deterministic check, which says nothing about whether their evidence
|
|
86
|
+
supports them, so review those too whenever the user asked for a full
|
|
87
|
+
review or the answer is one the paper leans on.
|
|
88
|
+
2. For each **stale** question, the report names the evidence that changed
|
|
89
|
+
and the commit the answer dates from. Read the rendered answer
|
|
90
|
+
(`calkit list questions`) against the current evidence, and if it helps,
|
|
91
|
+
the old evidence (`git show <commit>:<path>`). Decide:
|
|
92
|
+
- **The claim still holds**: say so, and edit the question to record
|
|
93
|
+
that you read it again. Any edit counts: the check anchors on the
|
|
94
|
+
commit where the question last changed. Adding or refining `notes` is
|
|
95
|
+
usually the honest edit to make, since it is where you say what you
|
|
96
|
+
checked.
|
|
97
|
+
- **The claim no longer holds**: draft a corrected answer, show the user
|
|
98
|
+
the old and new text side by side with the values that changed, and
|
|
99
|
+
only after they agree, edit `calkit.yaml`.
|
|
100
|
+
- **The evidence changed because a stage is not reproducible** (same
|
|
101
|
+
inputs, different output): that is a pipeline defect, not an answer
|
|
102
|
+
defect. Report it as such and do not rewrite the answer to match noise.
|
|
103
|
+
3. For each **unattributed** evidence entry, ask where the file came
|
|
104
|
+
from. If a stage should produce it, that is a pipeline gap worth
|
|
105
|
+
reporting. If it was imported or made by hand, declare it under
|
|
106
|
+
`figures`, `datasets`, or `publications` with `imported_from` or
|
|
107
|
+
`created_by` so the project says so.
|
|
108
|
+
4. For each **error**, fix the reference: a missing path means the pipeline
|
|
109
|
+
has not been run or pulled; a bad key or placeholder means a results
|
|
110
|
+
file was restructured; a missing label means the publication was
|
|
111
|
+
reorganized. Do not delete evidence to make an error go away.
|
|
112
|
+
5. For every question you touched, move any number in the prose that the
|
|
113
|
+
evidence carries into a `{name:...}` placeholder on a `value` entry, so
|
|
114
|
+
it is read from the results file rather than retyped.
|
|
115
|
+
|
|
116
|
+
6. Run the evidence-supports-the-answer review above on every question in
|
|
117
|
+
scope, `ok` ones included. A question the CLI passed is where an
|
|
118
|
+
unsupported claim survives, because nothing else looks at it.
|
|
119
|
+
|
|
120
|
+
Never edit a stale question just to clear the check. It is the act of
|
|
121
|
+
reading the answer against the evidence that the edit is meant to record,
|
|
122
|
+
and an edit made without doing that is a false statement about the
|
|
123
|
+
project, not a tidy-up.
|
|
124
|
+
|
|
125
|
+
## Writing answers
|
|
126
|
+
|
|
127
|
+
- One claim per question, two to four sentences. Say what was found and
|
|
128
|
+
what it means; leave the reasoning to the publication.
|
|
129
|
+
- Numbers come from `value` evidence via placeholders, formatted to the
|
|
130
|
+
precision the claim needs: `{ratio:.1f}x`, `{error:.0%}`.
|
|
131
|
+
- Point at the publication with a `publication` evidence entry carrying
|
|
132
|
+
`section` (for the reader) and `label` (for the check), instead of an
|
|
133
|
+
`explanation` that restates the argument.
|
|
134
|
+
- Each evidence entry should be one the answer actually depends on.
|
|
135
|
+
Evidence that would not change the answer if it changed is decoration.
|
|
136
|
+
- An open question has no `answer`; `notes` says why it is open and what
|
|
137
|
+
would settle it.
|
|
138
|
+
|
|
139
|
+
## Reporting
|
|
140
|
+
|
|
141
|
+
Relay a short table: question index, status, what changed, what you did or
|
|
142
|
+
propose. Quote values, not adjectives. If the pipeline is stale
|
|
143
|
+
(`calkit status`), say so first, since the evidence may be about to change
|
|
144
|
+
again.
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: check-reproducibility
|
|
3
|
+
description: Check whether a project is fully traceable, and fix what isn't,
|
|
4
|
+
including numbers typed into a manuscript that no pipeline output accounts
|
|
5
|
+
for. Use when the user invokes `/calkit:check-reproducibility`, asks whether
|
|
6
|
+
a project is reproducible, or asks where a number in a paper came from.
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Check and fix reproducibility
|
|
10
|
+
|
|
11
|
+
`calkit check repro` reports what a static reading of the project can
|
|
12
|
+
establish: whether there is a pipeline, whether stages run in declared
|
|
13
|
+
environments, whether artifacts have provenance, and whether any number in
|
|
14
|
+
a manuscript is one nobody can trace.
|
|
15
|
+
|
|
16
|
+
## Division of labor
|
|
17
|
+
|
|
18
|
+
Deterministic, done by `calkit check repro --json` --- never re-derive by
|
|
19
|
+
hand:
|
|
20
|
+
|
|
21
|
+
- whether the project is a Git and DVC repo with a remote and a pipeline;
|
|
22
|
+
- which stages run outside a declared environment;
|
|
23
|
+
- which artifacts have no `stage`, `imported_from`, or `created_by`;
|
|
24
|
+
- which scripts no stage refers to;
|
|
25
|
+
- which numbers in the manuscript duplicate a value the pipeline already
|
|
26
|
+
computes (`retyped_values`), and which result-like numbers have nothing
|
|
27
|
+
recorded behind them at all (`unattributed_numbers`).
|
|
28
|
+
|
|
29
|
+
Judgment, done here:
|
|
30
|
+
|
|
31
|
+
- whether a flagged number is really a result, or a constant, a tolerance,
|
|
32
|
+
a version, or a figure width the check couldn't rule out;
|
|
33
|
+
- which stage should compute a value that has no stage behind it;
|
|
34
|
+
- whether an artifact with no provenance was made here or brought in.
|
|
35
|
+
|
|
36
|
+
## Procedure
|
|
37
|
+
|
|
38
|
+
1. Run `calkit check repro --json` and read the report. The plain output
|
|
39
|
+
is a summary, each countable line naming the `-c` that opens it;
|
|
40
|
+
`--json` carries every finding. The command exits non-zero only for
|
|
41
|
+
`retyped_values`, a value the project's own pipeline computes and the
|
|
42
|
+
document typed anyway; everything else is advice and leaves the exit
|
|
43
|
+
code alone. Read the findings, not the exit code.
|
|
44
|
+
|
|
45
|
+
2. **Pipeline and environment findings** come first: a value can't be made
|
|
46
|
+
traceable until there is a pipeline to make it. See the
|
|
47
|
+
`create-pipeline` and `add-pipeline-stage` skills.
|
|
48
|
+
|
|
49
|
+
3. **Every `retyped_values` finding is worth fixing.** Each is a number
|
|
50
|
+
the pipeline already computes, typed into the document: right today and
|
|
51
|
+
wrong the next time that stage runs. The finding names the results file
|
|
52
|
+
and key, so the fix is mechanical.
|
|
53
|
+
|
|
54
|
+
4. **`unattributed_numbers` is a list to read, not a list to fix.** Most
|
|
55
|
+
numbers in a paper are not results. A quantity quoted from a reference
|
|
56
|
+
(`cited` is true when the sentence carries a citation), a threshold the
|
|
57
|
+
author chose, a tolerance, a count -- none of them have anything to be
|
|
58
|
+
traced to, and turning them into structured values would be work for no
|
|
59
|
+
gain. What the list is good for is spotting the one that _is_ a result
|
|
60
|
+
and never got templated in. Say which ones you're leaving and why; never
|
|
61
|
+
rewrite a sentence to make a check pass, and never invent a stage to
|
|
62
|
+
compute a number somebody else measured.
|
|
63
|
+
|
|
64
|
+
For a number that is this project's result, it must reach the page
|
|
65
|
+
through the pipeline rather than through the author's fingers:
|
|
66
|
+
|
|
67
|
+
```yaml
|
|
68
|
+
pipeline:
|
|
69
|
+
stages:
|
|
70
|
+
compute-drag:
|
|
71
|
+
kind: python-script
|
|
72
|
+
environment: py
|
|
73
|
+
script_path: scripts/compute-drag.py
|
|
74
|
+
outputs: [results/drag.json]
|
|
75
|
+
drag-to-latex:
|
|
76
|
+
kind: json-to-latex
|
|
77
|
+
command_name: result
|
|
78
|
+
inputs: [results/drag.json]
|
|
79
|
+
outputs:
|
|
80
|
+
- path: paper/generated-drag.tex
|
|
81
|
+
storage: git
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
The script writes `{"DragCoefficient": 0.42}`. The document inputs the
|
|
85
|
+
generated file and refers to the value by key:
|
|
86
|
+
|
|
87
|
+
```latex
|
|
88
|
+
\input{generated-drag}
|
|
89
|
+
...
|
|
90
|
+
The drag coefficient is \result[DragCoefficient].
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
`json-to-latex` generates one _keyed_ command per file, named by
|
|
94
|
+
`command_name` (or the output file's stem), so the reference is
|
|
95
|
+
`\result[DragCoefficient]` --- not a separate macro per key. Never write
|
|
96
|
+
a raw `stages:` block with `cmd: calkit latex from-json`; the stage kind
|
|
97
|
+
is what keeps `calkit.yaml` the single source of truth.
|
|
98
|
+
|
|
99
|
+
5. **Run the pipeline** (`calkit run`) and check again. Do not run the
|
|
100
|
+
script yourself and paste the number in: that is the failure this whole
|
|
101
|
+
check exists to catch.
|
|
102
|
+
|
|
103
|
+
6. **Report what you left.** A number you decided was not a result is a
|
|
104
|
+
judgment the user should see, not one to bury.
|
|
105
|
+
|
|
106
|
+
## Related
|
|
107
|
+
|
|
108
|
+
- `build-paper-pipeline` builds the stages a manuscript's TODO comments
|
|
109
|
+
ask for, so the value is injected from the start rather than typed and
|
|
110
|
+
caught here.
|
|
111
|
+
- `check-questions` covers whether the project's answers still follow from
|
|
112
|
+
their evidence, which is the same idea one level up.
|
|
@@ -74,7 +74,12 @@ Example environment definitions:
|
|
|
74
74
|
|
|
75
75
|
```yaml
|
|
76
76
|
environments:
|
|
77
|
-
|
|
77
|
+
py:
|
|
78
|
+
kind: uv
|
|
79
|
+
path: pyproject.toml
|
|
80
|
+
python: "3.13"
|
|
81
|
+
|
|
82
|
+
py2:
|
|
78
83
|
kind: uv-venv
|
|
79
84
|
path: requirements.txt
|
|
80
85
|
python: "3.13"
|
|
@@ -112,81 +117,9 @@ Stages live under `pipeline.stages` in `calkit.yaml`. Every stage requires
|
|
|
112
117
|
|
|
113
118
|
### Stage kinds and their required fields
|
|
114
119
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
kind: python-script
|
|
119
|
-
script_path: scripts/run.py
|
|
120
|
-
args: ["--flag", "value"] # optional
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
**`jupyter-notebook`**: Execute a Jupyter notebook
|
|
124
|
-
|
|
125
|
-
```yaml
|
|
126
|
-
kind: jupyter-notebook
|
|
127
|
-
notebook_path: notebooks/analysis.ipynb
|
|
128
|
-
html_storage: git # optional, default: dvc
|
|
129
|
-
executed_ipynb_storage: git # optional, default: dvc
|
|
130
|
-
parameters: { key: value } # optional, papermill parameters
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
**`shell-command`**: Run an arbitrary shell command
|
|
134
|
-
|
|
135
|
-
```yaml
|
|
136
|
-
kind: shell-command
|
|
137
|
-
command: "python -m mymodule --arg val"
|
|
138
|
-
shell: bash # optional, default: bash
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
**`shell-script`**: Run a shell script file
|
|
142
|
-
|
|
143
|
-
```yaml
|
|
144
|
-
kind: shell-script
|
|
145
|
-
script_path: scripts/run.sh
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
**`latex`**: Compile a LaTeX document to PDF
|
|
149
|
-
|
|
150
|
-
```yaml
|
|
151
|
-
kind: latex
|
|
152
|
-
target_path: paper/paper.tex
|
|
153
|
-
pdf_storage: git # optional, default: dvc
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
**`r-script`**: Run an R script
|
|
157
|
-
|
|
158
|
-
```yaml
|
|
159
|
-
kind: r-script
|
|
160
|
-
script_path: scripts/analysis.R
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
**`julia-script`** / **`julia-command`**: Run Julia code
|
|
164
|
-
|
|
165
|
-
```yaml
|
|
166
|
-
kind: julia-script
|
|
167
|
-
script_path: scripts/run.jl
|
|
168
|
-
```
|
|
169
|
-
|
|
170
|
-
**`matlab-script`** / **`matlab-command`**: Run MATLAB code
|
|
171
|
-
|
|
172
|
-
```yaml
|
|
173
|
-
kind: matlab-script
|
|
174
|
-
script_path: scripts/run.m
|
|
175
|
-
```
|
|
176
|
-
|
|
177
|
-
**`docker-command`**: Run a command inside a Docker container
|
|
178
|
-
|
|
179
|
-
```yaml
|
|
180
|
-
kind: docker-command
|
|
181
|
-
command: "docker run --rm myimage mycommand"
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
**`command`**: Generic command (for tools that don't fit other kinds)
|
|
185
|
-
|
|
186
|
-
```yaml
|
|
187
|
-
kind: command
|
|
188
|
-
command: "mytool --input data/raw.csv --output data/out.csv"
|
|
189
|
-
```
|
|
120
|
+
See the `calkit.yaml` schema for details.
|
|
121
|
+
The most common stage kinds are `python-script`, `shell-script`, `shell-command`,
|
|
122
|
+
`jupyter-notebook`.
|
|
190
123
|
|
|
191
124
|
### Outputs: Git vs. DVC storage
|
|
192
125
|
|
|
@@ -308,3 +241,13 @@ calkit xr scripts/run.py --dry-run # see what would happen without running
|
|
|
308
241
|
- `dvc.yaml`: generated by Calkit—don't edit manually
|
|
309
242
|
- `.calkit/`: Calkit's internal directory—commit its contents unless they
|
|
310
243
|
are large generated files
|
|
244
|
+
|
|
245
|
+
## Provenance
|
|
246
|
+
|
|
247
|
+
Calkit's data model emphasizes provenance.
|
|
248
|
+
Any derived artifact (produced by a script, notebook, etc.) should be
|
|
249
|
+
produced by the pipeline so we can know if it's up-to-date w.r.t. its
|
|
250
|
+
inputs and process definition.
|
|
251
|
+
Imported artifacts should have attribution.
|
|
252
|
+
Primary artifacts should have attestation, including AI-generated content,
|
|
253
|
+
though the human is considered the author and AI is noted with a `with_ai` field.
|