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,367 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from typing import Any
|
|
3
|
+
from ..Core.arc_types import ArcRun
|
|
4
|
+
from ..Core.comment import Comment
|
|
5
|
+
from ..Core.datamap import Datamap
|
|
6
|
+
from ..Core.Helper.collections_ import (ResizeArray_singleton, ResizeArray_map, ResizeArray_zip, ResizeArray_appendSingleton, Option_fromSeq, Option_fromValueWithDefault, ResizeArray_filter)
|
|
7
|
+
from ..Core.Helper.identifier import Run_cwlFileNameFromIdentifier
|
|
8
|
+
from ..Core.ontology_annotation import OntologyAnnotation
|
|
9
|
+
from ..Core.person import Person
|
|
10
|
+
from ..Core.Table.arc_tables import ArcTables
|
|
11
|
+
from ..CWL.cwlprocessing_unit import CWLProcessingUnit
|
|
12
|
+
from ..CWL.cwltypes import (CWLType, CWLType_file)
|
|
13
|
+
from ..CWL.encode import (write_yaml, encode_cwltype)
|
|
14
|
+
from ..CWL.inputs import (InputBinding, CWLInput)
|
|
15
|
+
from ..CWL.parameter_reference import CWLParameterReference
|
|
16
|
+
from ..FileSystem.file_system import FileSystem
|
|
17
|
+
from ..FileSystem.path import (combine_many, combine)
|
|
18
|
+
from ..ROCrate.ldcontext import LDContext
|
|
19
|
+
from ..ROCrate.ldobject import (LDNode, LDGraph)
|
|
20
|
+
from ..ROCrate.LDTypes.computational_workflow import LDComputationalWorkflow
|
|
21
|
+
from ..ROCrate.LDTypes.dataset import LDDataset
|
|
22
|
+
from ..ROCrate.LDTypes.file import LDFile
|
|
23
|
+
from ..ROCrate.LDTypes.formal_parameter import LDFormalParameter
|
|
24
|
+
from ..ROCrate.LDTypes.lab_process import LDLabProcess
|
|
25
|
+
from ..ROCrate.LDTypes.organization import LDOrganization
|
|
26
|
+
from ..ROCrate.LDTypes.property_value import LDPropertyValue
|
|
27
|
+
from ..ROCrate.LDTypes.workflow_invocation import LDWorkflowInvocation
|
|
28
|
+
from ..ROCrate.LDTypes.workflow_protocol import LDWorkflowProtocol
|
|
29
|
+
from ..fable_modules.fable_library.date import utc_now
|
|
30
|
+
from ..fable_modules.fable_library.list import of_seq
|
|
31
|
+
from ..fable_modules.fable_library.option import (value as value_1, default_arg, bind, map)
|
|
32
|
+
from ..fable_modules.fable_library.reflection import (TypeInfo, class_type)
|
|
33
|
+
from ..fable_modules.fable_library.seq import (exists, try_pick, find)
|
|
34
|
+
from ..fable_modules.fable_library.string_ import (starts_with_exact, replace, trim_start, join, to_fail, printf)
|
|
35
|
+
from ..fable_modules.fable_library.types import Array
|
|
36
|
+
from ..fable_modules.fable_library.util import equals
|
|
37
|
+
from .assay import AssayConversion_getDataFilesFromProcesses_6BABD1B0
|
|
38
|
+
from .basic import (BaseTypes_composeDefinedTerm_ZDED3A0F, BaseTypes_composePropertyValueFromOA_ZDED3A0F, BaseTypes_composeComment_Z13201A7E, BaseTypes_decomposeDefinedTerm_Z2F770004, BaseTypes_decomposePropertyValueToOA_Z2F770004, BaseTypes_decomposeComment_Z2F770004)
|
|
39
|
+
from .datamap import (DatamapConversion_composeFragmentDescriptors_Z892BFC3, DatamapConversion_decomposeFragmentDescriptors_Z6E59645F)
|
|
40
|
+
from .person import (PersonConversion_composePerson_Z64D846DC, PersonConversion_decomposePerson_Z6839B9E8)
|
|
41
|
+
from .table import (ARCtrl_ArcTables__ArcTables_GetProcesses_5E660E5C, ARCtrl_ArcTables__ArcTables_fromProcesses_Static_Z27F0B586)
|
|
42
|
+
from .workflow import (WorkflowConversion_composeWorkflowProtocolFromProcessingUnit_Z3099C0F7, WorkflowConversion_getInputParametersFromProcessingUnit_30922B92, WorkflowConversion_decomposeWorkflowProtocolToProcessingUnit_ZB11202F)
|
|
43
|
+
|
|
44
|
+
def _expr4408() -> TypeInfo:
|
|
45
|
+
return class_type("ARCtrl.Conversion.RunConversion", None, RunConversion)
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
class RunConversion:
|
|
49
|
+
...
|
|
50
|
+
|
|
51
|
+
RunConversion_reflection = _expr4408
|
|
52
|
+
|
|
53
|
+
def RunConversion_formatCWLType_Z5C31A0F9(type_: CWLType) -> str:
|
|
54
|
+
s: str = write_yaml(encode_cwltype(type_))
|
|
55
|
+
return s.strip()
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
def RunConversion_isArrayType_Z5C31A0F9(type_: CWLType) -> bool:
|
|
59
|
+
if type_.tag == 11:
|
|
60
|
+
return True
|
|
61
|
+
|
|
62
|
+
elif type_.tag == 14:
|
|
63
|
+
def predicate(_arg: CWLType, type_: Any=type_) -> bool:
|
|
64
|
+
if _arg.tag == 11:
|
|
65
|
+
return True
|
|
66
|
+
|
|
67
|
+
else:
|
|
68
|
+
return False
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
return exists(predicate, type_.fields[0])
|
|
72
|
+
|
|
73
|
+
else:
|
|
74
|
+
return False
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
def RunConversion_composeCWLInputFilePath_Z384F8060(path: str, run_name: str) -> str:
|
|
79
|
+
if starts_with_exact(path, "../.."):
|
|
80
|
+
return replace(replace(path, "../../", ""), "../..", "")
|
|
81
|
+
|
|
82
|
+
else:
|
|
83
|
+
return combine_many(["runs", run_name, path])
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
def RunConversion_decomposeCWLInputFilePath_Z384F8060(path: str, run_name: str) -> str:
|
|
88
|
+
prefix: str = combine_many(["runs", run_name])
|
|
89
|
+
if starts_with_exact(path, prefix):
|
|
90
|
+
return trim_start(replace(path, prefix, ""), "/")
|
|
91
|
+
|
|
92
|
+
else:
|
|
93
|
+
return combine("../..", path)
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
def RunConversion_composeCWLInputValue_70DD9184(input_value: CWLParameterReference, example_of_work: LDNode, input_param: CWLInput, run_name: str) -> LDNode:
|
|
98
|
+
if input_param.Type_ is None:
|
|
99
|
+
raise Exception(((("Cannot convert param values \"" + str(input_value.Values)) + "\" as Input parameter \"") + input_param.Name) + "\" has no type.")
|
|
100
|
+
|
|
101
|
+
type_: CWLType = value_1(input_param.Type_)
|
|
102
|
+
if input_value.Type is not None:
|
|
103
|
+
if not equals(value_1(input_value.Type), type_):
|
|
104
|
+
raise Exception(((((("Type (" + RunConversion_formatCWLType_Z5C31A0F9(value_1(input_value.Type))) + ") of yml input value \"") + input_value.Key) + "\" does not match type of workflow input parameter (") + RunConversion_formatCWLType_Z5C31A0F9(type_)) + ").")
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
(pattern_matching_result,) = (None,)
|
|
108
|
+
if type_.tag == 0:
|
|
109
|
+
if len(input_value.Values) == 1:
|
|
110
|
+
pattern_matching_result = 0
|
|
111
|
+
|
|
112
|
+
elif RunConversion_isArrayType_Z5C31A0F9(type_):
|
|
113
|
+
pattern_matching_result = 1
|
|
114
|
+
|
|
115
|
+
else:
|
|
116
|
+
pattern_matching_result = 2
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
elif RunConversion_isArrayType_Z5C31A0F9(type_):
|
|
120
|
+
pattern_matching_result = 1
|
|
121
|
+
|
|
122
|
+
else:
|
|
123
|
+
pattern_matching_result = 2
|
|
124
|
+
|
|
125
|
+
if pattern_matching_result == 0:
|
|
126
|
+
path: str = RunConversion_composeCWLInputFilePath_Z384F8060(input_value.Values[0], run_name)
|
|
127
|
+
return LDFile.create_cwlparameter(path, example_of_work)
|
|
128
|
+
|
|
129
|
+
elif pattern_matching_result == 1:
|
|
130
|
+
def binder(ib: InputBinding, input_value: Any=input_value, example_of_work: Any=example_of_work, input_param: Any=input_param, run_name: Any=run_name) -> str | None:
|
|
131
|
+
return ib.ItemSeparator
|
|
132
|
+
|
|
133
|
+
values: str = join(default_arg(bind(binder, input_param.InputBinding), ","), input_value.Values)
|
|
134
|
+
return LDPropertyValue.create_cwlparameter(example_of_work, input_value.Key, ResizeArray_singleton(values))
|
|
135
|
+
|
|
136
|
+
elif pattern_matching_result == 2:
|
|
137
|
+
return LDPropertyValue.create_cwlparameter(example_of_work, input_value.Key, input_value.Values)
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
def RunConversion_decomposeCWLInputValue_Z1346FE9D(input_value: LDNode, run_name: str, context: LDContext | None=None, graph: LDGraph | None=None) -> CWLParameterReference:
|
|
142
|
+
example_of_work: LDNode
|
|
143
|
+
match_value: LDNode | None = LDFile.try_get_example_of_work_as_formal_parameter(input_value, graph, context)
|
|
144
|
+
if match_value is None:
|
|
145
|
+
arg: str = input_value.Id
|
|
146
|
+
example_of_work = to_fail(printf("Input value %s of run %s must have an exampleOfWork property pointing to a CWL formal parameter."))(arg)(run_name)
|
|
147
|
+
|
|
148
|
+
else:
|
|
149
|
+
example_of_work = match_value
|
|
150
|
+
|
|
151
|
+
key: str = LDFormalParameter.get_name_as_string(example_of_work, context)
|
|
152
|
+
if LDFile.validate_cwlparameter(input_value, context):
|
|
153
|
+
return CWLParameterReference(key, [RunConversion_decomposeCWLInputFilePath_Z384F8060(input_value.Id, run_name)], CWLType_file())
|
|
154
|
+
|
|
155
|
+
elif LDPropertyValue.validate_cwlparameter(input_value, context):
|
|
156
|
+
return CWLParameterReference(key, LDPropertyValue.get_values_as_string(input_value, context))
|
|
157
|
+
|
|
158
|
+
else:
|
|
159
|
+
arg_2: str = input_value.Id
|
|
160
|
+
return to_fail(printf("Input value %s of run %s is neither a CWL File nor a CWL Parameter."))(arg_2)(run_name)
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
def RunConversion_composeWorkflowInvocationFromArcRun_Z8CC08AC(run: ArcRun, fs: FileSystem | None=None) -> Array[LDNode]:
|
|
165
|
+
workflow_protocol: LDNode
|
|
166
|
+
workflow_file_path: str = Run_cwlFileNameFromIdentifier(run.Identifier)
|
|
167
|
+
match_value: CWLProcessingUnit | None = run.CWLDescription
|
|
168
|
+
if match_value is None:
|
|
169
|
+
arg: str = run.Identifier
|
|
170
|
+
workflow_protocol = to_fail(printf("Run %s must have a CWL description"))(arg)
|
|
171
|
+
|
|
172
|
+
else:
|
|
173
|
+
workflow_protocol = WorkflowConversion_composeWorkflowProtocolFromProcessingUnit_Z3099C0F7(workflow_file_path, match_value, None, run.Identifier)
|
|
174
|
+
|
|
175
|
+
def f(tupled_arg: tuple[CWLInput, LDNode], run: Any=run, fs: Any=fs) -> LDNode:
|
|
176
|
+
ld_i: LDNode = tupled_arg[1]
|
|
177
|
+
name: str = LDFormalParameter.get_name_as_string(ld_i, workflow_protocol.TryGetContext())
|
|
178
|
+
def chooser(i_1: CWLParameterReference, tupled_arg: Any=tupled_arg) -> CWLParameterReference | None:
|
|
179
|
+
if i_1.Key == name:
|
|
180
|
+
return i_1
|
|
181
|
+
|
|
182
|
+
else:
|
|
183
|
+
return None
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
param_ref: CWLParameterReference | None = try_pick(chooser, run.CWLInput)
|
|
187
|
+
if param_ref is None:
|
|
188
|
+
raise Exception(((("Could not create workflow invocation for run \"" + run.Identifier) + "\": Workflow parameter \"") + name) + "\" had no assigned value.")
|
|
189
|
+
|
|
190
|
+
else:
|
|
191
|
+
return RunConversion_composeCWLInputValue_70DD9184(param_ref, ld_i, tupled_arg[0], run.Identifier)
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
def _arrow4409(__unit: None=None, run: Any=run, fs: Any=fs) -> Array[tuple[CWLInput, LDNode]]:
|
|
195
|
+
b: Array[LDNode] = LDComputationalWorkflow.get_inputs_as_formal_parameters(workflow_protocol, None, workflow_protocol.TryGetContext())
|
|
196
|
+
return ResizeArray_zip(WorkflowConversion_getInputParametersFromProcessingUnit_30922B92(value_1(run.CWLDescription)), b)
|
|
197
|
+
|
|
198
|
+
input_params: Array[LDNode] = ResizeArray_map(f, _arrow4409())
|
|
199
|
+
process_sequence: Array[LDNode] = list(ARCtrl_ArcTables__ArcTables_GetProcesses_5E660E5C(ArcTables(run.Tables), None, None, fs))
|
|
200
|
+
main_invocation: LDNode = LDWorkflowInvocation.create(run.Identifier, workflow_protocol, input_params, None, None, None, None, None, None, workflow_protocol)
|
|
201
|
+
if len(process_sequence) == 0:
|
|
202
|
+
return ResizeArray_singleton(main_invocation)
|
|
203
|
+
|
|
204
|
+
else:
|
|
205
|
+
def f_1(p: LDNode, run: Any=run, fs: Any=fs) -> LDNode:
|
|
206
|
+
id: str = replace(p.Id, "Process", ("WorkflowInvocation_" + run.Identifier) + "")
|
|
207
|
+
name_1: str = LDLabProcess.get_name_as_string(p, p.TryGetContext())
|
|
208
|
+
inputs: Array[LDNode] = LDLabProcess.get_objects(p)
|
|
209
|
+
results: Array[LDNode] | None = Option_fromSeq(LDLabProcess.get_results(p))
|
|
210
|
+
protocol: LDNode | None = LDLabProcess.try_get_executes_lab_protocol(p)
|
|
211
|
+
parameter_values: Array[LDNode] | None = Option_fromSeq(LDLabProcess.get_parameter_values(p))
|
|
212
|
+
def mapping(a_3: LDNode, p: Any=p) -> Array[LDNode]:
|
|
213
|
+
return ResizeArray_singleton(a_3)
|
|
214
|
+
|
|
215
|
+
agents: Array[LDNode] | None = map(mapping, LDLabProcess.try_get_agent(p))
|
|
216
|
+
disambiguating_descriptions: Array[str] | None = Option_fromSeq(LDLabProcess.get_disambiguating_descriptions_as_string(p))
|
|
217
|
+
return LDWorkflowInvocation.create(name_1, workflow_protocol, inputs, results, None, agents, id, None, disambiguating_descriptions, protocol, parameter_values)
|
|
218
|
+
|
|
219
|
+
return ResizeArray_appendSingleton(main_invocation, ResizeArray_map(f_1, process_sequence))
|
|
220
|
+
|
|
221
|
+
|
|
222
|
+
|
|
223
|
+
def RunConversion_decomposeMainWorkflowInvocation_Z1346FE9D(workflow_invocation: LDNode, run_name: str, context: LDContext | None=None, graph: LDGraph | None=None) -> tuple[CWLProcessingUnit, Array[CWLParameterReference]]:
|
|
224
|
+
def _arrow4410(__unit: None=None, workflow_invocation: Any=workflow_invocation, run_name: Any=run_name, context: Any=context, graph: Any=graph) -> CWLProcessingUnit:
|
|
225
|
+
match_value: LDNode | None = LDLabProcess.try_get_executes_lab_protocol(workflow_invocation, graph, context)
|
|
226
|
+
if match_value is None:
|
|
227
|
+
raise Exception(("Could not decompose workflow invocation for run \"" + run_name) + "\": Workflow parameter \"name\" had no assigned value.")
|
|
228
|
+
|
|
229
|
+
else:
|
|
230
|
+
return WorkflowConversion_decomposeWorkflowProtocolToProcessingUnit_ZB11202F(match_value, None, context, graph)
|
|
231
|
+
|
|
232
|
+
|
|
233
|
+
def f(iv: LDNode, workflow_invocation: Any=workflow_invocation, run_name: Any=run_name, context: Any=context, graph: Any=graph) -> CWLParameterReference:
|
|
234
|
+
return RunConversion_decomposeCWLInputValue_Z1346FE9D(iv, run_name, context, graph)
|
|
235
|
+
|
|
236
|
+
return (_arrow4410(), ResizeArray_map(f, LDLabProcess.get_objects(workflow_invocation, graph, context)))
|
|
237
|
+
|
|
238
|
+
|
|
239
|
+
def RunConversion_composeRun_Z8CC08AC(run: ArcRun, fs: FileSystem | None=None) -> LDNode:
|
|
240
|
+
workflow_protocol: LDNode
|
|
241
|
+
workflow_file_path: str = Run_cwlFileNameFromIdentifier(run.Identifier)
|
|
242
|
+
match_value: CWLProcessingUnit | None = run.CWLDescription
|
|
243
|
+
if match_value is None:
|
|
244
|
+
arg: str = run.Identifier
|
|
245
|
+
workflow_protocol = to_fail(printf("Run %s must have a CWL description"))(arg)
|
|
246
|
+
|
|
247
|
+
else:
|
|
248
|
+
workflow_protocol = WorkflowConversion_composeWorkflowProtocolFromProcessingUnit_Z3099C0F7(workflow_file_path, match_value, None, run.Identifier)
|
|
249
|
+
|
|
250
|
+
workflow_invocations: Array[LDNode] | None = Option_fromSeq(RunConversion_composeWorkflowInvocationFromArcRun_Z8CC08AC(run, fs))
|
|
251
|
+
def mapping(term: OntologyAnnotation, run: Any=run, fs: Any=fs) -> LDNode:
|
|
252
|
+
return BaseTypes_composeDefinedTerm_ZDED3A0F(term)
|
|
253
|
+
|
|
254
|
+
measurement_method: LDNode | None = map(mapping, run.TechnologyType)
|
|
255
|
+
def mapping_1(term_1: OntologyAnnotation, run: Any=run, fs: Any=fs) -> LDNode:
|
|
256
|
+
return BaseTypes_composeDefinedTerm_ZDED3A0F(term_1)
|
|
257
|
+
|
|
258
|
+
measurement_technique: LDNode | None = map(mapping_1, run.TechnologyPlatform)
|
|
259
|
+
def mapping_2(term_2: OntologyAnnotation, run: Any=run, fs: Any=fs) -> LDNode:
|
|
260
|
+
return BaseTypes_composePropertyValueFromOA_ZDED3A0F(term_2)
|
|
261
|
+
|
|
262
|
+
variable_measured: LDNode | None = map(mapping_2, run.MeasurementType)
|
|
263
|
+
def f(c: Person, run: Any=run, fs: Any=fs) -> LDNode:
|
|
264
|
+
return PersonConversion_composePerson_Z64D846DC(c)
|
|
265
|
+
|
|
266
|
+
creators: Array[LDNode] | None = Option_fromSeq(ResizeArray_map(f, run.Performers))
|
|
267
|
+
publisher: LDNode = LDOrganization.create("DataPLANT")
|
|
268
|
+
date_created: Any = utc_now()
|
|
269
|
+
if creators is not None:
|
|
270
|
+
LDComputationalWorkflow.set_creators(workflow_protocol, value_1(creators))
|
|
271
|
+
|
|
272
|
+
LDComputationalWorkflow.set_sd_publisher(workflow_protocol, publisher)
|
|
273
|
+
LDComputationalWorkflow.set_date_created_as_date_time(workflow_protocol, date_created)
|
|
274
|
+
def mapping_3(datamap: Datamap, run: Any=run, fs: Any=fs) -> Array[LDNode]:
|
|
275
|
+
return DatamapConversion_composeFragmentDescriptors_Z892BFC3(datamap)
|
|
276
|
+
|
|
277
|
+
fragment_descriptors: Array[LDNode] | None = map(mapping_3, run.Datamap)
|
|
278
|
+
def mapping_4(ps: Array[LDNode], run: Any=run, fs: Any=fs) -> Array[LDNode]:
|
|
279
|
+
return AssayConversion_getDataFilesFromProcesses_6BABD1B0(ps, fragment_descriptors)
|
|
280
|
+
|
|
281
|
+
data_files: Array[LDNode] | None = map(mapping_4, workflow_invocations)
|
|
282
|
+
has_parts: Array[LDNode] | None = ResizeArray_singleton(workflow_protocol) if (data_files is None) else ResizeArray_appendSingleton(workflow_protocol, data_files)
|
|
283
|
+
def _arrow4411(__unit: None=None, run: Any=run, fs: Any=fs) -> Array[LDNode] | None:
|
|
284
|
+
fds_1: Array[LDNode] = fragment_descriptors
|
|
285
|
+
return fds_1
|
|
286
|
+
|
|
287
|
+
def _arrow4412(__unit: None=None, run: Any=run, fs: Any=fs) -> Array[LDNode] | None:
|
|
288
|
+
vm_1: LDNode = variable_measured
|
|
289
|
+
return ResizeArray_singleton(vm_1)
|
|
290
|
+
|
|
291
|
+
def _arrow4413(__unit: None=None, run: Any=run, fs: Any=fs) -> Array[LDNode] | None:
|
|
292
|
+
fds: Array[LDNode] = fragment_descriptors
|
|
293
|
+
vm: LDNode = variable_measured
|
|
294
|
+
return ResizeArray_appendSingleton(vm, fds)
|
|
295
|
+
|
|
296
|
+
variable_measureds: Array[LDNode] | None = (None if (fragment_descriptors is None) else _arrow4411()) if (variable_measured is None) else (_arrow4412() if (fragment_descriptors is None) else _arrow4413())
|
|
297
|
+
def f_1(c_1: Comment, run: Any=run, fs: Any=fs) -> LDNode:
|
|
298
|
+
return BaseTypes_composeComment_Z13201A7E(c_1)
|
|
299
|
+
|
|
300
|
+
comments: Array[LDNode] | None = Option_fromSeq(ResizeArray_map(f_1, run.Comments))
|
|
301
|
+
return LDDataset.create_arcrun(run.Identifier, ResizeArray_singleton(workflow_protocol), None, run.Title, run.Description, creators, has_parts, measurement_method, measurement_technique, variable_measureds, workflow_invocations, workflow_invocations, comments)
|
|
302
|
+
|
|
303
|
+
|
|
304
|
+
def RunConversion_decomposeRun_Z6839B9E8(run: LDNode, graph: LDGraph | None=None, context: LDContext | None=None) -> ArcRun:
|
|
305
|
+
workflow_protocol: LDNode | None = LDDataset.try_get_main_entity_as_workflow_protocol(run, graph, context)
|
|
306
|
+
def predicate(wi: LDNode, run: Any=run, graph: Any=graph, context: Any=context) -> bool:
|
|
307
|
+
match_value: LDNode | None = LDLabProcess.try_get_executes_lab_protocol(wi, graph, context)
|
|
308
|
+
(pattern_matching_result,) = (None,)
|
|
309
|
+
if match_value is not None:
|
|
310
|
+
def _arrow4415(__unit: None=None, wi: Any=wi) -> bool:
|
|
311
|
+
lp: LDNode = match_value
|
|
312
|
+
return LDWorkflowProtocol.validate(lp, context)
|
|
313
|
+
|
|
314
|
+
if _arrow4415():
|
|
315
|
+
pattern_matching_result = 0
|
|
316
|
+
|
|
317
|
+
else:
|
|
318
|
+
pattern_matching_result = 1
|
|
319
|
+
|
|
320
|
+
|
|
321
|
+
else:
|
|
322
|
+
pattern_matching_result = 1
|
|
323
|
+
|
|
324
|
+
if pattern_matching_result == 0:
|
|
325
|
+
return True
|
|
326
|
+
|
|
327
|
+
elif pattern_matching_result == 1:
|
|
328
|
+
return False
|
|
329
|
+
|
|
330
|
+
|
|
331
|
+
main_workflow_invocation: LDNode = find(predicate, LDDataset.get_abouts_as_workflow_invocation(run, graph, context))
|
|
332
|
+
def f(iv: LDNode, run: Any=run, graph: Any=graph, context: Any=context) -> CWLParameterReference:
|
|
333
|
+
return RunConversion_decomposeCWLInputValue_Z1346FE9D(iv, LDDataset.get_identifier_as_string(run, context), context, graph)
|
|
334
|
+
|
|
335
|
+
pattern_input: tuple[CWLProcessingUnit, Array[CWLParameterReference]] = RunConversion_decomposeMainWorkflowInvocation_Z1346FE9D(main_workflow_invocation, LDDataset.get_identifier_as_string(run, context), context, graph) if (workflow_protocol is None) else ((WorkflowConversion_decomposeWorkflowProtocolToProcessingUnit_ZB11202F(workflow_protocol, None, context, graph), ResizeArray_map(f, LDLabProcess.get_objects(main_workflow_invocation, graph, context))))
|
|
336
|
+
def mapping(m: LDNode, run: Any=run, graph: Any=graph, context: Any=context) -> OntologyAnnotation:
|
|
337
|
+
return BaseTypes_decomposeDefinedTerm_Z2F770004(m, context)
|
|
338
|
+
|
|
339
|
+
measurement_method: OntologyAnnotation | None = map(mapping, LDDataset.try_get_measurement_method_as_defined_term(run, graph, context))
|
|
340
|
+
def mapping_1(m_1: LDNode, run: Any=run, graph: Any=graph, context: Any=context) -> OntologyAnnotation:
|
|
341
|
+
return BaseTypes_decomposeDefinedTerm_Z2F770004(m_1, context)
|
|
342
|
+
|
|
343
|
+
measurement_technique: OntologyAnnotation | None = map(mapping_1, LDDataset.try_get_measurement_technique_as_defined_term(run, graph, context))
|
|
344
|
+
def mapping_2(v: LDNode, run: Any=run, graph: Any=graph, context: Any=context) -> OntologyAnnotation:
|
|
345
|
+
return BaseTypes_decomposePropertyValueToOA_Z2F770004(v, context)
|
|
346
|
+
|
|
347
|
+
variable_measured: OntologyAnnotation | None = map(mapping_2, LDDataset.try_get_variable_measured_as_measurement_type(run, graph, context))
|
|
348
|
+
def f_1(c: LDNode, run: Any=run, graph: Any=graph, context: Any=context) -> Person:
|
|
349
|
+
return PersonConversion_decomposePerson_Z6839B9E8(c, graph, context)
|
|
350
|
+
|
|
351
|
+
contacts: Array[Person] = ResizeArray_map(f_1, LDDataset.get_creators(run, graph, context))
|
|
352
|
+
def f_2(c_1: LDNode, run: Any=run, graph: Any=graph, context: Any=context) -> Comment:
|
|
353
|
+
return BaseTypes_decomposeComment_Z2F770004(c_1, context)
|
|
354
|
+
|
|
355
|
+
comments: Array[Comment] = ResizeArray_map(f_2, LDDataset.get_comments(run, graph, context))
|
|
356
|
+
datamap: Datamap | None
|
|
357
|
+
v_1: Datamap = DatamapConversion_decomposeFragmentDescriptors_Z6E59645F(LDDataset.get_variable_measured_as_fragment_descriptors(run, graph, context), graph, context)
|
|
358
|
+
datamap = Option_fromValueWithDefault(Datamap.init(), v_1)
|
|
359
|
+
def f_3(wi_1: LDNode, run: Any=run, graph: Any=graph, context: Any=context) -> bool:
|
|
360
|
+
return wi_1.Id != main_workflow_invocation.Id
|
|
361
|
+
|
|
362
|
+
tables: ArcTables = ARCtrl_ArcTables__ArcTables_fromProcesses_Static_Z27F0B586(of_seq(ResizeArray_filter(f_3, LDDataset.get_abouts_as_lab_process(run, graph, context))), graph, context)
|
|
363
|
+
return ArcRun.create(LDDataset.get_identifier_as_string(run, context), LDDataset.try_get_name_as_string(run, context), LDDataset.try_get_description_as_string(run, context), variable_measured, measurement_method, measurement_technique, None, tables.Tables, datamap, contacts, pattern_input[0], pattern_input[1], comments)
|
|
364
|
+
|
|
365
|
+
|
|
366
|
+
__all__ = ["RunConversion_reflection", "RunConversion_formatCWLType_Z5C31A0F9", "RunConversion_isArrayType_Z5C31A0F9", "RunConversion_composeCWLInputFilePath_Z384F8060", "RunConversion_decomposeCWLInputFilePath_Z384F8060", "RunConversion_composeCWLInputValue_70DD9184", "RunConversion_decomposeCWLInputValue_Z1346FE9D", "RunConversion_composeWorkflowInvocationFromArcRun_Z8CC08AC", "RunConversion_decomposeMainWorkflowInvocation_Z1346FE9D", "RunConversion_composeRun_Z8CC08AC", "RunConversion_decomposeRun_Z6839B9E8"]
|
|
367
|
+
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from typing import Any
|
|
3
|
+
from ..Core.comment import Comment
|
|
4
|
+
from ..Core.Helper.collections_ import (ResizeArray_map, Option_fromSeq, ResizeArray_tryPick)
|
|
5
|
+
from ..Core.ontology_annotation import OntologyAnnotation
|
|
6
|
+
from ..Core.publication import Publication
|
|
7
|
+
from ..Json.ROCrate.ldnode import (decoder as decoder_1, encoder)
|
|
8
|
+
from ..ROCrate.ldcontext import LDContext
|
|
9
|
+
from ..ROCrate.ldobject import (LDNode, LDGraph)
|
|
10
|
+
from ..ROCrate.LDTypes.person import LDPerson
|
|
11
|
+
from ..ROCrate.LDTypes.property_value import LDPropertyValue
|
|
12
|
+
from ..ROCrate.LDTypes.scholarly_article import LDScholarlyArticle
|
|
13
|
+
from ..fable_modules.thoth_json_python.decode import Decode_fromString
|
|
14
|
+
from ..fable_modules.thoth_json_python.encode import to_string as to_string_1
|
|
15
|
+
from ..fable_modules.fable_library.option import (map as map_1, value as value_4)
|
|
16
|
+
from ..fable_modules.fable_library.reflection import (TypeInfo, class_type)
|
|
17
|
+
from ..fable_modules.fable_library.result import FSharpResult_2
|
|
18
|
+
from ..fable_modules.fable_library.seq import (map, is_empty, filter, to_list, delay, append, singleton, empty)
|
|
19
|
+
from ..fable_modules.fable_library.string_ import (to_text, printf, join)
|
|
20
|
+
from ..fable_modules.fable_library.system_text import (StringBuilder__ctor, StringBuilder__Append_244C7CD6, StringBuilder__Clear)
|
|
21
|
+
from ..fable_modules.fable_library.types import (Array, to_string)
|
|
22
|
+
from ..fable_modules.fable_library.util import (ignore, get_enumerator, IEnumerable_1)
|
|
23
|
+
from .basic import (BaseTypes_composeComment_Z13201A7E, BaseTypes_composeDefinedTerm_ZDED3A0F, BaseTypes_decomposeComment_Z2F770004, BaseTypes_decomposeDefinedTerm_Z2F770004)
|
|
24
|
+
|
|
25
|
+
def _expr4379() -> TypeInfo:
|
|
26
|
+
return class_type("ARCtrl.Conversion.ScholarlyArticleConversion", None, ScholarlyArticleConversion)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class ScholarlyArticleConversion:
|
|
30
|
+
...
|
|
31
|
+
|
|
32
|
+
ScholarlyArticleConversion_reflection = _expr4379
|
|
33
|
+
|
|
34
|
+
def ScholarlyArticleConversion_composeAuthor_Z721C83C5(author: str) -> LDNode:
|
|
35
|
+
try:
|
|
36
|
+
match_value: FSharpResult_2[LDNode, str] = Decode_fromString(decoder_1, author)
|
|
37
|
+
if match_value.tag == 1:
|
|
38
|
+
raise Exception(to_text(printf("Error decoding string: %O"))(match_value.fields[0]))
|
|
39
|
+
|
|
40
|
+
else:
|
|
41
|
+
return match_value.fields[0]
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
except Exception as match_value_1:
|
|
45
|
+
return LDPerson.create(author)
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
def ScholarlyArticleConversion_splitAuthors_Z721C83C5(a: str) -> Array[str]:
|
|
50
|
+
bracket_count: int = 0
|
|
51
|
+
authors: Array[str] = []
|
|
52
|
+
sb: Any = StringBuilder__ctor()
|
|
53
|
+
with get_enumerator(list(a)) as enumerator:
|
|
54
|
+
while enumerator.System_Collections_IEnumerator_MoveNext():
|
|
55
|
+
c: str = enumerator.System_Collections_Generic_IEnumerator_1_get_Current()
|
|
56
|
+
if c == "{":
|
|
57
|
+
bracket_count = (bracket_count + 1) or 0
|
|
58
|
+
ignore(StringBuilder__Append_244C7CD6(sb, c))
|
|
59
|
+
|
|
60
|
+
elif c == "}":
|
|
61
|
+
bracket_count = (bracket_count - 1) or 0
|
|
62
|
+
ignore(StringBuilder__Append_244C7CD6(sb, c))
|
|
63
|
+
|
|
64
|
+
elif (bracket_count == 0) if (c == ",") else False:
|
|
65
|
+
(authors.append(to_string(sb)))
|
|
66
|
+
ignore(StringBuilder__Clear(sb))
|
|
67
|
+
|
|
68
|
+
else:
|
|
69
|
+
ignore(StringBuilder__Append_244C7CD6(sb, c))
|
|
70
|
+
|
|
71
|
+
(authors.append(to_string(sb)))
|
|
72
|
+
return authors
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
def ScholarlyArticleConversion_composeAuthors_Z721C83C5(authors: str) -> Array[LDNode]:
|
|
76
|
+
def mapping(author: str, authors: Any=authors) -> LDNode:
|
|
77
|
+
return ScholarlyArticleConversion_composeAuthor_Z721C83C5(author)
|
|
78
|
+
|
|
79
|
+
return list(map(mapping, ScholarlyArticleConversion_splitAuthors_Z721C83C5(authors)))
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
def ScholarlyArticleConversion_decomposeAuthor_Z2F770004(author: LDNode, context: LDContext | None=None) -> str:
|
|
83
|
+
def predicate(n: str, author: Any=author, context: Any=context) -> bool:
|
|
84
|
+
return n != LDPerson.given_name()
|
|
85
|
+
|
|
86
|
+
if is_empty(filter(predicate, author.GetPropertyNames(context))):
|
|
87
|
+
return LDPerson.get_given_name_as_string(author, context)
|
|
88
|
+
|
|
89
|
+
else:
|
|
90
|
+
return to_string_1(0, encoder(author))
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
def ScholarlyArticleConversion_decomposeAuthors_1AAAE9A5(authors: Array[LDNode], context: LDContext | None=None) -> str:
|
|
95
|
+
def f(a: LDNode, authors: Any=authors, context: Any=context) -> str:
|
|
96
|
+
return ScholarlyArticleConversion_decomposeAuthor_Z2F770004(a, context)
|
|
97
|
+
|
|
98
|
+
return join(",", ResizeArray_map(f, authors))
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
def ScholarlyArticleConversion_composeScholarlyArticle_D324A6D(publication: Publication) -> LDNode:
|
|
102
|
+
title: str
|
|
103
|
+
match_value: str | None = publication.Title
|
|
104
|
+
if match_value is None:
|
|
105
|
+
raise Exception("Publication must have a title")
|
|
106
|
+
|
|
107
|
+
else:
|
|
108
|
+
title = match_value
|
|
109
|
+
|
|
110
|
+
def mapping(authors: str, publication: Any=publication) -> Array[LDNode]:
|
|
111
|
+
return ScholarlyArticleConversion_composeAuthors_Z721C83C5(authors)
|
|
112
|
+
|
|
113
|
+
authors_1: Array[LDNode] | None = map_1(mapping, publication.Authors)
|
|
114
|
+
def f(comment: Comment, publication: Any=publication) -> LDNode:
|
|
115
|
+
return BaseTypes_composeComment_Z13201A7E(comment)
|
|
116
|
+
|
|
117
|
+
comments: Array[LDNode] | None = Option_fromSeq(ResizeArray_map(f, publication.Comments))
|
|
118
|
+
def _arrow4381(__unit: None=None, publication: Any=publication) -> IEnumerable_1[LDNode]:
|
|
119
|
+
def _arrow4380(__unit: None=None) -> IEnumerable_1[LDNode]:
|
|
120
|
+
return singleton(LDPropertyValue.create_pub_med_id(value_4(publication.PubMedID))) if ((value_4(publication.PubMedID) != "") if (publication.PubMedID is not None) else False) else empty()
|
|
121
|
+
|
|
122
|
+
return append(singleton(LDPropertyValue.create_doi(value_4(publication.DOI))) if ((value_4(publication.DOI) != "") if (publication.DOI is not None) else False) else empty(), delay(_arrow4380))
|
|
123
|
+
|
|
124
|
+
identifiers: Array[LDNode] = list(to_list(delay(_arrow4381)))
|
|
125
|
+
def mapping_1(term: OntologyAnnotation, publication: Any=publication) -> LDNode:
|
|
126
|
+
return BaseTypes_composeDefinedTerm_ZDED3A0F(term)
|
|
127
|
+
|
|
128
|
+
status: LDNode | None = map_1(mapping_1, publication.Status)
|
|
129
|
+
return LDScholarlyArticle.create(title, identifiers, None, authors_1, None, status, comments)
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
def ScholarlyArticleConversion_decomposeScholarlyArticle_Z6839B9E8(sa: LDNode, graph: LDGraph | None=None, context: LDContext | None=None) -> Publication:
|
|
133
|
+
title: str = LDScholarlyArticle.get_headline_as_string(sa, context)
|
|
134
|
+
def mapping(a: Array[LDNode], sa: Any=sa, graph: Any=graph, context: Any=context) -> str:
|
|
135
|
+
return ScholarlyArticleConversion_decomposeAuthors_1AAAE9A5(a, context)
|
|
136
|
+
|
|
137
|
+
authors: str | None = map_1(mapping, Option_fromSeq(LDScholarlyArticle.get_authors(sa, graph, context)))
|
|
138
|
+
def f(c: LDNode, sa: Any=sa, graph: Any=graph, context: Any=context) -> Comment:
|
|
139
|
+
return BaseTypes_decomposeComment_Z2F770004(c, context)
|
|
140
|
+
|
|
141
|
+
comments: Array[Comment] = ResizeArray_map(f, LDScholarlyArticle.get_comments(sa, graph, context))
|
|
142
|
+
def mapping_1(s: LDNode, sa: Any=sa, graph: Any=graph, context: Any=context) -> OntologyAnnotation:
|
|
143
|
+
return BaseTypes_decomposeDefinedTerm_Z2F770004(s, context)
|
|
144
|
+
|
|
145
|
+
status: OntologyAnnotation | None = map_1(mapping_1, LDScholarlyArticle.try_get_creative_work_status(sa, graph, context))
|
|
146
|
+
identifiers: Array[LDNode] = LDScholarlyArticle.get_identifiers_as_property_value(sa, graph, context)
|
|
147
|
+
doi: str | None
|
|
148
|
+
def f_1(i: LDNode, sa: Any=sa, graph: Any=graph, context: Any=context) -> str | None:
|
|
149
|
+
return LDPropertyValue.try_get_as_doi(i, context)
|
|
150
|
+
|
|
151
|
+
_arg: str | None = ResizeArray_tryPick(f_1, identifiers)
|
|
152
|
+
doi = LDScholarlyArticle.try_get_same_as_as_string(sa, context) if (_arg is None) else _arg
|
|
153
|
+
pub_med_id: str | None
|
|
154
|
+
def f_2(i_1: LDNode, sa: Any=sa, graph: Any=graph, context: Any=context) -> str | None:
|
|
155
|
+
return LDPropertyValue.try_get_as_pub_med_id(i_1, context)
|
|
156
|
+
|
|
157
|
+
_arg_1: str | None = ResizeArray_tryPick(f_2, identifiers)
|
|
158
|
+
pub_med_id = LDScholarlyArticle.try_get_url_as_string(sa, context) if (_arg_1 is None) else _arg_1
|
|
159
|
+
return Publication.create(pub_med_id, doi, authors, title, status, comments)
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
__all__ = ["ScholarlyArticleConversion_reflection", "ScholarlyArticleConversion_composeAuthor_Z721C83C5", "ScholarlyArticleConversion_splitAuthors_Z721C83C5", "ScholarlyArticleConversion_composeAuthors_Z721C83C5", "ScholarlyArticleConversion_decomposeAuthor_Z2F770004", "ScholarlyArticleConversion_decomposeAuthors_1AAAE9A5", "ScholarlyArticleConversion_composeScholarlyArticle_D324A6D", "ScholarlyArticleConversion_decomposeScholarlyArticle_Z6839B9E8"]
|
|
163
|
+
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from typing import Any
|
|
3
|
+
from ..Core.arc_types import ArcStudy
|
|
4
|
+
from ..Core.comment import Comment
|
|
5
|
+
from ..Core.datamap import Datamap
|
|
6
|
+
from ..Core.Helper.collections_ import (Option_fromSeq, ResizeArray_map, Option_fromValueWithDefault)
|
|
7
|
+
from ..Core.person import Person
|
|
8
|
+
from ..Core.publication import Publication
|
|
9
|
+
from ..Core.Table.arc_tables import ArcTables
|
|
10
|
+
from ..FileSystem.file_system import FileSystem
|
|
11
|
+
from ..ROCrate.ldcontext import LDContext
|
|
12
|
+
from ..ROCrate.ldobject import (LDNode, LDGraph)
|
|
13
|
+
from ..ROCrate.LDTypes.dataset import LDDataset
|
|
14
|
+
from ..fable_modules.fable_library.date import now
|
|
15
|
+
from ..fable_modules.fable_library.list import of_seq
|
|
16
|
+
from ..fable_modules.fable_library.option import (bind, map)
|
|
17
|
+
from ..fable_modules.fable_library.reflection import (TypeInfo, class_type)
|
|
18
|
+
from ..fable_modules.fable_library.types import Array
|
|
19
|
+
from .assay import AssayConversion_getDataFilesFromProcesses_6BABD1B0
|
|
20
|
+
from .basic import (BaseTypes_composeComment_Z13201A7E, BaseTypes_decomposeComment_Z2F770004)
|
|
21
|
+
from .datamap import (DatamapConversion_composeFragmentDescriptors_Z892BFC3, DatamapConversion_decomposeFragmentDescriptors_Z6E59645F)
|
|
22
|
+
from .date_time import (try_from_string, to_string)
|
|
23
|
+
from .person import (PersonConversion_composePerson_Z64D846DC, PersonConversion_decomposePerson_Z6839B9E8)
|
|
24
|
+
from .scholarly_article import (ScholarlyArticleConversion_composeScholarlyArticle_D324A6D, ScholarlyArticleConversion_decomposeScholarlyArticle_Z6839B9E8)
|
|
25
|
+
from .table import (ARCtrl_ArcTables__ArcTables_GetProcesses_5E660E5C, ARCtrl_ArcTables__ArcTables_fromProcesses_Static_Z27F0B586)
|
|
26
|
+
|
|
27
|
+
def _expr4403() -> TypeInfo:
|
|
28
|
+
return class_type("ARCtrl.Conversion.StudyConversion", None, StudyConversion)
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
class StudyConversion:
|
|
32
|
+
...
|
|
33
|
+
|
|
34
|
+
StudyConversion_reflection = _expr4403
|
|
35
|
+
|
|
36
|
+
def StudyConversion_composeStudy_ZFE0E38E(study: ArcStudy, fs: FileSystem | None=None) -> LDNode:
|
|
37
|
+
def _arrow4404(s: str, study: Any=study, fs: Any=fs) -> Any | None:
|
|
38
|
+
return try_from_string(s)
|
|
39
|
+
|
|
40
|
+
date_created: Any | None = bind(_arrow4404, study.SubmissionDate)
|
|
41
|
+
def _arrow4405(s_1: str, study: Any=study, fs: Any=fs) -> Any | None:
|
|
42
|
+
return try_from_string(s_1)
|
|
43
|
+
|
|
44
|
+
date_published: Any | None = bind(_arrow4405, study.PublicReleaseDate)
|
|
45
|
+
date_modified: Any = now()
|
|
46
|
+
def f(p: Publication, study: Any=study, fs: Any=fs) -> LDNode:
|
|
47
|
+
return ScholarlyArticleConversion_composeScholarlyArticle_D324A6D(p)
|
|
48
|
+
|
|
49
|
+
publications: Array[LDNode] | None = Option_fromSeq(ResizeArray_map(f, study.Publications))
|
|
50
|
+
def f_1(c: Person, study: Any=study, fs: Any=fs) -> LDNode:
|
|
51
|
+
return PersonConversion_composePerson_Z64D846DC(c)
|
|
52
|
+
|
|
53
|
+
creators: Array[LDNode] | None = Option_fromSeq(ResizeArray_map(f_1, study.Contacts))
|
|
54
|
+
process_sequence: Array[LDNode] | None = Option_fromSeq(list(ARCtrl_ArcTables__ArcTables_GetProcesses_5E660E5C(ArcTables(study.Tables), None, study.Identifier, fs)))
|
|
55
|
+
def mapping(datamap: Datamap, study: Any=study, fs: Any=fs) -> Array[LDNode]:
|
|
56
|
+
return DatamapConversion_composeFragmentDescriptors_Z892BFC3(datamap)
|
|
57
|
+
|
|
58
|
+
fragment_descriptors: Array[LDNode] | None = map(mapping, study.Datamap)
|
|
59
|
+
def mapping_1(ps: Array[LDNode], study: Any=study, fs: Any=fs) -> Array[LDNode]:
|
|
60
|
+
return AssayConversion_getDataFilesFromProcesses_6BABD1B0(ps, fragment_descriptors)
|
|
61
|
+
|
|
62
|
+
data_files: Array[LDNode] | None = map(mapping_1, process_sequence)
|
|
63
|
+
def f_2(c_1: Comment, study: Any=study, fs: Any=fs) -> LDNode:
|
|
64
|
+
return BaseTypes_composeComment_Z13201A7E(c_1)
|
|
65
|
+
|
|
66
|
+
comments: Array[LDNode] | None = Option_fromSeq(ResizeArray_map(f_2, study.Comments))
|
|
67
|
+
return LDDataset.create_study(study.Identifier, None, creators, date_created, date_published, date_modified, study.Description, data_files, study.Title, publications, fragment_descriptors, comments, None, process_sequence)
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
def StudyConversion_decomposeStudy_Z6839B9E8(study: LDNode, graph: LDGraph | None=None, context: LDContext | None=None) -> ArcStudy:
|
|
71
|
+
def _arrow4406(d: Any, study: Any=study, graph: Any=graph, context: Any=context) -> str:
|
|
72
|
+
return to_string(d)
|
|
73
|
+
|
|
74
|
+
date_created: str | None = map(_arrow4406, LDDataset.try_get_date_created_as_date_time(study, context))
|
|
75
|
+
def _arrow4407(d_1: Any, study: Any=study, graph: Any=graph, context: Any=context) -> str:
|
|
76
|
+
return to_string(d_1)
|
|
77
|
+
|
|
78
|
+
date_published: str | None = map(_arrow4407, LDDataset.try_get_date_published_as_date_time(study, context))
|
|
79
|
+
def f(p: LDNode, study: Any=study, graph: Any=graph, context: Any=context) -> Publication:
|
|
80
|
+
return ScholarlyArticleConversion_decomposeScholarlyArticle_Z6839B9E8(p, graph, context)
|
|
81
|
+
|
|
82
|
+
publications: Array[Publication] = ResizeArray_map(f, LDDataset.get_citations(study, graph, context))
|
|
83
|
+
def f_1(c: LDNode, study: Any=study, graph: Any=graph, context: Any=context) -> Person:
|
|
84
|
+
return PersonConversion_decomposePerson_Z6839B9E8(c, graph, context)
|
|
85
|
+
|
|
86
|
+
creators: Array[Person] = ResizeArray_map(f_1, LDDataset.get_creators(study, graph, context))
|
|
87
|
+
datamap: Datamap | None
|
|
88
|
+
v: Datamap = DatamapConversion_decomposeFragmentDescriptors_Z6E59645F(LDDataset.get_variable_measured_as_fragment_descriptors(study, graph, context), graph, context)
|
|
89
|
+
datamap = Option_fromValueWithDefault(Datamap.init(), v)
|
|
90
|
+
tables: ArcTables = ARCtrl_ArcTables__ArcTables_fromProcesses_Static_Z27F0B586(of_seq(LDDataset.get_abouts_as_lab_process(study, graph, context)), graph, context)
|
|
91
|
+
def f_2(c_1: LDNode, study: Any=study, graph: Any=graph, context: Any=context) -> Comment:
|
|
92
|
+
return BaseTypes_decomposeComment_Z2F770004(c_1, context)
|
|
93
|
+
|
|
94
|
+
comments: Array[Comment] = ResizeArray_map(f_2, LDDataset.get_comments(study, graph, context))
|
|
95
|
+
return ArcStudy.create(LDDataset.get_identifier_as_string(study, context), LDDataset.try_get_name_as_string(study, context), LDDataset.try_get_description_as_string(study, context), date_created, date_published, publications, creators, None, tables.Tables, datamap, None, comments)
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
__all__ = ["StudyConversion_reflection", "StudyConversion_composeStudy_ZFE0E38E", "StudyConversion_decomposeStudy_Z6839B9E8"]
|
|
99
|
+
|