nmdc-runtime 2.10.0__tar.gz → 2.11.1__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.

Potentially problematic release.


This version of nmdc-runtime might be problematic. Click here for more details.

Files changed (406) hide show
  1. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/.github/workflows/build-and-release-to-spin.yml +2 -1
  2. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/.github/workflows/lint.yml +9 -4
  3. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/.github/workflows/mkdocs.yml +11 -7
  4. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/.github/workflows/python-app.yml +19 -11
  5. nmdc_runtime-2.11.1/.github/workflows/release-to-pypi.yml +37 -0
  6. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/Makefile +30 -61
  7. nmdc_runtime-2.11.1/PKG-INFO +46 -0
  8. nmdc_runtime-2.10.0/nmdc_runtime.egg-info/PKG-INFO → nmdc_runtime-2.11.1/README.md +30 -40
  9. nmdc_runtime-2.11.1/db/migrations/notebooks/migrate_11_10_0_to_11_11_1.ipynb +943 -0
  10. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docker-compose.test.yml +17 -2
  11. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docker-compose.yml +15 -3
  12. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/content/admin.md +5 -10
  13. nmdc_runtime-2.11.1/docs/content/contributing-docs.md +38 -0
  14. nmdc_runtime-2.11.1/docs/content/howto-guides/convert-api-responses.md +167 -0
  15. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/content/howto-guides/minting-ids.md +2 -2
  16. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/content/nb/ontology_loader.ipynb +48 -47
  17. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/content/tutorials/auth.md +2 -0
  18. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/content/tutorials/metadata-in.md +6 -9
  19. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/mkdocs.yml +1 -0
  20. nmdc_runtime-2.11.1/nmdc_runtime/Dockerfile +177 -0
  21. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/api/analytics.py +22 -2
  22. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/api/core/idgen.py +36 -6
  23. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/api/db/mongo.py +0 -12
  24. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/api/endpoints/find.py +65 -225
  25. nmdc_runtime-2.11.1/nmdc_runtime/api/endpoints/lib/linked_instances.py +180 -0
  26. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/api/endpoints/nmdcschema.py +65 -144
  27. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/api/endpoints/objects.py +4 -11
  28. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/api/endpoints/operations.py +0 -27
  29. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/api/endpoints/queries.py +22 -0
  30. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/api/endpoints/sites.py +0 -24
  31. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/api/endpoints/util.py +57 -35
  32. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/api/main.py +84 -60
  33. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/api/models/util.py +12 -5
  34. nmdc_runtime-2.11.1/nmdc_runtime/api/openapi.py +178 -0
  35. nmdc_runtime-2.11.1/nmdc_runtime/api/swagger_ui/assets/custom-elements.js +522 -0
  36. nmdc_runtime-2.11.1/nmdc_runtime/api/swagger_ui/assets/script.js +247 -0
  37. nmdc_runtime-2.11.1/nmdc_runtime/api/swagger_ui/assets/style.css +155 -0
  38. nmdc_runtime-2.11.1/nmdc_runtime/api/swagger_ui/swagger_ui.py +34 -0
  39. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/minter/adapters/repository.py +21 -0
  40. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/minter/domain/model.py +20 -0
  41. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/site/entrypoint-daemon.sh +1 -1
  42. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/site/entrypoint-dagit-readonly.sh +1 -1
  43. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/site/entrypoint-dagit.sh +1 -1
  44. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/site/export/ncbi_xml.py +632 -11
  45. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/site/export/ncbi_xml_utils.py +114 -0
  46. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/site/graphs.py +7 -0
  47. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/site/ops.py +92 -34
  48. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/site/repository.py +2 -0
  49. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/site/resources.py +16 -3
  50. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/site/translation/submission_portal_translator.py +82 -14
  51. nmdc_runtime-2.11.1/nmdc_runtime/static/NMDC_logo.svg +1073 -0
  52. nmdc_runtime-2.11.1/nmdc_runtime/static/ORCID-iD_icon_vector.svg +4 -0
  53. nmdc_runtime-2.11.1/nmdc_runtime/static/README.md +5 -0
  54. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/util.py +87 -1
  55. nmdc_runtime-2.11.1/pyproject.toml +151 -0
  56. nmdc_runtime-2.11.1/tests/conftest.py +275 -0
  57. nmdc_runtime-2.11.1/tests/e2e/test_minter_api.py +68 -0
  58. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/files/changesheet-without-separator3.tsv +2 -2
  59. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/test_api/test_endpoints.py +148 -51
  60. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/test_api/test_endpoints_lib.py +1 -0
  61. nmdc_runtime-2.11.1/tests/test_api/test_endpoints_util.py +45 -0
  62. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/test_api/test_metadata.py +21 -14
  63. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/test_data/data/plant_air_jgi_input.yaml +0 -14
  64. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/test_data/data/plant_air_jgi_output.yaml +0 -14
  65. nmdc_runtime-2.11.1/tests/test_data/data/soil_sample_link_input.yaml +103 -0
  66. nmdc_runtime-2.11.1/tests/test_data/data/soil_sample_link_output.yaml +139 -0
  67. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/test_data/test_ncbi_xml.py +673 -0
  68. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/test_data/test_submission_portal_translator.py +14 -1
  69. nmdc_runtime-2.11.1/tests/test_graphs/test_ensure_jobs.py +66 -0
  70. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/test_graphs/test_submission_portal_graphs.py +1 -0
  71. nmdc_runtime-2.11.1/tests/test_ops/test_materialize_alldocs.py +194 -0
  72. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/test_the_util/test_the_util.py +81 -0
  73. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/test_util.py +19 -2
  74. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/util/load_testing/README.md +1 -1
  75. nmdc_runtime-2.11.1/uv.lock +5748 -0
  76. nmdc_runtime-2.10.0/.github/workflows/release-to-pypi.yml +0 -30
  77. nmdc_runtime-2.10.0/PKG-INFO +0 -265
  78. nmdc_runtime-2.10.0/README.md +0 -242
  79. nmdc_runtime-2.10.0/demo/metadata_discovery/.env.example +0 -30
  80. nmdc_runtime-2.10.0/demo/metadata_discovery/GOLDs5levelEcosystemClassificationPaths.xlsx +0 -0
  81. nmdc_runtime-2.10.0/demo/metadata_discovery/biosamples.json +0 -497
  82. nmdc_runtime-2.10.0/demo/metadata_discovery/console_queries.dev +0 -58
  83. nmdc_runtime-2.10.0/demo/metadata_discovery/docker-compose.yml +0 -230
  84. nmdc_runtime-2.10.0/demo/metadata_discovery/envo.owl +0 -153638
  85. nmdc_runtime-2.10.0/demo/metadata_discovery/indexing.ipynb +0 -466
  86. nmdc_runtime-2.10.0/demo/metadata_discovery/po.owl +0 -80835
  87. nmdc_runtime-2.10.0/demo/metadata_migration/main.ipynb +0 -644
  88. nmdc_runtime-2.10.0/docs/content/contributing-docs.md +0 -22
  89. nmdc_runtime-2.10.0/docs_prev/design/api-resource-diagram.md +0 -33
  90. nmdc_runtime-2.10.0/docs_prev/design/api-resource-layout.md +0 -138
  91. nmdc_runtime-2.10.0/docs_prev/design/nmdc-runtime-api-resource-diagram.png +0 -0
  92. nmdc_runtime-2.10.0/docs_prev/design/nmdc-wfe.ttl +0 -68
  93. nmdc_runtime-2.10.0/docs_prev/design/redoc-static.html +0 -751
  94. nmdc_runtime-2.10.0/docs_prev/design/spec.md +0 -104
  95. nmdc_runtime-2.10.0/docs_prev/design/workflow-automation.md +0 -78
  96. nmdc_runtime-2.10.0/docs_prev/index.html +0 -8
  97. nmdc_runtime-2.10.0/flake.lock +0 -43
  98. nmdc_runtime-2.10.0/flake.nix +0 -24
  99. nmdc_runtime-2.10.0/nmdc-wfe.html +0 -385
  100. nmdc_runtime-2.10.0/nmdc_runtime/Dockerfile +0 -130
  101. nmdc_runtime-2.10.0/nmdc_runtime/api/endpoints/ids.py +0 -192
  102. nmdc_runtime-2.10.0/nmdc_runtime/api/openapi.py +0 -242
  103. nmdc_runtime-2.10.0/nmdc_runtime/api/swagger_ui/assets/script.js +0 -38
  104. nmdc_runtime-2.10.0/nmdc_runtime/api/swagger_ui/assets/style.css +0 -14
  105. nmdc_runtime-2.10.0/nmdc_runtime/api/v1/router.py +0 -3
  106. nmdc_runtime-2.10.0/nmdc_runtime/containers.py +0 -14
  107. nmdc_runtime-2.10.0/nmdc_runtime/core/db/Database.py +0 -13
  108. nmdc_runtime-2.10.0/nmdc_runtime/core/exceptions/__init__.py +0 -23
  109. nmdc_runtime-2.10.0/nmdc_runtime/core/exceptions/base.py +0 -47
  110. nmdc_runtime-2.10.0/nmdc_runtime/core/exceptions/token.py +0 -13
  111. nmdc_runtime-2.10.0/nmdc_runtime/domain/users/queriesInterface.py +0 -18
  112. nmdc_runtime-2.10.0/nmdc_runtime/domain/users/userSchema.py +0 -37
  113. nmdc_runtime-2.10.0/nmdc_runtime/domain/users/userService.py +0 -14
  114. nmdc_runtime-2.10.0/nmdc_runtime/infrastructure/database/db.py +0 -3
  115. nmdc_runtime-2.10.0/nmdc_runtime/infrastructure/database/impl/mongo/db.py +0 -12
  116. nmdc_runtime-2.10.0/nmdc_runtime/infrastructure/database/impl/mongo/models/user.py +0 -57
  117. nmdc_runtime-2.10.0/nmdc_runtime/infrastructure/database/models/user.py +0 -1
  118. nmdc_runtime-2.10.0/nmdc_runtime/lib/__init__.py +0 -1
  119. nmdc_runtime-2.10.0/nmdc_runtime/lib/extract_nmdc_data.py +0 -33
  120. nmdc_runtime-2.10.0/nmdc_runtime/lib/load_nmdc_data.py +0 -121
  121. nmdc_runtime-2.10.0/nmdc_runtime/lib/nmdc_data_source.yaml +0 -785
  122. nmdc_runtime-2.10.0/nmdc_runtime/lib/nmdc_dataframes.py +0 -825
  123. nmdc_runtime-2.10.0/nmdc_runtime/lib/nmdc_etl_class.py +0 -396
  124. nmdc_runtime-2.10.0/nmdc_runtime/lib/transform_nmdc_data.py +0 -1117
  125. nmdc_runtime-2.10.0/nmdc_runtime/main.py +0 -0
  126. nmdc_runtime-2.10.0/nmdc_runtime/site/drsobjects/ingest.py +0 -93
  127. nmdc_runtime-2.10.0/nmdc_runtime/site/drsobjects/registration.py +0 -131
  128. nmdc_runtime-2.10.0/nmdc_runtime/site/export/__init__.py +0 -0
  129. nmdc_runtime-2.10.0/nmdc_runtime/site/normalization/__init__.py +0 -0
  130. nmdc_runtime-2.10.0/nmdc_runtime/site/repair/__init__.py +0 -0
  131. nmdc_runtime-2.10.0/nmdc_runtime/site/translation/__init__.py +0 -0
  132. nmdc_runtime-2.10.0/nmdc_runtime/site/validation/__init__.py +0 -0
  133. nmdc_runtime-2.10.0/nmdc_runtime/static/ORCIDiD_icon128x128.png +0 -0
  134. nmdc_runtime-2.10.0/nmdc_runtime/templates/search.html +0 -199
  135. nmdc_runtime-2.10.0/nmdc_runtime.egg-info/SOURCES.txt +0 -380
  136. nmdc_runtime-2.10.0/nmdc_runtime.egg-info/dependency_links.txt +0 -1
  137. nmdc_runtime-2.10.0/nmdc_runtime.egg-info/entry_points.txt +0 -4
  138. nmdc_runtime-2.10.0/nmdc_runtime.egg-info/top_level.txt +0 -1
  139. nmdc_runtime-2.10.0/requirements/dev.in +0 -16
  140. nmdc_runtime-2.10.0/requirements/dev.txt +0 -208
  141. nmdc_runtime-2.10.0/requirements/main.in +0 -78
  142. nmdc_runtime-2.10.0/requirements/main.txt +0 -1113
  143. nmdc_runtime-2.10.0/setup.cfg +0 -4
  144. nmdc_runtime-2.10.0/setup.py +0 -35
  145. nmdc_runtime-2.10.0/tasks.py +0 -22
  146. nmdc_runtime-2.10.0/tests/conftest.py +0 -78
  147. nmdc_runtime-2.10.0/tests/e2e/test_minter_api.py +0 -67
  148. nmdc_runtime-2.10.0/tests/test_api/__init__.py +0 -0
  149. nmdc_runtime-2.10.0/tests/test_api/conftest.py +0 -36
  150. nmdc_runtime-2.10.0/tests/test_api/test_endpoints_util.py +0 -62
  151. nmdc_runtime-2.10.0/tests/test_data/__init__.py +0 -0
  152. nmdc_runtime-2.10.0/tests/test_data/test_integrity.py +0 -32
  153. nmdc_runtime-2.10.0/tests/test_graphs/__init__.py +0 -0
  154. nmdc_runtime-2.10.0/tests/test_graphs/test_ensure_jobs.py +0 -26
  155. nmdc_runtime-2.10.0/tests/test_normalization/__init__.py +0 -0
  156. nmdc_runtime-2.10.0/tests/test_ops/__init__.py +0 -0
  157. nmdc_runtime-2.10.0/tests/test_ops/test_materialize_alldocs.py +0 -352
  158. nmdc_runtime-2.10.0/tests/test_the_util/__init__.py +0 -0
  159. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/.docker/mongoKeyFile +0 -0
  160. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/.docker/mongo_init/initialize_replica_set.sh +0 -0
  161. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/.docker/wait-for-it.sh +0 -0
  162. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/.dockerignore +0 -0
  163. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/.env.example +0 -0
  164. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/.env.test +0 -0
  165. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/.gitattributes +0 -0
  166. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  167. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  168. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/.github/pull_request_template.md +0 -0
  169. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/.github/workflows/deploy-redirects.yml +0 -0
  170. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/.gitignore +0 -0
  171. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/LICENSE +0 -0
  172. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/RELEASES.md +0 -0
  173. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/db/README.md +0 -0
  174. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/db/migrations/README.md +0 -0
  175. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/db/migrations/ad_hoc_scripts/migrate_jobs_collection_from_schema_11.8.0_to_11.9.1.mongosh.js +0 -0
  176. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/db/migrations/notebooks/.docker/01-init.js +0 -0
  177. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/db/migrations/notebooks/.gitignore +0 -0
  178. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/db/migrations/notebooks/.notebook.env.example +0 -0
  179. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/db/migrations/notebooks/bookkeeper.py +0 -0
  180. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/db/migrations/notebooks/helpers.py +0 -0
  181. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/db/migrations/notebooks/manual_test_bookkeeper.py +0 -0
  182. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/db/migrations/notebooks/migrate_10_0_0_to_10_1_4.ipynb +0 -0
  183. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/db/migrations/notebooks/migrate_10_3_0_to_10_4_0.ipynb +0 -0
  184. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/db/migrations/notebooks/migrate_10_4_0_to_10_9_1.ipynb +0 -0
  185. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/db/migrations/notebooks/migrate_10_9_1_to_11_0_0.ipynb +0 -0
  186. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/db/migrations/notebooks/migrate_11_0_0_to_11_0_1.ipynb +0 -0
  187. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/db/migrations/notebooks/migrate_11_0_3_to_11_1_0.ipynb +0 -0
  188. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/db/migrations/notebooks/migrate_11_1_0_to_11_2_1.ipynb +0 -0
  189. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/db/migrations/notebooks/migrate_11_2_1_to_11_3_0.ipynb +0 -0
  190. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/db/migrations/notebooks/migrate_11_3_0_to_11_4_0.ipynb +0 -0
  191. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/db/migrations/notebooks/migrate_11_4_0_to_11_5_0.ipynb +0 -0
  192. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/db/migrations/notebooks/migrate_11_5_0_to_11_5_1.ipynb +0 -0
  193. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/db/migrations/notebooks/migrate_11_5_1_to_11_6_0.ipynb +0 -0
  194. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/db/migrations/notebooks/migrate_11_6_0_to_11_6_1.ipynb +0 -0
  195. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/db/migrations/notebooks/migrate_11_6_1_to_11_7_0.ipynb +0 -0
  196. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/db/migrations/notebooks/migrate_11_7_0_to_11_8_0.ipynb +0 -0
  197. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/db/migrations/notebooks/migrate_11_8_0_to_11_9_1.ipynb +0 -0
  198. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/db/migrations/notebooks/migrate_11_9_1_to_11_10_0.ipynb +0 -0
  199. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/db/migrations/notebooks/migrate_7_7_2_to_7_8_0.ipynb +0 -0
  200. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/db/migrations/notebooks/migrate_7_8_0_to_8_0_0.ipynb +0 -0
  201. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/db/migrations/notebooks/migrate_8_0_0_to_8_1_2.ipynb +0 -0
  202. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/db/migrations/notebooks/migrate_8_1_2_to_9_0_4.ipynb +0 -0
  203. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/db/migrations/notebooks/migrate_9_0_4_to_9_1_0.ipynb +0 -0
  204. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/db/migrations/notebooks/migrate_9_1_0_to_9_2_0.ipynb +0 -0
  205. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/db/migrations/notebooks/migrate_9_3_2_to_10_0_0.ipynb +0 -0
  206. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/db/migrations/notebooks/migrate_A_B_C_to_X_Y_Z.ipynb +0 -0
  207. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/db/migrations/notebooks/mongosh-scripts/restore-privileges.mongo.js +0 -0
  208. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/db/migrations/notebooks/mongosh-scripts/revoke-privileges.mongo.js +0 -0
  209. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/db/migrations/notebooks/requirements.txt +0 -0
  210. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/db/migrations/notebooks/stakeholders.md +0 -0
  211. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/db/migrations/notebooks/test_helpers.py +0 -0
  212. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/content/draft.md +0 -0
  213. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/content/explanation/database-migration.md +0 -0
  214. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/content/explanation/domain-vision-statement.md +0 -0
  215. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/content/explanation/identifiers.md +0 -0
  216. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/content/explanation/journeys.md +0 -0
  217. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/content/howto-guides/author-changesheets.md +0 -0
  218. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/content/howto-guides/claim-and-run-jobs.md +0 -0
  219. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/content/howto-guides/create-triggers.md +0 -0
  220. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/content/howto-guides/improving-search-api.md +0 -0
  221. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/content/howto-guides/release-process.md +0 -0
  222. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/content/howto-guides/update-sensors-ops.md +0 -0
  223. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/content/img/auth-button.png +0 -0
  224. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/content/img/auth-client-id.png +0 -0
  225. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/content/img/auth-close-modal.png +0 -0
  226. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/content/img/auth-username.png +0 -0
  227. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/content/img/dagit-apply-changesheet-job.png +0 -0
  228. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/content/img/dagster-translation-gold-job.png +0 -0
  229. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/content/img/dagster-translation-gold-launchpad.png +0 -0
  230. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/content/img/dagster-translation-gold-overview.png +0 -0
  231. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/content/img/dagster-translation-repo-jobs.png +0 -0
  232. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/content/img/dagster-workspace-repo-loaded.png +0 -0
  233. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/content/img/exporters-dagit.png +0 -0
  234. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/content/img/favicon.ico +0 -0
  235. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/content/img/job-triggering.png +0 -0
  236. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/content/img/list-from-collection-filter.png +0 -0
  237. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/content/img/list-from-collection-page-token.png +0 -0
  238. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/content/img/list-from-collection.png +0 -0
  239. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/content/img/metadata-in-dagit-runs.png +0 -0
  240. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/content/img/metadata-in-put-types.png +0 -0
  241. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/content/img/nmdc-logo-bg-white.png +0 -0
  242. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/content/img/nmdc-runtime-federation.png +0 -0
  243. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/content/img/rancher-nmdc-runtime-dev-workloads.png +0 -0
  244. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/content/img/translators-dagit.png +0 -0
  245. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/content/img/validate-json-copy-paste-execute.png +0 -0
  246. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/content/img/validate-json-get-one-valid.png +0 -0
  247. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/content/img/validate-json-response.png +0 -0
  248. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/content/img/validate-json-try-it-out.png +0 -0
  249. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/content/img/validate-json.png +0 -0
  250. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/content/index.md +0 -0
  251. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/content/nb/api_access_via_python.ipynb +0 -0
  252. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/content/nb/bulk_validation_referential_integrity_check.ipynb +0 -0
  253. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/content/nb/queue_and_trigger_data_jobs.ipynb +0 -0
  254. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/content/nb/wf_automation.ipynb +0 -0
  255. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/content/stylesheets/extra.css +0 -0
  256. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/content/tutorials/exporters.md +0 -0
  257. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/content/tutorials/json.md +0 -0
  258. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/content/tutorials/translators.md +0 -0
  259. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/docs/mkdocs_overrides/partials/source.html +0 -0
  260. {nmdc_runtime-2.10.0/demo/metadata_migration → nmdc_runtime-2.11.1/nmdc_runtime}/__init__.py +0 -0
  261. {nmdc_runtime-2.10.0/nmdc_runtime → nmdc_runtime-2.11.1/nmdc_runtime/api}/__init__.py +0 -0
  262. {nmdc_runtime-2.10.0/nmdc_runtime/api → nmdc_runtime-2.11.1/nmdc_runtime/api/boot}/__init__.py +0 -0
  263. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/api/boot/capabilities.py +0 -0
  264. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/api/boot/object_types.py +0 -0
  265. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/api/boot/triggers.py +0 -0
  266. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/api/boot/workflows.py +0 -0
  267. {nmdc_runtime-2.10.0/nmdc_runtime/api/boot → nmdc_runtime-2.11.1/nmdc_runtime/api/core}/__init__.py +0 -0
  268. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/api/core/auth.py +0 -0
  269. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/api/core/metadata.py +0 -0
  270. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/api/core/util.py +0 -0
  271. {nmdc_runtime-2.10.0/nmdc_runtime/api/core → nmdc_runtime-2.11.1/nmdc_runtime/api/db}/__init__.py +0 -0
  272. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/api/db/s3.py +0 -0
  273. {nmdc_runtime-2.10.0/nmdc_runtime/api/db → nmdc_runtime-2.11.1/nmdc_runtime/api/endpoints}/__init__.py +0 -0
  274. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/api/endpoints/capabilities.py +0 -0
  275. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/api/endpoints/jobs.py +0 -0
  276. {nmdc_runtime-2.10.0/nmdc_runtime/api/endpoints → nmdc_runtime-2.11.1/nmdc_runtime/api/endpoints/lib}/__init__.py +0 -0
  277. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/api/endpoints/lib/helpers.py +0 -0
  278. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/api/endpoints/lib/path_segments.py +0 -0
  279. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/api/endpoints/metadata.py +0 -0
  280. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/api/endpoints/object_types.py +0 -0
  281. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/api/endpoints/runs.py +0 -0
  282. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/api/endpoints/search.py +0 -0
  283. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/api/endpoints/triggers.py +0 -0
  284. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/api/endpoints/users.py +0 -0
  285. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/api/endpoints/workflows.py +0 -0
  286. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/api/entrypoint.sh +0 -0
  287. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/api/middleware.py +0 -0
  288. {nmdc_runtime-2.10.0/nmdc_runtime/api/endpoints/lib → nmdc_runtime-2.11.1/nmdc_runtime/api/models}/__init__.py +0 -0
  289. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/api/models/capability.py +0 -0
  290. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/api/models/id.py +0 -0
  291. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/api/models/job.py +0 -0
  292. {nmdc_runtime-2.10.0/nmdc_runtime/api/models → nmdc_runtime-2.11.1/nmdc_runtime/api/models/lib}/__init__.py +0 -0
  293. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/api/models/lib/helpers.py +0 -0
  294. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/api/models/metadata.py +0 -0
  295. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/api/models/minter.py +0 -0
  296. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/api/models/nmdc_schema.py +0 -0
  297. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/api/models/object.py +0 -0
  298. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/api/models/object_type.py +0 -0
  299. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/api/models/operation.py +0 -0
  300. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/api/models/query.py +0 -0
  301. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/api/models/query_continuation.py +0 -0
  302. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/api/models/run.py +0 -0
  303. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/api/models/site.py +0 -0
  304. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/api/models/trigger.py +0 -0
  305. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/api/models/user.py +0 -0
  306. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/api/models/workflow.py +0 -0
  307. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/config.py +0 -0
  308. {nmdc_runtime-2.10.0/demo/metadata_migration → nmdc_runtime-2.11.1/nmdc_runtime}/main.py +0 -0
  309. {nmdc_runtime-2.10.0/nmdc_runtime/api/models/lib → nmdc_runtime-2.11.1/nmdc_runtime/minter}/__init__.py +0 -0
  310. {nmdc_runtime-2.10.0/nmdc_runtime/client → nmdc_runtime-2.11.1/nmdc_runtime/minter/adapters}/__init__.py +0 -0
  311. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/minter/bootstrap.py +0 -0
  312. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/minter/config.py +0 -0
  313. {nmdc_runtime-2.10.0/nmdc_runtime/core → nmdc_runtime-2.11.1/nmdc_runtime/minter/domain}/__init__.py +0 -0
  314. {nmdc_runtime-2.10.0/nmdc_runtime/core/db → nmdc_runtime-2.11.1/nmdc_runtime/minter/entrypoints}/__init__.py +0 -0
  315. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/minter/entrypoints/fastapi_app.py +0 -0
  316. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/mongo_util.py +0 -0
  317. {nmdc_runtime-2.10.0/nmdc_runtime/domain → nmdc_runtime-2.11.1/nmdc_runtime/site}/__init__.py +0 -0
  318. {nmdc_runtime-2.10.0/nmdc_runtime/domain/users → nmdc_runtime-2.11.1/nmdc_runtime/site/backup}/__init__.py +0 -0
  319. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/site/backup/nmdcdb_mongodump.py +0 -0
  320. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/site/backup/nmdcdb_mongoexport.py +0 -0
  321. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/site/backup/nmdcdb_mongoimport.py +0 -0
  322. {nmdc_runtime-2.10.0/nmdc_runtime/infrastructure → nmdc_runtime-2.11.1/nmdc_runtime/site/changesheets}/__init__.py +0 -0
  323. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/site/changesheets/base.py +0 -0
  324. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/site/changesheets/data/OmicsProcessing-to-catted-Biosamples.tsv +0 -0
  325. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/site/changesheets/scripts/missing_neon_soils_ecosystem_data.py +0 -0
  326. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/site/changesheets/scripts/neon_soils_add_ncbi_ids.py +0 -0
  327. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/site/dagster.yaml +0 -0
  328. {nmdc_runtime-2.10.0/nmdc_runtime/infrastructure/database → nmdc_runtime-2.11.1/nmdc_runtime/site/export}/__init__.py +0 -0
  329. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/site/export/study_metadata.py +0 -0
  330. {nmdc_runtime-2.10.0/nmdc_runtime/infrastructure/database/impl/mongo → nmdc_runtime-2.11.1/nmdc_runtime/site/normalization}/__init__.py +0 -0
  331. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/site/normalization/gold.py +0 -0
  332. {nmdc_runtime-2.10.0/nmdc_runtime/infrastructure/database/impl/mongo/models → nmdc_runtime-2.11.1/nmdc_runtime/site/repair}/__init__.py +0 -0
  333. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/site/repair/database_updater.py +0 -0
  334. {nmdc_runtime-2.10.0/nmdc_runtime/infrastructure/database/models → nmdc_runtime-2.11.1/nmdc_runtime/site/translation}/__init__.py +0 -0
  335. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/site/translation/gold_translator.py +0 -0
  336. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/site/translation/neon_benthic_translator.py +0 -0
  337. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/site/translation/neon_soil_translator.py +0 -0
  338. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/site/translation/neon_surface_water_translator.py +0 -0
  339. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/site/translation/neon_utils.py +0 -0
  340. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/site/translation/translator.py +0 -0
  341. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/site/util.py +0 -0
  342. {nmdc_runtime-2.10.0/nmdc_runtime/minter → nmdc_runtime-2.11.1/nmdc_runtime/site/validation}/__init__.py +0 -0
  343. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/site/validation/emsl.py +0 -0
  344. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/site/validation/gold.py +0 -0
  345. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/site/validation/util.py +0 -0
  346. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/site/workspace.yaml +0 -0
  347. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/nmdc_runtime/static/favicon.ico +0 -0
  348. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/__init__.py +0 -0
  349. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/files/README.md +0 -0
  350. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/files/changesheet-array-item-nested-attributes.tsv +0 -0
  351. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/files/changesheet-update-pi-websites.tsv +0 -0
  352. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/files/nmdc_bsm-11-0pyv7738.json +0 -0
  353. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/files/nmdc_bsm-11-5nhz3402.json +0 -0
  354. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/files/nmdc_bsm-12-7mysck21.json +0 -0
  355. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/files/nmdc_dobj-11-000n1286.json +0 -0
  356. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/files/nmdc_sty-11-pzmd0x14.json +0 -0
  357. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/files/planned_processes.json +0 -0
  358. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/files/study-data1.json +0 -0
  359. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/files/study-data2.json +0 -0
  360. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/files/study-data3.json +0 -0
  361. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/files/study_no_credit_associations.json +0 -0
  362. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/files/test_changesheet_decimal_value.tsv +0 -0
  363. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/files/test_changesheet_insert_study_doi.tsv +0 -0
  364. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/files/test_changesheet_update_bytes_ranged_slot.tsv +0 -0
  365. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/files/test_changesheet_update_one_ph.tsv +0 -0
  366. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/integration/test_minter_repository.py +0 -0
  367. {nmdc_runtime-2.10.0/nmdc_runtime/minter/adapters → nmdc_runtime-2.11.1/tests/lib}/__init__.py +0 -0
  368. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/lib/faker.py +0 -0
  369. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/lib/util.py +0 -0
  370. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/mongorestore-nmdc-testdb.sh +0 -0
  371. {nmdc_runtime-2.10.0/nmdc_runtime/minter/domain → nmdc_runtime-2.11.1/tests/test_api}/__init__.py +0 -0
  372. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/test_api/test_db_mongo.py +0 -0
  373. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/test_api/test_delete_workflow_execution.py +0 -0
  374. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/test_api/test_main.py +0 -0
  375. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/test_api/util.py +0 -0
  376. {nmdc_runtime-2.10.0/nmdc_runtime/minter/entrypoints → nmdc_runtime-2.11.1/tests/test_data}/__init__.py +0 -0
  377. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/test_data/conftest.py +0 -0
  378. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/test_data/data/nucleotide_sequencing_mapping_input.yaml +0 -0
  379. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/test_data/data/nucleotide_sequencing_mapping_output.yaml +0 -0
  380. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/test_data/data/sequencing_data_input.yaml +0 -0
  381. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/test_data/data/sequencing_data_output.yaml +0 -0
  382. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/test_data/test_database_updater.py +0 -0
  383. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/test_data/test_gold_translator.py +0 -0
  384. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/test_data/test_gold_translator_data.yaml +0 -0
  385. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/test_data/test_neon_benthic_data_translator.py +0 -0
  386. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/test_data/test_neon_soil_data_translator.py +0 -0
  387. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/test_data/test_translator.py +0 -0
  388. {nmdc_runtime-2.10.0/nmdc_runtime/site → nmdc_runtime-2.11.1/tests/test_graphs}/__init__.py +0 -0
  389. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/test_graphs/test_hello.py +0 -0
  390. {nmdc_runtime-2.10.0/nmdc_runtime/site/backup → nmdc_runtime-2.11.1/tests/test_normalization}/__init__.py +0 -0
  391. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/test_normalization/test_gold.py +0 -0
  392. {nmdc_runtime-2.10.0/nmdc_runtime/site/changesheets → nmdc_runtime-2.11.1/tests/test_ops}/__init__.py +0 -0
  393. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/test_ops/test_data_api_ops.py +0 -0
  394. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/test_ops/test_get_csv_rows_from_url.py +0 -0
  395. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/test_ops/test_gold_api_ops.py +0 -0
  396. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/test_ops/test_load_ontology.py +0 -0
  397. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/test_ops/test_ops.py +0 -0
  398. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/test_the_util/README.md +0 -0
  399. {nmdc_runtime-2.10.0/nmdc_runtime/site/drsobjects → nmdc_runtime-2.11.1/tests/test_the_util}/__init__.py +0 -0
  400. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/test_the_util/test_mongo_util.py +0 -0
  401. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/unit/core_util.py +0 -0
  402. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/tests/unit/test_minter_model.py +0 -0
  403. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/util/get_latest_nmdc_prod_dump_dir.sh +0 -0
  404. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/util/load_testing/locustfile.py +0 -0
  405. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/util/mongodump-nmdc.sh +0 -0
  406. {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.1}/util/mongorestore-nmdc.sh +0 -0
