calkit-python 0.41.23__tar.gz → 0.41.25__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 (817) hide show
  1. calkit_python-0.41.25/.dockerignore +26 -0
  2. calkit_python-0.41.25/.gitignore +27 -0
  3. calkit_python-0.41.25/.pre-commit-config.yaml +52 -0
  4. calkit_python-0.41.25/Makefile +81 -0
  5. calkit_python-0.41.25/PKG-INFO +406 -0
  6. calkit_python-0.41.25/README.md +347 -0
  7. calkit_python-0.41.25/agent-plugin/skills/conventions/SKILL.md +306 -0
  8. calkit_python-0.41.25/calkit/__init__.py +125 -0
  9. calkit_python-0.41.25/calkit/calc.py +255 -0
  10. calkit_python-0.41.25/calkit/cli/config.py +442 -0
  11. calkit_python-0.41.25/calkit/cli/core.py +151 -0
  12. calkit_python-0.41.25/calkit/cli/describe.py +97 -0
  13. calkit_python-0.41.25/calkit/cli/hub.py +126 -0
  14. calkit_python-0.41.25/calkit/cli/import_.py +513 -0
  15. calkit_python-0.41.25/calkit/cli/list.py +461 -0
  16. calkit_python-0.41.25/calkit/cli/main/core.py +3476 -0
  17. calkit_python-0.41.25/calkit/cli/new.py +3872 -0
  18. calkit_python-0.41.25/calkit/cli/overleaf.py +685 -0
  19. calkit_python-0.41.25/calkit/cli/sync.py +80 -0
  20. calkit_python-0.41.25/calkit/cli/update.py +1268 -0
  21. calkit_python-0.41.25/calkit/config.py +475 -0
  22. calkit_python-0.41.25/calkit/core.py +850 -0
  23. calkit_python-0.41.25/calkit/datasets.py +71 -0
  24. calkit_python-0.41.25/calkit/detect.py +2351 -0
  25. calkit_python-0.41.25/calkit/dvc/core.py +882 -0
  26. calkit_python-0.41.25/calkit/fs.py +1145 -0
  27. calkit_python-0.41.25/calkit/github.py +70 -0
  28. calkit_python-0.41.25/calkit/hub.py +484 -0
  29. calkit_python-0.41.25/calkit/invenio.py +141 -0
  30. calkit_python-0.41.25/calkit/models/core.py +477 -0
  31. calkit_python-0.41.25/calkit/models/pipeline.py +1376 -0
  32. calkit_python-0.41.25/calkit/templates/core.py +119 -0
  33. calkit_python-0.41.25/calkit/tests/cli/main/test_core.py +2035 -0
  34. calkit_python-0.41.25/calkit/tests/cli/main/test_subprojects.py +428 -0
  35. calkit_python-0.41.25/calkit/tests/cli/test_config.py +168 -0
  36. calkit_python-0.41.25/calkit/tests/cli/test_core.py +46 -0
  37. calkit_python-0.41.25/calkit/tests/cli/test_describe.py +78 -0
  38. calkit_python-0.41.25/calkit/tests/cli/test_hub.py +221 -0
  39. calkit_python-0.41.25/calkit/tests/cli/test_latex.py +167 -0
  40. calkit_python-0.41.25/calkit/tests/cli/test_list.py +248 -0
  41. calkit_python-0.41.25/calkit/tests/cli/test_new.py +1690 -0
  42. calkit_python-0.41.25/calkit/tests/cli/test_sync.py +116 -0
  43. calkit_python-0.41.25/calkit/tests/cli/test_update.py +240 -0
  44. calkit_python-0.41.25/calkit/tests/dvc/test_core.py +436 -0
  45. calkit_python-0.41.25/calkit/tests/models/test_core.py +56 -0
  46. calkit_python-0.41.25/calkit/tests/models/test_pipeline.py +548 -0
  47. calkit_python-0.41.25/calkit/tests/test_conda.py +517 -0
  48. calkit_python-0.41.25/calkit/tests/test_config.py +176 -0
  49. calkit_python-0.41.25/calkit/tests/test_fs.py +397 -0
  50. calkit_python-0.41.25/calkit/tests/test_hub.py +472 -0
  51. calkit_python-0.41.25/calkit/tests/test_pipeline.py +2396 -0
  52. calkit_python-0.41.25/docs/calkit-yaml.md +42 -0
  53. calkit_python-0.41.25/docs/cli-reference.md +3533 -0
  54. calkit_python-0.41.25/docs/cloud-integration.md +5 -0
  55. calkit_python-0.41.25/docs/datasets.md +31 -0
  56. calkit_python-0.41.25/docs/environments.md +783 -0
  57. calkit_python-0.41.25/docs/governance.md +142 -0
  58. calkit_python-0.41.25/docs/hpc.md +203 -0
  59. calkit_python-0.41.25/docs/hub/index.md +42 -0
  60. calkit_python-0.41.25/docs/hub/self-hosting.md +57 -0
  61. calkit_python-0.41.25/docs/index.md +56 -0
  62. calkit_python-0.41.25/docs/installation.md +130 -0
  63. calkit_python-0.41.25/docs/local-server.md +23 -0
  64. calkit_python-0.41.25/docs/notebooks.md +328 -0
  65. calkit_python-0.41.25/docs/overleaf.md +206 -0
  66. calkit_python-0.41.25/docs/quickstart.md +107 -0
  67. calkit_python-0.41.25/docs/releases.md +124 -0
  68. calkit_python-0.41.25/docs/tutorials/ai-agents.md +174 -0
  69. calkit_python-0.41.25/docs/tutorials/existing-project.md +595 -0
  70. calkit_python-0.41.25/docs/tutorials/latex-codespaces.md +363 -0
  71. calkit_python-0.41.25/docs/tutorials/notebook-pipeline.md +208 -0
  72. calkit_python-0.41.25/docs/tutorials/office.md +352 -0
  73. calkit_python-0.41.25/docs/tutorials/openfoam.md +313 -0
  74. calkit_python-0.41.25/docs/version-control.md +251 -0
  75. calkit_python-0.41.25/hub/.env.example +97 -0
  76. calkit_python-0.41.25/hub/.gitattributes +2 -0
  77. calkit_python-0.41.25/hub/.gitignore +11 -0
  78. calkit_python-0.41.25/hub/.vscode/launch.json +28 -0
  79. calkit_python-0.41.25/hub/AGENTS.md +126 -0
  80. calkit_python-0.41.25/hub/LICENSE +40 -0
  81. calkit_python-0.41.25/hub/Makefile +49 -0
  82. calkit_python-0.41.25/hub/README.md +85 -0
  83. calkit_python-0.41.25/hub/backend/.gitignore +9 -0
  84. calkit_python-0.41.25/hub/backend/.python-version +1 -0
  85. calkit_python-0.41.25/hub/backend/Dockerfile +69 -0
  86. calkit_python-0.41.25/hub/backend/Makefile +8 -0
  87. calkit_python-0.41.25/hub/backend/README.md +236 -0
  88. calkit_python-0.41.25/hub/backend/alembic.ini +71 -0
  89. calkit_python-0.41.25/hub/backend/app/__init__.py +4 -0
  90. calkit_python-0.41.25/hub/backend/app/alembic/README +1 -0
  91. calkit_python-0.41.25/hub/backend/app/alembic/env.py +84 -0
  92. calkit_python-0.41.25/hub/backend/app/alembic/script.py.mako +25 -0
  93. calkit_python-0.41.25/hub/backend/app/alembic/versions/.keep +0 -0
  94. calkit_python-0.41.25/hub/backend/app/alembic/versions/07c8236476c4_add_fields_to_usertoken.py +37 -0
  95. calkit_python-0.41.25/hub/backend/app/alembic/versions/10a05eaedfbd_add_dataset_table.py +41 -0
  96. calkit_python-0.41.25/hub/backend/app/alembic/versions/1546aa334cd5_make_project_description_nullable.py +33 -0
  97. calkit_python-0.41.25/hub/backend/app/alembic/versions/1a31ce608336_add_cascade_delete_relationships.py +37 -0
  98. calkit_python-0.41.25/hub/backend/app/alembic/versions/1fb6e38eb0e9_add_deviceauth_table.py +40 -0
  99. calkit_python-0.41.25/hub/backend/app/alembic/versions/208e7457f3ba_add_title_to_project.py +37 -0
  100. calkit_python-0.41.25/hub/backend/app/alembic/versions/2e7c25a00842_add_is_public_to_project.py +29 -0
  101. calkit_python-0.41.25/hub/backend/app/alembic/versions/38e178698db2_update_subscription_model_to_use_plan_.py +120 -0
  102. calkit_python-0.41.25/hub/backend/app/alembic/versions/3b1e67e9c318_add_usertoken_table.py +49 -0
  103. calkit_python-0.41.25/hub/backend/app/alembic/versions/4dac15c0282a_add_stripe_customer_id_to_user.py +29 -0
  104. calkit_python-0.41.25/hub/backend/app/alembic/versions/4e1c917fcca4_add_status_columns_to_project_table.py +33 -0
  105. calkit_python-0.41.25/hub/backend/app/alembic/versions/5ba89308431f_add_project_table.py +36 -0
  106. calkit_python-0.41.25/hub/backend/app/alembic/versions/5d6f8217c890_add_subscriber_user_id_to_org_.py +31 -0
  107. calkit_python-0.41.25/hub/backend/app/alembic/versions/65b2d15cc702_add_github_username_field_to_user.py +29 -0
  108. calkit_python-0.41.25/hub/backend/app/alembic/versions/697c3c1a8a27_add_git_repo_url_to_project.py +29 -0
  109. calkit_python-0.41.25/hub/backend/app/alembic/versions/6f3a3afbea8b_add_number_field_to_question.py +29 -0
  110. calkit_python-0.41.25/hub/backend/app/alembic/versions/7076d9b5c887_use_account_for_project_owner.py +59 -0
  111. calkit_python-0.41.25/hub/backend/app/alembic/versions/71e1d1e69bbd_add_table_for_storing_user_github_tokens.py +37 -0
  112. calkit_python-0.41.25/hub/backend/app/alembic/versions/799476973bce_add_created_ts_to_user_github_token_.py +29 -0
  113. calkit_python-0.41.25/hub/backend/app/alembic/versions/7cacee34034c_add_parent_child_relationship_to_.py +31 -0
  114. calkit_python-0.41.25/hub/backend/app/alembic/versions/9c0a54914c78_add_max_length_for_string_varchar_.py +69 -0
  115. calkit_python-0.41.25/hub/backend/app/alembic/versions/9c4f70636d73_add_fields_to_usertoken.py +35 -0
  116. calkit_python-0.41.25/hub/backend/app/alembic/versions/a4af19842927_create_table_to_store_user_zenodo_tokens.py +53 -0
  117. calkit_python-0.41.25/hub/backend/app/alembic/versions/ab7816be480b_drop_items.py +36 -0
  118. calkit_python-0.41.25/hub/backend/app/alembic/versions/ac622559475f_save_timestamps_for_github_token_.py +39 -0
  119. calkit_python-0.41.25/hub/backend/app/alembic/versions/af024967630d_lowercase_account_names.py +65 -0
  120. calkit_python-0.41.25/hub/backend/app/alembic/versions/c1f9a3e27d48_consolidate_comment_tables.py +119 -0
  121. calkit_python-0.41.25/hub/backend/app/alembic/versions/c46a78ba506c_add_created_column_to_account.py +38 -0
  122. calkit_python-0.41.25/hub/backend/app/alembic/versions/c749b39072d3_add_figurecomment.py +42 -0
  123. calkit_python-0.41.25/hub/backend/app/alembic/versions/c7c41c3f0d22_add_user_external_credential_table.py +66 -0
  124. calkit_python-0.41.25/hub/backend/app/alembic/versions/d01ce914143d_make_question_a_table.py +36 -0
  125. calkit_python-0.41.25/hub/backend/app/alembic/versions/d21ed1c9537e_add_zenodo_user_id_column_to_user.py +29 -0
  126. calkit_python-0.41.25/hub/backend/app/alembic/versions/d3a8021fb433_add_table_for_user_project_access.py +38 -0
  127. calkit_python-0.41.25/hub/backend/app/alembic/versions/d4e5f6a7b8c9_ghless_membership_and_invitations.py +127 -0
  128. calkit_python-0.41.25/hub/backend/app/alembic/versions/d6366015af35_add_discount_code_table.py +46 -0
  129. calkit_python-0.41.25/hub/backend/app/alembic/versions/d98dd8ec85a3_edit_replace_id_integers_in_all_models_.py +90 -0
  130. calkit_python-0.41.25/hub/backend/app/alembic/versions/dcef842dee10_add_refreshtoken_table.py +41 -0
  131. calkit_python-0.41.25/hub/backend/app/alembic/versions/e1b0fa2a6d34_backfill_external_credentials_from_legacy_.py +197 -0
  132. calkit_python-0.41.25/hub/backend/app/alembic/versions/e2412789c190_initialize_models.py +54 -0
  133. calkit_python-0.41.25/hub/backend/app/alembic/versions/e7671197c00b_add_account_table.py +69 -0
  134. calkit_python-0.41.25/hub/backend/app/alembic/versions/ed74edb0a9e6_create_table_for_user_overleaf_token.py +36 -0
  135. calkit_python-0.41.25/hub/backend/app/alembic/versions/edcabfca98df_add_subscription_and_org_membership_.py +105 -0
  136. calkit_python-0.41.25/hub/backend/app/alembic/versions/f0e23e048b1b_add_fields_to_project.py +34 -0
  137. calkit_python-0.41.25/hub/backend/app/alembic/versions/f3a9c1b7e240_add_releases_feature.py +235 -0
  138. calkit_python-0.41.25/hub/backend/app/alembic/versions/f5ad6445ad03_enable_user_project_access_to_be_null.py +33 -0
  139. calkit_python-0.41.25/hub/backend/app/alembic/versions/f74a96172dbd_add_table_for_locking_project_files.py +37 -0
  140. calkit_python-0.41.25/hub/backend/app/api/__init__.py +0 -0
  141. calkit_python-0.41.25/hub/backend/app/api/deps.py +242 -0
  142. calkit_python-0.41.25/hub/backend/app/api/main.py +24 -0
  143. calkit_python-0.41.25/hub/backend/app/api/routes/__init__.py +0 -0
  144. calkit_python-0.41.25/hub/backend/app/api/routes/accounts.py +55 -0
  145. calkit_python-0.41.25/hub/backend/app/api/routes/datasets.py +81 -0
  146. calkit_python-0.41.25/hub/backend/app/api/routes/feature_votes.py +95 -0
  147. calkit_python-0.41.25/hub/backend/app/api/routes/login.py +789 -0
  148. calkit_python-0.41.25/hub/backend/app/api/routes/misc.py +420 -0
  149. calkit_python-0.41.25/hub/backend/app/api/routes/orgs.py +448 -0
  150. calkit_python-0.41.25/hub/backend/app/api/routes/projects/__init__.py +17 -0
  151. calkit_python-0.41.25/hub/backend/app/api/routes/projects/core.py +7303 -0
  152. calkit_python-0.41.25/hub/backend/app/api/routes/projects/dvc.py +163 -0
  153. calkit_python-0.41.25/hub/backend/app/api/routes/projects/fs.py +499 -0
  154. calkit_python-0.41.25/hub/backend/app/api/routes/projects/releases.py +2194 -0
  155. calkit_python-0.41.25/hub/backend/app/api/routes/users.py +864 -0
  156. calkit_python-0.41.25/hub/backend/app/client.py +84 -0
  157. calkit_python-0.41.25/hub/backend/app/config.py +262 -0
  158. calkit_python-0.41.25/hub/backend/app/core.py +131 -0
  159. calkit_python-0.41.25/hub/backend/app/db.py +77 -0
  160. calkit_python-0.41.25/hub/backend/app/dvc.py +379 -0
  161. calkit_python-0.41.25/hub/backend/app/email-templates/build/new_account.html +25 -0
  162. calkit_python-0.41.25/hub/backend/app/email-templates/build/project_invitation.html +50 -0
  163. calkit_python-0.41.25/hub/backend/app/email-templates/build/release_share.html +24 -0
  164. calkit_python-0.41.25/hub/backend/app/email-templates/build/reset_password.html +25 -0
  165. calkit_python-0.41.25/hub/backend/app/email-templates/build/test_email.html +25 -0
  166. calkit_python-0.41.25/hub/backend/app/email-templates/src/new_account.mjml +15 -0
  167. calkit_python-0.41.25/hub/backend/app/email-templates/src/project_invitation.mjml +15 -0
  168. calkit_python-0.41.25/hub/backend/app/email-templates/src/release_share.mjml +16 -0
  169. calkit_python-0.41.25/hub/backend/app/email-templates/src/reset_password.mjml +17 -0
  170. calkit_python-0.41.25/hub/backend/app/email-templates/src/test_email.mjml +11 -0
  171. calkit_python-0.41.25/hub/backend/app/git.py +1340 -0
  172. calkit_python-0.41.25/hub/backend/app/github.py +142 -0
  173. calkit_python-0.41.25/hub/backend/app/main.py +161 -0
  174. calkit_python-0.41.25/hub/backend/app/messaging.py +155 -0
  175. calkit_python-0.41.25/hub/backend/app/mixpanel.py +126 -0
  176. calkit_python-0.41.25/hub/backend/app/models/__init__.py +6 -0
  177. calkit_python-0.41.25/hub/backend/app/models/core.py +1236 -0
  178. calkit_python-0.41.25/hub/backend/app/models/projects.py +73 -0
  179. calkit_python-0.41.25/hub/backend/app/models/releases.py +496 -0
  180. calkit_python-0.41.25/hub/backend/app/orgs.py +14 -0
  181. calkit_python-0.41.25/hub/backend/app/pipeline.py +659 -0
  182. calkit_python-0.41.25/hub/backend/app/projects.py +924 -0
  183. calkit_python-0.41.25/hub/backend/app/security.py +124 -0
  184. calkit_python-0.41.25/hub/backend/app/storage.py +449 -0
  185. calkit_python-0.41.25/hub/backend/app/stripe.py +128 -0
  186. calkit_python-0.41.25/hub/backend/app/subscriptions.py +153 -0
  187. calkit_python-0.41.25/hub/backend/app/tests/__init__.py +81 -0
  188. calkit_python-0.41.25/hub/backend/app/tests/api/__init__.py +0 -0
  189. calkit_python-0.41.25/hub/backend/app/tests/api/routes/__init__.py +0 -0
  190. calkit_python-0.41.25/hub/backend/app/tests/api/routes/projects/__init__.py +0 -0
  191. calkit_python-0.41.25/hub/backend/app/tests/api/routes/projects/test_core.py +2418 -0
  192. calkit_python-0.41.25/hub/backend/app/tests/api/routes/projects/test_dvc.py +260 -0
  193. calkit_python-0.41.25/hub/backend/app/tests/api/routes/projects/test_fs.py +202 -0
  194. calkit_python-0.41.25/hub/backend/app/tests/api/routes/test_feature_votes.py +72 -0
  195. calkit_python-0.41.25/hub/backend/app/tests/api/routes/test_login.py +435 -0
  196. calkit_python-0.41.25/hub/backend/app/tests/api/routes/test_releases.py +623 -0
  197. calkit_python-0.41.25/hub/backend/app/tests/api/routes/test_users.py +613 -0
  198. calkit_python-0.41.25/hub/backend/app/tests/conftest.py +40 -0
  199. calkit_python-0.41.25/hub/backend/app/tests/test_client.py +1 -0
  200. calkit_python-0.41.25/hub/backend/app/tests/test_core.py +21 -0
  201. calkit_python-0.41.25/hub/backend/app/tests/test_db.py +30 -0
  202. calkit_python-0.41.25/hub/backend/app/tests/test_dvc.py +121 -0
  203. calkit_python-0.41.25/hub/backend/app/tests/test_git.py +238 -0
  204. calkit_python-0.41.25/hub/backend/app/tests/test_pipeline.py +745 -0
  205. calkit_python-0.41.25/hub/backend/app/tests/test_projects.py +330 -0
  206. calkit_python-0.41.25/hub/backend/app/tests/test_users.py +143 -0
  207. calkit_python-0.41.25/hub/backend/app/users.py +757 -0
  208. calkit_python-0.41.25/hub/backend/app/zenodo.py +10 -0
  209. calkit_python-0.41.25/hub/backend/app/zotero.py +1150 -0
  210. calkit_python-0.41.25/hub/backend/prestart.sh +10 -0
  211. calkit_python-0.41.25/hub/backend/pyproject.toml +73 -0
  212. calkit_python-0.41.25/hub/backend/scripts/backend-pre-start.py +4 -0
  213. calkit_python-0.41.25/hub/backend/scripts/create-initial-data.py +22 -0
  214. calkit_python-0.41.25/hub/backend/scripts/format.sh +5 -0
  215. calkit_python-0.41.25/hub/backend/scripts/generate-client.py +9 -0
  216. calkit_python-0.41.25/hub/backend/scripts/lint.sh +8 -0
  217. calkit_python-0.41.25/hub/backend/scripts/rotate-fernet-secrets.py +130 -0
  218. calkit_python-0.41.25/hub/backend/scripts/test.sh +8 -0
  219. calkit_python-0.41.25/hub/backend/tests-start.sh +53 -0
  220. calkit_python-0.41.25/hub/config/alloy/config.alloy +73 -0
  221. calkit_python-0.41.25/hub/config/grafana/provisioning/dashboards/dashboards.yml +12 -0
  222. calkit_python-0.41.25/hub/config/grafana/provisioning/dashboards/fastapi.json +242 -0
  223. calkit_python-0.41.25/hub/config/grafana/provisioning/datasources/datasources.yml +22 -0
  224. calkit_python-0.41.25/hub/config/loki/loki.yml +38 -0
  225. calkit_python-0.41.25/hub/config/prometheus/prometheus.yml +16 -0
  226. calkit_python-0.41.25/hub/docker-compose.override.yml +167 -0
  227. calkit_python-0.41.25/hub/docker-compose.traefik.yml +80 -0
  228. calkit_python-0.41.25/hub/docker-compose.yml +430 -0
  229. calkit_python-0.41.25/hub/docs/dev/database-migrations.md +21 -0
  230. calkit_python-0.41.25/hub/docs/dev/deployment.md +326 -0
  231. calkit_python-0.41.25/hub/docs/dev/development.md +187 -0
  232. calkit_python-0.41.25/hub/frontend/.dockerignore +2 -0
  233. calkit_python-0.41.25/hub/frontend/.gitignore +32 -0
  234. calkit_python-0.41.25/hub/frontend/.nvmrc +1 -0
  235. calkit_python-0.41.25/hub/frontend/Dockerfile +45 -0
  236. calkit_python-0.41.25/hub/frontend/Makefile +22 -0
  237. calkit_python-0.41.25/hub/frontend/README.md +124 -0
  238. calkit_python-0.41.25/hub/frontend/biome.json +45 -0
  239. calkit_python-0.41.25/hub/frontend/index.html +13 -0
  240. calkit_python-0.41.25/hub/frontend/modify-openapi-operationids.js +36 -0
  241. calkit_python-0.41.25/hub/frontend/nginx-backend-not-found.conf +9 -0
  242. calkit_python-0.41.25/hub/frontend/nginx.conf +46 -0
  243. calkit_python-0.41.25/hub/frontend/openapi-ts.config.ts +29 -0
  244. calkit_python-0.41.25/hub/frontend/package-lock.json +20108 -0
  245. calkit_python-0.41.25/hub/frontend/package.json +82 -0
  246. calkit_python-0.41.25/hub/frontend/playwright.config.ts +95 -0
  247. calkit_python-0.41.25/hub/frontend/public/assets/images/c-to-the-k.svg +77 -0
  248. calkit_python-0.41.25/hub/frontend/public/assets/images/calkit-no-bg.svg +165 -0
  249. calkit_python-0.41.25/hub/frontend/public/assets/images/calkit.svg +174 -0
  250. calkit_python-0.41.25/hub/frontend/public/assets/images/fastapi-logo.svg +51 -0
  251. calkit_python-0.41.25/hub/frontend/public/assets/images/favicon.png +0 -0
  252. calkit_python-0.41.25/hub/frontend/public/assets/images/kdot.svg +22 -0
  253. calkit_python-0.41.25/hub/frontend/public/tex/.gitignore +14 -0
  254. calkit_python-0.41.25/hub/frontend/public/tex/LICENSE-busytex +67 -0
  255. calkit_python-0.41.25/hub/frontend/public/tex/busytex.js +8555 -0
  256. calkit_python-0.41.25/hub/frontend/public/tex/busytex.wasm +0 -0
  257. calkit_python-0.41.25/hub/frontend/public/tex/busytex_pipeline.js +750 -0
  258. calkit_python-0.41.25/hub/frontend/public/tex/busytex_worker.js +34 -0
  259. calkit_python-0.41.25/hub/frontend/scripts/download-tex-engine.sh +59 -0
  260. calkit_python-0.41.25/hub/frontend/src/client/client/client.gen.ts +172 -0
  261. calkit_python-0.41.25/hub/frontend/src/client/client/index.ts +25 -0
  262. calkit_python-0.41.25/hub/frontend/src/client/client/types.gen.ts +204 -0
  263. calkit_python-0.41.25/hub/frontend/src/client/client/utils.gen.ts +211 -0
  264. calkit_python-0.41.25/hub/frontend/src/client/client.gen.ts +26 -0
  265. calkit_python-0.41.25/hub/frontend/src/client/core/auth.gen.ts +48 -0
  266. calkit_python-0.41.25/hub/frontend/src/client/core/bodySerializer.gen.ts +96 -0
  267. calkit_python-0.41.25/hub/frontend/src/client/core/params.gen.ts +186 -0
  268. calkit_python-0.41.25/hub/frontend/src/client/core/pathSerializer.gen.ts +187 -0
  269. calkit_python-0.41.25/hub/frontend/src/client/core/queryKeySerializer.gen.ts +139 -0
  270. calkit_python-0.41.25/hub/frontend/src/client/core/serverSentEvents.gen.ts +265 -0
  271. calkit_python-0.41.25/hub/frontend/src/client/core/types.gen.ts +124 -0
  272. calkit_python-0.41.25/hub/frontend/src/client/core/utils.gen.ts +146 -0
  273. calkit_python-0.41.25/hub/frontend/src/client/index.ts +1002 -0
  274. calkit_python-0.41.25/hub/frontend/src/client/schemas.gen.ts +8972 -0
  275. calkit_python-0.41.25/hub/frontend/src/client/sdk.gen.ts +7054 -0
  276. calkit_python-0.41.25/hub/frontend/src/client/types.gen.ts +11119 -0
  277. calkit_python-0.41.25/hub/frontend/src/components/Admin/AddUser.tsx +189 -0
  278. calkit_python-0.41.25/hub/frontend/src/components/Admin/EditUser.tsx +179 -0
  279. calkit_python-0.41.25/hub/frontend/src/components/Common/ActionsMenu.tsx +75 -0
  280. calkit_python-0.41.25/hub/frontend/src/components/Common/ArtifactCompareModal.tsx +1007 -0
  281. calkit_python-0.41.25/hub/frontend/src/components/Common/ClearableInput.tsx +58 -0
  282. calkit_python-0.41.25/hub/frontend/src/components/Common/CommentsPanel.tsx +450 -0
  283. calkit_python-0.41.25/hub/frontend/src/components/Common/ConnectGitHubPrompt.tsx +41 -0
  284. calkit_python-0.41.25/hub/frontend/src/components/Common/DeleteAlert.tsx +157 -0
  285. calkit_python-0.41.25/hub/frontend/src/components/Common/GlobalSearch.tsx +308 -0
  286. calkit_python-0.41.25/hub/frontend/src/components/Common/LoadingSpinner.tsx +17 -0
  287. calkit_python-0.41.25/hub/frontend/src/components/Common/Markdown.tsx +195 -0
  288. calkit_python-0.41.25/hub/frontend/src/components/Common/Mermaid.tsx +186 -0
  289. calkit_python-0.41.25/hub/frontend/src/components/Common/Navbar.tsx +45 -0
  290. calkit_python-0.41.25/hub/frontend/src/components/Common/NotFound.tsx +43 -0
  291. calkit_python-0.41.25/hub/frontend/src/components/Common/NotificationBell.tsx +148 -0
  292. calkit_python-0.41.25/hub/frontend/src/components/Common/PageMenu.tsx +32 -0
  293. calkit_python-0.41.25/hub/frontend/src/components/Common/PdfCanvas.tsx +112 -0
  294. calkit_python-0.41.25/hub/frontend/src/components/Common/PdfDocumentViewer.tsx +1212 -0
  295. calkit_python-0.41.25/hub/frontend/src/components/Common/ProjectCommandPalette.tsx +185 -0
  296. calkit_python-0.41.25/hub/frontend/src/components/Common/RefPicker.tsx +210 -0
  297. calkit_python-0.41.25/hub/frontend/src/components/Common/Sidebar.tsx +91 -0
  298. calkit_python-0.41.25/hub/frontend/src/components/Common/SidebarItems.tsx +144 -0
  299. calkit_python-0.41.25/hub/frontend/src/components/Common/Tooltip.tsx +11 -0
  300. calkit_python-0.41.25/hub/frontend/src/components/Common/Topbar.tsx +197 -0
  301. calkit_python-0.41.25/hub/frontend/src/components/Common/UserMenu.tsx +75 -0
  302. calkit_python-0.41.25/hub/frontend/src/components/Datasets/DatasetFromExisting.tsx +157 -0
  303. calkit_python-0.41.25/hub/frontend/src/components/Datasets/UploadDataset.tsx +177 -0
  304. calkit_python-0.41.25/hub/frontend/src/components/Environments/ViewEnvironment.tsx +58 -0
  305. calkit_python-0.41.25/hub/frontend/src/components/Figures/FigureFromExisting.tsx +159 -0
  306. calkit_python-0.41.25/hub/frontend/src/components/Figures/FigureView.tsx +188 -0
  307. calkit_python-0.41.25/hub/frontend/src/components/Figures/UploadFigure.tsx +176 -0
  308. calkit_python-0.41.25/hub/frontend/src/components/Files/EditFileInfo.tsx +216 -0
  309. calkit_python-0.41.25/hub/frontend/src/components/Files/FileContent.tsx +153 -0
  310. calkit_python-0.41.25/hub/frontend/src/components/Files/SelectedItemInfo.tsx +343 -0
  311. calkit_python-0.41.25/hub/frontend/src/components/Files/UploadFile.tsx +145 -0
  312. calkit_python-0.41.25/hub/frontend/src/components/Local/AddPath.tsx +146 -0
  313. calkit_python-0.41.25/hub/frontend/src/components/Local/DiscardChanges.tsx +92 -0
  314. calkit_python-0.41.25/hub/frontend/src/components/Local/IgnorePath.tsx +141 -0
  315. calkit_python-0.41.25/hub/frontend/src/components/Local/NewStage.tsx +403 -0
  316. calkit_python-0.41.25/hub/frontend/src/components/Local/SaveFiles.tsx +181 -0
  317. calkit_python-0.41.25/hub/frontend/src/components/Notebooks/NotebookView.tsx +37 -0
  318. calkit_python-0.41.25/hub/frontend/src/components/Orgs/AddMember.tsx +112 -0
  319. calkit_python-0.41.25/hub/frontend/src/components/Orgs/NewOrg.tsx +148 -0
  320. calkit_python-0.41.25/hub/frontend/src/components/Presentations/PresentationView.tsx +333 -0
  321. calkit_python-0.41.25/hub/frontend/src/components/Projects/AddCollaborator.tsx +144 -0
  322. calkit_python-0.41.25/hub/frontend/src/components/Projects/CloneProject.tsx +52 -0
  323. calkit_python-0.41.25/hub/frontend/src/components/Projects/CreateIssue.tsx +147 -0
  324. calkit_python-0.41.25/hub/frontend/src/components/Projects/CreateQuestion.tsx +127 -0
  325. calkit_python-0.41.25/hub/frontend/src/components/Projects/EditProject.tsx +128 -0
  326. calkit_python-0.41.25/hub/frontend/src/components/Projects/EditQuestion.tsx +353 -0
  327. calkit_python-0.41.25/hub/frontend/src/components/Projects/HelpContent.tsx +357 -0
  328. calkit_python-0.41.25/hub/frontend/src/components/Projects/InviteLinks.tsx +426 -0
  329. calkit_python-0.41.25/hub/frontend/src/components/Projects/MakeProjectPublic.tsx +108 -0
  330. calkit_python-0.41.25/hub/frontend/src/components/Projects/NewProject.tsx +327 -0
  331. calkit_python-0.41.25/hub/frontend/src/components/Projects/ProjectShowcase.tsx +105 -0
  332. calkit_python-0.41.25/hub/frontend/src/components/Projects/ProjectStatus.tsx +148 -0
  333. calkit_python-0.41.25/hub/frontend/src/components/Publications/ImportOverleaf.tsx +426 -0
  334. calkit_python-0.41.25/hub/frontend/src/components/Publications/LatexEditor.tsx +846 -0
  335. calkit_python-0.41.25/hub/frontend/src/components/Publications/NewPublication.tsx +294 -0
  336. calkit_python-0.41.25/hub/frontend/src/components/Publications/PdfAnnotator.tsx +478 -0
  337. calkit_python-0.41.25/hub/frontend/src/components/Publications/PublicationView.tsx +88 -0
  338. calkit_python-0.41.25/hub/frontend/src/components/References/DeleteReferenceItemDialog.tsx +93 -0
  339. calkit_python-0.41.25/hub/frontend/src/components/References/DeleteReferencesCollectionDialog.tsx +95 -0
  340. calkit_python-0.41.25/hub/frontend/src/components/References/EditReferenceItemModal.tsx +263 -0
  341. calkit_python-0.41.25/hub/frontend/src/components/References/FileViewModal.tsx +43 -0
  342. calkit_python-0.41.25/hub/frontend/src/components/References/ImportFromZoteroModal.tsx +350 -0
  343. calkit_python-0.41.25/hub/frontend/src/components/References/LabelExistingReferences.tsx +130 -0
  344. calkit_python-0.41.25/hub/frontend/src/components/References/NewReferencesCollection.tsx +120 -0
  345. calkit_python-0.41.25/hub/frontend/src/components/References/ReferenceItemModal.tsx +519 -0
  346. calkit_python-0.41.25/hub/frontend/src/components/References/ReferencesInfoPanel.tsx +268 -0
  347. calkit_python-0.41.25/hub/frontend/src/components/Releases/ArtifactReleasesPanel.tsx +242 -0
  348. calkit_python-0.41.25/hub/frontend/src/components/Releases/NewRelease.tsx +669 -0
  349. calkit_python-0.41.25/hub/frontend/src/components/Releases/PathPicker.tsx +326 -0
  350. calkit_python-0.41.25/hub/frontend/src/components/Releases/ReleasePdfAnnotator.tsx +202 -0
  351. calkit_python-0.41.25/hub/frontend/src/components/Releases/ReleaseViewer.tsx +1149 -0
  352. calkit_python-0.41.25/hub/frontend/src/components/Releases/ReleasesTable.tsx +533 -0
  353. calkit_python-0.41.25/hub/frontend/src/components/Releases/ShareDialog.tsx +330 -0
  354. calkit_python-0.41.25/hub/frontend/src/components/Releases/releaseSort.ts +21 -0
  355. calkit_python-0.41.25/hub/frontend/src/components/UserSettings/Appearance.tsx +38 -0
  356. calkit_python-0.41.25/hub/frontend/src/components/UserSettings/ChangePassword.tsx +126 -0
  357. calkit_python-0.41.25/hub/frontend/src/components/UserSettings/ConnectedAccounts.tsx +348 -0
  358. calkit_python-0.41.25/hub/frontend/src/components/UserSettings/DeleteAccount.tsx +35 -0
  359. calkit_python-0.41.25/hub/frontend/src/components/UserSettings/DeleteConfirmation.tsx +102 -0
  360. calkit_python-0.41.25/hub/frontend/src/components/UserSettings/NewToken.tsx +160 -0
  361. calkit_python-0.41.25/hub/frontend/src/components/UserSettings/PickSubscription.tsx +541 -0
  362. calkit_python-0.41.25/hub/frontend/src/components/UserSettings/Subscription.tsx +182 -0
  363. calkit_python-0.41.25/hub/frontend/src/components/UserSettings/UpdateOverleafToken.tsx +123 -0
  364. calkit_python-0.41.25/hub/frontend/src/components/UserSettings/UserInformation.tsx +157 -0
  365. calkit_python-0.41.25/hub/frontend/src/components/UserSettings/UserTokens.tsx +113 -0
  366. calkit_python-0.41.25/hub/frontend/src/hooks/useAuth.ts +209 -0
  367. calkit_python-0.41.25/hub/frontend/src/hooks/useCustomToast.ts +23 -0
  368. calkit_python-0.41.25/hub/frontend/src/hooks/useProject.ts +395 -0
  369. calkit_python-0.41.25/hub/frontend/src/lib/analytics.test.ts +83 -0
  370. calkit_python-0.41.25/hub/frontend/src/lib/analytics.ts +25 -0
  371. calkit_python-0.41.25/hub/frontend/src/lib/api.test.ts +40 -0
  372. calkit_python-0.41.25/hub/frontend/src/lib/api.ts +22 -0
  373. calkit_python-0.41.25/hub/frontend/src/lib/auth.test.ts +188 -0
  374. calkit_python-0.41.25/hub/frontend/src/lib/auth.ts +204 -0
  375. calkit_python-0.41.25/hub/frontend/src/lib/bibtex.test.ts +90 -0
  376. calkit_python-0.41.25/hub/frontend/src/lib/bibtex.ts +142 -0
  377. calkit_python-0.41.25/hub/frontend/src/lib/core.ts +14 -0
  378. calkit_python-0.41.25/hub/frontend/src/lib/errors.ts +12 -0
  379. calkit_python-0.41.25/hub/frontend/src/lib/github.test.ts +119 -0
  380. calkit_python-0.41.25/hub/frontend/src/lib/github.ts +58 -0
  381. calkit_python-0.41.25/hub/frontend/src/lib/google.ts +39 -0
  382. calkit_python-0.41.25/hub/frontend/src/lib/keyboard.ts +10 -0
  383. calkit_python-0.41.25/hub/frontend/src/lib/latexCompiler.ts +300 -0
  384. calkit_python-0.41.25/hub/frontend/src/lib/latexProject.ts +220 -0
  385. calkit_python-0.41.25/hub/frontend/src/lib/layout.ts +3 -0
  386. calkit_python-0.41.25/hub/frontend/src/lib/pipelineYaml.test.ts +120 -0
  387. calkit_python-0.41.25/hub/frontend/src/lib/pipelineYaml.ts +110 -0
  388. calkit_python-0.41.25/hub/frontend/src/lib/releases.ts +160 -0
  389. calkit_python-0.41.25/hub/frontend/src/lib/strings.ts +75 -0
  390. calkit_python-0.41.25/hub/frontend/src/lib/zenodo.ts +22 -0
  391. calkit_python-0.41.25/hub/frontend/src/main.tsx +63 -0
  392. calkit_python-0.41.25/hub/frontend/src/routeTree.gen.ts +904 -0
  393. calkit_python-0.41.25/hub/frontend/src/routes/__root.tsx +34 -0
  394. calkit_python-0.41.25/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/app.tsx +64 -0
  395. calkit_python-0.41.25/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/collaborators.tsx +211 -0
  396. calkit_python-0.41.25/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/datasets.tsx +139 -0
  397. calkit_python-0.41.25/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/environments.tsx +194 -0
  398. calkit_python-0.41.25/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/figures.tsx +350 -0
  399. calkit_python-0.41.25/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/files.tsx +501 -0
  400. calkit_python-0.41.25/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/history.tsx +718 -0
  401. calkit_python-0.41.25/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/index.tsx +895 -0
  402. calkit_python-0.41.25/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/local.tsx +629 -0
  403. calkit_python-0.41.25/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/notebooks.tsx +306 -0
  404. calkit_python-0.41.25/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/pipeline.tsx +324 -0
  405. calkit_python-0.41.25/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/presentations.tsx +378 -0
  406. calkit_python-0.41.25/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/publications.tsx +644 -0
  407. calkit_python-0.41.25/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/references.tsx +963 -0
  408. calkit_python-0.41.25/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/releases.tsx +103 -0
  409. calkit_python-0.41.25/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout/software.tsx +88 -0
  410. calkit_python-0.41.25/hub/frontend/src/routes/_layout/$accountName/$projectName/_layout.tsx +580 -0
  411. calkit_python-0.41.25/hub/frontend/src/routes/_layout/$accountName/$projectName/releases/$releaseName.tsx +62 -0
  412. calkit_python-0.41.25/hub/frontend/src/routes/_layout/$accountName/index.tsx +245 -0
  413. calkit_python-0.41.25/hub/frontend/src/routes/_layout/admin.tsx +185 -0
  414. calkit_python-0.41.25/hub/frontend/src/routes/_layout/datasets.tsx +203 -0
  415. calkit_python-0.41.25/hub/frontend/src/routes/_layout/index.tsx +288 -0
  416. calkit_python-0.41.25/hub/frontend/src/routes/_layout/learn.tsx +82 -0
  417. calkit_python-0.41.25/hub/frontend/src/routes/_layout/orgs.tsx +171 -0
  418. calkit_python-0.41.25/hub/frontend/src/routes/_layout/projects.tsx +183 -0
  419. calkit_python-0.41.25/hub/frontend/src/routes/_layout/settings.tsx +101 -0
  420. calkit_python-0.41.25/hub/frontend/src/routes/_layout.tsx +109 -0
  421. calkit_python-0.41.25/hub/frontend/src/routes/auth/google.tsx +115 -0
  422. calkit_python-0.41.25/hub/frontend/src/routes/auth/zenodo.tsx +91 -0
  423. calkit_python-0.41.25/hub/frontend/src/routes/auth/zotero.tsx +114 -0
  424. calkit_python-0.41.25/hub/frontend/src/routes/checkout.tsx +45 -0
  425. calkit_python-0.41.25/hub/frontend/src/routes/join/$token.tsx +72 -0
  426. calkit_python-0.41.25/hub/frontend/src/routes/login/device.tsx +201 -0
  427. calkit_python-0.41.25/hub/frontend/src/routes/login/index.tsx +249 -0
  428. calkit_python-0.41.25/hub/frontend/src/routes/recover-password.tsx +110 -0
  429. calkit_python-0.41.25/hub/frontend/src/routes/reset-password.tsx +124 -0
  430. calkit_python-0.41.25/hub/frontend/src/routes/signup.tsx +180 -0
  431. calkit_python-0.41.25/hub/frontend/src/theme.tsx +87 -0
  432. calkit_python-0.41.25/hub/frontend/src/vite-env.d.ts +11 -0
  433. calkit_python-0.41.25/hub/frontend/tests/auth.setup.ts +39 -0
  434. calkit_python-0.41.25/hub/frontend/tests/config.ts +21 -0
  435. calkit_python-0.41.25/hub/frontend/tests/login.spec.ts +78 -0
  436. calkit_python-0.41.25/hub/frontend/tests/reset-password.spec.ts +123 -0
  437. calkit_python-0.41.25/hub/frontend/tests/user-settings.spec.ts +338 -0
  438. calkit_python-0.41.25/hub/frontend/tests/utils/mailcatcher.ts +59 -0
  439. calkit_python-0.41.25/hub/frontend/tests/utils/random.ts +13 -0
  440. calkit_python-0.41.25/hub/frontend/tests/utils/user.ts +38 -0
  441. calkit_python-0.41.25/hub/frontend/tsconfig.json +27 -0
  442. calkit_python-0.41.25/hub/frontend/tsconfig.node.json +10 -0
  443. calkit_python-0.41.25/hub/frontend/vite.config.ts +119 -0
  444. calkit_python-0.41.25/hub/frontend/vitest.config.ts +8 -0
  445. calkit_python-0.41.25/hub/scripts/build-push.sh +10 -0
  446. calkit_python-0.41.25/hub/scripts/build.sh +10 -0
  447. calkit_python-0.41.25/hub/scripts/deploy.sh +15 -0
  448. calkit_python-0.41.25/hub/scripts/pem-to-env.sh +17 -0
  449. calkit_python-0.41.25/hub/scripts/test-local.sh +15 -0
  450. calkit_python-0.41.25/hub/scripts/test.sh +11 -0
  451. calkit_python-0.41.25/hub/texmf-proxy/Dockerfile +17 -0
  452. calkit_python-0.41.25/hub/texmf-proxy/README.md +35 -0
  453. calkit_python-0.41.25/hub/texmf-proxy/proxy.py +85 -0
  454. calkit_python-0.41.25/mkdocs.yml +110 -0
  455. calkit_python-0.41.25/pyproject.toml +229 -0
  456. calkit_python-0.41.25/test/pipeline.ipynb +101 -0
  457. calkit_python-0.41.25/uv.lock +9754 -0
  458. calkit_python-0.41.25/vscode-ext/src/pipeline/core.ts +183 -0
  459. calkit_python-0.41.25/vscode-ext/src/sidebar.ts +1326 -0
  460. calkit_python-0.41.25/vscode-ext/src/test/pipeline.test.ts +165 -0
  461. calkit_python-0.41.25/vscode-ext/src/test/sidebar.test.ts +94 -0
  462. calkit_python-0.41.23/.gitignore +0 -27
  463. calkit_python-0.41.23/.pre-commit-config.yaml +0 -25
  464. calkit_python-0.41.23/Makefile +0 -73
  465. calkit_python-0.41.23/PKG-INFO +0 -406
  466. calkit_python-0.41.23/README.md +0 -347
  467. calkit_python-0.41.23/agent-plugin/skills/conventions/SKILL.md +0 -306
  468. calkit_python-0.41.23/calkit/__init__.py +0 -125
  469. calkit_python-0.41.23/calkit/calc.py +0 -255
  470. calkit_python-0.41.23/calkit/cli/cloud.py +0 -64
  471. calkit_python-0.41.23/calkit/cli/config.py +0 -345
  472. calkit_python-0.41.23/calkit/cli/core.py +0 -105
  473. calkit_python-0.41.23/calkit/cli/describe.py +0 -63
  474. calkit_python-0.41.23/calkit/cli/import_.py +0 -513
  475. calkit_python-0.41.23/calkit/cli/list.py +0 -367
  476. calkit_python-0.41.23/calkit/cli/main/core.py +0 -3414
  477. calkit_python-0.41.23/calkit/cli/new.py +0 -3846
  478. calkit_python-0.41.23/calkit/cli/overleaf.py +0 -683
  479. calkit_python-0.41.23/calkit/cli/update.py +0 -1268
  480. calkit_python-0.41.23/calkit/cloud.py +0 -437
  481. calkit_python-0.41.23/calkit/config.py +0 -227
  482. calkit_python-0.41.23/calkit/core.py +0 -850
  483. calkit_python-0.41.23/calkit/datasets.py +0 -71
  484. calkit_python-0.41.23/calkit/detect.py +0 -2351
  485. calkit_python-0.41.23/calkit/dvc/core.py +0 -846
  486. calkit_python-0.41.23/calkit/fs.py +0 -1145
  487. calkit_python-0.41.23/calkit/github.py +0 -70
  488. calkit_python-0.41.23/calkit/invenio.py +0 -141
  489. calkit_python-0.41.23/calkit/models/core.py +0 -469
  490. calkit_python-0.41.23/calkit/models/pipeline.py +0 -1367
  491. calkit_python-0.41.23/calkit/templates/core.py +0 -120
  492. calkit_python-0.41.23/calkit/tests/cli/main/test_core.py +0 -1984
  493. calkit_python-0.41.23/calkit/tests/cli/main/test_subprojects.py +0 -351
  494. calkit_python-0.41.23/calkit/tests/cli/test_cloud.py +0 -180
  495. calkit_python-0.41.23/calkit/tests/cli/test_config.py +0 -99
  496. calkit_python-0.41.23/calkit/tests/cli/test_latex.py +0 -165
  497. calkit_python-0.41.23/calkit/tests/cli/test_list.py +0 -159
  498. calkit_python-0.41.23/calkit/tests/cli/test_new.py +0 -1632
  499. calkit_python-0.41.23/calkit/tests/cli/test_update.py +0 -235
  500. calkit_python-0.41.23/calkit/tests/dvc/test_core.py +0 -398
  501. calkit_python-0.41.23/calkit/tests/models/test_core.py +0 -46
  502. calkit_python-0.41.23/calkit/tests/models/test_pipeline.py +0 -514
  503. calkit_python-0.41.23/calkit/tests/test_cloud.py +0 -449
  504. calkit_python-0.41.23/calkit/tests/test_conda.py +0 -514
  505. calkit_python-0.41.23/calkit/tests/test_fs.py +0 -397
  506. calkit_python-0.41.23/calkit/tests/test_pipeline.py +0 -2396
  507. calkit_python-0.41.23/docs/calkit-yaml.md +0 -42
  508. calkit_python-0.41.23/docs/cli-reference.md +0 -3371
  509. calkit_python-0.41.23/docs/cloud-integration.md +0 -27
  510. calkit_python-0.41.23/docs/datasets.md +0 -31
  511. calkit_python-0.41.23/docs/environments.md +0 -750
  512. calkit_python-0.41.23/docs/governance.md +0 -141
  513. calkit_python-0.41.23/docs/hpc.md +0 -203
  514. calkit_python-0.41.23/docs/index.md +0 -56
  515. calkit_python-0.41.23/docs/installation.md +0 -130
  516. calkit_python-0.41.23/docs/local-server.md +0 -23
  517. calkit_python-0.41.23/docs/notebooks.md +0 -328
  518. calkit_python-0.41.23/docs/overleaf.md +0 -206
  519. calkit_python-0.41.23/docs/quickstart.md +0 -107
  520. calkit_python-0.41.23/docs/releases.md +0 -124
  521. calkit_python-0.41.23/docs/tutorials/ai-agents.md +0 -144
  522. calkit_python-0.41.23/docs/tutorials/existing-project.md +0 -595
  523. calkit_python-0.41.23/docs/tutorials/latex-codespaces.md +0 -363
  524. calkit_python-0.41.23/docs/tutorials/notebook-pipeline.md +0 -208
  525. calkit_python-0.41.23/docs/tutorials/office.md +0 -352
  526. calkit_python-0.41.23/docs/tutorials/openfoam.md +0 -313
  527. calkit_python-0.41.23/docs/version-control.md +0 -233
  528. calkit_python-0.41.23/mkdocs.yml +0 -108
  529. calkit_python-0.41.23/pyproject.toml +0 -191
  530. calkit_python-0.41.23/test/pipeline.ipynb +0 -101
  531. calkit_python-0.41.23/uv.lock +0 -8149
  532. calkit_python-0.41.23/vscode-ext/src/pipeline/core.ts +0 -173
  533. calkit_python-0.41.23/vscode-ext/src/sidebar.ts +0 -1329
  534. calkit_python-0.41.23/vscode-ext/src/test/pipeline.test.ts +0 -150
  535. {calkit_python-0.41.23 → calkit_python-0.41.25}/.claude-plugin/marketplace.json +0 -0
  536. {calkit_python-0.41.23 → calkit_python-0.41.25}/.gitattributes +0 -0
  537. {calkit_python-0.41.23 → calkit_python-0.41.25}/.gitmodules +0 -0
  538. {calkit_python-0.41.23 → calkit_python-0.41.25}/.prettierignore +0 -0
  539. {calkit_python-0.41.23 → calkit_python-0.41.25}/.prettierrc.json +0 -0
  540. {calkit_python-0.41.23 → calkit_python-0.41.25}/.python-version +0 -0
  541. {calkit_python-0.41.23 → calkit_python-0.41.25}/.vscode/launch.json +0 -0
  542. {calkit_python-0.41.23 → calkit_python-0.41.25}/.vscode/tasks.json +0 -0
  543. {calkit_python-0.41.23 → calkit_python-0.41.25}/AGENTS.md +0 -0
  544. {calkit_python-0.41.23 → calkit_python-0.41.25}/CITATION.cff +0 -0
  545. {calkit_python-0.41.23 → calkit_python-0.41.25}/CODE_OF_CONDUCT.md +0 -0
  546. {calkit_python-0.41.23 → calkit_python-0.41.25}/CONTRIBUTING.md +0 -0
  547. {calkit_python-0.41.23 → calkit_python-0.41.25}/LICENSE +0 -0
  548. {calkit_python-0.41.23 → calkit_python-0.41.25}/agent-plugin/.claude-plugin/plugin.json +0 -0
  549. {calkit_python-0.41.23 → calkit_python-0.41.25}/agent-plugin/skills/add-pipeline-stage/SKILL.md +0 -0
  550. {calkit_python-0.41.23 → calkit_python-0.41.25}/agent-plugin/skills/create-pipeline/SKILL.md +0 -0
  551. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/__main__.py +0 -0
  552. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/check.py +0 -0
  553. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/cli/__init__.py +0 -0
  554. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/cli/check.py +0 -0
  555. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/cli/delete.py +0 -0
  556. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/cli/dev.py +0 -0
  557. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/cli/latex.py +0 -0
  558. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/cli/main/__init__.py +0 -0
  559. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/cli/main/xr.py +0 -0
  560. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/cli/notebooks.py +0 -0
  561. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/cli/office.py +0 -0
  562. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/cli/scheduler.py +0 -0
  563. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/conda.py +0 -0
  564. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/dependencies.py +0 -0
  565. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/docker.py +0 -0
  566. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/dvc/__init__.py +0 -0
  567. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/dvc/zip.py +0 -0
  568. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/environments.py +0 -0
  569. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/git.py +0 -0
  570. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/gui.py +0 -0
  571. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/install.py +0 -0
  572. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/julia.py +0 -0
  573. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/jupyter.py +0 -0
  574. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/jupyterlab/__init__.py +0 -0
  575. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/jupyterlab/routes.py +0 -0
  576. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/labextension/package.json +0 -0
  577. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/labextension/schemas/calkit/package.json.orig +0 -0
  578. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/labextension/schemas/calkit/plugin.json +0 -0
  579. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/labextension/static/502.9a2c5772a15466e923ef.js +0 -0
  580. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/labextension/static/695.2c41003a452d43d2b358.js +0 -0
  581. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/labextension/static/867.a42a046aa5108f54f8fb.js +0 -0
  582. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/labextension/static/909.e3f9cc3408834a7fdcc3.js +0 -0
  583. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/labextension/static/946.050af2abf7845cfbdbd2.js +0 -0
  584. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/labextension/static/946.050af2abf7845cfbdbd2.js.LICENSE.txt +0 -0
  585. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/labextension/static/b2f1c3efe70cb539d121.png +0 -0
  586. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/labextension/static/remoteEntry.ac9035764d5b2adbb542.js +0 -0
  587. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/labextension/static/style.js +0 -0
  588. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/labextension/static/third-party-licenses.json +0 -0
  589. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/licenses.py +0 -0
  590. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/magics.py +0 -0
  591. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/matlab.py +0 -0
  592. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/models/__init__.py +0 -0
  593. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/models/io.py +0 -0
  594. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/models/iteration.py +0 -0
  595. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/notebooks.py +0 -0
  596. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/office.py +0 -0
  597. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/ops.py +0 -0
  598. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/overleaf.py +0 -0
  599. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/pipeline.py +0 -0
  600. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/releases.py +0 -0
  601. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/server.py +0 -0
  602. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/templates/__init__.py +0 -0
  603. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/templates/latex/__init__.py +0 -0
  604. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/templates/latex/article/paper.tex +0 -0
  605. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/templates/latex/core.py +0 -0
  606. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/templates/latex/jfm/jfm.bst +0 -0
  607. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/templates/latex/jfm/jfm.cls +0 -0
  608. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/templates/latex/jfm/lineno-FLM.sty +0 -0
  609. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/templates/latex/jfm/paper.tex +0 -0
  610. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/templates/latex/jfm/upmath.sty +0 -0
  611. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/tests/__init__.py +0 -0
  612. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/tests/cli/__init__.py +0 -0
  613. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/tests/cli/main/__init__.py +0 -0
  614. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/tests/cli/main/test_lock.py +0 -0
  615. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/tests/cli/main/test_xr.py +0 -0
  616. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/tests/cli/test_check.py +0 -0
  617. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/tests/cli/test_delete.py +0 -0
  618. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/tests/cli/test_import.py +0 -0
  619. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/tests/cli/test_notebooks.py +0 -0
  620. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/tests/cli/test_overleaf.py +0 -0
  621. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/tests/cli/test_scheduler.py +0 -0
  622. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/tests/dvc/__init__.py +0 -0
  623. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/tests/dvc/test_zip.py +0 -0
  624. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/tests/jupyterlab/__init__.py +0 -0
  625. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/tests/jupyterlab/conftest.py +0 -0
  626. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/tests/jupyterlab/test_routes.py +0 -0
  627. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/tests/models/__init__.py +0 -0
  628. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/tests/models/test_iteration.py +0 -0
  629. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/tests/test_calc.py +0 -0
  630. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/tests/test_check.py +0 -0
  631. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/tests/test_core.py +0 -0
  632. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/tests/test_dependencies.py +0 -0
  633. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/tests/test_detect.py +0 -0
  634. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/tests/test_docker.py +0 -0
  635. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/tests/test_environments.py +0 -0
  636. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/tests/test_git.py +0 -0
  637. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/tests/test_install.py +0 -0
  638. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/tests/test_invenio.py +0 -0
  639. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/tests/test_julia.py +0 -0
  640. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/tests/test_jupyter.py +0 -0
  641. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/tests/test_licenses.py +0 -0
  642. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/tests/test_magics.py +0 -0
  643. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/tests/test_matlab.py +0 -0
  644. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/tests/test_notebooks.py +0 -0
  645. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/tests/test_releases.py +0 -0
  646. {calkit_python-0.41.23 → calkit_python-0.41.25}/calkit/tests/test_templates.py +0 -0
  647. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/CNAME +0 -0
  648. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/acknowledgements.md +0 -0
  649. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/ai-tools.md +0 -0
  650. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/apps.md +0 -0
  651. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/calculations.md +0 -0
  652. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/dependencies.md +0 -0
  653. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/examples.md +0 -0
  654. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/help.md +0 -0
  655. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/img/c-to-the-k-white.svg +0 -0
  656. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/img/calkit-fragmentation-compendium.png +0 -0
  657. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/img/calkit-no-bg.png +0 -0
  658. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/img/caltech.png +0 -0
  659. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/img/connect-zenodo.png +0 -0
  660. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/img/jupyterlab/all-green.png +0 -0
  661. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/img/jupyterlab/collect-data-stale.png +0 -0
  662. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/img/jupyterlab/new-env.png +0 -0
  663. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/img/jupyterlab/new-notebook.png +0 -0
  664. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/img/jupyterlab/pipeline-badge.png +0 -0
  665. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/img/jupyterlab-params.png +0 -0
  666. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/img/pipeline.png +0 -0
  667. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/img/plos-osi-code-2024-03.png +0 -0
  668. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/img/schmidt-sciences.png +0 -0
  669. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/img/vscode-nb-params.png +0 -0
  670. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/jupyterlab.md +0 -0
  671. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/pipeline/index.md +0 -0
  672. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/pipeline/manual-steps.md +0 -0
  673. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/pipeline/running-and-logging.md +0 -0
  674. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/questions.md +0 -0
  675. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/references.md +0 -0
  676. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/reproducibility.md +0 -0
  677. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/subprojects.md +0 -0
  678. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/adding-latex-pub-docker.md +0 -0
  679. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/conda-envs.md +0 -0
  680. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/first-project.md +0 -0
  681. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/github-actions.md +0 -0
  682. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/img/actions-repo-secrets.png +0 -0
  683. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/img/latex-codespaces/building-codespace.png +0 -0
  684. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/img/latex-codespaces/codespaces-secrets-2.png +0 -0
  685. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/img/latex-codespaces/editor-split.png +0 -0
  686. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/img/latex-codespaces/go-to-linked-code.png +0 -0
  687. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/img/latex-codespaces/issue-from-selection.png +0 -0
  688. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/img/latex-codespaces/new-project.png +0 -0
  689. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/img/latex-codespaces/new-pub-2.png +0 -0
  690. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/img/latex-codespaces/new-token.png +0 -0
  691. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/img/latex-codespaces/paper.tex.png +0 -0
  692. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/img/latex-codespaces/project-home-3.png +0 -0
  693. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/img/latex-codespaces/push.png +0 -0
  694. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/img/latex-codespaces/stage.png +0 -0
  695. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/img/office/anakin-excel.jpg +0 -0
  696. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/img/office/chart-more-rows.png +0 -0
  697. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/img/office/create-project.png +0 -0
  698. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/img/office/elsevier-research-data-guidelines.png +0 -0
  699. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/img/office/excel-chart.png +0 -0
  700. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/img/office/excel-data.png +0 -0
  701. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/img/office/insert-link-to-file.png +0 -0
  702. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/img/office/needs-clone.png +0 -0
  703. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/img/office/new-stage.png +0 -0
  704. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/img/office/phd-comics-version-control.webp +0 -0
  705. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/img/office/pipeline-out-of-date.png +0 -0
  706. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/img/office/status-more-rows.png +0 -0
  707. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/img/office/uncommitted-changes.png +0 -0
  708. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/img/office/untracked-data.png +0 -0
  709. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/img/office/updated-publication.png +0 -0
  710. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/img/office/word-to-pdf-stage-2.png +0 -0
  711. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/img/office/workflow-page.png +0 -0
  712. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/img/openfoam/clone.png +0 -0
  713. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/img/openfoam/create-project.png +0 -0
  714. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/img/openfoam/datasets-page.png +0 -0
  715. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/img/openfoam/figure-on-website-updated.png +0 -0
  716. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/img/openfoam/figure-on-website.png +0 -0
  717. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/img/openfoam/new-token.png +0 -0
  718. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/img/openfoam/reclone.png +0 -0
  719. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/img/openfoam/status-after-import-dataset.png +0 -0
  720. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/img/quick-actions.png +0 -0
  721. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/img/run-proc.png +0 -0
  722. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/img/vscode-slurm-notebook/create-calkit-env.png +0 -0
  723. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/img/vscode-slurm-notebook/create-inner-env.png +0 -0
  724. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/img/vscode-slurm-notebook/create-new-calkit-env.png +0 -0
  725. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/img/vscode-slurm-notebook/select-calkit-env.png +0 -0
  726. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/img/vscode-slurm-notebook/slurm-job-running.png +0 -0
  727. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/img/vscode-slurm-notebook/slurm-launch-options.png +0 -0
  728. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/img/vscode-slurm-notebook/starting-slurm-job.png +0 -0
  729. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/index.md +0 -0
  730. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/jupyterlab.md +0 -0
  731. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/matlab.md +0 -0
  732. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/procedures.md +0 -0
  733. {calkit_python-0.41.23 → calkit_python-0.41.25}/docs/tutorials/vscode-slurm-notebook.md +0 -0
  734. {calkit_python-0.41.23 → calkit_python-0.41.25}/flake.lock +0 -0
  735. {calkit_python-0.41.23 → calkit_python-0.41.25}/flake.nix +0 -0
  736. {calkit_python-0.41.23 → calkit_python-0.41.25}/jupyterlab-ext/.yarnrc.yml +0 -0
  737. {calkit_python-0.41.23 → calkit_python-0.41.25}/jupyterlab-ext/babel.config.js +0 -0
  738. {calkit_python-0.41.23 → calkit_python-0.41.25}/jupyterlab-ext/install.json +0 -0
  739. {calkit_python-0.41.23 → calkit_python-0.41.25}/jupyterlab-ext/jest.config.js +0 -0
  740. {calkit_python-0.41.23 → calkit_python-0.41.25}/jupyterlab-ext/jupyter-config/server-config/calkit.json +0 -0
  741. {calkit_python-0.41.23 → calkit_python-0.41.25}/jupyterlab-ext/package.json +0 -0
  742. {calkit_python-0.41.23 → calkit_python-0.41.25}/jupyterlab-ext/schema/plugin.json +0 -0
  743. {calkit_python-0.41.23 → calkit_python-0.41.25}/jupyterlab-ext/src/__tests__/useQueries.spec.ts +0 -0
  744. {calkit_python-0.41.23 → calkit_python-0.41.25}/jupyterlab-ext/src/calkit-config.ts +0 -0
  745. {calkit_python-0.41.23 → calkit_python-0.41.25}/jupyterlab-ext/src/cell-output-marker.ts +0 -0
  746. {calkit_python-0.41.23 → calkit_python-0.41.25}/jupyterlab-ext/src/components/commit-dialog.tsx +0 -0
  747. {calkit_python-0.41.23 → calkit_python-0.41.25}/jupyterlab-ext/src/components/environment-editor.tsx +0 -0
  748. {calkit_python-0.41.23 → calkit_python-0.41.25}/jupyterlab-ext/src/components/notebook-registration.tsx +0 -0
  749. {calkit_python-0.41.23 → calkit_python-0.41.25}/jupyterlab-ext/src/components/notebook-toolbar.tsx +0 -0
  750. {calkit_python-0.41.23 → calkit_python-0.41.25}/jupyterlab-ext/src/components/pipeline-status-bar.tsx +0 -0
  751. {calkit_python-0.41.23 → calkit_python-0.41.25}/jupyterlab-ext/src/components/project-info-editor.tsx +0 -0
  752. {calkit_python-0.41.23 → calkit_python-0.41.25}/jupyterlab-ext/src/components/sidebar-settings.tsx +0 -0
  753. {calkit_python-0.41.23 → calkit_python-0.41.25}/jupyterlab-ext/src/components/sidebar.tsx +0 -0
  754. {calkit_python-0.41.23 → calkit_python-0.41.25}/jupyterlab-ext/src/components/stage-editor.tsx +0 -0
  755. {calkit_python-0.41.23 → calkit_python-0.41.25}/jupyterlab-ext/src/feature-flags.ts +0 -0
  756. {calkit_python-0.41.23 → calkit_python-0.41.25}/jupyterlab-ext/src/file-browser-menu.ts +0 -0
  757. {calkit_python-0.41.23 → calkit_python-0.41.25}/jupyterlab-ext/src/hooks/__tests__/useQueries.test.tsx +0 -0
  758. {calkit_python-0.41.23 → calkit_python-0.41.25}/jupyterlab-ext/src/hooks/useQueries.ts +0 -0
  759. {calkit_python-0.41.23 → calkit_python-0.41.25}/jupyterlab-ext/src/icons.ts +0 -0
  760. {calkit_python-0.41.23 → calkit_python-0.41.25}/jupyterlab-ext/src/index.ts +0 -0
  761. {calkit_python-0.41.23 → calkit_python-0.41.25}/jupyterlab-ext/src/io-tracker.ts +0 -0
  762. {calkit_python-0.41.23 → calkit_python-0.41.25}/jupyterlab-ext/src/pipeline-state.ts +0 -0
  763. {calkit_python-0.41.23 → calkit_python-0.41.25}/jupyterlab-ext/src/queryClient.ts +0 -0
  764. {calkit_python-0.41.23 → calkit_python-0.41.25}/jupyterlab-ext/src/request.ts +0 -0
  765. {calkit_python-0.41.23 → calkit_python-0.41.25}/jupyterlab-ext/src/shims-mainmenu.d.ts +0 -0
  766. {calkit_python-0.41.23 → calkit_python-0.41.25}/jupyterlab-ext/style/base.css +0 -0
  767. {calkit_python-0.41.23 → calkit_python-0.41.25}/jupyterlab-ext/style/cell-output-marker.css +0 -0
  768. {calkit_python-0.41.23 → calkit_python-0.41.25}/jupyterlab-ext/style/environment-editor.css +0 -0
  769. {calkit_python-0.41.23 → calkit_python-0.41.25}/jupyterlab-ext/style/environment-selector.css +0 -0
  770. {calkit_python-0.41.23 → calkit_python-0.41.25}/jupyterlab-ext/style/img/calkit-no-bg.png +0 -0
  771. {calkit_python-0.41.23 → calkit_python-0.41.25}/jupyterlab-ext/style/index.css +0 -0
  772. {calkit_python-0.41.23 → calkit_python-0.41.25}/jupyterlab-ext/style/index.js +0 -0
  773. {calkit_python-0.41.23 → calkit_python-0.41.25}/jupyterlab-ext/style/notebook-toolbar.css +0 -0
  774. {calkit_python-0.41.23 → calkit_python-0.41.25}/jupyterlab-ext/style/pipeline-status-bar.css +0 -0
  775. {calkit_python-0.41.23 → calkit_python-0.41.25}/jupyterlab-ext/style/sidebar.css +0 -0
  776. {calkit_python-0.41.23 → calkit_python-0.41.25}/jupyterlab-ext/tsconfig.json +0 -0
  777. {calkit_python-0.41.23 → calkit_python-0.41.25}/jupyterlab-ext/tsconfig.test.json +0 -0
  778. {calkit_python-0.41.23 → calkit_python-0.41.25}/jupyterlab-ext/ui-tests/.gitignore +0 -0
  779. {calkit_python-0.41.23 → calkit_python-0.41.25}/jupyterlab-ext/ui-tests/README.md +0 -0
  780. {calkit_python-0.41.23 → calkit_python-0.41.25}/jupyterlab-ext/ui-tests/jupyter_server_test_config.py +0 -0
  781. {calkit_python-0.41.23 → calkit_python-0.41.25}/jupyterlab-ext/ui-tests/package.json +0 -0
  782. {calkit_python-0.41.23 → calkit_python-0.41.25}/jupyterlab-ext/ui-tests/playwright.config.js +0 -0
  783. {calkit_python-0.41.23 → calkit_python-0.41.25}/jupyterlab-ext/ui-tests/tests/calkit.spec.ts +0 -0
  784. {calkit_python-0.41.23 → calkit_python-0.41.25}/jupyterlab-ext/ui-tests/yarn.lock +0 -0
  785. {calkit_python-0.41.23 → calkit_python-0.41.25}/jupyterlab-ext/yarn.lock +0 -0
  786. {calkit_python-0.41.23 → calkit_python-0.41.25}/scripts/generate-docs-references.py +0 -0
  787. {calkit_python-0.41.23 → calkit_python-0.41.25}/scripts/install.ps1 +0 -0
  788. {calkit_python-0.41.23 → calkit_python-0.41.25}/scripts/install.sh +0 -0
  789. {calkit_python-0.41.23 → calkit_python-0.41.25}/scripts/make-calk9.sh +0 -0
  790. {calkit_python-0.41.23 → calkit_python-0.41.25}/scripts/sync-docs.py +0 -0
  791. {calkit_python-0.41.23 → calkit_python-0.41.25}/test/dvc-md5-dir/osx-arm64.txt +0 -0
  792. {calkit_python-0.41.23 → calkit_python-0.41.25}/test/nb-julia.ipynb +0 -0
  793. {calkit_python-0.41.23 → calkit_python-0.41.25}/test/nb-params.ipynb +0 -0
  794. {calkit_python-0.41.23 → calkit_python-0.41.25}/test/nb-subdir.ipynb +0 -0
  795. {calkit_python-0.41.23 → calkit_python-0.41.25}/test/script.py +0 -0
  796. {calkit_python-0.41.23 → calkit_python-0.41.25}/test/test-log.log +0 -0
  797. {calkit_python-0.41.23 → calkit_python-0.41.25}/vscode-ext/.gitignore +0 -0
  798. {calkit_python-0.41.23 → calkit_python-0.41.25}/vscode-ext/.vscodeignore +0 -0
  799. {calkit_python-0.41.23 → calkit_python-0.41.25}/vscode-ext/CHANGELOG.md +0 -0
  800. {calkit_python-0.41.23 → calkit_python-0.41.25}/vscode-ext/LICENSE +0 -0
  801. {calkit_python-0.41.23 → calkit_python-0.41.25}/vscode-ext/README.md +0 -0
  802. {calkit_python-0.41.23 → calkit_python-0.41.25}/vscode-ext/images/calkit-icon.svg +0 -0
  803. {calkit_python-0.41.23 → calkit_python-0.41.25}/vscode-ext/images/calkit-no-bg.png +0 -0
  804. {calkit_python-0.41.23 → calkit_python-0.41.25}/vscode-ext/package-lock.json +0 -0
  805. {calkit_python-0.41.23 → calkit_python-0.41.25}/vscode-ext/package.json +0 -0
  806. {calkit_python-0.41.23 → calkit_python-0.41.25}/vscode-ext/scripts/set-proposed-api.js +0 -0
  807. {calkit_python-0.41.23 → calkit_python-0.41.25}/vscode-ext/src/environments.ts +0 -0
  808. {calkit_python-0.41.23 → calkit_python-0.41.25}/vscode-ext/src/extension.ts +0 -0
  809. {calkit_python-0.41.23 → calkit_python-0.41.25}/vscode-ext/src/figures/core.ts +0 -0
  810. {calkit_python-0.41.23 → calkit_python-0.41.25}/vscode-ext/src/figures/view.ts +0 -0
  811. {calkit_python-0.41.23 → calkit_python-0.41.25}/vscode-ext/src/notebooks.ts +0 -0
  812. {calkit_python-0.41.23 → calkit_python-0.41.25}/vscode-ext/src/test/environments.test.ts +0 -0
  813. {calkit_python-0.41.23 → calkit_python-0.41.25}/vscode-ext/src/test/figures.test.ts +0 -0
  814. {calkit_python-0.41.23 → calkit_python-0.41.25}/vscode-ext/src/test/kernel-selection.test.ts +0 -0
  815. {calkit_python-0.41.23 → calkit_python-0.41.25}/vscode-ext/src/test/notebooks.test.ts +0 -0
  816. {calkit_python-0.41.23 → calkit_python-0.41.25}/vscode-ext/src/types.ts +0 -0
  817. {calkit_python-0.41.23 → calkit_python-0.41.25}/vscode-ext/tsconfig.json +0 -0
