arctrl 3.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (511) hide show
  1. arctrl/__init__.py +23 -0
  2. arctrl/cwl.py +12 -0
  3. arctrl/py/CWL/__init__.py +0 -0
  4. arctrl/py/CWL/cwlprocessing_unit.py +221 -0
  5. arctrl/py/CWL/cwltypes.py +364 -0
  6. arctrl/py/CWL/decode.py +3532 -0
  7. arctrl/py/CWL/encode.py +1905 -0
  8. arctrl/py/CWL/expression_tool_description.py +192 -0
  9. arctrl/py/CWL/hash_helpers.py +60 -0
  10. arctrl/py/CWL/inputs.py +122 -0
  11. arctrl/py/CWL/operation_description.py +169 -0
  12. arctrl/py/CWL/outputs.py +171 -0
  13. arctrl/py/CWL/parameter_reference.py +74 -0
  14. arctrl/py/CWL/requirements.py +350 -0
  15. arctrl/py/CWL/tool_description.py +192 -0
  16. arctrl/py/CWL/workflow_description.py +181 -0
  17. arctrl/py/CWL/workflow_steps.py +354 -0
  18. arctrl/py/Contract/__init__.py +0 -0
  19. arctrl/py/Contract/arc.py +89 -0
  20. arctrl/py/Contract/arc_assay.py +125 -0
  21. arctrl/py/Contract/arc_investigation.py +88 -0
  22. arctrl/py/Contract/arc_run.py +291 -0
  23. arctrl/py/Contract/arc_study.py +126 -0
  24. arctrl/py/Contract/arc_workflow.py +213 -0
  25. arctrl/py/Contract/contract.py +153 -0
  26. arctrl/py/Contract/datamap.py +396 -0
  27. arctrl/py/Contract/git.py +116 -0
  28. arctrl/py/Contract/license.py +58 -0
  29. arctrl/py/Contract/validation_packages_config.py +107 -0
  30. arctrl/py/ContractIO/__init__.py +0 -0
  31. arctrl/py/ContractIO/contract_io.py +350 -0
  32. arctrl/py/ContractIO/file_system_helper.py +264 -0
  33. arctrl/py/Conversion/__init__.py +0 -0
  34. arctrl/py/Conversion/assay.py +151 -0
  35. arctrl/py/Conversion/basic.py +559 -0
  36. arctrl/py/Conversion/column_index.py +91 -0
  37. arctrl/py/Conversion/datamap.py +36 -0
  38. arctrl/py/Conversion/date_time.py +32 -0
  39. arctrl/py/Conversion/investigation.py +171 -0
  40. arctrl/py/Conversion/person.py +148 -0
  41. arctrl/py/Conversion/process.py +828 -0
  42. arctrl/py/Conversion/run.py +367 -0
  43. arctrl/py/Conversion/scholarly_article.py +163 -0
  44. arctrl/py/Conversion/study.py +99 -0
  45. arctrl/py/Conversion/table.py +229 -0
  46. arctrl/py/Conversion/workflow.py +680 -0
  47. arctrl/py/Core/Helper/__init__.py +0 -0
  48. arctrl/py/Core/Helper/collections_.py +512 -0
  49. arctrl/py/Core/Helper/date_time.py +26 -0
  50. arctrl/py/Core/Helper/hash_codes.py +60 -0
  51. arctrl/py/Core/Helper/identifier.py +290 -0
  52. arctrl/py/Core/Helper/orcid.py +42 -0
  53. arctrl/py/Core/Helper/printer.py +13 -0
  54. arctrl/py/Core/Helper/regex.py +554 -0
  55. arctrl/py/Core/Helper/sem_ver.py +71 -0
  56. arctrl/py/Core/Helper/url.py +148 -0
  57. arctrl/py/Core/Process/__init__.py +0 -0
  58. arctrl/py/Core/Process/column_index.py +280 -0
  59. arctrl/py/Core/Process/component.py +200 -0
  60. arctrl/py/Core/Process/factor.py +151 -0
  61. arctrl/py/Core/Process/factor_value.py +182 -0
  62. arctrl/py/Core/Process/material.py +74 -0
  63. arctrl/py/Core/Process/material_attribute.py +95 -0
  64. arctrl/py/Core/Process/material_attribute_value.py +184 -0
  65. arctrl/py/Core/Process/material_type.py +45 -0
  66. arctrl/py/Core/Process/process.py +477 -0
  67. arctrl/py/Core/Process/process_input.py +265 -0
  68. arctrl/py/Core/Process/process_output.py +235 -0
  69. arctrl/py/Core/Process/process_parameter_value.py +200 -0
  70. arctrl/py/Core/Process/process_sequence.py +435 -0
  71. arctrl/py/Core/Process/protocol.py +175 -0
  72. arctrl/py/Core/Process/protocol_parameter.py +98 -0
  73. arctrl/py/Core/Process/sample.py +82 -0
  74. arctrl/py/Core/Process/source.py +62 -0
  75. arctrl/py/Core/Table/__init__.py +0 -0
  76. arctrl/py/Core/Table/arc_table.py +1206 -0
  77. arctrl/py/Core/Table/arc_table_aux.py +1308 -0
  78. arctrl/py/Core/Table/arc_tables.py +574 -0
  79. arctrl/py/Core/Table/composite_cell.py +319 -0
  80. arctrl/py/Core/Table/composite_column.py +73 -0
  81. arctrl/py/Core/Table/composite_header.py +739 -0
  82. arctrl/py/Core/__init__.py +0 -0
  83. arctrl/py/Core/arc_types.py +5312 -0
  84. arctrl/py/Core/comment.py +128 -0
  85. arctrl/py/Core/comment_list.py +127 -0
  86. arctrl/py/Core/conversion.py +1375 -0
  87. arctrl/py/Core/data.py +247 -0
  88. arctrl/py/Core/data_context.py +157 -0
  89. arctrl/py/Core/data_file.py +112 -0
  90. arctrl/py/Core/datamap.py +217 -0
  91. arctrl/py/Core/identifier_setters.py +43 -0
  92. arctrl/py/Core/iproperty_value.py +36 -0
  93. arctrl/py/Core/ontology_annotation.py +298 -0
  94. arctrl/py/Core/ontology_source_reference.py +114 -0
  95. arctrl/py/Core/person.py +259 -0
  96. arctrl/py/Core/publication.py +161 -0
  97. arctrl/py/Core/template.py +231 -0
  98. arctrl/py/Core/templates.py +148 -0
  99. arctrl/py/Core/uri.py +11 -0
  100. arctrl/py/Core/value.py +188 -0
  101. arctrl/py/FileSystem/__init__.py +0 -0
  102. arctrl/py/FileSystem/commit.py +21 -0
  103. arctrl/py/FileSystem/default_gitattributes.py +1 -0
  104. arctrl/py/FileSystem/default_gitignore.py +1 -0
  105. arctrl/py/FileSystem/default_license.py +1 -0
  106. arctrl/py/FileSystem/file_system.py +58 -0
  107. arctrl/py/FileSystem/file_system_tree.py +483 -0
  108. arctrl/py/FileSystem/path.py +266 -0
  109. arctrl/py/Json/Datamap/__init__.py +0 -0
  110. arctrl/py/Json/Datamap/data_context.py +101 -0
  111. arctrl/py/Json/Datamap/datamap.py +53 -0
  112. arctrl/py/Json/Process/__init__.py +0 -0
  113. arctrl/py/Json/Process/assay_materials.py +46 -0
  114. arctrl/py/Json/Process/component.py +125 -0
  115. arctrl/py/Json/Process/factor.py +107 -0
  116. arctrl/py/Json/Process/factor_value.py +101 -0
  117. arctrl/py/Json/Process/material.py +226 -0
  118. arctrl/py/Json/Process/material_attribute.py +79 -0
  119. arctrl/py/Json/Process/material_attribute_value.py +101 -0
  120. arctrl/py/Json/Process/material_type.py +53 -0
  121. arctrl/py/Json/Process/process.py +296 -0
  122. arctrl/py/Json/Process/process_input.py +83 -0
  123. arctrl/py/Json/Process/process_output.py +67 -0
  124. arctrl/py/Json/Process/process_parameter_value.py +81 -0
  125. arctrl/py/Json/Process/protocol.py +354 -0
  126. arctrl/py/Json/Process/protocol_parameter.py +91 -0
  127. arctrl/py/Json/Process/sample.py +277 -0
  128. arctrl/py/Json/Process/source.py +214 -0
  129. arctrl/py/Json/Process/study_materials.py +52 -0
  130. arctrl/py/Json/Process/value.py +56 -0
  131. arctrl/py/Json/ROCrate/__init__.py +0 -0
  132. arctrl/py/Json/ROCrate/ldcontext.py +143 -0
  133. arctrl/py/Json/ROCrate/ldgraph.py +117 -0
  134. arctrl/py/Json/ROCrate/ldnode.py +304 -0
  135. arctrl/py/Json/ROCrate/ldref.py +44 -0
  136. arctrl/py/Json/ROCrate/ldvalue.py +102 -0
  137. arctrl/py/Json/Table/__init__.py +0 -0
  138. arctrl/py/Json/Table/arc_table.py +375 -0
  139. arctrl/py/Json/Table/cell_table.py +83 -0
  140. arctrl/py/Json/Table/composite_cell.py +136 -0
  141. arctrl/py/Json/Table/composite_header.py +67 -0
  142. arctrl/py/Json/Table/iotype.py +24 -0
  143. arctrl/py/Json/Table/oatable.py +82 -0
  144. arctrl/py/Json/Table/templates.py +281 -0
  145. arctrl/py/Json/__init__.py +0 -0
  146. arctrl/py/Json/assay.py +600 -0
  147. arctrl/py/Json/comment.py +206 -0
  148. arctrl/py/Json/context/rocrate/__init__.py +0 -0
  149. arctrl/py/Json/context/rocrate/isa_assay_context.py +101 -0
  150. arctrl/py/Json/context/rocrate/isa_comment_context.py +60 -0
  151. arctrl/py/Json/context/rocrate/isa_component_context.py +77 -0
  152. arctrl/py/Json/context/rocrate/isa_data_context.py +74 -0
  153. arctrl/py/Json/context/rocrate/isa_factor_context.py +74 -0
  154. arctrl/py/Json/context/rocrate/isa_factor_value_context.py +84 -0
  155. arctrl/py/Json/context/rocrate/isa_investigation_context.py +110 -0
  156. arctrl/py/Json/context/rocrate/isa_material_attribute_context.py +64 -0
  157. arctrl/py/Json/context/rocrate/isa_material_attribute_value_context.py +80 -0
  158. arctrl/py/Json/context/rocrate/isa_material_context.py +71 -0
  159. arctrl/py/Json/context/rocrate/isa_ontology_annotation_context.py +68 -0
  160. arctrl/py/Json/context/rocrate/isa_ontology_source_reference_context.py +75 -0
  161. arctrl/py/Json/context/rocrate/isa_organization_context.py +55 -0
  162. arctrl/py/Json/context/rocrate/isa_person_context.py +131 -0
  163. arctrl/py/Json/context/rocrate/isa_process_context.py +94 -0
  164. arctrl/py/Json/context/rocrate/isa_process_parameter_value_context.py +80 -0
  165. arctrl/py/Json/context/rocrate/isa_protocol_context.py +97 -0
  166. arctrl/py/Json/context/rocrate/isa_protocol_parameter_context.py +64 -0
  167. arctrl/py/Json/context/rocrate/isa_publication_context.py +78 -0
  168. arctrl/py/Json/context/rocrate/isa_sample_context.py +65 -0
  169. arctrl/py/Json/context/rocrate/isa_source_context.py +66 -0
  170. arctrl/py/Json/context/rocrate/isa_study_context.py +125 -0
  171. arctrl/py/Json/context/rocrate/property_value_context.py +73 -0
  172. arctrl/py/Json/context/rocrate/rocrate_context.py +81 -0
  173. arctrl/py/Json/converter_options.py +23 -0
  174. arctrl/py/Json/data.py +356 -0
  175. arctrl/py/Json/data_file.py +63 -0
  176. arctrl/py/Json/decode.py +271 -0
  177. arctrl/py/Json/encode.py +140 -0
  178. arctrl/py/Json/idtable.py +44 -0
  179. arctrl/py/Json/investigation.py +695 -0
  180. arctrl/py/Json/ontology_annotation.py +404 -0
  181. arctrl/py/Json/ontology_source_reference.py +255 -0
  182. arctrl/py/Json/person.py +658 -0
  183. arctrl/py/Json/property_value.py +359 -0
  184. arctrl/py/Json/publication.py +279 -0
  185. arctrl/py/Json/run.py +275 -0
  186. arctrl/py/Json/string_table.py +87 -0
  187. arctrl/py/Json/study.py +793 -0
  188. arctrl/py/Json/workflow.py +307 -0
  189. arctrl/py/JsonIO/Process/__init__.py +0 -0
  190. arctrl/py/JsonIO/Process/component.py +60 -0
  191. arctrl/py/JsonIO/Process/factor.py +36 -0
  192. arctrl/py/JsonIO/Process/factor_value.py +38 -0
  193. arctrl/py/JsonIO/Process/material.py +60 -0
  194. arctrl/py/JsonIO/Process/material_attribute.py +38 -0
  195. arctrl/py/JsonIO/Process/material_attribute_value.py +60 -0
  196. arctrl/py/JsonIO/Process/material_type.py +36 -0
  197. arctrl/py/JsonIO/Process/process.py +60 -0
  198. arctrl/py/JsonIO/Process/process_input.py +38 -0
  199. arctrl/py/JsonIO/Process/process_output.py +60 -0
  200. arctrl/py/JsonIO/Process/process_parameter_value.py +60 -0
  201. arctrl/py/JsonIO/Process/process_sequence.py +71 -0
  202. arctrl/py/JsonIO/Process/protocol.py +60 -0
  203. arctrl/py/JsonIO/Process/protocol_parameter.py +36 -0
  204. arctrl/py/JsonIO/Process/sample.py +60 -0
  205. arctrl/py/JsonIO/Process/source.py +60 -0
  206. arctrl/py/JsonIO/Process/study_materials.py +52 -0
  207. arctrl/py/JsonIO/Process/value.py +32 -0
  208. arctrl/py/JsonIO/Table/__init__.py +0 -0
  209. arctrl/py/JsonIO/Table/arc_table.py +103 -0
  210. arctrl/py/JsonIO/Table/composite_cell.py +36 -0
  211. arctrl/py/JsonIO/Table/composite_header.py +36 -0
  212. arctrl/py/JsonIO/Table/compression.py +67 -0
  213. arctrl/py/JsonIO/Table/iotype.py +36 -0
  214. arctrl/py/JsonIO/Table/templates.py +113 -0
  215. arctrl/py/JsonIO/__init__.py +0 -0
  216. arctrl/py/JsonIO/assay.py +113 -0
  217. arctrl/py/JsonIO/comment.py +80 -0
  218. arctrl/py/JsonIO/data.py +60 -0
  219. arctrl/py/JsonIO/data_file.py +58 -0
  220. arctrl/py/JsonIO/datamap.py +36 -0
  221. arctrl/py/JsonIO/decode.py +9 -0
  222. arctrl/py/JsonIO/encode.py +1 -0
  223. arctrl/py/JsonIO/investigation.py +91 -0
  224. arctrl/py/JsonIO/ldobject.py +106 -0
  225. arctrl/py/JsonIO/ontology_annotation.py +80 -0
  226. arctrl/py/JsonIO/ontology_source_reference.py +80 -0
  227. arctrl/py/JsonIO/person.py +82 -0
  228. arctrl/py/JsonIO/publication.py +82 -0
  229. arctrl/py/JsonIO/run.py +68 -0
  230. arctrl/py/JsonIO/study.py +114 -0
  231. arctrl/py/JsonIO/workflow.py +68 -0
  232. arctrl/py/ROCrate/ISAProfile/__init__.py +0 -0
  233. arctrl/py/ROCrate/ISAProfile/assay.py +70 -0
  234. arctrl/py/ROCrate/ISAProfile/data.py +65 -0
  235. arctrl/py/ROCrate/ISAProfile/dataset.py +24 -0
  236. arctrl/py/ROCrate/ISAProfile/investigation.py +73 -0
  237. arctrl/py/ROCrate/ISAProfile/lab_process.py +162 -0
  238. arctrl/py/ROCrate/ISAProfile/lab_protocol.py +37 -0
  239. arctrl/py/ROCrate/ISAProfile/person.py +72 -0
  240. arctrl/py/ROCrate/ISAProfile/property_value.py +98 -0
  241. arctrl/py/ROCrate/ISAProfile/sample.py +64 -0
  242. arctrl/py/ROCrate/ISAProfile/scholarly_article.py +98 -0
  243. arctrl/py/ROCrate/ISAProfile/study.py +74 -0
  244. arctrl/py/ROCrate/LDTypes/__init__.py +0 -0
  245. arctrl/py/ROCrate/LDTypes/comment.py +131 -0
  246. arctrl/py/ROCrate/LDTypes/computational_workflow.py +455 -0
  247. arctrl/py/ROCrate/LDTypes/computer_language.py +269 -0
  248. arctrl/py/ROCrate/LDTypes/create_action.py +303 -0
  249. arctrl/py/ROCrate/LDTypes/creative_work.py +566 -0
  250. arctrl/py/ROCrate/LDTypes/dataset.py +943 -0
  251. arctrl/py/ROCrate/LDTypes/defined_term.py +131 -0
  252. arctrl/py/ROCrate/LDTypes/file.py +281 -0
  253. arctrl/py/ROCrate/LDTypes/formal_parameter.py +431 -0
  254. arctrl/py/ROCrate/LDTypes/lab_process.py +352 -0
  255. arctrl/py/ROCrate/LDTypes/lab_protocol.py +395 -0
  256. arctrl/py/ROCrate/LDTypes/organization.py +83 -0
  257. arctrl/py/ROCrate/LDTypes/person.py +484 -0
  258. arctrl/py/ROCrate/LDTypes/postal_address.py +195 -0
  259. arctrl/py/ROCrate/LDTypes/property_value.py +952 -0
  260. arctrl/py/ROCrate/LDTypes/sample.py +202 -0
  261. arctrl/py/ROCrate/LDTypes/scholarly_article.py +229 -0
  262. arctrl/py/ROCrate/LDTypes/software_source_code.py +310 -0
  263. arctrl/py/ROCrate/LDTypes/workflow_invocation.py +48 -0
  264. arctrl/py/ROCrate/LDTypes/workflow_protocol.py +52 -0
  265. arctrl/py/ROCrate/__init__.py +0 -0
  266. arctrl/py/ROCrate/arc_rocrate_metadata.py +39 -0
  267. arctrl/py/ROCrate/dyn_obj_extensions.py +1 -0
  268. arctrl/py/ROCrate/helper.py +8 -0
  269. arctrl/py/ROCrate/ldcontext.py +406 -0
  270. arctrl/py/ROCrate/ldobject.py +1247 -0
  271. arctrl/py/ROCrate/rocrate_context.py +51 -0
  272. arctrl/py/Spreadsheet/AnnotationTable/__init__.py +0 -0
  273. arctrl/py/Spreadsheet/AnnotationTable/arc_table.py +203 -0
  274. arctrl/py/Spreadsheet/AnnotationTable/composite_cell.py +78 -0
  275. arctrl/py/Spreadsheet/AnnotationTable/composite_column.py +305 -0
  276. arctrl/py/Spreadsheet/AnnotationTable/composite_header.py +623 -0
  277. arctrl/py/Spreadsheet/DatamapTable/__init__.py +0 -0
  278. arctrl/py/Spreadsheet/DatamapTable/datamap_column.py +114 -0
  279. arctrl/py/Spreadsheet/DatamapTable/datamap_header.py +621 -0
  280. arctrl/py/Spreadsheet/DatamapTable/datamap_table.py +118 -0
  281. arctrl/py/Spreadsheet/Metadata/__init__.py +0 -0
  282. arctrl/py/Spreadsheet/Metadata/assays.py +125 -0
  283. arctrl/py/Spreadsheet/Metadata/comment.py +77 -0
  284. arctrl/py/Spreadsheet/Metadata/contacts.py +134 -0
  285. arctrl/py/Spreadsheet/Metadata/conversions.py +190 -0
  286. arctrl/py/Spreadsheet/Metadata/design_descriptors.py +34 -0
  287. arctrl/py/Spreadsheet/Metadata/factors.py +107 -0
  288. arctrl/py/Spreadsheet/Metadata/ontology_annotation.py +88 -0
  289. arctrl/py/Spreadsheet/Metadata/ontology_source_reference.py +96 -0
  290. arctrl/py/Spreadsheet/Metadata/protocols.py +146 -0
  291. arctrl/py/Spreadsheet/Metadata/publication.py +122 -0
  292. arctrl/py/Spreadsheet/Metadata/run.py +122 -0
  293. arctrl/py/Spreadsheet/Metadata/sparse_table.py +499 -0
  294. arctrl/py/Spreadsheet/Metadata/study.py +312 -0
  295. arctrl/py/Spreadsheet/Metadata/workflow.py +159 -0
  296. arctrl/py/Spreadsheet/__init__.py +0 -0
  297. arctrl/py/Spreadsheet/arc_assay.py +233 -0
  298. arctrl/py/Spreadsheet/arc_investigation.py +435 -0
  299. arctrl/py/Spreadsheet/arc_run.py +190 -0
  300. arctrl/py/Spreadsheet/arc_study.py +144 -0
  301. arctrl/py/Spreadsheet/arc_workflow.py +177 -0
  302. arctrl/py/Spreadsheet/assembly_info.py +1 -0
  303. arctrl/py/Spreadsheet/collection_aux.py +167 -0
  304. arctrl/py/Spreadsheet/datamap.py +43 -0
  305. arctrl/py/Spreadsheet/template.py +460 -0
  306. arctrl/py/ValidationPackages/__init__.py +0 -0
  307. arctrl/py/ValidationPackages/validation_package.py +82 -0
  308. arctrl/py/ValidationPackages/validation_packages_config.py +132 -0
  309. arctrl/py/WebRequest/__init__.py +0 -0
  310. arctrl/py/WebRequest/web_request.py +9 -0
  311. arctrl/py/WebRequest/web_request_py.py +135 -0
  312. arctrl/py/WorkflowGraph/__init__.py +0 -0
  313. arctrl/py/WorkflowGraph/adapters.py +141 -0
  314. arctrl/py/WorkflowGraph/build_options.py +45 -0
  315. arctrl/py/WorkflowGraph/builder.py +720 -0
  316. arctrl/py/WorkflowGraph/graph_types.py +260 -0
  317. arctrl/py/WorkflowGraph/query_helpers.py +76 -0
  318. arctrl/py/WorkflowGraph/reference_parsing.py +59 -0
  319. arctrl/py/WorkflowGraph/visualization_siren.py +574 -0
  320. arctrl/py/WorkflowGraph/workflow_graph.py +119 -0
  321. arctrl/py/Yaml/__init__.py +0 -0
  322. arctrl/py/Yaml/decode.py +1 -0
  323. arctrl/py/Yaml/encode.py +10 -0
  324. arctrl/py/Yaml/validation_package.py +77 -0
  325. arctrl/py/Yaml/validation_packages_config.py +86 -0
  326. arctrl/py/__init__.py +0 -0
  327. arctrl/py/arc.py +1891 -0
  328. arctrl/py/column_index.py +280 -0
  329. arctrl/py/conversion.py +142 -0
  330. arctrl/py/cross_async.py +76 -0
  331. arctrl/py/cwlrun_resolver.py +228 -0
  332. arctrl/py/fable_modules/dynamic_obj/__init__.py +0 -0
  333. arctrl/py/fable_modules/dynamic_obj/dyn_obj.py +136 -0
  334. arctrl/py/fable_modules/dynamic_obj/dynamic_obj.py +415 -0
  335. arctrl/py/fable_modules/dynamic_obj/fable_js.py +1 -0
  336. arctrl/py/fable_modules/dynamic_obj/fable_py.py +288 -0
  337. arctrl/py/fable_modules/dynamic_obj/hash_codes.py +82 -0
  338. arctrl/py/fable_modules/dynamic_obj/property_helper.py +25 -0
  339. arctrl/py/fable_modules/dynamic_obj/reflection_utils.py +87 -0
  340. arctrl/py/fable_modules/fable_library/__init__.py +0 -0
  341. arctrl/py/fable_modules/fable_library/array_.py +1528 -0
  342. arctrl/py/fable_modules/fable_library/async_.py +377 -0
  343. arctrl/py/fable_modules/fable_library/async_builder.py +379 -0
  344. arctrl/py/fable_modules/fable_library/big_int.py +330 -0
  345. arctrl/py/fable_modules/fable_library/bit_converter.py +131 -0
  346. arctrl/py/fable_modules/fable_library/boolean.py +26 -0
  347. arctrl/py/fable_modules/fable_library/char.py +237 -0
  348. arctrl/py/fable_modules/fable_library/choice.py +212 -0
  349. arctrl/py/fable_modules/fable_library/date.py +779 -0
  350. arctrl/py/fable_modules/fable_library/date_offset.py +79 -0
  351. arctrl/py/fable_modules/fable_library/decimal_.py +190 -0
  352. arctrl/py/fable_modules/fable_library/diagnostics.py +54 -0
  353. arctrl/py/fable_modules/fable_library/double.py +87 -0
  354. arctrl/py/fable_modules/fable_library/encoding.py +41 -0
  355. arctrl/py/fable_modules/fable_library/event.py +206 -0
  356. arctrl/py/fable_modules/fable_library/file.py +107 -0
  357. arctrl/py/fable_modules/fable_library/fsharp_collections.py +52 -0
  358. arctrl/py/fable_modules/fable_library/fsharp_core.py +123 -0
  359. arctrl/py/fable_modules/fable_library/global_.py +63 -0
  360. arctrl/py/fable_modules/fable_library/guid.py +41 -0
  361. arctrl/py/fable_modules/fable_library/int32.py +73 -0
  362. arctrl/py/fable_modules/fable_library/list.py +1788 -0
  363. arctrl/py/fable_modules/fable_library/long.py +240 -0
  364. arctrl/py/fable_modules/fable_library/mailbox_processor.py +179 -0
  365. arctrl/py/fable_modules/fable_library/map.py +1854 -0
  366. arctrl/py/fable_modules/fable_library/map_util.py +148 -0
  367. arctrl/py/fable_modules/fable_library/mutable_map.py +397 -0
  368. arctrl/py/fable_modules/fable_library/mutable_set.py +279 -0
  369. arctrl/py/fable_modules/fable_library/native.py +45 -0
  370. arctrl/py/fable_modules/fable_library/numeric.py +46 -0
  371. arctrl/py/fable_modules/fable_library/observable.py +222 -0
  372. arctrl/py/fable_modules/fable_library/option.py +128 -0
  373. arctrl/py/fable_modules/fable_library/path.py +62 -0
  374. arctrl/py/fable_modules/fable_library/range.py +117 -0
  375. arctrl/py/fable_modules/fable_library/reflection.py +463 -0
  376. arctrl/py/fable_modules/fable_library/reg_exp.py +137 -0
  377. arctrl/py/fable_modules/fable_library/resize_array.py +31 -0
  378. arctrl/py/fable_modules/fable_library/result.py +212 -0
  379. arctrl/py/fable_modules/fable_library/seq.py +1979 -0
  380. arctrl/py/fable_modules/fable_library/seq2.py +221 -0
  381. arctrl/py/fable_modules/fable_library/set.py +2414 -0
  382. arctrl/py/fable_modules/fable_library/singleton_local_time_zone.py +36 -0
  383. arctrl/py/fable_modules/fable_library/string_.py +573 -0
  384. arctrl/py/fable_modules/fable_library/system_collections_generic.py +462 -0
  385. arctrl/py/fable_modules/fable_library/system_text.py +237 -0
  386. arctrl/py/fable_modules/fable_library/task.py +116 -0
  387. arctrl/py/fable_modules/fable_library/task_builder.py +122 -0
  388. arctrl/py/fable_modules/fable_library/thread.py +5 -0
  389. arctrl/py/fable_modules/fable_library/time_span.py +283 -0
  390. arctrl/py/fable_modules/fable_library/timer.py +24 -0
  391. arctrl/py/fable_modules/fable_library/types.py +401 -0
  392. arctrl/py/fable_modules/fable_library/uri.py +109 -0
  393. arctrl/py/fable_modules/fable_library/util.py +2735 -0
  394. arctrl/py/fable_modules/fable_openpyxl/__init__.py +0 -0
  395. arctrl/py/fable_modules/fable_openpyxl/openpyxl.py +362 -0
  396. arctrl/py/fable_modules/fable_python/cognite-sdk/__init__.py +0 -0
  397. arctrl/py/fable_modules/fable_python/cognite-sdk/cognite_sdk.py +22 -0
  398. arctrl/py/fable_modules/fable_python/flask/__init__.py +0 -0
  399. arctrl/py/fable_modules/fable_python/flask/flask.py +34 -0
  400. arctrl/py/fable_modules/fable_python/jupyter/__init__.py +0 -0
  401. arctrl/py/fable_modules/fable_python/jupyter/ipy_widgets.py +47 -0
  402. arctrl/py/fable_modules/fable_python/jupyter/ipython.py +13 -0
  403. arctrl/py/fable_modules/fable_python/stdlib/__init__.py +0 -0
  404. arctrl/py/fable_modules/fable_python/stdlib/ast.py +1 -0
  405. arctrl/py/fable_modules/fable_python/stdlib/asyncio/__init__.py +0 -0
  406. arctrl/py/fable_modules/fable_python/stdlib/asyncio/events.py +17 -0
  407. arctrl/py/fable_modules/fable_python/stdlib/asyncio/futures.py +52 -0
  408. arctrl/py/fable_modules/fable_python/stdlib/asyncio/tasks.py +38 -0
  409. arctrl/py/fable_modules/fable_python/stdlib/base64_.py +1 -0
  410. arctrl/py/fable_modules/fable_python/stdlib/builtins_.py +38 -0
  411. arctrl/py/fable_modules/fable_python/stdlib/html.py +1 -0
  412. arctrl/py/fable_modules/fable_python/stdlib/json.py +1 -0
  413. arctrl/py/fable_modules/fable_python/stdlib/math_.py +1 -0
  414. arctrl/py/fable_modules/fable_python/stdlib/os_.py +1 -0
  415. arctrl/py/fable_modules/fable_python/stdlib/queue_.py +1 -0
  416. arctrl/py/fable_modules/fable_python/stdlib/string_.py +1 -0
  417. arctrl/py/fable_modules/fable_python/stdlib/sys_.py +30 -0
  418. arctrl/py/fable_modules/fable_python/stdlib/time_.py +1 -0
  419. arctrl/py/fable_modules/fable_python/stdlib/tk_inter.py +1 -0
  420. arctrl/py/fable_modules/fs_spreadsheet/Cells/__init__.py +0 -0
  421. arctrl/py/fable_modules/fs_spreadsheet/Cells/fs_cell.py +340 -0
  422. arctrl/py/fable_modules/fs_spreadsheet/Cells/fs_cells_collection.py +466 -0
  423. arctrl/py/fable_modules/fs_spreadsheet/DSL/__init__.py +0 -0
  424. arctrl/py/fable_modules/fs_spreadsheet/DSL/cell_builder.py +214 -0
  425. arctrl/py/fable_modules/fs_spreadsheet/DSL/column_builder.py +139 -0
  426. arctrl/py/fable_modules/fs_spreadsheet/DSL/dsl.py +50 -0
  427. arctrl/py/fable_modules/fs_spreadsheet/DSL/expression.py +65 -0
  428. arctrl/py/fable_modules/fs_spreadsheet/DSL/operators.py +9 -0
  429. arctrl/py/fable_modules/fs_spreadsheet/DSL/row_builder.py +139 -0
  430. arctrl/py/fable_modules/fs_spreadsheet/DSL/sheet_builder.py +118 -0
  431. arctrl/py/fable_modules/fs_spreadsheet/DSL/table_builder.py +122 -0
  432. arctrl/py/fable_modules/fs_spreadsheet/DSL/transform.py +463 -0
  433. arctrl/py/fable_modules/fs_spreadsheet/DSL/types.py +314 -0
  434. arctrl/py/fable_modules/fs_spreadsheet/DSL/workbook_builder.py +106 -0
  435. arctrl/py/fable_modules/fs_spreadsheet/Json/__init__.py +0 -0
  436. arctrl/py/fable_modules/fs_spreadsheet/Json/cell.py +103 -0
  437. arctrl/py/fable_modules/fs_spreadsheet/Json/column.py +70 -0
  438. arctrl/py/fable_modules/fs_spreadsheet/Json/row.py +70 -0
  439. arctrl/py/fable_modules/fs_spreadsheet/Json/table.py +54 -0
  440. arctrl/py/fable_modules/fs_spreadsheet/Json/value.py +93 -0
  441. arctrl/py/fable_modules/fs_spreadsheet/Json/workbook.py +71 -0
  442. arctrl/py/fable_modules/fs_spreadsheet/Json/worksheet.py +216 -0
  443. arctrl/py/fable_modules/fs_spreadsheet/Ranges/__init__.py +0 -0
  444. arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range.py +43 -0
  445. arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_address.py +190 -0
  446. arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_base.py +92 -0
  447. arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_column.py +77 -0
  448. arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_row.py +48 -0
  449. arctrl/py/fable_modules/fs_spreadsheet/Tables/__init__.py +0 -0
  450. arctrl/py/fable_modules/fs_spreadsheet/Tables/fs_table.py +461 -0
  451. arctrl/py/fable_modules/fs_spreadsheet/Tables/fs_table_field.py +117 -0
  452. arctrl/py/fable_modules/fs_spreadsheet/Tables/fs_table_row.py +23 -0
  453. arctrl/py/fable_modules/fs_spreadsheet/__init__.py +0 -0
  454. arctrl/py/fable_modules/fs_spreadsheet/fs_address.py +236 -0
  455. arctrl/py/fable_modules/fs_spreadsheet/fs_column.py +172 -0
  456. arctrl/py/fable_modules/fs_spreadsheet/fs_row.py +183 -0
  457. arctrl/py/fable_modules/fs_spreadsheet/fs_workbook.py +192 -0
  458. arctrl/py/fable_modules/fs_spreadsheet/fs_worksheet.py +610 -0
  459. arctrl/py/fable_modules/fs_spreadsheet/hash_codes.py +60 -0
  460. arctrl/py/fable_modules/fs_spreadsheet/sheet_builder.py +329 -0
  461. arctrl/py/fable_modules/fs_spreadsheet_py/__init__.py +0 -0
  462. arctrl/py/fable_modules/fs_spreadsheet_py/cell.py +60 -0
  463. arctrl/py/fable_modules/fs_spreadsheet_py/cell_type.py +50 -0
  464. arctrl/py/fable_modules/fs_spreadsheet_py/fs_extension.py +60 -0
  465. arctrl/py/fable_modules/fs_spreadsheet_py/json.py +47 -0
  466. arctrl/py/fable_modules/fs_spreadsheet_py/table.py +54 -0
  467. arctrl/py/fable_modules/fs_spreadsheet_py/workbook.py +41 -0
  468. arctrl/py/fable_modules/fs_spreadsheet_py/worksheet.py +52 -0
  469. arctrl/py/fable_modules/fs_spreadsheet_py/xlsx.py +37 -0
  470. arctrl/py/fable_modules/siren/__init__.py +0 -0
  471. arctrl/py/fable_modules/siren/config.py +1038 -0
  472. arctrl/py/fable_modules/siren/formatting.py +1121 -0
  473. arctrl/py/fable_modules/siren/siren.py +1941 -0
  474. arctrl/py/fable_modules/siren/siren_types.py +1229 -0
  475. arctrl/py/fable_modules/siren/theme_variables.py +517 -0
  476. arctrl/py/fable_modules/siren/util.py +37 -0
  477. arctrl/py/fable_modules/siren/yaml.py +101 -0
  478. arctrl/py/fable_modules/thoth_json_core/__init__.py +0 -0
  479. arctrl/py/fable_modules/thoth_json_core/decode.py +1614 -0
  480. arctrl/py/fable_modules/thoth_json_core/encode.py +305 -0
  481. arctrl/py/fable_modules/thoth_json_core/types.py +181 -0
  482. arctrl/py/fable_modules/thoth_json_python/__init__.py +0 -0
  483. arctrl/py/fable_modules/thoth_json_python/decode.py +112 -0
  484. arctrl/py/fable_modules/thoth_json_python/encode.py +72 -0
  485. arctrl/py/fable_modules/thoth_json_python/python.py +1 -0
  486. arctrl/py/fable_modules/yamlicious/Interop/__init__.py +0 -0
  487. arctrl/py/fable_modules/yamlicious/Interop/js_interop.py +1 -0
  488. arctrl/py/fable_modules/yamlicious/Interop/py_interop.py +7 -0
  489. arctrl/py/fable_modules/yamlicious/__init__.py +0 -0
  490. arctrl/py/fable_modules/yamlicious/decode.py +1784 -0
  491. arctrl/py/fable_modules/yamlicious/encode.py +84 -0
  492. arctrl/py/fable_modules/yamlicious/flow_to_block.py +994 -0
  493. arctrl/py/fable_modules/yamlicious/library.py +10 -0
  494. arctrl/py/fable_modules/yamlicious/persil.py +57 -0
  495. arctrl/py/fable_modules/yamlicious/preprocessing.py +99 -0
  496. arctrl/py/fable_modules/yamlicious/reader.py +739 -0
  497. arctrl/py/fable_modules/yamlicious/regex.py +29 -0
  498. arctrl/py/fable_modules/yamlicious/regex_active_patterns.py +265 -0
  499. arctrl/py/fable_modules/yamlicious/writer.py +175 -0
  500. arctrl/py/fable_modules/yamlicious/yamlicious_types.py +128 -0
  501. arctrl/py/json.py +389 -0
  502. arctrl/py/license.py +169 -0
  503. arctrl/py/rocrate_io.py +242 -0
  504. arctrl/py/template_web.py +23 -0
  505. arctrl/py/xlsx.py +212 -0
  506. arctrl/py/yaml.py +79 -0
  507. arctrl/rocrate.py +21 -0
  508. arctrl-3.0.0.dist-info/METADATA +157 -0
  509. arctrl-3.0.0.dist-info/RECORD +511 -0
  510. arctrl-3.0.0.dist-info/WHEEL +4 -0
  511. arctrl-3.0.0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,466 @@
