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,793 @@
1
+ from __future__ import annotations
2
+ from collections.abc import Callable
3
+ from typing import (Any, TypeVar)
4
+ from ..fable_modules.fable_library.list import (try_find, FSharpList, choose, of_array, singleton, map as map_2, empty)
5
+ from ..fable_modules.fable_library.option import (default_arg, value as value_17, map, bind, default_arg_with)
6
+ from ..fable_modules.fable_library.seq import (map as map_1, is_empty)
7
+ from ..fable_modules.fable_library.string_ import replace
8
+ from ..fable_modules.fable_library.types import Array
9
+ from ..fable_modules.fable_library.util import (IEnumerable_1, get_enumerator, dispose)
10
+ from ..fable_modules.thoth_json_core.decode import (object, IRequiredGetter, string, IOptionalGetter, resize_array, IGetters, list_1 as list_1_2)
11
+ from ..fable_modules.thoth_json_core.encode import list_1 as list_1_1
12
+ from ..fable_modules.thoth_json_core.types import (IEncodable, IEncoderHelpers_1, Decoder_1)
13
+ from ..Core.arc_types import (ArcAssay, ArcStudy)
14
+ from ..Core.comment import Comment
15
+ from ..Core.conversion import (ARCtrl_ArcTables__ArcTables_GetProcesses, ARCtrl_ArcTables__ArcTables_fromProcesses_Static_62A3309D, Person_setSourceAssayComment, Person_getSourceAssayIdentifiersFromComments, Person_removeSourceAssayComments)
16
+ from ..Core.data import Data
17
+ from ..Core.data_map import DataMap
18
+ from ..Core.Helper.collections_ import (ResizeArray_map, Option_fromValueWithDefault)
19
+ from ..Core.Helper.identifier import (Study_tryFileNameFromIdentifier, Study_tryIdentifierFromFileName, create_missing_identifier, Study_fileNameFromIdentifier)
20
+ from ..Core.ontology_annotation import OntologyAnnotation
21
+ from ..Core.person import Person
22
+ from ..Core.Process.factor import Factor
23
+ from ..Core.Process.material_attribute import MaterialAttribute
24
+ from ..Core.Process.process import Process
25
+ from ..Core.Process.process_sequence import (get_data, get_units, get_factors, get_characteristics, get_protocols)
26
+ from ..Core.Process.protocol import Protocol
27
+ from ..Core.publication import Publication
28
+ from ..Core.Table.arc_table import ArcTable
29
+ from ..Core.Table.arc_tables import ArcTables
30
+ from ..Core.Table.composite_cell import CompositeCell
31
+ from .assay import (ROCrate_encoder as ROCrate_encoder_4, ROCrate_decoder as ROCrate_decoder_1, ISAJson_encoder as ISAJson_encoder_5, ISAJson_decoder as ISAJson_decoder_2)
32
+ from .comment import (encoder as encoder_9, decoder as decoder_6, ROCrate_encoder as ROCrate_encoder_6, ROCrate_decoder as ROCrate_decoder_5, ISAJson_encoder as ISAJson_encoder_6, ISAJson_decoder as ISAJson_decoder_5)
33
+ from .context.rocrate.isa_study_context import context_jsonvalue
34
+ from .data import ROCrate_encoder as ROCrate_encoder_5
35
+ from .DataMap.data_map import (encoder as encoder_8, decoder as decoder_5, encoder_compressed as encoder_compressed_2, decoder_compressed as decoder_compressed_2)
36
+ from .decode import Decode_objectNoAdditionalProperties
37
+ from .encode import (try_include, try_include_seq, try_include_list)
38
+ from .idtable import encode
39
+ from .ontology_annotation import (OntologyAnnotation_encoder, OntologyAnnotation_decoder, OntologyAnnotation_ROCrate_encoderDefinedTerm, OntologyAnnotation_ROCrate_decoderDefinedTerm, OntologyAnnotation_ISAJson_encoder, OntologyAnnotation_ISAJson_decoder)
40
+ from .person import (encoder as encoder_6, decoder as decoder_3, ROCrate_encoder as ROCrate_encoder_2, ROCrate_decoder as ROCrate_decoder_4, ISAJson_encoder as ISAJson_encoder_3, ISAJson_decoder as ISAJson_decoder_3)
41
+ from .Process.factor import encoder as encoder_10
42
+ from .Process.material_attribute import encoder as encoder_11
43
+ from .Process.process import (ROCrate_encoder as ROCrate_encoder_3, ROCrate_decoder as ROCrate_decoder_2, ISAJson_encoder as ISAJson_encoder_4, ISAJson_decoder as ISAJson_decoder_1)
44
+ from .Process.protocol import ISAJson_encoder as ISAJson_encoder_1
45
+ from .Process.study_materials import encoder as encoder_12
46
+ from .publication import (encoder as encoder_5, decoder as decoder_2, ROCrate_encoder as ROCrate_encoder_1, ROCrate_decoder as ROCrate_decoder_3, ISAJson_encoder as ISAJson_encoder_2, ISAJson_decoder as ISAJson_decoder_4)
47
+ from .Table.arc_table import (encoder as encoder_7, decoder as decoder_4, encoder_compressed as encoder_compressed_1, decoder_compressed as decoder_compressed_1)
48
+
49
+ __A_ = TypeVar("__A_")
50
+
51
+ def Helper_getAssayInformation(assays: FSharpList[ArcAssay] | None, study: ArcStudy) -> Array[ArcAssay]:
52
+ if assays is not None:
53
+ def f(assay_id: str, assays: Any=assays, study: Any=study) -> ArcAssay:
54
+ def predicate(a: ArcAssay, assay_id: Any=assay_id) -> bool:
55
+ return a.Identifier == assay_id
56
+
57
+ return default_arg(try_find(predicate, value_17(assays)), ArcAssay.init(assay_id))
58
+
59
+ return ResizeArray_map(f, study.RegisteredAssayIdentifiers)
60
+
61
+ else:
62
+ return study.GetRegisteredAssaysOrIdentifier()
63
+
64
+
65
+
66
+ def encoder(study: ArcStudy) -> IEncodable:
67
+ def chooser(tupled_arg: tuple[str, IEncodable | None], study: Any=study) -> tuple[str, IEncodable] | None:
68
+ def mapping(v_1: IEncodable, tupled_arg: Any=tupled_arg) -> tuple[str, IEncodable]:
69
+ return (tupled_arg[0], v_1)
70
+
71
+ return map(mapping, tupled_arg[1])
72
+
73
+ def _arrow3010(__unit: None=None, study: Any=study) -> IEncodable:
74
+ value: str = study.Identifier
75
+ class ObjectExpr3009(IEncodable):
76
+ def Encode(self, helpers: IEncoderHelpers_1[Any]) -> Any:
77
+ return helpers.encode_string(value)
78
+
79
+ return ObjectExpr3009()
80
+
81
+ def _arrow3012(value_1: str, study: Any=study) -> IEncodable:
82
+ class ObjectExpr3011(IEncodable):
83
+ def Encode(self, helpers_1: IEncoderHelpers_1[Any]) -> Any:
84
+ return helpers_1.encode_string(value_1)
85
+
86
+ return ObjectExpr3011()
87
+
88
+ def _arrow3014(value_3: str, study: Any=study) -> IEncodable:
89
+ class ObjectExpr3013(IEncodable):
90
+ def Encode(self, helpers_2: IEncoderHelpers_1[Any]) -> Any:
91
+ return helpers_2.encode_string(value_3)
92
+
93
+ return ObjectExpr3013()
94
+
95
+ def _arrow3016(value_5: str, study: Any=study) -> IEncodable:
96
+ class ObjectExpr3015(IEncodable):
97
+ def Encode(self, helpers_3: IEncoderHelpers_1[Any]) -> Any:
98
+ return helpers_3.encode_string(value_5)
99
+
100
+ return ObjectExpr3015()
101
+
102
+ def _arrow3018(value_7: str, study: Any=study) -> IEncodable:
103
+ class ObjectExpr3017(IEncodable):
104
+ def Encode(self, helpers_4: IEncoderHelpers_1[Any]) -> Any:
105
+ return helpers_4.encode_string(value_7)
106
+
107
+ return ObjectExpr3017()
108
+
109
+ def _arrow3019(oa: Publication, study: Any=study) -> IEncodable:
110
+ return encoder_5(oa)
111
+
112
+ def _arrow3020(person: Person, study: Any=study) -> IEncodable:
113
+ return encoder_6(person)
114
+
115
+ def _arrow3021(oa_1: OntologyAnnotation, study: Any=study) -> IEncodable:
116
+ return OntologyAnnotation_encoder(oa_1)
117
+
118
+ def _arrow3022(table: ArcTable, study: Any=study) -> IEncodable:
119
+ return encoder_7(table)
120
+
121
+ def _arrow3023(dm: DataMap, study: Any=study) -> IEncodable:
122
+ return encoder_8(dm)
123
+
124
+ def _arrow3025(value_9: str, study: Any=study) -> IEncodable:
125
+ class ObjectExpr3024(IEncodable):
126
+ def Encode(self, helpers_5: IEncoderHelpers_1[Any]) -> Any:
127
+ return helpers_5.encode_string(value_9)
128
+
129
+ return ObjectExpr3024()
130
+
131
+ def _arrow3026(comment: Comment, study: Any=study) -> IEncodable:
132
+ return encoder_9(comment)
133
+
134
+ values: FSharpList[tuple[str, IEncodable]] = choose(chooser, of_array([("Identifier", _arrow3010()), try_include("Title", _arrow3012, study.Title), try_include("Description", _arrow3014, study.Description), try_include("SubmissionDate", _arrow3016, study.SubmissionDate), try_include("PublicReleaseDate", _arrow3018, study.PublicReleaseDate), try_include_seq("Publications", _arrow3019, study.Publications), try_include_seq("Contacts", _arrow3020, study.Contacts), try_include_seq("StudyDesignDescriptors", _arrow3021, study.StudyDesignDescriptors), try_include_seq("Tables", _arrow3022, study.Tables), try_include("DataMap", _arrow3023, study.DataMap), try_include_seq("RegisteredAssayIdentifiers", _arrow3025, study.RegisteredAssayIdentifiers), try_include_seq("Comments", _arrow3026, study.Comments)]))
135
+ class ObjectExpr3027(IEncodable):
136
+ def Encode(self, helpers_6: IEncoderHelpers_1[Any], study: Any=study) -> Any:
137
+ def mapping_1(tupled_arg_1: tuple[str, IEncodable]) -> tuple[str, __A_]:
138
+ return (tupled_arg_1[0], tupled_arg_1[1].Encode(helpers_6))
139
+
140
+ arg: IEnumerable_1[tuple[str, __A_]] = map_1(mapping_1, values)
141
+ return helpers_6.encode_object(arg)
142
+
143
+ return ObjectExpr3027()
144
+
145
+
146
+ def _arrow3040(get: IGetters) -> ArcStudy:
147
+ def _arrow3028(__unit: None=None) -> str:
148
+ object_arg: IRequiredGetter = get.Required
149
+ return object_arg.Field("Identifier", string)
150
+
151
+ def _arrow3029(__unit: None=None) -> str | None:
152
+ object_arg_1: IOptionalGetter = get.Optional
153
+ return object_arg_1.Field("Title", string)
154
+
155
+ def _arrow3030(__unit: None=None) -> str | None:
156
+ object_arg_2: IOptionalGetter = get.Optional
157
+ return object_arg_2.Field("Description", string)
158
+
159
+ def _arrow3031(__unit: None=None) -> str | None:
160
+ object_arg_3: IOptionalGetter = get.Optional
161
+ return object_arg_3.Field("SubmissionDate", string)
162
+
163
+ def _arrow3032(__unit: None=None) -> str | None:
164
+ object_arg_4: IOptionalGetter = get.Optional
165
+ return object_arg_4.Field("PublicReleaseDate", string)
166
+
167
+ def _arrow3033(__unit: None=None) -> Array[Publication] | None:
168
+ arg_11: Decoder_1[Array[Publication]] = resize_array(decoder_2)
169
+ object_arg_5: IOptionalGetter = get.Optional
170
+ return object_arg_5.Field("Publications", arg_11)
171
+
172
+ def _arrow3034(__unit: None=None) -> Array[Person] | None:
173
+ arg_13: Decoder_1[Array[Person]] = resize_array(decoder_3)
174
+ object_arg_6: IOptionalGetter = get.Optional
175
+ return object_arg_6.Field("Contacts", arg_13)
176
+
177
+ def _arrow3035(__unit: None=None) -> Array[OntologyAnnotation] | None:
178
+ arg_15: Decoder_1[Array[OntologyAnnotation]] = resize_array(OntologyAnnotation_decoder)
179
+ object_arg_7: IOptionalGetter = get.Optional
180
+ return object_arg_7.Field("StudyDesignDescriptors", arg_15)
181
+
182
+ def _arrow3036(__unit: None=None) -> Array[ArcTable] | None:
183
+ arg_17: Decoder_1[Array[ArcTable]] = resize_array(decoder_4)
184
+ object_arg_8: IOptionalGetter = get.Optional
185
+ return object_arg_8.Field("Tables", arg_17)
186
+
187
+ def _arrow3037(__unit: None=None) -> DataMap | None:
188
+ object_arg_9: IOptionalGetter = get.Optional
189
+ return object_arg_9.Field("DataMap", decoder_5)
190
+
191
+ def _arrow3038(__unit: None=None) -> Array[str] | None:
192
+ arg_21: Decoder_1[Array[str]] = resize_array(string)
193
+ object_arg_10: IOptionalGetter = get.Optional
194
+ return object_arg_10.Field("RegisteredAssayIdentifiers", arg_21)
195
+
196
+ def _arrow3039(__unit: None=None) -> Array[Comment] | None:
197
+ arg_23: Decoder_1[Array[Comment]] = resize_array(decoder_6)
198
+ object_arg_11: IOptionalGetter = get.Optional
199
+ return object_arg_11.Field("Comments", arg_23)
200
+
201
+ return ArcStudy(_arrow3028(), _arrow3029(), _arrow3030(), _arrow3031(), _arrow3032(), _arrow3033(), _arrow3034(), _arrow3035(), _arrow3036(), _arrow3037(), _arrow3038(), _arrow3039())
202
+
203
+
204
+ decoder: Decoder_1[ArcStudy] = object(_arrow3040)
205
+
206
+ def encoder_compressed(string_table: Any, oa_table: Any, cell_table: Any, study: ArcStudy) -> IEncodable:
207
+ def chooser(tupled_arg: tuple[str, IEncodable | None], string_table: Any=string_table, oa_table: Any=oa_table, cell_table: Any=cell_table, study: Any=study) -> tuple[str, IEncodable] | None:
208
+ def mapping(v_1: IEncodable, tupled_arg: Any=tupled_arg) -> tuple[str, IEncodable]:
209
+ return (tupled_arg[0], v_1)
210
+
211
+ return map(mapping, tupled_arg[1])
212
+
213
+ def _arrow3044(__unit: None=None, string_table: Any=string_table, oa_table: Any=oa_table, cell_table: Any=cell_table, study: Any=study) -> IEncodable:
214
+ value: str = study.Identifier
215
+ class ObjectExpr3043(IEncodable):
216
+ def Encode(self, helpers: IEncoderHelpers_1[Any]) -> Any:
217
+ return helpers.encode_string(value)
218
+
219
+ return ObjectExpr3043()
220
+
221
+ def _arrow3046(value_1: str, string_table: Any=string_table, oa_table: Any=oa_table, cell_table: Any=cell_table, study: Any=study) -> IEncodable:
222
+ class ObjectExpr3045(IEncodable):
223
+ def Encode(self, helpers_1: IEncoderHelpers_1[Any]) -> Any:
224
+ return helpers_1.encode_string(value_1)
225
+
226
+ return ObjectExpr3045()
227
+
228
+ def _arrow3048(value_3: str, string_table: Any=string_table, oa_table: Any=oa_table, cell_table: Any=cell_table, study: Any=study) -> IEncodable:
229
+ class ObjectExpr3047(IEncodable):
230
+ def Encode(self, helpers_2: IEncoderHelpers_1[Any]) -> Any:
231
+ return helpers_2.encode_string(value_3)
232
+
233
+ return ObjectExpr3047()
234
+
235
+ def _arrow3050(value_5: str, string_table: Any=string_table, oa_table: Any=oa_table, cell_table: Any=cell_table, study: Any=study) -> IEncodable:
236
+ class ObjectExpr3049(IEncodable):
237
+ def Encode(self, helpers_3: IEncoderHelpers_1[Any]) -> Any:
238
+ return helpers_3.encode_string(value_5)
239
+
240
+ return ObjectExpr3049()
241
+
242
+ def _arrow3052(value_7: str, string_table: Any=string_table, oa_table: Any=oa_table, cell_table: Any=cell_table, study: Any=study) -> IEncodable:
243
+ class ObjectExpr3051(IEncodable):
244
+ def Encode(self, helpers_4: IEncoderHelpers_1[Any]) -> Any:
245
+ return helpers_4.encode_string(value_7)
246
+
247
+ return ObjectExpr3051()
248
+
249
+ def _arrow3053(oa: Publication, string_table: Any=string_table, oa_table: Any=oa_table, cell_table: Any=cell_table, study: Any=study) -> IEncodable:
250
+ return encoder_5(oa)
251
+
252
+ def _arrow3054(person: Person, string_table: Any=string_table, oa_table: Any=oa_table, cell_table: Any=cell_table, study: Any=study) -> IEncodable:
253
+ return encoder_6(person)
254
+
255
+ def _arrow3055(oa_1: OntologyAnnotation, string_table: Any=string_table, oa_table: Any=oa_table, cell_table: Any=cell_table, study: Any=study) -> IEncodable:
256
+ return OntologyAnnotation_encoder(oa_1)
257
+
258
+ def _arrow3056(table: ArcTable, string_table: Any=string_table, oa_table: Any=oa_table, cell_table: Any=cell_table, study: Any=study) -> IEncodable:
259
+ return encoder_compressed_1(string_table, oa_table, cell_table, table)
260
+
261
+ def _arrow3057(dm: DataMap, string_table: Any=string_table, oa_table: Any=oa_table, cell_table: Any=cell_table, study: Any=study) -> IEncodable:
262
+ return encoder_compressed_2(string_table, oa_table, cell_table, dm)
263
+
264
+ def _arrow3059(value_9: str, string_table: Any=string_table, oa_table: Any=oa_table, cell_table: Any=cell_table, study: Any=study) -> IEncodable:
265
+ class ObjectExpr3058(IEncodable):
266
+ def Encode(self, helpers_5: IEncoderHelpers_1[Any]) -> Any:
267
+ return helpers_5.encode_string(value_9)
268
+
269
+ return ObjectExpr3058()
270
+
271
+ def _arrow3060(comment: Comment, string_table: Any=string_table, oa_table: Any=oa_table, cell_table: Any=cell_table, study: Any=study) -> IEncodable:
272
+ return encoder_9(comment)
273
+
274
+ values: FSharpList[tuple[str, IEncodable]] = choose(chooser, of_array([("Identifier", _arrow3044()), try_include("Title", _arrow3046, study.Title), try_include("Description", _arrow3048, study.Description), try_include("SubmissionDate", _arrow3050, study.SubmissionDate), try_include("PublicReleaseDate", _arrow3052, study.PublicReleaseDate), try_include_seq("Publications", _arrow3053, study.Publications), try_include_seq("Contacts", _arrow3054, study.Contacts), try_include_seq("StudyDesignDescriptors", _arrow3055, study.StudyDesignDescriptors), try_include_seq("Tables", _arrow3056, study.Tables), try_include("DataMap", _arrow3057, study.DataMap), try_include_seq("RegisteredAssayIdentifiers", _arrow3059, study.RegisteredAssayIdentifiers), try_include_seq("Comments", _arrow3060, study.Comments)]))
275
+ class ObjectExpr3061(IEncodable):
276
+ def Encode(self, helpers_6: IEncoderHelpers_1[Any], string_table: Any=string_table, oa_table: Any=oa_table, cell_table: Any=cell_table, study: Any=study) -> Any:
277
+ def mapping_1(tupled_arg_1: tuple[str, IEncodable]) -> tuple[str, __A_]:
278
+ return (tupled_arg_1[0], tupled_arg_1[1].Encode(helpers_6))
279
+
280
+ arg: IEnumerable_1[tuple[str, __A_]] = map_1(mapping_1, values)
281
+ return helpers_6.encode_object(arg)
282
+
283
+ return ObjectExpr3061()
284
+
285
+
286
+ def decoder_compressed(string_table: Array[str], oa_table: Array[OntologyAnnotation], cell_table: Array[CompositeCell]) -> Decoder_1[ArcStudy]:
287
+ def _arrow3074(get: IGetters, string_table: Any=string_table, oa_table: Any=oa_table, cell_table: Any=cell_table) -> ArcStudy:
288
+ def _arrow3062(__unit: None=None) -> str:
289
+ object_arg: IRequiredGetter = get.Required
290
+ return object_arg.Field("Identifier", string)
291
+
292
+ def _arrow3063(__unit: None=None) -> str | None:
293
+ object_arg_1: IOptionalGetter = get.Optional
294
+ return object_arg_1.Field("Title", string)
295
+
296
+ def _arrow3064(__unit: None=None) -> str | None:
297
+ object_arg_2: IOptionalGetter = get.Optional
298
+ return object_arg_2.Field("Description", string)
299
+
300
+ def _arrow3065(__unit: None=None) -> str | None:
301
+ object_arg_3: IOptionalGetter = get.Optional
302
+ return object_arg_3.Field("SubmissionDate", string)
303
+
304
+ def _arrow3066(__unit: None=None) -> str | None:
305
+ object_arg_4: IOptionalGetter = get.Optional
306
+ return object_arg_4.Field("PublicReleaseDate", string)
307
+
308
+ def _arrow3067(__unit: None=None) -> Array[Publication] | None:
309
+ arg_11: Decoder_1[Array[Publication]] = resize_array(decoder_2)
310
+ object_arg_5: IOptionalGetter = get.Optional
311
+ return object_arg_5.Field("Publications", arg_11)
312
+
313
+ def _arrow3068(__unit: None=None) -> Array[Person] | None:
314
+ arg_13: Decoder_1[Array[Person]] = resize_array(decoder_3)
315
+ object_arg_6: IOptionalGetter = get.Optional
316
+ return object_arg_6.Field("Contacts", arg_13)
317
+
318
+ def _arrow3069(__unit: None=None) -> Array[OntologyAnnotation] | None:
319
+ arg_15: Decoder_1[Array[OntologyAnnotation]] = resize_array(OntologyAnnotation_decoder)
320
+ object_arg_7: IOptionalGetter = get.Optional
321
+ return object_arg_7.Field("StudyDesignDescriptors", arg_15)
322
+
323
+ def _arrow3070(__unit: None=None) -> Array[ArcTable] | None:
324
+ arg_17: Decoder_1[Array[ArcTable]] = resize_array(decoder_compressed_1(string_table, oa_table, cell_table))
325
+ object_arg_8: IOptionalGetter = get.Optional
326
+ return object_arg_8.Field("Tables", arg_17)
327
+
328
+ def _arrow3071(__unit: None=None) -> DataMap | None:
329
+ arg_19: Decoder_1[DataMap] = decoder_compressed_2(string_table, oa_table, cell_table)
330
+ object_arg_9: IOptionalGetter = get.Optional
331
+ return object_arg_9.Field("DataMap", arg_19)
332
+
333
+ def _arrow3072(__unit: None=None) -> Array[str] | None:
334
+ arg_21: Decoder_1[Array[str]] = resize_array(string)
335
+ object_arg_10: IOptionalGetter = get.Optional
336
+ return object_arg_10.Field("RegisteredAssayIdentifiers", arg_21)
337
+
338
+ def _arrow3073(__unit: None=None) -> Array[Comment] | None:
339
+ arg_23: Decoder_1[Array[Comment]] = resize_array(decoder_6)
340
+ object_arg_11: IOptionalGetter = get.Optional
341
+ return object_arg_11.Field("Comments", arg_23)
342
+
343
+ return ArcStudy(_arrow3062(), _arrow3063(), _arrow3064(), _arrow3065(), _arrow3066(), _arrow3067(), _arrow3068(), _arrow3069(), _arrow3070(), _arrow3071(), _arrow3072(), _arrow3073())
344
+
345
+ return object(_arrow3074)
346
+
347
+
348
+ def ROCrate_genID(a: ArcStudy) -> str:
349
+ match_value: str = a.Identifier
350
+ if match_value == "":
351
+ return "#EmptyStudy"
352
+
353
+ else:
354
+ return ("studies/" + replace(match_value, " ", "_")) + "/"
355
+
356
+
357
+
358
+ def ROCrate_encoder(assays: FSharpList[ArcAssay] | None, s: ArcStudy) -> IEncodable:
359
+ file_name: str | None = Study_tryFileNameFromIdentifier(s.Identifier)
360
+ processes: FSharpList[Process] = ARCtrl_ArcTables__ArcTables_GetProcesses(s)
361
+ assays_1: Array[ArcAssay] = Helper_getAssayInformation(assays, s)
362
+ def chooser(tupled_arg: tuple[str, IEncodable | None], assays: Any=assays, s: Any=s) -> tuple[str, IEncodable] | None:
363
+ def mapping(v_1: IEncodable, tupled_arg: Any=tupled_arg) -> tuple[str, IEncodable]:
364
+ return (tupled_arg[0], v_1)
365
+
366
+ return map(mapping, tupled_arg[1])
367
+
368
+ def _arrow3078(__unit: None=None, assays: Any=assays, s: Any=s) -> IEncodable:
369
+ value: str = ROCrate_genID(s)
370
+ class ObjectExpr3077(IEncodable):
371
+ def Encode(self, helpers: IEncoderHelpers_1[Any]) -> Any:
372
+ return helpers.encode_string(value)
373
+
374
+ return ObjectExpr3077()
375
+
376
+ class ObjectExpr3079(IEncodable):
377
+ def Encode(self, helpers_1: IEncoderHelpers_1[Any], assays: Any=assays, s: Any=s) -> Any:
378
+ return helpers_1.encode_string("Study")
379
+
380
+ class ObjectExpr3080(IEncodable):
381
+ def Encode(self, helpers_2: IEncoderHelpers_1[Any], assays: Any=assays, s: Any=s) -> Any:
382
+ return helpers_2.encode_string("Study")
383
+
384
+ def _arrow3082(__unit: None=None, assays: Any=assays, s: Any=s) -> IEncodable:
385
+ value_3: str = s.Identifier
386
+ class ObjectExpr3081(IEncodable):
387
+ def Encode(self, helpers_3: IEncoderHelpers_1[Any]) -> Any:
388
+ return helpers_3.encode_string(value_3)
389
+
390
+ return ObjectExpr3081()
391
+
392
+ def _arrow3084(value_4: str, assays: Any=assays, s: Any=s) -> IEncodable:
393
+ class ObjectExpr3083(IEncodable):
394
+ def Encode(self, helpers_4: IEncoderHelpers_1[Any]) -> Any:
395
+ return helpers_4.encode_string(value_4)
396
+
397
+ return ObjectExpr3083()
398
+
399
+ def _arrow3086(value_6: str, assays: Any=assays, s: Any=s) -> IEncodable:
400
+ class ObjectExpr3085(IEncodable):
401
+ def Encode(self, helpers_5: IEncoderHelpers_1[Any]) -> Any:
402
+ return helpers_5.encode_string(value_6)
403
+
404
+ return ObjectExpr3085()
405
+
406
+ def _arrow3088(value_8: str, assays: Any=assays, s: Any=s) -> IEncodable:
407
+ class ObjectExpr3087(IEncodable):
408
+ def Encode(self, helpers_6: IEncoderHelpers_1[Any]) -> Any:
409
+ return helpers_6.encode_string(value_8)
410
+
411
+ return ObjectExpr3087()
412
+
413
+ def _arrow3089(oa: OntologyAnnotation, assays: Any=assays, s: Any=s) -> IEncodable:
414
+ return OntologyAnnotation_ROCrate_encoderDefinedTerm(oa)
415
+
416
+ def _arrow3091(value_10: str, assays: Any=assays, s: Any=s) -> IEncodable:
417
+ class ObjectExpr3090(IEncodable):
418
+ def Encode(self, helpers_7: IEncoderHelpers_1[Any]) -> Any:
419
+ return helpers_7.encode_string(value_10)
420
+
421
+ return ObjectExpr3090()
422
+
423
+ def _arrow3093(value_12: str, assays: Any=assays, s: Any=s) -> IEncodable:
424
+ class ObjectExpr3092(IEncodable):
425
+ def Encode(self, helpers_8: IEncoderHelpers_1[Any]) -> Any:
426
+ return helpers_8.encode_string(value_12)
427
+
428
+ return ObjectExpr3092()
429
+
430
+ def _arrow3094(oa_1: Publication, assays: Any=assays, s: Any=s) -> IEncodable:
431
+ return ROCrate_encoder_1(oa_1)
432
+
433
+ def _arrow3095(oa_2: Person, assays: Any=assays, s: Any=s) -> IEncodable:
434
+ return ROCrate_encoder_2(oa_2)
435
+
436
+ def _arrow3097(__unit: None=None, assays: Any=assays, s: Any=s) -> Callable[[Process], IEncodable]:
437
+ study_name: str | None = s.Identifier
438
+ def _arrow3096(oa_3: Process) -> IEncodable:
439
+ return ROCrate_encoder_3(study_name, None, oa_3)
440
+
441
+ return _arrow3096
442
+
443
+ def _arrow3099(__unit: None=None, assays: Any=assays, s: Any=s) -> Callable[[ArcAssay], IEncodable]:
444
+ study_name_1: str | None = s.Identifier
445
+ def _arrow3098(a_1: ArcAssay) -> IEncodable:
446
+ return ROCrate_encoder_4(study_name_1, a_1)
447
+
448
+ return _arrow3098
449
+
450
+ def _arrow3100(oa_4: Data, assays: Any=assays, s: Any=s) -> IEncodable:
451
+ return ROCrate_encoder_5(oa_4)
452
+
453
+ def _arrow3101(comment: Comment, assays: Any=assays, s: Any=s) -> IEncodable:
454
+ return ROCrate_encoder_6(comment)
455
+
456
+ values: FSharpList[tuple[str, IEncodable]] = choose(chooser, of_array([("@id", _arrow3078()), ("@type", list_1_1(singleton(ObjectExpr3079()))), ("additionalType", ObjectExpr3080()), ("identifier", _arrow3082()), try_include("filename", _arrow3084, file_name), try_include("title", _arrow3086, s.Title), try_include("description", _arrow3088, s.Description), try_include_seq("studyDesignDescriptors", _arrow3089, s.StudyDesignDescriptors), try_include("submissionDate", _arrow3091, s.SubmissionDate), try_include("publicReleaseDate", _arrow3093, s.PublicReleaseDate), try_include_seq("publications", _arrow3094, s.Publications), try_include_seq("people", _arrow3095, s.Contacts), try_include_list("processSequence", _arrow3097(), processes), try_include_seq("assays", _arrow3099(), assays_1), try_include_list("dataFiles", _arrow3100, get_data(processes)), try_include_seq("comments", _arrow3101, s.Comments), ("@context", context_jsonvalue)]))
457
+ class ObjectExpr3102(IEncodable):
458
+ def Encode(self, helpers_9: IEncoderHelpers_1[Any], assays: Any=assays, s: Any=s) -> Any:
459
+ def mapping_1(tupled_arg_1: tuple[str, IEncodable]) -> tuple[str, __A_]:
460
+ return (tupled_arg_1[0], tupled_arg_1[1].Encode(helpers_9))
461
+
462
+ arg: IEnumerable_1[tuple[str, __A_]] = map_1(mapping_1, values)
463
+ return helpers_9.encode_object(arg)
464
+
465
+ return ObjectExpr3102()
466
+
467
+
468
+ def _arrow3113(get: IGetters) -> tuple[ArcStudy, FSharpList[ArcAssay]]:
469
+ def _arrow3103(__unit: None=None) -> str | None:
470
+ object_arg: IOptionalGetter = get.Optional
471
+ return object_arg.Field("filename", string)
472
+
473
+ identifier: str = default_arg(bind(Study_tryIdentifierFromFileName, _arrow3103()), create_missing_identifier())
474
+ assays: FSharpList[ArcAssay] | None
475
+ arg_3: Decoder_1[FSharpList[ArcAssay]] = list_1_2(ROCrate_decoder_1)
476
+ object_arg_1: IOptionalGetter = get.Optional
477
+ assays = object_arg_1.Field("assays", arg_3)
478
+ def mapping_1(arg_4: FSharpList[ArcAssay]) -> Array[str]:
479
+ def mapping(a: ArcAssay, arg_4: Any=arg_4) -> str:
480
+ return a.Identifier
481
+
482
+ return list(map_2(mapping, arg_4))
483
+
484
+ assay_identifiers: Array[str] | None = map(mapping_1, assays)
485
+ def mapping_2(ps: FSharpList[Process]) -> Array[ArcTable]:
486
+ return ARCtrl_ArcTables__ArcTables_fromProcesses_Static_62A3309D(ps).Tables
487
+
488
+ def _arrow3104(__unit: None=None) -> FSharpList[Process] | None:
489
+ arg_6: Decoder_1[FSharpList[Process]] = list_1_2(ROCrate_decoder_2)
490
+ object_arg_2: IOptionalGetter = get.Optional
491
+ return object_arg_2.Field("processSequence", arg_6)
492
+
493
+ tables: Array[ArcTable] | None = map(mapping_2, _arrow3104())
494
+ def _arrow3105(__unit: None=None) -> str | None:
495
+ object_arg_3: IOptionalGetter = get.Optional
496
+ return object_arg_3.Field("title", string)
497
+
498
+ def _arrow3106(__unit: None=None) -> str | None:
499
+ object_arg_4: IOptionalGetter = get.Optional
500
+ return object_arg_4.Field("description", string)
501
+
502
+ def _arrow3107(__unit: None=None) -> str | None:
503
+ object_arg_5: IOptionalGetter = get.Optional
504
+ return object_arg_5.Field("submissionDate", string)
505
+
506
+ def _arrow3108(__unit: None=None) -> str | None:
507
+ object_arg_6: IOptionalGetter = get.Optional
508
+ return object_arg_6.Field("publicReleaseDate", string)
509
+
510
+ def _arrow3109(__unit: None=None) -> Array[Publication] | None:
511
+ arg_16: Decoder_1[Array[Publication]] = resize_array(ROCrate_decoder_3)
512
+ object_arg_7: IOptionalGetter = get.Optional
513
+ return object_arg_7.Field("publications", arg_16)
514
+
515
+ def _arrow3110(__unit: None=None) -> Array[Person] | None:
516
+ arg_18: Decoder_1[Array[Person]] = resize_array(ROCrate_decoder_4)
517
+ object_arg_8: IOptionalGetter = get.Optional
518
+ return object_arg_8.Field("people", arg_18)
519
+
520
+ def _arrow3111(__unit: None=None) -> Array[OntologyAnnotation] | None:
521
+ arg_20: Decoder_1[Array[OntologyAnnotation]] = resize_array(OntologyAnnotation_ROCrate_decoderDefinedTerm)
522
+ object_arg_9: IOptionalGetter = get.Optional
523
+ return object_arg_9.Field("studyDesignDescriptors", arg_20)
524
+
525
+ def _arrow3112(__unit: None=None) -> Array[Comment] | None:
526
+ arg_22: Decoder_1[Array[Comment]] = resize_array(ROCrate_decoder_5)
527
+ object_arg_10: IOptionalGetter = get.Optional
528
+ return object_arg_10.Field("comments", arg_22)
529
+
530
+ return (ArcStudy(identifier, _arrow3105(), _arrow3106(), _arrow3107(), _arrow3108(), _arrow3109(), _arrow3110(), _arrow3111(), tables, None, assay_identifiers, _arrow3112()), default_arg(assays, empty()))
531
+
532
+
533
+ ROCrate_decoder: Decoder_1[tuple[ArcStudy, FSharpList[ArcAssay]]] = object(_arrow3113)
534
+
535
+ def ISAJson_encoder(id_map: Any | None, assays: FSharpList[ArcAssay] | None, s: ArcStudy) -> IEncodable:
536
+ def f(s_1: ArcStudy, id_map: Any=id_map, assays: Any=assays, s: Any=s) -> IEncodable:
537
+ study: ArcStudy = s_1.Copy(True)
538
+ file_name: str = Study_fileNameFromIdentifier(study.Identifier)
539
+ assays_1: Array[ArcAssay]
540
+ n: Array[ArcAssay] = []
541
+ enumerator: Any = get_enumerator(Helper_getAssayInformation(assays, study))
542
+ try:
543
+ while enumerator.System_Collections_IEnumerator_MoveNext():
544
+ a: ArcAssay = enumerator.System_Collections_Generic_IEnumerator_1_get_Current()
545
+ assay: ArcAssay = a.Copy()
546
+ enumerator_1: Any = get_enumerator(assay.Performers)
547
+ try:
548
+ while enumerator_1.System_Collections_IEnumerator_MoveNext():
549
+ person_1: Person = Person_setSourceAssayComment(enumerator_1.System_Collections_Generic_IEnumerator_1_get_Current(), assay.Identifier)
550
+ (study.Contacts.append(person_1))
551
+
552
+ finally:
553
+ dispose(enumerator_1)
554
+
555
+ assay.Performers = []
556
+ (n.append(assay))
557
+
558
+ finally:
559
+ dispose(enumerator)
560
+
561
+ assays_1 = n
562
+ processes: FSharpList[Process] = ARCtrl_ArcTables__ArcTables_GetProcesses(study)
563
+ def encoder_1(oa: OntologyAnnotation, s_1: Any=s_1) -> IEncodable:
564
+ return OntologyAnnotation_ISAJson_encoder(id_map, oa)
565
+
566
+ encoded_units: tuple[str, IEncodable | None] = try_include_list("unitCategories", encoder_1, get_units(processes))
567
+ def encoder_2(value_1: Factor, s_1: Any=s_1) -> IEncodable:
568
+ return encoder_10(id_map, value_1)
569
+
570
+ encoded_factors: tuple[str, IEncodable | None] = try_include_list("factors", encoder_2, get_factors(processes))
571
+ def encoder_3(value_3: MaterialAttribute, s_1: Any=s_1) -> IEncodable:
572
+ return encoder_11(id_map, value_3)
573
+
574
+ encoded_characteristics: tuple[str, IEncodable | None] = try_include_list("characteristicCategories", encoder_3, get_characteristics(processes))
575
+ def _arrow3114(ps: FSharpList[Process], s_1: Any=s_1) -> IEncodable:
576
+ return encoder_12(id_map, ps)
577
+
578
+ encoded_materials: tuple[str, IEncodable | None] = try_include("materials", _arrow3114, Option_fromValueWithDefault(empty(), processes))
579
+ encoded_protocols: tuple[str, IEncodable | None]
580
+ value_5: FSharpList[Protocol] = get_protocols(processes)
581
+ def _arrow3116(__unit: None=None, s_1: Any=s_1) -> Callable[[Protocol], IEncodable]:
582
+ study_name: str | None = s_1.Identifier
583
+ def _arrow3115(oa_1: Protocol) -> IEncodable:
584
+ return ISAJson_encoder_1(study_name, None, None, id_map, oa_1)
585
+
586
+ return _arrow3115
587
+
588
+ encoded_protocols = try_include_list("protocols", _arrow3116(), value_5)
589
+ def chooser(tupled_arg: tuple[str, IEncodable | None], s_1: Any=s_1) -> tuple[str, IEncodable] | None:
590
+ def mapping(v_1: IEncodable, tupled_arg: Any=tupled_arg) -> tuple[str, IEncodable]:
591
+ return (tupled_arg[0], v_1)
592
+
593
+ return map(mapping, tupled_arg[1])
594
+
595
+ def _arrow3120(__unit: None=None, s_1: Any=s_1) -> IEncodable:
596
+ value_6: str = ROCrate_genID(study)
597
+ class ObjectExpr3119(IEncodable):
598
+ def Encode(self, helpers: IEncoderHelpers_1[Any]) -> Any:
599
+ return helpers.encode_string(value_6)
600
+
601
+ return ObjectExpr3119()
602
+
603
+ class ObjectExpr3121(IEncodable):
604
+ def Encode(self, helpers_1: IEncoderHelpers_1[Any], s_1: Any=s_1) -> Any:
605
+ return helpers_1.encode_string(file_name)
606
+
607
+ def _arrow3123(__unit: None=None, s_1: Any=s_1) -> IEncodable:
608
+ value_8: str = study.Identifier
609
+ class ObjectExpr3122(IEncodable):
610
+ def Encode(self, helpers_2: IEncoderHelpers_1[Any]) -> Any:
611
+ return helpers_2.encode_string(value_8)
612
+
613
+ return ObjectExpr3122()
614
+
615
+ def _arrow3125(value_9: str, s_1: Any=s_1) -> IEncodable:
616
+ class ObjectExpr3124(IEncodable):
617
+ def Encode(self, helpers_3: IEncoderHelpers_1[Any]) -> Any:
618
+ return helpers_3.encode_string(value_9)
619
+
620
+ return ObjectExpr3124()
621
+
622
+ def _arrow3127(value_11: str, s_1: Any=s_1) -> IEncodable:
623
+ class ObjectExpr3126(IEncodable):
624
+ def Encode(self, helpers_4: IEncoderHelpers_1[Any]) -> Any:
625
+ return helpers_4.encode_string(value_11)
626
+
627
+ return ObjectExpr3126()
628
+
629
+ def _arrow3129(value_13: str, s_1: Any=s_1) -> IEncodable:
630
+ class ObjectExpr3128(IEncodable):
631
+ def Encode(self, helpers_5: IEncoderHelpers_1[Any]) -> Any:
632
+ return helpers_5.encode_string(value_13)
633
+
634
+ return ObjectExpr3128()
635
+
636
+ def _arrow3131(value_15: str, s_1: Any=s_1) -> IEncodable:
637
+ class ObjectExpr3130(IEncodable):
638
+ def Encode(self, helpers_6: IEncoderHelpers_1[Any]) -> Any:
639
+ return helpers_6.encode_string(value_15)
640
+
641
+ return ObjectExpr3130()
642
+
643
+ def _arrow3132(oa_2: Publication, s_1: Any=s_1) -> IEncodable:
644
+ return ISAJson_encoder_2(id_map, oa_2)
645
+
646
+ def _arrow3133(person_2: Person, s_1: Any=s_1) -> IEncodable:
647
+ return ISAJson_encoder_3(id_map, person_2)
648
+
649
+ def _arrow3134(oa_3: OntologyAnnotation, s_1: Any=s_1) -> IEncodable:
650
+ return OntologyAnnotation_ISAJson_encoder(id_map, oa_3)
651
+
652
+ def _arrow3136(__unit: None=None, s_1: Any=s_1) -> Callable[[Process], IEncodable]:
653
+ study_name_1: str | None = s_1.Identifier
654
+ def _arrow3135(oa_4: Process) -> IEncodable:
655
+ return ISAJson_encoder_4(study_name_1, None, id_map, oa_4)
656
+
657
+ return _arrow3135
658
+
659
+ def _arrow3138(__unit: None=None, s_1: Any=s_1) -> Callable[[ArcAssay], IEncodable]:
660
+ study_name_2: str | None = s_1.Identifier
661
+ def _arrow3137(a_2: ArcAssay) -> IEncodable:
662
+ return ISAJson_encoder_5(study_name_2, id_map, a_2)
663
+
664
+ return _arrow3137
665
+
666
+ def _arrow3139(comment: Comment, s_1: Any=s_1) -> IEncodable:
667
+ return ISAJson_encoder_6(id_map, comment)
668
+
669
+ values: FSharpList[tuple[str, IEncodable]] = choose(chooser, of_array([("@id", _arrow3120()), ("filename", ObjectExpr3121()), ("identifier", _arrow3123()), try_include("title", _arrow3125, study.Title), try_include("description", _arrow3127, study.Description), try_include("submissionDate", _arrow3129, study.SubmissionDate), try_include("publicReleaseDate", _arrow3131, study.PublicReleaseDate), try_include_seq("publications", _arrow3132, study.Publications), try_include_seq("people", _arrow3133, study.Contacts), try_include_seq("studyDesignDescriptors", _arrow3134, study.StudyDesignDescriptors), encoded_protocols, encoded_materials, try_include_list("processSequence", _arrow3136(), processes), try_include_seq("assays", _arrow3138(), assays_1), encoded_factors, encoded_characteristics, encoded_units, try_include_seq("comments", _arrow3139, study.Comments)]))
670
+ class ObjectExpr3140(IEncodable):
671
+ def Encode(self, helpers_7: IEncoderHelpers_1[Any], s_1: Any=s_1) -> Any:
672
+ def mapping_1(tupled_arg_1: tuple[str, IEncodable]) -> tuple[str, __A_]:
673
+ return (tupled_arg_1[0], tupled_arg_1[1].Encode(helpers_7))
674
+
675
+ arg: IEnumerable_1[tuple[str, __A_]] = map_1(mapping_1, values)
676
+ return helpers_7.encode_object(arg)
677
+
678
+ return ObjectExpr3140()
679
+
680
+ if id_map is not None:
681
+ def _arrow3141(s_2: ArcStudy, id_map: Any=id_map, assays: Any=assays, s: Any=s) -> str:
682
+ return ROCrate_genID(s_2)
683
+
684
+ return encode(_arrow3141, f, s, id_map)
685
+
686
+ else:
687
+ return f(s)
688
+
689
+
690
+
691
+ ISAJson_allowedFields: FSharpList[str] = of_array(["@id", "filename", "identifier", "title", "description", "submissionDate", "publicReleaseDate", "publications", "people", "studyDesignDescriptors", "protocols", "materials", "assays", "factors", "characteristicCategories", "unitCategories", "processSequence", "comments", "@type", "@context"])
692
+
693
+ def _arrow3156(get: IGetters) -> tuple[ArcStudy, FSharpList[ArcAssay]]:
694
+ def _arrow3144(__unit: None=None) -> str | None:
695
+ object_arg: IOptionalGetter = get.Optional
696
+ return object_arg.Field("identifier", string)
697
+
698
+ def def_thunk(__unit: None=None) -> str:
699
+ def _arrow3145(__unit: None=None) -> str | None:
700
+ object_arg_1: IOptionalGetter = get.Optional
701
+ return object_arg_1.Field("filename", string)
702
+
703
+ return default_arg(bind(Study_tryIdentifierFromFileName, _arrow3145()), create_missing_identifier())
704
+
705
+ identifier: str = default_arg_with(_arrow3144(), def_thunk)
706
+ def mapping(arg_6: FSharpList[Process]) -> Array[ArcTable]:
707
+ a: ArcTables = ARCtrl_ArcTables__ArcTables_fromProcesses_Static_62A3309D(arg_6)
708
+ return a.Tables
709
+
710
+ def _arrow3146(__unit: None=None) -> FSharpList[Process] | None:
711
+ arg_5: Decoder_1[FSharpList[Process]] = list_1_2(ISAJson_decoder_1)
712
+ object_arg_2: IOptionalGetter = get.Optional
713
+ return object_arg_2.Field("processSequence", arg_5)
714
+
715
+ tables: Array[ArcTable] | None = map(mapping, _arrow3146())
716
+ assays: FSharpList[ArcAssay] | None
717
+ arg_8: Decoder_1[FSharpList[ArcAssay]] = list_1_2(ISAJson_decoder_2)
718
+ object_arg_3: IOptionalGetter = get.Optional
719
+ assays = object_arg_3.Field("assays", arg_8)
720
+ persons_raw: Array[Person] | None
721
+ arg_10: Decoder_1[Array[Person]] = resize_array(ISAJson_decoder_3)
722
+ object_arg_4: IOptionalGetter = get.Optional
723
+ persons_raw = object_arg_4.Field("people", arg_10)
724
+ persons: Array[Person] = []
725
+ if persons_raw is not None:
726
+ enumerator: Any = get_enumerator(value_17(persons_raw))
727
+ try:
728
+ while enumerator.System_Collections_IEnumerator_MoveNext():
729
+ person: Person = enumerator.System_Collections_Generic_IEnumerator_1_get_Current()
730
+ source_assays: IEnumerable_1[str] = Person_getSourceAssayIdentifiersFromComments(person)
731
+ with get_enumerator(source_assays) as enumerator_1:
732
+ while enumerator_1.System_Collections_IEnumerator_MoveNext():
733
+ assay_identifier: str = enumerator_1.System_Collections_Generic_IEnumerator_1_get_Current()
734
+ with get_enumerator(value_17(assays)) as enumerator_2:
735
+ while enumerator_2.System_Collections_IEnumerator_MoveNext():
736
+ assay: ArcAssay = enumerator_2.System_Collections_Generic_IEnumerator_1_get_Current()
737
+ if assay.Identifier == assay_identifier:
738
+ (assay.Performers.append(person))
739
+
740
+ person.Comments = Person_removeSourceAssayComments(person)
741
+ if is_empty(source_assays):
742
+ (persons.append(person))
743
+
744
+
745
+ finally:
746
+ dispose(enumerator)
747
+
748
+
749
+ def mapping_2(arg_11: FSharpList[ArcAssay]) -> Array[str]:
750
+ def mapping_1(a_1: ArcAssay, arg_11: Any=arg_11) -> str:
751
+ return a_1.Identifier
752
+
753
+ return list(map_2(mapping_1, arg_11))
754
+
755
+ assay_identifiers: Array[str] | None = map(mapping_2, assays)
756
+ def _arrow3149(__unit: None=None) -> str | None:
757
+ object_arg_5: IOptionalGetter = get.Optional
758
+ return object_arg_5.Field("title", string)
759
+
760
+ def _arrow3150(__unit: None=None) -> str | None:
761
+ object_arg_6: IOptionalGetter = get.Optional
762
+ return object_arg_6.Field("description", string)
763
+
764
+ def _arrow3151(__unit: None=None) -> str | None:
765
+ object_arg_7: IOptionalGetter = get.Optional
766
+ return object_arg_7.Field("submissionDate", string)
767
+
768
+ def _arrow3152(__unit: None=None) -> str | None:
769
+ object_arg_8: IOptionalGetter = get.Optional
770
+ return object_arg_8.Field("publicReleaseDate", string)
771
+
772
+ def _arrow3153(__unit: None=None) -> Array[Publication] | None:
773
+ arg_21: Decoder_1[Array[Publication]] = resize_array(ISAJson_decoder_4)
774
+ object_arg_9: IOptionalGetter = get.Optional
775
+ return object_arg_9.Field("publications", arg_21)
776
+
777
+ def _arrow3154(__unit: None=None) -> Array[OntologyAnnotation] | None:
778
+ arg_23: Decoder_1[Array[OntologyAnnotation]] = resize_array(OntologyAnnotation_ISAJson_decoder)
779
+ object_arg_10: IOptionalGetter = get.Optional
780
+ return object_arg_10.Field("studyDesignDescriptors", arg_23)
781
+
782
+ def _arrow3155(__unit: None=None) -> Array[Comment] | None:
783
+ arg_25: Decoder_1[Array[Comment]] = resize_array(ISAJson_decoder_5)
784
+ object_arg_11: IOptionalGetter = get.Optional
785
+ return object_arg_11.Field("comments", arg_25)
786
+
787
+ return (ArcStudy(identifier, _arrow3149(), _arrow3150(), _arrow3151(), _arrow3152(), _arrow3153(), None if (len(persons) == 0) else persons, _arrow3154(), tables, None, assay_identifiers, _arrow3155()), default_arg(assays, empty()))
788
+
789
+
790
+ ISAJson_decoder: Decoder_1[tuple[ArcStudy, FSharpList[ArcAssay]]] = Decode_objectNoAdditionalProperties(ISAJson_allowedFields, _arrow3156)
791
+
792
+ __all__ = ["Helper_getAssayInformation", "encoder", "decoder", "encoder_compressed", "decoder_compressed", "ROCrate_genID", "ROCrate_encoder", "ROCrate_decoder", "ISAJson_encoder", "ISAJson_allowedFields", "ISAJson_decoder"]
793
+