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,190 @@
1
+ from __future__ import annotations
2
+ from collections.abc import Callable
3
+ from typing import Any
4
+ from ..fable_modules.fable_library.list import (FSharpList, empty, of_seq)
5
+ from ..fable_modules.fable_library.seq import (delay, append, singleton, iterate_indexed, map, try_find, choose, try_pick, is_empty)
6
+ from ..fable_modules.fable_library.string_ import (to_fail, printf, to_console)
7
+ from ..fable_modules.fable_library.types import Array
8
+ from ..fable_modules.fable_library.util import (get_enumerator, IEnumerable_1, IEnumerator, to_enumerable)
9
+ from ..fable_modules.fs_spreadsheet.fs_row import FsRow
10
+ from ..fable_modules.fs_spreadsheet.fs_workbook import FsWorkbook
11
+ from ..fable_modules.fs_spreadsheet.fs_worksheet import FsWorksheet
12
+ from ..Core.arc_types import ArcRun
13
+ from ..Core.comment import Remark
14
+ from ..Core.datamap import Datamap
15
+ from ..Core.Helper.identifier import create_missing_identifier
16
+ from ..Core.person import Person
17
+ from ..Core.Table.arc_table import ArcTable
18
+ from .AnnotationTable.arc_table import (try_from_fs_worksheet, to_fs_worksheet)
19
+ from .DatamapTable.datamap_table import try_from_fs_worksheet as try_from_fs_worksheet_1
20
+ from .Metadata.contacts import (from_rows as from_rows_1, to_rows as to_rows_1)
21
+ from .Metadata.run import (from_rows, to_rows)
22
+ from .Metadata.sparse_table import (SparseRowModule_tryGetValueAt, SparseRowModule_fromValues, SparseRowModule_writeToSheet, SparseRowModule_fromFsRow, SparseRowModule_getAllValues, SparseRowModule_fromAllValues)
23
+
24
+ def ArcRun_fromRows(rows: IEnumerable_1[IEnumerable_1[tuple[int, str]]]) -> ArcRun:
25
+ en: IEnumerator[IEnumerable_1[tuple[int, str]]] = get_enumerator(rows)
26
+ def loop(last_row_mut: str | None, run_mut: ArcRun | None, performers_mut: FSharpList[Person], row_number_mut: int, rows: Any=rows) -> ArcRun:
27
+ while True:
28
+ (last_row, run, performers, row_number) = (last_row_mut, run_mut, performers_mut, row_number_mut)
29
+ (pattern_matching_result,) = (None,)
30
+ if last_row is not None:
31
+ if last_row == "RUN":
32
+ pattern_matching_result = 0
33
+
34
+ elif last_row == "RUN PERFORMERS":
35
+ pattern_matching_result = 1
36
+
37
+ else:
38
+ pattern_matching_result = 2
39
+
40
+
41
+ else:
42
+ pattern_matching_result = 2
43
+
44
+ if pattern_matching_result == 0:
45
+ pattern_input: tuple[str | None, int, FSharpList[Remark], ArcRun] = from_rows(row_number + 1, en)
46
+ last_row_mut = pattern_input[0]
47
+ run_mut = pattern_input[3]
48
+ performers_mut = performers
49
+ row_number_mut = pattern_input[1]
50
+ continue
51
+
52
+ elif pattern_matching_result == 1:
53
+ pattern_input_1: tuple[str | None, int, FSharpList[Remark], FSharpList[Person]] = from_rows_1("Run Person", row_number + 1, en)
54
+ last_row_mut = pattern_input_1[0]
55
+ run_mut = run
56
+ performers_mut = pattern_input_1[3]
57
+ row_number_mut = pattern_input_1[1]
58
+ continue
59
+
60
+ elif pattern_matching_result == 2:
61
+ if run is not None:
62
+ run_2: ArcRun = run
63
+ run_2.Performers = list(performers)
64
+ return run_2
65
+
66
+ else:
67
+ return ArcRun.create(create_missing_identifier(), None, None, None, None, None, None, None, None, list(performers))
68
+
69
+
70
+ break
71
+
72
+ if en.System_Collections_IEnumerator_MoveNext():
73
+ return loop(SparseRowModule_tryGetValueAt(0, en.System_Collections_Generic_IEnumerator_1_get_Current()), None, empty(), 1)
74
+
75
+ else:
76
+ raise Exception("empty run metadata sheet")
77
+
78
+
79
+
80
+ def ArcRun_toRows(run: ArcRun) -> IEnumerable_1[IEnumerable_1[tuple[int, str]]]:
81
+ def _arrow2015(__unit: None=None, run: Any=run) -> IEnumerable_1[IEnumerable_1[tuple[int, str]]]:
82
+ def _arrow2014(__unit: None=None) -> IEnumerable_1[IEnumerable_1[tuple[int, str]]]:
83
+ def _arrow2013(__unit: None=None) -> IEnumerable_1[IEnumerable_1[tuple[int, str]]]:
84
+ def _arrow2012(__unit: None=None) -> IEnumerable_1[IEnumerable_1[tuple[int, str]]]:
85
+ return to_rows_1("Run Person", of_seq(run.Performers))
86
+
87
+ return append(singleton(SparseRowModule_fromValues(to_enumerable(["RUN PERFORMERS"]))), delay(_arrow2012))
88
+
89
+ return append(to_rows(run), delay(_arrow2013))
90
+
91
+ return append(singleton(SparseRowModule_fromValues(to_enumerable(["RUN"]))), delay(_arrow2014))
92
+
93
+ return delay(_arrow2015)
94
+
95
+
96
+ def ArcRun_toMetadataSheet(run: ArcRun) -> FsWorksheet:
97
+ sheet: FsWorksheet = FsWorksheet("isa_run")
98
+ def action(row_i: int, r: IEnumerable_1[tuple[int, str]], run: Any=run) -> None:
99
+ SparseRowModule_writeToSheet(row_i + 1, r, sheet)
100
+
101
+ iterate_indexed(action, ArcRun_toRows(run))
102
+ return sheet
103
+
104
+
105
+ def ArcRun_fromMetadataSheet(sheet: FsWorksheet) -> ArcRun:
106
+ try:
107
+ return ArcRun_fromRows(map(SparseRowModule_fromFsRow, sheet.Rows))
108
+
109
+ except Exception as err:
110
+ arg: str = str(err)
111
+ return to_fail(printf("Failed while parsing metadatasheet: %s"))(arg)
112
+
113
+
114
+
115
+ def ArcRun_toMetadataCollection(run: ArcRun) -> IEnumerable_1[IEnumerable_1[str | None]]:
116
+ def mapping(row: IEnumerable_1[tuple[int, str]], run: Any=run) -> IEnumerable_1[str | None]:
117
+ return SparseRowModule_getAllValues(row)
118
+
119
+ return map(mapping, ArcRun_toRows(run))
120
+
121
+
122
+ def ArcRun_fromMetadataCollection(collection: IEnumerable_1[IEnumerable_1[str | None]]) -> ArcRun:
123
+ try:
124
+ return ArcRun_fromRows(map(SparseRowModule_fromAllValues, collection))
125
+
126
+ except Exception as err:
127
+ arg: str = str(err)
128
+ return to_fail(printf("Failed while parsing metadatasheet: %s"))(arg)
129
+
130
+
131
+
132
+ def ArcRun_isMetadataSheetName(name: str) -> bool:
133
+ return name == "isa_run"
134
+
135
+
136
+ def ArcRun_isMetadataSheet(sheet: FsWorksheet) -> bool:
137
+ return ArcRun_isMetadataSheetName(sheet.Name)
138
+
139
+
140
+ def ArcRun_tryGetMetadataSheet(doc: FsWorkbook) -> FsWorksheet | None:
141
+ def predicate(sheet: FsWorksheet, doc: Any=doc) -> bool:
142
+ return ArcRun_isMetadataSheet(sheet)
143
+
144
+ return try_find(predicate, doc.GetWorksheets())
145
+
146
+
147
+ def ARCtrl_ArcRun__ArcRun_fromFsWorkbook_Static_32154C9D(doc: FsWorkbook) -> ArcRun:
148
+ try:
149
+ run_metadata: ArcRun
150
+ match_value: FsWorksheet | None = ArcRun_tryGetMetadataSheet(doc)
151
+ if match_value is None:
152
+ to_console(printf("Cannot retrieve metadata: Run file does not contain \"%s\" sheet."))("isa_run")
153
+ run_metadata = ArcRun.create(create_missing_identifier())
154
+
155
+ else:
156
+ run_metadata = ArcRun_fromMetadataSheet(match_value)
157
+
158
+ sheets: Array[FsWorksheet] = doc.GetWorksheets()
159
+ annotation_tables: IEnumerable_1[ArcTable] = choose(try_from_fs_worksheet, sheets)
160
+ datamap_sheet: Datamap | None = try_pick(try_from_fs_worksheet_1, sheets)
161
+ run_metadata.Datamap = datamap_sheet
162
+ if not is_empty(annotation_tables):
163
+ run_metadata.Tables = list(annotation_tables)
164
+
165
+ return run_metadata
166
+
167
+ except Exception as err:
168
+ arg_1: str = str(err)
169
+ return to_fail(printf("Could not parse assay: \n%s"))(arg_1)
170
+
171
+
172
+
173
+ def ARCtrl_ArcRun__ArcRun_toFsWorkbook_Static_Z3EFAF6F8(run: ArcRun) -> FsWorkbook:
174
+ doc: FsWorkbook = FsWorkbook()
175
+ metadata_sheet: FsWorksheet = ArcRun_toMetadataSheet(run)
176
+ doc.AddWorksheet(metadata_sheet)
177
+ def action(i: int, arg: ArcTable, run: Any=run) -> None:
178
+ sheet: FsWorksheet = to_fs_worksheet(i, arg)
179
+ doc.AddWorksheet(sheet)
180
+
181
+ iterate_indexed(action, run.Tables)
182
+ return doc
183
+
184
+
185
+ def ARCtrl_ArcRun__ArcRun_ToFsWorkbook(this: ArcRun) -> FsWorkbook:
186
+ return ARCtrl_ArcRun__ArcRun_toFsWorkbook_Static_Z3EFAF6F8(this)
187
+
188
+
189
+ __all__ = ["ArcRun_fromRows", "ArcRun_toRows", "ArcRun_toMetadataSheet", "ArcRun_fromMetadataSheet", "ArcRun_toMetadataCollection", "ArcRun_fromMetadataCollection", "ArcRun_isMetadataSheetName", "ArcRun_isMetadataSheet", "ArcRun_tryGetMetadataSheet", "ARCtrl_ArcRun__ArcRun_fromFsWorkbook_Static_32154C9D", "ARCtrl_ArcRun__ArcRun_toFsWorkbook_Static_Z3EFAF6F8", "ARCtrl_ArcRun__ArcRun_ToFsWorkbook"]
190
+
@@ -0,0 +1,144 @@
1
+ from __future__ import annotations
2
+ from typing import Any
3
+ from ..fable_modules.fable_library.list import (FSharpList, empty)
4
+ from ..fable_modules.fable_library.option import (default_arg, to_array)
5
+ from ..fable_modules.fable_library.seq import (iterate_indexed, append, map, try_find, try_pick, iterate)
6
+ from ..fable_modules.fable_library.string_ import (to_fail, printf, to_console)
7
+ from ..fable_modules.fable_library.types import Array
8
+ from ..fable_modules.fable_library.util import (IEnumerable_1, to_enumerable, get_enumerator, IEnumerator, ignore)
9
+ from ..fable_modules.fs_spreadsheet.fs_row import FsRow
10
+ from ..fable_modules.fs_spreadsheet.fs_workbook import FsWorkbook
11
+ from ..fable_modules.fs_spreadsheet.fs_worksheet import FsWorksheet
12
+ from ..Core.arc_types import (ArcStudy, ArcAssay)
13
+ from ..Core.datamap import Datamap
14
+ from ..Core.Helper.collections_ import (ResizeArray_choose, ResizeArray_isEmpty)
15
+ from ..Core.Helper.identifier import create_missing_identifier
16
+ from ..Core.Table.arc_table import ArcTable
17
+ from .AnnotationTable.arc_table import (try_from_fs_worksheet, to_fs_worksheet as to_fs_worksheet_1)
18
+ from .DatamapTable.datamap_table import (try_from_fs_worksheet as try_from_fs_worksheet_1, to_fs_worksheet)
19
+ from .Metadata.sparse_table import (SparseRowModule_writeToSheet, SparseRowModule_fromValues, SparseRowModule_fromFsRow, SparseRowModule_getAllValues, SparseRowModule_fromAllValues)
20
+ from .Metadata.study import (to_rows, from_rows)
21
+
22
+ def ArcStudy_toMetadataSheet(study: ArcStudy, assays: FSharpList[ArcAssay] | None=None) -> FsWorksheet:
23
+ sheet: FsWorksheet = FsWorksheet("isa_study")
24
+ def action(row_i: int, r: IEnumerable_1[tuple[int, str]], study: Any=study, assays: Any=assays) -> None:
25
+ SparseRowModule_writeToSheet(row_i + 1, r, sheet)
26
+
27
+ def _arrow2006(__unit: None=None, study: Any=study, assays: Any=assays) -> IEnumerable_1[IEnumerable_1[tuple[int, str]]]:
28
+ source_1: IEnumerable_1[IEnumerable_1[tuple[int, str]]] = to_rows(study, assays)
29
+ return append(to_enumerable([SparseRowModule_fromValues(to_enumerable(["STUDY"]))]), source_1)
30
+
31
+ iterate_indexed(action, _arrow2006())
32
+ return sheet
33
+
34
+
35
+ def ArcStudy_fromRows(rows: IEnumerable_1[IEnumerable_1[tuple[int, str]]]) -> tuple[ArcStudy, FSharpList[ArcAssay]] | None:
36
+ en: IEnumerator[IEnumerable_1[tuple[int, str]]] = get_enumerator(rows)
37
+ ignore(en.System_Collections_IEnumerator_MoveNext())
38
+ return from_rows(2, en)[3]
39
+
40
+
41
+ def ArcStudy_fromMetadataSheet(sheet: FsWorksheet) -> tuple[ArcStudy, FSharpList[ArcAssay]]:
42
+ try:
43
+ return default_arg(ArcStudy_fromRows(map(SparseRowModule_fromFsRow, sheet.Rows)), (ArcStudy.create(create_missing_identifier()), empty()))
44
+
45
+ except Exception as err:
46
+ arg: str = str(err)
47
+ return to_fail(printf("Failed while parsing metadatasheet: %s"))(arg)
48
+
49
+
50
+
51
+ def ArcStudy_toMetadataCollection(study: ArcStudy, assays: FSharpList[ArcAssay] | None=None) -> IEnumerable_1[IEnumerable_1[str | None]]:
52
+ def mapping(row: IEnumerable_1[tuple[int, str]], study: Any=study, assays: Any=assays) -> IEnumerable_1[str | None]:
53
+ return SparseRowModule_getAllValues(row)
54
+
55
+ def _arrow2007(__unit: None=None, study: Any=study, assays: Any=assays) -> IEnumerable_1[IEnumerable_1[tuple[int, str]]]:
56
+ source_1: IEnumerable_1[IEnumerable_1[tuple[int, str]]] = to_rows(study, assays)
57
+ return append(to_enumerable([SparseRowModule_fromValues(to_enumerable(["STUDY"]))]), source_1)
58
+
59
+ return map(mapping, _arrow2007())
60
+
61
+
62
+ def ArcStudy_fromMetadataCollection(collection: IEnumerable_1[IEnumerable_1[str | None]]) -> tuple[ArcStudy, FSharpList[ArcAssay]]:
63
+ try:
64
+ return default_arg(ArcStudy_fromRows(map(SparseRowModule_fromAllValues, collection)), (ArcStudy.create(create_missing_identifier()), empty()))
65
+
66
+ except Exception as err:
67
+ arg: str = str(err)
68
+ return to_fail(printf("Failed while parsing metadatasheet: %s"))(arg)
69
+
70
+
71
+
72
+ def ArcStudy_isMetadataSheetName(name: str) -> bool:
73
+ if name == "isa_study":
74
+ return True
75
+
76
+ else:
77
+ return name == "Study"
78
+
79
+
80
+
81
+ def ArcStudy_isMetadataSheet(sheet: FsWorksheet) -> bool:
82
+ return ArcStudy_isMetadataSheetName(sheet.Name)
83
+
84
+
85
+ def ArcStudy_tryGetMetadataSheet(doc: FsWorkbook) -> FsWorksheet | None:
86
+ def predicate(sheet: FsWorksheet, doc: Any=doc) -> bool:
87
+ return ArcStudy_isMetadataSheet(sheet)
88
+
89
+ return try_find(predicate, doc.GetWorksheets())
90
+
91
+
92
+ def ARCtrl_ArcStudy__ArcStudy_fromFsWorkbook_Static_32154C9D(doc: FsWorkbook) -> tuple[ArcStudy, FSharpList[ArcAssay]]:
93
+ try:
94
+ pattern_input: tuple[ArcStudy, FSharpList[ArcAssay]]
95
+ match_value: FsWorksheet | None = ArcStudy_tryGetMetadataSheet(doc)
96
+ if match_value is None:
97
+ to_console(printf("Cannot retrieve metadata: Study file does not contain \"%s\" or \"%s\" sheet."))("isa_study")("Study")
98
+ pattern_input = (ArcStudy.create(create_missing_identifier()), empty())
99
+
100
+ else:
101
+ pattern_input = ArcStudy_fromMetadataSheet(match_value)
102
+
103
+ study_metadata: ArcStudy = pattern_input[0]
104
+ sheets: Array[FsWorksheet] = doc.GetWorksheets()
105
+ annotation_tables: Array[ArcTable] = ResizeArray_choose(try_from_fs_worksheet, sheets)
106
+ datamap_sheet: Datamap | None = try_pick(try_from_fs_worksheet_1, sheets)
107
+ if not ResizeArray_isEmpty(annotation_tables):
108
+ study_metadata.Tables = annotation_tables
109
+
110
+ study_metadata.Datamap = datamap_sheet
111
+ return (study_metadata, pattern_input[1])
112
+
113
+ except Exception as err:
114
+ arg_2: str = str(err)
115
+ return to_fail(printf("Could not parse study: \n%s"))(arg_2)
116
+
117
+
118
+
119
+ def ARCtrl_ArcStudy__ArcStudy_toFsWorkbook_Static_Z4CEFA522(study: ArcStudy, assays: FSharpList[ArcAssay] | None=None, datamap_sheet: bool | None=None) -> FsWorkbook:
120
+ datamap_sheet_1: bool = default_arg(datamap_sheet, True)
121
+ doc: FsWorkbook = FsWorkbook()
122
+ metadata_sheet: FsWorksheet = ArcStudy_toMetadataSheet(study, assays)
123
+ doc.AddWorksheet(metadata_sheet)
124
+ if datamap_sheet_1:
125
+ def action(arg: Datamap, study: Any=study, assays: Any=assays, datamap_sheet: Any=datamap_sheet) -> None:
126
+ sheet: FsWorksheet = to_fs_worksheet(arg)
127
+ doc.AddWorksheet(sheet)
128
+
129
+ iterate(action, to_array(study.Datamap))
130
+
131
+ def action_1(i: int, arg_1: ArcTable, study: Any=study, assays: Any=assays, datamap_sheet: Any=datamap_sheet) -> None:
132
+ sheet_1: FsWorksheet = to_fs_worksheet_1(i, arg_1)
133
+ doc.AddWorksheet(sheet_1)
134
+
135
+ iterate_indexed(action_1, study.Tables)
136
+ return doc
137
+
138
+
139
+ def ARCtrl_ArcStudy__ArcStudy_ToFsWorkbook_257FC1F0(this: ArcStudy, assays: FSharpList[ArcAssay] | None=None, datamap_sheet: bool | None=None) -> FsWorkbook:
140
+ return ARCtrl_ArcStudy__ArcStudy_toFsWorkbook_Static_Z4CEFA522(this, assays, datamap_sheet)
141
+
142
+
143
+ __all__ = ["ArcStudy_toMetadataSheet", "ArcStudy_fromRows", "ArcStudy_fromMetadataSheet", "ArcStudy_toMetadataCollection", "ArcStudy_fromMetadataCollection", "ArcStudy_isMetadataSheetName", "ArcStudy_isMetadataSheet", "ArcStudy_tryGetMetadataSheet", "ARCtrl_ArcStudy__ArcStudy_fromFsWorkbook_Static_32154C9D", "ARCtrl_ArcStudy__ArcStudy_toFsWorkbook_Static_Z4CEFA522", "ARCtrl_ArcStudy__ArcStudy_ToFsWorkbook_257FC1F0"]
144
+
@@ -0,0 +1,177 @@
1
+ from __future__ import annotations
2
+ from collections.abc import Callable
3
+ from typing import Any
4
+ from ..fable_modules.fable_library.list import (FSharpList, empty, of_seq)
5
+ from ..fable_modules.fable_library.seq import (delay, append, singleton, iterate_indexed, map, try_find, try_pick)
6
+ from ..fable_modules.fable_library.string_ import (to_fail, printf, to_console)
7
+ from ..fable_modules.fable_library.util import (get_enumerator, IEnumerable_1, IEnumerator, to_enumerable)
8
+ from ..fable_modules.fs_spreadsheet.fs_row import FsRow
9
+ from ..fable_modules.fs_spreadsheet.fs_workbook import FsWorkbook
10
+ from ..fable_modules.fs_spreadsheet.fs_worksheet import FsWorksheet
11
+ from ..Core.arc_types import ArcWorkflow
12
+ from ..Core.comment import Remark
13
+ from ..Core.datamap import Datamap
14
+ from ..Core.Helper.identifier import create_missing_identifier
15
+ from ..Core.person import Person
16
+ from .DatamapTable.datamap_table import try_from_fs_worksheet
17
+ from .Metadata.contacts import (from_rows as from_rows_1, to_rows as to_rows_1)
18
+ from .Metadata.sparse_table import (SparseRowModule_tryGetValueAt, SparseRowModule_fromValues, SparseRowModule_writeToSheet, SparseRowModule_fromFsRow, SparseRowModule_getAllValues, SparseRowModule_fromAllValues)
19
+ from .Metadata.workflow import (from_rows, to_rows)
20
+
21
+ def ArcWorkflow_fromRows(rows: IEnumerable_1[IEnumerable_1[tuple[int, str]]]) -> ArcWorkflow:
22
+ en: IEnumerator[IEnumerable_1[tuple[int, str]]] = get_enumerator(rows)
23
+ def loop(last_row_mut: str | None, workflow_mut: ArcWorkflow | None, contacts_mut: FSharpList[Person], row_number_mut: int, rows: Any=rows) -> ArcWorkflow:
24
+ while True:
25
+ (last_row, workflow, contacts, row_number) = (last_row_mut, workflow_mut, contacts_mut, row_number_mut)
26
+ (pattern_matching_result,) = (None,)
27
+ if last_row is not None:
28
+ if last_row == "WORKFLOW":
29
+ pattern_matching_result = 0
30
+
31
+ elif last_row == "WORKFLOW CONTACTS":
32
+ pattern_matching_result = 1
33
+
34
+ else:
35
+ pattern_matching_result = 2
36
+
37
+
38
+ else:
39
+ pattern_matching_result = 2
40
+
41
+ if pattern_matching_result == 0:
42
+ pattern_input: tuple[str | None, int, FSharpList[Remark], ArcWorkflow] = from_rows(row_number + 1, en)
43
+ last_row_mut = pattern_input[0]
44
+ workflow_mut = pattern_input[3]
45
+ contacts_mut = contacts
46
+ row_number_mut = pattern_input[1]
47
+ continue
48
+
49
+ elif pattern_matching_result == 1:
50
+ pattern_input_1: tuple[str | None, int, FSharpList[Remark], FSharpList[Person]] = from_rows_1("Workflow Person", row_number + 1, en)
51
+ last_row_mut = pattern_input_1[0]
52
+ workflow_mut = workflow
53
+ contacts_mut = pattern_input_1[3]
54
+ row_number_mut = pattern_input_1[1]
55
+ continue
56
+
57
+ elif pattern_matching_result == 2:
58
+ if workflow is not None:
59
+ workflow_2: ArcWorkflow = workflow
60
+ workflow_2.Contacts = list(contacts)
61
+ return workflow_2
62
+
63
+ else:
64
+ return ArcWorkflow.create(create_missing_identifier(), None, None, None, None, None, None, None, None, None, list(contacts))
65
+
66
+
67
+ break
68
+
69
+ if en.System_Collections_IEnumerator_MoveNext():
70
+ return loop(SparseRowModule_tryGetValueAt(0, en.System_Collections_Generic_IEnumerator_1_get_Current()), None, empty(), 1)
71
+
72
+ else:
73
+ raise Exception("empty workflow metadata sheet")
74
+
75
+
76
+
77
+ def ArcWorkflow_toRows(workflow: ArcWorkflow) -> IEnumerable_1[IEnumerable_1[tuple[int, str]]]:
78
+ def _arrow2011(__unit: None=None, workflow: Any=workflow) -> IEnumerable_1[IEnumerable_1[tuple[int, str]]]:
79
+ def _arrow2010(__unit: None=None) -> IEnumerable_1[IEnumerable_1[tuple[int, str]]]:
80
+ def _arrow2009(__unit: None=None) -> IEnumerable_1[IEnumerable_1[tuple[int, str]]]:
81
+ def _arrow2008(__unit: None=None) -> IEnumerable_1[IEnumerable_1[tuple[int, str]]]:
82
+ return to_rows_1("Workflow Person", of_seq(workflow.Contacts))
83
+
84
+ return append(singleton(SparseRowModule_fromValues(to_enumerable(["WORKFLOW CONTACTS"]))), delay(_arrow2008))
85
+
86
+ return append(to_rows(workflow), delay(_arrow2009))
87
+
88
+ return append(singleton(SparseRowModule_fromValues(to_enumerable(["WORKFLOW"]))), delay(_arrow2010))
89
+
90
+ return delay(_arrow2011)
91
+
92
+
93
+ def ArcWorkflow_toMetadataSheet(workflow: ArcWorkflow) -> FsWorksheet:
94
+ sheet: FsWorksheet = FsWorksheet("isa_workflow")
95
+ def action(row_i: int, r: IEnumerable_1[tuple[int, str]], workflow: Any=workflow) -> None:
96
+ SparseRowModule_writeToSheet(row_i + 1, r, sheet)
97
+
98
+ iterate_indexed(action, ArcWorkflow_toRows(workflow))
99
+ return sheet
100
+
101
+
102
+ def ArcWorkflow_fromMetadataSheet(sheet: FsWorksheet) -> ArcWorkflow:
103
+ try:
104
+ return ArcWorkflow_fromRows(map(SparseRowModule_fromFsRow, sheet.Rows))
105
+
106
+ except Exception as err:
107
+ arg: str = str(err)
108
+ return to_fail(printf("Failed while parsing metadatasheet: %s"))(arg)
109
+
110
+
111
+
112
+ def ArcWorkflow_toMetadataCollection(workflow: ArcWorkflow) -> IEnumerable_1[IEnumerable_1[str | None]]:
113
+ def mapping(row: IEnumerable_1[tuple[int, str]], workflow: Any=workflow) -> IEnumerable_1[str | None]:
114
+ return SparseRowModule_getAllValues(row)
115
+
116
+ return map(mapping, ArcWorkflow_toRows(workflow))
117
+
118
+
119
+ def ArcWorkflow_fromMetadataCollection(collection: IEnumerable_1[IEnumerable_1[str | None]]) -> ArcWorkflow:
120
+ try:
121
+ return ArcWorkflow_fromRows(map(SparseRowModule_fromAllValues, collection))
122
+
123
+ except Exception as err:
124
+ arg: str = str(err)
125
+ return to_fail(printf("Failed while parsing metadatasheet: %s"))(arg)
126
+
127
+
128
+
129
+ def ArcWorkflow_isMetadataSheetName(name: str) -> bool:
130
+ return name == "isa_workflow"
131
+
132
+
133
+ def ArcWorkflow_isMetadataSheet(sheet: FsWorksheet) -> bool:
134
+ return ArcWorkflow_isMetadataSheetName(sheet.Name)
135
+
136
+
137
+ def ArcWorkflow_tryGetMetadataSheet(doc: FsWorkbook) -> FsWorksheet | None:
138
+ def predicate(sheet: FsWorksheet, doc: Any=doc) -> bool:
139
+ return ArcWorkflow_isMetadataSheet(sheet)
140
+
141
+ return try_find(predicate, doc.GetWorksheets())
142
+
143
+
144
+ def ARCtrl_ArcWorkflow__ArcWorkflow_fromFsWorkbook_Static_32154C9D(doc: FsWorkbook) -> ArcWorkflow:
145
+ try:
146
+ workflow_metadata: ArcWorkflow
147
+ match_value: FsWorksheet | None = ArcWorkflow_tryGetMetadataSheet(doc)
148
+ if match_value is None:
149
+ to_console(printf("Cannot retrieve metadata: Workflow file does not contain \"%s\" sheet."))("isa_workflow")
150
+ workflow_metadata = ArcWorkflow.create(create_missing_identifier())
151
+
152
+ else:
153
+ workflow_metadata = ArcWorkflow_fromMetadataSheet(match_value)
154
+
155
+ datamap_sheet: Datamap | None = try_pick(try_from_fs_worksheet, doc.GetWorksheets())
156
+ workflow_metadata.Datamap = datamap_sheet
157
+ return workflow_metadata
158
+
159
+ except Exception as err:
160
+ arg_1: str = str(err)
161
+ return to_fail(printf("Could not parse assay: \n%s"))(arg_1)
162
+
163
+
164
+
165
+ def ARCtrl_ArcWorkflow__ArcWorkflow_toFsWorkbook_Static_Z1C75CB0E(workflow: ArcWorkflow) -> FsWorkbook:
166
+ doc: FsWorkbook = FsWorkbook()
167
+ metadata_sheet: FsWorksheet = ArcWorkflow_toMetadataSheet(workflow)
168
+ doc.AddWorksheet(metadata_sheet)
169
+ return doc
170
+
171
+
172
+ def ARCtrl_ArcWorkflow__ArcWorkflow_ToFsWorkbook(this: ArcWorkflow) -> FsWorkbook:
173
+ return ARCtrl_ArcWorkflow__ArcWorkflow_toFsWorkbook_Static_Z1C75CB0E(this)
174
+
175
+
176
+ __all__ = ["ArcWorkflow_fromRows", "ArcWorkflow_toRows", "ArcWorkflow_toMetadataSheet", "ArcWorkflow_fromMetadataSheet", "ArcWorkflow_toMetadataCollection", "ArcWorkflow_fromMetadataCollection", "ArcWorkflow_isMetadataSheetName", "ArcWorkflow_isMetadataSheet", "ArcWorkflow_tryGetMetadataSheet", "ARCtrl_ArcWorkflow__ArcWorkflow_fromFsWorkbook_Static_32154C9D", "ARCtrl_ArcWorkflow__ArcWorkflow_toFsWorkbook_Static_Z1C75CB0E", "ARCtrl_ArcWorkflow__ArcWorkflow_ToFsWorkbook"]
177
+
@@ -0,0 +1 @@
1
+
@@ -0,0 +1,167 @@
1
+ from __future__ import annotations
2
+ from collections.abc import Callable
3
+ from typing import (Any, TypeVar)
4
+ from ..fable_modules.fable_library.array_ import (initialize, skip as skip_1, try_item)
5
+ from ..fable_modules.fable_library.list import (try_pick, FSharpList, is_empty, reverse, head, cons, tail, empty)
6
+ from ..fable_modules.fable_library.map_util import try_get_value
7
+ from ..fable_modules.fable_library.option import (value, some)
8
+ from ..fable_modules.fable_library.seq import (skip, max_by, try_find)
9
+ from ..fable_modules.fable_library.types import (Array, FSharpRef)
10
+ from ..fable_modules.fable_library.util import (IEnumerable_1, compare_primitives)
11
+
12
+ __A = TypeVar("__A")
13
+
14
+ _T = TypeVar("_T")
15
+
16
+ _A = TypeVar("_A")
17
+
18
+ _B = TypeVar("_B")
19
+
20
+ _C = TypeVar("_C")
21
+
22
+ _D = TypeVar("_D")
23
+
24
+ _U = TypeVar("_U")
25
+
26
+ __B = TypeVar("__B")
27
+
28
+ __C = TypeVar("__C")
29
+
30
+ __D = TypeVar("__D")
31
+
32
+ _V = TypeVar("_V")
33
+
34
+ def Seq_trySkip(i: int, s: IEnumerable_1[Any]) -> IEnumerable_1[Any] | None:
35
+ try:
36
+ return skip(i, s)
37
+
38
+ except Exception as match_value:
39
+ return None
40
+
41
+
42
+
43
+ def Array_ofIndexedSeq(s: IEnumerable_1[tuple[int, str]]) -> Array[str]:
44
+ def _arrow1456(tuple: tuple[int, str], s: Any=s) -> int:
45
+ return tuple[0]
46
+
47
+ class ObjectExpr1457:
48
+ @property
49
+ def Compare(self) -> Callable[[int, int], int]:
50
+ return compare_primitives
51
+
52
+ def _arrow1459(i: int, s: Any=s) -> str:
53
+ def _arrow1458(arg: tuple[int, str]) -> bool:
54
+ return i == arg[0]
55
+
56
+ match_value: tuple[int, str] | None = try_find(_arrow1458, s)
57
+ if match_value is None:
58
+ return ""
59
+
60
+ else:
61
+ i_1: int = match_value[0] or 0
62
+ return match_value[1]
63
+
64
+
65
+ return initialize(1 + max_by(_arrow1456, s, ObjectExpr1457())[0], _arrow1459, None)
66
+
67
+
68
+ def Array_trySkip(i: int, a: Array[Any]) -> Array[Any] | None:
69
+ try:
70
+ return skip_1(i, a, None)
71
+
72
+ except Exception as match_value:
73
+ return None
74
+
75
+
76
+
77
+ def Array_tryItemDefault(i: int, d: Any, a: Array[Any]) -> Any:
78
+ match_value: __A | None = try_item(i, a)
79
+ if match_value is None:
80
+ return d
81
+
82
+ else:
83
+ return value(match_value)
84
+
85
+
86
+
87
+ def Array_map4(f: Callable[[_A, _B, _C, _D], _T], aa: Array[Any], ba: Array[Any], ca: Array[Any], da: Array[Any]) -> Array[Any]:
88
+ if not ((len(ca) == len(da)) if ((len(ba) == len(ca)) if (len(aa) == len(ba)) else False) else False):
89
+ raise Exception("")
90
+
91
+ def _arrow1461(i: int, f: Any=f, aa: Any=aa, ba: Any=ba, ca: Any=ca, da: Any=da) -> _T:
92
+ return f(aa[i], ba[i], ca[i], da[i])
93
+
94
+ return initialize(len(aa), _arrow1461, None)
95
+
96
+
97
+ def List_tryPickDefault(chooser: Callable[[_T], _U | None], d: Any, list_1: FSharpList[Any]) -> Any:
98
+ match_value: _U | None = try_pick(chooser, list_1)
99
+ if match_value is None:
100
+ return d
101
+
102
+ else:
103
+ return value(match_value)
104
+
105
+
106
+
107
+ def List_unzip4(l: FSharpList[tuple[_A, _B, _C, _D]]) -> tuple[FSharpList[_A], FSharpList[_B], FSharpList[_C], FSharpList[_D]]:
108
+ def loop(la_mut: FSharpList[Any], lb_mut: FSharpList[Any], lc_mut: FSharpList[Any], ld_mut: FSharpList[Any], l_1_mut: FSharpList[tuple[__A, __B, __C, __D]], l: Any=l) -> tuple[FSharpList[__A], FSharpList[__B], FSharpList[__C], FSharpList[__D]]:
109
+ while True:
110
+ (la, lb, lc, ld, l_1) = (la_mut, lb_mut, lc_mut, ld_mut, l_1_mut)
111
+ if is_empty(l_1):
112
+ return (reverse(la), reverse(lb), reverse(lc), reverse(ld))
113
+
114
+ else:
115
+ la_mut = cons(head(l_1)[0], la)
116
+ lb_mut = cons(head(l_1)[1], lb)
117
+ lc_mut = cons(head(l_1)[2], lc)
118
+ ld_mut = cons(head(l_1)[3], ld)
119
+ l_1_mut = tail(l_1)
120
+ continue
121
+
122
+ break
123
+
124
+ return loop(empty(), empty(), empty(), empty(), l)
125
+
126
+
127
+ def Dictionary_tryGetValue(k: Any, dict_1: Any) -> Any | None:
128
+ pattern_input: tuple[bool, _V]
129
+ out_arg: _V = None
130
+ def _arrow1466(__unit: None=None, k: Any=k, dict_1: Any=dict_1) -> _V:
131
+ return out_arg
132
+
133
+ def _arrow1467(v: _V | None=None, k: Any=k, dict_1: Any=dict_1) -> None:
134
+ nonlocal out_arg
135
+ out_arg = v
136
+
137
+ pattern_input = (try_get_value(dict_1, k, FSharpRef(_arrow1466, _arrow1467)), out_arg)
138
+ if pattern_input[0]:
139
+ return some(pattern_input[1])
140
+
141
+ else:
142
+ return None
143
+
144
+
145
+
146
+ def Dictionary_tryGetString(k: Any, dict_1: Any) -> str | None:
147
+ pattern_input: tuple[bool, str]
148
+ out_arg: str = None
149
+ def _arrow1468(__unit: None=None, k: Any=k, dict_1: Any=dict_1) -> str:
150
+ return out_arg
151
+
152
+ def _arrow1469(v: str, k: Any=k, dict_1: Any=dict_1) -> None:
153
+ nonlocal out_arg
154
+ out_arg = v
155
+
156
+ pattern_input = (try_get_value(dict_1, k, FSharpRef(_arrow1468, _arrow1469)), out_arg)
157
+ v_1: str = pattern_input[1]
158
+ if (v_1.strip() != "") if pattern_input[0] else False:
159
+ return v_1.strip()
160
+
161
+ else:
162
+ return None
163
+
164
+
165
+
166
+ __all__ = ["Seq_trySkip", "Array_ofIndexedSeq", "Array_trySkip", "Array_tryItemDefault", "Array_map4", "List_tryPickDefault", "List_unzip4", "Dictionary_tryGetValue", "Dictionary_tryGetString"]
167
+