nmdc-runtime 2.10.0__tar.gz → 2.11.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of nmdc-runtime might be problematic. Click here for more details.
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/.github/workflows/build-and-release-to-spin.yml +2 -1
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/.github/workflows/lint.yml +9 -4
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/.github/workflows/mkdocs.yml +11 -7
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/.github/workflows/python-app.yml +19 -11
- nmdc_runtime-2.11.0/.github/workflows/release-to-pypi.yml +37 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/Makefile +30 -61
- nmdc_runtime-2.11.0/PKG-INFO +46 -0
- nmdc_runtime-2.10.0/nmdc_runtime.egg-info/PKG-INFO → nmdc_runtime-2.11.0/README.md +30 -40
- nmdc_runtime-2.11.0/db/migrations/notebooks/migrate_11_10_0_to_11_11_1.ipynb +943 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docker-compose.test.yml +17 -2
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docker-compose.yml +15 -3
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/content/admin.md +5 -10
- nmdc_runtime-2.11.0/docs/content/contributing-docs.md +38 -0
- nmdc_runtime-2.11.0/docs/content/howto-guides/convert-api-responses.md +167 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/content/howto-guides/minting-ids.md +2 -2
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/content/nb/ontology_loader.ipynb +48 -47
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/content/tutorials/auth.md +2 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/content/tutorials/metadata-in.md +6 -9
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/mkdocs.yml +1 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/Dockerfile +67 -30
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/api/analytics.py +22 -2
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/api/core/idgen.py +36 -6
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/api/db/mongo.py +0 -12
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/api/endpoints/find.py +65 -225
- nmdc_runtime-2.11.0/nmdc_runtime/api/endpoints/lib/linked_instances.py +180 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/api/endpoints/nmdcschema.py +65 -144
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/api/endpoints/objects.py +4 -11
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/api/endpoints/operations.py +0 -27
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/api/endpoints/queries.py +22 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/api/endpoints/sites.py +0 -24
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/api/endpoints/util.py +57 -35
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/api/main.py +84 -60
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/api/models/util.py +12 -5
- nmdc_runtime-2.11.0/nmdc_runtime/api/openapi.py +178 -0
- nmdc_runtime-2.11.0/nmdc_runtime/api/swagger_ui/assets/custom-elements.js +522 -0
- nmdc_runtime-2.11.0/nmdc_runtime/api/swagger_ui/assets/script.js +247 -0
- nmdc_runtime-2.11.0/nmdc_runtime/api/swagger_ui/assets/style.css +155 -0
- nmdc_runtime-2.11.0/nmdc_runtime/api/swagger_ui/swagger_ui.py +34 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/minter/adapters/repository.py +21 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/minter/domain/model.py +20 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/site/entrypoint-daemon.sh +1 -1
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/site/entrypoint-dagit-readonly.sh +1 -1
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/site/entrypoint-dagit.sh +1 -1
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/site/export/ncbi_xml.py +632 -11
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/site/export/ncbi_xml_utils.py +114 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/site/graphs.py +7 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/site/ops.py +92 -34
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/site/repository.py +2 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/site/resources.py +16 -3
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/site/translation/submission_portal_translator.py +82 -14
- nmdc_runtime-2.11.0/nmdc_runtime/static/NMDC_logo.svg +1073 -0
- nmdc_runtime-2.11.0/nmdc_runtime/static/ORCID-iD_icon_vector.svg +4 -0
- nmdc_runtime-2.11.0/nmdc_runtime/static/README.md +5 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/util.py +87 -1
- nmdc_runtime-2.11.0/pyproject.toml +151 -0
- nmdc_runtime-2.11.0/tests/conftest.py +275 -0
- nmdc_runtime-2.11.0/tests/e2e/test_minter_api.py +68 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/files/changesheet-without-separator3.tsv +2 -2
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/test_api/test_endpoints.py +148 -51
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/test_api/test_endpoints_lib.py +1 -0
- nmdc_runtime-2.11.0/tests/test_api/test_endpoints_util.py +45 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/test_api/test_metadata.py +21 -14
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/test_data/data/plant_air_jgi_input.yaml +0 -14
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/test_data/data/plant_air_jgi_output.yaml +0 -14
- nmdc_runtime-2.11.0/tests/test_data/data/soil_sample_link_input.yaml +103 -0
- nmdc_runtime-2.11.0/tests/test_data/data/soil_sample_link_output.yaml +139 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/test_data/test_ncbi_xml.py +673 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/test_data/test_submission_portal_translator.py +14 -1
- nmdc_runtime-2.11.0/tests/test_graphs/test_ensure_jobs.py +66 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/test_graphs/test_submission_portal_graphs.py +1 -0
- nmdc_runtime-2.11.0/tests/test_ops/test_materialize_alldocs.py +194 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/test_the_util/test_the_util.py +81 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/test_util.py +19 -2
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/util/load_testing/README.md +1 -1
- nmdc_runtime-2.11.0/uv.lock +5748 -0
- nmdc_runtime-2.10.0/.github/workflows/release-to-pypi.yml +0 -30
- nmdc_runtime-2.10.0/PKG-INFO +0 -265
- nmdc_runtime-2.10.0/README.md +0 -242
- nmdc_runtime-2.10.0/demo/metadata_discovery/.env.example +0 -30
- nmdc_runtime-2.10.0/demo/metadata_discovery/GOLDs5levelEcosystemClassificationPaths.xlsx +0 -0
- nmdc_runtime-2.10.0/demo/metadata_discovery/biosamples.json +0 -497
- nmdc_runtime-2.10.0/demo/metadata_discovery/console_queries.dev +0 -58
- nmdc_runtime-2.10.0/demo/metadata_discovery/docker-compose.yml +0 -230
- nmdc_runtime-2.10.0/demo/metadata_discovery/envo.owl +0 -153638
- nmdc_runtime-2.10.0/demo/metadata_discovery/indexing.ipynb +0 -466
- nmdc_runtime-2.10.0/demo/metadata_discovery/po.owl +0 -80835
- nmdc_runtime-2.10.0/demo/metadata_migration/main.ipynb +0 -644
- nmdc_runtime-2.10.0/docs/content/contributing-docs.md +0 -22
- nmdc_runtime-2.10.0/docs_prev/design/api-resource-diagram.md +0 -33
- nmdc_runtime-2.10.0/docs_prev/design/api-resource-layout.md +0 -138
- nmdc_runtime-2.10.0/docs_prev/design/nmdc-runtime-api-resource-diagram.png +0 -0
- nmdc_runtime-2.10.0/docs_prev/design/nmdc-wfe.ttl +0 -68
- nmdc_runtime-2.10.0/docs_prev/design/redoc-static.html +0 -751
- nmdc_runtime-2.10.0/docs_prev/design/spec.md +0 -104
- nmdc_runtime-2.10.0/docs_prev/design/workflow-automation.md +0 -78
- nmdc_runtime-2.10.0/docs_prev/index.html +0 -8
- nmdc_runtime-2.10.0/flake.lock +0 -43
- nmdc_runtime-2.10.0/flake.nix +0 -24
- nmdc_runtime-2.10.0/nmdc-wfe.html +0 -385
- nmdc_runtime-2.10.0/nmdc_runtime/api/endpoints/ids.py +0 -192
- nmdc_runtime-2.10.0/nmdc_runtime/api/openapi.py +0 -242
- nmdc_runtime-2.10.0/nmdc_runtime/api/swagger_ui/assets/script.js +0 -38
- nmdc_runtime-2.10.0/nmdc_runtime/api/swagger_ui/assets/style.css +0 -14
- nmdc_runtime-2.10.0/nmdc_runtime/api/v1/router.py +0 -3
- nmdc_runtime-2.10.0/nmdc_runtime/containers.py +0 -14
- nmdc_runtime-2.10.0/nmdc_runtime/core/db/Database.py +0 -13
- nmdc_runtime-2.10.0/nmdc_runtime/core/exceptions/__init__.py +0 -23
- nmdc_runtime-2.10.0/nmdc_runtime/core/exceptions/base.py +0 -47
- nmdc_runtime-2.10.0/nmdc_runtime/core/exceptions/token.py +0 -13
- nmdc_runtime-2.10.0/nmdc_runtime/domain/users/queriesInterface.py +0 -18
- nmdc_runtime-2.10.0/nmdc_runtime/domain/users/userSchema.py +0 -37
- nmdc_runtime-2.10.0/nmdc_runtime/domain/users/userService.py +0 -14
- nmdc_runtime-2.10.0/nmdc_runtime/infrastructure/database/db.py +0 -3
- nmdc_runtime-2.10.0/nmdc_runtime/infrastructure/database/impl/mongo/db.py +0 -12
- nmdc_runtime-2.10.0/nmdc_runtime/infrastructure/database/impl/mongo/models/user.py +0 -57
- nmdc_runtime-2.10.0/nmdc_runtime/infrastructure/database/models/user.py +0 -1
- nmdc_runtime-2.10.0/nmdc_runtime/lib/__init__.py +0 -1
- nmdc_runtime-2.10.0/nmdc_runtime/lib/extract_nmdc_data.py +0 -33
- nmdc_runtime-2.10.0/nmdc_runtime/lib/load_nmdc_data.py +0 -121
- nmdc_runtime-2.10.0/nmdc_runtime/lib/nmdc_data_source.yaml +0 -785
- nmdc_runtime-2.10.0/nmdc_runtime/lib/nmdc_dataframes.py +0 -825
- nmdc_runtime-2.10.0/nmdc_runtime/lib/nmdc_etl_class.py +0 -396
- nmdc_runtime-2.10.0/nmdc_runtime/lib/transform_nmdc_data.py +0 -1117
- nmdc_runtime-2.10.0/nmdc_runtime/main.py +0 -0
- nmdc_runtime-2.10.0/nmdc_runtime/site/drsobjects/ingest.py +0 -93
- nmdc_runtime-2.10.0/nmdc_runtime/site/drsobjects/registration.py +0 -131
- nmdc_runtime-2.10.0/nmdc_runtime/site/export/__init__.py +0 -0
- nmdc_runtime-2.10.0/nmdc_runtime/site/normalization/__init__.py +0 -0
- nmdc_runtime-2.10.0/nmdc_runtime/site/repair/__init__.py +0 -0
- nmdc_runtime-2.10.0/nmdc_runtime/site/translation/__init__.py +0 -0
- nmdc_runtime-2.10.0/nmdc_runtime/site/validation/__init__.py +0 -0
- nmdc_runtime-2.10.0/nmdc_runtime/static/ORCIDiD_icon128x128.png +0 -0
- nmdc_runtime-2.10.0/nmdc_runtime/templates/search.html +0 -199
- nmdc_runtime-2.10.0/nmdc_runtime.egg-info/SOURCES.txt +0 -380
- nmdc_runtime-2.10.0/nmdc_runtime.egg-info/dependency_links.txt +0 -1
- nmdc_runtime-2.10.0/nmdc_runtime.egg-info/entry_points.txt +0 -4
- nmdc_runtime-2.10.0/nmdc_runtime.egg-info/top_level.txt +0 -1
- nmdc_runtime-2.10.0/requirements/dev.in +0 -16
- nmdc_runtime-2.10.0/requirements/dev.txt +0 -208
- nmdc_runtime-2.10.0/requirements/main.in +0 -78
- nmdc_runtime-2.10.0/requirements/main.txt +0 -1113
- nmdc_runtime-2.10.0/setup.cfg +0 -4
- nmdc_runtime-2.10.0/setup.py +0 -35
- nmdc_runtime-2.10.0/tasks.py +0 -22
- nmdc_runtime-2.10.0/tests/conftest.py +0 -78
- nmdc_runtime-2.10.0/tests/e2e/test_minter_api.py +0 -67
- nmdc_runtime-2.10.0/tests/test_api/__init__.py +0 -0
- nmdc_runtime-2.10.0/tests/test_api/conftest.py +0 -36
- nmdc_runtime-2.10.0/tests/test_api/test_endpoints_util.py +0 -62
- nmdc_runtime-2.10.0/tests/test_data/__init__.py +0 -0
- nmdc_runtime-2.10.0/tests/test_data/test_integrity.py +0 -32
- nmdc_runtime-2.10.0/tests/test_graphs/__init__.py +0 -0
- nmdc_runtime-2.10.0/tests/test_graphs/test_ensure_jobs.py +0 -26
- nmdc_runtime-2.10.0/tests/test_normalization/__init__.py +0 -0
- nmdc_runtime-2.10.0/tests/test_ops/__init__.py +0 -0
- nmdc_runtime-2.10.0/tests/test_ops/test_materialize_alldocs.py +0 -352
- nmdc_runtime-2.10.0/tests/test_the_util/__init__.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/.docker/mongoKeyFile +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/.docker/mongo_init/initialize_replica_set.sh +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/.docker/wait-for-it.sh +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/.dockerignore +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/.env.example +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/.env.test +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/.gitattributes +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/.github/pull_request_template.md +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/.github/workflows/deploy-redirects.yml +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/.gitignore +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/LICENSE +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/RELEASES.md +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/db/README.md +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/db/migrations/README.md +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/db/migrations/ad_hoc_scripts/migrate_jobs_collection_from_schema_11.8.0_to_11.9.1.mongosh.js +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/db/migrations/notebooks/.docker/01-init.js +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/db/migrations/notebooks/.gitignore +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/db/migrations/notebooks/.notebook.env.example +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/db/migrations/notebooks/bookkeeper.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/db/migrations/notebooks/helpers.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/db/migrations/notebooks/manual_test_bookkeeper.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/db/migrations/notebooks/migrate_10_0_0_to_10_1_4.ipynb +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/db/migrations/notebooks/migrate_10_3_0_to_10_4_0.ipynb +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/db/migrations/notebooks/migrate_10_4_0_to_10_9_1.ipynb +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/db/migrations/notebooks/migrate_10_9_1_to_11_0_0.ipynb +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/db/migrations/notebooks/migrate_11_0_0_to_11_0_1.ipynb +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/db/migrations/notebooks/migrate_11_0_3_to_11_1_0.ipynb +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/db/migrations/notebooks/migrate_11_1_0_to_11_2_1.ipynb +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/db/migrations/notebooks/migrate_11_2_1_to_11_3_0.ipynb +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/db/migrations/notebooks/migrate_11_3_0_to_11_4_0.ipynb +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/db/migrations/notebooks/migrate_11_4_0_to_11_5_0.ipynb +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/db/migrations/notebooks/migrate_11_5_0_to_11_5_1.ipynb +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/db/migrations/notebooks/migrate_11_5_1_to_11_6_0.ipynb +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/db/migrations/notebooks/migrate_11_6_0_to_11_6_1.ipynb +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/db/migrations/notebooks/migrate_11_6_1_to_11_7_0.ipynb +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/db/migrations/notebooks/migrate_11_7_0_to_11_8_0.ipynb +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/db/migrations/notebooks/migrate_11_8_0_to_11_9_1.ipynb +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/db/migrations/notebooks/migrate_11_9_1_to_11_10_0.ipynb +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/db/migrations/notebooks/migrate_7_7_2_to_7_8_0.ipynb +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/db/migrations/notebooks/migrate_7_8_0_to_8_0_0.ipynb +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/db/migrations/notebooks/migrate_8_0_0_to_8_1_2.ipynb +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/db/migrations/notebooks/migrate_8_1_2_to_9_0_4.ipynb +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/db/migrations/notebooks/migrate_9_0_4_to_9_1_0.ipynb +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/db/migrations/notebooks/migrate_9_1_0_to_9_2_0.ipynb +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/db/migrations/notebooks/migrate_9_3_2_to_10_0_0.ipynb +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/db/migrations/notebooks/migrate_A_B_C_to_X_Y_Z.ipynb +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/db/migrations/notebooks/mongosh-scripts/restore-privileges.mongo.js +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/db/migrations/notebooks/mongosh-scripts/revoke-privileges.mongo.js +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/db/migrations/notebooks/requirements.txt +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/db/migrations/notebooks/stakeholders.md +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/db/migrations/notebooks/test_helpers.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/content/draft.md +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/content/explanation/database-migration.md +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/content/explanation/domain-vision-statement.md +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/content/explanation/identifiers.md +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/content/explanation/journeys.md +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/content/howto-guides/author-changesheets.md +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/content/howto-guides/claim-and-run-jobs.md +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/content/howto-guides/create-triggers.md +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/content/howto-guides/improving-search-api.md +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/content/howto-guides/release-process.md +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/content/howto-guides/update-sensors-ops.md +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/content/img/auth-button.png +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/content/img/auth-client-id.png +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/content/img/auth-close-modal.png +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/content/img/auth-username.png +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/content/img/dagit-apply-changesheet-job.png +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/content/img/dagster-translation-gold-job.png +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/content/img/dagster-translation-gold-launchpad.png +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/content/img/dagster-translation-gold-overview.png +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/content/img/dagster-translation-repo-jobs.png +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/content/img/dagster-workspace-repo-loaded.png +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/content/img/exporters-dagit.png +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/content/img/favicon.ico +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/content/img/job-triggering.png +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/content/img/list-from-collection-filter.png +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/content/img/list-from-collection-page-token.png +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/content/img/list-from-collection.png +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/content/img/metadata-in-dagit-runs.png +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/content/img/metadata-in-put-types.png +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/content/img/nmdc-logo-bg-white.png +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/content/img/nmdc-runtime-federation.png +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/content/img/rancher-nmdc-runtime-dev-workloads.png +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/content/img/translators-dagit.png +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/content/img/validate-json-copy-paste-execute.png +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/content/img/validate-json-get-one-valid.png +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/content/img/validate-json-response.png +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/content/img/validate-json-try-it-out.png +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/content/img/validate-json.png +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/content/index.md +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/content/nb/api_access_via_python.ipynb +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/content/nb/bulk_validation_referential_integrity_check.ipynb +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/content/nb/queue_and_trigger_data_jobs.ipynb +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/content/nb/wf_automation.ipynb +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/content/stylesheets/extra.css +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/content/tutorials/exporters.md +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/content/tutorials/json.md +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/content/tutorials/translators.md +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/docs/mkdocs_overrides/partials/source.html +0 -0
- {nmdc_runtime-2.10.0/demo/metadata_migration → nmdc_runtime-2.11.0/nmdc_runtime}/__init__.py +0 -0
- {nmdc_runtime-2.10.0/nmdc_runtime → nmdc_runtime-2.11.0/nmdc_runtime/api}/__init__.py +0 -0
- {nmdc_runtime-2.10.0/nmdc_runtime/api → nmdc_runtime-2.11.0/nmdc_runtime/api/boot}/__init__.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/api/boot/capabilities.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/api/boot/object_types.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/api/boot/triggers.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/api/boot/workflows.py +0 -0
- {nmdc_runtime-2.10.0/nmdc_runtime/api/boot → nmdc_runtime-2.11.0/nmdc_runtime/api/core}/__init__.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/api/core/auth.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/api/core/metadata.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/api/core/util.py +0 -0
- {nmdc_runtime-2.10.0/nmdc_runtime/api/core → nmdc_runtime-2.11.0/nmdc_runtime/api/db}/__init__.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/api/db/s3.py +0 -0
- {nmdc_runtime-2.10.0/nmdc_runtime/api/db → nmdc_runtime-2.11.0/nmdc_runtime/api/endpoints}/__init__.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/api/endpoints/capabilities.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/api/endpoints/jobs.py +0 -0
- {nmdc_runtime-2.10.0/nmdc_runtime/api/endpoints → nmdc_runtime-2.11.0/nmdc_runtime/api/endpoints/lib}/__init__.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/api/endpoints/lib/helpers.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/api/endpoints/lib/path_segments.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/api/endpoints/metadata.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/api/endpoints/object_types.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/api/endpoints/runs.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/api/endpoints/search.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/api/endpoints/triggers.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/api/endpoints/users.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/api/endpoints/workflows.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/api/entrypoint.sh +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/api/middleware.py +0 -0
- {nmdc_runtime-2.10.0/nmdc_runtime/api/endpoints/lib → nmdc_runtime-2.11.0/nmdc_runtime/api/models}/__init__.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/api/models/capability.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/api/models/id.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/api/models/job.py +0 -0
- {nmdc_runtime-2.10.0/nmdc_runtime/api/models → nmdc_runtime-2.11.0/nmdc_runtime/api/models/lib}/__init__.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/api/models/lib/helpers.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/api/models/metadata.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/api/models/minter.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/api/models/nmdc_schema.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/api/models/object.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/api/models/object_type.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/api/models/operation.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/api/models/query.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/api/models/query_continuation.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/api/models/run.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/api/models/site.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/api/models/trigger.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/api/models/user.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/api/models/workflow.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/config.py +0 -0
- {nmdc_runtime-2.10.0/demo/metadata_migration → nmdc_runtime-2.11.0/nmdc_runtime}/main.py +0 -0
- {nmdc_runtime-2.10.0/nmdc_runtime/api/models/lib → nmdc_runtime-2.11.0/nmdc_runtime/minter}/__init__.py +0 -0
- {nmdc_runtime-2.10.0/nmdc_runtime/client → nmdc_runtime-2.11.0/nmdc_runtime/minter/adapters}/__init__.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/minter/bootstrap.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/minter/config.py +0 -0
- {nmdc_runtime-2.10.0/nmdc_runtime/core → nmdc_runtime-2.11.0/nmdc_runtime/minter/domain}/__init__.py +0 -0
- {nmdc_runtime-2.10.0/nmdc_runtime/core/db → nmdc_runtime-2.11.0/nmdc_runtime/minter/entrypoints}/__init__.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/minter/entrypoints/fastapi_app.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/mongo_util.py +0 -0
- {nmdc_runtime-2.10.0/nmdc_runtime/domain → nmdc_runtime-2.11.0/nmdc_runtime/site}/__init__.py +0 -0
- {nmdc_runtime-2.10.0/nmdc_runtime/domain/users → nmdc_runtime-2.11.0/nmdc_runtime/site/backup}/__init__.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/site/backup/nmdcdb_mongodump.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/site/backup/nmdcdb_mongoexport.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/site/backup/nmdcdb_mongoimport.py +0 -0
- {nmdc_runtime-2.10.0/nmdc_runtime/infrastructure → nmdc_runtime-2.11.0/nmdc_runtime/site/changesheets}/__init__.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/site/changesheets/base.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/site/changesheets/data/OmicsProcessing-to-catted-Biosamples.tsv +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/site/changesheets/scripts/missing_neon_soils_ecosystem_data.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/site/changesheets/scripts/neon_soils_add_ncbi_ids.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/site/dagster.yaml +0 -0
- {nmdc_runtime-2.10.0/nmdc_runtime/infrastructure/database → nmdc_runtime-2.11.0/nmdc_runtime/site/export}/__init__.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/site/export/study_metadata.py +0 -0
- {nmdc_runtime-2.10.0/nmdc_runtime/infrastructure/database/impl/mongo → nmdc_runtime-2.11.0/nmdc_runtime/site/normalization}/__init__.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/site/normalization/gold.py +0 -0
- {nmdc_runtime-2.10.0/nmdc_runtime/infrastructure/database/impl/mongo/models → nmdc_runtime-2.11.0/nmdc_runtime/site/repair}/__init__.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/site/repair/database_updater.py +0 -0
- {nmdc_runtime-2.10.0/nmdc_runtime/infrastructure/database/models → nmdc_runtime-2.11.0/nmdc_runtime/site/translation}/__init__.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/site/translation/gold_translator.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/site/translation/neon_benthic_translator.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/site/translation/neon_soil_translator.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/site/translation/neon_surface_water_translator.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/site/translation/neon_utils.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/site/translation/translator.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/site/util.py +0 -0
- {nmdc_runtime-2.10.0/nmdc_runtime/minter → nmdc_runtime-2.11.0/nmdc_runtime/site/validation}/__init__.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/site/validation/emsl.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/site/validation/gold.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/site/validation/util.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/site/workspace.yaml +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/nmdc_runtime/static/favicon.ico +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/__init__.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/files/README.md +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/files/changesheet-array-item-nested-attributes.tsv +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/files/changesheet-update-pi-websites.tsv +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/files/nmdc_bsm-11-0pyv7738.json +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/files/nmdc_bsm-11-5nhz3402.json +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/files/nmdc_bsm-12-7mysck21.json +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/files/nmdc_dobj-11-000n1286.json +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/files/nmdc_sty-11-pzmd0x14.json +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/files/planned_processes.json +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/files/study-data1.json +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/files/study-data2.json +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/files/study-data3.json +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/files/study_no_credit_associations.json +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/files/test_changesheet_decimal_value.tsv +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/files/test_changesheet_insert_study_doi.tsv +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/files/test_changesheet_update_bytes_ranged_slot.tsv +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/files/test_changesheet_update_one_ph.tsv +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/integration/test_minter_repository.py +0 -0
- {nmdc_runtime-2.10.0/nmdc_runtime/minter/adapters → nmdc_runtime-2.11.0/tests/lib}/__init__.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/lib/faker.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/lib/util.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/mongorestore-nmdc-testdb.sh +0 -0
- {nmdc_runtime-2.10.0/nmdc_runtime/minter/domain → nmdc_runtime-2.11.0/tests/test_api}/__init__.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/test_api/test_db_mongo.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/test_api/test_delete_workflow_execution.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/test_api/test_main.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/test_api/util.py +0 -0
- {nmdc_runtime-2.10.0/nmdc_runtime/minter/entrypoints → nmdc_runtime-2.11.0/tests/test_data}/__init__.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/test_data/conftest.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/test_data/data/nucleotide_sequencing_mapping_input.yaml +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/test_data/data/nucleotide_sequencing_mapping_output.yaml +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/test_data/data/sequencing_data_input.yaml +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/test_data/data/sequencing_data_output.yaml +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/test_data/test_database_updater.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/test_data/test_gold_translator.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/test_data/test_gold_translator_data.yaml +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/test_data/test_neon_benthic_data_translator.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/test_data/test_neon_soil_data_translator.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/test_data/test_translator.py +0 -0
- {nmdc_runtime-2.10.0/nmdc_runtime/site → nmdc_runtime-2.11.0/tests/test_graphs}/__init__.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/test_graphs/test_hello.py +0 -0
- {nmdc_runtime-2.10.0/nmdc_runtime/site/backup → nmdc_runtime-2.11.0/tests/test_normalization}/__init__.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/test_normalization/test_gold.py +0 -0
- {nmdc_runtime-2.10.0/nmdc_runtime/site/changesheets → nmdc_runtime-2.11.0/tests/test_ops}/__init__.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/test_ops/test_data_api_ops.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/test_ops/test_get_csv_rows_from_url.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/test_ops/test_gold_api_ops.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/test_ops/test_load_ontology.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/test_ops/test_ops.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/test_the_util/README.md +0 -0
- {nmdc_runtime-2.10.0/nmdc_runtime/site/drsobjects → nmdc_runtime-2.11.0/tests/test_the_util}/__init__.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/test_the_util/test_mongo_util.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/unit/core_util.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/tests/unit/test_minter_model.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/util/get_latest_nmdc_prod_dump_dir.sh +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/util/load_testing/locustfile.py +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/util/mongodump-nmdc.sh +0 -0
- {nmdc_runtime-2.10.0 → nmdc_runtime-2.11.0}/util/mongorestore-nmdc.sh +0 -0
|
@@ -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:
|
|
20
|
-
uses:
|
|
19
|
+
- name: Install uv
|
|
20
|
+
uses: astral-sh/setup-uv@v6
|
|
21
21
|
with:
|
|
22
|
-
|
|
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@
|
|
15
|
-
-
|
|
14
|
+
- uses: actions/checkout@v4
|
|
15
|
+
- name: Install uv
|
|
16
|
+
uses: astral-sh/setup-uv@v6
|
|
16
17
|
with:
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
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 mkdocs build -f docs/mkdocs.yml
|
|
@@ -19,7 +19,8 @@ on:
|
|
|
19
19
|
- 'Makefile'
|
|
20
20
|
- '**/Dockerfile'
|
|
21
21
|
- '**.py'
|
|
22
|
-
- '
|
|
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
|
-
- '
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
48
|
+
uv run --active \
|
|
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
|
|
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 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
|
-
|
|
69
|
+
uv run --active 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
|
-
|
|
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 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
|
|
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 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
|
-
|
|
163
|
-
|
|
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.0
|
|
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
|
-
|
|
155
|
-
|
|
156
|
-
|
|
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
|
-
-
|
|
265
|
-
-
|
|
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
|