@@ -11,7 +11,8 @@ on:
11
11
  - 'Makefile'
12
12
  - '**/Dockerfile'
13
13
  - '**.py'
14
- - 'requirements/main.txt'
14
+ - 'pyproject.toml'
15
+ - 'uv.lock'
15
16
 
16
17
  env:
17
18
  # We don't want to do certain steps if this is running in a fork
@@ -16,13 +16,18 @@ jobs:
16
16
  - uses: actions/checkout@v4
17
17
  with:
18
18
  ref: ${{ github.event.pull_request.head.ref }}
19
- - name: Set up Python 3.10
20
- uses: actions/setup-python@v4
19
+ - name: Install uv
20
+ uses: astral-sh/setup-uv@v6
21
21
  with:
22
- python-version: '3.10'
22
+ # Note: Caching (of the packages that `uv` builds while resolving dependencies) is "enabled by default on GitHub-hosted runners."
23
+ # Reference: https://github.com/astral-sh/setup-uv/blob/main/README.md#enable-caching
24
+ # Here, we make it so the cache gets invalidated whenever the `uv.lock` file changes.
25
+ # Reference: https://github.com/astral-sh/setup-uv/blob/main/README.md#cache-dependency-glob
26
+ cache-dependency-glob: "uv.lock"
27
+ - name: Set up Python virtual environment
28
+ run: uv sync
23
29
  - name: Lint with flake8 and Reformat with black
