calkit-python 0.47.5__tar.gz → 0.47.7__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1073) hide show
  1. {calkit_python-0.47.5 → calkit_python-0.47.7}/AGENTS.md +2 -0
  2. {calkit_python-0.47.5 → calkit_python-0.47.7}/PKG-INFO +1 -1
  3. {calkit_python-0.47.5 → calkit_python-0.47.7}/agent-plugin/skills/build-paper-pipeline/SKILL.md +5 -2
  4. {calkit_python-0.47.5 → calkit_python-0.47.7}/agent-plugin/skills/check-questions/SKILL.md +45 -5
  5. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/cli/latex.py +37 -0
  6. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/cli/list.py +18 -7
  7. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/cli/main/core.py +13 -2
  8. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/cli/sync.py +5 -1
  9. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/models/core.py +93 -6
  10. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/models/pipeline.py +52 -0
  11. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/notebooks.py +5 -0
  12. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/pipeline.py +3 -0
  13. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/questions.py +537 -53
  14. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/cli/main/test_core.py +14 -0
  15. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/cli/test_check.py +34 -17
  16. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/cli/test_latex.py +78 -0
  17. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/cli/test_list.py +12 -0
  18. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/cli/test_notebooks.py +34 -0
  19. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/cli/test_sync.py +11 -1
  20. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/test_questions.py +415 -5
  21. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/cli-reference.md +29 -7
  22. calkit_python-0.47.7/docs/comparisons.md +426 -0
  23. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/examples.md +15 -0
  24. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/pipeline/index.md +16 -0
  25. calkit_python-0.47.7/docs/questions.md +288 -0
  26. {calkit_python-0.47.5/vscode-ext → calkit_python-0.47.7/docs}/schemas/calkit.json +289 -2
  27. calkit_python-0.47.7/examples/harbor-tb-science/.gitignore +1 -0
  28. calkit_python-0.47.7/examples/harbor-tb-science/README.md +41 -0
  29. calkit_python-0.47.7/examples/harbor-tb-science/overlay-authoring/.gitignore +1 -0
  30. calkit_python-0.47.7/examples/harbor-tb-science/overlay-authoring/authoring/Dockerfile +3 -0
  31. calkit_python-0.47.7/examples/harbor-tb-science/overlay-authoring/calkit.yaml +157 -0
  32. calkit_python-0.47.7/examples/harbor-tb-science/overlay-variant/solution/calkit.yaml +41 -0
  33. calkit_python-0.47.7/examples/harbor-tb-science/overlay-variant/solution/make_design_report.py +55 -0
  34. calkit_python-0.47.7/examples/harbor-tb-science/overlay-variant/solution/solve.sh +15 -0
  35. calkit_python-0.47.7/examples/harbor-tb-science/overlay-variant/tests/test_calkit.py +148 -0
  36. calkit_python-0.47.7/examples/harbor-tb-science/patch_variant.py +60 -0
  37. calkit_python-0.47.7/examples/harbor-tb-science/setup.sh +31 -0
  38. calkit_python-0.47.7/examples/harbor-tb-science/tamper.sh +58 -0
  39. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/AGENTS.md +7 -1
  40. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/api/routes/projects/core.py +188 -48
  41. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/git.py +20 -4
  42. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/models/core.py +30 -2
  43. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/tests/api/routes/projects/test_core.py +271 -0
  44. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/tests/test_git.py +73 -2
  45. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/docker-compose.yml +3 -2
  46. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/client/index.ts +6 -0
  47. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/client/schemas.gen.ts +124 -2
  48. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/client/sdk.gen.ts +43 -8
  49. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/client/types.gen.ts +96 -2
  50. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Common/ArtifactCompareModal.tsx +3 -13
  51. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Common/DeleteAlert.tsx +15 -0
  52. calkit_python-0.47.7/hub/frontend/src/components/Common/SandboxedHtml.test.tsx +44 -0
  53. calkit_python-0.47.7/hub/frontend/src/components/Common/SandboxedHtml.tsx +80 -0
  54. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Common/SidebarItems.tsx +5 -1
  55. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Figures/FigureView.tsx +6 -39
  56. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Notebooks/NotebookView.tsx +3 -18
  57. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Presentations/PresentationView.tsx +5 -9
  58. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Projects/EditQuestion.tsx +92 -3
  59. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Projects/QuestionModal.tsx +113 -7
  60. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Publications/PublicationView.tsx +4 -12
  61. calkit_python-0.47.7/hub/frontend/src/components/References/FileViewModal.tsx +79 -0
  62. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Releases/ReleaseViewer.tsx +3 -15
  63. calkit_python-0.47.7/hub/frontend/src/hooks/useRefreshProject.ts +34 -0
  64. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/lib/strings.ts +9 -0
  65. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/files.tsx +13 -5
  66. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/questions.$questionNumber.tsx +1 -0
  67. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout.tsx +12 -1
  68. calkit_python-0.47.7/images/latex/Dockerfile +126 -0
  69. calkit_python-0.47.7/images/latex/README.md +112 -0
  70. calkit_python-0.47.7/images/latex/entrypoint.sh +10 -0
  71. {calkit_python-0.47.5 → calkit_python-0.47.7}/mkdocs.yml +1 -0
  72. {calkit_python-0.47.5 → calkit_python-0.47.7}/pyproject.toml +4 -3
  73. {calkit_python-0.47.5/docs → calkit_python-0.47.7/vscode-ext}/schemas/calkit.json +289 -2
  74. {calkit_python-0.47.5 → calkit_python-0.47.7}/vscode-ext/src/sidebar.ts +18 -3
  75. {calkit_python-0.47.5 → calkit_python-0.47.7}/vscode-ext/src/types.ts +3 -1
  76. calkit_python-0.47.5/docs/questions.md +0 -138
  77. calkit_python-0.47.5/hub/frontend/src/components/References/FileViewModal.tsx +0 -44
  78. {calkit_python-0.47.5 → calkit_python-0.47.7}/.claude-plugin/marketplace.json +0 -0
  79. {calkit_python-0.47.5 → calkit_python-0.47.7}/.dockerignore +0 -0
  80. {calkit_python-0.47.5 → calkit_python-0.47.7}/.gitattributes +0 -0
  81. {calkit_python-0.47.5 → calkit_python-0.47.7}/.gitignore +0 -0
  82. {calkit_python-0.47.5 → calkit_python-0.47.7}/.gitmodules +0 -0
  83. {calkit_python-0.47.5 → calkit_python-0.47.7}/.pre-commit-config.yaml +0 -0
  84. {calkit_python-0.47.5 → calkit_python-0.47.7}/.prettierignore +0 -0
  85. {calkit_python-0.47.5 → calkit_python-0.47.7}/.prettierrc.json +0 -0
  86. {calkit_python-0.47.5 → calkit_python-0.47.7}/.python-version +0 -0
  87. {calkit_python-0.47.5 → calkit_python-0.47.7}/.vscode/launch.json +0 -0
  88. {calkit_python-0.47.5 → calkit_python-0.47.7}/.vscode/tasks.json +0 -0
  89. {calkit_python-0.47.5 → calkit_python-0.47.7}/CITATION.cff +0 -0
  90. {calkit_python-0.47.5 → calkit_python-0.47.7}/CODE_OF_CONDUCT.md +0 -0
  91. {calkit_python-0.47.5 → calkit_python-0.47.7}/CONTRIBUTING.md +0 -0
  92. {calkit_python-0.47.5 → calkit_python-0.47.7}/LICENSE +0 -0
  93. {calkit_python-0.47.5 → calkit_python-0.47.7}/Makefile +0 -0
  94. {calkit_python-0.47.5 → calkit_python-0.47.7}/README.md +0 -0
  95. {calkit_python-0.47.5 → calkit_python-0.47.7}/actions/run/README.md +0 -0
  96. {calkit_python-0.47.5 → calkit_python-0.47.7}/actions/run/action.yml +0 -0
  97. {calkit_python-0.47.5 → calkit_python-0.47.7}/actions/run/example.yml +0 -0
  98. {calkit_python-0.47.5 → calkit_python-0.47.7}/agent-plugin/.claude-plugin/plugin.json +0 -0
  99. {calkit_python-0.47.5 → calkit_python-0.47.7}/agent-plugin/skills/add-pipeline-stage/SKILL.md +0 -0
  100. {calkit_python-0.47.5 → calkit_python-0.47.7}/agent-plugin/skills/check-reproducibility/SKILL.md +0 -0
  101. {calkit_python-0.47.5 → calkit_python-0.47.7}/agent-plugin/skills/conventions/SKILL.md +0 -0
  102. {calkit_python-0.47.5 → calkit_python-0.47.7}/agent-plugin/skills/create-pipeline/SKILL.md +0 -0
  103. {calkit_python-0.47.5 → calkit_python-0.47.7}/assistant/.gitignore +0 -0
  104. {calkit_python-0.47.5 → calkit_python-0.47.7}/assistant/.python-version +0 -0
  105. {calkit_python-0.47.5 → calkit_python-0.47.7}/assistant/Makefile +0 -0
  106. {calkit_python-0.47.5 → calkit_python-0.47.7}/assistant/README.md +0 -0
  107. {calkit_python-0.47.5 → calkit_python-0.47.7}/assistant/main.py +0 -0
  108. {calkit_python-0.47.5 → calkit_python-0.47.7}/assistant/pyproject.toml +0 -0
  109. {calkit_python-0.47.5 → calkit_python-0.47.7}/assistant/resources/icon.ico +0 -0
  110. {calkit_python-0.47.5 → calkit_python-0.47.7}/assistant/resources/screenshot.png +0 -0
  111. {calkit_python-0.47.5 → calkit_python-0.47.7}/assistant/tests/test_main.py +0 -0
  112. {calkit_python-0.47.5 → calkit_python-0.47.7}/assistant/uv.lock +0 -0
  113. {calkit_python-0.47.5 → calkit_python-0.47.7}/browser-ext/.gitignore +0 -0
  114. {calkit_python-0.47.5 → calkit_python-0.47.7}/browser-ext/README.md +0 -0
  115. {calkit_python-0.47.5 → calkit_python-0.47.7}/browser-ext/options.html +0 -0
  116. {calkit_python-0.47.5 → calkit_python-0.47.7}/browser-ext/package-lock.json +0 -0
  117. {calkit_python-0.47.5 → calkit_python-0.47.7}/browser-ext/package.json +0 -0
  118. {calkit_python-0.47.5 → calkit_python-0.47.7}/browser-ext/popup.html +0 -0
  119. {calkit_python-0.47.5 → calkit_python-0.47.7}/browser-ext/public/icons/calkit-128.png +0 -0
  120. {calkit_python-0.47.5 → calkit_python-0.47.7}/browser-ext/public/icons/calkit-16.png +0 -0
  121. {calkit_python-0.47.5 → calkit_python-0.47.7}/browser-ext/public/icons/calkit-32.png +0 -0
  122. {calkit_python-0.47.5 → calkit_python-0.47.7}/browser-ext/public/icons/calkit-48.png +0 -0
  123. {calkit_python-0.47.5 → calkit_python-0.47.7}/browser-ext/public/icons/calkit.svg +0 -0
  124. {calkit_python-0.47.5 → calkit_python-0.47.7}/browser-ext/public/manifest.json +0 -0
  125. {calkit_python-0.47.5 → calkit_python-0.47.7}/browser-ext/scripts/build-content.mjs +0 -0
  126. {calkit_python-0.47.5 → calkit_python-0.47.7}/browser-ext/scripts/package-manifest.mjs +0 -0
  127. {calkit_python-0.47.5 → calkit_python-0.47.7}/browser-ext/scripts/store-screenshots.py +0 -0
  128. {calkit_python-0.47.5 → calkit_python-0.47.7}/browser-ext/scripts/watch.mjs +0 -0
  129. {calkit_python-0.47.5 → calkit_python-0.47.7}/browser-ext/src/background/index.ts +0 -0
  130. {calkit_python-0.47.5 → calkit_python-0.47.7}/browser-ext/src/content/github.ts +0 -0
  131. {calkit_python-0.47.5 → calkit_python-0.47.7}/browser-ext/src/content/overleaf.ts +0 -0
  132. {calkit_python-0.47.5 → calkit_python-0.47.7}/browser-ext/src/content/references.ts +0 -0
  133. {calkit_python-0.47.5 → calkit_python-0.47.7}/browser-ext/src/core/api.ts +0 -0
  134. {calkit_python-0.47.5 → calkit_python-0.47.7}/browser-ext/src/core/auth.ts +0 -0
  135. {calkit_python-0.47.5 → calkit_python-0.47.7}/browser-ext/src/core/calkit-yaml.test.ts +0 -0
  136. {calkit_python-0.47.5 → calkit_python-0.47.7}/browser-ext/src/core/calkit-yaml.ts +0 -0
  137. {calkit_python-0.47.5 → calkit_python-0.47.7}/browser-ext/src/core/detect.test.ts +0 -0
  138. {calkit_python-0.47.5 → calkit_python-0.47.7}/browser-ext/src/core/detect.ts +0 -0
  139. {calkit_python-0.47.5 → calkit_python-0.47.7}/browser-ext/src/core/hub-url.ts +0 -0
  140. {calkit_python-0.47.5 → calkit_python-0.47.7}/browser-ext/src/core/hubs.test.ts +0 -0
  141. {calkit_python-0.47.5 → calkit_python-0.47.7}/browser-ext/src/core/hubs.ts +0 -0
  142. {calkit_python-0.47.5 → calkit_python-0.47.7}/browser-ext/src/core/latex.test.ts +0 -0
  143. {calkit_python-0.47.5 → calkit_python-0.47.7}/browser-ext/src/core/latex.ts +0 -0
  144. {calkit_python-0.47.5 → calkit_python-0.47.7}/browser-ext/src/core/lifecycle.ts +0 -0
  145. {calkit_python-0.47.5 → calkit_python-0.47.7}/browser-ext/src/core/messages.test.ts +0 -0
  146. {calkit_python-0.47.5 → calkit_python-0.47.7}/browser-ext/src/core/messages.ts +0 -0
  147. {calkit_python-0.47.5 → calkit_python-0.47.7}/browser-ext/src/core/pickers.ts +0 -0
  148. {calkit_python-0.47.5 → calkit_python-0.47.7}/browser-ext/src/core/storage.ts +0 -0
  149. {calkit_python-0.47.5 → calkit_python-0.47.7}/browser-ext/src/core/types.ts +0 -0
  150. {calkit_python-0.47.5 → calkit_python-0.47.7}/browser-ext/src/core/ui.test.ts +0 -0
  151. {calkit_python-0.47.5 → calkit_python-0.47.7}/browser-ext/src/core/ui.ts +0 -0
  152. {calkit_python-0.47.5 → calkit_python-0.47.7}/browser-ext/src/options/options.ts +0 -0
  153. {calkit_python-0.47.5 → calkit_python-0.47.7}/browser-ext/src/popup/popup.css +0 -0
  154. {calkit_python-0.47.5 → calkit_python-0.47.7}/browser-ext/src/popup/popup.ts +0 -0
  155. {calkit_python-0.47.5 → calkit_python-0.47.7}/browser-ext/src/viewer/viewer.ts +0 -0
  156. {calkit_python-0.47.5 → calkit_python-0.47.7}/browser-ext/tsconfig.json +0 -0
  157. {calkit_python-0.47.5 → calkit_python-0.47.7}/browser-ext/viewer.html +0 -0
  158. {calkit_python-0.47.5 → calkit_python-0.47.7}/browser-ext/vite.config.ts +0 -0
  159. {calkit_python-0.47.5 → calkit_python-0.47.7}/browser-ext/vite.content.config.ts +0 -0
  160. {calkit_python-0.47.5 → calkit_python-0.47.7}/browser-ext/vitest.config.ts +0 -0
  161. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/__init__.py +0 -0
  162. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/__main__.py +0 -0
  163. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/calc.py +0 -0
  164. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/cli/__init__.py +0 -0
  165. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/cli/check.py +0 -0
  166. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/cli/config.py +0 -0
  167. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/cli/core.py +0 -0
  168. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/cli/delete.py +0 -0
  169. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/cli/describe.py +0 -0
  170. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/cli/dev.py +0 -0
  171. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/cli/hub.py +0 -0
  172. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/cli/import_.py +0 -0
  173. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/cli/main/__init__.py +0 -0
  174. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/cli/main/xr.py +0 -0
  175. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/cli/new.py +0 -0
  176. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/cli/notebooks.py +0 -0
  177. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/cli/office.py +0 -0
  178. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/cli/overleaf.py +0 -0
  179. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/cli/scheduler.py +0 -0
  180. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/cli/update.py +0 -0
  181. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/conda.py +0 -0
  182. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/config.py +0 -0
  183. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/core.py +0 -0
  184. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/datasets.py +0 -0
  185. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/dependencies.py +0 -0
  186. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/detect.py +0 -0
  187. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/docker.py +0 -0
  188. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/docx.py +0 -0
  189. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/dvc/__init__.py +0 -0
  190. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/dvc/core.py +0 -0
  191. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/dvc/zip.py +0 -0
  192. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/environments.py +0 -0
  193. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/fs.py +0 -0
  194. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/git.py +0 -0
  195. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/github.py +0 -0
  196. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/gui.py +0 -0
  197. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/hub.py +0 -0
  198. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/install.py +0 -0
  199. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/invenio.py +0 -0
  200. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/julia.py +0 -0
  201. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/jupyter.py +0 -0
  202. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/jupyterlab/__init__.py +0 -0
  203. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/jupyterlab/routes.py +0 -0
  204. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/labextension/package.json +0 -0
  205. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/labextension/schemas/calkit/package.json.orig +0 -0
  206. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/labextension/schemas/calkit/plugin.json +0 -0
  207. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/labextension/static/506.c34b070098184e33.js +0 -0
  208. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/labextension/static/57d13a7399cec3c5.png +0 -0
  209. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/labextension/static/616.528427eb54a4a0c0.js +0 -0
  210. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/labextension/static/740.6bf87276e9e5788a.js +0 -0
  211. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/labextension/static/899.f9b9f9bf705a6493.js +0 -0
  212. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/labextension/static/935.46ecc6bf99aa593a.js +0 -0
  213. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/labextension/static/remoteEntry.109a3a8379365e59.js +0 -0
  214. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/labextension/static/style.js +0 -0
  215. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/labextension/static/third-party-licenses.json +0 -0
  216. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/latex.py +0 -0
  217. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/licenses.py +0 -0
  218. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/magics.py +0 -0
  219. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/markdown.py +0 -0
  220. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/matlab.py +0 -0
  221. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/models/__init__.py +0 -0
  222. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/models/docx.py +0 -0
  223. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/models/io.py +0 -0
  224. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/models/iteration.py +0 -0
  225. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/office.py +0 -0
  226. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/ops.py +0 -0
  227. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/overleaf.py +0 -0
  228. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/procedures.py +0 -0
  229. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/provenance.py +0 -0
  230. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/releases.py +0 -0
  231. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/reproducibility.py +0 -0
  232. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/resources/README.md +0 -0
  233. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/resources/__init__.py +0 -0
  234. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/resources/devcontainer/Dockerfile +0 -0
  235. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/resources/devcontainer/README.md +0 -0
  236. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/resources/devcontainer/base.json +0 -0
  237. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/resources/devcontainer/devcontainer.json +0 -0
  238. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/resources/devcontainer/scripts/check-envs.sh +0 -0
  239. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/resources/devcontainer/scripts/post-create.sh +0 -0
  240. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/resources/devcontainer/scripts/post-start.sh +0 -0
  241. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/resources/devcontainer/scripts/update-content.sh +0 -0
  242. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/resources/github-actions/example.yml +0 -0
  243. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/resources/vscode/README.md +0 -0
  244. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/resources/vscode/extensions.json +0 -0
  245. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/resources/vscode/settings.json +0 -0
  246. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/schema.py +0 -0
  247. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/server.py +0 -0
  248. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/templates/__init__.py +0 -0
  249. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/templates/core.py +0 -0
  250. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/templates/latex/__init__.py +0 -0
  251. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/templates/latex/article/paper.tex +0 -0
  252. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/templates/latex/core.py +0 -0
  253. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/templates/latex/ieee-conference/paper.tex +0 -0
  254. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/templates/latex/jfm/jfm.bst +0 -0
  255. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/templates/latex/jfm/jfm.cls +0 -0
  256. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/templates/latex/jfm/lineno-FLM.sty +0 -0
  257. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/templates/latex/jfm/paper.tex +0 -0
  258. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/templates/latex/jfm/upmath.sty +0 -0
  259. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/templates/latex/report/paper.tex +0 -0
  260. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/__init__.py +0 -0
  261. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/cli/__init__.py +0 -0
  262. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/cli/main/__init__.py +0 -0
  263. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/cli/main/test_lock.py +0 -0
  264. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/cli/main/test_subprojects.py +0 -0
  265. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/cli/main/test_xr.py +0 -0
  266. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/cli/test_config.py +0 -0
  267. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/cli/test_core.py +0 -0
  268. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/cli/test_delete.py +0 -0
  269. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/cli/test_describe.py +0 -0
  270. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/cli/test_hub.py +0 -0
  271. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/cli/test_import.py +0 -0
  272. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/cli/test_new.py +0 -0
  273. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/cli/test_overleaf.py +0 -0
  274. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/cli/test_scheduler.py +0 -0
  275. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/cli/test_update.py +0 -0
  276. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/dvc/__init__.py +0 -0
  277. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/dvc/test_core.py +0 -0
  278. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/dvc/test_zip.py +0 -0
  279. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/jupyterlab/__init__.py +0 -0
  280. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/jupyterlab/conftest.py +0 -0
  281. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/jupyterlab/test_routes.py +0 -0
  282. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/models/__init__.py +0 -0
  283. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/models/test_core.py +0 -0
  284. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/models/test_iteration.py +0 -0
  285. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/models/test_pipeline.py +0 -0
  286. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/test_calc.py +0 -0
  287. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/test_conda.py +0 -0
  288. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/test_config.py +0 -0
  289. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/test_core.py +0 -0
  290. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/test_dependencies.py +0 -0
  291. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/test_detect.py +0 -0
  292. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/test_docker.py +0 -0
  293. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/test_docs_references.py +0 -0
  294. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/test_docx.py +0 -0
  295. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/test_environments.py +0 -0
  296. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/test_fs.py +0 -0
  297. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/test_git.py +0 -0
  298. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/test_hub.py +0 -0
  299. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/test_install.py +0 -0
  300. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/test_invenio.py +0 -0
  301. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/test_julia.py +0 -0
  302. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/test_jupyter.py +0 -0
  303. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/test_keyring_windows.py +0 -0
  304. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/test_licenses.py +0 -0
  305. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/test_magics.py +0 -0
  306. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/test_markdown.py +0 -0
  307. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/test_matlab.py +0 -0
  308. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/test_models.py +0 -0
  309. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/test_notebooks.py +0 -0
  310. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/test_overleaf.py +0 -0
  311. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/test_pipeline.py +0 -0
  312. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/test_procedures.py +0 -0
  313. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/test_provenance.py +0 -0
  314. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/test_releases.py +0 -0
  315. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/test_reproducibility.py +0 -0
  316. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/test_resources.py +0 -0
  317. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/test_schema.py +0 -0
  318. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/test_templates.py +0 -0
  319. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/tests/test_workspace.py +0 -0
  320. {calkit_python-0.47.5 → calkit_python-0.47.7}/calkit/workspace.py +0 -0
  321. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/CNAME +0 -0
  322. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/acknowledgements.md +0 -0
  323. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/ai-tools.md +0 -0
  324. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/apps.md +0 -0
  325. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/browser-ext/index.md +0 -0
  326. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/browser-ext/privacy.md +0 -0
  327. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/calculations.md +0 -0
  328. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/calkit-yaml.md +0 -0
  329. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/cloud-integration.md +0 -0
  330. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/datasets.md +0 -0
  331. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/dev/latex-word.md +0 -0
  332. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/environments.md +0 -0
  333. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/governance.md +0 -0
  334. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/help.md +0 -0
  335. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/hpc.md +0 -0
  336. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/hub/index.md +0 -0
  337. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/hub/self-hosting.md +0 -0
  338. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/img/c-to-the-k-white.svg +0 -0
  339. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/img/calkit-fragmentation-compendium.png +0 -0
  340. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/img/calkit-no-bg.png +0 -0
  341. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/img/caltech.png +0 -0
  342. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/img/connect-zenodo.png +0 -0
  343. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/img/jupyterlab/all-green.png +0 -0
  344. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/img/jupyterlab/collect-data-stale.png +0 -0
  345. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/img/jupyterlab/new-env.png +0 -0
  346. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/img/jupyterlab/new-notebook.png +0 -0
  347. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/img/jupyterlab/pipeline-badge.png +0 -0
  348. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/img/jupyterlab-params.png +0 -0
  349. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/img/pipeline.png +0 -0
  350. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/img/plos-osi-code-2024-03.png +0 -0
  351. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/img/schmidt-sciences.png +0 -0
  352. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/img/vscode-nb-params.png +0 -0
  353. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/index.md +0 -0
  354. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/installation.md +0 -0
  355. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/jupyterlab.md +0 -0
  356. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/latex.md +0 -0
  357. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/local-server.md +0 -0
  358. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/notebooks.md +0 -0
  359. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/overleaf.md +0 -0
  360. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/pipeline/manual-steps.md +0 -0
  361. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/pipeline/markdown.md +0 -0
  362. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/pipeline/running-and-logging.md +0 -0
  363. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/privacy.md +0 -0
  364. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/provenance.md +0 -0
  365. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/quickstart.md +0 -0
  366. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/references.md +0 -0
  367. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/releases.md +0 -0
  368. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/reproducibility.md +0 -0
  369. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/requirements.md +0 -0
  370. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/subprojects.md +0 -0
  371. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/adding-latex-pub-docker.md +0 -0
  372. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/ai-agents.md +0 -0
  373. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/conda-envs.md +0 -0
  374. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/existing-project.md +0 -0
  375. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/first-project.md +0 -0
  376. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/github-actions.md +0 -0
  377. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/img/actions-repo-secrets.png +0 -0
  378. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/img/latex-codespaces/building-codespace.png +0 -0
  379. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/img/latex-codespaces/codespaces-secrets-2.png +0 -0
  380. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/img/latex-codespaces/editor-split.png +0 -0
  381. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/img/latex-codespaces/go-to-linked-code.png +0 -0
  382. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/img/latex-codespaces/issue-from-selection.png +0 -0
  383. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/img/latex-codespaces/new-project.png +0 -0
  384. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/img/latex-codespaces/new-pub-2.png +0 -0
  385. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/img/latex-codespaces/new-token.png +0 -0
  386. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/img/latex-codespaces/paper.tex.png +0 -0
  387. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/img/latex-codespaces/project-home-3.png +0 -0
  388. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/img/latex-codespaces/push.png +0 -0
  389. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/img/latex-codespaces/stage.png +0 -0
  390. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/img/office/anakin-excel.jpg +0 -0
  391. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/img/office/chart-more-rows.png +0 -0
  392. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/img/office/create-project.png +0 -0
  393. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/img/office/elsevier-research-data-guidelines.png +0 -0
  394. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/img/office/excel-chart.png +0 -0
  395. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/img/office/excel-data.png +0 -0
  396. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/img/office/insert-link-to-file.png +0 -0
  397. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/img/office/needs-clone.png +0 -0
  398. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/img/office/new-stage.png +0 -0
  399. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/img/office/phd-comics-version-control.webp +0 -0
  400. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/img/office/pipeline-out-of-date.png +0 -0
  401. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/img/office/status-more-rows.png +0 -0
  402. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/img/office/uncommitted-changes.png +0 -0
  403. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/img/office/untracked-data.png +0 -0
  404. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/img/office/updated-publication.png +0 -0
  405. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/img/office/word-to-pdf-stage-2.png +0 -0
  406. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/img/office/workflow-page.png +0 -0
  407. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/img/openfoam/clone.png +0 -0
  408. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/img/openfoam/create-project.png +0 -0
  409. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/img/openfoam/datasets-page.png +0 -0
  410. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/img/openfoam/figure-on-website-updated.png +0 -0
  411. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/img/openfoam/figure-on-website.png +0 -0
  412. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/img/openfoam/new-token.png +0 -0
  413. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/img/openfoam/reclone.png +0 -0
  414. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/img/openfoam/status-after-import-dataset.png +0 -0
  415. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/img/quick-actions.png +0 -0
  416. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/img/run-proc.png +0 -0
  417. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/img/vscode-slurm-notebook/create-calkit-env.png +0 -0
  418. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/img/vscode-slurm-notebook/create-inner-env.png +0 -0
  419. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/img/vscode-slurm-notebook/create-new-calkit-env.png +0 -0
  420. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/img/vscode-slurm-notebook/select-calkit-env.png +0 -0
  421. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/img/vscode-slurm-notebook/slurm-job-running.png +0 -0
  422. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/img/vscode-slurm-notebook/slurm-launch-options.png +0 -0
  423. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/img/vscode-slurm-notebook/starting-slurm-job.png +0 -0
  424. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/index.md +0 -0
  425. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/jupyterlab.md +0 -0
  426. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/latex-codespaces.md +0 -0
  427. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/latex-word.md +0 -0
  428. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/matlab.md +0 -0
  429. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/notebook-pipeline.md +0 -0
  430. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/office.md +0 -0
  431. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/openfoam.md +0 -0
  432. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/procedures.md +0 -0
  433. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/runnable-readme.md +0 -0
  434. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/vscode-slurm-notebook.md +0 -0
  435. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/tutorials/writing-first.md +0 -0
  436. {calkit_python-0.47.5 → calkit_python-0.47.7}/docs/version-control.md +0 -0
  437. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/latex-word/.calkit/env-locks/py/osx-arm64.txt +0 -0
  438. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/latex-word/.calkit/env-locks/py/win-64.txt +0 -0
  439. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/latex-word/.calkit/env-locks/tex/amd64.json +0 -0
  440. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/latex-word/.calkit/env-locks/tex/arm64.json +0 -0
  441. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/latex-word/.dvc/.gitignore +0 -0
  442. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/latex-word/.dvc/config +0 -0
  443. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/latex-word/.dvcignore +0 -0
  444. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/latex-word/.gitattributes +0 -0
  445. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/latex-word/.gitignore +0 -0
  446. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/latex-word/README.md +0 -0
  447. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/latex-word/calkit.yaml +0 -0
  448. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/latex-word/dvc.lock +0 -0
  449. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/latex-word/dvc.yaml +0 -0
  450. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/latex-word/figures/.gitignore +0 -0
  451. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/latex-word/paper/.gitignore +0 -0
  452. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/latex-word/paper/figures/.gitignore +0 -0
  453. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/latex-word/paper/main.tex +0 -0
  454. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/latex-word/paper/methods.tex +0 -0
  455. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/latex-word/paper/refs.bib +0 -0
  456. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/latex-word/requirements.txt +0 -0
  457. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/latex-word/scripts/plot-wake.py +0 -0
  458. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/markdown/.calkit/envs/jl/Manifest.toml +0 -0
  459. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/markdown/.calkit/envs/jl/Project.toml +0 -0
  460. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/markdown/.calkit/envs/py/.python-version +0 -0
  461. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/markdown/.calkit/envs/py/pyproject.toml +0 -0
  462. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/markdown/.calkit/envs/py/uv.lock +0 -0
  463. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/markdown/.calkit/envs/r/.Rbuildignore +0 -0
  464. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/markdown/.calkit/envs/r/.Rprofile +0 -0
  465. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/markdown/.calkit/envs/r/DESCRIPTION +0 -0
  466. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/markdown/.calkit/envs/r/renv/.gitignore +0 -0
  467. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/markdown/.calkit/envs/r/renv/activate.R +0 -0
  468. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/markdown/.calkit/envs/r/renv/settings.json +0 -0
  469. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/markdown/.calkit/envs/r/renv.lock +0 -0
  470. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/markdown/.dvc/.gitignore +0 -0
  471. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/markdown/.dvc/config +0 -0
  472. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/markdown/.dvcignore +0 -0
  473. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/markdown/.gitignore +0 -0
  474. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/markdown/README.md +0 -0
  475. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/markdown/calkit.yaml +0 -0
  476. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/markdown/data/data.csv +0 -0
  477. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/markdown/data/data2.csv +0 -0
  478. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/markdown/dvc.lock +0 -0
  479. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/markdown/dvc.yaml +0 -0
  480. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/markdown/figures/data2.png +0 -0
  481. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/markdown/figures/figure.png +0 -0
  482. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/markdown/results/fit.json +0 -0
  483. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/markdown-python/.dvc/.gitignore +0 -0
  484. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/markdown-python/.dvc/config +0 -0
  485. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/markdown-python/.dvcignore +0 -0
  486. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/markdown-python/.gitignore +0 -0
  487. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/markdown-python/.python-version +0 -0
  488. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/markdown-python/README.md +0 -0
  489. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/markdown-python/calkit.yaml +0 -0
  490. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/markdown-python/dvc.lock +0 -0
  491. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/markdown-python/dvc.yaml +0 -0
  492. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/markdown-python/figures/waves.png +0 -0
  493. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/markdown-python/pyproject.toml +0 -0
  494. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/markdown-python/src/wavetools/__init__.py +0 -0
  495. {calkit_python-0.47.5 → calkit_python-0.47.7}/examples/markdown-python/uv.lock +0 -0
  496. {calkit_python-0.47.5 → calkit_python-0.47.7}/flake.lock +0 -0
  497. {calkit_python-0.47.5 → calkit_python-0.47.7}/flake.nix +0 -0
  498. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/.env.example +0 -0
  499. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/.gitattributes +0 -0
  500. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/.gitignore +0 -0
  501. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/.vscode/launch.json +0 -0
  502. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/LICENSE +0 -0
  503. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/Makefile +0 -0
  504. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/README.md +0 -0
  505. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/.gitignore +0 -0
  506. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/.python-version +0 -0
  507. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/Dockerfile +0 -0
  508. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/Makefile +0 -0
  509. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/README.md +0 -0
  510. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/alembic.ini +0 -0
  511. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/__init__.py +0 -0
  512. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/README +0 -0
  513. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/env.py +0 -0
  514. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/script.py.mako +0 -0
  515. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/versions/.keep +0 -0
  516. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/versions/07c8236476c4_add_fields_to_usertoken.py +0 -0
  517. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/versions/10a05eaedfbd_add_dataset_table.py +0 -0
  518. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/versions/1546aa334cd5_make_project_description_nullable.py +0 -0
  519. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/versions/1a31ce608336_add_cascade_delete_relationships.py +0 -0
  520. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/versions/1fb6e38eb0e9_add_deviceauth_table.py +0 -0
  521. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/versions/208e7457f3ba_add_title_to_project.py +0 -0
  522. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/versions/2e7c25a00842_add_is_public_to_project.py +0 -0
  523. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/versions/38e178698db2_update_subscription_model_to_use_plan_.py +0 -0
  524. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/versions/3b1e67e9c318_add_usertoken_table.py +0 -0
  525. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/versions/4dac15c0282a_add_stripe_customer_id_to_user.py +0 -0
  526. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/versions/4e1c917fcca4_add_status_columns_to_project_table.py +0 -0
  527. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/versions/5ba89308431f_add_project_table.py +0 -0
  528. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/versions/5d6f8217c890_add_subscriber_user_id_to_org_.py +0 -0
  529. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/versions/65b2d15cc702_add_github_username_field_to_user.py +0 -0
  530. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/versions/697c3c1a8a27_add_git_repo_url_to_project.py +0 -0
  531. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/versions/6f3a3afbea8b_add_number_field_to_question.py +0 -0
  532. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/versions/7076d9b5c887_use_account_for_project_owner.py +0 -0
  533. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/versions/71e1d1e69bbd_add_table_for_storing_user_github_tokens.py +0 -0
  534. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/versions/799476973bce_add_created_ts_to_user_github_token_.py +0 -0
  535. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/versions/7cacee34034c_add_parent_child_relationship_to_.py +0 -0
  536. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/versions/97762605447f_add_onboarding_flags_and_feedback.py +0 -0
  537. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/versions/9c0a54914c78_add_max_length_for_string_varchar_.py +0 -0
  538. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/versions/9c4f70636d73_add_fields_to_usertoken.py +0 -0
  539. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/versions/a333fc5aa994_index_project_folders_synced_with_.py +0 -0
  540. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/versions/a4af19842927_create_table_to_store_user_zenodo_tokens.py +0 -0
  541. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/versions/ab7816be480b_drop_items.py +0 -0
  542. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/versions/ac622559475f_save_timestamps_for_github_token_.py +0 -0
  543. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/versions/af024967630d_lowercase_account_names.py +0 -0
  544. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/versions/c1f9a3e27d48_consolidate_comment_tables.py +0 -0
  545. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/versions/c46a78ba506c_add_created_column_to_account.py +0 -0
  546. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/versions/c4e1d7a92b35_add_analytics_consent_to_user.py +0 -0
  547. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/versions/c749b39072d3_add_figurecomment.py +0 -0
  548. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/versions/c7c41c3f0d22_add_user_external_credential_table.py +0 -0
  549. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/versions/d01ce914143d_make_question_a_table.py +0 -0
  550. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/versions/d21ed1c9537e_add_zenodo_user_id_column_to_user.py +0 -0
  551. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/versions/d3a8021fb433_add_table_for_user_project_access.py +0 -0
  552. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/versions/d4e5f6a7b8c9_ghless_membership_and_invitations.py +0 -0
  553. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/versions/d6366015af35_add_discount_code_table.py +0 -0
  554. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/versions/d98dd8ec85a3_edit_replace_id_integers_in_all_models_.py +0 -0
  555. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/versions/dcef842dee10_add_refreshtoken_table.py +0 -0
  556. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/versions/e1b0fa2a6d34_backfill_external_credentials_from_legacy_.py +0 -0
  557. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/versions/e2412789c190_initialize_models.py +0 -0
  558. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/versions/e7671197c00b_add_account_table.py +0 -0
  559. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/versions/ed74edb0a9e6_create_table_for_user_overleaf_token.py +0 -0
  560. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/versions/edcabfca98df_add_subscription_and_org_membership_.py +0 -0
  561. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/versions/f0e23e048b1b_add_fields_to_project.py +0 -0
  562. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/versions/f3a9c1b7e240_add_releases_feature.py +0 -0
  563. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/versions/f5ad6445ad03_enable_user_project_access_to_be_null.py +0 -0
  564. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/alembic/versions/f74a96172dbd_add_table_for_locking_project_files.py +0 -0
  565. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/api/__init__.py +0 -0
  566. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/api/deps.py +0 -0
  567. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/api/main.py +0 -0
  568. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/api/routes/__init__.py +0 -0
  569. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/api/routes/accounts.py +0 -0
  570. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/api/routes/datasets.py +0 -0
  571. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/api/routes/feedback.py +0 -0
  572. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/api/routes/login.py +0 -0
  573. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/api/routes/misc.py +0 -0
  574. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/api/routes/orgs.py +0 -0
  575. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/api/routes/projects/__init__.py +0 -0
  576. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/api/routes/projects/activity.py +0 -0
  577. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/api/routes/projects/datasets.py +0 -0
  578. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/api/routes/projects/dvc.py +0 -0
  579. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/api/routes/projects/figures.py +0 -0
  580. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/api/routes/projects/fs.py +0 -0
  581. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/api/routes/projects/pipeline.py +0 -0
  582. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/api/routes/projects/releases.py +0 -0
  583. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/api/routes/references.py +0 -0
  584. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/api/routes/users.py +0 -0
  585. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/arxiv.py +0 -0
  586. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/cache.py +0 -0
  587. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/client.py +0 -0
  588. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/config.py +0 -0
  589. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/core.py +0 -0
  590. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/db.py +0 -0
  591. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/dvc.py +0 -0
  592. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/email-templates/build/new_account.html +0 -0
  593. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/email-templates/build/project_invitation.html +0 -0
  594. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/email-templates/build/release_share.html +0 -0
  595. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/email-templates/build/reset_password.html +0 -0
  596. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/email-templates/build/test_email.html +0 -0
  597. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/email-templates/build/verify_email.html +0 -0
  598. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/email-templates/src/new_account.mjml +0 -0
  599. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/email-templates/src/project_invitation.mjml +0 -0
  600. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/email-templates/src/release_share.mjml +0 -0
  601. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/email-templates/src/reset_password.mjml +0 -0
  602. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/email-templates/src/test_email.mjml +0 -0
  603. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/email-templates/src/verify_email.mjml +0 -0
  604. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/formatting.py +0 -0
  605. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/github.py +0 -0
  606. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/imports.py +0 -0
  607. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/index.py +0 -0
  608. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/main.py +0 -0
  609. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/messaging.py +0 -0
  610. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/mixpanel.py +0 -0
  611. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/models/__init__.py +0 -0
  612. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/models/projects.py +0 -0
  613. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/models/releases.py +0 -0
  614. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/orgs.py +0 -0
  615. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/pdftext.py +0 -0
  616. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/pipeline.py +0 -0
  617. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/projects.py +0 -0
  618. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/security.py +0 -0
  619. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/storage.py +0 -0
  620. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/stripe.py +0 -0
  621. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/subscriptions.py +0 -0
  622. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/tasks.py +0 -0
  623. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/tests/__init__.py +0 -0
  624. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/tests/api/__init__.py +0 -0
  625. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/tests/api/routes/__init__.py +0 -0
  626. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/tests/api/routes/projects/__init__.py +0 -0
  627. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/tests/api/routes/projects/test_activity.py +0 -0
  628. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/tests/api/routes/projects/test_datasets.py +0 -0
  629. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/tests/api/routes/projects/test_dvc.py +0 -0
  630. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/tests/api/routes/projects/test_figure_upload.py +0 -0
  631. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/tests/api/routes/projects/test_figures.py +0 -0
  632. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/tests/api/routes/projects/test_fs.py +0 -0
  633. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/tests/api/routes/projects/test_misc.py +0 -0
  634. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/tests/api/routes/projects/test_overleaf_links.py +0 -0
  635. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/tests/api/routes/projects/test_pipeline.py +0 -0
  636. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/tests/api/routes/projects/test_publications.py +0 -0
  637. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/tests/api/routes/projects/test_reference_items.py +0 -0
  638. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/tests/api/routes/projects/test_templates.py +0 -0
  639. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/tests/api/routes/test_feedback.py +0 -0
  640. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/tests/api/routes/test_login.py +0 -0
  641. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/tests/api/routes/test_misc.py +0 -0
  642. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/tests/api/routes/test_releases.py +0 -0
  643. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/tests/api/routes/test_users.py +0 -0
  644. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/tests/conftest.py +0 -0
  645. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/tests/test_arxiv.py +0 -0
  646. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/tests/test_cache.py +0 -0
  647. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/tests/test_client.py +0 -0
  648. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/tests/test_core.py +0 -0
  649. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/tests/test_db.py +0 -0
  650. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/tests/test_dvc.py +0 -0
  651. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/tests/test_formatting.py +0 -0
  652. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/tests/test_index.py +0 -0
  653. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/tests/test_mixpanel.py +0 -0
  654. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/tests/test_pdftext.py +0 -0
  655. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/tests/test_pipeline.py +0 -0
  656. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/tests/test_projects.py +0 -0
  657. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/tests/test_tasks.py +0 -0
  658. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/tests/test_users.py +0 -0
  659. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/tests/test_version.py +0 -0
  660. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/thumbnails.py +0 -0
  661. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/users.py +0 -0
  662. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/version.py +0 -0
  663. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/warm.py +0 -0
  664. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/zenodo.py +0 -0
  665. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/app/zotero.py +0 -0
  666. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/prestart.sh +0 -0
  667. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/pyproject.toml +0 -0
  668. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/scripts/backend-pre-start.py +0 -0
  669. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/scripts/create-initial-data.py +0 -0
  670. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/scripts/delete-user.py +0 -0
  671. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/scripts/format.sh +0 -0
  672. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/scripts/generate-client.py +0 -0
  673. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/scripts/lint.sh +0 -0
  674. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/scripts/rotate-fernet-secrets.py +0 -0
  675. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/scripts/test.sh +0 -0
  676. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/backend/tests-start.sh +0 -0
  677. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/config/alloy/config.alloy +0 -0
  678. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/config/grafana/provisioning/dashboards/dashboards.yml +0 -0
  679. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/config/grafana/provisioning/dashboards/fastapi.json +0 -0
  680. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/config/grafana/provisioning/dashboards/warm-queue.json +0 -0
  681. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/config/grafana/provisioning/datasources/datasources.yml +0 -0
  682. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/config/loki/loki.yml +0 -0
  683. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/config/prometheus/prometheus.yml +0 -0
  684. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/docker-compose.override.yml +0 -0
  685. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/docker-compose.traefik.yml +0 -0
  686. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/docs/dev/database-migrations.md +0 -0
  687. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/docs/dev/deployment.md +0 -0
  688. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/docs/dev/development.md +0 -0
  689. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/.dockerignore +0 -0
  690. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/.gitignore +0 -0
  691. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/.nvmrc +0 -0
  692. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/Dockerfile +0 -0
  693. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/Makefile +0 -0
  694. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/README.md +0 -0
  695. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/biome.json +0 -0
  696. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/index.html +0 -0
  697. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/modify-openapi-operationids.js +0 -0
  698. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/nginx-backend-not-found.conf +0 -0
  699. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/nginx.conf +0 -0
  700. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/openapi-ts.config.ts +0 -0
  701. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/package-lock.json +0 -0
  702. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/package.json +0 -0
  703. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/playwright.config.ts +0 -0
  704. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/public/assets/images/c-to-the-k.svg +0 -0
  705. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/public/assets/images/calkit-no-bg.svg +0 -0
  706. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/public/assets/images/calkit.svg +0 -0
  707. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/public/assets/images/fastapi-logo.svg +0 -0
  708. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/public/assets/images/favicon.png +0 -0
  709. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/public/assets/images/kdot.svg +0 -0
  710. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/public/tex/.gitignore +0 -0
  711. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/public/tex/LICENSE-busytex +0 -0
  712. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/public/tex/busytex.js +0 -0
  713. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/public/tex/busytex.wasm +0 -0
  714. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/public/tex/busytex_pipeline.js +0 -0
  715. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/public/tex/busytex_worker.js +0 -0
  716. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/scripts/download-tex-engine.sh +0 -0
  717. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/client/client/client.gen.ts +0 -0
  718. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/client/client/index.ts +0 -0
  719. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/client/client/types.gen.ts +0 -0
  720. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/client/client/utils.gen.ts +0 -0
  721. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/client/client.gen.ts +0 -0
  722. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/client/core/auth.gen.ts +0 -0
  723. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/client/core/bodySerializer.gen.ts +0 -0
  724. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/client/core/params.gen.ts +0 -0
  725. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/client/core/pathSerializer.gen.ts +0 -0
  726. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/client/core/queryKeySerializer.gen.ts +0 -0
  727. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/client/core/serverSentEvents.gen.ts +0 -0
  728. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/client/core/types.gen.ts +0 -0
  729. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/client/core/utils.gen.ts +0 -0
  730. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Admin/AddUser.tsx +0 -0
  731. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Admin/EditUser.tsx +0 -0
  732. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Admin/FeatureVotesTable.tsx +0 -0
  733. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Admin/FeedbackTable.tsx +0 -0
  734. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Common/ActionsMenu.tsx +0 -0
  735. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Common/ClearableInput.tsx +0 -0
  736. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Common/CodeEditorPane.tsx +0 -0
  737. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Common/CommentsPanel.tsx +0 -0
  738. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Common/ConnectGitHubPrompt.tsx +0 -0
  739. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Common/ConnectZoteroPrompt.tsx +0 -0
  740. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Common/DiscardChangesDialog.tsx +0 -0
  741. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Common/FeatureVoteButton.tsx +0 -0
  742. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Common/FilterableSelect.tsx +0 -0
  743. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Common/GlobalSearch.tsx +0 -0
  744. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Common/HelpFeedback.tsx +0 -0
  745. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Common/InputsRow.tsx +0 -0
  746. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Common/LoadingSpinner.tsx +0 -0
  747. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Common/Markdown.test.tsx +0 -0
  748. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Common/Markdown.tsx +0 -0
  749. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Common/Mermaid.tsx +0 -0
  750. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Common/Navbar.tsx +0 -0
  751. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Common/NoArtifactFound.tsx +0 -0
  752. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Common/NotBuiltAlert.tsx +0 -0
  753. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Common/NotFound.tsx +0 -0
  754. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Common/NotificationBell.tsx +0 -0
  755. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Common/OAuthButtons.tsx +0 -0
  756. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Common/PageMenu.tsx +0 -0
  757. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Common/PdfCanvas.tsx +0 -0
  758. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Common/PdfDocumentViewer.tsx +0 -0
  759. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Common/ProjectCommandPalette.tsx +0 -0
  760. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Common/RefPicker.tsx +0 -0
  761. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Common/Sidebar.tsx +0 -0
  762. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Common/TexText.test.tsx +0 -0
  763. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Common/TexText.tsx +0 -0
  764. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Common/Tooltip.tsx +0 -0
  765. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Common/Topbar.tsx +0 -0
  766. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Common/UserMenu.tsx +0 -0
  767. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Datasets/BrowseDatasets.tsx +0 -0
  768. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Datasets/DataEntryGrid.tsx +0 -0
  769. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Datasets/DatasetViewer.tsx +0 -0
  770. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Datasets/NewDataset.tsx +0 -0
  771. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Environments/NewEnvironment.tsx +0 -0
  772. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Environments/ViewEnvironment.tsx +0 -0
  773. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Figures/FigureEditLauncher.tsx +0 -0
  774. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Figures/FigureEditor.tsx +0 -0
  775. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Figures/FigureFromExisting.tsx +0 -0
  776. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Figures/UploadFigure.tsx +0 -0
  777. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Files/EditFileInfo.tsx +0 -0
  778. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Files/FileContent.tsx +0 -0
  779. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Files/FileEditorModal.tsx +0 -0
  780. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Files/SelectedItemInfo.tsx +0 -0
  781. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Files/UploadFile.tsx +0 -0
  782. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Local/AddPath.tsx +0 -0
  783. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Local/DiscardChanges.tsx +0 -0
  784. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Local/IgnorePath.tsx +0 -0
  785. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Local/NewStage.tsx +0 -0
  786. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Local/SaveFiles.tsx +0 -0
  787. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Notebooks/NotebookRunLauncher.tsx +0 -0
  788. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Notebooks/NotebookRunner.tsx +0 -0
  789. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Onboarding/AccountSetupCard.tsx +0 -0
  790. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Onboarding/ChecklistCard.tsx +0 -0
  791. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Onboarding/CommandBlock.tsx +0 -0
  792. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Onboarding/FeaturedProjects.tsx +0 -0
  793. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Onboarding/ProjectChecklist.tsx +0 -0
  794. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Onboarding/ReproAudit.test.ts +0 -0
  795. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Onboarding/ReproAudit.tsx +0 -0
  796. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Onboarding/StartPaths.tsx +0 -0
  797. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Orgs/AddMember.tsx +0 -0
  798. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Orgs/NewOrg.tsx +0 -0
  799. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Pipeline/PipelineEditorModal.tsx +0 -0
  800. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Pipeline/StageEditorModal.tsx +0 -0
  801. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Projects/AddCollaborator.tsx +0 -0
  802. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Projects/CloneProject.tsx +0 -0
  803. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Projects/CreateIssue.tsx +0 -0
  804. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Projects/CreateQuestion.tsx +0 -0
  805. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Projects/EditProject.tsx +0 -0
  806. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Projects/HelpContent.tsx +0 -0
  807. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Projects/InviteLinks.tsx +0 -0
  808. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Projects/MakeProjectPublic.tsx +0 -0
  809. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Projects/NewProjectModal.tsx +0 -0
  810. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Projects/ProjectShowcase.tsx +0 -0
  811. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Projects/ProjectStatus.tsx +0 -0
  812. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Projects/RecentChanges.test.ts +0 -0
  813. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Projects/RecentChanges.tsx +0 -0
  814. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Publications/ImportOverleaf.test.ts +0 -0
  815. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Publications/ImportOverleaf.tsx +0 -0
  816. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Publications/LatexEditor.tsx +0 -0
  817. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Publications/NewPublication.tsx +0 -0
  818. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Publications/PdfAnnotator.tsx +0 -0
  819. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Publications/PublicationComponents.test.ts +0 -0
  820. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Publications/PublicationComponents.tsx +0 -0
  821. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/References/DeleteReferenceItemDialog.tsx +0 -0
  822. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/References/DeleteReferencesCollectionDialog.tsx +0 -0
  823. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/References/EditReferenceItemModal.tsx +0 -0
  824. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/References/ImportFromZoteroModal.tsx +0 -0
  825. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/References/LabelExistingReferences.tsx +0 -0
  826. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/References/NewReferencesCollection.tsx +0 -0
  827. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/References/ReferenceItemModal.tsx +0 -0
  828. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/References/ReferencesInfoPanel.tsx +0 -0
  829. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Releases/ArtifactReleasesPanel.tsx +0 -0
  830. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Releases/NewRelease.tsx +0 -0
  831. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Releases/PathPicker.tsx +0 -0
  832. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Releases/ReleasePdfAnnotator.tsx +0 -0
  833. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Releases/ReleasesTable.tsx +0 -0
  834. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Releases/ShareDialog.tsx +0 -0
  835. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Releases/releaseSort.ts +0 -0
  836. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Tables/TableThumbnail.tsx +0 -0
  837. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Tables/TableView.test.tsx +0 -0
  838. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/Tables/TableView.tsx +0 -0
  839. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/UserSettings/Appearance.tsx +0 -0
  840. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/UserSettings/ChangePassword.tsx +0 -0
  841. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/UserSettings/ConnectedAccounts.tsx +0 -0
  842. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/UserSettings/DeleteAccount.tsx +0 -0
  843. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/UserSettings/DeleteConfirmation.tsx +0 -0
  844. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/UserSettings/NewToken.tsx +0 -0
  845. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/UserSettings/OnboardingChecklists.tsx +0 -0
  846. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/UserSettings/PickSubscription.tsx +0 -0
  847. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/UserSettings/Privacy.tsx +0 -0
  848. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/UserSettings/Subscription.tsx +0 -0
  849. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/UserSettings/UpdateOverleafToken.tsx +0 -0
  850. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/UserSettings/UserInformation.tsx +0 -0
  851. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/components/UserSettings/UserTokens.tsx +0 -0
  852. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/hooks/useAuth.ts +0 -0
  853. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/hooks/useCustomToast.ts +0 -0
  854. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/hooks/useOnboarding.ts +0 -0
  855. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/hooks/useProject.ts +0 -0
  856. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/hooks/useSubmitOnCmdEnter.test.ts +0 -0
  857. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/hooks/useSubmitOnCmdEnter.ts +0 -0
  858. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/lib/analytics.test.ts +0 -0
  859. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/lib/analytics.ts +0 -0
  860. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/lib/api.test.ts +0 -0
  861. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/lib/api.ts +0 -0
  862. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/lib/auth.test.ts +0 -0
  863. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/lib/auth.ts +0 -0
  864. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/lib/bibtex.test.ts +0 -0
  865. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/lib/bibtex.ts +0 -0
  866. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/lib/core.ts +0 -0
  867. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/lib/csv.test.ts +0 -0
  868. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/lib/csv.ts +0 -0
  869. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/lib/environments.test.ts +0 -0
  870. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/lib/environments.ts +0 -0
  871. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/lib/errors.ts +0 -0
  872. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/lib/figureScript.test.ts +0 -0
  873. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/lib/figureScript.ts +0 -0
  874. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/lib/fuzzy.test.ts +0 -0
  875. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/lib/fuzzy.ts +0 -0
  876. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/lib/github.test.ts +0 -0
  877. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/lib/github.ts +0 -0
  878. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/lib/google.ts +0 -0
  879. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/lib/keyboard.ts +0 -0
  880. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/lib/latexCompiler.ts +0 -0
  881. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/lib/latexProject.mapPaths.test.ts +0 -0
  882. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/lib/latexProject.test.ts +0 -0
  883. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/lib/latexProject.ts +0 -0
  884. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/lib/layout.ts +0 -0
  885. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/lib/notebook.test.ts +0 -0
  886. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/lib/notebook.ts +0 -0
  887. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/lib/onboarding.test.ts +0 -0
  888. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/lib/onboarding.ts +0 -0
  889. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/lib/pipelineYaml.test.ts +0 -0
  890. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/lib/pipelineYaml.ts +0 -0
  891. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/lib/projectFiles.ts +0 -0
  892. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/lib/provenance.test.ts +0 -0
  893. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/lib/provenance.ts +0 -0
  894. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/lib/pyodide.test.ts +0 -0
  895. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/lib/pyodide.ts +0 -0
  896. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/lib/releases.ts +0 -0
  897. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/lib/staleChunks.test.ts +0 -0
  898. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/lib/staleChunks.ts +0 -0
  899. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/lib/strings.test.ts +0 -0
  900. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/lib/tables.test.ts +0 -0
  901. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/lib/tables.ts +0 -0
  902. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/lib/tex.test.ts +0 -0
  903. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/lib/tex.ts +0 -0
  904. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/lib/zenodo.ts +0 -0
  905. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/lib/zotero.ts +0 -0
  906. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/main.tsx +0 -0
  907. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/routeTree.gen.ts +0 -0
  908. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/routes/__root.tsx +0 -0
  909. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/app.tsx +0 -0
  910. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/apps/$appName.tsx +0 -0
  911. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/apps/index.tsx +0 -0
  912. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/apps.tsx +0 -0
  913. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/collaborators.tsx +0 -0
  914. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/datasets.tsx +0 -0
  915. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/environments.tsx +0 -0
  916. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/figures.tsx +0 -0
  917. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/history.tsx +0 -0
  918. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/index.tsx +0 -0
  919. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/local.tsx +0 -0
  920. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/notebooks.tsx +0 -0
  921. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/pipeline.tsx +0 -0
  922. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/presentations.tsx +0 -0
  923. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/publications.tsx +0 -0
  924. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/references.tsx +0 -0
  925. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/releases.tsx +0 -0
  926. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/software.tsx +0 -0
  927. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/tables.tsx +0 -0
  928. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/routes/_layout/$accountName/$projectName/releases/$releaseName.tsx +0 -0
  929. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/routes/_layout/$accountName/index.tsx +0 -0
  930. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/routes/_layout/admin.tsx +0 -0
  931. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/routes/_layout/datasets.tsx +0 -0
  932. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/routes/_layout/index.tsx +0 -0
  933. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/routes/_layout/new.tsx +0 -0
  934. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/routes/_layout/orgs.tsx +0 -0
  935. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/routes/_layout/projects.tsx +0 -0
  936. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/routes/_layout/settings.tsx +0 -0
  937. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/routes/_layout.tsx +0 -0
  938. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/routes/auth/google.tsx +0 -0
  939. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/routes/auth/zenodo.tsx +0 -0
  940. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/routes/auth/zotero.tsx +0 -0
  941. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/routes/checkout.tsx +0 -0
  942. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/routes/join/$token.tsx +0 -0
  943. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/routes/login/device.tsx +0 -0
  944. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/routes/login/index.tsx +0 -0
  945. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/routes/recover-password.tsx +0 -0
  946. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/routes/reset-password.tsx +0 -0
  947. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/routes/signup.tsx +0 -0
  948. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/routes/verify-email.tsx +0 -0
  949. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/theme.tsx +0 -0
  950. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/src/vite-env.d.ts +0 -0
  951. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/tests/auth.setup.ts +0 -0
  952. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/tests/config.ts +0 -0
  953. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/tests/figures-pagination.spec.ts +0 -0
  954. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/tests/login.spec.ts +0 -0
  955. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/tests/reset-password.spec.ts +0 -0
  956. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/tests/user-settings.spec.ts +0 -0
  957. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/tests/utils/mailcatcher.ts +0 -0
  958. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/tests/utils/random.ts +0 -0
  959. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/tests/utils/user.ts +0 -0
  960. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/tsconfig.json +0 -0
  961. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/tsconfig.node.json +0 -0
  962. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/vite.config.ts +0 -0
  963. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/frontend/vitest.config.ts +0 -0
  964. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/scripts/build-push.sh +0 -0
  965. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/scripts/build.sh +0 -0
  966. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/scripts/deploy.sh +0 -0
  967. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/scripts/pem-to-env.sh +0 -0
  968. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/scripts/test-local.sh +0 -0
  969. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/scripts/test.sh +0 -0
  970. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/texmf-proxy/Dockerfile +0 -0
  971. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/texmf-proxy/README.md +0 -0
  972. {calkit_python-0.47.5 → calkit_python-0.47.7}/hub/texmf-proxy/proxy.py +0 -0
  973. {calkit_python-0.47.5 → calkit_python-0.47.7}/jupyterlab-ext/.yarnrc.yml +0 -0
  974. {calkit_python-0.47.5 → calkit_python-0.47.7}/jupyterlab-ext/babel.config.js +0 -0
  975. {calkit_python-0.47.5 → calkit_python-0.47.7}/jupyterlab-ext/install.json +0 -0
  976. {calkit_python-0.47.5 → calkit_python-0.47.7}/jupyterlab-ext/jest.config.js +0 -0
  977. {calkit_python-0.47.5 → calkit_python-0.47.7}/jupyterlab-ext/jupyter-config/server-config/calkit.json +0 -0
  978. {calkit_python-0.47.5 → calkit_python-0.47.7}/jupyterlab-ext/package.json +0 -0
  979. {calkit_python-0.47.5 → calkit_python-0.47.7}/jupyterlab-ext/schema/plugin.json +0 -0
  980. {calkit_python-0.47.5 → calkit_python-0.47.7}/jupyterlab-ext/src/__tests__/useQueries.spec.ts +0 -0
  981. {calkit_python-0.47.5 → calkit_python-0.47.7}/jupyterlab-ext/src/calkit-config.ts +0 -0
  982. {calkit_python-0.47.5 → calkit_python-0.47.7}/jupyterlab-ext/src/cell-output-marker.ts +0 -0
  983. {calkit_python-0.47.5 → calkit_python-0.47.7}/jupyterlab-ext/src/components/commit-dialog.tsx +0 -0
  984. {calkit_python-0.47.5 → calkit_python-0.47.7}/jupyterlab-ext/src/components/environment-editor.tsx +0 -0
  985. {calkit_python-0.47.5 → calkit_python-0.47.7}/jupyterlab-ext/src/components/notebook-registration.tsx +0 -0
  986. {calkit_python-0.47.5 → calkit_python-0.47.7}/jupyterlab-ext/src/components/notebook-toolbar.tsx +0 -0
  987. {calkit_python-0.47.5 → calkit_python-0.47.7}/jupyterlab-ext/src/components/pipeline-status-bar.tsx +0 -0
  988. {calkit_python-0.47.5 → calkit_python-0.47.7}/jupyterlab-ext/src/components/project-info-editor.tsx +0 -0
  989. {calkit_python-0.47.5 → calkit_python-0.47.7}/jupyterlab-ext/src/components/sidebar-settings.tsx +0 -0
  990. {calkit_python-0.47.5 → calkit_python-0.47.7}/jupyterlab-ext/src/components/sidebar.tsx +0 -0
  991. {calkit_python-0.47.5 → calkit_python-0.47.7}/jupyterlab-ext/src/components/stage-editor.tsx +0 -0
  992. {calkit_python-0.47.5 → calkit_python-0.47.7}/jupyterlab-ext/src/feature-flags.ts +0 -0
  993. {calkit_python-0.47.5 → calkit_python-0.47.7}/jupyterlab-ext/src/file-browser-menu.ts +0 -0
  994. {calkit_python-0.47.5 → calkit_python-0.47.7}/jupyterlab-ext/src/hooks/__tests__/useQueries.test.tsx +0 -0
  995. {calkit_python-0.47.5 → calkit_python-0.47.7}/jupyterlab-ext/src/hooks/useQueries.ts +0 -0
  996. {calkit_python-0.47.5 → calkit_python-0.47.7}/jupyterlab-ext/src/icons.ts +0 -0
  997. {calkit_python-0.47.5 → calkit_python-0.47.7}/jupyterlab-ext/src/index.ts +0 -0
  998. {calkit_python-0.47.5 → calkit_python-0.47.7}/jupyterlab-ext/src/io-tracker.ts +0 -0
  999. {calkit_python-0.47.5 → calkit_python-0.47.7}/jupyterlab-ext/src/pipeline-state.ts +0 -0
  1000. {calkit_python-0.47.5 → calkit_python-0.47.7}/jupyterlab-ext/src/queryClient.ts +0 -0
  1001. {calkit_python-0.47.5 → calkit_python-0.47.7}/jupyterlab-ext/src/request.ts +0 -0
  1002. {calkit_python-0.47.5 → calkit_python-0.47.7}/jupyterlab-ext/src/shims-mainmenu.d.ts +0 -0
  1003. {calkit_python-0.47.5 → calkit_python-0.47.7}/jupyterlab-ext/style/base.css +0 -0
  1004. {calkit_python-0.47.5 → calkit_python-0.47.7}/jupyterlab-ext/style/cell-output-marker.css +0 -0
  1005. {calkit_python-0.47.5 → calkit_python-0.47.7}/jupyterlab-ext/style/environment-editor.css +0 -0
  1006. {calkit_python-0.47.5 → calkit_python-0.47.7}/jupyterlab-ext/style/environment-selector.css +0 -0
  1007. {calkit_python-0.47.5 → calkit_python-0.47.7}/jupyterlab-ext/style/img/calkit-no-bg.png +0 -0
  1008. {calkit_python-0.47.5 → calkit_python-0.47.7}/jupyterlab-ext/style/index.css +0 -0
  1009. {calkit_python-0.47.5 → calkit_python-0.47.7}/jupyterlab-ext/style/index.js +0 -0
  1010. {calkit_python-0.47.5 → calkit_python-0.47.7}/jupyterlab-ext/style/notebook-toolbar.css +0 -0
  1011. {calkit_python-0.47.5 → calkit_python-0.47.7}/jupyterlab-ext/style/pipeline-status-bar.css +0 -0
  1012. {calkit_python-0.47.5 → calkit_python-0.47.7}/jupyterlab-ext/style/sidebar.css +0 -0
  1013. {calkit_python-0.47.5 → calkit_python-0.47.7}/jupyterlab-ext/tsconfig.json +0 -0
  1014. {calkit_python-0.47.5 → calkit_python-0.47.7}/jupyterlab-ext/tsconfig.test.json +0 -0
  1015. {calkit_python-0.47.5 → calkit_python-0.47.7}/jupyterlab-ext/ui-tests/.gitignore +0 -0
  1016. {calkit_python-0.47.5 → calkit_python-0.47.7}/jupyterlab-ext/ui-tests/README.md +0 -0
  1017. {calkit_python-0.47.5 → calkit_python-0.47.7}/jupyterlab-ext/ui-tests/jupyter_server_test_config.py +0 -0
  1018. {calkit_python-0.47.5 → calkit_python-0.47.7}/jupyterlab-ext/ui-tests/package.json +0 -0
  1019. {calkit_python-0.47.5 → calkit_python-0.47.7}/jupyterlab-ext/ui-tests/playwright.config.js +0 -0
  1020. {calkit_python-0.47.5 → calkit_python-0.47.7}/jupyterlab-ext/ui-tests/tests/calkit.spec.ts +0 -0
  1021. {calkit_python-0.47.5 → calkit_python-0.47.7}/jupyterlab-ext/ui-tests/yarn.lock +0 -0
  1022. {calkit_python-0.47.5 → calkit_python-0.47.7}/jupyterlab-ext/yarn.lock +0 -0
  1023. {calkit_python-0.47.5 → calkit_python-0.47.7}/scripts/generate-docs-references.py +0 -0
  1024. {calkit_python-0.47.5 → calkit_python-0.47.7}/scripts/install.ps1 +0 -0
  1025. {calkit_python-0.47.5 → calkit_python-0.47.7}/scripts/install.sh +0 -0
  1026. {calkit_python-0.47.5 → calkit_python-0.47.7}/scripts/list-changes.py +0 -0
  1027. {calkit_python-0.47.5 → calkit_python-0.47.7}/scripts/make-ck9.sh +0 -0
  1028. {calkit_python-0.47.5 → calkit_python-0.47.7}/scripts/sync-docs.py +0 -0
  1029. {calkit_python-0.47.5 → calkit_python-0.47.7}/scripts/sync-resources.py +0 -0
  1030. {calkit_python-0.47.5 → calkit_python-0.47.7}/test/docx/accepted.docx +0 -0
  1031. {calkit_python-0.47.5 → calkit_python-0.47.7}/test/docx/export.docx +0 -0
  1032. {calkit_python-0.47.5 → calkit_python-0.47.7}/test/docx/main.tex +0 -0
  1033. {calkit_python-0.47.5 → calkit_python-0.47.7}/test/docx/methods.tex +0 -0
  1034. {calkit_python-0.47.5 → calkit_python-0.47.7}/test/docx/resolved.docx +0 -0
  1035. {calkit_python-0.47.5 → calkit_python-0.47.7}/test/docx/returned.docx +0 -0
  1036. {calkit_python-0.47.5 → calkit_python-0.47.7}/test/docx/word-import.docx +0 -0
  1037. {calkit_python-0.47.5 → calkit_python-0.47.7}/test/dvc-md5-dir/osx-arm64.txt +0 -0
  1038. {calkit_python-0.47.5 → calkit_python-0.47.7}/test/nb-julia.ipynb +0 -0
  1039. {calkit_python-0.47.5 → calkit_python-0.47.7}/test/nb-params.ipynb +0 -0
  1040. {calkit_python-0.47.5 → calkit_python-0.47.7}/test/nb-subdir.ipynb +0 -0
  1041. {calkit_python-0.47.5 → calkit_python-0.47.7}/test/pipeline.ipynb +0 -0
  1042. {calkit_python-0.47.5 → calkit_python-0.47.7}/test/script.py +0 -0
  1043. {calkit_python-0.47.5 → calkit_python-0.47.7}/test/test-log.log +0 -0
  1044. {calkit_python-0.47.5 → calkit_python-0.47.7}/uv.lock +0 -0
  1045. {calkit_python-0.47.5 → calkit_python-0.47.7}/vscode-ext/.gitignore +0 -0
  1046. {calkit_python-0.47.5 → calkit_python-0.47.7}/vscode-ext/.vscodeignore +0 -0
  1047. {calkit_python-0.47.5 → calkit_python-0.47.7}/vscode-ext/LICENSE +0 -0
  1048. {calkit_python-0.47.5 → calkit_python-0.47.7}/vscode-ext/README.md +0 -0
  1049. {calkit_python-0.47.5 → calkit_python-0.47.7}/vscode-ext/changelog-notes.md +0 -0
  1050. {calkit_python-0.47.5 → calkit_python-0.47.7}/vscode-ext/images/calkit-icon.svg +0 -0
  1051. {calkit_python-0.47.5 → calkit_python-0.47.7}/vscode-ext/images/calkit-no-bg.png +0 -0
  1052. {calkit_python-0.47.5 → calkit_python-0.47.7}/vscode-ext/package-lock.json +0 -0
  1053. {calkit_python-0.47.5 → calkit_python-0.47.7}/vscode-ext/package.json +0 -0
  1054. {calkit_python-0.47.5 → calkit_python-0.47.7}/vscode-ext/scripts/gen-changelog.js +0 -0
  1055. {calkit_python-0.47.5 → calkit_python-0.47.7}/vscode-ext/scripts/set-proposed-api.js +0 -0
  1056. {calkit_python-0.47.5 → calkit_python-0.47.7}/vscode-ext/src/environments.ts +0 -0
  1057. {calkit_python-0.47.5 → calkit_python-0.47.7}/vscode-ext/src/extension.ts +0 -0
  1058. {calkit_python-0.47.5 → calkit_python-0.47.7}/vscode-ext/src/figures/core.ts +0 -0
  1059. {calkit_python-0.47.5 → calkit_python-0.47.7}/vscode-ext/src/figures/view.ts +0 -0
  1060. {calkit_python-0.47.5 → calkit_python-0.47.7}/vscode-ext/src/markdown/core.ts +0 -0
  1061. {calkit_python-0.47.5 → calkit_python-0.47.7}/vscode-ext/src/markdown/view.ts +0 -0
  1062. {calkit_python-0.47.5 → calkit_python-0.47.7}/vscode-ext/src/notebooks.ts +0 -0
  1063. {calkit_python-0.47.5 → calkit_python-0.47.7}/vscode-ext/src/pipeline/core.ts +0 -0
  1064. {calkit_python-0.47.5 → calkit_python-0.47.7}/vscode-ext/src/test/environments.test.ts +0 -0
  1065. {calkit_python-0.47.5 → calkit_python-0.47.7}/vscode-ext/src/test/figures.test.ts +0 -0
  1066. {calkit_python-0.47.5 → calkit_python-0.47.7}/vscode-ext/src/test/kernel-selection.test.ts +0 -0
  1067. {calkit_python-0.47.5 → calkit_python-0.47.7}/vscode-ext/src/test/markdown.test.ts +0 -0
  1068. {calkit_python-0.47.5 → calkit_python-0.47.7}/vscode-ext/src/test/notebooks.test.ts +0 -0
  1069. {calkit_python-0.47.5 → calkit_python-0.47.7}/vscode-ext/src/test/pipeline.test.ts +0 -0
  1070. {calkit_python-0.47.5 → calkit_python-0.47.7}/vscode-ext/src/test/sidebar.test.ts +0 -0
  1071. {calkit_python-0.47.5 → calkit_python-0.47.7}/vscode-ext/src/test/yaml.test.ts +0 -0
  1072. {calkit_python-0.47.5 → calkit_python-0.47.7}/vscode-ext/src/yaml.ts +0 -0
  1073. {calkit_python-0.47.5 → calkit_python-0.47.7}/vscode-ext/tsconfig.json +0 -0
