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,426 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from collections.abc import Callable
|
|
3
|
+
from typing import Any
|
|
4
|
+
from ..fable_modules.fable_library.array_ import (try_find, exists, map, head, filter, tail, equals_with, iterate, choose, append as append_1)
|
|
5
|
+
from ..fable_modules.fable_library.list import (cons, to_array as to_array_1, reverse, FSharpList, empty)
|
|
6
|
+
from ..fable_modules.fable_library.option import default_arg
|
|
7
|
+
from ..fable_modules.fable_library.reflection import (TypeInfo, string_type, array_type, union_type)
|
|
8
|
+
from ..fable_modules.fable_library.seq import (to_array, delay, append, singleton)
|
|
9
|
+
from ..fable_modules.fable_library.seq2 import (Array_groupBy, Array_distinct)
|
|
10
|
+
from ..fable_modules.fable_library.types import (Array, Union)
|
|
11
|
+
from ..fable_modules.fable_library.util import (IEnumerable_1, string_hash, array_hash, curry2)
|
|
12
|
+
from .path import (split, combine_many)
|
|
13
|
+
|
|
14
|
+
def _expr470() -> TypeInfo:
|
|
15
|
+
return union_type("ARCtrl.FileSystem.FileSystemTree", [], FileSystemTree, lambda: [[("name", string_type)], [("name", string_type), ("children", array_type(FileSystemTree_reflection()))]])
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class FileSystemTree(Union):
|
|
19
|
+
def __init__(self, tag: int, *fields: Any) -> None:
|
|
20
|
+
super().__init__()
|
|
21
|
+
self.tag: int = tag or 0
|
|
22
|
+
self.fields: Array[Any] = list(fields)
|
|
23
|
+
|
|
24
|
+
@staticmethod
|
|
25
|
+
def cases() -> list[str]:
|
|
26
|
+
return ["File", "Folder"]
|
|
27
|
+
|
|
28
|
+
@property
|
|
29
|
+
def Name(self, __unit: None=None) -> str:
|
|
30
|
+
this: FileSystemTree = self
|
|
31
|
+
(pattern_matching_result, n) = (None, None)
|
|
32
|
+
if this.tag == 1:
|
|
33
|
+
pattern_matching_result = 0
|
|
34
|
+
n = this.fields[0]
|
|
35
|
+
|
|
36
|
+
else:
|
|
37
|
+
pattern_matching_result = 0
|
|
38
|
+
n = this.fields[0]
|
|
39
|
+
|
|
40
|
+
if pattern_matching_result == 0:
|
|
41
|
+
return n
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
@property
|
|
45
|
+
def is_folder(self, __unit: None=None) -> bool:
|
|
46
|
+
this: FileSystemTree = self
|
|
47
|
+
return True if (this.tag == 1) else False
|
|
48
|
+
|
|
49
|
+
@property
|
|
50
|
+
def is_file(self, __unit: None=None) -> bool:
|
|
51
|
+
this: FileSystemTree = self
|
|
52
|
+
return True if (this.tag == 0) else False
|
|
53
|
+
|
|
54
|
+
@staticmethod
|
|
55
|
+
def ROOT_NAME() -> str:
|
|
56
|
+
return "root"
|
|
57
|
+
|
|
58
|
+
@staticmethod
|
|
59
|
+
def create_file(name: str) -> FileSystemTree:
|
|
60
|
+
return FileSystemTree(0, name)
|
|
61
|
+
|
|
62
|
+
@staticmethod
|
|
63
|
+
def create_folder(name: str, children: Array[FileSystemTree] | None=None) -> FileSystemTree:
|
|
64
|
+
return FileSystemTree(1, name, default_arg(children, []))
|
|
65
|
+
|
|
66
|
+
@staticmethod
|
|
67
|
+
def create_root_folder(children: Array[FileSystemTree]) -> FileSystemTree:
|
|
68
|
+
return FileSystemTree(1, FileSystemTree.ROOT_NAME(), children)
|
|
69
|
+
|
|
70
|
+
def TryGetChildByName(self, name: str) -> FileSystemTree | None:
|
|
71
|
+
this: FileSystemTree = self
|
|
72
|
+
def predicate(c: FileSystemTree) -> bool:
|
|
73
|
+
return c.Name == name
|
|
74
|
+
|
|
75
|
+
return None if (this.tag == 0) else try_find(predicate, this.fields[1])
|
|
76
|
+
|
|
77
|
+
@staticmethod
|
|
78
|
+
def try_get_child_by_name(name: str) -> Callable[[FileSystemTree], FileSystemTree | None]:
|
|
79
|
+
def _arrow450(fst: FileSystemTree) -> FileSystemTree | None:
|
|
80
|
+
return fst.TryGetChildByName(name)
|
|
81
|
+
|
|
82
|
+
return _arrow450
|
|
83
|
+
|
|
84
|
+
def ContainsChildWithName(self, name: str) -> bool:
|
|
85
|
+
this: FileSystemTree = self
|
|
86
|
+
def predicate(c: FileSystemTree) -> bool:
|
|
87
|
+
return c.Name == name
|
|
88
|
+
|
|
89
|
+
return False if (this.tag == 0) else exists(predicate, this.fields[1])
|
|
90
|
+
|
|
91
|
+
@staticmethod
|
|
92
|
+
def contains_child_with_name(name: str) -> Callable[[FileSystemTree], bool]:
|
|
93
|
+
def _arrow452(fst: FileSystemTree) -> bool:
|
|
94
|
+
return fst.ContainsChildWithName(name)
|
|
95
|
+
|
|
96
|
+
return _arrow452
|
|
97
|
+
|
|
98
|
+
def AddFile(self, path: str) -> FileSystemTree:
|
|
99
|
+
this: FileSystemTree = self
|
|
100
|
+
existing_paths: Array[str] = this.ToFilePaths()
|
|
101
|
+
def _arrow454(__unit: None=None) -> IEnumerable_1[str]:
|
|
102
|
+
def _arrow453(__unit: None=None) -> IEnumerable_1[str]:
|
|
103
|
+
return existing_paths
|
|
104
|
+
|
|
105
|
+
return append(singleton(path), delay(_arrow453))
|
|
106
|
+
|
|
107
|
+
file_paths: Array[str] = to_array(delay(_arrow454))
|
|
108
|
+
return FileSystemTree.from_file_paths(file_paths)
|
|
109
|
+
|
|
110
|
+
@staticmethod
|
|
111
|
+
def add_file(path: str) -> Callable[[FileSystemTree], FileSystemTree]:
|
|
112
|
+
def _arrow455(tree: FileSystemTree) -> FileSystemTree:
|
|
113
|
+
return tree.AddFile(path)
|
|
114
|
+
|
|
115
|
+
return _arrow455
|
|
116
|
+
|
|
117
|
+
@staticmethod
|
|
118
|
+
def from_file_paths(paths: Array[str]) -> FileSystemTree:
|
|
119
|
+
def loop(paths_1: Array[Array[str]], parent: FileSystemTree) -> FileSystemTree:
|
|
120
|
+
def mapping(arg: Array[str], paths_1: Any=paths_1, parent: Any=parent) -> FileSystemTree:
|
|
121
|
+
name: str = head(arg)
|
|
122
|
+
return FileSystemTree.create_file(name)
|
|
123
|
+
|
|
124
|
+
def predicate(p: Array[str], paths_1: Any=paths_1, parent: Any=parent) -> bool:
|
|
125
|
+
return len(p) == 1
|
|
126
|
+
|
|
127
|
+
files: Array[FileSystemTree] = map(mapping, filter(predicate, paths_1), None)
|
|
128
|
+
def mapping_2(tupled_arg: tuple[str, Array[Array[str]]], paths_1: Any=paths_1, parent: Any=parent) -> FileSystemTree:
|
|
129
|
+
parent_1: FileSystemTree = FileSystemTree.create_folder(tupled_arg[0], [])
|
|
130
|
+
def mapping_1(array_7: Array[str], tupled_arg: Any=tupled_arg) -> Array[str]:
|
|
131
|
+
return tail(array_7)
|
|
132
|
+
|
|
133
|
+
return loop(map(mapping_1, tupled_arg[1], None), parent_1)
|
|
134
|
+
|
|
135
|
+
def projection(x_2: Array[str], paths_1: Any=paths_1, parent: Any=parent) -> str:
|
|
136
|
+
return head(x_2)
|
|
137
|
+
|
|
138
|
+
def predicate_1(p_1: Array[str], paths_1: Any=paths_1, parent: Any=parent) -> bool:
|
|
139
|
+
return len(p_1) > 1
|
|
140
|
+
|
|
141
|
+
class ObjectExpr457:
|
|
142
|
+
@property
|
|
143
|
+
def Equals(self) -> Callable[[str, str], bool]:
|
|
144
|
+
def _arrow456(x_3: str, y_2: str) -> bool:
|
|
145
|
+
return x_3 == y_2
|
|
146
|
+
|
|
147
|
+
return _arrow456
|
|
148
|
+
|
|
149
|
+
@property
|
|
150
|
+
def GetHashCode(self) -> Callable[[str], int]:
|
|
151
|
+
return string_hash
|
|
152
|
+
|
|
153
|
+
folders: Array[FileSystemTree] = map(mapping_2, Array_groupBy(projection, filter(predicate_1, paths_1), ObjectExpr457()), None)
|
|
154
|
+
if parent.tag == 1:
|
|
155
|
+
def _arrow459(__unit: None=None, paths_1: Any=paths_1, parent: Any=parent) -> IEnumerable_1[FileSystemTree]:
|
|
156
|
+
def _arrow458(__unit: None=None) -> IEnumerable_1[FileSystemTree]:
|
|
157
|
+
return folders
|
|
158
|
+
|
|
159
|
+
return append(files, delay(_arrow458))
|
|
160
|
+
|
|
161
|
+
return FileSystemTree.create_folder(parent.fields[0], to_array(delay(_arrow459)))
|
|
162
|
+
|
|
163
|
+
else:
|
|
164
|
+
return parent
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
class ObjectExpr462:
|
|
168
|
+
@property
|
|
169
|
+
def Equals(self) -> Callable[[Array[str], Array[str]], bool]:
|
|
170
|
+
def _arrow461(x: Array[str], y: Array[str]) -> bool:
|
|
171
|
+
def _arrow460(x_1: str, y_1: str) -> bool:
|
|
172
|
+
return x_1 == y_1
|
|
173
|
+
|
|
174
|
+
return equals_with(_arrow460, x, y)
|
|
175
|
+
|
|
176
|
+
return _arrow461
|
|
177
|
+
|
|
178
|
+
@property
|
|
179
|
+
def GetHashCode(self) -> Callable[[Array[str]], int]:
|
|
180
|
+
return array_hash
|
|
181
|
+
|
|
182
|
+
return loop(Array_distinct(map(split, paths, None), ObjectExpr462()), FileSystemTree.create_folder(FileSystemTree.ROOT_NAME(), []))
|
|
183
|
+
|
|
184
|
+
def ToFilePaths(self, remove_root: bool | None=None) -> Array[str]:
|
|
185
|
+
this: FileSystemTree = self
|
|
186
|
+
res: Array[str] = []
|
|
187
|
+
def loop(output: FSharpList[str], parent: FileSystemTree) -> None:
|
|
188
|
+
if parent.tag == 1:
|
|
189
|
+
def action(filest: FileSystemTree, output: Any=output, parent: Any=parent) -> None:
|
|
190
|
+
loop(cons(parent.fields[0], output), filest)
|
|
191
|
+
|
|
192
|
+
iterate(action, parent.fields[1])
|
|
193
|
+
|
|
194
|
+
else:
|
|
195
|
+
item: str = combine_many(to_array_1(reverse(cons(parent.fields[0], output))))
|
|
196
|
+
(res.append(item))
|
|
197
|
+
|
|
198
|
+
|
|
199
|
+
if default_arg(remove_root, True):
|
|
200
|
+
if this.tag == 0:
|
|
201
|
+
(res.append(this.fields[0]))
|
|
202
|
+
|
|
203
|
+
else:
|
|
204
|
+
iterate(curry2(loop)(empty()), this.fields[1])
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
else:
|
|
208
|
+
loop(empty(), this)
|
|
209
|
+
|
|
210
|
+
return list(res)
|
|
211
|
+
|
|
212
|
+
@staticmethod
|
|
213
|
+
def to_file_paths(remove_root: bool | None=None) -> Callable[[FileSystemTree], Array[str]]:
|
|
214
|
+
def _arrow463(root: FileSystemTree) -> Array[str]:
|
|
215
|
+
return root.ToFilePaths(remove_root)
|
|
216
|
+
|
|
217
|
+
return _arrow463
|
|
218
|
+
|
|
219
|
+
def FilterFiles(self, predicate: Callable[[str], bool]) -> FileSystemTree | None:
|
|
220
|
+
this: FileSystemTree = self
|
|
221
|
+
def loop(parent: FileSystemTree) -> FileSystemTree | None:
|
|
222
|
+
if parent.tag == 1:
|
|
223
|
+
return FileSystemTree(1, parent.fields[0], choose(loop, parent.fields[1], None))
|
|
224
|
+
|
|
225
|
+
else:
|
|
226
|
+
n: str = parent.fields[0]
|
|
227
|
+
if predicate(n):
|
|
228
|
+
return FileSystemTree(0, n)
|
|
229
|
+
|
|
230
|
+
else:
|
|
231
|
+
return None
|
|
232
|
+
|
|
233
|
+
|
|
234
|
+
|
|
235
|
+
return loop(this)
|
|
236
|
+
|
|
237
|
+
@staticmethod
|
|
238
|
+
def filter_files(predicate: Callable[[str], bool]) -> Callable[[FileSystemTree], FileSystemTree | None]:
|
|
239
|
+
def _arrow464(tree: FileSystemTree) -> FileSystemTree | None:
|
|
240
|
+
return tree.FilterFiles(predicate)
|
|
241
|
+
|
|
242
|
+
return _arrow464
|
|
243
|
+
|
|
244
|
+
def FilterFolders(self, predicate: Callable[[str], bool]) -> FileSystemTree | None:
|
|
245
|
+
this: FileSystemTree = self
|
|
246
|
+
def loop(parent: FileSystemTree) -> FileSystemTree | None:
|
|
247
|
+
if parent.tag == 1:
|
|
248
|
+
n_1: str = parent.fields[0]
|
|
249
|
+
if predicate(n_1):
|
|
250
|
+
return FileSystemTree(1, n_1, choose(loop, parent.fields[1], None))
|
|
251
|
+
|
|
252
|
+
else:
|
|
253
|
+
return None
|
|
254
|
+
|
|
255
|
+
|
|
256
|
+
else:
|
|
257
|
+
return FileSystemTree(0, parent.fields[0])
|
|
258
|
+
|
|
259
|
+
|
|
260
|
+
return loop(this)
|
|
261
|
+
|
|
262
|
+
@staticmethod
|
|
263
|
+
def filter_folders(predicate: Callable[[str], bool]) -> Callable[[FileSystemTree], FileSystemTree | None]:
|
|
264
|
+
def _arrow465(tree: FileSystemTree) -> FileSystemTree | None:
|
|
265
|
+
return tree.FilterFolders(predicate)
|
|
266
|
+
|
|
267
|
+
return _arrow465
|
|
268
|
+
|
|
269
|
+
def Filter(self, predicate: Callable[[str], bool]) -> FileSystemTree | None:
|
|
270
|
+
this: FileSystemTree = self
|
|
271
|
+
def loop(parent: FileSystemTree) -> FileSystemTree | None:
|
|
272
|
+
if parent.tag == 1:
|
|
273
|
+
n_1: str = parent.fields[0]
|
|
274
|
+
if predicate(n_1):
|
|
275
|
+
filtered_children: Array[FileSystemTree] = choose(loop, parent.fields[1], None)
|
|
276
|
+
if len(filtered_children) == 0:
|
|
277
|
+
return None
|
|
278
|
+
|
|
279
|
+
else:
|
|
280
|
+
return FileSystemTree(1, n_1, filtered_children)
|
|
281
|
+
|
|
282
|
+
|
|
283
|
+
else:
|
|
284
|
+
return None
|
|
285
|
+
|
|
286
|
+
|
|
287
|
+
else:
|
|
288
|
+
n: str = parent.fields[0]
|
|
289
|
+
if predicate(n):
|
|
290
|
+
return FileSystemTree(0, n)
|
|
291
|
+
|
|
292
|
+
else:
|
|
293
|
+
return None
|
|
294
|
+
|
|
295
|
+
|
|
296
|
+
|
|
297
|
+
return loop(this)
|
|
298
|
+
|
|
299
|
+
@staticmethod
|
|
300
|
+
def filter(predicate: Callable[[str], bool]) -> Callable[[FileSystemTree], FileSystemTree | None]:
|
|
301
|
+
def _arrow466(tree: FileSystemTree) -> FileSystemTree | None:
|
|
302
|
+
return tree.Filter(predicate)
|
|
303
|
+
|
|
304
|
+
return _arrow466
|
|
305
|
+
|
|
306
|
+
def Union(self, other_fst: FileSystemTree) -> FileSystemTree:
|
|
307
|
+
this: FileSystemTree = self
|
|
308
|
+
def _arrow467(__unit: None=None) -> Array[str]:
|
|
309
|
+
array_1: Array[str] = this.ToFilePaths()
|
|
310
|
+
return append_1(other_fst.ToFilePaths(), array_1, None)
|
|
311
|
+
|
|
312
|
+
class ObjectExpr469:
|
|
313
|
+
@property
|
|
314
|
+
def Equals(self) -> Callable[[str, str], bool]:
|
|
315
|
+
def _arrow468(x: str, y: str) -> bool:
|
|
316
|
+
return x == y
|
|
317
|
+
|
|
318
|
+
return _arrow468
|
|
319
|
+
|
|
320
|
+
@property
|
|
321
|
+
def GetHashCode(self) -> Callable[[str], int]:
|
|
322
|
+
return string_hash
|
|
323
|
+
|
|
324
|
+
paths: Array[str] = Array_distinct(_arrow467(), ObjectExpr469())
|
|
325
|
+
return FileSystemTree.from_file_paths(paths)
|
|
326
|
+
|
|
327
|
+
def Copy(self, __unit: None=None) -> FileSystemTree:
|
|
328
|
+
this: FileSystemTree = self
|
|
329
|
+
def mapping(c: FileSystemTree) -> FileSystemTree:
|
|
330
|
+
return c.Copy()
|
|
331
|
+
|
|
332
|
+
return FileSystemTree(0, this.fields[0]) if (this.tag == 0) else FileSystemTree(1, this.fields[0], map(mapping, this.fields[1], None))
|
|
333
|
+
|
|
334
|
+
@staticmethod
|
|
335
|
+
def create_git_keep_file(__unit: None=None) -> FileSystemTree:
|
|
336
|
+
return FileSystemTree.create_file(".gitkeep")
|
|
337
|
+
|
|
338
|
+
@staticmethod
|
|
339
|
+
def create_readme_file(__unit: None=None) -> FileSystemTree:
|
|
340
|
+
return FileSystemTree.create_file("README.md")
|
|
341
|
+
|
|
342
|
+
@staticmethod
|
|
343
|
+
def create_empty_folder(name: str) -> FileSystemTree:
|
|
344
|
+
return FileSystemTree.create_folder(name, [FileSystemTree.create_git_keep_file()])
|
|
345
|
+
|
|
346
|
+
@staticmethod
|
|
347
|
+
def create_assay_folder(assay_name: str, has_data_map: bool | None=None) -> FileSystemTree:
|
|
348
|
+
has_data_map_1: bool = default_arg(has_data_map, False)
|
|
349
|
+
dataset: FileSystemTree = FileSystemTree.create_empty_folder("dataset")
|
|
350
|
+
protocols: FileSystemTree = FileSystemTree.create_empty_folder("protocols")
|
|
351
|
+
readme: FileSystemTree = FileSystemTree.create_readme_file()
|
|
352
|
+
assay_file: FileSystemTree = FileSystemTree.create_file("isa.assay.xlsx")
|
|
353
|
+
if has_data_map_1:
|
|
354
|
+
data_map_file: FileSystemTree = FileSystemTree.create_file("isa.datamap.xlsx")
|
|
355
|
+
return FileSystemTree.create_folder(assay_name, [dataset, protocols, assay_file, readme, data_map_file])
|
|
356
|
+
|
|
357
|
+
else:
|
|
358
|
+
return FileSystemTree.create_folder(assay_name, [dataset, protocols, assay_file, readme])
|
|
359
|
+
|
|
360
|
+
|
|
361
|
+
@staticmethod
|
|
362
|
+
def create_study_folder(study_name: str, has_data_map: bool | None=None) -> FileSystemTree:
|
|
363
|
+
has_data_map_1: bool = default_arg(has_data_map, False)
|
|
364
|
+
resources: FileSystemTree = FileSystemTree.create_empty_folder("resources")
|
|
365
|
+
protocols: FileSystemTree = FileSystemTree.create_empty_folder("protocols")
|
|
366
|
+
readme: FileSystemTree = FileSystemTree.create_readme_file()
|
|
367
|
+
study_file: FileSystemTree = FileSystemTree.create_file("isa.study.xlsx")
|
|
368
|
+
if has_data_map_1:
|
|
369
|
+
data_map_file: FileSystemTree = FileSystemTree.create_file("isa.datamap.xlsx")
|
|
370
|
+
return FileSystemTree.create_folder(study_name, [resources, protocols, study_file, readme, data_map_file])
|
|
371
|
+
|
|
372
|
+
else:
|
|
373
|
+
return FileSystemTree.create_folder(study_name, [resources, protocols, study_file, readme])
|
|
374
|
+
|
|
375
|
+
|
|
376
|
+
@staticmethod
|
|
377
|
+
def create_workflow_folder(workflow_name: str, has_data_map: bool | None=None) -> FileSystemTree:
|
|
378
|
+
has_data_map_1: bool = default_arg(has_data_map, False)
|
|
379
|
+
readme: FileSystemTree = FileSystemTree.create_readme_file()
|
|
380
|
+
workflow_file: FileSystemTree = FileSystemTree.create_file("isa.workflow.xlsx")
|
|
381
|
+
if has_data_map_1:
|
|
382
|
+
data_map_file: FileSystemTree = FileSystemTree.create_file("isa.datamap.xlsx")
|
|
383
|
+
return FileSystemTree.create_folder(workflow_name, [workflow_file, readme, data_map_file])
|
|
384
|
+
|
|
385
|
+
else:
|
|
386
|
+
return FileSystemTree.create_folder(workflow_name, [workflow_file, readme])
|
|
387
|
+
|
|
388
|
+
|
|
389
|
+
@staticmethod
|
|
390
|
+
def create_run_folder(run_name: str, has_data_map: bool | None=None) -> FileSystemTree:
|
|
391
|
+
has_data_map_1: bool = default_arg(has_data_map, False)
|
|
392
|
+
readme: FileSystemTree = FileSystemTree.create_readme_file()
|
|
393
|
+
run_file: FileSystemTree = FileSystemTree.create_file("isa.run.xlsx")
|
|
394
|
+
if has_data_map_1:
|
|
395
|
+
data_map_file: FileSystemTree = FileSystemTree.create_file("isa.datamap.xlsx")
|
|
396
|
+
return FileSystemTree.create_folder(run_name, [run_file, readme, data_map_file])
|
|
397
|
+
|
|
398
|
+
else:
|
|
399
|
+
return FileSystemTree.create_folder(run_name, [run_file, readme])
|
|
400
|
+
|
|
401
|
+
|
|
402
|
+
@staticmethod
|
|
403
|
+
def create_investigation_file(__unit: None=None) -> FileSystemTree:
|
|
404
|
+
return FileSystemTree.create_file("isa.investigation.xlsx")
|
|
405
|
+
|
|
406
|
+
@staticmethod
|
|
407
|
+
def create_assays_folder(assays: Array[FileSystemTree]) -> FileSystemTree:
|
|
408
|
+
return FileSystemTree.create_folder("assays", append_1([FileSystemTree.create_git_keep_file()], assays, None))
|
|
409
|
+
|
|
410
|
+
@staticmethod
|
|
411
|
+
def create_studies_folder(studies: Array[FileSystemTree]) -> FileSystemTree:
|
|
412
|
+
return FileSystemTree.create_folder("studies", append_1([FileSystemTree.create_git_keep_file()], studies, None))
|
|
413
|
+
|
|
414
|
+
@staticmethod
|
|
415
|
+
def create_workflows_folder(workflows: Array[FileSystemTree]) -> FileSystemTree:
|
|
416
|
+
return FileSystemTree.create_folder("workflows", append_1([FileSystemTree.create_git_keep_file()], workflows, None))
|
|
417
|
+
|
|
418
|
+
@staticmethod
|
|
419
|
+
def create_runs_folder(runs: Array[FileSystemTree]) -> FileSystemTree:
|
|
420
|
+
return FileSystemTree.create_folder("runs", append_1([FileSystemTree.create_git_keep_file()], runs, None))
|
|
421
|
+
|
|
422
|
+
|
|
423
|
+
FileSystemTree_reflection = _expr470
|
|
424
|
+
|
|
425
|
+
__all__ = ["FileSystemTree_reflection"]
|
|
426
|
+
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
from typing import Any
|
|
2
|
+
from ..fable_modules.fable_library.array_ import (filter, map_indexed, last)
|
|
3
|
+
from ..fable_modules.fable_library.string_ import (split as split_1, trim_end, trim_start, join, trim)
|
|
4
|
+
from ..fable_modules.fable_library.types import Array
|
|
5
|
+
|
|
6
|
+
seperators: Array[str] = ["/", "\\"]
|
|
7
|
+
|
|
8
|
+
def split(path: str) -> Array[str]:
|
|
9
|
+
def predicate(p: str, path: Any=path) -> bool:
|
|
10
|
+
if p != "":
|
|
11
|
+
return p != "."
|
|
12
|
+
|
|
13
|
+
else:
|
|
14
|
+
return False
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
return filter(predicate, split_1(path, seperators, None, 3))
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def combine(path1: str, path2: str) -> str:
|
|
21
|
+
return (trim_end(path1, *seperators) + "/") + trim_start(path2, *seperators)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def combine_many(paths: Array[str]) -> str:
|
|
25
|
+
def mapping(i: int, p: str, paths: Any=paths) -> str:
|
|
26
|
+
if i == 0:
|
|
27
|
+
return trim_end(p, *seperators)
|
|
28
|
+
|
|
29
|
+
elif i == (len(paths) - 1):
|
|
30
|
+
return trim_start(p, *seperators)
|
|
31
|
+
|
|
32
|
+
else:
|
|
33
|
+
return trim(p, *seperators)
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
return join("/", map_indexed(mapping, paths, None))
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def get_file_name(path: str) -> str:
|
|
40
|
+
return last(split(path))
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
def is_file(file_name: str, path: str) -> bool:
|
|
44
|
+
return get_file_name(path) == file_name
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
def get_assay_folder_path(assay_identifier: str) -> str:
|
|
48
|
+
return combine("assays", assay_identifier)
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
def get_study_folder_path(study_identifier: str) -> str:
|
|
52
|
+
return combine("studies", study_identifier)
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
def get_workflow_folder_path(workflow_identifier: str) -> str:
|
|
56
|
+
return combine("workflows", workflow_identifier)
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
def get_run_folder_path(run_identifier: str) -> str:
|
|
60
|
+
return combine("runs", run_identifier)
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
__all__ = ["seperators", "split", "combine", "combine_many", "get_file_name", "is_file", "get_assay_folder_path", "get_study_folder_path", "get_workflow_folder_path", "get_run_folder_path"]
|
|
64
|
+
|
|
File without changes
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from typing import (Any, TypeVar)
|
|
3
|
+
from ...fable_modules.fable_library.list import (choose, of_array, FSharpList)
|
|
4
|
+
from ...fable_modules.fable_library.option import map
|
|
5
|
+
from ...fable_modules.fable_library.seq import map as map_1
|
|
6
|
+
from ...fable_modules.fable_library.util import IEnumerable_1
|
|
7
|
+
from ...fable_modules.thoth_json_core.decode import (object, IRequiredGetter, IOptionalGetter, string, IGetters)
|
|
8
|
+
from ...fable_modules.thoth_json_core.types import (IEncodable, IEncoderHelpers_1, Decoder_1)
|
|
9
|
+
from ...Core.data import Data
|
|
10
|
+
from ...Core.data_context import (DataContext__get_Explication, DataContext__get_Unit, DataContext__get_ObjectType, DataContext__get_Description, DataContext__get_GeneratedBy, DataContext__get_Label, DataContext, DataContext__ctor_Z780A8A2A)
|
|
11
|
+
from ...Core.ontology_annotation import OntologyAnnotation
|
|
12
|
+
from ..data import (encoder as encoder_1, decoder as decoder_1)
|
|
13
|
+
from ..encode import try_include
|
|
14
|
+
from ..ontology_annotation import (OntologyAnnotation_encoder, OntologyAnnotation_decoder)
|
|
15
|
+
|
|
16
|
+
__A_ = TypeVar("__A_")
|
|
17
|
+
|
|
18
|
+
def encoder(dc: DataContext) -> IEncodable:
|
|
19
|
+
def chooser(tupled_arg: tuple[str, IEncodable | None], dc: Any=dc) -> tuple[str, IEncodable] | None:
|
|
20
|
+
def mapping(v_1: IEncodable, tupled_arg: Any=tupled_arg) -> tuple[str, IEncodable]:
|
|
21
|
+
return (tupled_arg[0], v_1)
|
|
22
|
+
|
|
23
|
+
return map(mapping, tupled_arg[1])
|
|
24
|
+
|
|
25
|
+
def _arrow2808(oa: OntologyAnnotation, dc: Any=dc) -> IEncodable:
|
|
26
|
+
return OntologyAnnotation_encoder(oa)
|
|
27
|
+
|
|
28
|
+
def _arrow2809(oa_1: OntologyAnnotation, dc: Any=dc) -> IEncodable:
|
|
29
|
+
return OntologyAnnotation_encoder(oa_1)
|
|
30
|
+
|
|
31
|
+
def _arrow2810(oa_2: OntologyAnnotation, dc: Any=dc) -> IEncodable:
|
|
32
|
+
return OntologyAnnotation_encoder(oa_2)
|
|
33
|
+
|
|
34
|
+
def _arrow2812(value: str, dc: Any=dc) -> IEncodable:
|
|
35
|
+
class ObjectExpr2811(IEncodable):
|
|
36
|
+
def Encode(self, helpers: IEncoderHelpers_1[Any]) -> Any:
|
|
37
|
+
return helpers.encode_string(value)
|
|
38
|
+
|
|
39
|
+
return ObjectExpr2811()
|
|
40
|
+
|
|
41
|
+
def _arrow2816(value_2: str, dc: Any=dc) -> IEncodable:
|
|
42
|
+
class ObjectExpr2815(IEncodable):
|
|
43
|
+
def Encode(self, helpers_1: IEncoderHelpers_1[Any]) -> Any:
|
|
44
|
+
return helpers_1.encode_string(value_2)
|
|
45
|
+
|
|
46
|
+
return ObjectExpr2815()
|
|
47
|
+
|
|
48
|
+
def _arrow2819(value_4: str, dc: Any=dc) -> IEncodable:
|
|
49
|
+
class ObjectExpr2818(IEncodable):
|
|
50
|
+
def Encode(self, helpers_2: IEncoderHelpers_1[Any]) -> Any:
|
|
51
|
+
return helpers_2.encode_string(value_4)
|
|
52
|
+
|
|
53
|
+
return ObjectExpr2818()
|
|
54
|
+
|
|
55
|
+
values: FSharpList[tuple[str, IEncodable]] = choose(chooser, of_array([("data", encoder_1(dc)), try_include("explication", _arrow2808, DataContext__get_Explication(dc)), try_include("unit", _arrow2809, DataContext__get_Unit(dc)), try_include("objectType", _arrow2810, DataContext__get_ObjectType(dc)), try_include("description", _arrow2812, DataContext__get_Description(dc)), try_include("generatedBy", _arrow2816, DataContext__get_GeneratedBy(dc)), try_include("label", _arrow2819, DataContext__get_Label(dc))]))
|
|
56
|
+
class ObjectExpr2826(IEncodable):
|
|
57
|
+
def Encode(self, helpers_3: IEncoderHelpers_1[Any], dc: Any=dc) -> Any:
|
|
58
|
+
def mapping_1(tupled_arg_1: tuple[str, IEncodable]) -> tuple[str, __A_]:
|
|
59
|
+
return (tupled_arg_1[0], tupled_arg_1[1].Encode(helpers_3))
|
|
60
|
+
|
|
61
|
+
arg: IEnumerable_1[tuple[str, __A_]] = map_1(mapping_1, values)
|
|
62
|
+
return helpers_3.encode_object(arg)
|
|
63
|
+
|
|
64
|
+
return ObjectExpr2826()
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
def _arrow2837(get: IGetters) -> DataContext:
|
|
68
|
+
data: Data
|
|
69
|
+
object_arg: IRequiredGetter = get.Required
|
|
70
|
+
data = object_arg.Field("data", decoder_1)
|
|
71
|
+
def _arrow2829(__unit: None=None) -> OntologyAnnotation | None:
|
|
72
|
+
object_arg_1: IOptionalGetter = get.Optional
|
|
73
|
+
return object_arg_1.Field("explication", OntologyAnnotation_decoder)
|
|
74
|
+
|
|
75
|
+
def _arrow2830(__unit: None=None) -> OntologyAnnotation | None:
|
|
76
|
+
object_arg_2: IOptionalGetter = get.Optional
|
|
77
|
+
return object_arg_2.Field("unit", OntologyAnnotation_decoder)
|
|
78
|
+
|
|
79
|
+
def _arrow2831(__unit: None=None) -> OntologyAnnotation | None:
|
|
80
|
+
object_arg_3: IOptionalGetter = get.Optional
|
|
81
|
+
return object_arg_3.Field("objectType", OntologyAnnotation_decoder)
|
|
82
|
+
|
|
83
|
+
def _arrow2833(__unit: None=None) -> str | None:
|
|
84
|
+
object_arg_4: IOptionalGetter = get.Optional
|
|
85
|
+
return object_arg_4.Field("label", string)
|
|
86
|
+
|
|
87
|
+
def _arrow2835(__unit: None=None) -> str | None:
|
|
88
|
+
object_arg_5: IOptionalGetter = get.Optional
|
|
89
|
+
return object_arg_5.Field("description", string)
|
|
90
|
+
|
|
91
|
+
def _arrow2836(__unit: None=None) -> str | None:
|
|
92
|
+
object_arg_6: IOptionalGetter = get.Optional
|
|
93
|
+
return object_arg_6.Field("generatedBy", string)
|
|
94
|
+
|
|
95
|
+
return DataContext__ctor_Z780A8A2A(data.ID, data.Name, data.DataType, data.Format, data.SelectorFormat, _arrow2829(), _arrow2830(), _arrow2831(), _arrow2833(), _arrow2835(), _arrow2836(), data.Comments)
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
decoder: Decoder_1[DataContext] = object(_arrow2837)
|
|
99
|
+
|
|
100
|
+
__all__ = ["encoder", "decoder"]
|
|
101
|
+
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from typing import (Any, TypeVar)
|
|
3
|
+
from ...fable_modules.fable_library.seq import map
|
|
4
|
+
from ...fable_modules.fable_library.types import Array
|
|
5
|
+
from ...fable_modules.fable_library.util import (to_enumerable, IEnumerable_1)
|
|
6
|
+
from ...fable_modules.thoth_json_core.decode import (object, resize_array, IRequiredGetter, IGetters)
|
|
7
|
+
from ...fable_modules.thoth_json_core.encode import seq
|
|
8
|
+
from ...fable_modules.thoth_json_core.types import (IEncodable, IEncoderHelpers_1, Decoder_1)
|
|
9
|
+
from ...Core.data_context import DataContext
|
|
10
|
+
from ...Core.data_map import (DataMap__get_DataContexts, DataMap, DataMap__ctor_4E3220A7)
|
|
11
|
+
from ...Core.ontology_annotation import OntologyAnnotation
|
|
12
|
+
from ...Core.Table.composite_cell import CompositeCell
|
|
13
|
+
from .data_context import (encoder as encoder_1, decoder as decoder_1)
|
|
14
|
+
|
|
15
|
+
__A_ = TypeVar("__A_")
|
|
16
|
+
|
|
17
|
+
def encoder(dm: DataMap) -> IEncodable:
|
|
18
|
+
def mapping(dc: DataContext, dm: Any=dm) -> IEncodable:
|
|
19
|
+
return encoder_1(dc)
|
|
20
|
+
|
|
21
|
+
values_1: IEnumerable_1[tuple[str, IEncodable]] = to_enumerable([("dataContexts", seq(map(mapping, DataMap__get_DataContexts(dm))))])
|
|
22
|
+
class ObjectExpr2859(IEncodable):
|
|
23
|
+
def Encode(self, helpers: IEncoderHelpers_1[Any], dm: Any=dm) -> Any:
|
|
24
|
+
def mapping_1(tupled_arg: tuple[str, IEncodable]) -> tuple[str, __A_]:
|
|
25
|
+
return (tupled_arg[0], tupled_arg[1].Encode(helpers))
|
|
26
|
+
|
|
27
|
+
arg: IEnumerable_1[tuple[str, __A_]] = map(mapping_1, values_1)
|
|
28
|
+
return helpers.encode_object(arg)
|
|
29
|
+
|
|
30
|
+
return ObjectExpr2859()
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
def _arrow2865(get: IGetters) -> DataMap:
|
|
34
|
+
def _arrow2863(__unit: None=None) -> Array[DataContext]:
|
|
35
|
+
arg_1: Decoder_1[Array[DataContext]] = resize_array(decoder_1)
|
|
36
|
+
object_arg: IRequiredGetter = get.Required
|
|
37
|
+
return object_arg.Field("dataContexts", arg_1)
|
|
38
|
+
|
|
39
|
+
return DataMap__ctor_4E3220A7(_arrow2863())
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
decoder: Decoder_1[DataMap] = object(_arrow2865)
|
|
43
|
+
|
|
44
|
+
def encoder_compressed(string_table: Any, oa_table: Any, cell_table: Any, dm: DataMap) -> IEncodable:
|
|
45
|
+
return encoder(dm)
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
def decoder_compressed(string_table: Array[str], oa_table: Array[OntologyAnnotation], cell_table: Array[CompositeCell]) -> Decoder_1[DataMap]:
|
|
49
|
+
return decoder
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
__all__ = ["encoder", "decoder", "encoder_compressed", "decoder_compressed"]
|
|
53
|
+
|
|
File without changes
|