24
30
  run: |
25
- make init-lint-and-black
26
31
  make lint
27
32
  make black
28
33
  - name: commit and push if reformatted
@@ -11,13 +11,17 @@ jobs:
11
11
  runs-on: ubuntu-latest
12
12
  if: github.event.repository.fork == false
13
13
  steps:
14
- - uses: actions/checkout@v2
15
- - uses: actions/setup-python@v2
14
+ - uses: actions/checkout@v4
15
+ - name: Install uv
16
+ uses: astral-sh/setup-uv@v6
16
17
  with:
17
- python-version: 3.x
18
- - name: Install Python package dependencies
19
- run: pip install mkdocs-material mkdocs-mermaid2-plugin mkdocs-jupyter
20
-
18
+ # Note: Caching (of the packages that `uv` builds while resolving dependencies) is "enabled by default on GitHub-hosted runners."
19
+ # Reference: https://github.com/astral-sh/setup-uv/blob/main/README.md#enable-caching
20
+ # Here, we make it so the cache gets invalidated whenever the `uv.lock` file changes.
21
+ # Reference: https://github.com/astral-sh/setup-uv/blob/main/README.md#cache-dependency-glob
22
+ cache-dependency-glob: "uv.lock"
23
+ - name: Set up Python virtual environment
24
+ run: uv sync --group docs
21
25
  # Build the MkDocs site (but don't deploy it).