@@ -8,6 +8,8 @@
8
8
  - The Chrome extension lives in `browser-ext`
9
9
  - The Calkit Assistant desktop app lives in `assistant`
10
10
  - GitHub Actions live in `actions`, e.g., `calkit/calkit/actions/run`
11
+ - Docker images we publish live in `images`, e.g., `images/latex`, which
12
+ is released on its own `latex-image/vX.Y.Z` tag rather than with the CLI
11
13
  - Config Calkit installs into projects, e.g., the dev container, VS Code, and
12
14
  GitHub Actions configs, lives in `calkit/resources`; see the README there
13
15
  before editing, since some of those files are generated
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: calkit-python
3
- Version: 0.47.5
3
+ Version: 0.47.7
4
4
  Summary: Reproducibility simplified.
5
5
  Project-URL: Homepage, https://calkit.org
6
6
  Project-URL: Issues, https://github.com/calkit/calkit/issues
@@ -84,8 +84,11 @@ building a pipeline from scratch.
84
84
  `calkit.yaml`: the `question` as the paper poses it, the `answer` as the
85
85
  paper states it with `{name}` placeholders where numbers go, and
86
86
  `evidence` naming the results file and key, the figure, and the
87
- publication section that carries the argument. Run
88
- `calkit check questions` and fix what it reports.
87
+ publication section that carries the argument. The results file must be
88
+ one a stage from step 3 writes, never one written by hand. Where the
89
+ claim hinges on a threshold, write a conditional answer; the
90
+ `check-questions` skill covers both. Run `calkit check questions` and
91
+ fix what it reports.
89
92
 
