calkit-python 0.48.0__tar.gz → 0.48.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- calkit_python-0.48.2/.calkit/env-locks/tex/amd64.json +27 -0
- calkit_python-0.48.2/.calkit/env-locks/tex/arm64.json +27 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/.pre-commit-config.yaml +4 -3
- {calkit_python-0.48.0 → calkit_python-0.48.2}/PKG-INFO +2 -1
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/cli/latex.py +487 -1
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/cli/update.py +36 -13
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/core.py +94 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/docx.py +68 -9
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/dvc/core.py +12 -2
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/fs.py +7 -3
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/git.py +4 -2
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/hub.py +8 -1
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/latex.py +260 -10
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/markdown.py +156 -5
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/models/pipeline.py +126 -3
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/pipeline.py +4 -1
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/resources/devcontainer/devcontainer.json +1 -1
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/resources/vscode/settings.json +1 -1
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/cli/main/test_core.py +15 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/cli/test_latex.py +239 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/cli/test_notebooks.py +6 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/cli/test_update.py +51 -5
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/dvc/test_core.py +45 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/models/test_pipeline.py +59 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/test_core.py +50 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/test_docx.py +90 -3
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/test_git.py +29 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/test_hub.py +8 -8
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/test_markdown.py +88 -0
- calkit_python-0.48.2/calkit.yaml +241 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/cli-reference.md +46 -0
- calkit_python-0.48.2/docs/img/.gitignore +3 -0
- calkit_python-0.48.2/docs/img/latex-word-round-trip.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/latex.md +87 -1
- calkit_python-0.48.2/docs/one-pager/2027-budget.csv +7 -0
- calkit_python-0.48.2/docs/one-pager/main.md +110 -0
- calkit_python-0.48.2/docs/one-pager/one-pager.lua +66 -0
- calkit_python-0.48.2/docs/one-pager/template.tex +88 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/pipeline/index.md +26 -8
- calkit_python-0.48.2/docs/roi/index.md +24 -0
- calkit_python-0.48.2/docs/roi/research_flow.py +939 -0
- calkit_python-0.48.2/docs/roi/simulator.css +352 -0
- calkit_python-0.48.2/docs/roi/simulator.js +742 -0
- calkit_python-0.48.2/docs/roi/simulator.py +488 -0
- calkit_python-0.48.2/docs/roi/worker.js +27 -0
- {calkit_python-0.48.0/vscode-ext → calkit_python-0.48.2/docs}/schemas/calkit.json +82 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/existing-project.md +1 -1
- calkit_python-0.48.2/dvc.lock +323 -0
- calkit_python-0.48.2/dvc.yaml +111 -0
- calkit_python-0.48.2/examples/latex-word/paper/.gitignore +29 -0
- calkit_python-0.48.2/hub/backend/app/alembic/versions/e6b898df78ed_mark_comments_moved_into_latex_source.py +26 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/api/deps.py +15 -10
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/api/routes/orgs.py +56 -14
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/api/routes/projects/__init__.py +3 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/api/routes/projects/core.py +123 -38
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/api/routes/projects/fs.py +67 -57
- calkit_python-0.48.2/hub/backend/app/api/routes/projects/latex_comments.py +849 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/api/routes/users.py +62 -12
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/git.py +50 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/models/core.py +18 -7
- calkit_python-0.48.2/hub/backend/app/pdftext.py +414 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/pipeline.py +158 -104
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/projects.py +10 -6
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/storage.py +7 -1
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/stripe.py +59 -15
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/tests/api/routes/projects/test_core.py +145 -1
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/tests/api/routes/projects/test_fs.py +89 -0
- calkit_python-0.48.2/hub/backend/app/tests/api/routes/projects/test_latex_comments.py +439 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/tests/api/routes/projects/test_overleaf_links.py +5 -2
- calkit_python-0.48.2/hub/backend/app/tests/api/routes/test_orgs.py +100 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/tests/api/routes/test_users.py +108 -2
- calkit_python-0.48.2/hub/backend/app/tests/test_pdftext.py +156 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/tests/test_pipeline.py +87 -11
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/tests/test_projects.py +105 -0
- calkit_python-0.48.2/hub/backend/app/tests/test_stripe.py +75 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/users.py +10 -6
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/pyproject.toml +1 -1
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/config/grafana/provisioning/dashboards/fastapi.json +62 -3
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/client/index.ts +44 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/client/schemas.gen.ts +515 -8
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/client/sdk.gen.ts +339 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/client/types.gen.ts +563 -2
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Admin/EditUserSubscription.tsx +8 -2
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Common/ActionsMenu.tsx +16 -2
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Common/CodeEditorPane.tsx +5 -1
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Common/CommentsPanel.tsx +10 -1
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Common/PdfDocumentViewer.tsx +8 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Projects/NewProjectModal.tsx +2 -2
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Publications/LatexEditor.tsx +194 -1
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Publications/PdfAnnotator.tsx +299 -40
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/lib/environments.ts +1 -1
- calkit_python-0.48.2/hub/frontend/src/lib/latexComments.test.ts +151 -0
- calkit_python-0.48.2/hub/frontend/src/lib/latexComments.ts +318 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/publications.tsx +134 -28
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/routes/_layout/admin.tsx +52 -4
- {calkit_python-0.48.0 → calkit_python-0.48.2}/images/latex/Dockerfile +20 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/images/latex/README.md +2 -2
- calkit_python-0.48.2/images/latex/sizes.json +16 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/mkdocs.yml +1 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/pyproject.toml +6 -0
- calkit_python-0.48.2/references.bib +126 -0
- calkit_python-0.48.2/results/2027-budget.json +71 -0
- calkit_python-0.48.2/results/research-flow.json +2399 -0
- calkit_python-0.48.2/scripts/budget.py +57 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/scripts/generate-docs-references.py +4 -1
- {calkit_python-0.48.0 → calkit_python-0.48.2}/scripts/latex-word-round-trip.py +17 -1
- calkit_python-0.48.2/scripts/plot-research-flow.py +364 -0
- calkit_python-0.48.2/scripts/research-flow.py +399 -0
- calkit_python-0.48.2/test/latex-comments/intro.tex +5 -0
- calkit_python-0.48.2/test/latex-comments/main.pdf +0 -0
- calkit_python-0.48.2/test/latex-comments/main.tex +17 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/uv.lock +20 -68
- calkit_python-0.48.2/vscode-ext/.vscodeignore +19 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/vscode-ext/README.md +7 -0
- calkit_python-0.48.2/vscode-ext/package-lock.json +340 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/vscode-ext/package.json +86 -0
- {calkit_python-0.48.0/docs → calkit_python-0.48.2/vscode-ext}/schemas/calkit.json +82 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/vscode-ext/src/extension.ts +113 -6
- calkit_python-0.48.2/vscode-ext/src/latex/core.ts +536 -0
- calkit_python-0.48.2/vscode-ext/src/latex/review.ts +1466 -0
- calkit_python-0.48.2/vscode-ext/src/test/latex.test.ts +264 -0
- calkit_python-0.48.0/calkit.yaml +0 -101
- calkit_python-0.48.0/docs/img/latex-word-round-trip.png +0 -0
- calkit_python-0.48.0/dvc.lock +0 -129
- calkit_python-0.48.0/dvc.yaml +0 -53
- calkit_python-0.48.0/hub/backend/app/pdftext.py +0 -131
- calkit_python-0.48.0/hub/backend/app/tests/test_pdftext.py +0 -79
- calkit_python-0.48.0/images/latex/sizes.json +0 -16
- calkit_python-0.48.0/vscode-ext/.vscodeignore +0 -5
- calkit_python-0.48.0/vscode-ext/package-lock.json +0 -77
- calkit_python-0.48.0/vscode-ext/src/latex/core.ts +0 -125
- calkit_python-0.48.0/vscode-ext/src/test/latex.test.ts +0 -72
- {calkit_python-0.48.0 → calkit_python-0.48.2}/.claude-plugin/marketplace.json +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/.dockerignore +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/.dvc/.gitignore +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/.dvc/config +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/.dvcignore +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/.gitattributes +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/.gitignore +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/.gitmodules +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/.prettierignore +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/.prettierrc.json +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/.python-version +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/.vscode/launch.json +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/.vscode/tasks.json +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/AGENTS.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/CITATION.cff +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/CODE_OF_CONDUCT.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/CONTRIBUTING.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/LICENSE +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/Makefile +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/README.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/actions/run/README.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/actions/run/action.yml +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/actions/run/example.yml +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/agent-plugin/.claude-plugin/plugin.json +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/agent-plugin/skills/add-pipeline-stage/SKILL.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/agent-plugin/skills/build-paper-pipeline/SKILL.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/agent-plugin/skills/check-questions/SKILL.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/agent-plugin/skills/check-reproducibility/SKILL.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/agent-plugin/skills/conventions/SKILL.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/agent-plugin/skills/create-pipeline/SKILL.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/assistant/.gitignore +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/assistant/.python-version +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/assistant/Makefile +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/assistant/README.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/assistant/main.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/assistant/pyproject.toml +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/assistant/resources/icon.ico +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/assistant/resources/screenshot.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/assistant/tests/test_main.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/assistant/uv.lock +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/browser-ext/.gitignore +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/browser-ext/README.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/browser-ext/options.html +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/browser-ext/package-lock.json +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/browser-ext/package.json +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/browser-ext/popup.html +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/browser-ext/public/icons/calkit-128.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/browser-ext/public/icons/calkit-16.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/browser-ext/public/icons/calkit-32.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/browser-ext/public/icons/calkit-48.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/browser-ext/public/icons/calkit.svg +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/browser-ext/public/manifest.json +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/browser-ext/scripts/build-content.mjs +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/browser-ext/scripts/package-manifest.mjs +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/browser-ext/scripts/store-screenshots.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/browser-ext/scripts/watch.mjs +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/browser-ext/src/background/index.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/browser-ext/src/content/github.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/browser-ext/src/content/overleaf.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/browser-ext/src/content/references.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/browser-ext/src/core/api.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/browser-ext/src/core/auth.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/browser-ext/src/core/calkit-yaml.test.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/browser-ext/src/core/calkit-yaml.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/browser-ext/src/core/detect.test.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/browser-ext/src/core/detect.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/browser-ext/src/core/hub-url.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/browser-ext/src/core/hubs.test.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/browser-ext/src/core/hubs.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/browser-ext/src/core/latex.test.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/browser-ext/src/core/latex.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/browser-ext/src/core/lifecycle.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/browser-ext/src/core/messages.test.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/browser-ext/src/core/messages.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/browser-ext/src/core/pickers.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/browser-ext/src/core/storage.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/browser-ext/src/core/types.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/browser-ext/src/core/ui.test.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/browser-ext/src/core/ui.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/browser-ext/src/options/options.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/browser-ext/src/popup/popup.css +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/browser-ext/src/popup/popup.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/browser-ext/src/viewer/viewer.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/browser-ext/tsconfig.json +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/browser-ext/viewer.html +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/browser-ext/vite.config.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/browser-ext/vite.content.config.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/browser-ext/vitest.config.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/__init__.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/__main__.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/calc.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/cli/__init__.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/cli/check.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/cli/config.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/cli/core.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/cli/delete.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/cli/describe.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/cli/dev.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/cli/hub.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/cli/import_.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/cli/list.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/cli/main/__init__.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/cli/main/core.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/cli/main/xr.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/cli/new.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/cli/notebooks.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/cli/office.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/cli/overleaf.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/cli/scheduler.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/cli/show.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/cli/sync.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/conda.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/config.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/datasets.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/dependencies.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/detect.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/docker.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/dvc/__init__.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/dvc/zip.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/environments.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/github.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/gui.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/install.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/invenio.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/julia.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/jupyter.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/jupyterlab/__init__.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/jupyterlab/routes.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/labextension/package.json +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/labextension/schemas/calkit/package.json.orig +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/labextension/schemas/calkit/plugin.json +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/labextension/static/506.c34b070098184e33.js +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/labextension/static/57d13a7399cec3c5.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/labextension/static/616.528427eb54a4a0c0.js +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/labextension/static/740.6bf87276e9e5788a.js +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/labextension/static/899.f9b9f9bf705a6493.js +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/labextension/static/935.46ecc6bf99aa593a.js +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/labextension/static/remoteEntry.109a3a8379365e59.js +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/labextension/static/style.js +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/labextension/static/third-party-licenses.json +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/licenses.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/magics.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/matlab.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/models/__init__.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/models/core.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/models/docx.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/models/io.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/models/iteration.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/notebooks.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/office.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/ops.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/overleaf.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/procedures.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/provenance.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/questions.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/releases.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/reproducibility.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/resources/README.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/resources/__init__.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/resources/devcontainer/Dockerfile +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/resources/devcontainer/README.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/resources/devcontainer/base.json +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/resources/devcontainer/scripts/check-envs.sh +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/resources/devcontainer/scripts/post-create.sh +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/resources/devcontainer/scripts/post-start.sh +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/resources/devcontainer/scripts/update-content.sh +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/resources/github-actions/example.yml +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/resources/vscode/README.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/resources/vscode/extensions.json +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/schema.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/server.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/templates/__init__.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/templates/core.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/templates/latex/__init__.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/templates/latex/article/paper.tex +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/templates/latex/core.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/templates/latex/ieee-conference/paper.tex +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/templates/latex/jfm/jfm.bst +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/templates/latex/jfm/jfm.cls +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/templates/latex/jfm/lineno-FLM.sty +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/templates/latex/jfm/paper.tex +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/templates/latex/jfm/upmath.sty +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/templates/latex/report/paper.tex +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/__init__.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/cli/__init__.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/cli/main/__init__.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/cli/main/test_lock.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/cli/main/test_subprojects.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/cli/main/test_xr.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/cli/test_check.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/cli/test_config.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/cli/test_core.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/cli/test_delete.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/cli/test_describe.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/cli/test_hub.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/cli/test_import.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/cli/test_list.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/cli/test_new.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/cli/test_overleaf.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/cli/test_scheduler.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/cli/test_show.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/cli/test_sync.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/dvc/__init__.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/dvc/test_zip.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/jupyterlab/__init__.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/jupyterlab/conftest.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/jupyterlab/test_routes.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/models/__init__.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/models/test_core.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/models/test_iteration.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/test_calc.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/test_conda.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/test_config.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/test_dependencies.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/test_detect.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/test_docker.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/test_docs_references.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/test_environments.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/test_fs.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/test_install.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/test_invenio.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/test_julia.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/test_jupyter.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/test_keyring_windows.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/test_licenses.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/test_magics.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/test_matlab.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/test_models.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/test_notebooks.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/test_overleaf.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/test_pipeline.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/test_procedures.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/test_provenance.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/test_questions.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/test_releases.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/test_reproducibility.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/test_resources.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/test_schema.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/test_templates.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/test_upgrade.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/tests/test_workspace.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/upgrade.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/calkit/workspace.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/CNAME +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/acknowledgements.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/ai-tools.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/apps.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/browser-ext/index.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/browser-ext/privacy.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/calculations.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/calkit-yaml.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/cloud-integration.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/comparisons.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/datasets.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/dev/latex-word.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/environments.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/examples.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/governance.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/help.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/hpc.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/hub/index.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/hub/self-hosting.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/img/c-to-the-k-white.svg +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/img/calkit-fragmentation-compendium.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/img/calkit-no-bg.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/img/caltech.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/img/connect-zenodo.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/img/jupyterlab/all-green.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/img/jupyterlab/collect-data-stale.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/img/jupyterlab/new-env.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/img/jupyterlab/new-notebook.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/img/jupyterlab/pipeline-badge.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/img/jupyterlab-params.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/img/pipeline.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/img/plos-osi-code-2024-03.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/img/schmidt-sciences.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/img/vscode-nb-params.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/index.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/installation.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/jupyterlab.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/local-server.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/notebooks.md +0 -0
- {calkit_python-0.48.0/examples/latex-word/paper → calkit_python-0.48.2/docs/one-pager}/.gitignore +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/overleaf.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/pipeline/manual-steps.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/pipeline/markdown.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/pipeline/running-and-logging.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/privacy.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/provenance.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/questions.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/quickstart.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/references.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/releases.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/reproducibility.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/requirements.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/subprojects.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/adding-latex-pub-docker.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/ai-agents.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/conda-envs.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/first-project.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/github-actions.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/img/actions-repo-secrets.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/img/latex-codespaces/building-codespace.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/img/latex-codespaces/codespaces-secrets-2.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/img/latex-codespaces/editor-split.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/img/latex-codespaces/go-to-linked-code.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/img/latex-codespaces/issue-from-selection.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/img/latex-codespaces/new-project.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/img/latex-codespaces/new-pub-2.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/img/latex-codespaces/new-token.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/img/latex-codespaces/paper.tex.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/img/latex-codespaces/project-home-3.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/img/latex-codespaces/push.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/img/latex-codespaces/stage.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/img/office/anakin-excel.jpg +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/img/office/chart-more-rows.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/img/office/create-project.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/img/office/elsevier-research-data-guidelines.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/img/office/excel-chart.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/img/office/excel-data.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/img/office/insert-link-to-file.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/img/office/needs-clone.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/img/office/new-stage.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/img/office/phd-comics-version-control.webp +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/img/office/pipeline-out-of-date.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/img/office/status-more-rows.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/img/office/uncommitted-changes.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/img/office/untracked-data.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/img/office/updated-publication.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/img/office/word-to-pdf-stage-2.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/img/office/workflow-page.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/img/openfoam/clone.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/img/openfoam/create-project.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/img/openfoam/datasets-page.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/img/openfoam/figure-on-website-updated.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/img/openfoam/figure-on-website.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/img/openfoam/new-token.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/img/openfoam/reclone.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/img/openfoam/status-after-import-dataset.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/img/quick-actions.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/img/run-proc.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/img/vscode-slurm-notebook/create-calkit-env.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/img/vscode-slurm-notebook/create-inner-env.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/img/vscode-slurm-notebook/create-new-calkit-env.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/img/vscode-slurm-notebook/select-calkit-env.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/img/vscode-slurm-notebook/slurm-job-running.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/img/vscode-slurm-notebook/slurm-launch-options.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/img/vscode-slurm-notebook/starting-slurm-job.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/index.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/jupyterlab.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/latex-codespaces.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/latex-word.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/matlab.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/notebook-pipeline.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/office.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/openfoam.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/procedures.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/runnable-readme.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/vscode-slurm-notebook.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/tutorials/writing-first.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/docs/version-control.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/harbor-tb-science/.gitignore +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/harbor-tb-science/README.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/harbor-tb-science/overlay-authoring/.gitignore +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/harbor-tb-science/overlay-authoring/authoring/Dockerfile +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/harbor-tb-science/overlay-authoring/calkit.yaml +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/harbor-tb-science/overlay-variant/solution/calkit.yaml +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/harbor-tb-science/overlay-variant/solution/make_design_report.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/harbor-tb-science/overlay-variant/solution/solve.sh +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/harbor-tb-science/overlay-variant/tests/test_calkit.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/harbor-tb-science/patch_variant.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/harbor-tb-science/setup.sh +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/harbor-tb-science/tamper.sh +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/latex-word/.calkit/env-locks/py/osx-arm64.txt +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/latex-word/.calkit/env-locks/py/win-64.txt +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/latex-word/.calkit/env-locks/tex/amd64.json +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/latex-word/.calkit/env-locks/tex/arm64.json +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/latex-word/.dvc/.gitignore +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/latex-word/.dvc/config +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/latex-word/.dvcignore +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/latex-word/.gitattributes +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/latex-word/.gitignore +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/latex-word/README.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/latex-word/calkit.yaml +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/latex-word/dvc.lock +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/latex-word/dvc.yaml +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/latex-word/figures/.gitignore +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/latex-word/paper/figures/.gitignore +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/latex-word/paper/main.tex +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/latex-word/paper/methods.tex +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/latex-word/paper/refs.bib +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/latex-word/requirements.txt +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/latex-word/scripts/plot-wake.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/markdown/.calkit/envs/jl/Manifest.toml +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/markdown/.calkit/envs/jl/Project.toml +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/markdown/.calkit/envs/py/.python-version +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/markdown/.calkit/envs/py/pyproject.toml +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/markdown/.calkit/envs/py/uv.lock +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/markdown/.calkit/envs/r/.Rbuildignore +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/markdown/.calkit/envs/r/.Rprofile +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/markdown/.calkit/envs/r/DESCRIPTION +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/markdown/.calkit/envs/r/renv/.gitignore +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/markdown/.calkit/envs/r/renv/activate.R +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/markdown/.calkit/envs/r/renv/settings.json +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/markdown/.calkit/envs/r/renv.lock +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/markdown/.dvc/.gitignore +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/markdown/.dvc/config +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/markdown/.dvcignore +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/markdown/.gitignore +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/markdown/README.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/markdown/calkit.yaml +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/markdown/data/data.csv +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/markdown/data/data2.csv +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/markdown/dvc.lock +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/markdown/dvc.yaml +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/markdown/figures/data2.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/markdown/figures/figure.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/markdown/results/fit.json +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/markdown-python/.dvc/.gitignore +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/markdown-python/.dvc/config +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/markdown-python/.dvcignore +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/markdown-python/.gitignore +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/markdown-python/.python-version +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/markdown-python/README.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/markdown-python/calkit.yaml +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/markdown-python/dvc.lock +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/markdown-python/dvc.yaml +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/markdown-python/figures/waves.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/markdown-python/pyproject.toml +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/markdown-python/src/wavetools/__init__.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/examples/markdown-python/uv.lock +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/flake.lock +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/flake.nix +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/.env.example +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/.gitattributes +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/.gitignore +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/.vscode/launch.json +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/AGENTS.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/LICENSE +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/Makefile +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/README.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/.gitignore +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/.python-version +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/Dockerfile +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/Makefile +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/README.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/alembic.ini +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/__init__.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/README +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/env.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/script.py.mako +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/versions/.keep +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/versions/07c8236476c4_add_fields_to_usertoken.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/versions/10a05eaedfbd_add_dataset_table.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/versions/1546aa334cd5_make_project_description_nullable.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/versions/1a31ce608336_add_cascade_delete_relationships.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/versions/1fb6e38eb0e9_add_deviceauth_table.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/versions/208e7457f3ba_add_title_to_project.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/versions/2e7c25a00842_add_is_public_to_project.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/versions/38e178698db2_update_subscription_model_to_use_plan_.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/versions/3b1e67e9c318_add_usertoken_table.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/versions/4dac15c0282a_add_stripe_customer_id_to_user.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/versions/4e1c917fcca4_add_status_columns_to_project_table.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/versions/5ba89308431f_add_project_table.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/versions/5d6f8217c890_add_subscriber_user_id_to_org_.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/versions/65b2d15cc702_add_github_username_field_to_user.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/versions/697c3c1a8a27_add_git_repo_url_to_project.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/versions/6f3a3afbea8b_add_number_field_to_question.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/versions/7076d9b5c887_use_account_for_project_owner.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/versions/71e1d1e69bbd_add_table_for_storing_user_github_tokens.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/versions/799476973bce_add_created_ts_to_user_github_token_.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/versions/7cacee34034c_add_parent_child_relationship_to_.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/versions/97762605447f_add_onboarding_flags_and_feedback.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/versions/9c0a54914c78_add_max_length_for_string_varchar_.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/versions/9c4f70636d73_add_fields_to_usertoken.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/versions/a333fc5aa994_index_project_folders_synced_with_.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/versions/a4af19842927_create_table_to_store_user_zenodo_tokens.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/versions/ab7816be480b_drop_items.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/versions/ac622559475f_save_timestamps_for_github_token_.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/versions/af024967630d_lowercase_account_names.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/versions/c1f9a3e27d48_consolidate_comment_tables.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/versions/c46a78ba506c_add_created_column_to_account.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/versions/c4e1d7a92b35_add_analytics_consent_to_user.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/versions/c749b39072d3_add_figurecomment.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/versions/c7c41c3f0d22_add_user_external_credential_table.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/versions/d01ce914143d_make_question_a_table.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/versions/d21ed1c9537e_add_zenodo_user_id_column_to_user.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/versions/d3a8021fb433_add_table_for_user_project_access.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/versions/d4e5f6a7b8c9_ghless_membership_and_invitations.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/versions/d6366015af35_add_discount_code_table.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/versions/d98dd8ec85a3_edit_replace_id_integers_in_all_models_.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/versions/dcef842dee10_add_refreshtoken_table.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/versions/e1b0fa2a6d34_backfill_external_credentials_from_legacy_.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/versions/e2412789c190_initialize_models.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/versions/e7671197c00b_add_account_table.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/versions/ed74edb0a9e6_create_table_for_user_overleaf_token.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/versions/edcabfca98df_add_subscription_and_org_membership_.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/versions/f0e23e048b1b_add_fields_to_project.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/versions/f3a9c1b7e240_add_releases_feature.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/versions/f5ad6445ad03_enable_user_project_access_to_be_null.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/alembic/versions/f74a96172dbd_add_table_for_locking_project_files.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/api/__init__.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/api/main.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/api/routes/__init__.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/api/routes/accounts.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/api/routes/analytics.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/api/routes/datasets.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/api/routes/feedback.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/api/routes/login.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/api/routes/misc.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/api/routes/projects/activity.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/api/routes/projects/datasets.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/api/routes/projects/dvc.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/api/routes/projects/figures.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/api/routes/projects/pipeline.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/api/routes/projects/releases.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/api/routes/references.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/arxiv.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/cache.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/client.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/config.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/core.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/db.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/dvc.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/email-templates/build/new_account.html +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/email-templates/build/project_invitation.html +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/email-templates/build/release_share.html +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/email-templates/build/reset_password.html +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/email-templates/build/test_email.html +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/email-templates/build/verify_email.html +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/email-templates/src/new_account.mjml +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/email-templates/src/project_invitation.mjml +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/email-templates/src/release_share.mjml +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/email-templates/src/reset_password.mjml +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/email-templates/src/test_email.mjml +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/email-templates/src/verify_email.mjml +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/formatting.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/github.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/imports.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/index.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/main.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/messaging.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/mixpanel.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/models/__init__.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/models/projects.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/models/releases.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/orgs.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/security.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/subscriptions.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/tasks.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/tests/__init__.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/tests/api/__init__.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/tests/api/routes/__init__.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/tests/api/routes/projects/__init__.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/tests/api/routes/projects/test_activity.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/tests/api/routes/projects/test_datasets.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/tests/api/routes/projects/test_dvc.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/tests/api/routes/projects/test_figure_upload.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/tests/api/routes/projects/test_figures.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/tests/api/routes/projects/test_misc.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/tests/api/routes/projects/test_pipeline.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/tests/api/routes/projects/test_publications.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/tests/api/routes/projects/test_reference_items.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/tests/api/routes/projects/test_templates.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/tests/api/routes/test_analytics.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/tests/api/routes/test_feedback.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/tests/api/routes/test_login.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/tests/api/routes/test_misc.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/tests/api/routes/test_releases.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/tests/conftest.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/tests/test_arxiv.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/tests/test_cache.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/tests/test_client.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/tests/test_core.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/tests/test_db.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/tests/test_dvc.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/tests/test_formatting.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/tests/test_git.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/tests/test_index.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/tests/test_mixpanel.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/tests/test_tasks.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/tests/test_users.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/tests/test_version.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/thumbnails.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/version.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/warm.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/zenodo.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/app/zotero.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/prestart.sh +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/scripts/backend-pre-start.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/scripts/create-initial-data.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/scripts/delete-user.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/scripts/format.sh +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/scripts/generate-client.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/scripts/lint.sh +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/scripts/rotate-fernet-secrets.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/scripts/test.sh +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/backend/tests-start.sh +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/config/alloy/config.alloy +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/config/grafana/provisioning/dashboards/dashboards.yml +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/config/grafana/provisioning/dashboards/warm-queue.json +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/config/grafana/provisioning/datasources/datasources.yml +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/config/loki/loki.yml +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/config/prometheus/prometheus.yml +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/docker-compose.override.yml +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/docker-compose.traefik.yml +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/docker-compose.yml +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/docs/dev/database-migrations.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/docs/dev/deployment.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/docs/dev/development.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/.dockerignore +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/.gitignore +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/.nvmrc +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/Dockerfile +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/Makefile +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/README.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/biome.json +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/index.html +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/modify-openapi-operationids.js +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/nginx-backend-not-found.conf +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/nginx.conf +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/openapi-ts.config.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/package-lock.json +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/package.json +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/playwright.config.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/public/assets/images/c-to-the-k.svg +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/public/assets/images/calkit-no-bg.svg +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/public/assets/images/calkit.svg +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/public/assets/images/fastapi-logo.svg +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/public/assets/images/favicon.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/public/assets/images/kdot.svg +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/public/tex/.gitignore +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/public/tex/LICENSE-busytex +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/public/tex/busytex.js +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/public/tex/busytex.wasm +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/public/tex/busytex_pipeline.js +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/public/tex/busytex_worker.js +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/scripts/download-tex-engine.sh +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/client/client/client.gen.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/client/client/index.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/client/client/types.gen.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/client/client/utils.gen.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/client/client.gen.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/client/core/auth.gen.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/client/core/bodySerializer.gen.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/client/core/params.gen.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/client/core/pathSerializer.gen.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/client/core/queryKeySerializer.gen.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/client/core/serverSentEvents.gen.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/client/core/types.gen.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/client/core/utils.gen.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Admin/AddUser.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Admin/EditUser.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Admin/FeatureVotesTable.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Admin/FeedbackTable.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Common/ArtifactCompareModal.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Common/ClearableInput.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Common/ConnectGitHubPrompt.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Common/ConnectZoteroPrompt.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Common/DeleteAlert.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Common/DiscardChangesDialog.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Common/FeatureVoteButton.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Common/FilterableSelect.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Common/GlobalSearch.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Common/HelpFeedback.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Common/InputsRow.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Common/LoadingSpinner.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Common/Markdown.test.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Common/Markdown.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Common/Mermaid.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Common/Navbar.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Common/NoArtifactFound.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Common/NotBuiltAlert.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Common/NotFound.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Common/NotificationBell.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Common/OAuthButtons.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Common/PageMenu.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Common/PdfCanvas.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Common/ProjectCommandPalette.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Common/RefPicker.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Common/SandboxedHtml.test.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Common/SandboxedHtml.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Common/Sidebar.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Common/SidebarItems.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Common/TexText.test.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Common/TexText.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Common/Tooltip.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Common/Topbar.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Common/UserMenu.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Datasets/BrowseDatasets.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Datasets/DataEntryGrid.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Datasets/DatasetViewer.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Datasets/NewDataset.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Environments/NewEnvironment.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Environments/ViewEnvironment.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Figures/FigureEditLauncher.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Figures/FigureEditor.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Figures/FigureFromExisting.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Figures/FigureView.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Figures/UploadFigure.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Files/EditFileInfo.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Files/FileContent.test.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Files/FileContent.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Files/FileEditorModal.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Files/SelectedItemInfo.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Files/UploadFile.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Local/AddPath.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Local/DiscardChanges.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Local/IgnorePath.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Local/NewStage.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Local/SaveFiles.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Notebooks/NotebookRunLauncher.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Notebooks/NotebookRunner.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Notebooks/NotebookView.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Onboarding/AccountSetupCard.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Onboarding/ChecklistCard.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Onboarding/CommandBlock.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Onboarding/FeaturedProjects.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Onboarding/ProjectChecklist.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Onboarding/ReproAudit.test.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Onboarding/ReproAudit.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Onboarding/StartPaths.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Orgs/AddMember.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Orgs/NewOrg.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Pipeline/PipelineEditorModal.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Pipeline/StageEditorModal.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Presentations/PresentationView.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Projects/AddCollaborator.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Projects/CloneProject.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Projects/CreateIssue.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Projects/CreateQuestion.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Projects/EditProject.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Projects/EditQuestion.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Projects/HelpContent.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Projects/InviteLinks.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Projects/MakeProjectPublic.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Projects/ProjectShowcase.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Projects/ProjectStatus.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Projects/QuestionModal.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Projects/RecentChanges.test.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Projects/RecentChanges.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Publications/ImportOverleaf.test.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Publications/ImportOverleaf.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Publications/NewPublication.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Publications/PublicationComponents.test.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Publications/PublicationComponents.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Publications/PublicationView.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/References/DeleteReferenceItemDialog.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/References/DeleteReferencesCollectionDialog.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/References/EditReferenceItemModal.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/References/FileViewModal.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/References/ImportFromZoteroModal.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/References/LabelExistingReferences.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/References/NewReferencesCollection.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/References/ReferenceItemModal.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/References/ReferencesInfoPanel.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Releases/ArtifactReleasesPanel.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Releases/NewRelease.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Releases/PathPicker.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Releases/ReleasePdfAnnotator.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Releases/ReleaseViewer.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Releases/ReleasesTable.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Releases/ShareDialog.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Releases/releaseSort.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Tables/TableThumbnail.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Tables/TableView.test.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/Tables/TableView.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/UserSettings/Appearance.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/UserSettings/ChangePassword.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/UserSettings/ConnectedAccounts.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/UserSettings/DeleteAccount.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/UserSettings/DeleteConfirmation.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/UserSettings/NewToken.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/UserSettings/OnboardingChecklists.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/UserSettings/PickSubscription.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/UserSettings/Privacy.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/UserSettings/Subscription.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/UserSettings/UpdateOverleafToken.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/UserSettings/UserInformation.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/components/UserSettings/UserTokens.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/hooks/useAuth.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/hooks/useCustomToast.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/hooks/useOnboarding.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/hooks/useProject.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/hooks/useRefreshProject.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/hooks/useSubmitOnCmdEnter.test.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/hooks/useSubmitOnCmdEnter.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/lib/analytics.test.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/lib/analytics.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/lib/api.test.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/lib/api.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/lib/auth.test.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/lib/auth.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/lib/bibtex.test.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/lib/bibtex.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/lib/core.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/lib/csv.test.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/lib/csv.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/lib/environments.test.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/lib/errors.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/lib/figureScript.test.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/lib/figureScript.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/lib/fuzzy.test.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/lib/fuzzy.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/lib/github.test.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/lib/github.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/lib/google.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/lib/keyboard.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/lib/latexCompiler.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/lib/latexProject.mapPaths.test.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/lib/latexProject.test.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/lib/latexProject.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/lib/layout.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/lib/notebook.test.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/lib/notebook.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/lib/onboarding.test.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/lib/onboarding.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/lib/pipelineYaml.test.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/lib/pipelineYaml.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/lib/projectFiles.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/lib/provenance.test.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/lib/provenance.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/lib/pyodide.test.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/lib/pyodide.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/lib/releases.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/lib/staleChunks.test.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/lib/staleChunks.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/lib/strings.test.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/lib/strings.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/lib/tables.test.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/lib/tables.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/lib/tex.test.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/lib/tex.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/lib/zenodo.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/lib/zotero.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/main.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/routeTree.gen.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/routes/__root.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/app.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/apps/$appName.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/apps/index.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/apps.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/collaborators.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/datasets.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/environments.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/figures.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/files.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/history.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/index.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/local.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/notebooks.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/pipeline.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/presentations.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/questions.$questionNumber.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/references.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/releases.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/software.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/tables.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/routes/_layout/$accountName/$projectName/releases/$releaseName.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/routes/_layout/$accountName/index.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/routes/_layout/datasets.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/routes/_layout/index.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/routes/_layout/new.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/routes/_layout/orgs.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/routes/_layout/projects.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/routes/_layout/settings.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/routes/_layout.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/routes/auth/google.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/routes/auth/zenodo.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/routes/auth/zotero.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/routes/checkout.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/routes/join/$token.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/routes/login/device.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/routes/login/index.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/routes/recover-password.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/routes/reset-password.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/routes/signup.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/routes/verify-email.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/theme.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/src/vite-env.d.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/tests/auth.setup.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/tests/config.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/tests/figures-pagination.spec.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/tests/login.spec.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/tests/reset-password.spec.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/tests/user-settings.spec.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/tests/utils/mailcatcher.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/tests/utils/random.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/tests/utils/user.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/tsconfig.json +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/tsconfig.node.json +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/vite.config.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/frontend/vitest.config.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/scripts/build-push.sh +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/scripts/build.sh +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/scripts/deploy.sh +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/scripts/pem-to-env.sh +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/scripts/test-local.sh +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/scripts/test.sh +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/texmf-proxy/Dockerfile +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/texmf-proxy/README.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/hub/texmf-proxy/proxy.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/images/latex/entrypoint.sh +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/images/latex/packages.txt +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/images/latex/scan-arxiv.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/jupyterlab-ext/.yarnrc.yml +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/jupyterlab-ext/babel.config.js +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/jupyterlab-ext/install.json +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/jupyterlab-ext/jest.config.js +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/jupyterlab-ext/jupyter-config/server-config/calkit.json +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/jupyterlab-ext/package.json +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/jupyterlab-ext/schema/plugin.json +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/jupyterlab-ext/src/__tests__/useQueries.spec.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/jupyterlab-ext/src/calkit-config.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/jupyterlab-ext/src/cell-output-marker.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/jupyterlab-ext/src/components/commit-dialog.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/jupyterlab-ext/src/components/environment-editor.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/jupyterlab-ext/src/components/notebook-registration.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/jupyterlab-ext/src/components/notebook-toolbar.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/jupyterlab-ext/src/components/pipeline-status-bar.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/jupyterlab-ext/src/components/project-info-editor.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/jupyterlab-ext/src/components/sidebar-settings.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/jupyterlab-ext/src/components/sidebar.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/jupyterlab-ext/src/components/stage-editor.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/jupyterlab-ext/src/feature-flags.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/jupyterlab-ext/src/file-browser-menu.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/jupyterlab-ext/src/hooks/__tests__/useQueries.test.tsx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/jupyterlab-ext/src/hooks/useQueries.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/jupyterlab-ext/src/icons.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/jupyterlab-ext/src/index.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/jupyterlab-ext/src/io-tracker.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/jupyterlab-ext/src/pipeline-state.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/jupyterlab-ext/src/queryClient.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/jupyterlab-ext/src/request.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/jupyterlab-ext/src/shims-mainmenu.d.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/jupyterlab-ext/style/base.css +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/jupyterlab-ext/style/cell-output-marker.css +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/jupyterlab-ext/style/environment-editor.css +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/jupyterlab-ext/style/environment-selector.css +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/jupyterlab-ext/style/img/calkit-no-bg.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/jupyterlab-ext/style/index.css +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/jupyterlab-ext/style/index.js +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/jupyterlab-ext/style/notebook-toolbar.css +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/jupyterlab-ext/style/pipeline-status-bar.css +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/jupyterlab-ext/style/sidebar.css +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/jupyterlab-ext/tsconfig.json +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/jupyterlab-ext/tsconfig.test.json +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/jupyterlab-ext/ui-tests/.gitignore +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/jupyterlab-ext/ui-tests/README.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/jupyterlab-ext/ui-tests/jupyter_server_test_config.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/jupyterlab-ext/ui-tests/package.json +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/jupyterlab-ext/ui-tests/playwright.config.js +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/jupyterlab-ext/ui-tests/tests/calkit.spec.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/jupyterlab-ext/ui-tests/yarn.lock +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/jupyterlab-ext/yarn.lock +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/results/latex-word-round-trip/.gitignore +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/results/latex-word-round-trip.json +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/scripts/install.ps1 +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/scripts/install.sh +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/scripts/list-changes.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/scripts/make-ck9.sh +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/scripts/plot-latex-word-round-trip.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/scripts/sync-docs.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/scripts/sync-resources.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/scripts/update-latex-image-tag.sh +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/test/docx/README.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/test/docx/accepted.docx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/test/docx/export.docx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/test/docx/libreoffice-accepted.docx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/test/docx/libreoffice-returned.docx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/test/docx/main.tex +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/test/docx/make-libreoffice-fixtures.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/test/docx/methods.tex +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/test/docx/resolved.docx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/test/docx/returned.docx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/test/docx/word-import.docx +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/test/dvc-md5-dir/osx-arm64.txt +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/test/nb-julia.ipynb +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/test/nb-params.ipynb +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/test/nb-subdir.ipynb +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/test/pipeline.ipynb +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/test/script.py +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/test/test-log.log +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/vscode-ext/.gitignore +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/vscode-ext/LICENSE +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/vscode-ext/changelog-notes.md +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/vscode-ext/images/calkit-icon.svg +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/vscode-ext/images/calkit-no-bg.png +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/vscode-ext/scripts/gen-changelog.js +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/vscode-ext/scripts/set-proposed-api.js +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/vscode-ext/src/environments.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/vscode-ext/src/figures/core.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/vscode-ext/src/figures/view.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/vscode-ext/src/markdown/core.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/vscode-ext/src/markdown/view.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/vscode-ext/src/notebooks.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/vscode-ext/src/pipeline/core.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/vscode-ext/src/sidebar.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/vscode-ext/src/test/environments.test.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/vscode-ext/src/test/figures.test.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/vscode-ext/src/test/kernel-selection.test.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/vscode-ext/src/test/markdown.test.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/vscode-ext/src/test/notebooks.test.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/vscode-ext/src/test/pipeline.test.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/vscode-ext/src/test/sidebar.test.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/vscode-ext/src/test/yaml.test.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/vscode-ext/src/types.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/vscode-ext/src/yaml.ts +0 -0
- {calkit_python-0.48.0 → calkit_python-0.48.2}/vscode-ext/tsconfig.json +0 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"RepoDigests": [
|
|
3
|
+
"sha256:a6df16eb0634a94defc9c794f6a4a94addca2cc41857f2e89c4db332591676c0"
|
|
4
|
+
],
|
|
5
|
+
"Architecture": "amd64",
|
|
6
|
+
"Os": "linux",
|
|
7
|
+
"RootFS": {
|
|
8
|
+
"Type": "layers",
|
|
9
|
+
"Layers": [
|
|
10
|
+
"sha256:d81fb2a7c6ee3be05fdefaa7fd223be219c1ab172083ec1b994c3ecda33ac0a8",
|
|
11
|
+
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
|
|
12
|
+
"sha256:05364db6671946629d30df5e2b0e64ac1ddf9584c850821e1310798b81dae7a6",
|
|
13
|
+
"sha256:eca883d1959b8c01c3803666dd78acfab745385c182f0134f57d6b13b0eaa5a8",
|
|
14
|
+
"sha256:b3f81a4dd621eb52ef44f1fd2708b2551d657e13f6ddcd08ebb07c072bff71ed",
|
|
15
|
+
"sha256:827badad9c1d1c760a817bd906551372d602a9d4f09326f36a91db0c97a8bad1",
|
|
16
|
+
"sha256:c9e8d9eec8adf285383a9342d7d3f5eb17ff30c83678505135caffe2d2685b1d",
|
|
17
|
+
"sha256:e2dcd8f807ab6625ede0dffebdd2280a48bdeba51fe464b5e8bceb15dd33d384",
|
|
18
|
+
"sha256:a7896112a0671141d2eb2860c8bf898f671bc9bdd32444d85a6cb0b11d095ded",
|
|
19
|
+
"sha256:a7080e7b80de5013eacc71c8d75a7160ff39e0f255a86138b0bbe2e7ed74a064",
|
|
20
|
+
"sha256:b29c7c1282fc0ab03ceb8cb5b0011ee14bdef43aa8a3f34a76d806f56dbeb41f",
|
|
21
|
+
"sha256:267d6598e62980803a111eaf396233bb26c552794580d0f9e3d622a717574e09",
|
|
22
|
+
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef"
|
|
23
|
+
]
|
|
24
|
+
},
|
|
25
|
+
"DockerfileMD5": null,
|
|
26
|
+
"DepsMD5s": {}
|
|
27
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"RepoDigests": [
|
|
3
|
+
"sha256:a6df16eb0634a94defc9c794f6a4a94addca2cc41857f2e89c4db332591676c0"
|
|
4
|
+
],
|
|
5
|
+
"Architecture": "arm64",
|
|
6
|
+
"Os": "linux",
|
|
7
|
+
"RootFS": {
|
|
8
|
+
"Type": "layers",
|
|
9
|
+
"Layers": [
|
|
10
|
+
"sha256:1e9178dc90058fa454a60803300219ee8c17e515be8718817ed824b96fa1207b",
|
|
11
|
+
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
|
|
12
|
+
"sha256:1b7eb283ff126198a9f292a2511133a8ab8c82bda9c4d4819cbe6f4be53f6dc4",
|
|
13
|
+
"sha256:eb05c3b16772fda838693e3621020572ef46903a9480f57cd7347bd6e30f5cfc",
|
|
14
|
+
"sha256:608ed5df5926ca9cf8ea98ee0c4b06b8cd7fae822caeaa9153d6a88569707e74",
|
|
15
|
+
"sha256:e23d740627c00ac7d052a5ba064c71e07ebf6a97a335c259f44feb0bd3c1c4e8",
|
|
16
|
+
"sha256:921b4a27c98023d4ee54c3713d11ed094201b1448a590eebb8739296b9978799",
|
|
17
|
+
"sha256:7449d2f5a570e6301afc4b03a710a7006950d9d85372e20fde07f863a8aee3b0",
|
|
18
|
+
"sha256:e28e00624817a4447d03fbd25e6533747ce1ce6bbbc08cc157050bcc88129b30",
|
|
19
|
+
"sha256:bae81d2da5d28845b37687b158dc3c03b6fb7d1629c475432d35166a3dd0ad1b",
|
|
20
|
+
"sha256:d4c5c89019ab226aac376b4574f957689a126740a2e759a02be63157e11a292c",
|
|
21
|
+
"sha256:e9db30e578d1626eb17b4121b169932e7935bf41660e5a7be2b2627d6d4870c1",
|
|
22
|
+
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef"
|
|
23
|
+
]
|
|
24
|
+
},
|
|
25
|
+
"DockerfileMD5": null,
|
|
26
|
+
"DepsMD5s": {}
|
|
27
|
+
}
|
|
@@ -85,9 +85,10 @@ repos:
|
|
|
85
85
|
# the pipeline changes. Prettier and ruamel disagree about where a
|
|
86
86
|
# long 'desc:' value goes, so formatting it here just means the two
|
|
87
87
|
# take turns reformatting the same file.
|
|
88
|
-
# Likewise the example projects
|
|
89
|
-
# outputs and have to match what the stage wrote byte for
|
|
90
|
-
|
|
88
|
+
# Likewise results files, here and in the example projects, which
|
|
89
|
+
# are stage outputs and have to match what the stage wrote byte for
|
|
90
|
+
# byte.
|
|
91
|
+
exclude: calkit|^hub/|(^|/)dvc\.yaml$|^(examples/.*/)?results/
|
|
91
92
|
|
|
92
93
|
- repo: local
|
|
93
94
|
hooks:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: calkit-python
|
|
3
|
-
Version: 0.48.
|
|
3
|
+
Version: 0.48.2
|
|
4
4
|
Summary: Reproducibility simplified.
|
|
5
5
|
Project-URL: Homepage, https://calkit.org
|
|
6
6
|
Project-URL: Issues, https://github.com/calkit/calkit/issues
|
|
@@ -47,6 +47,7 @@ Requires-Dist: python-dotenv>=1
|
|
|
47
47
|
Requires-Dist: pywin32; platform_system == 'Windows'
|
|
48
48
|
Requires-Dist: requests
|
|
49
49
|
Requires-Dist: rich
|
|
50
|
+
Requires-Dist: ruamel-yaml<0.20,>=0.19.1
|
|
50
51
|
Requires-Dist: sqlitedict>=2.1.0
|
|
51
52
|
Requires-Dist: texsoup>=0.3.3
|
|
52
53
|
Requires-Dist: toml>=0.10.2
|
|
@@ -10,6 +10,7 @@ import shutil
|
|
|
10
10
|
import string
|
|
11
11
|
import subprocess
|
|
12
12
|
import sys
|
|
13
|
+
from collections.abc import Callable
|
|
13
14
|
from copy import deepcopy
|
|
14
15
|
from pathlib import Path
|
|
15
16
|
|
|
@@ -189,6 +190,186 @@ def from_questions(
|
|
|
189
190
|
json2latex.dump(command_name, values, f)
|
|
190
191
|
|
|
191
192
|
|
|
193
|
+
@latex_app.command(name="from-markdown")
|
|
194
|
+
def from_markdown(
|
|
195
|
+
md_path: Annotated[
|
|
196
|
+
str, typer.Argument(help="The Markdown file to build.")
|
|
197
|
+
],
|
|
198
|
+
outputs: Annotated[
|
|
199
|
+
list[str],
|
|
200
|
+
typer.Option(
|
|
201
|
+
"--output",
|
|
202
|
+
"-o",
|
|
203
|
+
help="Where to write the PDF, or the LaTeX with a .tex "
|
|
204
|
+
"extension; can be given more than once.",
|
|
205
|
+
),
|
|
206
|
+
],
|
|
207
|
+
environment: Annotated[
|
|
208
|
+
str | None,
|
|
209
|
+
typer.Option(
|
|
210
|
+
"--environment",
|
|
211
|
+
"-e",
|
|
212
|
+
help="Environment to run pandoc and LaTeX in, e.g., one using "
|
|
213
|
+
"Calkit's LaTeX image, which includes both.",
|
|
214
|
+
),
|
|
215
|
+
] = None,
|
|
216
|
+
template_path: Annotated[
|
|
217
|
+
str | None, typer.Option("--template", help="Pandoc template.")
|
|
218
|
+
] = None,
|
|
219
|
+
filters: Annotated[
|
|
220
|
+
list[str] | None,
|
|
221
|
+
typer.Option(
|
|
222
|
+
"--filter", help="Pandoc Lua filter; can be given more than once."
|
|
223
|
+
),
|
|
224
|
+
] = None,
|
|
225
|
+
pandoc_args: Annotated[
|
|
226
|
+
list[str] | None,
|
|
227
|
+
typer.Option(
|
|
228
|
+
"--pandoc-arg",
|
|
229
|
+
help="Another argument for pandoc; can be given more than once.",
|
|
230
|
+
),
|
|
231
|
+
] = None,
|
|
232
|
+
no_check: Annotated[
|
|
233
|
+
bool,
|
|
234
|
+
typer.Option("--no-check", help="Don't check the environment first."),
|
|
235
|
+
] = False,
|
|
236
|
+
verbose: Annotated[
|
|
237
|
+
bool, typer.Option("--verbose", "-v", help="Print commands.")
|
|
238
|
+
] = False,
|
|
239
|
+
) -> None:
|
|
240
|
+
"""Build a Markdown file into a PDF with pandoc and LaTeX.
|
|
241
|
+
|
|
242
|
+
Value markers are filled from their results files, which keeps the
|
|
243
|
+
Markdown itself current too, and each value links to the question on
|
|
244
|
+
the project's hub whose evidence cites it. The template gets the Calkit
|
|
245
|
+
version and the project's URL as the ``calkit-version``,
|
|
246
|
+
``project-url``, and ``project`` variables.
|
|
247
|
+
"""
|
|
248
|
+
import calkit.docx
|
|
249
|
+
import calkit.markdown
|
|
250
|
+
|
|
251
|
+
def question_url(value: calkit.markdown.MarkdownValue) -> str | None:
|
|
252
|
+
# The question whose evidence cites this value, or failing that,
|
|
253
|
+
# the first to cite its file
|
|
254
|
+
if project_url is None:
|
|
255
|
+
return None
|
|
256
|
+
first = None
|
|
257
|
+
for n, q in enumerate(ck_info.get("questions") or [], start=1):
|
|
258
|
+
evidence = q.get("evidence") if isinstance(q, dict) else None
|
|
259
|
+
for ev in evidence or []:
|
|
260
|
+
if not isinstance(ev, dict) or ev.get("path") != value.path:
|
|
261
|
+
continue
|
|
262
|
+
keys = [ev.get("key"), *(ev.get("values") or {}).values()]
|
|
263
|
+
if value.key in keys:
|
|
264
|
+
return f"{project_url}/questions/{n}"
|
|
265
|
+
first = first or n
|
|
266
|
+
return f"{project_url}/questions/{first}" if first else None
|
|
267
|
+
|
|
268
|
+
def to_latex(tex_path: str) -> None:
|
|
269
|
+
# Images are pointed at from where the LaTeX is, by a filter that
|
|
270
|
+
# runs before the others, so they see the paths LaTeX will
|
|
271
|
+
build_dir = os.path.dirname(tex_path) or "."
|
|
272
|
+
os.makedirs(build_dir, exist_ok=True)
|
|
273
|
+
stem = Path(tex_path).stem
|
|
274
|
+
src_path = f"{build_dir}/{stem}.pandoc.md"
|
|
275
|
+
with open(src_path, "w", encoding="utf-8", newline="\n") as f:
|
|
276
|
+
f.write(
|
|
277
|
+
calkit.markdown.prepare_for_pdf(
|
|
278
|
+
text, md_path, link=question_url
|
|
279
|
+
)
|
|
280
|
+
)
|
|
281
|
+
prefix = Path(os.path.relpath(md_dir, build_dir)).as_posix()
|
|
282
|
+
repoint = f"{build_dir}/{stem}.images.lua"
|
|
283
|
+
with open(repoint, "w", encoding="utf-8", newline="\n") as f:
|
|
284
|
+
f.write(calkit.markdown.image_prefix_filter(prefix))
|
|
285
|
+
args = [src_path, "-o", tex_path, "--standalone"]
|
|
286
|
+
if template_path is not None:
|
|
287
|
+
args += ["--template", template_path]
|
|
288
|
+
for path in [repoint, *(filters or [])]:
|
|
289
|
+
args += ["--lua-filter", path]
|
|
290
|
+
args += [f"--variable=calkit-version:{version}"]
|
|
291
|
+
if project_url is not None:
|
|
292
|
+
args += [
|
|
293
|
+
f"--variable=project-url:{project_url}",
|
|
294
|
+
f"--variable=project:{project_url.split('://', 1)[1]}",
|
|
295
|
+
]
|
|
296
|
+
args += pandoc_args or []
|
|
297
|
+
if environment is not None:
|
|
298
|
+
cmd = _tex_cmd(
|
|
299
|
+
["pandoc", *args], environment, no_check, verbose, dep="pandoc"
|
|
300
|
+
)
|
|
301
|
+
else:
|
|
302
|
+
pandoc = calkit.docx.find_pandoc()
|
|
303
|
+
if pandoc is None:
|
|
304
|
+
raise_error(
|
|
305
|
+
"Pandoc is needed; name an environment that has it, "
|
|
306
|
+
"e.g., one using Calkit's LaTeX image, or install it"
|
|
307
|
+
)
|
|
308
|
+
cmd = [pandoc, *args]
|
|
309
|
+
try:
|
|
310
|
+
subprocess.check_call(cmd)
|
|
311
|
+
except subprocess.CalledProcessError:
|
|
312
|
+
raise_error(f"Pandoc failed to convert {md_path}")
|
|
313
|
+
|
|
314
|
+
for output in outputs:
|
|
315
|
+
if not output.endswith((".pdf", ".tex")):
|
|
316
|
+
raise_error("Outputs must be .pdf or .tex files")
|
|
317
|
+
# Paths go into the build directory's, so they have to be the
|
|
318
|
+
# project's own
|
|
319
|
+
rel = os.path.relpath(md_path)
|
|
320
|
+
if rel == ".." or rel.startswith(".." + os.sep) or os.path.isabs(rel):
|
|
321
|
+
raise_error(f"{md_path} isn't in this project")
|
|
322
|
+
md_path = Path(rel).as_posix()
|
|
323
|
+
md_dir = os.path.dirname(md_path) or "."
|
|
324
|
+
ck_info = calkit.load_calkit_info()
|
|
325
|
+
project_url = None
|
|
326
|
+
if ck_info.get("owner") and ck_info.get("name"):
|
|
327
|
+
hub = str(ck_info.get("hub") or "calkit.io").rstrip("/")
|
|
328
|
+
if "://" not in hub:
|
|
329
|
+
hub = "https://" + hub
|
|
330
|
+
project_url = f"{hub}/{ck_info['owner']}/{ck_info['name']}"
|
|
331
|
+
# A local version's commit is the project's own, which isn't Calkit's
|
|
332
|
+
version = calkit.__version__.split("+")[0]
|
|
333
|
+
with open(md_path, encoding="utf-8") as f:
|
|
334
|
+
text = f.read()
|
|
335
|
+
try:
|
|
336
|
+
text, changed = calkit.markdown.set_values(text, md_path)
|
|
337
|
+
except calkit.markdown.MarkdownParseError as e:
|
|
338
|
+
raise_error(str(e))
|
|
339
|
+
if changed:
|
|
340
|
+
with open(md_path, "w", encoding="utf-8", newline="\n") as f:
|
|
341
|
+
f.write(text)
|
|
342
|
+
for output in outputs:
|
|
343
|
+
if output.endswith(".tex"):
|
|
344
|
+
to_latex(output)
|
|
345
|
+
if not any(o.endswith(".pdf") for o in outputs):
|
|
346
|
+
return
|
|
347
|
+
# A PDF is built where Calkit keeps what it derives from the file, and
|
|
348
|
+
# dated by the file's last commit rather than the build directory's,
|
|
349
|
+
# which has none of its own
|
|
350
|
+
build_dir = Path(".calkit", "markdown", md_path, "pdf").as_posix()
|
|
351
|
+
tex_path = f"{build_dir}/{Path(md_path).stem}.tex"
|
|
352
|
+
to_latex(tex_path)
|
|
353
|
+
cmd = [sys.executable, "-m", "calkit", "latex", "build"]
|
|
354
|
+
if environment is not None:
|
|
355
|
+
cmd += ["-e", environment]
|
|
356
|
+
if no_check:
|
|
357
|
+
cmd += ["--no-check"]
|
|
358
|
+
env = os.environ.copy()
|
|
359
|
+
epoch = calkit.latex.get_source_date_epoch(md_path)
|
|
360
|
+
if epoch is not None:
|
|
361
|
+
env["SOURCE_DATE_EPOCH"] = epoch
|
|
362
|
+
try:
|
|
363
|
+
subprocess.check_call(cmd + [tex_path], env=env)
|
|
364
|
+
except subprocess.CalledProcessError:
|
|
365
|
+
raise_error(f"LaTeX failed to build {tex_path}")
|
|
366
|
+
for output in outputs:
|
|
367
|
+
if output.endswith(".pdf"):
|
|
368
|
+
if os.path.dirname(output):
|
|
369
|
+
os.makedirs(os.path.dirname(output), exist_ok=True)
|
|
370
|
+
shutil.copyfile(Path(tex_path).with_suffix(".pdf"), output)
|
|
371
|
+
|
|
372
|
+
|
|
192
373
|
def _tex_cmd(
|
|
193
374
|
tex_cmd: list[str],
|
|
194
375
|
environment: str | None,
|
|
@@ -2121,6 +2302,15 @@ def to_docx(
|
|
|
2121
2302
|
)
|
|
2122
2303
|
maths = calkit.docx.latex_to_omml([p[2] for p in pieces], preamble)
|
|
2123
2304
|
converted = dict(zip([(id(p[0]), p[1]) for p in pieces], maths))
|
|
2305
|
+
# What each link within the document shows, e.g., an equation's
|
|
2306
|
+
# number, by the bookmark it goes to
|
|
2307
|
+
link_text = {
|
|
2308
|
+
h.get(calkit.docx._tag(calkit.docx.W, "anchor"), ""): "".join(
|
|
2309
|
+
t.text or ""
|
|
2310
|
+
for t in h.iter(calkit.docx._tag(calkit.docx.W, "t"))
|
|
2311
|
+
).strip()
|
|
2312
|
+
for h in doc.doc.iter(calkit.docx._tag(calkit.docx.W, "hyperlink"))
|
|
2313
|
+
}
|
|
2124
2314
|
bid = 100000
|
|
2125
2315
|
last_number: str | None = None
|
|
2126
2316
|
for group, gap, numbers, lead, before_para, after_para in plans:
|
|
@@ -2156,7 +2346,30 @@ def to_docx(
|
|
|
2156
2346
|
):
|
|
2157
2347
|
if para.element is not None and para.element in unit.iter(w_p):
|
|
2158
2348
|
doc.move_out(para.element, unit, after=end)
|
|
2159
|
-
|
|
2349
|
+
# The conversion's own bookmarks on the equations, which
|
|
2350
|
+
# references in the text link to, wholly inside what's replaced,
|
|
2351
|
+
# each on the row whose number the references show
|
|
2352
|
+
w_name = calkit.docx._tag(calkit.docx.W, "name")
|
|
2353
|
+
w_id = calkit.docx._tag(calkit.docx.W, "id")
|
|
2354
|
+
ended = {
|
|
2355
|
+
e.get(w_id)
|
|
2356
|
+
for el in gap
|
|
2357
|
+
for e in el.iter(
|
|
2358
|
+
calkit.docx._tag(calkit.docx.W, "bookmarkEnd")
|
|
2359
|
+
)
|
|
2360
|
+
}
|
|
2361
|
+
row_of = {num: i for i, (_, num, _) in enumerate(rows) if num}
|
|
2362
|
+
keep: dict[int, list[tuple[str, str]]] = {}
|
|
2363
|
+
for el in gap:
|
|
2364
|
+
for b in el.iter(
|
|
2365
|
+
calkit.docx._tag(calkit.docx.W, "bookmarkStart")
|
|
2366
|
+
):
|
|
2367
|
+
name = b.get(w_name, "")
|
|
2368
|
+
if name in original or b.get(w_id) not in ended:
|
|
2369
|
+
continue
|
|
2370
|
+
row = row_of.get(link_text.get(name, ""), 0)
|
|
2371
|
+
keep.setdefault(row, []).append((name, b.get(w_id, "")))
|
|
2372
|
+
doc.insert_equations(gap[0], rows, bid, keep=keep)
|
|
2160
2373
|
bid += len(rows)
|
|
2161
2374
|
for el in gap:
|
|
2162
2375
|
doc.remove(el)
|
|
@@ -2741,6 +2954,12 @@ def merge_docx(
|
|
|
2741
2954
|
and existing.resolved == tc.resolved
|
|
2742
2955
|
):
|
|
2743
2956
|
continue
|
|
2957
|
+
# Word can't carry these, so they come from the source
|
|
2958
|
+
tc.id, tc.issue, tc.attrs = (
|
|
2959
|
+
existing.id,
|
|
2960
|
+
existing.issue,
|
|
2961
|
+
existing.attrs,
|
|
2962
|
+
)
|
|
2744
2963
|
# Word knows neither emails nor what the source already
|
|
2745
2964
|
# recorded, so carry those over for unchanged messages
|
|
2746
2965
|
known = {(e.author, e.text): e for e in existing.entries}
|
|
@@ -2818,3 +3037,270 @@ def merge_docx(
|
|
|
2818
3037
|
f"already there, {counts['pending']} pending, {counts['unplaced']} "
|
|
2819
3038
|
f"unplaced); {added} comments added, {updated} updated"
|
|
2820
3039
|
)
|
|
3040
|
+
|
|
3041
|
+
|
|
3042
|
+
comments_app = typer.Typer(no_args_is_help=True)
|
|
3043
|
+
latex_app.add_typer(
|
|
3044
|
+
comments_app,
|
|
3045
|
+
name="comments",
|
|
3046
|
+
help="Work with review comments in LaTeX source.",
|
|
3047
|
+
)
|
|
3048
|
+
|
|
3049
|
+
_ID_OPTION = typer.Option("--id", help="ID of the thread.")
|
|
3050
|
+
_LINE_OPTION = typer.Option(
|
|
3051
|
+
"--line", "-l", help="Number of any line in the thread."
|
|
3052
|
+
)
|
|
3053
|
+
|
|
3054
|
+
|
|
3055
|
+
def _new_entry(
|
|
3056
|
+
text: str, author: str | None, email: str | None
|
|
3057
|
+
) -> calkit.latex.Entry:
|
|
3058
|
+
import datetime
|
|
3059
|
+
|
|
3060
|
+
import git
|
|
3061
|
+
|
|
3062
|
+
if author is None:
|
|
3063
|
+
try:
|
|
3064
|
+
author = git.Git().config("--get", "user.name").strip()
|
|
3065
|
+
email = email or git.Git().config("--get", "user.email").strip()
|
|
3066
|
+
except git.GitCommandError:
|
|
3067
|
+
raise_error("Set --author, or Git's user.name")
|
|
3068
|
+
date = datetime.datetime.now().strftime("%Y-%m-%d %H:%M")
|
|
3069
|
+
return calkit.latex.Entry(author, text, email or None, date)
|
|
3070
|
+
|
|
3071
|
+
|
|
3072
|
+
def _edit_comment(
|
|
3073
|
+
tex_path: str,
|
|
3074
|
+
id: str | None,
|
|
3075
|
+
line: int | None,
|
|
3076
|
+
edit: Callable[[calkit.latex.TexComment], None],
|
|
3077
|
+
) -> calkit.latex.TexComment:
|
|
3078
|
+
"""Apply an edit to one thread and write the file back, giving the
|
|
3079
|
+
thread an ID if it had none."""
|
|
3080
|
+
if (id is None) == (line is None):
|
|
3081
|
+
raise_error("Specify one of --id or --line")
|
|
3082
|
+
if not os.path.isfile(tex_path):
|
|
3083
|
+
raise_error(f"{tex_path} does not exist")
|
|
3084
|
+
lines = Path(tex_path).read_text(encoding="utf-8").split("\n")
|
|
3085
|
+
tc = calkit.latex.find_comment(lines, id=id, lineno=line)
|
|
3086
|
+
if tc is None:
|
|
3087
|
+
raise_error(f"No comment thread in {tex_path} at {id or line}")
|
|
3088
|
+
edit(tc)
|
|
3089
|
+
tc.id = tc.id or calkit.latex.new_comment_id()
|
|
3090
|
+
calkit.latex.write_comment(lines, tc)
|
|
3091
|
+
Path(tex_path).write_text("\n".join(lines), encoding="utf-8")
|
|
3092
|
+
return tc
|
|
3093
|
+
|
|
3094
|
+
|
|
3095
|
+
@comments_app.command(name="list")
|
|
3096
|
+
def list_comments(
|
|
3097
|
+
tex_path: Annotated[
|
|
3098
|
+
str,
|
|
3099
|
+
typer.Argument(
|
|
3100
|
+
help="Document to list comments from, including files it inputs."
|
|
3101
|
+
),
|
|
3102
|
+
],
|
|
3103
|
+
unresolved: Annotated[
|
|
3104
|
+
bool,
|
|
3105
|
+
typer.Option("--unresolved", "-u", help="Only list open threads."),
|
|
3106
|
+
] = False,
|
|
3107
|
+
as_json: Annotated[
|
|
3108
|
+
bool, typer.Option("--json", help="Output result as JSON.")
|
|
3109
|
+
] = False,
|
|
3110
|
+
) -> None:
|
|
3111
|
+
"""List the comment threads in a LaTeX document."""
|
|
3112
|
+
if not os.path.isfile(tex_path):
|
|
3113
|
+
raise_error(f"{tex_path} does not exist")
|
|
3114
|
+
out = [
|
|
3115
|
+
c
|
|
3116
|
+
for c in calkit.latex.list_comments(tex_path)
|
|
3117
|
+
if not (unresolved and c["resolved"])
|
|
3118
|
+
]
|
|
3119
|
+
if as_json:
|
|
3120
|
+
typer.echo(json.dumps(out, indent=2))
|
|
3121
|
+
return
|
|
3122
|
+
for c in out:
|
|
3123
|
+
status = " (resolved)" if c["resolved"] else ""
|
|
3124
|
+
typer.echo(f"{c['path']}:{c['line']} [{c['id'] or '-'}]{status}")
|
|
3125
|
+
if c["highlight"]:
|
|
3126
|
+
typer.echo(f' On "{c["highlight"]["text"]}"')
|
|
3127
|
+
for m in c["messages"]:
|
|
3128
|
+
typer.echo(f" {m['author']}: {m['text']}")
|
|
3129
|
+
|
|
3130
|
+
|
|
3131
|
+
@comments_app.command(name="locate")
|
|
3132
|
+
def locate_paragraph(
|
|
3133
|
+
tex_path: Annotated[
|
|
3134
|
+
str,
|
|
3135
|
+
typer.Argument(help="Document to search, including files it inputs."),
|
|
3136
|
+
],
|
|
3137
|
+
text: Annotated[
|
|
3138
|
+
str | None,
|
|
3139
|
+
typer.Option(
|
|
3140
|
+
"--text", help="Rendered text, e.g., a line copied from the PDF."
|
|
3141
|
+
),
|
|
3142
|
+
] = None,
|
|
3143
|
+
path: Annotated[
|
|
3144
|
+
str | None,
|
|
3145
|
+
typer.Option("--path", help="File with the line to look up."),
|
|
3146
|
+
] = None,
|
|
3147
|
+
line: Annotated[
|
|
3148
|
+
int | None,
|
|
3149
|
+
typer.Option("--line", "-l", help="Line to look up in --path."),
|
|
3150
|
+
] = None,
|
|
3151
|
+
as_json: Annotated[
|
|
3152
|
+
bool, typer.Option("--json", help="Output result as JSON.")
|
|
3153
|
+
] = False,
|
|
3154
|
+
) -> None:
|
|
3155
|
+
"""Find the paragraph some rendered text is in, or a source line is in.
|
|
3156
|
+
|
|
3157
|
+
This is how a place in a PDF built without SyncTeX, or by someone else,
|
|
3158
|
+
can be matched to the source.
|
|
3159
|
+
"""
|
|
3160
|
+
if (text is None) == (line is None):
|
|
3161
|
+
raise_error("Specify one of --text or --path and --line")
|
|
3162
|
+
if not os.path.isfile(tex_path):
|
|
3163
|
+
raise_error(f"{tex_path} does not exist")
|
|
3164
|
+
found = calkit.latex.locate_block(tex_path, text, path, line)
|
|
3165
|
+
if found is None:
|
|
3166
|
+
raise_error("No matching paragraph found")
|
|
3167
|
+
out = {
|
|
3168
|
+
"path": found.path,
|
|
3169
|
+
"line": found.lineno,
|
|
3170
|
+
"end_line": found.lines[-1].lineno,
|
|
3171
|
+
"text": found.text or calkit.latex.display_text(found),
|
|
3172
|
+
}
|
|
3173
|
+
if as_json:
|
|
3174
|
+
typer.echo(json.dumps(out, indent=2))
|
|
3175
|
+
else:
|
|
3176
|
+
typer.echo(f"{out['path']}:{out['line']}")
|
|
3177
|
+
|
|
3178
|
+
|
|
3179
|
+
@comments_app.command(name="add")
|
|
3180
|
+
def add_comment(
|
|
3181
|
+
tex_path: Annotated[str, typer.Argument(help="File to comment in.")],
|
|
3182
|
+
line: Annotated[
|
|
3183
|
+
int,
|
|
3184
|
+
typer.Option(
|
|
3185
|
+
"--line",
|
|
3186
|
+
"-l",
|
|
3187
|
+
help="A line in, or just above, the paragraph to comment on.",
|
|
3188
|
+
),
|
|
3189
|
+
],
|
|
3190
|
+
text: Annotated[str, typer.Option("--text", "-m", help="The comment.")],
|
|
3191
|
+
highlight: Annotated[
|
|
3192
|
+
str | None,
|
|
3193
|
+
typer.Option(
|
|
3194
|
+
"--highlight", help="Rendered text in the paragraph it's about."
|
|
3195
|
+
),
|
|
3196
|
+
] = None,
|
|
3197
|
+
occ: Annotated[
|
|
3198
|
+
int,
|
|
3199
|
+
typer.Option(
|
|
3200
|
+
"--occ", help="Which occurrence of the highlight text, from 0."
|
|
3201
|
+
),
|
|
3202
|
+
] = 0,
|
|
3203
|
+
author: Annotated[
|
|
3204
|
+
str | None,
|
|
3205
|
+
typer.Option("--author", help="Defaults to Git's user.name."),
|
|
3206
|
+
] = None,
|
|
3207
|
+
email: Annotated[
|
|
3208
|
+
str | None,
|
|
3209
|
+
typer.Option("--email", help="Defaults to Git's user.email."),
|
|
3210
|
+
] = None,
|
|
3211
|
+
as_json: Annotated[
|
|
3212
|
+
bool, typer.Option("--json", help="Output the thread as JSON.")
|
|
3213
|
+
] = False,
|
|
3214
|
+
) -> None:
|
|
3215
|
+
"""Start a comment thread above a paragraph, printing its ID."""
|
|
3216
|
+
if not os.path.isfile(tex_path):
|
|
3217
|
+
raise_error(f"{tex_path} does not exist")
|
|
3218
|
+
lines = Path(tex_path).read_text(encoding="utf-8").split("\n")
|
|
3219
|
+
tc = calkit.latex.TexComment(
|
|
3220
|
+
[_new_entry(text, author, email)],
|
|
3221
|
+
highlight=highlight or None,
|
|
3222
|
+
highlight_occ=occ,
|
|
3223
|
+
id=calkit.latex.new_comment_id(),
|
|
3224
|
+
)
|
|
3225
|
+
try:
|
|
3226
|
+
calkit.latex.add_comment(lines, line, tc)
|
|
3227
|
+
except ValueError as e:
|
|
3228
|
+
raise_error(str(e))
|
|
3229
|
+
Path(tex_path).write_text("\n".join(lines), encoding="utf-8")
|
|
3230
|
+
if as_json:
|
|
3231
|
+
blks = calkit.latex.file_blocks(tex_path, lines)
|
|
3232
|
+
typer.echo(
|
|
3233
|
+
json.dumps(
|
|
3234
|
+
calkit.latex.comment_to_dict(tex_path, tc, blks), indent=2
|
|
3235
|
+
)
|
|
3236
|
+
)
|
|
3237
|
+
else:
|
|
3238
|
+
typer.echo(tc.id)
|
|
3239
|
+
|
|
3240
|
+
|
|
3241
|
+
@comments_app.command(name="reply")
|
|
3242
|
+
def reply_to_comment(
|
|
3243
|
+
tex_path: Annotated[str, typer.Argument(help="File the thread is in.")],
|
|
3244
|
+
text: Annotated[str, typer.Option("--text", "-m", help="The reply.")],
|
|
3245
|
+
id: Annotated[str | None, _ID_OPTION] = None,
|
|
3246
|
+
line: Annotated[int | None, _LINE_OPTION] = None,
|
|
3247
|
+
author: Annotated[
|
|
3248
|
+
str | None,
|
|
3249
|
+
typer.Option("--author", help="Defaults to Git's user.name."),
|
|
3250
|
+
] = None,
|
|
3251
|
+
email: Annotated[
|
|
3252
|
+
str | None,
|
|
3253
|
+
typer.Option("--email", help="Defaults to Git's user.email."),
|
|
3254
|
+
] = None,
|
|
3255
|
+
) -> None:
|
|
3256
|
+
"""Reply to a comment thread."""
|
|
3257
|
+
entry = _new_entry(text, author, email)
|
|
3258
|
+
tc = _edit_comment(tex_path, id, line, lambda tc: tc.entries.append(entry))
|
|
3259
|
+
typer.echo(tc.id)
|
|
3260
|
+
|
|
3261
|
+
|
|
3262
|
+
@comments_app.command(name="resolve")
|
|
3263
|
+
def resolve_comment(
|
|
3264
|
+
tex_path: Annotated[str, typer.Argument(help="File the thread is in.")],
|
|
3265
|
+
id: Annotated[str | None, _ID_OPTION] = None,
|
|
3266
|
+
line: Annotated[int | None, _LINE_OPTION] = None,
|
|
3267
|
+
) -> None:
|
|
3268
|
+
"""Mark a comment thread resolved."""
|
|
3269
|
+
|
|
3270
|
+
def edit(tc: calkit.latex.TexComment) -> None:
|
|
3271
|
+
tc.resolved = True
|
|
3272
|
+
|
|
3273
|
+
typer.echo(_edit_comment(tex_path, id, line, edit).id)
|
|
3274
|
+
|
|
3275
|
+
|
|
3276
|
+
@comments_app.command(name="reopen")
|
|
3277
|
+
def reopen_comment(
|
|
3278
|
+
tex_path: Annotated[str, typer.Argument(help="File the thread is in.")],
|
|
3279
|
+
id: Annotated[str | None, _ID_OPTION] = None,
|
|
3280
|
+
line: Annotated[int | None, _LINE_OPTION] = None,
|
|
3281
|
+
) -> None:
|
|
3282
|
+
"""Mark a resolved comment thread open again."""
|
|
3283
|
+
|
|
3284
|
+
def edit(tc: calkit.latex.TexComment) -> None:
|
|
3285
|
+
tc.resolved = False
|
|
3286
|
+
|
|
3287
|
+
typer.echo(_edit_comment(tex_path, id, line, edit).id)
|
|
3288
|
+
|
|
3289
|
+
|
|
3290
|
+
@comments_app.command(name="delete")
|
|
3291
|
+
def delete_comment(
|
|
3292
|
+
tex_path: Annotated[str, typer.Argument(help="File the thread is in.")],
|
|
3293
|
+
id: Annotated[str | None, _ID_OPTION] = None,
|
|
3294
|
+
line: Annotated[int | None, _LINE_OPTION] = None,
|
|
3295
|
+
) -> None:
|
|
3296
|
+
"""Delete a comment thread and its replies."""
|
|
3297
|
+
if (id is None) == (line is None):
|
|
3298
|
+
raise_error("Specify one of --id or --line")
|
|
3299
|
+
if not os.path.isfile(tex_path):
|
|
3300
|
+
raise_error(f"{tex_path} does not exist")
|
|
3301
|
+
lines = Path(tex_path).read_text(encoding="utf-8").split("\n")
|
|
3302
|
+
tc = calkit.latex.find_comment(lines, id=id, lineno=line)
|
|
3303
|
+
if tc is None:
|
|
3304
|
+
raise_error(f"No comment thread in {tex_path} at {id or line}")
|
|
3305
|
+
del lines[tc.lineno - 1 : tc.lineno - 1 + tc.nlines]
|
|
3306
|
+
Path(tex_path).write_text("\n".join(lines), encoding="utf-8")
|
|
@@ -1718,18 +1718,33 @@ def update_hub(
|
|
|
1718
1718
|
# A project that already exists on the hub, e.g., one created there
|
|
1719
1719
|
# for this repo, is connected to rather than created again, which the
|
|
1720
1720
|
# hub would refuse since a repo belongs to one project
|
|
1721
|
-
|
|
1722
|
-
if
|
|
1721
|
+
project = None
|
|
1722
|
+
if git_repo_url is not None and git_repo_url.startswith(
|
|
1723
|
+
"https://github.com/"
|
|
1724
|
+
):
|
|
1725
|
+
github_repo = git_repo_url.removeprefix("https://github.com/")
|
|
1726
|
+
try:
|
|
1727
|
+
found = calkit.hub.get(
|
|
1728
|
+
"/projects",
|
|
1729
|
+
params=dict(github_repo=github_repo),
|
|
1730
|
+
max_retries=1,
|
|
1731
|
+
)
|
|
1732
|
+
if found.get("data"):
|
|
1733
|
+
project = found["data"][0]
|
|
1734
|
+
except Exception:
|
|
1735
|
+
pass
|
|
1736
|
+
elif owner is not None:
|
|
1723
1737
|
try:
|
|
1724
|
-
calkit.hub.get(
|
|
1725
|
-
|
|
1738
|
+
project = calkit.hub.get(
|
|
1739
|
+
f"/projects/{owner}/{name}", max_retries=1
|
|
1740
|
+
)
|
|
1726
1741
|
except Exception:
|
|
1727
1742
|
pass
|
|
1728
1743
|
# Creating it is the step that can already be done, so a project that
|
|
1729
1744
|
# exists is not an error: the point is to end up connected
|
|
1730
1745
|
resp = None
|
|
1731
1746
|
try:
|
|
1732
|
-
if
|
|
1747
|
+
if project is not None:
|
|
1733
1748
|
raise RuntimeError("Project already exists")
|
|
1734
1749
|
resp = calkit.hub.post(
|
|
1735
1750
|
"/projects",
|
|
@@ -1760,6 +1775,22 @@ def update_hub(
|
|
|
1760
1775
|
typer.echo(f"Adding Git remote: {git_repo_url}")
|
|
1761
1776
|
repo.git.remote(["add", "origin", git_repo_url])
|
|
1762
1777
|
ck_info["git_repo_url"] = git_repo_url
|
|
1778
|
+
# The hub decides who owns the project, e.g., an org's repo belongs to
|
|
1779
|
+
# the org, under an account name that's lowercase even when the Git
|
|
1780
|
+
# remote's isn't
|
|
1781
|
+
for info in (project, resp):
|
|
1782
|
+
if isinstance(info, dict) and info.get("owner_account_name"):
|
|
1783
|
+
owner = info["owner_account_name"]
|
|
1784
|
+
name = info.get("name") or name
|
|
1785
|
+
if owner is not None and ck_info.get("owner") != owner:
|
|
1786
|
+
ck_info["owner"] = owner
|
|
1787
|
+
if ck_info.get("name") != name:
|
|
1788
|
+
ck_info["name"] = name
|
|
1789
|
+
if ck_info.get("hub") is None:
|
|
1790
|
+
ck_info["hub"] = hub_url
|
|
1791
|
+
# The DVC remote is named from calkit.yaml, so it has to be written first
|
|
1792
|
+
with open("calkit.yaml", "w") as f:
|
|
1793
|
+
calkit.ryaml.dump(ck_info, f)
|
|
1763
1794
|
try:
|
|
1764
1795
|
remote_name = configure_remote()
|
|
1765
1796
|
set_remote_auth(remote_name=remote_name)
|
|
@@ -1773,14 +1804,6 @@ def update_hub(
|
|
|
1773
1804
|
raise_error("Current directory is not a Git repository")
|
|
1774
1805
|
except (ValueError, RuntimeError) as e:
|
|
1775
1806
|
raise_error(f"Failed to set up DVC remote: {e}")
|
|
1776
|
-
if owner is not None and ck_info.get("owner") != owner:
|
|
1777
|
-
ck_info["owner"] = owner
|
|
1778
|
-
if ck_info.get("name") != name:
|
|
1779
|
-
ck_info["name"] = name
|
|
1780
|
-
if ck_info.get("hub") is None:
|
|
1781
|
-
ck_info["hub"] = hub_url
|
|
1782
|
-
with open("calkit.yaml", "w") as f:
|
|
1783
|
-
calkit.ryaml.dump(ck_info, f)
|
|
1784
1807
|
paths = [".dvc/config", "calkit.yaml"]
|
|
1785
1808
|
# The hub would have written one, and a repo it didn't scaffold has none
|
|
1786
1809
|
if not os.path.isfile("README.md"):
|