22
26
  #
23
27
  # Note: Until January 17, 2025, we would build and deploy the MkDocs website to GitHub Pages.
@@ -39,4 +43,4 @@ jobs:
39
43
  # file, or due to one of the dependencies becoming unavailable), which can prompt remedial action.
40
44
  #
41
45
  - name: Build MkDocs site
42
- run: mkdocs build -f docs/mkdocs.yml
46
+ run: uv run --no-sync mkdocs build -f docs/mkdocs.yml
@@ -19,7 +19,8 @@ on:
19
19
  - 'Makefile'
20
20
  - '**/Dockerfile'
21
21
  - '**.py'
22
- - 'requirements/main.txt'
22
+ - 'pyproject.toml'
23
+ - 'uv.lock'
23
24
  - '!util/load_testing/**'
24
25
  pull_request:
25
26
  paths:
@@ -27,7 +28,8 @@ on:
27
28
  - 'Makefile'
28
29
  - '**/Dockerfile'
29
30
  - '**.py'
30
- - 'requirements/main.txt'
31
+ - 'pyproject.toml'
32
+ - 'uv.lock'
31
33
  - '!util/load_testing/**'
32
34
  # Allow developers to trigger this workflow manually via the "Actions" page on GitHub.
33
35
  # Reference: https://docs.github.com/en/actions/managing-workflow-runs-and-deployments/managing-workflow-runs/manually-running-a-workflow
