From 9becea7c11548ecf01f2a83c0c2972c133344902 Mon Sep 17 00:00:00 2001 From: Mark Andrew Miller Date: Fri, 17 Nov 2023 15:16:21 -0500 Subject: [PATCH 1/9] #1368 generate-import-slots-regardless --mixs-schema-url option --- .../generate_import_slots_regardless.py | 32 +++++++++++-------- project.Makefile | 6 +++- 2 files changed, 23 insertions(+), 15 deletions(-) diff --git a/nmdc_schema/generate_import_slots_regardless.py b/nmdc_schema/generate_import_slots_regardless.py index 1a1faf5f19..fc64e1ec46 100644 --- a/nmdc_schema/generate_import_slots_regardless.py +++ b/nmdc_schema/generate_import_slots_regardless.py @@ -3,18 +3,19 @@ class ImportSlotsRegardless: - mixs_slots_used_in_schema_tsv = "../assets/mixs_slots_used_in_schema.tsv" - mixs_slots_used_in_schema = list() - - static_value_dict = { - "source class": "soil MIMS", - # "source file or URL": "https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/main/model/schema/mixs.yaml", - "source file or URL": "https://raw.githubusercontent.com/microbiomedata/mixs/1da849346a80b717810a02d7c8ed74a22bcd84de/model/schema/mixs.yaml", - "slot": "", - "section": "", - "column order": "", - "destination class": "placeholder_class" - } + + def __init__(self, mixs_schema_url, slots_tsv): + self.static_value_dict = { + "source class": "soil MIMS", + "source file or URL": mixs_schema_url, + "slot": "", + "section": "", + "column order": "", + "destination class": "placeholder_class" + } + + self.mixs_slots_used_in_schema_tsv = slots_tsv + self.mixs_slots_used_in_schema = list() def populate_mixs_slots_used_in_schema(self, input_file): with open(input_file, 'r') as file: @@ -44,8 +45,11 @@ def write_import_slots_regardless_rows(self, output_file, input_file): @click.command() @click.option("--input_file", required=True, help="input file path from get-mixs-slots-used-in-schema") @click.option("--output_file", required=True, help="output file path for sheets_and_friends") -def main(output_file, input_file): - import_slots = ImportSlotsRegardless() +@click.option("--slots-tsv", default="assets/mixs_slots_used_in_schema.tsv") +@click.option("--mixs-schema-url", + default="https://raw.githubusercontent.com/microbiomedata/mixs/1da849346a80b717810a02d7c8ed74a22bcd84de/model/schema/mixs.yaml") +def main(output_file, input_file, slots_tsv, mixs_schema_url): + import_slots = ImportSlotsRegardless(mixs_schema_url=mixs_schema_url, slots_tsv=slots_tsv) import_slots.write_import_slots_regardless_rows(output_file, input_file) click.echo("Import slots regardless file generated successfully.") diff --git a/project.Makefile b/project.Makefile index 9d7d1712b2..d73298966c 100644 --- a/project.Makefile +++ b/project.Makefile @@ -79,7 +79,11 @@ local/mixs_regen/slots_associated_with_biosample_omics_processing.tsv local/mixs_regen/import_slots_regardless_gen.tsv: \ local/mixs_regen/mixs_slots_associated_with_biosample_omics_processing.tsv - $(RUN) generate-import-slots-regardless --input_file $< --output_file $@ + $(RUN) generate-import-slots-regardless \ + --input_file $< \ + --mixs-schema-url "https://raw.githubusercontent.com/microbiomedata/mixs/1da849346a80b717810a02d7c8ed74a22bcd84de/model/schema/mixs.yaml" \ + --output_file $@ \ + --slots-tsv assets/mixs_slots_used_in_schema.tsv local/mixs_regen/mixs_subset.yaml: local/mixs_regen/import_slots_regardless_gen.tsv $(RUN) do_shuttle \ From 2e31c2dbb8ce21b3825b86a032b844178e7d347d Mon Sep 17 00:00:00 2001 From: Mark Andrew Miller Date: Sun, 19 Nov 2023 23:03:31 -0500 Subject: [PATCH 2/9] minimal to pass MongoDB contents --- Makefile | 2 +- assets/old_python/get_class_usages.py | 2 +- .../mixs_slots_import_sheet.tsv | 484 +++++++++ .../generate_import_slots_regardless.py | 58 -- nmdc_schema/get_mixs_slots.py | 47 - .../get_mixs_slots_matching_slot_list.py | 50 - nmdc_schema/get_mixs_slots_used_in_schema.py | 40 - nmdc_schema/get_slots_from_class.py | 50 - nmdc_schema/get_slots_from_view.py | 16 - nmdc_schema/test_more_tolerant_schema.py | 2 +- poetry.lock | 984 ++++++++---------- project.Makefile | 284 ++--- pyproject.toml | 7 +- .../{valid => }/Biosample-exhasutive.yaml | 16 +- ...xhaustive-issue-796-bye-yq-for-7-4-10.yaml | 6 +- .../Database-biosample-exhasutive.yaml | 16 +- src/schema/core.yaml | 8 +- src/schema/mixs_legacy.yaml | 23 + src/schema/nmdc.yaml | 39 +- tests/test_getters.py | 35 - 20 files changed, 1059 insertions(+), 1110 deletions(-) create mode 100644 assets/other_mixs_yaml_files/mixs_slots_import_sheet.tsv delete mode 100644 nmdc_schema/generate_import_slots_regardless.py delete mode 100644 nmdc_schema/get_mixs_slots.py delete mode 100644 nmdc_schema/get_mixs_slots_matching_slot_list.py delete mode 100644 nmdc_schema/get_mixs_slots_used_in_schema.py delete mode 100644 nmdc_schema/get_slots_from_class.py delete mode 100644 nmdc_schema/get_slots_from_view.py rename src/data/{valid => }/Biosample-exhasutive.yaml (99%) rename src/data/{valid => }/Biosample-exhaustive-issue-796-bye-yq-for-7-4-10.yaml (99%) rename src/data/{valid => }/Database-biosample-exhasutive.yaml (99%) create mode 100644 src/schema/mixs_legacy.yaml delete mode 100644 tests/test_getters.py diff --git a/Makefile b/Makefile index b286908d4a..837cf3d6bb 100644 --- a/Makefile +++ b/Makefile @@ -227,7 +227,7 @@ site-clean: clean rm -rf nmdc_schema/*.tsv rm -rf nmdc_schema/*.yaml -squeaky-clean: clean OmicsProcessing-clean accepting-legacy-ids-clean examples-clean mongodb-clean rdf-clean shuttle-clean site-clean # does not include mixs-yaml-clean +squeaky-clean: clean OmicsProcessing-clean accepting-legacy-ids-clean examples-clean rdf-clean shuttle-clean site-clean # does not include mixs-yaml-clean project/nmdc_schema_merged.yaml: $(RUN) gen-linkml \ diff --git a/assets/old_python/get_class_usages.py b/assets/old_python/get_class_usages.py index f3df50b56a..3c5b19cca6 100644 --- a/assets/old_python/get_class_usages.py +++ b/assets/old_python/get_class_usages.py @@ -8,7 +8,7 @@ import logging -from nmdc_schema.get_mixs_slots import MIxSSlotsGetter +# from nmdc_schema.get_mixs_slots import MIxSSlotsGetter logging.basicConfig(level=logging.WARNING) logger = logging.getLogger(__name__) diff --git a/assets/other_mixs_yaml_files/mixs_slots_import_sheet.tsv b/assets/other_mixs_yaml_files/mixs_slots_import_sheet.tsv new file mode 100644 index 0000000000..0210d6e4f8 --- /dev/null +++ b/assets/other_mixs_yaml_files/mixs_slots_import_sheet.tsv @@ -0,0 +1,484 @@ +source class source file or URL column order section slot destination class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml abs_air_humidity placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml add_recov_method placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml additional_info placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml address placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml adj_room placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml aero_struc placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml agrochem_addition placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml air_PM_concen placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml air_temp placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml air_temp_regm placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml al_sat placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml al_sat_meth placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml alkalinity placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml alkalinity_method placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml alkyl_diethers placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml alt placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml aminopept_act placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml ammonium placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml amount_light placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml ances_data placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml annual_precpt placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml annual_temp placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml antibiotic_regm placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml api placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml arch_struc placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml aromatics_pc placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml asphaltenes_pc placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml atmospheric_data placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml avg_dew_point placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml avg_occup placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml avg_temp placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml bac_prod placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml bac_resp placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml bacteria_carb_prod placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml barometric_press placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml basin placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml bathroom_count placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml bedroom_count placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml benzene placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml biochem_oxygen_dem placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml biocide placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml biocide_admin_method placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml biol_stat placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml biomass placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml biotic_regm placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml biotic_relationship placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml bishomohopanol placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml blood_press_diast placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml blood_press_syst placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml bromide placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml build_docs placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml build_occup_type placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml building_setting placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml built_struc_age placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml built_struc_set placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml built_struc_type placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml calcium placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml carb_dioxide placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml carb_monoxide placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml carb_nitro_ratio placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml ceil_area placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml ceil_cond placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml ceil_finish_mat placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml ceil_struc placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml ceil_texture placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml ceil_thermal_mass placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml ceil_type placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml ceil_water_mold placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml chem_administration placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml chem_mutagen placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml chem_oxygen_dem placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml chem_treat_method placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml chem_treatment placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml chimera_check placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml chloride placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml chlorophyll placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml climate_environment placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml collection_date placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml conduc placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml cool_syst_id placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml crop_rotation placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml cult_root_med placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml cur_land_use placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml cur_vegetation placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml cur_vegetation_meth placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml date_last_rain placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml density placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml depos_env placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml depth placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml dew_point placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml diether_lipids placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml diss_carb_dioxide placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml diss_hydrogen placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml diss_inorg_carb placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml diss_inorg_nitro placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml diss_inorg_phosp placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml diss_iron placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml diss_org_carb placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml diss_org_nitro placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml diss_oxygen placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml diss_oxygen_fluid placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml door_comp_type placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml door_cond placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml door_direct placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml door_loc placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml door_mat placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml door_move placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml door_size placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml door_type placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml door_type_metal placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml door_type_wood placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml door_water_mold placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml down_par placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml drainage_class placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml drawings placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml efficiency_percent placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml elev placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml elevator placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml emulsions placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml env_broad_scale placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml env_local_scale placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml env_medium placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml escalator placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml ethylbenzene placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml exp_duct placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml exp_pipe placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml experimental_factor placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml ext_door placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml ext_wall_orient placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml ext_window_orient placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml extreme_event placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml fao_class placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml fertilizer_regm placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml field placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml filter_type placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml fire placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml fireplace_type placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml flooding placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml floor_age placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml floor_area placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml floor_cond placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml floor_count placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml floor_finish_mat placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml floor_struc placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml floor_thermal_mass placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml floor_water_mold placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml fluor placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml freq_clean placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml freq_cook placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml fungicide_regm placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml furniture placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml gaseous_environment placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml gaseous_substances placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml gender_restroom placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml genetic_mod placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml geo_loc_name placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml glucosidase_act placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml gravidity placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml gravity placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml growth_facil placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml growth_habit placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml growth_hormone_regm placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml hall_count placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml handidness placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml hc_produced placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml hcr placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml hcr_fw_salinity placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml hcr_geol_age placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml hcr_pressure placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml hcr_temp placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml heat_cool_type placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml heat_deliv_loc placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml heat_sys_deliv_meth placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml heat_system_id placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml heavy_metals placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml heavy_metals_meth placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml height_carper_fiber placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml herbicide_regm placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml horizon_meth placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml host_age placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml host_body_habitat placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml host_body_product placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml host_body_site placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml host_body_temp placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml host_color placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml host_common_name placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml host_diet placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml host_dry_mass placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml host_genotype placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml host_growth_cond placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml host_height placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml host_last_meal placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml host_length placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml host_life_stage placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml host_phenotype placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml host_sex placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml host_shape placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml host_subject_id placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml host_subspecf_genlin placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml host_substrate placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml host_symbiont placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml host_taxid placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml host_tot_mass placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml host_wet_mass placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml humidity placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml humidity_regm placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml indoor_space placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml indoor_surf placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml indust_eff_percent placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml inorg_particles placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml inside_lux placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml int_wall_cond placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml iw_bt_date_well placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml iwf placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml last_clean placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml lat_lon placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml light_intensity placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml light_regm placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml light_type placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml link_addit_analys placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml link_class_info placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml link_climate_info placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml lithology placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml local_class placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml local_class_meth placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml magnesium placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml max_occup placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml mean_frict_vel placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml mean_peak_frict_vel placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml mech_struc placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml mechanical_damage placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml methane placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml micro_biomass_meth placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml microbial_biomass placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml mineral_nutr_regm placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml misc_param placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml n_alkanes placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml nitrate placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml nitrite placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml nitro placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml non_min_nutr_regm placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml nucl_acid_amp placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml nucl_acid_ext placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml number_pets placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml number_plants placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml number_resident placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml occup_density_samp placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml occup_document placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml occup_samp placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml org_carb placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml org_count_qpcr_info placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml org_matter placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml org_nitro placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml org_particles placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml organism_count placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml owc_tvdss placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml oxy_stat_samp placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml oxygen placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml part_org_carb placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml part_org_nitro placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml particle_class placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml pcr_cond placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml pcr_primers placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml permeability placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml perturbation placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml pesticide_regm placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml petroleum_hydrocarb placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml ph placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml ph_meth placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml ph_regm placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml phaeopigments placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml phosphate placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml phosplipid_fatt_acid placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml photon_flux placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml plant_growth_med placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml plant_product placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml plant_sex placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml plant_struc placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml pollutants placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml pool_dna_extracts placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml porosity placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml potassium placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml pour_point placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml pre_treatment placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml pres_animal_insect placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml pressure placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml prev_land_use_meth placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml previous_land_use placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml primary_prod placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml primary_treatment placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml prod_rate placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml prod_start_date placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml profile_position placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml quad_pos placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml radiation_regm placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml rainfall_regm placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml reactor_type placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml redox_potential placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml rel_air_humidity placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml rel_humidity_out placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml rel_samp_loc placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml reservoir placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml resins_pc placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml room_air_exch_rate placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml room_architec_elem placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml room_condt placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml room_connected placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml room_count placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml room_dim placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml room_door_dist placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml room_door_share placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml room_hallway placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml room_loc placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml room_moist_dam_hist placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml room_net_area placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml room_occup placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml room_samp_pos placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml room_type placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml room_vol placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml room_wall_share placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml room_window_count placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml root_cond placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml root_med_carbon placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml root_med_macronutr placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml root_med_micronutr placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml root_med_ph placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml root_med_regl placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml root_med_solid placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml root_med_suppl placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml salinity placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml salt_regm placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml samp_capt_status placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml samp_collect_point placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml samp_dis_stage placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml samp_floor placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml samp_loc_corr_rate placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml samp_mat_process placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml samp_md placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml samp_name placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml samp_preserv placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml samp_room_id placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml samp_size placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml samp_sort_meth placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml samp_store_dur placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml samp_store_loc placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml samp_store_temp placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml samp_subtype placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml samp_taxon_id placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml samp_time_out placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml samp_transport_cond placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml samp_tvdss placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml samp_type placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml samp_vol_we_dna_ext placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml samp_weather placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml samp_well_name placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml saturates_pc placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml season placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml season_environment placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml season_precpt placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml season_temp placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml season_use placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml secondary_treatment placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml sediment_type placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml seq_meth placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml seq_quality_check placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml sewage_type placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml shad_dev_water_mold placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml shading_device_cond placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml shading_device_loc placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml shading_device_mat placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml shading_device_type placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml sieving placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml silicate placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml size_frac placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml size_frac_low placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml size_frac_up placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml slope_aspect placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml slope_gradient placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml sludge_retent_time placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml sodium placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml soil_horizon placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml soil_texture_meth placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml soil_type placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml soil_type_meth placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml solar_irradiance placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml soluble_inorg_mat placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml soluble_org_mat placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml soluble_react_phosp placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml source_mat_id placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml space_typ_state placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml specific placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml specific_humidity placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml sr_dep_env placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml sr_geol_age placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml sr_kerog_type placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml sr_lithology placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml standing_water_regm placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml store_cond placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml substructure_type placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml sulfate placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml sulfate_fw placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml sulfide placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml surf_air_cont placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml surf_humidity placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml surf_material placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml surf_moisture placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml surf_moisture_ph placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml surf_temp placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml suspend_part_matter placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml suspend_solids placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml tan placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml target_gene placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml target_subfragment placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml temp placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml temp_out placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml tertiary_treatment placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml tidal_stage placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml tillage placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml tiss_cult_growth_med placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml toluene placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml tot_carb placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml tot_depth_water_col placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml tot_diss_nitro placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml tot_inorg_nitro placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml tot_iron placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml tot_nitro placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml tot_nitro_cont_meth placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml tot_nitro_content placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml tot_org_c_meth placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml tot_org_carb placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml tot_part_carb placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml tot_phosp placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml tot_phosphate placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml tot_sulfur placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml train_line placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml train_stat_loc placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml train_stop_loc placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml turbidity placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml tvdss_of_hcr_press placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml tvdss_of_hcr_temp placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml typ_occup_density placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml ventilation_rate placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml ventilation_type placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml vfa placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml vfa_fw placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml vis_media placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml viscosity placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml volatile_org_comp placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml wall_area placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml wall_const_type placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml wall_finish_mat placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml wall_height placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml wall_loc placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml wall_surf_treatment placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml wall_texture placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml wall_thermal_mass placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml wall_water_mold placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml wastewater_type placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml water_cont_soil_meth placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml water_content placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml water_current placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml water_cut placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml water_feat_size placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml water_feat_type placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml water_prod_rate placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml water_temp_regm placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml watering_regm placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml weekday placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml win placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml wind_direction placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml wind_speed placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml window_cond placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml window_cover placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml window_horiz_pos placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml window_loc placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml window_mat placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml window_open_freq placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml window_size placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml window_status placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml window_type placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml window_vert_pos placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml window_water_mold placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml xylene placeholder_class diff --git a/nmdc_schema/generate_import_slots_regardless.py b/nmdc_schema/generate_import_slots_regardless.py deleted file mode 100644 index fc64e1ec46..0000000000 --- a/nmdc_schema/generate_import_slots_regardless.py +++ /dev/null @@ -1,58 +0,0 @@ -import csv -import click - - -class ImportSlotsRegardless: - - def __init__(self, mixs_schema_url, slots_tsv): - self.static_value_dict = { - "source class": "soil MIMS", - "source file or URL": mixs_schema_url, - "slot": "", - "section": "", - "column order": "", - "destination class": "placeholder_class" - } - - self.mixs_slots_used_in_schema_tsv = slots_tsv - self.mixs_slots_used_in_schema = list() - - def populate_mixs_slots_used_in_schema(self, input_file): - with open(input_file, 'r') as file: - self.mixs_slots_used_in_schema = [line.strip().split('\t')[0] for line in file] - - def make_import_slots_regardless_rows(self, input_file): - self.populate_mixs_slots_used_in_schema(input_file) - import_slots_regardless_rows = list() - - for slot in self.mixs_slots_used_in_schema: - final_dict = self.static_value_dict.copy() - final_dict["slot"] = slot - import_slots_regardless_rows.append(final_dict) - - return import_slots_regardless_rows - - def write_import_slots_regardless_rows(self, output_file, input_file): - fieldnames = list(self.static_value_dict.keys()) - slots_regardless_rows = self.make_import_slots_regardless_rows(input_file) - with open(output_file, 'w', newline='') as output_file: - writer = csv.DictWriter(output_file, fieldnames=fieldnames, delimiter='\t') - writer.writeheader() - for row in slots_regardless_rows: - writer.writerow(row) - - -@click.command() -@click.option("--input_file", required=True, help="input file path from get-mixs-slots-used-in-schema") -@click.option("--output_file", required=True, help="output file path for sheets_and_friends") -@click.option("--slots-tsv", default="assets/mixs_slots_used_in_schema.tsv") -@click.option("--mixs-schema-url", - default="https://raw.githubusercontent.com/microbiomedata/mixs/1da849346a80b717810a02d7c8ed74a22bcd84de/model/schema/mixs.yaml") -def main(output_file, input_file, slots_tsv, mixs_schema_url): - import_slots = ImportSlotsRegardless(mixs_schema_url=mixs_schema_url, slots_tsv=slots_tsv) - import_slots.write_import_slots_regardless_rows(output_file, input_file) - click.echo("Import slots regardless file generated successfully.") - - -if __name__ == '__main__': - main() diff --git a/nmdc_schema/get_mixs_slots.py b/nmdc_schema/get_mixs_slots.py deleted file mode 100644 index 87669c2f2b..0000000000 --- a/nmdc_schema/get_mixs_slots.py +++ /dev/null @@ -1,47 +0,0 @@ -import csv -import pprint -import urllib.request - -import csv -import io -import urllib.request -from typing import List - - -class MIxSSlotsGetter: - # switch to retrieving from GSC' mixs.yaml - def any_mixs_sheet_getter(self, url): - response = urllib.request.urlopen(url) - tsv_file = io.StringIO(response.read().decode('utf-8')) - - rows = [] - - # Parse the file using DictReader - reader = csv.DictReader(tsv_file, delimiter='\t') - for row in reader: - rows.append(row) - - return rows - - def extract_vals_from_rows(self, rows, var_name): - slots = [] - for row in rows: - if var_name in row and row[var_name] != '': - slots.append(row[var_name]) - slots.sort() - return slots - - def get_unique_slot_names(self, - var_name: str = "Structured comment name", - url_list: List[str] = ( - "https://docs.google.com/spreadsheets/d/1QDeeUcDqXes69Y2RjU2aWgOpCVWo5OVsBX9MKmMqi_o/export?gid=178015749&format=tsv", - "https://docs.google.com/spreadsheets/d/1QDeeUcDqXes69Y2RjU2aWgOpCVWo5OVsBX9MKmMqi_o/export?gid=750683809&format=tsv" - )): - slot_names = set() - for url in url_list: - parsed = self.any_mixs_sheet_getter(url) - per_page_slots = self.extract_vals_from_rows(parsed, var_name) - slot_names.update(per_page_slots) - slot_names = list(slot_names) - slot_names.sort() - return slot_names diff --git a/nmdc_schema/get_mixs_slots_matching_slot_list.py b/nmdc_schema/get_mixs_slots_matching_slot_list.py deleted file mode 100644 index 09c977aec3..0000000000 --- a/nmdc_schema/get_mixs_slots_matching_slot_list.py +++ /dev/null @@ -1,50 +0,0 @@ -from typing import List - -from nmdc_schema.get_mixs_slots import MIxSSlotsGetter -from nmdc_schema.get_slots_from_view import SchemaSlotsGetter - -import click - - -class IntersectionMixsSlotsGetter: - mixs_term_getter: MIxSSlotsGetter = MIxSSlotsGetter() - mixs_slotnames: List[str] = mixs_term_getter.get_unique_slot_names() - slot_list = [] - - def get_intersection_mixs_slots(self, slot_list_file) -> List[str]: - print(f"slot_list_file: {slot_list_file}") - with open(slot_list_file, 'r') as file: - self.slot_list = [line.strip().split('\t')[0] for line in file] - - used_mixs_slots = list(set(self.mixs_slotnames) & set(self.slot_list)) - used_mixs_slots.sort() - return used_mixs_slots - - -@click.command() -@click.option('--slot_list_file', - '-s', - type=click.Path(exists=True), - required=True, - help='Provide a single-column TSV file listing desired slots.') -@click.option('--output_file', - '-o', - type=click.File('w'), - required=True, - help='Your output will be written as a single-column TSV file.') -def main(slot_list_file, output_file): - print(f"slot_list_file: {slot_list_file}") - print(f"output_file: {output_file}") - - intersection_mixs_slot_getter = IntersectionMixsSlotsGetter() - intersection_mixs_slots = intersection_mixs_slot_getter.get_intersection_mixs_slots(slot_list_file) - - with output_file: - for slot in intersection_mixs_slots: - output_file.write(f"{slot}\n") - - click.echo(f"The result has been written to {output_file.name}") - - -if __name__ == '__main__': - main() diff --git a/nmdc_schema/get_mixs_slots_used_in_schema.py b/nmdc_schema/get_mixs_slots_used_in_schema.py deleted file mode 100644 index f0d578b202..0000000000 --- a/nmdc_schema/get_mixs_slots_used_in_schema.py +++ /dev/null @@ -1,40 +0,0 @@ -from typing import List - -from nmdc_schema.get_mixs_slots import MIxSSlotsGetter -from nmdc_schema.get_slots_from_view import SchemaSlotsGetter - -import click - - -class UsedMixsSlotsGetter: - mixs_term_getter: MIxSSlotsGetter = MIxSSlotsGetter() - mixs_slotnames: List[str] = mixs_term_getter.get_unique_slot_names() - - schema_slots_getter: SchemaSlotsGetter = SchemaSlotsGetter() - schema_slots: List[str] = schema_slots_getter.get_schema_slots() - - def get_used_mixs_slots(self) -> List[str]: - used_mixs_slots = list(set(self.mixs_slotnames) & set(self.schema_slots)) - used_mixs_slots.sort() - return used_mixs_slots - - -@click.command() -@click.option('--output_file', - '-o', - type=click.File('w'), - required=True, - help='Your output will be written as a single-column TSV file.') -def main(output_file): - used_mixs_slot_getter = UsedMixsSlotsGetter() - used_mixs_slots = used_mixs_slot_getter.get_used_mixs_slots() - - with output_file: - for slot in used_mixs_slots: - output_file.write(f"{slot}\n") - - click.echo(f"The result has been written to {output_file.name}") - - -if __name__ == '__main__': - main() diff --git a/nmdc_schema/get_slots_from_class.py b/nmdc_schema/get_slots_from_class.py deleted file mode 100644 index e9f8190f5c..0000000000 --- a/nmdc_schema/get_slots_from_class.py +++ /dev/null @@ -1,50 +0,0 @@ -import pprint -from typing import List - -import click - -from nmdc_schema.get_nmdc_view import ViewGetter - - -class ClassSlotsGetter: - @staticmethod - def get_class_slots(class_name) -> List[str]: - # assumes user wants slots from induced class - # if the user adds a MIxS slot to class Biosample, will the view be created? - # might need a pure YAML solution - # or user could just add slot name to ??? - # most importantly, this get the view from nmdc_schema,nmdc_schema_merged.yaml - # which won't include the user's changes!!! - view_getter = ViewGetter() - nmdc_view = view_getter.get_view() - nmdc_class = nmdc_view.induced_class(class_name) - class_slots = nmdc_class.attributes - - class_slot_names = [v.name for k, v in class_slots.items()] - class_slot_names.sort() - return class_slot_names - - -@click.command() -@click.option('--output_file', - '-o', - type=click.File('w'), - required=True, - help='Your output will be written as a single-column TSV file.') -@click.option('--class_name', - '-c', - required=True, - help='For what class do you want to retrieve slots?.') -def main(output_file, class_name): - class_slot_getter = ClassSlotsGetter() - class_used_slots = class_slot_getter.get_class_slots(class_name) - - with output_file: - for slot in class_used_slots: - output_file.write(f"{slot}\n") - - click.echo(f"The result has been written to {output_file}") - - -if __name__ == '__main__': - main() diff --git a/nmdc_schema/get_slots_from_view.py b/nmdc_schema/get_slots_from_view.py deleted file mode 100644 index e808aad7a4..0000000000 --- a/nmdc_schema/get_slots_from_view.py +++ /dev/null @@ -1,16 +0,0 @@ -import pprint -from typing import List - -from nmdc_schema.get_nmdc_view import ViewGetter - - -class SchemaSlotsGetter: - def get_schema_slots(self) -> List[str]: - view_getter = ViewGetter() - nmdc_view = view_getter.get_view() - - schema_slots = nmdc_view.all_slots() - schema_slot_names = [v.name for k, v in schema_slots.items()] - schema_slot_names.sort() - return schema_slot_names - diff --git a/nmdc_schema/test_more_tolerant_schema.py b/nmdc_schema/test_more_tolerant_schema.py index a5ec31eac0..3630ed4c30 100644 --- a/nmdc_schema/test_more_tolerant_schema.py +++ b/nmdc_schema/test_more_tolerant_schema.py @@ -12,6 +12,6 @@ def do_test(): term=OntologyClass(id='ENVO:00010483', name='freshwater environment')), env_local_scale=ControlledIdentifiedTermValue( term=OntologyClass(id='ENVO:00010483', name='freshwater environment')), - ) + ), print(yaml_dumper.dumps(bs)) diff --git a/poetry.lock b/poetry.lock index 8651de3360..e2c6513b5e 100644 --- a/poetry.lock +++ b/poetry.lock @@ -135,13 +135,13 @@ chardet = ">=3.0.2" [[package]] name = "bioregistry" -version = "0.10.69" +version = "0.10.80" description = "Integrated registry of biological databases and nomenclatures" optional = false python-versions = ">=3.8" files = [ - {file = "bioregistry-0.10.69-py3-none-any.whl", hash = "sha256:205a3afafe382b63ee172bc32aac0e3c09df26efb2437879eea2703aa11697de"}, - {file = "bioregistry-0.10.69.tar.gz", hash = "sha256:921b129aa86628683964b510a6a3ad68e889fdb86c2b59ee532772a5c4b65c1a"}, + {file = "bioregistry-0.10.80-py3-none-any.whl", hash = "sha256:13f63b75c2882a82bffb9a55b52ba42b2a510e969cb6851c352c036640dea964"}, + {file = "bioregistry-0.10.80.tar.gz", hash = "sha256:32e80c08781a258b36c34d470441aaf55317969b1f8728d8fee984f0b0b89700"}, ] [package.dependencies] @@ -165,29 +165,29 @@ web = ["bootstrap-flask (<=2.0.0)", "curies[fastapi]", "fastapi", "flask (<2.2.4 [[package]] name = "black" -version = "23.10.1" +version = "23.11.0" description = "The uncompromising code formatter." optional = false python-versions = ">=3.8" files = [ - {file = "black-23.10.1-cp310-cp310-macosx_10_16_arm64.whl", hash = "sha256:ec3f8e6234c4e46ff9e16d9ae96f4ef69fa328bb4ad08198c8cee45bb1f08c69"}, - {file = "black-23.10.1-cp310-cp310-macosx_10_16_x86_64.whl", hash = "sha256:1b917a2aa020ca600483a7b340c165970b26e9029067f019e3755b56e8dd5916"}, - {file = "black-23.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c74de4c77b849e6359c6f01987e94873c707098322b91490d24296f66d067dc"}, - {file = "black-23.10.1-cp310-cp310-win_amd64.whl", hash = "sha256:7b4d10b0f016616a0d93d24a448100adf1699712fb7a4efd0e2c32bbb219b173"}, - {file = "black-23.10.1-cp311-cp311-macosx_10_16_arm64.whl", hash = "sha256:b15b75fc53a2fbcac8a87d3e20f69874d161beef13954747e053bca7a1ce53a0"}, - {file = "black-23.10.1-cp311-cp311-macosx_10_16_x86_64.whl", hash = "sha256:e293e4c2f4a992b980032bbd62df07c1bcff82d6964d6c9496f2cd726e246ace"}, - {file = "black-23.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7d56124b7a61d092cb52cce34182a5280e160e6aff3137172a68c2c2c4b76bcb"}, - {file = "black-23.10.1-cp311-cp311-win_amd64.whl", hash = "sha256:3f157a8945a7b2d424da3335f7ace89c14a3b0625e6593d21139c2d8214d55ce"}, - {file = "black-23.10.1-cp38-cp38-macosx_10_16_arm64.whl", hash = "sha256:cfcce6f0a384d0da692119f2d72d79ed07c7159879d0bb1bb32d2e443382bf3a"}, - {file = "black-23.10.1-cp38-cp38-macosx_10_16_x86_64.whl", hash = "sha256:33d40f5b06be80c1bbce17b173cda17994fbad096ce60eb22054da021bf933d1"}, - {file = "black-23.10.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:840015166dbdfbc47992871325799fd2dc0dcf9395e401ada6d88fe11498abad"}, - {file = "black-23.10.1-cp38-cp38-win_amd64.whl", hash = "sha256:037e9b4664cafda5f025a1728c50a9e9aedb99a759c89f760bd83730e76ba884"}, - {file = "black-23.10.1-cp39-cp39-macosx_10_16_arm64.whl", hash = "sha256:7cb5936e686e782fddb1c73f8aa6f459e1ad38a6a7b0e54b403f1f05a1507ee9"}, - {file = "black-23.10.1-cp39-cp39-macosx_10_16_x86_64.whl", hash = "sha256:7670242e90dc129c539e9ca17665e39a146a761e681805c54fbd86015c7c84f7"}, - {file = "black-23.10.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5ed45ac9a613fb52dad3b61c8dea2ec9510bf3108d4db88422bacc7d1ba1243d"}, - {file = "black-23.10.1-cp39-cp39-win_amd64.whl", hash = "sha256:6d23d7822140e3fef190734216cefb262521789367fbdc0b3f22af6744058982"}, - {file = "black-23.10.1-py3-none-any.whl", hash = "sha256:d431e6739f727bb2e0495df64a6c7a5310758e87505f5f8cde9ff6c0f2d7e4fe"}, - {file = "black-23.10.1.tar.gz", hash = "sha256:1f8ce316753428ff68749c65a5f7844631aa18c8679dfd3ca9dc1a289979c258"}, + {file = "black-23.11.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:dbea0bb8575c6b6303cc65017b46351dc5953eea5c0a59d7b7e3a2d2f433a911"}, + {file = "black-23.11.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:412f56bab20ac85927f3a959230331de5614aecda1ede14b373083f62ec24e6f"}, + {file = "black-23.11.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d136ef5b418c81660ad847efe0e55c58c8208b77a57a28a503a5f345ccf01394"}, + {file = "black-23.11.0-cp310-cp310-win_amd64.whl", hash = "sha256:6c1cac07e64433f646a9a838cdc00c9768b3c362805afc3fce341af0e6a9ae9f"}, + {file = "black-23.11.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cf57719e581cfd48c4efe28543fea3d139c6b6f1238b3f0102a9c73992cbb479"}, + {file = "black-23.11.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:698c1e0d5c43354ec5d6f4d914d0d553a9ada56c85415700b81dc90125aac244"}, + {file = "black-23.11.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:760415ccc20f9e8747084169110ef75d545f3b0932ee21368f63ac0fee86b221"}, + {file = "black-23.11.0-cp311-cp311-win_amd64.whl", hash = "sha256:58e5f4d08a205b11800332920e285bd25e1a75c54953e05502052738fe16b3b5"}, + {file = "black-23.11.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:45aa1d4675964946e53ab81aeec7a37613c1cb71647b5394779e6efb79d6d187"}, + {file = "black-23.11.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4c44b7211a3a0570cc097e81135faa5f261264f4dfaa22bd5ee2875a4e773bd6"}, + {file = "black-23.11.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2a9acad1451632021ee0d146c8765782a0c3846e0e0ea46659d7c4f89d9b212b"}, + {file = "black-23.11.0-cp38-cp38-win_amd64.whl", hash = "sha256:fc7f6a44d52747e65a02558e1d807c82df1d66ffa80a601862040a43ec2e3142"}, + {file = "black-23.11.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7f622b6822f02bfaf2a5cd31fdb7cd86fcf33dab6ced5185c35f5db98260b055"}, + {file = "black-23.11.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:250d7e60f323fcfc8ea6c800d5eba12f7967400eb6c2d21ae85ad31c204fb1f4"}, + {file = "black-23.11.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5133f5507007ba08d8b7b263c7aa0f931af5ba88a29beacc4b2dc23fcefe9c06"}, + {file = "black-23.11.0-cp39-cp39-win_amd64.whl", hash = "sha256:421f3e44aa67138ab1b9bfbc22ee3780b22fa5b291e4db8ab7eee95200726b07"}, + {file = "black-23.11.0-py3-none-any.whl", hash = "sha256:54caaa703227c6e0c87b76326d0862184729a69b73d3b7305b6288e1d830067e"}, + {file = "black-23.11.0.tar.gz", hash = "sha256:4c68855825ff432d197229846f971bc4d6666ce90492e5b02013bcaca4d9ab05"}, ] [package.dependencies] @@ -229,28 +229,28 @@ files = [ [[package]] name = "cattrs" -version = "23.1.2" +version = "23.2.0" description = "Composable complex class support for attrs and dataclasses." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "cattrs-23.1.2-py3-none-any.whl", hash = "sha256:b2bb14311ac17bed0d58785e5a60f022e5431aca3932e3fc5cc8ed8639de50a4"}, - {file = "cattrs-23.1.2.tar.gz", hash = "sha256:db1c821b8c537382b2c7c66678c3790091ca0275ac486c76f3c8f3920e83c657"}, + {file = "cattrs-23.2.0-py3-none-any.whl", hash = "sha256:9783f5afefc889b680a83b7afc88c53388ae89d05d4c199b35869beac1f77832"}, + {file = "cattrs-23.2.0.tar.gz", hash = "sha256:49dccdb50a22524c1129b00d67eaaade61065e0bf8961e27d0c8a12d8b02af12"}, ] [package.dependencies] -attrs = ">=20" -exceptiongroup = {version = "*", markers = "python_version < \"3.11\""} -typing_extensions = {version = ">=4.1.0", markers = "python_version < \"3.11\""} +attrs = ">=23.1.0" +exceptiongroup = {version = ">=1.1.1", markers = "python_version < \"3.11\""} +typing-extensions = {version = ">=4.1.0,<4.6.3 || >4.6.3", markers = "python_version < \"3.11\""} [package.extras] -bson = ["pymongo (>=4.2.0,<5.0.0)"] -cbor2 = ["cbor2 (>=5.4.6,<6.0.0)"] -msgpack = ["msgpack (>=1.0.2,<2.0.0)"] -orjson = ["orjson (>=3.5.2,<4.0.0)"] -pyyaml = ["PyYAML (>=6.0,<7.0)"] -tomlkit = ["tomlkit (>=0.11.4,<0.12.0)"] -ujson = ["ujson (>=5.4.0,<6.0.0)"] +bson = ["pymongo (>=4.4.0)"] +cbor2 = ["cbor2 (>=5.4.6)"] +msgpack = ["msgpack (>=1.0.5)"] +orjson = ["orjson (>=3.9.2)"] +pyyaml = ["pyyaml (>=6.0)"] +tomlkit = ["tomlkit (>=0.11.8)"] +ujson = ["ujson (>=5.7.0)"] [[package]] name = "certifi" @@ -494,13 +494,13 @@ pyproject = ["toml (>=0.10)"] [[package]] name = "curies" -version = "0.7.0" +version = "0.7.4" description = "Idiomatic conversion between URIs and compact URIs (CURIEs)." optional = false python-versions = ">=3.8" files = [ - {file = "curies-0.7.0-py3-none-any.whl", hash = "sha256:bac420025315018bf1751cb3e3cb1c155c2e73beafe1b7e460c14eb8ae86c170"}, - {file = "curies-0.7.0.tar.gz", hash = "sha256:6ce4b3b6202f7fed9ccef4b6b91fc6a13de233774fc39088e64bc676b1a4a48e"}, + {file = "curies-0.7.4-py3-none-any.whl", hash = "sha256:478f1818345988933d8bc6060f80a985401331f856ff8cf9bd98fa00d178ad39"}, + {file = "curies-0.7.4.tar.gz", hash = "sha256:d3aaf16644b26ac2605ff83c565ec7df0ba0b5f7425516047666e609ec5fb718"}, ] [package.dependencies] @@ -528,13 +528,13 @@ files = [ [[package]] name = "deepdiff" -version = "6.6.1" +version = "6.7.1" description = "Deep Difference and Search of any Python object/data. Recreate objects by adding adding deltas to each other." optional = false python-versions = ">=3.7" files = [ - {file = "deepdiff-6.6.1-py3-none-any.whl", hash = "sha256:891b3cb12837e5d376ac0b58f4c8a2764e3a8bbceabb7108ff82235f1f2c4460"}, - {file = "deepdiff-6.6.1.tar.gz", hash = "sha256:75c75b1511f0e48edef2b70d785a9c32b2631666b465fa8c32270a77a7b950b5"}, + {file = "deepdiff-6.7.1-py3-none-any.whl", hash = "sha256:58396bb7a863cbb4ed5193f548c56f18218060362311aa1dc36397b2f25108bd"}, + {file = "deepdiff-6.7.1.tar.gz", hash = "sha256:b367e6fa6caac1c9f500adc79ada1b5b1242c50d5f716a1a4362030197847d30"}, ] [package.dependencies] @@ -575,17 +575,6 @@ files = [ [package.dependencies] packaging = "*" -[[package]] -name = "distlib" -version = "0.3.7" -description = "Distribution utilities" -optional = false -python-versions = "*" -files = [ - {file = "distlib-0.3.7-py2.py3-none-any.whl", hash = "sha256:2e24928bc811348f0feb63014e97aaae3037f2cf48712d51ae61df7fd6075057"}, - {file = "distlib-0.3.7.tar.gz", hash = "sha256:9dafe54b34a028eafd95039d5e5d4851a13734540f1331060d31c9916e7147a8"}, -] - [[package]] name = "dnspython" version = "2.4.2" @@ -735,22 +724,6 @@ files = [ {file = "fastobo-0.12.2.tar.gz", hash = "sha256:2f2779f70ac54874329dddc74cabd86fea88abe56c544c2238076c1d27fe045e"}, ] -[[package]] -name = "filelock" -version = "3.13.1" -description = "A platform independent file lock." -optional = false -python-versions = ">=3.8" -files = [ - {file = "filelock-3.13.1-py3-none-any.whl", hash = "sha256:57dbda9b35157b05fb3e58ee91448612eb674172fab98ee235ccb0b5bee19a1c"}, - {file = "filelock-3.13.1.tar.gz", hash = "sha256:521f5f56c50f8426f5e03ad3b281b490a87ef15bc6c526f168290f0c7148d44e"}, -] - -[package.extras] -docs = ["furo (>=2023.9.10)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.24)"] -testing = ["covdefaults (>=2.3)", "coverage (>=7.3.2)", "diff-cover (>=8)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)", "pytest-timeout (>=2.2)"] -typing = ["typing-extensions (>=4.8)"] - [[package]] name = "fqdn" version = "1.5.1" @@ -847,13 +820,13 @@ test = ["black", "coverage[toml]", "ddt (>=1.1.1,!=1.4.3)", "mock", "mypy", "pre [[package]] name = "glom" -version = "23.3.0" +version = "23.4.0" description = "A declarative object transformer and formatter, for conglomerating nested data." optional = false python-versions = "*" files = [ - {file = "glom-23.3.0-py3-none-any.whl", hash = "sha256:b6883b686ab6cab3e4f081bb4a5502e9a997024f08c5fecf59214e75a62c8f4b"}, - {file = "glom-23.3.0.tar.gz", hash = "sha256:031699280fa4666048e43d2eab68be1044ffcd487ab74acb792de2eeb0bc2515"}, + {file = "glom-23.4.0-py3-none-any.whl", hash = "sha256:a87dfe5a8cf01c66ea39c29c5095732120b9cf39f0823de207ab7db527b50482"}, + {file = "glom-23.4.0.tar.gz", hash = "sha256:8f7877de06a7d4f2ecca9608678258300498aaf02dc3b1eea971677f1dce86e3"}, ] [package.dependencies] @@ -880,13 +853,13 @@ beautifulsoup4 = "*" [[package]] name = "google-api-core" -version = "2.12.0" +version = "2.14.0" description = "Google API client core library" optional = false python-versions = ">=3.7" files = [ - {file = "google-api-core-2.12.0.tar.gz", hash = "sha256:c22e01b1e3c4dcd90998494879612c38d0a3411d1f7b679eb89e2abe3ce1f553"}, - {file = "google_api_core-2.12.0-py3-none-any.whl", hash = "sha256:ec6054f7d64ad13b41e43d96f735acbd763b0f3b695dabaa2d579673f6a6e160"}, + {file = "google-api-core-2.14.0.tar.gz", hash = "sha256:5368a4502b793d9bbf812a5912e13e4e69f9bd87f6efb508460c43f5bbd1ce41"}, + {file = "google_api_core-2.14.0-py3-none-any.whl", hash = "sha256:de2fb50ed34d47ddbb2bd2dcf680ee8fead46279f4ed6b16de362aca23a18952"}, ] [package.dependencies] @@ -902,13 +875,13 @@ grpcio-gcp = ["grpcio-gcp (>=0.2.2,<1.0.dev0)"] [[package]] name = "google-api-python-client" -version = "2.106.0" +version = "2.108.0" description = "Google API Client Library for Python" optional = false python-versions = ">=3.7" files = [ - {file = "google-api-python-client-2.106.0.tar.gz", hash = "sha256:f6a3862be2f6e5e0536d7bd47b5af3f24ac0b9147c76c830cafb3329d71d5724"}, - {file = "google_api_python_client-2.106.0-py2.py3-none-any.whl", hash = "sha256:c47c0dae5dd20aa43e4ea184566fe59d0c8fd0b86dd223b29040d8ea4f7ed6ea"}, + {file = "google-api-python-client-2.108.0.tar.gz", hash = "sha256:6396efca83185fb205c0abdbc1c2ee57b40475578c6af37f6d0e30a639aade99"}, + {file = "google_api_python_client-2.108.0-py2.py3-none-any.whl", hash = "sha256:9d1327213e388943ebcd7db5ce6e7f47987a7e6874e3e1f6116010eea4a0e75d"}, ] [package.dependencies] @@ -1009,73 +982,76 @@ test = ["coverage", "mock (>=4)", "pytest (>=7)", "pytest-cov", "pytest-mock (>= [[package]] name = "greenlet" -version = "3.0.1" +version = "2.0.1" description = "Lightweight in-process concurrent programming" optional = false -python-versions = ">=3.7" -files = [ - {file = "greenlet-3.0.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f89e21afe925fcfa655965ca8ea10f24773a1791400989ff32f467badfe4a064"}, - {file = "greenlet-3.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:28e89e232c7593d33cac35425b58950789962011cc274aa43ef8865f2e11f46d"}, - {file = "greenlet-3.0.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b8ba29306c5de7717b5761b9ea74f9c72b9e2b834e24aa984da99cbfc70157fd"}, - {file = "greenlet-3.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:19bbdf1cce0346ef7341705d71e2ecf6f41a35c311137f29b8a2dc2341374565"}, - {file = "greenlet-3.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:599daf06ea59bfedbec564b1692b0166a0045f32b6f0933b0dd4df59a854caf2"}, - {file = "greenlet-3.0.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b641161c302efbb860ae6b081f406839a8b7d5573f20a455539823802c655f63"}, - {file = "greenlet-3.0.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d57e20ba591727da0c230ab2c3f200ac9d6d333860d85348816e1dca4cc4792e"}, - {file = "greenlet-3.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:5805e71e5b570d490938d55552f5a9e10f477c19400c38bf1d5190d760691846"}, - {file = "greenlet-3.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:52e93b28db27ae7d208748f45d2db8a7b6a380e0d703f099c949d0f0d80b70e9"}, - {file = "greenlet-3.0.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f7bfb769f7efa0eefcd039dd19d843a4fbfbac52f1878b1da2ed5793ec9b1a65"}, - {file = "greenlet-3.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:91e6c7db42638dc45cf2e13c73be16bf83179f7859b07cfc139518941320be96"}, - {file = "greenlet-3.0.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1757936efea16e3f03db20efd0cd50a1c86b06734f9f7338a90c4ba85ec2ad5a"}, - {file = "greenlet-3.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:19075157a10055759066854a973b3d1325d964d498a805bb68a1f9af4aaef8ec"}, - {file = "greenlet-3.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e9d21aaa84557d64209af04ff48e0ad5e28c5cca67ce43444e939579d085da72"}, - {file = "greenlet-3.0.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2847e5d7beedb8d614186962c3d774d40d3374d580d2cbdab7f184580a39d234"}, - {file = "greenlet-3.0.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:97e7ac860d64e2dcba5c5944cfc8fa9ea185cd84061c623536154d5a89237884"}, - {file = "greenlet-3.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:b2c02d2ad98116e914d4f3155ffc905fd0c025d901ead3f6ed07385e19122c94"}, - {file = "greenlet-3.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:22f79120a24aeeae2b4471c711dcf4f8c736a2bb2fabad2a67ac9a55ea72523c"}, - {file = "greenlet-3.0.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:100f78a29707ca1525ea47388cec8a049405147719f47ebf3895e7509c6446aa"}, - {file = "greenlet-3.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:60d5772e8195f4e9ebf74046a9121bbb90090f6550f81d8956a05387ba139353"}, - {file = "greenlet-3.0.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:daa7197b43c707462f06d2c693ffdbb5991cbb8b80b5b984007de431493a319c"}, - {file = "greenlet-3.0.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ea6b8aa9e08eea388c5f7a276fabb1d4b6b9d6e4ceb12cc477c3d352001768a9"}, - {file = "greenlet-3.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d11ebbd679e927593978aa44c10fc2092bc454b7d13fdc958d3e9d508aba7d0"}, - {file = "greenlet-3.0.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dbd4c177afb8a8d9ba348d925b0b67246147af806f0b104af4d24f144d461cd5"}, - {file = "greenlet-3.0.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:20107edf7c2c3644c67c12205dc60b1bb11d26b2610b276f97d666110d1b511d"}, - {file = "greenlet-3.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8bef097455dea90ffe855286926ae02d8faa335ed8e4067326257cb571fc1445"}, - {file = "greenlet-3.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:b2d3337dcfaa99698aa2377c81c9ca72fcd89c07e7eb62ece3f23a3fe89b2ce4"}, - {file = "greenlet-3.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:80ac992f25d10aaebe1ee15df45ca0d7571d0f70b645c08ec68733fb7a020206"}, - {file = "greenlet-3.0.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:337322096d92808f76ad26061a8f5fccb22b0809bea39212cd6c406f6a7060d2"}, - {file = "greenlet-3.0.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b9934adbd0f6e476f0ecff3c94626529f344f57b38c9a541f87098710b18af0a"}, - {file = "greenlet-3.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc4d815b794fd8868c4d67602692c21bf5293a75e4b607bb92a11e821e2b859a"}, - {file = "greenlet-3.0.1-cp37-cp37m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:41bdeeb552d814bcd7fb52172b304898a35818107cc8778b5101423c9017b3de"}, - {file = "greenlet-3.0.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:6e6061bf1e9565c29002e3c601cf68569c450be7fc3f7336671af7ddb4657166"}, - {file = "greenlet-3.0.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:fa24255ae3c0ab67e613556375a4341af04a084bd58764731972bcbc8baeba36"}, - {file = "greenlet-3.0.1-cp37-cp37m-win32.whl", hash = "sha256:b489c36d1327868d207002391f662a1d163bdc8daf10ab2e5f6e41b9b96de3b1"}, - {file = "greenlet-3.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:f33f3258aae89da191c6ebaa3bc517c6c4cbc9b9f689e5d8452f7aedbb913fa8"}, - {file = "greenlet-3.0.1-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:d2905ce1df400360463c772b55d8e2518d0e488a87cdea13dd2c71dcb2a1fa16"}, - {file = "greenlet-3.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a02d259510b3630f330c86557331a3b0e0c79dac3d166e449a39363beaae174"}, - {file = "greenlet-3.0.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:55d62807f1c5a1682075c62436702aaba941daa316e9161e4b6ccebbbf38bda3"}, - {file = "greenlet-3.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3fcc780ae8edbb1d050d920ab44790201f027d59fdbd21362340a85c79066a74"}, - {file = "greenlet-3.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4eddd98afc726f8aee1948858aed9e6feeb1758889dfd869072d4465973f6bfd"}, - {file = "greenlet-3.0.1-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:eabe7090db68c981fca689299c2d116400b553f4b713266b130cfc9e2aa9c5a9"}, - {file = "greenlet-3.0.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:f2f6d303f3dee132b322a14cd8765287b8f86cdc10d2cb6a6fae234ea488888e"}, - {file = "greenlet-3.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d923ff276f1c1f9680d32832f8d6c040fe9306cbfb5d161b0911e9634be9ef0a"}, - {file = "greenlet-3.0.1-cp38-cp38-win32.whl", hash = "sha256:0b6f9f8ca7093fd4433472fd99b5650f8a26dcd8ba410e14094c1e44cd3ceddd"}, - {file = "greenlet-3.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:990066bff27c4fcf3b69382b86f4c99b3652bab2a7e685d968cd4d0cfc6f67c6"}, - {file = "greenlet-3.0.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:ce85c43ae54845272f6f9cd8320d034d7a946e9773c693b27d620edec825e376"}, - {file = "greenlet-3.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:89ee2e967bd7ff85d84a2de09df10e021c9b38c7d91dead95b406ed6350c6997"}, - {file = "greenlet-3.0.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:87c8ceb0cf8a5a51b8008b643844b7f4a8264a2c13fcbcd8a8316161725383fe"}, - {file = "greenlet-3.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d6a8c9d4f8692917a3dc7eb25a6fb337bff86909febe2f793ec1928cd97bedfc"}, - {file = "greenlet-3.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fbc5b8f3dfe24784cee8ce0be3da2d8a79e46a276593db6868382d9c50d97b1"}, - {file = "greenlet-3.0.1-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:85d2b77e7c9382f004b41d9c72c85537fac834fb141b0296942d52bf03fe4a3d"}, - {file = "greenlet-3.0.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:696d8e7d82398e810f2b3622b24e87906763b6ebfd90e361e88eb85b0e554dc8"}, - {file = "greenlet-3.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:329c5a2e5a0ee942f2992c5e3ff40be03e75f745f48847f118a3cfece7a28546"}, - {file = "greenlet-3.0.1-cp39-cp39-win32.whl", hash = "sha256:cf868e08690cb89360eebc73ba4be7fb461cfbc6168dd88e2fbbe6f31812cd57"}, - {file = "greenlet-3.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:ac4a39d1abae48184d420aa8e5e63efd1b75c8444dd95daa3e03f6c6310e9619"}, - {file = "greenlet-3.0.1.tar.gz", hash = "sha256:816bd9488a94cba78d93e1abb58000e8266fa9cc2aa9ccdd6eb0696acb24005b"}, +python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*" +files = [ + {file = "greenlet-2.0.1-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:9ed358312e63bf683b9ef22c8e442ef6c5c02973f0c2a939ec1d7b50c974015c"}, + {file = "greenlet-2.0.1-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:4f09b0010e55bec3239278f642a8a506b91034f03a4fb28289a7d448a67f1515"}, + {file = "greenlet-2.0.1-cp27-cp27m-win32.whl", hash = "sha256:1407fe45246632d0ffb7a3f4a520ba4e6051fc2cbd61ba1f806900c27f47706a"}, + {file = "greenlet-2.0.1-cp27-cp27m-win_amd64.whl", hash = "sha256:3001d00eba6bbf084ae60ec7f4bb8ed375748f53aeaefaf2a37d9f0370558524"}, + {file = "greenlet-2.0.1-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:d566b82e92ff2e09dd6342df7e0eb4ff6275a3f08db284888dcd98134dbd4243"}, + {file = "greenlet-2.0.1-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:0722c9be0797f544a3ed212569ca3fe3d9d1a1b13942d10dd6f0e8601e484d26"}, + {file = "greenlet-2.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4d37990425b4687ade27810e3b1a1c37825d242ebc275066cfee8cb6b8829ccd"}, + {file = "greenlet-2.0.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:be35822f35f99dcc48152c9839d0171a06186f2d71ef76dc57fa556cc9bf6b45"}, + {file = "greenlet-2.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c140e7eb5ce47249668056edf3b7e9900c6a2e22fb0eaf0513f18a1b2c14e1da"}, + {file = "greenlet-2.0.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d21681f09e297a5adaa73060737e3aa1279a13ecdcfcc6ef66c292cb25125b2d"}, + {file = "greenlet-2.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fb412b7db83fe56847df9c47b6fe3f13911b06339c2aa02dcc09dce8bbf582cd"}, + {file = "greenlet-2.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:c6a08799e9e88052221adca55741bf106ec7ea0710bca635c208b751f0d5b617"}, + {file = "greenlet-2.0.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9e112e03d37987d7b90c1e98ba5e1b59e1645226d78d73282f45b326f7bddcb9"}, + {file = "greenlet-2.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:56961cfca7da2fdd178f95ca407fa330c64f33289e1804b592a77d5593d9bd94"}, + {file = "greenlet-2.0.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:13ba6e8e326e2116c954074c994da14954982ba2795aebb881c07ac5d093a58a"}, + {file = "greenlet-2.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1bf633a50cc93ed17e494015897361010fc08700d92676c87931d3ea464123ce"}, + {file = "greenlet-2.0.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:9f2c221eecb7ead00b8e3ddb913c67f75cba078fd1d326053225a3f59d850d72"}, + {file = "greenlet-2.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:13ebf93c343dd8bd010cd98e617cb4c1c1f352a0cf2524c82d3814154116aa82"}, + {file = "greenlet-2.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:6f61d71bbc9b4a3de768371b210d906726535d6ca43506737682caa754b956cd"}, + {file = "greenlet-2.0.1-cp35-cp35m-macosx_10_14_x86_64.whl", hash = "sha256:2d0bac0385d2b43a7bd1d651621a4e0f1380abc63d6fb1012213a401cbd5bf8f"}, + {file = "greenlet-2.0.1-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:f6327b6907b4cb72f650a5b7b1be23a2aab395017aa6f1adb13069d66360eb3f"}, + {file = "greenlet-2.0.1-cp35-cp35m-win32.whl", hash = "sha256:81b0ea3715bf6a848d6f7149d25bf018fd24554a4be01fcbbe3fdc78e890b955"}, + {file = "greenlet-2.0.1-cp35-cp35m-win_amd64.whl", hash = "sha256:38255a3f1e8942573b067510f9611fc9e38196077b0c8eb7a8c795e105f9ce77"}, + {file = "greenlet-2.0.1-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:04957dc96669be041e0c260964cfef4c77287f07c40452e61abe19d647505581"}, + {file = "greenlet-2.0.1-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:4aeaebcd91d9fee9aa768c1b39cb12214b30bf36d2b7370505a9f2165fedd8d9"}, + {file = "greenlet-2.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:974a39bdb8c90a85982cdb78a103a32e0b1be986d411303064b28a80611f6e51"}, + {file = "greenlet-2.0.1-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8dca09dedf1bd8684767bc736cc20c97c29bc0c04c413e3276e0962cd7aeb148"}, + {file = "greenlet-2.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a4c0757db9bd08470ff8277791795e70d0bf035a011a528ee9a5ce9454b6cba2"}, + {file = "greenlet-2.0.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:5067920de254f1a2dee8d3d9d7e4e03718e8fd2d2d9db962c8c9fa781ae82a39"}, + {file = "greenlet-2.0.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:5a8e05057fab2a365c81abc696cb753da7549d20266e8511eb6c9d9f72fe3e92"}, + {file = "greenlet-2.0.1-cp36-cp36m-win32.whl", hash = "sha256:3d75b8d013086b08e801fbbb896f7d5c9e6ccd44f13a9241d2bf7c0df9eda928"}, + {file = "greenlet-2.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:097e3dae69321e9100202fc62977f687454cd0ea147d0fd5a766e57450c569fd"}, + {file = "greenlet-2.0.1-cp37-cp37m-macosx_10_15_x86_64.whl", hash = "sha256:cb242fc2cda5a307a7698c93173d3627a2a90d00507bccf5bc228851e8304963"}, + {file = "greenlet-2.0.1-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:72b00a8e7c25dcea5946692a2485b1a0c0661ed93ecfedfa9b6687bd89a24ef5"}, + {file = "greenlet-2.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5b0ff9878333823226d270417f24f4d06f235cb3e54d1103b71ea537a6a86ce"}, + {file = "greenlet-2.0.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:be9e0fb2ada7e5124f5282d6381903183ecc73ea019568d6d63d33f25b2a9000"}, + {file = "greenlet-2.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b493db84d124805865adc587532ebad30efa68f79ad68f11b336e0a51ec86c2"}, + {file = "greenlet-2.0.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:0459d94f73265744fee4c2d5ec44c6f34aa8a31017e6e9de770f7bcf29710be9"}, + {file = "greenlet-2.0.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:a20d33124935d27b80e6fdacbd34205732660e0a1d35d8b10b3328179a2b51a1"}, + {file = "greenlet-2.0.1-cp37-cp37m-win32.whl", hash = "sha256:ea688d11707d30e212e0110a1aac7f7f3f542a259235d396f88be68b649e47d1"}, + {file = "greenlet-2.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:afe07421c969e259e9403c3bb658968702bc3b78ec0b6fde3ae1e73440529c23"}, + {file = "greenlet-2.0.1-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:cd4ccc364cf75d1422e66e247e52a93da6a9b73cefa8cad696f3cbbb75af179d"}, + {file = "greenlet-2.0.1-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:4c8b1c43e75c42a6cafcc71defa9e01ead39ae80bd733a2608b297412beede68"}, + {file = "greenlet-2.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:659f167f419a4609bc0516fb18ea69ed39dbb25594934bd2dd4d0401660e8a1e"}, + {file = "greenlet-2.0.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:356e4519d4dfa766d50ecc498544b44c0249b6de66426041d7f8b751de4d6b48"}, + {file = "greenlet-2.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:811e1d37d60b47cb8126e0a929b58c046251f28117cb16fcd371eed61f66b764"}, + {file = "greenlet-2.0.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:d38ffd0e81ba8ef347d2be0772e899c289b59ff150ebbbbe05dc61b1246eb4e0"}, + {file = "greenlet-2.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:0109af1138afbfb8ae647e31a2b1ab030f58b21dd8528c27beaeb0093b7938a9"}, + {file = "greenlet-2.0.1-cp38-cp38-win32.whl", hash = "sha256:88c8d517e78acdf7df8a2134a3c4b964415b575d2840a2746ddb1cc6175f8608"}, + {file = "greenlet-2.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:d6ee1aa7ab36475035eb48c01efae87d37936a8173fc4d7b10bb02c2d75dd8f6"}, + {file = "greenlet-2.0.1-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:b1992ba9d4780d9af9726bbcef6a1db12d9ab1ccc35e5773685a24b7fb2758eb"}, + {file = "greenlet-2.0.1-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:b5e83e4de81dcc9425598d9469a624826a0b1211380ac444c7c791d4a2137c19"}, + {file = "greenlet-2.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:505138d4fa69462447a562a7c2ef723c6025ba12ac04478bc1ce2fcc279a2db5"}, + {file = "greenlet-2.0.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cce1e90dd302f45716a7715517c6aa0468af0bf38e814ad4eab58e88fc09f7f7"}, + {file = "greenlet-2.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9e9744c657d896c7b580455e739899e492a4a452e2dd4d2b3e459f6b244a638d"}, + {file = "greenlet-2.0.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:662e8f7cad915ba75d8017b3e601afc01ef20deeeabf281bd00369de196d7726"}, + {file = "greenlet-2.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:41b825d65f31e394b523c84db84f9383a2f7eefc13d987f308f4663794d2687e"}, + {file = "greenlet-2.0.1-cp39-cp39-win32.whl", hash = "sha256:db38f80540083ea33bdab614a9d28bcec4b54daa5aff1668d7827a9fc769ae0a"}, + {file = "greenlet-2.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:b23d2a46d53210b498e5b701a1913697671988f4bf8e10f935433f6e7c332fb6"}, + {file = "greenlet-2.0.1.tar.gz", hash = "sha256:42e602564460da0e8ee67cb6d7236363ee5e131aa15943b6670e44e5c2ed0f67"}, ] [package.extras] -docs = ["Sphinx"] -test = ["objgraph", "psutil"] +docs = ["Sphinx", "docutils (<0.18)"] +test = ["faulthandler", "objgraph", "psutil"] [[package]] name = "gspread" @@ -1317,12 +1293,12 @@ i18n = ["Babel (>=2.7)"] [[package]] name = "jsbeautifier" -version = "1.14.9" +version = "1.14.11" description = "JavaScript unobfuscator and beautifier." optional = false python-versions = "*" files = [ - {file = "jsbeautifier-1.14.9.tar.gz", hash = "sha256:c738ebc36b47bd94e4ca6dd17a9004c3cc74edad582ca1d60e0e5d5945a63cb9"}, + {file = "jsbeautifier-1.14.11.tar.gz", hash = "sha256:6b632581ea60dd1c133cd25a48ad187b4b91f526623c4b0fb5443ef805250505"}, ] [package.dependencies] @@ -1410,13 +1386,13 @@ files = [ [[package]] name = "jsonschema" -version = "4.19.2" +version = "4.20.0" description = "An implementation of JSON Schema validation for Python" optional = false python-versions = ">=3.8" files = [ - {file = "jsonschema-4.19.2-py3-none-any.whl", hash = "sha256:eee9e502c788e89cb166d4d37f43084e3b64ab405c795c03d343a4dbc2c810fc"}, - {file = "jsonschema-4.19.2.tar.gz", hash = "sha256:c9ff4d7447eed9592c23a12ccee508baf0dd0d59650615e847feb6cdca74f392"}, + {file = "jsonschema-4.20.0-py3-none-any.whl", hash = "sha256:ed6231f0429ecf966f5bc8dfef245998220549cbbcf140f913b7464c52c3b6b3"}, + {file = "jsonschema-4.20.0.tar.gz", hash = "sha256:4f614fd46d8d61258610998997743ec5492a648b33cf478c1ddc23ed4598a5fa"}, ] [package.dependencies] @@ -1439,17 +1415,17 @@ format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339- [[package]] name = "jsonschema-specifications" -version = "2023.7.1" +version = "2023.11.1" description = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry" optional = false python-versions = ">=3.8" files = [ - {file = "jsonschema_specifications-2023.7.1-py3-none-any.whl", hash = "sha256:05adf340b659828a004220a9613be00fa3f223f2b82002e273dee62fd50524b1"}, - {file = "jsonschema_specifications-2023.7.1.tar.gz", hash = "sha256:c91a50404e88a1f6ba40636778e2ee08f6e24c5613fe4c53ac24578a5a7f72bb"}, + {file = "jsonschema_specifications-2023.11.1-py3-none-any.whl", hash = "sha256:f596778ab612b3fd29f72ea0d990393d0540a5aab18bf0407a46632eab540779"}, + {file = "jsonschema_specifications-2023.11.1.tar.gz", hash = "sha256:c9b234904ffe02f079bf91b14d79987faa685fd4b39c377a0996954c0090b9ca"}, ] [package.dependencies] -referencing = ">=0.28.0" +referencing = ">=0.31.0" [[package]] name = "kgcl-rdflib" @@ -1501,13 +1477,13 @@ regex = ["regex"] [[package]] name = "linkml" -version = "1.6.1" +version = "1.6.3" description = "Linked Open Data Modeling Language" optional = false -python-versions = ">=3.8,<4.0" +python-versions = ">=3.8.1,<4.0.0" files = [ - {file = "linkml-1.6.1-py3-none-any.whl", hash = "sha256:7501cb9c7b2c13ca78fc7121ae8b5457fb5771138714da31cc11f971062070ee"}, - {file = "linkml-1.6.1.tar.gz", hash = "sha256:65f73cf29a77518972238e71e91e012c081cf2e43d71d8965ca414c78c11e08e"}, + {file = "linkml-1.6.3-py3-none-any.whl", hash = "sha256:2bcfa9e35b3e0d868f396fa48ede1b9e3c6016df956dd5ca92d70ff621ffc77e"}, + {file = "linkml-1.6.3.tar.gz", hash = "sha256:2692243c9fb1c262ea83b725c70d6f537844ae7a9405101c94bccf65def6d952"}, ] [package.dependencies] @@ -1525,7 +1501,7 @@ openpyxl = "*" parse = "*" prefixcommons = ">=0.1.7" prefixmaps = ">=0.1.3" -pydantic = "*" +pydantic = ">=1.0.0,<3.0.0" pyjsg = ">=0.11.6" pyshex = ">=0.7.20" pyshexc = ">=0.8.3" @@ -1870,13 +1846,13 @@ min-versions = ["babel (==2.9.0)", "click (==7.0)", "colorama (==0.4)", "ghp-imp [[package]] name = "mkdocs-material" -version = "9.4.7" +version = "9.4.9" description = "Documentation that simply works" optional = false python-versions = ">=3.8" files = [ - {file = "mkdocs_material-9.4.7-py3-none-any.whl", hash = "sha256:4d698d52bb6a6a3c452ab854481c4cdb68453a0420956a6aee2de55fe15fe610"}, - {file = "mkdocs_material-9.4.7.tar.gz", hash = "sha256:e704e001c9ef17291e1d3462c202425217601653e18f68f85d28eff4690e662b"}, + {file = "mkdocs_material-9.4.9-py3-none-any.whl", hash = "sha256:b93d6e916b93346d433bfb2a00148efed0b545aaf0092cef31c2da27ad4169e6"}, + {file = "mkdocs_material-9.4.9.tar.gz", hash = "sha256:dd9ce8b48c5284578224d34992357d0b7bb86c35cb31d0f9fee0ad90c81a2a44"}, ] [package.dependencies] @@ -1959,13 +1935,13 @@ files = [ [[package]] name = "ndex2" -version = "3.5.1" +version = "3.6.0" description = "Nice CX Python includes a client and a data model." optional = false python-versions = "*" files = [ - {file = "ndex2-3.5.1-py2.py3-none-any.whl", hash = "sha256:41a3fa99811edbd3e620adfdd0153cb50c484e33bfe3817529aaff190fce067d"}, - {file = "ndex2-3.5.1.tar.gz", hash = "sha256:e4bfecf0f75c4d1f22cf59f6f04af458defa82946d1baabec494553fd4936e92"}, + {file = "ndex2-3.6.0-py2.py3-none-any.whl", hash = "sha256:e620eeb1ea9dab9a65c0654b3080d41d0c7c89b74b20e20a99809af51bac87b8"}, + {file = "ndex2-3.6.0.tar.gz", hash = "sha256:d6e95ba33747c59ae47d32ebce55837f17d001f776ea811a70b9e716592d2d1e"}, ] [package.dependencies] @@ -1998,36 +1974,47 @@ test = ["pytest (>=7.2)", "pytest-cov (>=4.0)"] [[package]] name = "numpy" -version = "1.25.2" +version = "1.26.2" description = "Fundamental package for array computing in Python" optional = false python-versions = ">=3.9" files = [ - {file = "numpy-1.25.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:db3ccc4e37a6873045580d413fe79b68e47a681af8db2e046f1dacfa11f86eb3"}, - {file = "numpy-1.25.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:90319e4f002795ccfc9050110bbbaa16c944b1c37c0baeea43c5fb881693ae1f"}, - {file = "numpy-1.25.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dfe4a913e29b418d096e696ddd422d8a5d13ffba4ea91f9f60440a3b759b0187"}, - {file = "numpy-1.25.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f08f2e037bba04e707eebf4bc934f1972a315c883a9e0ebfa8a7756eabf9e357"}, - {file = "numpy-1.25.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bec1e7213c7cb00d67093247f8c4db156fd03075f49876957dca4711306d39c9"}, - {file = "numpy-1.25.2-cp310-cp310-win32.whl", hash = "sha256:7dc869c0c75988e1c693d0e2d5b26034644399dd929bc049db55395b1379e044"}, - {file = "numpy-1.25.2-cp310-cp310-win_amd64.whl", hash = "sha256:834b386f2b8210dca38c71a6e0f4fd6922f7d3fcff935dbe3a570945acb1b545"}, - {file = "numpy-1.25.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c5462d19336db4560041517dbb7759c21d181a67cb01b36ca109b2ae37d32418"}, - {file = "numpy-1.25.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c5652ea24d33585ea39eb6a6a15dac87a1206a692719ff45d53c5282e66d4a8f"}, - {file = "numpy-1.25.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d60fbae8e0019865fc4784745814cff1c421df5afee233db6d88ab4f14655a2"}, - {file = "numpy-1.25.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:60e7f0f7f6d0eee8364b9a6304c2845b9c491ac706048c7e8cf47b83123b8dbf"}, - {file = "numpy-1.25.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:bb33d5a1cf360304754913a350edda36d5b8c5331a8237268c48f91253c3a364"}, - {file = "numpy-1.25.2-cp311-cp311-win32.whl", hash = "sha256:5883c06bb92f2e6c8181df7b39971a5fb436288db58b5a1c3967702d4278691d"}, - {file = "numpy-1.25.2-cp311-cp311-win_amd64.whl", hash = "sha256:5c97325a0ba6f9d041feb9390924614b60b99209a71a69c876f71052521d42a4"}, - {file = "numpy-1.25.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b79e513d7aac42ae918db3ad1341a015488530d0bb2a6abcbdd10a3a829ccfd3"}, - {file = "numpy-1.25.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:eb942bfb6f84df5ce05dbf4b46673ffed0d3da59f13635ea9b926af3deb76926"}, - {file = "numpy-1.25.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e0746410e73384e70d286f93abf2520035250aad8c5714240b0492a7302fdca"}, - {file = "numpy-1.25.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7806500e4f5bdd04095e849265e55de20d8cc4b661b038957354327f6d9b295"}, - {file = "numpy-1.25.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8b77775f4b7df768967a7c8b3567e309f617dd5e99aeb886fa14dc1a0791141f"}, - {file = "numpy-1.25.2-cp39-cp39-win32.whl", hash = "sha256:2792d23d62ec51e50ce4d4b7d73de8f67a2fd3ea710dcbc8563a51a03fb07b01"}, - {file = "numpy-1.25.2-cp39-cp39-win_amd64.whl", hash = "sha256:76b4115d42a7dfc5d485d358728cdd8719be33cc5ec6ec08632a5d6fca2ed380"}, - {file = "numpy-1.25.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:1a1329e26f46230bf77b02cc19e900db9b52f398d6722ca853349a782d4cff55"}, - {file = "numpy-1.25.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c3abc71e8b6edba80a01a52e66d83c5d14433cbcd26a40c329ec7ed09f37901"}, - {file = "numpy-1.25.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:1b9735c27cea5d995496f46a8b1cd7b408b3f34b6d50459d9ac8fe3a20cc17bf"}, - {file = "numpy-1.25.2.tar.gz", hash = "sha256:fd608e19c8d7c55021dffd43bfe5492fab8cc105cc8986f813f8c3c048b38760"}, + {file = "numpy-1.26.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:3703fc9258a4a122d17043e57b35e5ef1c5a5837c3db8be396c82e04c1cf9b0f"}, + {file = "numpy-1.26.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cc392fdcbd21d4be6ae1bb4475a03ce3b025cd49a9be5345d76d7585aea69440"}, + {file = "numpy-1.26.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:36340109af8da8805d8851ef1d74761b3b88e81a9bd80b290bbfed61bd2b4f75"}, + {file = "numpy-1.26.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bcc008217145b3d77abd3e4d5ef586e3bdfba8fe17940769f8aa09b99e856c00"}, + {file = "numpy-1.26.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:3ced40d4e9e18242f70dd02d739e44698df3dcb010d31f495ff00a31ef6014fe"}, + {file = "numpy-1.26.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b272d4cecc32c9e19911891446b72e986157e6a1809b7b56518b4f3755267523"}, + {file = "numpy-1.26.2-cp310-cp310-win32.whl", hash = "sha256:22f8fc02fdbc829e7a8c578dd8d2e15a9074b630d4da29cda483337e300e3ee9"}, + {file = "numpy-1.26.2-cp310-cp310-win_amd64.whl", hash = "sha256:26c9d33f8e8b846d5a65dd068c14e04018d05533b348d9eaeef6c1bd787f9919"}, + {file = "numpy-1.26.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b96e7b9c624ef3ae2ae0e04fa9b460f6b9f17ad8b4bec6d7756510f1f6c0c841"}, + {file = "numpy-1.26.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:aa18428111fb9a591d7a9cc1b48150097ba6a7e8299fb56bdf574df650e7d1f1"}, + {file = "numpy-1.26.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:06fa1ed84aa60ea6ef9f91ba57b5ed963c3729534e6e54055fc151fad0423f0a"}, + {file = "numpy-1.26.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:96ca5482c3dbdd051bcd1fce8034603d6ebfc125a7bd59f55b40d8f5d246832b"}, + {file = "numpy-1.26.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:854ab91a2906ef29dc3925a064fcd365c7b4da743f84b123002f6139bcb3f8a7"}, + {file = "numpy-1.26.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f43740ab089277d403aa07567be138fc2a89d4d9892d113b76153e0e412409f8"}, + {file = "numpy-1.26.2-cp311-cp311-win32.whl", hash = "sha256:a2bbc29fcb1771cd7b7425f98b05307776a6baf43035d3b80c4b0f29e9545186"}, + {file = "numpy-1.26.2-cp311-cp311-win_amd64.whl", hash = "sha256:2b3fca8a5b00184828d12b073af4d0fc5fdd94b1632c2477526f6bd7842d700d"}, + {file = "numpy-1.26.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:a4cd6ed4a339c21f1d1b0fdf13426cb3b284555c27ac2f156dfdaaa7e16bfab0"}, + {file = "numpy-1.26.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5d5244aabd6ed7f312268b9247be47343a654ebea52a60f002dc70c769048e75"}, + {file = "numpy-1.26.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6a3cdb4d9c70e6b8c0814239ead47da00934666f668426fc6e94cce869e13fd7"}, + {file = "numpy-1.26.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aa317b2325f7aa0a9471663e6093c210cb2ae9c0ad824732b307d2c51983d5b6"}, + {file = "numpy-1.26.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:174a8880739c16c925799c018f3f55b8130c1f7c8e75ab0a6fa9d41cab092fd6"}, + {file = "numpy-1.26.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:f79b231bf5c16b1f39c7f4875e1ded36abee1591e98742b05d8a0fb55d8a3eec"}, + {file = "numpy-1.26.2-cp312-cp312-win32.whl", hash = "sha256:4a06263321dfd3598cacb252f51e521a8cb4b6df471bb12a7ee5cbab20ea9167"}, + {file = "numpy-1.26.2-cp312-cp312-win_amd64.whl", hash = "sha256:b04f5dc6b3efdaab541f7857351aac359e6ae3c126e2edb376929bd3b7f92d7e"}, + {file = "numpy-1.26.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4eb8df4bf8d3d90d091e0146f6c28492b0be84da3e409ebef54349f71ed271ef"}, + {file = "numpy-1.26.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1a13860fdcd95de7cf58bd6f8bc5a5ef81c0b0625eb2c9a783948847abbef2c2"}, + {file = "numpy-1.26.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:64308ebc366a8ed63fd0bf426b6a9468060962f1a4339ab1074c228fa6ade8e3"}, + {file = "numpy-1.26.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:baf8aab04a2c0e859da118f0b38617e5ee65d75b83795055fb66c0d5e9e9b818"}, + {file = "numpy-1.26.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d73a3abcac238250091b11caef9ad12413dab01669511779bc9b29261dd50210"}, + {file = "numpy-1.26.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:b361d369fc7e5e1714cf827b731ca32bff8d411212fccd29ad98ad622449cc36"}, + {file = "numpy-1.26.2-cp39-cp39-win32.whl", hash = "sha256:bd3f0091e845164a20bd5a326860c840fe2af79fa12e0469a12768a3ec578d80"}, + {file = "numpy-1.26.2-cp39-cp39-win_amd64.whl", hash = "sha256:2beef57fb031dcc0dc8fa4fe297a742027b954949cabb52a2a376c144e5e6060"}, + {file = "numpy-1.26.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:1cc3d5029a30fb5f06704ad6b23b35e11309491c999838c31f124fee32107c79"}, + {file = "numpy-1.26.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94cc3c222bb9fb5a12e334d0479b97bb2df446fbe622b470928f5284ffca3f8d"}, + {file = "numpy-1.26.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:fe6b44fb8fcdf7eda4ef4461b97b3f63c466b27ab151bec2366db8b197387841"}, + {file = "numpy-1.26.2.tar.gz", hash = "sha256:f65738447676ab5777f11e6bbbdb8ce11b785e105f690bc45966574816b6d3ea"}, ] [[package]] @@ -2305,13 +2292,13 @@ files = [ [[package]] name = "platformdirs" -version = "3.11.0" +version = "4.0.0" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." optional = false python-versions = ">=3.7" files = [ - {file = "platformdirs-3.11.0-py3-none-any.whl", hash = "sha256:e9d171d00af68be50e9202731309c4e658fd8bc76f55c11c7dd760d023bda68e"}, - {file = "platformdirs-3.11.0.tar.gz", hash = "sha256:cf8ee52a3afdb965072dcc652433e0c7e3e40cf5ea1477cd4b3b1d2eb75495b3"}, + {file = "platformdirs-4.0.0-py3-none-any.whl", hash = "sha256:118c954d7e949b35437270383a3f2531e99dd93cf7ce4dc8340d3356d30f173b"}, + {file = "platformdirs-4.0.0.tar.gz", hash = "sha256:cb633b2bcf10c51af60beb0ab06d2f1d69064b43abf4c185ca6b28865f3f9731"}, ] [package.extras] @@ -2363,25 +2350,25 @@ requests = ">=2.28.1,<3.0.0" [[package]] name = "prefixmaps" -version = "0.1.7" +version = "0.1.5" description = "A python library for retrieving semantic prefix maps" optional = false -python-versions = ">=3.8.0,<4.0.0" +python-versions = ">=3.7.6,<4.0.0" files = [ - {file = "prefixmaps-0.1.7-py3-none-any.whl", hash = "sha256:872f5066f5c3b49f71950726e8bc31a246e1e6b020134c373c625852e3e445f3"}, - {file = "prefixmaps-0.1.7.tar.gz", hash = "sha256:d4388a3af89ba0fb924cfe0e82ba1fc734c7936d2c1dc9feb258d7246a5e54be"}, + {file = "prefixmaps-0.1.5-py3-none-any.whl", hash = "sha256:afe679efa0fa62ae69939771956a76e2958505743b40755c8bae85732622b5b2"}, + {file = "prefixmaps-0.1.5.tar.gz", hash = "sha256:0073f69477f7e9e2359409c0e9d2f853c958600825d9ed859c4c6c71134010a1"}, ] [package.dependencies] -click = ">=8.1.3" -curies = ">=0.5.3" -pydantic = ">=1.8.2,<2.0.0" +click = ">=8.1.3,<9.0.0" +greenlet = "2.0.1" +importlib-metadata = ">=1.0.0" pyyaml = ">=5.3.1" -tox = ">=4.11.3,<5.0.0" +typing-extensions = ">=4.4.0,<5.0.0" [package.extras] docs = ["Sphinx[docs] (>=5.3.0,<6.0.0)", "myst-parser[docs] (>=0.18.1,<0.19.0)", "sphinx-autodoc-typehints[docs] (>=1.19.4,<2.0.0)", "sphinx-click[docs] (>=4.3.0,<5.0.0)", "sphinx-rtd-theme[docs] (>=1.0.0,<2.0.0)"] -refresh = ["bioregistry[refresh] (>=0.10.0,<0.11.0)", "rdflib[refresh] (>=6.2.0,<7.0.0)", "requests[refresh] (>=2.28.1,<3.0.0)"] +refresh = ["bioregistry[refresh] (>=0.8.0,<0.9.0)", "rdflib[refresh] (>=6.2.0,<7.0.0)", "requests[refresh] (>=2.28.1,<3.0.0)"] [[package]] name = "pronto" @@ -2402,22 +2389,22 @@ python-dateutil = ">=2.8,<3.0" [[package]] name = "protobuf" -version = "4.25.0" +version = "4.25.1" description = "" optional = false python-versions = ">=3.8" files = [ - {file = "protobuf-4.25.0-cp310-abi3-win32.whl", hash = "sha256:5c1203ac9f50e4853b0a0bfffd32c67118ef552a33942982eeab543f5c634395"}, - {file = "protobuf-4.25.0-cp310-abi3-win_amd64.whl", hash = "sha256:c40ff8f00aa737938c5378d461637d15c442a12275a81019cc2fef06d81c9419"}, - {file = "protobuf-4.25.0-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:cf21faba64cd2c9a3ed92b7a67f226296b10159dbb8fbc5e854fc90657d908e4"}, - {file = "protobuf-4.25.0-cp37-abi3-manylinux2014_aarch64.whl", hash = "sha256:32ac2100b0e23412413d948c03060184d34a7c50b3e5d7524ee96ac2b10acf51"}, - {file = "protobuf-4.25.0-cp37-abi3-manylinux2014_x86_64.whl", hash = "sha256:683dc44c61f2620b32ce4927de2108f3ebe8ccf2fd716e1e684e5a50da154054"}, - {file = "protobuf-4.25.0-cp38-cp38-win32.whl", hash = "sha256:1a3ba712877e6d37013cdc3476040ea1e313a6c2e1580836a94f76b3c176d575"}, - {file = "protobuf-4.25.0-cp38-cp38-win_amd64.whl", hash = "sha256:b2cf8b5d381f9378afe84618288b239e75665fe58d0f3fd5db400959274296e9"}, - {file = "protobuf-4.25.0-cp39-cp39-win32.whl", hash = "sha256:63714e79b761a37048c9701a37438aa29945cd2417a97076048232c1df07b701"}, - {file = "protobuf-4.25.0-cp39-cp39-win_amd64.whl", hash = "sha256:d94a33db8b7ddbd0af7c467475fb9fde0c705fb315a8433c0e2020942b863a1f"}, - {file = "protobuf-4.25.0-py3-none-any.whl", hash = "sha256:1a53d6f64b00eecf53b65ff4a8c23dc95df1fa1e97bb06b8122e5a64f49fc90a"}, - {file = "protobuf-4.25.0.tar.gz", hash = "sha256:68f7caf0d4f012fd194a301420cf6aa258366144d814f358c5b32558228afa7c"}, + {file = "protobuf-4.25.1-cp310-abi3-win32.whl", hash = "sha256:193f50a6ab78a970c9b4f148e7c750cfde64f59815e86f686c22e26b4fe01ce7"}, + {file = "protobuf-4.25.1-cp310-abi3-win_amd64.whl", hash = "sha256:3497c1af9f2526962f09329fd61a36566305e6c72da2590ae0d7d1322818843b"}, + {file = "protobuf-4.25.1-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:0bf384e75b92c42830c0a679b0cd4d6e2b36ae0cf3dbb1e1dfdda48a244f4bcd"}, + {file = "protobuf-4.25.1-cp37-abi3-manylinux2014_aarch64.whl", hash = "sha256:0f881b589ff449bf0b931a711926e9ddaad3b35089cc039ce1af50b21a4ae8cb"}, + {file = "protobuf-4.25.1-cp37-abi3-manylinux2014_x86_64.whl", hash = "sha256:ca37bf6a6d0046272c152eea90d2e4ef34593aaa32e8873fc14c16440f22d4b7"}, + {file = "protobuf-4.25.1-cp38-cp38-win32.whl", hash = "sha256:abc0525ae2689a8000837729eef7883b9391cd6aa7950249dcf5a4ede230d5dd"}, + {file = "protobuf-4.25.1-cp38-cp38-win_amd64.whl", hash = "sha256:1484f9e692091450e7edf418c939e15bfc8fc68856e36ce399aed6889dae8bb0"}, + {file = "protobuf-4.25.1-cp39-cp39-win32.whl", hash = "sha256:8bdbeaddaac52d15c6dce38c71b03038ef7772b977847eb6d374fc86636fa510"}, + {file = "protobuf-4.25.1-cp39-cp39-win_amd64.whl", hash = "sha256:becc576b7e6b553d22cbdf418686ee4daa443d7217999125c045ad56322dda10"}, + {file = "protobuf-4.25.1-py3-none-any.whl", hash = "sha256:a19731d5e83ae4737bb2a089605e636077ac001d18781b3cf489b9546c7c80d6"}, + {file = "protobuf-4.25.1.tar.gz", hash = "sha256:57d65074b4f5baa4ab5da1605c02be90ac20c8b40fb137d6a8df9f416b0d0ce2"}, ] [[package]] @@ -2546,13 +2533,13 @@ jsonasobj = ">=1.2.1" [[package]] name = "pymdown-extensions" -version = "10.3.1" +version = "10.4" description = "Extension pack for Python Markdown." optional = false python-versions = ">=3.8" files = [ - {file = "pymdown_extensions-10.3.1-py3-none-any.whl", hash = "sha256:8cba67beb2a1318cdaf742d09dff7c0fc4cafcc290147ade0f8fb7b71522711a"}, - {file = "pymdown_extensions-10.3.1.tar.gz", hash = "sha256:f6c79941498a458852853872e379e7bab63888361ba20992fc8b4f8a9b61735e"}, + {file = "pymdown_extensions-10.4-py3-none-any.whl", hash = "sha256:cfc28d6a09d19448bcbf8eee3ce098c7d17ff99f7bd3069db4819af181212037"}, + {file = "pymdown_extensions-10.4.tar.gz", hash = "sha256:bc46f11749ecd4d6b71cf62396104b4a200bad3498cb0f5dad1b8502fe461a35"}, ] [package.dependencies] @@ -2678,25 +2665,6 @@ files = [ [package.extras] diagrams = ["jinja2", "railroad-diagrams"] -[[package]] -name = "pyproject-api" -version = "1.6.1" -description = "API to interact with the python pyproject.toml based projects" -optional = false -python-versions = ">=3.8" -files = [ - {file = "pyproject_api-1.6.1-py3-none-any.whl", hash = "sha256:4c0116d60476b0786c88692cf4e325a9814965e2469c5998b830bba16b183675"}, - {file = "pyproject_api-1.6.1.tar.gz", hash = "sha256:1817dc018adc0d1ff9ca1ed8c60e1623d5aaca40814b953af14a9cf9a5cae538"}, -] - -[package.dependencies] -packaging = ">=23.1" -tomli = {version = ">=2.0.1", markers = "python_version < \"3.11\""} - -[package.extras] -docs = ["furo (>=2023.8.19)", "sphinx (<7.2)", "sphinx-autodoc-typehints (>=1.24)"] -testing = ["covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)", "setuptools (>=68.1.2)", "wheel (>=0.41.2)"] - [[package]] name = "pyshex" version = "0.8.1" @@ -2756,13 +2724,13 @@ solrcloud = ["kazoo (>=2.5.0)"] [[package]] name = "pystow" -version = "0.5.0" +version = "0.5.2" description = "Easily pick a place to store data for your python package." optional = false python-versions = ">=3.7" files = [ - {file = "pystow-0.5.0-py3-none-any.whl", hash = "sha256:816a9da33cd8a3f8fbda577c3d2957cfc99d1fa3ea45032dbfa087b9a21b630f"}, - {file = "pystow-0.5.0.tar.gz", hash = "sha256:490e9ecbe4f947c72f63297f43f6584323c9ca2f2d48d47f2a22a815dc552bb4"}, + {file = "pystow-0.5.2-py3-none-any.whl", hash = "sha256:c0faeb0fc854ede714be7949555f4d55ce40d8fd57f0ae1ff75e86158792299a"}, + {file = "pystow-0.5.2.tar.gz", hash = "sha256:d05d233299d61b50f53c7de220d990ec4c58e3a54d195d8449f0302563eb6de6"}, ] [package.dependencies] @@ -3017,13 +2985,13 @@ rdflib-jsonld = "0.6.1" [[package]] name = "referencing" -version = "0.30.2" +version = "0.31.0" description = "JSON Referencing + Python" optional = false python-versions = ">=3.8" files = [ - {file = "referencing-0.30.2-py3-none-any.whl", hash = "sha256:449b6669b6121a9e96a7f9e410b245d471e8d48964c67113ce9afe50c8dd7bdf"}, - {file = "referencing-0.30.2.tar.gz", hash = "sha256:794ad8003c65938edcdbc027f1933215e0d0ccc0291e3ce20a4d87432b59efc0"}, + {file = "referencing-0.31.0-py3-none-any.whl", hash = "sha256:381b11e53dd93babb55696c71cf42aef2d36b8a150c49bf0bc301e36d536c882"}, + {file = "referencing-0.31.0.tar.gz", hash = "sha256:cc28f2c88fbe7b961a7817a0abc034c09a1e36358f82fedb4ffdf29a25398863"}, ] [package.dependencies] @@ -3237,13 +3205,13 @@ files = [ [[package]] name = "rich" -version = "13.6.0" +version = "13.7.0" description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" optional = false python-versions = ">=3.7.0" files = [ - {file = "rich-13.6.0-py3-none-any.whl", hash = "sha256:2b38e2fe9ca72c9a00170a1a2d20c63c790d0e10ef1fe35eba76e1e7b1d7d245"}, - {file = "rich-13.6.0.tar.gz", hash = "sha256:5c14d22737e6d5084ef4771b62d5d4363165b403455a30a1c8ca39dc7b644bef"}, + {file = "rich-13.7.0-py3-none-any.whl", hash = "sha256:6da14c108c4866ee9520bbffa71f6fe3962e193b7da68720583850cd4548e235"}, + {file = "rich-13.7.0.tar.gz", hash = "sha256:5cb5123b5cf9ee70584244246816e9114227e0b98ad9176eede6ad54bf5403fa"}, ] [package.dependencies] @@ -3255,110 +3223,110 @@ jupyter = ["ipywidgets (>=7.5.1,<9)"] [[package]] name = "rpds-py" -version = "0.10.6" +version = "0.13.0" description = "Python bindings to Rust's persistent data structures (rpds)" optional = false python-versions = ">=3.8" files = [ - {file = "rpds_py-0.10.6-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:6bdc11f9623870d75692cc33c59804b5a18d7b8a4b79ef0b00b773a27397d1f6"}, - {file = "rpds_py-0.10.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:26857f0f44f0e791f4a266595a7a09d21f6b589580ee0585f330aaccccb836e3"}, - {file = "rpds_py-0.10.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7f5e15c953ace2e8dde9824bdab4bec50adb91a5663df08d7d994240ae6fa31"}, - {file = "rpds_py-0.10.6-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:61fa268da6e2e1cd350739bb61011121fa550aa2545762e3dc02ea177ee4de35"}, - {file = "rpds_py-0.10.6-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c48f3fbc3e92c7dd6681a258d22f23adc2eb183c8cb1557d2fcc5a024e80b094"}, - {file = "rpds_py-0.10.6-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c0503c5b681566e8b722fe8c4c47cce5c7a51f6935d5c7012c4aefe952a35eed"}, - {file = "rpds_py-0.10.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:734c41f9f57cc28658d98270d3436dba65bed0cfc730d115b290e970150c540d"}, - {file = "rpds_py-0.10.6-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a5d7ed104d158c0042a6a73799cf0eb576dfd5fc1ace9c47996e52320c37cb7c"}, - {file = "rpds_py-0.10.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e3df0bc35e746cce42579826b89579d13fd27c3d5319a6afca9893a9b784ff1b"}, - {file = "rpds_py-0.10.6-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:73e0a78a9b843b8c2128028864901f55190401ba38aae685350cf69b98d9f7c9"}, - {file = "rpds_py-0.10.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5ed505ec6305abd2c2c9586a7b04fbd4baf42d4d684a9c12ec6110deefe2a063"}, - {file = "rpds_py-0.10.6-cp310-none-win32.whl", hash = "sha256:d97dd44683802000277bbf142fd9f6b271746b4846d0acaf0cefa6b2eaf2a7ad"}, - {file = "rpds_py-0.10.6-cp310-none-win_amd64.whl", hash = "sha256:b455492cab07107bfe8711e20cd920cc96003e0da3c1f91297235b1603d2aca7"}, - {file = "rpds_py-0.10.6-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:e8cdd52744f680346ff8c1ecdad5f4d11117e1724d4f4e1874f3a67598821069"}, - {file = "rpds_py-0.10.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:66414dafe4326bca200e165c2e789976cab2587ec71beb80f59f4796b786a238"}, - {file = "rpds_py-0.10.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc435d059f926fdc5b05822b1be4ff2a3a040f3ae0a7bbbe672babb468944722"}, - {file = "rpds_py-0.10.6-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8e7f2219cb72474571974d29a191714d822e58be1eb171f229732bc6fdedf0ac"}, - {file = "rpds_py-0.10.6-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3953c6926a63f8ea5514644b7afb42659b505ece4183fdaaa8f61d978754349e"}, - {file = "rpds_py-0.10.6-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2bb2e4826be25e72013916eecd3d30f66fd076110de09f0e750163b416500721"}, - {file = "rpds_py-0.10.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7bf347b495b197992efc81a7408e9a83b931b2f056728529956a4d0858608b80"}, - {file = "rpds_py-0.10.6-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:102eac53bb0bf0f9a275b438e6cf6904904908562a1463a6fc3323cf47d7a532"}, - {file = "rpds_py-0.10.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:40f93086eef235623aa14dbddef1b9fb4b22b99454cb39a8d2e04c994fb9868c"}, - {file = "rpds_py-0.10.6-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e22260a4741a0e7a206e175232867b48a16e0401ef5bce3c67ca5b9705879066"}, - {file = "rpds_py-0.10.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f4e56860a5af16a0fcfa070a0a20c42fbb2012eed1eb5ceeddcc7f8079214281"}, - {file = "rpds_py-0.10.6-cp311-none-win32.whl", hash = "sha256:0774a46b38e70fdde0c6ded8d6d73115a7c39d7839a164cc833f170bbf539116"}, - {file = "rpds_py-0.10.6-cp311-none-win_amd64.whl", hash = "sha256:4a5ee600477b918ab345209eddafde9f91c0acd931f3776369585a1c55b04c57"}, - {file = "rpds_py-0.10.6-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:5ee97c683eaface61d38ec9a489e353d36444cdebb128a27fe486a291647aff6"}, - {file = "rpds_py-0.10.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0713631d6e2d6c316c2f7b9320a34f44abb644fc487b77161d1724d883662e31"}, - {file = "rpds_py-0.10.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b5a53f5998b4bbff1cb2e967e66ab2addc67326a274567697379dd1e326bded7"}, - {file = "rpds_py-0.10.6-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6a555ae3d2e61118a9d3e549737bb4a56ff0cec88a22bd1dfcad5b4e04759175"}, - {file = "rpds_py-0.10.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:945eb4b6bb8144909b203a88a35e0a03d22b57aefb06c9b26c6e16d72e5eb0f0"}, - {file = "rpds_py-0.10.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:52c215eb46307c25f9fd2771cac8135d14b11a92ae48d17968eda5aa9aaf5071"}, - {file = "rpds_py-0.10.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c1b3cd23d905589cb205710b3988fc8f46d4a198cf12862887b09d7aaa6bf9b9"}, - {file = "rpds_py-0.10.6-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:64ccc28683666672d7c166ed465c09cee36e306c156e787acef3c0c62f90da5a"}, - {file = "rpds_py-0.10.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:516a611a2de12fbea70c78271e558f725c660ce38e0006f75139ba337d56b1f6"}, - {file = "rpds_py-0.10.6-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:9ff93d3aedef11f9c4540cf347f8bb135dd9323a2fc705633d83210d464c579d"}, - {file = "rpds_py-0.10.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:d858532212f0650be12b6042ff4378dc2efbb7792a286bee4489eaa7ba010586"}, - {file = "rpds_py-0.10.6-cp312-none-win32.whl", hash = "sha256:3c4eff26eddac49d52697a98ea01b0246e44ca82ab09354e94aae8823e8bda02"}, - {file = "rpds_py-0.10.6-cp312-none-win_amd64.whl", hash = "sha256:150eec465dbc9cbca943c8e557a21afdcf9bab8aaabf386c44b794c2f94143d2"}, - {file = "rpds_py-0.10.6-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:cf693eb4a08eccc1a1b636e4392322582db2a47470d52e824b25eca7a3977b53"}, - {file = "rpds_py-0.10.6-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4134aa2342f9b2ab6c33d5c172e40f9ef802c61bb9ca30d21782f6e035ed0043"}, - {file = "rpds_py-0.10.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e782379c2028a3611285a795b89b99a52722946d19fc06f002f8b53e3ea26ea9"}, - {file = "rpds_py-0.10.6-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2f6da6d842195fddc1cd34c3da8a40f6e99e4a113918faa5e60bf132f917c247"}, - {file = "rpds_py-0.10.6-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b4a9fe992887ac68256c930a2011255bae0bf5ec837475bc6f7edd7c8dfa254e"}, - {file = "rpds_py-0.10.6-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b788276a3c114e9f51e257f2a6f544c32c02dab4aa7a5816b96444e3f9ffc336"}, - {file = "rpds_py-0.10.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:caa1afc70a02645809c744eefb7d6ee8fef7e2fad170ffdeacca267fd2674f13"}, - {file = "rpds_py-0.10.6-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:bddd4f91eede9ca5275e70479ed3656e76c8cdaaa1b354e544cbcf94c6fc8ac4"}, - {file = "rpds_py-0.10.6-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:775049dfa63fb58293990fc59473e659fcafd953bba1d00fc5f0631a8fd61977"}, - {file = "rpds_py-0.10.6-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:c6c45a2d2b68c51fe3d9352733fe048291e483376c94f7723458cfd7b473136b"}, - {file = "rpds_py-0.10.6-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:0699ab6b8c98df998c3eacf51a3b25864ca93dab157abe358af46dc95ecd9801"}, - {file = "rpds_py-0.10.6-cp38-none-win32.whl", hash = "sha256:ebdab79f42c5961682654b851f3f0fc68e6cc7cd8727c2ac4ffff955154123c1"}, - {file = "rpds_py-0.10.6-cp38-none-win_amd64.whl", hash = "sha256:24656dc36f866c33856baa3ab309da0b6a60f37d25d14be916bd3e79d9f3afcf"}, - {file = "rpds_py-0.10.6-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:0898173249141ee99ffcd45e3829abe7bcee47d941af7434ccbf97717df020e5"}, - {file = "rpds_py-0.10.6-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9e9184fa6c52a74a5521e3e87badbf9692549c0fcced47443585876fcc47e469"}, - {file = "rpds_py-0.10.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5752b761902cd15073a527b51de76bbae63d938dc7c5c4ad1e7d8df10e765138"}, - {file = "rpds_py-0.10.6-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:99a57006b4ec39dbfb3ed67e5b27192792ffb0553206a107e4aadb39c5004cd5"}, - {file = "rpds_py-0.10.6-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:09586f51a215d17efdb3a5f090d7cbf1633b7f3708f60a044757a5d48a83b393"}, - {file = "rpds_py-0.10.6-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e225a6a14ecf44499aadea165299092ab0cba918bb9ccd9304eab1138844490b"}, - {file = "rpds_py-0.10.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b2039f8d545f20c4e52713eea51a275e62153ee96c8035a32b2abb772b6fc9e5"}, - {file = "rpds_py-0.10.6-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:34ad87a831940521d462ac11f1774edf867c34172010f5390b2f06b85dcc6014"}, - {file = "rpds_py-0.10.6-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:dcdc88b6b01015da066da3fb76545e8bb9a6880a5ebf89e0f0b2e3ca557b3ab7"}, - {file = "rpds_py-0.10.6-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:25860ed5c4e7f5e10c496ea78af46ae8d8468e0be745bd233bab9ca99bfd2647"}, - {file = "rpds_py-0.10.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7854a207ef77319ec457c1eb79c361b48807d252d94348305db4f4b62f40f7f3"}, - {file = "rpds_py-0.10.6-cp39-none-win32.whl", hash = "sha256:e6fcc026a3f27c1282c7ed24b7fcac82cdd70a0e84cc848c0841a3ab1e3dea2d"}, - {file = "rpds_py-0.10.6-cp39-none-win_amd64.whl", hash = "sha256:e98c4c07ee4c4b3acf787e91b27688409d918212dfd34c872201273fdd5a0e18"}, - {file = "rpds_py-0.10.6-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:68fe9199184c18d997d2e4293b34327c0009a78599ce703e15cd9a0f47349bba"}, - {file = "rpds_py-0.10.6-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:3339eca941568ed52d9ad0f1b8eb9fe0958fa245381747cecf2e9a78a5539c42"}, - {file = "rpds_py-0.10.6-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a360cfd0881d36c6dc271992ce1eda65dba5e9368575663de993eeb4523d895f"}, - {file = "rpds_py-0.10.6-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:031f76fc87644a234883b51145e43985aa2d0c19b063e91d44379cd2786144f8"}, - {file = "rpds_py-0.10.6-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1f36a9d751f86455dc5278517e8b65580eeee37d61606183897f122c9e51cef3"}, - {file = "rpds_py-0.10.6-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:052a832078943d2b2627aea0d19381f607fe331cc0eb5df01991268253af8417"}, - {file = "rpds_py-0.10.6-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:023574366002bf1bd751ebaf3e580aef4a468b3d3c216d2f3f7e16fdabd885ed"}, - {file = "rpds_py-0.10.6-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:defa2c0c68734f4a82028c26bcc85e6b92cced99866af118cd6a89b734ad8e0d"}, - {file = "rpds_py-0.10.6-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:879fb24304ead6b62dbe5034e7b644b71def53c70e19363f3c3be2705c17a3b4"}, - {file = "rpds_py-0.10.6-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:53c43e10d398e365da2d4cc0bcaf0854b79b4c50ee9689652cdc72948e86f487"}, - {file = "rpds_py-0.10.6-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:3777cc9dea0e6c464e4b24760664bd8831738cc582c1d8aacf1c3f546bef3f65"}, - {file = "rpds_py-0.10.6-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:40578a6469e5d1df71b006936ce95804edb5df47b520c69cf5af264d462f2cbb"}, - {file = "rpds_py-0.10.6-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:cf71343646756a072b85f228d35b1d7407da1669a3de3cf47f8bbafe0c8183a4"}, - {file = "rpds_py-0.10.6-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:10f32b53f424fc75ff7b713b2edb286fdbfc94bf16317890260a81c2c00385dc"}, - {file = "rpds_py-0.10.6-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:81de24a1c51cfb32e1fbf018ab0bdbc79c04c035986526f76c33e3f9e0f3356c"}, - {file = "rpds_py-0.10.6-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ac17044876e64a8ea20ab132080ddc73b895b4abe9976e263b0e30ee5be7b9c2"}, - {file = "rpds_py-0.10.6-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5e8a78bd4879bff82daef48c14d5d4057f6856149094848c3ed0ecaf49f5aec2"}, - {file = "rpds_py-0.10.6-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78ca33811e1d95cac8c2e49cb86c0fb71f4d8409d8cbea0cb495b6dbddb30a55"}, - {file = "rpds_py-0.10.6-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c63c3ef43f0b3fb00571cff6c3967cc261c0ebd14a0a134a12e83bdb8f49f21f"}, - {file = "rpds_py-0.10.6-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:7fde6d0e00b2fd0dbbb40c0eeec463ef147819f23725eda58105ba9ca48744f4"}, - {file = "rpds_py-0.10.6-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:79edd779cfc46b2e15b0830eecd8b4b93f1a96649bcb502453df471a54ce7977"}, - {file = "rpds_py-0.10.6-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:9164ec8010327ab9af931d7ccd12ab8d8b5dc2f4c6a16cbdd9d087861eaaefa1"}, - {file = "rpds_py-0.10.6-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:d29ddefeab1791e3c751e0189d5f4b3dbc0bbe033b06e9c333dca1f99e1d523e"}, - {file = "rpds_py-0.10.6-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:30adb75ecd7c2a52f5e76af50644b3e0b5ba036321c390b8e7ec1bb2a16dd43c"}, - {file = "rpds_py-0.10.6-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd609fafdcdde6e67a139898196698af37438b035b25ad63704fd9097d9a3482"}, - {file = "rpds_py-0.10.6-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6eef672de005736a6efd565577101277db6057f65640a813de6c2707dc69f396"}, - {file = "rpds_py-0.10.6-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6cf4393c7b41abbf07c88eb83e8af5013606b1cdb7f6bc96b1b3536b53a574b8"}, - {file = "rpds_py-0.10.6-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ad857f42831e5b8d41a32437f88d86ead6c191455a3499c4b6d15e007936d4cf"}, - {file = "rpds_py-0.10.6-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1d7360573f1e046cb3b0dceeb8864025aa78d98be4bb69f067ec1c40a9e2d9df"}, - {file = "rpds_py-0.10.6-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d08f63561c8a695afec4975fae445245386d645e3e446e6f260e81663bfd2e38"}, - {file = "rpds_py-0.10.6-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:f0f17f2ce0f3529177a5fff5525204fad7b43dd437d017dd0317f2746773443d"}, - {file = "rpds_py-0.10.6-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:442626328600bde1d09dc3bb00434f5374948838ce75c41a52152615689f9403"}, - {file = "rpds_py-0.10.6-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:e9616f5bd2595f7f4a04b67039d890348ab826e943a9bfdbe4938d0eba606971"}, - {file = "rpds_py-0.10.6.tar.gz", hash = "sha256:4ce5a708d65a8dbf3748d2474b580d606b1b9f91b5c6ab2a316e0b0cf7a4ba50"}, + {file = "rpds_py-0.13.0-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:1758197cc8d7ff383c07405f188253535b4aa7fa745cbc54d221ae84b18e0702"}, + {file = "rpds_py-0.13.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:715df74cbcef4387d623c917f295352127f4b3e0388038d68fa577b4e4c6e540"}, + {file = "rpds_py-0.13.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c8a9cec0f49df9bac252d92f138c0d7708d98828e21fd57db78087d8f50b5656"}, + {file = "rpds_py-0.13.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5c2545bba02f68abdf398ef4990dc77592cc1e5d29438b35b3a3ca34d171fb4b"}, + {file = "rpds_py-0.13.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:95375c44ffb9ea2bc25d67fb66e726ea266ff1572df50b9556fe28a5f3519cd7"}, + {file = "rpds_py-0.13.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:54e513df45a8a9419e7952ffd26ac9a5b7b1df97fe72530421794b0de29f9d72"}, + {file = "rpds_py-0.13.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a25f514a53927b6b4bd04a9a6a13b55209df54f548660eeed673336c0c946d14"}, + {file = "rpds_py-0.13.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c1a920fa679ec2758411d66bf68840b0a21317b9954ab0e973742d723bb67709"}, + {file = "rpds_py-0.13.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f9339d1404b87e6d8cb35e485945753be57a99ab9bb389f42629215b2f6bda0f"}, + {file = "rpds_py-0.13.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:c99f9dda2c959f7bb69a7125e192c74fcafb7a534a95ccf49313ae3a04807804"}, + {file = "rpds_py-0.13.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:bad6758df5f1042b35683bd1811d5432ac1b17700a5a2a51fdc293f7df5f7827"}, + {file = "rpds_py-0.13.0-cp310-none-win32.whl", hash = "sha256:2a29ec68fa9655ce9501bc6ae074b166e8b45c2dfcd2d71d90d1a61758ed8c73"}, + {file = "rpds_py-0.13.0-cp310-none-win_amd64.whl", hash = "sha256:244be953f13f148b0071d67a610f89cd72eb5013a147e517d6ca3f3f3b7e0380"}, + {file = "rpds_py-0.13.0-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:240279ca0b2afd6d4710afce1c94bf9e75fc161290bf62c0feba64d64780d80b"}, + {file = "rpds_py-0.13.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:25c9727da2dabc93664a18eda7a70feedf478f0c4c8294e4cdba7f60a479a246"}, + {file = "rpds_py-0.13.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:981e46e1e5064f95460381bff4353783b4b5ce351c930e5b507ebe0278c61dac"}, + {file = "rpds_py-0.13.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6052bb47ea583646b8ff562acacb9a2ec5ec847267049cbae3919671929e94c6"}, + {file = "rpds_py-0.13.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:87f591ff8cc834fa01ca5899ab5edcd7ee590492a9cdcf43424ac142e731ce3e"}, + {file = "rpds_py-0.13.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:62772259b3381e2aabf274c74fd1e1ac03b0524de0a6593900684becfa8cfe4b"}, + {file = "rpds_py-0.13.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b4de9d20fe68c16b4d97f551a09920745add0c86430262230528b83c2ed2fe90"}, + {file = "rpds_py-0.13.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b70a54fb628c1d6400e351674a31ba63d2912b8c5b707f99b408674a5d8b69ab"}, + {file = "rpds_py-0.13.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2063ab9cd1be7ef6b5ed0f408e2bdf32c060b6f40c097a468f32864731302636"}, + {file = "rpds_py-0.13.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:84f7f3f18d29a1c645729634003d21d84028bd9c2fd78eba9d028998f46fa5aa"}, + {file = "rpds_py-0.13.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f7c7ddc8d1a64623068da5a15e28001fbd0f0aff754aae7a75a4be5042191638"}, + {file = "rpds_py-0.13.0-cp311-none-win32.whl", hash = "sha256:8a33d2b6340261191bb59adb5a453fa6c7d99de85552bd4e8196411f0509c9bf"}, + {file = "rpds_py-0.13.0-cp311-none-win_amd64.whl", hash = "sha256:8b9c1dd90461940315981499df62a627571c4f0992e8bafc5396d33916224cac"}, + {file = "rpds_py-0.13.0-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:15a2d542de5cbfc6abddc4846d9412b59f8ee9c8dfa0b9c92a29321297c91745"}, + {file = "rpds_py-0.13.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8dd69e01b29ff45a0062cad5c480d8aa9301c3ef09da471f86337a78eb2d3405"}, + {file = "rpds_py-0.13.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:efdd02971a02f98492a72b25484f1f6125fb9f2166e48cc4c9bfa563349c851b"}, + {file = "rpds_py-0.13.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:91ca9aaee7ccdfa66d800b5c4ec634fefca947721bab52d6ad2f6350969a3771"}, + {file = "rpds_py-0.13.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:afcec1f5b09d0db70aeb2d90528a9164acb61841a3124e28f6ac0137f4c36cb4"}, + {file = "rpds_py-0.13.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c6824673f66c47f7ee759c21e973bfce3ceaf2c25cb940cb45b41105dc914e8"}, + {file = "rpds_py-0.13.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:50b6d80925dfeb573fc5e38582fb9517c6912dc462cc858a11c8177b0837127a"}, + {file = "rpds_py-0.13.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3a1a38512925829784b5dc38591c757b80cfce115c72c594dc59567dab62b9c4"}, + {file = "rpds_py-0.13.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:977c6123c359dcc70ce3161b781ab70b0d342de2666944b776617e01a0a7822a"}, + {file = "rpds_py-0.13.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:c472409037e05ed87b99430f97a6b82130328bb977502813547e8ee6a3392502"}, + {file = "rpds_py-0.13.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:28bb22019f4a783ea06a6b81437d5996551869e8a722ee8720b744f7684d97f4"}, + {file = "rpds_py-0.13.0-cp312-none-win32.whl", hash = "sha256:46be9c0685cce2ea02151aa8308f2c1b78581be41a5dd239448a941a210ef5dd"}, + {file = "rpds_py-0.13.0-cp312-none-win_amd64.whl", hash = "sha256:3c5b9ad4d3e05dfcf8629f0d534f92610e9805dbce2fcb9b3c801ddb886431d5"}, + {file = "rpds_py-0.13.0-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:66eb5aa36e857f768c598d2082fafb733eaf53e06e1169c6b4de65636e04ffd0"}, + {file = "rpds_py-0.13.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c9f4c2b7d989426e9fe9b720211172cf10eb5f7aa16c63de2e5dc61457abcf35"}, + {file = "rpds_py-0.13.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c1e37dfffe8959a492b7b331995f291847a41a035b4aad82d6060f38e8378a2b"}, + {file = "rpds_py-0.13.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8220321f2dccd9d66f72639185247cb7bbdd90753bf0b6bfca0fa31dba8af23c"}, + {file = "rpds_py-0.13.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e8f1d466a9747213d3cf7e1afec849cc51edb70d5b4ae9a82eca0f172bfbb6d0"}, + {file = "rpds_py-0.13.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c4c4b4ff3de834ec5c1c690e5a18233ca78547d003eb83664668ccf09ef1398"}, + {file = "rpds_py-0.13.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:525d19ef0a999229ef0f0a7687ab2c9a00d1b6a47a005006f4d8c4b8975fdcec"}, + {file = "rpds_py-0.13.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0982b59d014efb84a57128e7e69399fb29ad8f2da5b0a5bcbfd12e211c00492e"}, + {file = "rpds_py-0.13.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:f714dd5b705f1c394d1b361d96486c4981055c434a7eafb1a3147ac75e34a3de"}, + {file = "rpds_py-0.13.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:766b573a964389ef0d91a26bb31e1b59dbc5d06eff7707f3dfcec23d93080ba3"}, + {file = "rpds_py-0.13.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:2ed65ad3fc5065d13e31e90794e0b52e405b63ae4fab1080caeaadc10a3439c5"}, + {file = "rpds_py-0.13.0-cp38-none-win32.whl", hash = "sha256:9645f7fe10a68b2396d238250b4b264c2632d2eb6ce2cb90aa0fe08adee194be"}, + {file = "rpds_py-0.13.0-cp38-none-win_amd64.whl", hash = "sha256:42d0ad129c102856a364ccc7d356faec017af86b3543a8539795f22b6cabad11"}, + {file = "rpds_py-0.13.0-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:95c11647fac2a3515ea2614a79e14b7c75025724ad54c91c7db4a6ea5c25ef19"}, + {file = "rpds_py-0.13.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9435bf4832555c4f769c6be9401664357be33d5f5d8dc58f5c20fb8d21e2c45d"}, + {file = "rpds_py-0.13.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:54b1d671a74395344239ee3adbcd8c496525f6a2b2e54c40fec69620a31a8dcb"}, + {file = "rpds_py-0.13.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:13c8061115f1468de6ffdfb1d31b446e1bd814f1ff6e556862169aacb9fbbc5d"}, + {file = "rpds_py-0.13.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a78861123b002725633871a2096c3a4313224aab3d11b953dced87cfba702418"}, + {file = "rpds_py-0.13.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:97c1be5a018cdad54fa7e5f7d36b9ab45ef941a1d185987f18bdab0a42344012"}, + {file = "rpds_py-0.13.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e33b17915c8e4fb2ea8b91bb4c46cba92242c63dd38b87e869ead5ba217e2970"}, + {file = "rpds_py-0.13.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:153b6d8cf7ae4b9ffd09de6abeda661e351e3e06eaafd18a8c104ea00099b131"}, + {file = "rpds_py-0.13.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:da2852201e8e00c86be82c43d6893e6c380ef648ae53f337ffd1eaa35e3dfb8a"}, + {file = "rpds_py-0.13.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:a2383f400691fd7bd63347d4d75eb2fd525de9d901799a33a4e896c9885609f8"}, + {file = "rpds_py-0.13.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:d5bf560634ea6e9a59ceb2181a6cd6195a03f48cef9a400eb15e197e18f14548"}, + {file = "rpds_py-0.13.0-cp39-none-win32.whl", hash = "sha256:fdaef49055cc0c701fb17b9b34a38ef375e5cdb230b3722d4a12baf9b7cbc6d3"}, + {file = "rpds_py-0.13.0-cp39-none-win_amd64.whl", hash = "sha256:26660c74a20fe249fad75ca00bbfcf60e57c3fdbde92971c88a20e07fea1de64"}, + {file = "rpds_py-0.13.0-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:28324f2f0247d407daabf7ff357ad9f36126075c92a0cf5319396d96ff4e1248"}, + {file = "rpds_py-0.13.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:b431c2c0ff1ea56048a2b066d99d0c2d151ae7625b20be159b7e699f3e80390b"}, + {file = "rpds_py-0.13.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7472bd60a8293217444bdc6a46e516feb8d168da44d5f3fccea0336e88e3b79a"}, + {file = "rpds_py-0.13.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:169063f346b8fd84f47d986c9c48e6094eb38b839c1287e7cb886b8a2b32195d"}, + {file = "rpds_py-0.13.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eef7ee7c70f8b8698be468d54f9f5e01804f3a1dd5657e8a96363dbd52b9b5ec"}, + {file = "rpds_py-0.13.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:762013dd59df12380c5444f61ccbf9ae1297027cabbd7aa25891f724ebf8c8f7"}, + {file = "rpds_py-0.13.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:152570689a27ae0be1d5f50b21dad38d450b9227d0974f23bd400400ea087e88"}, + {file = "rpds_py-0.13.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d70a93a40e55da117c511ddc514642bc7d59a95a99137168a5f3f2f876b47962"}, + {file = "rpds_py-0.13.0-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:e6c6fed07d13b9e0fb689356c40c81f1aa92e3c9d91d8fd5816a0348ccd999f7"}, + {file = "rpds_py-0.13.0-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:cdded3cf9e36840b09ccef714d5fa74a03f4eb6cf81e694226ed9cb5e6f90de0"}, + {file = "rpds_py-0.13.0-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:e1f40faf406c52c7ae7d208b9140377c06397248978ccb03fbfbb30a0571e359"}, + {file = "rpds_py-0.13.0-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:c10326e30c97a95b7e1d75e5200ef0b9827aa0f861e331e43b15dfdfd63e669b"}, + {file = "rpds_py-0.13.0-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:afde37e3763c602d0385bce5c12f262e7b1dd2a0f323e239fa9d7b2d4d5d8509"}, + {file = "rpds_py-0.13.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4084ab6840bd4d79eff3b5f497add847a7db31ce5a0c2d440c90b2d2b7011857"}, + {file = "rpds_py-0.13.0-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1c9c9cb48ab77ebfa47db25b753f594d4f44959cfe43b713439ca6e3c9329671"}, + {file = "rpds_py-0.13.0-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:533d728ea5ad5253af3395102723ca8a77b62de47b2295155650c9a88fcdeec8"}, + {file = "rpds_py-0.13.0-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f22cab655b41033d430f20266bf563b35038a7f01c9a099b0ccfd30a7fb9247"}, + {file = "rpds_py-0.13.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b9a0507342c37132813449393e6e6f351bbff376031cfff1ee6e616402ac7908"}, + {file = "rpds_py-0.13.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4eb1faf8e2ee9a2de3cb3ae4c8c355914cdc85f2cd7f27edf76444c9550ce1e7"}, + {file = "rpds_py-0.13.0-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:a61a152d61e3ae26e0bbba7b2f568f6f25ca0abdeb6553eca7e7c45b59d9b1a9"}, + {file = "rpds_py-0.13.0-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:e499bf2200eb74774a6f85a7465e3bc5273fa8ef0055590d97a88c1e7ea02eea"}, + {file = "rpds_py-0.13.0-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:1e5becd0de924616ca9a12abeb6458568d1dc8fe5c670d5cdb738402a8a8429d"}, + {file = "rpds_py-0.13.0-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:70cfe098d915f566eeebcb683f49f9404d2f948432891b6e075354336eda9dfb"}, + {file = "rpds_py-0.13.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:2e73511e88368f93c24efe7c9a20b319eaa828bc7431f8a17713efb9e31a39fa"}, + {file = "rpds_py-0.13.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c07cb9bcccd08f9bc2fd05bf586479df4272ea5a6a70fbcb59b018ed48a5a84d"}, + {file = "rpds_py-0.13.0-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8c4e84016ba225e09df20fed8befe8c68d14fbeff6078f4a0ff907ae2095e17e"}, + {file = "rpds_py-0.13.0-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6ad465e5a70580ca9c1944f43a9a71bca3a7b74554347fc96ca0479eca8981f9"}, + {file = "rpds_py-0.13.0-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:189aebd44a07fa7b7966cf78b85bde8335b0b6c3b1c4ef5589f8c03176830107"}, + {file = "rpds_py-0.13.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f50ca0460f1f7a89ab9b8355d83ac993d5998ad4218e76654ecf8afe648d8aa"}, + {file = "rpds_py-0.13.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f6c225011467021879c0482316e42d8a28852fc29f0c15d2a435ff457cadccd4"}, + {file = "rpds_py-0.13.0-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:1e63b32b856c0f08a56b76967d61b6ad811d8d330a8aebb9d21afadd82a296f6"}, + {file = "rpds_py-0.13.0-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:7e5fbe9800f09c56967fda88c4d9272955e781699a66102bd098f22511a3f260"}, + {file = "rpds_py-0.13.0-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:fea99967d4a978ce95dd52310bcb4a943b77c61725393bca631b0908047d6e2f"}, + {file = "rpds_py-0.13.0.tar.gz", hash = "sha256:35cc91cbb0b775705e0feb3362490b8418c408e9e3c3b9cb3b02f6e495f03ee7"}, ] [[package]] @@ -3472,84 +3440,77 @@ ontodev-cogs = ">=0.3.3,<0.4.0" [[package]] name = "scipy" -version = "1.9.3" -description = "Fundamental algorithms for scientific computing in Python" +version = "1.6.1" +description = "SciPy: Scientific Library for Python" optional = false -python-versions = ">=3.8" +python-versions = ">=3.7" files = [ - {file = "scipy-1.9.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1884b66a54887e21addf9c16fb588720a8309a57b2e258ae1c7986d4444d3bc0"}, - {file = "scipy-1.9.3-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:83b89e9586c62e787f5012e8475fbb12185bafb996a03257e9675cd73d3736dd"}, - {file = "scipy-1.9.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a72d885fa44247f92743fc20732ae55564ff2a519e8302fb7e18717c5355a8b"}, - {file = "scipy-1.9.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d01e1dd7b15bd2449c8bfc6b7cc67d630700ed655654f0dfcf121600bad205c9"}, - {file = "scipy-1.9.3-cp310-cp310-win_amd64.whl", hash = "sha256:68239b6aa6f9c593da8be1509a05cb7f9efe98b80f43a5861cd24c7557e98523"}, - {file = "scipy-1.9.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b41bc822679ad1c9a5f023bc93f6d0543129ca0f37c1ce294dd9d386f0a21096"}, - {file = "scipy-1.9.3-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:90453d2b93ea82a9f434e4e1cba043e779ff67b92f7a0e85d05d286a3625df3c"}, - {file = "scipy-1.9.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:83c06e62a390a9167da60bedd4575a14c1f58ca9dfde59830fc42e5197283dab"}, - {file = "scipy-1.9.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:abaf921531b5aeaafced90157db505e10345e45038c39e5d9b6c7922d68085cb"}, - {file = "scipy-1.9.3-cp311-cp311-win_amd64.whl", hash = "sha256:06d2e1b4c491dc7d8eacea139a1b0b295f74e1a1a0f704c375028f8320d16e31"}, - {file = "scipy-1.9.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5a04cd7d0d3eff6ea4719371cbc44df31411862b9646db617c99718ff68d4840"}, - {file = "scipy-1.9.3-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:545c83ffb518094d8c9d83cce216c0c32f8c04aaf28b92cc8283eda0685162d5"}, - {file = "scipy-1.9.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d54222d7a3ba6022fdf5773931b5d7c56efe41ede7f7128c7b1637700409108"}, - {file = "scipy-1.9.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cff3a5295234037e39500d35316a4c5794739433528310e117b8a9a0c76d20fc"}, - {file = "scipy-1.9.3-cp38-cp38-win_amd64.whl", hash = "sha256:2318bef588acc7a574f5bfdff9c172d0b1bf2c8143d9582e05f878e580a3781e"}, - {file = "scipy-1.9.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d644a64e174c16cb4b2e41dfea6af722053e83d066da7343f333a54dae9bc31c"}, - {file = "scipy-1.9.3-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:da8245491d73ed0a994ed9c2e380fd058ce2fa8a18da204681f2fe1f57f98f95"}, - {file = "scipy-1.9.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4db5b30849606a95dcf519763dd3ab6fe9bd91df49eba517359e450a7d80ce2e"}, - {file = "scipy-1.9.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c68db6b290cbd4049012990d7fe71a2abd9ffbe82c0056ebe0f01df8be5436b0"}, - {file = "scipy-1.9.3-cp39-cp39-win_amd64.whl", hash = "sha256:5b88e6d91ad9d59478fafe92a7c757d00c59e3bdc3331be8ada76a4f8d683f58"}, - {file = "scipy-1.9.3.tar.gz", hash = "sha256:fbc5c05c85c1a02be77b1ff591087c83bc44579c6d2bd9fb798bb64ea5e1a027"}, + {file = "scipy-1.6.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a15a1f3fc0abff33e792d6049161b7795909b40b97c6cc2934ed54384017ab76"}, + {file = "scipy-1.6.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:e79570979ccdc3d165456dd62041d9556fb9733b86b4b6d818af7a0afc15f092"}, + {file = "scipy-1.6.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:a423533c55fec61456dedee7b6ee7dce0bb6bfa395424ea374d25afa262be261"}, + {file = "scipy-1.6.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:33d6b7df40d197bdd3049d64e8e680227151673465e5d85723b3b8f6b15a6ced"}, + {file = "scipy-1.6.1-cp37-cp37m-win32.whl", hash = "sha256:6725e3fbb47da428794f243864f2297462e9ee448297c93ed1dcbc44335feb78"}, + {file = "scipy-1.6.1-cp37-cp37m-win_amd64.whl", hash = "sha256:5fa9c6530b1661f1370bcd332a1e62ca7881785cc0f80c0d559b636567fab63c"}, + {file = "scipy-1.6.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:bd50daf727f7c195e26f27467c85ce653d41df4358a25b32434a50d8870fc519"}, + {file = "scipy-1.6.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:f46dd15335e8a320b0fb4685f58b7471702234cba8bb3442b69a3e1dc329c345"}, + {file = "scipy-1.6.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:0e5b0ccf63155d90da576edd2768b66fb276446c371b73841e3503be1d63fb5d"}, + {file = "scipy-1.6.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:2481efbb3740977e3c831edfd0bd9867be26387cacf24eb5e366a6a374d3d00d"}, + {file = "scipy-1.6.1-cp38-cp38-win32.whl", hash = "sha256:68cb4c424112cd4be886b4d979c5497fba190714085f46b8ae67a5e4416c32b4"}, + {file = "scipy-1.6.1-cp38-cp38-win_amd64.whl", hash = "sha256:5f331eeed0297232d2e6eea51b54e8278ed8bb10b099f69c44e2558c090d06bf"}, + {file = "scipy-1.6.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0c8a51d33556bf70367452d4d601d1742c0e806cd0194785914daf19775f0e67"}, + {file = "scipy-1.6.1-cp39-cp39-manylinux1_i686.whl", hash = "sha256:83bf7c16245c15bc58ee76c5418e46ea1811edcc2e2b03041b804e46084ab627"}, + {file = "scipy-1.6.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:794e768cc5f779736593046c9714e0f3a5940bc6dcc1dba885ad64cbfb28e9f0"}, + {file = "scipy-1.6.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:5da5471aed911fe7e52b86bf9ea32fb55ae93e2f0fac66c32e58897cfb02fa07"}, + {file = "scipy-1.6.1-cp39-cp39-win32.whl", hash = "sha256:8e403a337749ed40af60e537cc4d4c03febddcc56cd26e774c9b1b600a70d3e4"}, + {file = "scipy-1.6.1-cp39-cp39-win_amd64.whl", hash = "sha256:a5193a098ae9f29af283dcf0041f762601faf2e595c0db1da929875b7570353f"}, + {file = "scipy-1.6.1.tar.gz", hash = "sha256:c4fceb864890b6168e79b0e714c585dbe2fd4222768ee90bc1aa0f8218691b11"}, ] [package.dependencies] -numpy = ">=1.18.5,<1.26.0" - -[package.extras] -dev = ["flake8", "mypy", "pycodestyle", "typing_extensions"] -doc = ["matplotlib (>2)", "numpydoc", "pydata-sphinx-theme (==0.9.0)", "sphinx (!=4.1.0)", "sphinx-panels (>=0.5.2)", "sphinx-tabs"] -test = ["asv", "gmpy2", "mpmath", "pytest", "pytest-cov", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] +numpy = ">=1.16.5" [[package]] name = "semsimian" -version = "0.2.8" +version = "0.2.10" description = "" optional = false python-versions = ">=3.7" files = [ - {file = "semsimian-0.2.8-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:4d9360cbde5e0081c9a8e1d1cf847dbf2ea58520a8a080a35ae532f42d280308"}, - {file = "semsimian-0.2.8-cp310-cp310-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:9fef97bd90feecc56070c0a8ec7d46c7f34b7a8a32e50eaa238edcd9b5fda7d4"}, - {file = "semsimian-0.2.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:61b136c4c7d452ec818dce1ab5d8155a3a3a0def7c8fda456a9e1862f0d4db43"}, - {file = "semsimian-0.2.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:979648a3ff6db4a0c0b51f47f6cadc6e515367fd07afd9080c854ad3441d1fed"}, - {file = "semsimian-0.2.8-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:0bb1eb6189005263e690f3589cf883b4b8f9bca760d1ea30384fe06726b370c0"}, - {file = "semsimian-0.2.8-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5af911ae910ed160beff118242e951202bd8a7ce1c6830731fb024584e04ddec"}, - {file = "semsimian-0.2.8-cp310-none-win_amd64.whl", hash = "sha256:a891d129e0ae9dac96af83b04fec81d2daa57acbc356bb9022342a0cfe98187c"}, - {file = "semsimian-0.2.8-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:970eab020d79ddb1390ec15a1459dc0dbe48d8936655eeffa23b9c3fc2ab1e77"}, - {file = "semsimian-0.2.8-cp311-cp311-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:911077e872a5bc458c6eb7bcb845990ff5ea8b26ac489c6d55bb1a3b8873c39b"}, - {file = "semsimian-0.2.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:998bc815daee570a0212611fe02ba65e2731d2c5a7972499469729f13680397c"}, - {file = "semsimian-0.2.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:271fd0e80756fe1f94ace67ff2d34dd9e9e6fc4bd75306c5366f8807de138e9a"}, - {file = "semsimian-0.2.8-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9c01d764e9376f008f43ce8bdbcf5f89812549ec441db734157f7e8181fd4b7b"}, - {file = "semsimian-0.2.8-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:402703c6d6b3bdacf5ae56c0f32d1c8ca51a8f452d53e4f57d432733d5a4d253"}, - {file = "semsimian-0.2.8-cp311-none-win_amd64.whl", hash = "sha256:0113cacbcd33747d774f40176685db5808069aea7a1ca59198cca5e841a10ecf"}, - {file = "semsimian-0.2.8-cp37-cp37m-macosx_10_7_x86_64.whl", hash = "sha256:8df01396cad03b1a66aeea0c8fb8a9b77b3d2dad81124ec046133b17cf0a4355"}, - {file = "semsimian-0.2.8-cp37-cp37m-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:626dfae9b1c61de4f43e400f95dff8f8fbd840e7f630a9bba3da7c0903b0679b"}, - {file = "semsimian-0.2.8-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4fb47762b986cdb16603afc7423f66584462c766369a15099cf03a81030da8ab"}, - {file = "semsimian-0.2.8-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e12133d1cf080c1251036c1c5be68623ec560dc73098f7b9691ac20810f44d8e"}, - {file = "semsimian-0.2.8-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:7cb48d7231456d9b59b90f5568e6ed4e414c06f5377b942246548b68ab1c8bff"}, - {file = "semsimian-0.2.8-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:e2ddece454ad22c97666e9614ca75eb7754de6456a4608d6a7040fc6761e8d44"}, - {file = "semsimian-0.2.8-cp37-none-win_amd64.whl", hash = "sha256:b740a4b8c13d845973fcc1b6aec7a6b3b5a4a43b8941c81b9e743df050509f0a"}, - {file = "semsimian-0.2.8-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:c4011c33b59dc57cfa2584d9f33d5b35f8a9b70ddb1e1df03f5f04e5cbf66eef"}, - {file = "semsimian-0.2.8-cp38-cp38-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:69c9888ea4a64598704b2a97a85d637212b2c8a52d88f66e28b8b426b6e53ee6"}, - {file = "semsimian-0.2.8-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:90b965919c6eb3bbdafa864e0177da02a11b0f5dd7b185059df634ea58c9f82f"}, - {file = "semsimian-0.2.8-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e343128951aa11b95bd1078873ffa826efc5e8619a9a895998a5af4f08d84c3f"}, - {file = "semsimian-0.2.8-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:4202340ba50aaa15681849df1a74823b200363bc9fb9e76d2208047d10dcec2b"}, - {file = "semsimian-0.2.8-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:7e6feed4467cd7d5d3a65535ca691d41c022bc6196a04999bf22ee5e4b7aac8f"}, - {file = "semsimian-0.2.8-cp38-none-win_amd64.whl", hash = "sha256:11add630a2e53f9c9f7fb5a0738ba7b5f625bdba6cd055b7a5433999e592eb7d"}, - {file = "semsimian-0.2.8-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:81a08601a5bfb6e2bf171e4e08fb9d4c17df09c9bb658f63a517a6881b74043d"}, - {file = "semsimian-0.2.8-cp39-cp39-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:120fd793b504795f1e393653c10e46d5be38179e87bbcbd96b3e3a929f5e9b7d"}, - {file = "semsimian-0.2.8-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d59197e9295019b11874a77eb56144abf26af2d900ff3de6378c4e1cdfbaf023"}, - {file = "semsimian-0.2.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2901f1698ba46de485887c412c81366efd18b869c0a2c9d9a1c0460037029244"}, - {file = "semsimian-0.2.8-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:996a83870460cb0cf336f1049c772eac34f73b24859d7d8d01ec30e47e48a7ef"}, - {file = "semsimian-0.2.8-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:dd0320504cc82520c0631fc49e1a245b2cf62fbb93ea12266b0373dfc66a6597"}, - {file = "semsimian-0.2.8-cp39-none-win_amd64.whl", hash = "sha256:150222e1785c5c269bdaabd70168c84f1edc998638046bbfbaa9144e2c03926d"}, + {file = "semsimian-0.2.10-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:b5a1dfc85e7086f83bbcf4d341149f517f31a2b32affccc28ce102b0dd4d2275"}, + {file = "semsimian-0.2.10-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:08aa3c25eae0fcd0409d523883b16e729782296fd95aa1c0b1b8ba61bfc43273"}, + {file = "semsimian-0.2.10-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0c5ed817e79bd1ec57b00b4c637cd5ead230d26335249f1133f471bc7b965a28"}, + {file = "semsimian-0.2.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:054fc65ce937912889738106de4961ac0ee96d3e033a9ba222ff614e2f3642b4"}, + {file = "semsimian-0.2.10-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e02832b628c2d143d76167bfe05035c90936f85e24d2bcd3b107ae2d79884d07"}, + {file = "semsimian-0.2.10-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:d31652d668e104ab0df9ca5a1d4534f6f2c59a9abed260e2391c4ce7c88065d6"}, + {file = "semsimian-0.2.10-cp310-none-win_amd64.whl", hash = "sha256:550505c4f6ea380c9cab2b37542081d9153a73a9209ff4638f813f3b8c078b35"}, + {file = "semsimian-0.2.10-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:d2d17c15f1c74eb429872a01a58d1d93d5daac7f5e9470ef5eb1551e39def862"}, + {file = "semsimian-0.2.10-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:21bf4119b443b33cbac06d7a24265083c6fd7b029329340571bc1dd7571dfaac"}, + {file = "semsimian-0.2.10-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7587ded25a49d2fcd9accb96433f87187c666d06ec2c44f6380ff635e7470a4c"}, + {file = "semsimian-0.2.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6a75873c8462b0d7699df137949ed34ecf580d0dfd99eb1a6371be5782f0b2bd"}, + {file = "semsimian-0.2.10-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:3cf744bae7b7d140444675b64a87d489576e5c830995f2e44e2fd24a607c07fe"}, + {file = "semsimian-0.2.10-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:89715d1cec132bc2878790c797b804c1f6fa81821fa44cb6599be0b95f542565"}, + {file = "semsimian-0.2.10-cp311-none-win_amd64.whl", hash = "sha256:ed246c975e5246fa450dcbcf54ab3dea181d07dcf95c668f50e1ca201cdb95e9"}, + {file = "semsimian-0.2.10-cp37-cp37m-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:343dbb774332dbfd62b144c37b134efa76cb89ac7bb1fe6a393329000e2b9fb0"}, + {file = "semsimian-0.2.10-cp37-cp37m-macosx_10_12_x86_64.whl", hash = "sha256:86acb9abfaa9383e9868453e5fe799c0d392590666c1f8bc8d0a8fe7a01e33e5"}, + {file = "semsimian-0.2.10-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f1cbc55033a24254ce944ae4c132b3da23a36e9c2613d273e5073f6d170acd09"}, + {file = "semsimian-0.2.10-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e9308fd32022efe01b5abd75deadd7df37824b7fd505af1872539b80cb548918"}, + {file = "semsimian-0.2.10-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:0ef2c1505b0fe0a4002d3a2dcef737aa7e6d3a13a190e7a39829a14ec4674d67"}, + {file = "semsimian-0.2.10-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:c553316ff06d5bc315e3604ac23bdf1943dff39eb599b65d174341bf7f9c1770"}, + {file = "semsimian-0.2.10-cp37-none-win_amd64.whl", hash = "sha256:cc5bf92b72cf19f52fa95b860f03e77c6cb6030e5030451ab25a0ecb6bf956e3"}, + {file = "semsimian-0.2.10-cp38-cp38-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:42f0c73f81400b01caea77a33371d27b4e97b447732d092c39deb8ea44a093e1"}, + {file = "semsimian-0.2.10-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:883ac1dd623abbb013bae2c0a16a96ab633885a909ccd674bd2a0280e4c2aab8"}, + {file = "semsimian-0.2.10-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a3a28b1548652fac56704d94b9c6d53129faad942e14e1d1503bc441e01b4e5c"}, + {file = "semsimian-0.2.10-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8fffdec865c59c26c0ea4de3012aa9d98fddbffd5e67de5e8f51f19d9172212"}, + {file = "semsimian-0.2.10-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:aa1da65df76a3def5af47c084db075d6ce985ca107dc4dcdc044ca97b0ca6ada"}, + {file = "semsimian-0.2.10-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:e8fd6197a1d49a13b013c2d695554a1434f45d7a1565d20814165d8bd78adcf7"}, + {file = "semsimian-0.2.10-cp38-none-win_amd64.whl", hash = "sha256:14d69a1be646a09f9de2843e4921a1e8bd187f2a3be7784b377dc5eb3a2c40f7"}, + {file = "semsimian-0.2.10-cp39-cp39-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:2377e24fd0a853cce7a1fc283c5586b6abca4076c8b2e5b3923cfc72554a0525"}, + {file = "semsimian-0.2.10-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:084c8e96c2de277c4816331909a2f932c2b548d8cbf6dbb71e50f6868078cbfb"}, + {file = "semsimian-0.2.10-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2a0743cfe1975a80402895c474c4c9c8e0f1504a1f4c75c820b74ee4605778f0"}, + {file = "semsimian-0.2.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99d27f2bad5faa9038e742f7d04eca93de3b45ffa4723a2aef6b633c52ff9810"}, + {file = "semsimian-0.2.10-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:0c0a875549be8f43e4df819585ffa0eb27cd1b687a83d544961861f72820aa5c"}, + {file = "semsimian-0.2.10-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:bdd7abb17463963ed03a2741a77ac5072aec29d58655d0edebb89ec24335c5fb"}, + {file = "semsimian-0.2.10-cp39-none-win_amd64.whl", hash = "sha256:7479880acf54a307b37ebba545f917731fc0229c277960a32d431aa8d28d2cba"}, ] [[package]] @@ -3958,33 +3919,6 @@ files = [ {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, ] -[[package]] -name = "tox" -version = "4.11.3" -description = "tox is a generic virtualenv management and test command line tool" -optional = false -python-versions = ">=3.8" -files = [ - {file = "tox-4.11.3-py3-none-any.whl", hash = "sha256:599af5e5bb0cad0148ac1558a0b66f8fff219ef88363483b8d92a81e4246f28f"}, - {file = "tox-4.11.3.tar.gz", hash = "sha256:5039f68276461fae6a9452a3b2c7295798f00a0e92edcd9a3b78ba1a73577951"}, -] - -[package.dependencies] -cachetools = ">=5.3.1" -chardet = ">=5.2" -colorama = ">=0.4.6" -filelock = ">=3.12.3" -packaging = ">=23.1" -platformdirs = ">=3.10" -pluggy = ">=1.3" -pyproject-api = ">=1.6.1" -tomli = {version = ">=2.0.1", markers = "python_version < \"3.11\""} -virtualenv = ">=20.24.3" - -[package.extras] -docs = ["furo (>=2023.8.19)", "sphinx (>=7.2.4)", "sphinx-argparse-cli (>=1.11.1)", "sphinx-autodoc-typehints (>=1.24)", "sphinx-copybutton (>=0.5.2)", "sphinx-inline-tabs (>=2023.4.21)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] -testing = ["build[virtualenv] (>=0.10)", "covdefaults (>=2.3)", "detect-test-pollution (>=1.1.1)", "devpi-process (>=1)", "diff-cover (>=7.7)", "distlib (>=0.3.7)", "flaky (>=3.7)", "hatch-vcs (>=0.3)", "hatchling (>=1.18)", "psutil (>=5.9.5)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)", "pytest-xdist (>=3.3.1)", "re-assert (>=1.1)", "time-machine (>=2.12)", "wheel (>=0.41.2)"] - [[package]] name = "tqdm" version = "4.66.1" @@ -4089,18 +4023,17 @@ six = "*" [[package]] name = "urllib3" -version = "2.0.7" +version = "2.1.0" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "urllib3-2.0.7-py3-none-any.whl", hash = "sha256:fdb6d215c776278489906c2f8916e6e7d4f5a9b602ccbcfdf7f016fc8da0596e"}, - {file = "urllib3-2.0.7.tar.gz", hash = "sha256:c97dfde1f7bd43a71c8d2a58e369e9b2bf692d1334ea9f9cae55add7d0dd0f84"}, + {file = "urllib3-2.1.0-py3-none-any.whl", hash = "sha256:55901e917a5896a349ff771be919f8bd99aff50b79fe58fec595eb37bbc56bb3"}, + {file = "urllib3-2.1.0.tar.gz", hash = "sha256:df7aa8afb0148fa78488e7899b2c59b5f4ffcfa82e6c54ccb9dd37c1d7b52d54"}, ] [package.extras] brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] -secure = ["certifi", "cryptography (>=1.9)", "idna (>=2.0.0)", "pyopenssl (>=17.1.0)", "urllib3-secure-extra"] socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] zstd = ["zstandard (>=0.18.0)"] @@ -4126,26 +4059,6 @@ testing = ["pytest (>=7.4.0)"] tooling = ["black (>=23.7.0)", "pyright (>=1.1.325)", "ruff (>=0.0.287)"] tooling-extras = ["pyaml (>=23.7.0)", "pypandoc-binary (>=1.11)", "pytest (>=7.4.0)"] -[[package]] -name = "virtualenv" -version = "20.24.6" -description = "Virtual Python Environment builder" -optional = false -python-versions = ">=3.7" -files = [ - {file = "virtualenv-20.24.6-py3-none-any.whl", hash = "sha256:520d056652454c5098a00c0f073611ccbea4c79089331f60bf9d7ba247bb7381"}, - {file = "virtualenv-20.24.6.tar.gz", hash = "sha256:02ece4f56fbf939dbbc33c0715159951d6bf14aaf5457b092e4548e1382455af"}, -] - -[package.dependencies] -distlib = ">=0.3.7,<1" -filelock = ">=3.12.2,<4" -platformdirs = ">=3.9.1,<4" - -[package.extras] -docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] -test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8)", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10)"] - [[package]] name = "watchdog" version = "3.0.0" @@ -4202,86 +4115,81 @@ tests = ["pytest", "pytest-cov"] [[package]] name = "wrapt" -version = "1.15.0" +version = "1.16.0" description = "Module for decorators, wrappers and monkey patching." optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" -files = [ - {file = "wrapt-1.15.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:ca1cccf838cd28d5a0883b342474c630ac48cac5df0ee6eacc9c7290f76b11c1"}, - {file = "wrapt-1.15.0-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:e826aadda3cae59295b95343db8f3d965fb31059da7de01ee8d1c40a60398b29"}, - {file = "wrapt-1.15.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:5fc8e02f5984a55d2c653f5fea93531e9836abbd84342c1d1e17abc4a15084c2"}, - {file = "wrapt-1.15.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:96e25c8603a155559231c19c0349245eeb4ac0096fe3c1d0be5c47e075bd4f46"}, - {file = "wrapt-1.15.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:40737a081d7497efea35ab9304b829b857f21558acfc7b3272f908d33b0d9d4c"}, - {file = "wrapt-1.15.0-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:f87ec75864c37c4c6cb908d282e1969e79763e0d9becdfe9fe5473b7bb1e5f09"}, - {file = "wrapt-1.15.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:1286eb30261894e4c70d124d44b7fd07825340869945c79d05bda53a40caa079"}, - {file = "wrapt-1.15.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:493d389a2b63c88ad56cdc35d0fa5752daac56ca755805b1b0c530f785767d5e"}, - {file = "wrapt-1.15.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:58d7a75d731e8c63614222bcb21dd992b4ab01a399f1f09dd82af17bbfc2368a"}, - {file = "wrapt-1.15.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:21f6d9a0d5b3a207cdf7acf8e58d7d13d463e639f0c7e01d82cdb671e6cb7923"}, - {file = "wrapt-1.15.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ce42618f67741d4697684e501ef02f29e758a123aa2d669e2d964ff734ee00ee"}, - {file = "wrapt-1.15.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41d07d029dd4157ae27beab04d22b8e261eddfc6ecd64ff7000b10dc8b3a5727"}, - {file = "wrapt-1.15.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:54accd4b8bc202966bafafd16e69da9d5640ff92389d33d28555c5fd4f25ccb7"}, - {file = "wrapt-1.15.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2fbfbca668dd15b744418265a9607baa970c347eefd0db6a518aaf0cfbd153c0"}, - {file = "wrapt-1.15.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:76e9c727a874b4856d11a32fb0b389afc61ce8aaf281ada613713ddeadd1cfec"}, - {file = "wrapt-1.15.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e20076a211cd6f9b44a6be58f7eeafa7ab5720eb796975d0c03f05b47d89eb90"}, - {file = "wrapt-1.15.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a74d56552ddbde46c246b5b89199cb3fd182f9c346c784e1a93e4dc3f5ec9975"}, - {file = "wrapt-1.15.0-cp310-cp310-win32.whl", hash = "sha256:26458da5653aa5b3d8dc8b24192f574a58984c749401f98fff994d41d3f08da1"}, - {file = "wrapt-1.15.0-cp310-cp310-win_amd64.whl", hash = "sha256:75760a47c06b5974aa5e01949bf7e66d2af4d08cb8c1d6516af5e39595397f5e"}, - {file = "wrapt-1.15.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ba1711cda2d30634a7e452fc79eabcadaffedf241ff206db2ee93dd2c89a60e7"}, - {file = "wrapt-1.15.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:56374914b132c702aa9aa9959c550004b8847148f95e1b824772d453ac204a72"}, - {file = "wrapt-1.15.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a89ce3fd220ff144bd9d54da333ec0de0399b52c9ac3d2ce34b569cf1a5748fb"}, - {file = "wrapt-1.15.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3bbe623731d03b186b3d6b0d6f51865bf598587c38d6f7b0be2e27414f7f214e"}, - {file = "wrapt-1.15.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3abbe948c3cbde2689370a262a8d04e32ec2dd4f27103669a45c6929bcdbfe7c"}, - {file = "wrapt-1.15.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:b67b819628e3b748fd3c2192c15fb951f549d0f47c0449af0764d7647302fda3"}, - {file = "wrapt-1.15.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:7eebcdbe3677e58dd4c0e03b4f2cfa346ed4049687d839adad68cc38bb559c92"}, - {file = "wrapt-1.15.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:74934ebd71950e3db69960a7da29204f89624dde411afbfb3b4858c1409b1e98"}, - {file = "wrapt-1.15.0-cp311-cp311-win32.whl", hash = "sha256:bd84395aab8e4d36263cd1b9308cd504f6cf713b7d6d3ce25ea55670baec5416"}, - {file = "wrapt-1.15.0-cp311-cp311-win_amd64.whl", hash = "sha256:a487f72a25904e2b4bbc0817ce7a8de94363bd7e79890510174da9d901c38705"}, - {file = "wrapt-1.15.0-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:4ff0d20f2e670800d3ed2b220d40984162089a6e2c9646fdb09b85e6f9a8fc29"}, - {file = "wrapt-1.15.0-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:9ed6aa0726b9b60911f4aed8ec5b8dd7bf3491476015819f56473ffaef8959bd"}, - {file = "wrapt-1.15.0-cp35-cp35m-manylinux2010_i686.whl", hash = "sha256:896689fddba4f23ef7c718279e42f8834041a21342d95e56922e1c10c0cc7afb"}, - {file = "wrapt-1.15.0-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:75669d77bb2c071333417617a235324a1618dba66f82a750362eccbe5b61d248"}, - {file = "wrapt-1.15.0-cp35-cp35m-win32.whl", hash = "sha256:fbec11614dba0424ca72f4e8ba3c420dba07b4a7c206c8c8e4e73f2e98f4c559"}, - {file = "wrapt-1.15.0-cp35-cp35m-win_amd64.whl", hash = "sha256:fd69666217b62fa5d7c6aa88e507493a34dec4fa20c5bd925e4bc12fce586639"}, - {file = "wrapt-1.15.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:b0724f05c396b0a4c36a3226c31648385deb6a65d8992644c12a4963c70326ba"}, - {file = "wrapt-1.15.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bbeccb1aa40ab88cd29e6c7d8585582c99548f55f9b2581dfc5ba68c59a85752"}, - {file = "wrapt-1.15.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:38adf7198f8f154502883242f9fe7333ab05a5b02de7d83aa2d88ea621f13364"}, - {file = "wrapt-1.15.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:578383d740457fa790fdf85e6d346fda1416a40549fe8db08e5e9bd281c6a475"}, - {file = "wrapt-1.15.0-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:a4cbb9ff5795cd66f0066bdf5947f170f5d63a9274f99bdbca02fd973adcf2a8"}, - {file = "wrapt-1.15.0-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:af5bd9ccb188f6a5fdda9f1f09d9f4c86cc8a539bd48a0bfdc97723970348418"}, - {file = "wrapt-1.15.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:b56d5519e470d3f2fe4aa7585f0632b060d532d0696c5bdfb5e8319e1d0f69a2"}, - {file = "wrapt-1.15.0-cp36-cp36m-win32.whl", hash = "sha256:77d4c1b881076c3ba173484dfa53d3582c1c8ff1f914c6461ab70c8428b796c1"}, - {file = "wrapt-1.15.0-cp36-cp36m-win_amd64.whl", hash = "sha256:077ff0d1f9d9e4ce6476c1a924a3332452c1406e59d90a2cf24aeb29eeac9420"}, - {file = "wrapt-1.15.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:5c5aa28df055697d7c37d2099a7bc09f559d5053c3349b1ad0c39000e611d317"}, - {file = "wrapt-1.15.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3a8564f283394634a7a7054b7983e47dbf39c07712d7b177b37e03f2467a024e"}, - {file = "wrapt-1.15.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:780c82a41dc493b62fc5884fb1d3a3b81106642c5c5c78d6a0d4cbe96d62ba7e"}, - {file = "wrapt-1.15.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e169e957c33576f47e21864cf3fc9ff47c223a4ebca8960079b8bd36cb014fd0"}, - {file = "wrapt-1.15.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:b02f21c1e2074943312d03d243ac4388319f2456576b2c6023041c4d57cd7019"}, - {file = "wrapt-1.15.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:f2e69b3ed24544b0d3dbe2c5c0ba5153ce50dcebb576fdc4696d52aa22db6034"}, - {file = "wrapt-1.15.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:d787272ed958a05b2c86311d3a4135d3c2aeea4fc655705f074130aa57d71653"}, - {file = "wrapt-1.15.0-cp37-cp37m-win32.whl", hash = "sha256:02fce1852f755f44f95af51f69d22e45080102e9d00258053b79367d07af39c0"}, - {file = "wrapt-1.15.0-cp37-cp37m-win_amd64.whl", hash = "sha256:abd52a09d03adf9c763d706df707c343293d5d106aea53483e0ec8d9e310ad5e"}, - {file = "wrapt-1.15.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:cdb4f085756c96a3af04e6eca7f08b1345e94b53af8921b25c72f096e704e145"}, - {file = "wrapt-1.15.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:230ae493696a371f1dbffaad3dafbb742a4d27a0afd2b1aecebe52b740167e7f"}, - {file = "wrapt-1.15.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63424c681923b9f3bfbc5e3205aafe790904053d42ddcc08542181a30a7a51bd"}, - {file = "wrapt-1.15.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d6bcbfc99f55655c3d93feb7ef3800bd5bbe963a755687cbf1f490a71fb7794b"}, - {file = "wrapt-1.15.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c99f4309f5145b93eca6e35ac1a988f0dc0a7ccf9ccdcd78d3c0adf57224e62f"}, - {file = "wrapt-1.15.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b130fe77361d6771ecf5a219d8e0817d61b236b7d8b37cc045172e574ed219e6"}, - {file = "wrapt-1.15.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:96177eb5645b1c6985f5c11d03fc2dbda9ad24ec0f3a46dcce91445747e15094"}, - {file = "wrapt-1.15.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d5fe3e099cf07d0fb5a1e23d399e5d4d1ca3e6dfcbe5c8570ccff3e9208274f7"}, - {file = "wrapt-1.15.0-cp38-cp38-win32.whl", hash = "sha256:abd8f36c99512755b8456047b7be10372fca271bf1467a1caa88db991e7c421b"}, - {file = "wrapt-1.15.0-cp38-cp38-win_amd64.whl", hash = "sha256:b06fa97478a5f478fb05e1980980a7cdf2712015493b44d0c87606c1513ed5b1"}, - {file = "wrapt-1.15.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2e51de54d4fb8fb50d6ee8327f9828306a959ae394d3e01a1ba8b2f937747d86"}, - {file = "wrapt-1.15.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0970ddb69bba00670e58955f8019bec4a42d1785db3faa043c33d81de2bf843c"}, - {file = "wrapt-1.15.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76407ab327158c510f44ded207e2f76b657303e17cb7a572ffe2f5a8a48aa04d"}, - {file = "wrapt-1.15.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cd525e0e52a5ff16653a3fc9e3dd827981917d34996600bbc34c05d048ca35cc"}, - {file = "wrapt-1.15.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d37ac69edc5614b90516807de32d08cb8e7b12260a285ee330955604ed9dd29"}, - {file = "wrapt-1.15.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:078e2a1a86544e644a68422f881c48b84fef6d18f8c7a957ffd3f2e0a74a0d4a"}, - {file = "wrapt-1.15.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:2cf56d0e237280baed46f0b5316661da892565ff58309d4d2ed7dba763d984b8"}, - {file = "wrapt-1.15.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:7dc0713bf81287a00516ef43137273b23ee414fe41a3c14be10dd95ed98a2df9"}, - {file = "wrapt-1.15.0-cp39-cp39-win32.whl", hash = "sha256:46ed616d5fb42f98630ed70c3529541408166c22cdfd4540b88d5f21006b0eff"}, - {file = "wrapt-1.15.0-cp39-cp39-win_amd64.whl", hash = "sha256:eef4d64c650f33347c1f9266fa5ae001440b232ad9b98f1f43dfe7a79435c0a6"}, - {file = "wrapt-1.15.0-py3-none-any.whl", hash = "sha256:64b1df0f83706b4ef4cfb4fb0e4c2669100fd7ecacfb59e091fad300d4e04640"}, - {file = "wrapt-1.15.0.tar.gz", hash = "sha256:d06730c6aed78cee4126234cf2d071e01b44b915e725a6cb439a879ec9754a3a"}, +python-versions = ">=3.6" +files = [ + {file = "wrapt-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ffa565331890b90056c01db69c0fe634a776f8019c143a5ae265f9c6bc4bd6d4"}, + {file = "wrapt-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e4fdb9275308292e880dcbeb12546df7f3e0f96c6b41197e0cf37d2826359020"}, + {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb2dee3874a500de01c93d5c71415fcaef1d858370d405824783e7a8ef5db440"}, + {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2a88e6010048489cda82b1326889ec075a8c856c2e6a256072b28eaee3ccf487"}, + {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac83a914ebaf589b69f7d0a1277602ff494e21f4c2f743313414378f8f50a4cf"}, + {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:73aa7d98215d39b8455f103de64391cb79dfcad601701a3aa0dddacf74911d72"}, + {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:807cc8543a477ab7422f1120a217054f958a66ef7314f76dd9e77d3f02cdccd0"}, + {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bf5703fdeb350e36885f2875d853ce13172ae281c56e509f4e6eca049bdfb136"}, + {file = "wrapt-1.16.0-cp310-cp310-win32.whl", hash = "sha256:f6b2d0c6703c988d334f297aa5df18c45e97b0af3679bb75059e0e0bd8b1069d"}, + {file = "wrapt-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:decbfa2f618fa8ed81c95ee18a387ff973143c656ef800c9f24fb7e9c16054e2"}, + {file = "wrapt-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1a5db485fe2de4403f13fafdc231b0dbae5eca4359232d2efc79025527375b09"}, + {file = "wrapt-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:75ea7d0ee2a15733684badb16de6794894ed9c55aa5e9903260922f0482e687d"}, + {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a452f9ca3e3267cd4d0fcf2edd0d035b1934ac2bd7e0e57ac91ad6b95c0c6389"}, + {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:43aa59eadec7890d9958748db829df269f0368521ba6dc68cc172d5d03ed8060"}, + {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:72554a23c78a8e7aa02abbd699d129eead8b147a23c56e08d08dfc29cfdddca1"}, + {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d2efee35b4b0a347e0d99d28e884dfd82797852d62fcd7ebdeee26f3ceb72cf3"}, + {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:6dcfcffe73710be01d90cae08c3e548d90932d37b39ef83969ae135d36ef3956"}, + {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:eb6e651000a19c96f452c85132811d25e9264d836951022d6e81df2fff38337d"}, + {file = "wrapt-1.16.0-cp311-cp311-win32.whl", hash = "sha256:66027d667efe95cc4fa945af59f92c5a02c6f5bb6012bff9e60542c74c75c362"}, + {file = "wrapt-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:aefbc4cb0a54f91af643660a0a150ce2c090d3652cf4052a5397fb2de549cd89"}, + {file = "wrapt-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5eb404d89131ec9b4f748fa5cfb5346802e5ee8836f57d516576e61f304f3b7b"}, + {file = "wrapt-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9090c9e676d5236a6948330e83cb89969f433b1943a558968f659ead07cb3b36"}, + {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94265b00870aa407bd0cbcfd536f17ecde43b94fb8d228560a1e9d3041462d73"}, + {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f2058f813d4f2b5e3a9eb2eb3faf8f1d99b81c3e51aeda4b168406443e8ba809"}, + {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98b5e1f498a8ca1858a1cdbffb023bfd954da4e3fa2c0cb5853d40014557248b"}, + {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:14d7dc606219cdd7405133c713f2c218d4252f2a469003f8c46bb92d5d095d81"}, + {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:49aac49dc4782cb04f58986e81ea0b4768e4ff197b57324dcbd7699c5dfb40b9"}, + {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:418abb18146475c310d7a6dc71143d6f7adec5b004ac9ce08dc7a34e2babdc5c"}, + {file = "wrapt-1.16.0-cp312-cp312-win32.whl", hash = "sha256:685f568fa5e627e93f3b52fda002c7ed2fa1800b50ce51f6ed1d572d8ab3e7fc"}, + {file = "wrapt-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:dcdba5c86e368442528f7060039eda390cc4091bfd1dca41e8046af7c910dda8"}, + {file = "wrapt-1.16.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d462f28826f4657968ae51d2181a074dfe03c200d6131690b7d65d55b0f360f8"}, + {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a33a747400b94b6d6b8a165e4480264a64a78c8a4c734b62136062e9a248dd39"}, + {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b3646eefa23daeba62643a58aac816945cadc0afaf21800a1421eeba5f6cfb9c"}, + {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ebf019be5c09d400cf7b024aa52b1f3aeebeff51550d007e92c3c1c4afc2a40"}, + {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:0d2691979e93d06a95a26257adb7bfd0c93818e89b1406f5a28f36e0d8c1e1fc"}, + {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:1acd723ee2a8826f3d53910255643e33673e1d11db84ce5880675954183ec47e"}, + {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:bc57efac2da352a51cc4658878a68d2b1b67dbe9d33c36cb826ca449d80a8465"}, + {file = "wrapt-1.16.0-cp36-cp36m-win32.whl", hash = "sha256:da4813f751142436b075ed7aa012a8778aa43a99f7b36afe9b742d3ed8bdc95e"}, + {file = "wrapt-1.16.0-cp36-cp36m-win_amd64.whl", hash = "sha256:6f6eac2360f2d543cc875a0e5efd413b6cbd483cb3ad7ebf888884a6e0d2e966"}, + {file = "wrapt-1.16.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a0ea261ce52b5952bf669684a251a66df239ec6d441ccb59ec7afa882265d593"}, + {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7bd2d7ff69a2cac767fbf7a2b206add2e9a210e57947dd7ce03e25d03d2de292"}, + {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9159485323798c8dc530a224bd3ffcf76659319ccc7bbd52e01e73bd0241a0c5"}, + {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a86373cf37cd7764f2201b76496aba58a52e76dedfaa698ef9e9688bfd9e41cf"}, + {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:73870c364c11f03ed072dda68ff7aea6d2a3a5c3fe250d917a429c7432e15228"}, + {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:b935ae30c6e7400022b50f8d359c03ed233d45b725cfdd299462f41ee5ffba6f"}, + {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:db98ad84a55eb09b3c32a96c576476777e87c520a34e2519d3e59c44710c002c"}, + {file = "wrapt-1.16.0-cp37-cp37m-win32.whl", hash = "sha256:9153ed35fc5e4fa3b2fe97bddaa7cbec0ed22412b85bcdaf54aeba92ea37428c"}, + {file = "wrapt-1.16.0-cp37-cp37m-win_amd64.whl", hash = "sha256:66dfbaa7cfa3eb707bbfcd46dab2bc6207b005cbc9caa2199bcbc81d95071a00"}, + {file = "wrapt-1.16.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1dd50a2696ff89f57bd8847647a1c363b687d3d796dc30d4dd4a9d1689a706f0"}, + {file = "wrapt-1.16.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:44a2754372e32ab315734c6c73b24351d06e77ffff6ae27d2ecf14cf3d229202"}, + {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e9723528b9f787dc59168369e42ae1c3b0d3fadb2f1a71de14531d321ee05b0"}, + {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dbed418ba5c3dce92619656802cc5355cb679e58d0d89b50f116e4a9d5a9603e"}, + {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:941988b89b4fd6b41c3f0bfb20e92bd23746579736b7343283297c4c8cbae68f"}, + {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6a42cd0cfa8ffc1915aef79cb4284f6383d8a3e9dcca70c445dcfdd639d51267"}, + {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:1ca9b6085e4f866bd584fb135a041bfc32cab916e69f714a7d1d397f8c4891ca"}, + {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d5e49454f19ef621089e204f862388d29e6e8d8b162efce05208913dde5b9ad6"}, + {file = "wrapt-1.16.0-cp38-cp38-win32.whl", hash = "sha256:c31f72b1b6624c9d863fc095da460802f43a7c6868c5dda140f51da24fd47d7b"}, + {file = "wrapt-1.16.0-cp38-cp38-win_amd64.whl", hash = "sha256:490b0ee15c1a55be9c1bd8609b8cecd60e325f0575fc98f50058eae366e01f41"}, + {file = "wrapt-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9b201ae332c3637a42f02d1045e1d0cccfdc41f1f2f801dafbaa7e9b4797bfc2"}, + {file = "wrapt-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2076fad65c6736184e77d7d4729b63a6d1ae0b70da4868adeec40989858eb3fb"}, + {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5cd603b575ebceca7da5a3a251e69561bec509e0b46e4993e1cac402b7247b8"}, + {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b47cfad9e9bbbed2339081f4e346c93ecd7ab504299403320bf85f7f85c7d46c"}, + {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8212564d49c50eb4565e502814f694e240c55551a5f1bc841d4fcaabb0a9b8a"}, + {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:5f15814a33e42b04e3de432e573aa557f9f0f56458745c2074952f564c50e664"}, + {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:db2e408d983b0e61e238cf579c09ef7020560441906ca990fe8412153e3b291f"}, + {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:edfad1d29c73f9b863ebe7082ae9321374ccb10879eeabc84ba3b69f2579d537"}, + {file = "wrapt-1.16.0-cp39-cp39-win32.whl", hash = "sha256:ed867c42c268f876097248e05b6117a65bcd1e63b779e916fe2e33cd6fd0d3c3"}, + {file = "wrapt-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:eb1b046be06b0fce7249f1d025cd359b4b80fc1c3e24ad9eca33e0dcdb2e4a35"}, + {file = "wrapt-1.16.0-py3-none-any.whl", hash = "sha256:6906c4100a8fcbf2fa735f6059214bb13b97f75b1a61777fcf6432121ef12ef1"}, + {file = "wrapt-1.16.0.tar.gz", hash = "sha256:5f370f952971e7d17c7d1ead40e49f32345a7f7a5373571ef44d800d06b1899d"}, ] [[package]] @@ -4305,4 +4213,4 @@ docs = [] [metadata] lock-version = "2.0" python-versions = "^3.9" -content-hash = "b607b7b607051ee862666df61b4b31010421f4973bc1691f10f495f465d335e9" +content-hash = "84411b109679591f4c870a09af27ff57a26a3604dd48c5708c460a7f0d72eb34" diff --git a/project.Makefile b/project.Makefile index d73298966c..9738e15684 100644 --- a/project.Makefile +++ b/project.Makefile @@ -1,6 +1,5 @@ ## Add your own custom Makefile targets here -#RIOT=~/apache-jena/bin/riot JENA_PATH=~/apache-jena/bin/ RUN=poetry run @@ -8,8 +7,8 @@ SCHEMA_NAME = $(shell bash ./utils/get-value.sh name) SOURCE_SCHEMA_PATH = $(shell bash ./utils/get-value.sh source_schema_path) .PHONY: OmicsProcessing-clean accepting-legacy-ids-all accepting-legacy-ids-clean \ -dump-validate-report-convert-mongodb examples-clean linkml-validate-mongodb mixs-yaml-clean mixs-deepdiff \ -mongodb-clean rdf-clean shuttle-clean squeaky-clean +dump-validate-report-convert-mongodb examples-clean linkml-validate-mongodb mixs-yaml-clean \ +rdf-clean shuttle-clean squeaky-clean OmicsProcessing-clean: rm -rf OmicsProcessing.tsv @@ -25,33 +24,14 @@ mixs-yaml-clean: rm -rf src/schema/mixs.yaml rm -rf local/mixs_regen/mixs_subset_modified.yaml -mongodb-clean: - date - rm -rf local/mongo_as_nmdc_database* - rm -rf local/mongo_as_unvalidated_nmdc_database.yaml - rdf-clean: rm -rf \ OmicsProcessing.rq \ - local/mongo_as_nmdc_database.ttl \ - local/mongo_as_nmdc_database_cuire_repaired.ttl \ - local/mongo_as_nmdc_database_rdf_safe.yaml \ - local/mongo_as_nmdc_database_validation.log \ - local/mongo_as_unvalidated_nmdc_database.yaml + local/mongo_as_* shuttle-clean: - rm -rf local/mixs_regen/import_slots_regardless_gen.tsv - rm -rf local/mixs_regen/mixs_slots_associated_with_biosample_omics_processing.tsv - rm -rf local/mixs_regen/mixs_slots_associated_with_biosample_omics_processing_augmented.tsv - rm -rf local/mixs_regen/mixs_slots_used_in_schema.tsv rm -rf local/mixs_regen/mixs_subset.yaml - #rm -rf local/mixs_regen/mixs_subset_modified.yaml # triggers complete regeneration rm -rf local/mixs_regen/mixs_subset_modified.yaml.bak - rm -rf local/mixs_regen/mixs_subset_repaired.yaml - rm -rf local/mixs_regen/mixs_subset_repaired.yaml.bak - rm -rf local/mixs_regen/slots_associated_with_biosample.tsv - rm -rf local/mixs_regen/slots_associated_with_biosample_omics_processing.tsv - rm -rf local/mixs_regen/slots_associated_with_omics_processing.tsv mkdir -p local/mixs_regen touch local/mixs_regen/.gitkeep @@ -60,199 +40,74 @@ src/schema/mixs.yaml: shuttle-clean local/mixs_regen/mixs_subset_modified_inj_la mv $(word 2,$^) $@ rm -rf local/mixs_regen/mixs_subset_modified.yaml.bak -local/mixs_regen/slots_associated_with_biosample.tsv: - yq '.classes.Biosample.slots.[]' src/schema/nmdc.yaml | sort | cat > $@ - -local/mixs_regen/slots_associated_with_omics_processing.tsv: - yq '.classes.OmicsProcessing.slots.[]' src/schema/nmdc.yaml | sort | cat > $@ - -local/mixs_regen/slots_associated_with_biosample_omics_processing.tsv: \ -local/mixs_regen/slots_associated_with_biosample.tsv \ -local/mixs_regen/slots_associated_with_omics_processing.tsv - cat $^ > $@ - -local/mixs_regen/mixs_slots_associated_with_biosample_omics_processing.tsv: \ -local/mixs_regen/slots_associated_with_biosample_omics_processing.tsv - $(RUN) get-mixs-slots-matching-slot-list \ - --slot_list_file $< \ - --output_file $@ - -local/mixs_regen/import_slots_regardless_gen.tsv: \ -local/mixs_regen/mixs_slots_associated_with_biosample_omics_processing.tsv - $(RUN) generate-import-slots-regardless \ - --input_file $< \ - --mixs-schema-url "https://raw.githubusercontent.com/microbiomedata/mixs/1da849346a80b717810a02d7c8ed74a22bcd84de/model/schema/mixs.yaml" \ - --output_file $@ \ - --slots-tsv assets/mixs_slots_used_in_schema.tsv - -local/mixs_regen/mixs_subset.yaml: local/mixs_regen/import_slots_regardless_gen.tsv +local/mixs_regen/mixs_subset.yaml: assets/other_mixs_yaml_files/mixs_slots_import_sheet.tsv $(RUN) do_shuttle \ --recipient_model assets/other_mixs_yaml_files/mixs_template.yaml \ --config_tsv $< \ --yaml_output $@ local/mixs_regen/mixs_subset_modified.yaml: local/mixs_regen/mixs_subset.yaml - # switching to TextValue may not add any value. the other range changes do improve the structure of the data. - # ironically changing back to strings for the submission-schema, data harmonizer, submission portal etc. - # may switch source of truth to the MIxS 6.2.2 release candidate - sed 's/quantity value/QuantityValue/' $< > $@ - sed -i.bak 's/range: string/range: TextValue/' $@ - sed -i.bak 's/range: text value/range: TextValue/' $@ - - yq -i '.slots.agrochem_addition.range |= "TextValue"' $@ - yq -i '.slots.air_temp_regm.range |= "TextValue"' $@ - yq -i '.slots.antibiotic_regm.range |= "TextValue"' $@ - yq -i '.slots.aromatics_pc.range |= "TextValue"' $@ - yq -i '.slots.asphaltenes_pc.range |= "TextValue"' $@ - yq -i '.slots.atmospheric_data.range |= "TextValue"' $@ - yq -i '.slots.avg_occup.range |= "TextValue"' $@ - yq -i '.slots.bathroom_count.range |= "TextValue"' $@ - yq -i '.slots.bedroom_count.range |= "TextValue"' $@ - yq -i '.slots.biocide_admin_method.range |= "TextValue"' $@ + cp $< $@ + yq -i '.enums.SOIL_HORIZON_ENUM.permissible_values.["M horizon"] = {}' $@ + yq -i '.id |= "https://raw.githubusercontent.com/microbiomedata/nmdc-schema/main/src/schema/mixs.yaml"' $@ yq -i '.slots.biomass.range |= "TextValue"' $@ + yq -i '.slots.calcium.range |= "QuantityValue"' $@ + yq -i '.slots.carb_nitro_ratio.range |= "QuantityValue"' $@ yq -i '.slots.chem_administration.range |= "ControlledTermValue"' $@ - yq -i '.slots.chem_mutagen.range |= "TextValue"' $@ - yq -i '.slots.chem_treat_method.range |= "string"' $@ yq -i '.slots.collection_date.range |= "TimestampValue"' $@ - yq -i '.slots.cool_syst_id.range |= "TextValue"' $@ - yq -i '.slots.date_last_rain.range |= "TimestampValue"' $@ - yq -i '.slots.diether_lipids.range |= "TextValue"' $@ - yq -i '.slots.elevator.range |= "TextValue"' $@ - yq -i '.slots.emulsions.range |= "TextValue"' $@ + yq -i '.slots.cur_vegetation.range |= "ControlledTermValue"' $@ + yq -i '.slots.depth.range |= "QuantityValue"' $@ yq -i '.slots.env_broad_scale.range |= "ControlledIdentifiedTermValue"' $@ yq -i '.slots.env_local_scale.range |= "ControlledIdentifiedTermValue"' $@ yq -i '.slots.env_medium.range |= "ControlledIdentifiedTermValue"' $@ - yq -i '.slots.escalator.range |= "TextValue"' $@ - yq -i '.slots.exp_pipe.range |= "QuantityValue"' $@ + yq -i '.slots.experimental_factor.multivalued |= "false"' $@ yq -i '.slots.experimental_factor.range |= "ControlledTermValue"' $@ - yq -i '.slots.ext_door.range |= "TextValue"' $@ - yq -i '.slots.extreme_event.range |= "TimestampValue"' $@ - yq -i '.slots.fertilizer_regm.range |= "TextValue"' $@ - yq -i '.slots.fire.range |= "TimestampValue"' $@ - yq -i '.slots.flooding.range |= "TimestampValue"' $@ - yq -i '.slots.floor_count.range |= "TextValue"' $@ - yq -i '.slots.freq_clean.range |= "QuantityValue"' $@ - yq -i '.slots.freq_cook.range |= "QuantityValue"' $@ - yq -i '.slots.fungicide_regm.range |= "TextValue"' $@ - yq -i '.slots.gaseous_environment.range |= "TextValue"' $@ - yq -i '.slots.gaseous_substances.range |= "TextValue"' $@ - yq -i '.slots.gravity.range |= "TextValue"' $@ + yq -i '.slots.experimental_factor.range |= "ControlledTermValue"' $@ + yq -i '.slots.geo_loc_name.range |= "TextValue"' $@ + yq -i '.slots.gravidity.range |= "TextValue"' $@ yq -i '.slots.growth_facil.range |= "ControlledTermValue"' $@ - yq -i '.slots.growth_hormone_regm.range |= "TextValue"' $@ - yq -i '.slots.hall_count.range |= "TextValue"' $@ - yq -i '.slots.hall_count.range |= "TextValue"' $@ - yq -i '.slots.hcr_pressure.range |= "TextValue"' $@ - yq -i '.slots.hcr_temp.range |= "TextValue"' $@ - yq -i '.slots.heat_sys_deliv_meth.range |= "string"' $@ - yq -i '.slots.heat_system_id.range |= "TextValue"' $@ - yq -i '.slots.heavy_metals.range |= "TextValue"' $@ - yq -i '.slots.herbicide_regm.range |= "TextValue"' $@ + yq -i '.slots.host_age.range |= "QuantityValue"' $@ + yq -i '.slots.host_body_habitat.range |= "TextValue"' $@ yq -i '.slots.host_body_product.range |= "ControlledTermValue"' $@ yq -i '.slots.host_body_site.range |= "ControlledTermValue"' $@ - yq -i '.slots.host_family_relation.range |= "string"' $@ - yq -i '.slots.host_phenotype.range |= "ControlledTermValue"' $@ - yq -i '.slots.host_subspecf_genlin.range |= "string"' $@ - yq -i '.slots.host_symbiont.range |= "string"' $@ - yq -i '.slots.humidity_regm.range |= "TextValue"' $@ - yq -i '.slots.inorg_particles.range |= "TextValue"' $@ - yq -i '.slots.iw_bt_date_well.range |= "TimestampValue"' $@ - yq -i '.slots.last_clean.range |= "TimestampValue"' $@ + yq -i '.slots.host_common_name.range |= "TextValue"' $@ + yq -i '.slots.host_diet.multivalued |= "true"' $@ + yq -i '.slots.host_diet.range |= "TextValue"' $@ + yq -i '.slots.host_genotype.range |= "TextValue"' $@ + yq -i '.slots.host_life_stage.range |= "TextValue"' $@ + yq -i '.slots.host_taxid.range |= "ControlledTermValue"' $@ yq -i '.slots.lat_lon.range |= "GeolocationValue"' $@ - yq -i '.slots.light_regm.range |= "TextValue"' $@ - yq -i '.slots.max_occup.range |= "QuantityValue"' $@ - yq -i '.slots.micro_biomass_meth.range |= "string"' $@ - yq -i '.slots.mineral_nutr_regm.range |= "TextValue"' $@ - yq -i '.slots.misc_param.range |= "TextValue"' $@ - yq -i '.slots.n_alkanes.range |= "TextValue"' $@ - yq -i '.slots.non_min_nutr_regm.range |= "string"' $@ - yq -i '.slots.number_pets.range |= "QuantityValue"' $@ - yq -i '.slots.number_plants.range |= "QuantityValue"' $@ - yq -i '.slots.number_resident.range |= "QuantityValue"' $@ - yq -i '.slots.occup_density_samp.range |= "QuantityValue"' $@ - yq -i '.slots.occup_samp.range |= "QuantityValue"' $@ - yq -i '.slots.org_count_qpcr_info.range |= "string"' $@ - yq -i '.slots.org_particles.range |= "TextValue"' $@ - yq -i '.slots.organism_count.range |= "QuantityValue"' $@ - yq -i '.slots.particle_class.range |= "TextValue"' $@ - yq -i '.slots.permeability.range |= "TextValue"' $@ - yq -i '.slots.pesticide_regm.range |= "TextValue"' $@ - yq -i '.slots.phaeopigments.range |= "TextValue"' $@ - yq -i '.slots.phosplipid_fatt_acid.range |= "TextValue"' $@ - yq -i '.slots.plant_growth_med.range |= "ControlledTermValue"' $@ - yq -i '.slots.plant_struc.range |= "ControlledTermValue"' $@ - yq -i '.slots.pollutants.range |= "TextValue"' $@ - yq -i '.slots.porosity.range |= "TextValue"' $@ - yq -i '.slots.pres_animal_insect.range |= "string"' $@ - yq -i '.slots.prev_land_use_meth.range |= "string"' $@ - yq -i '.slots.prod_start_date.range |= "TimestampValue"' $@ - yq -i '.slots.radiation_regm.range |= "TextValue"' $@ - yq -i '.slots.rainfall_regm.range |= "TextValue"' $@ - yq -i '.slots.resins_pc.range |= "TextValue"' $@ - yq -i '.slots.room_architec_elem.range |= "string"' $@ - yq -i '.slots.room_count.range |= "TextValue"' $@ - yq -i '.slots.room_dim.range |= "TextValue"' $@ - yq -i '.slots.room_door_dist.range |= "TextValue"' $@ - yq -i '.slots.room_net_area.range |= "TextValue"' $@ - yq -i '.slots.room_occup.range |= "QuantityValue"' $@ - yq -i '.slots.room_vol.range |= "TextValue"' $@ - yq -i '.slots.root_med_carbon.range |= "TextValue"' $@ - yq -i '.slots.root_med_macronutr.range |= "TextValue"' $@ - yq -i '.slots.root_med_micronutr.range |= "TextValue"' $@ - yq -i '.slots.root_med_ph.range |= "QuantityValue"' $@ - yq -i '.slots.root_med_regl.range |= "TextValue"' $@ - yq -i '.slots.root_med_suppl.range |= "TextValue"' $@ - yq -i '.slots.salt_regm.range |= "TextValue"' $@ - yq -i '.slots.samp_collec_device.range |= "string"' $@ - yq -i '.slots.samp_collec_method.range |= "string"' $@ - yq -i '.slots.samp_loc_corr_rate.range |= "TextValue"' $@ - yq -i '.slots.samp_mat_process.range |= "ControlledTermValue"' $@ - yq -i '.slots.samp_md.range |= "QuantityValue"' $@ - yq -i '.slots.samp_name.range |= "string"' $@ - yq -i '.slots.samp_preserv.range |= "TextValue"' $@ - yq -i '.slots.samp_room_id.range |= "TextValue"' $@ - yq -i '.slots.samp_time_out.range |= "TextValue"' $@ - yq -i '.slots.samp_transport_cond.range |= "TextValue"' $@ - yq -i '.slots.samp_tvdss.range |= "TextValue"' $@ - yq -i '.slots.saturates_pc.range |= "TextValue"' $@ - yq -i '.slots.shad_dev_water_mold.range |= "string"' $@ + yq -i '.slots.magnesium.range |= "QuantityValue"' $@ + yq -i '.slots.micro_biomass_meth.pattern |= ".*"' $@ # todo too liberal + yq -i '.slots.micro_biomass_meth.structured_pattern.syntax |= ".*"' $@ # todo too liberal + yq -i '.slots.nitrate.range |= "QuantityValue"' $@ + yq -i '.slots.nitro.range |= "QuantityValue"' $@ + yq -i '.slots.org_carb.range |= "QuantityValue"' $@ + yq -i '.slots.perturbation.multivalued |= "true"' $@ + yq -i '.slots.perturbation.range |= "TextValue"' $@ + yq -i '.slots.potassium.range |= "QuantityValue"' $@ + yq -i '.slots.salinity.range |= "QuantityValue"' $@ + yq -i '.slots.samp_size.range |= "QuantityValue"' $@ + yq -i '.slots.samp_store_temp.range |= "QuantityValue"' $@ + yq -i '.slots.samp_taxon_id.range |= "ControlledIdentifiedTermValue"' $@ yq -i '.slots.sieving.range |= "TextValue"' $@ - yq -i '.slots.size_frac.range |= "TextValue"' $@ - yq -i '.slots.soil_texture_meth.range |= "string"' $@ - yq -i '.slots.soluble_inorg_mat.range |= "TextValue"' $@ - yq -i '.slots.soluble_org_mat.range |= "TextValue"' $@ - yq -i '.slots.suspend_solids.range |= "TextValue"' $@ - yq -i '.slots.tot_nitro_cont_meth.range |= "string"' $@ - yq -i '.slots.viscosity.range |= "TextValue"' $@ - yq -i '.slots.volatile_org_comp.range |= "TextValue"' $@ - yq -i '.slots.water_cont_soil_meth.range |= "string"' $@ - yq -i '.slots.water_temp_regm.range |= "TextValue"' $@ - yq -i '.slots.watering_regm.range |= "TextValue"' $@ - yq -i '.slots.window_open_freq.range |= "TextValue"' $@ - yq -i '.slots.window_size.range |= "TextValue"' $@ - - yq -i 'del(.classes)' $@ + yq -i '.slots.source_mat_id.multivalued |= "false"' $@ + yq -i '.slots.source_mat_id.range |= "TextValue"' $@ + yq -i '.slots.store_cond.range |= "TextValue"' $@ + yq -i '.slots.temp.range |= "QuantityValue"' $@ + yq -i '.slots.tot_nitro.range |= "QuantityValue"' $@ + yq -i '.slots.tot_nitro.range |= "QuantityValue"' $@ + yq -i '.slots.tot_nitro_content.range |= "QuantityValue"' $@ + yq -i '.slots.tot_org_carb.range |= "QuantityValue"' $@ + yq -i '.slots.tot_phosp.range |= "QuantityValue"' $@ + yq -i '.slots.water_content.pattern |= ".*"' $@ # todo too liberal + yq -i '.slots.water_content.structured_pattern.syntax |= ".*"' $@ # todo too liberal + yq -i 'del(.classes)' $@ yq -i 'del(.enums.[].name)' $@ yq -i 'del(.enums.[].permissible_values.[].text)' $@ yq -i 'del(.slots.[].name)' $@ - yq -i 'del(.slots.add_recov_method.pattern)' $@ + yq -i 'del(.slots.[].required)' $@ yq -i 'del(.subsets.[].name)' $@ - - yq -i '.id |= "https://raw.githubusercontent.com/microbiomedata/nmdc-schema/main/src/schema/mixs.yaml"' $@ - -# # update host_taxid and samp_taxon_id. may want to flatten to a string or URIORCURIE eventually - yq -i 'del(.slots.host_taxid.examples)' $@ - yq -i 'del(.slots.host_taxid.string_serialization)' $@ - yq -i 'del(.slots.samp_taxon_id.examples)' $@ - yq -i 'del(.slots.samp_taxon_id.string_serialization)' $@ - - yq -i '.slots.host_taxid.comments |= ["Homo sapiens [NCBITaxon:9606] would be a reasonable has_raw_value"]' $@ - yq -i '.slots.host_taxid.range = "ControlledIdentifiedTermValue"' $@ - yq -i '.slots.samp_taxon_id.comments |= ["coal metagenome [NCBITaxon:1260732] would be a reasonable has_raw_value"]' $@ - yq -i '.slots.samp_taxon_id.range = "ControlledIdentifiedTermValue"' $@ - - - # add "M horizon" to soil_horizon_enum - yq -i '.enums.soil_horizon_enum.permissible_values.["M horizon"] = {}' $@ rm -rf local/mixs_regen/mixs_subset_modified.yaml.bak @@ -263,11 +118,6 @@ local/mixs_regen/mixs_subset_modified_inj_land_use.yaml: assets/other_mixs_yaml_ 'select(fileIndex==1).enums.cur_land_use_enum = select(fileIndex==0).enums.cur_land_use_enum | select(fileIndex==1)' \ $^ | cat > $@ -mixs-deepdiff: src/schema/mixs.yaml - mv src/schema/mixs.yaml.bak src/schema/mixs.bak.yaml - $(RUN) deep diff src/schema/mixs.bak.yaml $^ - mv src/schema/mixs.bak.yaml src/schema/mixs.yaml.bak - project/nmdc_schema_generated.yaml: $(SOURCE_SCHEMA_PATH) # the need for this may be eliminated by adding mandatory pattern materialization to gen-json-schema $(RUN) gen-linkml \ @@ -295,7 +145,7 @@ local/usage_template.tsv: src/schema/nmdc.yaml --columns-to-insert slot \ --source-schema-path $< -examples/output/Biosample-exhasutive_report.yaml: src/data/valid/Biosample-exhasutive.yaml +examples/output/Biosample-exhasutive_report.yaml: src/data/Biosample-exhasutive.yaml poetry run exhaustion-check \ --class-name Biosample \ --instance-yaml-file $< \ @@ -310,7 +160,7 @@ examples/output/Pooling-minimal-report.yaml: src/data/valid/Pooling-minimal.yaml --output-yaml-file $@ \ --schema-path src/schema/nmdc.yaml -examples/output/Biosample-exhasutive-pretty-sorted.yaml: src/data/valid/Biosample-exhasutive.yaml +examples/output/Biosample-exhasutive-pretty-sorted.yaml: src/data/Biosample-exhasutive.yaml poetry run pretty-sort-yaml \ -i $< \ -o $@ @@ -465,11 +315,7 @@ local/mongo_as_unvalidated_nmdc_database.yaml: --selected-collections read_based_taxonomy_analysis_activity_set \ --selected-collections read_qc_analysis_activity_set \ --selected-collections study_set \ - --skip-collection-check \ - - -# --migrator-name Migrator_from_8_0_to_8_1 \ -# --migrator-name Migrator_from_8_1_to_9_0 + --skip-collection-check local/mongo_as_nmdc_database_rdf_safe.yaml: nmdc_schema/nmdc_schema_accepting_legacy_ids.yaml local/mongo_as_unvalidated_nmdc_database.yaml date # 449.56 seconds on 2023-08-30 without functional_annotation_agg or metaproteomics_analysis_activity_set @@ -481,12 +327,16 @@ local/mongo_as_nmdc_database_rdf_safe.yaml: nmdc_schema/nmdc_schema_accepting_le .PRECIOUS: local/mongo_as_nmdc_database_validation.log -local/mongo_as_nmdc_database_validation.log: nmdc_schema/nmdc_schema_accepting_legacy_ids.yaml local/mongo_as_nmdc_database_rdf_safe.yaml +# make local/mongo_as_nmdc_database_rdf_safe.yaml ; linkml-validate \ +# --schema nmdc_schema/nmdc_schema_accepting_legacy_ids.yaml \ +# local/mongo_as_nmdc_database_rdf_safe.yaml > local/mongo_as_nmdc_database_validation.log + +local/mongo_as_nmdc_database_validation.log: nmdc_schema/nmdc_schema_accepting_legacy_ids.yaml mongo_as_nmdc_database_rdf_safe.yaml # nmdc_schema/nmdc_schema_accepting_legacy_ids.yaml or nmdc_schema/nmdc_materialized_patterns.yaml date # 5m57.559s without functional_annotation_agg or metaproteomics_analysis_activity_set time $(RUN) linkml-validate --schema $^ > $@ -local/mongo_as_nmdc_database.ttl: nmdc_schema/nmdc_schema_accepting_legacy_ids.yaml local/mongo_as_nmdc_database_rdf_safe.yaml +local/mongo_as_nmdc_database.ttl: nmdc_schema/nmdc_schema_accepting_legacy_ids.yaml mongo_as_nmdc_database_rdf_safe.yaml date # 681.99 seconds on 2023-08-30 without functional_annotation_agg or metaproteomics_analysis_activity_set time $(RUN) linkml-convert --output $@ --schema $^ export _JAVA_OPTIONS=-Djava.io.tmpdir=local @@ -528,24 +378,6 @@ OmicsProcessing.tsv: nmdc_schema/nmdc_schema_accepting_legacy_ids.yaml --target-class-name $(firstword $(subst ., ,$(lastword $(subst /, ,$@)))) \ --target-p-o-constraint "dcterms:isPartOf nmdc:sty-11-34xj1150" -#tdb-steps: -## # clean up tdbcontent -## $(JENA_PATH)/tdb2.tdbloader \ -## --loc=tdbcontent \ -## --graph=https://w3id.org/nmdc/nmdc project/owl/nmdc.owl.ttl -## $(JENA_PATH)/tdb2.tdbloader \ -## --loc=tdbcontent \ -## --graph=mongodb://mongo-loadbalancer.nmdc.production.svc.spin.nersc.gov:27017 local/research_study_injected_for_Gs0114663_cuire_repaired.ttl -## $(JENA_PATH)/tdb2.tdbquery \ -## --loc=tdbcontent \ -## --query=assets/sparql/tdb-test.rq -## $(JENA_PATH)/tdb2.tdbquery \ -## --loc=tdbcontent \ -## --query=assets/sparql/tdb-graph-list.rq -## $(JENA_PATH)/tdb2.tdbquery \ -## --loc=tdbcontent \ -## --query=assets/sparql/Gs0114663-construct.rq - validate-filtered-request-all: validate-filtered-request-clean assets/filtered-api-requests/filtered-request-validation-log.txt .PHONY: validate-filtered-request-all validate-filtered-request-clean diff --git a/pyproject.toml b/pyproject.toml index ec5292cb6a..4392cf9fd3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -43,8 +43,8 @@ packages = [ ] [tool.poetry.dependencies] -linkml = ">=1.5.0, <1.6.2" -linkml-runtime = ">=1.5.0, <1.6.3" +linkml = "^1.6.3" +linkml-runtime = "^1.6.2" python = "^3.9" click-log = "^0.4.0" ruamel-yaml = "^0.18.5" @@ -107,9 +107,6 @@ build-datafile-from-api-requests = "nmdc_schema.build_datafile_from_api_requests class-sparql = "nmdc_schema.class_sparql:main" fetch-nmdc-schema = "nmdc_schema.nmdc_data:get_nmdc_jsonschema" generate-import-slots-regardless = "nmdc_schema.generate_import_slots_regardless:main" -get-mixs-slots-matching-slot-list = "nmdc_schema.get_mixs_slots_matching_slot_list:main" -get-mixs-slots-used-in-schema = "nmdc_schema.get_mixs_slots_used_in_schema:main" # see nmdc_schema/generate_import_slots_regardless.py -get-slots-from-class = "nmdc_schema.get_slots_from_class:main" # see tests/test_getters.py migration-recursion = 'nmdc_schema.migration_recursion:main' nmdc-data = "nmdc_schema.nmdc_data:cli" nmdc-version = "nmdc_schema.nmdc_version:cli" diff --git a/src/data/valid/Biosample-exhasutive.yaml b/src/data/Biosample-exhasutive.yaml similarity index 99% rename from src/data/valid/Biosample-exhasutive.yaml rename to src/data/Biosample-exhasutive.yaml index 1b2474390a..a5b41a676e 100644 --- a/src/data/valid/Biosample-exhasutive.yaml +++ b/src/data/Biosample-exhasutive.yaml @@ -274,8 +274,8 @@ redox_potential: has_raw_value: 300 millivolt salinity: has_raw_value: 25 practical salinity unit -salinity_meth: - has_raw_value: PMID:22895776 +#salinity_meth: +# has_raw_value: PMID:22895776 samp_mat_process: has_raw_value: filtering of seawater samp_store_dur: @@ -377,7 +377,7 @@ phosphate: #samp_collec_method: # has_raw_value: swabbing -samp_collec_method: swabbing +#samp_collec_method: swabbing samp_size: has_raw_value: 5 liters source_mat_id: @@ -563,8 +563,8 @@ host_diet: - has_raw_value: xxx host_dry_mass: has_raw_value: xxx -host_family_relation: - - xxx +#host_family_relation: +# - xxx host_genotype: has_raw_value: xxx host_growth_cond: @@ -841,7 +841,7 @@ root_med_suppl: salt_regm: - has_raw_value: xxx samp_capt_status: other -samp_collec_device: xxx +#samp_collec_device: xxx samp_collect_point: well samp_dis_stage: dissemination @@ -914,8 +914,8 @@ sludge_retent_time: has_raw_value: xxx soil_horizon: O horizon -soil_text_measure: - has_raw_value: xxx +#soil_text_measure: +# has_raw_value: xxx soil_texture_meth: xxx solar_irradiance: diff --git a/src/data/valid/Biosample-exhaustive-issue-796-bye-yq-for-7-4-10.yaml b/src/data/Biosample-exhaustive-issue-796-bye-yq-for-7-4-10.yaml similarity index 99% rename from src/data/valid/Biosample-exhaustive-issue-796-bye-yq-for-7-4-10.yaml rename to src/data/Biosample-exhaustive-issue-796-bye-yq-for-7-4-10.yaml index 9b205e3778..50ed0cc7a5 100644 --- a/src/data/valid/Biosample-exhaustive-issue-796-bye-yq-for-7-4-10.yaml +++ b/src/data/Biosample-exhaustive-issue-796-bye-yq-for-7-4-10.yaml @@ -195,8 +195,8 @@ redox_potential: has_raw_value: 300 millivolt salinity: has_raw_value: 25 practical salinity unit -salinity_meth: - has_raw_value: PMID:22895776 +#salinity_meth: +# has_raw_value: PMID:22895776 samp_mat_process: has_raw_value: filtering of seawater samp_store_dur: @@ -304,7 +304,7 @@ light_regm: phosphate: has_raw_value: 0.7 micromole per liter -samp_collec_method: swabbing +#samp_collec_method: swabbing samp_size: has_raw_value: 5 liters source_mat_id: diff --git a/src/data/valid/Database-biosample-exhasutive.yaml b/src/data/Database-biosample-exhasutive.yaml similarity index 99% rename from src/data/valid/Database-biosample-exhasutive.yaml rename to src/data/Database-biosample-exhasutive.yaml index e3b318c298..04a85d77a9 100644 --- a/src/data/valid/Database-biosample-exhasutive.yaml +++ b/src/data/Database-biosample-exhasutive.yaml @@ -275,8 +275,8 @@ biosample_set: has_raw_value: 300 millivolt salinity: has_raw_value: 25 practical salinity unit - salinity_meth: - has_raw_value: PMID:22895776 +# salinity_meth: +# has_raw_value: PMID:22895776 samp_mat_process: has_raw_value: filtering of seawater samp_store_dur: @@ -377,7 +377,7 @@ biosample_set: has_raw_value: 0.7 micromole per liter #samp_collec_method: # has_raw_value: swabbing - samp_collec_method: swabbing +# samp_collec_method: swabbing samp_size: has_raw_value: 5 liters source_mat_id: @@ -563,8 +563,8 @@ biosample_set: - has_raw_value: xxx host_dry_mass: has_raw_value: xxx - host_family_relation: - - xxx +# host_family_relation: +# - xxx host_genotype: has_raw_value: xxx host_growth_cond: @@ -841,7 +841,7 @@ biosample_set: salt_regm: - has_raw_value: xxx samp_capt_status: other - samp_collec_device: xxx +# samp_collec_device: xxx samp_collect_point: well samp_dis_stage: dissemination @@ -914,8 +914,8 @@ biosample_set: has_raw_value: xxx soil_horizon: O horizon - soil_text_measure: - has_raw_value: xxx +# soil_text_measure: +# has_raw_value: xxx soil_texture_meth: xxx solar_irradiance: diff --git a/src/schema/core.yaml b/src/schema/core.yaml index b33eebdcd9..7adebe4b89 100644 --- a/src/schema/core.yaml +++ b/src/schema/core.yaml @@ -28,10 +28,10 @@ default_range: string subsets: - environment: { } - investigation: { } - nucleic acid sequence source: { } - sequencing: { } +# environment: { } +# investigation: { } +# nucleic acid sequence source: { } +# sequencing: { } types: diff --git a/src/schema/mixs_legacy.yaml b/src/schema/mixs_legacy.yaml new file mode 100644 index 0000000000..a2faaa763b --- /dev/null +++ b/src/schema/mixs_legacy.yaml @@ -0,0 +1,23 @@ +name: mixs_legacy +title: MIxS legacy terms for NMDC +id: https://raw.githubusercontent.com/microbiomedata/nmdc-schema/main/src/schema/mixs_legacy.yaml +prefixes: + MIXS: + prefix_prefix: MIXS + prefix_reference: https://w3id.org/mixs/ + linkml: + prefix_prefix: linkml + prefix_reference: https://w3id.org/linkml/ + xsd: + prefix_prefix: xsd + prefix_reference: http://www.w3.org/2001/XMLSchema# + shex: + prefix_prefix: shex + prefix_reference: http://www.w3.org/ns/shex# + schema: + prefix_prefix: schema + prefix_reference: http://schema.org/ +default_prefix: MIXS +slots: + samp_collec_method: { } # todo too liberal + samp_collec_device: { } # todo too liberal diff --git a/src/schema/nmdc.yaml b/src/schema/nmdc.yaml index 2b9a992838..6a544aa5e0 100644 --- a/src/schema/nmdc.yaml +++ b/src/schema/nmdc.yaml @@ -25,6 +25,7 @@ imports: - external_identifiers - linkml:types - mixs + - mixs_legacy - portal/emsl - portal/jgi_metagenomics - portal/jgi_metatranscriptomics @@ -544,7 +545,7 @@ classes: - collection_date - conduc - cool_syst_id - - core field + # - core field - crop_rotation - cult_root_med - cur_land_use @@ -593,7 +594,7 @@ classes: - env_local_scale - env_medium - env_package - - environment field + # - environment field - escalator - ethylbenzene - exp_duct @@ -636,9 +637,9 @@ classes: - growth_hormone_regm - hall_count - handidness - - has numeric value - - has raw value - - has unit + # - has numeric value + # - has raw value + # - has unit - hc_produced - hcr - hcr_fw_salinity @@ -663,7 +664,7 @@ classes: - host_common_name - host_diet - host_dry_mass - - host_family_relation + # - host_family_relation - host_genotype - host_growth_cond - host_height @@ -688,7 +689,7 @@ classes: - inorg_particles - inside_lux - int_wall_cond - - investigation field + # - investigation field - iw_bt_date_well - iwf - last_clean @@ -725,7 +726,7 @@ classes: - non_min_nutr_regm - nucl_acid_amp - nucl_acid_ext - - nucleic acid sequence source field + # - nucleic acid sequence source field - number_pets - number_plants - number_resident @@ -813,11 +814,11 @@ classes: - root_med_solid - root_med_suppl - salinity - - salinity_meth + # - salinity_meth - salt_regm - samp_capt_status - - samp_collec_device - - samp_collec_method + - samp_collec_device # todo legacy + - samp_collec_method # todo legacy - samp_collect_point - samp_dis_stage - samp_floor @@ -851,7 +852,7 @@ classes: - sediment_type - seq_meth - seq_quality_check - - sequencing field + # - sequencing field - sewage_type - shad_dev_water_mold - shading_device_cond @@ -868,7 +869,7 @@ classes: - sludge_retent_time - sodium - soil_horizon - - soil_text_measure + # - soil_text_measure - soil_texture_meth - soil_type - soil_type_meth @@ -1008,7 +1009,7 @@ classes: - light_regm # - micro_biomass_meth - phosphate - - samp_collec_method + # - samp_collec_method - samp_size # - soil_text_measure # - soil_texture_meth @@ -1101,8 +1102,8 @@ classes: examples: value: 100 - oxy_stat_samp: - range: oxy_stat_samp_enum + # oxy_stat_samp: + # range: oxy_stat_samp_enum id: required: true @@ -1324,9 +1325,9 @@ classes: - value: 5 mg N/ L todos: - check description. How are they different? - salinity_meth: - examples: - - value: https://doi.org/10.1007/978-1-61779-986-0_28 + # salinity_meth: + # examples: + # - value: https://doi.org/10.1007/978-1-61779-986-0_28 sieving: comments: - Describe how samples were composited or sieved. diff --git a/tests/test_getters.py b/tests/test_getters.py deleted file mode 100644 index f93c032f26..0000000000 --- a/tests/test_getters.py +++ /dev/null @@ -1,35 +0,0 @@ -import logging - -import unittest - -from nmdc_schema.get_mixs_slots import MIxSSlotsGetter -from nmdc_schema.get_nmdc_view import ViewGetter -from nmdc_schema.get_slots_from_class import ClassSlotsGetter -from nmdc_schema.get_slots_from_view import SchemaSlotsGetter - - -class Getters(unittest.TestCase): - def test_view_getter(self): - view_getter = ViewGetter() - nmdc_view = view_getter.get_view() - self.assertEqual(nmdc_view.schema.name, "NMDC") - - def test_schema_slots_getter(self): - schema_slots_getter = SchemaSlotsGetter() - schema_slots = schema_slots_getter.get_schema_slots() - self.assertIsNotNone(schema_slots) - - def test_get_slots_from_class(self): - class_name = "Study" - class_slot_getter = ClassSlotsGetter() - class_slots = class_slot_getter.get_class_slots(class_name) - self.assertIsNotNone(class_slots) - - def test_get_mixs_slots(self): - mg = MIxSSlotsGetter() - mixs_slots = mg.get_unique_slot_names() - self.assertIsNotNone(mixs_slots) - - -if __name__ == "__main__": - unittest.main() From b29d77cc23b40c294677fd01f9df07a5e08d8b6b Mon Sep 17 00:00:00 2001 From: "Mark A. Miller" Date: Wed, 17 Jul 2024 15:05:25 -0400 Subject: [PATCH 3/9] remove seq_meth annotations --- nmdc_schema/nmdc.py | 2 +- project.Makefile | 4 ++-- pyproject.toml | 2 +- src/data/valid/Database-gen_from_omics.yaml | 2 -- src/data/valid/Database-multiple-paths.yaml | 2 -- .../valid/Database-neon_Biosample_to_DataObject_NEON.yaml | 2 -- src/data/valid/Database-nmdc-example.yaml | 8 -------- src/data/valid/Database-omics-processings.yaml | 6 ------ src/data/valid/OmicsProcessing-1.yaml | 2 -- src/data/valid/OmicsProcessing-ndsdc-bioproject.yaml | 2 -- .../valid/OmicsProcessing-processing-institution.yaml | 2 -- 11 files changed, 4 insertions(+), 30 deletions(-) diff --git a/nmdc_schema/nmdc.py b/nmdc_schema/nmdc.py index 93e935f0db..6ddf49bc6f 100644 --- a/nmdc_schema/nmdc.py +++ b/nmdc_schema/nmdc.py @@ -1,5 +1,5 @@ # Auto generated from nmdc.yaml by pythongen.py version: 0.0.1 -# Generation date: 2024-07-17T14:36:14 +# Generation date: 2024-07-17T15:01:35 # Schema: NMDC # # id: https://w3id.org/nmdc/nmdc diff --git a/project.Makefile b/project.Makefile index be6eb04c57..79f82fbe19 100644 --- a/project.Makefile +++ b/project.Makefile @@ -1,6 +1,5 @@ ## Add your own custom Makefile targets here -JENA_PATH=~/apache-jena/bin/ RUN=poetry run JENA_DIR=~/apache-jena/bin/ @@ -20,8 +19,8 @@ examples-clean: rm -rf examples/output mixs-yaml-clean: - rm -rf local/mixs_regen/mixs_subset_modified*yaml rm -rf src/schema/mixs.yaml + rm -rf local/mixs_regen/mixs_subset_modified*yaml rdf-clean: rm -rf \ @@ -116,6 +115,7 @@ examples/output/Biosample-exhaustive_report.yaml: src/data/valid/Biosample-exhas --schema-path src/schema/nmdc.yaml examples/output/Pooling-minimal-report.yaml: src/data/valid/Pooling-minimal.yaml + mkdir -p $(@D) # create parent directory poetry run exhaustion-check \ --class-name Pooling \ --instance-yaml-file $< \ diff --git a/pyproject.toml b/pyproject.toml index a58809bf88..50149aebcd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -44,6 +44,7 @@ packages = [ ] [tool.poetry.dependencies] # having trouble with mkdocs in docker esp on linux. addits its ecosystem here may be unnecessary +python = "^3.9" linkml = "^1.7.10" linkml-runtime = "^1.7.7" mkdocs = "^1.4.2" @@ -51,7 +52,6 @@ mkdocs-material = "^9.0.12" mkdocs-mermaid2-plugin = "^0.6.0" mkdocs-redirects = "^1.2.1" pymongo = "^4.7.2" -python = "^3.9" [tool.poetry.group.dev.dependencies] # are some of these actually required as non-dev dependencies? # cruft for cookiecutter update could be installed with pipx? diff --git a/src/data/valid/Database-gen_from_omics.yaml b/src/data/valid/Database-gen_from_omics.yaml index a9b84ccc7b..951367c1af 100644 --- a/src/data/valid/Database-gen_from_omics.yaml +++ b/src/data/valid/Database-gen_from_omics.yaml @@ -25,7 +25,5 @@ omics_processing_set: - nmdc:sty-00-123456 processing_institution: JGI type: nmdc:OmicsProcessing - seq_meth: - has_raw_value: xxx diff --git a/src/data/valid/Database-multiple-paths.yaml b/src/data/valid/Database-multiple-paths.yaml index e26142d7f8..19d546da11 100644 --- a/src/data/valid/Database-multiple-paths.yaml +++ b/src/data/valid/Database-multiple-paths.yaml @@ -50,5 +50,3 @@ omics_processing_set: - nmdc:sty-00-123456 processing_institution: JGI type: nmdc:OmicsProcessing - seq_meth: - has_raw_value: xxx diff --git a/src/data/valid/Database-neon_Biosample_to_DataObject_NEON.yaml b/src/data/valid/Database-neon_Biosample_to_DataObject_NEON.yaml index ee6feb698a..e7b4037cab 100644 --- a/src/data/valid/Database-neon_Biosample_to_DataObject_NEON.yaml +++ b/src/data/valid/Database-neon_Biosample_to_DataObject_NEON.yaml @@ -105,8 +105,6 @@ omics_processing_set: - nmdc:sty-11-34xj1150 processing_institution: Battelle type: nmdc:OmicsProcessing - seq_meth: - has_raw_value: xxx read_qc_analysis_activity_set: - id: nmdc:wfrqc-12-63da5n74.1 name: 'TEST Read QC Activity for nmdc:wfrqc-12-63da5n74.1 ' diff --git a/src/data/valid/Database-nmdc-example.yaml b/src/data/valid/Database-nmdc-example.yaml index a26e7f1947..2524c305ce 100644 --- a/src/data/valid/Database-nmdc-example.yaml +++ b/src/data/valid/Database-nmdc-example.yaml @@ -84,8 +84,6 @@ omics_processing_set: - nmdc:sty-00-31415 processing_institution: JGI type: nmdc:OmicsProcessing - seq_meth: - has_raw_value: xxx - id: nmdc:omprc-99-dk9vgI alternative_identifiers: - gold:Gp0208560 @@ -105,10 +103,6 @@ omics_processing_set: - nmdc:sty-00-8675309 processing_institution: JGI type: nmdc:OmicsProcessing - seq_meth: - has_raw_value: xxx - seq_meth: - has_raw_value: xxx - id: nmdc:omprc-99-MVW1FV alternative_identifiers: - gold:Gp0306221 @@ -130,8 +124,6 @@ omics_processing_set: - nmdc:sty-00-avacado processing_institution: JGI type: nmdc:OmicsProcessing - seq_meth: - has_raw_value: xxx biosample_set: - id: nmdc:bsm-99-isqhuW gold_biosample_identifiers: diff --git a/src/data/valid/Database-omics-processings.yaml b/src/data/valid/Database-omics-processings.yaml index 0c2b16be3c..a973bc36ab 100644 --- a/src/data/valid/Database-omics-processings.yaml +++ b/src/data/valid/Database-omics-processings.yaml @@ -18,8 +18,6 @@ omics_processing_set: - nmdc:sty-00-123456 processing_institution: JGI type: nmdc:OmicsProcessing - seq_meth: - has_raw_value: xxx - id: nmdc:omprc-99-gKlQlF alternative_identifiers: - gold:Gp0108340 @@ -39,8 +37,6 @@ omics_processing_set: - nmdc:sty-00-123456 processing_institution: JGI type: nmdc:OmicsProcessing - seq_meth: - has_raw_value: xxx - id: nmdc:omprc-99-5kgIJR alternative_identifiers: - gold:Gp0108341 @@ -60,5 +56,3 @@ omics_processing_set: - nmdc:sty-00-123456 processing_institution: JGI type: nmdc:OmicsProcessing - seq_meth: - has_raw_value: xxx diff --git a/src/data/valid/OmicsProcessing-1.yaml b/src/data/valid/OmicsProcessing-1.yaml index 17b2119415..5a576809b6 100644 --- a/src/data/valid/OmicsProcessing-1.yaml +++ b/src/data/valid/OmicsProcessing-1.yaml @@ -17,5 +17,3 @@ part_of: - nmdc:sty-00-123456 processing_institution: JGI type: nmdc:OmicsProcessing -seq_meth: - has_raw_value: xxx diff --git a/src/data/valid/OmicsProcessing-ndsdc-bioproject.yaml b/src/data/valid/OmicsProcessing-ndsdc-bioproject.yaml index bedf81af2b..52a71c282c 100644 --- a/src/data/valid/OmicsProcessing-ndsdc-bioproject.yaml +++ b/src/data/valid/OmicsProcessing-ndsdc-bioproject.yaml @@ -19,5 +19,3 @@ part_of: - nmdc:sty-00-123456 processing_institution: JGI type: nmdc:OmicsProcessing -seq_meth: - has_raw_value: xxx diff --git a/src/data/valid/OmicsProcessing-processing-institution.yaml b/src/data/valid/OmicsProcessing-processing-institution.yaml index 57413ccc19..2d176e51fb 100644 --- a/src/data/valid/OmicsProcessing-processing-institution.yaml +++ b/src/data/valid/OmicsProcessing-processing-institution.yaml @@ -17,5 +17,3 @@ part_of: - nmdc:sty-00-123456 processing_institution: UCD_Genome_Center type: nmdc:OmicsProcessing -seq_meth: - has_raw_value: xxx From b4e7709852098ce575b8698ccf6ab50a92650f17 Mon Sep 17 00:00:00 2001 From: "Mark A. Miller" Date: Wed, 17 Jul 2024 15:19:30 -0400 Subject: [PATCH 4/9] more decisve removals as opposed tom commenting out --- assets/yq-for-mixs_subset_modified.txt | 3 --- nmdc_schema/nmdc.py | 19 +------------------ project.Makefile | 1 + src/schema/core.yaml | 6 ------ src/schema/mixs.yaml | 6 ------ src/schema/nmdc.yaml | 13 ------------- 6 files changed, 2 insertions(+), 46 deletions(-) diff --git a/assets/yq-for-mixs_subset_modified.txt b/assets/yq-for-mixs_subset_modified.txt index 9903b1a254..45d1a8b38f 100644 --- a/assets/yq-for-mixs_subset_modified.txt +++ b/assets/yq-for-mixs_subset_modified.txt @@ -48,7 +48,6 @@ '.slots.herbicide_regm.range |= "TextValue"' '.slots.host_body_product.range |= "ControlledTermValue"' '.slots.host_body_site.range |= "ControlledTermValue"' -'.slots.host_family_relation.range |= "string"' '.slots.host_phenotype.range |= "ControlledTermValue"' '.slots.host_subspecf_genlin.range |= "string"' '.slots.host_symbiont.range |= "string"' @@ -101,8 +100,6 @@ '.slots.root_med_regl.range |= "TextValue"' '.slots.root_med_suppl.range |= "TextValue"' '.slots.salt_regm.range |= "TextValue"' -'.slots.samp_collec_device.range |= "string"' -'.slots.samp_collec_method.range |= "string"' '.slots.samp_loc_corr_rate.range |= "TextValue"' '.slots.samp_mat_process.range |= "ControlledTermValue"' '.slots.samp_md.range |= "QuantityValue"' diff --git a/nmdc_schema/nmdc.py b/nmdc_schema/nmdc.py index 6ddf49bc6f..25c3eeefaf 100644 --- a/nmdc_schema/nmdc.py +++ b/nmdc_schema/nmdc.py @@ -1,5 +1,5 @@ # Auto generated from nmdc.yaml by pythongen.py version: 0.0.1 -# Generation date: 2024-07-17T15:01:35 +# Generation date: 2024-07-17T15:17:22 # Schema: NMDC # # id: https://w3id.org/nmdc/nmdc @@ -1407,8 +1407,6 @@ class Biosample(MaterialEntity): salinity: Optional[Union[dict, "TextValue"]] = None salt_regm: Optional[Union[Union[dict, "TextValue"], List[Union[dict, "TextValue"]]]] = empty_list() samp_capt_status: Optional[Union[str, "SAMPCAPTSTATUSENUM"]] = None - samp_collec_device: Optional[str] = None - samp_collec_method: Optional[str] = None samp_collect_point: Optional[Union[str, "SAMPCOLLECTPOINTENUM"]] = None samp_dis_stage: Optional[Union[str, "SAMPDISSTAGEENUM"]] = None samp_floor: Optional[str] = None @@ -2785,12 +2783,6 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.samp_capt_status is not None and not isinstance(self.samp_capt_status, SAMPCAPTSTATUSENUM): self.samp_capt_status = SAMPCAPTSTATUSENUM(self.samp_capt_status) - if self.samp_collec_device is not None and not isinstance(self.samp_collec_device, str): - self.samp_collec_device = str(self.samp_collec_device) - - if self.samp_collec_method is not None and not isinstance(self.samp_collec_method, str): - self.samp_collec_method = str(self.samp_collec_method) - if self.samp_collect_point is not None and not isinstance(self.samp_collect_point, SAMPCOLLECTPOINTENUM): self.samp_collect_point = SAMPCOLLECTPOINTENUM(self.samp_collect_point) @@ -10690,15 +10682,6 @@ class slots: model_uri=NMDC.xylene, domain=None, range=Optional[Union[dict, TextValue]], pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) -slots.host_family_relation = Slot(uri=MIXS.host_family_relation, name="host_family_relation", curie=MIXS.curie('host_family_relation'), - model_uri=NMDC.host_family_relation, domain=None, range=Optional[str]) - -slots.samp_collec_device = Slot(uri=MIXS.samp_collec_device, name="samp_collec_device", curie=MIXS.curie('samp_collec_device'), - model_uri=NMDC.samp_collec_device, domain=None, range=Optional[str]) - -slots.samp_collec_method = Slot(uri=MIXS.samp_collec_method, name="samp_collec_method", curie=MIXS.curie('samp_collec_method'), - model_uri=NMDC.samp_collec_method, domain=None, range=Optional[str]) - slots.emsl_store_temp = Slot(uri=NMDC.emsl_store_temp, name="emsl_store_temp", curie=NMDC.curie('emsl_store_temp'), model_uri=NMDC.emsl_store_temp, domain=None, range=Optional[str]) diff --git a/project.Makefile b/project.Makefile index 79f82fbe19..079e173e50 100644 --- a/project.Makefile +++ b/project.Makefile @@ -279,6 +279,7 @@ local/biosample-slot-range-type-report.tsv: src/schema/nmdc.yaml --output $@ \ --schema-class Biosample + ## FUSEKI, DOCKER, ETC # we use Apache's Jena RDF/SPARQL framework # Jena provides command line tools for accessing RDF *files* diff --git a/src/schema/core.yaml b/src/schema/core.yaml index 9fe994e68e..bcb8fa1608 100644 --- a/src/schema/core.yaml +++ b/src/schema/core.yaml @@ -28,12 +28,6 @@ default_prefix: nmdc default_range: string -subsets: -# environment: { } -# investigation: { } -# nucleic acid sequence source: { } -# sequencing: { } - types: bytes: diff --git a/src/schema/mixs.yaml b/src/schema/mixs.yaml index e71e4acdd7..05a340be6b 100644 --- a/src/schema/mixs.yaml +++ b/src/schema/mixs.yaml @@ -8463,10 +8463,4 @@ slots: syntax: ^{scientific_float}( *- *{scientific_float})? *{text}$ interpolated: true partial_match: true - host_family_relation: - range: string - samp_collec_device: - range: string - samp_collec_method: - range: string source_file: assets/other_mixs_yaml_files/mixs_template.yaml diff --git a/src/schema/nmdc.yaml b/src/schema/nmdc.yaml index d144a7e650..c72c21c90f 100644 --- a/src/schema/nmdc.yaml +++ b/src/schema/nmdc.yaml @@ -583,7 +583,6 @@ classes: - collection_date - conduc - cool_syst_id - # - core field - crop_rotation - cult_root_med - cur_land_use @@ -632,7 +631,6 @@ classes: - env_local_scale - env_medium - env_package - # - environment field - escalator - ethylbenzene - exp_duct @@ -699,7 +697,6 @@ classes: - host_common_name - host_diet - host_dry_mass - # - host_family_relation - host_genotype - host_growth_cond - host_height @@ -724,7 +721,6 @@ classes: - inorg_particles - inside_lux - int_wall_cond - # - investigation field - iw_bt_date_well - iwf - last_clean @@ -761,7 +757,6 @@ classes: - non_min_nutr_regm - nucl_acid_amp - nucl_acid_ext - # - nucleic acid sequence source field - number_pets - number_plants - number_resident @@ -849,11 +844,8 @@ classes: - root_med_solid - root_med_suppl - salinity - # - salinity_meth - salt_regm - samp_capt_status - - samp_collec_device # todo legacy - - samp_collec_method # todo legacy - samp_collect_point - samp_dis_stage - samp_floor @@ -904,7 +896,6 @@ classes: - sludge_retent_time - sodium - soil_horizon - # - soil_text_measure - soil_texture_meth - soil_type - soil_type_meth @@ -1043,7 +1034,6 @@ classes: - humidity_regm - light_regm - phosphate - # - samp_collec_method - samp_size - source_mat_id - watering_regm @@ -1343,9 +1333,6 @@ classes: - value: 5 mg N/ L todos: - check description. How are they different? - # salinity_meth: - # examples: - # - value: https://doi.org/10.1007/978-1-61779-986-0_28 sieving: comments: - Describe how samples were composited or sieved. From fd65049906efc22b9287c9d7c4129154e5ada8fc Mon Sep 17 00:00:00 2001 From: "Mark A. Miller" Date: Wed, 17 Jul 2024 15:25:01 -0400 Subject: [PATCH 5/9] remove temporary fixes --- src/data/problem/Biosample-exhasutive.yaml | 10 ---------- src/schema/nmdc.yaml | 1 - tests/test_biosample_instantiation.py | 4 ---- tests/test_field_research_site.py | 6 +----- 4 files changed, 1 insertion(+), 20 deletions(-) diff --git a/src/data/problem/Biosample-exhasutive.yaml b/src/data/problem/Biosample-exhasutive.yaml index 87fa19ef51..93a8062b64 100644 --- a/src/data/problem/Biosample-exhasutive.yaml +++ b/src/data/problem/Biosample-exhasutive.yaml @@ -274,8 +274,6 @@ redox_potential: has_raw_value: 300 millivolt salinity: has_raw_value: 25 practical salinity unit -#salinity_meth: -# has_raw_value: PMID:22895776 samp_mat_process: has_raw_value: filtering of seawater samp_store_dur: @@ -375,9 +373,6 @@ light_regm: phosphate: has_raw_value: 0.7 micromole per liter -#samp_collec_method: -# has_raw_value: swabbing -#samp_collec_method: swabbing samp_size: has_raw_value: 5 liters source_mat_id: @@ -563,8 +558,6 @@ host_diet: - has_raw_value: xxx host_dry_mass: has_raw_value: xxx -#host_family_relation: -# - xxx host_genotype: has_raw_value: xxx host_growth_cond: @@ -841,7 +834,6 @@ root_med_suppl: salt_regm: - has_raw_value: xxx samp_capt_status: other -#samp_collec_device: xxx samp_collect_point: well samp_dis_stage: dissemination @@ -914,8 +906,6 @@ sludge_retent_time: has_raw_value: xxx soil_horizon: O horizon -#soil_text_measure: -# has_raw_value: xxx soil_texture_meth: xxx solar_irradiance: diff --git a/src/schema/nmdc.yaml b/src/schema/nmdc.yaml index c72c21c90f..adbd074fca 100644 --- a/src/schema/nmdc.yaml +++ b/src/schema/nmdc.yaml @@ -879,7 +879,6 @@ classes: - sediment_type - seq_meth - seq_quality_check - # - sequencing field - sewage_type - shad_dev_water_mold - shading_device_cond diff --git a/tests/test_biosample_instantiation.py b/tests/test_biosample_instantiation.py index 8ced3bdd37..9016482b8d 100644 --- a/tests/test_biosample_instantiation.py +++ b/tests/test_biosample_instantiation.py @@ -9,8 +9,6 @@ class TestBiosampleInstantiation(unittest.TestCase): - # @unittest.skip( - # "why is abs_air_humidity required? moving away from unit tests an instantiation test in gneeral anyway") def test_with_part_of(self): self.assertTrue(True) @@ -23,7 +21,6 @@ def test_with_part_of(self): env_broad_scale=ControlledIdentifiedTermValue(term=OntologyClass(id="ENVO:00000000")), env_local_scale=ControlledIdentifiedTermValue(term=OntologyClass(id="ENVO:00000000")), env_medium=ControlledIdentifiedTermValue(term=OntologyClass(id="ENVO:00000000")), - samp_name="xxx", ) def test_invalid_biosample(self): @@ -34,7 +31,6 @@ def test_invalid_biosample(self): env_broad_scale=ControlledTermValue(), env_local_scale=ControlledTermValue(), env_medium=ControlledTermValue(), - samp_name="xxx", ) diff --git a/tests/test_field_research_site.py b/tests/test_field_research_site.py index 97e19dc5f4..e682ebef31 100644 --- a/tests/test_field_research_site.py +++ b/tests/test_field_research_site.py @@ -1,16 +1,12 @@ import unittest -from nmdc_schema.nmdc import FieldResearchSite, TextValue, GeolocationValue +from nmdc_schema.nmdc import FieldResearchSite class TestBiosampleInstantiation(unittest.TestCase): def test_with_part_of(self): frs = FieldResearchSite( id="frs:1", - geo_loc_name=TextValue(has_raw_value="USA, California, Stockton"), - lat_lon=GeolocationValue( - latitude=37.9577, - longitude=-121.2908) ) self.assertIsNotNone(frs) From d4b37a9f05a7788ff01e7c7c9877f23ce6bff302 Mon Sep 17 00:00:00 2001 From: "Mark A. Miller" Date: Wed, 17 Jul 2024 15:26:19 -0400 Subject: [PATCH 6/9] one line frs instantiation --- tests/test_field_research_site.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/tests/test_field_research_site.py b/tests/test_field_research_site.py index e682ebef31..793cfea976 100644 --- a/tests/test_field_research_site.py +++ b/tests/test_field_research_site.py @@ -5,9 +5,7 @@ class TestBiosampleInstantiation(unittest.TestCase): def test_with_part_of(self): - frs = FieldResearchSite( - id="frs:1", - ) + frs = FieldResearchSite(id="frs:1", ) self.assertIsNotNone(frs) From d2bfcf1f25241778e959696e20e14e25b03af18d Mon Sep 17 00:00:00 2001 From: "Mark A. Miller" Date: Wed, 17 Jul 2024 15:27:57 -0400 Subject: [PATCH 7/9] talk to @eecavanna about schema length doc tests --- nmdc_schema/nmdc_data.py | 8 -------- 1 file changed, 8 deletions(-) diff --git a/nmdc_schema/nmdc_data.py b/nmdc_schema/nmdc_data.py index a4a8d149af..afc825a37a 100755 --- a/nmdc_schema/nmdc_data.py +++ b/nmdc_schema/nmdc_data.py @@ -118,10 +118,6 @@ def get_nmdc_jsonschema_bytes(variant: Optional[SchemaVariantIdentifier] = None) True """ - # # removed - # >>> len(bytes_b) > len(bytes_a) # assumes that including structured patterns makes the file larger - # True - nmdc_json = get_nmdc_jsonschema_bytesIO(variant=variant) return nmdc_json.getvalue() @@ -143,10 +139,6 @@ def get_nmdc_jsonschema_string(variant: Optional[SchemaVariantIdentifier] = None """ - # # removed - # >>> len(str_b) > len(str_a) # assumes that including structured patterns makes the file larger - # True - nmdc_json = get_nmdc_jsonschema_bytes(variant=variant) return nmdc_json.decode("utf-8") From 74cf8e6f135b645ed2beecd3faaa941ac8c1d9fd Mon Sep 17 00:00:00 2001 From: "Mark A. Miller" Date: Wed, 17 Jul 2024 15:57:01 -0400 Subject: [PATCH 8/9] add GSC's schema settings --- nmdc_schema/nmdc.py | 2 +- project.Makefile | 6 +++--- src/schema/nmdc.yaml | 25 +++++++++++++++++++++++++ 3 files changed, 29 insertions(+), 4 deletions(-) diff --git a/nmdc_schema/nmdc.py b/nmdc_schema/nmdc.py index 25c3eeefaf..7fab93c65f 100644 --- a/nmdc_schema/nmdc.py +++ b/nmdc_schema/nmdc.py @@ -1,5 +1,5 @@ # Auto generated from nmdc.yaml by pythongen.py version: 0.0.1 -# Generation date: 2024-07-17T15:17:22 +# Generation date: 2024-07-17T15:55:15 # Schema: NMDC # # id: https://w3id.org/nmdc/nmdc diff --git a/project.Makefile b/project.Makefile index 079e173e50..818cf3dab2 100644 --- a/project.Makefile +++ b/project.Makefile @@ -137,10 +137,10 @@ examples/output/Biosample-exhasutive-pretty-sorted.yaml: src/data/valid/Biosampl # todo compress large files # todo: switch to API method for getting collection names and stats: https://api.microbiomedata.org/nmdcschema/collection_stats # partially implemented -pure-export-and-validate: local/mongo_as_nmdc_database_validation.log +pure-export-and-validate: local/mongo_as_nmdc_database_validation.log.txt make-rdf: rdf-clean \ - local/mongo_as_nmdc_database_validation.log \ + local/mongo_as_nmdc_database_validation.log.txt \ local/mongo_as_nmdc_database_cuire_repaired.ttl \ local/mongo_as_nmdc_database_cuire_repaired_stamped.ttl # could omit rdf-clean. then this could build incrementally on top of pure-export-and-validate @@ -222,7 +222,7 @@ local/mongo_as_nmdc_database_rdf_safe.yaml: nmdc_schema/nmdc_materialized_patter --schema-path $(word 1,$^) \ --output-path $@ -.PRECIOUS: local/mongo_as_nmdc_database_validation.log +.PRECIOUS: local/mongo_as_nmdc_database_validation.log.txt local/mongo_as_nmdc_database_validation.log: nmdc_schema/nmdc_materialized_patterns.yaml local/mongo_as_nmdc_database_rdf_safe.yaml date # 5m57.559s without functional_annotation_agg or metaproteomics_analysis_activity_set diff --git a/src/schema/nmdc.yaml b/src/schema/nmdc.yaml index adbd074fca..9a2c4cd61d 100644 --- a/src/schema/nmdc.yaml +++ b/src/schema/nmdc.yaml @@ -122,6 +122,31 @@ settings: id_version: "(\\.[0-9]{1,})" id_locus: "(_[A-Za-z0-9_\\.-]+)?$" + country: ([^\s-]{1,2}|[^\s-]+.+[^\s-]+) # from https://github.com/GenomicsStandardsConsortium/mixs/blob/main/src/mixs/schema/mixs.yaml + parameters: ([^\s-]{1,2}|[^\s-]+.+[^\s-]+) + region: ([^\s-]{1,2}|[^\s-]+.+[^\s-]+) + room_name: ([^\s-]{1,2}|[^\s-]+.+[^\s-]+) + software: ([^\s-]{1,2}|[^\s-]+.+[^\s-]+) + specific_location: ([^\s-]{1,2}|[^\s-]+.+[^\s-]+) + storage_condition_type: ([^\s-]{1,2}|[^\s-]+.+[^\s-]+) + termLabel: ([^\s-]{1,2}|[^\s-]+.+[^\s-]+) + unit: ([^\s-]{1,2}|[^\s-]+.+[^\s-]+) + version: ([^\s-]{1,2}|[^\s-]+.+[^\s-]+) + DOI: ^doi:10.\d{2,9}/.*$ + NCBItaxon_id: NCBITaxon:\d+ + PMID: ^PMID:\d+$ + URL: ^https?:\/\/(?:www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b(?:[-a-zA-Z0-9()@:%_\+.~#?&\/=]*)$ + adapter: '[ACGTRKSYMWBHDVN]+' + ambiguous_nucleotides: '[ACGTRKSYMWBHDVN]+' + duration: P(?:(?:\d+D|\d+M(?:\d+D)?|\d+Y(?:\d+M(?:\d+D)?)?)(?:T(?:\d+H(?:\d+M(?:\d+S)?)?|\d+M(?:\d+S)?|\d+S))?|T(?:\d+H(?:\d+M(?:\d+S)?)?|\d+M(?:\d+S)?|\d+S)|\d+W) + float: '[-+]?[0-9]*\.?[0-9]+' + integer: '[1-9][0-9]*' + lat: (-?((?:[0-8]?[0-9](?:\.\d{0,8})?)|90)) + lon: -?[0-9]+(?:\.[0-9]{0,8})?$|^-?(1[0-7]{1,2}) + room_number: '[1-9][0-9]*' + scientific_float: '[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?' + termID: '[a-zA-Z]{2,}:[a-zA-Z0-9]\d+' + subsets: sample subset: description: From 9c9f652097b8e2f60e0bc7bfb8162fce6a5e2572 Mon Sep 17 00:00:00 2001 From: "Mark A. Miller" Date: Thu, 18 Jul 2024 12:45:08 -0400 Subject: [PATCH 9/9] today's data in MongoDB passes make-rdf --- .../mixs_slots_import_sheet.tsv | 1 + .../other_mixs_yaml_files/mixs_template.yaml | 1 - assets/yq-for-mixs_subset_modified.txt | 72 +++- nmdc_schema/nmdc.py | 408 +++++++++--------- project.Makefile | 69 +-- src/schema/mixs.yaml | 179 +++----- src/schema/nmdc.yaml | 4 +- 7 files changed, 375 insertions(+), 359 deletions(-) diff --git a/assets/other_mixs_yaml_files/mixs_slots_import_sheet.tsv b/assets/other_mixs_yaml_files/mixs_slots_import_sheet.tsv index 0210d6e4f8..108985774f 100644 --- a/assets/other_mixs_yaml_files/mixs_slots_import_sheet.tsv +++ b/assets/other_mixs_yaml_files/mixs_slots_import_sheet.tsv @@ -482,3 +482,4 @@ MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2 MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml window_vert_pos placeholder_class MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml window_water_mold placeholder_class MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml xylene placeholder_class +MimsSoil https://raw.githubusercontent.com/GenomicsStandardsConsortium/mixs/v6.2.0/src/mixs/schema/mixs.yaml samp_collect_method placeholder_class \ No newline at end of file diff --git a/assets/other_mixs_yaml_files/mixs_template.yaml b/assets/other_mixs_yaml_files/mixs_template.yaml index eeb092caaa..81091624e9 100644 --- a/assets/other_mixs_yaml_files/mixs_template.yaml +++ b/assets/other_mixs_yaml_files/mixs_template.yaml @@ -5,7 +5,6 @@ id: https://w3id.org/nmdc/mixs subsets: mixs_environmental_triad: title: MIxS Environmental Triad - mixs extension: { } notes: - removed several MIxS terms/slots that were sharing slot uris; commented out Biosample assignments diff --git a/assets/yq-for-mixs_subset_modified.txt b/assets/yq-for-mixs_subset_modified.txt index 45d1a8b38f..c5186d6898 100644 --- a/assets/yq-for-mixs_subset_modified.txt +++ b/assets/yq-for-mixs_subset_modified.txt @@ -1,28 +1,46 @@ + +'.slots.abs_air_humidity.range |= "QuantityValue"' '.slots.agrochem_addition.range |= "TextValue"' '.slots.air_temp_regm.range |= "TextValue"' +'.slots.ammonium.range |= "QuantityValue"' '.slots.antibiotic_regm.range |= "TextValue"' '.slots.aromatics_pc.range |= "TextValue"' '.slots.asphaltenes_pc.range |= "TextValue"' '.slots.atmospheric_data.range |= "TextValue"' '.slots.avg_occup.range |= "TextValue"' +'.slots.avg_temp.range |= "QuantityValue"' '.slots.bathroom_count.range |= "TextValue"' '.slots.bedroom_count.range |= "TextValue"' '.slots.biocide_admin_method.range |= "TextValue"' '.slots.biomass.range |= "TextValue"' +'.slots.calcium.range |= "QuantityValue"' +'.slots.carb_nitro_ratio.range |= "QuantityValue"' '.slots.chem_administration.range |= "ControlledTermValue"' '.slots.chem_mutagen.range |= "TextValue"' '.slots.chem_treat_method.range |= "string"' +'.slots.chloride.range |= "QuantityValue"' +'.slots.chlorophyll.range |= "QuantityValue"' '.slots.collection_date.range |= "TimestampValue"' +'.slots.conduc.range |= "QuantityValue"' '.slots.cool_syst_id.range |= "TextValue"' +'.slots.cur_vegetation.range |= "QuantityValue"' +'.slots.cur_vegetation.range |= "TextValue"' '.slots.date_last_rain.range |= "TimestampValue"' +'.slots.depth.range |= "QuantityValue"' '.slots.diether_lipids.range |= "TextValue"' +'.slots.diss_inorg_carb.range |= "QuantityValue"' +'.slots.diss_inorg_nitro.range |= "QuantityValue"' +'.slots.diss_iron.range |= "QuantityValue"' +'.slots.diss_org_carb.range |= "QuantityValue"' +'.slots.diss_oxygen.range |= "QuantityValue"' '.slots.elevator.range |= "TextValue"' '.slots.emulsions.range |= "TextValue"' '.slots.env_broad_scale.range |= "ControlledIdentifiedTermValue"' '.slots.env_local_scale.range |= "ControlledIdentifiedTermValue"' -'.slots.env_medium.range |= "ControlledIdentifiedTermValue"' +'.slots.env_medium.range |= "ControlledIdentifiedTermValue"' '.slots.escalator.range |= "TextValue"' '.slots.exp_pipe.range |= "QuantityValue"' +'.slots.experimental_factor.multivalued |= false' '.slots.experimental_factor.range |= "ControlledTermValue"' '.slots.ext_door.range |= "TextValue"' '.slots.extreme_event.range |= "TimestampValue"' @@ -35,6 +53,7 @@ '.slots.fungicide_regm.range |= "TextValue"' '.slots.gaseous_environment.range |= "TextValue"' '.slots.gaseous_substances.range |= "TextValue"' +'.slots.gravidity.range |= "TextValue"' '.slots.gravity.range |= "TextValue"' '.slots.growth_facil.range |= "ControlledTermValue"' '.slots.growth_hormone_regm.range |= "TextValue"' @@ -46,40 +65,52 @@ '.slots.heat_system_id.range |= "TextValue"' '.slots.heavy_metals.range |= "TextValue"' '.slots.herbicide_regm.range |= "TextValue"' +'.slots.host_age.range |= "QuantityValue"' '.slots.host_body_product.range |= "ControlledTermValue"' '.slots.host_body_site.range |= "ControlledTermValue"' +'.slots.host_dry_mass.range |= "QuantityValue"' +'.slots.host_height.range |= "QuantityValue"' +'.slots.host_life_stage.range |= "TextValue"' '.slots.host_phenotype.range |= "ControlledTermValue"' '.slots.host_subspecf_genlin.range |= "string"' '.slots.host_symbiont.range |= "string"' +'.slots.humidity.range |= "QuantityValue"' '.slots.humidity_regm.range |= "TextValue"' '.slots.inorg_particles.range |= "TextValue"' '.slots.iw_bt_date_well.range |= "TimestampValue"' '.slots.last_clean.range |= "TimestampValue"' '.slots.lat_lon.range |= "GeolocationValue"' '.slots.light_regm.range |= "TextValue"' +'.slots.magnesium.range |= "QuantityValue"' '.slots.max_occup.range |= "QuantityValue"' '.slots.micro_biomass_meth.range |= "string"' '.slots.mineral_nutr_regm.range |= "TextValue"' '.slots.misc_param.range |= "TextValue"' '.slots.n_alkanes.range |= "TextValue"' +'.slots.nitrate.range |= "QuantityValue"' +'.slots.nitro.range |= "QuantityValue"' '.slots.non_min_nutr_regm.range |= "string"' '.slots.number_pets.range |= "QuantityValue"' '.slots.number_plants.range |= "QuantityValue"' '.slots.number_resident.range |= "QuantityValue"' '.slots.occup_density_samp.range |= "QuantityValue"' '.slots.occup_samp.range |= "QuantityValue"' +'.slots.org_carb.range |= "QuantityValue"' '.slots.org_count_qpcr_info.range |= "string"' '.slots.org_particles.range |= "TextValue"' '.slots.organism_count.range |= "QuantityValue"' '.slots.particle_class.range |= "TextValue"' '.slots.permeability.range |= "TextValue"' +'.slots.perturbation.range |= "TextValue"' '.slots.pesticide_regm.range |= "TextValue"' '.slots.phaeopigments.range |= "TextValue"' '.slots.phosplipid_fatt_acid.range |= "TextValue"' +'.slots.photon_flux.range |= "QuantityValue"' '.slots.plant_growth_med.range |= "ControlledTermValue"' '.slots.plant_struc.range |= "ControlledTermValue"' '.slots.pollutants.range |= "TextValue"' '.slots.porosity.range |= "TextValue"' +'.slots.potassium.range |= "QuantityValue"' '.slots.pres_animal_insect.range |= "string"' '.slots.prev_land_use_meth.range |= "string"' '.slots.prod_start_date.range |= "TimestampValue"' @@ -106,6 +137,8 @@ '.slots.samp_name.range |= "string"' '.slots.samp_preserv.range |= "TextValue"' '.slots.samp_room_id.range |= "TextValue"' +'.slots.samp_size.range |= "QuantityValue"' +'.slots.samp_store_temp.range |= "QuantityValue"' '.slots.samp_time_out.range |= "TextValue"' '.slots.samp_transport_cond.range |= "TextValue"' '.slots.samp_tvdss.range |= "TextValue"' @@ -113,16 +146,31 @@ '.slots.shad_dev_water_mold.range |= "string"' '.slots.sieving.range |= "TextValue"' '.slots.size_frac.range |= "TextValue"' +'.slots.sodium.range |= "QuantityValue"' '.slots.soil_texture_meth.range |= "string"' +'.slots.solar_irradiance.multivalued |= false' +'.slots.solar_irradiance.range |= "QuantityValue"' '.slots.soluble_inorg_mat.range |= "TextValue"' '.slots.soluble_org_mat.range |= "TextValue"' +'.slots.soluble_react_phosp.range |= "QuantityValue"' +'.slots.source_mat_id.multivalued |= false' +'.slots.source_mat_id.range |= "TextValue"' +'.slots.store_cond.range |= "TextValue"' +'.slots.sulfate.range |= "QuantityValue"' '.slots.suspend_solids.range |= "TextValue"' +'.slots.temp.range |= "QuantityValue"' +'.slots.tot_carb.range |= "QuantityValue"' +'.slots.tot_nitro.range |= "QuantityValue"' '.slots.tot_nitro_cont_meth.range |= "string"' +'.slots.tot_nitro_content.range |= "QuantityValue"' +'.slots.tot_org_carb.range |= "QuantityValue"' +'.slots.tot_phosp.range |= "QuantityValue"' '.slots.viscosity.range |= "TextValue"' '.slots.volatile_org_comp.range |= "TextValue"' '.slots.water_cont_soil_meth.range |= "string"' '.slots.water_temp_regm.range |= "TextValue"' '.slots.watering_regm.range |= "TextValue"' +'.slots.wind_speed.range |= "QuantityValue"' '.slots.window_open_freq.range |= "TextValue"' '.slots.window_size.range |= "TextValue"' @@ -166,3 +214,25 @@ make: *** [Makefile:102: gen-project] Error 1 '.slots.water_content.range |= "string"' 'del(.slots[].required)' +'del(.slots[].in_subset)' +'del(.subsets)' + +'.slots.samp_collec_method = .slots.samp_collect_method' +'.slots.samp_collec_method.notes += "cloned from MIxS 6.2 samp_collect_method"' +'del(.slots.samp_collect_method)' +'.slots.samp_collec_method.range |= "string"' +'del(.slots.samp_collec_method.pattern)' +'del(.slots.samp_collec_method.structured_pattern)' + +'.slots.samp_collec_device = .slots.samp_collect_device' +'.slots.samp_collec_device.notes += "cloned from MIxS 6.2 samp_collect_device"' +'del(.slots.samp_collect_device)' +'.slots.samp_collec_device.range |= "string"' +'del(.slots.samp_collec_device.pattern)' +'del(.slots.samp_collec_device.structured_pattern)' + +'del(.slots.micro_biomass_meth.pattern)' +'del(.slots.micro_biomass_meth.structured_pattern)' + +'del(.slots.water_content.pattern)' +'del(.slots.water_content.structured_pattern)' diff --git a/nmdc_schema/nmdc.py b/nmdc_schema/nmdc.py index 7fab93c65f..888b44f3da 100644 --- a/nmdc_schema/nmdc.py +++ b/nmdc_schema/nmdc.py @@ -1,5 +1,5 @@ # Auto generated from nmdc.yaml by pythongen.py version: 0.0.1 -# Generation date: 2024-07-17T15:55:15 +# Generation date: 2024-07-18T12:38:28 # Schema: NMDC # # id: https://w3id.org/nmdc/nmdc @@ -1054,6 +1054,8 @@ class Biosample(MaterialEntity): env_broad_scale: Union[dict, "ControlledIdentifiedTermValue"] = None env_local_scale: Union[dict, "ControlledIdentifiedTermValue"] = None env_medium: Union[dict, "ControlledIdentifiedTermValue"] = None + samp_collec_method: Optional[str] = None + samp_collec_device: Optional[str] = None neon_biosample_identifiers: Optional[Union[Union[str, ExternalIdentifier], List[Union[str, ExternalIdentifier]]]] = empty_list() host_taxid: Optional[Union[dict, "ControlledIdentifiedTermValue"]] = None embargoed: Optional[Union[bool, Bool]] = None @@ -1067,7 +1069,7 @@ class Biosample(MaterialEntity): insdc_biosample_identifiers: Optional[Union[Union[str, ExternalIdentifier], List[Union[str, ExternalIdentifier]]]] = empty_list() emsl_biosample_identifiers: Optional[Union[Union[str, ExternalIdentifier], List[Union[str, ExternalIdentifier]]]] = empty_list() igsn_biosample_identifiers: Optional[Union[Union[str, ExternalIdentifier], List[Union[str, ExternalIdentifier]]]] = empty_list() - abs_air_humidity: Optional[Union[dict, "TextValue"]] = None + abs_air_humidity: Optional[Union[dict, "QuantityValue"]] = None add_recov_method: Optional[str] = None additional_info: Optional[Union[dict, "TextValue"]] = None address: Optional[str] = None @@ -1084,7 +1086,7 @@ class Biosample(MaterialEntity): alkyl_diethers: Optional[Union[dict, "TextValue"]] = None alt: Optional[Union[dict, "TextValue"]] = None aminopept_act: Optional[Union[dict, "TextValue"]] = None - ammonium: Optional[Union[dict, "TextValue"]] = None + ammonium: Optional[Union[dict, "QuantityValue"]] = None ammonium_nitrogen: Optional[Union[dict, "QuantityValue"]] = None amount_light: Optional[Union[dict, "TextValue"]] = None ances_data: Optional[Union[dict, "TextValue"]] = None @@ -1098,7 +1100,7 @@ class Biosample(MaterialEntity): atmospheric_data: Optional[Union[Union[dict, "TextValue"], List[Union[dict, "TextValue"]]]] = empty_list() avg_dew_point: Optional[Union[dict, "TextValue"]] = None avg_occup: Optional[Union[dict, "TextValue"]] = None - avg_temp: Optional[Union[dict, "TextValue"]] = None + avg_temp: Optional[Union[dict, "QuantityValue"]] = None bac_prod: Optional[Union[dict, "TextValue"]] = None bac_resp: Optional[Union[dict, "TextValue"]] = None bacteria_carb_prod: Optional[Union[dict, "TextValue"]] = None @@ -1124,10 +1126,10 @@ class Biosample(MaterialEntity): built_struc_age: Optional[Union[dict, "TextValue"]] = None built_struc_set: Optional[Union[str, "BUILTSTRUCSETENUM"]] = None built_struc_type: Optional[Union[dict, "TextValue"]] = None - calcium: Optional[Union[dict, "TextValue"]] = None + calcium: Optional[Union[dict, "QuantityValue"]] = None carb_dioxide: Optional[Union[dict, "TextValue"]] = None carb_monoxide: Optional[Union[dict, "TextValue"]] = None - carb_nitro_ratio: Optional[float] = None + carb_nitro_ratio: Optional[Union[dict, "QuantityValue"]] = None ceil_area: Optional[Union[dict, "TextValue"]] = None ceil_cond: Optional[Union[str, "SHAREDENUM3"]] = None ceil_finish_mat: Optional[Union[str, "CEILFINISHMATENUM"]] = None @@ -1142,32 +1144,32 @@ class Biosample(MaterialEntity): chem_treat_method: Optional[str] = None chem_treatment: Optional[str] = None chimera_check: Optional[Union[dict, "TextValue"]] = None - chloride: Optional[Union[dict, "TextValue"]] = None - chlorophyll: Optional[Union[dict, "TextValue"]] = None + chloride: Optional[Union[dict, "QuantityValue"]] = None + chlorophyll: Optional[Union[dict, "QuantityValue"]] = None climate_environment: Optional[Union[Union[dict, "TextValue"], List[Union[dict, "TextValue"]]]] = empty_list() collection_date: Optional[Union[dict, "TimestampValue"]] = None - conduc: Optional[Union[dict, "TextValue"]] = None + conduc: Optional[Union[dict, "QuantityValue"]] = None cool_syst_id: Optional[Union[dict, "TextValue"]] = None crop_rotation: Optional[str] = None cult_root_med: Optional[str] = None cur_land_use: Optional[str] = None - cur_vegetation: Optional[str] = None + cur_vegetation: Optional[Union[dict, "TextValue"]] = None cur_vegetation_meth: Optional[Union[dict, "TextValue"]] = None date_last_rain: Optional[Union[dict, "TimestampValue"]] = None density: Optional[Union[dict, "TextValue"]] = None depos_env: Optional[Union[str, "DEPOSENVENUM"]] = None - depth: Optional[Union[dict, "TextValue"]] = None + depth: Optional[Union[dict, "QuantityValue"]] = None dew_point: Optional[Union[dict, "TextValue"]] = None diether_lipids: Optional[Union[Union[dict, "TextValue"], List[Union[dict, "TextValue"]]]] = empty_list() diss_carb_dioxide: Optional[Union[dict, "TextValue"]] = None diss_hydrogen: Optional[Union[dict, "TextValue"]] = None - diss_inorg_carb: Optional[Union[dict, "TextValue"]] = None - diss_inorg_nitro: Optional[Union[dict, "TextValue"]] = None + diss_inorg_carb: Optional[Union[dict, "QuantityValue"]] = None + diss_inorg_nitro: Optional[Union[dict, "QuantityValue"]] = None diss_inorg_phosp: Optional[Union[dict, "TextValue"]] = None - diss_iron: Optional[Union[dict, "TextValue"]] = None - diss_org_carb: Optional[Union[dict, "TextValue"]] = None + diss_iron: Optional[Union[dict, "QuantityValue"]] = None + diss_org_carb: Optional[Union[dict, "QuantityValue"]] = None diss_org_nitro: Optional[Union[dict, "TextValue"]] = None - diss_oxygen: Optional[Union[dict, "TextValue"]] = None + diss_oxygen: Optional[Union[dict, "QuantityValue"]] = None diss_oxygen_fluid: Optional[Union[dict, "TextValue"]] = None dna_cont_well: Optional[str] = None door_comp_type: Optional[Union[str, "DOORCOMPTYPEENUM"]] = None @@ -1197,7 +1199,7 @@ class Biosample(MaterialEntity): ethylbenzene: Optional[Union[dict, "TextValue"]] = None exp_duct: Optional[Union[dict, "TextValue"]] = None exp_pipe: Optional[Union[dict, "QuantityValue"]] = None - experimental_factor: Optional[Union[Union[dict, "ControlledTermValue"], List[Union[dict, "ControlledTermValue"]]]] = empty_list() + experimental_factor: Optional[Union[dict, "ControlledTermValue"]] = None ext_door: Optional[Union[dict, "TextValue"]] = None ext_wall_orient: Optional[Union[str, "SHAREDENUM0"]] = None ext_window_orient: Optional[Union[str, "SHAREDENUM0"]] = None @@ -1228,7 +1230,7 @@ class Biosample(MaterialEntity): genetic_mod: Optional[str] = None geo_loc_name: Optional[Union[dict, "TextValue"]] = None glucosidase_act: Optional[Union[dict, "TextValue"]] = None - gravidity: Optional[str] = None + gravidity: Optional[Union[dict, "TextValue"]] = None gravity: Optional[Union[Union[dict, "TextValue"], List[Union[dict, "TextValue"]]]] = empty_list() growth_facil: Optional[Union[dict, "ControlledTermValue"]] = None growth_habit: Optional[Union[str, "GROWTHHABITENUM"]] = None @@ -1250,7 +1252,7 @@ class Biosample(MaterialEntity): height_carper_fiber: Optional[Union[dict, "TextValue"]] = None herbicide_regm: Optional[Union[Union[dict, "TextValue"], List[Union[dict, "TextValue"]]]] = empty_list() horizon_meth: Optional[Union[dict, "TextValue"]] = None - host_age: Optional[Union[dict, "TextValue"]] = None + host_age: Optional[Union[dict, "QuantityValue"]] = None host_body_habitat: Optional[Union[dict, "TextValue"]] = None host_body_product: Optional[Union[dict, "ControlledTermValue"]] = None host_body_site: Optional[Union[dict, "ControlledTermValue"]] = None @@ -1258,13 +1260,13 @@ class Biosample(MaterialEntity): host_color: Optional[Union[dict, "TextValue"]] = None host_common_name: Optional[Union[dict, "TextValue"]] = None host_diet: Optional[Union[Union[dict, "TextValue"], List[Union[dict, "TextValue"]]]] = empty_list() - host_dry_mass: Optional[Union[dict, "TextValue"]] = None + host_dry_mass: Optional[Union[dict, "QuantityValue"]] = None host_genotype: Optional[Union[dict, "TextValue"]] = None host_growth_cond: Optional[Union[dict, "TextValue"]] = None - host_height: Optional[Union[dict, "TextValue"]] = None + host_height: Optional[Union[dict, "QuantityValue"]] = None host_last_meal: Optional[Union[str, List[str]]] = empty_list() host_length: Optional[Union[dict, "TextValue"]] = None - host_life_stage: Optional[str] = None + host_life_stage: Optional[Union[dict, "TextValue"]] = None host_phenotype: Optional[Union[dict, "ControlledTermValue"]] = None host_sex: Optional[str] = None host_shape: Optional[Union[dict, "TextValue"]] = None @@ -1274,7 +1276,7 @@ class Biosample(MaterialEntity): host_symbiont: Optional[Union[str, List[str]]] = empty_list() host_tot_mass: Optional[Union[dict, "TextValue"]] = None host_wet_mass: Optional[Union[dict, "TextValue"]] = None - humidity: Optional[Union[dict, "TextValue"]] = None + humidity: Optional[Union[dict, "QuantityValue"]] = None humidity_regm: Optional[Union[Union[dict, "TextValue"], List[Union[dict, "TextValue"]]]] = empty_list() indoor_space: Optional[Union[str, "INDOORSPACEENUM"]] = None indoor_surf: Optional[Union[str, "INDOORSURFENUM"]] = None @@ -1297,7 +1299,7 @@ class Biosample(MaterialEntity): lithology: Optional[Union[str, "LITHOLOGYENUM"]] = None local_class: Optional[str] = None local_class_meth: Optional[Union[dict, "TextValue"]] = None - magnesium: Optional[Union[dict, "TextValue"]] = None + magnesium: Optional[Union[dict, "QuantityValue"]] = None manganese: Optional[Union[dict, "QuantityValue"]] = None max_occup: Optional[Union[dict, "QuantityValue"]] = None mean_frict_vel: Optional[Union[dict, "TextValue"]] = None @@ -1310,11 +1312,11 @@ class Biosample(MaterialEntity): mineral_nutr_regm: Optional[Union[Union[dict, "TextValue"], List[Union[dict, "TextValue"]]]] = empty_list() misc_param: Optional[Union[Union[dict, "TextValue"], List[Union[dict, "TextValue"]]]] = empty_list() n_alkanes: Optional[Union[Union[dict, "TextValue"], List[Union[dict, "TextValue"]]]] = empty_list() - nitrate: Optional[Union[dict, "TextValue"]] = None + nitrate: Optional[Union[dict, "QuantityValue"]] = None nitrate_nitrogen: Optional[Union[dict, "QuantityValue"]] = None nitrite: Optional[Union[dict, "TextValue"]] = None nitrite_nitrogen: Optional[Union[dict, "QuantityValue"]] = None - nitro: Optional[Union[dict, "TextValue"]] = None + nitro: Optional[Union[dict, "QuantityValue"]] = None non_min_nutr_regm: Optional[Union[str, List[str]]] = empty_list() nucl_acid_amp: Optional[Union[dict, "TextValue"]] = None nucl_acid_ext: Optional[Union[dict, "TextValue"]] = None @@ -1324,7 +1326,7 @@ class Biosample(MaterialEntity): occup_density_samp: Optional[Union[dict, "QuantityValue"]] = None occup_document: Optional[Union[str, "OCCUPDOCUMENTENUM"]] = None occup_samp: Optional[Union[dict, "QuantityValue"]] = None - org_carb: Optional[Union[dict, "TextValue"]] = None + org_carb: Optional[Union[dict, "QuantityValue"]] = None org_count_qpcr_info: Optional[str] = None org_matter: Optional[Union[dict, "TextValue"]] = None org_nitro: Optional[Union[dict, "TextValue"]] = None @@ -1339,7 +1341,7 @@ class Biosample(MaterialEntity): pcr_cond: Optional[str] = None pcr_primers: Optional[str] = None permeability: Optional[Union[dict, "TextValue"]] = None - perturbation: Optional[Union[str, List[str]]] = empty_list() + perturbation: Optional[Union[Union[dict, "TextValue"], List[Union[dict, "TextValue"]]]] = empty_list() pesticide_regm: Optional[Union[Union[dict, "TextValue"], List[Union[dict, "TextValue"]]]] = empty_list() petroleum_hydrocarb: Optional[Union[dict, "TextValue"]] = None ph: Optional[float] = None @@ -1348,7 +1350,7 @@ class Biosample(MaterialEntity): phaeopigments: Optional[Union[Union[dict, "TextValue"], List[Union[dict, "TextValue"]]]] = empty_list() phosphate: Optional[Union[dict, "TextValue"]] = None phosplipid_fatt_acid: Optional[Union[Union[dict, "TextValue"], List[Union[dict, "TextValue"]]]] = empty_list() - photon_flux: Optional[Union[dict, "TextValue"]] = None + photon_flux: Optional[Union[dict, "QuantityValue"]] = None plant_growth_med: Optional[Union[dict, "ControlledTermValue"]] = None plant_product: Optional[str] = None plant_sex: Optional[Union[str, "PLANTSEXENUM"]] = None @@ -1356,7 +1358,7 @@ class Biosample(MaterialEntity): pollutants: Optional[Union[Union[dict, "TextValue"], List[Union[dict, "TextValue"]]]] = empty_list() pool_dna_extracts: Optional[str] = None porosity: Optional[Union[dict, "TextValue"]] = None - potassium: Optional[Union[dict, "TextValue"]] = None + potassium: Optional[Union[dict, "QuantityValue"]] = None pour_point: Optional[Union[dict, "TextValue"]] = None pre_treatment: Optional[str] = None pres_animal_insect: Optional[str] = None @@ -1415,11 +1417,11 @@ class Biosample(MaterialEntity): samp_md: Optional[Union[dict, "QuantityValue"]] = None samp_preserv: Optional[Union[dict, "TextValue"]] = None samp_room_id: Optional[Union[dict, "TextValue"]] = None - samp_size: Optional[Union[dict, "TextValue"]] = None + samp_size: Optional[Union[dict, "QuantityValue"]] = None samp_sort_meth: Optional[Union[Union[dict, "TextValue"], List[Union[dict, "TextValue"]]]] = empty_list() samp_store_dur: Optional[Union[dict, "TextValue"]] = None samp_store_loc: Optional[str] = None - samp_store_temp: Optional[Union[dict, "TextValue"]] = None + samp_store_temp: Optional[Union[dict, "QuantityValue"]] = None samp_subtype: Optional[Union[str, "SAMPSUBTYPEENUM"]] = None samp_taxon_id: Optional[Union[dict, "ControlledIdentifiedTermValue"]] = None samp_time_out: Optional[Union[dict, "TextValue"]] = None @@ -1453,16 +1455,16 @@ class Biosample(MaterialEntity): slope_aspect: Optional[Union[dict, "TextValue"]] = None slope_gradient: Optional[Union[dict, "TextValue"]] = None sludge_retent_time: Optional[Union[dict, "TextValue"]] = None - sodium: Optional[Union[dict, "TextValue"]] = None + sodium: Optional[Union[dict, "QuantityValue"]] = None soil_horizon: Optional[Union[str, "SOILHORIZONENUM"]] = None soil_texture_meth: Optional[str] = None soil_type: Optional[str] = None soil_type_meth: Optional[Union[dict, "TextValue"]] = None - solar_irradiance: Optional[Union[Union[dict, "TextValue"], List[Union[dict, "TextValue"]]]] = empty_list() + solar_irradiance: Optional[Union[dict, "QuantityValue"]] = None soluble_inorg_mat: Optional[Union[Union[dict, "TextValue"], List[Union[dict, "TextValue"]]]] = empty_list() soluble_org_mat: Optional[Union[Union[dict, "TextValue"], List[Union[dict, "TextValue"]]]] = empty_list() - soluble_react_phosp: Optional[Union[dict, "TextValue"]] = None - source_mat_id: Optional[Union[str, List[str]]] = empty_list() + soluble_react_phosp: Optional[Union[dict, "QuantityValue"]] = None + source_mat_id: Optional[Union[dict, "TextValue"]] = None space_typ_state: Optional[Union[str, "SPACETYPSTATEENUM"]] = None specific: Optional[Union[str, "SPECIFICENUM"]] = None specific_ecosystem: Optional[str] = None @@ -1472,9 +1474,9 @@ class Biosample(MaterialEntity): sr_kerog_type: Optional[Union[str, "SRKEROGTYPEENUM"]] = None sr_lithology: Optional[Union[str, "SRLITHOLOGYENUM"]] = None standing_water_regm: Optional[Union[Union[dict, "TextValue"], List[Union[dict, "TextValue"]]]] = empty_list() - store_cond: Optional[str] = None + store_cond: Optional[Union[dict, "TextValue"]] = None substructure_type: Optional[Union[Union[str, "SUBSTRUCTURETYPEENUM"], List[Union[str, "SUBSTRUCTURETYPEENUM"]]]] = empty_list() - sulfate: Optional[Union[dict, "TextValue"]] = None + sulfate: Optional[Union[dict, "QuantityValue"]] = None sulfate_fw: Optional[Union[dict, "TextValue"]] = None sulfide: Optional[Union[dict, "TextValue"]] = None surf_air_cont: Optional[Union[Union[str, "SURFAIRCONTENUM"], List[Union[str, "SURFAIRCONTENUM"]]]] = empty_list() @@ -1488,25 +1490,25 @@ class Biosample(MaterialEntity): tan: Optional[Union[dict, "TextValue"]] = None target_gene: Optional[Union[dict, "TextValue"]] = None target_subfragment: Optional[Union[dict, "TextValue"]] = None - temp: Optional[Union[dict, "TextValue"]] = None + temp: Optional[Union[dict, "QuantityValue"]] = None temp_out: Optional[Union[dict, "TextValue"]] = None tertiary_treatment: Optional[str] = None tidal_stage: Optional[Union[str, "TIDALSTAGEENUM"]] = None tillage: Optional[Union[Union[str, "TILLAGEENUM"], List[Union[str, "TILLAGEENUM"]]]] = empty_list() tiss_cult_growth_med: Optional[Union[dict, "TextValue"]] = None toluene: Optional[Union[dict, "TextValue"]] = None - tot_carb: Optional[Union[dict, "TextValue"]] = None + tot_carb: Optional[Union[dict, "QuantityValue"]] = None tot_depth_water_col: Optional[Union[dict, "TextValue"]] = None tot_diss_nitro: Optional[Union[dict, "TextValue"]] = None tot_inorg_nitro: Optional[Union[dict, "TextValue"]] = None tot_iron: Optional[Union[dict, "TextValue"]] = None - tot_nitro: Optional[Union[dict, "TextValue"]] = None + tot_nitro: Optional[Union[dict, "QuantityValue"]] = None tot_nitro_cont_meth: Optional[str] = None - tot_nitro_content: Optional[Union[dict, "TextValue"]] = None + tot_nitro_content: Optional[Union[dict, "QuantityValue"]] = None tot_org_c_meth: Optional[Union[dict, "TextValue"]] = None - tot_org_carb: Optional[Union[dict, "TextValue"]] = None + tot_org_carb: Optional[Union[dict, "QuantityValue"]] = None tot_part_carb: Optional[Union[dict, "TextValue"]] = None - tot_phosp: Optional[Union[dict, "TextValue"]] = None + tot_phosp: Optional[Union[dict, "QuantityValue"]] = None tot_phosphate: Optional[Union[dict, "TextValue"]] = None tot_sulfur: Optional[Union[dict, "TextValue"]] = None train_line: Optional[Union[str, "TRAINLINEENUM"]] = None @@ -1545,7 +1547,7 @@ class Biosample(MaterialEntity): weekday: Optional[Union[str, "WEEKDAYENUM"]] = None win: Optional[Union[dict, "TextValue"]] = None wind_direction: Optional[Union[dict, "TextValue"]] = None - wind_speed: Optional[Union[dict, "TextValue"]] = None + wind_speed: Optional[Union[dict, "QuantityValue"]] = None window_cond: Optional[Union[str, "SHAREDENUM2"]] = None window_cover: Optional[Union[str, "WINDOWCOVERENUM"]] = None window_horiz_pos: Optional[Union[str, "WINDOWHORIZPOSENUM"]] = None @@ -1661,6 +1663,12 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if not isinstance(self.env_medium, ControlledIdentifiedTermValue): self.env_medium = ControlledIdentifiedTermValue(**as_dict(self.env_medium)) + if self.samp_collec_method is not None and not isinstance(self.samp_collec_method, str): + self.samp_collec_method = str(self.samp_collec_method) + + if self.samp_collec_device is not None and not isinstance(self.samp_collec_device, str): + self.samp_collec_device = str(self.samp_collec_device) + if not isinstance(self.neon_biosample_identifiers, list): self.neon_biosample_identifiers = [self.neon_biosample_identifiers] if self.neon_biosample_identifiers is not None else [] self.neon_biosample_identifiers = [v if isinstance(v, ExternalIdentifier) else ExternalIdentifier(v) for v in self.neon_biosample_identifiers] @@ -1711,8 +1719,8 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): self.igsn_biosample_identifiers = [self.igsn_biosample_identifiers] if self.igsn_biosample_identifiers is not None else [] self.igsn_biosample_identifiers = [v if isinstance(v, ExternalIdentifier) else ExternalIdentifier(v) for v in self.igsn_biosample_identifiers] - if self.abs_air_humidity is not None and not isinstance(self.abs_air_humidity, TextValue): - self.abs_air_humidity = TextValue(**as_dict(self.abs_air_humidity)) + if self.abs_air_humidity is not None and not isinstance(self.abs_air_humidity, QuantityValue): + self.abs_air_humidity = QuantityValue(**as_dict(self.abs_air_humidity)) if self.add_recov_method is not None and not isinstance(self.add_recov_method, str): self.add_recov_method = str(self.add_recov_method) @@ -1765,8 +1773,8 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.aminopept_act is not None and not isinstance(self.aminopept_act, TextValue): self.aminopept_act = TextValue(**as_dict(self.aminopept_act)) - if self.ammonium is not None and not isinstance(self.ammonium, TextValue): - self.ammonium = TextValue(**as_dict(self.ammonium)) + if self.ammonium is not None and not isinstance(self.ammonium, QuantityValue): + self.ammonium = QuantityValue(**as_dict(self.ammonium)) if self.ammonium_nitrogen is not None and not isinstance(self.ammonium_nitrogen, QuantityValue): self.ammonium_nitrogen = QuantityValue(**as_dict(self.ammonium_nitrogen)) @@ -1809,8 +1817,8 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.avg_occup is not None and not isinstance(self.avg_occup, TextValue): self.avg_occup = TextValue(**as_dict(self.avg_occup)) - if self.avg_temp is not None and not isinstance(self.avg_temp, TextValue): - self.avg_temp = TextValue(**as_dict(self.avg_temp)) + if self.avg_temp is not None and not isinstance(self.avg_temp, QuantityValue): + self.avg_temp = QuantityValue(**as_dict(self.avg_temp)) if self.bac_prod is not None and not isinstance(self.bac_prod, TextValue): self.bac_prod = TextValue(**as_dict(self.bac_prod)) @@ -1890,8 +1898,8 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.built_struc_type is not None and not isinstance(self.built_struc_type, TextValue): self.built_struc_type = TextValue(**as_dict(self.built_struc_type)) - if self.calcium is not None and not isinstance(self.calcium, TextValue): - self.calcium = TextValue(**as_dict(self.calcium)) + if self.calcium is not None and not isinstance(self.calcium, QuantityValue): + self.calcium = QuantityValue(**as_dict(self.calcium)) if self.carb_dioxide is not None and not isinstance(self.carb_dioxide, TextValue): self.carb_dioxide = TextValue(**as_dict(self.carb_dioxide)) @@ -1899,8 +1907,8 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.carb_monoxide is not None and not isinstance(self.carb_monoxide, TextValue): self.carb_monoxide = TextValue(**as_dict(self.carb_monoxide)) - if self.carb_nitro_ratio is not None and not isinstance(self.carb_nitro_ratio, float): - self.carb_nitro_ratio = float(self.carb_nitro_ratio) + if self.carb_nitro_ratio is not None and not isinstance(self.carb_nitro_ratio, QuantityValue): + self.carb_nitro_ratio = QuantityValue(**as_dict(self.carb_nitro_ratio)) if self.ceil_area is not None and not isinstance(self.ceil_area, TextValue): self.ceil_area = TextValue(**as_dict(self.ceil_area)) @@ -1946,11 +1954,11 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.chimera_check is not None and not isinstance(self.chimera_check, TextValue): self.chimera_check = TextValue(**as_dict(self.chimera_check)) - if self.chloride is not None and not isinstance(self.chloride, TextValue): - self.chloride = TextValue(**as_dict(self.chloride)) + if self.chloride is not None and not isinstance(self.chloride, QuantityValue): + self.chloride = QuantityValue(**as_dict(self.chloride)) - if self.chlorophyll is not None and not isinstance(self.chlorophyll, TextValue): - self.chlorophyll = TextValue(**as_dict(self.chlorophyll)) + if self.chlorophyll is not None and not isinstance(self.chlorophyll, QuantityValue): + self.chlorophyll = QuantityValue(**as_dict(self.chlorophyll)) if not isinstance(self.climate_environment, list): self.climate_environment = [self.climate_environment] if self.climate_environment is not None else [] @@ -1959,8 +1967,8 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.collection_date is not None and not isinstance(self.collection_date, TimestampValue): self.collection_date = TimestampValue(**as_dict(self.collection_date)) - if self.conduc is not None and not isinstance(self.conduc, TextValue): - self.conduc = TextValue(**as_dict(self.conduc)) + if self.conduc is not None and not isinstance(self.conduc, QuantityValue): + self.conduc = QuantityValue(**as_dict(self.conduc)) if self.cool_syst_id is not None and not isinstance(self.cool_syst_id, TextValue): self.cool_syst_id = TextValue(**as_dict(self.cool_syst_id)) @@ -1974,8 +1982,8 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.cur_land_use is not None and not isinstance(self.cur_land_use, str): self.cur_land_use = str(self.cur_land_use) - if self.cur_vegetation is not None and not isinstance(self.cur_vegetation, str): - self.cur_vegetation = str(self.cur_vegetation) + if self.cur_vegetation is not None and not isinstance(self.cur_vegetation, TextValue): + self.cur_vegetation = TextValue(**as_dict(self.cur_vegetation)) if self.cur_vegetation_meth is not None and not isinstance(self.cur_vegetation_meth, TextValue): self.cur_vegetation_meth = TextValue(**as_dict(self.cur_vegetation_meth)) @@ -1989,8 +1997,8 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.depos_env is not None and not isinstance(self.depos_env, DEPOSENVENUM): self.depos_env = DEPOSENVENUM(self.depos_env) - if self.depth is not None and not isinstance(self.depth, TextValue): - self.depth = TextValue(**as_dict(self.depth)) + if self.depth is not None and not isinstance(self.depth, QuantityValue): + self.depth = QuantityValue(**as_dict(self.depth)) if self.dew_point is not None and not isinstance(self.dew_point, TextValue): self.dew_point = TextValue(**as_dict(self.dew_point)) @@ -2005,26 +2013,26 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.diss_hydrogen is not None and not isinstance(self.diss_hydrogen, TextValue): self.diss_hydrogen = TextValue(**as_dict(self.diss_hydrogen)) - if self.diss_inorg_carb is not None and not isinstance(self.diss_inorg_carb, TextValue): - self.diss_inorg_carb = TextValue(**as_dict(self.diss_inorg_carb)) + if self.diss_inorg_carb is not None and not isinstance(self.diss_inorg_carb, QuantityValue): + self.diss_inorg_carb = QuantityValue(**as_dict(self.diss_inorg_carb)) - if self.diss_inorg_nitro is not None and not isinstance(self.diss_inorg_nitro, TextValue): - self.diss_inorg_nitro = TextValue(**as_dict(self.diss_inorg_nitro)) + if self.diss_inorg_nitro is not None and not isinstance(self.diss_inorg_nitro, QuantityValue): + self.diss_inorg_nitro = QuantityValue(**as_dict(self.diss_inorg_nitro)) if self.diss_inorg_phosp is not None and not isinstance(self.diss_inorg_phosp, TextValue): self.diss_inorg_phosp = TextValue(**as_dict(self.diss_inorg_phosp)) - if self.diss_iron is not None and not isinstance(self.diss_iron, TextValue): - self.diss_iron = TextValue(**as_dict(self.diss_iron)) + if self.diss_iron is not None and not isinstance(self.diss_iron, QuantityValue): + self.diss_iron = QuantityValue(**as_dict(self.diss_iron)) - if self.diss_org_carb is not None and not isinstance(self.diss_org_carb, TextValue): - self.diss_org_carb = TextValue(**as_dict(self.diss_org_carb)) + if self.diss_org_carb is not None and not isinstance(self.diss_org_carb, QuantityValue): + self.diss_org_carb = QuantityValue(**as_dict(self.diss_org_carb)) if self.diss_org_nitro is not None and not isinstance(self.diss_org_nitro, TextValue): self.diss_org_nitro = TextValue(**as_dict(self.diss_org_nitro)) - if self.diss_oxygen is not None and not isinstance(self.diss_oxygen, TextValue): - self.diss_oxygen = TextValue(**as_dict(self.diss_oxygen)) + if self.diss_oxygen is not None and not isinstance(self.diss_oxygen, QuantityValue): + self.diss_oxygen = QuantityValue(**as_dict(self.diss_oxygen)) if self.diss_oxygen_fluid is not None and not isinstance(self.diss_oxygen_fluid, TextValue): self.diss_oxygen_fluid = TextValue(**as_dict(self.diss_oxygen_fluid)) @@ -2114,9 +2122,8 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.exp_pipe is not None and not isinstance(self.exp_pipe, QuantityValue): self.exp_pipe = QuantityValue(**as_dict(self.exp_pipe)) - if not isinstance(self.experimental_factor, list): - self.experimental_factor = [self.experimental_factor] if self.experimental_factor is not None else [] - self.experimental_factor = [v if isinstance(v, ControlledTermValue) else ControlledTermValue(**as_dict(v)) for v in self.experimental_factor] + if self.experimental_factor is not None and not isinstance(self.experimental_factor, ControlledTermValue): + self.experimental_factor = ControlledTermValue(**as_dict(self.experimental_factor)) if self.ext_door is not None and not isinstance(self.ext_door, TextValue): self.ext_door = TextValue(**as_dict(self.ext_door)) @@ -2213,8 +2220,8 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.glucosidase_act is not None and not isinstance(self.glucosidase_act, TextValue): self.glucosidase_act = TextValue(**as_dict(self.glucosidase_act)) - if self.gravidity is not None and not isinstance(self.gravidity, str): - self.gravidity = str(self.gravidity) + if self.gravidity is not None and not isinstance(self.gravidity, TextValue): + self.gravidity = TextValue(**as_dict(self.gravidity)) if not isinstance(self.gravity, list): self.gravity = [self.gravity] if self.gravity is not None else [] @@ -2285,8 +2292,8 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.horizon_meth is not None and not isinstance(self.horizon_meth, TextValue): self.horizon_meth = TextValue(**as_dict(self.horizon_meth)) - if self.host_age is not None and not isinstance(self.host_age, TextValue): - self.host_age = TextValue(**as_dict(self.host_age)) + if self.host_age is not None and not isinstance(self.host_age, QuantityValue): + self.host_age = QuantityValue(**as_dict(self.host_age)) if self.host_body_habitat is not None and not isinstance(self.host_body_habitat, TextValue): self.host_body_habitat = TextValue(**as_dict(self.host_body_habitat)) @@ -2310,8 +2317,8 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): self.host_diet = [self.host_diet] if self.host_diet is not None else [] self.host_diet = [v if isinstance(v, TextValue) else TextValue(**as_dict(v)) for v in self.host_diet] - if self.host_dry_mass is not None and not isinstance(self.host_dry_mass, TextValue): - self.host_dry_mass = TextValue(**as_dict(self.host_dry_mass)) + if self.host_dry_mass is not None and not isinstance(self.host_dry_mass, QuantityValue): + self.host_dry_mass = QuantityValue(**as_dict(self.host_dry_mass)) if self.host_genotype is not None and not isinstance(self.host_genotype, TextValue): self.host_genotype = TextValue(**as_dict(self.host_genotype)) @@ -2319,8 +2326,8 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.host_growth_cond is not None and not isinstance(self.host_growth_cond, TextValue): self.host_growth_cond = TextValue(**as_dict(self.host_growth_cond)) - if self.host_height is not None and not isinstance(self.host_height, TextValue): - self.host_height = TextValue(**as_dict(self.host_height)) + if self.host_height is not None and not isinstance(self.host_height, QuantityValue): + self.host_height = QuantityValue(**as_dict(self.host_height)) if not isinstance(self.host_last_meal, list): self.host_last_meal = [self.host_last_meal] if self.host_last_meal is not None else [] @@ -2329,8 +2336,8 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.host_length is not None and not isinstance(self.host_length, TextValue): self.host_length = TextValue(**as_dict(self.host_length)) - if self.host_life_stage is not None and not isinstance(self.host_life_stage, str): - self.host_life_stage = str(self.host_life_stage) + if self.host_life_stage is not None and not isinstance(self.host_life_stage, TextValue): + self.host_life_stage = TextValue(**as_dict(self.host_life_stage)) if self.host_phenotype is not None and not isinstance(self.host_phenotype, ControlledTermValue): self.host_phenotype = ControlledTermValue(**as_dict(self.host_phenotype)) @@ -2364,8 +2371,8 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.host_wet_mass is not None and not isinstance(self.host_wet_mass, TextValue): self.host_wet_mass = TextValue(**as_dict(self.host_wet_mass)) - if self.humidity is not None and not isinstance(self.humidity, TextValue): - self.humidity = TextValue(**as_dict(self.humidity)) + if self.humidity is not None and not isinstance(self.humidity, QuantityValue): + self.humidity = QuantityValue(**as_dict(self.humidity)) if not isinstance(self.humidity_regm, list): self.humidity_regm = [self.humidity_regm] if self.humidity_regm is not None else [] @@ -2436,8 +2443,8 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.local_class_meth is not None and not isinstance(self.local_class_meth, TextValue): self.local_class_meth = TextValue(**as_dict(self.local_class_meth)) - if self.magnesium is not None and not isinstance(self.magnesium, TextValue): - self.magnesium = TextValue(**as_dict(self.magnesium)) + if self.magnesium is not None and not isinstance(self.magnesium, QuantityValue): + self.magnesium = QuantityValue(**as_dict(self.magnesium)) if self.manganese is not None and not isinstance(self.manganese, QuantityValue): self.manganese = QuantityValue(**as_dict(self.manganese)) @@ -2479,8 +2486,8 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): self.n_alkanes = [self.n_alkanes] if self.n_alkanes is not None else [] self.n_alkanes = [v if isinstance(v, TextValue) else TextValue(**as_dict(v)) for v in self.n_alkanes] - if self.nitrate is not None and not isinstance(self.nitrate, TextValue): - self.nitrate = TextValue(**as_dict(self.nitrate)) + if self.nitrate is not None and not isinstance(self.nitrate, QuantityValue): + self.nitrate = QuantityValue(**as_dict(self.nitrate)) if self.nitrate_nitrogen is not None and not isinstance(self.nitrate_nitrogen, QuantityValue): self.nitrate_nitrogen = QuantityValue(**as_dict(self.nitrate_nitrogen)) @@ -2491,8 +2498,8 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.nitrite_nitrogen is not None and not isinstance(self.nitrite_nitrogen, QuantityValue): self.nitrite_nitrogen = QuantityValue(**as_dict(self.nitrite_nitrogen)) - if self.nitro is not None and not isinstance(self.nitro, TextValue): - self.nitro = TextValue(**as_dict(self.nitro)) + if self.nitro is not None and not isinstance(self.nitro, QuantityValue): + self.nitro = QuantityValue(**as_dict(self.nitro)) if not isinstance(self.non_min_nutr_regm, list): self.non_min_nutr_regm = [self.non_min_nutr_regm] if self.non_min_nutr_regm is not None else [] @@ -2522,8 +2529,8 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.occup_samp is not None and not isinstance(self.occup_samp, QuantityValue): self.occup_samp = QuantityValue(**as_dict(self.occup_samp)) - if self.org_carb is not None and not isinstance(self.org_carb, TextValue): - self.org_carb = TextValue(**as_dict(self.org_carb)) + if self.org_carb is not None and not isinstance(self.org_carb, QuantityValue): + self.org_carb = QuantityValue(**as_dict(self.org_carb)) if self.org_count_qpcr_info is not None and not isinstance(self.org_count_qpcr_info, str): self.org_count_qpcr_info = str(self.org_count_qpcr_info) @@ -2572,7 +2579,7 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if not isinstance(self.perturbation, list): self.perturbation = [self.perturbation] if self.perturbation is not None else [] - self.perturbation = [v if isinstance(v, str) else str(v) for v in self.perturbation] + self.perturbation = [v if isinstance(v, TextValue) else TextValue(**as_dict(v)) for v in self.perturbation] if not isinstance(self.pesticide_regm, list): self.pesticide_regm = [self.pesticide_regm] if self.pesticide_regm is not None else [] @@ -2602,8 +2609,8 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): self.phosplipid_fatt_acid = [self.phosplipid_fatt_acid] if self.phosplipid_fatt_acid is not None else [] self.phosplipid_fatt_acid = [v if isinstance(v, TextValue) else TextValue(**as_dict(v)) for v in self.phosplipid_fatt_acid] - if self.photon_flux is not None and not isinstance(self.photon_flux, TextValue): - self.photon_flux = TextValue(**as_dict(self.photon_flux)) + if self.photon_flux is not None and not isinstance(self.photon_flux, QuantityValue): + self.photon_flux = QuantityValue(**as_dict(self.photon_flux)) if self.plant_growth_med is not None and not isinstance(self.plant_growth_med, ControlledTermValue): self.plant_growth_med = ControlledTermValue(**as_dict(self.plant_growth_med)) @@ -2627,8 +2634,8 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.porosity is not None and not isinstance(self.porosity, TextValue): self.porosity = TextValue(**as_dict(self.porosity)) - if self.potassium is not None and not isinstance(self.potassium, TextValue): - self.potassium = TextValue(**as_dict(self.potassium)) + if self.potassium is not None and not isinstance(self.potassium, QuantityValue): + self.potassium = QuantityValue(**as_dict(self.potassium)) if self.pour_point is not None and not isinstance(self.pour_point, TextValue): self.pour_point = TextValue(**as_dict(self.pour_point)) @@ -2810,8 +2817,8 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.samp_room_id is not None and not isinstance(self.samp_room_id, TextValue): self.samp_room_id = TextValue(**as_dict(self.samp_room_id)) - if self.samp_size is not None and not isinstance(self.samp_size, TextValue): - self.samp_size = TextValue(**as_dict(self.samp_size)) + if self.samp_size is not None and not isinstance(self.samp_size, QuantityValue): + self.samp_size = QuantityValue(**as_dict(self.samp_size)) if not isinstance(self.samp_sort_meth, list): self.samp_sort_meth = [self.samp_sort_meth] if self.samp_sort_meth is not None else [] @@ -2823,8 +2830,8 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.samp_store_loc is not None and not isinstance(self.samp_store_loc, str): self.samp_store_loc = str(self.samp_store_loc) - if self.samp_store_temp is not None and not isinstance(self.samp_store_temp, TextValue): - self.samp_store_temp = TextValue(**as_dict(self.samp_store_temp)) + if self.samp_store_temp is not None and not isinstance(self.samp_store_temp, QuantityValue): + self.samp_store_temp = QuantityValue(**as_dict(self.samp_store_temp)) if self.samp_subtype is not None and not isinstance(self.samp_subtype, SAMPSUBTYPEENUM): self.samp_subtype = SAMPSUBTYPEENUM(self.samp_subtype) @@ -2926,8 +2933,8 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.sludge_retent_time is not None and not isinstance(self.sludge_retent_time, TextValue): self.sludge_retent_time = TextValue(**as_dict(self.sludge_retent_time)) - if self.sodium is not None and not isinstance(self.sodium, TextValue): - self.sodium = TextValue(**as_dict(self.sodium)) + if self.sodium is not None and not isinstance(self.sodium, QuantityValue): + self.sodium = QuantityValue(**as_dict(self.sodium)) if self.soil_horizon is not None and not isinstance(self.soil_horizon, SOILHORIZONENUM): self.soil_horizon = SOILHORIZONENUM(self.soil_horizon) @@ -2941,9 +2948,8 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.soil_type_meth is not None and not isinstance(self.soil_type_meth, TextValue): self.soil_type_meth = TextValue(**as_dict(self.soil_type_meth)) - if not isinstance(self.solar_irradiance, list): - self.solar_irradiance = [self.solar_irradiance] if self.solar_irradiance is not None else [] - self.solar_irradiance = [v if isinstance(v, TextValue) else TextValue(**as_dict(v)) for v in self.solar_irradiance] + if self.solar_irradiance is not None and not isinstance(self.solar_irradiance, QuantityValue): + self.solar_irradiance = QuantityValue(**as_dict(self.solar_irradiance)) if not isinstance(self.soluble_inorg_mat, list): self.soluble_inorg_mat = [self.soluble_inorg_mat] if self.soluble_inorg_mat is not None else [] @@ -2953,12 +2959,11 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): self.soluble_org_mat = [self.soluble_org_mat] if self.soluble_org_mat is not None else [] self.soluble_org_mat = [v if isinstance(v, TextValue) else TextValue(**as_dict(v)) for v in self.soluble_org_mat] - if self.soluble_react_phosp is not None and not isinstance(self.soluble_react_phosp, TextValue): - self.soluble_react_phosp = TextValue(**as_dict(self.soluble_react_phosp)) + if self.soluble_react_phosp is not None and not isinstance(self.soluble_react_phosp, QuantityValue): + self.soluble_react_phosp = QuantityValue(**as_dict(self.soluble_react_phosp)) - if not isinstance(self.source_mat_id, list): - self.source_mat_id = [self.source_mat_id] if self.source_mat_id is not None else [] - self.source_mat_id = [v if isinstance(v, str) else str(v) for v in self.source_mat_id] + if self.source_mat_id is not None and not isinstance(self.source_mat_id, TextValue): + self.source_mat_id = TextValue(**as_dict(self.source_mat_id)) if self.space_typ_state is not None and not isinstance(self.space_typ_state, SPACETYPSTATEENUM): self.space_typ_state = SPACETYPSTATEENUM(self.space_typ_state) @@ -2988,15 +2993,15 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): self.standing_water_regm = [self.standing_water_regm] if self.standing_water_regm is not None else [] self.standing_water_regm = [v if isinstance(v, TextValue) else TextValue(**as_dict(v)) for v in self.standing_water_regm] - if self.store_cond is not None and not isinstance(self.store_cond, str): - self.store_cond = str(self.store_cond) + if self.store_cond is not None and not isinstance(self.store_cond, TextValue): + self.store_cond = TextValue(**as_dict(self.store_cond)) if not isinstance(self.substructure_type, list): self.substructure_type = [self.substructure_type] if self.substructure_type is not None else [] self.substructure_type = [v if isinstance(v, SUBSTRUCTURETYPEENUM) else SUBSTRUCTURETYPEENUM(v) for v in self.substructure_type] - if self.sulfate is not None and not isinstance(self.sulfate, TextValue): - self.sulfate = TextValue(**as_dict(self.sulfate)) + if self.sulfate is not None and not isinstance(self.sulfate, QuantityValue): + self.sulfate = QuantityValue(**as_dict(self.sulfate)) if self.sulfate_fw is not None and not isinstance(self.sulfate_fw, TextValue): self.sulfate_fw = TextValue(**as_dict(self.sulfate_fw)) @@ -3039,8 +3044,8 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.target_subfragment is not None and not isinstance(self.target_subfragment, TextValue): self.target_subfragment = TextValue(**as_dict(self.target_subfragment)) - if self.temp is not None and not isinstance(self.temp, TextValue): - self.temp = TextValue(**as_dict(self.temp)) + if self.temp is not None and not isinstance(self.temp, QuantityValue): + self.temp = QuantityValue(**as_dict(self.temp)) if self.temp_out is not None and not isinstance(self.temp_out, TextValue): self.temp_out = TextValue(**as_dict(self.temp_out)) @@ -3061,8 +3066,8 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.toluene is not None and not isinstance(self.toluene, TextValue): self.toluene = TextValue(**as_dict(self.toluene)) - if self.tot_carb is not None and not isinstance(self.tot_carb, TextValue): - self.tot_carb = TextValue(**as_dict(self.tot_carb)) + if self.tot_carb is not None and not isinstance(self.tot_carb, QuantityValue): + self.tot_carb = QuantityValue(**as_dict(self.tot_carb)) if self.tot_depth_water_col is not None and not isinstance(self.tot_depth_water_col, TextValue): self.tot_depth_water_col = TextValue(**as_dict(self.tot_depth_water_col)) @@ -3076,26 +3081,26 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.tot_iron is not None and not isinstance(self.tot_iron, TextValue): self.tot_iron = TextValue(**as_dict(self.tot_iron)) - if self.tot_nitro is not None and not isinstance(self.tot_nitro, TextValue): - self.tot_nitro = TextValue(**as_dict(self.tot_nitro)) + if self.tot_nitro is not None and not isinstance(self.tot_nitro, QuantityValue): + self.tot_nitro = QuantityValue(**as_dict(self.tot_nitro)) if self.tot_nitro_cont_meth is not None and not isinstance(self.tot_nitro_cont_meth, str): self.tot_nitro_cont_meth = str(self.tot_nitro_cont_meth) - if self.tot_nitro_content is not None and not isinstance(self.tot_nitro_content, TextValue): - self.tot_nitro_content = TextValue(**as_dict(self.tot_nitro_content)) + if self.tot_nitro_content is not None and not isinstance(self.tot_nitro_content, QuantityValue): + self.tot_nitro_content = QuantityValue(**as_dict(self.tot_nitro_content)) if self.tot_org_c_meth is not None and not isinstance(self.tot_org_c_meth, TextValue): self.tot_org_c_meth = TextValue(**as_dict(self.tot_org_c_meth)) - if self.tot_org_carb is not None and not isinstance(self.tot_org_carb, TextValue): - self.tot_org_carb = TextValue(**as_dict(self.tot_org_carb)) + if self.tot_org_carb is not None and not isinstance(self.tot_org_carb, QuantityValue): + self.tot_org_carb = QuantityValue(**as_dict(self.tot_org_carb)) if self.tot_part_carb is not None and not isinstance(self.tot_part_carb, TextValue): self.tot_part_carb = TextValue(**as_dict(self.tot_part_carb)) - if self.tot_phosp is not None and not isinstance(self.tot_phosp, TextValue): - self.tot_phosp = TextValue(**as_dict(self.tot_phosp)) + if self.tot_phosp is not None and not isinstance(self.tot_phosp, QuantityValue): + self.tot_phosp = QuantityValue(**as_dict(self.tot_phosp)) if self.tot_phosphate is not None and not isinstance(self.tot_phosphate, TextValue): self.tot_phosphate = TextValue(**as_dict(self.tot_phosphate)) @@ -3216,8 +3221,8 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.wind_direction is not None and not isinstance(self.wind_direction, TextValue): self.wind_direction = TextValue(**as_dict(self.wind_direction)) - if self.wind_speed is not None and not isinstance(self.wind_speed, TextValue): - self.wind_speed = TextValue(**as_dict(self.wind_speed)) + if self.wind_speed is not None and not isinstance(self.wind_speed, QuantityValue): + self.wind_speed = QuantityValue(**as_dict(self.wind_speed)) if self.window_cond is not None and not isinstance(self.window_cond, SHAREDENUM2): self.window_cond = SHAREDENUM2(self.window_cond) @@ -3324,9 +3329,8 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): self.climate_environment = [self.climate_environment] if self.climate_environment is not None else [] self.climate_environment = [v if isinstance(v, TextValue) else TextValue(**as_dict(v)) for v in self.climate_environment] - if not isinstance(self.experimental_factor, list): - self.experimental_factor = [self.experimental_factor] if self.experimental_factor is not None else [] - self.experimental_factor = [v if isinstance(v, ControlledTermValue) else ControlledTermValue(**as_dict(v)) for v in self.experimental_factor] + if self.experimental_factor is not None and not isinstance(self.experimental_factor, ControlledTermValue): + self.experimental_factor = ControlledTermValue(**as_dict(self.experimental_factor)) if not isinstance(self.gaseous_environment, list): self.gaseous_environment = [self.gaseous_environment] if self.gaseous_environment is not None else [] @@ -3345,12 +3349,11 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if self.phosphate is not None and not isinstance(self.phosphate, TextValue): self.phosphate = TextValue(**as_dict(self.phosphate)) - if self.samp_size is not None and not isinstance(self.samp_size, TextValue): - self.samp_size = TextValue(**as_dict(self.samp_size)) + if self.samp_size is not None and not isinstance(self.samp_size, QuantityValue): + self.samp_size = QuantityValue(**as_dict(self.samp_size)) - if not isinstance(self.source_mat_id, list): - self.source_mat_id = [self.source_mat_id] if self.source_mat_id is not None else [] - self.source_mat_id = [v if isinstance(v, str) else str(v) for v in self.source_mat_id] + if self.source_mat_id is not None and not isinstance(self.source_mat_id, TextValue): + self.source_mat_id = TextValue(**as_dict(self.source_mat_id)) if not isinstance(self.watering_regm, list): self.watering_regm = [self.watering_regm] if self.watering_regm is not None else [] @@ -3662,7 +3665,7 @@ class FieldResearchSite(Site): class_model_uri: ClassVar[URIRef] = NMDC.FieldResearchSite id: Union[str, FieldResearchSiteId] = None - cur_vegetation: Optional[str] = None + cur_vegetation: Optional[Union[dict, "TextValue"]] = None elev: Optional[float] = None geo_loc_name: Optional[Union[dict, "TextValue"]] = None habitat: Optional[str] = None @@ -3677,8 +3680,8 @@ def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]): if not isinstance(self.id, FieldResearchSiteId): self.id = FieldResearchSiteId(self.id) - if self.cur_vegetation is not None and not isinstance(self.cur_vegetation, str): - self.cur_vegetation = str(self.cur_vegetation) + if self.cur_vegetation is not None and not isinstance(self.cur_vegetation, TextValue): + self.cur_vegetation = TextValue(**as_dict(self.cur_vegetation)) if self.elev is not None and not isinstance(self.elev, float): self.elev = float(self.elev) @@ -9025,7 +9028,7 @@ class slots: model_uri=NMDC.smiles, domain=None, range=Optional[Union[str, List[str]]]) slots.abs_air_humidity = Slot(uri=MIXS['0000122'], name="abs_air_humidity", curie=MIXS.curie('0000122'), - model_uri=NMDC.abs_air_humidity, domain=None, range=Optional[Union[dict, TextValue]], + model_uri=NMDC.abs_air_humidity, domain=None, range=Optional[Union[dict, QuantityValue]], pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.add_recov_method = Slot(uri=MIXS['0001009'], name="add_recov_method", curie=MIXS.curie('0001009'), @@ -9085,7 +9088,7 @@ class slots: pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.ammonium = Slot(uri=MIXS['0000427'], name="ammonium", curie=MIXS.curie('0000427'), - model_uri=NMDC.ammonium, domain=None, range=Optional[Union[dict, TextValue]], + model_uri=NMDC.ammonium, domain=None, range=Optional[Union[dict, QuantityValue]], pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.amount_light = Slot(uri=MIXS['0000140'], name="amount_light", curie=MIXS.curie('0000140'), @@ -9132,7 +9135,7 @@ class slots: model_uri=NMDC.avg_occup, domain=None, range=Optional[Union[dict, TextValue]]) slots.avg_temp = Slot(uri=MIXS['0000142'], name="avg_temp", curie=MIXS.curie('0000142'), - model_uri=NMDC.avg_temp, domain=None, range=Optional[Union[dict, TextValue]], + model_uri=NMDC.avg_temp, domain=None, range=Optional[Union[dict, QuantityValue]], pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.bac_prod = Slot(uri=MIXS['0000683'], name="bac_prod", curie=MIXS.curie('0000683'), @@ -9222,7 +9225,7 @@ class slots: model_uri=NMDC.built_struc_type, domain=None, range=Optional[Union[dict, TextValue]]) slots.calcium = Slot(uri=MIXS['0000432'], name="calcium", curie=MIXS.curie('0000432'), - model_uri=NMDC.calcium, domain=None, range=Optional[Union[dict, TextValue]], + model_uri=NMDC.calcium, domain=None, range=Optional[Union[dict, QuantityValue]], pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.carb_dioxide = Slot(uri=MIXS['0000097'], name="carb_dioxide", curie=MIXS.curie('0000097'), @@ -9234,7 +9237,7 @@ class slots: pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.carb_nitro_ratio = Slot(uri=MIXS['0000310'], name="carb_nitro_ratio", curie=MIXS.curie('0000310'), - model_uri=NMDC.carb_nitro_ratio, domain=None, range=Optional[float]) + model_uri=NMDC.carb_nitro_ratio, domain=None, range=Optional[Union[dict, QuantityValue]]) slots.ceil_area = Slot(uri=MIXS['0000148'], name="ceil_area", curie=MIXS.curie('0000148'), model_uri=NMDC.ceil_area, domain=None, range=Optional[Union[dict, TextValue]], @@ -9283,11 +9286,11 @@ class slots: pattern=re.compile(r'^([^\s-]{1,2}|[^\s-]+.+[^\s-]+);([^\s-]{1,2}|[^\s-]+.+[^\s-]+);([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.chloride = Slot(uri=MIXS['0000429'], name="chloride", curie=MIXS.curie('0000429'), - model_uri=NMDC.chloride, domain=None, range=Optional[Union[dict, TextValue]], + model_uri=NMDC.chloride, domain=None, range=Optional[Union[dict, QuantityValue]], pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.chlorophyll = Slot(uri=MIXS['0000177'], name="chlorophyll", curie=MIXS.curie('0000177'), - model_uri=NMDC.chlorophyll, domain=None, range=Optional[Union[dict, TextValue]], + model_uri=NMDC.chlorophyll, domain=None, range=Optional[Union[dict, QuantityValue]], pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.climate_environment = Slot(uri=MIXS['0001040'], name="climate_environment", curie=MIXS.curie('0001040'), @@ -9297,7 +9300,7 @@ class slots: model_uri=NMDC.collection_date, domain=None, range=Optional[Union[dict, TimestampValue]]) slots.conduc = Slot(uri=MIXS['0000692'], name="conduc", curie=MIXS.curie('0000692'), - model_uri=NMDC.conduc, domain=None, range=Optional[Union[dict, TextValue]], + model_uri=NMDC.conduc, domain=None, range=Optional[Union[dict, QuantityValue]], pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.cool_syst_id = Slot(uri=MIXS['0000785'], name="cool_syst_id", curie=MIXS.curie('0000785'), @@ -9313,7 +9316,7 @@ class slots: model_uri=NMDC.cur_land_use, domain=None, range=Optional[str]) slots.cur_vegetation = Slot(uri=MIXS['0000312'], name="cur_vegetation", curie=MIXS.curie('0000312'), - model_uri=NMDC.cur_vegetation, domain=None, range=Optional[str]) + model_uri=NMDC.cur_vegetation, domain=None, range=Optional[Union[dict, TextValue]]) slots.cur_vegetation_meth = Slot(uri=MIXS['0000314'], name="cur_vegetation_meth", curie=MIXS.curie('0000314'), model_uri=NMDC.cur_vegetation_meth, domain=None, range=Optional[Union[dict, TextValue]], @@ -9330,7 +9333,7 @@ class slots: model_uri=NMDC.depos_env, domain=None, range=Optional[Union[str, "DEPOSENVENUM"]]) slots.depth = Slot(uri=MIXS['0000018'], name="depth", curie=MIXS.curie('0000018'), - model_uri=NMDC.depth, domain=None, range=Optional[Union[dict, TextValue]], + model_uri=NMDC.depth, domain=None, range=Optional[Union[dict, QuantityValue]], pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.dew_point = Slot(uri=MIXS['0000129'], name="dew_point", curie=MIXS.curie('0000129'), @@ -9349,11 +9352,11 @@ class slots: pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.diss_inorg_carb = Slot(uri=MIXS['0000434'], name="diss_inorg_carb", curie=MIXS.curie('0000434'), - model_uri=NMDC.diss_inorg_carb, domain=None, range=Optional[Union[dict, TextValue]], + model_uri=NMDC.diss_inorg_carb, domain=None, range=Optional[Union[dict, QuantityValue]], pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.diss_inorg_nitro = Slot(uri=MIXS['0000698'], name="diss_inorg_nitro", curie=MIXS.curie('0000698'), - model_uri=NMDC.diss_inorg_nitro, domain=None, range=Optional[Union[dict, TextValue]], + model_uri=NMDC.diss_inorg_nitro, domain=None, range=Optional[Union[dict, QuantityValue]], pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.diss_inorg_phosp = Slot(uri=MIXS['0000106'], name="diss_inorg_phosp", curie=MIXS.curie('0000106'), @@ -9361,11 +9364,11 @@ class slots: pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.diss_iron = Slot(uri=MIXS['0000139'], name="diss_iron", curie=MIXS.curie('0000139'), - model_uri=NMDC.diss_iron, domain=None, range=Optional[Union[dict, TextValue]], + model_uri=NMDC.diss_iron, domain=None, range=Optional[Union[dict, QuantityValue]], pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.diss_org_carb = Slot(uri=MIXS['0000433'], name="diss_org_carb", curie=MIXS.curie('0000433'), - model_uri=NMDC.diss_org_carb, domain=None, range=Optional[Union[dict, TextValue]], + model_uri=NMDC.diss_org_carb, domain=None, range=Optional[Union[dict, QuantityValue]], pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.diss_org_nitro = Slot(uri=MIXS['0000162'], name="diss_org_nitro", curie=MIXS.curie('0000162'), @@ -9373,7 +9376,7 @@ class slots: pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.diss_oxygen = Slot(uri=MIXS['0000119'], name="diss_oxygen", curie=MIXS.curie('0000119'), - model_uri=NMDC.diss_oxygen, domain=None, range=Optional[Union[dict, TextValue]], + model_uri=NMDC.diss_oxygen, domain=None, range=Optional[Union[dict, QuantityValue]], pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.diss_oxygen_fluid = Slot(uri=MIXS['0000438'], name="diss_oxygen_fluid", curie=MIXS.curie('0000438'), @@ -9465,7 +9468,7 @@ class slots: pattern=re.compile(r'^[1-9][0-9]* ([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.experimental_factor = Slot(uri=MIXS['0000008'], name="experimental_factor", curie=MIXS.curie('0000008'), - model_uri=NMDC.experimental_factor, domain=None, range=Optional[Union[Union[dict, ControlledTermValue], List[Union[dict, ControlledTermValue]]]], + model_uri=NMDC.experimental_factor, domain=None, range=Optional[Union[dict, ControlledTermValue]], pattern=re.compile(r'^\S+.*\S+ \[[a-zA-Z]{2,}:\d+\]$')) slots.ext_door = Slot(uri=MIXS['0000170'], name="ext_door", curie=MIXS.curie('0000170'), @@ -9566,7 +9569,7 @@ class slots: pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.gravidity = Slot(uri=MIXS['0000875'], name="gravidity", curie=MIXS.curie('0000875'), - model_uri=NMDC.gravidity, domain=None, range=Optional[str]) + model_uri=NMDC.gravidity, domain=None, range=Optional[Union[dict, TextValue]]) slots.gravity = Slot(uri=MIXS['0000559'], name="gravity", curie=MIXS.curie('0000559'), model_uri=NMDC.gravity, domain=None, range=Optional[Union[Union[dict, TextValue], List[Union[dict, TextValue]]]]) @@ -9638,7 +9641,7 @@ class slots: pattern=re.compile(r'^^PMID:\d+$|^doi:10.\d{2,9}/.*$|^https?:\/\/(?:www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b(?:[-a-zA-Z0-9()@:%_\+.~#?&\/=]*)$$')) slots.host_age = Slot(uri=MIXS['0000255'], name="host_age", curie=MIXS.curie('0000255'), - model_uri=NMDC.host_age, domain=None, range=Optional[Union[dict, TextValue]], + model_uri=NMDC.host_age, domain=None, range=Optional[Union[dict, QuantityValue]], pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.host_body_habitat = Slot(uri=MIXS['0000866'], name="host_body_habitat", curie=MIXS.curie('0000866'), @@ -9664,7 +9667,7 @@ class slots: model_uri=NMDC.host_diet, domain=None, range=Optional[Union[Union[dict, TextValue], List[Union[dict, TextValue]]]]) slots.host_dry_mass = Slot(uri=MIXS['0000257'], name="host_dry_mass", curie=MIXS.curie('0000257'), - model_uri=NMDC.host_dry_mass, domain=None, range=Optional[Union[dict, TextValue]], + model_uri=NMDC.host_dry_mass, domain=None, range=Optional[Union[dict, QuantityValue]], pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.host_genotype = Slot(uri=MIXS['0000365'], name="host_genotype", curie=MIXS.curie('0000365'), @@ -9675,7 +9678,7 @@ class slots: pattern=re.compile(r'^^PMID:\d+$|^doi:10.\d{2,9}/.*$|^https?:\/\/(?:www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b(?:[-a-zA-Z0-9()@:%_\+.~#?&\/=]*)$|([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.host_height = Slot(uri=MIXS['0000264'], name="host_height", curie=MIXS.curie('0000264'), - model_uri=NMDC.host_height, domain=None, range=Optional[Union[dict, TextValue]], + model_uri=NMDC.host_height, domain=None, range=Optional[Union[dict, QuantityValue]], pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.host_last_meal = Slot(uri=MIXS['0000870'], name="host_last_meal", curie=MIXS.curie('0000870'), @@ -9686,7 +9689,7 @@ class slots: pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.host_life_stage = Slot(uri=MIXS['0000251'], name="host_life_stage", curie=MIXS.curie('0000251'), - model_uri=NMDC.host_life_stage, domain=None, range=Optional[str]) + model_uri=NMDC.host_life_stage, domain=None, range=Optional[Union[dict, TextValue]]) slots.host_phenotype = Slot(uri=MIXS['0000874'], name="host_phenotype", curie=MIXS.curie('0000874'), model_uri=NMDC.host_phenotype, domain=None, range=Optional[Union[dict, ControlledTermValue]]) @@ -9721,7 +9724,7 @@ class slots: pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.humidity = Slot(uri=MIXS['0000100'], name="humidity", curie=MIXS.curie('0000100'), - model_uri=NMDC.humidity, domain=None, range=Optional[Union[dict, TextValue]], + model_uri=NMDC.humidity, domain=None, range=Optional[Union[dict, QuantityValue]], pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.humidity_regm = Slot(uri=MIXS['0000568'], name="humidity_regm", curie=MIXS.curie('0000568'), @@ -9793,7 +9796,7 @@ class slots: pattern=re.compile(r'^^PMID:\d+$|^doi:10.\d{2,9}/.*$|^https?:\/\/(?:www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b(?:[-a-zA-Z0-9()@:%_\+.~#?&\/=]*)$$')) slots.magnesium = Slot(uri=MIXS['0000431'], name="magnesium", curie=MIXS.curie('0000431'), - model_uri=NMDC.magnesium, domain=None, range=Optional[Union[dict, TextValue]], + model_uri=NMDC.magnesium, domain=None, range=Optional[Union[dict, QuantityValue]], pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.max_occup = Slot(uri=MIXS['0000229'], name="max_occup", curie=MIXS.curie('0000229'), @@ -9819,8 +9822,7 @@ class slots: pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.micro_biomass_meth = Slot(uri=MIXS['0000339'], name="micro_biomass_meth", curie=MIXS.curie('0000339'), - model_uri=NMDC.micro_biomass_meth, domain=None, range=Optional[str], - pattern=re.compile(r'^^PMID:\d+$|^doi:10.\d{2,9}/.*$|^https?:\/\/(?:www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b(?:[-a-zA-Z0-9()@:%_\+.~#?&\/=]*)$$')) + model_uri=NMDC.micro_biomass_meth, domain=None, range=Optional[str]) slots.microbial_biomass = Slot(uri=MIXS['0000650'], name="microbial_biomass", curie=MIXS.curie('0000650'), model_uri=NMDC.microbial_biomass, domain=None, range=Optional[Union[dict, TextValue]], @@ -9836,7 +9838,7 @@ class slots: model_uri=NMDC.n_alkanes, domain=None, range=Optional[Union[Union[dict, TextValue], List[Union[dict, TextValue]]]]) slots.nitrate = Slot(uri=MIXS['0000425'], name="nitrate", curie=MIXS.curie('0000425'), - model_uri=NMDC.nitrate, domain=None, range=Optional[Union[dict, TextValue]], + model_uri=NMDC.nitrate, domain=None, range=Optional[Union[dict, QuantityValue]], pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.nitrite = Slot(uri=MIXS['0000426'], name="nitrite", curie=MIXS.curie('0000426'), @@ -9844,7 +9846,7 @@ class slots: pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.nitro = Slot(uri=MIXS['0000504'], name="nitro", curie=MIXS.curie('0000504'), - model_uri=NMDC.nitro, domain=None, range=Optional[Union[dict, TextValue]], + model_uri=NMDC.nitro, domain=None, range=Optional[Union[dict, QuantityValue]], pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.non_min_nutr_regm = Slot(uri=MIXS['0000571'], name="non_min_nutr_regm", curie=MIXS.curie('0000571'), @@ -9881,7 +9883,7 @@ class slots: pattern=re.compile(r'^[1-9][0-9]* ([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.org_carb = Slot(uri=MIXS['0000508'], name="org_carb", curie=MIXS.curie('0000508'), - model_uri=NMDC.org_carb, domain=None, range=Optional[Union[dict, TextValue]], + model_uri=NMDC.org_carb, domain=None, range=Optional[Union[dict, QuantityValue]], pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.org_count_qpcr_info = Slot(uri=MIXS['0000099'], name="org_count_qpcr_info", curie=MIXS.curie('0000099'), @@ -9933,7 +9935,7 @@ class slots: model_uri=NMDC.permeability, domain=None, range=Optional[Union[dict, TextValue]]) slots.perturbation = Slot(uri=MIXS['0000754'], name="perturbation", curie=MIXS.curie('0000754'), - model_uri=NMDC.perturbation, domain=None, range=Optional[Union[str, List[str]]]) + model_uri=NMDC.perturbation, domain=None, range=Optional[Union[Union[dict, TextValue], List[Union[dict, TextValue]]]]) slots.pesticide_regm = Slot(uri=MIXS['0000573'], name="pesticide_regm", curie=MIXS.curie('0000573'), model_uri=NMDC.pesticide_regm, domain=None, range=Optional[Union[Union[dict, TextValue], List[Union[dict, TextValue]]]]) @@ -9963,7 +9965,7 @@ class slots: model_uri=NMDC.phosplipid_fatt_acid, domain=None, range=Optional[Union[Union[dict, TextValue], List[Union[dict, TextValue]]]]) slots.photon_flux = Slot(uri=MIXS['0000725'], name="photon_flux", curie=MIXS.curie('0000725'), - model_uri=NMDC.photon_flux, domain=None, range=Optional[Union[dict, TextValue]], + model_uri=NMDC.photon_flux, domain=None, range=Optional[Union[dict, QuantityValue]], pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.plant_growth_med = Slot(uri=MIXS['0001057'], name="plant_growth_med", curie=MIXS.curie('0001057'), @@ -9989,7 +9991,7 @@ class slots: model_uri=NMDC.porosity, domain=None, range=Optional[Union[dict, TextValue]]) slots.potassium = Slot(uri=MIXS['0000430'], name="potassium", curie=MIXS.curie('0000430'), - model_uri=NMDC.potassium, domain=None, range=Optional[Union[dict, TextValue]], + model_uri=NMDC.potassium, domain=None, range=Optional[Union[dict, QuantityValue]], pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.pour_point = Slot(uri=MIXS['0000127'], name="pour_point", curie=MIXS.curie('0000127'), @@ -10191,7 +10193,7 @@ class slots: model_uri=NMDC.samp_room_id, domain=None, range=Optional[Union[dict, TextValue]]) slots.samp_size = Slot(uri=MIXS['0000001'], name="samp_size", curie=MIXS.curie('0000001'), - model_uri=NMDC.samp_size, domain=None, range=Optional[Union[dict, TextValue]], + model_uri=NMDC.samp_size, domain=None, range=Optional[Union[dict, QuantityValue]], pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.samp_sort_meth = Slot(uri=MIXS['0000216'], name="samp_sort_meth", curie=MIXS.curie('0000216'), @@ -10205,7 +10207,7 @@ class slots: model_uri=NMDC.samp_store_loc, domain=None, range=Optional[str]) slots.samp_store_temp = Slot(uri=MIXS['0000110'], name="samp_store_temp", curie=MIXS.curie('0000110'), - model_uri=NMDC.samp_store_temp, domain=None, range=Optional[Union[dict, TextValue]], + model_uri=NMDC.samp_store_temp, domain=None, range=Optional[Union[dict, QuantityValue]], pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.samp_subtype = Slot(uri=MIXS['0000999'], name="samp_subtype", curie=MIXS.curie('0000999'), @@ -10322,7 +10324,7 @@ class slots: pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.sodium = Slot(uri=MIXS['0000428'], name="sodium", curie=MIXS.curie('0000428'), - model_uri=NMDC.sodium, domain=None, range=Optional[Union[dict, TextValue]], + model_uri=NMDC.sodium, domain=None, range=Optional[Union[dict, QuantityValue]], pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.soil_horizon = Slot(uri=MIXS['0001082'], name="soil_horizon", curie=MIXS.curie('0001082'), @@ -10340,7 +10342,7 @@ class slots: pattern=re.compile(r'^^PMID:\d+$|^doi:10.\d{2,9}/.*$|^https?:\/\/(?:www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b(?:[-a-zA-Z0-9()@:%_\+.~#?&\/=]*)$$')) slots.solar_irradiance = Slot(uri=MIXS['0000112'], name="solar_irradiance", curie=MIXS.curie('0000112'), - model_uri=NMDC.solar_irradiance, domain=None, range=Optional[Union[Union[dict, TextValue], List[Union[dict, TextValue]]]], + model_uri=NMDC.solar_irradiance, domain=None, range=Optional[Union[dict, QuantityValue]], pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.soluble_inorg_mat = Slot(uri=MIXS['0000672'], name="soluble_inorg_mat", curie=MIXS.curie('0000672'), @@ -10350,11 +10352,11 @@ class slots: model_uri=NMDC.soluble_org_mat, domain=None, range=Optional[Union[Union[dict, TextValue], List[Union[dict, TextValue]]]]) slots.soluble_react_phosp = Slot(uri=MIXS['0000738'], name="soluble_react_phosp", curie=MIXS.curie('0000738'), - model_uri=NMDC.soluble_react_phosp, domain=None, range=Optional[Union[dict, TextValue]], + model_uri=NMDC.soluble_react_phosp, domain=None, range=Optional[Union[dict, QuantityValue]], pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.source_mat_id = Slot(uri=MIXS['0000026'], name="source_mat_id", curie=MIXS.curie('0000026'), - model_uri=NMDC.source_mat_id, domain=None, range=Optional[Union[str, List[str]]]) + model_uri=NMDC.source_mat_id, domain=None, range=Optional[Union[dict, TextValue]]) slots.space_typ_state = Slot(uri=MIXS['0000770'], name="space_typ_state", curie=MIXS.curie('0000770'), model_uri=NMDC.space_typ_state, domain=None, range=Optional[Union[str, "SPACETYPSTATEENUM"]]) @@ -10382,13 +10384,13 @@ class slots: model_uri=NMDC.standing_water_regm, domain=None, range=Optional[Union[Union[dict, TextValue], List[Union[dict, TextValue]]]]) slots.store_cond = Slot(uri=MIXS['0000327'], name="store_cond", curie=MIXS.curie('0000327'), - model_uri=NMDC.store_cond, domain=None, range=Optional[str]) + model_uri=NMDC.store_cond, domain=None, range=Optional[Union[dict, TextValue]]) slots.substructure_type = Slot(uri=MIXS['0000767'], name="substructure_type", curie=MIXS.curie('0000767'), model_uri=NMDC.substructure_type, domain=None, range=Optional[Union[Union[str, "SUBSTRUCTURETYPEENUM"], List[Union[str, "SUBSTRUCTURETYPEENUM"]]]]) slots.sulfate = Slot(uri=MIXS['0000423'], name="sulfate", curie=MIXS.curie('0000423'), - model_uri=NMDC.sulfate, domain=None, range=Optional[Union[dict, TextValue]], + model_uri=NMDC.sulfate, domain=None, range=Optional[Union[dict, QuantityValue]], pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.sulfate_fw = Slot(uri=MIXS['0000407'], name="sulfate_fw", curie=MIXS.curie('0000407'), @@ -10438,7 +10440,7 @@ class slots: model_uri=NMDC.target_subfragment, domain=None, range=Optional[Union[dict, TextValue]]) slots.temp = Slot(uri=MIXS['0000113'], name="temp", curie=MIXS.curie('0000113'), - model_uri=NMDC.temp, domain=None, range=Optional[Union[dict, TextValue]], + model_uri=NMDC.temp, domain=None, range=Optional[Union[dict, QuantityValue]], pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.temp_out = Slot(uri=MIXS['0000197'], name="temp_out", curie=MIXS.curie('0000197'), @@ -10463,7 +10465,7 @@ class slots: pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.tot_carb = Slot(uri=MIXS['0000525'], name="tot_carb", curie=MIXS.curie('0000525'), - model_uri=NMDC.tot_carb, domain=None, range=Optional[Union[dict, TextValue]], + model_uri=NMDC.tot_carb, domain=None, range=Optional[Union[dict, QuantityValue]], pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.tot_depth_water_col = Slot(uri=MIXS['0000634'], name="tot_depth_water_col", curie=MIXS.curie('0000634'), @@ -10483,7 +10485,7 @@ class slots: pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.tot_nitro = Slot(uri=MIXS['0000102'], name="tot_nitro", curie=MIXS.curie('0000102'), - model_uri=NMDC.tot_nitro, domain=None, range=Optional[Union[dict, TextValue]], + model_uri=NMDC.tot_nitro, domain=None, range=Optional[Union[dict, QuantityValue]], pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.tot_nitro_cont_meth = Slot(uri=MIXS['0000338'], name="tot_nitro_cont_meth", curie=MIXS.curie('0000338'), @@ -10491,7 +10493,7 @@ class slots: pattern=re.compile(r'^^PMID:\d+$|^doi:10.\d{2,9}/.*$|^https?:\/\/(?:www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b(?:[-a-zA-Z0-9()@:%_\+.~#?&\/=]*)$$')) slots.tot_nitro_content = Slot(uri=MIXS['0000530'], name="tot_nitro_content", curie=MIXS.curie('0000530'), - model_uri=NMDC.tot_nitro_content, domain=None, range=Optional[Union[dict, TextValue]], + model_uri=NMDC.tot_nitro_content, domain=None, range=Optional[Union[dict, QuantityValue]], pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.tot_org_c_meth = Slot(uri=MIXS['0000337'], name="tot_org_c_meth", curie=MIXS.curie('0000337'), @@ -10499,7 +10501,7 @@ class slots: pattern=re.compile(r'^^PMID:\d+$|^doi:10.\d{2,9}/.*$|^https?:\/\/(?:www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b(?:[-a-zA-Z0-9()@:%_\+.~#?&\/=]*)$$')) slots.tot_org_carb = Slot(uri=MIXS['0000533'], name="tot_org_carb", curie=MIXS.curie('0000533'), - model_uri=NMDC.tot_org_carb, domain=None, range=Optional[Union[dict, TextValue]], + model_uri=NMDC.tot_org_carb, domain=None, range=Optional[Union[dict, QuantityValue]], pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.tot_part_carb = Slot(uri=MIXS['0000747'], name="tot_part_carb", curie=MIXS.curie('0000747'), @@ -10507,7 +10509,7 @@ class slots: pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.tot_phosp = Slot(uri=MIXS['0000117'], name="tot_phosp", curie=MIXS.curie('0000117'), - model_uri=NMDC.tot_phosp, domain=None, range=Optional[Union[dict, TextValue]], + model_uri=NMDC.tot_phosp, domain=None, range=Optional[Union[dict, QuantityValue]], pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.tot_phosphate = Slot(uri=MIXS['0000689'], name="tot_phosphate", curie=MIXS.curie('0000689'), @@ -10604,8 +10606,7 @@ class slots: pattern=re.compile(r'^^PMID:\d+$|^doi:10.\d{2,9}/.*$|^https?:\/\/(?:www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b(?:[-a-zA-Z0-9()@:%_\+.~#?&\/=]*)$$')) slots.water_content = Slot(uri=MIXS['0000185'], name="water_content", curie=MIXS.curie('0000185'), - model_uri=NMDC.water_content, domain=None, range=Optional[str], - pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) + model_uri=NMDC.water_content, domain=None, range=Optional[str]) slots.water_current = Slot(uri=MIXS['0000203'], name="water_current", curie=MIXS.curie('0000203'), model_uri=NMDC.water_current, domain=None, range=Optional[Union[dict, TextValue]], @@ -10642,7 +10643,7 @@ class slots: model_uri=NMDC.wind_direction, domain=None, range=Optional[Union[dict, TextValue]]) slots.wind_speed = Slot(uri=MIXS['0000118'], name="wind_speed", curie=MIXS.curie('0000118'), - model_uri=NMDC.wind_speed, domain=None, range=Optional[Union[dict, TextValue]], + model_uri=NMDC.wind_speed, domain=None, range=Optional[Union[dict, QuantityValue]], pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.window_cond = Slot(uri=MIXS['0000849'], name="window_cond", curie=MIXS.curie('0000849'), @@ -10682,6 +10683,12 @@ class slots: model_uri=NMDC.xylene, domain=None, range=Optional[Union[dict, TextValue]], pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) +slots.samp_collec_method = Slot(uri=MIXS['0001225'], name="samp_collec_method", curie=MIXS.curie('0001225'), + model_uri=NMDC.samp_collec_method, domain=None, range=Optional[str]) + +slots.samp_collec_device = Slot(uri=MIXS.samp_collec_device, name="samp_collec_device", curie=MIXS.curie('samp_collec_device'), + model_uri=NMDC.samp_collec_device, domain=None, range=Optional[str]) + slots.emsl_store_temp = Slot(uri=NMDC.emsl_store_temp, name="emsl_store_temp", curie=NMDC.curie('emsl_store_temp'), model_uri=NMDC.emsl_store_temp, domain=None, range=Optional[str]) @@ -11349,7 +11356,7 @@ class slots: pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.Biosample_cur_vegetation = Slot(uri=MIXS['0000312'], name="Biosample_cur_vegetation", curie=MIXS.curie('0000312'), - model_uri=NMDC.Biosample_cur_vegetation, domain=Biosample, range=Optional[str]) + model_uri=NMDC.Biosample_cur_vegetation, domain=Biosample, range=Optional[Union[dict, "TextValue"]]) slots.Biosample_cur_vegetation_meth = Slot(uri=MIXS['0000314'], name="Biosample_cur_vegetation_meth", curie=MIXS.curie('0000314'), model_uri=NMDC.Biosample_cur_vegetation_meth, domain=Biosample, range=Optional[Union[dict, "TextValue"]], @@ -11371,15 +11378,14 @@ class slots: pattern=re.compile(r'^^PMID:\d+$|^doi:10.\d{2,9}/.*$|^https?:\/\/(?:www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b(?:[-a-zA-Z0-9()@:%_\+.~#?&\/=]*)$$')) slots.Biosample_water_content = Slot(uri=MIXS['0000185'], name="Biosample_water_content", curie=MIXS.curie('0000185'), - model_uri=NMDC.Biosample_water_content, domain=Biosample, range=Optional[Union[str, List[str]]], - pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) + model_uri=NMDC.Biosample_water_content, domain=Biosample, range=Optional[Union[str, List[str]]]) slots.Biosample_ph_meth = Slot(uri=MIXS['0001106'], name="Biosample_ph_meth", curie=MIXS.curie('0001106'), model_uri=NMDC.Biosample_ph_meth, domain=Biosample, range=Optional[Union[dict, "TextValue"]], pattern=re.compile(r'^^PMID:\d+$|^doi:10.\d{2,9}/.*$|^https?:\/\/(?:www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b(?:[-a-zA-Z0-9()@:%_\+.~#?&\/=]*)$$')) slots.Biosample_tot_carb = Slot(uri=MIXS['0000525'], name="Biosample_tot_carb", curie=MIXS.curie('0000525'), - model_uri=NMDC.Biosample_tot_carb, domain=Biosample, range=Optional[Union[dict, "TextValue"]], + model_uri=NMDC.Biosample_tot_carb, domain=Biosample, range=Optional[Union[dict, "QuantityValue"]], pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.Biosample_tot_nitro_cont_meth = Slot(uri=MIXS['0000338'], name="Biosample_tot_nitro_cont_meth", curie=MIXS.curie('0000338'), @@ -11387,7 +11393,7 @@ class slots: pattern=re.compile(r'^^PMID:\d+$|^doi:10.\d{2,9}/.*$|^https?:\/\/(?:www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b(?:[-a-zA-Z0-9()@:%_\+.~#?&\/=]*)$$')) slots.Biosample_tot_nitro_content = Slot(uri=MIXS['0000530'], name="Biosample_tot_nitro_content", curie=MIXS.curie('0000530'), - model_uri=NMDC.Biosample_tot_nitro_content, domain=Biosample, range=Optional[Union[dict, "TextValue"]], + model_uri=NMDC.Biosample_tot_nitro_content, domain=Biosample, range=Optional[Union[dict, "QuantityValue"]], pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.Biosample_tot_org_c_meth = Slot(uri=MIXS['0000337'], name="Biosample_tot_org_c_meth", curie=MIXS.curie('0000337'), @@ -11395,7 +11401,7 @@ class slots: pattern=re.compile(r'^^PMID:\d+$|^doi:10.\d{2,9}/.*$|^https?:\/\/(?:www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b(?:[-a-zA-Z0-9()@:%_\+.~#?&\/=]*)$$')) slots.Biosample_tot_org_carb = Slot(uri=MIXS['0000533'], name="Biosample_tot_org_carb", curie=MIXS.curie('0000533'), - model_uri=NMDC.Biosample_tot_org_carb, domain=Biosample, range=Optional[Union[dict, "TextValue"]], + model_uri=NMDC.Biosample_tot_org_carb, domain=Biosample, range=Optional[Union[dict, "QuantityValue"]], pattern=re.compile(r'^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$')) slots.Biosample_sieving = Slot(uri=MIXS['0000322'], name="Biosample_sieving", curie=MIXS.curie('0000322'), @@ -11411,7 +11417,7 @@ class slots: model_uri=NMDC.Biosample_watering_regm, domain=Biosample, range=Optional[Union[Union[dict, "TextValue"], List[Union[dict, "TextValue"]]]]) slots.Biosample_source_mat_id = Slot(uri=MIXS['0000026'], name="Biosample_source_mat_id", curie=MIXS.curie('0000026'), - model_uri=NMDC.Biosample_source_mat_id, domain=Biosample, range=Optional[Union[str, List[str]]]) + model_uri=NMDC.Biosample_source_mat_id, domain=Biosample, range=Optional[Union[dict, "TextValue"]]) slots.Study_id = Slot(uri=NMDC.id, name="Study_id", curie=NMDC.curie('id'), model_uri=NMDC.Study_id, domain=Study, range=Union[str, StudyId], diff --git a/project.Makefile b/project.Makefile index 818cf3dab2..abb4a67fda 100644 --- a/project.Makefile +++ b/project.Makefile @@ -137,10 +137,10 @@ examples/output/Biosample-exhasutive-pretty-sorted.yaml: src/data/valid/Biosampl # todo compress large files # todo: switch to API method for getting collection names and stats: https://api.microbiomedata.org/nmdcschema/collection_stats # partially implemented -pure-export-and-validate: local/mongo_as_nmdc_database_validation.log.txt +pure-export-and-validate: local/mongo_as_nmdc_database_validation.log make-rdf: rdf-clean \ - local/mongo_as_nmdc_database_validation.log.txt \ + local/mongo_as_nmdc_database_validation.log \ local/mongo_as_nmdc_database_cuire_repaired.ttl \ local/mongo_as_nmdc_database_cuire_repaired_stamped.ttl # could omit rdf-clean. then this could build incrementally on top of pure-export-and-validate @@ -154,44 +154,45 @@ make-rdf: rdf-clean \ # todo: metagenome_sequencing_set and metagenome_sequencing_activity_set are degenerate # and can't be validated, migrated or converted to RDF +# --selected-collections activity_set \ +# --selected-collections collecting_biosamples_from_site_set \ +# --selected-collections data_object_set \ +# --selected-collections extraction_set \ +# --selected-collections field_research_site_set \ +# --selected-collections functional_annotation_set \ +# --selected-collections genome_feature_set \ +# --selected-collections library_preparation_set \ +# --selected-collections mags_activity_set \ +# --selected-collections mags_set \ +# --selected-collections material_sample_set \ +# --selected-collections metabolomics_analysis_activity_set \ +# --selected-collections metabolomics_analysis_set \ +# --selected-collections metagenome_annotation_activity_set \ +# --selected-collections metagenome_annotation_set \ +# --selected-collections metagenome_assembly_set \ +# --selected-collections metagenome_sequencing_activity_set \ +# --selected-collections metagenome_sequencing_set \ +# --selected-collections metap_gene_function_aggregation \ +# --selected-collections metatranscriptome_activity_set \ +# --selected-collections metatranscriptome_analysis_set \ +# --selected-collections nom_analysis_activity_set \ +# --selected-collections omics_processing_set \ +# --selected-collections planned_process_set \ +# --selected-collections pooling_set \ +# --selected-collections processed_sample_set \ +# --selected-collections read_based_taxonomy_analysis_activity_set \ +# --selected-collections read_qc_analysis_activity_set \ +# --selected-collections study_set \ +# --selected-collections workflow_chain_set \ +# --selected-collections workflow_execution_set \ + local/mongo_as_unvalidated_nmdc_database.yaml: date time $(RUN) pure-export \ --max-docs-per-coll 200000 \ --output-yaml $@ \ --schema-source src/schema/nmdc.yaml \ - --selected-collections activity_set \ --selected-collections biosample_set \ - --selected-collections collecting_biosamples_from_site_set \ - --selected-collections data_object_set \ - --selected-collections extraction_set \ - --selected-collections field_research_site_set \ - --selected-collections functional_annotation_set \ - --selected-collections genome_feature_set \ - --selected-collections library_preparation_set \ - --selected-collections mags_activity_set \ - --selected-collections mags_set \ - --selected-collections material_sample_set \ - --selected-collections metabolomics_analysis_activity_set \ - --selected-collections metabolomics_analysis_set \ - --selected-collections metagenome_annotation_activity_set \ - --selected-collections metagenome_annotation_set \ - --selected-collections metagenome_assembly_set \ - --selected-collections metagenome_sequencing_activity_set \ - --selected-collections metagenome_sequencing_set \ - --selected-collections metap_gene_function_aggregation \ - --selected-collections metatranscriptome_activity_set \ - --selected-collections metatranscriptome_analysis_set \ - --selected-collections nom_analysis_activity_set \ - --selected-collections omics_processing_set \ - --selected-collections planned_process_set \ - --selected-collections pooling_set \ - --selected-collections processed_sample_set \ - --selected-collections read_based_taxonomy_analysis_activity_set \ - --selected-collections read_qc_analysis_activity_set \ - --selected-collections study_set \ - --selected-collections workflow_chain_set \ - --selected-collections workflow_execution_set \ dump-from-api \ --client-base-url "https://api.microbiomedata.org" \ --endpoint-prefix nmdcschema \ @@ -222,7 +223,7 @@ local/mongo_as_nmdc_database_rdf_safe.yaml: nmdc_schema/nmdc_materialized_patter --schema-path $(word 1,$^) \ --output-path $@ -.PRECIOUS: local/mongo_as_nmdc_database_validation.log.txt +.PRECIOUS: local/mongo_as_nmdc_database_validation.log local/mongo_as_nmdc_database_validation.log: nmdc_schema/nmdc_materialized_patterns.yaml local/mongo_as_nmdc_database_rdf_safe.yaml date # 5m57.559s without functional_annotation_agg or metaproteomics_analysis_activity_set diff --git a/src/schema/mixs.yaml b/src/schema/mixs.yaml index 05a340be6b..9553939f51 100644 --- a/src/schema/mixs.yaml +++ b/src/schema/mixs.yaml @@ -27,20 +27,6 @@ prefixes: prefix_prefix: schema prefix_reference: http://schema.org/ default_prefix: MIXS -subsets: - mixs_environmental_triad: - title: MIxS Environmental Triad - mixs extension: {} - combination_classes: - from_schema: https://w3id.org/mixs - sequencing: - from_schema: https://w3id.org/mixs - environment: - from_schema: https://w3id.org/mixs - nucleic acid sequence source: - from_schema: https://w3id.org/mixs - investigation: - from_schema: https://w3id.org/mixs enums: AERO_STRUC_ENUM: from_schema: https://w3id.org/mixs @@ -1031,7 +1017,7 @@ slots: - air - humidity slot_uri: MIXS:0000122 - range: TextValue + range: QuantityValue pattern: ^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$ structured_pattern: syntax: ^{scientific_float}( *- *{scientific_float})? *{text}$ @@ -1267,8 +1253,6 @@ slots: title: altitude examples: - value: 100 meter - in_subset: - - environment from_schema: https://w3id.org/mixs slot_uri: MIXS:0000094 range: TextValue @@ -1305,7 +1289,7 @@ slots: - value: 1.5 milligram per liter from_schema: https://w3id.org/mixs slot_uri: MIXS:0000427 - range: TextValue + range: QuantityValue pattern: ^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$ structured_pattern: syntax: ^{scientific_float}( *- *{scientific_float})? *{text}$ @@ -1510,7 +1494,7 @@ slots: - average - temperature slot_uri: MIXS:0000142 - range: TextValue + range: QuantityValue pattern: ^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$ structured_pattern: syntax: ^{scientific_float}( *- *{scientific_float})? *{text}$ @@ -1730,8 +1714,6 @@ slots: title: observed biotic relationship examples: - value: free living - in_subset: - - nucleic acid sequence source from_schema: https://w3id.org/mixs keywords: - observed @@ -1885,7 +1867,7 @@ slots: - value: 0.2 micromole per liter from_schema: https://w3id.org/mixs slot_uri: MIXS:0000432 - range: TextValue + range: QuantityValue pattern: ^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$ structured_pattern: syntax: ^{scientific_float}( *- *{scientific_float})? *{text}$ @@ -1945,7 +1927,7 @@ slots: - ratio string_serialization: '{float}:{float}' slot_uri: MIXS:0000310 - range: float + range: QuantityValue ceil_area: annotations: Preferred_unit: @@ -2134,8 +2116,6 @@ slots: title: chimera check software examples: - value: uchime;v4.1;default parameters - in_subset: - - sequencing from_schema: https://w3id.org/mixs keywords: - software @@ -2157,7 +2137,7 @@ slots: - value: 5000 milligram per liter from_schema: https://w3id.org/mixs slot_uri: MIXS:0000429 - range: TextValue + range: QuantityValue pattern: ^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$ structured_pattern: syntax: ^{scientific_float}( *- *{scientific_float})? *{text}$ @@ -2174,7 +2154,7 @@ slots: - value: 5 milligram per cubic meter from_schema: https://w3id.org/mixs slot_uri: MIXS:0000177 - range: TextValue + range: QuantityValue pattern: ^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$ structured_pattern: syntax: ^{scientific_float}( *- *{scientific_float})? *{text}$ @@ -2196,8 +2176,6 @@ slots: title: collection date examples: - value: '2013-03-25T12:42:31+01:00' - in_subset: - - environment from_schema: https://w3id.org/mixs keywords: - date @@ -2231,7 +2209,7 @@ slots: - value: 10 milliSiemens per centimeter from_schema: https://w3id.org/mixs slot_uri: MIXS:0000692 - range: TextValue + range: QuantityValue pattern: ^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$ structured_pattern: syntax: ^{scientific_float}( *- *{scientific_float})? *{text}$ @@ -2304,6 +2282,7 @@ slots: - vegetation string_serialization: '{text}' slot_uri: MIXS:0000312 + range: TextValue cur_vegetation_meth: description: Reference or method used in vegetation classification title: current vegetation method @@ -2364,13 +2343,11 @@ slots: value: meter description: The vertical distance below local surface. For sediment or soil samples depth is measured from sediment or soil surface, respectively. Depth can be reported as an interval for subsurface samples title: depth - in_subset: - - environment from_schema: https://w3id.org/mixs keywords: - depth slot_uri: MIXS:0000018 - range: TextValue + range: QuantityValue pattern: ^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$ structured_pattern: syntax: ^{scientific_float}( *- *{scientific_float})? *{text}$ @@ -2464,7 +2441,7 @@ slots: - dissolved - inorganic slot_uri: MIXS:0000434 - range: TextValue + range: QuantityValue pattern: ^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$ structured_pattern: syntax: ^{scientific_float}( *- *{scientific_float})? *{text}$ @@ -2485,7 +2462,7 @@ slots: - inorganic - nitrogen slot_uri: MIXS:0000698 - range: TextValue + range: QuantityValue pattern: ^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$ structured_pattern: syntax: ^{scientific_float}( *- *{scientific_float})? *{text}$ @@ -2519,7 +2496,7 @@ slots: keywords: - dissolved slot_uri: MIXS:0000139 - range: TextValue + range: QuantityValue recommended: true pattern: ^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$ structured_pattern: @@ -2541,7 +2518,7 @@ slots: - dissolved - organic slot_uri: MIXS:0000433 - range: TextValue + range: QuantityValue pattern: ^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$ structured_pattern: syntax: ^{scientific_float}( *- *{scientific_float})? *{text}$ @@ -2578,7 +2555,7 @@ slots: - dissolved - oxygen slot_uri: MIXS:0000119 - range: TextValue + range: QuantityValue pattern: ^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$ structured_pattern: syntax: ^{scientific_float}( *- *{scientific_float})? *{text}$ @@ -2798,8 +2775,6 @@ slots: title: elevation examples: - value: 100 meter - in_subset: - - environment from_schema: https://w3id.org/mixs keywords: - elevation @@ -2840,8 +2815,6 @@ slots: title: broad-scale environmental context examples: - value: rangeland biome [ENVO:01000247] - in_subset: - - environment from_schema: https://w3id.org/mixs keywords: - context @@ -2877,8 +2850,6 @@ slots: title: local environmental context examples: - value: hillside [ENVO:01000333] - in_subset: - - environment from_schema: https://w3id.org/mixs keywords: - context @@ -2903,8 +2874,6 @@ slots: title: environmental medium examples: - value: bluegrass field soil [ENVO:00005789] - in_subset: - - environment from_schema: https://w3id.org/mixs keywords: - environmental @@ -2992,8 +2961,6 @@ slots: title: experimental factor examples: - value: time series design [EFO:0001779] - in_subset: - - investigation from_schema: https://w3id.org/mixs keywords: - experimental @@ -3001,7 +2968,7 @@ slots: string_serialization: '{termLabel} [{termID}]|{text}' slot_uri: MIXS:0000008 range: ControlledTermValue - multivalued: true + multivalued: false pattern: ^\S+.*\S+ \[[a-zA-Z]{2,}:\d+\]$ ext_door: description: The number of exterior doors in the built structure @@ -3345,8 +3312,6 @@ slots: title: geographic location (country and/or sea,region) examples: - value: 'USA: Maryland, Bethesda' - in_subset: - - environment from_schema: https://w3id.org/mixs keywords: - geographic @@ -3400,6 +3365,7 @@ slots: from_schema: https://w3id.org/mixs string_serialization: '{boolean};{timestamp}' slot_uri: MIXS:0000875 + range: TextValue gravity: annotations: Expected_value: @@ -3716,7 +3682,7 @@ slots: - host - host. slot_uri: MIXS:0000255 - range: TextValue + range: QuantityValue pattern: ^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$ structured_pattern: syntax: ^{scientific_float}( *- *{scientific_float})? *{text}$ @@ -3836,7 +3802,7 @@ slots: - host. - mass slot_uri: MIXS:0000257 - range: TextValue + range: QuantityValue pattern: ^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$ structured_pattern: syntax: ^{scientific_float}( *- *{scientific_float})? *{text}$ @@ -3882,7 +3848,7 @@ slots: - host - host. slot_uri: MIXS:0000264 - range: TextValue + range: QuantityValue pattern: ^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$ structured_pattern: syntax: ^{scientific_float}( *- *{scientific_float})? *{text}$ @@ -3937,6 +3903,7 @@ slots: - life string_serialization: '{text}' slot_uri: MIXS:0000251 + range: TextValue host_phenotype: annotations: Expected_value: @@ -4100,7 +4067,7 @@ slots: keywords: - humidity slot_uri: MIXS:0000100 - range: TextValue + range: QuantityValue pattern: ^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$ structured_pattern: syntax: ^{scientific_float}( *- *{scientific_float})? *{text}$ @@ -4265,8 +4232,6 @@ slots: title: geographic location (latitude and longitude) examples: - value: 50.586825 6.408977 - in_subset: - - environment from_schema: https://w3id.org/mixs keywords: - geographic @@ -4444,7 +4409,7 @@ slots: - value: 52.8 micromole per kilogram from_schema: https://w3id.org/mixs slot_uri: MIXS:0000431 - range: TextValue + range: QuantityValue pattern: ^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$ structured_pattern: syntax: ^{scientific_float}( *- *{scientific_float})? *{text}$ @@ -4554,11 +4519,6 @@ slots: - microbial slot_uri: MIXS:0000339 range: string - pattern: ^^PMID:\d+$|^doi:10.\d{2,9}/.*$|^https?:\/\/(?:www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b(?:[-a-zA-Z0-9()@:%_\+.~#?&\/=]*)$$ - structured_pattern: - syntax: ^{PMID}|{DOI}|{URL}$ - interpolated: true - partial_match: true microbial_biomass: annotations: Preferred_unit: @@ -4664,7 +4624,7 @@ slots: keywords: - nitrate slot_uri: MIXS:0000425 - range: TextValue + range: QuantityValue pattern: ^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$ structured_pattern: syntax: ^{scientific_float}( *- *{scientific_float})? *{text}$ @@ -4702,7 +4662,7 @@ slots: keywords: - nitrogen slot_uri: MIXS:0000504 - range: TextValue + range: QuantityValue pattern: ^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$ structured_pattern: syntax: ^{scientific_float}( *- *{scientific_float})? *{text}$ @@ -4730,8 +4690,6 @@ slots: title: nucleic acid amplification examples: - value: https://phylogenomics.me/protocols/16s-pcr-protocol/ - in_subset: - - sequencing from_schema: https://w3id.org/mixs slot_uri: MIXS:0000038 range: TextValue @@ -4745,8 +4703,6 @@ slots: title: nucleic acid extraction examples: - value: https://mobio.com/media/wysiwyg/pdfs/protocols/12888.pdf - in_subset: - - sequencing from_schema: https://w3id.org/mixs slot_uri: MIXS:0000037 range: TextValue @@ -4837,7 +4793,7 @@ slots: - carbon - organic slot_uri: MIXS:0000508 - range: TextValue + range: QuantityValue pattern: ^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$ structured_pattern: syntax: ^{scientific_float}( *- *{scientific_float})? *{text}$ @@ -5052,8 +5008,6 @@ slots: title: pcr conditions examples: - value: initial denaturation:94_3;annealing:50_1;elongation:72_1.5;final elongation:72_10;35 - in_subset: - - sequencing from_schema: https://w3id.org/mixs keywords: - condition @@ -5069,8 +5023,6 @@ slots: title: pcr primers examples: - value: FWD:GTGCCAGCMGCCGCGGTAA;REV:GGACTACHVGGGTWTCTAAT - in_subset: - - sequencing from_schema: https://w3id.org/mixs keywords: - pcr @@ -5105,6 +5057,7 @@ slots: string_serialization: '{text};{Rn/start_time/end_time/duration}' slot_uri: MIXS:0000754 multivalued: true + range: TextValue pesticide_regm: annotations: Preferred_unit: @@ -5239,7 +5192,7 @@ slots: - value: 3.926 micromole photons per second per square meter from_schema: https://w3id.org/mixs slot_uri: MIXS:0000725 - range: TextValue + range: QuantityValue pattern: ^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$ structured_pattern: syntax: ^{scientific_float}( *- *{scientific_float})? *{text}$ @@ -5360,7 +5313,7 @@ slots: - value: 463 milligram per liter from_schema: https://w3id.org/mixs slot_uri: MIXS:0000430 - range: TextValue + range: QuantityValue pattern: ^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$ structured_pattern: syntax: ^{scientific_float}( *- *{scientific_float})? *{text}$ @@ -6154,8 +6107,6 @@ slots: title: sample material processing examples: - value: filtering of seawater, storing samples in ethanol - in_subset: - - nucleic acid sequence source from_schema: https://w3id.org/mixs keywords: - material @@ -6192,8 +6143,6 @@ slots: title: sample name examples: - value: ISDsoil1 - in_subset: - - investigation from_schema: https://w3id.org/mixs keywords: - sample @@ -6264,14 +6213,12 @@ slots: title: amount or size of sample collected examples: - value: 5 liter - in_subset: - - nucleic acid sequence source from_schema: https://w3id.org/mixs keywords: - sample - size slot_uri: MIXS:0000001 - range: TextValue + range: QuantityValue pattern: ^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$ structured_pattern: syntax: ^{scientific_float}( *- *{scientific_float})? *{text}$ @@ -6337,7 +6284,7 @@ slots: - storage - temperature slot_uri: MIXS:0000110 - range: TextValue + range: QuantityValue pattern: ^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$ structured_pattern: syntax: ^{scientific_float}( *- *{scientific_float})? *{text}$ @@ -6357,8 +6304,6 @@ slots: samp_taxon_id: description: NCBI taxon id of the sample. Maybe be a single taxon or mixed taxa sample. Use 'synthetic metagenome for mock community/positive controls, or 'blank sample' for negative controls title: taxonomy ID of DNA sample - in_subset: - - investigation from_schema: https://w3id.org/mixs keywords: - dna @@ -6465,8 +6410,6 @@ slots: title: sample volume or weight for DNA extraction examples: - value: 1500 milliliter - in_subset: - - nucleic acid sequence source from_schema: https://w3id.org/mixs keywords: - dna @@ -6632,8 +6575,6 @@ slots: title: sequencing method examples: - value: 454 Genome Sequencer FLX [OBI:0000702] - in_subset: - - sequencing from_schema: https://w3id.org/mixs keywords: - method @@ -6670,8 +6611,6 @@ slots: title: sequence quality check examples: - value: none - in_subset: - - sequencing from_schema: https://w3id.org/mixs keywords: - quality @@ -6783,8 +6722,6 @@ slots: title: size fraction selected examples: - value: 0-0.22 micrometer - in_subset: - - nucleic acid sequence source from_schema: https://w3id.org/mixs keywords: - fraction @@ -6892,7 +6829,7 @@ slots: - value: 10.5 milligram per liter from_schema: https://w3id.org/mixs slot_uri: MIXS:0000428 - range: TextValue + range: QuantityValue pattern: ^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$ structured_pattern: syntax: ^{scientific_float}( *- *{scientific_float})? *{text}$ @@ -6972,8 +6909,8 @@ slots: - value: 1.36 kilowatts per square meter per day from_schema: https://w3id.org/mixs slot_uri: MIXS:0000112 - range: TextValue - multivalued: true + range: QuantityValue + multivalued: false pattern: ^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$ structured_pattern: syntax: ^{scientific_float}( *- *{scientific_float})? *{text}$ @@ -7031,7 +6968,7 @@ slots: - phosphorus - soluble slot_uri: MIXS:0000738 - range: TextValue + range: QuantityValue pattern: ^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$ structured_pattern: syntax: ^{scientific_float}( *- *{scientific_float})? *{text}$ @@ -7046,8 +6983,6 @@ slots: title: source material identifiers examples: - value: MPI012345 - in_subset: - - nucleic acid sequence source from_schema: https://w3id.org/mixs keywords: - identifier @@ -7055,7 +6990,8 @@ slots: - source string_serialization: '{text}' slot_uri: MIXS:0000026 - multivalued: true + multivalued: false + range: TextValue space_typ_state: description: Customary or normal state of the space title: space typical state @@ -7162,6 +7098,7 @@ slots: - storage string_serialization: '{text};{period}' slot_uri: MIXS:0000327 + range: TextValue substructure_type: description: The substructure or under building is that largely hidden section of the building which is built off the foundations to the ground floor level title: substructure type @@ -7186,7 +7123,7 @@ slots: keywords: - sulfate slot_uri: MIXS:0000423 - range: TextValue + range: QuantityValue pattern: ^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$ structured_pattern: syntax: ^{scientific_float}( *- *{scientific_float})? *{text}$ @@ -7391,8 +7328,6 @@ slots: title: target gene examples: - value: 16S rRNA, 18S rRNA, nif, amoA, rpo - in_subset: - - sequencing from_schema: https://w3id.org/mixs keywords: - target @@ -7403,8 +7338,6 @@ slots: title: target subfragment examples: - value: V6, V9, ITS - in_subset: - - sequencing from_schema: https://w3id.org/mixs keywords: - target @@ -7419,13 +7352,11 @@ slots: title: temperature examples: - value: 25 degree Celsius - in_subset: - - environment from_schema: https://w3id.org/mixs keywords: - temperature slot_uri: MIXS:0000113 - range: TextValue + range: QuantityValue pattern: ^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$ structured_pattern: syntax: ^{scientific_float}( *- *{scientific_float})? *{text}$ @@ -7522,7 +7453,7 @@ slots: - carbon - total slot_uri: MIXS:0000525 - range: TextValue + range: QuantityValue pattern: ^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$ structured_pattern: syntax: ^{scientific_float}( *- *{scientific_float})? *{text}$ @@ -7624,7 +7555,7 @@ slots: - nitrogen - total slot_uri: MIXS:0000102 - range: TextValue + range: QuantityValue pattern: ^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$ structured_pattern: syntax: ^{scientific_float}( *- *{scientific_float})? *{text}$ @@ -7659,7 +7590,7 @@ slots: - nitrogen - total slot_uri: MIXS:0000530 - range: TextValue + range: QuantityValue pattern: ^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$ structured_pattern: syntax: ^{scientific_float}( *- *{scientific_float})? *{text}$ @@ -7698,7 +7629,7 @@ slots: - organic - total slot_uri: MIXS:0000533 - range: TextValue + range: QuantityValue pattern: ^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$ structured_pattern: syntax: ^{scientific_float}( *- *{scientific_float})? *{text}$ @@ -7740,7 +7671,7 @@ slots: - phosphorus - total slot_uri: MIXS:0000117 - range: TextValue + range: QuantityValue pattern: ^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$ structured_pattern: syntax: ^{scientific_float}( *- *{scientific_float})? *{text}$ @@ -8153,11 +8084,6 @@ slots: - water slot_uri: MIXS:0000185 range: string - pattern: ^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$ - structured_pattern: - syntax: ^{scientific_float}( *- *{scientific_float})? *{text}$ - interpolated: true - partial_match: true water_current: annotations: Preferred_unit: @@ -8321,7 +8247,7 @@ slots: - speed - wind slot_uri: MIXS:0000118 - range: TextValue + range: QuantityValue pattern: ^[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?( *- *[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?)? *([^\s-]{1,2}|[^\s-]+.+[^\s-]+)$ structured_pattern: syntax: ^{scientific_float}( *- *{scientific_float})? *{text}$ @@ -8463,4 +8389,17 @@ slots: syntax: ^{scientific_float}( *- *{scientific_float})? *{text}$ interpolated: true partial_match: true + samp_collec_method: + description: The method employed for collecting the sample + title: sample collection method + from_schema: https://w3id.org/mixs + keywords: + - method + - sample + slot_uri: MIXS:0001225 + range: string + notes: cloned from MIxS 6.2 samp_collect_method + samp_collec_device: + notes: cloned from MIxS 6.2 samp_collect_device + range: string source_file: assets/other_mixs_yaml_files/mixs_template.yaml diff --git a/src/schema/nmdc.yaml b/src/schema/nmdc.yaml index 9a2c4cd61d..df08d6222a 100644 --- a/src/schema/nmdc.yaml +++ b/src/schema/nmdc.yaml @@ -505,6 +505,8 @@ classes: Samples are associated with checklists, which define the fields used to annotate the samples. Samples are always associated with a taxon. slots: + - samp_collec_method # see assets/yq-for-mixs_subset_modified.txt for foced alignment with MIxS 6.2 + - samp_collec_device # see assets/yq-for-mixs_subset_modified.txt for foced alignment with MIxS 6.2 - neon_biosample_identifiers - host_taxid - embargoed @@ -2727,8 +2729,6 @@ slots: packages listed here are further defined in separate subtables. By giving the name of the environmental package, a selection of fields can be made from the subtables and can be reported - in_subset: - - mixs extension range: TextValue # pattern: '[air|built environment|host\-associated|human\-associated|human\-skin|human\-oral|human\-gut|human\-vaginal|hydrocarbon # resources\-cores|hydrocarbon resources\-fluids\/swabs|microbial mat\/biofilm|misc