arctrl 3.0.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- arctrl/__init__.py +23 -0
- arctrl/cwl.py +12 -0
- arctrl/py/CWL/__init__.py +0 -0
- arctrl/py/CWL/cwlprocessing_unit.py +221 -0
- arctrl/py/CWL/cwltypes.py +364 -0
- arctrl/py/CWL/decode.py +3532 -0
- arctrl/py/CWL/encode.py +1905 -0
- arctrl/py/CWL/expression_tool_description.py +192 -0
- arctrl/py/CWL/hash_helpers.py +60 -0
- arctrl/py/CWL/inputs.py +122 -0
- arctrl/py/CWL/operation_description.py +169 -0
- arctrl/py/CWL/outputs.py +171 -0
- arctrl/py/CWL/parameter_reference.py +74 -0
- arctrl/py/CWL/requirements.py +350 -0
- arctrl/py/CWL/tool_description.py +192 -0
- arctrl/py/CWL/workflow_description.py +181 -0
- arctrl/py/CWL/workflow_steps.py +354 -0
- arctrl/py/Contract/__init__.py +0 -0
- arctrl/py/Contract/arc.py +89 -0
- arctrl/py/Contract/arc_assay.py +125 -0
- arctrl/py/Contract/arc_investigation.py +88 -0
- arctrl/py/Contract/arc_run.py +291 -0
- arctrl/py/Contract/arc_study.py +126 -0
- arctrl/py/Contract/arc_workflow.py +213 -0
- arctrl/py/Contract/contract.py +153 -0
- arctrl/py/Contract/datamap.py +396 -0
- arctrl/py/Contract/git.py +116 -0
- arctrl/py/Contract/license.py +58 -0
- arctrl/py/Contract/validation_packages_config.py +107 -0
- arctrl/py/ContractIO/__init__.py +0 -0
- arctrl/py/ContractIO/contract_io.py +350 -0
- arctrl/py/ContractIO/file_system_helper.py +264 -0
- arctrl/py/Conversion/__init__.py +0 -0
- arctrl/py/Conversion/assay.py +151 -0
- arctrl/py/Conversion/basic.py +559 -0
- arctrl/py/Conversion/column_index.py +91 -0
- arctrl/py/Conversion/datamap.py +36 -0
- arctrl/py/Conversion/date_time.py +32 -0
- arctrl/py/Conversion/investigation.py +171 -0
- arctrl/py/Conversion/person.py +148 -0
- arctrl/py/Conversion/process.py +828 -0
- arctrl/py/Conversion/run.py +367 -0
- arctrl/py/Conversion/scholarly_article.py +163 -0
- arctrl/py/Conversion/study.py +99 -0
- arctrl/py/Conversion/table.py +229 -0
- arctrl/py/Conversion/workflow.py +680 -0
- arctrl/py/Core/Helper/__init__.py +0 -0
- arctrl/py/Core/Helper/collections_.py +512 -0
- arctrl/py/Core/Helper/date_time.py +26 -0
- arctrl/py/Core/Helper/hash_codes.py +60 -0
- arctrl/py/Core/Helper/identifier.py +290 -0
- arctrl/py/Core/Helper/orcid.py +42 -0
- arctrl/py/Core/Helper/printer.py +13 -0
- arctrl/py/Core/Helper/regex.py +554 -0
- arctrl/py/Core/Helper/sem_ver.py +71 -0
- arctrl/py/Core/Helper/url.py +148 -0
- arctrl/py/Core/Process/__init__.py +0 -0
- arctrl/py/Core/Process/column_index.py +280 -0
- arctrl/py/Core/Process/component.py +200 -0
- arctrl/py/Core/Process/factor.py +151 -0
- arctrl/py/Core/Process/factor_value.py +182 -0
- arctrl/py/Core/Process/material.py +74 -0
- arctrl/py/Core/Process/material_attribute.py +95 -0
- arctrl/py/Core/Process/material_attribute_value.py +184 -0
- arctrl/py/Core/Process/material_type.py +45 -0
- arctrl/py/Core/Process/process.py +477 -0
- arctrl/py/Core/Process/process_input.py +265 -0
- arctrl/py/Core/Process/process_output.py +235 -0
- arctrl/py/Core/Process/process_parameter_value.py +200 -0
- arctrl/py/Core/Process/process_sequence.py +435 -0
- arctrl/py/Core/Process/protocol.py +175 -0
- arctrl/py/Core/Process/protocol_parameter.py +98 -0
- arctrl/py/Core/Process/sample.py +82 -0
- arctrl/py/Core/Process/source.py +62 -0
- arctrl/py/Core/Table/__init__.py +0 -0
- arctrl/py/Core/Table/arc_table.py +1206 -0
- arctrl/py/Core/Table/arc_table_aux.py +1308 -0
- arctrl/py/Core/Table/arc_tables.py +574 -0
- arctrl/py/Core/Table/composite_cell.py +319 -0
- arctrl/py/Core/Table/composite_column.py +73 -0
- arctrl/py/Core/Table/composite_header.py +739 -0
- arctrl/py/Core/__init__.py +0 -0
- arctrl/py/Core/arc_types.py +5312 -0
- arctrl/py/Core/comment.py +128 -0
- arctrl/py/Core/comment_list.py +127 -0
- arctrl/py/Core/conversion.py +1375 -0
- arctrl/py/Core/data.py +247 -0
- arctrl/py/Core/data_context.py +157 -0
- arctrl/py/Core/data_file.py +112 -0
- arctrl/py/Core/datamap.py +217 -0
- arctrl/py/Core/identifier_setters.py +43 -0
- arctrl/py/Core/iproperty_value.py +36 -0
- arctrl/py/Core/ontology_annotation.py +298 -0
- arctrl/py/Core/ontology_source_reference.py +114 -0
- arctrl/py/Core/person.py +259 -0
- arctrl/py/Core/publication.py +161 -0
- arctrl/py/Core/template.py +231 -0
- arctrl/py/Core/templates.py +148 -0
- arctrl/py/Core/uri.py +11 -0
- arctrl/py/Core/value.py +188 -0
- arctrl/py/FileSystem/__init__.py +0 -0
- arctrl/py/FileSystem/commit.py +21 -0
- arctrl/py/FileSystem/default_gitattributes.py +1 -0
- arctrl/py/FileSystem/default_gitignore.py +1 -0
- arctrl/py/FileSystem/default_license.py +1 -0
- arctrl/py/FileSystem/file_system.py +58 -0
- arctrl/py/FileSystem/file_system_tree.py +483 -0
- arctrl/py/FileSystem/path.py +266 -0
- arctrl/py/Json/Datamap/__init__.py +0 -0
- arctrl/py/Json/Datamap/data_context.py +101 -0
- arctrl/py/Json/Datamap/datamap.py +53 -0
- arctrl/py/Json/Process/__init__.py +0 -0
- arctrl/py/Json/Process/assay_materials.py +46 -0
- arctrl/py/Json/Process/component.py +125 -0
- arctrl/py/Json/Process/factor.py +107 -0
- arctrl/py/Json/Process/factor_value.py +101 -0
- arctrl/py/Json/Process/material.py +226 -0
- arctrl/py/Json/Process/material_attribute.py +79 -0
- arctrl/py/Json/Process/material_attribute_value.py +101 -0
- arctrl/py/Json/Process/material_type.py +53 -0
- arctrl/py/Json/Process/process.py +296 -0
- arctrl/py/Json/Process/process_input.py +83 -0
- arctrl/py/Json/Process/process_output.py +67 -0
- arctrl/py/Json/Process/process_parameter_value.py +81 -0
- arctrl/py/Json/Process/protocol.py +354 -0
- arctrl/py/Json/Process/protocol_parameter.py +91 -0
- arctrl/py/Json/Process/sample.py +277 -0
- arctrl/py/Json/Process/source.py +214 -0
- arctrl/py/Json/Process/study_materials.py +52 -0
- arctrl/py/Json/Process/value.py +56 -0
- arctrl/py/Json/ROCrate/__init__.py +0 -0
- arctrl/py/Json/ROCrate/ldcontext.py +143 -0
- arctrl/py/Json/ROCrate/ldgraph.py +117 -0
- arctrl/py/Json/ROCrate/ldnode.py +304 -0
- arctrl/py/Json/ROCrate/ldref.py +44 -0
- arctrl/py/Json/ROCrate/ldvalue.py +102 -0
- arctrl/py/Json/Table/__init__.py +0 -0
- arctrl/py/Json/Table/arc_table.py +375 -0
- arctrl/py/Json/Table/cell_table.py +83 -0
- arctrl/py/Json/Table/composite_cell.py +136 -0
- arctrl/py/Json/Table/composite_header.py +67 -0
- arctrl/py/Json/Table/iotype.py +24 -0
- arctrl/py/Json/Table/oatable.py +82 -0
- arctrl/py/Json/Table/templates.py +281 -0
- arctrl/py/Json/__init__.py +0 -0
- arctrl/py/Json/assay.py +600 -0
- arctrl/py/Json/comment.py +206 -0
- arctrl/py/Json/context/rocrate/__init__.py +0 -0
- arctrl/py/Json/context/rocrate/isa_assay_context.py +101 -0
- arctrl/py/Json/context/rocrate/isa_comment_context.py +60 -0
- arctrl/py/Json/context/rocrate/isa_component_context.py +77 -0
- arctrl/py/Json/context/rocrate/isa_data_context.py +74 -0
- arctrl/py/Json/context/rocrate/isa_factor_context.py +74 -0
- arctrl/py/Json/context/rocrate/isa_factor_value_context.py +84 -0
- arctrl/py/Json/context/rocrate/isa_investigation_context.py +110 -0
- arctrl/py/Json/context/rocrate/isa_material_attribute_context.py +64 -0
- arctrl/py/Json/context/rocrate/isa_material_attribute_value_context.py +80 -0
- arctrl/py/Json/context/rocrate/isa_material_context.py +71 -0
- arctrl/py/Json/context/rocrate/isa_ontology_annotation_context.py +68 -0
- arctrl/py/Json/context/rocrate/isa_ontology_source_reference_context.py +75 -0
- arctrl/py/Json/context/rocrate/isa_organization_context.py +55 -0
- arctrl/py/Json/context/rocrate/isa_person_context.py +131 -0
- arctrl/py/Json/context/rocrate/isa_process_context.py +94 -0
- arctrl/py/Json/context/rocrate/isa_process_parameter_value_context.py +80 -0
- arctrl/py/Json/context/rocrate/isa_protocol_context.py +97 -0
- arctrl/py/Json/context/rocrate/isa_protocol_parameter_context.py +64 -0
- arctrl/py/Json/context/rocrate/isa_publication_context.py +78 -0
- arctrl/py/Json/context/rocrate/isa_sample_context.py +65 -0
- arctrl/py/Json/context/rocrate/isa_source_context.py +66 -0
- arctrl/py/Json/context/rocrate/isa_study_context.py +125 -0
- arctrl/py/Json/context/rocrate/property_value_context.py +73 -0
- arctrl/py/Json/context/rocrate/rocrate_context.py +81 -0
- arctrl/py/Json/converter_options.py +23 -0
- arctrl/py/Json/data.py +356 -0
- arctrl/py/Json/data_file.py +63 -0
- arctrl/py/Json/decode.py +271 -0
- arctrl/py/Json/encode.py +140 -0
- arctrl/py/Json/idtable.py +44 -0
- arctrl/py/Json/investigation.py +695 -0
- arctrl/py/Json/ontology_annotation.py +404 -0
- arctrl/py/Json/ontology_source_reference.py +255 -0
- arctrl/py/Json/person.py +658 -0
- arctrl/py/Json/property_value.py +359 -0
- arctrl/py/Json/publication.py +279 -0
- arctrl/py/Json/run.py +275 -0
- arctrl/py/Json/string_table.py +87 -0
- arctrl/py/Json/study.py +793 -0
- arctrl/py/Json/workflow.py +307 -0
- arctrl/py/JsonIO/Process/__init__.py +0 -0
- arctrl/py/JsonIO/Process/component.py +60 -0
- arctrl/py/JsonIO/Process/factor.py +36 -0
- arctrl/py/JsonIO/Process/factor_value.py +38 -0
- arctrl/py/JsonIO/Process/material.py +60 -0
- arctrl/py/JsonIO/Process/material_attribute.py +38 -0
- arctrl/py/JsonIO/Process/material_attribute_value.py +60 -0
- arctrl/py/JsonIO/Process/material_type.py +36 -0
- arctrl/py/JsonIO/Process/process.py +60 -0
- arctrl/py/JsonIO/Process/process_input.py +38 -0
- arctrl/py/JsonIO/Process/process_output.py +60 -0
- arctrl/py/JsonIO/Process/process_parameter_value.py +60 -0
- arctrl/py/JsonIO/Process/process_sequence.py +71 -0
- arctrl/py/JsonIO/Process/protocol.py +60 -0
- arctrl/py/JsonIO/Process/protocol_parameter.py +36 -0
- arctrl/py/JsonIO/Process/sample.py +60 -0
- arctrl/py/JsonIO/Process/source.py +60 -0
- arctrl/py/JsonIO/Process/study_materials.py +52 -0
- arctrl/py/JsonIO/Process/value.py +32 -0
- arctrl/py/JsonIO/Table/__init__.py +0 -0
- arctrl/py/JsonIO/Table/arc_table.py +103 -0
- arctrl/py/JsonIO/Table/composite_cell.py +36 -0
- arctrl/py/JsonIO/Table/composite_header.py +36 -0
- arctrl/py/JsonIO/Table/compression.py +67 -0
- arctrl/py/JsonIO/Table/iotype.py +36 -0
- arctrl/py/JsonIO/Table/templates.py +113 -0
- arctrl/py/JsonIO/__init__.py +0 -0
- arctrl/py/JsonIO/assay.py +113 -0
- arctrl/py/JsonIO/comment.py +80 -0
- arctrl/py/JsonIO/data.py +60 -0
- arctrl/py/JsonIO/data_file.py +58 -0
- arctrl/py/JsonIO/datamap.py +36 -0
- arctrl/py/JsonIO/decode.py +9 -0
- arctrl/py/JsonIO/encode.py +1 -0
- arctrl/py/JsonIO/investigation.py +91 -0
- arctrl/py/JsonIO/ldobject.py +106 -0
- arctrl/py/JsonIO/ontology_annotation.py +80 -0
- arctrl/py/JsonIO/ontology_source_reference.py +80 -0
- arctrl/py/JsonIO/person.py +82 -0
- arctrl/py/JsonIO/publication.py +82 -0
- arctrl/py/JsonIO/run.py +68 -0
- arctrl/py/JsonIO/study.py +114 -0
- arctrl/py/JsonIO/workflow.py +68 -0
- arctrl/py/ROCrate/ISAProfile/__init__.py +0 -0
- arctrl/py/ROCrate/ISAProfile/assay.py +70 -0
- arctrl/py/ROCrate/ISAProfile/data.py +65 -0
- arctrl/py/ROCrate/ISAProfile/dataset.py +24 -0
- arctrl/py/ROCrate/ISAProfile/investigation.py +73 -0
- arctrl/py/ROCrate/ISAProfile/lab_process.py +162 -0
- arctrl/py/ROCrate/ISAProfile/lab_protocol.py +37 -0
- arctrl/py/ROCrate/ISAProfile/person.py +72 -0
- arctrl/py/ROCrate/ISAProfile/property_value.py +98 -0
- arctrl/py/ROCrate/ISAProfile/sample.py +64 -0
- arctrl/py/ROCrate/ISAProfile/scholarly_article.py +98 -0
- arctrl/py/ROCrate/ISAProfile/study.py +74 -0
- arctrl/py/ROCrate/LDTypes/__init__.py +0 -0
- arctrl/py/ROCrate/LDTypes/comment.py +131 -0
- arctrl/py/ROCrate/LDTypes/computational_workflow.py +455 -0
- arctrl/py/ROCrate/LDTypes/computer_language.py +269 -0
- arctrl/py/ROCrate/LDTypes/create_action.py +303 -0
- arctrl/py/ROCrate/LDTypes/creative_work.py +566 -0
- arctrl/py/ROCrate/LDTypes/dataset.py +943 -0
- arctrl/py/ROCrate/LDTypes/defined_term.py +131 -0
- arctrl/py/ROCrate/LDTypes/file.py +281 -0
- arctrl/py/ROCrate/LDTypes/formal_parameter.py +431 -0
- arctrl/py/ROCrate/LDTypes/lab_process.py +352 -0
- arctrl/py/ROCrate/LDTypes/lab_protocol.py +395 -0
- arctrl/py/ROCrate/LDTypes/organization.py +83 -0
- arctrl/py/ROCrate/LDTypes/person.py +484 -0
- arctrl/py/ROCrate/LDTypes/postal_address.py +195 -0
- arctrl/py/ROCrate/LDTypes/property_value.py +952 -0
- arctrl/py/ROCrate/LDTypes/sample.py +202 -0
- arctrl/py/ROCrate/LDTypes/scholarly_article.py +229 -0
- arctrl/py/ROCrate/LDTypes/software_source_code.py +310 -0
- arctrl/py/ROCrate/LDTypes/workflow_invocation.py +48 -0
- arctrl/py/ROCrate/LDTypes/workflow_protocol.py +52 -0
- arctrl/py/ROCrate/__init__.py +0 -0
- arctrl/py/ROCrate/arc_rocrate_metadata.py +39 -0
- arctrl/py/ROCrate/dyn_obj_extensions.py +1 -0
- arctrl/py/ROCrate/helper.py +8 -0
- arctrl/py/ROCrate/ldcontext.py +406 -0
- arctrl/py/ROCrate/ldobject.py +1247 -0
- arctrl/py/ROCrate/rocrate_context.py +51 -0
- arctrl/py/Spreadsheet/AnnotationTable/__init__.py +0 -0
- arctrl/py/Spreadsheet/AnnotationTable/arc_table.py +203 -0
- arctrl/py/Spreadsheet/AnnotationTable/composite_cell.py +78 -0
- arctrl/py/Spreadsheet/AnnotationTable/composite_column.py +305 -0
- arctrl/py/Spreadsheet/AnnotationTable/composite_header.py +623 -0
- arctrl/py/Spreadsheet/DatamapTable/__init__.py +0 -0
- arctrl/py/Spreadsheet/DatamapTable/datamap_column.py +114 -0
- arctrl/py/Spreadsheet/DatamapTable/datamap_header.py +621 -0
- arctrl/py/Spreadsheet/DatamapTable/datamap_table.py +118 -0
- arctrl/py/Spreadsheet/Metadata/__init__.py +0 -0
- arctrl/py/Spreadsheet/Metadata/assays.py +125 -0
- arctrl/py/Spreadsheet/Metadata/comment.py +77 -0
- arctrl/py/Spreadsheet/Metadata/contacts.py +134 -0
- arctrl/py/Spreadsheet/Metadata/conversions.py +190 -0
- arctrl/py/Spreadsheet/Metadata/design_descriptors.py +34 -0
- arctrl/py/Spreadsheet/Metadata/factors.py +107 -0
- arctrl/py/Spreadsheet/Metadata/ontology_annotation.py +88 -0
- arctrl/py/Spreadsheet/Metadata/ontology_source_reference.py +96 -0
- arctrl/py/Spreadsheet/Metadata/protocols.py +146 -0
- arctrl/py/Spreadsheet/Metadata/publication.py +122 -0
- arctrl/py/Spreadsheet/Metadata/run.py +122 -0
- arctrl/py/Spreadsheet/Metadata/sparse_table.py +499 -0
- arctrl/py/Spreadsheet/Metadata/study.py +312 -0
- arctrl/py/Spreadsheet/Metadata/workflow.py +159 -0
- arctrl/py/Spreadsheet/__init__.py +0 -0
- arctrl/py/Spreadsheet/arc_assay.py +233 -0
- arctrl/py/Spreadsheet/arc_investigation.py +435 -0
- arctrl/py/Spreadsheet/arc_run.py +190 -0
- arctrl/py/Spreadsheet/arc_study.py +144 -0
- arctrl/py/Spreadsheet/arc_workflow.py +177 -0
- arctrl/py/Spreadsheet/assembly_info.py +1 -0
- arctrl/py/Spreadsheet/collection_aux.py +167 -0
- arctrl/py/Spreadsheet/datamap.py +43 -0
- arctrl/py/Spreadsheet/template.py +460 -0
- arctrl/py/ValidationPackages/__init__.py +0 -0
- arctrl/py/ValidationPackages/validation_package.py +82 -0
- arctrl/py/ValidationPackages/validation_packages_config.py +132 -0
- arctrl/py/WebRequest/__init__.py +0 -0
- arctrl/py/WebRequest/web_request.py +9 -0
- arctrl/py/WebRequest/web_request_py.py +135 -0
- arctrl/py/WorkflowGraph/__init__.py +0 -0
- arctrl/py/WorkflowGraph/adapters.py +141 -0
- arctrl/py/WorkflowGraph/build_options.py +45 -0
- arctrl/py/WorkflowGraph/builder.py +720 -0
- arctrl/py/WorkflowGraph/graph_types.py +260 -0
- arctrl/py/WorkflowGraph/query_helpers.py +76 -0
- arctrl/py/WorkflowGraph/reference_parsing.py +59 -0
- arctrl/py/WorkflowGraph/visualization_siren.py +574 -0
- arctrl/py/WorkflowGraph/workflow_graph.py +119 -0
- arctrl/py/Yaml/__init__.py +0 -0
- arctrl/py/Yaml/decode.py +1 -0
- arctrl/py/Yaml/encode.py +10 -0
- arctrl/py/Yaml/validation_package.py +77 -0
- arctrl/py/Yaml/validation_packages_config.py +86 -0
- arctrl/py/__init__.py +0 -0
- arctrl/py/arc.py +1891 -0
- arctrl/py/column_index.py +280 -0
- arctrl/py/conversion.py +142 -0
- arctrl/py/cross_async.py +76 -0
- arctrl/py/cwlrun_resolver.py +228 -0
- arctrl/py/fable_modules/dynamic_obj/__init__.py +0 -0
- arctrl/py/fable_modules/dynamic_obj/dyn_obj.py +136 -0
- arctrl/py/fable_modules/dynamic_obj/dynamic_obj.py +415 -0
- arctrl/py/fable_modules/dynamic_obj/fable_js.py +1 -0
- arctrl/py/fable_modules/dynamic_obj/fable_py.py +288 -0
- arctrl/py/fable_modules/dynamic_obj/hash_codes.py +82 -0
- arctrl/py/fable_modules/dynamic_obj/property_helper.py +25 -0
- arctrl/py/fable_modules/dynamic_obj/reflection_utils.py +87 -0
- arctrl/py/fable_modules/fable_library/__init__.py +0 -0
- arctrl/py/fable_modules/fable_library/array_.py +1528 -0
- arctrl/py/fable_modules/fable_library/async_.py +377 -0
- arctrl/py/fable_modules/fable_library/async_builder.py +379 -0
- arctrl/py/fable_modules/fable_library/big_int.py +330 -0
- arctrl/py/fable_modules/fable_library/bit_converter.py +131 -0
- arctrl/py/fable_modules/fable_library/boolean.py +26 -0
- arctrl/py/fable_modules/fable_library/char.py +237 -0
- arctrl/py/fable_modules/fable_library/choice.py +212 -0
- arctrl/py/fable_modules/fable_library/date.py +779 -0
- arctrl/py/fable_modules/fable_library/date_offset.py +79 -0
- arctrl/py/fable_modules/fable_library/decimal_.py +190 -0
- arctrl/py/fable_modules/fable_library/diagnostics.py +54 -0
- arctrl/py/fable_modules/fable_library/double.py +87 -0
- arctrl/py/fable_modules/fable_library/encoding.py +41 -0
- arctrl/py/fable_modules/fable_library/event.py +206 -0
- arctrl/py/fable_modules/fable_library/file.py +107 -0
- arctrl/py/fable_modules/fable_library/fsharp_collections.py +52 -0
- arctrl/py/fable_modules/fable_library/fsharp_core.py +123 -0
- arctrl/py/fable_modules/fable_library/global_.py +63 -0
- arctrl/py/fable_modules/fable_library/guid.py +41 -0
- arctrl/py/fable_modules/fable_library/int32.py +73 -0
- arctrl/py/fable_modules/fable_library/list.py +1788 -0
- arctrl/py/fable_modules/fable_library/long.py +240 -0
- arctrl/py/fable_modules/fable_library/mailbox_processor.py +179 -0
- arctrl/py/fable_modules/fable_library/map.py +1854 -0
- arctrl/py/fable_modules/fable_library/map_util.py +148 -0
- arctrl/py/fable_modules/fable_library/mutable_map.py +397 -0
- arctrl/py/fable_modules/fable_library/mutable_set.py +279 -0
- arctrl/py/fable_modules/fable_library/native.py +45 -0
- arctrl/py/fable_modules/fable_library/numeric.py +46 -0
- arctrl/py/fable_modules/fable_library/observable.py +222 -0
- arctrl/py/fable_modules/fable_library/option.py +128 -0
- arctrl/py/fable_modules/fable_library/path.py +62 -0
- arctrl/py/fable_modules/fable_library/range.py +117 -0
- arctrl/py/fable_modules/fable_library/reflection.py +463 -0
- arctrl/py/fable_modules/fable_library/reg_exp.py +137 -0
- arctrl/py/fable_modules/fable_library/resize_array.py +31 -0
- arctrl/py/fable_modules/fable_library/result.py +212 -0
- arctrl/py/fable_modules/fable_library/seq.py +1979 -0
- arctrl/py/fable_modules/fable_library/seq2.py +221 -0
- arctrl/py/fable_modules/fable_library/set.py +2414 -0
- arctrl/py/fable_modules/fable_library/singleton_local_time_zone.py +36 -0
- arctrl/py/fable_modules/fable_library/string_.py +573 -0
- arctrl/py/fable_modules/fable_library/system_collections_generic.py +462 -0
- arctrl/py/fable_modules/fable_library/system_text.py +237 -0
- arctrl/py/fable_modules/fable_library/task.py +116 -0
- arctrl/py/fable_modules/fable_library/task_builder.py +122 -0
- arctrl/py/fable_modules/fable_library/thread.py +5 -0
- arctrl/py/fable_modules/fable_library/time_span.py +283 -0
- arctrl/py/fable_modules/fable_library/timer.py +24 -0
- arctrl/py/fable_modules/fable_library/types.py +401 -0
- arctrl/py/fable_modules/fable_library/uri.py +109 -0
- arctrl/py/fable_modules/fable_library/util.py +2735 -0
- arctrl/py/fable_modules/fable_openpyxl/__init__.py +0 -0
- arctrl/py/fable_modules/fable_openpyxl/openpyxl.py +362 -0
- arctrl/py/fable_modules/fable_python/cognite-sdk/__init__.py +0 -0
- arctrl/py/fable_modules/fable_python/cognite-sdk/cognite_sdk.py +22 -0
- arctrl/py/fable_modules/fable_python/flask/__init__.py +0 -0
- arctrl/py/fable_modules/fable_python/flask/flask.py +34 -0
- arctrl/py/fable_modules/fable_python/jupyter/__init__.py +0 -0
- arctrl/py/fable_modules/fable_python/jupyter/ipy_widgets.py +47 -0
- arctrl/py/fable_modules/fable_python/jupyter/ipython.py +13 -0
- arctrl/py/fable_modules/fable_python/stdlib/__init__.py +0 -0
- arctrl/py/fable_modules/fable_python/stdlib/ast.py +1 -0
- arctrl/py/fable_modules/fable_python/stdlib/asyncio/__init__.py +0 -0
- arctrl/py/fable_modules/fable_python/stdlib/asyncio/events.py +17 -0
- arctrl/py/fable_modules/fable_python/stdlib/asyncio/futures.py +52 -0
- arctrl/py/fable_modules/fable_python/stdlib/asyncio/tasks.py +38 -0
- arctrl/py/fable_modules/fable_python/stdlib/base64_.py +1 -0
- arctrl/py/fable_modules/fable_python/stdlib/builtins_.py +38 -0
- arctrl/py/fable_modules/fable_python/stdlib/html.py +1 -0
- arctrl/py/fable_modules/fable_python/stdlib/json.py +1 -0
- arctrl/py/fable_modules/fable_python/stdlib/math_.py +1 -0
- arctrl/py/fable_modules/fable_python/stdlib/os_.py +1 -0
- arctrl/py/fable_modules/fable_python/stdlib/queue_.py +1 -0
- arctrl/py/fable_modules/fable_python/stdlib/string_.py +1 -0
- arctrl/py/fable_modules/fable_python/stdlib/sys_.py +30 -0
- arctrl/py/fable_modules/fable_python/stdlib/time_.py +1 -0
- arctrl/py/fable_modules/fable_python/stdlib/tk_inter.py +1 -0
- arctrl/py/fable_modules/fs_spreadsheet/Cells/__init__.py +0 -0
- arctrl/py/fable_modules/fs_spreadsheet/Cells/fs_cell.py +340 -0
- arctrl/py/fable_modules/fs_spreadsheet/Cells/fs_cells_collection.py +466 -0
- arctrl/py/fable_modules/fs_spreadsheet/DSL/__init__.py +0 -0
- arctrl/py/fable_modules/fs_spreadsheet/DSL/cell_builder.py +214 -0
- arctrl/py/fable_modules/fs_spreadsheet/DSL/column_builder.py +139 -0
- arctrl/py/fable_modules/fs_spreadsheet/DSL/dsl.py +50 -0
- arctrl/py/fable_modules/fs_spreadsheet/DSL/expression.py +65 -0
- arctrl/py/fable_modules/fs_spreadsheet/DSL/operators.py +9 -0
- arctrl/py/fable_modules/fs_spreadsheet/DSL/row_builder.py +139 -0
- arctrl/py/fable_modules/fs_spreadsheet/DSL/sheet_builder.py +118 -0
- arctrl/py/fable_modules/fs_spreadsheet/DSL/table_builder.py +122 -0
- arctrl/py/fable_modules/fs_spreadsheet/DSL/transform.py +463 -0
- arctrl/py/fable_modules/fs_spreadsheet/DSL/types.py +314 -0
- arctrl/py/fable_modules/fs_spreadsheet/DSL/workbook_builder.py +106 -0
- arctrl/py/fable_modules/fs_spreadsheet/Json/__init__.py +0 -0
- arctrl/py/fable_modules/fs_spreadsheet/Json/cell.py +103 -0
- arctrl/py/fable_modules/fs_spreadsheet/Json/column.py +70 -0
- arctrl/py/fable_modules/fs_spreadsheet/Json/row.py +70 -0
- arctrl/py/fable_modules/fs_spreadsheet/Json/table.py +54 -0
- arctrl/py/fable_modules/fs_spreadsheet/Json/value.py +93 -0
- arctrl/py/fable_modules/fs_spreadsheet/Json/workbook.py +71 -0
- arctrl/py/fable_modules/fs_spreadsheet/Json/worksheet.py +216 -0
- arctrl/py/fable_modules/fs_spreadsheet/Ranges/__init__.py +0 -0
- arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range.py +43 -0
- arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_address.py +190 -0
- arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_base.py +92 -0
- arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_column.py +77 -0
- arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_row.py +48 -0
- arctrl/py/fable_modules/fs_spreadsheet/Tables/__init__.py +0 -0
- arctrl/py/fable_modules/fs_spreadsheet/Tables/fs_table.py +461 -0
- arctrl/py/fable_modules/fs_spreadsheet/Tables/fs_table_field.py +117 -0
- arctrl/py/fable_modules/fs_spreadsheet/Tables/fs_table_row.py +23 -0
- arctrl/py/fable_modules/fs_spreadsheet/__init__.py +0 -0
- arctrl/py/fable_modules/fs_spreadsheet/fs_address.py +236 -0
- arctrl/py/fable_modules/fs_spreadsheet/fs_column.py +172 -0
- arctrl/py/fable_modules/fs_spreadsheet/fs_row.py +183 -0
- arctrl/py/fable_modules/fs_spreadsheet/fs_workbook.py +192 -0
- arctrl/py/fable_modules/fs_spreadsheet/fs_worksheet.py +610 -0
- arctrl/py/fable_modules/fs_spreadsheet/hash_codes.py +60 -0
- arctrl/py/fable_modules/fs_spreadsheet/sheet_builder.py +329 -0
- arctrl/py/fable_modules/fs_spreadsheet_py/__init__.py +0 -0
- arctrl/py/fable_modules/fs_spreadsheet_py/cell.py +60 -0
- arctrl/py/fable_modules/fs_spreadsheet_py/cell_type.py +50 -0
- arctrl/py/fable_modules/fs_spreadsheet_py/fs_extension.py +60 -0
- arctrl/py/fable_modules/fs_spreadsheet_py/json.py +47 -0
- arctrl/py/fable_modules/fs_spreadsheet_py/table.py +54 -0
- arctrl/py/fable_modules/fs_spreadsheet_py/workbook.py +41 -0
- arctrl/py/fable_modules/fs_spreadsheet_py/worksheet.py +52 -0
- arctrl/py/fable_modules/fs_spreadsheet_py/xlsx.py +37 -0
- arctrl/py/fable_modules/siren/__init__.py +0 -0
- arctrl/py/fable_modules/siren/config.py +1038 -0
- arctrl/py/fable_modules/siren/formatting.py +1121 -0
- arctrl/py/fable_modules/siren/siren.py +1941 -0
- arctrl/py/fable_modules/siren/siren_types.py +1229 -0
- arctrl/py/fable_modules/siren/theme_variables.py +517 -0
- arctrl/py/fable_modules/siren/util.py +37 -0
- arctrl/py/fable_modules/siren/yaml.py +101 -0
- arctrl/py/fable_modules/thoth_json_core/__init__.py +0 -0
- arctrl/py/fable_modules/thoth_json_core/decode.py +1614 -0
- arctrl/py/fable_modules/thoth_json_core/encode.py +305 -0
- arctrl/py/fable_modules/thoth_json_core/types.py +181 -0
- arctrl/py/fable_modules/thoth_json_python/__init__.py +0 -0
- arctrl/py/fable_modules/thoth_json_python/decode.py +112 -0
- arctrl/py/fable_modules/thoth_json_python/encode.py +72 -0
- arctrl/py/fable_modules/thoth_json_python/python.py +1 -0
- arctrl/py/fable_modules/yamlicious/Interop/__init__.py +0 -0
- arctrl/py/fable_modules/yamlicious/Interop/js_interop.py +1 -0
- arctrl/py/fable_modules/yamlicious/Interop/py_interop.py +7 -0
- arctrl/py/fable_modules/yamlicious/__init__.py +0 -0
- arctrl/py/fable_modules/yamlicious/decode.py +1784 -0
- arctrl/py/fable_modules/yamlicious/encode.py +84 -0
- arctrl/py/fable_modules/yamlicious/flow_to_block.py +994 -0
- arctrl/py/fable_modules/yamlicious/library.py +10 -0
- arctrl/py/fable_modules/yamlicious/persil.py +57 -0
- arctrl/py/fable_modules/yamlicious/preprocessing.py +99 -0
- arctrl/py/fable_modules/yamlicious/reader.py +739 -0
- arctrl/py/fable_modules/yamlicious/regex.py +29 -0
- arctrl/py/fable_modules/yamlicious/regex_active_patterns.py +265 -0
- arctrl/py/fable_modules/yamlicious/writer.py +175 -0
- arctrl/py/fable_modules/yamlicious/yamlicious_types.py +128 -0
- arctrl/py/json.py +389 -0
- arctrl/py/license.py +169 -0
- arctrl/py/rocrate_io.py +242 -0
- arctrl/py/template_web.py +23 -0
- arctrl/py/xlsx.py +212 -0
- arctrl/py/yaml.py +79 -0
- arctrl/rocrate.py +21 -0
- arctrl-3.0.0.dist-info/METADATA +157 -0
- arctrl-3.0.0.dist-info/RECORD +511 -0
- arctrl-3.0.0.dist-info/WHEEL +4 -0
- arctrl-3.0.0.dist-info/licenses/LICENSE +21 -0
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from collections.abc import Callable
|
|
3
|
+
from typing import Any
|
|
4
|
+
from ..fable_modules.fable_library.list import (FSharpList, is_empty, empty, singleton as singleton_1, of_seq)
|
|
5
|
+
from ..fable_modules.fable_library.option import (default_arg, to_array)
|
|
6
|
+
from ..fable_modules.fable_library.seq import (exists, head, try_head, delay, append, singleton, iterate_indexed, map, try_find, choose, try_pick, is_empty as is_empty_1, iterate)
|
|
7
|
+
from ..fable_modules.fable_library.string_ import (starts_with_exact, to_fail, printf, to_console)
|
|
8
|
+
from ..fable_modules.fable_library.types import Array
|
|
9
|
+
from ..fable_modules.fable_library.util import (IEnumerable_1, get_enumerator, IEnumerator, to_enumerable)
|
|
10
|
+
from ..fable_modules.fs_spreadsheet.fs_row import FsRow
|
|
11
|
+
from ..fable_modules.fs_spreadsheet.fs_workbook import FsWorkbook
|
|
12
|
+
from ..fable_modules.fs_spreadsheet.fs_worksheet import FsWorksheet
|
|
13
|
+
from ..Core.arc_types import ArcAssay
|
|
14
|
+
from ..Core.comment import Remark
|
|
15
|
+
from ..Core.datamap import Datamap
|
|
16
|
+
from ..Core.Helper.identifier import create_missing_identifier
|
|
17
|
+
from ..Core.person import Person
|
|
18
|
+
from ..Core.Table.arc_table import ArcTable
|
|
19
|
+
from .AnnotationTable.arc_table import (try_from_fs_worksheet, to_fs_worksheet as to_fs_worksheet_1)
|
|
20
|
+
from .DatamapTable.datamap_table import (try_from_fs_worksheet as try_from_fs_worksheet_1, to_fs_worksheet)
|
|
21
|
+
from .Metadata.assays import (from_rows, to_rows)
|
|
22
|
+
from .Metadata.contacts import (from_rows as from_rows_1, to_rows as to_rows_1)
|
|
23
|
+
from .Metadata.sparse_table import (SparseRowModule_tryGetValueAt, SparseRowModule_fromValues, SparseRowModule_writeToSheet, SparseRowModule_fromFsRow, SparseRowModule_getAllValues, SparseRowModule_fromAllValues)
|
|
24
|
+
|
|
25
|
+
def ArcAssay_fromRows(rows: IEnumerable_1[IEnumerable_1[tuple[int, str]]]) -> ArcAssay:
|
|
26
|
+
def predicate(row: IEnumerable_1[tuple[int, str]], rows: Any=rows) -> bool:
|
|
27
|
+
return starts_with_exact(head(row)[1], "Assay")
|
|
28
|
+
|
|
29
|
+
pattern_input: tuple[str | None, str | None] = (("Assay", "Assay Person")) if exists(predicate, rows) else ((None, None))
|
|
30
|
+
en: IEnumerator[IEnumerable_1[tuple[int, str]]] = get_enumerator(rows)
|
|
31
|
+
def loop(last_row_mut: str | None, assays_mut: FSharpList[ArcAssay], contacts_mut: FSharpList[Person], row_number_mut: int, rows: Any=rows) -> ArcAssay:
|
|
32
|
+
while True:
|
|
33
|
+
(last_row, assays, contacts, row_number) = (last_row_mut, assays_mut, contacts_mut, row_number_mut)
|
|
34
|
+
(pattern_matching_result,) = (None,)
|
|
35
|
+
if last_row is not None:
|
|
36
|
+
def _arrow2001(__unit: None=None, last_row: Any=last_row, assays: Any=assays, contacts: Any=contacts, row_number: Any=row_number) -> bool:
|
|
37
|
+
prefix: str = last_row
|
|
38
|
+
return True if (prefix == "ASSAY") else (prefix == "ASSAY METADATA")
|
|
39
|
+
|
|
40
|
+
if _arrow2001():
|
|
41
|
+
pattern_matching_result = 0
|
|
42
|
+
|
|
43
|
+
elif last_row == "ASSAY PERFORMERS":
|
|
44
|
+
pattern_matching_result = 1
|
|
45
|
+
|
|
46
|
+
else:
|
|
47
|
+
pattern_matching_result = 2
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
else:
|
|
51
|
+
pattern_matching_result = 2
|
|
52
|
+
|
|
53
|
+
if pattern_matching_result == 0:
|
|
54
|
+
pattern_input_1: tuple[str | None, int, FSharpList[Remark], FSharpList[ArcAssay]] = from_rows(pattern_input[0], row_number + 1, en)
|
|
55
|
+
last_row_mut = pattern_input_1[0]
|
|
56
|
+
assays_mut = pattern_input_1[3]
|
|
57
|
+
contacts_mut = contacts
|
|
58
|
+
row_number_mut = pattern_input_1[1]
|
|
59
|
+
continue
|
|
60
|
+
|
|
61
|
+
elif pattern_matching_result == 1:
|
|
62
|
+
pattern_input_2: tuple[str | None, int, FSharpList[Remark], FSharpList[Person]] = from_rows_1(pattern_input[1], row_number + 1, en)
|
|
63
|
+
last_row_mut = pattern_input_2[0]
|
|
64
|
+
assays_mut = assays
|
|
65
|
+
contacts_mut = pattern_input_2[3]
|
|
66
|
+
row_number_mut = pattern_input_2[1]
|
|
67
|
+
continue
|
|
68
|
+
|
|
69
|
+
elif pattern_matching_result == 2:
|
|
70
|
+
(pattern_matching_result_1, assays_2, contacts_2) = (None, None, None)
|
|
71
|
+
if is_empty(assays):
|
|
72
|
+
if is_empty(contacts):
|
|
73
|
+
pattern_matching_result_1 = 0
|
|
74
|
+
|
|
75
|
+
else:
|
|
76
|
+
pattern_matching_result_1 = 1
|
|
77
|
+
assays_2 = assays
|
|
78
|
+
contacts_2 = contacts
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
else:
|
|
82
|
+
pattern_matching_result_1 = 1
|
|
83
|
+
assays_2 = assays
|
|
84
|
+
contacts_2 = contacts
|
|
85
|
+
|
|
86
|
+
if pattern_matching_result_1 == 0:
|
|
87
|
+
return ArcAssay.create(create_missing_identifier())
|
|
88
|
+
|
|
89
|
+
elif pattern_matching_result_1 == 1:
|
|
90
|
+
performers: Array[Person] = list(contacts_2)
|
|
91
|
+
assay: ArcAssay = default_arg(try_head(assays_2), ArcAssay.create(create_missing_identifier()))
|
|
92
|
+
return ArcAssay.set_performers(performers, assay)
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
break
|
|
96
|
+
|
|
97
|
+
if en.System_Collections_IEnumerator_MoveNext():
|
|
98
|
+
return loop(SparseRowModule_tryGetValueAt(0, en.System_Collections_Generic_IEnumerator_1_get_Current()), empty(), empty(), 1)
|
|
99
|
+
|
|
100
|
+
else:
|
|
101
|
+
raise Exception("empty assay metadata sheet")
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
def ArcAssay_toRows(assay: ArcAssay) -> IEnumerable_1[IEnumerable_1[tuple[int, str]]]:
|
|
106
|
+
def _arrow2005(__unit: None=None, assay: Any=assay) -> IEnumerable_1[IEnumerable_1[tuple[int, str]]]:
|
|
107
|
+
def _arrow2004(__unit: None=None) -> IEnumerable_1[IEnumerable_1[tuple[int, str]]]:
|
|
108
|
+
def _arrow2003(__unit: None=None) -> IEnumerable_1[IEnumerable_1[tuple[int, str]]]:
|
|
109
|
+
def _arrow2002(__unit: None=None) -> IEnumerable_1[IEnumerable_1[tuple[int, str]]]:
|
|
110
|
+
return to_rows_1("Assay Person", of_seq(assay.Performers))
|
|
111
|
+
|
|
112
|
+
return append(singleton(SparseRowModule_fromValues(to_enumerable(["ASSAY PERFORMERS"]))), delay(_arrow2002))
|
|
113
|
+
|
|
114
|
+
return append(to_rows("Assay", singleton_1(assay)), delay(_arrow2003))
|
|
115
|
+
|
|
116
|
+
return append(singleton(SparseRowModule_fromValues(to_enumerable(["ASSAY"]))), delay(_arrow2004))
|
|
117
|
+
|
|
118
|
+
return delay(_arrow2005)
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
def ArcAssay_toMetadataSheet(assay: ArcAssay) -> FsWorksheet:
|
|
122
|
+
sheet: FsWorksheet = FsWorksheet("isa_assay")
|
|
123
|
+
def action(row_i: int, r: IEnumerable_1[tuple[int, str]], assay: Any=assay) -> None:
|
|
124
|
+
SparseRowModule_writeToSheet(row_i + 1, r, sheet)
|
|
125
|
+
|
|
126
|
+
iterate_indexed(action, ArcAssay_toRows(assay))
|
|
127
|
+
return sheet
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
def ArcAssay_fromMetadataSheet(sheet: FsWorksheet) -> ArcAssay:
|
|
131
|
+
try:
|
|
132
|
+
rows: IEnumerable_1[IEnumerable_1[tuple[int, str]]] = map(SparseRowModule_fromFsRow, sheet.Rows)
|
|
133
|
+
def predicate(row: IEnumerable_1[tuple[int, str]]) -> bool:
|
|
134
|
+
return starts_with_exact(head(row)[1], "Assay")
|
|
135
|
+
|
|
136
|
+
has_prefix: bool = exists(predicate, rows)
|
|
137
|
+
return ArcAssay_fromRows(rows)
|
|
138
|
+
|
|
139
|
+
except Exception as err:
|
|
140
|
+
arg: str = str(err)
|
|
141
|
+
return to_fail(printf("Failed while parsing metadatasheet: %s"))(arg)
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
def ArcAssay_toMetadataCollection(assay: ArcAssay) -> IEnumerable_1[IEnumerable_1[str | None]]:
|
|
146
|
+
def mapping(row: IEnumerable_1[tuple[int, str]], assay: Any=assay) -> IEnumerable_1[str | None]:
|
|
147
|
+
return SparseRowModule_getAllValues(row)
|
|
148
|
+
|
|
149
|
+
return map(mapping, ArcAssay_toRows(assay))
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
def ArcAssay_fromMetadataCollection(collection: IEnumerable_1[IEnumerable_1[str | None]]) -> ArcAssay:
|
|
153
|
+
try:
|
|
154
|
+
return ArcAssay_fromRows(map(SparseRowModule_fromAllValues, collection))
|
|
155
|
+
|
|
156
|
+
except Exception as err:
|
|
157
|
+
arg: str = str(err)
|
|
158
|
+
return to_fail(printf("Failed while parsing metadatasheet: %s"))(arg)
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
def ArcAssay_isMetadataSheetName(name: str) -> bool:
|
|
163
|
+
if name == "isa_assay":
|
|
164
|
+
return True
|
|
165
|
+
|
|
166
|
+
else:
|
|
167
|
+
return name == "Assay"
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
def ArcAssay_isMetadataSheet(sheet: FsWorksheet) -> bool:
|
|
172
|
+
return ArcAssay_isMetadataSheetName(sheet.Name)
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
def ArcAssay_tryGetMetadataSheet(doc: FsWorkbook) -> FsWorksheet | None:
|
|
176
|
+
def predicate(sheet: FsWorksheet, doc: Any=doc) -> bool:
|
|
177
|
+
return ArcAssay_isMetadataSheet(sheet)
|
|
178
|
+
|
|
179
|
+
return try_find(predicate, doc.GetWorksheets())
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
def ARCtrl_ArcAssay__ArcAssay_fromFsWorkbook_Static_32154C9D(doc: FsWorkbook) -> ArcAssay:
|
|
183
|
+
try:
|
|
184
|
+
assay_metadata: ArcAssay
|
|
185
|
+
match_value: FsWorksheet | None = ArcAssay_tryGetMetadataSheet(doc)
|
|
186
|
+
if match_value is None:
|
|
187
|
+
to_console(printf("Cannot retrieve metadata: Assay file does not contain \"%s\" or \"%s\" sheet."))("isa_assay")("Assay")
|
|
188
|
+
assay_metadata = ArcAssay.create(create_missing_identifier())
|
|
189
|
+
|
|
190
|
+
else:
|
|
191
|
+
assay_metadata = ArcAssay_fromMetadataSheet(match_value)
|
|
192
|
+
|
|
193
|
+
sheets: Array[FsWorksheet] = doc.GetWorksheets()
|
|
194
|
+
annotation_tables: IEnumerable_1[ArcTable] = choose(try_from_fs_worksheet, sheets)
|
|
195
|
+
datamap_sheet: Datamap | None = try_pick(try_from_fs_worksheet_1, sheets)
|
|
196
|
+
if not is_empty_1(annotation_tables):
|
|
197
|
+
assay_metadata.Tables = list(annotation_tables)
|
|
198
|
+
|
|
199
|
+
assay_metadata.Datamap = datamap_sheet
|
|
200
|
+
return assay_metadata
|
|
201
|
+
|
|
202
|
+
except Exception as err:
|
|
203
|
+
arg_2: str = str(err)
|
|
204
|
+
return to_fail(printf("Could not parse assay: \n%s"))(arg_2)
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
|
|
208
|
+
def ARCtrl_ArcAssay__ArcAssay_toFsWorkbook_Static_Z2508BE4F(assay: ArcAssay, datamap_sheet: bool | None=None) -> FsWorkbook:
|
|
209
|
+
datamap_sheet_1: bool = default_arg(datamap_sheet, True)
|
|
210
|
+
doc: FsWorkbook = FsWorkbook()
|
|
211
|
+
metadata_sheet: FsWorksheet = ArcAssay_toMetadataSheet(assay)
|
|
212
|
+
doc.AddWorksheet(metadata_sheet)
|
|
213
|
+
if datamap_sheet_1:
|
|
214
|
+
def action(arg: Datamap, assay: Any=assay, datamap_sheet: Any=datamap_sheet) -> None:
|
|
215
|
+
sheet: FsWorksheet = to_fs_worksheet(arg)
|
|
216
|
+
doc.AddWorksheet(sheet)
|
|
217
|
+
|
|
218
|
+
iterate(action, to_array(assay.Datamap))
|
|
219
|
+
|
|
220
|
+
def action_1(i: int, arg_1: ArcTable, assay: Any=assay, datamap_sheet: Any=datamap_sheet) -> None:
|
|
221
|
+
sheet_1: FsWorksheet = to_fs_worksheet_1(i, arg_1)
|
|
222
|
+
doc.AddWorksheet(sheet_1)
|
|
223
|
+
|
|
224
|
+
iterate_indexed(action_1, assay.Tables)
|
|
225
|
+
return doc
|
|
226
|
+
|
|
227
|
+
|
|
228
|
+
def ARCtrl_ArcAssay__ArcAssay_ToFsWorkbook_6FCE9E49(this: ArcAssay, datamap_sheet: bool | None=None) -> FsWorkbook:
|
|
229
|
+
return ARCtrl_ArcAssay__ArcAssay_toFsWorkbook_Static_Z2508BE4F(this, datamap_sheet)
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
__all__ = ["ArcAssay_fromRows", "ArcAssay_toRows", "ArcAssay_toMetadataSheet", "ArcAssay_fromMetadataSheet", "ArcAssay_toMetadataCollection", "ArcAssay_fromMetadataCollection", "ArcAssay_isMetadataSheetName", "ArcAssay_isMetadataSheet", "ArcAssay_tryGetMetadataSheet", "ARCtrl_ArcAssay__ArcAssay_fromFsWorkbook_Static_32154C9D", "ARCtrl_ArcAssay__ArcAssay_toFsWorkbook_Static_Z2508BE4F", "ARCtrl_ArcAssay__ArcAssay_ToFsWorkbook_6FCE9E49"]
|
|
233
|
+
|
|
@@ -0,0 +1,435 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from collections.abc import Callable
|
|
3
|
+
from dataclasses import dataclass
|
|
4
|
+
from typing import Any
|
|
5
|
+
from ..fable_modules.fable_library.list import (FSharpList, of_array, map, empty, cons, reverse, append, unzip, concat, of_seq, is_empty as is_empty_1, tail, head)
|
|
6
|
+
from ..fable_modules.fable_library.map import (of_list, try_find)
|
|
7
|
+
from ..fable_modules.fable_library.map_util import add_to_dict
|
|
8
|
+
from ..fable_modules.fable_library.option import (default_arg, value as value_1)
|
|
9
|
+
from ..fable_modules.fable_library.reflection import (TypeInfo, string_type, list_type, record_type)
|
|
10
|
+
from ..fable_modules.fable_library.seq import (is_empty, delay, append as append_1, singleton, collect, to_list, map as map_1, try_find as try_find_1, iterate_indexed)
|
|
11
|
+
from ..fable_modules.fable_library.seq2 import (List_distinct, List_distinctBy)
|
|
12
|
+
from ..fable_modules.fable_library.string_ import (to_fail, printf)
|
|
13
|
+
from ..fable_modules.fable_library.types import (Record, Array)
|
|
14
|
+
from ..fable_modules.fable_library.util import (string_hash, IEnumerable_1, IEnumerator, get_enumerator, ignore, to_enumerable, compare_primitives)
|
|
15
|
+
from ..fable_modules.fs_spreadsheet.fs_row import FsRow
|
|
16
|
+
from ..fable_modules.fs_spreadsheet.fs_workbook import FsWorkbook
|
|
17
|
+
from ..fable_modules.fs_spreadsheet.fs_worksheet import FsWorksheet
|
|
18
|
+
from ..Core.arc_types import (ArcInvestigation, ArcStudy, ArcAssay)
|
|
19
|
+
from ..Core.comment import (Comment, Comment_reflection, Remark)
|
|
20
|
+
from ..Core.Helper.collections_ import (ResizeArray_iter, Option_fromValueWithDefault)
|
|
21
|
+
from ..Core.ontology_source_reference import OntologySourceReference
|
|
22
|
+
from ..Core.person import Person
|
|
23
|
+
from ..Core.publication import Publication
|
|
24
|
+
from .Metadata.comment import (Comment_fromString, Comment_toString, Remark_wrapRemark)
|
|
25
|
+
from .Metadata.contacts import (from_rows as from_rows_2, to_rows as to_rows_2)
|
|
26
|
+
from .Metadata.ontology_source_reference import (from_rows, to_rows)
|
|
27
|
+
from .Metadata.publication import (from_rows as from_rows_1, to_rows as to_rows_1)
|
|
28
|
+
from .Metadata.sparse_table import (SparseTable__TryGetValueDefault_5BAE6133, SparseTable, SparseTable_Create_Z2192E64B, SparseTable_FromRows_Z5579EC29, SparseTable_ToRows_759CAFC1, SparseRowModule_tryGetValueAt, SparseRowModule_fromValues, SparseRowModule_getAllValues, SparseRowModule_fromAllValues, SparseRowModule_fromFsRow, SparseRowModule_writeToSheet)
|
|
29
|
+
from .Metadata.study import (from_rows as from_rows_3, to_rows as to_rows_3)
|
|
30
|
+
|
|
31
|
+
def _expr2016() -> TypeInfo:
|
|
32
|
+
return record_type("ARCtrl.Spreadsheet.ArcInvestigation.InvestigationInfo", [], ArcInvestigation_InvestigationInfo, lambda: [("Identifier", string_type), ("Title", string_type), ("Description", string_type), ("SubmissionDate", string_type), ("PublicReleaseDate", string_type), ("Comments", list_type(Comment_reflection()))])
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
@dataclass(eq = False, repr = False, slots = True)
|
|
36
|
+
class ArcInvestigation_InvestigationInfo(Record):
|
|
37
|
+
Identifier: str
|
|
38
|
+
Title: str
|
|
39
|
+
Description: str
|
|
40
|
+
SubmissionDate: str
|
|
41
|
+
PublicReleaseDate: str
|
|
42
|
+
Comments: FSharpList[Comment]
|
|
43
|
+
|
|
44
|
+
ArcInvestigation_InvestigationInfo_reflection = _expr2016
|
|
45
|
+
|
|
46
|
+
def ArcInvestigation_InvestigationInfo_create(identifier: str, title: str, description: str, submission_date: str, public_release_date: str, comments: FSharpList[Comment]) -> ArcInvestigation_InvestigationInfo:
|
|
47
|
+
return ArcInvestigation_InvestigationInfo(identifier, title, description, submission_date, public_release_date, comments)
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
def ArcInvestigation_InvestigationInfo_get_Labels(__unit: None=None) -> FSharpList[str]:
|
|
51
|
+
return of_array(["Investigation Identifier", "Investigation Title", "Investigation Description", "Investigation Submission Date", "Investigation Public Release Date"])
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
def ArcInvestigation_InvestigationInfo_FromSparseTable_3ECCA699(matrix: SparseTable) -> ArcInvestigation_InvestigationInfo:
|
|
55
|
+
def mapping(k: str, matrix: Any=matrix) -> Comment:
|
|
56
|
+
return Comment_fromString(k, SparseTable__TryGetValueDefault_5BAE6133(matrix, "", (k, 0)))
|
|
57
|
+
|
|
58
|
+
comments: FSharpList[Comment] = map(mapping, matrix.CommentKeys)
|
|
59
|
+
return ArcInvestigation_InvestigationInfo_create(SparseTable__TryGetValueDefault_5BAE6133(matrix, "", ("Investigation Identifier", 0)), SparseTable__TryGetValueDefault_5BAE6133(matrix, "", ("Investigation Title", 0)), SparseTable__TryGetValueDefault_5BAE6133(matrix, "", ("Investigation Description", 0)), SparseTable__TryGetValueDefault_5BAE6133(matrix, "", ("Investigation Submission Date", 0)), SparseTable__TryGetValueDefault_5BAE6133(matrix, "", ("Investigation Public Release Date", 0)), comments)
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
def ArcInvestigation_InvestigationInfo_ToSparseTable_Z720BD3FF(investigation: ArcInvestigation) -> SparseTable:
|
|
63
|
+
matrix: SparseTable = SparseTable_Create_Z2192E64B(None, ArcInvestigation_InvestigationInfo_get_Labels(), None, 2)
|
|
64
|
+
comment_keys: FSharpList[str] = empty()
|
|
65
|
+
add_to_dict(matrix.Matrix, ("Investigation Identifier", 1), investigation.Identifier)
|
|
66
|
+
add_to_dict(matrix.Matrix, ("Investigation Title", 1), default_arg(investigation.Title, ""))
|
|
67
|
+
add_to_dict(matrix.Matrix, ("Investigation Description", 1), default_arg(investigation.Description, ""))
|
|
68
|
+
add_to_dict(matrix.Matrix, ("Investigation Submission Date", 1), default_arg(investigation.SubmissionDate, ""))
|
|
69
|
+
add_to_dict(matrix.Matrix, ("Investigation Public Release Date", 1), default_arg(investigation.PublicReleaseDate, ""))
|
|
70
|
+
def f(comment: Comment, investigation: Any=investigation) -> None:
|
|
71
|
+
nonlocal comment_keys
|
|
72
|
+
pattern_input: tuple[str, str] = Comment_toString(comment)
|
|
73
|
+
n: str = pattern_input[0]
|
|
74
|
+
comment_keys = cons(n, comment_keys)
|
|
75
|
+
add_to_dict(matrix.Matrix, (n, 1), pattern_input[1])
|
|
76
|
+
|
|
77
|
+
ResizeArray_iter(f, investigation.Comments)
|
|
78
|
+
class ObjectExpr2018:
|
|
79
|
+
@property
|
|
80
|
+
def Equals(self) -> Callable[[str, str], bool]:
|
|
81
|
+
def _arrow2017(x: str, y: str) -> bool:
|
|
82
|
+
return x == y
|
|
83
|
+
|
|
84
|
+
return _arrow2017
|
|
85
|
+
|
|
86
|
+
@property
|
|
87
|
+
def GetHashCode(self) -> Callable[[str], int]:
|
|
88
|
+
return string_hash
|
|
89
|
+
|
|
90
|
+
return SparseTable(matrix.Matrix, matrix.Keys, reverse(List_distinct(comment_keys, ObjectExpr2018())), matrix.ColumnCount)
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
def ArcInvestigation_InvestigationInfo_fromRows(line_number: int, rows: IEnumerator[IEnumerable_1[tuple[int, str]]]) -> tuple[str | None, int, FSharpList[Remark], ArcInvestigation_InvestigationInfo]:
|
|
94
|
+
tupled_arg: tuple[str | None, int, FSharpList[Remark], SparseTable] = SparseTable_FromRows_Z5579EC29(rows, ArcInvestigation_InvestigationInfo_get_Labels(), line_number)
|
|
95
|
+
return (tupled_arg[0], tupled_arg[1], tupled_arg[2], ArcInvestigation_InvestigationInfo_FromSparseTable_3ECCA699(tupled_arg[3]))
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
def ArcInvestigation_InvestigationInfo_toRows_Z720BD3FF(investigation: ArcInvestigation) -> IEnumerable_1[IEnumerable_1[tuple[int, str]]]:
|
|
99
|
+
return SparseTable_ToRows_759CAFC1(ArcInvestigation_InvestigationInfo_ToSparseTable_Z720BD3FF(investigation))
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
def ArcInvestigation_fromParts(investigation_info: ArcInvestigation_InvestigationInfo, ontology_source_reference: FSharpList[OntologySourceReference], publications: FSharpList[Publication], contacts: FSharpList[Person], studies: FSharpList[ArcStudy], assays: FSharpList[ArcAssay], remarks: FSharpList[Remark]) -> ArcInvestigation:
|
|
103
|
+
def mapping(s: ArcStudy, investigation_info: Any=investigation_info, ontology_source_reference: Any=ontology_source_reference, publications: Any=publications, contacts: Any=contacts, studies: Any=studies, assays: Any=assays, remarks: Any=remarks) -> str:
|
|
104
|
+
return s.Identifier
|
|
105
|
+
|
|
106
|
+
study_identifiers: FSharpList[str] = map(mapping, studies)
|
|
107
|
+
title: str | None = Option_fromValueWithDefault("", investigation_info.Title)
|
|
108
|
+
description: str | None = Option_fromValueWithDefault("", investigation_info.Description)
|
|
109
|
+
submission_date: str | None = Option_fromValueWithDefault("", investigation_info.SubmissionDate)
|
|
110
|
+
public_release_date: str | None = Option_fromValueWithDefault("", investigation_info.PublicReleaseDate)
|
|
111
|
+
ontology_source_references: Array[OntologySourceReference] = list(ontology_source_reference)
|
|
112
|
+
publications_1: Array[Publication] = list(publications)
|
|
113
|
+
contacts_1: Array[Person] = list(contacts)
|
|
114
|
+
assays_1: Array[ArcAssay] = list(assays)
|
|
115
|
+
studies_1: Array[ArcStudy] = list(studies)
|
|
116
|
+
registered_study_identifiers: Array[str] = list(study_identifiers)
|
|
117
|
+
comments: Array[Comment] = list(investigation_info.Comments)
|
|
118
|
+
remarks_1: Array[Remark] = list(remarks)
|
|
119
|
+
return ArcInvestigation.make(investigation_info.Identifier, title, description, submission_date, public_release_date, ontology_source_references, publications_1, contacts_1, assays_1, studies_1, [], [], registered_study_identifiers, comments, remarks_1)
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
def ArcInvestigation_fromRows(rows: IEnumerable_1[IEnumerable_1[tuple[int, str]]]) -> ArcInvestigation:
|
|
123
|
+
if is_empty(rows):
|
|
124
|
+
raise Exception("isa_investigation sheet in Investigation file is empty")
|
|
125
|
+
|
|
126
|
+
en: IEnumerator[IEnumerable_1[tuple[int, str]]] = get_enumerator(rows)
|
|
127
|
+
empty_investigation_info: ArcInvestigation_InvestigationInfo = ArcInvestigation_InvestigationInfo_create("", "", "", "", "", empty())
|
|
128
|
+
def loop(last_line_mut: str | None, ontology_source_references_mut: FSharpList[OntologySourceReference], investigation_info_mut: ArcInvestigation_InvestigationInfo, publications_mut: FSharpList[Publication], contacts_mut: FSharpList[Person], studies_mut: FSharpList[tuple[ArcStudy, FSharpList[ArcAssay]]], remarks_mut: FSharpList[Remark], line_number_mut: int, rows: Any=rows) -> ArcInvestigation:
|
|
129
|
+
while True:
|
|
130
|
+
(last_line, ontology_source_references, investigation_info, publications, contacts, studies, remarks, line_number) = (last_line_mut, ontology_source_references_mut, investigation_info_mut, publications_mut, contacts_mut, studies_mut, remarks_mut, line_number_mut)
|
|
131
|
+
(pattern_matching_result,) = (None,)
|
|
132
|
+
if last_line is not None:
|
|
133
|
+
if last_line == "ONTOLOGY SOURCE REFERENCE":
|
|
134
|
+
pattern_matching_result = 0
|
|
135
|
+
|
|
136
|
+
elif last_line == "INVESTIGATION":
|
|
137
|
+
pattern_matching_result = 1
|
|
138
|
+
|
|
139
|
+
elif last_line == "INVESTIGATION PUBLICATIONS":
|
|
140
|
+
pattern_matching_result = 2
|
|
141
|
+
|
|
142
|
+
elif last_line == "INVESTIGATION CONTACTS":
|
|
143
|
+
pattern_matching_result = 3
|
|
144
|
+
|
|
145
|
+
elif last_line == "STUDY":
|
|
146
|
+
pattern_matching_result = 4
|
|
147
|
+
|
|
148
|
+
else:
|
|
149
|
+
pattern_matching_result = 5
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
else:
|
|
153
|
+
pattern_matching_result = 5
|
|
154
|
+
|
|
155
|
+
if pattern_matching_result == 0:
|
|
156
|
+
pattern_input: tuple[str | None, int, FSharpList[Remark], FSharpList[OntologySourceReference]] = from_rows(line_number + 1, en)
|
|
157
|
+
last_line_mut = pattern_input[0]
|
|
158
|
+
ontology_source_references_mut = pattern_input[3]
|
|
159
|
+
investigation_info_mut = investigation_info
|
|
160
|
+
publications_mut = publications
|
|
161
|
+
contacts_mut = contacts
|
|
162
|
+
studies_mut = studies
|
|
163
|
+
remarks_mut = append(remarks, pattern_input[2])
|
|
164
|
+
line_number_mut = pattern_input[1]
|
|
165
|
+
continue
|
|
166
|
+
|
|
167
|
+
elif pattern_matching_result == 1:
|
|
168
|
+
pattern_input_1: tuple[str | None, int, FSharpList[Remark], ArcInvestigation_InvestigationInfo] = ArcInvestigation_InvestigationInfo_fromRows(line_number + 1, en)
|
|
169
|
+
last_line_mut = pattern_input_1[0]
|
|
170
|
+
ontology_source_references_mut = ontology_source_references
|
|
171
|
+
investigation_info_mut = pattern_input_1[3]
|
|
172
|
+
publications_mut = publications
|
|
173
|
+
contacts_mut = contacts
|
|
174
|
+
studies_mut = studies
|
|
175
|
+
remarks_mut = append(remarks, pattern_input_1[2])
|
|
176
|
+
line_number_mut = pattern_input_1[1]
|
|
177
|
+
continue
|
|
178
|
+
|
|
179
|
+
elif pattern_matching_result == 2:
|
|
180
|
+
pattern_input_2: tuple[str | None, int, FSharpList[Remark], FSharpList[Publication]] = from_rows_1("Investigation Publication", line_number + 1, en)
|
|
181
|
+
last_line_mut = pattern_input_2[0]
|
|
182
|
+
ontology_source_references_mut = ontology_source_references
|
|
183
|
+
investigation_info_mut = investigation_info
|
|
184
|
+
publications_mut = pattern_input_2[3]
|
|
185
|
+
contacts_mut = contacts
|
|
186
|
+
studies_mut = studies
|
|
187
|
+
remarks_mut = append(remarks, pattern_input_2[2])
|
|
188
|
+
line_number_mut = pattern_input_2[1]
|
|
189
|
+
continue
|
|
190
|
+
|
|
191
|
+
elif pattern_matching_result == 3:
|
|
192
|
+
pattern_input_3: tuple[str | None, int, FSharpList[Remark], FSharpList[Person]] = from_rows_2("Investigation Person", line_number + 1, en)
|
|
193
|
+
last_line_mut = pattern_input_3[0]
|
|
194
|
+
ontology_source_references_mut = ontology_source_references
|
|
195
|
+
investigation_info_mut = investigation_info
|
|
196
|
+
publications_mut = publications
|
|
197
|
+
contacts_mut = pattern_input_3[3]
|
|
198
|
+
studies_mut = studies
|
|
199
|
+
remarks_mut = append(remarks, pattern_input_3[2])
|
|
200
|
+
line_number_mut = pattern_input_3[1]
|
|
201
|
+
continue
|
|
202
|
+
|
|
203
|
+
elif pattern_matching_result == 4:
|
|
204
|
+
pattern_input_4: tuple[str | None, int, FSharpList[Remark], tuple[ArcStudy, FSharpList[ArcAssay]] | None] = from_rows_3(line_number + 1, en)
|
|
205
|
+
study: tuple[ArcStudy, FSharpList[ArcAssay]] | None = pattern_input_4[3]
|
|
206
|
+
new_remarks_4: FSharpList[Remark] = pattern_input_4[2]
|
|
207
|
+
line_number_6: int = pattern_input_4[1] or 0
|
|
208
|
+
current_line_4: str | None = pattern_input_4[0]
|
|
209
|
+
if study is not None:
|
|
210
|
+
last_line_mut = current_line_4
|
|
211
|
+
ontology_source_references_mut = ontology_source_references
|
|
212
|
+
investigation_info_mut = investigation_info
|
|
213
|
+
publications_mut = publications
|
|
214
|
+
contacts_mut = contacts
|
|
215
|
+
studies_mut = cons(value_1(study), studies)
|
|
216
|
+
remarks_mut = append(remarks, new_remarks_4)
|
|
217
|
+
line_number_mut = line_number_6
|
|
218
|
+
continue
|
|
219
|
+
|
|
220
|
+
else:
|
|
221
|
+
last_line_mut = current_line_4
|
|
222
|
+
ontology_source_references_mut = ontology_source_references
|
|
223
|
+
investigation_info_mut = investigation_info
|
|
224
|
+
publications_mut = publications
|
|
225
|
+
contacts_mut = contacts
|
|
226
|
+
studies_mut = studies
|
|
227
|
+
remarks_mut = append(remarks, new_remarks_4)
|
|
228
|
+
line_number_mut = line_number_6
|
|
229
|
+
continue
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
elif pattern_matching_result == 5:
|
|
233
|
+
if en.System_Collections_IEnumerator_MoveNext():
|
|
234
|
+
last_line_mut = SparseRowModule_tryGetValueAt(0, en.System_Collections_Generic_IEnumerator_1_get_Current())
|
|
235
|
+
ontology_source_references_mut = ontology_source_references
|
|
236
|
+
investigation_info_mut = investigation_info
|
|
237
|
+
publications_mut = publications
|
|
238
|
+
contacts_mut = contacts
|
|
239
|
+
studies_mut = studies
|
|
240
|
+
remarks_mut = remarks
|
|
241
|
+
line_number_mut = line_number
|
|
242
|
+
continue
|
|
243
|
+
|
|
244
|
+
else:
|
|
245
|
+
pattern_input_5: tuple[FSharpList[ArcStudy], FSharpList[ArcAssay]]
|
|
246
|
+
tupled_arg: tuple[FSharpList[ArcStudy], FSharpList[FSharpList[ArcAssay]]] = unzip(studies)
|
|
247
|
+
def projection(a_1: ArcAssay, last_line: Any=last_line, ontology_source_references: Any=ontology_source_references, investigation_info: Any=investigation_info, publications: Any=publications, contacts: Any=contacts, studies: Any=studies, remarks: Any=remarks, line_number: Any=line_number) -> str:
|
|
248
|
+
return a_1.Identifier
|
|
249
|
+
|
|
250
|
+
class ObjectExpr2020:
|
|
251
|
+
@property
|
|
252
|
+
def Equals(self) -> Callable[[str, str], bool]:
|
|
253
|
+
def _arrow2019(x: str, y: str) -> bool:
|
|
254
|
+
return x == y
|
|
255
|
+
|
|
256
|
+
return _arrow2019
|
|
257
|
+
|
|
258
|
+
@property
|
|
259
|
+
def GetHashCode(self) -> Callable[[str], int]:
|
|
260
|
+
return string_hash
|
|
261
|
+
|
|
262
|
+
pattern_input_5 = (reverse(tupled_arg[0]), List_distinctBy(projection, concat(tupled_arg[1]), ObjectExpr2020()))
|
|
263
|
+
return ArcInvestigation_fromParts(investigation_info, ontology_source_references, publications, contacts, pattern_input_5[0], pattern_input_5[1], remarks)
|
|
264
|
+
|
|
265
|
+
|
|
266
|
+
break
|
|
267
|
+
|
|
268
|
+
arc_investigation: ArcInvestigation
|
|
269
|
+
ignore(en.System_Collections_IEnumerator_MoveNext())
|
|
270
|
+
arc_investigation = loop(SparseRowModule_tryGetValueAt(0, en.System_Collections_Generic_IEnumerator_1_get_Current()), empty(), empty_investigation_info, empty(), empty(), empty(), empty(), 1)
|
|
271
|
+
if arc_investigation.Identifier == "":
|
|
272
|
+
raise Exception("Mandatory Investigation identifier is not present")
|
|
273
|
+
|
|
274
|
+
return arc_investigation
|
|
275
|
+
|
|
276
|
+
|
|
277
|
+
def ArcInvestigation_toRows(investigation: ArcInvestigation) -> IEnumerable_1[IEnumerable_1[tuple[int, str]]]:
|
|
278
|
+
def _arrow2033(__unit: None=None, investigation: Any=investigation) -> FSharpList[IEnumerable_1[tuple[int, str]]]:
|
|
279
|
+
remarks: FSharpList[Remark] = of_seq(investigation.Remarks)
|
|
280
|
+
def _arrow2031(__unit: None=None) -> IEnumerable_1[IEnumerable_1[tuple[int, str]]]:
|
|
281
|
+
def _arrow2030(__unit: None=None) -> IEnumerable_1[IEnumerable_1[tuple[int, str]]]:
|
|
282
|
+
def _arrow2029(__unit: None=None) -> IEnumerable_1[IEnumerable_1[tuple[int, str]]]:
|
|
283
|
+
def _arrow2028(__unit: None=None) -> IEnumerable_1[IEnumerable_1[tuple[int, str]]]:
|
|
284
|
+
def _arrow2027(__unit: None=None) -> IEnumerable_1[IEnumerable_1[tuple[int, str]]]:
|
|
285
|
+
def _arrow2026(__unit: None=None) -> IEnumerable_1[IEnumerable_1[tuple[int, str]]]:
|
|
286
|
+
def _arrow2025(__unit: None=None) -> IEnumerable_1[IEnumerable_1[tuple[int, str]]]:
|
|
287
|
+
def _arrow2024(__unit: None=None) -> IEnumerable_1[IEnumerable_1[tuple[int, str]]]:
|
|
288
|
+
def _arrow2023(__unit: None=None) -> IEnumerable_1[IEnumerable_1[tuple[int, str]]]:
|
|
289
|
+
def _arrow2022(study_identifier: str) -> IEnumerable_1[IEnumerable_1[tuple[int, str]]]:
|
|
290
|
+
study: ArcStudy = default_arg(investigation.TryGetStudy(study_identifier), ArcStudy(study_identifier))
|
|
291
|
+
def _arrow2021(__unit: None=None) -> IEnumerable_1[IEnumerable_1[tuple[int, str]]]:
|
|
292
|
+
return to_rows_3(study, None)
|
|
293
|
+
|
|
294
|
+
return append_1(singleton(SparseRowModule_fromValues(to_enumerable(["STUDY"]))), delay(_arrow2021))
|
|
295
|
+
|
|
296
|
+
return collect(_arrow2022, investigation.RegisteredStudyIdentifiers)
|
|
297
|
+
|
|
298
|
+
return append_1(to_rows_2("Investigation Person", of_seq(investigation.Contacts)), delay(_arrow2023))
|
|
299
|
+
|
|
300
|
+
return append_1(singleton(SparseRowModule_fromValues(to_enumerable(["INVESTIGATION CONTACTS"]))), delay(_arrow2024))
|
|
301
|
+
|
|
302
|
+
return append_1(to_rows_1("Investigation Publication", of_seq(investigation.Publications)), delay(_arrow2025))
|
|
303
|
+
|
|
304
|
+
return append_1(singleton(SparseRowModule_fromValues(to_enumerable(["INVESTIGATION PUBLICATIONS"]))), delay(_arrow2026))
|
|
305
|
+
|
|
306
|
+
return append_1(ArcInvestigation_InvestigationInfo_toRows_Z720BD3FF(investigation), delay(_arrow2027))
|
|
307
|
+
|
|
308
|
+
return append_1(singleton(SparseRowModule_fromValues(to_enumerable(["INVESTIGATION"]))), delay(_arrow2028))
|
|
309
|
+
|
|
310
|
+
return append_1(to_rows(of_seq(investigation.OntologySourceReferences)), delay(_arrow2029))
|
|
311
|
+
|
|
312
|
+
return append_1(singleton(SparseRowModule_fromValues(to_enumerable(["ONTOLOGY SOURCE REFERENCE"]))), delay(_arrow2030))
|
|
313
|
+
|
|
314
|
+
rows: IEnumerable_1[IEnumerable_1[tuple[int, str]]] = delay(_arrow2031)
|
|
315
|
+
try:
|
|
316
|
+
def mapping(remark: Remark) -> tuple[int, str]:
|
|
317
|
+
return Remark.to_tuple(remark)
|
|
318
|
+
|
|
319
|
+
class ObjectExpr2032:
|
|
320
|
+
@property
|
|
321
|
+
def Compare(self) -> Callable[[int, int], int]:
|
|
322
|
+
return compare_primitives
|
|
323
|
+
|
|
324
|
+
rm: Any = of_list(map(mapping, remarks), ObjectExpr2032())
|
|
325
|
+
def loop(i_mut: int, l_mut: FSharpList[IEnumerable_1[tuple[int, str]]], nl_mut: FSharpList[IEnumerable_1[tuple[int, str]]]) -> FSharpList[IEnumerable_1[tuple[int, str]]]:
|
|
326
|
+
while True:
|
|
327
|
+
(i, l, nl) = (i_mut, l_mut, nl_mut)
|
|
328
|
+
match_value: str | None = try_find(i, rm)
|
|
329
|
+
if match_value is None:
|
|
330
|
+
if not is_empty_1(l):
|
|
331
|
+
i_mut = i + 1
|
|
332
|
+
l_mut = tail(l)
|
|
333
|
+
nl_mut = cons(head(l), nl)
|
|
334
|
+
continue
|
|
335
|
+
|
|
336
|
+
else:
|
|
337
|
+
return nl
|
|
338
|
+
|
|
339
|
+
|
|
340
|
+
else:
|
|
341
|
+
remark_1: str = match_value
|
|
342
|
+
i_mut = i + 1
|
|
343
|
+
l_mut = l
|
|
344
|
+
nl_mut = cons(SparseRowModule_fromValues(to_enumerable([Remark_wrapRemark(remark_1)])), nl)
|
|
345
|
+
continue
|
|
346
|
+
|
|
347
|
+
break
|
|
348
|
+
|
|
349
|
+
return reverse(loop(1, of_seq(rows), empty()))
|
|
350
|
+
|
|
351
|
+
except Exception as match_value_1:
|
|
352
|
+
return to_list(rows)
|
|
353
|
+
|
|
354
|
+
|
|
355
|
+
return _arrow2033()
|
|
356
|
+
|
|
357
|
+
|
|
358
|
+
def ArcInvestigation_toMetadataCollection(investigation: ArcInvestigation) -> IEnumerable_1[IEnumerable_1[str | None]]:
|
|
359
|
+
def mapping(row: IEnumerable_1[tuple[int, str]], investigation: Any=investigation) -> IEnumerable_1[str | None]:
|
|
360
|
+
return SparseRowModule_getAllValues(row)
|
|
361
|
+
|
|
362
|
+
return map_1(mapping, ArcInvestigation_toRows(investigation))
|
|
363
|
+
|
|
364
|
+
|
|
365
|
+
def ArcInvestigation_fromMetadataCollection(collection: IEnumerable_1[IEnumerable_1[str | None]]) -> ArcInvestigation:
|
|
366
|
+
def mapping(v: IEnumerable_1[str | None], collection: Any=collection) -> IEnumerable_1[tuple[int, str]]:
|
|
367
|
+
return SparseRowModule_fromAllValues(v)
|
|
368
|
+
|
|
369
|
+
return ArcInvestigation_fromRows(map_1(mapping, collection))
|
|
370
|
+
|
|
371
|
+
|
|
372
|
+
def ArcInvestigation_isMetadataSheetName(name: str) -> bool:
|
|
373
|
+
if name == "isa_investigation":
|
|
374
|
+
return True
|
|
375
|
+
|
|
376
|
+
else:
|
|
377
|
+
return name == "Investigation"
|
|
378
|
+
|
|
379
|
+
|
|
380
|
+
|
|
381
|
+
def ArcInvestigation_isMetadataSheet(sheet: FsWorksheet) -> bool:
|
|
382
|
+
return ArcInvestigation_isMetadataSheetName(sheet.Name)
|
|
383
|
+
|
|
384
|
+
|
|
385
|
+
def ArcInvestigation_tryGetMetadataSheet(doc: FsWorkbook) -> FsWorksheet | None:
|
|
386
|
+
def predicate(sheet: FsWorksheet, doc: Any=doc) -> bool:
|
|
387
|
+
return ArcInvestigation_isMetadataSheet(sheet)
|
|
388
|
+
|
|
389
|
+
return try_find_1(predicate, doc.GetWorksheets())
|
|
390
|
+
|
|
391
|
+
|
|
392
|
+
def ARCtrl_ArcInvestigation__ArcInvestigation_fromFsWorkbook_Static_32154C9D(doc: FsWorkbook) -> ArcInvestigation:
|
|
393
|
+
try:
|
|
394
|
+
def _arrow2034(__unit: None=None) -> Array[FsRow]:
|
|
395
|
+
sheet_1: FsWorksheet
|
|
396
|
+
match_value: FsWorksheet | None = ArcInvestigation_tryGetMetadataSheet(doc)
|
|
397
|
+
if match_value is None:
|
|
398
|
+
raise Exception("Could not find metadata sheet with sheetname \"isa_investigation\" or deprecated sheetname \"Investigation\"")
|
|
399
|
+
|
|
400
|
+
else:
|
|
401
|
+
sheet_1 = match_value
|
|
402
|
+
|
|
403
|
+
return FsWorksheet.get_rows(sheet_1)
|
|
404
|
+
|
|
405
|
+
return ArcInvestigation_fromRows(map_1(SparseRowModule_fromFsRow, _arrow2034()))
|
|
406
|
+
|
|
407
|
+
except Exception as err:
|
|
408
|
+
arg: str = str(err)
|
|
409
|
+
return to_fail(printf("Could not read investigation from spreadsheet: %s"))(arg)
|
|
410
|
+
|
|
411
|
+
|
|
412
|
+
|
|
413
|
+
def ARCtrl_ArcInvestigation__ArcInvestigation_toFsWorkbook_Static_Z720BD3FF(investigation: ArcInvestigation) -> FsWorkbook:
|
|
414
|
+
try:
|
|
415
|
+
wb: FsWorkbook = FsWorkbook()
|
|
416
|
+
sheet: FsWorksheet = FsWorksheet("isa_investigation")
|
|
417
|
+
def action(row_i: int, r: IEnumerable_1[tuple[int, str]]) -> None:
|
|
418
|
+
SparseRowModule_writeToSheet(row_i + 1, r, sheet)
|
|
419
|
+
|
|
420
|
+
iterate_indexed(action, ArcInvestigation_toRows(investigation))
|
|
421
|
+
wb.AddWorksheet(sheet)
|
|
422
|
+
return wb
|
|
423
|
+
|
|
424
|
+
except Exception as err:
|
|
425
|
+
arg: str = str(err)
|
|
426
|
+
return to_fail(printf("Could not write investigation to spreadsheet: %s"))(arg)
|
|
427
|
+
|
|
428
|
+
|
|
429
|
+
|
|
430
|
+
def ARCtrl_ArcInvestigation__ArcInvestigation_ToFsWorkbook(this: ArcInvestigation) -> FsWorkbook:
|
|
431
|
+
return ARCtrl_ArcInvestigation__ArcInvestigation_toFsWorkbook_Static_Z720BD3FF(this)
|
|
432
|
+
|
|
433
|
+
|
|
434
|
+
__all__ = ["ArcInvestigation_InvestigationInfo_reflection", "ArcInvestigation_InvestigationInfo_create", "ArcInvestigation_InvestigationInfo_get_Labels", "ArcInvestigation_InvestigationInfo_FromSparseTable_3ECCA699", "ArcInvestigation_InvestigationInfo_ToSparseTable_Z720BD3FF", "ArcInvestigation_InvestigationInfo_fromRows", "ArcInvestigation_InvestigationInfo_toRows_Z720BD3FF", "ArcInvestigation_fromParts", "ArcInvestigation_fromRows", "ArcInvestigation_toRows", "ArcInvestigation_toMetadataCollection", "ArcInvestigation_fromMetadataCollection", "ArcInvestigation_isMetadataSheetName", "ArcInvestigation_isMetadataSheet", "ArcInvestigation_tryGetMetadataSheet", "ARCtrl_ArcInvestigation__ArcInvestigation_fromFsWorkbook_Static_32154C9D", "ARCtrl_ArcInvestigation__ArcInvestigation_toFsWorkbook_Static_Z720BD3FF", "ARCtrl_ArcInvestigation__ArcInvestigation_ToFsWorkbook"]
|
|
435
|
+
|