@@ -73,16 +75,22 @@ jobs:
73
75
  sh -c 'cp /mongoKeyFile /out/mongoKeyFile && chmod 600 /out/mongoKeyFile && chown 999:999 /out/mongoKeyFile'
74
76
  mv _tmp/mongoKeyFile ./.docker/mongoKeyFile
75
77
  rmdir _tmp
76
- - name: Set up Python 3.10
77
- uses: actions/setup-python@v4
78
- with:
79
- python-version: '3.10'
80
- # deprecated: Consider merging python.app.yml and lint.yml
81
- # - name: Lint with flake8
82
- # run: |
83
- # pip install flake8
84
- # make lint
85
78
  - name: Build and start containers upon which test runner depends
86
79
  run: make up-test
80
+ # When running this GHA workflow job with the "Enable debug logging" checkbox marked
81
+ # in the GitHub web UI; wait a few seconds, then dump the `fastapi` container logs.
82
+ #
83
+ # Note: This is in an attempt to facilitate debugging. The failure of that container to
84
+ # start up has been a relatively common source of GitHub Actions workflow failures
85
+ # (and we think seeing the container's logs will make debugging easier).
86
+ #
87
+ - name: Sleep
88
+ if: runner.debug == '1'
89
+ uses: juliangruber/sleep-action@v2.0.0
90
+ with:
91
+ time: 20s
92
+ - name: Dump FastAPI container logs (for debugging)
93
+ if: runner.debug == '1'
94
+ run: docker compose --file docker-compose.test.yml logs fastapi
87
95
  - name: Run tests
