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,575 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from collections.abc import Callable
|
|
3
|
+
from typing import Any
|
|
4
|
+
from ...fable_modules.fable_library.array_ import (iterate_indexed, map)
|
|
5
|
+
from ...fable_modules.fable_library.int32 import op_unary_negation_int32
|
|
6
|
+
from ...fable_modules.fable_library.list import (cons, is_empty, tail as tail_1, head, FSharpList, empty, of_seq, exists, pick, map_indexed)
|
|
7
|
+
from ...fable_modules.fable_library.map import (of_array, try_find)
|
|
8
|
+
from ...fable_modules.fable_library.map_util import (get_item_from_dict, add_to_dict, remove_from_dict)
|
|
9
|
+
from ...fable_modules.fable_library.mutable_map import Dictionary
|
|
10
|
+
from ...fable_modules.fable_library.option import value as value_2
|
|
11
|
+
from ...fable_modules.fable_library.range import range_big_int
|
|
12
|
+
from ...fable_modules.fable_library.seq import (max_by, try_find_index, filter, to_array, head as head_1, to_list)
|
|
13
|
+
from ...fable_modules.fable_library.seq2 import Array_groupBy
|
|
14
|
+
from ...fable_modules.fable_library.set import (of_array as of_array_1, FSharpSet__Contains)
|
|
15
|
+
from ...fable_modules.fable_library.string_ import (to_console, printf)
|
|
16
|
+
from ...fable_modules.fable_library.types import (Array, Int32Array, to_string)
|
|
17
|
+
from ...fable_modules.fable_library.util import (compare_primitives, safe_hash, equals, IEnumerable_1, compare, ignore, get_enumerator, dispose, max, number_hash, equal_arrays, array_hash)
|
|
18
|
+
from ..Helper.collections_ import (Dictionary_tryFind, List_tryPickAndRemove)
|
|
19
|
+
from .composite_cell import CompositeCell
|
|
20
|
+
from .composite_column import CompositeColumn
|
|
21
|
+
from .composite_header import CompositeHeader
|
|
22
|
+
|
|
23
|
+
def get_column_count(headers: Array[CompositeHeader]) -> int:
|
|
24
|
+
return len(headers)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def get_row_count(values: Any) -> int:
|
|
28
|
+
if len(values) == 0:
|
|
29
|
+
return 0
|
|
30
|
+
|
|
31
|
+
else:
|
|
32
|
+
def projection(tuple: tuple[int, int], values: Any=values) -> int:
|
|
33
|
+
return tuple[1]
|
|
34
|
+
|
|
35
|
+
class ObjectExpr638:
|
|
36
|
+
@property
|
|
37
|
+
def Compare(self) -> Callable[[int, int], int]:
|
|
38
|
+
return compare_primitives
|
|
39
|
+
|
|
40
|
+
return 1 + max_by(projection, values.keys(), ObjectExpr638())[1]
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def box_hash_values(col_count: int, values: Any) -> Any:
|
|
45
|
+
hash_1: int = 0
|
|
46
|
+
row_count: int = get_row_count(values) or 0
|
|
47
|
+
for col in range(0, (col_count - 1) + 1, 1):
|
|
48
|
+
for row in range(0, (row_count - 1) + 1, 1):
|
|
49
|
+
hash_1 = (((-1640531527 + safe_hash(get_item_from_dict(values, (col, row)))) + (hash_1 << 6)) + (hash_1 >> 2)) or 0
|
|
50
|
+
return hash_1
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
def _007CIsUniqueExistingHeader_007C__007C(existing_headers: IEnumerable_1[CompositeHeader], input: CompositeHeader) -> int | None:
|
|
54
|
+
if ((((input.tag == 3) or (input.tag == 2)) or (input.tag == 1)) or (input.tag == 0)) or (input.tag == 13):
|
|
55
|
+
return None
|
|
56
|
+
|
|
57
|
+
elif input.tag == 12:
|
|
58
|
+
def _arrow639(h: CompositeHeader, existing_headers: Any=existing_headers, input: Any=input) -> bool:
|
|
59
|
+
return True if (h.tag == 12) else False
|
|
60
|
+
|
|
61
|
+
return try_find_index(_arrow639, existing_headers)
|
|
62
|
+
|
|
63
|
+
elif input.tag == 11:
|
|
64
|
+
def _arrow640(h_1: CompositeHeader, existing_headers: Any=existing_headers, input: Any=input) -> bool:
|
|
65
|
+
return True if (h_1.tag == 11) else False
|
|
66
|
+
|
|
67
|
+
return try_find_index(_arrow640, existing_headers)
|
|
68
|
+
|
|
69
|
+
else:
|
|
70
|
+
def _arrow641(h_2: CompositeHeader, existing_headers: Any=existing_headers, input: Any=input) -> bool:
|
|
71
|
+
return equals(h_2, input)
|
|
72
|
+
|
|
73
|
+
return try_find_index(_arrow641, existing_headers)
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
def try_find_duplicate_unique(new_header: CompositeHeader, existing_headers: IEnumerable_1[CompositeHeader]) -> int | None:
|
|
78
|
+
active_pattern_result: int | None = _007CIsUniqueExistingHeader_007C__007C(existing_headers, new_header)
|
|
79
|
+
if active_pattern_result is not None:
|
|
80
|
+
index: int = active_pattern_result or 0
|
|
81
|
+
return index
|
|
82
|
+
|
|
83
|
+
else:
|
|
84
|
+
return None
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
def try_find_duplicate_unique_in_array(existing_headers: IEnumerable_1[CompositeHeader]) -> FSharpList[dict[str, Any]]:
|
|
89
|
+
def loop(i_mut: int, duplicate_list_mut: FSharpList[dict[str, Any]], header_list_mut: FSharpList[CompositeHeader], existing_headers: Any=existing_headers) -> FSharpList[dict[str, Any]]:
|
|
90
|
+
while True:
|
|
91
|
+
(i, duplicate_list, header_list) = (i_mut, duplicate_list_mut, header_list_mut)
|
|
92
|
+
(pattern_matching_result, header, tail) = (None, None, None)
|
|
93
|
+
if is_empty(header_list):
|
|
94
|
+
pattern_matching_result = 0
|
|
95
|
+
|
|
96
|
+
elif is_empty(tail_1(header_list)):
|
|
97
|
+
pattern_matching_result = 0
|
|
98
|
+
|
|
99
|
+
else:
|
|
100
|
+
pattern_matching_result = 1
|
|
101
|
+
header = head(header_list)
|
|
102
|
+
tail = tail_1(header_list)
|
|
103
|
+
|
|
104
|
+
if pattern_matching_result == 0:
|
|
105
|
+
return duplicate_list
|
|
106
|
+
|
|
107
|
+
elif pattern_matching_result == 1:
|
|
108
|
+
has_duplicate: int | None = try_find_duplicate_unique(header, tail)
|
|
109
|
+
i_mut = i + 1
|
|
110
|
+
duplicate_list_mut = cons({
|
|
111
|
+
"HeaderType": header,
|
|
112
|
+
"Index1": i,
|
|
113
|
+
"Index2": value_2(has_duplicate)
|
|
114
|
+
}, duplicate_list) if (has_duplicate is not None) else duplicate_list
|
|
115
|
+
header_list_mut = tail
|
|
116
|
+
continue
|
|
117
|
+
|
|
118
|
+
break
|
|
119
|
+
|
|
120
|
+
def predicate(x: CompositeHeader, existing_headers: Any=existing_headers) -> bool:
|
|
121
|
+
return not x.IsTermColumn
|
|
122
|
+
|
|
123
|
+
return loop(0, empty(), of_seq(filter(predicate, existing_headers)))
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
def SanityChecks_validateColumnIndex(index: int, column_count: int, allow_append: bool) -> None:
|
|
127
|
+
if index < 0:
|
|
128
|
+
raise Exception("Cannot insert CompositeColumn at index < 0.")
|
|
129
|
+
|
|
130
|
+
def _arrow642(__unit: None=None, index: Any=index, column_count: Any=column_count, allow_append: Any=allow_append) -> bool:
|
|
131
|
+
x: int = index or 0
|
|
132
|
+
y: int = column_count or 0
|
|
133
|
+
return (compare(x, y) > 0) if allow_append else (compare(x, y) >= 0)
|
|
134
|
+
|
|
135
|
+
if _arrow642():
|
|
136
|
+
raise Exception(("Specified index is out of table range! Table contains only " + str(column_count)) + " columns.")
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
def SanityChecks_validateRowIndex(index: int, row_count: int, allow_append: bool) -> None:
|
|
141
|
+
if index < 0:
|
|
142
|
+
raise Exception("Cannot insert CompositeColumn at index < 0.")
|
|
143
|
+
|
|
144
|
+
def _arrow643(__unit: None=None, index: Any=index, row_count: Any=row_count, allow_append: Any=allow_append) -> bool:
|
|
145
|
+
x: int = index or 0
|
|
146
|
+
y: int = row_count or 0
|
|
147
|
+
return (compare(x, y) > 0) if allow_append else (compare(x, y) >= 0)
|
|
148
|
+
|
|
149
|
+
if _arrow643():
|
|
150
|
+
raise Exception(("Specified index is out of table range! Table contains only " + str(row_count)) + " rows.")
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
def SanityChecks_validateColumn(column: CompositeColumn) -> None:
|
|
155
|
+
ignore(column.Validate(True))
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
def SanityChecks_validate(headers: Array[CompositeHeader], values: Any, raise_exception: bool) -> bool:
|
|
159
|
+
is_valid: bool = True
|
|
160
|
+
en: Any = get_enumerator(values)
|
|
161
|
+
while en.System_Collections_IEnumerator_MoveNext() if is_valid else False:
|
|
162
|
+
matchValue: tuple[int, int]
|
|
163
|
+
copy_of_struct: Any = en.System_Collections_Generic_IEnumerator_1_get_Current()
|
|
164
|
+
match_value = copy_of_struct[0]
|
|
165
|
+
cell: CompositeCell
|
|
166
|
+
copy_of_struct_1: Any = en.System_Collections_Generic_IEnumerator_1_get_Current()
|
|
167
|
+
cell = copy_of_struct_1[1]
|
|
168
|
+
header: CompositeHeader = headers[match_value[0]]
|
|
169
|
+
header_is_data: bool = header.IsDataColumn
|
|
170
|
+
header_is_freetext: bool = (not header.IsDataColumn) if (not header.IsTermColumn) else False
|
|
171
|
+
cell_is_not_freetext: bool = not cell.is_free_text
|
|
172
|
+
if (cell_is_not_freetext if (not cell.is_data) else False) if header_is_data else False:
|
|
173
|
+
def _arrow644(message: str, headers: Any=headers, values: Any=values, raise_exception: Any=raise_exception) -> None:
|
|
174
|
+
raise Exception(message)
|
|
175
|
+
|
|
176
|
+
def _arrow646(__unit: None=None, headers: Any=headers, values: Any=values, raise_exception: Any=raise_exception) -> Callable[[str], None]:
|
|
177
|
+
clo: Callable[[str], None] = to_console(printf("%s"))
|
|
178
|
+
def _arrow645(arg: str) -> None:
|
|
179
|
+
clo(arg)
|
|
180
|
+
|
|
181
|
+
return _arrow645
|
|
182
|
+
|
|
183
|
+
(_arrow644 if raise_exception else _arrow646())(((("Invalid combination of header `" + str(header)) + "` and cell `") + str(cell)) + "`. Data header should contain either Data or Freetext cells.")
|
|
184
|
+
is_valid = False
|
|
185
|
+
|
|
186
|
+
if cell_is_not_freetext if header_is_freetext else False:
|
|
187
|
+
def _arrow647(message_1: str, headers: Any=headers, values: Any=values, raise_exception: Any=raise_exception) -> None:
|
|
188
|
+
raise Exception(message_1)
|
|
189
|
+
|
|
190
|
+
def _arrow649(__unit: None=None, headers: Any=headers, values: Any=values, raise_exception: Any=raise_exception) -> Callable[[str], None]:
|
|
191
|
+
clo_1: Callable[[str], None] = to_console(printf("%s"))
|
|
192
|
+
def _arrow648(arg_1: str) -> None:
|
|
193
|
+
clo_1(arg_1)
|
|
194
|
+
|
|
195
|
+
return _arrow648
|
|
196
|
+
|
|
197
|
+
(_arrow647 if raise_exception else _arrow649())(((("Invalid combination of header `" + str(header)) + "` and cell `") + str(cell)) + "`. Freetext header should not contain non-freetext cells.")
|
|
198
|
+
is_valid = False
|
|
199
|
+
|
|
200
|
+
return is_valid
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
def Unchecked_tryGetCellAt(column: int, row: int, cells: Any) -> CompositeCell | None:
|
|
204
|
+
return Dictionary_tryFind((column, row), cells)
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
def Unchecked_setCellAt(column_index: int, row_index: int, c: CompositeCell, cells: Any) -> None:
|
|
208
|
+
cells[column_index, row_index] = c
|
|
209
|
+
|
|
210
|
+
|
|
211
|
+
def Unchecked_addCellAt(column_index: int, row_index: int, c: CompositeCell, cells: Any) -> None:
|
|
212
|
+
add_to_dict(cells, (column_index, row_index), c)
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
def Unchecked_moveCellTo(from_col: int, from_row: int, to_col: int, to_row: int, cells: Any) -> None:
|
|
216
|
+
match_value: CompositeCell | None = Dictionary_tryFind((from_col, from_row), cells)
|
|
217
|
+
if match_value is None:
|
|
218
|
+
pass
|
|
219
|
+
|
|
220
|
+
else:
|
|
221
|
+
c: CompositeCell = match_value
|
|
222
|
+
ignore(remove_from_dict(cells, (from_col, from_row)))
|
|
223
|
+
value_1: None = Unchecked_setCellAt(to_col, to_row, c, cells)
|
|
224
|
+
ignore(None)
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
|
|
228
|
+
def Unchecked_removeHeader(index: int, headers: Array[CompositeHeader]) -> None:
|
|
229
|
+
headers.pop(index)
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
def Unchecked_removeColumnCells(index: int, cells: Any) -> None:
|
|
233
|
+
enumerator: Any = get_enumerator(cells)
|
|
234
|
+
try:
|
|
235
|
+
while enumerator.System_Collections_IEnumerator_MoveNext():
|
|
236
|
+
active_pattern_result: tuple[tuple[int, int], CompositeCell] = enumerator.System_Collections_Generic_IEnumerator_1_get_Current()
|
|
237
|
+
c: int = active_pattern_result[0][0] or 0
|
|
238
|
+
if c == index:
|
|
239
|
+
ignore(remove_from_dict(cells, (c, active_pattern_result[0][1])))
|
|
240
|
+
|
|
241
|
+
|
|
242
|
+
finally:
|
|
243
|
+
dispose(enumerator)
|
|
244
|
+
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
def Unchecked_removeColumnCells_withIndexChange(index: int, column_count: int, row_count: int, cells: Any) -> None:
|
|
248
|
+
for col in range(index, (column_count - 1) + 1, 1):
|
|
249
|
+
for row in range(0, (row_count - 1) + 1, 1):
|
|
250
|
+
if col == index:
|
|
251
|
+
ignore(remove_from_dict(cells, (col, row)))
|
|
252
|
+
|
|
253
|
+
elif col > index:
|
|
254
|
+
Unchecked_moveCellTo(col, row, col - 1, row, cells)
|
|
255
|
+
|
|
256
|
+
|
|
257
|
+
|
|
258
|
+
def Unchecked_removeRowCells(row_index: int, cells: Any) -> None:
|
|
259
|
+
enumerator: Any = get_enumerator(cells)
|
|
260
|
+
try:
|
|
261
|
+
while enumerator.System_Collections_IEnumerator_MoveNext():
|
|
262
|
+
active_pattern_result: tuple[tuple[int, int], CompositeCell] = enumerator.System_Collections_Generic_IEnumerator_1_get_Current()
|
|
263
|
+
r: int = active_pattern_result[0][1] or 0
|
|
264
|
+
if r == row_index:
|
|
265
|
+
ignore(remove_from_dict(cells, (active_pattern_result[0][0], r)))
|
|
266
|
+
|
|
267
|
+
|
|
268
|
+
finally:
|
|
269
|
+
dispose(enumerator)
|
|
270
|
+
|
|
271
|
+
|
|
272
|
+
|
|
273
|
+
def Unchecked_removeRowCells_withIndexChange(row_index: int, column_count: int, row_count: int, cells: Any) -> None:
|
|
274
|
+
for row in range(row_index, (row_count - 1) + 1, 1):
|
|
275
|
+
for col in range(0, (column_count - 1) + 1, 1):
|
|
276
|
+
if row == row_index:
|
|
277
|
+
ignore(remove_from_dict(cells, (col, row)))
|
|
278
|
+
|
|
279
|
+
elif row > row_index:
|
|
280
|
+
Unchecked_moveCellTo(col, row, col, row - 1, cells)
|
|
281
|
+
|
|
282
|
+
|
|
283
|
+
|
|
284
|
+
def Unchecked_getEmptyCellForHeader(header: CompositeHeader, colum_cell_option: CompositeCell | None=None) -> CompositeCell:
|
|
285
|
+
match_value: bool = header.IsTermColumn
|
|
286
|
+
if match_value:
|
|
287
|
+
(pattern_matching_result,) = (None,)
|
|
288
|
+
if colum_cell_option is None:
|
|
289
|
+
pattern_matching_result = 0
|
|
290
|
+
|
|
291
|
+
elif colum_cell_option.tag == 0:
|
|
292
|
+
pattern_matching_result = 0
|
|
293
|
+
|
|
294
|
+
elif colum_cell_option.tag == 2:
|
|
295
|
+
pattern_matching_result = 1
|
|
296
|
+
|
|
297
|
+
else:
|
|
298
|
+
pattern_matching_result = 2
|
|
299
|
+
|
|
300
|
+
if pattern_matching_result == 0:
|
|
301
|
+
return CompositeCell.empty_term()
|
|
302
|
+
|
|
303
|
+
elif pattern_matching_result == 1:
|
|
304
|
+
return CompositeCell.empty_unitized()
|
|
305
|
+
|
|
306
|
+
elif pattern_matching_result == 2:
|
|
307
|
+
raise Exception("[extendBodyCells] This should never happen, IsTermColumn header must be paired with either term or unitized cell.")
|
|
308
|
+
|
|
309
|
+
|
|
310
|
+
else:
|
|
311
|
+
return CompositeCell.empty_free_text()
|
|
312
|
+
|
|
313
|
+
|
|
314
|
+
|
|
315
|
+
def Unchecked_addColumn(new_header: CompositeHeader, new_cells: Array[CompositeCell], index: int, force_replace: bool, only_headers: bool, headers: Array[CompositeHeader], values: Any) -> None:
|
|
316
|
+
number_of_new_columns: int = 1
|
|
317
|
+
index_1: int = index or 0
|
|
318
|
+
has_duplicate_unique: int | None = try_find_duplicate_unique(new_header, headers)
|
|
319
|
+
if (has_duplicate_unique is not None) if (not force_replace) else False:
|
|
320
|
+
raise Exception(((("Invalid new column `" + str(new_header)) + "`. Table already contains header of the same type on index `") + str(value_2(has_duplicate_unique))) + "`")
|
|
321
|
+
|
|
322
|
+
if has_duplicate_unique is not None:
|
|
323
|
+
number_of_new_columns = 0
|
|
324
|
+
index_1 = value_2(has_duplicate_unique) or 0
|
|
325
|
+
|
|
326
|
+
match_value: int = get_column_count(headers) or 0
|
|
327
|
+
match_value_1: int = get_row_count(values) or 0
|
|
328
|
+
start_col_count: int = match_value or 0
|
|
329
|
+
if has_duplicate_unique is not None:
|
|
330
|
+
Unchecked_removeHeader(index_1, headers)
|
|
331
|
+
|
|
332
|
+
headers.insert(index_1, new_header)
|
|
333
|
+
if (has_duplicate_unique is None) if (index_1 < start_col_count) else False:
|
|
334
|
+
def _arrow650(x: int, y: int, new_header: Any=new_header, new_cells: Any=new_cells, index: Any=index, force_replace: Any=force_replace, only_headers: Any=only_headers, headers: Any=headers, values: Any=values) -> int:
|
|
335
|
+
return compare_primitives(x, y)
|
|
336
|
+
|
|
337
|
+
last_column_index: int = max(_arrow650, start_col_count - 1, 0) or 0
|
|
338
|
+
for column_index in range(last_column_index, index_1 - 1, -1):
|
|
339
|
+
for row_index in range(0, match_value_1 + 1, 1):
|
|
340
|
+
Unchecked_moveCellTo(column_index, row_index, column_index + number_of_new_columns, row_index, values)
|
|
341
|
+
|
|
342
|
+
if not only_headers:
|
|
343
|
+
if has_duplicate_unique is not None:
|
|
344
|
+
Unchecked_removeColumnCells(index_1, values)
|
|
345
|
+
|
|
346
|
+
def _arrow652(tupled_arg: tuple[int, int, CompositeCell], new_header: Any=new_header, new_cells: Any=new_cells, index: Any=index, force_replace: Any=force_replace, only_headers: Any=only_headers, headers: Any=headers, values: Any=values) -> Callable[[Any], None]:
|
|
347
|
+
def _arrow651(values_1: Any) -> None:
|
|
348
|
+
value: None = add_to_dict(values_1, (tupled_arg[0], tupled_arg[1]), tupled_arg[2])
|
|
349
|
+
ignore(None)
|
|
350
|
+
|
|
351
|
+
return _arrow651
|
|
352
|
+
|
|
353
|
+
def _arrow654(tupled_arg_1: tuple[int, int, CompositeCell], new_header: Any=new_header, new_cells: Any=new_cells, index: Any=index, force_replace: Any=force_replace, only_headers: Any=only_headers, headers: Any=headers, values: Any=values) -> Callable[[Any], None]:
|
|
354
|
+
def _arrow653(cells: Any) -> None:
|
|
355
|
+
Unchecked_setCellAt(tupled_arg_1[0], tupled_arg_1[1], tupled_arg_1[2], cells)
|
|
356
|
+
|
|
357
|
+
return _arrow653
|
|
358
|
+
|
|
359
|
+
f: Callable[[tuple[int, int, CompositeCell], Any], None] = _arrow652 if (index_1 >= start_col_count) else _arrow654
|
|
360
|
+
def action(row_index_3: int, cell_1: CompositeCell, new_header: Any=new_header, new_cells: Any=new_cells, index: Any=index, force_replace: Any=force_replace, only_headers: Any=only_headers, headers: Any=headers, values: Any=values) -> None:
|
|
361
|
+
f((index_1, row_index_3, cell_1))(values)
|
|
362
|
+
|
|
363
|
+
iterate_indexed(action, new_cells)
|
|
364
|
+
|
|
365
|
+
|
|
366
|
+
|
|
367
|
+
def Unchecked_fillMissingCells(headers: Array[CompositeHeader], values: Any) -> None:
|
|
368
|
+
row_count: int = get_row_count(values) or 0
|
|
369
|
+
column_count: int = get_column_count(headers) or 0
|
|
370
|
+
def projection(tuple: tuple[int, int], headers: Any=headers, values: Any=values) -> int:
|
|
371
|
+
return tuple[0]
|
|
372
|
+
|
|
373
|
+
class ObjectExpr656:
|
|
374
|
+
@property
|
|
375
|
+
def Equals(self) -> Callable[[int, int], bool]:
|
|
376
|
+
def _arrow655(x: int, y: int) -> bool:
|
|
377
|
+
return x == y
|
|
378
|
+
|
|
379
|
+
return _arrow655
|
|
380
|
+
|
|
381
|
+
@property
|
|
382
|
+
def GetHashCode(self) -> Callable[[int], int]:
|
|
383
|
+
return number_hash
|
|
384
|
+
|
|
385
|
+
class ObjectExpr657:
|
|
386
|
+
@property
|
|
387
|
+
def Compare(self) -> Callable[[int, int], int]:
|
|
388
|
+
return compare_primitives
|
|
389
|
+
|
|
390
|
+
column_key_groups: Any = of_array(Array_groupBy(projection, to_array(values.keys()), ObjectExpr656()), ObjectExpr657())
|
|
391
|
+
for column_index in range(0, (column_count - 1) + 1, 1):
|
|
392
|
+
header: CompositeHeader = headers[column_index]
|
|
393
|
+
match_value: Array[tuple[int, int]] | None = try_find(column_index, column_key_groups)
|
|
394
|
+
if match_value is None:
|
|
395
|
+
default_cell_1: CompositeCell = Unchecked_getEmptyCellForHeader(header, None)
|
|
396
|
+
for row_index_1 in range(0, (row_count - 1) + 1, 1):
|
|
397
|
+
Unchecked_addCellAt(column_index, row_index_1, default_cell_1.Copy(), values)
|
|
398
|
+
|
|
399
|
+
elif len(match_value) == row_count:
|
|
400
|
+
col_1: Array[tuple[int, int]] = match_value
|
|
401
|
+
|
|
402
|
+
else:
|
|
403
|
+
col_2: Array[tuple[int, int]] = match_value
|
|
404
|
+
default_cell: CompositeCell = Unchecked_getEmptyCellForHeader(header, get_item_from_dict(values, head_1(col_2)))
|
|
405
|
+
def _arrow658(tuple_1: tuple[int, int], headers: Any=headers, values: Any=values) -> int:
|
|
406
|
+
return tuple_1[1]
|
|
407
|
+
|
|
408
|
+
class ObjectExpr659:
|
|
409
|
+
@property
|
|
410
|
+
def Compare(self) -> Callable[[int, int], int]:
|
|
411
|
+
return compare_primitives
|
|
412
|
+
|
|
413
|
+
row_keys: Any = of_array_1(map(_arrow658, col_2, Int32Array), ObjectExpr659())
|
|
414
|
+
for row_index in range(0, (row_count - 1) + 1, 1):
|
|
415
|
+
if not FSharpSet__Contains(row_keys, row_index):
|
|
416
|
+
Unchecked_addCellAt(column_index, row_index, default_cell.Copy(), values)
|
|
417
|
+
|
|
418
|
+
|
|
419
|
+
|
|
420
|
+
|
|
421
|
+
def Unchecked_extendToRowCount(row_count: int, headers: Array[CompositeHeader], values: Any) -> None:
|
|
422
|
+
column_count: int = get_column_count(headers) or 0
|
|
423
|
+
previous_row_count: int = get_row_count(values) or 0
|
|
424
|
+
for column_index in range(0, (column_count - 1) + 1, 1):
|
|
425
|
+
last_value: CompositeCell = get_item_from_dict(values, (column_index, previous_row_count - 1))
|
|
426
|
+
for row_index in range(previous_row_count - 1, (row_count - 1) + 1, 1):
|
|
427
|
+
Unchecked_setCellAt(column_index, row_index, last_value, values)
|
|
428
|
+
|
|
429
|
+
|
|
430
|
+
def Unchecked_addRow(index: int, new_cells: Array[CompositeCell], headers: Array[CompositeHeader], values: Any) -> None:
|
|
431
|
+
row_count: int = get_row_count(values) or 0
|
|
432
|
+
column_count: int = get_column_count(headers) or 0
|
|
433
|
+
increase_row_indices: None
|
|
434
|
+
if index < row_count:
|
|
435
|
+
def _arrow660(x: int, y: int, index: Any=index, new_cells: Any=new_cells, headers: Any=headers, values: Any=values) -> int:
|
|
436
|
+
return compare_primitives(x, y)
|
|
437
|
+
|
|
438
|
+
last_row_index: int = max(_arrow660, row_count - 1, 0) or 0
|
|
439
|
+
for row_index in range(last_row_index, index - 1, -1):
|
|
440
|
+
for column_index in range(0, (column_count - 1) + 1, 1):
|
|
441
|
+
Unchecked_moveCellTo(column_index, row_index, column_index, row_index + 1, values)
|
|
442
|
+
|
|
443
|
+
else:
|
|
444
|
+
increase_row_indices = None
|
|
445
|
+
|
|
446
|
+
def action(column_index_1: int, cell: CompositeCell, index: Any=index, new_cells: Any=new_cells, headers: Any=headers, values: Any=values) -> None:
|
|
447
|
+
Unchecked_setCellAt(column_index_1, index, cell, values)
|
|
448
|
+
|
|
449
|
+
set_new_cells: None = iterate_indexed(action, new_cells)
|
|
450
|
+
|
|
451
|
+
|
|
452
|
+
def Unchecked_addRows(index: int, new_rows: Array[Array[CompositeCell]], headers: Array[CompositeHeader], values: Any) -> None:
|
|
453
|
+
row_count: int = get_row_count(values) or 0
|
|
454
|
+
column_count: int = get_column_count(headers) or 0
|
|
455
|
+
num_new_rows: int = len(new_rows) or 0
|
|
456
|
+
increase_row_indices: None
|
|
457
|
+
if index < row_count:
|
|
458
|
+
def _arrow661(x: int, y: int, index: Any=index, new_rows: Any=new_rows, headers: Any=headers, values: Any=values) -> int:
|
|
459
|
+
return compare_primitives(x, y)
|
|
460
|
+
|
|
461
|
+
last_row_index: int = max(_arrow661, row_count - 1, 0) or 0
|
|
462
|
+
for row_index in range(last_row_index, index - 1, -1):
|
|
463
|
+
for column_index in range(0, (column_count - 1) + 1, 1):
|
|
464
|
+
Unchecked_moveCellTo(column_index, row_index, column_index, row_index + num_new_rows, values)
|
|
465
|
+
|
|
466
|
+
else:
|
|
467
|
+
increase_row_indices = None
|
|
468
|
+
|
|
469
|
+
current_row_index: int = index or 0
|
|
470
|
+
for idx in range(0, (len(new_rows) - 1) + 1, 1):
|
|
471
|
+
def action(column_index_1: int, cell: CompositeCell, index: Any=index, new_rows: Any=new_rows, headers: Any=headers, values: Any=values) -> None:
|
|
472
|
+
Unchecked_setCellAt(column_index_1, current_row_index, cell, values)
|
|
473
|
+
|
|
474
|
+
set_new_cells: None = iterate_indexed(action, new_rows[idx])
|
|
475
|
+
current_row_index = (current_row_index + 1) or 0
|
|
476
|
+
|
|
477
|
+
|
|
478
|
+
def Unchecked_compositeHeaderMainColumnEqual(ch1: CompositeHeader, ch2: CompositeHeader) -> bool:
|
|
479
|
+
return to_string(ch1) == to_string(ch2)
|
|
480
|
+
|
|
481
|
+
|
|
482
|
+
def Unchecked_moveColumnTo(row_count: int, from_col: int, to_col: int, headers: Array[CompositeHeader], values: Any) -> None:
|
|
483
|
+
pattern_input: tuple[int, int, int] = ((-1, from_col + 1, to_col)) if (from_col < to_col) else ((1, from_col - 1, to_col))
|
|
484
|
+
shift_start: int = pattern_input[1] or 0
|
|
485
|
+
shift_end: int = pattern_input[2] or 0
|
|
486
|
+
shift: int = pattern_input[0] or 0
|
|
487
|
+
header: CompositeHeader = headers[from_col]
|
|
488
|
+
with get_enumerator(to_list(range_big_int(shift_start, op_unary_negation_int32(shift), shift_end))) as enumerator:
|
|
489
|
+
while enumerator.System_Collections_IEnumerator_MoveNext():
|
|
490
|
+
c: int = enumerator.System_Collections_Generic_IEnumerator_1_get_Current() or 0
|
|
491
|
+
headers[c + shift] = headers[c]
|
|
492
|
+
headers[to_col] = header
|
|
493
|
+
for r in range(0, (row_count - 1) + 1, 1):
|
|
494
|
+
cell: CompositeCell = get_item_from_dict(values, (from_col, r))
|
|
495
|
+
with get_enumerator(to_list(range_big_int(shift_start, op_unary_negation_int32(shift), shift_end))) as enumerator_1:
|
|
496
|
+
while enumerator_1.System_Collections_IEnumerator_MoveNext():
|
|
497
|
+
c_1: int = enumerator_1.System_Collections_Generic_IEnumerator_1_get_Current() or 0
|
|
498
|
+
values[c_1 + shift, r] = get_item_from_dict(values, (c_1, r))
|
|
499
|
+
values[to_col, r] = cell
|
|
500
|
+
|
|
501
|
+
|
|
502
|
+
def Unchecked_alignByHeaders(keep_order: bool, rows: FSharpList[FSharpList[tuple[CompositeHeader, CompositeCell]]]) -> tuple[Array[CompositeHeader], Any]:
|
|
503
|
+
headers: Array[CompositeHeader] = []
|
|
504
|
+
class ObjectExpr662:
|
|
505
|
+
@property
|
|
506
|
+
def Equals(self) -> Callable[[tuple[int, int], tuple[int, int]], bool]:
|
|
507
|
+
return equal_arrays
|
|
508
|
+
|
|
509
|
+
@property
|
|
510
|
+
def GetHashCode(self) -> Callable[[tuple[int, int]], int]:
|
|
511
|
+
return array_hash
|
|
512
|
+
|
|
513
|
+
values: Any = Dictionary([], ObjectExpr662())
|
|
514
|
+
def loop(col_i_mut: int, rows_2_mut: FSharpList[FSharpList[tuple[CompositeHeader, CompositeCell]]], keep_order: Any=keep_order, rows: Any=rows) -> tuple[Array[CompositeHeader], Any]:
|
|
515
|
+
while True:
|
|
516
|
+
(col_i, rows_2) = (col_i_mut, rows_2_mut)
|
|
517
|
+
def _arrow663(arg: FSharpList[tuple[CompositeHeader, CompositeCell]], col_i: Any=col_i, rows_2: Any=rows_2) -> bool:
|
|
518
|
+
return not is_empty(arg)
|
|
519
|
+
|
|
520
|
+
if not exists(_arrow663, rows_2):
|
|
521
|
+
return (headers, values)
|
|
522
|
+
|
|
523
|
+
else:
|
|
524
|
+
def _arrow664(l: FSharpList[tuple[CompositeHeader, CompositeCell]], col_i: Any=col_i, rows_2: Any=rows_2) -> tuple[CompositeHeader, CompositeCell] | None:
|
|
525
|
+
return None if is_empty(l) else head(l)
|
|
526
|
+
|
|
527
|
+
first_elem: CompositeHeader = pick(_arrow664, rows_2)[0]
|
|
528
|
+
(headers.append(first_elem))
|
|
529
|
+
col_i_mut = col_i + 1
|
|
530
|
+
def mapping(row_i: int, l_1: FSharpList[tuple[CompositeHeader, CompositeCell]], col_i: Any=col_i, rows_2: Any=rows_2) -> FSharpList[tuple[CompositeHeader, CompositeCell]]:
|
|
531
|
+
if keep_order:
|
|
532
|
+
if not is_empty(l_1):
|
|
533
|
+
if Unchecked_compositeHeaderMainColumnEqual(head(l_1)[0], first_elem):
|
|
534
|
+
add_to_dict(values, (col_i, row_i), head(l_1)[1])
|
|
535
|
+
return tail_1(l_1)
|
|
536
|
+
|
|
537
|
+
else:
|
|
538
|
+
return l_1
|
|
539
|
+
|
|
540
|
+
|
|
541
|
+
else:
|
|
542
|
+
return empty()
|
|
543
|
+
|
|
544
|
+
|
|
545
|
+
else:
|
|
546
|
+
def f(tupled_arg: tuple[CompositeHeader, CompositeCell], row_i: Any=row_i, l_1: Any=l_1) -> CompositeCell | None:
|
|
547
|
+
if Unchecked_compositeHeaderMainColumnEqual(tupled_arg[0], first_elem):
|
|
548
|
+
return tupled_arg[1]
|
|
549
|
+
|
|
550
|
+
else:
|
|
551
|
+
return None
|
|
552
|
+
|
|
553
|
+
|
|
554
|
+
pattern_input: tuple[CompositeCell | None, FSharpList[tuple[CompositeHeader, CompositeCell]]] = List_tryPickAndRemove(f, l_1)
|
|
555
|
+
new_l: FSharpList[tuple[CompositeHeader, CompositeCell]] = pattern_input[1]
|
|
556
|
+
first_match: CompositeCell | None = pattern_input[0]
|
|
557
|
+
if first_match is None:
|
|
558
|
+
return new_l
|
|
559
|
+
|
|
560
|
+
else:
|
|
561
|
+
add_to_dict(values, (col_i, row_i), first_match)
|
|
562
|
+
return new_l
|
|
563
|
+
|
|
564
|
+
|
|
565
|
+
|
|
566
|
+
rows_2_mut = map_indexed(mapping, rows_2)
|
|
567
|
+
continue
|
|
568
|
+
|
|
569
|
+
break
|
|
570
|
+
|
|
571
|
+
return loop(0, rows)
|
|
572
|
+
|
|
573
|
+
|
|
574
|
+
__all__ = ["get_column_count", "get_row_count", "box_hash_values", "_007CIsUniqueExistingHeader_007C__007C", "try_find_duplicate_unique", "try_find_duplicate_unique_in_array", "SanityChecks_validateColumnIndex", "SanityChecks_validateRowIndex", "SanityChecks_validateColumn", "SanityChecks_validate", "Unchecked_tryGetCellAt", "Unchecked_setCellAt", "Unchecked_addCellAt", "Unchecked_moveCellTo", "Unchecked_removeHeader", "Unchecked_removeColumnCells", "Unchecked_removeColumnCells_withIndexChange", "Unchecked_removeRowCells", "Unchecked_removeRowCells_withIndexChange", "Unchecked_getEmptyCellForHeader", "Unchecked_addColumn", "Unchecked_fillMissingCells", "Unchecked_extendToRowCount", "Unchecked_addRow", "Unchecked_addRows", "Unchecked_compositeHeaderMainColumnEqual", "Unchecked_moveColumnTo", "Unchecked_alignByHeaders"]
|
|
575
|
+
|