90
93
  6. **Run the pipeline, then check your own work.** Run `calkit run`, then
91
94
  `calkit check repro`, which reads the manuscript back and reports any
@@ -21,12 +21,17 @@ Deterministic, done by `calkit check questions` — never re-derive by hand:
21
21
  - every evidence path exists;
22
22
  - every `value` key resolves in its file, and every `{name}` placeholder in
23
23
  the prose resolves and formats;
24
+ - every clause of a conditional answer parses, names only evidence, and
25
+ renders, including the clauses the current values don't select;
24
26
  - every publication `label` still exists in the LaTeX source;
25
27
  - no evidence has changed (Git history for Git-tracked outputs, `dvc.lock`
26
28
  for DVC-tracked ones) since the commit that last edited the question;
27
- - each evidence path is produced by a pipeline stage, or declared with
28
- `imported_from` or `created_by`. This one is advisory: it is reported as
29
- `unattributed` and does not fail the check.
29
+ - each `value` entry reads a file a pipeline stage produces, or one
30
+ declared with `imported_from`; anything else is an error, since a number
31
+ nothing computes is a magic number;
32
+ - each other evidence path is produced by a pipeline stage, or declared
33
+ with `imported_from` or `created_by`. This one is advisory: it is
34
+ reported as `unattributed` and does not fail the check.
30
35
 