88
96
  run: make run-test
@@ -0,0 +1,37 @@
1
+ name: Publish Python Package
2
+
3
+ on:
4
+ release:
5
+ types: [created]
6
+
7
+ jobs:
8
+ build-n-publish:
9
+ name: Build and publish Python 🐍 distributions 📦 to PyPI
10
+ runs-on: ubuntu-latest
11
+ steps:
12
+ - uses: actions/checkout@v4
13
+
14
+ - name: Install uv
15
+ uses: astral-sh/setup-uv@v6
16
+ with:
17
+ # Note: Caching (of the packages that `uv` builds while resolving dependencies) is "enabled by default on GitHub-hosted runners."
18
+ # Reference: https://github.com/astral-sh/setup-uv/blob/main/README.md#enable-caching
19
+ # Here, we make it so the cache gets invalidated whenever the `uv.lock` file changes.
20
+ # Reference: https://github.com/astral-sh/setup-uv/blob/main/README.md#cache-dependency-glob
21
+ cache-dependency-glob: "uv.lock"
22
+ - name: Set up Python virtual environment
23
+ run: uv sync
24
+
25
+ - name: Preview derived version number
26
+ run: uvx uv-dynamic-versioning
27
+ # Here, we build the package using the build settings specified in `pyproject.toml`,
28
+ # one of which is to derive the package's version number from the Git repository.
29
+ - name: Build source and wheel archives
30
+ run: uv build
31
+
32
+ - name: Publish distribution 📦 to PyPI
33
+ if: github.repository == 'microbiomedata/nmdc-runtime'
34
+ uses: pypa/gh-action-pypi-publish@master
35
+ with:
36
+ user: __token__
37
+ password: ${{ secrets.PYPI_PASSWORD }}
@@ -1,43 +1,8 @@
1
- init:
2
- pip install -r requirements/main.txt
3
- pip install -r requirements/dev.txt
4
- pip install --editable .[dev]
5
-
6
- # Updates Python dependencies based upon the contents of the `requirements/main.in` and `requirements/dev.in` files.
7
- #
8
- # Note: To omit the `--upgrade` option (included by default) from the constituent `pip-compile` commands:
9
- # ```
10
- # $ make update-deps UPDATE_DEPS_MAIN_UPGRADE_OPT='' UPDATE_DEPS_DEV_UPGRADE_OPT=''
11
- # ```
12
- #
13
- # Note: You can run the following command on your host machine to have `$ make update-deps` run within a container:
14
- # ```sh
15
- # $ docker compose run --rm --no-deps fastapi sh -c 'make update-deps'
16
- # ```
17
- # To omit the `--upgrade` option (included by default) from the constituent `pip-compile` commands:
18
- # ```sh
19
- # $ docker compose run --rm --no-deps fastapi sh -c 'make update-deps UPDATE_DEPS_MAIN_UPGRADE_OPT="" UPDATE_DEPS_DEV_UPGRADE_OPT=""'
20
- # ```
21
- #
22
- UPDATE_DEPS_MAIN_UPGRADE_OPT ?= --upgrade
23
- UPDATE_DEPS_DEV_UPGRADE_OPT ?= --upgrade
24
- update-deps:
25
- # --allow-unsafe pins packages considered unsafe: distribute, pip, setuptools.
26
- pip install --upgrade pip-tools pip setuptools
27
- pip-compile $(UPDATE_DEPS_MAIN_UPGRADE_OPT) --build-isolation \
28
- --allow-unsafe --resolver=backtracking --strip-extras \
29
- --output-file requirements/main.txt \
30
- requirements/main.in
31
- pip-compile --allow-unsafe $(UPDATE_DEPS_DEV_UPGRADE_OPT) --build-isolation \
32
- --allow-unsafe --resolver=backtracking --strip-extras \
33
- --output-file requirements/dev.txt \
34
- requirements/dev.in
35
-
36
- update: update-deps init
37
-
1
+ # Spin up the development stack.
38
2
  up-dev:
