arctrl 3.0.0a3__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 +18 -0
- arctrl/py/CWL/__init__.py +0 -0
- arctrl/py/CWL/cwltypes.py +150 -0
- arctrl/py/CWL/decode.py +973 -0
- arctrl/py/CWL/encode.py +1 -0
- arctrl/py/CWL/inputs.py +88 -0
- arctrl/py/CWL/outputs.py +85 -0
- arctrl/py/CWL/requirements.py +77 -0
- arctrl/py/CWL/tool_description.py +103 -0
- arctrl/py/CWL/workflow_description.py +104 -0
- arctrl/py/CWL/workflow_steps.py +113 -0
- arctrl/py/Contract/__init__.py +0 -0
- arctrl/py/Contract/arc.py +60 -0
- arctrl/py/Contract/arc_assay.py +125 -0
- arctrl/py/Contract/arc_investigation.py +88 -0
- arctrl/py/Contract/arc_run.py +125 -0
- arctrl/py/Contract/arc_study.py +126 -0
- arctrl/py/Contract/arc_workflow.py +125 -0
- arctrl/py/Contract/contract.py +153 -0
- arctrl/py/Contract/datamap.py +372 -0
- arctrl/py/Contract/git.py +118 -0
- arctrl/py/Contract/validation_packages_config.py +107 -0
- arctrl/py/ContractIO/__init__.py +0 -0
- arctrl/py/ContractIO/contract_io.py +344 -0
- arctrl/py/ContractIO/file_system_helper.py +264 -0
- arctrl/py/Core/Helper/__init__.py +0 -0
- arctrl/py/Core/Helper/collections_.py +438 -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 +248 -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 +1264 -0
- arctrl/py/Core/Table/arc_table_aux.py +575 -0
- arctrl/py/Core/Table/arc_tables.py +591 -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 +5064 -0
- arctrl/py/Core/comment.py +128 -0
- arctrl/py/Core/comment_list.py +127 -0
- arctrl/py/Core/conversion.py +1313 -0
- arctrl/py/Core/data.py +245 -0
- arctrl/py/Core/data_context.py +157 -0
- arctrl/py/Core/data_file.py +112 -0
- arctrl/py/Core/data_map.py +225 -0
- arctrl/py/Core/identifier_setters.py +31 -0
- arctrl/py/Core/iproperty_value.py +36 -0
- arctrl/py/Core/ontology_annotation.py +299 -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 +5 -0
- arctrl/py/FileSystem/default_gitignore.py +5 -0
- arctrl/py/FileSystem/file_system.py +58 -0
- arctrl/py/FileSystem/file_system_tree.py +426 -0
- arctrl/py/FileSystem/path.py +64 -0
- arctrl/py/Json/DataMap/__init__.py +0 -0
- arctrl/py/Json/DataMap/data_context.py +101 -0
- arctrl/py/Json/DataMap/data_map.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 +79 -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 +79 -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 +133 -0
- arctrl/py/Json/ROCrate/ldgraph.py +111 -0
- arctrl/py/Json/ROCrate/ldnode.py +290 -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 +393 -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 +155 -0
- arctrl/py/Json/encode.py +92 -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/string_table.py +76 -0
- arctrl/py/Json/study.py +793 -0
- arctrl/py/JsonIO/DataMap/__init__.py +0 -0
- arctrl/py/JsonIO/DataMap/data_map.py +53 -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 +121 -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 +85 -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/decode.py +9 -0
- arctrl/py/JsonIO/encode.py +1 -0
- arctrl/py/JsonIO/investigation.py +113 -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/study.py +114 -0
- arctrl/py/ROCrate/Generic/__init__.py +0 -0
- arctrl/py/ROCrate/Generic/comment.py +131 -0
- arctrl/py/ROCrate/Generic/dataset.py +817 -0
- arctrl/py/ROCrate/Generic/defined_term.py +131 -0
- arctrl/py/ROCrate/Generic/file.py +237 -0
- arctrl/py/ROCrate/Generic/lab_process.py +324 -0
- arctrl/py/ROCrate/Generic/lab_protocol.py +338 -0
- arctrl/py/ROCrate/Generic/organization.py +83 -0
- arctrl/py/ROCrate/Generic/person.py +484 -0
- arctrl/py/ROCrate/Generic/postal_address.py +195 -0
- arctrl/py/ROCrate/Generic/property_value.py +696 -0
- arctrl/py/ROCrate/Generic/sample.py +202 -0
- arctrl/py/ROCrate/Generic/scholarly_article.py +229 -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/__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 +362 -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 +193 -0
- arctrl/py/Spreadsheet/AnnotationTable/composite_cell.py +78 -0
- arctrl/py/Spreadsheet/AnnotationTable/composite_column.py +210 -0
- arctrl/py/Spreadsheet/AnnotationTable/composite_header.py +623 -0
- arctrl/py/Spreadsheet/DataMapTable/__init__.py +0 -0
- arctrl/py/Spreadsheet/DataMapTable/data_map_column.py +114 -0
- arctrl/py/Spreadsheet/DataMapTable/data_map_header.py +618 -0
- arctrl/py/Spreadsheet/DataMapTable/data_map_table.py +119 -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 +508 -0
- arctrl/py/Spreadsheet/Metadata/study.py +312 -0
- arctrl/py/Spreadsheet/Metadata/workflow.py +151 -0
- arctrl/py/Spreadsheet/__init__.py +0 -0
- arctrl/py/Spreadsheet/arc_assay.py +233 -0
- arctrl/py/Spreadsheet/arc_investigation.py +418 -0
- arctrl/py/Spreadsheet/arc_run.py +190 -0
- arctrl/py/Spreadsheet/arc_study.py +144 -0
- arctrl/py/Spreadsheet/arc_workflow.py +176 -0
- arctrl/py/Spreadsheet/assembly_info.py +1 -0
- arctrl/py/Spreadsheet/collection_aux.py +167 -0
- arctrl/py/Spreadsheet/data_map.py +44 -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/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 +1400 -0
- arctrl/py/column_index.py +280 -0
- arctrl/py/conversion.py +2184 -0
- arctrl/py/cross_async.py +76 -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 +338 -0
- arctrl/py/fable_modules/fs_spreadsheet/Cells/fs_cells_collection.py +469 -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 +464 -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 +57 -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 +217 -0
- arctrl/py/fable_modules/fs_spreadsheet/Ranges/__init__.py +0 -0
- arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range.py +47 -0
- arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_address.py +186 -0
- arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_base.py +90 -0
- arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_column.py +78 -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 +393 -0
- arctrl/py/fable_modules/fs_spreadsheet/Tables/fs_table_field.py +127 -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 +218 -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 +180 -0
- arctrl/py/fable_modules/fs_spreadsheet/fs_worksheet.py +600 -0
- arctrl/py/fable_modules/fs_spreadsheet/sheet_builder.py +330 -0
- arctrl/py/fable_modules/fs_spreadsheet_py/__init__.py +0 -0
- arctrl/py/fable_modules/fs_spreadsheet_py/cell.py +63 -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 +53 -0
- arctrl/py/fable_modules/fs_spreadsheet_py/workbook.py +40 -0
- arctrl/py/fable_modules/fs_spreadsheet_py/worksheet.py +54 -0
- arctrl/py/fable_modules/fs_spreadsheet_py/xlsx.py +37 -0
- arctrl/py/fable_modules/thoth_json_core/__init__.py +0 -0
- arctrl/py/fable_modules/thoth_json_core/decode.py +1588 -0
- arctrl/py/fable_modules/thoth_json_core/encode.py +261 -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/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 +665 -0
- arctrl/py/fable_modules/yamlicious/regex.py +21 -0
- arctrl/py/fable_modules/yamlicious/regex_active_patterns.py +256 -0
- arctrl/py/fable_modules/yamlicious/writer.py +175 -0
- arctrl/py/fable_modules/yamlicious/yamlicious_types.py +128 -0
- arctrl/py/json.py +213 -0
- arctrl/py/rocrate_io.py +72 -0
- arctrl/py/template_web.py +23 -0
- arctrl/py/xlsx.py +148 -0
- arctrl/rocrate.py +21 -0
- arctrl-3.0.0a3.dist-info/LICENSE +21 -0
- arctrl-3.0.0a3.dist-info/METADATA +119 -0
- arctrl-3.0.0a3.dist-info/RECORD +456 -0
- arctrl-3.0.0a3.dist-info/WHEEL +4 -0
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from typing import Any
|
|
3
|
+
from ...fable_modules.fable_library.list import (of_array, FSharpList, exists, iterate, length, head, iterate_indexed)
|
|
4
|
+
from ...fable_modules.fable_library.map_util import add_to_dict
|
|
5
|
+
from ...fable_modules.fable_library.range import range_big_int
|
|
6
|
+
from ...fable_modules.fable_library.seq import (try_find, item, to_array, delay, map, to_list)
|
|
7
|
+
from ...fable_modules.fable_library.string_ import (starts_with_exact, to_fail, printf)
|
|
8
|
+
from ...fable_modules.fable_library.types import Array
|
|
9
|
+
from ...fable_modules.fable_library.util import (IEnumerable_1, ignore)
|
|
10
|
+
from ...fable_modules.fs_spreadsheet.Cells.fs_cell import FsCell
|
|
11
|
+
from ...fable_modules.fs_spreadsheet.Cells.fs_cells_collection import Dictionary_tryGet
|
|
12
|
+
from ...fable_modules.fs_spreadsheet.fs_address import (FsAddress__ctor_Z37302880, FsAddress)
|
|
13
|
+
from ...fable_modules.fs_spreadsheet.fs_column import FsColumn
|
|
14
|
+
from ...fable_modules.fs_spreadsheet.fs_worksheet import FsWorksheet
|
|
15
|
+
from ...fable_modules.fs_spreadsheet.Ranges.fs_range_address import FsRangeAddress__ctor_7E77A4A0
|
|
16
|
+
from ...fable_modules.fs_spreadsheet.Ranges.fs_range_base import FsRangeBase__Cell_Z3407A44B
|
|
17
|
+
from ...fable_modules.fs_spreadsheet.Tables.fs_table import FsTable
|
|
18
|
+
from ...Core.data_context import (DataContext__ctor_Z780A8A2A, DataContext)
|
|
19
|
+
from ...Core.data_map import (DataMap__ctor_4E3220A7, DataMap, DataMap__get_DataContexts)
|
|
20
|
+
from ..AnnotationTable.arc_table import Aux_List_groupWhen
|
|
21
|
+
from .data_map_column import (set_from_fs_columns, to_fs_columns)
|
|
22
|
+
|
|
23
|
+
helper_column_strings: FSharpList[str] = of_array(["Term Source REF", "Term Accession Number", "Data Format", "Data Selector Format"])
|
|
24
|
+
|
|
25
|
+
def group_columns_by_header(columns: FSharpList[FsColumn]) -> FSharpList[FSharpList[FsColumn]]:
|
|
26
|
+
def f(c: FsColumn, columns: Any=columns) -> bool:
|
|
27
|
+
v: str = c.Item(1).ValueAsString()
|
|
28
|
+
def predicate(s: str, c: Any=c) -> bool:
|
|
29
|
+
return starts_with_exact(v, s)
|
|
30
|
+
|
|
31
|
+
return not exists(predicate, helper_column_strings)
|
|
32
|
+
|
|
33
|
+
return Aux_List_groupWhen(f, columns)
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
def try_data_map_table(sheet: FsWorksheet) -> FsTable | None:
|
|
37
|
+
def predicate(t: FsTable, sheet: Any=sheet) -> bool:
|
|
38
|
+
return starts_with_exact(t.Name, "datamapTable")
|
|
39
|
+
|
|
40
|
+
return try_find(predicate, sheet.Tables)
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
def compose_columns(columns: IEnumerable_1[FsColumn]) -> Array[DataContext]:
|
|
44
|
+
l: int = (item(0, columns).MaxRowIndex - 1) or 0
|
|
45
|
+
def _arrow1369(__unit: None=None, columns: Any=columns) -> IEnumerable_1[DataContext]:
|
|
46
|
+
def _arrow1368(i: int) -> DataContext:
|
|
47
|
+
return DataContext__ctor_Z780A8A2A()
|
|
48
|
+
|
|
49
|
+
return map(_arrow1368, range_big_int(0, 1, l - 1))
|
|
50
|
+
|
|
51
|
+
dc: Array[DataContext] = list(to_array(delay(_arrow1369)))
|
|
52
|
+
def action(arg: FSharpList[FsColumn], columns: Any=columns) -> None:
|
|
53
|
+
ignore(set_from_fs_columns(dc, arg))
|
|
54
|
+
|
|
55
|
+
iterate(action, group_columns_by_header(to_list(columns)))
|
|
56
|
+
return dc
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
def try_from_fs_worksheet(sheet: FsWorksheet) -> DataMap | None:
|
|
60
|
+
try:
|
|
61
|
+
match_value: FsTable | None = try_data_map_table(sheet)
|
|
62
|
+
if match_value is None:
|
|
63
|
+
return None
|
|
64
|
+
|
|
65
|
+
else:
|
|
66
|
+
t: FsTable = match_value
|
|
67
|
+
return DataMap__ctor_4E3220A7(compose_columns(t.GetColumns(sheet.CellCollection)))
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
except Exception as err:
|
|
71
|
+
arg: str = sheet.Name
|
|
72
|
+
arg_1: str = str(err)
|
|
73
|
+
return to_fail(printf("Could not parse datamap table with name \"%s\":\n%s"))(arg)(arg_1)
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
def to_fs_worksheet(table: DataMap) -> FsWorksheet:
|
|
78
|
+
string_count: Any = dict([])
|
|
79
|
+
ws: FsWorksheet = FsWorksheet("isa_datamap")
|
|
80
|
+
if len(DataMap__get_DataContexts(table)) == 0:
|
|
81
|
+
return ws
|
|
82
|
+
|
|
83
|
+
else:
|
|
84
|
+
columns: FSharpList[FSharpList[FsCell]] = to_fs_columns(DataMap__get_DataContexts(table))
|
|
85
|
+
max_row: int = length(head(columns)) or 0
|
|
86
|
+
max_col: int = length(columns) or 0
|
|
87
|
+
fs_table: FsTable = ws.Table("datamapTable", FsRangeAddress__ctor_7E77A4A0(FsAddress__ctor_Z37302880(1, 1), FsAddress__ctor_Z37302880(max_row, max_col)))
|
|
88
|
+
def action_1(col_i: int, col: FSharpList[FsCell], table: Any=table) -> None:
|
|
89
|
+
def action(row_i: int, cell: FsCell, col_i: Any=col_i, col: Any=col) -> None:
|
|
90
|
+
value: str
|
|
91
|
+
v: str = cell.ValueAsString()
|
|
92
|
+
if row_i == 0:
|
|
93
|
+
match_value: str | None = Dictionary_tryGet(v, string_count)
|
|
94
|
+
if match_value is None:
|
|
95
|
+
add_to_dict(string_count, cell.ValueAsString(), "")
|
|
96
|
+
value = v
|
|
97
|
+
|
|
98
|
+
else:
|
|
99
|
+
spaces: str = match_value
|
|
100
|
+
string_count[v] = spaces + " "
|
|
101
|
+
value = (v + " ") + spaces
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
else:
|
|
105
|
+
value = v
|
|
106
|
+
|
|
107
|
+
address: FsAddress = FsAddress__ctor_Z37302880(row_i + 1, col_i + 1)
|
|
108
|
+
FsRangeBase__Cell_Z3407A44B(fs_table, address, ws.CellCollection).SetValueAs(value)
|
|
109
|
+
|
|
110
|
+
iterate_indexed(action, col)
|
|
111
|
+
|
|
112
|
+
iterate_indexed(action_1, columns)
|
|
113
|
+
ws.RescanRows()
|
|
114
|
+
return ws
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
__all__ = ["helper_column_strings", "group_columns_by_header", "try_data_map_table", "compose_columns", "try_from_fs_worksheet", "to_fs_worksheet"]
|
|
119
|
+
|
|
File without changes
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from collections.abc import Callable
|
|
3
|
+
from typing import Any
|
|
4
|
+
from ...fable_modules.fable_library.list import (of_array, FSharpList, length, singleton, initialize, map as map_1, empty, iterate_indexed, cons, reverse)
|
|
5
|
+
from ...fable_modules.fable_library.map_util import add_to_dict
|
|
6
|
+
from ...fable_modules.fable_library.option import (map, default_arg)
|
|
7
|
+
from ...fable_modules.fable_library.seq2 import List_distinct
|
|
8
|
+
from ...fable_modules.fable_library.string_ import starts_with_exact
|
|
9
|
+
from ...fable_modules.fable_library.types import Array
|
|
10
|
+
from ...fable_modules.fable_library.util import (string_hash, IEnumerable_1, IEnumerator)
|
|
11
|
+
from ...Core.arc_types import ArcAssay
|
|
12
|
+
from ...Core.comment import (Comment, Remark)
|
|
13
|
+
from ...Core.conversion import (JsonTypes_decomposeTechnologyPlatform, JsonTypes_composeTechnologyPlatform)
|
|
14
|
+
from ...Core.Helper.collections_ import (Option_fromValueWithDefault, ResizeArray_iter)
|
|
15
|
+
from ...Core.Helper.identifier import (create_missing_identifier, Assay_tryIdentifierFromFileName, remove_missing_identifier, Assay_fileNameFromIdentifier)
|
|
16
|
+
from ...Core.ontology_annotation import OntologyAnnotation
|
|
17
|
+
from .comment import (Comment_fromString, Comment_toString)
|
|
18
|
+
from .sparse_table import (SparseTable_GetEmptyComments_3ECCA699, SparseTable__TryGetValueDefault_5BAE6133, SparseTable__TryGetValue_11FD62A8, SparseTable, SparseTable_Create_Z2192E64B, SparseTable_FromRows_Z5579EC29, SparseTable_ToRows_759CAFC1)
|
|
19
|
+
|
|
20
|
+
labels: FSharpList[str] = of_array(["Identifier", "Title", "Description", "Measurement Type", "Measurement Type Term Accession Number", "Measurement Type Term Source REF", "Technology Type", "Technology Type Term Accession Number", "Technology Type Term Source REF", "Technology Platform", "File Name"])
|
|
21
|
+
|
|
22
|
+
def from_string(identifier: str | None, title: str | None, description: str | None, measurement_type: str | None, measurement_type_term_source_ref: str | None, measurement_type_term_accession_number: str | None, technology_type: str | None, technology_type_term_source_ref: str | None, technology_type_term_accession_number: str | None, technology_platform: str | None, file_name: str | None, comments: Array[Comment]) -> ArcAssay:
|
|
23
|
+
measurement_type_1: OntologyAnnotation = OntologyAnnotation.create(measurement_type, measurement_type_term_source_ref, measurement_type_term_accession_number)
|
|
24
|
+
technology_type_1: OntologyAnnotation = OntologyAnnotation.create(technology_type, technology_type_term_source_ref, technology_type_term_accession_number)
|
|
25
|
+
identifier_4: str
|
|
26
|
+
if identifier is None:
|
|
27
|
+
if file_name is None:
|
|
28
|
+
identifier_4 = create_missing_identifier()
|
|
29
|
+
|
|
30
|
+
else:
|
|
31
|
+
match_value: str | None = Assay_tryIdentifierFromFileName(file_name)
|
|
32
|
+
identifier_4 = match_value if (match_value is not None) else create_missing_identifier()
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
else:
|
|
36
|
+
identifier_4 = identifier
|
|
37
|
+
|
|
38
|
+
measurement_type_2: OntologyAnnotation | None = Option_fromValueWithDefault(OntologyAnnotation(), measurement_type_1)
|
|
39
|
+
technology_type_2: OntologyAnnotation | None = Option_fromValueWithDefault(OntologyAnnotation(), technology_type_1)
|
|
40
|
+
def _arrow1018(name: str, identifier: Any=identifier, title: Any=title, description: Any=description, measurement_type: Any=measurement_type, measurement_type_term_source_ref: Any=measurement_type_term_source_ref, measurement_type_term_accession_number: Any=measurement_type_term_accession_number, technology_type: Any=technology_type, technology_type_term_source_ref: Any=technology_type_term_source_ref, technology_type_term_accession_number: Any=technology_type_term_accession_number, technology_platform: Any=technology_platform, file_name: Any=file_name, comments: Any=comments) -> OntologyAnnotation:
|
|
41
|
+
return JsonTypes_decomposeTechnologyPlatform(name)
|
|
42
|
+
|
|
43
|
+
technology_platform_1: OntologyAnnotation | None = map(_arrow1018, technology_platform)
|
|
44
|
+
return ArcAssay.make(identifier_4, title, description, measurement_type_2, technology_type_2, technology_platform_1, [], None, [], comments)
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
def from_sparse_table(matrix: SparseTable) -> FSharpList[ArcAssay]:
|
|
48
|
+
if (length(matrix.CommentKeys) != 0) if (matrix.ColumnCount == 0) else False:
|
|
49
|
+
comments: Array[Comment] = SparseTable_GetEmptyComments_3ECCA699(matrix)
|
|
50
|
+
return singleton(ArcAssay.create(create_missing_identifier(), None, None, None, None, None, None, None, None, comments))
|
|
51
|
+
|
|
52
|
+
else:
|
|
53
|
+
def _arrow1025(i: int, matrix: Any=matrix) -> ArcAssay:
|
|
54
|
+
def mapping(k: str) -> Comment:
|
|
55
|
+
return Comment_fromString(k, SparseTable__TryGetValueDefault_5BAE6133(matrix, "", (k, i)))
|
|
56
|
+
|
|
57
|
+
comments_1: Array[Comment] = list(map_1(mapping, matrix.CommentKeys))
|
|
58
|
+
return from_string(SparseTable__TryGetValue_11FD62A8(matrix, ("Identifier", i)), SparseTable__TryGetValue_11FD62A8(matrix, ("Title", i)), SparseTable__TryGetValue_11FD62A8(matrix, ("Description", i)), SparseTable__TryGetValue_11FD62A8(matrix, ("Measurement Type", i)), SparseTable__TryGetValue_11FD62A8(matrix, ("Measurement Type Term Source REF", i)), SparseTable__TryGetValue_11FD62A8(matrix, ("Measurement Type Term Accession Number", i)), SparseTable__TryGetValue_11FD62A8(matrix, ("Technology Type", i)), SparseTable__TryGetValue_11FD62A8(matrix, ("Technology Type Term Source REF", i)), SparseTable__TryGetValue_11FD62A8(matrix, ("Technology Type Term Accession Number", i)), SparseTable__TryGetValue_11FD62A8(matrix, ("Technology Platform", i)), SparseTable__TryGetValue_11FD62A8(matrix, ("File Name", i)), comments_1)
|
|
59
|
+
|
|
60
|
+
return initialize(matrix.ColumnCount, _arrow1025)
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
def to_sparse_table(assays: FSharpList[ArcAssay]) -> SparseTable:
|
|
65
|
+
matrix: SparseTable = SparseTable_Create_Z2192E64B(None, labels, None, length(assays) + 1)
|
|
66
|
+
comment_keys: FSharpList[str] = empty()
|
|
67
|
+
def action(i: int, a: ArcAssay, assays: Any=assays) -> None:
|
|
68
|
+
processed_file_name: str = remove_missing_identifier(a.Identifier) if starts_with_exact(a.Identifier, "MISSING_IDENTIFIER_") else Assay_fileNameFromIdentifier(a.Identifier)
|
|
69
|
+
i_1: int = (i + 1) or 0
|
|
70
|
+
mt_1: dict[str, Any]
|
|
71
|
+
mt: OntologyAnnotation = default_arg(a.MeasurementType, OntologyAnnotation())
|
|
72
|
+
mt_1 = OntologyAnnotation.to_string_object(mt, True)
|
|
73
|
+
tt_1: dict[str, Any]
|
|
74
|
+
tt: OntologyAnnotation = default_arg(a.TechnologyType, OntologyAnnotation())
|
|
75
|
+
tt_1 = OntologyAnnotation.to_string_object(tt, True)
|
|
76
|
+
add_to_dict(matrix.Matrix, ("Identifier", i_1), remove_missing_identifier(a.Identifier))
|
|
77
|
+
add_to_dict(matrix.Matrix, ("Title", i_1), default_arg(a.Title, ""))
|
|
78
|
+
add_to_dict(matrix.Matrix, ("Description", i_1), default_arg(a.Description, ""))
|
|
79
|
+
add_to_dict(matrix.Matrix, ("Measurement Type", i_1), mt_1["TermName"])
|
|
80
|
+
add_to_dict(matrix.Matrix, ("Measurement Type Term Accession Number", i_1), mt_1["TermAccessionNumber"])
|
|
81
|
+
add_to_dict(matrix.Matrix, ("Measurement Type Term Source REF", i_1), mt_1["TermSourceREF"])
|
|
82
|
+
add_to_dict(matrix.Matrix, ("Technology Type", i_1), tt_1["TermName"])
|
|
83
|
+
add_to_dict(matrix.Matrix, ("Technology Type Term Accession Number", i_1), tt_1["TermAccessionNumber"])
|
|
84
|
+
add_to_dict(matrix.Matrix, ("Technology Type Term Source REF", i_1), tt_1["TermSourceREF"])
|
|
85
|
+
def mapping(tp: OntologyAnnotation, i: Any=i, a: Any=a) -> str:
|
|
86
|
+
return JsonTypes_composeTechnologyPlatform(tp)
|
|
87
|
+
|
|
88
|
+
add_to_dict(matrix.Matrix, ("Technology Platform", i_1), default_arg(map(mapping, a.TechnologyPlatform), ""))
|
|
89
|
+
add_to_dict(matrix.Matrix, ("File Name", i_1), processed_file_name)
|
|
90
|
+
def f(comment: Comment, i: Any=i, a: Any=a) -> None:
|
|
91
|
+
nonlocal comment_keys
|
|
92
|
+
pattern_input: tuple[str, str] = Comment_toString(comment)
|
|
93
|
+
n: str = pattern_input[0]
|
|
94
|
+
comment_keys = cons(n, comment_keys)
|
|
95
|
+
add_to_dict(matrix.Matrix, (n, i_1), pattern_input[1])
|
|
96
|
+
|
|
97
|
+
ResizeArray_iter(f, a.Comments)
|
|
98
|
+
|
|
99
|
+
iterate_indexed(action, assays)
|
|
100
|
+
class ObjectExpr1032:
|
|
101
|
+
@property
|
|
102
|
+
def Equals(self) -> Callable[[str, str], bool]:
|
|
103
|
+
def _arrow1031(x: str, y: str) -> bool:
|
|
104
|
+
return x == y
|
|
105
|
+
|
|
106
|
+
return _arrow1031
|
|
107
|
+
|
|
108
|
+
@property
|
|
109
|
+
def GetHashCode(self) -> Callable[[str], int]:
|
|
110
|
+
return string_hash
|
|
111
|
+
|
|
112
|
+
return SparseTable(matrix.Matrix, matrix.Keys, reverse(List_distinct(comment_keys, ObjectExpr1032())), matrix.ColumnCount)
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
def from_rows(prefix: str | None, line_number: int, rows: IEnumerator[IEnumerable_1[tuple[int, str]]]) -> tuple[str | None, int, FSharpList[Remark], FSharpList[ArcAssay]]:
|
|
116
|
+
tupled_arg: tuple[str | None, int, FSharpList[Remark], SparseTable] = SparseTable_FromRows_Z5579EC29(rows, labels, line_number, prefix)
|
|
117
|
+
return (tupled_arg[0], tupled_arg[1], tupled_arg[2], from_sparse_table(tupled_arg[3]))
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
def to_rows(prefix: str | None, assays: FSharpList[ArcAssay]) -> IEnumerable_1[IEnumerable_1[tuple[int, str]]]:
|
|
121
|
+
return SparseTable_ToRows_759CAFC1(to_sparse_table(assays), prefix)
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
__all__ = ["labels", "from_string", "from_sparse_table", "to_sparse_table", "from_rows", "to_rows"]
|
|
125
|
+
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from typing import Any
|
|
3
|
+
from ...fable_modules.fable_library.option import (default_arg, bind)
|
|
4
|
+
from ...fable_modules.fable_library.reg_exp import (get_item, groups)
|
|
5
|
+
from ...fable_modules.fable_library.string_ import (to_text, printf)
|
|
6
|
+
from ...Core.comment import Comment
|
|
7
|
+
from ...Core.Helper.regex import ActivePatterns__007CRegex_007C__007C
|
|
8
|
+
from .conversions import Option_fromValueWithDefault
|
|
9
|
+
|
|
10
|
+
Comment_commentValueKey: str = "commentValue"
|
|
11
|
+
|
|
12
|
+
Comment_commentPattern: str = ("Comment\\s*\\[<(?<" + Comment_commentValueKey) + ">.+)>\\]"
|
|
13
|
+
|
|
14
|
+
Comment_commentPatternNoAngleBrackets: str = ("Comment\\s*\\[(?<" + Comment_commentValueKey) + ">.+)\\]"
|
|
15
|
+
|
|
16
|
+
def Comment__007CComment_007C__007C(key: str) -> str | None:
|
|
17
|
+
active_pattern_result: Any | None = ActivePatterns__007CRegex_007C__007C(Comment_commentPattern, key)
|
|
18
|
+
if active_pattern_result is not None:
|
|
19
|
+
r: Any = active_pattern_result
|
|
20
|
+
return get_item(groups(r), Comment_commentValueKey) or ""
|
|
21
|
+
|
|
22
|
+
else:
|
|
23
|
+
active_pattern_result_1: Any | None = ActivePatterns__007CRegex_007C__007C(Comment_commentPatternNoAngleBrackets, key)
|
|
24
|
+
if active_pattern_result_1 is not None:
|
|
25
|
+
r_1: Any = active_pattern_result_1
|
|
26
|
+
v: str = get_item(groups(r_1), Comment_commentValueKey) or ""
|
|
27
|
+
if v == "<>":
|
|
28
|
+
return None
|
|
29
|
+
|
|
30
|
+
else:
|
|
31
|
+
return v
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
else:
|
|
35
|
+
return None
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def Comment_wrapCommentKey(k: str) -> str:
|
|
41
|
+
return to_text(printf("Comment[%s]"))(k)
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def Comment_fromString(k: str, v: str) -> Comment:
|
|
45
|
+
name: str | None = Option_fromValueWithDefault("", k)
|
|
46
|
+
value: str | None = Option_fromValueWithDefault("", v)
|
|
47
|
+
return Comment.make(name, value)
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
def Comment_toString(c: Comment) -> tuple[str, str]:
|
|
51
|
+
return (default_arg(c.Name, ""), default_arg(c.Value, ""))
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
Remark_remarkValueKey: str = "remarkValue"
|
|
55
|
+
|
|
56
|
+
Remark_remarkPattern: str = ("#(?<" + Remark_remarkValueKey) + ">.+)"
|
|
57
|
+
|
|
58
|
+
def Remark__007CRemark_007C__007C(key: str | None=None) -> str | None:
|
|
59
|
+
def binder(k: str, key: Any=key) -> str | None:
|
|
60
|
+
active_pattern_result: Any | None = ActivePatterns__007CRegex_007C__007C(Remark_remarkPattern, k)
|
|
61
|
+
if active_pattern_result is not None:
|
|
62
|
+
r: Any = active_pattern_result
|
|
63
|
+
return get_item(groups(r), Remark_remarkValueKey) or ""
|
|
64
|
+
|
|
65
|
+
else:
|
|
66
|
+
return None
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
return bind(binder, key)
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
def Remark_wrapRemark(r: str) -> str:
|
|
73
|
+
return to_text(printf("#%s"))(r)
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
__all__ = ["Comment_commentValueKey", "Comment_commentPattern", "Comment_commentPatternNoAngleBrackets", "Comment__007CComment_007C__007C", "Comment_wrapCommentKey", "Comment_fromString", "Comment_toString", "Remark_remarkValueKey", "Remark_remarkPattern", "Remark__007CRemark_007C__007C", "Remark_wrapRemark"]
|
|
77
|
+
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from collections.abc import Callable
|
|
3
|
+
from typing import Any
|
|
4
|
+
from ...fable_modules.fable_library.list import (of_array, FSharpList, length, singleton, initialize, map, empty, iterate_indexed, cons, reverse)
|
|
5
|
+
from ...fable_modules.fable_library.map_util import add_to_dict
|
|
6
|
+
from ...fable_modules.fable_library.option import default_arg
|
|
7
|
+
from ...fable_modules.fable_library.seq2 import List_distinct
|
|
8
|
+
from ...fable_modules.fable_library.types import Array
|
|
9
|
+
from ...fable_modules.fable_library.util import (string_hash, IEnumerable_1, IEnumerator)
|
|
10
|
+
from ...Core.comment import (Comment, Remark)
|
|
11
|
+
from ...Core.conversion import (Person_setOrcidFromComments, Person_setCommentFromORCID)
|
|
12
|
+
from ...Core.Helper.collections_ import ResizeArray_iter
|
|
13
|
+
from ...Core.ontology_annotation import OntologyAnnotation
|
|
14
|
+
from ...Core.person import Person
|
|
15
|
+
from .comment import (Comment_fromString, Comment_toString)
|
|
16
|
+
from .conversions import (OntologyAnnotation_fromAggregatedStrings, OntologyAnnotation_toAggregatedStrings)
|
|
17
|
+
from .sparse_table import (SparseTable_GetEmptyComments_3ECCA699, SparseTable__TryGetValueDefault_5BAE6133, SparseTable__TryGetValue_11FD62A8, SparseTable, SparseTable_Create_Z2192E64B, SparseTable_FromRows_Z5579EC29, SparseTable_ToRows_759CAFC1)
|
|
18
|
+
|
|
19
|
+
last_name_label: str = "Last Name"
|
|
20
|
+
|
|
21
|
+
first_name_label: str = "First Name"
|
|
22
|
+
|
|
23
|
+
mid_initials_label: str = "Mid Initials"
|
|
24
|
+
|
|
25
|
+
email_label: str = "Email"
|
|
26
|
+
|
|
27
|
+
phone_label: str = "Phone"
|
|
28
|
+
|
|
29
|
+
fax_label: str = "Fax"
|
|
30
|
+
|
|
31
|
+
address_label: str = "Address"
|
|
32
|
+
|
|
33
|
+
affiliation_label: str = "Affiliation"
|
|
34
|
+
|
|
35
|
+
roles_label: str = "Roles"
|
|
36
|
+
|
|
37
|
+
roles_term_accession_number_label: str = "Roles Term Accession Number"
|
|
38
|
+
|
|
39
|
+
roles_term_source_reflabel: str = "Roles Term Source REF"
|
|
40
|
+
|
|
41
|
+
labels: FSharpList[str] = of_array([last_name_label, first_name_label, mid_initials_label, email_label, phone_label, fax_label, address_label, affiliation_label, roles_label, roles_term_accession_number_label, roles_term_source_reflabel])
|
|
42
|
+
|
|
43
|
+
def from_string(last_name: str | None, first_name: str | None, mid_initials: str | None, email: str | None, phone: str | None, fax: str | None, address: str | None, affiliation: str | None, role: str, roles_term_accession_number: str, roles_term_source_ref: str, comments: Array[Comment]) -> Person:
|
|
44
|
+
def _arrow810(__unit: None=None, last_name: Any=last_name, first_name: Any=first_name, mid_initials: Any=mid_initials, email: Any=email, phone: Any=phone, fax: Any=fax, address: Any=address, affiliation: Any=affiliation, role: Any=role, roles_term_accession_number: Any=roles_term_accession_number, roles_term_source_ref: Any=roles_term_source_ref, comments: Any=comments) -> Person:
|
|
45
|
+
roles_1: Array[OntologyAnnotation] = OntologyAnnotation_fromAggregatedStrings(";", role, roles_term_source_ref, roles_term_accession_number)
|
|
46
|
+
return Person.make(None, last_name, first_name, mid_initials, email, phone, fax, address, affiliation, roles_1, comments)
|
|
47
|
+
|
|
48
|
+
return Person_setOrcidFromComments(_arrow810())
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
def from_sparse_table(matrix: SparseTable) -> FSharpList[Person]:
|
|
52
|
+
if (length(matrix.CommentKeys) != 0) if (matrix.ColumnCount == 0) else False:
|
|
53
|
+
comments: Array[Comment] = SparseTable_GetEmptyComments_3ECCA699(matrix)
|
|
54
|
+
def _arrow812(__unit: None=None, matrix: Any=matrix) -> Person:
|
|
55
|
+
return_val: Person = Person.create()
|
|
56
|
+
return_val.Comments = comments
|
|
57
|
+
return return_val
|
|
58
|
+
|
|
59
|
+
return singleton(_arrow812())
|
|
60
|
+
|
|
61
|
+
else:
|
|
62
|
+
def _arrow815(i: int, matrix: Any=matrix) -> Person:
|
|
63
|
+
def mapping(k: str) -> Comment:
|
|
64
|
+
return Comment_fromString(k, SparseTable__TryGetValueDefault_5BAE6133(matrix, "", (k, i)))
|
|
65
|
+
|
|
66
|
+
comments_1: Array[Comment] = list(map(mapping, matrix.CommentKeys))
|
|
67
|
+
return from_string(SparseTable__TryGetValue_11FD62A8(matrix, (last_name_label, i)), SparseTable__TryGetValue_11FD62A8(matrix, (first_name_label, i)), SparseTable__TryGetValue_11FD62A8(matrix, (mid_initials_label, i)), SparseTable__TryGetValue_11FD62A8(matrix, (email_label, i)), SparseTable__TryGetValue_11FD62A8(matrix, (phone_label, i)), SparseTable__TryGetValue_11FD62A8(matrix, (fax_label, i)), SparseTable__TryGetValue_11FD62A8(matrix, (address_label, i)), SparseTable__TryGetValue_11FD62A8(matrix, (affiliation_label, i)), SparseTable__TryGetValueDefault_5BAE6133(matrix, "", (roles_label, i)), SparseTable__TryGetValueDefault_5BAE6133(matrix, "", (roles_term_accession_number_label, i)), SparseTable__TryGetValueDefault_5BAE6133(matrix, "", (roles_term_source_reflabel, i)), comments_1)
|
|
68
|
+
|
|
69
|
+
return initialize(matrix.ColumnCount, _arrow815)
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
def to_sparse_table(persons: FSharpList[Person]) -> SparseTable:
|
|
74
|
+
matrix: SparseTable = SparseTable_Create_Z2192E64B(None, labels, None, length(persons) + 1)
|
|
75
|
+
comment_keys: FSharpList[str] = empty()
|
|
76
|
+
def action(i: int, p: Person, persons: Any=persons) -> None:
|
|
77
|
+
i_1: int = (i + 1) or 0
|
|
78
|
+
r_agg: dict[str, Any] = OntologyAnnotation_toAggregatedStrings(";", list(p.Roles))
|
|
79
|
+
add_to_dict(matrix.Matrix, (last_name_label, i_1), default_arg(p.LastName, ""))
|
|
80
|
+
add_to_dict(matrix.Matrix, (first_name_label, i_1), default_arg(p.FirstName, ""))
|
|
81
|
+
add_to_dict(matrix.Matrix, (mid_initials_label, i_1), default_arg(p.MidInitials, ""))
|
|
82
|
+
add_to_dict(matrix.Matrix, (email_label, i_1), default_arg(p.EMail, ""))
|
|
83
|
+
add_to_dict(matrix.Matrix, (phone_label, i_1), default_arg(p.Phone, ""))
|
|
84
|
+
add_to_dict(matrix.Matrix, (fax_label, i_1), default_arg(p.Fax, ""))
|
|
85
|
+
add_to_dict(matrix.Matrix, (address_label, i_1), default_arg(p.Address, ""))
|
|
86
|
+
add_to_dict(matrix.Matrix, (affiliation_label, i_1), default_arg(p.Affiliation, ""))
|
|
87
|
+
add_to_dict(matrix.Matrix, (roles_label, i_1), r_agg["TermNameAgg"])
|
|
88
|
+
add_to_dict(matrix.Matrix, (roles_term_accession_number_label, i_1), r_agg["TermAccessionNumberAgg"])
|
|
89
|
+
add_to_dict(matrix.Matrix, (roles_term_source_reflabel, i_1), r_agg["TermSourceREFAgg"])
|
|
90
|
+
def f(comment: Comment, i: Any=i, p: Any=p) -> None:
|
|
91
|
+
nonlocal comment_keys
|
|
92
|
+
pattern_input: tuple[str, str] = Comment_toString(comment)
|
|
93
|
+
n: str = pattern_input[0]
|
|
94
|
+
comment_keys = cons(n, comment_keys)
|
|
95
|
+
add_to_dict(matrix.Matrix, (n, i_1), pattern_input[1])
|
|
96
|
+
|
|
97
|
+
ResizeArray_iter(f, p.Comments)
|
|
98
|
+
|
|
99
|
+
def mapping(person: Person, persons: Any=persons) -> Person:
|
|
100
|
+
return Person_setCommentFromORCID(person)
|
|
101
|
+
|
|
102
|
+
iterate_indexed(action, map(mapping, persons))
|
|
103
|
+
class ObjectExpr817:
|
|
104
|
+
@property
|
|
105
|
+
def Equals(self) -> Callable[[str, str], bool]:
|
|
106
|
+
def _arrow816(x: str, y: str) -> bool:
|
|
107
|
+
return x == y
|
|
108
|
+
|
|
109
|
+
return _arrow816
|
|
110
|
+
|
|
111
|
+
@property
|
|
112
|
+
def GetHashCode(self) -> Callable[[str], int]:
|
|
113
|
+
return string_hash
|
|
114
|
+
|
|
115
|
+
return SparseTable(matrix.Matrix, matrix.Keys, reverse(List_distinct(comment_keys, ObjectExpr817())), matrix.ColumnCount)
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
def from_rows(prefix: str | None, line_number: int, rows: IEnumerator[IEnumerable_1[tuple[int, str]]]) -> tuple[str | None, int, FSharpList[Remark], FSharpList[Person]]:
|
|
119
|
+
tupled_arg: tuple[str | None, int, FSharpList[Remark], SparseTable] = SparseTable_FromRows_Z5579EC29(rows, labels, line_number, prefix)
|
|
120
|
+
return (tupled_arg[0], tupled_arg[1], tupled_arg[2], from_sparse_table(tupled_arg[3]))
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
def to_rows(prefix: str | None, persons: FSharpList[Person]) -> IEnumerable_1[IEnumerable_1[tuple[int, str]]]:
|
|
124
|
+
m: SparseTable = to_sparse_table(persons)
|
|
125
|
+
if prefix is None:
|
|
126
|
+
return SparseTable_ToRows_759CAFC1(m)
|
|
127
|
+
|
|
128
|
+
else:
|
|
129
|
+
return SparseTable_ToRows_759CAFC1(m, prefix)
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
__all__ = ["last_name_label", "first_name_label", "mid_initials_label", "email_label", "phone_label", "fax_label", "address_label", "affiliation_label", "roles_label", "roles_term_accession_number_label", "roles_term_source_reflabel", "labels", "from_string", "from_sparse_table", "to_sparse_table", "from_rows", "to_rows"]
|
|
134
|
+
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from collections.abc import Callable
|
|
3
|
+
from typing import (Any, TypeVar)
|
|
4
|
+
from ...fable_modules.fable_library.array_ import (fold, map3, fill, equals_with)
|
|
5
|
+
from ...fable_modules.fable_library.list import (empty, of_array, FSharpList, fold as fold_1, map)
|
|
6
|
+
from ...fable_modules.fable_library.option import (some, value, default_arg)
|
|
7
|
+
from ...fable_modules.fable_library.string_ import (to_fail, printf, to_text)
|
|
8
|
+
from ...fable_modules.fable_library.types import Array
|
|
9
|
+
from ...fable_modules.fable_library.util import equals
|
|
10
|
+
from ...Core.Helper.collections_ import ResizeArray_map
|
|
11
|
+
from ...Core.ontology_annotation import OntologyAnnotation
|
|
12
|
+
from ...Core.Process.component import (Component_fromISAString_7C9A7CF8, Component, Component_toStringObject_Z685B8F25)
|
|
13
|
+
from ...Core.Process.protocol_parameter import ProtocolParameter
|
|
14
|
+
from ..collection_aux import Array_map4
|
|
15
|
+
|
|
16
|
+
_T = TypeVar("_T")
|
|
17
|
+
|
|
18
|
+
def Option_fromValueWithDefault(d: Any, v: Any) -> Any | None:
|
|
19
|
+
if equals(d, v):
|
|
20
|
+
return None
|
|
21
|
+
|
|
22
|
+
else:
|
|
23
|
+
return some(v)
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def Option_mapDefault(d: Any, f: Callable[[_T], _T], o: Any | None=None) -> Any | None:
|
|
28
|
+
return Option_fromValueWithDefault(d, f(d) if (o is None) else f(value(o)))
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
def OntologyAnnotation_getLengthOfAggregatedStrings(separator: str, strings: Array[str]) -> int:
|
|
32
|
+
def folder(l: int, s: str, separator: Any=separator, strings: Any=strings) -> int:
|
|
33
|
+
if s == "":
|
|
34
|
+
return l
|
|
35
|
+
|
|
36
|
+
elif l == 0:
|
|
37
|
+
return len(s.split(separator))
|
|
38
|
+
|
|
39
|
+
elif l == len(s.split(separator)):
|
|
40
|
+
return l
|
|
41
|
+
|
|
42
|
+
else:
|
|
43
|
+
return to_fail(printf("The length of the aggregated string %s does not match the length of the others"))(s)
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
return fold(folder, 0, strings)
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
def OntologyAnnotation_fromAggregatedStrings(separator: str, terms: str, source: str, accessions: str) -> Array[OntologyAnnotation]:
|
|
50
|
+
l: int = OntologyAnnotation_getLengthOfAggregatedStrings(separator, [terms, source, accessions]) or 0
|
|
51
|
+
if l == 0:
|
|
52
|
+
return []
|
|
53
|
+
|
|
54
|
+
else:
|
|
55
|
+
def _arrow806(a: str, b: str, c: str, separator: Any=separator, terms: Any=terms, source: Any=source, accessions: Any=accessions) -> OntologyAnnotation:
|
|
56
|
+
return OntologyAnnotation.create(a, b, c)
|
|
57
|
+
|
|
58
|
+
return list(map3(_arrow806, fill([0] * l, 0, l, "") if (terms == "") else terms.split(separator), fill([0] * l, 0, l, "") if (source == "") else source.split(separator), fill([0] * l, 0, l, "") if (accessions == "") else accessions.split(separator), None))
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
def OntologyAnnotation_toAggregatedStrings(separator: str, oas: Array[OntologyAnnotation]) -> dict[str, Any]:
|
|
63
|
+
first: bool = True
|
|
64
|
+
def _arrow807(x: OntologyAnnotation, y: OntologyAnnotation, separator: Any=separator, oas: Any=oas) -> bool:
|
|
65
|
+
return equals(x, y)
|
|
66
|
+
|
|
67
|
+
if equals_with(_arrow807, oas, []):
|
|
68
|
+
return {
|
|
69
|
+
"TermAccessionNumberAgg": "",
|
|
70
|
+
"TermNameAgg": "",
|
|
71
|
+
"TermSourceREFAgg": ""
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
else:
|
|
75
|
+
def folder(tupled_arg: tuple[str, str, str], term: OntologyAnnotation, separator: Any=separator, oas: Any=oas) -> tuple[str, str, str]:
|
|
76
|
+
nonlocal first
|
|
77
|
+
match_value: str = default_arg(term.Name, "")
|
|
78
|
+
tsr: str = default_arg(term.TermSourceREF, "")
|
|
79
|
+
tan: str = default_arg(term.TermAccessionNumber, "")
|
|
80
|
+
name: str = match_value
|
|
81
|
+
if first:
|
|
82
|
+
first = False
|
|
83
|
+
return (name, tsr, tan)
|
|
84
|
+
|
|
85
|
+
else:
|
|
86
|
+
return (to_text(printf("%s%c%s"))(tupled_arg[0])(separator)(name), to_text(printf("%s%c%s"))(tupled_arg[1])(separator)(tsr), to_text(printf("%s%c%s"))(tupled_arg[2])(separator)(tan))
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
tupled_arg_1: tuple[str, str, str] = fold(folder, ("", "", ""), oas)
|
|
90
|
+
return {
|
|
91
|
+
"TermAccessionNumberAgg": tupled_arg_1[2],
|
|
92
|
+
"TermNameAgg": tupled_arg_1[0],
|
|
93
|
+
"TermSourceREFAgg": tupled_arg_1[1]
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
def Component_fromAggregatedStrings(separator: str, names: str, terms: str, source: str, accessions: str) -> FSharpList[Component]:
|
|
99
|
+
l: int = OntologyAnnotation_getLengthOfAggregatedStrings(separator, [names, terms, source, accessions]) or 0
|
|
100
|
+
if l == 0:
|
|
101
|
+
return empty()
|
|
102
|
+
|
|
103
|
+
else:
|
|
104
|
+
def _arrow808(a: str, b: str, c: str, d: str, separator: Any=separator, names: Any=names, terms: Any=terms, source: Any=source, accessions: Any=accessions) -> Component:
|
|
105
|
+
return Component_fromISAString_7C9A7CF8(a, b, c, d)
|
|
106
|
+
|
|
107
|
+
return of_array(Array_map4(_arrow808, fill([0] * l, 0, l, "") if (names == "") else names.split(separator), fill([0] * l, 0, l, "") if (terms == "") else terms.split(separator), fill([0] * l, 0, l, "") if (source == "") else source.split(separator), fill([0] * l, 0, l, "") if (accessions == "") else accessions.split(separator)))
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
def Component_toAggregatedStrings(separator: str, cs: FSharpList[Component]) -> dict[str, Any]:
|
|
112
|
+
first: bool = True
|
|
113
|
+
if equals(cs, empty()):
|
|
114
|
+
return {
|
|
115
|
+
"NameAgg": "",
|
|
116
|
+
"TermAccessionNumberAgg": "",
|
|
117
|
+
"TermNameAgg": "",
|
|
118
|
+
"TermSourceREFAgg": ""
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
else:
|
|
122
|
+
def folder(tupled_arg: tuple[str, str, str, str], tupled_arg_1: tuple[str, dict[str, Any]], separator: Any=separator, cs: Any=cs) -> tuple[str, str, str, str]:
|
|
123
|
+
nonlocal first
|
|
124
|
+
name: str = tupled_arg_1[0]
|
|
125
|
+
term: dict[str, Any] = tupled_arg_1[1]
|
|
126
|
+
if first:
|
|
127
|
+
first = False
|
|
128
|
+
return (name, term["TermName"], term["TermSourceREF"], term["TermAccessionNumber"])
|
|
129
|
+
|
|
130
|
+
else:
|
|
131
|
+
return (to_text(printf("%s%c%s"))(tupled_arg[0])(separator)(name), to_text(printf("%s%c%s"))(tupled_arg[1])(separator)(term["TermName"]), to_text(printf("%s%c%s"))(tupled_arg[2])(separator)(term["TermSourceREF"]), to_text(printf("%s%c%s"))(tupled_arg[3])(separator)(term["TermAccessionNumber"]))
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
def mapping(c: Component, separator: Any=separator, cs: Any=cs) -> tuple[str, dict[str, Any]]:
|
|
135
|
+
return Component_toStringObject_Z685B8F25(c)
|
|
136
|
+
|
|
137
|
+
tupled_arg_2: tuple[str, str, str, str] = fold_1(folder, ("", "", "", ""), map(mapping, cs))
|
|
138
|
+
return {
|
|
139
|
+
"NameAgg": tupled_arg_2[0],
|
|
140
|
+
"TermAccessionNumberAgg": tupled_arg_2[3],
|
|
141
|
+
"TermNameAgg": tupled_arg_2[1],
|
|
142
|
+
"TermSourceREFAgg": tupled_arg_2[2]
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
def ProtocolParameter_fromAggregatedStrings(separator: str, terms: str, source: str, accessions: str) -> Array[ProtocolParameter]:
|
|
148
|
+
def f(arg: OntologyAnnotation, separator: Any=separator, terms: Any=terms, source: Any=source, accessions: Any=accessions) -> ProtocolParameter:
|
|
149
|
+
def f2(parameter_name: OntologyAnnotation | None=None, arg: Any=arg) -> ProtocolParameter:
|
|
150
|
+
return ProtocolParameter.make(None, parameter_name)
|
|
151
|
+
|
|
152
|
+
return f2(arg)
|
|
153
|
+
|
|
154
|
+
return ResizeArray_map(f, OntologyAnnotation_fromAggregatedStrings(separator, terms, source, accessions))
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
def ProtocolParameter_toAggregatedStrings(separator: str, oas: FSharpList[ProtocolParameter]) -> dict[str, Any]:
|
|
158
|
+
first: bool = True
|
|
159
|
+
if equals(oas, empty()):
|
|
160
|
+
return {
|
|
161
|
+
"TermAccessionNumberAgg": "",
|
|
162
|
+
"TermNameAgg": "",
|
|
163
|
+
"TermSourceREFAgg": ""
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
else:
|
|
167
|
+
def folder(tupled_arg: tuple[str, str, str], term: dict[str, Any], separator: Any=separator, oas: Any=oas) -> tuple[str, str, str]:
|
|
168
|
+
nonlocal first
|
|
169
|
+
if first:
|
|
170
|
+
first = False
|
|
171
|
+
return (term["TermName"], term["TermSourceREF"], term["TermAccessionNumber"])
|
|
172
|
+
|
|
173
|
+
else:
|
|
174
|
+
return (to_text(printf("%s%c%s"))(tupled_arg[0])(separator)(term["TermName"]), to_text(printf("%s%c%s"))(tupled_arg[1])(separator)(term["TermSourceREF"]), to_text(printf("%s%c%s"))(tupled_arg[2])(separator)(term["TermAccessionNumber"]))
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
def mapping(pp: ProtocolParameter, separator: Any=separator, oas: Any=oas) -> dict[str, Any]:
|
|
178
|
+
return ProtocolParameter.to_string_object(pp)
|
|
179
|
+
|
|
180
|
+
tupled_arg_1: tuple[str, str, str] = fold_1(folder, ("", "", ""), map(mapping, oas))
|
|
181
|
+
return {
|
|
182
|
+
"TermAccessionNumberAgg": tupled_arg_1[2],
|
|
183
|
+
"TermNameAgg": tupled_arg_1[0],
|
|
184
|
+
"TermSourceREFAgg": tupled_arg_1[1]
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
__all__ = ["Option_fromValueWithDefault", "Option_mapDefault", "OntologyAnnotation_getLengthOfAggregatedStrings", "OntologyAnnotation_fromAggregatedStrings", "OntologyAnnotation_toAggregatedStrings", "Component_fromAggregatedStrings", "Component_toAggregatedStrings", "ProtocolParameter_fromAggregatedStrings", "ProtocolParameter_toAggregatedStrings"]
|
|
190
|
+
|