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,435 @@
1
+ from __future__ import annotations
2
+ from collections.abc import Callable
3
+ from typing import Any
4
+ from ...fable_modules.fable_library.list import (choose, FSharpList, filter, concat, collect, empty, map, zip, singleton)
5
+ from ...fable_modules.fable_library.map import (of_list as of_list_1, FSharpMap__TryFind)
6
+ from ...fable_modules.fable_library.option import (bind, default_arg, value as value_4)
7
+ from ...fable_modules.fable_library.seq2 import (List_distinct, List_groupBy)
8
+ from ...fable_modules.fable_library.set import (of_list, FSharpSet__Contains)
9
+ from ...fable_modules.fable_library.util import (string_hash, equals, safe_hash, compare_primitives, equal_arrays, array_hash)
10
+ from ..data import Data
11
+ from ..ontology_annotation import OntologyAnnotation
12
+ from .factor import Factor
13
+ from .factor_value import FactorValue
14
+ from .material import Material
15
+ from .material_attribute import MaterialAttribute
16
+ from .material_attribute_value import MaterialAttributeValue
17
+ from .process import (Process, Process_tryGetInputsWithParameterBy, Process_tryGetOutputsWithParameterBy, Process_getParameters_763471FF, Process_getCharacteristics_763471FF, Process_tryGetInputsWithCharacteristicBy, Process_tryGetOutputsWithCharacteristicBy, Process_tryGetOutputsWithFactorBy, Process_getFactors_763471FF, Process_getUnits_763471FF, Process_getData_763471FF, Process_getSources_763471FF, Process_getSamples_763471FF, Process_getMaterials_763471FF)
18
+ from .process_input import (ProcessInput, ProcessInput_getName_5B3D5BA9, ProcessInput__get_Name)
19
+ from .process_output import (ProcessOutput, ProcessOutput_getName_Z42C11600, ProcessOutput__get_Name)
20
+ from .process_parameter_value import ProcessParameterValue
21
+ from .protocol import Protocol
22
+ from .protocol_parameter import ProtocolParameter
23
+ from .sample import Sample
24
+ from .source import Source
25
+
26
+ def get_protocol_names(process_sequence: FSharpList[Process]) -> FSharpList[str]:
27
+ def chooser(p: Process, process_sequence: Any=process_sequence) -> str | None:
28
+ def binder(protocol: Protocol, p: Any=p) -> str | None:
29
+ return protocol.Name
30
+
31
+ return bind(binder, p.ExecutesProtocol)
32
+
33
+ class ObjectExpr603:
34
+ @property
35
+ def Equals(self) -> Callable[[str, str], bool]:
36
+ def _arrow602(x: str, y: str) -> bool:
37
+ return x == y
38
+
39
+ return _arrow602
40
+
41
+ @property
42
+ def GetHashCode(self) -> Callable[[str], int]:
43
+ return string_hash
44
+
45
+ return List_distinct(choose(chooser, process_sequence), ObjectExpr603())
46
+
47
+
48
+ def get_protocols(process_sequence: FSharpList[Process]) -> FSharpList[Protocol]:
49
+ def chooser(p: Process, process_sequence: Any=process_sequence) -> Protocol | None:
50
+ return p.ExecutesProtocol
51
+
52
+ class ObjectExpr604:
53
+ @property
54
+ def Equals(self) -> Callable[[Protocol, Protocol], bool]:
55
+ return equals
56
+
57
+ @property
58
+ def GetHashCode(self) -> Callable[[Protocol], int]:
59
+ return safe_hash
60
+
61
+ return List_distinct(choose(chooser, process_sequence), ObjectExpr604())
62
+
63
+
64
+ def filter_by_protocol_by(predicate: Callable[[Protocol], bool], process_sequence: FSharpList[Process]) -> FSharpList[Process]:
65
+ def predicate_1(p: Process, predicate: Any=predicate, process_sequence: Any=process_sequence) -> bool:
66
+ match_value: Protocol | None = p.ExecutesProtocol
67
+ (pattern_matching_result,) = (None,)
68
+ if match_value is not None:
69
+ if predicate(match_value):
70
+ pattern_matching_result = 0
71
+
72
+ else:
73
+ pattern_matching_result = 1
74
+
75
+
76
+ else:
77
+ pattern_matching_result = 1
78
+
79
+ if pattern_matching_result == 0:
80
+ return True
81
+
82
+ elif pattern_matching_result == 1:
83
+ return False
84
+
85
+
86
+ return filter(predicate_1, process_sequence)
87
+
88
+
89
+ def filter_by_protocol_name(protocol_name: str, process_sequence: FSharpList[Process]) -> FSharpList[Process]:
90
+ def _arrow605(p: Protocol, protocol_name: Any=protocol_name, process_sequence: Any=process_sequence) -> bool:
91
+ return equals(p.Name, protocol_name)
92
+
93
+ return filter_by_protocol_by(_arrow605, process_sequence)
94
+
95
+
96
+ def get_inputs_with_parameter_by(predicate: Callable[[ProtocolParameter], bool], process_sequence: FSharpList[Process]) -> FSharpList[tuple[ProcessInput, ProcessParameterValue]]:
97
+ def chooser(p: Process, predicate: Any=predicate, process_sequence: Any=process_sequence) -> FSharpList[tuple[ProcessInput, ProcessParameterValue]] | None:
98
+ return Process_tryGetInputsWithParameterBy(predicate, p)
99
+
100
+ return concat(choose(chooser, process_sequence))
101
+
102
+
103
+ def get_outputs_with_parameter_by(predicate: Callable[[ProtocolParameter], bool], process_sequence: FSharpList[Process]) -> FSharpList[tuple[ProcessOutput, ProcessParameterValue]]:
104
+ def chooser(p: Process, predicate: Any=predicate, process_sequence: Any=process_sequence) -> FSharpList[tuple[ProcessOutput, ProcessParameterValue]] | None:
105
+ return Process_tryGetOutputsWithParameterBy(predicate, p)
106
+
107
+ return concat(choose(chooser, process_sequence))
108
+
109
+
110
+ def get_parameters(process_sequence: FSharpList[Process]) -> FSharpList[ProtocolParameter]:
111
+ def mapping(p: Process, process_sequence: Any=process_sequence) -> FSharpList[ProtocolParameter]:
112
+ return Process_getParameters_763471FF(p)
113
+
114
+ class ObjectExpr606:
115
+ @property
116
+ def Equals(self) -> Callable[[ProtocolParameter, ProtocolParameter], bool]:
117
+ return equals
118
+
119
+ @property
120
+ def GetHashCode(self) -> Callable[[ProtocolParameter], int]:
121
+ return safe_hash
122
+
123
+ return List_distinct(collect(mapping, process_sequence), ObjectExpr606())
124
+
125
+
126
+ def get_characteristics(process_sequence: FSharpList[Process]) -> FSharpList[MaterialAttribute]:
127
+ def mapping(p: Process, process_sequence: Any=process_sequence) -> FSharpList[MaterialAttribute]:
128
+ return Process_getCharacteristics_763471FF(p)
129
+
130
+ class ObjectExpr607:
131
+ @property
132
+ def Equals(self) -> Callable[[MaterialAttribute, MaterialAttribute], bool]:
133
+ return equals
134
+
135
+ @property
136
+ def GetHashCode(self) -> Callable[[MaterialAttribute], int]:
137
+ return safe_hash
138
+
139
+ return List_distinct(collect(mapping, process_sequence), ObjectExpr607())
140
+
141
+
142
+ def get_inputs_with_characteristic_by(predicate: Callable[[MaterialAttribute], bool], process_sequence: FSharpList[Process]) -> FSharpList[tuple[ProcessInput, MaterialAttributeValue]]:
143
+ def chooser(p: Process, predicate: Any=predicate, process_sequence: Any=process_sequence) -> FSharpList[tuple[ProcessInput, MaterialAttributeValue]] | None:
144
+ return Process_tryGetInputsWithCharacteristicBy(predicate, p)
145
+
146
+ return concat(choose(chooser, process_sequence))
147
+
148
+
149
+ def get_outputs_with_characteristic_by(predicate: Callable[[MaterialAttribute], bool], process_sequence: FSharpList[Process]) -> FSharpList[tuple[ProcessOutput, MaterialAttributeValue]]:
150
+ def chooser(p: Process, predicate: Any=predicate, process_sequence: Any=process_sequence) -> FSharpList[tuple[ProcessOutput, MaterialAttributeValue]] | None:
151
+ return Process_tryGetOutputsWithCharacteristicBy(predicate, p)
152
+
153
+ return concat(choose(chooser, process_sequence))
154
+
155
+
156
+ def get_outputs_with_factor_by(predicate: Callable[[Factor], bool], process_sequence: FSharpList[Process]) -> FSharpList[tuple[ProcessOutput, FactorValue]]:
157
+ def chooser(p: Process, predicate: Any=predicate, process_sequence: Any=process_sequence) -> FSharpList[tuple[ProcessOutput, FactorValue]] | None:
158
+ return Process_tryGetOutputsWithFactorBy(predicate, p)
159
+
160
+ return concat(choose(chooser, process_sequence))
161
+
162
+
163
+ def get_factors(process_sequence: FSharpList[Process]) -> FSharpList[Factor]:
164
+ def mapping(p: Process, process_sequence: Any=process_sequence) -> FSharpList[Factor]:
165
+ return Process_getFactors_763471FF(p)
166
+
167
+ class ObjectExpr608:
168
+ @property
169
+ def Equals(self) -> Callable[[Factor, Factor], bool]:
170
+ return equals
171
+
172
+ @property
173
+ def GetHashCode(self) -> Callable[[Factor], int]:
174
+ return safe_hash
175
+
176
+ return List_distinct(collect(mapping, process_sequence), ObjectExpr608())
177
+
178
+
179
+ def get_root_inputs(process_sequence: FSharpList[Process]) -> FSharpList[ProcessInput]:
180
+ def mapping(p: Process, process_sequence: Any=process_sequence) -> FSharpList[ProcessInput]:
181
+ return default_arg(p.Inputs, empty())
182
+
183
+ inputs: FSharpList[ProcessInput] = collect(mapping, process_sequence)
184
+ def mapping_2(p_1: Process, process_sequence: Any=process_sequence) -> FSharpList[str]:
185
+ def mapping_1(po: ProcessOutput, p_1: Any=p_1) -> str:
186
+ return ProcessOutput_getName_Z42C11600(po)
187
+
188
+ return map(mapping_1, default_arg(p_1.Outputs, empty()))
189
+
190
+ class ObjectExpr609:
191
+ @property
192
+ def Compare(self) -> Callable[[str, str], int]:
193
+ return compare_primitives
194
+
195
+ outputs: Any = of_list(collect(mapping_2, process_sequence), ObjectExpr609())
196
+ def predicate(i: ProcessInput, process_sequence: Any=process_sequence) -> bool:
197
+ return not FSharpSet__Contains(outputs, ProcessInput_getName_5B3D5BA9(i))
198
+
199
+ return filter(predicate, inputs)
200
+
201
+
202
+ def get_final_outputs(process_sequence: FSharpList[Process]) -> FSharpList[ProcessOutput]:
203
+ def mapping_1(p: Process, process_sequence: Any=process_sequence) -> FSharpList[str]:
204
+ def mapping(pi: ProcessInput, p: Any=p) -> str:
205
+ return ProcessInput_getName_5B3D5BA9(pi)
206
+
207
+ return map(mapping, default_arg(p.Inputs, empty()))
208
+
209
+ class ObjectExpr610:
210
+ @property
211
+ def Compare(self) -> Callable[[str, str], int]:
212
+ return compare_primitives
213
+
214
+ inputs: Any = of_list(collect(mapping_1, process_sequence), ObjectExpr610())
215
+ def predicate(o: ProcessOutput, process_sequence: Any=process_sequence) -> bool:
216
+ return not FSharpSet__Contains(inputs, ProcessOutput_getName_Z42C11600(o))
217
+
218
+ def mapping_2(p_1: Process, process_sequence: Any=process_sequence) -> FSharpList[ProcessOutput]:
219
+ return default_arg(p_1.Outputs, empty())
220
+
221
+ return filter(predicate, collect(mapping_2, process_sequence))
222
+
223
+
224
+ def get_root_input_of(process_sequence: FSharpList[Process], sample: str) -> FSharpList[str]:
225
+ def mapping_4(tupled_arg: tuple[str, FSharpList[tuple[str, str]]], process_sequence: Any=process_sequence, sample: Any=sample) -> tuple[str, FSharpList[str]]:
226
+ def mapping_3(tuple_1: tuple[str, str], tupled_arg: Any=tupled_arg) -> str:
227
+ return tuple_1[1]
228
+
229
+ return (tupled_arg[0], map(mapping_3, tupled_arg[1]))
230
+
231
+ def projection(tuple: tuple[str, str], process_sequence: Any=process_sequence, sample: Any=sample) -> str:
232
+ return tuple[0]
233
+
234
+ def mapping_2(p: Process, process_sequence: Any=process_sequence, sample: Any=sample) -> FSharpList[tuple[str, str]]:
235
+ def mapping(o: ProcessOutput, p: Any=p) -> str:
236
+ return ProcessOutput__get_Name(o)
237
+
238
+ def mapping_1(i: ProcessInput, p: Any=p) -> str:
239
+ return ProcessInput__get_Name(i)
240
+
241
+ class ObjectExpr611:
242
+ @property
243
+ def Equals(self) -> Callable[[tuple[str, str], tuple[str, str]], bool]:
244
+ return equal_arrays
245
+
246
+ @property
247
+ def GetHashCode(self) -> Callable[[tuple[str, str]], int]:
248
+ return array_hash
249
+
250
+ return List_distinct(zip(map(mapping, value_4(p.Outputs)), map(mapping_1, value_4(p.Inputs))), ObjectExpr611())
251
+
252
+ class ObjectExpr613:
253
+ @property
254
+ def Equals(self) -> Callable[[str, str], bool]:
255
+ def _arrow612(x_1: str, y_1: str) -> bool:
256
+ return x_1 == y_1
257
+
258
+ return _arrow612
259
+
260
+ @property
261
+ def GetHashCode(self) -> Callable[[str], int]:
262
+ return string_hash
263
+
264
+ class ObjectExpr614:
265
+ @property
266
+ def Compare(self) -> Callable[[str, str], int]:
267
+ return compare_primitives
268
+
269
+ mappings: Any = of_list_1(map(mapping_4, List_groupBy(projection, collect(mapping_2, process_sequence), ObjectExpr613())), ObjectExpr614())
270
+ def loop(last_state_mut: FSharpList[str], state_mut: FSharpList[str], process_sequence: Any=process_sequence, sample: Any=sample) -> FSharpList[str]:
271
+ while True:
272
+ (last_state, state) = (last_state_mut, state_mut)
273
+ if equals(last_state, state):
274
+ return state
275
+
276
+ else:
277
+ last_state_mut = state
278
+ def mapping_5(s: str, last_state: Any=last_state, state: Any=state) -> FSharpList[str]:
279
+ return default_arg(FSharpMap__TryFind(mappings, s), singleton(s))
280
+
281
+ state_mut = collect(mapping_5, state)
282
+ continue
283
+
284
+ break
285
+
286
+ return loop(empty(), singleton(sample))
287
+
288
+
289
+ def get_final_outputs_of(process_sequence: FSharpList[Process], sample: str) -> FSharpList[str]:
290
+ def mapping_4(tupled_arg: tuple[str, FSharpList[tuple[str, str]]], process_sequence: Any=process_sequence, sample: Any=sample) -> tuple[str, FSharpList[str]]:
291
+ def mapping_3(tuple_1: tuple[str, str], tupled_arg: Any=tupled_arg) -> str:
292
+ return tuple_1[1]
293
+
294
+ return (tupled_arg[0], map(mapping_3, tupled_arg[1]))
295
+
296
+ def projection(tuple: tuple[str, str], process_sequence: Any=process_sequence, sample: Any=sample) -> str:
297
+ return tuple[0]
298
+
299
+ def mapping_2(p: Process, process_sequence: Any=process_sequence, sample: Any=sample) -> FSharpList[tuple[str, str]]:
300
+ def mapping(i: ProcessInput, p: Any=p) -> str:
301
+ return ProcessInput__get_Name(i)
302
+
303
+ def mapping_1(o: ProcessOutput, p: Any=p) -> str:
304
+ return ProcessOutput__get_Name(o)
305
+
306
+ class ObjectExpr615:
307
+ @property
308
+ def Equals(self) -> Callable[[tuple[str, str], tuple[str, str]], bool]:
309
+ return equal_arrays
310
+
311
+ @property
312
+ def GetHashCode(self) -> Callable[[tuple[str, str]], int]:
313
+ return array_hash
314
+
315
+ return List_distinct(zip(map(mapping, value_4(p.Inputs)), map(mapping_1, value_4(p.Outputs))), ObjectExpr615())
316
+
317
+ class ObjectExpr617:
318
+ @property
319
+ def Equals(self) -> Callable[[str, str], bool]:
320
+ def _arrow616(x_1: str, y_1: str) -> bool:
321
+ return x_1 == y_1
322
+
323
+ return _arrow616
324
+
325
+ @property
326
+ def GetHashCode(self) -> Callable[[str], int]:
327
+ return string_hash
328
+
329
+ class ObjectExpr618:
330
+ @property
331
+ def Compare(self) -> Callable[[str, str], int]:
332
+ return compare_primitives
333
+
334
+ mappings: Any = of_list_1(map(mapping_4, List_groupBy(projection, collect(mapping_2, process_sequence), ObjectExpr617())), ObjectExpr618())
335
+ def loop(last_state_mut: FSharpList[str], state_mut: FSharpList[str], process_sequence: Any=process_sequence, sample: Any=sample) -> FSharpList[str]:
336
+ while True:
337
+ (last_state, state) = (last_state_mut, state_mut)
338
+ if equals(last_state, state):
339
+ return state
340
+
341
+ else:
342
+ last_state_mut = state
343
+ def mapping_5(s: str, last_state: Any=last_state, state: Any=state) -> FSharpList[str]:
344
+ return default_arg(FSharpMap__TryFind(mappings, s), singleton(s))
345
+
346
+ state_mut = collect(mapping_5, state)
347
+ continue
348
+
349
+ break
350
+
351
+ return loop(empty(), singleton(sample))
352
+
353
+
354
+ def get_units(process_sequence: FSharpList[Process]) -> FSharpList[OntologyAnnotation]:
355
+ def _arrow619(p: Process, process_sequence: Any=process_sequence) -> FSharpList[OntologyAnnotation]:
356
+ return Process_getUnits_763471FF(p)
357
+
358
+ class ObjectExpr620:
359
+ @property
360
+ def Equals(self) -> Callable[[OntologyAnnotation, OntologyAnnotation], bool]:
361
+ return equals
362
+
363
+ @property
364
+ def GetHashCode(self) -> Callable[[OntologyAnnotation], int]:
365
+ return safe_hash
366
+
367
+ return List_distinct(collect(_arrow619, process_sequence), ObjectExpr620())
368
+
369
+
370
+ def get_data(process_sequence: FSharpList[Process]) -> FSharpList[Data]:
371
+ def mapping(p: Process, process_sequence: Any=process_sequence) -> FSharpList[Data]:
372
+ return Process_getData_763471FF(p)
373
+
374
+ class ObjectExpr621:
375
+ @property
376
+ def Equals(self) -> Callable[[Data, Data], bool]:
377
+ return equals
378
+
379
+ @property
380
+ def GetHashCode(self) -> Callable[[Data], int]:
381
+ return safe_hash
382
+
383
+ return List_distinct(collect(mapping, process_sequence), ObjectExpr621())
384
+
385
+
386
+ def get_sources(process_sequence: FSharpList[Process]) -> FSharpList[Source]:
387
+ def mapping(p: Process, process_sequence: Any=process_sequence) -> FSharpList[Source]:
388
+ return Process_getSources_763471FF(p)
389
+
390
+ class ObjectExpr622:
391
+ @property
392
+ def Equals(self) -> Callable[[Source, Source], bool]:
393
+ return equals
394
+
395
+ @property
396
+ def GetHashCode(self) -> Callable[[Source], int]:
397
+ return safe_hash
398
+
399
+ return List_distinct(collect(mapping, process_sequence), ObjectExpr622())
400
+
401
+
402
+ def get_samples(process_sequence: FSharpList[Process]) -> FSharpList[Sample]:
403
+ def mapping(p: Process, process_sequence: Any=process_sequence) -> FSharpList[Sample]:
404
+ return Process_getSamples_763471FF(p)
405
+
406
+ class ObjectExpr623:
407
+ @property
408
+ def Equals(self) -> Callable[[Sample, Sample], bool]:
409
+ return equals
410
+
411
+ @property
412
+ def GetHashCode(self) -> Callable[[Sample], int]:
413
+ return safe_hash
414
+
415
+ return List_distinct(collect(mapping, process_sequence), ObjectExpr623())
416
+
417
+
418
+ def get_materials(process_sequence: FSharpList[Process]) -> FSharpList[Material]:
419
+ def mapping(p: Process, process_sequence: Any=process_sequence) -> FSharpList[Material]:
420
+ return Process_getMaterials_763471FF(p)
421
+
422
+ class ObjectExpr624:
423
+ @property
424
+ def Equals(self) -> Callable[[Material, Material], bool]:
425
+ return equals
426
+
427
+ @property
428
+ def GetHashCode(self) -> Callable[[Material], int]:
429
+ return safe_hash
430
+
431
+ return List_distinct(collect(mapping, process_sequence), ObjectExpr624())
432
+
433
+
434
+ __all__ = ["get_protocol_names", "get_protocols", "filter_by_protocol_by", "filter_by_protocol_name", "get_inputs_with_parameter_by", "get_outputs_with_parameter_by", "get_parameters", "get_characteristics", "get_inputs_with_characteristic_by", "get_outputs_with_characteristic_by", "get_outputs_with_factor_by", "get_factors", "get_root_inputs", "get_final_outputs", "get_root_input_of", "get_final_outputs_of", "get_units", "get_data", "get_sources", "get_samples", "get_materials"]
435
+
@@ -0,0 +1,175 @@
1
+ from __future__ import annotations
2
+ from collections.abc import Callable
3
+ from dataclasses import dataclass
4
+ from typing import Any
5
+ from ...fable_modules.fable_library.list import (FSharpList, try_find, exists, append, singleton, filter, empty)
6
+ from ...fable_modules.fable_library.option import (map, default_arg)
7
+ from ...fable_modules.fable_library.reflection import (TypeInfo, string_type, option_type, list_type, record_type)
8
+ from ...fable_modules.fable_library.types import Record
9
+ from ...fable_modules.fable_library.util import equals
10
+ from ..comment import (Comment, Comment_reflection)
11
+ from ..ontology_annotation import (OntologyAnnotation, OntologyAnnotation_reflection)
12
+ from .component import (Component, Component_reflection)
13
+ from .protocol_parameter import (ProtocolParameter, ProtocolParameter_reflection)
14
+
15
+ def _expr580() -> TypeInfo:
16
+ return record_type("ARCtrl.Process.Protocol", [], Protocol, lambda: [("ID", option_type(string_type)), ("Name", option_type(string_type)), ("ProtocolType", option_type(OntologyAnnotation_reflection())), ("Description", option_type(string_type)), ("Uri", option_type(string_type)), ("Version", option_type(string_type)), ("Parameters", option_type(list_type(ProtocolParameter_reflection()))), ("Components", option_type(list_type(Component_reflection()))), ("Comments", option_type(list_type(Comment_reflection())))])
17
+
18
+
19
+ @dataclass(eq = False, repr = False, slots = True)
20
+ class Protocol(Record):
21
+ ID: str | None
22
+ Name: str | None
23
+ ProtocolType: OntologyAnnotation | None
24
+ Description: str | None
25
+ Uri: str | None
26
+ Version: str | None
27
+ Parameters: FSharpList[ProtocolParameter] | None
28
+ Components: FSharpList[Component] | None
29
+ Comments: FSharpList[Comment] | None
30
+
31
+ Protocol_reflection = _expr580
32
+
33
+ def Protocol_make(id: str | None=None, name: str | None=None, protocol_type: OntologyAnnotation | None=None, description: str | None=None, uri: str | None=None, version: str | None=None, parameters: FSharpList[ProtocolParameter] | None=None, components: FSharpList[Component] | None=None, comments: FSharpList[Comment] | None=None) -> Protocol:
34
+ return Protocol(id, name, protocol_type, description, uri, version, parameters, components, comments)
35
+
36
+
37
+ def Protocol_create_Z414665E7(Id: str | None=None, Name: str | None=None, ProtocolType: OntologyAnnotation | None=None, Description: str | None=None, Uri: str | None=None, Version: str | None=None, Parameters: FSharpList[ProtocolParameter] | None=None, Components: FSharpList[Component] | None=None, Comments: FSharpList[Comment] | None=None) -> Protocol:
38
+ return Protocol_make(Id, Name, ProtocolType, Description, Uri, Version, Parameters, Components, Comments)
39
+
40
+
41
+ def Protocol_get_empty(__unit: None=None) -> Protocol:
42
+ return Protocol_create_Z414665E7()
43
+
44
+
45
+ def Protocol_tryGetByName(name: str, protocols: FSharpList[Protocol]) -> Protocol | None:
46
+ def _arrow581(p: Protocol, name: Any=name, protocols: Any=protocols) -> bool:
47
+ return equals(p.Name, name)
48
+
49
+ return try_find(_arrow581, protocols)
50
+
51
+
52
+ def Protocol_existsByName(name: str, protocols: FSharpList[Protocol]) -> bool:
53
+ def _arrow582(p: Protocol, name: Any=name, protocols: Any=protocols) -> bool:
54
+ return equals(p.Name, name)
55
+
56
+ return exists(_arrow582, protocols)
57
+
58
+
59
+ def Protocol_add(protocols: FSharpList[Protocol], protocol: Protocol) -> FSharpList[Protocol]:
60
+ return append(protocols, singleton(protocol))
61
+
62
+
63
+ def Protocol_removeByName(name: str, protocols: FSharpList[Protocol]) -> FSharpList[Protocol]:
64
+ def _arrow583(p: Protocol, name: Any=name, protocols: Any=protocols) -> bool:
65
+ return not equals(p.Name, name)
66
+
67
+ return filter(_arrow583, protocols)
68
+
69
+
70
+ def Protocol_getComments_3BF20962(protocol: Protocol) -> FSharpList[Comment] | None:
71
+ return protocol.Comments
72
+
73
+
74
+ def Protocol_mapComments(f: Callable[[FSharpList[Comment]], FSharpList[Comment]], protocol: Protocol) -> Protocol:
75
+ return Protocol(protocol.ID, protocol.Name, protocol.ProtocolType, protocol.Description, protocol.Uri, protocol.Version, protocol.Parameters, protocol.Components, map(f, protocol.Comments))
76
+
77
+
78
+ def Protocol_setComments(protocol: Protocol, comments: FSharpList[Comment]) -> Protocol:
79
+ return Protocol(protocol.ID, protocol.Name, protocol.ProtocolType, protocol.Description, protocol.Uri, protocol.Version, protocol.Parameters, protocol.Components, comments)
80
+
81
+
82
+ def Protocol_getProtocolType_3BF20962(protocol: Protocol) -> OntologyAnnotation | None:
83
+ return protocol.ProtocolType
84
+
85
+
86
+ def Protocol_mapProtocolType(f: Callable[[OntologyAnnotation], OntologyAnnotation], protocol: Protocol) -> Protocol:
87
+ return Protocol(protocol.ID, protocol.Name, map(f, protocol.ProtocolType), protocol.Description, protocol.Uri, protocol.Version, protocol.Parameters, protocol.Components, protocol.Comments)
88
+
89
+
90
+ def Protocol_setProtocolType(protocol: Protocol, protocol_type: OntologyAnnotation) -> Protocol:
91
+ return Protocol(protocol.ID, protocol.Name, protocol_type, protocol.Description, protocol.Uri, protocol.Version, protocol.Parameters, protocol.Components, protocol.Comments)
92
+
93
+
94
+ def Protocol_getVersion_3BF20962(protocol: Protocol) -> str | None:
95
+ return protocol.Version
96
+
97
+
98
+ def Protocol_mapVersion(f: Callable[[str], str], protocol: Protocol) -> Protocol:
99
+ return Protocol(protocol.ID, protocol.Name, protocol.ProtocolType, protocol.Description, protocol.Uri, map(f, protocol.Version), protocol.Parameters, protocol.Components, protocol.Comments)
100
+
101
+
102
+ def Protocol_setVersion(protocol: Protocol, version: str) -> Protocol:
103
+ return Protocol(protocol.ID, protocol.Name, protocol.ProtocolType, protocol.Description, protocol.Uri, version, protocol.Parameters, protocol.Components, protocol.Comments)
104
+
105
+
106
+ def Protocol_getName_3BF20962(protocol: Protocol) -> str | None:
107
+ return protocol.Name
108
+
109
+
110
+ def Protocol_mapName(f: Callable[[str], str], protocol: Protocol) -> Protocol:
111
+ return Protocol(protocol.ID, map(f, protocol.Name), protocol.ProtocolType, protocol.Description, protocol.Uri, protocol.Version, protocol.Parameters, protocol.Components, protocol.Comments)
112
+
113
+
114
+ def Protocol_setName(protocol: Protocol, name: str) -> Protocol:
115
+ return Protocol(protocol.ID, name, protocol.ProtocolType, protocol.Description, protocol.Uri, protocol.Version, protocol.Parameters, protocol.Components, protocol.Comments)
116
+
117
+
118
+ def Protocol_getDescription_3BF20962(protocol: Protocol) -> str | None:
119
+ return protocol.Description
120
+
121
+
122
+ def Protocol_mapDescription(f: Callable[[str], str], protocol: Protocol) -> Protocol:
123
+ return Protocol(protocol.ID, protocol.Name, protocol.ProtocolType, map(f, protocol.Description), protocol.Uri, protocol.Version, protocol.Parameters, protocol.Components, protocol.Comments)
124
+
125
+
126
+ def Protocol_setDescription(protocol: Protocol, description: str) -> Protocol:
127
+ return Protocol(protocol.ID, protocol.Name, protocol.ProtocolType, description, protocol.Uri, protocol.Version, protocol.Parameters, protocol.Components, protocol.Comments)
128
+
129
+
130
+ def Protocol_getUri_3BF20962(protocol: Protocol) -> str | None:
131
+ return protocol.Uri
132
+
133
+
134
+ def Protocol_mapUri(f: Callable[[str], str], protocol: Protocol) -> Protocol:
135
+ return Protocol(protocol.ID, protocol.Name, protocol.ProtocolType, protocol.Description, map(f, protocol.Uri), protocol.Version, protocol.Parameters, protocol.Components, protocol.Comments)
136
+
137
+
138
+ def Protocol_setUri(protocol: Protocol, uri: str) -> Protocol:
139
+ return Protocol(protocol.ID, protocol.Name, protocol.ProtocolType, protocol.Description, uri, protocol.Version, protocol.Parameters, protocol.Components, protocol.Comments)
140
+
141
+
142
+ def Protocol_getComponents_3BF20962(protocol: Protocol) -> FSharpList[Component] | None:
143
+ return protocol.Components
144
+
145
+
146
+ def Protocol_mapComponents(f: Callable[[FSharpList[Component]], FSharpList[Component]], protocol: Protocol) -> Protocol:
147
+ return Protocol(protocol.ID, protocol.Name, protocol.ProtocolType, protocol.Description, protocol.Uri, protocol.Version, protocol.Parameters, map(f, protocol.Components), protocol.Comments)
148
+
149
+
150
+ def Protocol_setComponents(protocol: Protocol, components: FSharpList[Component]) -> Protocol:
151
+ return Protocol(protocol.ID, protocol.Name, protocol.ProtocolType, protocol.Description, protocol.Uri, protocol.Version, protocol.Parameters, components, protocol.Comments)
152
+
153
+
154
+ def Protocol_addComponent(comp: Component, protocol: Protocol) -> Protocol:
155
+ return Protocol_setComponents(protocol, append(default_arg(protocol.Components, empty()), singleton(comp)))
156
+
157
+
158
+ def Protocol_getParameters_3BF20962(protocol: Protocol) -> FSharpList[ProtocolParameter] | None:
159
+ return protocol.Parameters
160
+
161
+
162
+ def Protocol_mapParameters(f: Callable[[FSharpList[ProtocolParameter]], FSharpList[ProtocolParameter]], protocol: Protocol) -> Protocol:
163
+ return Protocol(protocol.ID, protocol.Name, protocol.ProtocolType, protocol.Description, protocol.Uri, protocol.Version, map(f, protocol.Parameters), protocol.Components, protocol.Comments)
164
+
165
+
166
+ def Protocol_setParameters(protocol: Protocol, parameters: FSharpList[ProtocolParameter]) -> Protocol:
167
+ return Protocol(protocol.ID, protocol.Name, protocol.ProtocolType, protocol.Description, protocol.Uri, protocol.Version, parameters, protocol.Components, protocol.Comments)
168
+
169
+
170
+ def Protocol_addParameter(parameter: ProtocolParameter, protocol: Protocol) -> Protocol:
171
+ return Protocol_setParameters(protocol, append(default_arg(protocol.Parameters, empty()), singleton(parameter)))
172
+
173
+
174
+ __all__ = ["Protocol_reflection", "Protocol_make", "Protocol_create_Z414665E7", "Protocol_get_empty", "Protocol_tryGetByName", "Protocol_existsByName", "Protocol_add", "Protocol_removeByName", "Protocol_getComments_3BF20962", "Protocol_mapComments", "Protocol_setComments", "Protocol_getProtocolType_3BF20962", "Protocol_mapProtocolType", "Protocol_setProtocolType", "Protocol_getVersion_3BF20962", "Protocol_mapVersion", "Protocol_setVersion", "Protocol_getName_3BF20962", "Protocol_mapName", "Protocol_setName", "Protocol_getDescription_3BF20962", "Protocol_mapDescription", "Protocol_setDescription", "Protocol_getUri_3BF20962", "Protocol_mapUri", "Protocol_setUri", "Protocol_getComponents_3BF20962", "Protocol_mapComponents", "Protocol_setComponents", "Protocol_addComponent", "Protocol_getParameters_3BF20962", "Protocol_mapParameters", "Protocol_setParameters", "Protocol_addParameter"]
175
+