1
+ from __future__ import annotations
2
+ from collections.abc import Callable
3
+ from typing import Any
4
+ from ...fable_library.map_util import (get_item_from_dict, add_to_dict, remove_from_dict, add_to_set)
5
+ from ...fable_library.option import (some, value as value_6)
6
+ from ...fable_library.range import range_big_int
7
+ from ...fable_library.reflection import (TypeInfo, class_type)
8
+ from ...fable_library.seq import (map, iterate, is_empty, max, collect, delay, empty, singleton, min, min_by)
9
+ from ...fable_library.util import (IEnumerable_1, ignore, compare_primitives)
10
+ from ..fs_address import FsAddress
11
+ from .fs_cell import FsCell
12
+
13
+ def Dictionary_tryGet(k: Any, dict_1: Any) -> Any | None:
14
+ if k in dict_1:
15
+ return some(get_item_from_dict(dict_1, k))
16
+
17
+ else:
18
+ return None
19
+
20
+
21
+
22
+ def _expr390() -> TypeInfo:
23
+ return class_type("FsSpreadsheet.FsCellsCollection", None, FsCellsCollection)
24
+
25
+
26
+ class FsCellsCollection:
27
+ def __init__(self, __unit: None=None) -> None:
28
+ self._columnsUsed: Any = dict([])
29
+ self._deleted: Any = dict([])
30
+ self._rowsCollection: Any = dict([])
31
+ self._maxColumnUsed: int = 0
32
+ self._maxRowUsed: int = 0
33
+ self._rowsUsed: Any = dict([])
34
+ self._count: int = 0
35
+
36
+ @property
37
+ def Count(self, __unit: None=None) -> int:
38
+ this: FsCellsCollection = self
39
+ return this._count
40
+
41
+ @Count.setter
42
+ def Count(self, count: int) -> None:
43
+ this: FsCellsCollection = self
44
+ this._count = count or 0
45
+
46
+ @property
47
+ def MaxRowNumber(self, __unit: None=None) -> int:
48
+ this: FsCellsCollection = self
49
+ return this._maxRowUsed
50
+
51
+ @property
52
+ def MaxColumnNumber(self, __unit: None=None) -> int:
53
+ this: FsCellsCollection = self
54
+ return this._maxColumnUsed
55
+
56
+ def Copy(self, __unit: None=None) -> FsCellsCollection:
57
+ this: FsCellsCollection = self
58
+ def mapping(c: FsCell) -> FsCell:
59
+ return c.Copy()
60
+
61
+ cells: IEnumerable_1[FsCell] = map(mapping, this.GetCells())
62
+ return FsCellsCollection.create_from_cells(cells)
63
+
64
+ @staticmethod
65
+ def copy(cells_collection: FsCellsCollection) -> FsCellsCollection:
66
+ return cells_collection.Copy()
67
+
68
+ @staticmethod
69
+ def IncrementUsage(dictionary: Any, key: int) -> None:
70
+ match_value: int | None = Dictionary_tryGet(key, dictionary)
71
+ if match_value is None:
72
+ add_to_dict(dictionary, key, 1)
73
+
74
+ else:
75
+ count: int = match_value or 0
76
+ dictionary[key] = count + 1
77
+
78
+
79
+ @staticmethod
80
+ def DecrementUsage(dictionary: Any, key: int) -> bool:
81
+ match_value: int | None = Dictionary_tryGet(key, dictionary)
82
+ if match_value is None:
83
+ return False
84
+
85
+ elif match_value > 1:
86
+ count_1: int = match_value or 0
87
+ dictionary[key] = count_1 - 1
88
+ return False
89
+
90
+ else:
91
+ ignore(remove_from_dict(dictionary, key))
92
+ return True
93
+
94
+
95
+ @staticmethod
96
+ def create_from_cells(cells: IEnumerable_1[FsCell]) -> FsCellsCollection:
97
+ fcc: FsCellsCollection = FsCellsCollection()
98
+ fcc.AddMany(cells)
99
+ return fcc
100
+
101
+ def Clear(self, __unit: None=None) -> FsCellsCollection:
102
+ this: FsCellsCollection = self
103
+ this._count = 0
104
+ this._rowsUsed.clear()
105
+ this._columnsUsed.clear()
106
+ this._rowsCollection.clear()
107
+ this._maxRowUsed = 0
108
+ this._maxColumnUsed = 0
109
+ return this
110
+
111
+ def Add(self, cell: FsCell, row: int | None=None, column: int | None=None) -> None:
112
+ this: FsCellsCollection = self
113
+ if row is not None:
114
+ cell.RowNumber = value_6(row) or 0
115
+
116
+ if column is not None:
117
+ cell.ColumnNumber = value_6(column) or 0
118
+
119
+ row_1: int = cell.RowNumber or 0
120
+ column_1: int = cell.ColumnNumber or 0
121
+ this._count = (this._count + 1) or 0
122
+ FsCellsCollection.IncrementUsage(this._rowsUsed, row_1)
123
+ FsCellsCollection.IncrementUsage(this._columnsUsed, column_1)
124
+ def _arrow374(__unit: None=None) -> Any:
125
+ match_value: Any | None = Dictionary_tryGet(row_1, this._rowsCollection)
126
+ if match_value is None:
127
+ columns_collection_1: Any = dict([])
128
+ add_to_dict(this._rowsCollection, row_1, columns_collection_1)
129
+ return columns_collection_1
130
+
131
+ else:
132
+ return match_value
133
+
134
+
135
+ add_to_dict(_arrow374(), column_1, cell)
136
+ if row_1 > this._maxRowUsed:
137
+ this._maxRowUsed = row_1 or 0
138
+
139
+ if column_1 > this._maxColumnUsed:
140
+ this._maxColumnUsed = column_1 or 0
141
+
142
+ match_value_1: Any | None = Dictionary_tryGet(row_1, this._deleted)
143
+ if match_value_1 is None:
144
+ pass
145
+
146
+ else:
147
+ del_hash: Any = match_value_1
148
+ ignore(del_hash.delete(column_1))
149
+
150
+
151
+ @staticmethod
152
+ def add_cell_with_indeces(row_index: int, col_index: int, cell: FsCell, cells_collection: FsCellsCollection) -> None:
153
+ cells_collection.Add(cell, row_index, col_index)
154
+
155
+ @staticmethod
156
+ def add_cell(cell: FsCell, cells_collection: FsCellsCollection) -> FsCellsCollection:
157
+ cells_collection.Add(cell)
158
+ return cells_collection
159
+
160
+ def AddMany(self, cells: IEnumerable_1[FsCell]) -> None:
161
+ this: FsCellsCollection = self
162
+ def action(arg: FsCell) -> None:
163
+ value: None = this.Add(arg)
164
+ ignore(None)
165
+
166
+ iterate(action, cells)
167
+
168
+ @staticmethod
169
+ def add_cells(cells: IEnumerable_1[FsCell], cells_collection: FsCellsCollection) -> FsCellsCollection:
170
+ cells_collection.AddMany(cells)
171
+ return cells_collection
172
+
173
+ def ContainsCellAt(self, row_index: int, col_index: int) -> bool:
174
+ this: FsCellsCollection = self
175
+ match_value: Any | None = Dictionary_tryGet(row_index, this._rowsCollection)
176
+ if match_value is None:
177
+ return False
178
+
179
+ else:
180
+ cols_collection: Any = match_value
181
+ return cols_collection.has(col_index)
182
+
183
+
184
+ @staticmethod
185
+ def contains_cell_at(row_index: int, col_index: int, cells_collection: FsCellsCollection) -> bool:
186
+ return cells_collection.ContainsCellAt(row_index, col_index)
187
+
188
+ def RemoveCellAt(self, row: int, column: int) -> None:
189
+ this: FsCellsCollection = self
190
+ this._count = (this._count - 1) or 0
191
+ row_removed: bool = FsCellsCollection.DecrementUsage(this._rowsUsed, row)
192
+ column_removed: bool = FsCellsCollection.DecrementUsage(this._columnsUsed, column)
193
+ if (row == this._maxRowUsed) if row_removed else False:
194
+ class ObjectExpr376:
195
+ @property
196
+ def Compare(self) -> Callable[[int, int], int]:
197
+ return compare_primitives
198
+
199
+ this._maxRowUsed = (max(this._rowsUsed.keys(), ObjectExpr376()) if (not is_empty(this._rowsUsed.keys())) else 0) or 0
200
+
201
+ if (column == this._maxColumnUsed) if column_removed else False:
202
+ class ObjectExpr377:
203
+ @property
204
+ def Compare(self) -> Callable[[int, int], int]:
205
+ return compare_primitives
206
+
207
+ this._maxColumnUsed = (max(this._columnsUsed.keys(), ObjectExpr377()) if (not is_empty(this._columnsUsed.keys())) else 0) or 0
208
+
209
+ match_value: Any | None = Dictionary_tryGet(row, this._deleted)
210
+ if match_value is None:
211
+ del_hash_3: Any = set([])
212
+ ignore(add_to_set(column, del_hash_3))
213
+ add_to_dict(this._deleted, row, del_hash_3)
214
+
215
+ else:
216
+ def _arrow378(__unit: None=None) -> bool:
217
+ del_hash: Any = match_value
218
+ return del_hash.has(column)
219
+
220
+ if _arrow378():
221
+ del_hash_1: Any = match_value
222
+
223
+ else:
224
+ del_hash_2: Any = match_value
225
+ ignore(add_to_set(column, del_hash_2))
226
+
227
+
228
+ match_value_1: Any | None = Dictionary_tryGet(row, this._rowsCollection)
229
+ if match_value_1 is None:
230
+ pass
231
+
232
+ else:
233
+ columns_collection: Any = match_value_1
234
+ ignore(remove_from_dict(columns_collection, column))
235
+ if len(columns_collection) == 0:
236
+ ignore(remove_from_dict(this._rowsCollection, row))
237
+
238
+
239
+
240
+ @staticmethod
241
+ def remove_cell_at(row_index: int, col_index: int, cells_collection: FsCellsCollection) -> FsCellsCollection:
242
+ cells_collection.RemoveCellAt(row_index, col_index)
243
+ return cells_collection
244
+
245
+ def TryRemoveValueAt(self, row_index: int, col_index: int) -> None:
246
+ this: FsCellsCollection = self
247
+ match_value: Any | None = Dictionary_tryGet(row_index, this._rowsCollection)
248
+ if match_value is None:
249
+ pass
250
+
251
+ else:
252
+ cols_collection: Any = match_value
253
+ try:
254
+ get_item_from_dict(cols_collection, col_index).Value = ""
255
+
256
+ except Exception as match_value_1:
257
+ pass
258
+
259
+
260
+
261
+ @staticmethod
262
+ def try_remove_value_at(row_index: int, col_index: int, cells_collection: FsCellsCollection) -> FsCellsCollection:
263
+ cells_collection.TryRemoveValueAt(row_index, col_index)
264
+ return cells_collection
265
+
266
+ def RemoveValueAt(self, row_index: int, col_index: int) -> None:
267
+ this: FsCellsCollection = self
268
+ get_item_from_dict(get_item_from_dict(this._rowsCollection, row_index), col_index).Value = ""
269
+
270
+ @staticmethod
271
+ def remove_value_at(row_index: int, col_index: int, cells_collection: FsCellsCollection) -> FsCellsCollection:
272
+ cells_collection.RemoveValueAt(row_index, col_index)
273
+ return cells_collection
274
+
275
+ def GetCells(self, __unit: None=None) -> IEnumerable_1[FsCell]:
276
+ this: FsCellsCollection = self
277
+ def mapping(columns_collection: Any) -> Any:
278
+ return columns_collection.values()
279
+
280
+ return collect(mapping, this._rowsCollection.values())
281
+
282
+ @staticmethod
283
+ def get_cells(cells_collection: FsCellsCollection) -> IEnumerable_1[FsCell]:
284
+ return cells_collection.GetCells()
285
+
286
+ def GetCellsInRangeBy(self, row_start: int, column_start: int, row_end: int, column_end: int, predicate: Callable[[FsCell], bool]) -> IEnumerable_1[FsCell]:
287
+ this: FsCellsCollection = self
288
+ final_row: int = (this._maxRowUsed if (row_end > this._maxRowUsed) else row_end) or 0
289
+ final_column: int = (this._maxColumnUsed if (column_end > this._maxColumnUsed) else column_end) or 0
290
+ def _arrow381(__unit: None=None) -> IEnumerable_1[FsCell]:
291
+ def _arrow380(ro: int) -> IEnumerable_1[FsCell]:
292
+ match_value: Any | None = Dictionary_tryGet(ro, this._rowsCollection)
293
+ if match_value is None:
294
+ return empty()
295
+
296
+ else:
297
+ columns_collection: Any = match_value
298
+ def _arrow379(co: int) -> IEnumerable_1[FsCell]:
299
+ match_value_1: FsCell | None = Dictionary_tryGet(co, columns_collection)
300
+ (pattern_matching_result, cell_1) = (None, None)
301
+ if match_value_1 is not None:
302
+ if predicate(match_value_1):
303
+ pattern_matching_result = 0
304
+ cell_1 = match_value_1
305
+
306
+ else:
307
+ pattern_matching_result = 1
308
+
309
+
310
+ else:
311
+ pattern_matching_result = 1
312
+
313
+ if pattern_matching_result == 0:
314
+ return singleton(cell_1)
315
+
316
+ elif pattern_matching_result == 1:
317
+ return empty()
318
+
319
+
320
+ return collect(_arrow379, range_big_int(column_start, 1, final_column))
321
+
322
+
323
+ return collect(_arrow380, range_big_int(row_start, 1, final_row))
324
+
325
+ return delay(_arrow381)
326
+
327
+ @staticmethod
328
+ def filter_cells_from_to(row_start: int, column_start: int, row_end: int, column_end: int, predicate: Callable[[FsCell], bool], cells_collection: FsCellsCollection) -> IEnumerable_1[FsCell]:
329
+ return cells_collection.GetCellsInRangeBy(row_start, column_start, row_end, column_end, predicate)
330
+
331
+ def GetCellsInStringRangeBy(self, start_address: FsAddress, last_address: FsAddress, predicate: Callable[[FsCell], bool]) -> IEnumerable_1[FsCell]:
332
+ this: FsCellsCollection = self
333
+ return this.GetCellsInRangeBy(start_address.RowNumber, start_address.ColumnNumber, last_address.RowNumber, last_address.ColumnNumber, predicate)
334
+
335
+ @staticmethod
336
+ def filter_cells_from_to_address(start_address: FsAddress, last_address: FsAddress, predicate: Callable[[FsCell], bool], cells_collection: FsCellsCollection) -> IEnumerable_1[FsCell]:
337
+ return cells_collection.GetCellsInStringRangeBy(start_address, last_address, predicate)
338
+
339
+ def GetCellsInRange(self, row_start: int, column_start: int, row_end: int, column_end: int) -> IEnumerable_1[FsCell]:
340
+ this: FsCellsCollection = self
341
+ final_row: int = (this._maxRowUsed if (row_end > this._maxRowUsed) else row_end) or 0
342
+ final_column: int = (this._maxColumnUsed if (column_end > this._maxColumnUsed) else column_end) or 0
343
+ def _arrow384(__unit: None=None) -> IEnumerable_1[FsCell]:
344
+ def _arrow383(ro: int) -> IEnumerable_1[FsCell]:
345
+ match_value: Any | None = Dictionary_tryGet(ro, this._rowsCollection)
346
+ if match_value is None:
347
+ return empty()
348
+
349
+ else:
350
+ columns_collection: Any = match_value
351
+ def _arrow382(co: int) -> IEnumerable_1[FsCell]:
352
+ match_value_1: FsCell | None = Dictionary_tryGet(co, columns_collection)
353
+ if match_value_1 is not None:
354
+ return singleton(match_value_1)
355
+
356
+ else:
357
+ return empty()
358
+
359
+
360
+ return collect(_arrow382, range_big_int(column_start, 1, final_column))
361
+
362
+
363
+ return collect(_arrow383, range_big_int(row_start, 1, final_row))
364
+
365
+ return delay(_arrow384)
366
+
367
+ @staticmethod
368
+ def get_cells_from_to(row_start: int, column_start: int, row_end: int, column_end: int, cells_collection: FsCellsCollection) -> IEnumerable_1[FsCell]:
369
+ return cells_collection.GetCellsInRange(row_start, column_start, row_end, column_end)
370
+
371
+ def GetCellsInStringRange(self, start_address: FsAddress, last_address: FsAddress) -> IEnumerable_1[FsCell]:
372
+ this: FsCellsCollection = self
373
+ return this.GetCellsInRange(start_address.RowNumber, start_address.ColumnNumber, last_address.RowNumber, last_address.ColumnNumber)
374
+
375
+ @staticmethod
376
+ def get_cells_from_to_address(start_address: FsAddress, last_address: FsAddress, cells_collection: FsCellsCollection) -> IEnumerable_1[FsCell]:
377
+ return cells_collection.GetCellsInStringRange(start_address, last_address)
378
+
379
+ def TryGetCell(self, row: int, column: int) -> FsCell | None:
380
+ this: FsCellsCollection = self
381
+ if True if (row > this._maxRowUsed) else (column > this._maxColumnUsed):
382
+ return None
383
+
384
+ else:
385
+ match_value: Any | None = Dictionary_tryGet(row, this._rowsCollection)
386
+ if match_value is None:
387
+ return None
388
+
389
+ else:
390
+ match_value_1: FsCell | None = Dictionary_tryGet(column, match_value)
391
+ return None if (match_value_1 is None) else match_value_1
392
+
393
+
394
+
395
+ @staticmethod
396
+ def try_get_cell(row_index: int, col_index: int, cells_collection: FsCellsCollection) -> FsCell | None:
397
+ return cells_collection.TryGetCell(row_index, col_index)
398
+
399
+ def GetCellsInColumn(self, col_index: int) -> IEnumerable_1[FsCell]:
400
+ this: FsCellsCollection = self
401
+ return this.GetCellsInRange(1, col_index, this._maxRowUsed, col_index)
402
+
403
+ @staticmethod
404
+ def get_cells_in_column(col_index: int, cells_collection: FsCellsCollection) -> IEnumerable_1[FsCell]:
405
+ return cells_collection.GetCellsInColumn(col_index)
406
+
407
+ def GetCellsInRow(self, row_index: int) -> IEnumerable_1[FsCell]:
408
+ this: FsCellsCollection = self
409
+ return this.GetCellsInRange(row_index, 1, row_index, this._maxColumnUsed)
410
+
411
+ @staticmethod
412
+ def get_cells_in_row(row_index: int, cells_collection: FsCellsCollection) -> IEnumerable_1[FsCell]:
413
+ return cells_collection.GetCellsInRow(row_index)
414
+
415
+ def GetFirstAddress(self, __unit: None=None) -> FsAddress:
416
+ this: FsCellsCollection = self
417
+ class ObjectExpr385:
418
+ @property
419
+ def Compare(self) -> Callable[[int, int], int]:
420
+ return compare_primitives
421
+
422
+ def _arrow389(__unit: None=None) -> int:
423
+ def projection(d: Any) -> int:
424
+ class ObjectExpr386:
425
+ @property
426
+ def Compare(self) -> Callable[[int, int], int]:
427
+ return compare_primitives
428
+
429
+ return min(d.keys(), ObjectExpr386())
430
+
431
+ class ObjectExpr387:
432
+ @property
433
+ def Compare(self) -> Callable[[int, int], int]:
434
+ return compare_primitives
435
+
436
+ d_1: Any = min_by(projection, this._rowsCollection.values(), ObjectExpr387())
437
+ class ObjectExpr388:
438
+ @property
439
+ def Compare(self) -> Callable[[int, int], int]:
440
+ return compare_primitives
441
+
442
+ return min(d_1.keys(), ObjectExpr388())
443
+
444
+ return FsAddress(0, 0) if (True if is_empty(this._rowsCollection) else is_empty(this._rowsCollection.keys())) else FsAddress(min(this._rowsCollection.keys(), ObjectExpr385()), _arrow389())
445
+
446
+ @staticmethod
447
+ def get_first_address(cells: FsCellsCollection) -> FsAddress:
448
+ return cells.GetFirstAddress()
449
+
450
+ def GetLastAddress(self, __unit: None=None) -> FsAddress:
451
+ this: FsCellsCollection = self
452
+ return FsAddress(this.MaxRowNumber, this.MaxColumnNumber)
453
+
454
+ @staticmethod
455
+ def get_last_address(cells: FsCellsCollection) -> FsAddress:
456
+ return cells.GetLastAddress()
457
+
458
+
459
+ FsCellsCollection_reflection = _expr390
460
+
461
+ def FsCellsCollection__ctor(__unit: None=None) -> FsCellsCollection:
462
+ return FsCellsCollection(__unit)
463
+
464
+
465
+ __all__ = ["Dictionary_tryGet", "FsCellsCollection_reflection"]
466
+
File without changes
@@ -0,0 +1,214 @@
1
+ from __future__ import annotations
2
+ from collections.abc import Callable
3
+ from typing import Any
4
+ from ...fable_library.list import (reduce, map, FSharpList, empty, append, is_empty, tail, head)
5
+ from ...fable_library.reflection import (TypeInfo, char_type, union_type, class_type)
6
+ from ...fable_library.string_ import (to_text, printf)
7
+ from ...fable_library.types import (Array, Union, to_string)
8
+ from ..Cells.fs_cell import DataType
9
+ from .expression import (RequiredSource_1__ctor_2B595, RequiredSource_1, OptionalSource_1__ctor_2B595, OptionalSource_1, RequiredSource_1__get_Source, OptionalSource_1__get_Source)
10
+ from .types import (SheetEntity_1, Message__MapText_11D407F6, Message, SheetEntity_1__get_Messages)
11
+
12
+ def _expr484() -> TypeInfo:
13
+ return union_type("FsSpreadsheet.DSL.ReduceOperation", [], ReduceOperation, lambda: [[("Item", char_type)]])
14
+
15
+
16
+ class ReduceOperation(Union):
17
+ def __init__(self, tag: int, *fields: Any) -> None:
18
+ super().__init__()
19
+ self.tag: int = tag or 0
20
+ self.fields: Array[Any] = list(fields)
21
+
22
+ @staticmethod
23
+ def cases() -> list[str]:
24
+ return ["Concat"]
25
+
26
+
27
+ ReduceOperation_reflection = _expr484
28
+
29
+ def ReduceOperation__Reduce_70D1A69E(this: ReduceOperation, values: FSharpList[tuple[DataType, Any]]) -> tuple[DataType, Any]:
30
+ def reduction(a: str, b: str, this: Any=this, values: Any=values) -> str:
31
+ return ((((("" + a) + "") + str(this.fields[0])) + "") + b) + ""
32
+
33
+ def mapping(arg: tuple[DataType, Any], this: Any=this, values: Any=values) -> str:
34
+ return to_string(arg[1])
35
+
36
+ return (DataType(0), reduce(reduction, map(mapping, values)))
37
+
38
+
39
+ def _expr485() -> TypeInfo:
40
+ return class_type("FsSpreadsheet.DSL.CellBuilder", None, CellBuilder)
41
+
42
+
43
+ class CellBuilder:
44
+ def __init__(self, __unit: None=None) -> None:
45
+ self.reducer: ReduceOperation = ReduceOperation(0, ",")
46
+
47
+
48
+ CellBuilder_reflection = _expr485
49
+
50
+ def CellBuilder__ctor(__unit: None=None) -> CellBuilder:
51
+ return CellBuilder(__unit)
52
+
53
+
54
+ def CellBuilder_get_Empty(__unit: None=None) -> SheetEntity_1[FSharpList[tuple[DataType, Any]]]:
55
+ return SheetEntity_1(1, empty())
56
+
57
+
58
+ def CellBuilder__SignMessages_3F89FFFC(this: CellBuilder, messages: FSharpList[Message]) -> FSharpList[Message]:
59
+ def mapping(m: Message, this: Any=this, messages: Any=messages) -> Message:
60
+ def _arrow486(__unit: None=None, m: Any=m) -> Callable[[str], str]:
61
+ clo: Callable[[str], str] = to_text(printf("In Cell: %s"))
62
+ return clo
63
+
64
+ return Message__MapText_11D407F6(m, _arrow486())
65
+
66
+ return map(mapping, messages)
67
+
68
+
69
+ def CellBuilder__Yield_36B9E420(this: CellBuilder, ro: ReduceOperation) -> SheetEntity_1[FSharpList[tuple[DataType, Any]]]:
70
+ this.reducer = ro
71
+ return SheetEntity_1(1, empty())
72
+
73
+
74
+ def CellBuilder__Combine_F07E260(this: CellBuilder, wx1: SheetEntity_1[FSharpList[tuple[DataType, Any]]], wx2: SheetEntity_1[FSharpList[tuple[DataType, Any]]]) -> SheetEntity_1[FSharpList[tuple[DataType, Any]]]:
75
+ (pattern_matching_result, l1, l2, messages1, messages2, messages2_1, messages1_1, f1, messages1_2, messages2_2, f2, messages1_3, messages2_3, messages1_4, messages2_4) = (None, None, None, None, None, None, None, None, None, None, None, None, None, None, None)
76
+ if wx1.tag == 2:
77
+ if wx2.tag == 2:
78
+ pattern_matching_result = 1
79
+ messages2_1 = wx2.fields[0]
80
+
81
+ else:
82
+ pattern_matching_result = 2
83
+ messages1_1 = wx1.fields[0]
84
+
85
+
86
+ elif wx1.tag == 1:
87
+ if wx2.tag == 0:
88
+ pattern_matching_result = 4
89
+ f2 = wx2.fields[0]
90
+ messages1_3 = wx1.fields[0]
91
+ messages2_3 = wx2.fields[1]
92
+
93
+ elif wx2.tag == 1:
94
+ pattern_matching_result = 5
95
+ messages1_4 = wx1.fields[0]
96
+ messages2_4 = wx2.fields[0]
97
+
98
+ else:
99
+ pattern_matching_result = 1
100
+ messages2_1 = wx2.fields[0]
101
+
102
+
103
+ elif wx2.tag == 2:
104
+ pattern_matching_result = 1
105
+ messages2_1 = wx2.fields[0]
106
+
107
+ elif wx2.tag == 1:
108
+ pattern_matching_result = 3
109
+ f1 = wx1.fields[0]
110
+ messages1_2 = wx1.fields[1]
111
+ messages2_2 = wx2.fields[0]
112
+
113
+ else:
114
+ pattern_matching_result = 0
115
+ l1 = wx1.fields[0]
116
+ l2 = wx2.fields[0]
117
+ messages1 = wx1.fields[1]
118
+ messages2 = wx2.fields[1]
119
+
120
+ if pattern_matching_result == 0:
121
+ return SheetEntity_1(0, append(l1, l2), append(messages1, messages2))
122
+
123
+ elif pattern_matching_result == 1:
124
+ return SheetEntity_1(2, append(SheetEntity_1__get_Messages(wx1), messages2_1))
125
+
126
+ elif pattern_matching_result == 2:
127
+ return SheetEntity_1(2, append(messages1_1, SheetEntity_1__get_Messages(wx2)))
128
+
129
+ elif pattern_matching_result == 3:
130
+ return SheetEntity_1(0, f1, append(messages1_2, messages2_2))
131
+
132
+ elif pattern_matching_result == 4:
133
+ return SheetEntity_1(0, f2, append(messages1_3, messages2_3))
134
+
135
+ elif pattern_matching_result == 5:
136
+ return SheetEntity_1(1, append(messages1_4, messages2_4))
137
+
138
+
139
+
140
+ def CellBuilder__Combine_4BCE267E(this: CellBuilder, wx1: RequiredSource_1[None], wx2: SheetEntity_1[FSharpList[tuple[DataType, Any]]]) -> RequiredSource_1[SheetEntity_1[FSharpList[tuple[DataType, Any]]]]:
141
+ return RequiredSource_1__ctor_2B595(wx2)
142
+
143
+
144
+ def CellBuilder__Combine_Z2CF9C142(this: CellBuilder, wx1: SheetEntity_1[FSharpList[tuple[DataType, Any]]], wx2: RequiredSource_1[None]) -> RequiredSource_1[SheetEntity_1[FSharpList[tuple[DataType, Any]]]]:
145
+ return RequiredSource_1__ctor_2B595(wx1)
146
+
147
+
148
+ def CellBuilder__Combine_583F6A19(this: CellBuilder, wx1: OptionalSource_1[None], wx2: SheetEntity_1[FSharpList[tuple[DataType, Any]]]) -> OptionalSource_1[SheetEntity_1[FSharpList[tuple[DataType, Any]]]]:
149
+ return OptionalSource_1__ctor_2B595(wx2)
150
+
151
+
152
+ def CellBuilder__Combine_168D7AF9(this: CellBuilder, wx1: SheetEntity_1[FSharpList[tuple[DataType, Any]]], wx2: OptionalSource_1[None]) -> OptionalSource_1[SheetEntity_1[FSharpList[tuple[DataType, Any]]]]:
153
+ return OptionalSource_1__ctor_2B595(wx1)
154
+
155
+
156
+ def CellBuilder__Combine_32507AAF(this: CellBuilder, wx1: RequiredSource_1[SheetEntity_1[FSharpList[tuple[DataType, Any]]]], wx2: SheetEntity_1[FSharpList[tuple[DataType, Any]]]) -> RequiredSource_1[SheetEntity_1[FSharpList[tuple[DataType, Any]]]]:
157
+ return RequiredSource_1__ctor_2B595(CellBuilder__Combine_F07E260(this, RequiredSource_1__get_Source(wx1), wx2))
158
+
159
+
160
+ def CellBuilder__Combine_Z3ABF6771(this: CellBuilder, wx1: SheetEntity_1[FSharpList[tuple[DataType, Any]]], wx2: RequiredSource_1[SheetEntity_1[FSharpList[tuple[DataType, Any]]]]) -> RequiredSource_1[SheetEntity_1[FSharpList[tuple[DataType, Any]]]]:
161
+ return RequiredSource_1__ctor_2B595(CellBuilder__Combine_F07E260(this, wx1, RequiredSource_1__get_Source(wx2)))
162
+
163
+
164
+ def CellBuilder__Combine_Z2BFC83F8(this: CellBuilder, wx1: OptionalSource_1[SheetEntity_1[FSharpList[tuple[DataType, Any]]]], wx2: SheetEntity_1[FSharpList[tuple[DataType, Any]]]) -> OptionalSource_1[SheetEntity_1[FSharpList[tuple[DataType, Any]]]]:
165
+ return OptionalSource_1__ctor_2B595(CellBuilder__Combine_F07E260(this, OptionalSource_1__get_Source(wx1), wx2))
166
+
167
+
168
+ def CellBuilder__Combine_245D6C8(this: CellBuilder, wx1: SheetEntity_1[FSharpList[tuple[DataType, Any]]], wx2: OptionalSource_1[SheetEntity_1[FSharpList[tuple[DataType, Any]]]]) -> OptionalSource_1[SheetEntity_1[FSharpList[tuple[DataType, Any]]]]:
169
+ return OptionalSource_1__ctor_2B595(CellBuilder__Combine_F07E260(this, wx1, OptionalSource_1__get_Source(wx2)))
170
+
171
+
172
+ def CellBuilder__AsCellElement_6F87C2ED(this: CellBuilder, children: SheetEntity_1[FSharpList[tuple[DataType, Any]]]) -> SheetEntity_1[tuple[tuple[DataType, Any], int | None]]:
173
+ (pattern_matching_result, messages, v, messages_1, vals, messages_2, messages_3) = (None, None, None, None, None, None, None)
174
+ if children.tag == 2:
175
+ pattern_matching_result = 2
176
+ messages_2 = children.fields[0]
177
+
178
+ elif children.tag == 1:
179
+ pattern_matching_result = 3
180
+ messages_3 = children.fields[0]
181
+
182
+ elif not is_empty(children.fields[0]):
183
+ if is_empty(tail(children.fields[0])):
184
+ pattern_matching_result = 0
185
+ messages = children.fields[1]
186
+ v = head(children.fields[0])
187
+
188
+ else:
189
+ pattern_matching_result = 1
190
+ messages_1 = children.fields[1]
191
+ vals = children.fields[0]
192
+
193
+
194
+ else:
195
+ pattern_matching_result = 1
196
+ messages_1 = children.fields[1]
197
+ vals = children.fields[0]
198
+
199
+ if pattern_matching_result == 0:
200
+ return SheetEntity_1(0, (v, None), messages)
201
+
202
+ elif pattern_matching_result == 1:
203
+ return SheetEntity_1(0, (ReduceOperation__Reduce_70D1A69E(this.reducer, vals), None), messages_1)
204
+
205
+ elif pattern_matching_result == 2:
206
+ return SheetEntity_1(2, messages_2)
207
+
208
+ elif pattern_matching_result == 3:
209
+ return SheetEntity_1(1, messages_3)
210
+
211
+
212
+
213
+ __all__ = ["ReduceOperation_reflection", "ReduceOperation__Reduce_70D1A69E", "CellBuilder_reflection", "CellBuilder_get_Empty", "CellBuilder__SignMessages_3F89FFFC", "CellBuilder__Yield_36B9E420", "CellBuilder__Combine_F07E260", "CellBuilder__Combine_4BCE267E", "CellBuilder__Combine_Z2CF9C142", "CellBuilder__Combine_583F6A19", "CellBuilder__Combine_168D7AF9", "CellBuilder__Combine_32507AAF", "CellBuilder__Combine_Z3ABF6771", "CellBuilder__Combine_Z2BFC83F8", "CellBuilder__Combine_245D6C8", "CellBuilder__AsCellElement_6F87C2ED"]
214
+