nmdc-runtime 2.8.0__py3-none-any.whl → 2.10.0__py3-none-any.whl

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 (100) hide show
  1. nmdc_runtime/api/__init__.py +0 -0
  2. nmdc_runtime/api/analytics.py +70 -0
  3. nmdc_runtime/api/boot/__init__.py +0 -0
  4. nmdc_runtime/api/boot/capabilities.py +9 -0
  5. nmdc_runtime/api/boot/object_types.py +126 -0
  6. nmdc_runtime/api/boot/triggers.py +84 -0
  7. nmdc_runtime/api/boot/workflows.py +116 -0
  8. nmdc_runtime/api/core/__init__.py +0 -0
  9. nmdc_runtime/api/core/auth.py +208 -0
  10. nmdc_runtime/api/core/idgen.py +170 -0
  11. nmdc_runtime/api/core/metadata.py +788 -0
  12. nmdc_runtime/api/core/util.py +109 -0
  13. nmdc_runtime/api/db/__init__.py +0 -0
  14. nmdc_runtime/api/db/mongo.py +447 -0
  15. nmdc_runtime/api/db/s3.py +37 -0
  16. nmdc_runtime/api/endpoints/__init__.py +0 -0
  17. nmdc_runtime/api/endpoints/capabilities.py +25 -0
  18. nmdc_runtime/api/endpoints/find.py +794 -0
  19. nmdc_runtime/api/endpoints/ids.py +192 -0
  20. nmdc_runtime/api/endpoints/jobs.py +143 -0
  21. nmdc_runtime/api/endpoints/lib/__init__.py +0 -0
  22. nmdc_runtime/api/endpoints/lib/helpers.py +274 -0
  23. nmdc_runtime/api/endpoints/lib/path_segments.py +165 -0
  24. nmdc_runtime/api/endpoints/metadata.py +260 -0
  25. nmdc_runtime/api/endpoints/nmdcschema.py +581 -0
  26. nmdc_runtime/api/endpoints/object_types.py +38 -0
  27. nmdc_runtime/api/endpoints/objects.py +277 -0
  28. nmdc_runtime/api/endpoints/operations.py +105 -0
  29. nmdc_runtime/api/endpoints/queries.py +679 -0
  30. nmdc_runtime/api/endpoints/runs.py +98 -0
  31. nmdc_runtime/api/endpoints/search.py +38 -0
  32. nmdc_runtime/api/endpoints/sites.py +229 -0
  33. nmdc_runtime/api/endpoints/triggers.py +25 -0
  34. nmdc_runtime/api/endpoints/users.py +214 -0
  35. nmdc_runtime/api/endpoints/util.py +774 -0
  36. nmdc_runtime/api/endpoints/workflows.py +353 -0
  37. nmdc_runtime/api/main.py +401 -0
  38. nmdc_runtime/api/middleware.py +43 -0
  39. nmdc_runtime/api/models/__init__.py +0 -0
  40. nmdc_runtime/api/models/capability.py +14 -0
  41. nmdc_runtime/api/models/id.py +92 -0
  42. nmdc_runtime/api/models/job.py +37 -0
  43. nmdc_runtime/api/models/lib/__init__.py +0 -0
  44. nmdc_runtime/api/models/lib/helpers.py +78 -0
  45. nmdc_runtime/api/models/metadata.py +11 -0
  46. nmdc_runtime/api/models/minter.py +0 -0
  47. nmdc_runtime/api/models/nmdc_schema.py +146 -0
  48. nmdc_runtime/api/models/object.py +180 -0
  49. nmdc_runtime/api/models/object_type.py +20 -0
  50. nmdc_runtime/api/models/operation.py +66 -0
  51. nmdc_runtime/api/models/query.py +246 -0
  52. nmdc_runtime/api/models/query_continuation.py +111 -0
  53. nmdc_runtime/api/models/run.py +161 -0
  54. nmdc_runtime/api/models/site.py +87 -0
  55. nmdc_runtime/api/models/trigger.py +13 -0
  56. nmdc_runtime/api/models/user.py +140 -0
  57. nmdc_runtime/api/models/util.py +253 -0
  58. nmdc_runtime/api/models/workflow.py +15 -0
  59. nmdc_runtime/api/openapi.py +242 -0
  60. nmdc_runtime/config.py +55 -4
  61. nmdc_runtime/core/db/Database.py +1 -3
  62. nmdc_runtime/infrastructure/database/models/user.py +0 -9
  63. nmdc_runtime/lib/extract_nmdc_data.py +0 -8
  64. nmdc_runtime/lib/nmdc_dataframes.py +3 -7
  65. nmdc_runtime/lib/nmdc_etl_class.py +1 -7
  66. nmdc_runtime/minter/adapters/repository.py +1 -2
  67. nmdc_runtime/minter/config.py +2 -0
  68. nmdc_runtime/minter/domain/model.py +35 -1
  69. nmdc_runtime/minter/entrypoints/fastapi_app.py +1 -1
  70. nmdc_runtime/mongo_util.py +1 -2
  71. nmdc_runtime/site/backup/nmdcdb_mongodump.py +1 -1
  72. nmdc_runtime/site/backup/nmdcdb_mongoexport.py +1 -3
  73. nmdc_runtime/site/export/ncbi_xml.py +1 -2
  74. nmdc_runtime/site/export/ncbi_xml_utils.py +1 -1
  75. nmdc_runtime/site/graphs.py +33 -28
  76. nmdc_runtime/site/ops.py +97 -237
  77. nmdc_runtime/site/repair/database_updater.py +8 -0
  78. nmdc_runtime/site/repository.py +7 -117
  79. nmdc_runtime/site/resources.py +4 -4
  80. nmdc_runtime/site/translation/gold_translator.py +22 -21
  81. nmdc_runtime/site/translation/neon_benthic_translator.py +0 -1
  82. nmdc_runtime/site/translation/neon_soil_translator.py +4 -5
  83. nmdc_runtime/site/translation/neon_surface_water_translator.py +0 -2
  84. nmdc_runtime/site/translation/submission_portal_translator.py +64 -54
  85. nmdc_runtime/site/translation/translator.py +63 -1
  86. nmdc_runtime/site/util.py +8 -3
  87. nmdc_runtime/site/validation/util.py +10 -5
  88. nmdc_runtime/util.py +9 -321
  89. {nmdc_runtime-2.8.0.dist-info → nmdc_runtime-2.10.0.dist-info}/METADATA +57 -6
  90. nmdc_runtime-2.10.0.dist-info/RECORD +138 -0
  91. nmdc_runtime/site/translation/emsl.py +0 -43
  92. nmdc_runtime/site/translation/gold.py +0 -53
  93. nmdc_runtime/site/translation/jgi.py +0 -32
  94. nmdc_runtime/site/translation/util.py +0 -132
  95. nmdc_runtime/site/validation/jgi.py +0 -43
  96. nmdc_runtime-2.8.0.dist-info/RECORD +0 -84
  97. {nmdc_runtime-2.8.0.dist-info → nmdc_runtime-2.10.0.dist-info}/WHEEL +0 -0
  98. {nmdc_runtime-2.8.0.dist-info → nmdc_runtime-2.10.0.dist-info}/entry_points.txt +0 -0
  99. {nmdc_runtime-2.8.0.dist-info → nmdc_runtime-2.10.0.dist-info}/licenses/LICENSE +0 -0
  100. {nmdc_runtime-2.8.0.dist-info → nmdc_runtime-2.10.0.dist-info}/top_level.txt +0 -0
