arctrl 3.0.0a3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (456) hide show
  1. arctrl/__init__.py +18 -0
  2. arctrl/py/CWL/__init__.py +0 -0
  3. arctrl/py/CWL/cwltypes.py +150 -0
  4. arctrl/py/CWL/decode.py +973 -0
  5. arctrl/py/CWL/encode.py +1 -0
  6. arctrl/py/CWL/inputs.py +88 -0
  7. arctrl/py/CWL/outputs.py +85 -0
  8. arctrl/py/CWL/requirements.py +77 -0
  9. arctrl/py/CWL/tool_description.py +103 -0
  10. arctrl/py/CWL/workflow_description.py +104 -0
  11. arctrl/py/CWL/workflow_steps.py +113 -0
  12. arctrl/py/Contract/__init__.py +0 -0
  13. arctrl/py/Contract/arc.py +60 -0
  14. arctrl/py/Contract/arc_assay.py +125 -0
  15. arctrl/py/Contract/arc_investigation.py +88 -0
  16. arctrl/py/Contract/arc_run.py +125 -0
  17. arctrl/py/Contract/arc_study.py +126 -0
  18. arctrl/py/Contract/arc_workflow.py +125 -0
  19. arctrl/py/Contract/contract.py +153 -0
  20. arctrl/py/Contract/datamap.py +372 -0
  21. arctrl/py/Contract/git.py +118 -0
  22. arctrl/py/Contract/validation_packages_config.py +107 -0
  23. arctrl/py/ContractIO/__init__.py +0 -0
  24. arctrl/py/ContractIO/contract_io.py +344 -0
  25. arctrl/py/ContractIO/file_system_helper.py +264 -0
  26. arctrl/py/Core/Helper/__init__.py +0 -0
  27. arctrl/py/Core/Helper/collections_.py +438 -0
  28. arctrl/py/Core/Helper/date_time.py +26 -0
  29. arctrl/py/Core/Helper/hash_codes.py +60 -0
  30. arctrl/py/Core/Helper/identifier.py +248 -0
  31. arctrl/py/Core/Helper/orcid.py +42 -0
  32. arctrl/py/Core/Helper/printer.py +13 -0
  33. arctrl/py/Core/Helper/regex.py +554 -0
  34. arctrl/py/Core/Helper/sem_ver.py +71 -0
  35. arctrl/py/Core/Helper/url.py +148 -0
  36. arctrl/py/Core/Process/__init__.py +0 -0
  37. arctrl/py/Core/Process/column_index.py +280 -0
  38. arctrl/py/Core/Process/component.py +200 -0
  39. arctrl/py/Core/Process/factor.py +151 -0
  40. arctrl/py/Core/Process/factor_value.py +182 -0
  41. arctrl/py/Core/Process/material.py +74 -0
  42. arctrl/py/Core/Process/material_attribute.py +95 -0
  43. arctrl/py/Core/Process/material_attribute_value.py +184 -0
  44. arctrl/py/Core/Process/material_type.py +45 -0
  45. arctrl/py/Core/Process/process.py +477 -0
  46. arctrl/py/Core/Process/process_input.py +265 -0
  47. arctrl/py/Core/Process/process_output.py +235 -0
  48. arctrl/py/Core/Process/process_parameter_value.py +200 -0
  49. arctrl/py/Core/Process/process_sequence.py +435 -0
  50. arctrl/py/Core/Process/protocol.py +175 -0
  51. arctrl/py/Core/Process/protocol_parameter.py +98 -0
  52. arctrl/py/Core/Process/sample.py +82 -0
  53. arctrl/py/Core/Process/source.py +62 -0
  54. arctrl/py/Core/Table/__init__.py +0 -0
  55. arctrl/py/Core/Table/arc_table.py +1264 -0
  56. arctrl/py/Core/Table/arc_table_aux.py +575 -0
  57. arctrl/py/Core/Table/arc_tables.py +591 -0
  58. arctrl/py/Core/Table/composite_cell.py +319 -0
  59. arctrl/py/Core/Table/composite_column.py +73 -0
  60. arctrl/py/Core/Table/composite_header.py +739 -0
  61. arctrl/py/Core/__init__.py +0 -0
  62. arctrl/py/Core/arc_types.py +5064 -0
  63. arctrl/py/Core/comment.py +128 -0
  64. arctrl/py/Core/comment_list.py +127 -0
  65. arctrl/py/Core/conversion.py +1313 -0
  66. arctrl/py/Core/data.py +245 -0
  67. arctrl/py/Core/data_context.py +157 -0
  68. arctrl/py/Core/data_file.py +112 -0
  69. arctrl/py/Core/data_map.py +225 -0
  70. arctrl/py/Core/identifier_setters.py +31 -0
  71. arctrl/py/Core/iproperty_value.py +36 -0
  72. arctrl/py/Core/ontology_annotation.py +299 -0
  73. arctrl/py/Core/ontology_source_reference.py +114 -0
  74. arctrl/py/Core/person.py +259 -0
  75. arctrl/py/Core/publication.py +161 -0
  76. arctrl/py/Core/template.py +231 -0
  77. arctrl/py/Core/templates.py +148 -0
  78. arctrl/py/Core/uri.py +11 -0
  79. arctrl/py/Core/value.py +188 -0
  80. arctrl/py/FileSystem/__init__.py +0 -0
  81. arctrl/py/FileSystem/commit.py +21 -0
  82. arctrl/py/FileSystem/default_gitattributes.py +5 -0
  83. arctrl/py/FileSystem/default_gitignore.py +5 -0
  84. arctrl/py/FileSystem/file_system.py +58 -0
  85. arctrl/py/FileSystem/file_system_tree.py +426 -0
  86. arctrl/py/FileSystem/path.py +64 -0
  87. arctrl/py/Json/DataMap/__init__.py +0 -0
  88. arctrl/py/Json/DataMap/data_context.py +101 -0
  89. arctrl/py/Json/DataMap/data_map.py +53 -0
  90. arctrl/py/Json/Process/__init__.py +0 -0
  91. arctrl/py/Json/Process/assay_materials.py +46 -0
  92. arctrl/py/Json/Process/component.py +79 -0
  93. arctrl/py/Json/Process/factor.py +107 -0
  94. arctrl/py/Json/Process/factor_value.py +101 -0
  95. arctrl/py/Json/Process/material.py +226 -0
  96. arctrl/py/Json/Process/material_attribute.py +79 -0
  97. arctrl/py/Json/Process/material_attribute_value.py +101 -0
  98. arctrl/py/Json/Process/material_type.py +53 -0
  99. arctrl/py/Json/Process/process.py +296 -0
  100. arctrl/py/Json/Process/process_input.py +83 -0
  101. arctrl/py/Json/Process/process_output.py +67 -0
  102. arctrl/py/Json/Process/process_parameter_value.py +81 -0
  103. arctrl/py/Json/Process/protocol.py +354 -0
  104. arctrl/py/Json/Process/protocol_parameter.py +79 -0
  105. arctrl/py/Json/Process/sample.py +277 -0
  106. arctrl/py/Json/Process/source.py +214 -0
  107. arctrl/py/Json/Process/study_materials.py +52 -0
  108. arctrl/py/Json/Process/value.py +56 -0
  109. arctrl/py/Json/ROCrate/__init__.py +0 -0
  110. arctrl/py/Json/ROCrate/ldcontext.py +133 -0
  111. arctrl/py/Json/ROCrate/ldgraph.py +111 -0
  112. arctrl/py/Json/ROCrate/ldnode.py +290 -0
  113. arctrl/py/Json/ROCrate/ldref.py +44 -0
  114. arctrl/py/Json/ROCrate/ldvalue.py +102 -0
  115. arctrl/py/Json/Table/__init__.py +0 -0
  116. arctrl/py/Json/Table/arc_table.py +393 -0
  117. arctrl/py/Json/Table/cell_table.py +83 -0
  118. arctrl/py/Json/Table/composite_cell.py +136 -0
  119. arctrl/py/Json/Table/composite_header.py +67 -0
  120. arctrl/py/Json/Table/iotype.py +24 -0
  121. arctrl/py/Json/Table/oatable.py +82 -0
  122. arctrl/py/Json/Table/templates.py +281 -0
  123. arctrl/py/Json/__init__.py +0 -0
  124. arctrl/py/Json/assay.py +600 -0
  125. arctrl/py/Json/comment.py +206 -0
  126. arctrl/py/Json/context/rocrate/__init__.py +0 -0
  127. arctrl/py/Json/context/rocrate/isa_assay_context.py +101 -0
  128. arctrl/py/Json/context/rocrate/isa_comment_context.py +60 -0
  129. arctrl/py/Json/context/rocrate/isa_component_context.py +77 -0
  130. arctrl/py/Json/context/rocrate/isa_data_context.py +74 -0
  131. arctrl/py/Json/context/rocrate/isa_factor_context.py +74 -0
  132. arctrl/py/Json/context/rocrate/isa_factor_value_context.py +84 -0
  133. arctrl/py/Json/context/rocrate/isa_investigation_context.py +110 -0
  134. arctrl/py/Json/context/rocrate/isa_material_attribute_context.py +64 -0
  135. arctrl/py/Json/context/rocrate/isa_material_attribute_value_context.py +80 -0
  136. arctrl/py/Json/context/rocrate/isa_material_context.py +71 -0
  137. arctrl/py/Json/context/rocrate/isa_ontology_annotation_context.py +68 -0
  138. arctrl/py/Json/context/rocrate/isa_ontology_source_reference_context.py +75 -0
  139. arctrl/py/Json/context/rocrate/isa_organization_context.py +55 -0
  140. arctrl/py/Json/context/rocrate/isa_person_context.py +131 -0
  141. arctrl/py/Json/context/rocrate/isa_process_context.py +94 -0
  142. arctrl/py/Json/context/rocrate/isa_process_parameter_value_context.py +80 -0
  143. arctrl/py/Json/context/rocrate/isa_protocol_context.py +97 -0
  144. arctrl/py/Json/context/rocrate/isa_protocol_parameter_context.py +64 -0
  145. arctrl/py/Json/context/rocrate/isa_publication_context.py +78 -0
  146. arctrl/py/Json/context/rocrate/isa_sample_context.py +65 -0
  147. arctrl/py/Json/context/rocrate/isa_source_context.py +66 -0
  148. arctrl/py/Json/context/rocrate/isa_study_context.py +125 -0
  149. arctrl/py/Json/context/rocrate/property_value_context.py +73 -0
  150. arctrl/py/Json/context/rocrate/rocrate_context.py +81 -0
  151. arctrl/py/Json/converter_options.py +23 -0
  152. arctrl/py/Json/data.py +356 -0
  153. arctrl/py/Json/data_file.py +63 -0
  154. arctrl/py/Json/decode.py +155 -0
  155. arctrl/py/Json/encode.py +92 -0
  156. arctrl/py/Json/idtable.py +44 -0
  157. arctrl/py/Json/investigation.py +695 -0
  158. arctrl/py/Json/ontology_annotation.py +404 -0
  159. arctrl/py/Json/ontology_source_reference.py +255 -0
  160. arctrl/py/Json/person.py +658 -0
  161. arctrl/py/Json/property_value.py +359 -0
  162. arctrl/py/Json/publication.py +279 -0
  163. arctrl/py/Json/string_table.py +76 -0
  164. arctrl/py/Json/study.py +793 -0
  165. arctrl/py/JsonIO/DataMap/__init__.py +0 -0
  166. arctrl/py/JsonIO/DataMap/data_map.py +53 -0
  167. arctrl/py/JsonIO/Process/__init__.py +0 -0
  168. arctrl/py/JsonIO/Process/component.py +60 -0
  169. arctrl/py/JsonIO/Process/factor.py +36 -0
  170. arctrl/py/JsonIO/Process/factor_value.py +38 -0
  171. arctrl/py/JsonIO/Process/material.py +60 -0
  172. arctrl/py/JsonIO/Process/material_attribute.py +38 -0
  173. arctrl/py/JsonIO/Process/material_attribute_value.py +60 -0
  174. arctrl/py/JsonIO/Process/material_type.py +36 -0
  175. arctrl/py/JsonIO/Process/process.py +60 -0
  176. arctrl/py/JsonIO/Process/process_input.py +38 -0
  177. arctrl/py/JsonIO/Process/process_output.py +60 -0
  178. arctrl/py/JsonIO/Process/process_parameter_value.py +60 -0
  179. arctrl/py/JsonIO/Process/process_sequence.py +71 -0
  180. arctrl/py/JsonIO/Process/protocol.py +60 -0
  181. arctrl/py/JsonIO/Process/protocol_parameter.py +36 -0
  182. arctrl/py/JsonIO/Process/sample.py +60 -0
  183. arctrl/py/JsonIO/Process/source.py +60 -0
  184. arctrl/py/JsonIO/Process/study_materials.py +52 -0
  185. arctrl/py/JsonIO/Process/value.py +32 -0
  186. arctrl/py/JsonIO/Table/__init__.py +0 -0
  187. arctrl/py/JsonIO/Table/arc_table.py +121 -0
  188. arctrl/py/JsonIO/Table/composite_cell.py +36 -0
  189. arctrl/py/JsonIO/Table/composite_header.py +36 -0
  190. arctrl/py/JsonIO/Table/compression.py +85 -0
  191. arctrl/py/JsonIO/Table/iotype.py +36 -0
  192. arctrl/py/JsonIO/Table/templates.py +113 -0
  193. arctrl/py/JsonIO/__init__.py +0 -0
  194. arctrl/py/JsonIO/assay.py +113 -0
  195. arctrl/py/JsonIO/comment.py +80 -0
  196. arctrl/py/JsonIO/data.py +60 -0
  197. arctrl/py/JsonIO/data_file.py +58 -0
  198. arctrl/py/JsonIO/decode.py +9 -0
  199. arctrl/py/JsonIO/encode.py +1 -0
  200. arctrl/py/JsonIO/investigation.py +113 -0
  201. arctrl/py/JsonIO/ldobject.py +106 -0
  202. arctrl/py/JsonIO/ontology_annotation.py +80 -0
  203. arctrl/py/JsonIO/ontology_source_reference.py +80 -0
  204. arctrl/py/JsonIO/person.py +82 -0
  205. arctrl/py/JsonIO/publication.py +82 -0
  206. arctrl/py/JsonIO/study.py +114 -0
  207. arctrl/py/ROCrate/Generic/__init__.py +0 -0
  208. arctrl/py/ROCrate/Generic/comment.py +131 -0
  209. arctrl/py/ROCrate/Generic/dataset.py +817 -0
  210. arctrl/py/ROCrate/Generic/defined_term.py +131 -0
  211. arctrl/py/ROCrate/Generic/file.py +237 -0
  212. arctrl/py/ROCrate/Generic/lab_process.py +324 -0
  213. arctrl/py/ROCrate/Generic/lab_protocol.py +338 -0
  214. arctrl/py/ROCrate/Generic/organization.py +83 -0
  215. arctrl/py/ROCrate/Generic/person.py +484 -0
  216. arctrl/py/ROCrate/Generic/postal_address.py +195 -0
  217. arctrl/py/ROCrate/Generic/property_value.py +696 -0
  218. arctrl/py/ROCrate/Generic/sample.py +202 -0
  219. arctrl/py/ROCrate/Generic/scholarly_article.py +229 -0
  220. arctrl/py/ROCrate/ISAProfile/__init__.py +0 -0
  221. arctrl/py/ROCrate/ISAProfile/assay.py +70 -0
  222. arctrl/py/ROCrate/ISAProfile/data.py +65 -0
  223. arctrl/py/ROCrate/ISAProfile/dataset.py +24 -0
  224. arctrl/py/ROCrate/ISAProfile/investigation.py +73 -0
  225. arctrl/py/ROCrate/ISAProfile/lab_process.py +162 -0
  226. arctrl/py/ROCrate/ISAProfile/lab_protocol.py +37 -0
  227. arctrl/py/ROCrate/ISAProfile/person.py +72 -0
  228. arctrl/py/ROCrate/ISAProfile/property_value.py +98 -0
  229. arctrl/py/ROCrate/ISAProfile/sample.py +64 -0
  230. arctrl/py/ROCrate/ISAProfile/scholarly_article.py +98 -0
  231. arctrl/py/ROCrate/ISAProfile/study.py +74 -0
  232. arctrl/py/ROCrate/__init__.py +0 -0
  233. arctrl/py/ROCrate/arc_rocrate_metadata.py +39 -0
  234. arctrl/py/ROCrate/dyn_obj_extensions.py +1 -0
  235. arctrl/py/ROCrate/helper.py +8 -0
  236. arctrl/py/ROCrate/ldcontext.py +362 -0
  237. arctrl/py/ROCrate/ldobject.py +1247 -0
  238. arctrl/py/ROCrate/rocrate_context.py +51 -0
  239. arctrl/py/Spreadsheet/AnnotationTable/__init__.py +0 -0
  240. arctrl/py/Spreadsheet/AnnotationTable/arc_table.py +193 -0
  241. arctrl/py/Spreadsheet/AnnotationTable/composite_cell.py +78 -0
  242. arctrl/py/Spreadsheet/AnnotationTable/composite_column.py +210 -0
  243. arctrl/py/Spreadsheet/AnnotationTable/composite_header.py +623 -0
  244. arctrl/py/Spreadsheet/DataMapTable/__init__.py +0 -0
  245. arctrl/py/Spreadsheet/DataMapTable/data_map_column.py +114 -0
  246. arctrl/py/Spreadsheet/DataMapTable/data_map_header.py +618 -0
  247. arctrl/py/Spreadsheet/DataMapTable/data_map_table.py +119 -0
  248. arctrl/py/Spreadsheet/Metadata/__init__.py +0 -0
  249. arctrl/py/Spreadsheet/Metadata/assays.py +125 -0
  250. arctrl/py/Spreadsheet/Metadata/comment.py +77 -0
  251. arctrl/py/Spreadsheet/Metadata/contacts.py +134 -0
  252. arctrl/py/Spreadsheet/Metadata/conversions.py +190 -0
  253. arctrl/py/Spreadsheet/Metadata/design_descriptors.py +34 -0
  254. arctrl/py/Spreadsheet/Metadata/factors.py +107 -0
  255. arctrl/py/Spreadsheet/Metadata/ontology_annotation.py +88 -0
  256. arctrl/py/Spreadsheet/Metadata/ontology_source_reference.py +96 -0
  257. arctrl/py/Spreadsheet/Metadata/protocols.py +146 -0
  258. arctrl/py/Spreadsheet/Metadata/publication.py +122 -0
  259. arctrl/py/Spreadsheet/Metadata/run.py +122 -0
  260. arctrl/py/Spreadsheet/Metadata/sparse_table.py +508 -0
  261. arctrl/py/Spreadsheet/Metadata/study.py +312 -0
  262. arctrl/py/Spreadsheet/Metadata/workflow.py +151 -0
  263. arctrl/py/Spreadsheet/__init__.py +0 -0
  264. arctrl/py/Spreadsheet/arc_assay.py +233 -0
  265. arctrl/py/Spreadsheet/arc_investigation.py +418 -0
  266. arctrl/py/Spreadsheet/arc_run.py +190 -0
  267. arctrl/py/Spreadsheet/arc_study.py +144 -0
  268. arctrl/py/Spreadsheet/arc_workflow.py +176 -0
  269. arctrl/py/Spreadsheet/assembly_info.py +1 -0
  270. arctrl/py/Spreadsheet/collection_aux.py +167 -0
  271. arctrl/py/Spreadsheet/data_map.py +44 -0
  272. arctrl/py/Spreadsheet/template.py +460 -0
  273. arctrl/py/ValidationPackages/__init__.py +0 -0
  274. arctrl/py/ValidationPackages/validation_package.py +82 -0
  275. arctrl/py/ValidationPackages/validation_packages_config.py +132 -0
  276. arctrl/py/WebRequest/__init__.py +0 -0
  277. arctrl/py/WebRequest/web_request.py +9 -0
  278. arctrl/py/WebRequest/web_request_py.py +135 -0
  279. arctrl/py/Yaml/__init__.py +0 -0
  280. arctrl/py/Yaml/decode.py +1 -0
  281. arctrl/py/Yaml/encode.py +10 -0
  282. arctrl/py/Yaml/validation_package.py +77 -0
  283. arctrl/py/Yaml/validation_packages_config.py +86 -0
  284. arctrl/py/__init__.py +0 -0
  285. arctrl/py/arc.py +1400 -0
  286. arctrl/py/column_index.py +280 -0
  287. arctrl/py/conversion.py +2184 -0
  288. arctrl/py/cross_async.py +76 -0
  289. arctrl/py/fable_modules/dynamic_obj/__init__.py +0 -0
  290. arctrl/py/fable_modules/dynamic_obj/dyn_obj.py +136 -0
  291. arctrl/py/fable_modules/dynamic_obj/dynamic_obj.py +415 -0
  292. arctrl/py/fable_modules/dynamic_obj/fable_js.py +1 -0
  293. arctrl/py/fable_modules/dynamic_obj/fable_py.py +288 -0
  294. arctrl/py/fable_modules/dynamic_obj/hash_codes.py +82 -0
  295. arctrl/py/fable_modules/dynamic_obj/property_helper.py +25 -0
  296. arctrl/py/fable_modules/dynamic_obj/reflection_utils.py +87 -0
  297. arctrl/py/fable_modules/fable_library/__init__.py +0 -0
  298. arctrl/py/fable_modules/fable_library/array_.py +1528 -0
  299. arctrl/py/fable_modules/fable_library/async_.py +377 -0
  300. arctrl/py/fable_modules/fable_library/async_builder.py +379 -0
  301. arctrl/py/fable_modules/fable_library/big_int.py +330 -0
  302. arctrl/py/fable_modules/fable_library/bit_converter.py +131 -0
  303. arctrl/py/fable_modules/fable_library/boolean.py +26 -0
  304. arctrl/py/fable_modules/fable_library/char.py +237 -0
  305. arctrl/py/fable_modules/fable_library/choice.py +212 -0
  306. arctrl/py/fable_modules/fable_library/date.py +779 -0
  307. arctrl/py/fable_modules/fable_library/date_offset.py +79 -0
  308. arctrl/py/fable_modules/fable_library/decimal_.py +190 -0
  309. arctrl/py/fable_modules/fable_library/diagnostics.py +54 -0
  310. arctrl/py/fable_modules/fable_library/double.py +87 -0
  311. arctrl/py/fable_modules/fable_library/encoding.py +41 -0
  312. arctrl/py/fable_modules/fable_library/event.py +206 -0
  313. arctrl/py/fable_modules/fable_library/file.py +107 -0
  314. arctrl/py/fable_modules/fable_library/fsharp_collections.py +52 -0
  315. arctrl/py/fable_modules/fable_library/fsharp_core.py +123 -0
  316. arctrl/py/fable_modules/fable_library/global_.py +63 -0
  317. arctrl/py/fable_modules/fable_library/guid.py +41 -0
  318. arctrl/py/fable_modules/fable_library/int32.py +73 -0
  319. arctrl/py/fable_modules/fable_library/list.py +1788 -0
  320. arctrl/py/fable_modules/fable_library/long.py +240 -0
  321. arctrl/py/fable_modules/fable_library/mailbox_processor.py +179 -0
  322. arctrl/py/fable_modules/fable_library/map.py +1854 -0
  323. arctrl/py/fable_modules/fable_library/map_util.py +148 -0
  324. arctrl/py/fable_modules/fable_library/mutable_map.py +397 -0
  325. arctrl/py/fable_modules/fable_library/mutable_set.py +279 -0
  326. arctrl/py/fable_modules/fable_library/native.py +45 -0
  327. arctrl/py/fable_modules/fable_library/numeric.py +46 -0
  328. arctrl/py/fable_modules/fable_library/observable.py +222 -0
  329. arctrl/py/fable_modules/fable_library/option.py +128 -0
  330. arctrl/py/fable_modules/fable_library/path.py +62 -0
  331. arctrl/py/fable_modules/fable_library/range.py +117 -0
  332. arctrl/py/fable_modules/fable_library/reflection.py +463 -0
  333. arctrl/py/fable_modules/fable_library/reg_exp.py +137 -0
  334. arctrl/py/fable_modules/fable_library/resize_array.py +31 -0
  335. arctrl/py/fable_modules/fable_library/result.py +212 -0
  336. arctrl/py/fable_modules/fable_library/seq.py +1979 -0
  337. arctrl/py/fable_modules/fable_library/seq2.py +221 -0
  338. arctrl/py/fable_modules/fable_library/set.py +2414 -0
  339. arctrl/py/fable_modules/fable_library/singleton_local_time_zone.py +36 -0
  340. arctrl/py/fable_modules/fable_library/string_.py +573 -0
  341. arctrl/py/fable_modules/fable_library/system_collections_generic.py +462 -0
  342. arctrl/py/fable_modules/fable_library/system_text.py +237 -0
  343. arctrl/py/fable_modules/fable_library/task.py +116 -0
  344. arctrl/py/fable_modules/fable_library/task_builder.py +122 -0
  345. arctrl/py/fable_modules/fable_library/thread.py +5 -0
  346. arctrl/py/fable_modules/fable_library/time_span.py +283 -0
  347. arctrl/py/fable_modules/fable_library/timer.py +24 -0
  348. arctrl/py/fable_modules/fable_library/types.py +401 -0
  349. arctrl/py/fable_modules/fable_library/uri.py +109 -0
  350. arctrl/py/fable_modules/fable_library/util.py +2735 -0
  351. arctrl/py/fable_modules/fable_openpyxl/__init__.py +0 -0
  352. arctrl/py/fable_modules/fable_openpyxl/openpyxl.py +362 -0
  353. arctrl/py/fable_modules/fable_python/cognite-sdk/__init__.py +0 -0
  354. arctrl/py/fable_modules/fable_python/cognite-sdk/cognite_sdk.py +22 -0
  355. arctrl/py/fable_modules/fable_python/flask/__init__.py +0 -0
  356. arctrl/py/fable_modules/fable_python/flask/flask.py +34 -0
  357. arctrl/py/fable_modules/fable_python/jupyter/__init__.py +0 -0
  358. arctrl/py/fable_modules/fable_python/jupyter/ipy_widgets.py +47 -0
  359. arctrl/py/fable_modules/fable_python/jupyter/ipython.py +13 -0
  360. arctrl/py/fable_modules/fable_python/stdlib/__init__.py +0 -0
  361. arctrl/py/fable_modules/fable_python/stdlib/ast.py +1 -0
  362. arctrl/py/fable_modules/fable_python/stdlib/asyncio/__init__.py +0 -0
  363. arctrl/py/fable_modules/fable_python/stdlib/asyncio/events.py +17 -0
  364. arctrl/py/fable_modules/fable_python/stdlib/asyncio/futures.py +52 -0
  365. arctrl/py/fable_modules/fable_python/stdlib/asyncio/tasks.py +38 -0
  366. arctrl/py/fable_modules/fable_python/stdlib/base64_.py +1 -0
  367. arctrl/py/fable_modules/fable_python/stdlib/builtins_.py +38 -0
  368. arctrl/py/fable_modules/fable_python/stdlib/html.py +1 -0
  369. arctrl/py/fable_modules/fable_python/stdlib/json.py +1 -0
  370. arctrl/py/fable_modules/fable_python/stdlib/math_.py +1 -0
  371. arctrl/py/fable_modules/fable_python/stdlib/os_.py +1 -0
  372. arctrl/py/fable_modules/fable_python/stdlib/queue_.py +1 -0
  373. arctrl/py/fable_modules/fable_python/stdlib/string_.py +1 -0
  374. arctrl/py/fable_modules/fable_python/stdlib/sys_.py +30 -0
  375. arctrl/py/fable_modules/fable_python/stdlib/time_.py +1 -0
  376. arctrl/py/fable_modules/fable_python/stdlib/tk_inter.py +1 -0
  377. arctrl/py/fable_modules/fs_spreadsheet/Cells/__init__.py +0 -0
  378. arctrl/py/fable_modules/fs_spreadsheet/Cells/fs_cell.py +338 -0
  379. arctrl/py/fable_modules/fs_spreadsheet/Cells/fs_cells_collection.py +469 -0
  380. arctrl/py/fable_modules/fs_spreadsheet/DSL/__init__.py +0 -0
  381. arctrl/py/fable_modules/fs_spreadsheet/DSL/cell_builder.py +214 -0
  382. arctrl/py/fable_modules/fs_spreadsheet/DSL/column_builder.py +139 -0
  383. arctrl/py/fable_modules/fs_spreadsheet/DSL/dsl.py +50 -0
  384. arctrl/py/fable_modules/fs_spreadsheet/DSL/expression.py +65 -0
  385. arctrl/py/fable_modules/fs_spreadsheet/DSL/operators.py +9 -0
  386. arctrl/py/fable_modules/fs_spreadsheet/DSL/row_builder.py +139 -0
  387. arctrl/py/fable_modules/fs_spreadsheet/DSL/sheet_builder.py +118 -0
  388. arctrl/py/fable_modules/fs_spreadsheet/DSL/table_builder.py +122 -0
  389. arctrl/py/fable_modules/fs_spreadsheet/DSL/transform.py +464 -0
  390. arctrl/py/fable_modules/fs_spreadsheet/DSL/types.py +314 -0
  391. arctrl/py/fable_modules/fs_spreadsheet/DSL/workbook_builder.py +106 -0
  392. arctrl/py/fable_modules/fs_spreadsheet/Json/__init__.py +0 -0
  393. arctrl/py/fable_modules/fs_spreadsheet/Json/cell.py +103 -0
  394. arctrl/py/fable_modules/fs_spreadsheet/Json/column.py +70 -0
  395. arctrl/py/fable_modules/fs_spreadsheet/Json/row.py +70 -0
  396. arctrl/py/fable_modules/fs_spreadsheet/Json/table.py +57 -0
  397. arctrl/py/fable_modules/fs_spreadsheet/Json/value.py +93 -0
  398. arctrl/py/fable_modules/fs_spreadsheet/Json/workbook.py +71 -0
  399. arctrl/py/fable_modules/fs_spreadsheet/Json/worksheet.py +217 -0
  400. arctrl/py/fable_modules/fs_spreadsheet/Ranges/__init__.py +0 -0
  401. arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range.py +47 -0
  402. arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_address.py +186 -0
  403. arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_base.py +90 -0
  404. arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_column.py +78 -0
  405. arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_row.py +48 -0
  406. arctrl/py/fable_modules/fs_spreadsheet/Tables/__init__.py +0 -0
  407. arctrl/py/fable_modules/fs_spreadsheet/Tables/fs_table.py +393 -0
  408. arctrl/py/fable_modules/fs_spreadsheet/Tables/fs_table_field.py +127 -0
  409. arctrl/py/fable_modules/fs_spreadsheet/Tables/fs_table_row.py +23 -0
  410. arctrl/py/fable_modules/fs_spreadsheet/__init__.py +0 -0
  411. arctrl/py/fable_modules/fs_spreadsheet/fs_address.py +218 -0
  412. arctrl/py/fable_modules/fs_spreadsheet/fs_column.py +172 -0
  413. arctrl/py/fable_modules/fs_spreadsheet/fs_row.py +183 -0
  414. arctrl/py/fable_modules/fs_spreadsheet/fs_workbook.py +180 -0
  415. arctrl/py/fable_modules/fs_spreadsheet/fs_worksheet.py +600 -0
  416. arctrl/py/fable_modules/fs_spreadsheet/sheet_builder.py +330 -0
  417. arctrl/py/fable_modules/fs_spreadsheet_py/__init__.py +0 -0
  418. arctrl/py/fable_modules/fs_spreadsheet_py/cell.py +63 -0
  419. arctrl/py/fable_modules/fs_spreadsheet_py/cell_type.py +50 -0
  420. arctrl/py/fable_modules/fs_spreadsheet_py/fs_extension.py +60 -0
  421. arctrl/py/fable_modules/fs_spreadsheet_py/json.py +47 -0
  422. arctrl/py/fable_modules/fs_spreadsheet_py/table.py +53 -0
  423. arctrl/py/fable_modules/fs_spreadsheet_py/workbook.py +40 -0
  424. arctrl/py/fable_modules/fs_spreadsheet_py/worksheet.py +54 -0
  425. arctrl/py/fable_modules/fs_spreadsheet_py/xlsx.py +37 -0
  426. arctrl/py/fable_modules/thoth_json_core/__init__.py +0 -0
  427. arctrl/py/fable_modules/thoth_json_core/decode.py +1588 -0
  428. arctrl/py/fable_modules/thoth_json_core/encode.py +261 -0
  429. arctrl/py/fable_modules/thoth_json_core/types.py +181 -0
  430. arctrl/py/fable_modules/thoth_json_python/__init__.py +0 -0
  431. arctrl/py/fable_modules/thoth_json_python/decode.py +112 -0
  432. arctrl/py/fable_modules/thoth_json_python/encode.py +72 -0
  433. arctrl/py/fable_modules/thoth_json_python/python.py +1 -0
  434. arctrl/py/fable_modules/yamlicious/Interop/__init__.py +0 -0
  435. arctrl/py/fable_modules/yamlicious/Interop/js_interop.py +1 -0
  436. arctrl/py/fable_modules/yamlicious/Interop/py_interop.py +7 -0
  437. arctrl/py/fable_modules/yamlicious/__init__.py +0 -0
  438. arctrl/py/fable_modules/yamlicious/decode.py +1784 -0
  439. arctrl/py/fable_modules/yamlicious/encode.py +84 -0
  440. arctrl/py/fable_modules/yamlicious/library.py +10 -0
  441. arctrl/py/fable_modules/yamlicious/persil.py +57 -0
  442. arctrl/py/fable_modules/yamlicious/preprocessing.py +99 -0
  443. arctrl/py/fable_modules/yamlicious/reader.py +665 -0
  444. arctrl/py/fable_modules/yamlicious/regex.py +21 -0
  445. arctrl/py/fable_modules/yamlicious/regex_active_patterns.py +256 -0
  446. arctrl/py/fable_modules/yamlicious/writer.py +175 -0
  447. arctrl/py/fable_modules/yamlicious/yamlicious_types.py +128 -0
  448. arctrl/py/json.py +213 -0
  449. arctrl/py/rocrate_io.py +72 -0
  450. arctrl/py/template_web.py +23 -0
  451. arctrl/py/xlsx.py +148 -0
  452. arctrl/rocrate.py +21 -0
  453. arctrl-3.0.0a3.dist-info/LICENSE +21 -0
  454. arctrl-3.0.0a3.dist-info/METADATA +119 -0
  455. arctrl-3.0.0a3.dist-info/RECORD +456 -0
  456. arctrl-3.0.0a3.dist-info/WHEEL +4 -0