39
3
  docker compose up --build --force-recreate --detach --remove-orphans
40
4
 
5
+ # Spin down the development stack.
41
6
  down-dev:
42
7
  docker compose down
43
8
 
@@ -51,7 +16,7 @@ up-test:
51
16
  docker compose --file docker-compose.test.yml \
52
17
  up --build --force-recreate --detach --remove-orphans
53
18
 
54
- # Tears down the `test` stack, including removing data volumes such as that for the test MongoDB database.
19
+ # Tears down the `test` stack, including removing data volumes such as that containing the test MongoDB database.
55
20
  down-test:
56
21
  docker compose --file docker-compose.test.yml down --volumes
57
22
 
@@ -80,40 +45,38 @@ reset-db-test:
80
45
  run-test:
81
46
  docker compose --file docker-compose.test.yml exec -it test \
82
47
  ./.docker/wait-for-it.sh fastapi:8000 --strict --timeout=300 -- \
83
- pytest --cov=nmdc_runtime \
84
- --doctest-modules \
85
- --ignore=util/load_testing \
86
- $(ARGS)
48
+ uv run --active --no-sync \
49
+ pytest --cov=nmdc_runtime \
50
+ --doctest-modules \
51
+ --ignore=util/load_testing \
52
+ $(ARGS)
87
53
 
88
54
  # Uses Docker Compose to
89
- # 1. Ensure the `test` stack is torn down, including data volumes such as that of the test MongoDB database.
55
+ # 1. Ensure the `test` stack is torn down, including data volumes such as that containing the test MongoDB database.
90
56
  # 2. Build and spin up the stack upon which the `test` container (i.e. the test runner) depends.
91
57
  # 3. Run tests on the `test` container, passing `ARGS` to `pytest` (see Tip in comment above for `run-test` target).
92
58
  test: down-test up-test run-test
93
59
 
60
+ # Format Python code using `black`.
61
+ # TODO: Migrate from `black` to `ruff`.
94
62
  black:
95
- black nmdc_runtime
63
+ uv run --active --no-sync black nmdc_runtime
96
64
 
65
+ # Lint Python code using `flake8`.
66
+ # TODO: Migrate from `flake8` to `ruff`.
97
67
  lint:
98
68
  # Python syntax errors or undefined names
99
- flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics --extend-ignore=F722
69
+ uv run --active --no-sync flake8 --count --select=E9,F63,F7,F82 --show-source --statistics --extend-ignore=F722 \
70
+ ./nmdc_runtime ./tests
100
71
  # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
101
- flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 \
102
- --statistics --extend-exclude="./build/" --extend-ignore=F722
103
-
104
- PIP_PINNED_FLAKE8 := $(shell grep 'flake8==' requirements/dev.txt)
105
- PIP_PINNED_BLACK := $(shell grep 'black==' requirements/dev.txt)
106
-
107
- init-lint-and-black:
108
- pip install $(PIP_PINNED_FLAKE8)
109
- pip install $(PIP_PINNED_BLACK)
110
-
111
- follow-fastapi:
112
- docker compose logs fastapi -f
72
+ uv run --active --no-sync flake8 --count --exit-zero --max-complexity=10 --max-line-length=127 \
73
+ --statistics --extend-exclude="./build/" --extend-ignore=F722 \
74
+ ./nmdc_runtime ./tests
113
75
 
114
76
  # Build the MkDocs documentation website and serve it at http://localhost:8080.
115
77
  # Docs: https://www.mkdocs.org/user-guide/cli/#mkdocs-serve
116
78
  docs-dev:
79
+ uv sync --group docs
117
80
  mkdocs serve --config-file docs/mkdocs.yml --dev-addr localhost:8080
118
81
 
119
82
  # 🙋 Prerequisites:
@@ -134,6 +97,8 @@ nersc-mongo-tunnels:
134
97
  -o ServerAliveInterval=60 \
135
98
  ${NERSC_USERNAME}@dtn02.nersc.gov
136
99
 
100
+ DEV_STACK_HOST_MACHINE_PORT_MONGO:=$(shell cat .env | grep DEV_STACK_HOST_MACHINE_PORT_MONGO= | cut -d= -f2)
101
+
137
102
  mongorestore-nmdc-db:
138
103
  mkdir -p /tmp/remote-mongodump/nmdc
139
104
  # Optionally, manually update MONGO_REMOTE_DUMP_DIR env var:
@@ -153,15 +118,19 @@ mongorestore-nmdc-db:
153
118
  ${NERSC_USERNAME}@dtn01.nersc.gov:${MONGO_REMOTE_DUMP_DIR}/nmdc/ \
154
119
  /tmp/remote-mongodump/nmdc
155
120
  # Restore from `rsync`ed local directory:
156
- mongorestore -v -h localhost:59639 -u admin -p root --authenticationDatabase=admin \
121
+ mongorestore -v -h localhost:$(DEV_STACK_HOST_MACHINE_PORT_MONGO) -u admin -p root --authenticationDatabase=admin \
157
122
  --drop --nsInclude='nmdc.*' --gzip --dir /tmp/remote-mongodump
158
123
 
159
124
  quick-blade:
160
- python -c "from nmdc_runtime.api.core.idgen import generate_id; print(f'nmdc:nt-11-{generate_id(length=8, split_every=0)}')"
125
+ uv run --active --no-sync python -c "from nmdc_runtime.api.core.idgen import generate_id; print(f'nmdc:nt-11-{generate_id(length=8, split_every=0)}')"
161
126
 
162
- .PHONY: init update-deps update up-dev down-dev follow-fastapi \
163
- publish docs
127
+ # List of Make targets that do not represent files being created.
128
+ # Note: I think _most_ of the targets in this Makefile meet that criterion,
129
+ # despite them not being listed here.
130
+ .PHONY: up-dev down-dev publish docs quick-blade
164
131
 
132
+ # Note: The leading hyphen in each command below tells `make` to ignore whether
133
+ # the command fails (i.e. returns a non-zero exit code).
165
134
  docker-clean:
166
135
  # Down the dev stack with volumes
167
136
  -docker compose down --volumes --remove-orphans
