tol-sdk 1.8.2__tar.gz → 1.8.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {tol_sdk-1.8.2/src/tol_sdk.egg-info → tol_sdk-1.8.3}/PKG-INFO +1 -1
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/pyproject.toml +1 -1
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/__init__.py +1 -0
- tol_sdk-1.8.3/src/tol/flows/converters/auto_detect_manifest_type_converter.py +46 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sql/pipeline_step/factory.py +6 -1
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/validators/__init__.py +2 -0
- tol_sdk-1.8.3/src/tol/validators/unique_value_check.py +41 -0
- tol_sdk-1.8.3/src/tol/validators/value_check.py +36 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3/src/tol_sdk.egg-info}/PKG-INFO +1 -1
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol_sdk.egg-info/SOURCES.txt +3 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/LICENSE +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/MANIFEST.in +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/README.md +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/setup.cfg +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/certs/cacert.pem +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/__init__.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/actions/__init__.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/actions/action.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/actions/upsert_action.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/api_base/__init__.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/api_base/action.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/api_base/auth/__init__.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/api_base/auth/abc/__init__.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/api_base/auth/abc/auth.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/api_base/auth/abc/authorisation.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/api_base/auth/asserts.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/api_base/auth/blueprint.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/api_base/auth/composite.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/api_base/auth/config.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/api_base/auth/error.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/api_base/blueprint.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/api_base/controller.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/api_base/data_upload.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/api_base/misc/__init__.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/api_base/misc/aggregation_body.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/api_base/misc/aggregation_parameters.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/api_base/misc/auth_context.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/api_base/misc/authenticate.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/api_base/misc/data_body.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/api_base/misc/filter_utils.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/api_base/misc/list_get_parameters.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/api_base/misc/relation_url.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/api_base/misc/stats_parameters.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/api_base/pipeline_steps.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/api_base/system.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/api_client/__init__.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/api_client/api_datasource.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/api_client/client.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/api_client/converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/api_client/exception.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/api_client/factory.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/api_client/filter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/api_client/parser.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/api_client/validate.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/api_client/view.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/barcodes/__init__.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/barcodes/main.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/benchling/__init__.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/benchling/benchling_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/benchling/benchling_datasource.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/benchling/benchling_warehouse_datasource.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/benchling/sql/__init__.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/benchling/sql/extraction_containers_dna.sql +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/benchling/sql/extraction_extraction_type_dna.sql +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/benchling/sql/extraction_extraction_type_lres.sql +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/benchling/sql/extraction_extraction_type_pooled_dna.sql +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/benchling/sql/extraction_extraction_type_rna.sql +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/benchling/sql/pacbio_prep.sql +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/benchling/sql/pooled_pacbio_prep.sql +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/benchling/sql/results_extraction_dna.sql +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/benchling/sql/results_extraction_pooled.sql +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/benchling/sql/results_extraction_rna.sql +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/benchling/sql/results_pacbio_prep.sql +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/benchling/sql/results_pacbio_prep_pooled.sql +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/benchling/sql/sample.sql +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/benchling/sql/sequencing_request_sequencing_platform_hic.sql +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/benchling/sql/sequencing_request_sequencing_platform_pacbio.sql +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/benchling/sql/sequencing_request_sequencing_platform_rnaseq.sql +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/benchling/sql/sequencing_request_sequencing_platform_wgs.sql +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/benchling/sql/tissue_prep.sql +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/board/__init__.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/board/blueprint.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/bold/__init__.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/bold/bold_datasource.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/bold/client.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/bold/converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/bold/factory.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/bold/parser.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/cli/__init__.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/cli/cli.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/converter/__init__.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/converter/yaml/__init__.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/converter/yaml/model.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/converter/yaml/yaml_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/copo/__init__.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/copo/client.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/copo/converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/copo/copo_datasource.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/copo/factory.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/copo/parser.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/core/__init__.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/core/attribute_metadata.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/core/core_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/core/data_loader.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/core/data_object.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/core/data_object_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/core/data_source_attribute_metadata.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/core/data_source_dict.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/core/datasource.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/core/datasource_error.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/core/datasource_filter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/core/datasource_utils.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/core/factory.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/core/http_client.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/core/operator/__init__.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/core/operator/_filterable.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/core/operator/_writer.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/core/operator/aggregator.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/core/operator/counter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/core/operator/cursor.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/core/operator/declare.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/core/operator/deleter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/core/operator/detail_getter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/core/operator/enricher.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/core/operator/enum.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/core/operator/group_statter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/core/operator/inserter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/core/operator/list_getter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/core/operator/operator_config.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/core/operator/page_getter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/core/operator/relational.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/core/operator/statter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/core/operator/summariser.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/core/operator/updater.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/core/operator/upserter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/core/relationship.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/core/requested_fields.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/core/session.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/core/validate.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/elastic/__init__.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/elastic/elastic_datasource.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/elastic/runtime_fields.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/eln/__init__.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/eln/auth.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/eln/eln_datasource.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/eln/entities.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/eln/generators.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/eln/sanitise.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/ena/__init__.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/ena/client.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/ena/converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/ena/ena_datasource.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/ena/ena_methods.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/ena/factory.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/ena/filter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/ena/parser.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/excel/__init__.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/excel/excel.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/excel/excel_datasource.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/excel/s3_factory.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/__init__.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/benchling_entity_to_benchling_worklist_item_converter_factory.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/benchling_extraction_to_elastic_extraction_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/benchling_extraction_to_elastic_sequencing_request_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/benchling_sample_casm_to_sts_sample_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/benchling_sample_to_elastic_sample_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/benchling_sequencing_request_to_elastic_sequencing_request_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/benchling_tissue_prep_to_elastic_tissue_prep_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/benchling_tissue_to_sts_sample_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/bioscan_extra_pantheon_species_to_elastic_sample_update_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/bioscan_image_to_elastic_sample_update_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/bioscan_qc_specimen_to_elastic_sample_update_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/bioscan_qc_uksi_entry_to_elastic_sample_update_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/bold_bin_to_elastic_sample_update_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/bold_sample_to_elastic_sample_update_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/elastic_object_to_portaldb_object_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/elastic_sample_to_benchling_tissue_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/elastic_sample_to_benchling_tissue_update_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/elastic_sample_to_bold_sample_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/elastic_sample_to_elastic_sequencing_request_update_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/elastic_sample_to_sts_sample_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/elastic_sequencing_request_to_elastic_run_data_update_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/elastic_sequencing_request_to_sts_sequencing_request_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/elastic_species_to_sts_species_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/elastic_tolid_to_elastic_curation_update_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/elastic_tolid_to_elastic_genome_note_update_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/elastic_tolid_to_elastic_sample_update_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/gap_assembly_to_elastic_assembly_analysis_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/gap_assembly_to_elastic_assembly_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/genome_notes_genome_note_to_elastic_genome_note_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/goat_taxon_to_elastic_species_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/grit_issue_to_elastic_curation_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/incoming_sample_to_ena_sample_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/incoming_sample_to_incoming_sample_with_lists_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/informatics_tolid_to_elastic_tolid_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/labwhere_location_to_elastic_sample_update_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/labwhere_location_to_sts_tray_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/mlwh_extraction_to_elastic_extraction_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/mlwh_run_data_to_elastic_run_data_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/mlwh_sequencing_request_to_elastic_sequencing_request_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/skip_null_fields_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/sts_banked_sample_to_elastic_sample_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/sts_manifest_to_elastic_manifest_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/sts_project_to_elastic_sample_update_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/sts_sample_project_to_elastic_sample_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/sts_sample_to_casm_benchling_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/sts_sampleset_to_elastic_sampleset_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/sts_species_to_elastic_species_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/tolid_specimen_to_elastic_tolid_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/tolqc_data_to_elastic_run_data_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/tolqc_sample_to_elastic_sequencing_request_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/tolqc_species_to_elastic_species_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/treeofsex_species_to_treeofsexwh_species_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/converters/treeofsex_upload_to_treeofsex_attribute_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/logger.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/secrets.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/flows/sequencing_submissions.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/gap/__init__.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/gap/gap_datasource.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/goat/__init__.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/goat/client.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/goat/converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/goat/factory.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/goat/filter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/goat/goat_datasource.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/goat/parser.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/google_sheets/__init__.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/google_sheets/google_sheet_datasource.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/irods/__init__.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/irods/irods_datasource.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/jira/__init__.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/jira/client.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/jira/converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/jira/factory.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/jira/filter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/jira/jira_datasource.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/jira/mapper.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/jira/parser.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/jira/sort.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/json/__init__.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/json/json_datasource.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/json/s3_json_datasource.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/labwhere/__init__.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/labwhere/client.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/labwhere/converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/labwhere/factory.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/labwhere/labwhere_datasource.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/labwhere/parser.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/markdown.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/mlwh/__init__.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/mlwh/mlwh_datasource.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/prefect/__init__.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/prefect/converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/prefect/factory.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/prefect/filter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/prefect/prefect_datasource.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/prefect/prefect_object.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/s3/__init__.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/s3/converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/s3/factory.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/s3/parser.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/s3/s3_datasource.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sciops/__init__.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sciops/configuration.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sciops/consumer.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sciops/message_builder.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sciops/messages.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sciops/response_processors.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sciops/sequencing_datasource.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/services/__init__.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/services/s3_client.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sources/__init__.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sources/benchling.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sources/benchling_warehouse.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sources/bioscan.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sources/bioscan_extra.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sources/bioscan_image.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sources/bioscan_qc.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sources/bold.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sources/copo.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sources/defaults.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sources/elastic.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sources/ena.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sources/gap.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sources/genome_notes.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sources/goat.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sources/grit.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sources/informatics.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sources/labwhere.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sources/mlwh.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sources/portal.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sources/portal_attributes.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sources/portaldb.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sources/prefect.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sources/sciops.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sources/sts.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sources/sts_legacy.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sources/tolid.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sources/tolqc.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sources/tolqc_legacy.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sources/treeofsex.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sources/uksi_qc.py.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sources/workflows.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sql/__init__.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sql/action/__init__.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sql/action/factory.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sql/auth/__init__.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sql/auth/blueprint.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sql/auth/models.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sql/cast.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sql/database.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sql/ds_session.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sql/exception.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sql/ext.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sql/factory.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sql/filter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sql/model.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sql/pipeline_step/__init__.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sql/relationship.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sql/session.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sql/sort.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sql/sql_converter.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sql/sql_datasource.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sql/standard/__init__.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sql/standard/factory.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/status/__init__.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/status/status_datasource.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sts/__init__.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sts/sts.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sts/sts_datasource.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/sts/sts_requests.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/treeval/__init__.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/treeval/treeval_datasource.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/utils/__init__.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/utils/csv.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/utils/s3.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/validators/allowed_keys.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/validators/allowed_values.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/validators/allowed_values_from_datasource.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/validators/assert_on_condition.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/validators/converter_and_validate.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/validators/ena_checklist.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/validators/ena_submittable.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/validators/interfaces/__init__.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/validators/interfaces/condition_evaluator.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/validators/min_one_valid_value.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/validators/mutually_exclusive.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/validators/regex.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/validators/regex_by_value.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/validators/specimens_have_same_taxon.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/validators/sts_fields.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/validators/tolid.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/validators/types.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/validators/unique_values.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/validators/unique_whole_organisms.py +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol_sdk.egg-info/dependency_links.txt +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol_sdk.egg-info/entry_points.txt +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol_sdk.egg-info/requires.txt +0 -0
- {tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol_sdk.egg-info/top_level.txt +0 -0
|
@@ -56,3 +56,4 @@ from .sts_sample_to_casm_benchling_converter import StsSampleToCasmBenchlingConv
|
|
|
56
56
|
from .treeofsex_species_to_treeofsexwh_species_converter import TreeofsexSpeciesToTreeofsexwhSpeciesConverter # noqa F401
|
|
57
57
|
from .treeofsex_upload_to_treeofsex_attribute_converter import TreeofsexUploadToTreeofsexAttributeConverter # noqa F401
|
|
58
58
|
from .skip_null_fields_converter import SkipNullFieldsConverter # noqa F401
|
|
59
|
+
from .auto_detect_manifest_type_converter import AutoDetectManifestTypeConverter # noqa F401
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# SPDX-FileCopyrightText: 2025 Genome Research Ltd.
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
|
|
4
|
+
import re
|
|
5
|
+
from dataclasses import dataclass
|
|
6
|
+
from typing import Iterable
|
|
7
|
+
|
|
8
|
+
from tol.core import DataObject, DataObjectToDataObjectOrUpdateConverter
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class AutoDetectManifestTypeConverter(DataObjectToDataObjectOrUpdateConverter):
|
|
12
|
+
|
|
13
|
+
@dataclass(slots=True, frozen=True, kw_only=True)
|
|
14
|
+
class Config:
|
|
15
|
+
rack_or_plate: str
|
|
16
|
+
|
|
17
|
+
__slots__ = ['__config']
|
|
18
|
+
__config: Config
|
|
19
|
+
|
|
20
|
+
def __init__(self, data_object_factory, config: Config) -> None:
|
|
21
|
+
super().__init__(data_object_factory)
|
|
22
|
+
self.__config = config
|
|
23
|
+
self._data_object_factory = data_object_factory
|
|
24
|
+
|
|
25
|
+
def convert(self, data_object: DataObject) -> Iterable[DataObject]:
|
|
26
|
+
"""
|
|
27
|
+
converting the samples DataObject into ENA format
|
|
28
|
+
"""
|
|
29
|
+
s = data_object
|
|
30
|
+
attributes = {}
|
|
31
|
+
rack_or_plate_based_manifest = bool(
|
|
32
|
+
re.fullmatch(r'^[A-P][12]?[0-9]$',
|
|
33
|
+
s.attributes.get(self.__config.rack_or_plate))
|
|
34
|
+
)
|
|
35
|
+
|
|
36
|
+
if rack_or_plate_based_manifest:
|
|
37
|
+
attributes['manifest_type'] = 'PLATE_WELL'
|
|
38
|
+
else:
|
|
39
|
+
attributes['manifest_type'] = 'RACK_TUBE'
|
|
40
|
+
|
|
41
|
+
ret = self._data_object_factory(
|
|
42
|
+
data_object.type,
|
|
43
|
+
s.id,
|
|
44
|
+
attributes=attributes,
|
|
45
|
+
)
|
|
46
|
+
yield ret
|
|
@@ -9,7 +9,7 @@ from dataclasses import dataclass
|
|
|
9
9
|
from datetime import datetime
|
|
10
10
|
from typing import Any, Dict, Iterator, List
|
|
11
11
|
|
|
12
|
-
from sqlalchemy import ForeignKey, UniqueConstraint
|
|
12
|
+
from sqlalchemy import ForeignKey, Text, UniqueConstraint
|
|
13
13
|
from sqlalchemy.dialects.postgresql import JSONB
|
|
14
14
|
from sqlalchemy.orm import (
|
|
15
15
|
Mapped,
|
|
@@ -121,6 +121,11 @@ def create_pipeline_step_models(
|
|
|
121
121
|
nullable=False
|
|
122
122
|
)
|
|
123
123
|
|
|
124
|
+
description: Mapped[str | None] = mapped_column(
|
|
125
|
+
Text,
|
|
126
|
+
nullable=True
|
|
127
|
+
)
|
|
128
|
+
|
|
124
129
|
is_visible: Mapped[bool] = mapped_column(
|
|
125
130
|
nullable=False,
|
|
126
131
|
default=True
|
|
@@ -20,3 +20,5 @@ from .unique_values import UniqueValuesValidator # noqa
|
|
|
20
20
|
from .unique_whole_organisms import UniqueWholeOrganismsValidator # noqa
|
|
21
21
|
from .interfaces import Condition # noqa
|
|
22
22
|
from .min_one_valid_value import MinOneValidValueValidator # noqa
|
|
23
|
+
from .value_check import ValueCheckValidator # noqa
|
|
24
|
+
from .unique_value_check import UniqueValueCheckValidator # noqa
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# SPDX-FileCopyrightText: 2025 Genome Research Ltd.
|
|
2
|
+
#
|
|
3
|
+
# SPDX-License-Identifier: MIT
|
|
4
|
+
|
|
5
|
+
from dataclasses import dataclass
|
|
6
|
+
|
|
7
|
+
from tol.core import Validator
|
|
8
|
+
from tol.core.data_object import DataObject
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class UniqueValueCheckValidator(Validator):
|
|
12
|
+
"""
|
|
13
|
+
Validates an incoming stream of `DataObject` instances.
|
|
14
|
+
For each data object (sample) it checks if the GAL column has only one value
|
|
15
|
+
"""
|
|
16
|
+
@dataclass(slots=True, frozen=True, kw_only=True)
|
|
17
|
+
class Config:
|
|
18
|
+
field: str
|
|
19
|
+
|
|
20
|
+
__slots__ = ['__config', '_cached']
|
|
21
|
+
__config: Config
|
|
22
|
+
_cached: str | None
|
|
23
|
+
|
|
24
|
+
def __init__(self, config: Config, **kwargs) -> None:
|
|
25
|
+
super().__init__()
|
|
26
|
+
self.__config = config
|
|
27
|
+
self._cached = None
|
|
28
|
+
|
|
29
|
+
def _validate_data_object(self, obj: DataObject) -> None:
|
|
30
|
+
# This function is used to check if the data object has a single value for GAL column
|
|
31
|
+
|
|
32
|
+
if not self._cached:
|
|
33
|
+
self._cached = obj.attributes.get(self.__config.field)
|
|
34
|
+
|
|
35
|
+
else:
|
|
36
|
+
if obj.attributes.get(self.__config.field) != self._cached:
|
|
37
|
+
self.add_error(
|
|
38
|
+
object_id=obj.id,
|
|
39
|
+
detail=f'More than one value detected in {self.__config.field}',
|
|
40
|
+
field=self.__config.field,
|
|
41
|
+
)
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# SPDX-FileCopyrightText: 2025 Genome Research Ltd.
|
|
2
|
+
#
|
|
3
|
+
# SPDX-License-Identifier: MIT
|
|
4
|
+
|
|
5
|
+
from dataclasses import dataclass
|
|
6
|
+
|
|
7
|
+
from tol.core import Validator
|
|
8
|
+
from tol.core.data_object import DataObject
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class ValueCheckValidator(Validator):
|
|
12
|
+
"""
|
|
13
|
+
Validates an incoming stream of `DataObject` instances.
|
|
14
|
+
For each data object (sample) it checks if it is a SYMBIONT
|
|
15
|
+
"""
|
|
16
|
+
@dataclass(slots=True, frozen=True, kw_only=True)
|
|
17
|
+
class Config:
|
|
18
|
+
field: str
|
|
19
|
+
value: str
|
|
20
|
+
|
|
21
|
+
__slots__ = ['__config']
|
|
22
|
+
__config: Config
|
|
23
|
+
|
|
24
|
+
def __init__(self, config: Config, **kwargs) -> None:
|
|
25
|
+
super().__init__()
|
|
26
|
+
self.__config = config
|
|
27
|
+
|
|
28
|
+
def _validate_data_object(self, obj: DataObject) -> None:
|
|
29
|
+
# This function is used to check if the data object is SYMBIONT or not
|
|
30
|
+
|
|
31
|
+
if obj.attributes.get(self.__config.field) == self.__config.value:
|
|
32
|
+
self.add_error(
|
|
33
|
+
object_id=obj.id,
|
|
34
|
+
detail=f'{self.__config.value} is detected',
|
|
35
|
+
field=self.__config.field,
|
|
36
|
+
)
|
|
@@ -155,6 +155,7 @@ src/tol/flows/logger.py
|
|
|
155
155
|
src/tol/flows/secrets.py
|
|
156
156
|
src/tol/flows/sequencing_submissions.py
|
|
157
157
|
src/tol/flows/converters/__init__.py
|
|
158
|
+
src/tol/flows/converters/auto_detect_manifest_type_converter.py
|
|
158
159
|
src/tol/flows/converters/benchling_entity_to_benchling_worklist_item_converter_factory.py
|
|
159
160
|
src/tol/flows/converters/benchling_extraction_to_elastic_extraction_converter.py
|
|
160
161
|
src/tol/flows/converters/benchling_extraction_to_elastic_sequencing_request_converter.py
|
|
@@ -343,8 +344,10 @@ src/tol/validators/specimens_have_same_taxon.py
|
|
|
343
344
|
src/tol/validators/sts_fields.py
|
|
344
345
|
src/tol/validators/tolid.py
|
|
345
346
|
src/tol/validators/types.py
|
|
347
|
+
src/tol/validators/unique_value_check.py
|
|
346
348
|
src/tol/validators/unique_values.py
|
|
347
349
|
src/tol/validators/unique_whole_organisms.py
|
|
350
|
+
src/tol/validators/value_check.py
|
|
348
351
|
src/tol/validators/interfaces/__init__.py
|
|
349
352
|
src/tol/validators/interfaces/condition_evaluator.py
|
|
350
353
|
src/tol_sdk.egg-info/PKG-INFO
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/benchling/sql/extraction_extraction_type_pooled_dna.sql
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/benchling/sql/sequencing_request_sequencing_platform_hic.sql
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tol_sdk-1.8.2 → tol_sdk-1.8.3}/src/tol/benchling/sql/sequencing_request_sequencing_platform_wgs.sql
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|