@@ -0,0 +1,26 @@
1
+ # The hub backend image builds with this directory as its context so it can
2
+ # install the calkit-python workspace member; keep everything it doesn't need
3
+ # out of the context
4
+ .git
5
+ .venv
6
+ .env
7
+ **/__pycache__
8
+ *.pyc
9
+ **/.mypy_cache
10
+ **/.pytest_cache
11
+ **/node_modules
12
+ **/.venv
13
+ .coverage
14
+ coverage.xml
15
+ htmlcov
16
+ dist
17
+ site
18
+ docs
19
+ examples
20
+ test
21
+ calk9
22
+ jupyterlab-ext
23
+ vscode-ext
24
+ hub/frontend
25
+ hub/texmf-proxy
26
+ hub/node_modules
@@ -0,0 +1,27 @@
1
+ dev.ipynb
2
+ *.pyc
3
+ .DS_Store
4
+ .vscode/settings.json
5
+ site
6
+ .env
7
+ .venv
8
+ .coverage*
9
+ coverage.xml
10
+ import.log
11
+ tsconfig.tsbuildinfo
12
+ jupyterlab-ext/lib
13
+ node_modules
14
+ .yarn
15
+ *.eslintcache
16
+ *.stylelintcache
17
+ calkit/labextension
18
+ coverage
19
+ junit.xml
20
+ calk9
21
+ dist
22
+ *.vsix
23
+ vscode-ext/out
24
+ .claude
25
+ TODO.md
26
+ **/__pycache__/
27
+ CLAUDE.md
@@ -0,0 +1,52 @@
1
+ # Python linting/formatting runs the uv-managed ruff over the whole repo
2
+ # with the root pyproject config, so the version and rules can't drift
3
+ # between packages. The hub frontend is formatted by its own pinned Biome
4
+ # to match hub/frontend/biome.json exactly.
5
+ repos:
6
+ - repo: https://github.com/pre-commit/pre-commit-hooks
7
+ rev: "v4.4.0"
8
+ hooks:
9
+ - id: check-added-large-files
10
+ - id: check-case-conflict
11
+ - id: check-merge-conflict
12
+ exclude: ^docs/overleaf\.md$
13
+ - id: check-toml
14
+ - id: end-of-file-fixer
15
+ exclude: ^hub/frontend/src/client/
16
+ - id: trailing-whitespace
17
+ exclude: ^hub/frontend/src/client/
18
+ - id: check-yaml
19
+ args: ["--unsafe"]
20
+ - id: check-json
21
+ # The hub has JSONC files (tsconfig.json, .vscode/launch.json)
22
+ exclude: ^hub/
23
+
24
+ - repo: local
25
+ hooks:
26
+ - id: ruff-check
27
+ name: ruff check
28
+ language: system
29
+ entry: bash -c 'uv run ruff check --fix --exit-non-zero-on-fix .'
30
+ pass_filenames: false
31
+ files: \.pyi?$
32
+ - id: ruff-format
33
+ name: ruff format
34
+ language: system
35
+ entry: bash -c 'uv run ruff format .'
36
+ pass_filenames: false
37
+ files: \.pyi?$
38
+
39
+ - repo: https://github.com/pre-commit/mirrors-prettier
40
+ rev: "v3.0.3"
41
+ hooks:
42
+ - id: prettier
43
+ exclude: calkit|^hub/
44
+
45
+ - repo: local
46
+ hooks:
47
+ - id: biome-format-hub-frontend
48
+ name: biome format (hub frontend)
49
+ language: system
50
+ entry: bash -c 'cd hub/frontend && npx biome format --write ./src'
51
+ pass_filenames: false
52
+ files: ^hub/frontend/src/.*\.(jsx?|tsx?|jsonc?|css)$
@@ -0,0 +1,81 @@
1
+ .PHONY: help
2
+ help: ## Show this help.
3
+ @uv run python -c "import re; \
4
+ [[print(f'\033[36m{m[0]:<20}\033[0m {m[1]}') for m in re.findall(r'^([a-zA-Z_-]+):.*?## (.*)$$', open(makefile).read(), re.M)] for makefile in ('$(MAKEFILE_LIST)').strip().split()]"
5
+
6
+ .PHONY: install
7
+ install: ## Create the project's virtual environment.
8
+ @echo "🚀 Creating virtual environment"
9
+ @uv sync
10
+
11
+ .PHONY: dev
12
+ dev: ## Start up the hub containers for development.
13
+ @$(MAKE) -C hub dev
14
+
15
+ .PHONY: frontend-client
16
+ frontend-client: ## Regenerate the hub frontend's API client.
17
+ @$(MAKE) -C hub/frontend client
18
+
19
+ .PHONY: format
20
+ format: sync-docs ## Automatically format files.
21
+ @echo "🚀 Linting code with pre-commit"
22
+ @uv run pre-commit run -a
23
+
24
+ .PHONY: check
25
+ check: format ## Run code quality tools.
26
+ @echo "🚀 Checking lock file consistency with 'pyproject.toml'"
27
+ @uv lock --locked
28
+ @echo "🚀 Static type checking with mypy"
29
+ @uv run --all-packages mypy
30
+ @echo "🚀 Checking for obsolete dependencies with deptry"
31
+ @uv run deptry .
32
+
33
+ .PHONY: test
34
+ test: ## Test the code with pytest.
35
+ @echo "🚀 Testing code with pytest"
36
+ @uv run pytest
37
+
38
+ .PHONY: test-cov
39
+ test-cov: ## Test the code coverage with pytest.
40
+ @echo "🚀 Testing code coverage with pytest"
41
+ @uv run pytest --cov --cov-config=pyproject.toml
42
+
43
+ .PHONY: test-docs
44
+ test-docs: sync-docs ## Test if documentation can be built without warnings or errors.
45
+ @uv run mkdocs build -s
46
+
47
+ .PHONY: sync-docs
48
+ sync-docs: ## Sync documentation content from docs/*.md into README.md.
49
+ @echo "🚀 Generating docs references"
50
+ @uv run python scripts/generate-docs-references.py
51
+ @echo "🚀 Syncing documentation"
52
+ @uv run python scripts/sync-docs.py
53
+
54
+ .PHONY: docs
55
+ docs: sync-docs ## Build and serve the documentation.
56
+ @uv run mkdocs serve --livereload
57
+
58
+ .PHONY: import-profile
59
+ import-profile: ## Profile the import time of the CLI.
60
+ uv run python -X importtime -m calkit --help 2> import.log && uvx tuna import.log
61
+
62
+ .PHONY: jlab-dev
63
+ jlab-dev: ## Develop the JupyterLab extension.
64
+ cd jupyterlab-ext && uv run jlpm run watch
65
+
66
+ .PHONY: jlab
67
+ jlab: ## Build the JupyterLab extension.
68
+ cd jupyterlab-ext && uv run jlpm run build:prod
69
+
70
+ .PHONY: test-jlab
71
+ test-jlab: ## Run JupyterLab extension unit tests with Jest.
72
+ @echo "🚀 Running JupyterLab extension unit tests"
73
+ @cd jupyterlab-ext && uv run jlpm test
74
+
75
+ .PHONY: test-jlab-ui
76
+ test-jlab-ui: ## Run the JupyterLab UI integration tests.
77
+ @echo "🚀 Running JupyterLab UI tests with Playwright"
78
+ @cd jupyterlab-ext && uv run jlpm run build:prod
79
+ @uv run --directory=jupyterlab-ext/ui-tests jlpm install
80
+ @uv run --directory=jupyterlab-ext/ui-tests jlpm playwright install
81
+ @uv run --directory=jupyterlab-ext/ui-tests jlpm playwright test -u --reporter=list
@@ -0,0 +1,406 @@
1
+ Metadata-Version: 2.4
2
+ Name: calkit-python
3
+ Version: 0.41.25
4
+ Summary: Reproducibility simplified.
5
+ Project-URL: Homepage, https://calkit.org
6
+ Project-URL: Issues, https://github.com/calkit/calkit/issues
7
+ Project-URL: Repository, https://github.com/calkit/calkit
8
+ Author-email: Pete Bachant <petebachant@gmail.com>
9
+ License-File: LICENSE
10
+ Classifier: Framework :: Jupyter
11
+ Classifier: Framework :: Jupyter :: JupyterLab
12
+ Classifier: Framework :: Jupyter :: JupyterLab :: 4
13
+ Classifier: Framework :: Jupyter :: JupyterLab :: Extensions
14
+ Classifier: Framework :: Jupyter :: JupyterLab :: Extensions :: Prebuilt
15
+ Classifier: License :: OSI Approved :: MIT License
16
+ Classifier: Operating System :: OS Independent
17
+ Classifier: Programming Language :: Python
18
+ Classifier: Programming Language :: Python :: 3
19
+ Classifier: Programming Language :: Python :: 3.10
20
+ Classifier: Programming Language :: Python :: 3.11
21
+ Classifier: Programming Language :: Python :: 3.12
22
+ Classifier: Programming Language :: Python :: 3.13
23
+ Classifier: Programming Language :: Python :: 3.14
24
+ Requires-Python: >=3.10
25
+ Requires-Dist: arithmeval
26
+ Requires-Dist: bibtexparser
27
+ Requires-Dist: checksumdir
28
+ Requires-Dist: docx2pdf
29
+ Requires-Dist: dvc[all]==3.67.1
30
+ Requires-Dist: fastapi
31
+ Requires-Dist: fsspec>=2026.4.0
32
+ Requires-Dist: gitpython
33
+ Requires-Dist: json2latex>=0.0.3
34
+ Requires-Dist: jupyterlab>=4.4.5
35
+ Requires-Dist: keyring
36
+ Requires-Dist: nbconvert
37
+ Requires-Dist: papermill>=2.6.0
38
+ Requires-Dist: pathspec<1.0.0
39
+ Requires-Dist: pillow
40
+ Requires-Dist: psutil>=7.0.0
41
+ Requires-Dist: pydantic-settings
42
+ Requires-Dist: pydantic[email]
43
+ Requires-Dist: pyjwt
44
+ Requires-Dist: python-dotenv>=1
45
+ Requires-Dist: pywin32; platform_system == 'Windows'
46
+ Requires-Dist: requests
47
+ Requires-Dist: sqlitedict>=2.1.0
48
+ Requires-Dist: texsoup>=0.3.3
49
+ Requires-Dist: toml>=0.10.2
50
+ Requires-Dist: tqdm>=4.67.1
51
+ Requires-Dist: typer==0.25.1
52
+ Requires-Dist: uvicorn
53
+ Provides-Extra: data
54
+ Requires-Dist: pandas>=2.2.3; extra == 'data'
55
+ Requires-Dist: polars>=1.18.0; extra == 'data'
56
+ Provides-Extra: xet
57
+ Requires-Dist: xet>=0.0.1; extra == 'xet'
58
+ Description-Content-Type: text/markdown
59
+
60
+ <p align="center">
61
+ <a href="https://calkit.org" target="_blank">
62
+ <img width="40%" src="docs/img/calkit-no-bg.png" alt="Calkit">
63
+ </a>
64
+ </p>
65
+ <p align="center">
66
+ <a href="https://docs.calkit.org" target="_blank">
67
+ Documentation
68
+ </a>
69
+ |
70
+ <a href="https://docs.calkit.org/tutorials" target="_blank">
71
+ Tutorials
72
+ </a>
73
+ |
74
+ <a href="https://github.com/orgs/calkit/discussions" target="_blank">
75
+ Discussions
76
+ </a>
77
+ </p>
78
+
79
+ <!-- INCLUDE: docs/index.md -->
80
+
81
+ Typical research workflows are horizontally-siloed, i.e.,
82
+ various stages--data collection, analysis, writing--are performed in
83
+ disconnected systems,
84
+ turning research into a slow, error-prone, and tedious
85
+ [waterfall](https://en.wikipedia.org/wiki/Waterfall_model) process.
86
+
87
+ Calkit helps you integrate code, data, figures, results, publications,
88
+ and more into a cohesive, traceable, and portable _knowledge creation system_,
89
+ so every output can be traced back to its source (provenance)
90
+ and reproduced with a single command.
91
+
92
+ With industry standard tools combined into a unified and simplified experience
93
+ tailored for research,
94
+ you can reap the rewards of reproducibility and automation
95
+ without the cognitive overhead.
96
+
97
+ <!-- https://docs.google.com/drawings/d/1XMGnbgYYNFAVUBDyUaCyLfRB7efvJdrnrKmFlNmT19o/edit -->
98
+
99
+ ![pipeline](docs/img/pipeline.png)
100
+
101
+ ## Features
102
+
103
+ - A simplified [version control](https://docs.calkit.org/version-control)
104
+ interface that unifies Git and DVC (Data Version Control),
105
+ so everything can be kept in the same project repository.
106
+ This way, code doesn't need to be siloed away from other
107
+ important artifacts like datasets, models, figures, or article PDFs,
108
+ allowing you to work on all parts of a project without hopping around to
109
+ different tools.
110
+ - [Computational environment management](https://docs.calkit.org/environments) with support for many
111
+ languages and environment managers: Conda, Docker, uv, Julia, Renv, and more.
112
+ No need to create and update environments on your own. Calkit will handle
113
+ them as needed.
114
+ - An environment-aware build system or [pipeline](https://docs.calkit.org/pipeline) with
115
+ a simple declarative syntax and
116
+ output caching so you don't need to think about which steps or stages
117
+ need to be rerun after changing any part of the project.
118
+ Simply call `calkit run`.
119
+ Compose your pipeline from many different kinds of stages,
120
+ including simple scripts, commands, Jupyter Notebooks, LaTeX, and more.
121
+ - A complementary self-hostable and GitHub-integrated
122
+ [hub](https://github.com/calkit/calkit/tree/main/hub)
123
+ to facilitate backup, collaboration,
124
+ and sharing throughout the entire research lifecycle.
125
+ - [Overleaf integration](https://docs.calkit.org/overleaf/), so
126
+ analysis, visualization, and writing can all stay in sync
127
+ (no more manual uploads!)
128
+ - Support for running on [high performance computing (HPC)](https://docs.calkit.org/hpc) systems
129
+ that use PBS or SLURM schedulers.
130
+ - Support for automated running with
131
+ [GitHub Actions](https://docs.calkit.org/tutorials/github-actions).
132
+ - Extensions for doing all of the above graphically in
133
+ [JupyterLab](https://docs.calkit.org/jupyterlab) and
134
+ [VS Code](https://marketplace.visualstudio.com/items?itemName=Calkit.calkit-vscode).
135
+
136
+ <!-- END INCLUDE -->
137
+
138
+ ## Installation
139
+
140
+ <!-- INCLUDE: docs/installation.md +1 -->
141
+
142
+ On Linux, macOS, or Windows Git Bash,
143
+ install Calkit and [uv](https://docs.astral.sh/uv/)
144
+ (if not already installed) with:
145
+
146
+ ```sh
147
+ curl -LsSf install.calkit.org | sh
148
+ ```
149
+
150
+ Or with Windows Command Prompt or PowerShell:
151
+
152
+ ```powershell
153
+ powershell -ExecutionPolicy ByPass -c "irm install-ps1.calkit.org | iex"
154
+ ```
155
+
156
+ If you already have uv installed, install Calkit with:
157
+
158
+ ```sh
159
+ uv tool install calkit-python
160
+ ```
161
+
162
+ You can also install with your system Python:
163
+
164
+ ```sh
165
+ pip install calkit-python
166
+ ```
167
+
168
+ To effectively use Calkit, you'll want to ensure [Git](https://git-scm.com)
169
+ is installed and properly configured.
170
+ You may also want to install [Docker](https://docker.com),
171
+ since that is the default method by which LaTeX environments are created.
172
+ If you want to use a [Calkit hub](https://docs.calkit.org/hub)
173
+ for collaboration and backup as a DVC remote,
174
+ you can [connect to the hub](https://docs.calkit.org/hub) with:
175
+
176
+ ```sh
177
+ calkit hub login
178
+ ```
179
+
180
+ If you use AI agents like Claude, Copilot, or Codex,
181
+ see [AI tools](https://docs.calkit.org/ai-tools)
182
+ to learn how to install agent skills for working with Calkit.
183
+
184
+ ### Use without installing
185
+
186
+ If you want to use Calkit without installing it,
187
+ you can use uv's `uvx` command to run it directly:
188
+
189
+ ```sh
190
+ uvx calk9 --help
191
+ ```
192
+
193
+ ### Nix
194
+
195
+ Calkit ships a [flake](https://nixos.wiki/wiki/Flakes) at the root of
196
+ its repo, so [Nix](https://nixos.org/) users can pull the CLI into their
197
+ environments alongside their other tools.
198
+
199
+ Run it ad hoc without installing:
200
+
201
+ ```sh
202
+ nix run github:calkit/calkit -- --help
203
+ ```
204
+
205
+ Drop into a shell that has `calkit`, `git`, and `uv` on `PATH`:
206
+
207
+ ```sh
208
+ nix shell github:calkit/calkit
209
+ ```
210
+
211
+ Add it to your own `flake.nix` as an input:
212
+
213
+ ```nix
214
+ {
215
+ inputs.calkit.url = "github:calkit/calkit";
216
+ inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
217
+
218
+ outputs = { self, nixpkgs, calkit }: {
219
+ devShells.x86_64-linux.default =
220
+ nixpkgs.legacyPackages.x86_64-linux.mkShell {
221
+ packages = [ calkit.packages.x86_64-linux.default ];
222
+ };
223
+ };
224
+ }
225
+ ```
226
+
227
+ Then `nix develop` will give you a shell with the Calkit CLI ready to
228
+ use. To pin a specific Calkit release inside the shell, set the
229
+ `CALKIT_VERSION` environment variable (e.g. `CALKIT_VERSION=0.41.0`)
230
+ before invoking `calkit`.
231
+
232
+ The flake is currently a thin wrapper around `uvx --from calkit-python
233
+ calkit`. It depends on `uv` from `nixpkgs` and fetches the published
234
+ wheel from PyPI on first use. This trades a fully Nix-native build for
235
+ zero version-drift maintenance, and avoids the macOS `docx2pdf` /
236
+ `appscript` and JupyterLab labextension build issues that block a pure
237
+ nixpkgs derivation today. If you want a fully nixpkgs-native build,
238
+ see the community [`calkit-nix`](https://github.com/dwinkler1/calkit-nix)
239
+ flake.
240
+
241
+ Nix isn't supported natively on Windows; run Calkit inside
242
+ [WSL2](https://learn.microsoft.com/en-us/windows/wsl/install) and use
243
+ the flake there.
244
+
245
+ ### Running against a specific version
246
+
247
+ If a project requires a Calkit version other than the one you have
248
+ installed, use the top-level `--use-version` flag to re-invoke the CLI
249
+ under that release without changing your installation:
250
+
251
+ ```sh
252
+ calkit --use-version 0.38 run
253
+ ```
254
+
255
+ This re-execs the CLI via `uvx --from calkit-python@<version> calkit`,
256
+ so it requires [uv](https://docs.astral.sh/uv/) on `PATH`.
257
+ You can also declare a minimum version in `calkit.yaml`;
258
+ see
259
+ [Pinning the Calkit CLI version](https://docs.calkit.org/dependencies.md#pinning-the-calkit-cli-version).
260
+
261
+ ### Calkit Assistant
262
+
263
+ For Windows users, the
264
+ [Calkit Assistant](https://github.com/calkit/calkit-assistant)
265
+ app is the easiest way to get everything set up and ready to work in
266
+ VS Code, which can then be used as the primary app for working on
267
+ all scientific or analytical computing projects.
268
+
269
+ ![Calkit Assistant](https://github.com/calkit/calkit-assistant/blob/main/resources/screenshot.png?raw=true)
270
+
271
+ <!-- END INCLUDE -->
272
+
273
+ ## Quickstart
274
+
275
+ <!-- INCLUDE: docs/quickstart.md +1 -->
276
+
277
+ <!-- prettier-ignore -->
278
+ !!! note
279
+ `ck` is an abbreviated alias for the `calkit` executable.
280
+ All `calkit` commands can be run as `ck` instead, e.g., `ck save -am "..."`.
281
+
282
+ ### From an existing project
283
+
284
+ If you want to use Calkit with an existing project,
285
+ navigate into its working directory and use the `xr` command to start
286
+ executing and recording your scripts, notebooks, LaTeX files, etc.,
287
+ as reproducible pipeline stages.
288
+ For example:
289
+
290
+ ```sh
291
+ calkit xr scripts/analyze.py
292
+
293
+ calkit xr notebooks/plot.ipynb
294
+
295
+ calkit xr paper/main.tex
296
+ ```
297
+
298
+ Calkit will attempt to detect environments, inputs, and outputs and
299
+ save them in `calkit.yaml`.
300
+ If successful,
301
+ you'll be able to run the full pipeline with:
302
+
303
+ ```sh
304
+ calkit run
305
+ ```
306
+
307
+ Next, make a change to e.g., a script and look at the output of
308
+ `calkit status`.
309
+ You'll see that the pipeline has a stage that is out-of-date:
310
+
311
+ ```sh
312
+ ---------------------------- Pipeline ----------------------------
313
+ analyze:
314
+ changed deps:
315
+ modified: scripts/analyze.py
316
+ ```
317
+
318
+ This can be fixed with another call to `calkit run`.
319
+
320
+ You can save (add and commit) all changes with:
321
+
322
+ ```sh
323
+ calkit save -am "Add to pipeline"
324
+ ```
325
+
326
+ ### Fresh from a Calkit project template
327
+
328
+ Create a new project from the
329
+ [`calkit/example-basic`](https://github.com/calkit/example-basic)
330
+ template with:
331
+
332
+ ```sh
333
+ calkit new project my-research \
334
+ --title "My research" \
335
+ --template calkit/example-basic \
336
+ --hub
337
+ ```
338
+
339
+ Note the `--hub` flag requires [a hub connection](https://docs.calkit.org/hub)
340
+ to be set up, but can be omitted if the project doesn't need to be backed up to
341
+ the hub or shared with collaborators.
342
+ Hub integration can also be set up later.
343
+
344
+ Next, move into the project folder and run the pipeline,
345
+ which consists of several stages defined in `calkit.yaml`:
346
+
347
+ <!-- TODO: This takes a long time to pull the image -->
348
+
349
+ ```sh
350
+ cd my-research
351
+ calkit run
352
+ ```
353
+
354
+ Next, make some edits to a script or LaTeX file and run `calkit status` to
355
+ see what stages are out-of-date.
356
+ For example:
357
+
358
+ ```sh
359
+ ---------------------------- Pipeline ----------------------------
360
+ build-paper:
361
+ changed deps:
362
+ modified: paper/paper.tex
363
+ ```
364
+
365
+ Execute `calkit run` again to bring everything up-to-date.
366
+
367
+ To back up or save the project, call:
368
+
369
+ ```sh
370
+ calkit save -am "Run pipeline"
371
+ ```
372
+
373
+ ### With an AI coding agent
374
+
375
+ Simply tell the [AI agent](https://docs.calkit.org/ai-tools):
376
+
377
+ > Turn this folder into a Calkit project
378
+
379
+ or
380
+
381
+ > Create me a new Calkit project for investigating...
382
+
383
+ <!-- END INCLUDE -->
384
+
385
+ ## Get involved
386
+
387
+ We welcome all kinds of contributions!
388
+ See [CONTRIBUTING.md](CONTRIBUTING.md) to learn how to get involved.
389
+
390
+ ## Acknowledgements
391
+
392
+ <!-- INCLUDE: docs/acknowledgements.md +1 -->
393
+
394
+ Calkit is supported by the
395
+ [Caltech Schmidt Academy of Software Engineering](https://sase.caltech.edu).
396
+
397
+ <p align="center">
398
+ <a href="https://sase.caltech.edu" target="_blank">
399
+ <img width="40%" src="docs/img/caltech.png" alt="Caltech SASE">
400
+ </a>
401
+ <a href="https://schmidtsciences.org/" target="_blank">
402
+ <img width="40%" src="docs/img/schmidt-sciences.png" alt="Schmidt Sciences">
403
+ </a>
404
+ </p>
405
+
406
+ <!-- END INCLUDE -->