31
36
  Judgment, done here — the check reads paths and hashes, and cannot read a
32
37
  sentence:
@@ -35,6 +40,8 @@ sentence:
35
40
  this skill exists;
36
41
  - does the answer still follow from the evidence, given what changed;
37
42
  - are numbers retyped into the prose that should be `{name}` placeholders;
43
+ - does a claim resting on a threshold use a conditional answer, with a
44
+ threshold chosen before the value was known;
38
45
  - is the answer concise, and does it point at the publication section that
39
46
  carries the argument rather than repeating it.
40
47
 
@@ -104,7 +111,8 @@ evidence without showing them both.
104
111
  from. If a stage should produce it, that is a pipeline gap worth
105
112
  reporting. If it was imported or made by hand, declare it under
106
113
  `figures`, `datasets`, or `publications` with `imported_from` or
107
- `created_by` so the project says so.
114
+ `created_by` so the project says so. A `value` entry with no stage is
115
+ reported as an error rather than `unattributed`: give it a stage.
108
116
  4. For each **error**, fix the reference: a missing path means the pipeline
109
117
  has not been run or pulled; a bad key or placeholder means a results
110
118
  file was restructured; a missing label means the publication was
@@ -127,7 +135,39 @@ project, not a tidy-up.
127
135
  - One claim per question, two to four sentences. Say what was found and
