arctrl 3.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- arctrl-3.0.0/LICENSE +21 -0
- arctrl-3.0.0/PKG-INFO +157 -0
- arctrl-3.0.0/README.md +137 -0
- arctrl-3.0.0/pyproject.toml +43 -0
- arctrl-3.0.0/src/ARCtrl/__init__.py +23 -0
- arctrl-3.0.0/src/ARCtrl/cwl.py +12 -0
- arctrl-3.0.0/src/ARCtrl/py/CWL/__init__.py +0 -0
- arctrl-3.0.0/src/ARCtrl/py/CWL/cwlprocessing_unit.py +221 -0
- arctrl-3.0.0/src/ARCtrl/py/CWL/cwltypes.py +364 -0
- arctrl-3.0.0/src/ARCtrl/py/CWL/decode.py +3532 -0
- arctrl-3.0.0/src/ARCtrl/py/CWL/encode.py +1905 -0
- arctrl-3.0.0/src/ARCtrl/py/CWL/expression_tool_description.py +192 -0
- arctrl-3.0.0/src/ARCtrl/py/CWL/hash_helpers.py +60 -0
- arctrl-3.0.0/src/ARCtrl/py/CWL/inputs.py +122 -0
- arctrl-3.0.0/src/ARCtrl/py/CWL/operation_description.py +169 -0
- arctrl-3.0.0/src/ARCtrl/py/CWL/outputs.py +171 -0
- arctrl-3.0.0/src/ARCtrl/py/CWL/parameter_reference.py +74 -0
- arctrl-3.0.0/src/ARCtrl/py/CWL/requirements.py +350 -0
- arctrl-3.0.0/src/ARCtrl/py/CWL/tool_description.py +192 -0
- arctrl-3.0.0/src/ARCtrl/py/CWL/workflow_description.py +181 -0
- arctrl-3.0.0/src/ARCtrl/py/CWL/workflow_steps.py +354 -0
- arctrl-3.0.0/src/ARCtrl/py/Contract/__init__.py +0 -0
- arctrl-3.0.0/src/ARCtrl/py/Contract/arc.py +89 -0
- arctrl-3.0.0/src/ARCtrl/py/Contract/arc_assay.py +125 -0
- arctrl-3.0.0/src/ARCtrl/py/Contract/arc_investigation.py +88 -0
- arctrl-3.0.0/src/ARCtrl/py/Contract/arc_run.py +291 -0
- arctrl-3.0.0/src/ARCtrl/py/Contract/arc_study.py +126 -0
- arctrl-3.0.0/src/ARCtrl/py/Contract/arc_workflow.py +213 -0
- arctrl-3.0.0/src/ARCtrl/py/Contract/contract.py +153 -0
- arctrl-3.0.0/src/ARCtrl/py/Contract/datamap.py +396 -0
- arctrl-3.0.0/src/ARCtrl/py/Contract/git.py +116 -0
- arctrl-3.0.0/src/ARCtrl/py/Contract/license.py +58 -0
- arctrl-3.0.0/src/ARCtrl/py/Contract/validation_packages_config.py +107 -0
- arctrl-3.0.0/src/ARCtrl/py/ContractIO/__init__.py +0 -0
- arctrl-3.0.0/src/ARCtrl/py/ContractIO/contract_io.py +350 -0
- arctrl-3.0.0/src/ARCtrl/py/ContractIO/file_system_helper.py +264 -0
- arctrl-3.0.0/src/ARCtrl/py/Conversion/__init__.py +0 -0
- arctrl-3.0.0/src/ARCtrl/py/Conversion/assay.py +151 -0
- arctrl-3.0.0/src/ARCtrl/py/Conversion/basic.py +559 -0
- arctrl-3.0.0/src/ARCtrl/py/Conversion/column_index.py +91 -0
- arctrl-3.0.0/src/ARCtrl/py/Conversion/datamap.py +36 -0
- arctrl-3.0.0/src/ARCtrl/py/Conversion/date_time.py +32 -0
- arctrl-3.0.0/src/ARCtrl/py/Conversion/investigation.py +171 -0
- arctrl-3.0.0/src/ARCtrl/py/Conversion/person.py +148 -0
- arctrl-3.0.0/src/ARCtrl/py/Conversion/process.py +828 -0
- arctrl-3.0.0/src/ARCtrl/py/Conversion/run.py +367 -0
- arctrl-3.0.0/src/ARCtrl/py/Conversion/scholarly_article.py +163 -0
- arctrl-3.0.0/src/ARCtrl/py/Conversion/study.py +99 -0
- arctrl-3.0.0/src/ARCtrl/py/Conversion/table.py +229 -0
- arctrl-3.0.0/src/ARCtrl/py/Conversion/workflow.py +680 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/Helper/__init__.py +0 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/Helper/collections_.py +512 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/Helper/date_time.py +26 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/Helper/hash_codes.py +60 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/Helper/identifier.py +290 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/Helper/orcid.py +42 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/Helper/printer.py +13 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/Helper/regex.py +554 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/Helper/sem_ver.py +71 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/Helper/url.py +148 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/Process/__init__.py +0 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/Process/column_index.py +280 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/Process/component.py +200 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/Process/factor.py +151 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/Process/factor_value.py +182 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/Process/material.py +74 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/Process/material_attribute.py +95 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/Process/material_attribute_value.py +184 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/Process/material_type.py +45 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/Process/process.py +477 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/Process/process_input.py +265 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/Process/process_output.py +235 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/Process/process_parameter_value.py +200 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/Process/process_sequence.py +435 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/Process/protocol.py +175 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/Process/protocol_parameter.py +98 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/Process/sample.py +82 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/Process/source.py +62 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/Table/__init__.py +0 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/Table/arc_table.py +1206 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/Table/arc_table_aux.py +1308 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/Table/arc_tables.py +574 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/Table/composite_cell.py +319 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/Table/composite_column.py +73 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/Table/composite_header.py +739 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/__init__.py +0 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/arc_types.py +5312 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/comment.py +128 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/comment_list.py +127 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/conversion.py +1375 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/data.py +247 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/data_context.py +157 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/data_file.py +112 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/datamap.py +217 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/identifier_setters.py +43 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/iproperty_value.py +36 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/ontology_annotation.py +298 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/ontology_source_reference.py +114 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/person.py +259 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/publication.py +161 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/template.py +231 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/templates.py +148 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/uri.py +11 -0
- arctrl-3.0.0/src/ARCtrl/py/Core/value.py +188 -0
- arctrl-3.0.0/src/ARCtrl/py/FileSystem/__init__.py +0 -0
- arctrl-3.0.0/src/ARCtrl/py/FileSystem/commit.py +21 -0
- arctrl-3.0.0/src/ARCtrl/py/FileSystem/default_gitattributes.py +1 -0
- arctrl-3.0.0/src/ARCtrl/py/FileSystem/default_gitignore.py +1 -0
- arctrl-3.0.0/src/ARCtrl/py/FileSystem/default_license.py +1 -0
- arctrl-3.0.0/src/ARCtrl/py/FileSystem/file_system.py +58 -0
- arctrl-3.0.0/src/ARCtrl/py/FileSystem/file_system_tree.py +483 -0
- arctrl-3.0.0/src/ARCtrl/py/FileSystem/path.py +266 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/Datamap/__init__.py +0 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/Datamap/data_context.py +101 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/Datamap/datamap.py +53 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/Process/__init__.py +0 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/Process/assay_materials.py +46 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/Process/component.py +125 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/Process/factor.py +107 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/Process/factor_value.py +101 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/Process/material.py +226 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/Process/material_attribute.py +79 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/Process/material_attribute_value.py +101 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/Process/material_type.py +53 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/Process/process.py +296 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/Process/process_input.py +83 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/Process/process_output.py +67 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/Process/process_parameter_value.py +81 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/Process/protocol.py +354 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/Process/protocol_parameter.py +91 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/Process/sample.py +277 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/Process/source.py +214 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/Process/study_materials.py +52 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/Process/value.py +56 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/ROCrate/__init__.py +0 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/ROCrate/ldcontext.py +143 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/ROCrate/ldgraph.py +117 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/ROCrate/ldnode.py +304 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/ROCrate/ldref.py +44 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/ROCrate/ldvalue.py +102 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/Table/__init__.py +0 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/Table/arc_table.py +375 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/Table/cell_table.py +83 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/Table/composite_cell.py +136 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/Table/composite_header.py +67 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/Table/iotype.py +24 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/Table/oatable.py +82 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/Table/templates.py +281 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/__init__.py +0 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/assay.py +600 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/comment.py +206 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/context/rocrate/__init__.py +0 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/context/rocrate/isa_assay_context.py +101 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/context/rocrate/isa_comment_context.py +60 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/context/rocrate/isa_component_context.py +77 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/context/rocrate/isa_data_context.py +74 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/context/rocrate/isa_factor_context.py +74 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/context/rocrate/isa_factor_value_context.py +84 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/context/rocrate/isa_investigation_context.py +110 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/context/rocrate/isa_material_attribute_context.py +64 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/context/rocrate/isa_material_attribute_value_context.py +80 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/context/rocrate/isa_material_context.py +71 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/context/rocrate/isa_ontology_annotation_context.py +68 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/context/rocrate/isa_ontology_source_reference_context.py +75 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/context/rocrate/isa_organization_context.py +55 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/context/rocrate/isa_person_context.py +131 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/context/rocrate/isa_process_context.py +94 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/context/rocrate/isa_process_parameter_value_context.py +80 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/context/rocrate/isa_protocol_context.py +97 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/context/rocrate/isa_protocol_parameter_context.py +64 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/context/rocrate/isa_publication_context.py +78 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/context/rocrate/isa_sample_context.py +65 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/context/rocrate/isa_source_context.py +66 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/context/rocrate/isa_study_context.py +125 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/context/rocrate/property_value_context.py +73 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/context/rocrate/rocrate_context.py +81 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/converter_options.py +23 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/data.py +356 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/data_file.py +63 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/decode.py +271 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/encode.py +140 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/idtable.py +44 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/investigation.py +695 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/ontology_annotation.py +404 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/ontology_source_reference.py +255 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/person.py +658 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/property_value.py +359 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/publication.py +279 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/run.py +275 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/string_table.py +87 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/study.py +793 -0
- arctrl-3.0.0/src/ARCtrl/py/Json/workflow.py +307 -0
- arctrl-3.0.0/src/ARCtrl/py/JsonIO/Process/__init__.py +0 -0
- arctrl-3.0.0/src/ARCtrl/py/JsonIO/Process/component.py +60 -0
- arctrl-3.0.0/src/ARCtrl/py/JsonIO/Process/factor.py +36 -0
- arctrl-3.0.0/src/ARCtrl/py/JsonIO/Process/factor_value.py +38 -0
- arctrl-3.0.0/src/ARCtrl/py/JsonIO/Process/material.py +60 -0
- arctrl-3.0.0/src/ARCtrl/py/JsonIO/Process/material_attribute.py +38 -0
- arctrl-3.0.0/src/ARCtrl/py/JsonIO/Process/material_attribute_value.py +60 -0
- arctrl-3.0.0/src/ARCtrl/py/JsonIO/Process/material_type.py +36 -0
- arctrl-3.0.0/src/ARCtrl/py/JsonIO/Process/process.py +60 -0
- arctrl-3.0.0/src/ARCtrl/py/JsonIO/Process/process_input.py +38 -0
- arctrl-3.0.0/src/ARCtrl/py/JsonIO/Process/process_output.py +60 -0
- arctrl-3.0.0/src/ARCtrl/py/JsonIO/Process/process_parameter_value.py +60 -0
- arctrl-3.0.0/src/ARCtrl/py/JsonIO/Process/process_sequence.py +71 -0
- arctrl-3.0.0/src/ARCtrl/py/JsonIO/Process/protocol.py +60 -0
- arctrl-3.0.0/src/ARCtrl/py/JsonIO/Process/protocol_parameter.py +36 -0
- arctrl-3.0.0/src/ARCtrl/py/JsonIO/Process/sample.py +60 -0
- arctrl-3.0.0/src/ARCtrl/py/JsonIO/Process/source.py +60 -0
- arctrl-3.0.0/src/ARCtrl/py/JsonIO/Process/study_materials.py +52 -0
- arctrl-3.0.0/src/ARCtrl/py/JsonIO/Process/value.py +32 -0
- arctrl-3.0.0/src/ARCtrl/py/JsonIO/Table/__init__.py +0 -0
- arctrl-3.0.0/src/ARCtrl/py/JsonIO/Table/arc_table.py +103 -0
- arctrl-3.0.0/src/ARCtrl/py/JsonIO/Table/composite_cell.py +36 -0
- arctrl-3.0.0/src/ARCtrl/py/JsonIO/Table/composite_header.py +36 -0
- arctrl-3.0.0/src/ARCtrl/py/JsonIO/Table/compression.py +67 -0
- arctrl-3.0.0/src/ARCtrl/py/JsonIO/Table/iotype.py +36 -0
- arctrl-3.0.0/src/ARCtrl/py/JsonIO/Table/templates.py +113 -0
- arctrl-3.0.0/src/ARCtrl/py/JsonIO/__init__.py +0 -0
- arctrl-3.0.0/src/ARCtrl/py/JsonIO/assay.py +113 -0
- arctrl-3.0.0/src/ARCtrl/py/JsonIO/comment.py +80 -0
- arctrl-3.0.0/src/ARCtrl/py/JsonIO/data.py +60 -0
- arctrl-3.0.0/src/ARCtrl/py/JsonIO/data_file.py +58 -0
- arctrl-3.0.0/src/ARCtrl/py/JsonIO/datamap.py +36 -0
- arctrl-3.0.0/src/ARCtrl/py/JsonIO/decode.py +9 -0
- arctrl-3.0.0/src/ARCtrl/py/JsonIO/encode.py +1 -0
- arctrl-3.0.0/src/ARCtrl/py/JsonIO/investigation.py +91 -0
- arctrl-3.0.0/src/ARCtrl/py/JsonIO/ldobject.py +106 -0
- arctrl-3.0.0/src/ARCtrl/py/JsonIO/ontology_annotation.py +80 -0
- arctrl-3.0.0/src/ARCtrl/py/JsonIO/ontology_source_reference.py +80 -0
- arctrl-3.0.0/src/ARCtrl/py/JsonIO/person.py +82 -0
- arctrl-3.0.0/src/ARCtrl/py/JsonIO/publication.py +82 -0
- arctrl-3.0.0/src/ARCtrl/py/JsonIO/run.py +68 -0
- arctrl-3.0.0/src/ARCtrl/py/JsonIO/study.py +114 -0
- arctrl-3.0.0/src/ARCtrl/py/JsonIO/workflow.py +68 -0
- arctrl-3.0.0/src/ARCtrl/py/ROCrate/ISAProfile/__init__.py +0 -0
- arctrl-3.0.0/src/ARCtrl/py/ROCrate/ISAProfile/assay.py +70 -0
- arctrl-3.0.0/src/ARCtrl/py/ROCrate/ISAProfile/data.py +65 -0
- arctrl-3.0.0/src/ARCtrl/py/ROCrate/ISAProfile/dataset.py +24 -0
- arctrl-3.0.0/src/ARCtrl/py/ROCrate/ISAProfile/investigation.py +73 -0
- arctrl-3.0.0/src/ARCtrl/py/ROCrate/ISAProfile/lab_process.py +162 -0
- arctrl-3.0.0/src/ARCtrl/py/ROCrate/ISAProfile/lab_protocol.py +37 -0
- arctrl-3.0.0/src/ARCtrl/py/ROCrate/ISAProfile/person.py +72 -0
- arctrl-3.0.0/src/ARCtrl/py/ROCrate/ISAProfile/property_value.py +98 -0
- arctrl-3.0.0/src/ARCtrl/py/ROCrate/ISAProfile/sample.py +64 -0
- arctrl-3.0.0/src/ARCtrl/py/ROCrate/ISAProfile/scholarly_article.py +98 -0
- arctrl-3.0.0/src/ARCtrl/py/ROCrate/ISAProfile/study.py +74 -0
- arctrl-3.0.0/src/ARCtrl/py/ROCrate/LDTypes/__init__.py +0 -0
- arctrl-3.0.0/src/ARCtrl/py/ROCrate/LDTypes/comment.py +131 -0
- arctrl-3.0.0/src/ARCtrl/py/ROCrate/LDTypes/computational_workflow.py +455 -0
- arctrl-3.0.0/src/ARCtrl/py/ROCrate/LDTypes/computer_language.py +269 -0
- arctrl-3.0.0/src/ARCtrl/py/ROCrate/LDTypes/create_action.py +303 -0
- arctrl-3.0.0/src/ARCtrl/py/ROCrate/LDTypes/creative_work.py +566 -0
- arctrl-3.0.0/src/ARCtrl/py/ROCrate/LDTypes/dataset.py +943 -0
- arctrl-3.0.0/src/ARCtrl/py/ROCrate/LDTypes/defined_term.py +131 -0
- arctrl-3.0.0/src/ARCtrl/py/ROCrate/LDTypes/file.py +281 -0
- arctrl-3.0.0/src/ARCtrl/py/ROCrate/LDTypes/formal_parameter.py +431 -0
- arctrl-3.0.0/src/ARCtrl/py/ROCrate/LDTypes/lab_process.py +352 -0
- arctrl-3.0.0/src/ARCtrl/py/ROCrate/LDTypes/lab_protocol.py +395 -0
- arctrl-3.0.0/src/ARCtrl/py/ROCrate/LDTypes/organization.py +83 -0
- arctrl-3.0.0/src/ARCtrl/py/ROCrate/LDTypes/person.py +484 -0
- arctrl-3.0.0/src/ARCtrl/py/ROCrate/LDTypes/postal_address.py +195 -0
- arctrl-3.0.0/src/ARCtrl/py/ROCrate/LDTypes/property_value.py +952 -0
- arctrl-3.0.0/src/ARCtrl/py/ROCrate/LDTypes/sample.py +202 -0
- arctrl-3.0.0/src/ARCtrl/py/ROCrate/LDTypes/scholarly_article.py +229 -0
- arctrl-3.0.0/src/ARCtrl/py/ROCrate/LDTypes/software_source_code.py +310 -0
- arctrl-3.0.0/src/ARCtrl/py/ROCrate/LDTypes/workflow_invocation.py +48 -0
- arctrl-3.0.0/src/ARCtrl/py/ROCrate/LDTypes/workflow_protocol.py +52 -0
- arctrl-3.0.0/src/ARCtrl/py/ROCrate/__init__.py +0 -0
- arctrl-3.0.0/src/ARCtrl/py/ROCrate/arc_rocrate_metadata.py +39 -0
- arctrl-3.0.0/src/ARCtrl/py/ROCrate/dyn_obj_extensions.py +1 -0
- arctrl-3.0.0/src/ARCtrl/py/ROCrate/helper.py +8 -0
- arctrl-3.0.0/src/ARCtrl/py/ROCrate/ldcontext.py +406 -0
- arctrl-3.0.0/src/ARCtrl/py/ROCrate/ldobject.py +1247 -0
- arctrl-3.0.0/src/ARCtrl/py/ROCrate/rocrate_context.py +51 -0
- arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/AnnotationTable/__init__.py +0 -0
- arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/AnnotationTable/arc_table.py +203 -0
- arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/AnnotationTable/composite_cell.py +78 -0
- arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/AnnotationTable/composite_column.py +305 -0
- arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/AnnotationTable/composite_header.py +623 -0
- arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/DatamapTable/__init__.py +0 -0
- arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/DatamapTable/datamap_column.py +114 -0
- arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/DatamapTable/datamap_header.py +621 -0
- arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/DatamapTable/datamap_table.py +118 -0
- arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/Metadata/__init__.py +0 -0
- arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/Metadata/assays.py +125 -0
- arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/Metadata/comment.py +77 -0
- arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/Metadata/contacts.py +134 -0
- arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/Metadata/conversions.py +190 -0
- arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/Metadata/design_descriptors.py +34 -0
- arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/Metadata/factors.py +107 -0
- arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/Metadata/ontology_annotation.py +88 -0
- arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/Metadata/ontology_source_reference.py +96 -0
- arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/Metadata/protocols.py +146 -0
- arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/Metadata/publication.py +122 -0
- arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/Metadata/run.py +122 -0
- arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/Metadata/sparse_table.py +499 -0
- arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/Metadata/study.py +312 -0
- arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/Metadata/workflow.py +159 -0
- arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/__init__.py +0 -0
- arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/arc_assay.py +233 -0
- arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/arc_investigation.py +435 -0
- arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/arc_run.py +190 -0
- arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/arc_study.py +144 -0
- arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/arc_workflow.py +177 -0
- arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/assembly_info.py +1 -0
- arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/collection_aux.py +167 -0
- arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/datamap.py +43 -0
- arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/template.py +460 -0
- arctrl-3.0.0/src/ARCtrl/py/ValidationPackages/__init__.py +0 -0
- arctrl-3.0.0/src/ARCtrl/py/ValidationPackages/validation_package.py +82 -0
- arctrl-3.0.0/src/ARCtrl/py/ValidationPackages/validation_packages_config.py +132 -0
- arctrl-3.0.0/src/ARCtrl/py/WebRequest/__init__.py +0 -0
- arctrl-3.0.0/src/ARCtrl/py/WebRequest/web_request.py +9 -0
- arctrl-3.0.0/src/ARCtrl/py/WebRequest/web_request_py.py +135 -0
- arctrl-3.0.0/src/ARCtrl/py/WorkflowGraph/__init__.py +0 -0
- arctrl-3.0.0/src/ARCtrl/py/WorkflowGraph/adapters.py +141 -0
- arctrl-3.0.0/src/ARCtrl/py/WorkflowGraph/build_options.py +45 -0
- arctrl-3.0.0/src/ARCtrl/py/WorkflowGraph/builder.py +720 -0
- arctrl-3.0.0/src/ARCtrl/py/WorkflowGraph/graph_types.py +260 -0
- arctrl-3.0.0/src/ARCtrl/py/WorkflowGraph/query_helpers.py +76 -0
- arctrl-3.0.0/src/ARCtrl/py/WorkflowGraph/reference_parsing.py +59 -0
- arctrl-3.0.0/src/ARCtrl/py/WorkflowGraph/visualization_siren.py +574 -0
- arctrl-3.0.0/src/ARCtrl/py/WorkflowGraph/workflow_graph.py +119 -0
- arctrl-3.0.0/src/ARCtrl/py/Yaml/__init__.py +0 -0
- arctrl-3.0.0/src/ARCtrl/py/Yaml/decode.py +1 -0
- arctrl-3.0.0/src/ARCtrl/py/Yaml/encode.py +10 -0
- arctrl-3.0.0/src/ARCtrl/py/Yaml/validation_package.py +77 -0
- arctrl-3.0.0/src/ARCtrl/py/Yaml/validation_packages_config.py +86 -0
- arctrl-3.0.0/src/ARCtrl/py/__init__.py +0 -0
- arctrl-3.0.0/src/ARCtrl/py/arc.py +1891 -0
- arctrl-3.0.0/src/ARCtrl/py/column_index.py +280 -0
- arctrl-3.0.0/src/ARCtrl/py/conversion.py +142 -0
- arctrl-3.0.0/src/ARCtrl/py/cross_async.py +76 -0
- arctrl-3.0.0/src/ARCtrl/py/cwlrun_resolver.py +228 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/dynamic_obj/__init__.py +0 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/dynamic_obj/dyn_obj.py +136 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/dynamic_obj/dynamic_obj.py +415 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/dynamic_obj/fable_js.py +1 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/dynamic_obj/fable_py.py +288 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/dynamic_obj/hash_codes.py +82 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/dynamic_obj/property_helper.py +25 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/dynamic_obj/reflection_utils.py +87 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/__init__.py +0 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/array_.py +1528 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/async_.py +377 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/async_builder.py +379 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/big_int.py +330 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/bit_converter.py +131 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/boolean.py +26 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/char.py +237 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/choice.py +212 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/date.py +779 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/date_offset.py +79 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/decimal_.py +190 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/diagnostics.py +54 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/double.py +87 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/encoding.py +41 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/event.py +206 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/file.py +107 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/fsharp_collections.py +52 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/fsharp_core.py +123 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/global_.py +63 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/guid.py +41 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/int32.py +73 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/list.py +1788 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/long.py +240 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/mailbox_processor.py +179 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/map.py +1854 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/map_util.py +148 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/mutable_map.py +397 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/mutable_set.py +279 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/native.py +45 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/numeric.py +46 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/observable.py +222 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/option.py +128 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/path.py +62 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/range.py +117 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/reflection.py +463 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/reg_exp.py +137 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/resize_array.py +31 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/result.py +212 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/seq.py +1979 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/seq2.py +221 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/set.py +2414 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/singleton_local_time_zone.py +36 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/string_.py +573 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/system_collections_generic.py +462 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/system_text.py +237 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/task.py +116 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/task_builder.py +122 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/thread.py +5 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/time_span.py +283 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/timer.py +24 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/types.py +401 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/uri.py +109 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/util.py +2735 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_openpyxl/__init__.py +0 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_openpyxl/openpyxl.py +362 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_python/cognite-sdk/__init__.py +0 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_python/cognite-sdk/cognite_sdk.py +22 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_python/flask/__init__.py +0 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_python/flask/flask.py +34 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_python/jupyter/__init__.py +0 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_python/jupyter/ipy_widgets.py +47 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_python/jupyter/ipython.py +13 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_python/stdlib/__init__.py +0 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_python/stdlib/ast.py +1 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_python/stdlib/asyncio/__init__.py +0 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_python/stdlib/asyncio/events.py +17 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_python/stdlib/asyncio/futures.py +52 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_python/stdlib/asyncio/tasks.py +38 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_python/stdlib/base64_.py +1 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_python/stdlib/builtins_.py +38 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_python/stdlib/html.py +1 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_python/stdlib/json.py +1 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_python/stdlib/math_.py +1 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_python/stdlib/os_.py +1 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_python/stdlib/queue_.py +1 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_python/stdlib/string_.py +1 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_python/stdlib/sys_.py +30 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_python/stdlib/time_.py +1 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_python/stdlib/tk_inter.py +1 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/Cells/__init__.py +0 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/Cells/fs_cell.py +340 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/Cells/fs_cells_collection.py +466 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/DSL/__init__.py +0 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/DSL/cell_builder.py +214 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/DSL/column_builder.py +139 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/DSL/dsl.py +50 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/DSL/expression.py +65 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/DSL/operators.py +9 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/DSL/row_builder.py +139 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/DSL/sheet_builder.py +118 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/DSL/table_builder.py +122 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/DSL/transform.py +463 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/DSL/types.py +314 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/DSL/workbook_builder.py +106 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/Json/__init__.py +0 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/Json/cell.py +103 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/Json/column.py +70 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/Json/row.py +70 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/Json/table.py +54 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/Json/value.py +93 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/Json/workbook.py +71 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/Json/worksheet.py +216 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/Ranges/__init__.py +0 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range.py +43 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_address.py +190 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_base.py +92 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_column.py +77 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_row.py +48 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/Tables/__init__.py +0 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/Tables/fs_table.py +461 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/Tables/fs_table_field.py +117 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/Tables/fs_table_row.py +23 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/__init__.py +0 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/fs_address.py +236 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/fs_column.py +172 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/fs_row.py +183 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/fs_workbook.py +192 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/fs_worksheet.py +610 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/hash_codes.py +60 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/sheet_builder.py +329 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet_py/__init__.py +0 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet_py/cell.py +60 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet_py/cell_type.py +50 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet_py/fs_extension.py +60 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet_py/json.py +47 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet_py/table.py +54 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet_py/workbook.py +41 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet_py/worksheet.py +52 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet_py/xlsx.py +37 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/siren/__init__.py +0 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/siren/config.py +1038 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/siren/formatting.py +1121 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/siren/siren.py +1941 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/siren/siren_types.py +1229 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/siren/theme_variables.py +517 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/siren/util.py +37 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/siren/yaml.py +101 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/thoth_json_core/__init__.py +0 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/thoth_json_core/decode.py +1614 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/thoth_json_core/encode.py +305 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/thoth_json_core/types.py +181 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/thoth_json_python/__init__.py +0 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/thoth_json_python/decode.py +112 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/thoth_json_python/encode.py +72 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/thoth_json_python/python.py +1 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/yamlicious/Interop/__init__.py +0 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/yamlicious/Interop/js_interop.py +1 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/yamlicious/Interop/py_interop.py +7 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/yamlicious/__init__.py +0 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/yamlicious/decode.py +1784 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/yamlicious/encode.py +84 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/yamlicious/flow_to_block.py +994 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/yamlicious/library.py +10 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/yamlicious/persil.py +57 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/yamlicious/preprocessing.py +99 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/yamlicious/reader.py +739 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/yamlicious/regex.py +29 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/yamlicious/regex_active_patterns.py +265 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/yamlicious/writer.py +175 -0
- arctrl-3.0.0/src/ARCtrl/py/fable_modules/yamlicious/yamlicious_types.py +128 -0
- arctrl-3.0.0/src/ARCtrl/py/json.py +389 -0
- arctrl-3.0.0/src/ARCtrl/py/license.py +169 -0
- arctrl-3.0.0/src/ARCtrl/py/rocrate_io.py +242 -0
- arctrl-3.0.0/src/ARCtrl/py/template_web.py +23 -0
- arctrl-3.0.0/src/ARCtrl/py/xlsx.py +212 -0
- arctrl-3.0.0/src/ARCtrl/py/yaml.py +79 -0
- arctrl-3.0.0/src/ARCtrl/rocrate.py +21 -0
arctrl-3.0.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2021 DataPLANT
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
arctrl-3.0.0/PKG-INFO
ADDED
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: arctrl
|
|
3
|
+
Version: 3.0.0
|
|
4
|
+
Summary: Library for management of Annotated Research Contexts (ARCs) using an in-memory representation and runtimer agnostic contract systems.
|
|
5
|
+
License-File: LICENSE
|
|
6
|
+
Keywords: arc,annotated research context,isa,research data,multi platform
|
|
7
|
+
Author: Heinrich Lukas Weil
|
|
8
|
+
Author-email: weil@rptu.de
|
|
9
|
+
Maintainer: Florian Wetzels
|
|
10
|
+
Requires-Python: >=3.11
|
|
11
|
+
Classifier: Programming Language :: Python :: 3
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
16
|
+
Requires-Dist: openpyxl (>=3.1.5,<4)
|
|
17
|
+
Requires-Dist: requests (>=2.28.1,<3.0.0)
|
|
18
|
+
Project-URL: Repository, https://github.com/nfdi4plants/ARCtrl
|
|
19
|
+
Description-Content-Type: text/markdown
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+

