nmdc-runtime 1.10.0__py3-none-any.whl → 2.0.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.
- nmdc_runtime/minter/config.py +59 -3
- nmdc_runtime/site/export/ncbi_xml.py +29 -25
- nmdc_runtime/site/export/ncbi_xml_utils.py +5 -5
- nmdc_runtime/site/export/study_metadata.py +3 -1
- nmdc_runtime/site/graphs.py +71 -15
- nmdc_runtime/site/ops.py +131 -42
- nmdc_runtime/site/repository.py +16 -4
- nmdc_runtime/site/translation/gold_translator.py +112 -43
- nmdc_runtime/site/translation/neon_benthic_translator.py +58 -31
- nmdc_runtime/site/translation/neon_soil_translator.py +71 -45
- nmdc_runtime/site/translation/neon_surface_water_translator.py +61 -32
- nmdc_runtime/site/translation/neon_utils.py +19 -6
- nmdc_runtime/site/translation/submission_portal_translator.py +67 -36
- {nmdc_runtime-1.10.0.dist-info → nmdc_runtime-2.0.0.dist-info}/METADATA +1 -1
- {nmdc_runtime-1.10.0.dist-info → nmdc_runtime-2.0.0.dist-info}/RECORD +19 -19
- {nmdc_runtime-1.10.0.dist-info → nmdc_runtime-2.0.0.dist-info}/LICENSE +0 -0
- {nmdc_runtime-1.10.0.dist-info → nmdc_runtime-2.0.0.dist-info}/WHEEL +0 -0
- {nmdc_runtime-1.10.0.dist-info → nmdc_runtime-2.0.0.dist-info}/entry_points.txt +0 -0
- {nmdc_runtime-1.10.0.dist-info → nmdc_runtime-2.0.0.dist-info}/top_level.txt +0 -0
|
@@ -64,9 +64,9 @@ class SubmissionPortalTranslator(Translator):
|
|
|
64
64
|
def __init__(
|
|
65
65
|
self,
|
|
66
66
|
metadata_submission: JSON_OBJECT = {},
|
|
67
|
-
omics_processing_mapping: Optional[list] = None,
|
|
68
|
-
data_object_mapping: Optional[list] = None,
|
|
69
67
|
*args,
|
|
68
|
+
nucleotide_sequencing_mapping: Optional[list] = None,
|
|
69
|
+
data_object_mapping: Optional[list] = None,
|
|
70
70
|
# Additional study-level metadata not captured by the submission portal currently
|
|
71
71
|
# See: https://github.com/microbiomedata/submission-schema/issues/162
|
|
72
72
|
study_doi_category: Optional[str] = None,
|
|
@@ -84,7 +84,7 @@ class SubmissionPortalTranslator(Translator):
|
|
|
84
84
|
super().__init__(*args, **kwargs)
|
|
85
85
|
|
|
86
86
|
self.metadata_submission = metadata_submission
|
|
87
|
-
self.
|
|
87
|
+
self.nucleotide_sequencing_mapping = nucleotide_sequencing_mapping
|
|
88
88
|
self.data_object_mapping = data_object_mapping
|
|
89
89
|
|
|
90
90
|
self.study_doi_category = (
|
|
@@ -127,6 +127,7 @@ class SubmissionPortalTranslator(Translator):
|
|
|
127
127
|
email=study_form.get("piEmail"),
|
|
128
128
|
orcid=study_form.get("piOrcid"),
|
|
129
129
|
profile_image_url=self.study_pi_image_url,
|
|
130
|
+
type=nmdc.PersonValue.class_class_curie,
|
|
130
131
|
)
|
|
131
132
|
|
|
132
133
|
def _get_doi(self, metadata_submission: JSON_OBJECT) -> Union[List[nmdc.Doi], None]:
|
|
@@ -147,6 +148,7 @@ class SubmissionPortalTranslator(Translator):
|
|
|
147
148
|
doi_value=dataset_doi,
|
|
148
149
|
doi_provider=self.study_doi_provider,
|
|
149
150
|
doi_category=self.study_doi_category,
|
|
151
|
+
type="nmdc:Doi",
|
|
150
152
|
)
|
|
151
153
|
]
|
|
152
154
|
|
|
@@ -167,8 +169,10 @@ class SubmissionPortalTranslator(Translator):
|
|
|
167
169
|
applies_to_person=nmdc.PersonValue(
|
|
168
170
|
name=contributor.get("name"),
|
|
169
171
|
orcid=contributor.get("orcid"),
|
|
172
|
+
type="nmdc:PersonValue",
|
|
170
173
|
),
|
|
171
174
|
applied_roles=contributor.get("roles"),
|
|
175
|
+
type="nmdc:CreditAssociation",
|
|
172
176
|
)
|
|
173
177
|
for contributor in contributors
|
|
174
178
|
]
|
|
@@ -217,7 +221,10 @@ class SubmissionPortalTranslator(Translator):
|
|
|
217
221
|
if not match:
|
|
218
222
|
return None
|
|
219
223
|
|
|
220
|
-
qv = nmdc.QuantityValue(
|
|
224
|
+
qv = nmdc.QuantityValue(
|
|
225
|
+
has_raw_value=raw_value,
|
|
226
|
+
type="nmdc:QuantityValue",
|
|
227
|
+
)
|
|
221
228
|
if match.group(2):
|
|
222
229
|
# having group 2 means the value is a range like "0 - 1". Either
|
|
223
230
|
# group 1 or group 2 might be the minimum especially when handling
|
|
@@ -264,6 +271,7 @@ class SubmissionPortalTranslator(Translator):
|
|
|
264
271
|
return nmdc.OntologyClass(
|
|
265
272
|
name=match.group(1).strip(),
|
|
266
273
|
id=match.group(2).strip(),
|
|
274
|
+
type="nmdc:OntologyClass",
|
|
267
275
|
)
|
|
268
276
|
|
|
269
277
|
def _get_controlled_identified_term_value(
|
|
@@ -285,7 +293,9 @@ class SubmissionPortalTranslator(Translator):
|
|
|
285
293
|
return None
|
|
286
294
|
|
|
287
295
|
return nmdc.ControlledIdentifiedTermValue(
|
|
288
|
-
has_raw_value=raw_value,
|
|
296
|
+
has_raw_value=raw_value,
|
|
297
|
+
term=ontology_class,
|
|
298
|
+
type="nmdc:ControlledIdentifiedTermValue",
|
|
289
299
|
)
|
|
290
300
|
|
|
291
301
|
def _get_controlled_term_value(
|
|
@@ -302,7 +312,10 @@ class SubmissionPortalTranslator(Translator):
|
|
|
302
312
|
if not raw_value:
|
|
303
313
|
return None
|
|
304
314
|
|
|
305
|
-
value = nmdc.ControlledTermValue(
|
|
315
|
+
value = nmdc.ControlledTermValue(
|
|
316
|
+
has_raw_value=raw_value,
|
|
317
|
+
type="nmdc:ControlledTermValue",
|
|
318
|
+
)
|
|
306
319
|
ontology_class = self._get_ontology_class(raw_value)
|
|
307
320
|
if ontology_class is not None:
|
|
308
321
|
value.term = ontology_class
|
|
@@ -332,7 +345,10 @@ class SubmissionPortalTranslator(Translator):
|
|
|
332
345
|
return None
|
|
333
346
|
|
|
334
347
|
return nmdc.GeolocationValue(
|
|
335
|
-
has_raw_value=raw_value,
|
|
348
|
+
has_raw_value=raw_value,
|
|
349
|
+
latitude=match.group(1),
|
|
350
|
+
longitude=match.group(2),
|
|
351
|
+
type="nmdc:GeolocationValue",
|
|
336
352
|
)
|
|
337
353
|
|
|
338
354
|
def _get_float(self, raw_value: Optional[str]) -> Union[float, None]:
|
|
@@ -425,6 +441,7 @@ class SubmissionPortalTranslator(Translator):
|
|
|
425
441
|
principal_investigator=self._get_pi(metadata_submission),
|
|
426
442
|
study_category=self.study_category,
|
|
427
443
|
title=self._get_from(metadata_submission, ["studyForm", "studyName"]),
|
|
444
|
+
type="nmdc:Study",
|
|
428
445
|
websites=self._get_from(
|
|
429
446
|
metadata_submission, ["studyForm", "linkOutWebpage"]
|
|
430
447
|
),
|
|
@@ -435,15 +452,24 @@ class SubmissionPortalTranslator(Translator):
|
|
|
435
452
|
):
|
|
436
453
|
transformed_value = None
|
|
437
454
|
if slot.range == "TextValue":
|
|
438
|
-
transformed_value = nmdc.TextValue(
|
|
455
|
+
transformed_value = nmdc.TextValue(
|
|
456
|
+
has_raw_value=value,
|
|
457
|
+
type="nmdc:TextValue",
|
|
458
|
+
)
|
|
439
459
|
elif slot.range == "QuantityValue":
|
|
440
|
-
transformed_value = self._get_quantity_value(
|
|
460
|
+
transformed_value = self._get_quantity_value(
|
|
461
|
+
value,
|
|
462
|
+
unit=unit,
|
|
463
|
+
)
|
|
441
464
|
elif slot.range == "ControlledIdentifiedTermValue":
|
|
442
465
|
transformed_value = self._get_controlled_identified_term_value(value)
|
|
443
466
|
elif slot.range == "ControlledTermValue":
|
|
444
467
|
transformed_value = self._get_controlled_term_value(value)
|
|
445
468
|
elif slot.range == "TimestampValue":
|
|
446
|
-
transformed_value = nmdc.TimestampValue(
|
|
469
|
+
transformed_value = nmdc.TimestampValue(
|
|
470
|
+
has_raw_value=value,
|
|
471
|
+
type="nmdc:TimestampValue",
|
|
472
|
+
)
|
|
447
473
|
elif slot.range == "GeolocationValue":
|
|
448
474
|
transformed_value = self._get_geolocation_value(value)
|
|
449
475
|
elif slot.range == "float":
|
|
@@ -531,9 +557,12 @@ class SubmissionPortalTranslator(Translator):
|
|
|
531
557
|
biosample_key = sample_data[0].get(BIOSAMPLE_UNIQUE_KEY_SLOT, "").strip()
|
|
532
558
|
slots = {
|
|
533
559
|
"id": nmdc_biosample_id,
|
|
534
|
-
"
|
|
560
|
+
"associated_studies": [nmdc_study_id],
|
|
561
|
+
"type": "nmdc:Biosample",
|
|
535
562
|
"name": sample_data[0].get("samp_name", "").strip(),
|
|
536
|
-
"env_package": nmdc.TextValue(
|
|
563
|
+
"env_package": nmdc.TextValue(
|
|
564
|
+
has_raw_value=default_env_package, type="nmdc:TextValue"
|
|
565
|
+
),
|
|
537
566
|
}
|
|
538
567
|
for tab in sample_data:
|
|
539
568
|
transformed_tab = self._transform_dict_for_class(tab, "Biosample")
|
|
@@ -590,18 +619,18 @@ class SubmissionPortalTranslator(Translator):
|
|
|
590
619
|
if sample_data
|
|
591
620
|
]
|
|
592
621
|
|
|
593
|
-
if self.
|
|
594
|
-
# If there is data from an
|
|
622
|
+
if self.nucleotide_sequencing_mapping:
|
|
623
|
+
# If there is data from an NucleotideSequencing mapping file, process it now. This part
|
|
595
624
|
# assumes that there is a column in that file with the header __biosample_samp_name
|
|
596
625
|
# that can be used to join with the sample data from the submission portal. The
|
|
597
626
|
# biosample identified by that `samp_name` will be referenced in the `has_input`
|
|
598
|
-
# slot of the
|
|
599
|
-
# those objects will also be generated and referenced in the `has_output` slot
|
|
600
|
-
#
|
|
601
|
-
# sample data there is an implicit 1:1 relationship between Biosample
|
|
602
|
-
#
|
|
627
|
+
# slot of the NucleotideSequencing object. If a DataObject mapping file was also
|
|
628
|
+
# provided, those objects will also be generated and referenced in the `has_output` slot
|
|
629
|
+
# of the NucleotideSequencing object. By keying off of the `samp_name` slot of the
|
|
630
|
+
# submission's sample data there is an implicit 1:1 relationship between Biosample
|
|
631
|
+
# objects and NucleotideSequencing objects generated here.
|
|
603
632
|
join_key = f"__biosample_{BIOSAMPLE_UNIQUE_KEY_SLOT}"
|
|
604
|
-
database.
|
|
633
|
+
database.data_generation_set = []
|
|
605
634
|
database.data_object_set = []
|
|
606
635
|
data_objects_by_sample_data_id = {}
|
|
607
636
|
today = datetime.now().strftime("%Y-%m-%d")
|
|
@@ -617,10 +646,10 @@ class SubmissionPortalTranslator(Translator):
|
|
|
617
646
|
grouped,
|
|
618
647
|
)
|
|
619
648
|
|
|
620
|
-
for
|
|
621
|
-
# For each row in the
|
|
622
|
-
# id that corresponds to the sample ID from the submission
|
|
623
|
-
sample_data_id =
|
|
649
|
+
for nucleotide_sequencing_row in self.nucleotide_sequencing_mapping:
|
|
650
|
+
# For each row in the NucleotideSequencing mapping file, first grab the minted
|
|
651
|
+
# Biosample id that corresponds to the sample ID from the submission
|
|
652
|
+
sample_data_id = nucleotide_sequencing_row.pop(join_key)
|
|
624
653
|
if (
|
|
625
654
|
not sample_data_id
|
|
626
655
|
or sample_data_id not in sample_data_to_nmdc_biosample_ids
|
|
@@ -631,31 +660,33 @@ class SubmissionPortalTranslator(Translator):
|
|
|
631
660
|
continue
|
|
632
661
|
nmdc_biosample_id = sample_data_to_nmdc_biosample_ids[sample_data_id]
|
|
633
662
|
|
|
634
|
-
# Transform the raw row data according to the
|
|
635
|
-
# generate an instance. A few key slots do not come from the mapping file, but
|
|
663
|
+
# Transform the raw row data according to the NucleotideSequencing class's slots,
|
|
664
|
+
# and generate an instance. A few key slots do not come from the mapping file, but
|
|
636
665
|
# instead are defined here.
|
|
637
|
-
|
|
638
|
-
"id": self._id_minter("nmdc:
|
|
666
|
+
nucleotide_sequencing_slots = {
|
|
667
|
+
"id": self._id_minter("nmdc:NucleotideSequencing", 1)[0],
|
|
639
668
|
"has_input": [nmdc_biosample_id],
|
|
640
669
|
"has_output": [],
|
|
641
|
-
"
|
|
670
|
+
"associated_studies": [nmdc_study_id],
|
|
642
671
|
"add_date": today,
|
|
643
672
|
"mod_date": today,
|
|
644
|
-
"type": "nmdc:
|
|
673
|
+
"type": "nmdc:NucleotideSequencing",
|
|
645
674
|
}
|
|
646
|
-
|
|
675
|
+
nucleotide_sequencing_slots.update(
|
|
647
676
|
self._transform_dict_for_class(
|
|
648
|
-
|
|
677
|
+
nucleotide_sequencing_row, "NucleotideSequencing"
|
|
649
678
|
)
|
|
650
679
|
)
|
|
651
|
-
|
|
680
|
+
nucleotide_sequencing = nmdc.NucleotideSequencing(
|
|
681
|
+
**nucleotide_sequencing_slots
|
|
682
|
+
)
|
|
652
683
|
|
|
653
684
|
for data_object_row in data_objects_by_sample_data_id.get(
|
|
654
685
|
sample_data_id, []
|
|
655
686
|
):
|
|
656
687
|
# For each row in the DataObject mapping file that corresponds to the sample ID,
|
|
657
688
|
# transform the raw row data according to the DataObject class's slots, generate
|
|
658
|
-
# an instance, and connect that instance's minted ID to the
|
|
689
|
+
# an instance, and connect that instance's minted ID to the NucleotideSequencing
|
|
659
690
|
# instance
|
|
660
691
|
data_object_id = self._id_minter("nmdc:DataObject", 1)[0]
|
|
661
692
|
data_object_slots = {
|
|
@@ -667,10 +698,10 @@ class SubmissionPortalTranslator(Translator):
|
|
|
667
698
|
)
|
|
668
699
|
data_object = nmdc.DataObject(**data_object_slots)
|
|
669
700
|
|
|
670
|
-
|
|
701
|
+
nucleotide_sequencing.has_output.append(data_object_id)
|
|
671
702
|
|
|
672
703
|
database.data_object_set.append(data_object)
|
|
673
704
|
|
|
674
|
-
database.
|
|
705
|
+
database.data_generation_set.append(nucleotide_sequencing)
|
|
675
706
|
|
|
676
707
|
return database
|
|
@@ -28,7 +28,7 @@ nmdc_runtime/lib/nmdc_etl_class.py,sha256=tVh3rKVMkBHQE65_LhKeIjCsaCZQk_HJzbc9K4
|
|
|
28
28
|
nmdc_runtime/lib/transform_nmdc_data.py,sha256=hij4lR3IMQRJQdL-rsP_I-m_WyFPsBMchV2MNFUkh0M,39906
|
|
29
29
|
nmdc_runtime/minter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
30
30
|
nmdc_runtime/minter/bootstrap.py,sha256=5Ej6pJVBRryRIi0ZwEloY78Zky7iE2okF6tPwRI2axM,822
|
|
31
|
-
nmdc_runtime/minter/config.py,sha256=
|
|
31
|
+
nmdc_runtime/minter/config.py,sha256=WrxX9WmyN7Ft4INRAQbd31jmlm5qwaDDaNS9AktieYA,4112
|
|
32
32
|
nmdc_runtime/minter/adapters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
33
33
|
nmdc_runtime/minter/adapters/repository.py,sha256=I-jmGP38-9kPhkogrwUht_Ir0CfHA9_5ZImw5I_wbcw,8323
|
|
34
34
|
nmdc_runtime/minter/domain/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -36,9 +36,9 @@ nmdc_runtime/minter/domain/model.py,sha256=WMOuKub3dVzkOt_EZSRDLeTsJPqFbKx01SMQ5
|
|
|
36
36
|
nmdc_runtime/minter/entrypoints/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
37
37
|
nmdc_runtime/minter/entrypoints/fastapi_app.py,sha256=JC4thvzfFwRc1mhWQ-kHy3yvs0SYxF6ktE7LXNCwqlI,4031
|
|
38
38
|
nmdc_runtime/site/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
39
|
-
nmdc_runtime/site/graphs.py,sha256=
|
|
40
|
-
nmdc_runtime/site/ops.py,sha256=
|
|
41
|
-
nmdc_runtime/site/repository.py,sha256=
|
|
39
|
+
nmdc_runtime/site/graphs.py,sha256=ZHglSPwVHfXzdgR2CGvmbzLLbmsijloU58XvIe9Thjs,13996
|
|
40
|
+
nmdc_runtime/site/ops.py,sha256=EOR4VjRoFoaI2odKRgcgtGxngPsx2U0H45zzWrvQzf8,44603
|
|
41
|
+
nmdc_runtime/site/repository.py,sha256=rDtwUjozhyOxlkuF9HvaheOQDQWkgZYqVtsB50BcUp4,39121
|
|
42
42
|
nmdc_runtime/site/resources.py,sha256=ZSH1yvA-li0R7Abc22_v0XLbjBYf5igETr2G01J3hnc,17557
|
|
43
43
|
nmdc_runtime/site/util.py,sha256=zAY0oIY7GRf63ecqWelmS27N7PVrAXVwEhtnpescBSw,1415
|
|
44
44
|
nmdc_runtime/site/backup/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -51,21 +51,21 @@ nmdc_runtime/site/drsobjects/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NM
|
|
|
51
51
|
nmdc_runtime/site/drsobjects/ingest.py,sha256=pcMP69WSzFHFqHB9JIL55ePFhilnCLRc2XHCQ97w1Ik,3107
|
|
52
52
|
nmdc_runtime/site/drsobjects/registration.py,sha256=D1T3QUuxEOxqKZIvB5rkb_6ZxFZiA-U9SMPajyeWC2Y,3572
|
|
53
53
|
nmdc_runtime/site/export/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
54
|
-
nmdc_runtime/site/export/ncbi_xml.py,sha256=
|
|
55
|
-
nmdc_runtime/site/export/ncbi_xml_utils.py,sha256=
|
|
56
|
-
nmdc_runtime/site/export/study_metadata.py,sha256=
|
|
54
|
+
nmdc_runtime/site/export/ncbi_xml.py,sha256=bfGnvFO7jQmlNAdzXpQiNBw7DGvWQ3pTPfgbhczb_kM,22561
|
|
55
|
+
nmdc_runtime/site/export/ncbi_xml_utils.py,sha256=71LSFIYioF61xalKgsQ_Po63322dNbfQfYzqo2hZ720,7575
|
|
56
|
+
nmdc_runtime/site/export/study_metadata.py,sha256=yR5pXL6JG8d7cAtqcF-60Hp7bLD3dJ0Rut4AtYc0tXA,4844
|
|
57
57
|
nmdc_runtime/site/normalization/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
58
58
|
nmdc_runtime/site/normalization/gold.py,sha256=iISDD4qs4d6uLhv631WYNeQVOzY5DO201ZpPtxHdkVk,1311
|
|
59
59
|
nmdc_runtime/site/translation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
60
60
|
nmdc_runtime/site/translation/emsl.py,sha256=-aCTJTSCNaK-Koh8BE_4fTf5nyxP1KkquR6lloLEJl0,1245
|
|
61
61
|
nmdc_runtime/site/translation/gold.py,sha256=R3W99sdQb7Pgu_esN7ruIC-tyREQD_idJ4xCzkqWuGw,1622
|
|
62
|
-
nmdc_runtime/site/translation/gold_translator.py,sha256=
|
|
62
|
+
nmdc_runtime/site/translation/gold_translator.py,sha256=ln0BXI2v7pTgui3uNbl8tU1iOkfDZH4Z8SCaFLuuTI8,29438
|
|
63
63
|
nmdc_runtime/site/translation/jgi.py,sha256=qk878KhIw674TkrVfbl2x1QJrKi3zlvE0vesIpe9slM,876
|
|
64
|
-
nmdc_runtime/site/translation/neon_benthic_translator.py,sha256=
|
|
65
|
-
nmdc_runtime/site/translation/neon_soil_translator.py,sha256=
|
|
66
|
-
nmdc_runtime/site/translation/neon_surface_water_translator.py,sha256=
|
|
67
|
-
nmdc_runtime/site/translation/neon_utils.py,sha256=
|
|
68
|
-
nmdc_runtime/site/translation/submission_portal_translator.py,sha256=
|
|
64
|
+
nmdc_runtime/site/translation/neon_benthic_translator.py,sha256=QIDqYLuf-NlGY9_88gy_5qTswkei3OfgJ5AOFpEXzJo,23985
|
|
65
|
+
nmdc_runtime/site/translation/neon_soil_translator.py,sha256=Rol0g67nVBGSBySUzpfdW4Fwes7bKtvnlv2g5cB0aTI,38550
|
|
66
|
+
nmdc_runtime/site/translation/neon_surface_water_translator.py,sha256=MQgjIfWPgoRe-bhzyfqHSe2mZwFsjcwjdT8tNqpIhlc,27729
|
|
67
|
+
nmdc_runtime/site/translation/neon_utils.py,sha256=d00o7duKKugpLHmsEifNbp4WjeC4GOqcgw0b5qlCg4I,5549
|
|
68
|
+
nmdc_runtime/site/translation/submission_portal_translator.py,sha256=6QkEfz-RN8y_aHckUWLUuQz3DslbvFck2Vyu7funHrQ,29152
|
|
69
69
|
nmdc_runtime/site/translation/translator.py,sha256=xM9dM-nTgSWwu5HFoUVNHf8kqk9iiH4PgWdSx4OKxEk,601
|
|
70
70
|
nmdc_runtime/site/translation/util.py,sha256=w_l3SiExGsl6cXRqto0a_ssDmHkP64ITvrOVfPxmNpY,4366
|
|
71
71
|
nmdc_runtime/site/validation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -73,9 +73,9 @@ nmdc_runtime/site/validation/emsl.py,sha256=OG20mv_3E2rkQqTQtYO0_SVRqFb-Z_zKCiAV
|
|
|
73
73
|
nmdc_runtime/site/validation/gold.py,sha256=Z5ZzYdjERbrJ2Tu06d0TDTBSfwaFdL1Z23Rl-YkZ2Ow,803
|
|
74
74
|
nmdc_runtime/site/validation/jgi.py,sha256=LdJfhqBVHWCDp0Kzyk8eJZMwEI5NQ-zuTda31BcGwOA,1299
|
|
75
75
|
nmdc_runtime/site/validation/util.py,sha256=GGbMDSwR090sr_E_fHffCN418gpYESaiot6XghS7OYk,3349
|
|
76
|
-
nmdc_runtime-
|
|
77
|
-
nmdc_runtime-
|
|
78
|
-
nmdc_runtime-
|
|
79
|
-
nmdc_runtime-
|
|
80
|
-
nmdc_runtime-
|
|
81
|
-
nmdc_runtime-
|
|
76
|
+
nmdc_runtime-2.0.0.dist-info/LICENSE,sha256=VWiv65r7gHGjgtr3jMJYVmQny5GRpQ6H-W9sScb1x70,2408
|
|
77
|
+
nmdc_runtime-2.0.0.dist-info/METADATA,sha256=e8uam0Dfv0ljsbuFsh-y56HIKpdw0BuQqtG6cJAIus8,7302
|
|
78
|
+
nmdc_runtime-2.0.0.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
|
|
79
|
+
nmdc_runtime-2.0.0.dist-info/entry_points.txt,sha256=JxdvOnvxHK_8046cwlvE30s_fV0-k-eTpQtkKYA69nQ,224
|
|
80
|
+
nmdc_runtime-2.0.0.dist-info/top_level.txt,sha256=b0K1s09L_iHH49ueBKaLrB5-lh6cyrSv9vL6x4Qvyz8,13
|
|
81
|
+
nmdc_runtime-2.0.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|