128
136
  what it means; leave the reasoning to the publication.
129
137
  - Numbers come from `value` evidence via placeholders, formatted to the
130
- precision the claim needs: `{ratio:.1f}x`, `{error:.0%}`.
138
+ precision the claim needs: `{ratio:.1f}x`, `{error:.0%}`. When several
139
+ come from one file, e.g., the outputs of one calculation, name them
140
+ together in one `result` entry's `values`, a map of name to key.
141
+ - A `value` entry must read a file a pipeline stage writes. A placeholder
142
+ over a results file written by hand, including one you write, is a
143
+ retyped number with extra steps, and the check fails it. If no stage
144
+ produces the number, add one (`/calkit:add-pipeline-stage`) instead of
145
+ writing the file. Never declare a file `imported_from` or `created_by`
146
+ to clear that error unless it really came from there, and never edit a
147
+ results file to change what an answer says.
148
+ - When the claim itself depends on a value, not just the number in it,
149
+ e.g., significant or not, which method wins, write a conditional answer
150
+ so the wording follows the evidence on a rerun:
151
+
152
+ ```yaml
153
+ answer:
154
+ if p < 0.05: "The closure cuts error by {improvement:.1f}x."
155
+ else: "The closure does not measurably reduce error."
156
+ evidence:
157
+ - kind: result
158
+ path: results/closure.json
159
+ values:
160
+ p: p-value
161
+ improvement: improvement
162
+ ```
163
+
164
+ Conditions use the names of values, so those names must be valid Python
165
+ identifiers. Every branch must be a
166
+ claim the evidence would support if it held. The threshold is part of
167
+ the claim: take it from the field's convention or the user, never pick
168
+ it to make the current branch hold, and don't use branches to hedge a
169
+ claim that should simply be weakened.
170
+
131
171
  - Point at the publication with a `publication` evidence entry carrying