|
|
23
|
+
|
|
24
|
+
# ARCtrl
|
|
25
|
+
|
|
26
|
+
[](https://doi.org/10.5281/zenodo.15194394)
|
|
27
|
+
|
|
28
|
+
> **ARCtrl** the easy way to read, manipulate and write ARCs in __.NET__, __JavaScript__ and __Python__! ❤️
|
|
29
|
+
|
|
30
|
+
| Version | Downloads |
|
|
31
|
+
| :--------|-----------:|
|
|
32
|
+
|<a href="https://www.nuget.org/packages/ARCtrl/"><img alt="Nuget" src="https://img.shields.io/nuget/v/ARCtrl?logo=nuget&color=%234fb3d9"></a>|<a href="https://www.nuget.org/packages/ARCtrl/"><img alt="Nuget" src="https://img.shields.io/nuget/dt/ARCtrl?color=%234FB3D9"></a>|
|
|
33
|
+
|<a href="https://www.npmjs.com/package/@nfdi4plants/arctrl"><img alt="NPM" src="https://img.shields.io/npm/v/%40nfdi4plants/arctrl?logo=npm&color=%234fb3d9"></a>|<a href="https://www.npmjs.com/package/@nfdi4plants/arctrl"><img alt="NPM" src="https://img.shields.io/npm/dt/%40nfdi4plants%2Farctrl?color=%234fb3d9"></a>|
|
|
34
|
+
|<a href="https://pypi.org/project/ARCtrl/"><img alt="PyPI" src="https://img.shields.io/pypi/v/arctrl?logo=pypi&color=%234fb3d9"></a>|<a href="https://pypi.org/project/ARCtrl/"><img alt="PyPI" src="https://img.shields.io/pepy/dt/arctrl?color=%234fb3d9"></a>|
|
|
35
|
+
|
|
36
|
+
## Install
|
|
37
|
+
|
|
38
|
+
#### .NET
|
|
39
|
+
|
|
40
|
+
```fsharp
|
|
41
|
+
#r "nuget: ARCtrl"
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
<PackageReference Include="ARCtrl" Version="1.1.0" />
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
#### JavaScript
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
npm i @nfdi4plants/arctrl
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
#### Python
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
pip install arctrl
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Docs
|
|
61
|
+
|
|
62
|
+
Documentation can be found [here](https://nfdi4plants.github.io/nfdi4plants.knowledgebase/arctrl/)
|
|
63
|
+
|
|
64
|
+
## Development
|
|
65
|
+
|
|
66
|
+
#### Requirements
|
|
67
|
+
|
|
68
|
+
- [nodejs and npm](https://nodejs.org/en/download)
|
|
69
|
+
- verify with `node --version` (Tested with v18.16.1)
|
|
70
|
+
- verify with `npm --version` (Tested with v9.2.0)
|
|
71
|
+
- [.NET SDK](https://dotnet.microsoft.com/en-us/download)
|
|
72
|
+
- verify with `dotnet --version` (Tested with 7.0.306)
|
|
73
|
+
- [Python](https://www.python.org/downloads/)
|
|
74
|
+
- verify with `py --version` (Tested with 3.12.2, known to work only for >=3.11)
|
|
75
|
+
|
|
76
|
+
#### Local Setup
|
|
77
|
+
|
|
78
|
+
##### Windows
|
|
79
|
+
|
|
80
|
+
On windows you can use the `setup.cmd` to run the following steps automatically!
|
|
81
|
+
|
|
82
|
+
1. Setup dotnet tools
|
|
83
|
+
|
|
84
|
+
`dotnet tool restore`
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
2. Install NPM dependencies
|
|
88
|
+
|
|
89
|
+
`npm install`
|
|
90
|
+
|
|
91
|
+
3. Setup python environment
|
|
92
|
+
|
|
93
|
+
`py -m venv .venv`
|
|
94
|
+
|
|
95
|
+
4. Install [uv](https://docs.astral.sh/uv/) and dependencies
|
|
96
|
+
|
|
97
|
+
1. `.\.venv\Scripts\python.exe -m pip install -U pip setuptools`
|
|
98
|
+
2. `.\.venv\Scripts\python.exe -m pip install uv`
|
|
99
|
+
3. `.\.venv\Scripts\python.exe -m uv pip install -r pyproject.toml --group dev`
|
|
100
|
+
|
|
101
|
+
Verify correct setup with `./build.cmd runtests` ✨
|
|
102
|
+
|
|
103
|
+
##### Linux / macOS
|
|
104
|
+
|
|
105
|
+
On unix you can use the `setup.sh` to run the following steps automatically!
|
|
106
|
+
|
|
107
|
+
1. Setup dotnet tools
|
|
108
|
+
|
|
109
|
+
`dotnet tool restore`
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
2. Install NPM dependencies
|
|
113
|
+
|
|
114
|
+
`npm install`
|
|
115
|
+
|
|
116
|
+
3. Setup python environment
|
|
117
|
+
|
|
118
|
+
`python -m venv .venv`
|
|
119
|
+
|
|
120
|
+
4. Install [uv](https://docs.astral.sh/uv/) and dependencies
|
|
121
|
+
|
|
122
|
+
1. `.venv/bin/python -m pip install -U pip setuptools`
|
|
123
|
+
2. `.venv/bin/python -m pip install uv`
|
|
124
|
+
3. `.venv/bin/python -m uv pip install -r pyproject.toml --group dev`
|
|
125
|
+
|
|
126
|
+
Verify correct setup with `bash build.sh runtests` ✨
|
|
127
|
+
|
|
128
|
+
## Branding
|
|
129
|
+
|
|
130
|
+
Feel free to reference `ARCtrl` on slides or elsewhere using our logos:
|
|
131
|
+
|
|
132
|
+
|Square | Horizontal | Vertical |
|
|
133
|
+
| - | - | - |
|
|
134
|
+
|  |  |  |
|
|
135
|
+
|
|
136
|
+
## Performance
|
|
137
|
+
|
|
138
|
+
Measured on 13th Gen Intel(R) Core(TM) i7-13800H
|
|
139
|
+
|
|
140
|
+
| Name | Description | FSharp Time (ms) | JavaScript Time (ms) | Python Time (ms) |
|
|
141
|
+
| --- | --- | --- | --- | --- |
|
|
142
|
+
| Table_GetHashCode | From a table with 1 column and 10000 rows, retrieve the Hash Code | 0 ± 0 | 0 ± 1 | 91 ± 12 |
|
|
143
|
+
| Table_AddDistinctRows | Add 10000 distinct rows to a table with 4 columns. | 13 ± 2 | 14 ± 4 | 119 ± 12 |
|
|
144
|
+
| Table_AddIdenticalRows | Add 10000 identical rows to a table with 4 columns. | 6 ± 2 | 6 ± 1 | 104 ± 6 |
|
|
145
|
+
| Table_AddColumnsWithDistinctValues | Add 4 columns with 10000 distinct values each. | 8 ± 3 | 10 ± 1 | 53 ± 1 |
|
|
146
|
+
| Table_AddColumnsWithIdenticalValues | Add 4 columns with 10000 identical values each. | 5 ± 1 | 4 ± 0 | 47 ± 1 |
|
|
147
|
+
| Table_fillMissingCells | For a table 6 columns and 20000 rows, where each row has one missing value, fill those values with default values. | 0 ± 0 | 2 ± 1 | 6 ± 4 |
|
|
148
|
+
| Table_ToJson | Serialize a table with 5 columns and 10000 rows to json, with 3 fixed and 2 variable columns. | 227 ± 64 | 68 ± 18 | 7851 ± 1411 |
|
|
149
|
+
| Table_ToCompressedJson | Serialize a table with 5 columns and 10000 rows to compressed json, with 3 fixed and 2 variable columns. | 147 ± 15 | 2878 ± 135 | 6303 ± 1798 |
|
|
150
|
+
| Assay_toJson | Parse an assay with one table with 10000 rows and 6 columns to json, with 3 fixed and 3 variable columns. | 330 ± 36 | 88 ± 9 | 12644 ± 550 |
|
|
151
|
+
| Assay_fromJson | Parse an assay with one table with 10000 rows and 6 columns from json, with 3 fixed and 3 variable columns. | 355 ± 66 | 61 ± 6 | 6499 ± 1068 |
|
|
152
|
+
| Assay_toISAJson | Parse an assay with one table with 10000 rows and 6 columns to json, with 3 fixed and 3 variable columns | 487 ± 36 | 959 ± 36 | 15618 ± 482 |
|
|
153
|
+
| Assay_fromISAJson | Parse an assay with one table with 10000 rows and 6 columns from json, with 3 fixed and 3 variable columns | 359 ± 29 | 706 ± 46 | 9587 ± 621 |
|
|
154
|
+
| Study_FromWorkbook | Parse a workbook with one study with 10000 rows and 6 columns to an ArcStudy | 29 ± 14 | 62 ± 5 | 818 ± 36 |
|
|
155
|
+
| Investigation_ToWorkbook_ManyStudies | Parse an investigation with 1500 studies to a workbook | 240 ± 31 | 284 ± 24 | 3657 ± 199 |
|
|
156
|
+
| Investigation_FromWorkbook_ManyStudies | Parse a workbook with 1500 studies to an ArcInvestigation | 127 ± 20 | 498 ± 21 | 9469 ± 412 |
|
|
157
|
+
| ARC_ToROCrate | Parse an ARC with one assay with 10000 rows and 6 columns to a RO-Crate metadata file. | 1431 ± 99 | 3526 ± 264 | 61224 ± 728 |
|
arctrl-3.0.0/README.md
ADDED
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
|
|
2
|
+

|
|
3
|
+
|
|
4
|
+
# ARCtrl
|
|
5
|
+
|
|
6
|
+
[](https://doi.org/10.5281/zenodo.15194394)
|
|
7
|
+
|
|
8
|
+
> **ARCtrl** the easy way to read, manipulate and write ARCs in __.NET__, __JavaScript__ and __Python__! ❤️
|
|
9
|
+
|
|
10
|
+
| Version | Downloads |
|
|
11
|
+
| :--------|-----------:|
|
|
12
|
+
|<a href="https://www.nuget.org/packages/ARCtrl/"><img alt="Nuget" src="https://img.shields.io/nuget/v/ARCtrl?logo=nuget&color=%234fb3d9"></a>|<a href="https://www.nuget.org/packages/ARCtrl/"><img alt="Nuget" src="https://img.shields.io/nuget/dt/ARCtrl?color=%234FB3D9"></a>|
|
|
13
|
+
|<a href="https://www.npmjs.com/package/@nfdi4plants/arctrl"><img alt="NPM" src="https://img.shields.io/npm/v/%40nfdi4plants/arctrl?logo=npm&color=%234fb3d9"></a>|<a href="https://www.npmjs.com/package/@nfdi4plants/arctrl"><img alt="NPM" src="https://img.shields.io/npm/dt/%40nfdi4plants%2Farctrl?color=%234fb3d9"></a>|
|
|
14
|
+
|<a href="https://pypi.org/project/ARCtrl/"><img alt="PyPI" src="https://img.shields.io/pypi/v/arctrl?logo=pypi&color=%234fb3d9"></a>|<a href="https://pypi.org/project/ARCtrl/"><img alt="PyPI" src="https://img.shields.io/pepy/dt/arctrl?color=%234fb3d9"></a>|
|
|
15
|
+
|
|
16
|
+
## Install
|
|
17
|
+
|
|
18
|
+
#### .NET
|
|
19
|
+
|
|
20
|
+
```fsharp
|
|
21
|
+
#r "nuget: ARCtrl"
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
<PackageReference Include="ARCtrl" Version="1.1.0" />
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
#### JavaScript
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
npm i @nfdi4plants/arctrl
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
#### Python
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
pip install arctrl
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Docs
|
|
41
|
+
|
|
42
|
+
Documentation can be found [here](https://nfdi4plants.github.io/nfdi4plants.knowledgebase/arctrl/)
|
|
43
|
+
|
|
44
|
+
## Development
|
|
45
|
+
|
|
46
|
+
#### Requirements
|
|
47
|
+
|
|
48
|
+
- [nodejs and npm](https://nodejs.org/en/download)
|
|
49
|
+
- verify with `node --version` (Tested with v18.16.1)
|
|
50
|
+
- verify with `npm --version` (Tested with v9.2.0)
|
|
51
|
+
- [.NET SDK](https://dotnet.microsoft.com/en-us/download)
|
|
52
|
+
- verify with `dotnet --version` (Tested with 7.0.306)
|
|
53
|
+
- [Python](https://www.python.org/downloads/)
|
|
54
|
+
- verify with `py --version` (Tested with 3.12.2, known to work only for >=3.11)
|
|
55
|
+
|
|
56
|
+
#### Local Setup
|
|
57
|
+
|
|
58
|
+
##### Windows
|
|
59
|
+
|
|
60
|
+
On windows you can use the `setup.cmd` to run the following steps automatically!
|
|
61
|
+
|
|
62
|
+
1. Setup dotnet tools
|
|
63
|
+
|
|
64
|
+
`dotnet tool restore`
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
2. Install NPM dependencies
|
|
68
|
+
|
|
69
|
+
`npm install`
|
|
70
|
+
|
|
71
|
+
3. Setup python environment
|
|
72
|
+
|
|
73
|
+
`py -m venv .venv`
|
|
74
|
+
|
|
75
|
+
4. Install [uv](https://docs.astral.sh/uv/) and dependencies
|
|
76
|
+
|
|
77
|
+
1. `.\.venv\Scripts\python.exe -m pip install -U pip setuptools`
|
|
78
|
+
2. `.\.venv\Scripts\python.exe -m pip install uv`
|
|
79
|
+
3. `.\.venv\Scripts\python.exe -m uv pip install -r pyproject.toml --group dev`
|
|
80
|
+
|
|
81
|
+
Verify correct setup with `./build.cmd runtests` ✨
|
|
82
|
+
|
|
83
|
+
##### Linux / macOS
|
|
84
|
+
|
|
85
|
+
On unix you can use the `setup.sh` to run the following steps automatically!
|
|
86
|
+
|
|
87
|
+
1. Setup dotnet tools
|
|
88
|
+
|
|
89
|
+
`dotnet tool restore`
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
2. Install NPM dependencies
|
|
93
|
+
|
|
94
|
+
`npm install`
|
|
95
|
+
|
|
96
|
+
3. Setup python environment
|
|
97
|
+
|
|
98
|
+
`python -m venv .venv`
|
|
99
|
+
|
|
100
|
+
4. Install [uv](https://docs.astral.sh/uv/) and dependencies
|
|
101
|
+
|
|
102
|
+
1. `.venv/bin/python -m pip install -U pip setuptools`
|
|
103
|
+
2. `.venv/bin/python -m pip install uv`
|
|
104
|
+
3. `.venv/bin/python -m uv pip install -r pyproject.toml --group dev`
|
|
105
|
+
|
|
106
|
+
Verify correct setup with `bash build.sh runtests` ✨
|
|
107
|
+
|
|
108
|
+
## Branding
|
|
109
|
+
|
|
110
|
+
Feel free to reference `ARCtrl` on slides or elsewhere using our logos:
|
|
111
|
+
|
|
112
|
+
|Square | Horizontal | Vertical |
|
|
113
|
+
| - | - | - |
|
|
114
|
+
|  |  |  |
|
|
115
|
+
|
|
116
|
+
## Performance
|
|
117
|
+
|
|
118
|
+
Measured on 13th Gen Intel(R) Core(TM) i7-13800H
|
|
119
|
+
|
|
120
|
+
| Name | Description | FSharp Time (ms) | JavaScript Time (ms) | Python Time (ms) |
|
|
121
|
+
| --- | --- | --- | --- | --- |
|
|
122
|
+
| Table_GetHashCode | From a table with 1 column and 10000 rows, retrieve the Hash Code | 0 ± 0 | 0 ± 1 | 91 ± 12 |
|
|
123
|
+
| Table_AddDistinctRows | Add 10000 distinct rows to a table with 4 columns. | 13 ± 2 | 14 ± 4 | 119 ± 12 |
|
|
124
|
+
| Table_AddIdenticalRows | Add 10000 identical rows to a table with 4 columns. | 6 ± 2 | 6 ± 1 | 104 ± 6 |
|
|
125
|
+
| Table_AddColumnsWithDistinctValues | Add 4 columns with 10000 distinct values each. | 8 ± 3 | 10 ± 1 | 53 ± 1 |
|
|
126
|
+
| Table_AddColumnsWithIdenticalValues | Add 4 columns with 10000 identical values each. | 5 ± 1 | 4 ± 0 | 47 ± 1 |
|
|
127
|
+
| Table_fillMissingCells | For a table 6 columns and 20000 rows, where each row has one missing value, fill those values with default values. | 0 ± 0 | 2 ± 1 | 6 ± 4 |
|
|
128
|
+
| Table_ToJson | Serialize a table with 5 columns and 10000 rows to json, with 3 fixed and 2 variable columns. | 227 ± 64 | 68 ± 18 | 7851 ± 1411 |
|
|
129
|
+
| Table_ToCompressedJson | Serialize a table with 5 columns and 10000 rows to compressed json, with 3 fixed and 2 variable columns. | 147 ± 15 | 2878 ± 135 | 6303 ± 1798 |
|
|
130
|
+
| Assay_toJson | Parse an assay with one table with 10000 rows and 6 columns to json, with 3 fixed and 3 variable columns. | 330 ± 36 | 88 ± 9 | 12644 ± 550 |
|
|
131
|
+
| Assay_fromJson | Parse an assay with one table with 10000 rows and 6 columns from json, with 3 fixed and 3 variable columns. | 355 ± 66 | 61 ± 6 | 6499 ± 1068 |
|
|
132
|
+
| Assay_toISAJson | Parse an assay with one table with 10000 rows and 6 columns to json, with 3 fixed and 3 variable columns | 487 ± 36 | 959 ± 36 | 15618 ± 482 |
|
|
133
|
+
| Assay_fromISAJson | Parse an assay with one table with 10000 rows and 6 columns from json, with 3 fixed and 3 variable columns | 359 ± 29 | 706 ± 46 | 9587 ± 621 |
|
|
134
|
+
| Study_FromWorkbook | Parse a workbook with one study with 10000 rows and 6 columns to an ArcStudy | 29 ± 14 | 62 ± 5 | 818 ± 36 |
|
|
135
|
+
| Investigation_ToWorkbook_ManyStudies | Parse an investigation with 1500 studies to a workbook | 240 ± 31 | 284 ± 24 | 3657 ± 199 |
|
|
136
|
+
| Investigation_FromWorkbook_ManyStudies | Parse a workbook with 1500 studies to an ArcInvestigation | 127 ± 20 | 498 ± 21 | 9469 ± 412 |
|
|
137
|
+
| ARC_ToROCrate | Parse an ARC with one assay with 10000 rows and 6 columns to a RO-Crate metadata file. | 1431 ± 99 | 3526 ± 264 | 61224 ± 728 |
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "arctrl"
|
|
3
|
+
version = "3.0.0"
|
|
4
|
+
description = "Library for management of Annotated Research Contexts (ARCs) using an in-memory representation and runtimer agnostic contract systems."
|
|
5
|
+
authors = [
|
|
6
|
+
{ name = "Heinrich Lukas Weil", email = "weil@rptu.de" },
|
|
7
|
+
{ name = "Kevin Frey", email = "freymaurer@gmx.de" },
|
|
8
|
+
]
|
|
9
|
+
requires-python = ">=3.11"
|
|
10
|
+
readme = "README.md"
|
|
11
|
+
maintainers = [{ name = "Florian Wetzels" }]
|
|
12
|
+
keywords = [
|
|
13
|
+
"arc",
|
|
14
|
+
"annotated research context",
|
|
15
|
+
"isa",
|
|
16
|
+
"research data",
|
|
17
|
+
"multi platform",
|
|
18
|
+
]
|
|
19
|
+
dependencies = [
|
|
20
|
+
"requests>= 2.28.1, <3.0.0",
|
|
21
|
+
"openpyxl>=3.1.5,<4",
|
|
22
|
+
]
|
|
23
|
+
|
|
24
|
+
[project.urls]
|
|
25
|
+
Repository = "https://github.com/nfdi4plants/ARCtrl"
|
|
26
|
+
|
|
27
|
+
[dependency-groups]
|
|
28
|
+
dev = [
|
|
29
|
+
"pytest>=8.1.1,<9",
|
|
30
|
+
"twine>=4.0.2"
|
|
31
|
+
]
|
|
32
|
+
|
|
33
|
+
[tool.poetry]
|
|
34
|
+
include = [
|
|
35
|
+
"src/ARCtrl/py/**/*.py"
|
|
36
|
+
]
|
|
37
|
+
packages = [
|
|
38
|
+
{ include = "**/*.py", from = "src/ARCtrl/", to = "arctrl" }
|
|
39
|
+
]
|
|
40
|
+
|
|
41
|
+
[build-system]
|
|
42
|
+
requires = ["poetry-core"]
|
|
43
|
+
build-backend = "poetry.core.masonry.api"
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from collections.abc import Callable
|
|
3
|
+
from typing import Any
|
|
4
|
+
from .py.Contract.contract import Contract
|
|
5
|
+
from .py.Core.data_context import DataContext
|
|
6
|
+
from .py.Core.datamap import Datamap
|
|
7
|
+
from .py.Core.comment import Comment
|
|
8
|
+
from .py.Core.ontology_annotation import OntologyAnnotation
|
|
9
|
+
from .py.Core.person import Person
|
|
10
|
+
from .py.Core.publication import Publication
|
|
11
|
+
from .py.Core.Table.composite_header import IOType, CompositeHeader
|
|
12
|
+
from .py.Core.Table.composite_cell import CompositeCell
|
|
13
|
+
from .py.Core.Table.composite_column import CompositeColumn
|
|
14
|
+
from .py.Core.Table.arc_table import ArcTable
|
|
15
|
+
from .py.Core.Table.arc_tables import ArcTables
|
|
16
|
+
from .py.Core.arc_types import ArcAssay, ArcStudy, ArcRun, ArcWorkflow, ArcInvestigation
|
|
17
|
+
from .py.Core.template import Template
|
|
18
|
+
from .py.FileSystem.file_system import FileSystem
|
|
19
|
+
from .py.FileSystem.file_system_tree import FileSystemTree
|
|
20
|
+
from .py.json import JsonController
|
|
21
|
+
from .py.yaml import YamlController
|
|
22
|
+
from .py.xlsx import XlsxController
|
|
23
|
+
from .py.arc import ARC
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from collections.abc import Callable
|
|
3
|
+
from typing import Any
|
|
4
|
+
from .py.CWL.cwlprocessing_unit import CWLProcessingUnit
|
|
5
|
+
from .py.CWL.cwltypes import CWLType, FileInstance, DirectoryInstance, DirentInstance, InputEnumSchema, InputRecordField, InputRecordSchema, InputArraySchema, SchemaDefRequirementType, SoftwarePackage
|
|
6
|
+
from .py.CWL.parameter_reference import CWLParameterReference
|
|
7
|
+
from .py.CWL.inputs import CWLInput, InputBinding
|
|
8
|
+
from .py.CWL.outputs import CWLOutput, OutputBinding
|
|
9
|
+
from .py.CWL.tool_description import CWLToolDescription
|
|
10
|
+
from .py.CWL.workflow_description import CWLWorkflowDescription
|
|
11
|
+
from .py.CWL.workflow_steps import WorkflowStep, StepInput, StepOutput
|
|
12
|
+
from .py.CWL.requirements import Requirement, DockerRequirement, EnvironmentDef, ResourceRequirementInstance
|
|
File without changes
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from typing import Any
|
|
3
|
+
from ..fable_modules.fable_library.reflection import (TypeInfo, union_type)
|
|
4
|
+
from ..fable_modules.fable_library.seq import choose
|
|
5
|
+
from ..fable_modules.fable_library.types import (Array, Union)
|
|
6
|
+
from ..fable_modules.fable_library.util import IEnumerable_1
|
|
7
|
+
from .expression_tool_description import (CWLExpressionToolDescription_reflection, CWLExpressionToolDescription)
|
|
8
|
+
from .inputs import CWLInput
|
|
9
|
+
from .operation_description import (CWLOperationDescription_reflection, CWLOperationDescription)
|
|
10
|
+
from .outputs import CWLOutput
|
|
11
|
+
from .requirements import (Requirement, HintEntry, HintEntry_get_tryAsRequirement)
|
|
12
|
+
from .tool_description import (CWLToolDescription_reflection, CWLToolDescription)
|
|
13
|
+
from .workflow_description import (CWLWorkflowDescription_reflection, CWLWorkflowDescription)
|
|
14
|
+
from .workflow_steps import WorkflowStepRun
|
|
15
|
+
|
|
16
|
+
def _expr772() -> TypeInfo:
|
|
17
|
+
return union_type("ARCtrl.CWL.CWLProcessingUnit", [], CWLProcessingUnit, lambda: [[("Item", CWLToolDescription_reflection())], [("Item", CWLWorkflowDescription_reflection())], [("Item", CWLExpressionToolDescription_reflection())], [("Item", CWLOperationDescription_reflection())]])
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class CWLProcessingUnit(Union):
|
|
21
|
+
def __init__(self, tag: int, *fields: Any) -> None:
|
|
22
|
+
super().__init__()
|
|
23
|
+
self.tag: int = tag or 0
|
|
24
|
+
self.fields: Array[Any] = list(fields)
|
|
25
|
+
|
|
26
|
+
@staticmethod
|
|
27
|
+
def cases() -> list[str]:
|
|
28
|
+
return ["CommandLineTool", "Workflow", "ExpressionTool", "Operation"]
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
CWLProcessingUnit_reflection = _expr772
|
|
32
|
+
|
|
33
|
+
def CWLProcessingUnit_getInputs_30922B92(processing_unit: CWLProcessingUnit) -> Array[CWLInput]:
|
|
34
|
+
if processing_unit.tag == 1:
|
|
35
|
+
return CWLWorkflowDescription.get_inputs(processing_unit.fields[0])
|
|
36
|
+
|
|
37
|
+
elif processing_unit.tag == 2:
|
|
38
|
+
return CWLExpressionToolDescription.get_inputs_or_empty(processing_unit.fields[0])
|
|
39
|
+
|
|
40
|
+
elif processing_unit.tag == 3:
|
|
41
|
+
return CWLOperationDescription.get_inputs(processing_unit.fields[0])
|
|
42
|
+
|
|
43
|
+
else:
|
|
44
|
+
return CWLToolDescription.get_inputs_or_empty(processing_unit.fields[0])
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
def CWLProcessingUnit_getOutputs_30922B92(processing_unit: CWLProcessingUnit) -> Array[CWLOutput]:
|
|
49
|
+
if processing_unit.tag == 1:
|
|
50
|
+
return CWLWorkflowDescription.get_outputs(processing_unit.fields[0])
|
|
51
|
+
|
|
52
|
+
elif processing_unit.tag == 2:
|
|
53
|
+
return CWLExpressionToolDescription.get_outputs(processing_unit.fields[0])
|
|
54
|
+
|
|
55
|
+
elif processing_unit.tag == 3:
|
|
56
|
+
return CWLOperationDescription.get_outputs(processing_unit.fields[0])
|
|
57
|
+
|
|
58
|
+
else:
|
|
59
|
+
return CWLToolDescription.get_outputs(processing_unit.fields[0])
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
def CWLProcessingUnit_getRequirements_30922B92(processing_unit: CWLProcessingUnit) -> Array[Requirement]:
|
|
64
|
+
if processing_unit.tag == 1:
|
|
65
|
+
return CWLWorkflowDescription.get_requirements_or_empty(processing_unit.fields[0])
|
|
66
|
+
|
|
67
|
+
elif processing_unit.tag == 2:
|
|
68
|
+
return CWLExpressionToolDescription.get_requirements_or_empty(processing_unit.fields[0])
|
|
69
|
+
|
|
70
|
+
elif processing_unit.tag == 3:
|
|
71
|
+
return CWLOperationDescription.get_requirements_or_empty(processing_unit.fields[0])
|
|
72
|
+
|
|
73
|
+
else:
|
|
74
|
+
return CWLToolDescription.get_requirements_or_empty(processing_unit.fields[0])
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
def CWLProcessingUnit_getHints_30922B92(processing_unit: CWLProcessingUnit) -> Array[HintEntry]:
|
|
79
|
+
if processing_unit.tag == 1:
|
|
80
|
+
return CWLWorkflowDescription.get_hints_or_empty(processing_unit.fields[0])
|
|
81
|
+
|
|
82
|
+
elif processing_unit.tag == 2:
|
|
83
|
+
return CWLExpressionToolDescription.get_hints_or_empty(processing_unit.fields[0])
|
|
84
|
+
|
|
85
|
+
elif processing_unit.tag == 3:
|
|
86
|
+
return CWLOperationDescription.get_hints_or_empty(processing_unit.fields[0])
|
|
87
|
+
|
|
88
|
+
else:
|
|
89
|
+
return CWLToolDescription.get_hints_or_empty(processing_unit.fields[0])
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
def CWLProcessingUnit_getIntent_30922B92(processing_unit: CWLProcessingUnit) -> Array[str]:
|
|
94
|
+
if processing_unit.tag == 1:
|
|
95
|
+
return CWLWorkflowDescription.get_intent_or_empty(processing_unit.fields[0])
|
|
96
|
+
|
|
97
|
+
elif processing_unit.tag == 2:
|
|
98
|
+
return CWLExpressionToolDescription.get_intent_or_empty(processing_unit.fields[0])
|
|
99
|
+
|
|
100
|
+
elif processing_unit.tag == 3:
|
|
101
|
+
return CWLOperationDescription.get_intent_or_empty(processing_unit.fields[0])
|
|
102
|
+
|
|
103
|
+
else:
|
|
104
|
+
return CWLToolDescription.get_intent_or_empty(processing_unit.fields[0])
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
def CWLProcessingUnit_getKnownHints_30922B92(processing_unit: CWLProcessingUnit) -> Array[Requirement]:
|
|
109
|
+
def _arrow773(__unit: None=None, processing_unit: Any=processing_unit) -> IEnumerable_1[Requirement]:
|
|
110
|
+
source: Array[HintEntry] = CWLProcessingUnit_getHints_30922B92(processing_unit)
|
|
111
|
+
return choose(HintEntry_get_tryAsRequirement(), source)
|
|
112
|
+
|
|
113
|
+
return list(_arrow773())
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
def WorkflowStepRunOps_fromTool(tool: CWLToolDescription) -> WorkflowStepRun:
|
|
117
|
+
return WorkflowStepRun(1, tool)
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
def WorkflowStepRunOps_fromWorkflow(workflow: CWLWorkflowDescription) -> WorkflowStepRun:
|
|
121
|
+
return WorkflowStepRun(2, workflow)
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
def WorkflowStepRunOps_fromExpressionTool(expression_tool: CWLExpressionToolDescription) -> WorkflowStepRun:
|
|
125
|
+
return WorkflowStepRun(3, expression_tool)
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
def WorkflowStepRunOps_fromOperation(operation: CWLOperationDescription) -> WorkflowStepRun:
|
|
129
|
+
return WorkflowStepRun(4, operation)
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
def WorkflowStepRunOps_tryGetTool(run: WorkflowStepRun) -> CWLToolDescription | None:
|
|
133
|
+
(pattern_matching_result, tool) = (None, None)
|
|
134
|
+
if run.tag == 1:
|
|
135
|
+
if isinstance(run.fields[0], CWLToolDescription):
|
|
136
|
+
pattern_matching_result = 0
|
|
137
|
+
tool = run.fields[0]
|
|
138
|
+
|
|
139
|
+
else:
|
|
140
|
+
pattern_matching_result = 1
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
else:
|
|
144
|
+
pattern_matching_result = 1
|
|
145
|
+
|
|
146
|
+
if pattern_matching_result == 0:
|
|
147
|
+
return tool
|
|
148
|
+
|
|
149
|
+
elif pattern_matching_result == 1:
|
|
150
|
+
return None
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
def WorkflowStepRunOps_tryGetWorkflow(run: WorkflowStepRun) -> CWLWorkflowDescription | None:
|
|
155
|
+
(pattern_matching_result, workflow) = (None, None)
|
|
156
|
+
if run.tag == 2:
|
|
157
|
+
if isinstance(run.fields[0], CWLWorkflowDescription):
|
|
158
|
+
pattern_matching_result = 0
|
|
159
|
+
workflow = run.fields[0]
|
|
160
|
+
|
|
161
|
+
else:
|
|
162
|
+
pattern_matching_result = 1
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
else:
|
|
166
|
+
pattern_matching_result = 1
|
|
167
|
+
|
|
168
|
+
if pattern_matching_result == 0:
|
|
169
|
+
return workflow
|
|
170
|
+
|
|
171
|
+
elif pattern_matching_result == 1:
|
|
172
|
+
return None
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
def WorkflowStepRunOps_tryGetExpressionTool(run: WorkflowStepRun) -> CWLExpressionToolDescription | None:
|
|
177
|
+
(pattern_matching_result, expression_tool) = (None, None)
|
|
178
|
+
if run.tag == 3:
|
|
179
|
+
if isinstance(run.fields[0], CWLExpressionToolDescription):
|
|
180
|
+
pattern_matching_result = 0
|
|
181
|
+
expression_tool = run.fields[0]
|
|
182
|
+
|
|
183
|
+
else:
|
|
184
|
+
pattern_matching_result = 1
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
else:
|
|
188
|
+
pattern_matching_result = 1
|
|
189
|
+
|
|
190
|
+
if pattern_matching_result == 0:
|
|
191
|
+
return expression_tool
|
|
192
|
+
|
|
193
|
+
elif pattern_matching_result == 1:
|
|
194
|
+
return None
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
def WorkflowStepRunOps_tryGetOperation(run: WorkflowStepRun) -> CWLOperationDescription | None:
|
|
199
|
+
(pattern_matching_result, operation) = (None, None)
|
|
200
|
+
if run.tag == 4:
|
|
201
|
+
if isinstance(run.fields[0], CWLOperationDescription):
|
|
202
|
+
pattern_matching_result = 0
|
|
203
|
+
operation = run.fields[0]
|
|
204
|
+
|
|
205
|
+
else:
|
|
206
|
+
pattern_matching_result = 1
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
else:
|
|
210
|
+
pattern_matching_result = 1
|
|
211
|
+
|
|
212
|
+
if pattern_matching_result == 0:
|
|
213
|
+
return operation
|
|
214
|
+
|
|
215
|
+
elif pattern_matching_result == 1:
|
|
216
|
+
return None
|
|
217
|
+
|
|
218
|
+
|
|
219
|
+
|
|
220
|
+
__all__ = ["CWLProcessingUnit_reflection", "CWLProcessingUnit_getInputs_30922B92", "CWLProcessingUnit_getOutputs_30922B92", "CWLProcessingUnit_getRequirements_30922B92", "CWLProcessingUnit_getHints_30922B92", "CWLProcessingUnit_getIntent_30922B92", "CWLProcessingUnit_getKnownHints_30922B92", "WorkflowStepRunOps_fromTool", "WorkflowStepRunOps_fromWorkflow", "WorkflowStepRunOps_fromExpressionTool", "WorkflowStepRunOps_fromOperation", "WorkflowStepRunOps_tryGetTool", "WorkflowStepRunOps_tryGetWorkflow", "WorkflowStepRunOps_tryGetExpressionTool", "WorkflowStepRunOps_tryGetOperation"]
|
|
221
|
+
|