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,739 @@
1
+ from __future__ import annotations
2
+ from collections.abc import Callable
3
+ from typing import (Any, TypeVar)
4
+ from ...fable_modules.fable_library.array_ import map
5
+ from ...fable_modules.fable_library.reflection import (name, get_union_cases, TypeInfo, string_type, union_type)
6
+ from ...fable_modules.fable_library.reg_exp import (get_item, groups)
7
+ from ...fable_modules.fable_library.string_ import (to_fail, printf)
8
+ from ...fable_modules.fable_library.types import (Array, to_string, Union)
9
+ from ..Helper.regex import (try_parse_iotype_header, ActivePatterns__007CRegex_007C__007C, Pattern_InputPattern, Pattern_OutputPattern, Pattern_CommentPattern, ActivePatterns__007CTermColumn_007C__007C)
10
+ from ..ontology_annotation import (OntologyAnnotation, OntologyAnnotation_reflection)
11
+
12
+ __A = TypeVar("__A")
13
+
14
+ def _expr1145() -> TypeInfo:
15
+ return union_type("ARCtrl.IOType", [], IOType, lambda: [[], [], [], [], [("Item", string_type)]])
16
+
17
+
18
+ class IOType(Union):
19
+ def __init__(self, tag: int, *fields: Any) -> None:
20
+ super().__init__()
21
+ self.tag: int = tag or 0
22
+ self.fields: Array[Any] = list(fields)
23
+
24
+ @staticmethod
25
+ def cases() -> list[str]:
26
+ return ["Source", "Sample", "Data", "Material", "FreeText"]
27
+
28
+ @staticmethod
29
+ def All() -> Array[IOType]:
30
+ return [IOType(0), IOType(1), IOType(2), IOType(3)]
31
+
32
+ @staticmethod
33
+ def Cases() -> Array[tuple[int, str]]:
34
+ def mapping(x: Any) -> tuple[int, str]:
35
+ return (x.tag, name(x))
36
+
37
+ return map(mapping, get_union_cases(IOType_reflection()), None)
38
+
39
+ @property
40
+ def as_input(self, __unit: None=None) -> str:
41
+ this: IOType = self
42
+ def string_create(x: Any | None=None) -> str:
43
+ def _arrow1143(__unit: None=None, x: Any=x) -> str:
44
+ copy_of_struct: __A = x
45
+ return to_string(copy_of_struct)
46
+
47
+ return ("Input [" + _arrow1143()) + "]"
48
+
49
+ return string_create(this.fields[0]) if (this.tag == 4) else string_create(this)
50
+
51
+ @property
52
+ def as_output(self, __unit: None=None) -> str:
53
+ this: IOType = self
54
+ def string_create(x: Any | None=None) -> str:
55
+ def _arrow1144(__unit: None=None, x: Any=x) -> str:
56
+ copy_of_struct: __A = x
57
+ return to_string(copy_of_struct)
58
+
59
+ return ("Output [" + _arrow1144()) + "]"
60
+
61
+ return string_create(this.fields[0]) if (this.tag == 4) else string_create(this)
62
+
63
+ def Merge(self, other: IOType) -> IOType:
64
+ this: IOType = self
65
+ if this.tag == 2:
66
+ if other.tag == 0:
67
+ return IOType(2)
68
+
69
+ else:
70
+ raise Exception(("Data IO column and " + str(other)) + " can not be merged")
71
+
72
+
73
+ elif this.tag == 1:
74
+ if other.tag == 0:
75
+ return IOType(1)
76
+
77
+ elif other.tag == 1:
78
+ return IOType(1)
79
+
80
+ else:
81
+ raise Exception(("Sample IO column and " + str(other)) + " can not be merged")
82
+
83
+
84
+ elif this.tag == 0:
85
+ return IOType(0) if (other.tag == 0) else other
86
+
87
+ elif this.tag == 3:
88
+ if other.tag == 0:
89
+ return IOType(3)
90
+
91
+ elif other.tag == 3:
92
+ return IOType(3)
93
+
94
+ else:
95
+ raise Exception(("Material IO column and " + str(other)) + " can not be merged")
96
+
97
+
98
+ elif other.tag == 4:
99
+ if this.fields[0] == other.fields[0]:
100
+ return IOType(4, this.fields[0])
101
+
102
+ else:
103
+ raise Exception(((("FreeText IO column names " + this.fields[0]) + " and ") + other.fields[0]) + " do differ")
104
+
105
+
106
+ else:
107
+ raise Exception(("FreeText IO column and " + str(other)) + " can not be merged")
108
+
109
+
110
+ def __str__(self, __unit: None=None) -> str:
111
+ this: IOType = self
112
+ if this.tag == 1:
113
+ return "Sample Name"
114
+
115
+ elif this.tag == 2:
116
+ return "Data"
117
+
118
+ elif this.tag == 3:
119
+ return "Material"
120
+
121
+ elif this.tag == 4:
122
+ return this.fields[0]
123
+
124
+ else:
125
+ return "Source Name"
126
+
127
+
128
+ @staticmethod
129
+ def of_string(str_1: str) -> IOType:
130
+ return IOType(0) if (str_1 == "Source") else (IOType(0) if (str_1 == "Source Name") else (IOType(1) if (str_1 == "Sample") else (IOType(1) if (str_1 == "Sample Name") else (IOType(2) if (str_1 == "RawDataFile") else (IOType(2) if (str_1 == "Raw Data File") else (IOType(2) if (str_1 == "DerivedDataFile") else (IOType(2) if (str_1 == "Derived Data File") else (IOType(2) if (str_1 == "ImageFile") else (IOType(2) if (str_1 == "Image File") else (IOType(2) if (str_1 == "Data") else (IOType(3) if (str_1 == "Material") else IOType(4, str_1))))))))))))
131
+
132
+ @staticmethod
133
+ def try_of_header_string(str_1: str) -> IOType | None:
134
+ match_value: str | None = try_parse_iotype_header(str_1)
135
+ if match_value is None:
136
+ return None
137
+
138
+ else:
139
+ s: str = match_value
140
+ return IOType.of_string(s)
141
+
142
+
143
+ @staticmethod
144
+ def source(__unit: None=None) -> IOType:
145
+ return IOType(0)
146
+
147
+ @staticmethod
148
+ def sample(__unit: None=None) -> IOType:
149
+ return IOType(1)
150
+
151
+ @staticmethod
152
+ def data(__unit: None=None) -> IOType:
153
+ return IOType(2)
154
+
155
+ @staticmethod
156
+ def material(__unit: None=None) -> IOType:
157
+ return IOType(3)
158
+
159
+ @staticmethod
160
+ def free_text(s: str) -> IOType:
161
+ return IOType(4, s)
162
+
163
+
164
+ IOType_reflection = _expr1145
165
+
166
+ def _expr1146() -> TypeInfo:
167
+ return union_type("ARCtrl.CompositeHeader", [], CompositeHeader, lambda: [[("Item", OntologyAnnotation_reflection())], [("Item", OntologyAnnotation_reflection())], [("Item", OntologyAnnotation_reflection())], [("Item", OntologyAnnotation_reflection())], [], [], [], [], [], [], [], [("Item", IOType_reflection())], [("Item", IOType_reflection())], [("Item", string_type)], [("Item", string_type)]])
168
+
169
+
170
+ class CompositeHeader(Union):
171
+ def __init__(self, tag: int, *fields: Any) -> None:
172
+ super().__init__()
173
+ self.tag: int = tag or 0
174
+ self.fields: Array[Any] = list(fields)
175
+
176
+ @staticmethod
177
+ def cases() -> list[str]:
178
+ return ["Component", "Characteristic", "Factor", "Parameter", "ProtocolType", "ProtocolDescription", "ProtocolUri", "ProtocolVersion", "ProtocolREF", "Performer", "Date", "Input", "Output", "FreeText", "Comment"]
179
+
180
+ @staticmethod
181
+ def Cases() -> Array[tuple[int, str]]:
182
+ def mapping(x: Any) -> tuple[int, str]:
183
+ return (x.tag, name(x))
184
+
185
+ return map(mapping, get_union_cases(CompositeHeader_reflection()), None)
186
+
187
+ @staticmethod
188
+ def js_get_column_meta_type(inp: int) -> int:
189
+ return 1 if (inp == 0) else (1 if (inp == 1) else (1 if (inp == 2) else (1 if (inp == 3) else (0 if (inp == 4) else (0 if (inp == 5) else (0 if (inp == 6) else (0 if (inp == 7) else (0 if (inp == 8) else (0 if (inp == 9) else (0 if (inp == 10) else (2 if (inp == 11) else (2 if (inp == 12) else (3 if (inp == 13) else (3 if (inp == 14) else to_fail(printf("Cannot assign input `Tag` (%i) to `CompositeHeader`"))(inp)))))))))))))))
190
+
191
+ def __str__(self, __unit: None=None) -> str:
192
+ this: CompositeHeader = self
193
+ if this.tag == 2:
194
+ return ("Factor [" + this.fields[0].NameText) + "]"
195
+
196
+ elif this.tag == 1:
197
+ return ("Characteristic [" + this.fields[0].NameText) + "]"
198
+
199
+ elif this.tag == 0:
200
+ return ("Component [" + this.fields[0].NameText) + "]"
201
+
202
+ elif this.tag == 4:
203
+ return "Protocol Type"
204
+
205
+ elif this.tag == 8:
206
+ return "Protocol REF"
207
+
208
+ elif this.tag == 5:
209
+ return "Protocol Description"
210
+
211
+ elif this.tag == 6:
212
+ return "Protocol Uri"
213
+
214
+ elif this.tag == 7:
215
+ return "Protocol Version"
216
+
217
+ elif this.tag == 9:
218
+ return "Performer"
219
+
220
+ elif this.tag == 10:
221
+ return "Date"
222
+
223
+ elif this.tag == 11:
224
+ return this.fields[0].as_input
225
+
226
+ elif this.tag == 12:
227
+ return this.fields[0].as_output
228
+
229
+ elif this.tag == 14:
230
+ return ("Comment [" + this.fields[0]) + "]"
231
+
232
+ elif this.tag == 13:
233
+ return this.fields[0]
234
+
235
+ else:
236
+ return ("Parameter [" + this.fields[0].NameText) + "]"
237
+
238
+
239
+ def ToTerm(self, __unit: None=None) -> OntologyAnnotation:
240
+ this: CompositeHeader = self
241
+ if this.tag == 2:
242
+ return this.fields[0]
243
+
244
+ elif this.tag == 1:
245
+ return this.fields[0]
246
+
247
+ elif this.tag == 0:
248
+ return this.fields[0]
249
+
250
+ elif this.tag == 4:
251
+ return OntologyAnnotation.create(to_string(this), None, this.GetFeaturedColumnAccession)
252
+
253
+ elif this.tag == 8:
254
+ return OntologyAnnotation.create(to_string(this))
255
+
256
+ elif this.tag == 5:
257
+ return OntologyAnnotation.create(to_string(this))
258
+
259
+ elif this.tag == 6:
260
+ return OntologyAnnotation.create(to_string(this))
261
+
262
+ elif this.tag == 7:
263
+ return OntologyAnnotation.create(to_string(this))
264
+
265
+ elif this.tag == 9:
266
+ return OntologyAnnotation.create(to_string(this))
267
+
268
+ elif this.tag == 10:
269
+ return OntologyAnnotation.create(to_string(this))
270
+
271
+ elif this.tag == 11:
272
+ return OntologyAnnotation.create(to_string(this))
273
+
274
+ elif this.tag == 12:
275
+ return OntologyAnnotation.create(to_string(this))
276
+
277
+ elif this.tag == 14:
278
+ return OntologyAnnotation.create(to_string(this))
279
+
280
+ elif this.tag == 13:
281
+ return OntologyAnnotation.create(to_string(this))
282
+
283
+ else:
284
+ return this.fields[0]
285
+
286
+
287
+ @staticmethod
288
+ def OfHeaderString(str_1: str) -> CompositeHeader:
289
+ match_value: str = str_1.strip()
290
+ active_pattern_result: Any | None = ActivePatterns__007CRegex_007C__007C(Pattern_InputPattern, match_value)
291
+ if active_pattern_result is not None:
292
+ r: Any = active_pattern_result
293
+ iotype: str = get_item(groups(r), "iotype") or ""
294
+ return CompositeHeader(11, IOType.of_string(iotype))
295
+
296
+ else:
297
+ active_pattern_result_1: Any | None = ActivePatterns__007CRegex_007C__007C(Pattern_OutputPattern, match_value)
298
+ if active_pattern_result_1 is not None:
299
+ r_1: Any = active_pattern_result_1
300
+ iotype_1: str = get_item(groups(r_1), "iotype") or ""
301
+ return CompositeHeader(12, IOType.of_string(iotype_1))
302
+
303
+ else:
304
+ active_pattern_result_2: Any | None = ActivePatterns__007CRegex_007C__007C(Pattern_CommentPattern, match_value)
305
+ if active_pattern_result_2 is not None:
306
+ r_2: Any = active_pattern_result_2
307
+ return CompositeHeader(14, get_item(groups(r_2), "commentKey") or "")
308
+
309
+ else:
310
+ active_pattern_result_3: dict[str, Any] | None = ActivePatterns__007CTermColumn_007C__007C(match_value)
311
+ if active_pattern_result_3 is not None:
312
+ r_3: dict[str, Any] = active_pattern_result_3
313
+ match_value_1: str = r_3["TermColumnType"]
314
+ (pattern_matching_result,) = (None,)
315
+ if match_value_1 == "Parameter":
316
+ pattern_matching_result = 0
317
+
318
+ elif match_value_1 == "Parameter Value":
319
+ pattern_matching_result = 0
320
+
321
+ elif match_value_1 == "Factor":
322
+ pattern_matching_result = 1
323
+
324
+ elif match_value_1 == "Factor Value":
325
+ pattern_matching_result = 1
326
+
327
+ elif match_value_1 == "Characteristic":
328
+ pattern_matching_result = 2
329
+
330
+ elif match_value_1 == "Characteristics":
331
+ pattern_matching_result = 2
332
+
333
+ elif match_value_1 == "Characteristics Value":
334
+ pattern_matching_result = 2
335
+
336
+ elif match_value_1 == "Component":
337
+ pattern_matching_result = 3
338
+
339
+ else:
340
+ pattern_matching_result = 4
341
+
342
+ if pattern_matching_result == 0:
343
+ return CompositeHeader(3, OntologyAnnotation.create(r_3["TermName"]))
344
+
345
+ elif pattern_matching_result == 1:
346
+ return CompositeHeader(2, OntologyAnnotation.create(r_3["TermName"]))
347
+
348
+ elif pattern_matching_result == 2:
349
+ return CompositeHeader(1, OntologyAnnotation.create(r_3["TermName"]))
350
+
351
+ elif pattern_matching_result == 3:
352
+ return CompositeHeader(0, OntologyAnnotation.create(r_3["TermName"]))
353
+
354
+ elif pattern_matching_result == 4:
355
+ return CompositeHeader(13, str_1)
356
+
357
+
358
+ else:
359
+ return CompositeHeader(10) if (match_value == "Date") else (CompositeHeader(9) if (match_value == "Performer") else (CompositeHeader(5) if (match_value == "Protocol Description") else (CompositeHeader(6) if (match_value == "Protocol Uri") else (CompositeHeader(7) if (match_value == "Protocol Version") else (CompositeHeader(4) if (match_value == "Protocol Type") else (CompositeHeader(8) if (match_value == "Protocol REF") else CompositeHeader(13, match_value)))))))
360
+
361
+
362
+
363
+
364
+
365
+ @property
366
+ def IsDeprecated(self, __unit: None=None) -> bool:
367
+ this: CompositeHeader = self
368
+ (pattern_matching_result,) = (None,)
369
+ if this.tag == 13:
370
+ if this.fields[0].lower() == "sample name":
371
+ pattern_matching_result = 0
372
+
373
+ elif this.fields[0].lower() == "source name":
374
+ pattern_matching_result = 1
375
+
376
+ elif this.fields[0].lower() == "data file name":
377
+ pattern_matching_result = 2
378
+
379
+ elif this.fields[0].lower() == "derived data file":
380
+ pattern_matching_result = 3
381
+
382
+ else:
383
+ pattern_matching_result = 4
384
+
385
+
386
+ else:
387
+ pattern_matching_result = 4
388
+
389
+ if pattern_matching_result == 0:
390
+ return True
391
+
392
+ elif pattern_matching_result == 1:
393
+ return True
394
+
395
+ elif pattern_matching_result == 2:
396
+ return True
397
+
398
+ elif pattern_matching_result == 3:
399
+ return True
400
+
401
+ elif pattern_matching_result == 4:
402
+ return False
403
+
404
+
405
+ @property
406
+ def IsCvParamColumn(self, __unit: None=None) -> bool:
407
+ this: CompositeHeader = self
408
+ if (((this.tag == 3) or (this.tag == 2)) or (this.tag == 1)) or (this.tag == 0):
409
+ return True
410
+
411
+ else:
412
+ return False
413
+
414
+
415
+ @property
416
+ def IsTermColumn(self, __unit: None=None) -> bool:
417
+ this: CompositeHeader = self
418
+ if ((((this.tag == 3) or (this.tag == 2)) or (this.tag == 1)) or (this.tag == 0)) or (this.tag == 4):
419
+ return True
420
+
421
+ else:
422
+ return False
423
+
424
+
425
+ @property
426
+ def IsDataColumn(self, __unit: None=None) -> bool:
427
+ this: CompositeHeader = self
428
+ (pattern_matching_result,) = (None,)
429
+ if this.tag == 11:
430
+ if this.fields[0].tag == 2:
431
+ pattern_matching_result = 0
432
+
433
+ else:
434
+ pattern_matching_result = 1
435
+
436
+
437
+ elif this.tag == 12:
438
+ if this.fields[0].tag == 2:
439
+ pattern_matching_result = 0
440
+
441
+ else:
442
+ pattern_matching_result = 1
443
+
444
+
445
+ else:
446
+ pattern_matching_result = 1
447
+
448
+ if pattern_matching_result == 0:
449
+ return True
450
+
451
+ elif pattern_matching_result == 1:
452
+ return False
453
+
454
+
455
+ @property
456
+ def IsFeaturedColumn(self, __unit: None=None) -> bool:
457
+ this: CompositeHeader = self
458
+ return True if (this.tag == 4) else False
459
+
460
+ @property
461
+ def GetFeaturedColumnAccession(self, __unit: None=None) -> str:
462
+ this: CompositeHeader = self
463
+ if this.tag == 4:
464
+ return "DPBO:1000161"
465
+
466
+ else:
467
+ raise Exception(("Tried matching " + str(this)) + " in getFeaturedColumnAccession, but is not a featured column.")
468
+
469
+
470
+ @property
471
+ def GetColumnAccessionShort(self, __unit: None=None) -> str:
472
+ this: CompositeHeader = self
473
+ if this.tag == 4:
474
+ return this.GetFeaturedColumnAccession
475
+
476
+ elif this.tag == 3:
477
+ return this.fields[0].TermAccessionShort
478
+
479
+ elif this.tag == 2:
480
+ return this.fields[0].TermAccessionShort
481
+
482
+ elif this.tag == 1:
483
+ return this.fields[0].TermAccessionShort
484
+
485
+ elif this.tag == 0:
486
+ return this.fields[0].TermAccessionShort
487
+
488
+ else:
489
+ raise Exception(("Tried matching " + str(this)) + ", but is not a column with an accession.")
490
+
491
+
492
+ @property
493
+ def IsSingleColumn(self, __unit: None=None) -> bool:
494
+ this: CompositeHeader = self
495
+ if (((((((((this.tag == 13) or (this.tag == 11)) or (this.tag == 12)) or (this.tag == 14)) or (this.tag == 8)) or (this.tag == 5)) or (this.tag == 6)) or (this.tag == 7)) or (this.tag == 9)) or (this.tag == 10):
496
+ return True
497
+
498
+ else:
499
+ return False
500
+
501
+
502
+ @property
503
+ def IsIOType(self, __unit: None=None) -> bool:
504
+ this: CompositeHeader = self
505
+ if this.tag == 11:
506
+ return True
507
+
508
+ elif this.tag == 12:
509
+ return True
510
+
511
+ else:
512
+ return False
513
+
514
+
515
+ @property
516
+ def is_input(self, __unit: None=None) -> bool:
517
+ this: CompositeHeader = self
518
+ return True if (this.tag == 11) else False
519
+
520
+ @property
521
+ def is_output(self, __unit: None=None) -> bool:
522
+ this: CompositeHeader = self
523
+ return True if (this.tag == 12) else False
524
+
525
+ @property
526
+ def is_parameter(self, __unit: None=None) -> bool:
527
+ this: CompositeHeader = self
528
+ return True if (this.tag == 3) else False
529
+
530
+ @property
531
+ def is_factor(self, __unit: None=None) -> bool:
532
+ this: CompositeHeader = self
533
+ return True if (this.tag == 2) else False
534
+
535
+ @property
536
+ def is_characteristic(self, __unit: None=None) -> bool:
537
+ this: CompositeHeader = self
538
+ return True if (this.tag == 1) else False
539
+
540
+ @property
541
+ def is_component(self, __unit: None=None) -> bool:
542
+ this: CompositeHeader = self
543
+ return True if (this.tag == 0) else False
544
+
545
+ @property
546
+ def is_protocol_type(self, __unit: None=None) -> bool:
547
+ this: CompositeHeader = self
548
+ return True if (this.tag == 4) else False
549
+
550
+ @property
551
+ def is_protocol_ref(self, __unit: None=None) -> bool:
552
+ this: CompositeHeader = self
553
+ return True if (this.tag == 8) else False
554
+
555
+ @property
556
+ def is_protocol_description(self, __unit: None=None) -> bool:
557
+ this: CompositeHeader = self
558
+ return True if (this.tag == 5) else False
559
+
560
+ @property
561
+ def is_protocol_uri(self, __unit: None=None) -> bool:
562
+ this: CompositeHeader = self
563
+ return True if (this.tag == 6) else False
564
+
565
+ @property
566
+ def is_protocol_version(self, __unit: None=None) -> bool:
567
+ this: CompositeHeader = self
568
+ return True if (this.tag == 7) else False
569
+
570
+ @property
571
+ def is_protocol_column(self, __unit: None=None) -> bool:
572
+ this: CompositeHeader = self
573
+ if ((((this.tag == 8) or (this.tag == 5)) or (this.tag == 6)) or (this.tag == 7)) or (this.tag == 4):
574
+ return True
575
+
576
+ else:
577
+ return False
578
+
579
+
580
+ @property
581
+ def is_performer(self, __unit: None=None) -> bool:
582
+ this: CompositeHeader = self
583
+ return True if (this.tag == 9) else False
584
+
585
+ @property
586
+ def is_date(self, __unit: None=None) -> bool:
587
+ this: CompositeHeader = self
588
+ return True if (this.tag == 10) else False
589
+
590
+ @property
591
+ def is_comment(self, __unit: None=None) -> bool:
592
+ this: CompositeHeader = self
593
+ return True if (this.tag == 14) else False
594
+
595
+ @property
596
+ def is_free_text(self, __unit: None=None) -> bool:
597
+ this: CompositeHeader = self
598
+ return True if (this.tag == 13) else False
599
+
600
+ def TryInput(self, __unit: None=None) -> IOType | None:
601
+ this: CompositeHeader = self
602
+ return this.fields[0] if (this.tag == 11) else None
603
+
604
+ def TryOutput(self, __unit: None=None) -> IOType | None:
605
+ this: CompositeHeader = self
606
+ return this.fields[0] if (this.tag == 12) else None
607
+
608
+ def TryIOType(self, __unit: None=None) -> IOType | None:
609
+ this: CompositeHeader = self
610
+ (pattern_matching_result, io) = (None, None)
611
+ if this.tag == 12:
612
+ pattern_matching_result = 0
613
+ io = this.fields[0]
614
+
615
+ elif this.tag == 11:
616
+ pattern_matching_result = 0
617
+ io = this.fields[0]
618
+
619
+ else:
620
+ pattern_matching_result = 1
621
+
622
+ if pattern_matching_result == 0:
623
+ return io
624
+
625
+ elif pattern_matching_result == 1:
626
+ return None
627
+
628
+
629
+ @property
630
+ def IsUnique(self, __unit: None=None) -> bool:
631
+ this: CompositeHeader = self
632
+ if ((((((((this.tag == 4) or (this.tag == 8)) or (this.tag == 5)) or (this.tag == 6)) or (this.tag == 7)) or (this.tag == 9)) or (this.tag == 10)) or (this.tag == 11)) or (this.tag == 12):
633
+ return True
634
+
635
+ else:
636
+ return False
637
+
638
+
639
+ def Copy(self, __unit: None=None) -> CompositeHeader:
640
+ this: CompositeHeader = self
641
+ if this.tag == 3:
642
+ return CompositeHeader(3, this.fields[0].Copy())
643
+
644
+ elif this.tag == 2:
645
+ return CompositeHeader(2, this.fields[0].Copy())
646
+
647
+ elif this.tag == 1:
648
+ return CompositeHeader(1, this.fields[0].Copy())
649
+
650
+ elif this.tag == 0:
651
+ return CompositeHeader(0, this.fields[0].Copy())
652
+
653
+ else:
654
+ return this
655
+
656
+
657
+ def TryGetTerm(self, __unit: None=None) -> OntologyAnnotation | None:
658
+ this: CompositeHeader = self
659
+ if this.tag == 3:
660
+ return this.fields[0]
661
+
662
+ elif this.tag == 2:
663
+ return this.fields[0]
664
+
665
+ elif this.tag == 1:
666
+ return this.fields[0]
667
+
668
+ elif this.tag == 0:
669
+ return this.fields[0]
670
+
671
+ else:
672
+ return None
673
+
674
+
675
+ @staticmethod
676
+ def component(oa: OntologyAnnotation) -> CompositeHeader:
677
+ return CompositeHeader(0, oa)
678
+
679
+ @staticmethod
680
+ def characteristic(oa: OntologyAnnotation) -> CompositeHeader:
681
+ return CompositeHeader(1, oa)
682
+
683
+ @staticmethod
684
+ def factor(oa: OntologyAnnotation) -> CompositeHeader:
685
+ return CompositeHeader(2, oa)
686
+
687
+ @staticmethod
688
+ def parameter(oa: OntologyAnnotation) -> CompositeHeader:
689
+ return CompositeHeader(3, oa)
690
+
691
+ @staticmethod
692
+ def protocol_type(__unit: None=None) -> CompositeHeader:
693
+ return CompositeHeader(4)
694
+
695
+ @staticmethod
696
+ def protocol_description(__unit: None=None) -> CompositeHeader:
697
+ return CompositeHeader(5)
698
+
699
+ @staticmethod
700
+ def protocol_uri(__unit: None=None) -> CompositeHeader:
701
+ return CompositeHeader(6)
702
+
703
+ @staticmethod
704
+ def protocol_version(__unit: None=None) -> CompositeHeader:
705
+ return CompositeHeader(7)
706
+
707
+ @staticmethod
708
+ def protocol_ref(__unit: None=None) -> CompositeHeader:
709
+ return CompositeHeader(8)
710
+
711
+ @staticmethod
712
+ def performer(__unit: None=None) -> CompositeHeader:
713
+ return CompositeHeader(9)
714
+
715
+ @staticmethod
716
+ def date(__unit: None=None) -> CompositeHeader:
717
+ return CompositeHeader(10)
718
+
719
+ @staticmethod
720
+ def input(io: IOType) -> CompositeHeader:
721
+ return CompositeHeader(11, io)
722
+
723
+ @staticmethod
724
+ def output(io: IOType) -> CompositeHeader:
725
+ return CompositeHeader(12, io)
726
+
727
+ @staticmethod
728
+ def free_text(s: str) -> CompositeHeader:
729
+ return CompositeHeader(13, s)
730
+
731
+ @staticmethod
732
+ def comment(s: str) -> CompositeHeader:
733
+ return CompositeHeader(14, s)
734
+
735
+
736
+ CompositeHeader_reflection = _expr1146
737
+
738
+ __all__ = ["IOType_reflection", "CompositeHeader_reflection"]
739
+