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,828 @@
1
+ from __future__ import annotations
2
+ from collections.abc import Callable
3
+ from typing import Any
4
+ from ..Core.comment import Comment
5
+ from ..Core.Helper.collections_ import (ResizeArray_singleton, Option_fromValueWithDefault, ResizeArray_map, ResizeArray_create, ResizeArray_zip)
6
+ from ..Core.Helper.identifier import create_missing_identifier
7
+ from ..Core.Helper.regex import ActivePatterns__007CRegex_007C__007C
8
+ from ..Core.ontology_annotation import OntologyAnnotation
9
+ from ..Core.Table.arc_table import ArcTable
10
+ from ..Core.Table.arc_table_aux import (Unchecked_tryGetCellAt, get_empty_cell_for_header)
11
+ from ..Core.Table.composite_cell import CompositeCell
12
+ from ..Core.Table.composite_header import CompositeHeader
13
+ from ..FileSystem.file_system import FileSystem
14
+ from ..ROCrate.ldcontext import LDContext
15
+ from ..ROCrate.ldobject import (LDNode, LDGraph)
16
+ from ..ROCrate.LDTypes.lab_process import LDLabProcess
17
+ from ..ROCrate.LDTypes.lab_protocol import LDLabProtocol
18
+ from ..ROCrate.LDTypes.person import LDPerson
19
+ from ..ROCrate.LDTypes.sample import LDSample
20
+ from ..fable_modules.fable_library.int32 import parse
21
+ from ..fable_modules.fable_library.list import (FSharpList, choose, length, empty, map as map_2, sort_by)
22
+ from ..fable_modules.fable_library.option import (map as map_1, default_arg, value as value_2)
23
+ from ..fable_modules.fable_library.reflection import (TypeInfo, class_type)
24
+ from ..fable_modules.fable_library.reg_exp import (get_item, groups)
25
+ from ..fable_modules.fable_library.seq import (indexed, to_list, filter, try_pick, choose as choose_1, map, delay, append, empty as empty_1, singleton)
26
+ from ..fable_modules.fable_library.seq2 import List_groupBy
27
+ from ..fable_modules.fable_library.types import (to_string, Array)
28
+ from ..fable_modules.fable_library.util import (IEnumerable_1, string_hash, compare_primitives)
29
+ from .basic import (BaseTypes_decomposeDefinedTerm_Z2F770004, BaseTypes_composeComponent, BaseTypes_composeParameterValue, BaseTypes_composeFactorValue, BaseTypes_composeCharacteristicValue, BaseTypes_composeDefinedTerm_ZDED3A0F, BaseTypes_composeProcessInput, BaseTypes_composeProcessOutput, BaseTypes_decomposeParameterValue_Z2F770004, BaseTypes_decomposeComponent_Z2F770004, BaseTypes_decomposeCharacteristicValue_Z2F770004, BaseTypes_decomposeFactorValue_Z2F770004, BaseTypes_decomposeProcessInput_Z2F770004, BaseTypes_decomposeProcessOutput_Z2F770004)
30
+ from .column_index import (ARCtrl_ROCrate_LDNode__LDNode_SetColumnIndex_Z524259A4, try_get_index)
31
+
32
+ def _expr4308() -> TypeInfo:
33
+ return class_type("ARCtrl.Conversion.ProcessConversion", None, ProcessConversion)
34
+
35
+
36
+ class ProcessConversion:
37
+ ...
38
+
39
+ ProcessConversion_reflection = _expr4308
40
+
41
+ def ProcessConversion_tryGetProtocolType_Z6839B9E8(pv: LDNode, graph: LDGraph | None=None, context: LDContext | None=None) -> OntologyAnnotation | None:
42
+ match_value: LDNode | None = LDLabProtocol.try_get_intended_use_as_defined_term(pv, graph, context)
43
+ if match_value is None:
44
+ match_value_1: str | None = LDLabProtocol.try_get_intended_use_as_string(pv, context)
45
+ if match_value_1 is None:
46
+ return None
47
+
48
+ else:
49
+ s: str = match_value_1
50
+ return OntologyAnnotation.create(s)
51
+
52
+
53
+ else:
54
+ return BaseTypes_decomposeDefinedTerm_Z2F770004(match_value, context)
55
+
56
+
57
+
58
+ def ProcessConversion_composeProcessName(process_name_root: str, i: int) -> str:
59
+ return ((("" + process_name_root) + "_") + str(i)) + ""
60
+
61
+
62
+ def ProcessConversion_decomposeProcessName_Z721C83C5(name: str) -> tuple[str, int | None]:
63
+ active_pattern_result: Any | None = ActivePatterns__007CRegex_007C__007C("(?<name>.+)_(?<num>\\d+)", name)
64
+ if active_pattern_result is not None:
65
+ r: Any = active_pattern_result
66
+ return (get_item(groups(r), "name") or "", parse(get_item(groups(r), "num") or "", 511, False, 32))
67
+
68
+ else:
69
+ return (name, None)
70
+
71
+
72
+
73
+ def ProcessConversion_tryComponentGetter(general_i: int, value_i: int, value_header: CompositeHeader) -> Callable[[ArcTable, int], LDNode] | None:
74
+ if value_header.tag == 0:
75
+ def Value(table: ArcTable, general_i: Any=general_i, value_i: Any=value_i, value_header: Any=value_header) -> Callable[[int], LDNode]:
76
+ def _arrow4310(i: int, table: Any=table) -> LDNode:
77
+ def _arrow4309(__unit: None=None) -> CompositeCell:
78
+ match_value: CompositeCell | None = Unchecked_tryGetCellAt(general_i, i, table.Values)
79
+ return get_empty_cell_for_header(value_header, None) if (match_value is None) else match_value
80
+
81
+ c: LDNode = BaseTypes_composeComponent(value_header, _arrow4309())
82
+ ARCtrl_ROCrate_LDNode__LDNode_SetColumnIndex_Z524259A4(c, value_i)
83
+ return c
84
+
85
+ return _arrow4310
86
+
87
+ return Value
88
+
89
+ else:
90
+ return None
91
+
92
+
93
+
94
+ def ProcessConversion_tryParameterGetter(general_i: int, value_i: int, value_header: CompositeHeader) -> Callable[[ArcTable, int], LDNode] | None:
95
+ if value_header.tag == 3:
96
+ def Value(table: ArcTable, general_i: Any=general_i, value_i: Any=value_i, value_header: Any=value_header) -> Callable[[int], LDNode]:
97
+ def _arrow4312(i: int, table: Any=table) -> LDNode:
98
+ def _arrow4311(__unit: None=None) -> CompositeCell:
99
+ match_value: CompositeCell | None = Unchecked_tryGetCellAt(general_i, i, table.Values)
100
+ return get_empty_cell_for_header(value_header, None) if (match_value is None) else match_value
101
+
102
+ p: LDNode = BaseTypes_composeParameterValue(value_header, _arrow4311())
103
+ ARCtrl_ROCrate_LDNode__LDNode_SetColumnIndex_Z524259A4(p, value_i)
104
+ return p
105
+
106
+ return _arrow4312
107
+
108
+ return Value
109
+
110
+ else:
111
+ return None
112
+
113
+
114
+
115
+ def ProcessConversion_tryFactorGetter(general_i: int, value_i: int, value_header: CompositeHeader) -> Callable[[ArcTable, int], LDNode] | None:
116
+ if value_header.tag == 2:
117
+ def Value(table: ArcTable, general_i: Any=general_i, value_i: Any=value_i, value_header: Any=value_header) -> Callable[[int], LDNode]:
118
+ def _arrow4314(i: int, table: Any=table) -> LDNode:
119
+ def _arrow4313(__unit: None=None) -> CompositeCell:
120
+ match_value: CompositeCell | None = Unchecked_tryGetCellAt(general_i, i, table.Values)
121
+ return get_empty_cell_for_header(value_header, None) if (match_value is None) else match_value
122
+
123
+ f: LDNode = BaseTypes_composeFactorValue(value_header, _arrow4313())
124
+ ARCtrl_ROCrate_LDNode__LDNode_SetColumnIndex_Z524259A4(f, value_i)
125
+ return f
126
+
127
+ return _arrow4314
128
+
129
+ return Value
130
+
131
+ else:
132
+ return None
133
+
134
+
135
+
136
+ def ProcessConversion_tryCharacteristicGetter(general_i: int, value_i: int, value_header: CompositeHeader) -> Callable[[ArcTable, int], LDNode] | None:
137
+ if value_header.tag == 1:
138
+ def Value(table: ArcTable, general_i: Any=general_i, value_i: Any=value_i, value_header: Any=value_header) -> Callable[[int], LDNode]:
139
+ def _arrow4316(i: int, table: Any=table) -> LDNode:
140
+ def _arrow4315(__unit: None=None) -> CompositeCell:
141
+ match_value: CompositeCell | None = Unchecked_tryGetCellAt(general_i, i, table.Values)
142
+ return get_empty_cell_for_header(value_header, None) if (match_value is None) else match_value
143
+
144
+ c: LDNode = BaseTypes_composeCharacteristicValue(value_header, _arrow4315())
145
+ ARCtrl_ROCrate_LDNode__LDNode_SetColumnIndex_Z524259A4(c, value_i)
146
+ return c
147
+
148
+ return _arrow4316
149
+
150
+ return Value
151
+
152
+ else:
153
+ return None
154
+
155
+
156
+
157
+ def ProcessConversion_tryGetProtocolTypeGetter(general_i: int, header: CompositeHeader) -> Callable[[ArcTable, int], LDNode] | None:
158
+ if header.tag == 4:
159
+ def Value(table: ArcTable, general_i: Any=general_i, header: Any=header) -> Callable[[int], LDNode]:
160
+ def _arrow4319(i: int, table: Any=table) -> LDNode:
161
+ def _arrow4318(__unit: None=None) -> OntologyAnnotation:
162
+ match_value: CompositeCell | None = Unchecked_tryGetCellAt(general_i, i, table.Values)
163
+ if match_value is None:
164
+ return OntologyAnnotation()
165
+
166
+ else:
167
+ cell: CompositeCell = match_value
168
+ return cell.AsTerm
169
+
170
+
171
+ return BaseTypes_composeDefinedTerm_ZDED3A0F(_arrow4318())
172
+
173
+ return _arrow4319
174
+
175
+ return Value
176
+
177
+ else:
178
+ return None
179
+
180
+
181
+
182
+ def ProcessConversion_tryGetProtocolREFGetter(general_i: int, header: CompositeHeader) -> Callable[[ArcTable, int], str] | None:
183
+ if header.tag == 8:
184
+ def Value(table: ArcTable, general_i: Any=general_i, header: Any=header) -> Callable[[int], str]:
185
+ def _arrow4320(i: int, table: Any=table) -> str:
186
+ match_value: CompositeCell | None = Unchecked_tryGetCellAt(general_i, i, table.Values)
187
+ if match_value is None:
188
+ return ""
189
+
190
+ else:
191
+ cell: CompositeCell = match_value
192
+ return cell.AsFreeText
193
+
194
+
195
+ return _arrow4320
196
+
197
+ return Value
198
+
199
+ else:
200
+ return None
201
+
202
+
203
+
204
+ def ProcessConversion_tryGetProtocolDescriptionGetter(general_i: int, header: CompositeHeader) -> Callable[[ArcTable, int], str] | None:
205
+ if header.tag == 5:
206
+ def Value(table: ArcTable, general_i: Any=general_i, header: Any=header) -> Callable[[int], str]:
207
+ def _arrow4321(i: int, table: Any=table) -> str:
208
+ match_value: CompositeCell | None = Unchecked_tryGetCellAt(general_i, i, table.Values)
209
+ if match_value is None:
210
+ return ""
211
+
212
+ else:
213
+ cell: CompositeCell = match_value
214
+ return cell.AsFreeText
215
+
216
+
217
+ return _arrow4321
218
+
219
+ return Value
220
+
221
+ else:
222
+ return None
223
+
224
+
225
+
226
+ def ProcessConversion_tryGetProtocolURIGetter(general_i: int, header: CompositeHeader) -> Callable[[ArcTable, int], str] | None:
227
+ if header.tag == 6:
228
+ def Value(table: ArcTable, general_i: Any=general_i, header: Any=header) -> Callable[[int], str]:
229
+ def _arrow4322(i: int, table: Any=table) -> str:
230
+ match_value: CompositeCell | None = Unchecked_tryGetCellAt(general_i, i, table.Values)
231
+ if match_value is None:
232
+ return ""
233
+
234
+ else:
235
+ cell: CompositeCell = match_value
236
+ return cell.AsFreeText
237
+
238
+
239
+ return _arrow4322
240
+
241
+ return Value
242
+
243
+ else:
244
+ return None
245
+
246
+
247
+
248
+ def ProcessConversion_tryGetProtocolVersionGetter(general_i: int, header: CompositeHeader) -> Callable[[ArcTable, int], str] | None:
249
+ if header.tag == 7:
250
+ def Value(table: ArcTable, general_i: Any=general_i, header: Any=header) -> Callable[[int], str]:
251
+ def _arrow4324(i: int, table: Any=table) -> str:
252
+ match_value: CompositeCell | None = Unchecked_tryGetCellAt(general_i, i, table.Values)
253
+ if match_value is None:
254
+ return ""
255
+
256
+ else:
257
+ cell: CompositeCell = match_value
258
+ return cell.AsFreeText
259
+
260
+
261
+ return _arrow4324
262
+
263
+ return Value
264
+
265
+ else:
266
+ return None
267
+
268
+
269
+
270
+ def ProcessConversion_tryGetInputGetter(general_i: int, header: CompositeHeader, fs: FileSystem | None=None) -> Callable[[ArcTable, int], LDNode] | None:
271
+ if header.tag == 11:
272
+ def Value(table: ArcTable, general_i: Any=general_i, header: Any=header, fs: Any=fs) -> Callable[[int], LDNode]:
273
+ def _arrow4326(i: int, table: Any=table) -> LDNode:
274
+ def _arrow4325(__unit: None=None) -> CompositeCell:
275
+ match_value: CompositeCell | None = Unchecked_tryGetCellAt(general_i, i, table.Values)
276
+ return get_empty_cell_for_header(header, None) if (match_value is None) else match_value
277
+
278
+ return BaseTypes_composeProcessInput(header, _arrow4325(), fs)
279
+
280
+ return _arrow4326
281
+
282
+ return Value
283
+
284
+ else:
285
+ return None
286
+
287
+
288
+
289
+ def ProcessConversion_tryGetOutputGetter(general_i: int, header: CompositeHeader, fs: FileSystem | None=None) -> Callable[[ArcTable, int], LDNode] | None:
290
+ if header.tag == 12:
291
+ def Value(table: ArcTable, general_i: Any=general_i, header: Any=header, fs: Any=fs) -> Callable[[int], LDNode]:
292
+ def _arrow4328(i: int, table: Any=table) -> LDNode:
293
+ def _arrow4327(__unit: None=None) -> CompositeCell:
294
+ match_value: CompositeCell | None = Unchecked_tryGetCellAt(general_i, i, table.Values)
295
+ return get_empty_cell_for_header(header, None) if (match_value is None) else match_value
296
+
297
+ return BaseTypes_composeProcessOutput(header, _arrow4327(), fs)
298
+
299
+ return _arrow4328
300
+
301
+ return Value
302
+
303
+ else:
304
+ return None
305
+
306
+
307
+
308
+ def ProcessConversion_tryGetCommentGetter(general_i: int, header: CompositeHeader) -> Callable[[ArcTable, int], str] | None:
309
+ if header.tag == 14:
310
+ c: str = header.fields[0]
311
+ def Value(table: ArcTable, general_i: Any=general_i, header: Any=header) -> Callable[[int], str]:
312
+ def _arrow4330(i: int, table: Any=table) -> str:
313
+ def _arrow4329(__unit: None=None) -> Comment:
314
+ match_value: CompositeCell | None = Unchecked_tryGetCellAt(general_i, i, table.Values)
315
+ if match_value is None:
316
+ return Comment(c)
317
+
318
+ else:
319
+ cell: CompositeCell = match_value
320
+ return Comment(c, cell.AsFreeText)
321
+
322
+
323
+ return to_string(_arrow4329())
324
+
325
+ return _arrow4330
326
+
327
+ return Value
328
+
329
+ else:
330
+ return None
331
+
332
+
333
+
334
+ def ProcessConversion_tryGetPerformerGetter(general_i: int, header: CompositeHeader) -> Callable[[ArcTable, int], LDNode] | None:
335
+ if header.tag == 9:
336
+ def Value(table: ArcTable, general_i: Any=general_i, header: Any=header) -> Callable[[int], LDNode]:
337
+ def _arrow4331(i: int, table: Any=table) -> LDNode:
338
+ performer: str
339
+ match_value: CompositeCell | None = Unchecked_tryGetCellAt(general_i, i, table.Values)
340
+ if match_value is None:
341
+ performer = ""
342
+
343
+ else:
344
+ cell: CompositeCell = match_value
345
+ performer = cell.AsFreeText
346
+
347
+ return LDPerson.create(performer)
348
+
349
+ return _arrow4331
350
+
351
+ return Value
352
+
353
+ else:
354
+ return None
355
+
356
+
357
+
358
+ def ProcessConversion_getProcessGetter(assay_name: str | None, study_name: str | None, process_name_root: str, headers: IEnumerable_1[CompositeHeader], fs: FileSystem | None=None) -> Callable[[ArcTable, int], LDNode]:
359
+ headers_1: IEnumerable_1[tuple[int, CompositeHeader]] = indexed(headers)
360
+ def predicate(arg: tuple[int, CompositeHeader], assay_name: Any=assay_name, study_name: Any=study_name, process_name_root: Any=process_name_root, headers: Any=headers, fs: Any=fs) -> bool:
361
+ return arg[1].IsCvParamColumn
362
+
363
+ value_headers: FSharpList[tuple[int, tuple[int, CompositeHeader]]] = to_list(indexed(filter(predicate, headers_1)))
364
+ def chooser(tupled_arg: tuple[int, tuple[int, CompositeHeader]], assay_name: Any=assay_name, study_name: Any=study_name, process_name_root: Any=process_name_root, headers: Any=headers, fs: Any=fs) -> Callable[[ArcTable, int], LDNode] | None:
365
+ _arg: tuple[int, CompositeHeader] = tupled_arg[1]
366
+ return ProcessConversion_tryCharacteristicGetter(_arg[0], tupled_arg[0], _arg[1])
367
+
368
+ char_getters: FSharpList[Callable[[ArcTable, int], LDNode]] = choose(chooser, value_headers)
369
+ def chooser_1(tupled_arg_1: tuple[int, tuple[int, CompositeHeader]], assay_name: Any=assay_name, study_name: Any=study_name, process_name_root: Any=process_name_root, headers: Any=headers, fs: Any=fs) -> Callable[[ArcTable, int], LDNode] | None:
370
+ _arg_1: tuple[int, CompositeHeader] = tupled_arg_1[1]
371
+ return ProcessConversion_tryFactorGetter(_arg_1[0], tupled_arg_1[0], _arg_1[1])
372
+
373
+ factor_value_getters: FSharpList[Callable[[ArcTable, int], LDNode]] = choose(chooser_1, value_headers)
374
+ def chooser_2(tupled_arg_2: tuple[int, tuple[int, CompositeHeader]], assay_name: Any=assay_name, study_name: Any=study_name, process_name_root: Any=process_name_root, headers: Any=headers, fs: Any=fs) -> Callable[[ArcTable, int], LDNode] | None:
375
+ _arg_2: tuple[int, CompositeHeader] = tupled_arg_2[1]
376
+ return ProcessConversion_tryParameterGetter(_arg_2[0], tupled_arg_2[0], _arg_2[1])
377
+
378
+ parameter_value_getters: FSharpList[Callable[[ArcTable, int], LDNode]] = choose(chooser_2, value_headers)
379
+ def chooser_3(tupled_arg_3: tuple[int, tuple[int, CompositeHeader]], assay_name: Any=assay_name, study_name: Any=study_name, process_name_root: Any=process_name_root, headers: Any=headers, fs: Any=fs) -> Callable[[ArcTable, int], LDNode] | None:
380
+ _arg_3: tuple[int, CompositeHeader] = tupled_arg_3[1]
381
+ return ProcessConversion_tryComponentGetter(_arg_3[0], tupled_arg_3[0], _arg_3[1])
382
+
383
+ component_getters: FSharpList[Callable[[ArcTable, int], LDNode]] = choose(chooser_3, value_headers)
384
+ def chooser_4(tupled_arg_4: tuple[int, CompositeHeader], assay_name: Any=assay_name, study_name: Any=study_name, process_name_root: Any=process_name_root, headers: Any=headers, fs: Any=fs) -> Callable[[ArcTable, int], LDNode] | None:
385
+ return ProcessConversion_tryGetProtocolTypeGetter(tupled_arg_4[0], tupled_arg_4[1])
386
+
387
+ protocol_type_getter: Callable[[ArcTable, int], LDNode] | None = try_pick(chooser_4, headers_1)
388
+ def chooser_5(tupled_arg_5: tuple[int, CompositeHeader], assay_name: Any=assay_name, study_name: Any=study_name, process_name_root: Any=process_name_root, headers: Any=headers, fs: Any=fs) -> Callable[[ArcTable, int], str] | None:
389
+ return ProcessConversion_tryGetProtocolREFGetter(tupled_arg_5[0], tupled_arg_5[1])
390
+
391
+ protocol_refgetter: Callable[[ArcTable, int], str] | None = try_pick(chooser_5, headers_1)
392
+ def chooser_6(tupled_arg_6: tuple[int, CompositeHeader], assay_name: Any=assay_name, study_name: Any=study_name, process_name_root: Any=process_name_root, headers: Any=headers, fs: Any=fs) -> Callable[[ArcTable, int], str] | None:
393
+ return ProcessConversion_tryGetProtocolDescriptionGetter(tupled_arg_6[0], tupled_arg_6[1])
394
+
395
+ protocol_description_getter: Callable[[ArcTable, int], str] | None = try_pick(chooser_6, headers_1)
396
+ def chooser_7(tupled_arg_7: tuple[int, CompositeHeader], assay_name: Any=assay_name, study_name: Any=study_name, process_name_root: Any=process_name_root, headers: Any=headers, fs: Any=fs) -> Callable[[ArcTable, int], str] | None:
397
+ return ProcessConversion_tryGetProtocolURIGetter(tupled_arg_7[0], tupled_arg_7[1])
398
+
399
+ protocol_urigetter: Callable[[ArcTable, int], str] | None = try_pick(chooser_7, headers_1)
400
+ def chooser_8(tupled_arg_8: tuple[int, CompositeHeader], assay_name: Any=assay_name, study_name: Any=study_name, process_name_root: Any=process_name_root, headers: Any=headers, fs: Any=fs) -> Callable[[ArcTable, int], str] | None:
401
+ return ProcessConversion_tryGetProtocolVersionGetter(tupled_arg_8[0], tupled_arg_8[1])
402
+
403
+ protocol_version_getter: Callable[[ArcTable, int], str] | None = try_pick(chooser_8, headers_1)
404
+ def chooser_9(tupled_arg_9: tuple[int, CompositeHeader], assay_name: Any=assay_name, study_name: Any=study_name, process_name_root: Any=process_name_root, headers: Any=headers, fs: Any=fs) -> Callable[[ArcTable, int], LDNode] | None:
405
+ return ProcessConversion_tryGetPerformerGetter(tupled_arg_9[0], tupled_arg_9[1])
406
+
407
+ performer_getter: Callable[[ArcTable, int], LDNode] | None = try_pick(chooser_9, headers_1)
408
+ def chooser_10(tupled_arg_10: tuple[int, CompositeHeader], assay_name: Any=assay_name, study_name: Any=study_name, process_name_root: Any=process_name_root, headers: Any=headers, fs: Any=fs) -> Callable[[ArcTable, int], str] | None:
409
+ return ProcessConversion_tryGetCommentGetter(tupled_arg_10[0], tupled_arg_10[1])
410
+
411
+ comment_getters: FSharpList[Callable[[ArcTable, int], str]] = to_list(choose_1(chooser_10, headers_1))
412
+ input_getter_1: Callable[[ArcTable, int], Array[LDNode]]
413
+ def chooser_11(tupled_arg_11: tuple[int, CompositeHeader], assay_name: Any=assay_name, study_name: Any=study_name, process_name_root: Any=process_name_root, headers: Any=headers, fs: Any=fs) -> Callable[[ArcTable, int], LDNode] | None:
414
+ return ProcessConversion_tryGetInputGetter(tupled_arg_11[0], tupled_arg_11[1], fs)
415
+
416
+ match_value: Callable[[ArcTable, int], LDNode] | None = try_pick(chooser_11, headers_1)
417
+ if match_value is None:
418
+ def _arrow4333(table_1: ArcTable, assay_name: Any=assay_name, study_name: Any=study_name, process_name_root: Any=process_name_root, headers: Any=headers, fs: Any=fs) -> Callable[[int], Array[LDNode]]:
419
+ def _arrow4332(i_1: int) -> Array[LDNode]:
420
+ def mapping_1(f_1: Callable[[ArcTable, int], LDNode]) -> LDNode:
421
+ return f_1(table_1)(i_1)
422
+
423
+ chars_1: Array[LDNode] = list(map(mapping_1, char_getters))
424
+ return ResizeArray_singleton(LDSample.create_sample(((("" + process_name_root) + "_Input_") + str(i_1)) + "", None, chars_1))
425
+
426
+ return _arrow4332
427
+
428
+ def _arrow4335(table_2: ArcTable, assay_name: Any=assay_name, study_name: Any=study_name, process_name_root: Any=process_name_root, headers: Any=headers, fs: Any=fs) -> Callable[[int], Array[LDNode]]:
429
+ def _arrow4334(i_2: int) -> Array[LDNode]:
430
+ return []
431
+
432
+ return _arrow4334
433
+
434
+ input_getter_1 = _arrow4333 if (length(char_getters) != 0) else _arrow4335
435
+
436
+ else:
437
+ input_getter: Callable[[ArcTable, int], LDNode] = match_value
438
+ def _arrow4337(table: ArcTable, assay_name: Any=assay_name, study_name: Any=study_name, process_name_root: Any=process_name_root, headers: Any=headers, fs: Any=fs) -> Callable[[int], Array[LDNode]]:
439
+ def _arrow4336(i: int) -> Array[LDNode]:
440
+ def mapping(f: Callable[[ArcTable, int], LDNode]) -> LDNode:
441
+ return f(table)(i)
442
+
443
+ chars: Array[LDNode] = list(map(mapping, char_getters))
444
+ input: LDNode = input_getter(table)(i)
445
+ if len(chars) > 0:
446
+ LDSample.set_additional_properties(input, chars)
447
+
448
+ return ResizeArray_singleton(input)
449
+
450
+ return _arrow4336
451
+
452
+ input_getter_1 = _arrow4337
453
+
454
+ output_getter_1: Callable[[ArcTable, int], Array[LDNode]]
455
+ def chooser_12(tupled_arg_12: tuple[int, CompositeHeader], assay_name: Any=assay_name, study_name: Any=study_name, process_name_root: Any=process_name_root, headers: Any=headers, fs: Any=fs) -> Callable[[ArcTable, int], LDNode] | None:
456
+ return ProcessConversion_tryGetOutputGetter(tupled_arg_12[0], tupled_arg_12[1], fs)
457
+
458
+ match_value_1: Callable[[ArcTable, int], LDNode] | None = try_pick(chooser_12, headers_1)
459
+ if match_value_1 is None:
460
+ def _arrow4339(table_4: ArcTable, assay_name: Any=assay_name, study_name: Any=study_name, process_name_root: Any=process_name_root, headers: Any=headers, fs: Any=fs) -> Callable[[int], Array[LDNode]]:
461
+ def _arrow4338(i_4: int) -> Array[LDNode]:
462
+ def mapping_3(f_3: Callable[[ArcTable, int], LDNode]) -> LDNode:
463
+ return f_3(table_4)(i_4)
464
+
465
+ factors_1: Array[LDNode] = list(map(mapping_3, factor_value_getters))
466
+ return ResizeArray_singleton(LDSample.create_sample(((("" + process_name_root) + "_Output_") + str(i_4)) + "", None, factors_1))
467
+
468
+ return _arrow4338
469
+
470
+ def _arrow4341(table_5: ArcTable, assay_name: Any=assay_name, study_name: Any=study_name, process_name_root: Any=process_name_root, headers: Any=headers, fs: Any=fs) -> Callable[[int], Array[LDNode]]:
471
+ def _arrow4340(i_5: int) -> Array[LDNode]:
472
+ return []
473
+
474
+ return _arrow4340
475
+
476
+ output_getter_1 = _arrow4339 if (length(factor_value_getters) != 0) else _arrow4341
477
+
478
+ else:
479
+ output_getter: Callable[[ArcTable, int], LDNode] = match_value_1
480
+ def _arrow4343(table_3: ArcTable, assay_name: Any=assay_name, study_name: Any=study_name, process_name_root: Any=process_name_root, headers: Any=headers, fs: Any=fs) -> Callable[[int], Array[LDNode]]:
481
+ def _arrow4342(i_3: int) -> Array[LDNode]:
482
+ def mapping_2(f_2: Callable[[ArcTable, int], LDNode]) -> LDNode:
483
+ return f_2(table_3)(i_3)
484
+
485
+ factors: Array[LDNode] = list(map(mapping_2, factor_value_getters))
486
+ output: LDNode = output_getter(table_3)(i_3)
487
+ if len(factors) > 0:
488
+ LDSample.set_additional_properties(output, factors)
489
+
490
+ return ResizeArray_singleton(output)
491
+
492
+ return _arrow4342
493
+
494
+ output_getter_1 = _arrow4343
495
+
496
+ def _arrow4345(table_6: ArcTable, assay_name: Any=assay_name, study_name: Any=study_name, process_name_root: Any=process_name_root, headers: Any=headers, fs: Any=fs) -> Callable[[int], LDNode]:
497
+ def _arrow4344(i_6: int) -> LDNode:
498
+ pn: str = process_name_root if (table_6.RowCount == 1) else ProcessConversion_composeProcessName(process_name_root, i_6)
499
+ def mapping_4(f_4: Callable[[ArcTable, int], LDNode]) -> LDNode:
500
+ return f_4(table_6)(i_6)
501
+
502
+ paramvalues: Array[LDNode] | None = map_1(list, Option_fromValueWithDefault(empty(), map_2(mapping_4, parameter_value_getters)))
503
+ def mapping_6(f_5: Callable[[ArcTable, int], str]) -> str:
504
+ return f_5(table_6)(i_6)
505
+
506
+ comments: Array[str] | None = map_1(list, Option_fromValueWithDefault(empty(), map_2(mapping_6, comment_getters)))
507
+ def mapping_8(f_6: Callable[[ArcTable, int], LDNode]) -> LDNode:
508
+ return f_6(table_6)(i_6)
509
+
510
+ components: Array[LDNode] | None = map_1(list, Option_fromValueWithDefault(empty(), map_2(mapping_8, component_getters)))
511
+ id: str = LDLabProcess.gen_id(process_name_root, assay_name, study_name) + (("_" + str(i_6)) + "")
512
+ protocol: LDNode | None
513
+ def mapping_10(f_7: Callable[[ArcTable, int], str]) -> str:
514
+ return f_7(table_6)(i_6)
515
+
516
+ name: str | None = map_1(mapping_10, protocol_refgetter)
517
+ protocol_id: str = LDLabProtocol.gen_id(name, process_name_root)
518
+ def mapping_11(f_8: Callable[[ArcTable, int], str]) -> str:
519
+ return f_8(table_6)(i_6)
520
+
521
+ def mapping_12(f_9: Callable[[ArcTable, int], LDNode]) -> LDNode:
522
+ return f_9(table_6)(i_6)
523
+
524
+ def mapping_13(f_10: Callable[[ArcTable, int], str]) -> str:
525
+ return f_10(table_6)(i_6)
526
+
527
+ def mapping_14(f_11: Callable[[ArcTable, int], str]) -> str:
528
+ return f_11(table_6)(i_6)
529
+
530
+ protocol = LDLabProtocol.create(protocol_id, name, map_1(mapping_11, protocol_description_getter), map_1(mapping_12, protocol_type_getter), None, None, components, None, map_1(mapping_13, protocol_urigetter), map_1(mapping_14, protocol_version_getter))
531
+ match_value: Array[LDNode] = input_getter_1(table_6)(i_6)
532
+ match_value_1: Array[LDNode] = output_getter_1(table_6)(i_6)
533
+ def mapping_15(f_12: Callable[[ArcTable, int], LDNode]) -> LDNode:
534
+ return f_12(table_6)(i_6)
535
+
536
+ agent: LDNode | None = map_1(mapping_15, performer_getter)
537
+ return LDLabProcess.create(pn, match_value, match_value_1, id, agent, protocol, paramvalues, None, comments)
538
+
539
+ return _arrow4344
540
+
541
+ return _arrow4345
542
+
543
+
544
+ def ProcessConversion_groupProcesses_Z27F0B586(processes: FSharpList[LDNode], graph: LDGraph | None=None, context: LDContext | None=None) -> FSharpList[tuple[str, FSharpList[LDNode]]]:
545
+ def projection(p: LDNode, processes: Any=processes, graph: Any=graph, context: Any=context) -> str:
546
+ match_value: str | None = LDLabProcess.try_get_name_as_string(p, context)
547
+ match_value_1: LDNode | None = LDLabProcess.try_get_executes_lab_protocol(p, graph, context)
548
+ (pattern_matching_result, name_1, protocol_2, name_2, protocol_3) = (None, None, None, None, None)
549
+ if match_value is not None:
550
+ if ProcessConversion_decomposeProcessName_Z721C83C5(match_value)[1] is not None:
551
+ pattern_matching_result = 0
552
+ name_1 = match_value
553
+
554
+ elif match_value_1 is not None:
555
+ def _arrow4346(__unit: None=None, p: Any=p) -> bool:
556
+ protocol: LDNode = match_value_1
557
+ return LDLabProtocol.try_get_name_as_string(protocol, context) is not None
558
+
559
+ if _arrow4346():
560
+ pattern_matching_result = 1
561
+ protocol_2 = match_value_1
562
+
563
+ else:
564
+ pattern_matching_result = 2
565
+ name_2 = match_value
566
+
567
+
568
+ else:
569
+ pattern_matching_result = 2
570
+ name_2 = match_value
571
+
572
+
573
+ elif match_value_1 is not None:
574
+ def _arrow4347(__unit: None=None, p: Any=p) -> bool:
575
+ protocol_1: LDNode = match_value_1
576
+ return LDLabProtocol.try_get_name_as_string(protocol_1, context) is not None
577
+
578
+ if _arrow4347():
579
+ pattern_matching_result = 1
580
+ protocol_2 = match_value_1
581
+
582
+ else:
583
+ pattern_matching_result = 3
584
+ protocol_3 = match_value_1
585
+
586
+
587
+ else:
588
+ pattern_matching_result = 4
589
+
590
+ if pattern_matching_result == 0:
591
+ return ProcessConversion_decomposeProcessName_Z721C83C5(name_1)[0]
592
+
593
+ elif pattern_matching_result == 1:
594
+ return default_arg(LDLabProtocol.try_get_name_as_string(protocol_2, context), "")
595
+
596
+ elif pattern_matching_result == 2:
597
+ return name_2
598
+
599
+ elif pattern_matching_result == 3:
600
+ return protocol_3.Id
601
+
602
+ elif pattern_matching_result == 4:
603
+ return create_missing_identifier()
604
+
605
+
606
+ class ObjectExpr4349:
607
+ @property
608
+ def Equals(self) -> Callable[[str, str], bool]:
609
+ def _arrow4348(x: str, y: str) -> bool:
610
+ return x == y
611
+
612
+ return _arrow4348
613
+
614
+ @property
615
+ def GetHashCode(self) -> Callable[[str], int]:
616
+ return string_hash
617
+
618
+ return List_groupBy(projection, processes, ObjectExpr4349())
619
+
620
+
621
+ def ProcessConversion_processToRows_Z6839B9E8(p: LDNode, graph: LDGraph | None=None, context: LDContext | None=None) -> Array[FSharpList[tuple[CompositeHeader, CompositeCell]]]:
622
+ def f(ppv: LDNode, p: Any=p, graph: Any=graph, context: Any=context) -> tuple[tuple[CompositeHeader, CompositeCell], int | None]:
623
+ return (BaseTypes_decomposeParameterValue_Z2F770004(ppv, context), try_get_index(ppv))
624
+
625
+ pvs: Array[tuple[tuple[CompositeHeader, CompositeCell], int | None]] = ResizeArray_map(f, LDLabProcess.get_parameter_values(p, graph, context))
626
+ components: Array[tuple[tuple[CompositeHeader, CompositeCell], int | None]]
627
+ match_value: LDNode | None = LDLabProcess.try_get_executes_lab_protocol(p, graph, context)
628
+ if match_value is None:
629
+ components = []
630
+
631
+ else:
632
+ prot: LDNode = match_value
633
+ def f_1(ppv_1: LDNode, p: Any=p, graph: Any=graph, context: Any=context) -> tuple[tuple[CompositeHeader, CompositeCell], int | None]:
634
+ return (BaseTypes_decomposeComponent_Z2F770004(ppv_1, context), try_get_index(ppv_1))
635
+
636
+ components = ResizeArray_map(f_1, LDLabProtocol.get_components(prot, graph, context))
637
+
638
+ prot_vals: FSharpList[tuple[CompositeHeader, CompositeCell]]
639
+ match_value_1: LDNode | None = LDLabProcess.try_get_executes_lab_protocol(p, graph, context)
640
+ if match_value_1 is None:
641
+ prot_vals = empty()
642
+
643
+ else:
644
+ prot_1: LDNode = match_value_1
645
+ def _arrow4358(__unit: None=None, p: Any=p, graph: Any=graph, context: Any=context) -> IEnumerable_1[tuple[CompositeHeader, CompositeCell]]:
646
+ def _arrow4350(__unit: None=None) -> IEnumerable_1[tuple[CompositeHeader, CompositeCell]]:
647
+ match_value_2: str | None = LDLabProtocol.try_get_name_as_string(prot_1, context)
648
+ if match_value_2 is None:
649
+ return empty_1()
650
+
651
+ else:
652
+ return singleton((CompositeHeader(8), CompositeCell(1, match_value_2)))
653
+
654
+
655
+ def _arrow4357(__unit: None=None) -> IEnumerable_1[tuple[CompositeHeader, CompositeCell]]:
656
+ def _arrow4351(__unit: None=None) -> IEnumerable_1[tuple[CompositeHeader, CompositeCell]]:
657
+ match_value_3: str | None = LDLabProtocol.try_get_description_as_string(prot_1, context)
658
+ if match_value_3 is None:
659
+ return empty_1()
660
+
661
+ else:
662
+ return singleton((CompositeHeader(5), CompositeCell(1, match_value_3)))
663
+
664
+
665
+ def _arrow4356(__unit: None=None) -> IEnumerable_1[tuple[CompositeHeader, CompositeCell]]:
666
+ def _arrow4352(__unit: None=None) -> IEnumerable_1[tuple[CompositeHeader, CompositeCell]]:
667
+ match_value_4: str | None = LDLabProtocol.try_get_url(prot_1, context)
668
+ if match_value_4 is None:
669
+ return empty_1()
670
+
671
+ else:
672
+ return singleton((CompositeHeader(6), CompositeCell(1, match_value_4)))
673
+
674
+
675
+ def _arrow4355(__unit: None=None) -> IEnumerable_1[tuple[CompositeHeader, CompositeCell]]:
676
+ def _arrow4353(__unit: None=None) -> IEnumerable_1[tuple[CompositeHeader, CompositeCell]]:
677
+ match_value_5: str | None = LDLabProtocol.try_get_version_as_string(prot_1, context)
678
+ if match_value_5 is None:
679
+ return empty_1()
680
+
681
+ else:
682
+ return singleton((CompositeHeader(7), CompositeCell(1, match_value_5)))
683
+
684
+
685
+ def _arrow4354(__unit: None=None) -> IEnumerable_1[tuple[CompositeHeader, CompositeCell]]:
686
+ match_value_6: OntologyAnnotation | None = ProcessConversion_tryGetProtocolType_Z6839B9E8(prot_1, graph, context)
687
+ if match_value_6 is None:
688
+ return empty_1()
689
+
690
+ else:
691
+ return singleton((CompositeHeader(4), CompositeCell(0, match_value_6)))
692
+
693
+
694
+ return append(_arrow4353(), delay(_arrow4354))
695
+
696
+ return append(_arrow4352(), delay(_arrow4355))
697
+
698
+ return append(_arrow4351(), delay(_arrow4356))
699
+
700
+ return append(_arrow4350(), delay(_arrow4357))
701
+
702
+ prot_vals = to_list(delay(_arrow4358))
703
+
704
+ def f_2(c: str, p: Any=p, graph: Any=graph, context: Any=context) -> tuple[CompositeHeader, CompositeCell]:
705
+ c_1: Comment = Comment.from_string(c)
706
+ return (CompositeHeader(14, default_arg(c_1.Name, "")), CompositeCell(1, default_arg(c_1.Value, "")))
707
+
708
+ comments: Array[tuple[CompositeHeader, CompositeCell]] = ResizeArray_map(f_2, LDLabProcess.get_disambiguating_descriptions_as_string(p, context))
709
+ inputs: Array[LDNode] = LDLabProcess.get_objects(p, graph, context)
710
+ outputs: Array[LDNode] = LDLabProcess.get_results(p, graph, context)
711
+ def _arrow4359(Value: LDNode, p: Any=p, graph: Any=graph, context: Any=context) -> LDNode | None:
712
+ return Value
713
+
714
+ def _arrow4360(Value_1: LDNode, p: Any=p, graph: Any=graph, context: Any=context) -> LDNode | None:
715
+ return Value_1
716
+
717
+ def _arrow4361(Value_2: LDNode, p: Any=p, graph: Any=graph, context: Any=context) -> LDNode | None:
718
+ return Value_2
719
+
720
+ def _arrow4362(Value_3: LDNode, p: Any=p, graph: Any=graph, context: Any=context) -> LDNode | None:
721
+ return Value_3
722
+
723
+ pattern_input: tuple[Array[LDNode | None], Array[LDNode | None]] = ((ResizeArray_create(len(outputs), None), ResizeArray_map(_arrow4359, outputs))) if ((len(outputs) != 0) if (len(inputs) == 0) else False) else (((ResizeArray_map(_arrow4360, inputs), ResizeArray_create(len(inputs), None))) if ((len(outputs) == 0) if (len(inputs) != 0) else False) else ((ResizeArray_map(_arrow4361, inputs), ResizeArray_map(_arrow4362, outputs))))
724
+ outputs_1: Array[LDNode | None] = pattern_input[1]
725
+ inputs_1: Array[LDNode | None] = pattern_input[0]
726
+ if (len(outputs_1) == 0) if (len(inputs_1) == 0) else False:
727
+ def mapping(tuple_1: tuple[tuple[CompositeHeader, CompositeCell], int | None], p: Any=p, graph: Any=graph, context: Any=context) -> tuple[CompositeHeader, CompositeCell]:
728
+ return tuple_1[0]
729
+
730
+ def projection(arg: tuple[tuple[CompositeHeader, CompositeCell], int | None], p: Any=p, graph: Any=graph, context: Any=context) -> int:
731
+ return default_arg(arg[1], 10000)
732
+
733
+ def _arrow4364(__unit: None=None, p: Any=p, graph: Any=graph, context: Any=context) -> IEnumerable_1[tuple[tuple[CompositeHeader, CompositeCell], int | None]]:
734
+ def _arrow4363(__unit: None=None) -> IEnumerable_1[tuple[tuple[CompositeHeader, CompositeCell], int | None]]:
735
+ return pvs
736
+
737
+ return append(components, delay(_arrow4363))
738
+
739
+ class ObjectExpr4365:
740
+ @property
741
+ def Compare(self) -> Callable[[int, int], int]:
742
+ return compare_primitives
743
+
744
+ vals: FSharpList[tuple[CompositeHeader, CompositeCell]] = map_2(mapping, sort_by(projection, to_list(delay(_arrow4364)), ObjectExpr4365()))
745
+ def _arrow4368(__unit: None=None, p: Any=p, graph: Any=graph, context: Any=context) -> IEnumerable_1[tuple[CompositeHeader, CompositeCell]]:
746
+ def _arrow4367(__unit: None=None) -> IEnumerable_1[tuple[CompositeHeader, CompositeCell]]:
747
+ def _arrow4366(__unit: None=None) -> IEnumerable_1[tuple[CompositeHeader, CompositeCell]]:
748
+ return comments
749
+
750
+ return append(vals, delay(_arrow4366))
751
+
752
+ return append(prot_vals, delay(_arrow4367))
753
+
754
+ return ResizeArray_singleton(to_list(delay(_arrow4368)))
755
+
756
+ else:
757
+ def f_5(tupled_arg: tuple[LDNode | None, LDNode | None], p: Any=p, graph: Any=graph, context: Any=context) -> FSharpList[tuple[CompositeHeader, CompositeCell]]:
758
+ i: LDNode | None = tupled_arg[0]
759
+ o: LDNode | None = tupled_arg[1]
760
+ chars: Array[tuple[tuple[CompositeHeader, CompositeCell], int | None]]
761
+ if i is None:
762
+ chars = []
763
+
764
+ else:
765
+ i_1: LDNode = i
766
+ def f_3(cv: LDNode, tupled_arg: Any=tupled_arg) -> tuple[tuple[CompositeHeader, CompositeCell], int | None]:
767
+ return (BaseTypes_decomposeCharacteristicValue_Z2F770004(cv, context), try_get_index(cv))
768
+
769
+ chars = ResizeArray_map(f_3, LDSample.get_characteristics(i_1, graph, context))
770
+
771
+ factors: Array[tuple[tuple[CompositeHeader, CompositeCell], int | None]]
772
+ if o is None:
773
+ factors = []
774
+
775
+ else:
776
+ o_1: LDNode = o
777
+ def f_4(fv: LDNode, tupled_arg: Any=tupled_arg) -> tuple[tuple[CompositeHeader, CompositeCell], int | None]:
778
+ return (BaseTypes_decomposeFactorValue_Z2F770004(fv, context), try_get_index(fv))
779
+
780
+ factors = ResizeArray_map(f_4, LDSample.get_factors(o_1, graph, context))
781
+
782
+ def mapping_1(tuple_3: tuple[tuple[CompositeHeader, CompositeCell], int | None], tupled_arg: Any=tupled_arg) -> tuple[CompositeHeader, CompositeCell]:
783
+ return tuple_3[0]
784
+
785
+ def projection_1(arg_1: tuple[tuple[CompositeHeader, CompositeCell], int | None], tupled_arg: Any=tupled_arg) -> int:
786
+ return default_arg(arg_1[1], 10000)
787
+
788
+ def _arrow4372(__unit: None=None, tupled_arg: Any=tupled_arg) -> IEnumerable_1[tuple[tuple[CompositeHeader, CompositeCell], int | None]]:
789
+ def _arrow4371(__unit: None=None) -> IEnumerable_1[tuple[tuple[CompositeHeader, CompositeCell], int | None]]:
790
+ def _arrow4370(__unit: None=None) -> IEnumerable_1[tuple[tuple[CompositeHeader, CompositeCell], int | None]]:
791
+ def _arrow4369(__unit: None=None) -> IEnumerable_1[tuple[tuple[CompositeHeader, CompositeCell], int | None]]:
792
+ return factors
793
+
794
+ return append(pvs, delay(_arrow4369))
795
+
796
+ return append(components, delay(_arrow4370))
797
+
798
+ return append(chars, delay(_arrow4371))
799
+
800
+ class ObjectExpr4373:
801
+ @property
802
+ def Compare(self) -> Callable[[int, int], int]:
803
+ return compare_primitives
804
+
805
+ vals_1: FSharpList[tuple[CompositeHeader, CompositeCell]] = map_2(mapping_1, sort_by(projection_1, to_list(delay(_arrow4372)), ObjectExpr4373()))
806
+ def _arrow4378(__unit: None=None, tupled_arg: Any=tupled_arg) -> IEnumerable_1[tuple[CompositeHeader, CompositeCell]]:
807
+ def _arrow4377(__unit: None=None) -> IEnumerable_1[tuple[CompositeHeader, CompositeCell]]:
808
+ def _arrow4376(__unit: None=None) -> IEnumerable_1[tuple[CompositeHeader, CompositeCell]]:
809
+ def _arrow4375(__unit: None=None) -> IEnumerable_1[tuple[CompositeHeader, CompositeCell]]:
810
+ def _arrow4374(__unit: None=None) -> IEnumerable_1[tuple[CompositeHeader, CompositeCell]]:
811
+ return singleton(BaseTypes_decomposeProcessOutput_Z2F770004(value_2(o), context)) if (o is not None) else empty_1()
812
+
813
+ return append(comments, delay(_arrow4374))
814
+
815
+ return append(vals_1, delay(_arrow4375))
816
+
817
+ return append(prot_vals, delay(_arrow4376))
818
+
819
+ return append(singleton(BaseTypes_decomposeProcessInput_Z2F770004(value_2(i), context)) if (i is not None) else empty_1(), delay(_arrow4377))
820
+
821
+ return to_list(delay(_arrow4378))
822
+
823
+ return ResizeArray_map(f_5, ResizeArray_zip(inputs_1, outputs_1))
824
+
825
+
826
+
827
+ __all__ = ["ProcessConversion_reflection", "ProcessConversion_tryGetProtocolType_Z6839B9E8", "ProcessConversion_composeProcessName", "ProcessConversion_decomposeProcessName_Z721C83C5", "ProcessConversion_tryComponentGetter", "ProcessConversion_tryParameterGetter", "ProcessConversion_tryFactorGetter", "ProcessConversion_tryCharacteristicGetter", "ProcessConversion_tryGetProtocolTypeGetter", "ProcessConversion_tryGetProtocolREFGetter", "ProcessConversion_tryGetProtocolDescriptionGetter", "ProcessConversion_tryGetProtocolURIGetter", "ProcessConversion_tryGetProtocolVersionGetter", "ProcessConversion_tryGetInputGetter", "ProcessConversion_tryGetOutputGetter", "ProcessConversion_tryGetCommentGetter", "ProcessConversion_tryGetPerformerGetter", "ProcessConversion_getProcessGetter", "ProcessConversion_groupProcesses_Z27F0B586", "ProcessConversion_processToRows_Z6839B9E8"]
828
+