132
172
  `section` (for the reader) and `label` (for the check), instead of an
133
173
  `explanation` that restates the argument.
@@ -137,6 +137,43 @@ def from_json(
137
137
  json2latex.dump(cmd_name, formatted, f)
138
138
 
139
139
 
140
+ @latex_app.command(name="from-questions")
141
+ def from_questions(
142
+ output_fpaths: Annotated[
143
+ list[str],
144
+ typer.Option("--output", "-o", help="Output LaTeX file path(s)."),
145
+ ],
146
+ command_name: Annotated[
147
+ str,
148
+ typer.Option("--command", help="Command name to use in LaTeX output."),
149
+ ] = "questions",
150
+ ) -> None:
151
+ """Write the project's questions and answers as a LaTeX command.
152
+
153
+ Each question's text, hypothesis, answer, and notes are rendered from
154
+ their evidence and exposed as, e.g., ``\\questions[staging.answer]``,
155
+ keyed by the question's ``name`` or its 1-based position.
156
+ """
157
+ import json2latex
158
+
159
+ import calkit.questions
160
+
161
+ for out_path in output_fpaths:
162
+ if not out_path.endswith(".tex"):
163
+ raise_error("Output file must be a .tex file")
164
+ ck_info = calkit.load_calkit_info()
165
+ try:
166
+ values = calkit.questions.latex_values(ck_info)
167
+ except ValueError as e:
168
+ raise_error(str(e))
169
+ for out_path in output_fpaths:
170
+ outdir = os.path.dirname(out_path)
171
+ if outdir:
172
+ os.makedirs(outdir, exist_ok=True)
173
+ with open(out_path, "w") as f:
174
+ json2latex.dump(command_name, values, f)
175
+
176
+
140
177
  def _tex_cmd(
141
178
  tex_cmd: list[str],
142
179
  environment: str | None,
@@ -197,7 +197,10 @@ def _echo_question(n: int, question: str | dict) -> None:
197
197
  question = dict(question)
198
198
  text = question.pop("question", "")
199
199
  typer.echo(f"{n}. question: {text}")
200
+ # Rendering fills every field, so leave out the ones that aren't set
200
201
  for k, v in question.items():
202
+ if v is None:
203
+ continue
201
204
  if isinstance(v, dict):
202
205
  typer.echo(f" {k}:")
203
206
  for k1, v1 in v.items():
@@ -206,11 +209,17 @@ def _echo_question(n: int, question: str | dict) -> None:
206
209
  typer.echo(f" {k}:")
207
210
  for item in v:
208
211
  if isinstance(item, dict):
212
+ item = {
213
+ k1: v1 for k1, v1 in item.items() if v1 is not None
214
+ }
209
215
  for n1, (k1, v1) in enumerate(item.items()):
210
- if n1 == 0:
211
- typer.echo(f" - {k1}: {v1}")
216
+ prefix = " - " if n1 == 0 else " "
217
+ if isinstance(v1, dict):
218
+ typer.echo(f"{prefix}{k1}:")
219
+ for k2, v2 in v1.items():
220
+ typer.echo(f" {k2}: {v2}")
212
221
  else:
213
- typer.echo(f" {k1}: {v1}")
222
+ typer.echo(f"{prefix}{k1}: {v1}")
214
223
  else:
215
224
  typer.echo(f" - {item}")
216
225
  else:
@@ -243,7 +252,7 @@ def list_questions(
243
252
  render_question,
244
253
  )
245
254
 
246
- def _texts(question: dict) -> list[str]:
255
+ def _texts(question: dict) -> list[str | dict]:
247
256
  evidence = question.get("evidence") or []
248
257
  return [question.get(f) or "" for f in TEMPLATED_FIELDS] + [
249
258
  ev.get("explanation") or ""
@@ -260,16 +269,18 @@ def list_questions(
260
269
  # let a fresh clone read as a project that types its braces. Any
261
270
  # placeholder left standing counts, whether it names evidence that
262
271
  # could not be read or names nothing at all: a brace meant to stay
263
- # in the text is written '{{' and never reaches here.
272
+ # in the text is written '{{' and never reaches here. A conditional
273
+ # answer still in clauses is one whose conditions could not be read.
264
274
  unfilled = any(
265
- placeholders(text)
275
+ isinstance(text, dict) or placeholders(text)
266
276
  for q in rendered
267
277
  if isinstance(q, dict)
268
278
  for text in _texts(q)
269
279
  )
270
280
  if unfilled:
271
281
  warn(
272
- "Some placeholders could not be filled from the evidence. "
282
+ "Some placeholders or conditions could not be filled from "
283
+ "the evidence. "
273
284
  "Run 'calkit check questions' to see why; 'calkit pull' if "
274
285
  "the results files are not here yet.",
275
286
  err=json_output,
@@ -684,10 +684,16 @@ def get_status(
684
684
  typer.echo()
685
685
  if "dvc" in categories:
686
686
  print_sep("DVC")
687
+ from dvc.exceptions import NotDvcRepoError
688
+
687
689
  try:
688
690
  calkit.dvc.get_dvc_repo()
689
- except Exception:
691
+ except NotDvcRepoError:
690
692
  typer.echo("This is not a DVC repository.\n")
693
+ except Exception as e:
694
+ typer.echo(
695
+ f"Failed to open DVC repo: {e.__class__.__name__}: {e}\n"
696
+ )
691
697
  else:
692
698
  zip_path_map = calkit.dvc.zip.get_zip_path_map()
693
699
  dvc_repo = calkit.dvc.get_dvc_repo()
@@ -2699,14 +2705,19 @@ def run(
2699
2705
  os.environ.pop("CALKIT_PIPELINE_RUNNING", None)
2700
2706
  raise_error(f"Pipeline compilation failed: {e}")
2701
2707
  # Initialize DVC repo if necessary
2708
+ from dvc.exceptions import NotDvcRepoError
2709
+
2702
2710
  try:
2703
2711
  calkit.dvc.get_dvc_repo()
2704
- except Exception:
2712
+ except NotDvcRepoError:
2705
2713
  if not quiet:
2706
2714
  typer.echo("Initializing DVC repo")
2707
2715
  result = calkit.dvc.init()
2708
2716
  if result != 0:
2709
2717
  raise_error("Failed to initialize DVC repo")
2718
+ except Exception as e:
2719
+ # E.g., DVC's site cache dir isn't writable, which 'dvc init' can't fix
2720
+ raise_error(f"Failed to open DVC repo: {e.__class__.__name__}: {e}")
2710
2721
  # Convert deps into target stage names
2711
2722
  # TODO: This could probably be merged back upstream into DVC
2712
2723
  if dvc_stages is None:
@@ -39,12 +39,16 @@ def sync_dvc(
39
39
  no_check_auth: Annotated[bool, typer.Option("--no-check-auth")] = False,
40
40
  ) -> None:
41
41
  """Sync the DVC repository by pulling and then pushing."""
42
+ from dvc.exceptions import NotDvcRepoError
43
+
42
44
  from calkit.cli.main.core import pull, push
43
45
 
44
46
  try:
45
47
  calkit.dvc.get_dvc_repo()
46
- except Exception:
48
+ except NotDvcRepoError:
47
49
  raise_error("No DVC repository found. Run 'calkit init' first.")
50
+ except Exception as e:
51
+ raise_error(f"Failed to open DVC repo: {e.__class__.__name__}: {e}")
48
52
  if not calkit.dvc.get_remotes():
49
53
  raise_error(
50
54
  "No DVC remotes configured. Add a remote with "
@@ -1703,8 +1703,12 @@ class FigureEvidence(BaseModel):
1703
1703
 
1704
1704
  class ResultsEvidence(BaseModel):
1705
1705
  """Evidence in the form of a results file: a set of values, a table, a
1706
- map, whatever the pipeline wrote. For one value inside such a file, use
1707
- ``value`` evidence, which can be templated into the answer.
1706
+ map, whatever the pipeline wrote.
1707
+
1708
+ ``values`` names related values within it, like the fields of a struct
1709
+ or object,
1710
+ so each can be templated into the answer as ``value`` evidence would be
1711
+ without an entry per value.
1708
1712
  """
1709
1713
 
1710
1714
  kind: Literal["result"] = "result"
@@ -1716,6 +1720,14 @@ class ResultsEvidence(BaseModel):
1716
1720
  "results file."
1717
1721
  ),
1718
1722
  )
1723
+ values: dict[str, str] | None = Field(
1724
+ default=None,
1725
+ description=(
1726
+ "Values within the results file, mapping each name, under which "
1727
+ "it can be templated into the question's text, to its key. Names "
1728
+ "must be unique within the question."
1729
+ ),
1730
+ )
1719
1731
  explanation: str | None = None
1720
1732
  git_ref: str | None = Field(
1721
1733
  default=None,
@@ -1725,11 +1737,17 @@ class ResultsEvidence(BaseModel):
1725
1737
  ),
1726
1738
  )
1727
1739
 
1740
+ @model_validator(mode="after")
1741
+ def _key_or_values(self) -> ResultsEvidence:
1742
+ if self.key is not None and self.values is not None:
1743
+ raise ValueError("a result takes 'values' or 'key', not both")
1744
+ return self
1745
+
1728
1746
 
1729
1747
  _KEY_DESCRIPTION = (
1730
- "Key of the value within the results file. A key present at the top "
1731
- "level is used as-is; otherwise it is split on dots and walked into "
1732
- "nested objects, with integers indexing lists."
1748
+ "Key of the value within the results file. It is split on dots and "
1749
+ "walked into nested objects, taking the longest run of parts that names "
1750
+ "a key at each level, with integers indexing lists."
1733
1751
  )
1734
1752
 
1735
1753
 
@@ -1817,6 +1835,34 @@ class PublicationEvidence(BaseModel):
1817
1835
  )
1818
1836
 
1819
1837
 
1838
+ class DocumentEvidence(BaseModel):
1839
+ """Evidence in the form of a document cited by path, e.g., a Markdown
1840
+ write-up, without declaring it as a publication.
1841
+
1842
+ The document must be built by a pipeline stage, usually a Markdown
1843
+ stage, so its numbers are injected from the results and go stale with
1844
+ them; one written by hand is an error, like a typed-in value.
1845
+ """
1846
+
1847
+ kind: Literal["document"] = "document"
1848
+ path: str
1849
+ section: str | None = Field(
1850
+ default=None,
1851
+ description=(
1852
+ "Section of the document where the evidence is presented, as a "
1853
+ "reader would find it, e.g., '4.2' or 'Results'."
1854
+ ),
1855
+ )
1856
+ explanation: str | None = None
1857
+ git_ref: str | None = Field(
1858
+ default=None,
1859
+ description=(
1860
+ "Git reference (branch, tag, or commit hash) pointing to the "
1861
+ "version of the repository where the document can be found."
1862
+ ),
1863
+ )
1864
+
1865
+
1820
1866
  class Question(BaseModel):
1821
1867
  """A question the project hopes to answer.
1822
1868
 
@@ -1839,9 +1885,26 @@ class Question(BaseModel):
1839
1885
  new evidence is how to say it still holds.
1840
1886
  """
1841
1887
 
1888
+ name: str | None = Field(
1889
+ default=None,
1890
+ description=(
1891
+ "Name for the question, e.g., for quoting its answer in a "
1892
+ "document through 'calkit latex from-questions'. Unlike its "
1893
+ "position in the list, it survives questions being added or "
1894
+ "reordered. Must be unique among the project's questions."
1895
+ ),
1896
+ )
1842
1897
  question: str
1843
1898
  hypothesis: str | None = None
1844
- answer: str | None = None
1899
+ answer: str | dict[str, str] | None = Field(
1900
+ default=None,
1901
+ description=(
1902
+ "The claim the evidence supports. A mapping keyed by 'if "
1903
+ "<condition>', 'elif <condition>' and 'else' picks its wording "
1904
+ "from the evidence, so an answer resting on a threshold states "
1905
+ "the other outcome instead of going stale when a value moves."
1906
+ ),
1907
+ )
1845
1908
  notes: str | None = Field(
1846
1909
  default=None,
1847
1910
  description=(
@@ -1858,10 +1921,23 @@ class Question(BaseModel):
1858
1921
  | ValueEvidence
1859
1922
  | TableEvidence
1860
1923
  | PublicationEvidence
1924
+ | DocumentEvidence
1861
1925
  ]
1862
1926
  | None
1863
1927
  ) = None
1864
1928
 
1929
+ @field_validator("name")
1930
+ @classmethod
1931
+ def check_name_not_a_position(cls, v: str | None) -> str | None:
1932
+ # A question is also addressable by its position, so an all-digit
1933
+ # name would be ambiguous with some other question's number
1934
+ if v is not None and v.isdigit():
1935
+ raise ValueError(
1936
+ f"Question name {v!r} can't be a number, since questions "
1937
+ "are also addressed by position"
1938
+ )
1939
+ return v
1940
+
1865
1941
 
1866
1942
  class ProjectInfo(BaseModel):
1867
1943
  """All of the project's information or metadata, written to the
@@ -2066,3 +2142,14 @@ class ProjectInfo(BaseModel):
2066
2142
  description="Overleaf sync configuration, keyed by the path of the "
2067
2143
  "synced directory.",
2068
2144
  )
2145
+
2146
+ @field_validator("questions")
2147
+ @classmethod
2148
+ def check_question_names_unique(
2149
+ cls, v: list[str | Question]
2150
+ ) -> list[str | Question]:
2151
+ names = [q.name for q in v if isinstance(q, Question) and q.name]
2152
+ dupes = sorted({n for n in names if names.count(n) > 1})
2153
+ if dupes:
2154
+ raise ValueError(f"Question names must be unique: {dupes}")
2155
+ return v
@@ -254,6 +254,7 @@ class Stage(BaseModel):
254
254
  "marimo-html-wasm",
255
255
  "markdown",
256
256
  "procedure",
257
+ "questions-to-latex",
257
258
  ] = Field(description="What kind of stage this is.")
258
259
  environment: str = Field(
259
260
  description="Name of the environment in which to run this stage."
@@ -1343,6 +1344,56 @@ class JsonToLatexStage(Stage):
1343
1344
  return outs
1344
1345
 
1345
1346
 
1347
+ class QuestionsToLatexStage(Stage):
1348
+ """The project's questions and answers, rendered for a LaTeX document.
1349
+
1350
+ Its inputs are ``calkit.yaml`` and every file the questions cite as
1351
+ evidence, added when the pipeline is compiled, so the output reruns
1352
+ when an answer or a value it reads changes.
1353
+ """
1354
+
1355
+ kind: Literal["questions-to-latex"] = "questions-to-latex"
1356
+ environment: str = "_system"
1357
+ command_name: str = Field(
1358
+ default="questions",
1359
+ description=(
1360
+ "Name of the LaTeX command the document quotes questions "
1361
+ "through, e.g., 'questions' for \\questions[staging.answer]."
1362
+ ),
1363
+ )
1364
+ wdir: None = Field(
1365
+ default=None,
1366
+ description="Not supported; the stage reads the project's "
1367
+ "calkit.yaml and evidence from the project root.",
1368
+ )
1369
+
1370
+ @property
1371
+ def dvc_cmd(self) -> str:
1372
+ cmd = "calkit latex from-questions"
1373
+ for out in self.outputs:
1374
+ out_path = out if isinstance(out, str) else out.path
1375
+ cmd += f" --output {shlex.quote(out_path)}"
1376
+ return cmd + f" --command {shlex.quote(self.command_name)}"
1377
+
1378
+ @property
1379
+ def dvc_outs(self) -> list[str | dict]:
1380
+ """Stored with Git by default, like other generated LaTeX."""
1381
+ outs: list[str | dict] = []
1382
+ for out in self.outputs:
1383
+ if isinstance(out, str):
1384
+ outs.append({out: dict(cache=False, persist=False)})
1385
+ elif isinstance(out, PathOutput):
1386
+ outs.append(
1387
+ {
1388
+ out.path: dict(
1389
+ cache=out.storage == "dvc",
1390
+ persist=not out.delete_before_run,
1391
+ )
1392
+ }
1393
+ )
1394
+ return outs
1395
+
1396
+
1346
1397
  class MatlabScriptStage(Stage):
1347
1398
  kind: Literal["matlab-script"]
1348
1399
  script_path: RelativeChildPathString = Field(
@@ -2096,6 +2147,7 @@ class Pipeline(BaseModel):
2096
2147
  | LatexStage
2097
2148
  | QuartoStage
2098
2149
  | JsonToLatexStage
2150
+ | QuestionsToLatexStage
2099
2151
  | MatlabScriptStage
2100
2152
  | MatlabCommandStage
2101
2153
  | ShellCommandStage
@@ -96,6 +96,11 @@ def clean_notebook(nb: dict) -> dict:
96
96
  if cell.get("cell_type") == "code":
97
97
  cell["outputs"] = []
98
98
  cell["execution_count"] = None
99
+ # Cell IDs are editor residue, and nbstripout rewrites them to
100
+ # ordinals. Keeping them would make the cleaned copy depend on whether
101
+ # the source had been through a clean filter, which differs between a
102
+ # working tree and a fresh clone of the same commit.
103
+ cell.pop("id", None)
99
104
  # Clean metadata but keep tags
100
105
  if "tags" in cell.get("metadata", {}):
101
106
  cell["metadata"] = {"tags": cell["metadata"]["tags"]}
@@ -1634,6 +1634,7 @@ def to_dvc(
1634
1634
  """
1635
1635
  import calkit.dvc.zip
1636
1636
  import calkit.markdown
1637
+ import calkit.questions
1637
1638
  from calkit.environments import get_env_input_paths, get_env_lock_fpath
1638
1639
 
1639
1640
  if ck_info is None:
@@ -1645,6 +1646,8 @@ def to_dvc(
1645
1646
  # options and iteration need no knowledge of Markdown.
1646
1647
  markdown = calkit.markdown.expand_ck_info(ck_info, wdir=wdir)
1647
1648
  ck_info = markdown.ck_info
1649
+ # Likewise give questions-to-latex stages the evidence they read
1650
+ ck_info = calkit.questions.expand_questions_stages(ck_info)
1648
1651
  if write and markdown.environments:
1649
1652
  _write_markdown_environments(markdown, wdir=wdir)
1650
1653
  # Everything Markdown derives is rewritten on every compile, so it