@@ -0,0 +1,623 @@
1
+ from __future__ import annotations
2
+ from collections.abc import Callable
3
+ from typing import Any
4
+ from ...fable_modules.fable_library.array_ import (equals_with, skip, try_find_index)
5
+ from ...fable_modules.fable_library.option import map
6
+ from ...fable_modules.fable_library.seq import (to_array, delay, append, singleton, empty)
7
+ from ...fable_modules.fable_library.string_ import (to_fail, printf, starts_with_exact)
8
+ from ...fable_modules.fable_library.types import (Array, to_string)
9
+ from ...fable_modules.fable_library.util import IEnumerable_1
10
+ from ...Core.Helper.regex import (ActivePatterns__007CUnitColumnHeader_007C__007C, ActivePatterns__007CTANColumnHeader_007C__007C, ActivePatterns__007CTSRColumnHeader_007C__007C, try_parse_parameter_column_header, try_parse_factor_column_header, try_parse_characteristic_column_header, try_parse_component_column_header, ActivePatterns__007CInputColumnHeader_007C__007C, ActivePatterns__007COutputColumnHeader_007C__007C, ActivePatterns__007CComment_007C__007C)
11
+ from ...Core.ontology_annotation import OntologyAnnotation
12
+ from ...Core.Table.composite_cell import CompositeCell
13
+ from ...Core.Table.composite_header import (CompositeHeader, IOType)
14
+ from .composite_cell import (term_from_string_cells, unitized_from_string_cells, data_from_string_cells, free_text_from_string_cells)
15
+
16
+ def ActivePattern_mergeIDInfo(id_space1: str, local_id1: str, id_space2: str, local_id2: str) -> dict[str, Any]:
17
+ if id_space1 != id_space2:
18
+ to_fail(printf("TermSourceRef %s and %s do not match"))(id_space1)(id_space2)
19
+
20
+ if local_id1 != local_id2:
21
+ to_fail(printf("LocalID %s and %s do not match"))(local_id1)(local_id2)
22
+
23
+ return {
24
+ "TermAccessionNumber": ((("" + id_space1) + ":") + local_id1) + "",
25
+ "TermSourceRef": id_space1
26
+ }
27
+
28
+
29
+ def ActivePattern__007CTerm_007C__007C(category_parser: Callable[[str], str | None], f: Callable[[OntologyAnnotation], CompositeHeader], cell_values: Array[str]) -> tuple[CompositeHeader, Callable[[Array[str]], CompositeCell]] | None:
30
+ def _007CAC_007C__007C(s: str, category_parser: Any=category_parser, f: Any=f, cell_values: Any=cell_values) -> str | None:
31
+ return category_parser(s)
32
+
33
+ (pattern_matching_result, name, name_1, term1, term2) = (None, None, None, None, None)
34
+ def _arrow1256(x: str, y: str, category_parser: Any=category_parser, f: Any=f, cell_values: Any=cell_values) -> bool:
35
+ return x == y
36
+
37
+ if (len(cell_values) == 1) if (not equals_with(_arrow1256, cell_values, None)) else False:
38
+ active_pattern_result: str | None = _007CAC_007C__007C(cell_values[0])
39
+ if active_pattern_result is not None:
40
+ pattern_matching_result = 0
41
+ name = active_pattern_result
42
+
43
+ else:
44
+ pattern_matching_result = 2
45
+
46
+
47
+ else:
48
+ def _arrow1257(x_1: str, y_1: str, category_parser: Any=category_parser, f: Any=f, cell_values: Any=cell_values) -> bool:
49
+ return x_1 == y_1
50
+
51
+ if (len(cell_values) == 3) if (not equals_with(_arrow1257, cell_values, None)) else False:
52
+ active_pattern_result_1: str | None = _007CAC_007C__007C(cell_values[0])
53
+ if active_pattern_result_1 is not None:
54
+ active_pattern_result_2: dict[str, Any] | None = ActivePatterns__007CTSRColumnHeader_007C__007C(cell_values[1])
55
+ if active_pattern_result_2 is not None:
56
+ active_pattern_result_3: dict[str, Any] | None = ActivePatterns__007CTANColumnHeader_007C__007C(cell_values[2])
57
+ if active_pattern_result_3 is not None:
58
+ pattern_matching_result = 1
59
+ name_1 = active_pattern_result_1
60
+ term1 = active_pattern_result_2
61
+ term2 = active_pattern_result_3
62
+
63
+ else:
64
+ pattern_matching_result = 2
65
+
66
+
67
+ else:
68
+ pattern_matching_result = 2
69
+
70
+
71
+ else:
72
+ pattern_matching_result = 2
73
+
74
+
75
+ else:
76
+ pattern_matching_result = 2
77
+
78
+
79
+ if pattern_matching_result == 0:
80
+ def _arrow1248(cell_values_1: Array[str], category_parser: Any=category_parser, f: Any=f, cell_values: Any=cell_values) -> CompositeCell:
81
+ return term_from_string_cells(None, None, cell_values_1)
82
+
83
+ return (f(OntologyAnnotation.create(name)), _arrow1248)
84
+
85
+ elif pattern_matching_result == 1:
86
+ term: dict[str, Any] = ActivePattern_mergeIDInfo(term1["IDSpace"], term1["LocalID"], term2["IDSpace"], term2["LocalID"])
87
+ def _arrow1249(cell_values_2: Array[str], category_parser: Any=category_parser, f: Any=f, cell_values: Any=cell_values) -> CompositeCell:
88
+ return term_from_string_cells(1, 2, cell_values_2)
89
+
90
+ return (f(OntologyAnnotation.create(name_1, term["TermSourceRef"], term["TermAccessionNumber"])), _arrow1249)
91
+
92
+ elif pattern_matching_result == 2:
93
+ (pattern_matching_result_1, name_2, term1_1, term2_1) = (None, None, None, None)
94
+ def _arrow1255(x_2: str, y_2: str, category_parser: Any=category_parser, f: Any=f, cell_values: Any=cell_values) -> bool:
95
+ return x_2 == y_2
96
+
97
+ if (len(cell_values) == 3) if (not equals_with(_arrow1255, cell_values, None)) else False:
98
+ active_pattern_result_4: str | None = _007CAC_007C__007C(cell_values[0])
99
+ if active_pattern_result_4 is not None:
100
+ active_pattern_result_5: dict[str, Any] | None = ActivePatterns__007CTANColumnHeader_007C__007C(cell_values[1])
101
+ if active_pattern_result_5 is not None:
102
+ active_pattern_result_6: dict[str, Any] | None = ActivePatterns__007CTSRColumnHeader_007C__007C(cell_values[2])
103
+ if active_pattern_result_6 is not None:
104
+ pattern_matching_result_1 = 0
105
+ name_2 = active_pattern_result_4
106
+ term1_1 = active_pattern_result_6
107
+ term2_1 = active_pattern_result_5
108
+
109
+ else:
110
+ pattern_matching_result_1 = 1
111
+
112
+
113
+ else:
114
+ pattern_matching_result_1 = 1
115
+
116
+
117
+ else:
118
+ pattern_matching_result_1 = 1
119
+
120
+
121
+ else:
122
+ pattern_matching_result_1 = 1
123
+
124
+ if pattern_matching_result_1 == 0:
125
+ term_1: dict[str, Any] = ActivePattern_mergeIDInfo(term1_1["IDSpace"], term1_1["LocalID"], term2_1["IDSpace"], term2_1["LocalID"])
126
+ def _arrow1250(cell_values_3: Array[str], category_parser: Any=category_parser, f: Any=f, cell_values: Any=cell_values) -> CompositeCell:
127
+ return term_from_string_cells(2, 1, cell_values_3)
128
+
129
+ return (f(OntologyAnnotation.create(name_2, term_1["TermSourceRef"], term_1["TermAccessionNumber"])), _arrow1250)
130
+
131
+ elif pattern_matching_result_1 == 1:
132
+ (pattern_matching_result_2, name_3, term1_2, term2_2) = (None, None, None, None)
133
+ def _arrow1254(x_3: str, y_3: str, category_parser: Any=category_parser, f: Any=f, cell_values: Any=cell_values) -> bool:
134
+ return x_3 == y_3
135
+
136
+ if (len(cell_values) == 4) if (not equals_with(_arrow1254, cell_values, None)) else False:
137
+ active_pattern_result_7: str | None = _007CAC_007C__007C(cell_values[0])
138
+ if active_pattern_result_7 is not None:
139
+ if ActivePatterns__007CUnitColumnHeader_007C__007C(cell_values[1]) is not None:
140
+ active_pattern_result_9: dict[str, Any] | None = ActivePatterns__007CTSRColumnHeader_007C__007C(cell_values[2])
141
+ if active_pattern_result_9 is not None:
142
+ active_pattern_result_10: dict[str, Any] | None = ActivePatterns__007CTANColumnHeader_007C__007C(cell_values[3])
143
+ if active_pattern_result_10 is not None:
144
+ pattern_matching_result_2 = 0
145
+ name_3 = active_pattern_result_7
146
+ term1_2 = active_pattern_result_9
147
+ term2_2 = active_pattern_result_10
148
+
149
+ else:
150
+ pattern_matching_result_2 = 1
151
+
152
+
153
+ else:
154
+ pattern_matching_result_2 = 1
155
+
156
+
157
+ else:
158
+ pattern_matching_result_2 = 1
159
+
160
+
161
+ else:
162
+ pattern_matching_result_2 = 1
163
+
164
+
165
+ else:
166
+ pattern_matching_result_2 = 1
167
+
168
+ if pattern_matching_result_2 == 0:
169
+ term_2: dict[str, Any] = ActivePattern_mergeIDInfo(term1_2["IDSpace"], term1_2["LocalID"], term2_2["IDSpace"], term2_2["LocalID"])
170
+ def _arrow1251(cell_values_4: Array[str], category_parser: Any=category_parser, f: Any=f, cell_values: Any=cell_values) -> CompositeCell:
171
+ return unitized_from_string_cells(1, 2, 3, cell_values_4)
172
+
173
+ return (f(OntologyAnnotation.create(name_3, term_2["TermSourceRef"], term_2["TermAccessionNumber"])), _arrow1251)
174
+
175
+ elif pattern_matching_result_2 == 1:
176
+ (pattern_matching_result_3, name_4, term1_3, term2_3) = (None, None, None, None)
177
+ def _arrow1253(x_4: str, y_4: str, category_parser: Any=category_parser, f: Any=f, cell_values: Any=cell_values) -> bool:
178
+ return x_4 == y_4
179
+
180
+ if (len(cell_values) == 4) if (not equals_with(_arrow1253, cell_values, None)) else False:
181
+ active_pattern_result_11: str | None = _007CAC_007C__007C(cell_values[0])
182
+ if active_pattern_result_11 is not None:
183
+ if ActivePatterns__007CUnitColumnHeader_007C__007C(cell_values[1]) is not None:
184
+ active_pattern_result_13: dict[str, Any] | None = ActivePatterns__007CTANColumnHeader_007C__007C(cell_values[2])
185
+ if active_pattern_result_13 is not None:
186
+ active_pattern_result_14: dict[str, Any] | None = ActivePatterns__007CTSRColumnHeader_007C__007C(cell_values[3])
187
+ if active_pattern_result_14 is not None:
188
+ pattern_matching_result_3 = 0
189
+ name_4 = active_pattern_result_11
190
+ term1_3 = active_pattern_result_14
191
+ term2_3 = active_pattern_result_13
192
+
193
+ else:
194
+ pattern_matching_result_3 = 1
195
+
196
+
197
+ else:
198
+ pattern_matching_result_3 = 1
199
+
200
+
201
+ else:
202
+ pattern_matching_result_3 = 1
203
+
204
+
205
+ else:
206
+ pattern_matching_result_3 = 1
207
+
208
+
209
+ else:
210
+ pattern_matching_result_3 = 1
211
+
212
+ if pattern_matching_result_3 == 0:
213
+ term_3: dict[str, Any] = ActivePattern_mergeIDInfo(term1_3["IDSpace"], term1_3["LocalID"], term2_3["IDSpace"], term2_3["LocalID"])
214
+ def _arrow1252(cell_values_5: Array[str], category_parser: Any=category_parser, f: Any=f, cell_values: Any=cell_values) -> CompositeCell:
215
+ return unitized_from_string_cells(1, 3, 2, cell_values_5)
216
+
217
+ return (f(OntologyAnnotation.create(name_4, term_3["TermSourceRef"], term_3["TermAccessionNumber"])), _arrow1252)
218
+
219
+ elif pattern_matching_result_3 == 1:
220
+ return None
221
+
222
+
223
+
224
+
225
+
226
+
227
+ def ActivePattern__007CParameter_007C__007C(cell_values: Array[str]) -> tuple[CompositeHeader, Callable[[Array[str]], CompositeCell]] | None:
228
+ def _arrow1258(input: str, cell_values: Any=cell_values) -> str | None:
229
+ return try_parse_parameter_column_header(input)
230
+
231
+ def _arrow1259(Item: OntologyAnnotation, cell_values: Any=cell_values) -> CompositeHeader:
232
+ return CompositeHeader(3, Item)
233
+
234
+ active_pattern_result: tuple[CompositeHeader, Callable[[Array[str]], CompositeCell]] | None = ActivePattern__007CTerm_007C__007C(_arrow1258, _arrow1259, cell_values)
235
+ if active_pattern_result is not None:
236
+ r: tuple[CompositeHeader, Callable[[Array[str]], CompositeCell]] = active_pattern_result
237
+ return r
238
+
239
+ else:
240
+ return None
241
+
242
+
243
+
244
+ def ActivePattern__007CFactor_007C__007C(cell_values: Array[str]) -> tuple[CompositeHeader, Callable[[Array[str]], CompositeCell]] | None:
245
+ def _arrow1260(input: str, cell_values: Any=cell_values) -> str | None:
246
+ return try_parse_factor_column_header(input)
247
+
248
+ def _arrow1261(Item: OntologyAnnotation, cell_values: Any=cell_values) -> CompositeHeader:
249
+ return CompositeHeader(2, Item)
250
+
251
+ active_pattern_result: tuple[CompositeHeader, Callable[[Array[str]], CompositeCell]] | None = ActivePattern__007CTerm_007C__007C(_arrow1260, _arrow1261, cell_values)
252
+ if active_pattern_result is not None:
253
+ r: tuple[CompositeHeader, Callable[[Array[str]], CompositeCell]] = active_pattern_result
254
+ return r
255
+
256
+ else:
257
+ return None
258
+
259
+
260
+
261
+ def ActivePattern__007CCharacteristic_007C__007C(cell_values: Array[str]) -> tuple[CompositeHeader, Callable[[Array[str]], CompositeCell]] | None:
262
+ def _arrow1262(input: str, cell_values: Any=cell_values) -> str | None:
263
+ return try_parse_characteristic_column_header(input)
264
+
265
+ def _arrow1263(Item: OntologyAnnotation, cell_values: Any=cell_values) -> CompositeHeader:
266
+ return CompositeHeader(1, Item)
267
+
268
+ active_pattern_result: tuple[CompositeHeader, Callable[[Array[str]], CompositeCell]] | None = ActivePattern__007CTerm_007C__007C(_arrow1262, _arrow1263, cell_values)
269
+ if active_pattern_result is not None:
270
+ r: tuple[CompositeHeader, Callable[[Array[str]], CompositeCell]] = active_pattern_result
271
+ return r
272
+
273
+ else:
274
+ return None
275
+
276
+
277
+
278
+ def ActivePattern__007CComponent_007C__007C(cell_values: Array[str]) -> tuple[CompositeHeader, Callable[[Array[str]], CompositeCell]] | None:
279
+ def _arrow1264(input: str, cell_values: Any=cell_values) -> str | None:
280
+ return try_parse_component_column_header(input)
281
+
282
+ def _arrow1265(Item: OntologyAnnotation, cell_values: Any=cell_values) -> CompositeHeader:
283
+ return CompositeHeader(0, Item)
284
+
285
+ active_pattern_result: tuple[CompositeHeader, Callable[[Array[str]], CompositeCell]] | None = ActivePattern__007CTerm_007C__007C(_arrow1264, _arrow1265, cell_values)
286
+ if active_pattern_result is not None:
287
+ r: tuple[CompositeHeader, Callable[[Array[str]], CompositeCell]] = active_pattern_result
288
+ return r
289
+
290
+ else:
291
+ return None
292
+
293
+
294
+
295
+ def ActivePattern__007CInput_007C__007C(cell_values: Array[str]) -> tuple[CompositeHeader, Callable[[Array[str]], CompositeCell]] | None:
296
+ if len(cell_values) == 0:
297
+ return None
298
+
299
+ else:
300
+ match_value: str = cell_values[0]
301
+ active_pattern_result: str | None = ActivePatterns__007CInputColumnHeader_007C__007C(match_value)
302
+ if active_pattern_result is not None:
303
+ io_type: str = active_pattern_result
304
+ cols: Array[str] = skip(1, cell_values, None)
305
+ match_value_1: IOType = IOType.of_string(io_type)
306
+ if match_value_1.tag == 2:
307
+ def mapping(y: int, cell_values: Any=cell_values) -> int:
308
+ return 1 + y
309
+
310
+ def predicate(s: str, cell_values: Any=cell_values) -> bool:
311
+ return starts_with_exact(s, "Data Format")
312
+
313
+ format: int | None = map(mapping, try_find_index(predicate, cols))
314
+ def mapping_1(y_1: int, cell_values: Any=cell_values) -> int:
315
+ return 1 + y_1
316
+
317
+ def predicate_1(s_1: str, cell_values: Any=cell_values) -> bool:
318
+ return starts_with_exact(s_1, "Data Selector Format")
319
+
320
+ selector_format: int | None = map(mapping_1, try_find_index(predicate_1, cols))
321
+ def _arrow1266(cell_values_1: Array[str], cell_values: Any=cell_values) -> CompositeCell:
322
+ return data_from_string_cells(format, selector_format, cell_values_1)
323
+
324
+ return (CompositeHeader(11, IOType(2)), _arrow1266)
325
+
326
+ else:
327
+ def _arrow1267(cell_values_2: Array[str], cell_values: Any=cell_values) -> CompositeCell:
328
+ return free_text_from_string_cells(cell_values_2)
329
+
330
+ return (CompositeHeader(11, match_value_1), _arrow1267)
331
+
332
+
333
+ else:
334
+ return None
335
+
336
+
337
+
338
+
339
+ def ActivePattern__007COutput_007C__007C(cell_values: Array[str]) -> tuple[CompositeHeader, Callable[[Array[str]], CompositeCell]] | None:
340
+ if len(cell_values) == 0:
341
+ return None
342
+
343
+ else:
344
+ match_value: str = cell_values[0]
345
+ active_pattern_result: str | None = ActivePatterns__007COutputColumnHeader_007C__007C(match_value)
346
+ if active_pattern_result is not None:
347
+ io_type: str = active_pattern_result
348
+ cols: Array[str] = skip(1, cell_values, None)
349
+ match_value_1: IOType = IOType.of_string(io_type)
350
+ if match_value_1.tag == 2:
351
+ def mapping(y: int, cell_values: Any=cell_values) -> int:
352
+ return 1 + y
353
+
354
+ def predicate(s: str, cell_values: Any=cell_values) -> bool:
355
+ return starts_with_exact(s, "Data Format")
356
+
357
+ format: int | None = map(mapping, try_find_index(predicate, cols))
358
+ def mapping_1(y_1: int, cell_values: Any=cell_values) -> int:
359
+ return 1 + y_1
360
+
361
+ def predicate_1(s_1: str, cell_values: Any=cell_values) -> bool:
362
+ return starts_with_exact(s_1, "Data Selector Format")
363
+
364
+ selector_format: int | None = map(mapping_1, try_find_index(predicate_1, cols))
365
+ def _arrow1268(cell_values_1: Array[str], cell_values: Any=cell_values) -> CompositeCell:
366
+ return data_from_string_cells(format, selector_format, cell_values_1)
367
+
368
+ return (CompositeHeader(12, IOType(2)), _arrow1268)
369
+
370
+ else:
371
+ def _arrow1269(cell_values_2: Array[str], cell_values: Any=cell_values) -> CompositeCell:
372
+ return free_text_from_string_cells(cell_values_2)
373
+
374
+ return (CompositeHeader(12, match_value_1), _arrow1269)
375
+
376
+
377
+ else:
378
+ return None
379
+
380
+
381
+
382
+
383
+ def ActivePattern__007CComment_007C__007C(cell_values: Array[str]) -> tuple[CompositeHeader, Callable[[Array[str]], CompositeCell]] | None:
384
+ (pattern_matching_result, key) = (None, None)
385
+ def _arrow1271(x: str, y: str, cell_values: Any=cell_values) -> bool:
386
+ return x == y
387
+
388
+ if (len(cell_values) == 1) if (not equals_with(_arrow1271, cell_values, None)) else False:
389
+ active_pattern_result: str | None = ActivePatterns__007CComment_007C__007C(cell_values[0])
390
+ if active_pattern_result is not None:
391
+ pattern_matching_result = 0
392
+ key = active_pattern_result
393
+
394
+ else:
395
+ pattern_matching_result = 1
396
+
397
+
398
+ else:
399
+ pattern_matching_result = 1
400
+
401
+ if pattern_matching_result == 0:
402
+ def _arrow1270(cell_values_1: Array[str], cell_values: Any=cell_values) -> CompositeCell:
403
+ return free_text_from_string_cells(cell_values_1)
404
+
405
+ return (CompositeHeader(14, key), _arrow1270)
406
+
407
+ elif pattern_matching_result == 1:
408
+ return None
409
+
410
+
411
+
412
+ def ActivePattern__007CProtocolType_007C__007C(cell_values: Array[str]) -> tuple[CompositeHeader, Callable[[Array[str]], CompositeCell]] | None:
413
+ def parser(s: str, cell_values: Any=cell_values) -> str | None:
414
+ if s == "Protocol Type":
415
+ return s
416
+
417
+ else:
418
+ return None
419
+
420
+
421
+ def header(_arg: OntologyAnnotation, cell_values: Any=cell_values) -> CompositeHeader:
422
+ return CompositeHeader(4)
423
+
424
+ active_pattern_result: tuple[CompositeHeader, Callable[[Array[str]], CompositeCell]] | None = ActivePattern__007CTerm_007C__007C(parser, header, cell_values)
425
+ if active_pattern_result is not None:
426
+ r: tuple[CompositeHeader, Callable[[Array[str]], CompositeCell]] = active_pattern_result
427
+ return r
428
+
429
+ else:
430
+ return None
431
+
432
+
433
+
434
+ def ActivePattern__007CProtocolHeader_007C__007C(cell_values: Array[str]) -> tuple[CompositeHeader, Callable[[Array[str]], CompositeCell]] | None:
435
+ (pattern_matching_result,) = (None,)
436
+ def _arrow1278(x: str, y: str, cell_values: Any=cell_values) -> bool:
437
+ return x == y
438
+
439
+ if (len(cell_values) == 1) if (not equals_with(_arrow1278, cell_values, None)) else False:
440
+ if cell_values[0] == "Protocol REF":
441
+ pattern_matching_result = 0
442
+
443
+ elif cell_values[0] == "Protocol Description":
444
+ pattern_matching_result = 1
445
+
446
+ elif cell_values[0] == "Protocol Uri":
447
+ pattern_matching_result = 2
448
+
449
+ elif cell_values[0] == "Protocol Version":
450
+ pattern_matching_result = 3
451
+
452
+ elif cell_values[0] == "Performer":
453
+ pattern_matching_result = 4
454
+
455
+ elif cell_values[0] == "Date":
456
+ pattern_matching_result = 5
457
+
458
+ else:
459
+ pattern_matching_result = 6
460
+
461
+
462
+ else:
463
+ pattern_matching_result = 6
464
+
465
+ if pattern_matching_result == 0:
466
+ def _arrow1272(cell_values_1: Array[str], cell_values: Any=cell_values) -> CompositeCell:
467
+ return free_text_from_string_cells(cell_values_1)
468
+
469
+ return (CompositeHeader(8), _arrow1272)
470
+
471
+ elif pattern_matching_result == 1:
472
+ def _arrow1273(cell_values_2: Array[str], cell_values: Any=cell_values) -> CompositeCell:
473
+ return free_text_from_string_cells(cell_values_2)
474
+
475
+ return (CompositeHeader(5), _arrow1273)
476
+
477
+ elif pattern_matching_result == 2:
478
+ def _arrow1274(cell_values_3: Array[str], cell_values: Any=cell_values) -> CompositeCell:
479
+ return free_text_from_string_cells(cell_values_3)
480
+
481
+ return (CompositeHeader(6), _arrow1274)
482
+
483
+ elif pattern_matching_result == 3:
484
+ def _arrow1275(cell_values_4: Array[str], cell_values: Any=cell_values) -> CompositeCell:
485
+ return free_text_from_string_cells(cell_values_4)
486
+
487
+ return (CompositeHeader(7), _arrow1275)
488
+
489
+ elif pattern_matching_result == 4:
490
+ def _arrow1276(cell_values_5: Array[str], cell_values: Any=cell_values) -> CompositeCell:
491
+ return free_text_from_string_cells(cell_values_5)
492
+
493
+ return (CompositeHeader(9), _arrow1276)
494
+
495
+ elif pattern_matching_result == 5:
496
+ def _arrow1277(cell_values_6: Array[str], cell_values: Any=cell_values) -> CompositeCell:
497
+ return free_text_from_string_cells(cell_values_6)
498
+
499
+ return (CompositeHeader(10), _arrow1277)
500
+
501
+ elif pattern_matching_result == 6:
502
+ return None
503
+
504
+
505
+
506
+ def ActivePattern__007CFreeText_007C__007C(cell_values: Array[str]) -> tuple[CompositeHeader, Callable[[Array[str]], CompositeCell]] | None:
507
+ def _arrow1279(x: str, y: str, cell_values: Any=cell_values) -> bool:
508
+ return x == y
509
+
510
+ if (len(cell_values) == 1) if (not equals_with(_arrow1279, cell_values, None)) else False:
511
+ def _arrow1280(cell_values_1: Array[str], cell_values: Any=cell_values) -> CompositeCell:
512
+ return free_text_from_string_cells(cell_values_1)
513
+
514
+ return (CompositeHeader(13, cell_values[0]), _arrow1280)
515
+
516
+ else:
517
+ return None
518
+
519
+
520
+
521
+ def from_string_cells(cell_values: Array[str]) -> tuple[CompositeHeader, Callable[[Array[str]], CompositeCell]]:
522
+ active_pattern_result: tuple[CompositeHeader, Callable[[Array[str]], CompositeCell]] | None = ActivePattern__007CParameter_007C__007C(cell_values)
523
+ if active_pattern_result is not None:
524
+ p: tuple[CompositeHeader, Callable[[Array[str]], CompositeCell]] = active_pattern_result
525
+ return p
526
+
527
+ else:
528
+ active_pattern_result_1: tuple[CompositeHeader, Callable[[Array[str]], CompositeCell]] | None = ActivePattern__007CFactor_007C__007C(cell_values)
529
+ if active_pattern_result_1 is not None:
530
+ f: tuple[CompositeHeader, Callable[[Array[str]], CompositeCell]] = active_pattern_result_1
531
+ return f
532
+
533
+ else:
534
+ active_pattern_result_2: tuple[CompositeHeader, Callable[[Array[str]], CompositeCell]] | None = ActivePattern__007CCharacteristic_007C__007C(cell_values)
535
+ if active_pattern_result_2 is not None:
536
+ c: tuple[CompositeHeader, Callable[[Array[str]], CompositeCell]] = active_pattern_result_2
537
+ return c
538
+
539
+ else:
540
+ active_pattern_result_3: tuple[CompositeHeader, Callable[[Array[str]], CompositeCell]] | None = ActivePattern__007CComponent_007C__007C(cell_values)
541
+ if active_pattern_result_3 is not None:
542
+ c_1: tuple[CompositeHeader, Callable[[Array[str]], CompositeCell]] = active_pattern_result_3
543
+ return c_1
544
+
545
+ else:
546
+ active_pattern_result_4: tuple[CompositeHeader, Callable[[Array[str]], CompositeCell]] | None = ActivePattern__007CInput_007C__007C(cell_values)
547
+ if active_pattern_result_4 is not None:
548
+ i: tuple[CompositeHeader, Callable[[Array[str]], CompositeCell]] = active_pattern_result_4
549
+ return i
550
+
551
+ else:
552
+ active_pattern_result_5: tuple[CompositeHeader, Callable[[Array[str]], CompositeCell]] | None = ActivePattern__007COutput_007C__007C(cell_values)
553
+ if active_pattern_result_5 is not None:
554
+ o: tuple[CompositeHeader, Callable[[Array[str]], CompositeCell]] = active_pattern_result_5
555
+ return o
556
+
557
+ else:
558
+ active_pattern_result_6: tuple[CompositeHeader, Callable[[Array[str]], CompositeCell]] | None = ActivePattern__007CProtocolType_007C__007C(cell_values)
559
+ if active_pattern_result_6 is not None:
560
+ pt: tuple[CompositeHeader, Callable[[Array[str]], CompositeCell]] = active_pattern_result_6
561
+ return pt
562
+
563
+ else:
564
+ active_pattern_result_7: tuple[CompositeHeader, Callable[[Array[str]], CompositeCell]] | None = ActivePattern__007CProtocolHeader_007C__007C(cell_values)
565
+ if active_pattern_result_7 is not None:
566
+ ph: tuple[CompositeHeader, Callable[[Array[str]], CompositeCell]] = active_pattern_result_7
567
+ return ph
568
+
569
+ else:
570
+ active_pattern_result_8: tuple[CompositeHeader, Callable[[Array[str]], CompositeCell]] | None = ActivePattern__007CComment_007C__007C(cell_values)
571
+ if active_pattern_result_8 is not None:
572
+ c_2: tuple[CompositeHeader, Callable[[Array[str]], CompositeCell]] = active_pattern_result_8
573
+ return c_2
574
+
575
+ else:
576
+ active_pattern_result_9: tuple[CompositeHeader, Callable[[Array[str]], CompositeCell]] | None = ActivePattern__007CFreeText_007C__007C(cell_values)
577
+ if active_pattern_result_9 is not None:
578
+ ft: tuple[CompositeHeader, Callable[[Array[str]], CompositeCell]] = active_pattern_result_9
579
+ return ft
580
+
581
+ else:
582
+ return to_fail(printf("Could not parse header group %O"))(cell_values)
583
+
584
+
585
+
586
+
587
+
588
+
589
+
590
+
591
+
592
+
593
+
594
+
595
+ def to_string_cells(has_unit: bool, header: CompositeHeader) -> Array[str]:
596
+ if header.IsDataColumn:
597
+ return [to_string(header), "Data Format", "Data Selector Format"]
598
+
599
+ elif header.IsSingleColumn:
600
+ return [to_string(header)]
601
+
602
+ elif header.IsTermColumn:
603
+ def _arrow1284(__unit: None=None, has_unit: Any=has_unit, header: Any=header) -> IEnumerable_1[str]:
604
+ def _arrow1283(__unit: None=None) -> IEnumerable_1[str]:
605
+ def _arrow1282(__unit: None=None) -> IEnumerable_1[str]:
606
+ def _arrow1281(__unit: None=None) -> IEnumerable_1[str]:
607
+ return singleton(("Term Accession Number (" + header.GetColumnAccessionShort) + ")")
608
+
609
+ return append(singleton(("Term Source REF (" + header.GetColumnAccessionShort) + ")"), delay(_arrow1281))
610
+
611
+ return append(singleton("Unit") if has_unit else empty(), delay(_arrow1282))
612
+
613
+ return append(singleton(to_string(header)), delay(_arrow1283))
614
+
615
+ return to_array(delay(_arrow1284))
616
+
617
+ else:
618
+ return to_fail(printf("header %O is neither single nor term column"))(header)
619
+
620
+
621
+
622
+ __all__ = ["ActivePattern_mergeIDInfo", "ActivePattern__007CTerm_007C__007C", "ActivePattern__007CParameter_007C__007C", "ActivePattern__007CFactor_007C__007C", "ActivePattern__007CCharacteristic_007C__007C", "ActivePattern__007CComponent_007C__007C", "ActivePattern__007CInput_007C__007C", "ActivePattern__007COutput_007C__007C", "ActivePattern__007CComment_007C__007C", "ActivePattern__007CProtocolType_007C__007C", "ActivePattern__007CProtocolHeader_007C__007C", "ActivePattern__007CFreeText_007C__007C", "from_string_cells", "to_string_cells"]
623
+
File without changes