@@ -1,43 +0,0 @@
1
- """
2
- Translates EMSL data into JSON conformant with the NMDC JSON schema
3
- """
4
-
5
- from dagster import op, graph
6
-
7
- from nmdc_runtime.lib.nmdc_etl_class import NMDC_ETL
8
- from nmdc_runtime.site.translation.util import (
9
- load_nmdc_etl_class,
10
- load_mongo_collection,
11
- preset_prod,
12
- preset_test,
13
- schema_validate,
14
- )
15
-
16
-
17
- @op
18
- def transform_emsl_omics_processing(_context, nmdc_etl: NMDC_ETL) -> tuple:
19
- return ("emsl.omics_processing_set", nmdc_etl.transform_emsl_omics_processing())
20
-
21
-
22
- @op
23
- def transform_emsl_data_object(_context, nmdc_etl: NMDC_ETL) -> tuple:
24
- return ("emsl.data_object_set", nmdc_etl.transform_emsl_data_object())
25
-
26
-
27
- @graph
28
- def emsl():
29
- # load_merged_data_source()
30
- nmdc_etl = load_nmdc_etl_class()
31
- emsl_omics_processing = transform_emsl_omics_processing(nmdc_etl)
32
- emsl_omics_processing_validated = schema_validate(emsl_omics_processing)
33
-
34
- emsl_data_object = transform_emsl_data_object(nmdc_etl)
35
- emsl_data_object_validated = schema_validate(emsl_data_object)
36
-
37
- # load data into mongo
38
- load_mongo_collection(emsl_omics_processing_validated)
39
- load_mongo_collection(emsl_data_object_validated)
40
-
41
-
42
- emsl_job = emsl.to_job(**preset_prod)
43
- test_emsl_job = emsl.to_job(name="test_emsl", **preset_test)
@@ -1,53 +0,0 @@
1
- """
2
- Translate an export of the JGI GOLD [1] study, project, and biosample data into JSON conformant with the NMDC JSON schema.
3
- [1] Genomes OnLine Database (GOLD) <https://gold.jgi.doe.gov/>.
4
- """
5
-
6
- from dagster import op, graph
7
-
8
- from nmdc_runtime.lib.nmdc_etl_class import NMDC_ETL
9
- from nmdc_runtime.site.translation.util import (
10
- load_nmdc_etl_class,
11
- load_mongo_collection,
12
- preset_prod,
13
- preset_test,
14
- schema_validate,
15
- )
16
-
17
-
18
- @op
19
- def transform_study(_context, nmdc_etl: NMDC_ETL) -> tuple:
20
- # return {"study_set": nmdc_etl.transform_study()}
21
- return ("gold.study_set", nmdc_etl.transform_study())
22
-
23
-
24
- @op
25
- def transform_gold_omics_processing(_context, nmdc_etl: NMDC_ETL) -> tuple:
26
- return ("gold.omics_processing_set", nmdc_etl.transform_omics_processing())
27
-
28
-
29
- @op
30
- def transform_biosample(_context, nmdc_etl: NMDC_ETL) -> tuple:
31
- return ("gold.biosample_set", nmdc_etl.transform_biosample())
32
-
33
-
34
- @graph
35
- def gold():
36
- nmdc_etl = load_nmdc_etl_class()
37
- gold_study = transform_study(nmdc_etl)
38
- gold_study_validated = schema_validate(gold_study)
39
-
40
- gold_omics_processing = transform_gold_omics_processing(nmdc_etl)
41
- gold_omics_processing_validated = schema_validate(gold_omics_processing)
42
-
43
- gold_biosample = transform_biosample(nmdc_etl)
44
- gold_biosample_validated = schema_validate(gold_biosample)
45
-
46
- # load data into mongo
47
- load_mongo_collection(gold_study_validated)
48
- load_mongo_collection(gold_omics_processing_validated)
49
- load_mongo_collection(gold_biosample_validated)
50
-
51
-
52
- gold_job = gold.to_job(**preset_prod)
53
- test_gold_job = gold.to_job(name="test_gold", **preset_test)
@@ -1,32 +0,0 @@
1
- """
2
- Translates EMSL data into JSON conformant with the NMDC JSON schema
3
- """
4
-
5
- from dagster import op, graph
6
-
7
- from nmdc_runtime.lib.nmdc_etl_class import NMDC_ETL
8
- from nmdc_runtime.site.translation.util import (
9
- load_nmdc_etl_class,
10
- load_mongo_collection,
11
- preset_prod,
12
- preset_test,
13
- schema_validate,
14
- )
15
-
16
-
17
- @op
18
- def transform_jgi_data_object(_context, nmdc_etl: NMDC_ETL) -> tuple:
19
- # return "jgi.data_object_set", [{"foo": "bar"}] # used for testing failure
20
- return "jgi.data_object_set", nmdc_etl.transform_jgi_data_object()
21
-
22
-
23
- @graph
24
- def jgi():
25
- nmdc_etl = load_nmdc_etl_class()
26
- jgi_data_object = transform_jgi_data_object(nmdc_etl)
27
- jgi_data_object_validated = schema_validate(jgi_data_object)
28
- load_mongo_collection(jgi_data_object_validated)
29
-
30
-
31
- jgi_job = jgi.to_job(**preset_prod)
32
- test_jgi_job = jgi.to_job(name="test_jgi", **preset_test)
@@ -1,132 +0,0 @@
1
- from pathlib import Path
2
-
3
- from dagster import op, Failure, AssetMaterialization
4
- from dagster.core.definitions.events import AssetKey, Output
5
- from fastjsonschema import JsonSchemaValueException
6
-
7
- from nmdc_runtime.lib.nmdc_etl_class import NMDC_ETL
8
- from nmdc_runtime.site.resources import mongo_resource
9
- from nmdc_runtime.util import nmdc_jsonschema_validator
10
-
11
- mode_prod = {"resource_defs": {"mongo": mongo_resource}}
12
- mode_dev = {
13
- "resource_defs": {"mongo": mongo_resource}
14
- } # Connect to a real MongoDB instance for development.
15
- mode_test = {
16
- "resource_defs": {"mongo": mongo_resource}
17
- } # Connect to a real MongoDB instance for testing.
18
-
19
- config_prod = {
20
- "resources": {
21
- "mongo": {
22
- "config": {
23
- "host": {"env": "MONGO_HOST"},
24
- "username": {"env": "MONGO_USERNAME"},
25
- "password": {"env": "MONGO_PASSWORD"},
26
- "dbname": "nmdc_etl_staging",
27
- },
28
- }
29
- },
30
- "ops": {
31
- "load_nmdc_etl_class": {
32
- "config": {
33
- "data_file": str(
34
- Path(__file__).parent.parent.parent.parent.joinpath(
35
- "metadata-translation/src/data/nmdc_merged_data.tsv.zip"
36
- )
37
- ),
38
- "sssom_map_file": "",
39
- "spec_file": str(
40
- Path(__file__).parent.parent.parent.parent.joinpath(
41
- "nmdc_runtime/lib/nmdc_data_source.yaml"
42
- )
43
- ),
44
- }
45
- }
46
- },
47
- }
48
-
49
- config_test = {
50
- "resources": {
51
- "mongo": {
52
- "config": {
53
- # local docker container via docker-compose.yml
54
- "host": "mongo",
55
- "username": "admin",
56
- "password": "root",
57
- "dbname": "nmdc_etl_staging",
58
- },
59
- }
60
- },
61
- "ops": {
62
- "load_nmdc_etl_class": {
63
- "config": {
64
- "data_file": str(
65
- Path(__file__).parent.parent.parent.parent.joinpath(
66
- "metadata-translation/src/data/nmdc_merged_data.tsv.zip"
67
- )
68
- ),
69
- "sssom_map_file": "",
70
- "spec_file": str(
71
- Path(__file__).parent.parent.parent.parent.joinpath(
72
- "nmdc_runtime/lib/nmdc_data_source.yaml"
73
- )
74
- ),
75
- }
76
- }
77
- },
78
- }
79
-
80
- preset_prod = dict(**mode_prod, config=config_prod)
81
- preset_test = dict(**mode_test, config=config_test)
82
-
83
-
84
- @op
85
- def load_nmdc_etl_class(context) -> NMDC_ETL:
86
- # build instance of NMDC_ETL class
87
- etl = NMDC_ETL(
88
- merged_data_file=context.op_config["data_file"],
89
- data_source_spec_file=context.op_config["spec_file"],
90
- sssom_file="",
91
- )
92
- return etl
93
-
94
-
95
- @op(required_resource_keys={"mongo"})
96
- def load_mongo_collection(context, data: tuple):
97
- mongo_db = context.resources.mongo.db
98
- collection_name, documents = data
99
- collection = mongo_db[collection_name] # get mongo collection
100
-
101
- # drop collection if exists
102
- collection.drop()
103
-
104
- # insert data
105
- collection.insert(documents)
106
- context.log.info(f"inserted {len(documents)} documents into {collection.name}")
107
- return collection_name
108
-
109
-
110
- @op()
111
- def schema_validate(context, data: tuple):
112
- def schema_validate_asset(collection_name, status, errors):
113
- return AssetMaterialization(
114
- asset_key=AssetKey(["translation", f"{collection_name}_translation"]),
115
- description=f"{collection_name} translation validation",
116
- metadata={"status": status, "errors": errors},
117
- )
118
-
119
- collection_name, documents = data
120
- _, schema_collection_name = collection_name.split(".")
121
- try:
122
- nmdc_jsonschema_validator({schema_collection_name: documents})
123
- context.log.info(f"data for {collection_name} is valid")
124
- yield schema_validate_asset(collection_name, "valid", "none")
125
- return data # do I need a return statement and an Output?
126
- except JsonSchemaValueException as e:
127
- context.log.error(f"validation failed for {schema_collection_name} " + str(e))
128
- context.log.error(f"documents: {documents}")
129
- yield schema_validate_asset(collection_name, "not valid", str(e))
130
- raise Failure(str(e))
131
- finally:
132
- yield Output(data)
@@ -1,43 +0,0 @@
1
- """
2
- Validates data in the JGI collection in the nmdc_etl_staging database.
3
- """
4
-
5
- from dagster import op, graph
6
-
7
- from nmdc_runtime.site.ops import local_file_to_api_object
8
- from nmdc_runtime.site.validation.util import (
9
- preset_prod,
10
- preset_test,
11
- validate_mongo_collection,
12
- write_to_local_file,
13
- announce_validation_report,
14
- )
15
-
16
-
17
- @op
18
- def jgi_data_object_set_collection_name():
19
- return "jgi.data_object_set"
20
-
21
-
22
- @graph()
23
- def jgi():
24
- report = validate_mongo_collection(jgi_data_object_set_collection_name())
25
- # the below could also be a @graph and loaded as a "subgraph" by e.g. the jgi graph job.
26
- local_path = write_to_local_file(report)
27
- obj = local_file_to_api_object(local_path)
28
- announce_validation_report(report, obj)
29
-
30
-
31
- # passing the collecton name via the config
32
- # problem: not sure if this best when multiple sets need to be validated
33
- # from toolz import assoc_in
34
- # config_ops = {
35
- # "validate_mongo_collection": {"config": {"collection_name": "jgi.data_object_set"}}
36
- # }
37
- # validate_jgi_job = jgi.to_job(**assoc_in(preset_prod, ["config", "ops"], config_ops))
38
- # test_validate_jgi_job = jgi.to_job(
39
- # **assoc_in(preset_test, ["config", "ops"], config_ops)
40
- # )
41
-
42
- validate_jgi_job = jgi.to_job(**preset_prod)
43
- test_validate_jgi_job = jgi.to_job(**preset_test)
@@ -1,84 +0,0 @@
1
- nmdc_runtime/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- nmdc_runtime/config.py,sha256=GKmovwYD3tIiUQX-mAOcHI8NMEMLhogjHDB9I8azA4c,195
3
- nmdc_runtime/containers.py,sha256=8m_S1wiFu8VOWvY7tyqzf-02X9gXY83YGc8FgjWzLGA,418
4
- nmdc_runtime/main.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
- nmdc_runtime/mongo_util.py,sha256=7NRvqFE8W2CUcpcXAA4KElUACIdAkBehZ9TBG4k7zNE,3000
6
- nmdc_runtime/util.py,sha256=FfGNfcnHKS6Yzuwbdj0FtCcL-ks9HUjwWUfsPs1H2ao,33285
7
- nmdc_runtime/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
- nmdc_runtime/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
- nmdc_runtime/core/db/Database.py,sha256=WamgBUbq85A7-fr3p5B9Tk92U__yPdr9pBb4zyQok-4,377
10
- nmdc_runtime/core/db/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
- nmdc_runtime/core/exceptions/__init__.py,sha256=s486odD0uhUuk9K7M5_NISOgRrUE5RNnDJSypA2Qe_I,520
12
- nmdc_runtime/core/exceptions/base.py,sha256=G5azYv0FJvbjrpQtK90BkM-KK2f534szdwrHj9N-SNo,1343
13
- nmdc_runtime/core/exceptions/token.py,sha256=7iTdfRQjfijDExd6-KJBjN7t0BGI_Kc1F6Lc-d0AsE8,293
14
- nmdc_runtime/domain/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
- nmdc_runtime/domain/users/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
- nmdc_runtime/domain/users/queriesInterface.py,sha256=0DjOehnsA5oKADmRKh8NTool2zoQZaejFigXHuUGoOg,476
17
- nmdc_runtime/domain/users/userSchema.py,sha256=eVpsB5aSbT89XjPh2_m7ao8XyyinEC94hpZQIouV4uk,758
18
- nmdc_runtime/domain/users/userService.py,sha256=b-HD7N-wWQyAux_iZsXMBFrz5_j9ygRc3qsJlm-vQGI,428
19
- nmdc_runtime/infrastructure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
- nmdc_runtime/infrastructure/database/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
- nmdc_runtime/infrastructure/database/db.py,sha256=djdqVxXvvJWtJUj4yariINcOuYOkQ_OiAYI_jGqOtM8,32
22
- nmdc_runtime/infrastructure/database/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
- nmdc_runtime/infrastructure/database/models/user.py,sha256=gOZVsQ9uZ_JlPKUcNOiJpj4_CQ9p2BpCaegcPiJQETs,188
24
- nmdc_runtime/lib/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
25
- nmdc_runtime/lib/extract_nmdc_data.py,sha256=xDFPoYsgkauN48R4v-tJIF0cP_p3J-sBjnyHd0InD9Y,1177
26
- nmdc_runtime/lib/load_nmdc_data.py,sha256=KO2cIqkY3cBCVcFIwsGokZNOKntOejZVG8ecq43NjFM,3934
27
- nmdc_runtime/lib/nmdc_dataframes.py,sha256=rVTczY2Jey1yE3x3nZ-RTgtdc2XkzLtKhB_PM3FIb-E,28849
28
- nmdc_runtime/lib/nmdc_etl_class.py,sha256=tVh3rKVMkBHQE65_LhKeIjCsaCZQk_HJzbc9K4xUNCs,13522
29
- nmdc_runtime/lib/transform_nmdc_data.py,sha256=hij4lR3IMQRJQdL-rsP_I-m_WyFPsBMchV2MNFUkh0M,39906
30
- nmdc_runtime/minter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
31
- nmdc_runtime/minter/bootstrap.py,sha256=5Ej6pJVBRryRIi0ZwEloY78Zky7iE2okF6tPwRI2axM,822
32
- nmdc_runtime/minter/config.py,sha256=gsXZropDeeTO5tmLAtRuoocwqL3HgfgqVAENyCbX-Gc,2739
33
- nmdc_runtime/minter/adapters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
34
- nmdc_runtime/minter/adapters/repository.py,sha256=I-jmGP38-9kPhkogrwUht_Ir0CfHA9_5ZImw5I_wbcw,8323
35
- nmdc_runtime/minter/domain/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
36
- nmdc_runtime/minter/domain/model.py,sha256=WMOuKub3dVzkOt_EZSRDLeTsJPqFbKx01SMQ53TOlDU,1416
37
- nmdc_runtime/minter/entrypoints/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
38
- nmdc_runtime/minter/entrypoints/fastapi_app.py,sha256=JC4thvzfFwRc1mhWQ-kHy3yvs0SYxF6ktE7LXNCwqlI,4031
39
- nmdc_runtime/site/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
40
- nmdc_runtime/site/graphs.py,sha256=cJfLCRYH6l3SW-0MYIOihORit6Fe_gziwQ6BJaph55c,17713
41
- nmdc_runtime/site/ops.py,sha256=m9p8dlfNVpdEyu0o06cT9jMLkjZh0GGFxEQxDuDPUaA,65917
42
- nmdc_runtime/site/repository.py,sha256=ZkIykDDaFTxB4QW1Eo_w-9IywQrXXTV7Ugogf8vQ604,47439
43
- nmdc_runtime/site/resources.py,sha256=2R9X-06f9ZpDWYKltOkl_IIAScQGEEbsZF-URm4O6dM,20164
44
- nmdc_runtime/site/util.py,sha256=h70UJCT9g-I63EJn0drZjv1iaQ8LHJTbG29R9kqJ04c,1821
45
- nmdc_runtime/site/backup/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
46
- nmdc_runtime/site/backup/nmdcdb_mongodump.py,sha256=H5uosmEiXwLwklJrYJWrNhb_Nuf_ew8dBpZLl6_dYhs,2699
47
- nmdc_runtime/site/backup/nmdcdb_mongoexport.py,sha256=XIFI_AI3zl0dFr-ELOEmwvT41MyRKBGFaAT3RcamTNE,4166
48
- nmdc_runtime/site/backup/nmdcdb_mongoimport.py,sha256=k6w5yscMNYoMBVkaAA9soWS0Dj2CB0FRBSFlifRO3Ro,1739
49
- nmdc_runtime/site/changesheets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
50
- nmdc_runtime/site/changesheets/base.py,sha256=lZT6WCsEBl-FsTr7Ki8_ploT93uMiVyIWWKM36aOrRk,3171
51
- nmdc_runtime/site/drsobjects/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
52
- nmdc_runtime/site/drsobjects/ingest.py,sha256=pcMP69WSzFHFqHB9JIL55ePFhilnCLRc2XHCQ97w1Ik,3107
53
- nmdc_runtime/site/drsobjects/registration.py,sha256=D1T3QUuxEOxqKZIvB5rkb_6ZxFZiA-U9SMPajyeWC2Y,3572
54
- nmdc_runtime/site/export/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
55
- nmdc_runtime/site/export/ncbi_xml.py,sha256=iZQHBr3LL5Q32I2L_Xpfp9n4ZtgAz_MwrlxIF5do7Pw,29715
56
- nmdc_runtime/site/export/ncbi_xml_utils.py,sha256=RnoAW0HQwBG6JR63d9muI18RIC114wnX3iYPqOllw44,10700
57
- nmdc_runtime/site/export/study_metadata.py,sha256=yR5pXL6JG8d7cAtqcF-60Hp7bLD3dJ0Rut4AtYc0tXA,4844
58
- nmdc_runtime/site/normalization/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
59
- nmdc_runtime/site/normalization/gold.py,sha256=iISDD4qs4d6uLhv631WYNeQVOzY5DO201ZpPtxHdkVk,1311
60
- nmdc_runtime/site/repair/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
61
- nmdc_runtime/site/repair/database_updater.py,sha256=gRZ-NxZzXNd-vTIuygabEUqUSiF9eL4hL2rI9Qdf2WI,20764
62
- nmdc_runtime/site/translation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
63
- nmdc_runtime/site/translation/emsl.py,sha256=-aCTJTSCNaK-Koh8BE_4fTf5nyxP1KkquR6lloLEJl0,1245
64
- nmdc_runtime/site/translation/gold.py,sha256=R3W99sdQb7Pgu_esN7ruIC-tyREQD_idJ4xCzkqWuGw,1622
65
- nmdc_runtime/site/translation/gold_translator.py,sha256=HGbWeuxppqlVfU8F5oKTYIDoC6qaftugJeWFIALB9XE,32720
66
- nmdc_runtime/site/translation/jgi.py,sha256=qk878KhIw674TkrVfbl2x1QJrKi3zlvE0vesIpe9slM,876
67
- nmdc_runtime/site/translation/neon_benthic_translator.py,sha256=8_QF75Gf-dc2xVeO6jzTmdDrlGdh1-QrLJKG2SwUhCA,23797
68
- nmdc_runtime/site/translation/neon_soil_translator.py,sha256=IMeq4ABgWaSUbB_gmG8vBCMeynQSlbCUw9p2be6o8kE,38620
69
- nmdc_runtime/site/translation/neon_surface_water_translator.py,sha256=Js8_r6vHBW8b-_BpFySTUuYOFe7r51k8HwaNCQ7nAAg,30587
70
- nmdc_runtime/site/translation/neon_utils.py,sha256=d00o7duKKugpLHmsEifNbp4WjeC4GOqcgw0b5qlCg4I,5549
71
- nmdc_runtime/site/translation/submission_portal_translator.py,sha256=UEeqlkz_YGqcnx8vomFysetOlXxDu23q0Ryr93SZy78,41684
72
- nmdc_runtime/site/translation/translator.py,sha256=V6Aq0y03LoQ4LTL2iHDHxGTh_eMjOmDJJSwNHSrp2wo,837
73
- nmdc_runtime/site/translation/util.py,sha256=w_l3SiExGsl6cXRqto0a_ssDmHkP64ITvrOVfPxmNpY,4366
74
- nmdc_runtime/site/validation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
75
- nmdc_runtime/site/validation/emsl.py,sha256=OG20mv_3E2rkQqTQtYO0_SVRqFb-Z_zKCiAVbty6Wl0,671
76
- nmdc_runtime/site/validation/gold.py,sha256=Z5ZzYdjERbrJ2Tu06d0TDTBSfwaFdL1Z23Rl-YkZ2Ow,803
77
- nmdc_runtime/site/validation/jgi.py,sha256=LdJfhqBVHWCDp0Kzyk8eJZMwEI5NQ-zuTda31BcGwOA,1299
78
- nmdc_runtime/site/validation/util.py,sha256=GGbMDSwR090sr_E_fHffCN418gpYESaiot6XghS7OYk,3349
79
- nmdc_runtime-2.8.0.dist-info/licenses/LICENSE,sha256=VWiv65r7gHGjgtr3jMJYVmQny5GRpQ6H-W9sScb1x70,2408
80
- nmdc_runtime-2.8.0.dist-info/METADATA,sha256=B8Vhde36JVAAwdCqKkcFaTyF13D0uWL8KEQnsyJUajc,8953
81
- nmdc_runtime-2.8.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
82
- nmdc_runtime-2.8.0.dist-info/entry_points.txt,sha256=JxdvOnvxHK_8046cwlvE30s_fV0-k-eTpQtkKYA69nQ,224
83
- nmdc_runtime-2.8.0.dist-info/top_level.txt,sha256=b0K1s09L_iHH49ueBKaLrB5-lh6cyrSv9vL6x4Qvyz8,13
84
- nmdc_runtime-2.8.0.dist-info/RECORD,,