@@ -0,0 +1,46 @@
1
+ Metadata-Version: 2.4
2
+ Name: nmdc-runtime
3
+ Version: 2.11.1
4
+ Summary: A runtime system for NMDC data management and orchestration
5
+ Project-URL: Changelog, https://github.com/microbiomedata/nmdc-runtime/releases
6
+ Project-URL: Documentation, https://docs.microbiomedata.org/runtime
7
+ Project-URL: Issues, https://github.com/microbiomedata/nmdc-runtime/issues
8
+ Project-URL: Repository, https://github.com/microbiomedata/nmdc-runtime
9
+ License-File: LICENSE
10
+ Requires-Python: >=3.10
11
+ Requires-Dist: base32-lib
12
+ Requires-Dist: boto3
13
+ Requires-Dist: click
14
+ Requires-Dist: dagit
15
+ Requires-Dist: dagster
16
+ Requires-Dist: dagster-graphql
17
+ Requires-Dist: dagster-postgres
18
+ Requires-Dist: fastapi>=0.115.0
19
+ Requires-Dist: fastjsonschema
20
+ Requires-Dist: frozendict
21
+ Requires-Dist: git-root
22
+ Requires-Dist: jq
23
+ Requires-Dist: jsonasobj2
24
+ Requires-Dist: linkml
25
+ Requires-Dist: linkml-runtime
26
+ Requires-Dist: lxml
27
+ Requires-Dist: nmdc-schema==11.11.1
28
+ Requires-Dist: ontology-loader==0.2.2
29
+ Requires-Dist: pandas
30
+ Requires-Dist: passlib[bcrypt]
31
+ Requires-Dist: pydantic[email]>=1.10.0
32
+ Requires-Dist: pyinstrument
33
+ Requires-Dist: pymongo
34
+ Requires-Dist: python-dotenv
35
+ Requires-Dist: python-jose[cryptography]
36
+ Requires-Dist: python-multipart>=0.0.18
37
+ Requires-Dist: pyyaml
38
+ Requires-Dist: refscan==0.3.2
39
+ Requires-Dist: requests
40
+ Requires-Dist: requests-cache
41
+ Requires-Dist: scalar-fastapi<2.0.0,>=1.4.1
42
+ Requires-Dist: tenacity
43
+ Requires-Dist: toolz
44
+ Requires-Dist: tqdm
45
+ Requires-Dist: unidecode
46
+ Requires-Dist: uvicorn[standard]
@@ -1,26 +1,3 @@
1
- Metadata-Version: 2.4
2
- Name: nmdc_runtime
3
- Version: 2.10.0
4
- Summary: A runtime system for NMDC data management and orchestration
5
- Home-page: https://github.com/microbiomedata/nmdc-runtime
6
- Author: Donny Winston
7
- Author-email: donny@polyneme.xyz
8
- Classifier: Development Status :: 3 - Alpha
9
- Classifier: Programming Language :: Python :: 3
10
- Classifier: License :: OSI Approved :: Apache Software License
11
- Requires-Python: >=3.10
12
- Description-Content-Type: text/markdown
13
- License-File: LICENSE
14
- Dynamic: author
15
- Dynamic: author-email
16
- Dynamic: classifier
17
- Dynamic: description
18
- Dynamic: description-content-type
19
- Dynamic: home-page
20
- Dynamic: license-file
21
- Dynamic: requires-python
22
- Dynamic: summary
23
-
24
1
  A runtime system for NMDC data management and orchestration.
25
2
 
26
3
  ## Service Status
@@ -150,15 +127,36 @@ The Dagit web server is viewable at http://127.0.0.1:3000/.
150
127
  The FastAPI service is viewable at http://127.0.0.1:8000/ -- e.g., rendered documentation at
151
128
  http://127.0.0.1:8000/redoc/.
152
129
 
130
+ ### Dependency management
153
131
 
154
- * NOTE: Any time you add or change requirements in requirements/main.in or requirements/dev.in, you must run:
155
- ```bash
156
- pip-compile --build-isolation --allow-unsafe --resolver=backtracking --strip-extras --output-file requirements/[main|dev].txt requirements/[main|dev].in
132
+ We use [`uv`](https://docs.astral.sh/uv/) to manage dependencies of the application. Here's how you can use `uv` both on your host machine and within a container in the Docker Compose stack.
133
+
134
+ #### On the host
135
+
136
+ Although we typically run the application within a container, some developers prefer that application's dependencies be installed locally also (so that their code editors will provide auto-completion, type checking, etc.).
137
+
138
+ Here's how you can install the application's dependencies locally:
139
+
140
+ ```sh
141
+ uv sync
142
+ ```
143
+
144
+ That will...
145
+ 1. (If you made changes to `pyproject.toml`) **Update the lock file** (at `uv.lock`) to reflect those changes
146
+ 2. (If a Python virtual environment doesn't exist at `.venv/` yet) **Create a Python virtual environment** at `.venv/`
147
+ 3. (If the Python virtual environment and `uv.lock` files are out of sync) **Synchronize the Python virtual environment** with `uv.lock` (by installing and uninstalling packages)
148
+
149
+ > Note: Long term, we may implement a [devcontainer](https://containers.dev/) for this project, which will streamline the process of setting up a local development environment.
150
+
151
+ #### In the Docker Compose stack
152
+
153
+ In the Docker Compose stack, the Python virtual environment is located at the path specified by the `VIRTUAL_ENV` environment variable (which is defined in the `Dockerfile`) instead of at `.venv/`. That helps with containerization, but it deviates from `uv`'s default behavior, which is to use the Python virtual environment at `.venv/`. So, when running `uv` commands within the Docker Compose stack, we always include the [`--active`](https://docs.astral.sh/uv/reference/cli/#uv-sync--active) flag (which tells `uv` to use the Python virtual environment at the path specified by `VIRTUAL_ENV`).
154
+
155
+ Here's how you can install the application's dependencies within a container in the Docker Compose stack:
156
+
157
+ ```sh
158
+ uv sync --active
157
159
  ```
158
- to generate main.txt and dev.txt files respectively. main.in is kind of like a poetry dependency stanza, dev.in is kind
159
- of like poetry dev.dependencies stanza. main.txt and dev.txt are kind of like poetry.lock files to specify the exact
160
- versions of dependencies to use. main.txt and dev.txt are combined in the docker compose build process to create the
161
- final requirements.txt file and import the dependencies into the Docker image.
162
160
 
163
161
  ## Local Testing
164
162
 
@@ -247,19 +245,11 @@ found **12 GB** to be sufficient for running the tests.
247
245
 
248
246
  This repository contains a GitHub Actions workflow that publishes a Python package to [PyPI](https://pypi.org/project/nmdc-runtime/).
249
247
 
250
- You can also _manually_ publish the Python package to PyPI by issuing the following commands in the root directory of the repository:
251
-
252
- ```
253
- rm -rf dist
254
- python -m build
255
- twine upload dist/*
256
- ```
257
-
258
248
  ## Links
259
249
 
260
250
  Here are links related to this repository:
261
251
 
262
252
  - Production API server: https://api.microbiomedata.org
263
253
  - PyPI package: https://pypi.org/project/nmdc-runtime
264
- - DockerHub image (API server): https://hub.docker.com/r/microbiomedata/nmdc-runtime-fastapi
265
- - DockerHub image (Dagster): https://hub.docker.com/r/microbiomedata/nmdc-runtime-dagster
254
+ - Container image (API server): https://github.com/microbiomedata/nmdc-runtime/pkgs/container/nmdc-runtime-fastapi
255
+ - Container image (Dagster): https://github.com/microbiomedata/nmdc-runtime/pkgs/container/nmdc-runtime-dagster