arctrl 3.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (511) hide show
  1. arctrl/__init__.py +23 -0
  2. arctrl/cwl.py +12 -0
  3. arctrl/py/CWL/__init__.py +0 -0
  4. arctrl/py/CWL/cwlprocessing_unit.py +221 -0
  5. arctrl/py/CWL/cwltypes.py +364 -0
  6. arctrl/py/CWL/decode.py +3532 -0
  7. arctrl/py/CWL/encode.py +1905 -0
  8. arctrl/py/CWL/expression_tool_description.py +192 -0
  9. arctrl/py/CWL/hash_helpers.py +60 -0
  10. arctrl/py/CWL/inputs.py +122 -0
  11. arctrl/py/CWL/operation_description.py +169 -0
  12. arctrl/py/CWL/outputs.py +171 -0
  13. arctrl/py/CWL/parameter_reference.py +74 -0
  14. arctrl/py/CWL/requirements.py +350 -0
  15. arctrl/py/CWL/tool_description.py +192 -0
  16. arctrl/py/CWL/workflow_description.py +181 -0
  17. arctrl/py/CWL/workflow_steps.py +354 -0
  18. arctrl/py/Contract/__init__.py +0 -0
  19. arctrl/py/Contract/arc.py +89 -0
  20. arctrl/py/Contract/arc_assay.py +125 -0
  21. arctrl/py/Contract/arc_investigation.py +88 -0
  22. arctrl/py/Contract/arc_run.py +291 -0
  23. arctrl/py/Contract/arc_study.py +126 -0
  24. arctrl/py/Contract/arc_workflow.py +213 -0
  25. arctrl/py/Contract/contract.py +153 -0
  26. arctrl/py/Contract/datamap.py +396 -0
  27. arctrl/py/Contract/git.py +116 -0
  28. arctrl/py/Contract/license.py +58 -0
  29. arctrl/py/Contract/validation_packages_config.py +107 -0
  30. arctrl/py/ContractIO/__init__.py +0 -0
  31. arctrl/py/ContractIO/contract_io.py +350 -0
  32. arctrl/py/ContractIO/file_system_helper.py +264 -0
  33. arctrl/py/Conversion/__init__.py +0 -0
  34. arctrl/py/Conversion/assay.py +151 -0
  35. arctrl/py/Conversion/basic.py +559 -0
  36. arctrl/py/Conversion/column_index.py +91 -0
  37. arctrl/py/Conversion/datamap.py +36 -0
  38. arctrl/py/Conversion/date_time.py +32 -0
  39. arctrl/py/Conversion/investigation.py +171 -0
  40. arctrl/py/Conversion/person.py +148 -0
  41. arctrl/py/Conversion/process.py +828 -0
  42. arctrl/py/Conversion/run.py +367 -0
  43. arctrl/py/Conversion/scholarly_article.py +163 -0
  44. arctrl/py/Conversion/study.py +99 -0
  45. arctrl/py/Conversion/table.py +229 -0
  46. arctrl/py/Conversion/workflow.py +680 -0
  47. arctrl/py/Core/Helper/__init__.py +0 -0
  48. arctrl/py/Core/Helper/collections_.py +512 -0
  49. arctrl/py/Core/Helper/date_time.py +26 -0
  50. arctrl/py/Core/Helper/hash_codes.py +60 -0
  51. arctrl/py/Core/Helper/identifier.py +290 -0
  52. arctrl/py/Core/Helper/orcid.py +42 -0
  53. arctrl/py/Core/Helper/printer.py +13 -0
  54. arctrl/py/Core/Helper/regex.py +554 -0
  55. arctrl/py/Core/Helper/sem_ver.py +71 -0
  56. arctrl/py/Core/Helper/url.py +148 -0
  57. arctrl/py/Core/Process/__init__.py +0 -0
  58. arctrl/py/Core/Process/column_index.py +280 -0
  59. arctrl/py/Core/Process/component.py +200 -0
  60. arctrl/py/Core/Process/factor.py +151 -0
  61. arctrl/py/Core/Process/factor_value.py +182 -0
  62. arctrl/py/Core/Process/material.py +74 -0
  63. arctrl/py/Core/Process/material_attribute.py +95 -0
  64. arctrl/py/Core/Process/material_attribute_value.py +184 -0
  65. arctrl/py/Core/Process/material_type.py +45 -0
  66. arctrl/py/Core/Process/process.py +477 -0
  67. arctrl/py/Core/Process/process_input.py +265 -0
  68. arctrl/py/Core/Process/process_output.py +235 -0
  69. arctrl/py/Core/Process/process_parameter_value.py +200 -0
  70. arctrl/py/Core/Process/process_sequence.py +435 -0
  71. arctrl/py/Core/Process/protocol.py +175 -0
  72. arctrl/py/Core/Process/protocol_parameter.py +98 -0
  73. arctrl/py/Core/Process/sample.py +82 -0
  74. arctrl/py/Core/Process/source.py +62 -0
  75. arctrl/py/Core/Table/__init__.py +0 -0
  76. arctrl/py/Core/Table/arc_table.py +1206 -0
  77. arctrl/py/Core/Table/arc_table_aux.py +1308 -0
  78. arctrl/py/Core/Table/arc_tables.py +574 -0
  79. arctrl/py/Core/Table/composite_cell.py +319 -0
  80. arctrl/py/Core/Table/composite_column.py +73 -0
  81. arctrl/py/Core/Table/composite_header.py +739 -0
  82. arctrl/py/Core/__init__.py +0 -0
  83. arctrl/py/Core/arc_types.py +5312 -0
  84. arctrl/py/Core/comment.py +128 -0
  85. arctrl/py/Core/comment_list.py +127 -0
  86. arctrl/py/Core/conversion.py +1375 -0
  87. arctrl/py/Core/data.py +247 -0
  88. arctrl/py/Core/data_context.py +157 -0
  89. arctrl/py/Core/data_file.py +112 -0
  90. arctrl/py/Core/datamap.py +217 -0
  91. arctrl/py/Core/identifier_setters.py +43 -0
  92. arctrl/py/Core/iproperty_value.py +36 -0
  93. arctrl/py/Core/ontology_annotation.py +298 -0
  94. arctrl/py/Core/ontology_source_reference.py +114 -0
  95. arctrl/py/Core/person.py +259 -0
  96. arctrl/py/Core/publication.py +161 -0
  97. arctrl/py/Core/template.py +231 -0
  98. arctrl/py/Core/templates.py +148 -0
  99. arctrl/py/Core/uri.py +11 -0
  100. arctrl/py/Core/value.py +188 -0
  101. arctrl/py/FileSystem/__init__.py +0 -0
  102. arctrl/py/FileSystem/commit.py +21 -0
  103. arctrl/py/FileSystem/default_gitattributes.py +1 -0
  104. arctrl/py/FileSystem/default_gitignore.py +1 -0
  105. arctrl/py/FileSystem/default_license.py +1 -0
  106. arctrl/py/FileSystem/file_system.py +58 -0
  107. arctrl/py/FileSystem/file_system_tree.py +483 -0
  108. arctrl/py/FileSystem/path.py +266 -0
  109. arctrl/py/Json/Datamap/__init__.py +0 -0
  110. arctrl/py/Json/Datamap/data_context.py +101 -0
  111. arctrl/py/Json/Datamap/datamap.py +53 -0
  112. arctrl/py/Json/Process/__init__.py +0 -0
  113. arctrl/py/Json/Process/assay_materials.py +46 -0
  114. arctrl/py/Json/Process/component.py +125 -0
  115. arctrl/py/Json/Process/factor.py +107 -0
  116. arctrl/py/Json/Process/factor_value.py +101 -0
  117. arctrl/py/Json/Process/material.py +226 -0
  118. arctrl/py/Json/Process/material_attribute.py +79 -0
  119. arctrl/py/Json/Process/material_attribute_value.py +101 -0
  120. arctrl/py/Json/Process/material_type.py +53 -0
  121. arctrl/py/Json/Process/process.py +296 -0
  122. arctrl/py/Json/Process/process_input.py +83 -0
  123. arctrl/py/Json/Process/process_output.py +67 -0
  124. arctrl/py/Json/Process/process_parameter_value.py +81 -0
  125. arctrl/py/Json/Process/protocol.py +354 -0
  126. arctrl/py/Json/Process/protocol_parameter.py +91 -0
  127. arctrl/py/Json/Process/sample.py +277 -0
  128. arctrl/py/Json/Process/source.py +214 -0
  129. arctrl/py/Json/Process/study_materials.py +52 -0
  130. arctrl/py/Json/Process/value.py +56 -0
  131. arctrl/py/Json/ROCrate/__init__.py +0 -0
  132. arctrl/py/Json/ROCrate/ldcontext.py +143 -0
  133. arctrl/py/Json/ROCrate/ldgraph.py +117 -0
  134. arctrl/py/Json/ROCrate/ldnode.py +304 -0
  135. arctrl/py/Json/ROCrate/ldref.py +44 -0
  136. arctrl/py/Json/ROCrate/ldvalue.py +102 -0
  137. arctrl/py/Json/Table/__init__.py +0 -0
  138. arctrl/py/Json/Table/arc_table.py +375 -0
  139. arctrl/py/Json/Table/cell_table.py +83 -0
  140. arctrl/py/Json/Table/composite_cell.py +136 -0
  141. arctrl/py/Json/Table/composite_header.py +67 -0
  142. arctrl/py/Json/Table/iotype.py +24 -0
  143. arctrl/py/Json/Table/oatable.py +82 -0
  144. arctrl/py/Json/Table/templates.py +281 -0
  145. arctrl/py/Json/__init__.py +0 -0
  146. arctrl/py/Json/assay.py +600 -0
  147. arctrl/py/Json/comment.py +206 -0
  148. arctrl/py/Json/context/rocrate/__init__.py +0 -0
  149. arctrl/py/Json/context/rocrate/isa_assay_context.py +101 -0
  150. arctrl/py/Json/context/rocrate/isa_comment_context.py +60 -0
  151. arctrl/py/Json/context/rocrate/isa_component_context.py +77 -0
  152. arctrl/py/Json/context/rocrate/isa_data_context.py +74 -0
  153. arctrl/py/Json/context/rocrate/isa_factor_context.py +74 -0
  154. arctrl/py/Json/context/rocrate/isa_factor_value_context.py +84 -0
  155. arctrl/py/Json/context/rocrate/isa_investigation_context.py +110 -0
  156. arctrl/py/Json/context/rocrate/isa_material_attribute_context.py +64 -0
  157. arctrl/py/Json/context/rocrate/isa_material_attribute_value_context.py +80 -0
  158. arctrl/py/Json/context/rocrate/isa_material_context.py +71 -0
  159. arctrl/py/Json/context/rocrate/isa_ontology_annotation_context.py +68 -0
  160. arctrl/py/Json/context/rocrate/isa_ontology_source_reference_context.py +75 -0
  161. arctrl/py/Json/context/rocrate/isa_organization_context.py +55 -0
  162. arctrl/py/Json/context/rocrate/isa_person_context.py +131 -0
  163. arctrl/py/Json/context/rocrate/isa_process_context.py +94 -0
  164. arctrl/py/Json/context/rocrate/isa_process_parameter_value_context.py +80 -0
  165. arctrl/py/Json/context/rocrate/isa_protocol_context.py +97 -0
  166. arctrl/py/Json/context/rocrate/isa_protocol_parameter_context.py +64 -0
  167. arctrl/py/Json/context/rocrate/isa_publication_context.py +78 -0
  168. arctrl/py/Json/context/rocrate/isa_sample_context.py +65 -0
  169. arctrl/py/Json/context/rocrate/isa_source_context.py +66 -0
  170. arctrl/py/Json/context/rocrate/isa_study_context.py +125 -0
  171. arctrl/py/Json/context/rocrate/property_value_context.py +73 -0
  172. arctrl/py/Json/context/rocrate/rocrate_context.py +81 -0
  173. arctrl/py/Json/converter_options.py +23 -0
  174. arctrl/py/Json/data.py +356 -0
  175. arctrl/py/Json/data_file.py +63 -0
  176. arctrl/py/Json/decode.py +271 -0
  177. arctrl/py/Json/encode.py +140 -0
  178. arctrl/py/Json/idtable.py +44 -0
  179. arctrl/py/Json/investigation.py +695 -0
  180. arctrl/py/Json/ontology_annotation.py +404 -0
  181. arctrl/py/Json/ontology_source_reference.py +255 -0
  182. arctrl/py/Json/person.py +658 -0
  183. arctrl/py/Json/property_value.py +359 -0
  184. arctrl/py/Json/publication.py +279 -0
  185. arctrl/py/Json/run.py +275 -0
  186. arctrl/py/Json/string_table.py +87 -0
  187. arctrl/py/Json/study.py +793 -0
  188. arctrl/py/Json/workflow.py +307 -0
  189. arctrl/py/JsonIO/Process/__init__.py +0 -0
  190. arctrl/py/JsonIO/Process/component.py +60 -0
  191. arctrl/py/JsonIO/Process/factor.py +36 -0
  192. arctrl/py/JsonIO/Process/factor_value.py +38 -0
  193. arctrl/py/JsonIO/Process/material.py +60 -0
  194. arctrl/py/JsonIO/Process/material_attribute.py +38 -0
  195. arctrl/py/JsonIO/Process/material_attribute_value.py +60 -0
  196. arctrl/py/JsonIO/Process/material_type.py +36 -0
  197. arctrl/py/JsonIO/Process/process.py +60 -0
  198. arctrl/py/JsonIO/Process/process_input.py +38 -0
  199. arctrl/py/JsonIO/Process/process_output.py +60 -0
  200. arctrl/py/JsonIO/Process/process_parameter_value.py +60 -0
  201. arctrl/py/JsonIO/Process/process_sequence.py +71 -0
  202. arctrl/py/JsonIO/Process/protocol.py +60 -0
  203. arctrl/py/JsonIO/Process/protocol_parameter.py +36 -0
  204. arctrl/py/JsonIO/Process/sample.py +60 -0
  205. arctrl/py/JsonIO/Process/source.py +60 -0
  206. arctrl/py/JsonIO/Process/study_materials.py +52 -0
  207. arctrl/py/JsonIO/Process/value.py +32 -0
  208. arctrl/py/JsonIO/Table/__init__.py +0 -0
  209. arctrl/py/JsonIO/Table/arc_table.py +103 -0
  210. arctrl/py/JsonIO/Table/composite_cell.py +36 -0
  211. arctrl/py/JsonIO/Table/composite_header.py +36 -0
  212. arctrl/py/JsonIO/Table/compression.py +67 -0
  213. arctrl/py/JsonIO/Table/iotype.py +36 -0
  214. arctrl/py/JsonIO/Table/templates.py +113 -0
  215. arctrl/py/JsonIO/__init__.py +0 -0
  216. arctrl/py/JsonIO/assay.py +113 -0
  217. arctrl/py/JsonIO/comment.py +80 -0
  218. arctrl/py/JsonIO/data.py +60 -0
  219. arctrl/py/JsonIO/data_file.py +58 -0
  220. arctrl/py/JsonIO/datamap.py +36 -0
  221. arctrl/py/JsonIO/decode.py +9 -0
  222. arctrl/py/JsonIO/encode.py +1 -0
  223. arctrl/py/JsonIO/investigation.py +91 -0
  224. arctrl/py/JsonIO/ldobject.py +106 -0
  225. arctrl/py/JsonIO/ontology_annotation.py +80 -0
  226. arctrl/py/JsonIO/ontology_source_reference.py +80 -0
  227. arctrl/py/JsonIO/person.py +82 -0
  228. arctrl/py/JsonIO/publication.py +82 -0
  229. arctrl/py/JsonIO/run.py +68 -0
  230. arctrl/py/JsonIO/study.py +114 -0
  231. arctrl/py/JsonIO/workflow.py +68 -0
  232. arctrl/py/ROCrate/ISAProfile/__init__.py +0 -0
  233. arctrl/py/ROCrate/ISAProfile/assay.py +70 -0
  234. arctrl/py/ROCrate/ISAProfile/data.py +65 -0
  235. arctrl/py/ROCrate/ISAProfile/dataset.py +24 -0
  236. arctrl/py/ROCrate/ISAProfile/investigation.py +73 -0
  237. arctrl/py/ROCrate/ISAProfile/lab_process.py +162 -0
  238. arctrl/py/ROCrate/ISAProfile/lab_protocol.py +37 -0
  239. arctrl/py/ROCrate/ISAProfile/person.py +72 -0
  240. arctrl/py/ROCrate/ISAProfile/property_value.py +98 -0
  241. arctrl/py/ROCrate/ISAProfile/sample.py +64 -0
  242. arctrl/py/ROCrate/ISAProfile/scholarly_article.py +98 -0
  243. arctrl/py/ROCrate/ISAProfile/study.py +74 -0
  244. arctrl/py/ROCrate/LDTypes/__init__.py +0 -0
  245. arctrl/py/ROCrate/LDTypes/comment.py +131 -0
  246. arctrl/py/ROCrate/LDTypes/computational_workflow.py +455 -0
  247. arctrl/py/ROCrate/LDTypes/computer_language.py +269 -0
  248. arctrl/py/ROCrate/LDTypes/create_action.py +303 -0
  249. arctrl/py/ROCrate/LDTypes/creative_work.py +566 -0
  250. arctrl/py/ROCrate/LDTypes/dataset.py +943 -0
  251. arctrl/py/ROCrate/LDTypes/defined_term.py +131 -0
  252. arctrl/py/ROCrate/LDTypes/file.py +281 -0
  253. arctrl/py/ROCrate/LDTypes/formal_parameter.py +431 -0
  254. arctrl/py/ROCrate/LDTypes/lab_process.py +352 -0
  255. arctrl/py/ROCrate/LDTypes/lab_protocol.py +395 -0
  256. arctrl/py/ROCrate/LDTypes/organization.py +83 -0
  257. arctrl/py/ROCrate/LDTypes/person.py +484 -0
  258. arctrl/py/ROCrate/LDTypes/postal_address.py +195 -0
  259. arctrl/py/ROCrate/LDTypes/property_value.py +952 -0
  260. arctrl/py/ROCrate/LDTypes/sample.py +202 -0
  261. arctrl/py/ROCrate/LDTypes/scholarly_article.py +229 -0
  262. arctrl/py/ROCrate/LDTypes/software_source_code.py +310 -0
  263. arctrl/py/ROCrate/LDTypes/workflow_invocation.py +48 -0
  264. arctrl/py/ROCrate/LDTypes/workflow_protocol.py +52 -0
  265. arctrl/py/ROCrate/__init__.py +0 -0
  266. arctrl/py/ROCrate/arc_rocrate_metadata.py +39 -0
  267. arctrl/py/ROCrate/dyn_obj_extensions.py +1 -0
  268. arctrl/py/ROCrate/helper.py +8 -0
  269. arctrl/py/ROCrate/ldcontext.py +406 -0
  270. arctrl/py/ROCrate/ldobject.py +1247 -0
  271. arctrl/py/ROCrate/rocrate_context.py +51 -0
  272. arctrl/py/Spreadsheet/AnnotationTable/__init__.py +0 -0
  273. arctrl/py/Spreadsheet/AnnotationTable/arc_table.py +203 -0
  274. arctrl/py/Spreadsheet/AnnotationTable/composite_cell.py +78 -0
  275. arctrl/py/Spreadsheet/AnnotationTable/composite_column.py +305 -0
  276. arctrl/py/Spreadsheet/AnnotationTable/composite_header.py +623 -0
  277. arctrl/py/Spreadsheet/DatamapTable/__init__.py +0 -0
  278. arctrl/py/Spreadsheet/DatamapTable/datamap_column.py +114 -0
  279. arctrl/py/Spreadsheet/DatamapTable/datamap_header.py +621 -0
  280. arctrl/py/Spreadsheet/DatamapTable/datamap_table.py +118 -0
  281. arctrl/py/Spreadsheet/Metadata/__init__.py +0 -0
  282. arctrl/py/Spreadsheet/Metadata/assays.py +125 -0
  283. arctrl/py/Spreadsheet/Metadata/comment.py +77 -0
  284. arctrl/py/Spreadsheet/Metadata/contacts.py +134 -0
  285. arctrl/py/Spreadsheet/Metadata/conversions.py +190 -0
  286. arctrl/py/Spreadsheet/Metadata/design_descriptors.py +34 -0
  287. arctrl/py/Spreadsheet/Metadata/factors.py +107 -0
  288. arctrl/py/Spreadsheet/Metadata/ontology_annotation.py +88 -0
  289. arctrl/py/Spreadsheet/Metadata/ontology_source_reference.py +96 -0
  290. arctrl/py/Spreadsheet/Metadata/protocols.py +146 -0
  291. arctrl/py/Spreadsheet/Metadata/publication.py +122 -0
  292. arctrl/py/Spreadsheet/Metadata/run.py +122 -0
  293. arctrl/py/Spreadsheet/Metadata/sparse_table.py +499 -0
  294. arctrl/py/Spreadsheet/Metadata/study.py +312 -0
  295. arctrl/py/Spreadsheet/Metadata/workflow.py +159 -0
  296. arctrl/py/Spreadsheet/__init__.py +0 -0
  297. arctrl/py/Spreadsheet/arc_assay.py +233 -0
  298. arctrl/py/Spreadsheet/arc_investigation.py +435 -0
  299. arctrl/py/Spreadsheet/arc_run.py +190 -0
  300. arctrl/py/Spreadsheet/arc_study.py +144 -0
  301. arctrl/py/Spreadsheet/arc_workflow.py +177 -0
  302. arctrl/py/Spreadsheet/assembly_info.py +1 -0
  303. arctrl/py/Spreadsheet/collection_aux.py +167 -0
  304. arctrl/py/Spreadsheet/datamap.py +43 -0
  305. arctrl/py/Spreadsheet/template.py +460 -0
  306. arctrl/py/ValidationPackages/__init__.py +0 -0
  307. arctrl/py/ValidationPackages/validation_package.py +82 -0
  308. arctrl/py/ValidationPackages/validation_packages_config.py +132 -0
  309. arctrl/py/WebRequest/__init__.py +0 -0
  310. arctrl/py/WebRequest/web_request.py +9 -0
  311. arctrl/py/WebRequest/web_request_py.py +135 -0
  312. arctrl/py/WorkflowGraph/__init__.py +0 -0
  313. arctrl/py/WorkflowGraph/adapters.py +141 -0
  314. arctrl/py/WorkflowGraph/build_options.py +45 -0
  315. arctrl/py/WorkflowGraph/builder.py +720 -0
  316. arctrl/py/WorkflowGraph/graph_types.py +260 -0
  317. arctrl/py/WorkflowGraph/query_helpers.py +76 -0
  318. arctrl/py/WorkflowGraph/reference_parsing.py +59 -0
  319. arctrl/py/WorkflowGraph/visualization_siren.py +574 -0
  320. arctrl/py/WorkflowGraph/workflow_graph.py +119 -0
  321. arctrl/py/Yaml/__init__.py +0 -0
  322. arctrl/py/Yaml/decode.py +1 -0
  323. arctrl/py/Yaml/encode.py +10 -0
  324. arctrl/py/Yaml/validation_package.py +77 -0
  325. arctrl/py/Yaml/validation_packages_config.py +86 -0
  326. arctrl/py/__init__.py +0 -0
  327. arctrl/py/arc.py +1891 -0
  328. arctrl/py/column_index.py +280 -0
  329. arctrl/py/conversion.py +142 -0
  330. arctrl/py/cross_async.py +76 -0
  331. arctrl/py/cwlrun_resolver.py +228 -0
  332. arctrl/py/fable_modules/dynamic_obj/__init__.py +0 -0
  333. arctrl/py/fable_modules/dynamic_obj/dyn_obj.py +136 -0
  334. arctrl/py/fable_modules/dynamic_obj/dynamic_obj.py +415 -0
  335. arctrl/py/fable_modules/dynamic_obj/fable_js.py +1 -0
  336. arctrl/py/fable_modules/dynamic_obj/fable_py.py +288 -0
  337. arctrl/py/fable_modules/dynamic_obj/hash_codes.py +82 -0
  338. arctrl/py/fable_modules/dynamic_obj/property_helper.py +25 -0
  339. arctrl/py/fable_modules/dynamic_obj/reflection_utils.py +87 -0
  340. arctrl/py/fable_modules/fable_library/__init__.py +0 -0
  341. arctrl/py/fable_modules/fable_library/array_.py +1528 -0
  342. arctrl/py/fable_modules/fable_library/async_.py +377 -0
  343. arctrl/py/fable_modules/fable_library/async_builder.py +379 -0
  344. arctrl/py/fable_modules/fable_library/big_int.py +330 -0
  345. arctrl/py/fable_modules/fable_library/bit_converter.py +131 -0
  346. arctrl/py/fable_modules/fable_library/boolean.py +26 -0
  347. arctrl/py/fable_modules/fable_library/char.py +237 -0
  348. arctrl/py/fable_modules/fable_library/choice.py +212 -0
  349. arctrl/py/fable_modules/fable_library/date.py +779 -0
  350. arctrl/py/fable_modules/fable_library/date_offset.py +79 -0
  351. arctrl/py/fable_modules/fable_library/decimal_.py +190 -0
  352. arctrl/py/fable_modules/fable_library/diagnostics.py +54 -0
  353. arctrl/py/fable_modules/fable_library/double.py +87 -0
  354. arctrl/py/fable_modules/fable_library/encoding.py +41 -0
  355. arctrl/py/fable_modules/fable_library/event.py +206 -0
  356. arctrl/py/fable_modules/fable_library/file.py +107 -0
  357. arctrl/py/fable_modules/fable_library/fsharp_collections.py +52 -0
  358. arctrl/py/fable_modules/fable_library/fsharp_core.py +123 -0
  359. arctrl/py/fable_modules/fable_library/global_.py +63 -0
  360. arctrl/py/fable_modules/fable_library/guid.py +41 -0
  361. arctrl/py/fable_modules/fable_library/int32.py +73 -0
  362. arctrl/py/fable_modules/fable_library/list.py +1788 -0
  363. arctrl/py/fable_modules/fable_library/long.py +240 -0
  364. arctrl/py/fable_modules/fable_library/mailbox_processor.py +179 -0
  365. arctrl/py/fable_modules/fable_library/map.py +1854 -0
  366. arctrl/py/fable_modules/fable_library/map_util.py +148 -0
  367. arctrl/py/fable_modules/fable_library/mutable_map.py +397 -0
  368. arctrl/py/fable_modules/fable_library/mutable_set.py +279 -0
  369. arctrl/py/fable_modules/fable_library/native.py +45 -0
  370. arctrl/py/fable_modules/fable_library/numeric.py +46 -0
  371. arctrl/py/fable_modules/fable_library/observable.py +222 -0
  372. arctrl/py/fable_modules/fable_library/option.py +128 -0
  373. arctrl/py/fable_modules/fable_library/path.py +62 -0
  374. arctrl/py/fable_modules/fable_library/range.py +117 -0
  375. arctrl/py/fable_modules/fable_library/reflection.py +463 -0
  376. arctrl/py/fable_modules/fable_library/reg_exp.py +137 -0
  377. arctrl/py/fable_modules/fable_library/resize_array.py +31 -0
  378. arctrl/py/fable_modules/fable_library/result.py +212 -0
  379. arctrl/py/fable_modules/fable_library/seq.py +1979 -0
  380. arctrl/py/fable_modules/fable_library/seq2.py +221 -0
  381. arctrl/py/fable_modules/fable_library/set.py +2414 -0
  382. arctrl/py/fable_modules/fable_library/singleton_local_time_zone.py +36 -0
  383. arctrl/py/fable_modules/fable_library/string_.py +573 -0
  384. arctrl/py/fable_modules/fable_library/system_collections_generic.py +462 -0
  385. arctrl/py/fable_modules/fable_library/system_text.py +237 -0
  386. arctrl/py/fable_modules/fable_library/task.py +116 -0
  387. arctrl/py/fable_modules/fable_library/task_builder.py +122 -0
  388. arctrl/py/fable_modules/fable_library/thread.py +5 -0
  389. arctrl/py/fable_modules/fable_library/time_span.py +283 -0
  390. arctrl/py/fable_modules/fable_library/timer.py +24 -0
  391. arctrl/py/fable_modules/fable_library/types.py +401 -0
  392. arctrl/py/fable_modules/fable_library/uri.py +109 -0
  393. arctrl/py/fable_modules/fable_library/util.py +2735 -0
  394. arctrl/py/fable_modules/fable_openpyxl/__init__.py +0 -0
  395. arctrl/py/fable_modules/fable_openpyxl/openpyxl.py +362 -0
  396. arctrl/py/fable_modules/fable_python/cognite-sdk/__init__.py +0 -0
  397. arctrl/py/fable_modules/fable_python/cognite-sdk/cognite_sdk.py +22 -0
  398. arctrl/py/fable_modules/fable_python/flask/__init__.py +0 -0
  399. arctrl/py/fable_modules/fable_python/flask/flask.py +34 -0
  400. arctrl/py/fable_modules/fable_python/jupyter/__init__.py +0 -0
  401. arctrl/py/fable_modules/fable_python/jupyter/ipy_widgets.py +47 -0
  402. arctrl/py/fable_modules/fable_python/jupyter/ipython.py +13 -0
  403. arctrl/py/fable_modules/fable_python/stdlib/__init__.py +0 -0
  404. arctrl/py/fable_modules/fable_python/stdlib/ast.py +1 -0
  405. arctrl/py/fable_modules/fable_python/stdlib/asyncio/__init__.py +0 -0
  406. arctrl/py/fable_modules/fable_python/stdlib/asyncio/events.py +17 -0
  407. arctrl/py/fable_modules/fable_python/stdlib/asyncio/futures.py +52 -0
  408. arctrl/py/fable_modules/fable_python/stdlib/asyncio/tasks.py +38 -0
  409. arctrl/py/fable_modules/fable_python/stdlib/base64_.py +1 -0
  410. arctrl/py/fable_modules/fable_python/stdlib/builtins_.py +38 -0
  411. arctrl/py/fable_modules/fable_python/stdlib/html.py +1 -0
  412. arctrl/py/fable_modules/fable_python/stdlib/json.py +1 -0
  413. arctrl/py/fable_modules/fable_python/stdlib/math_.py +1 -0
  414. arctrl/py/fable_modules/fable_python/stdlib/os_.py +1 -0
  415. arctrl/py/fable_modules/fable_python/stdlib/queue_.py +1 -0
  416. arctrl/py/fable_modules/fable_python/stdlib/string_.py +1 -0
  417. arctrl/py/fable_modules/fable_python/stdlib/sys_.py +30 -0
  418. arctrl/py/fable_modules/fable_python/stdlib/time_.py +1 -0
  419. arctrl/py/fable_modules/fable_python/stdlib/tk_inter.py +1 -0
  420. arctrl/py/fable_modules/fs_spreadsheet/Cells/__init__.py +0 -0
  421. arctrl/py/fable_modules/fs_spreadsheet/Cells/fs_cell.py +340 -0
  422. arctrl/py/fable_modules/fs_spreadsheet/Cells/fs_cells_collection.py +466 -0
  423. arctrl/py/fable_modules/fs_spreadsheet/DSL/__init__.py +0 -0
  424. arctrl/py/fable_modules/fs_spreadsheet/DSL/cell_builder.py +214 -0
  425. arctrl/py/fable_modules/fs_spreadsheet/DSL/column_builder.py +139 -0
  426. arctrl/py/fable_modules/fs_spreadsheet/DSL/dsl.py +50 -0
  427. arctrl/py/fable_modules/fs_spreadsheet/DSL/expression.py +65 -0
  428. arctrl/py/fable_modules/fs_spreadsheet/DSL/operators.py +9 -0
  429. arctrl/py/fable_modules/fs_spreadsheet/DSL/row_builder.py +139 -0
  430. arctrl/py/fable_modules/fs_spreadsheet/DSL/sheet_builder.py +118 -0
  431. arctrl/py/fable_modules/fs_spreadsheet/DSL/table_builder.py +122 -0
  432. arctrl/py/fable_modules/fs_spreadsheet/DSL/transform.py +463 -0
  433. arctrl/py/fable_modules/fs_spreadsheet/DSL/types.py +314 -0
  434. arctrl/py/fable_modules/fs_spreadsheet/DSL/workbook_builder.py +106 -0
  435. arctrl/py/fable_modules/fs_spreadsheet/Json/__init__.py +0 -0
  436. arctrl/py/fable_modules/fs_spreadsheet/Json/cell.py +103 -0
  437. arctrl/py/fable_modules/fs_spreadsheet/Json/column.py +70 -0
  438. arctrl/py/fable_modules/fs_spreadsheet/Json/row.py +70 -0
  439. arctrl/py/fable_modules/fs_spreadsheet/Json/table.py +54 -0
  440. arctrl/py/fable_modules/fs_spreadsheet/Json/value.py +93 -0
  441. arctrl/py/fable_modules/fs_spreadsheet/Json/workbook.py +71 -0
  442. arctrl/py/fable_modules/fs_spreadsheet/Json/worksheet.py +216 -0
  443. arctrl/py/fable_modules/fs_spreadsheet/Ranges/__init__.py +0 -0
  444. arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range.py +43 -0
  445. arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_address.py +190 -0
  446. arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_base.py +92 -0
  447. arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_column.py +77 -0
  448. arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_row.py +48 -0
  449. arctrl/py/fable_modules/fs_spreadsheet/Tables/__init__.py +0 -0
  450. arctrl/py/fable_modules/fs_spreadsheet/Tables/fs_table.py +461 -0
  451. arctrl/py/fable_modules/fs_spreadsheet/Tables/fs_table_field.py +117 -0
  452. arctrl/py/fable_modules/fs_spreadsheet/Tables/fs_table_row.py +23 -0
  453. arctrl/py/fable_modules/fs_spreadsheet/__init__.py +0 -0
  454. arctrl/py/fable_modules/fs_spreadsheet/fs_address.py +236 -0
  455. arctrl/py/fable_modules/fs_spreadsheet/fs_column.py +172 -0
  456. arctrl/py/fable_modules/fs_spreadsheet/fs_row.py +183 -0
  457. arctrl/py/fable_modules/fs_spreadsheet/fs_workbook.py +192 -0
  458. arctrl/py/fable_modules/fs_spreadsheet/fs_worksheet.py +610 -0
  459. arctrl/py/fable_modules/fs_spreadsheet/hash_codes.py +60 -0
  460. arctrl/py/fable_modules/fs_spreadsheet/sheet_builder.py +329 -0
  461. arctrl/py/fable_modules/fs_spreadsheet_py/__init__.py +0 -0
  462. arctrl/py/fable_modules/fs_spreadsheet_py/cell.py +60 -0
  463. arctrl/py/fable_modules/fs_spreadsheet_py/cell_type.py +50 -0
  464. arctrl/py/fable_modules/fs_spreadsheet_py/fs_extension.py +60 -0
  465. arctrl/py/fable_modules/fs_spreadsheet_py/json.py +47 -0
  466. arctrl/py/fable_modules/fs_spreadsheet_py/table.py +54 -0
  467. arctrl/py/fable_modules/fs_spreadsheet_py/workbook.py +41 -0
  468. arctrl/py/fable_modules/fs_spreadsheet_py/worksheet.py +52 -0
  469. arctrl/py/fable_modules/fs_spreadsheet_py/xlsx.py +37 -0
  470. arctrl/py/fable_modules/siren/__init__.py +0 -0
  471. arctrl/py/fable_modules/siren/config.py +1038 -0
  472. arctrl/py/fable_modules/siren/formatting.py +1121 -0
  473. arctrl/py/fable_modules/siren/siren.py +1941 -0
  474. arctrl/py/fable_modules/siren/siren_types.py +1229 -0
  475. arctrl/py/fable_modules/siren/theme_variables.py +517 -0
  476. arctrl/py/fable_modules/siren/util.py +37 -0
  477. arctrl/py/fable_modules/siren/yaml.py +101 -0
  478. arctrl/py/fable_modules/thoth_json_core/__init__.py +0 -0
  479. arctrl/py/fable_modules/thoth_json_core/decode.py +1614 -0
  480. arctrl/py/fable_modules/thoth_json_core/encode.py +305 -0
  481. arctrl/py/fable_modules/thoth_json_core/types.py +181 -0
  482. arctrl/py/fable_modules/thoth_json_python/__init__.py +0 -0
  483. arctrl/py/fable_modules/thoth_json_python/decode.py +112 -0
  484. arctrl/py/fable_modules/thoth_json_python/encode.py +72 -0
  485. arctrl/py/fable_modules/thoth_json_python/python.py +1 -0
  486. arctrl/py/fable_modules/yamlicious/Interop/__init__.py +0 -0
  487. arctrl/py/fable_modules/yamlicious/Interop/js_interop.py +1 -0
  488. arctrl/py/fable_modules/yamlicious/Interop/py_interop.py +7 -0
  489. arctrl/py/fable_modules/yamlicious/__init__.py +0 -0
  490. arctrl/py/fable_modules/yamlicious/decode.py +1784 -0
  491. arctrl/py/fable_modules/yamlicious/encode.py +84 -0
  492. arctrl/py/fable_modules/yamlicious/flow_to_block.py +994 -0
  493. arctrl/py/fable_modules/yamlicious/library.py +10 -0
  494. arctrl/py/fable_modules/yamlicious/persil.py +57 -0
  495. arctrl/py/fable_modules/yamlicious/preprocessing.py +99 -0
  496. arctrl/py/fable_modules/yamlicious/reader.py +739 -0
  497. arctrl/py/fable_modules/yamlicious/regex.py +29 -0
  498. arctrl/py/fable_modules/yamlicious/regex_active_patterns.py +265 -0
  499. arctrl/py/fable_modules/yamlicious/writer.py +175 -0
  500. arctrl/py/fable_modules/yamlicious/yamlicious_types.py +128 -0
  501. arctrl/py/json.py +389 -0
  502. arctrl/py/license.py +169 -0
  503. arctrl/py/rocrate_io.py +242 -0
  504. arctrl/py/template_web.py +23 -0
  505. arctrl/py/xlsx.py +212 -0
  506. arctrl/py/yaml.py +79 -0
  507. arctrl/rocrate.py +21 -0
  508. arctrl-3.0.0.dist-info/METADATA +157 -0
  509. arctrl-3.0.0.dist-info/RECORD +511 -0
  510. arctrl-3.0.0.dist-info/WHEEL +4 -0
  511. arctrl-3.0.0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,695 @@
1
+ from __future__ import annotations
2
+ from collections.abc import Callable
3
+ from typing import (Any, TypeVar)
4
+ from ..fable_modules.fable_library.date import (today, to_string)
5
+ from ..fable_modules.fable_library.list import (choose, of_array, FSharpList, unzip, empty)
6
+ from ..fable_modules.fable_library.option import (map, default_arg)
7
+ from ..fable_modules.fable_library.seq import (map as map_1, concat)
8
+ from ..fable_modules.fable_library.seq2 import distinct_by
9
+ from ..fable_modules.fable_library.types import Array
10
+ from ..fable_modules.fable_library.util import (IEnumerable_1, string_hash)
11
+ from ..fable_modules.thoth_json_core.decode import (object, IRequiredGetter, string, IOptionalGetter, resize_array, IGetters, 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, ArcInvestigation)
14
+ from ..Core.comment import Comment
15
+ from ..Core.Helper.identifier import create_missing_identifier
16
+ from ..Core.ontology_annotation import OntologyAnnotation
17
+ from ..Core.ontology_source_reference import OntologySourceReference
18
+ from ..Core.person import Person
19
+ from ..Core.publication import Publication
20
+ from ..Core.Table.composite_cell import CompositeCell
21
+ from .assay import (encoder as encoder_4, decoder as decoder_6, encoder_compressed as encoder_compressed_1, decoder_compressed as decoder_compressed_1)
22
+ from .comment import (encoder as encoder_6, decoder as decoder_8, ROCrate_encoder as ROCrate_encoder_5, ROCrate_decoder as ROCrate_decoder_5, ISAJson_encoder as ISAJson_encoder_5, ISAJson_decoder as ISAJson_decoder_5)
23
+ from .context.rocrate.isa_investigation_context import context_jsonvalue
24
+ from .context.rocrate.rocrate_context import (conforms_to_jsonvalue, context_jsonvalue as context_jsonvalue_1)
25
+ from .decode import Decode_objectNoAdditionalProperties
26
+ from .encode import (try_include, try_include_seq)
27
+ from .ontology_source_reference import (encoder as encoder_1, decoder as decoder_3, ROCrate_encoder as ROCrate_encoder_1, ROCrate_decoder as ROCrate_decoder_2, ISAJson_encoder as ISAJson_encoder_1, ISAJson_decoder as ISAJson_decoder_2)
28
+ from .person import (encoder as encoder_3, decoder as decoder_5, ROCrate_encoder as ROCrate_encoder_3, ROCrate_decoder as ROCrate_decoder_4, ISAJson_encoder as ISAJson_encoder_3, ISAJson_decoder as ISAJson_decoder_4)
29
+ from .publication import (encoder as encoder_2, decoder as decoder_4, ROCrate_encoder as ROCrate_encoder_2, ROCrate_decoder as ROCrate_decoder_3, ISAJson_encoder as ISAJson_encoder_2, ISAJson_decoder as ISAJson_decoder_3)
30
+ from .study import (encoder as encoder_5, decoder as decoder_7, encoder_compressed as encoder_compressed_2, decoder_compressed as decoder_compressed_2, ROCrate_encoder as ROCrate_encoder_4, ROCrate_decoder as ROCrate_decoder_1, ISAJson_encoder as ISAJson_encoder_4, ISAJson_decoder as ISAJson_decoder_1)
31
+
32
+ __A_ = TypeVar("__A_")
33
+
34
+ def encoder(inv: ArcInvestigation) -> IEncodable:
35
+ def chooser(tupled_arg: tuple[str, IEncodable | None], inv: Any=inv) -> tuple[str, IEncodable] | None:
36
+ def mapping(v_1: IEncodable, tupled_arg: Any=tupled_arg) -> tuple[str, IEncodable]:
37
+ return (tupled_arg[0], v_1)
38
+
39
+ return map(mapping, tupled_arg[1])
40
+
41
+ def _arrow3973(__unit: None=None, inv: Any=inv) -> IEncodable:
42
+ value: str = inv.Identifier
43
+ class ObjectExpr3972(IEncodable):
44
+ def Encode(self, helpers: IEncoderHelpers_1[Any]) -> Any:
45
+ return helpers.encode_string(value)
46
+
47
+ return ObjectExpr3972()
48
+
49
+ def _arrow3975(value_1: str, inv: Any=inv) -> IEncodable:
50
+ class ObjectExpr3974(IEncodable):
51
+ def Encode(self, helpers_1: IEncoderHelpers_1[Any]) -> Any:
52
+ return helpers_1.encode_string(value_1)
53
+
54
+ return ObjectExpr3974()
55
+
56
+ def _arrow3977(value_3: str, inv: Any=inv) -> IEncodable:
57
+ class ObjectExpr3976(IEncodable):
58
+ def Encode(self, helpers_2: IEncoderHelpers_1[Any]) -> Any:
59
+ return helpers_2.encode_string(value_3)
60
+
61
+ return ObjectExpr3976()
62
+
63
+ def _arrow3979(value_5: str, inv: Any=inv) -> IEncodable:
64
+ class ObjectExpr3978(IEncodable):
65
+ def Encode(self, helpers_3: IEncoderHelpers_1[Any]) -> Any:
66
+ return helpers_3.encode_string(value_5)
67
+
68
+ return ObjectExpr3978()
69
+
70
+ def _arrow3981(value_7: str, inv: Any=inv) -> IEncodable:
71
+ class ObjectExpr3980(IEncodable):
72
+ def Encode(self, helpers_4: IEncoderHelpers_1[Any]) -> Any:
73
+ return helpers_4.encode_string(value_7)
74
+
75
+ return ObjectExpr3980()
76
+
77
+ def _arrow3982(osr: OntologySourceReference, inv: Any=inv) -> IEncodable:
78
+ return encoder_1(osr)
79
+
80
+ def _arrow3983(oa: Publication, inv: Any=inv) -> IEncodable:
81
+ return encoder_2(oa)
82
+
83
+ def _arrow3984(person: Person, inv: Any=inv) -> IEncodable:
84
+ return encoder_3(person)
85
+
86
+ def _arrow3985(assay: ArcAssay, inv: Any=inv) -> IEncodable:
87
+ return encoder_4(assay)
88
+
89
+ def _arrow3986(study: ArcStudy, inv: Any=inv) -> IEncodable:
90
+ return encoder_5(study)
91
+
92
+ def _arrow3988(value_9: str, inv: Any=inv) -> IEncodable:
93
+ class ObjectExpr3987(IEncodable):
94
+ def Encode(self, helpers_5: IEncoderHelpers_1[Any]) -> Any:
95
+ return helpers_5.encode_string(value_9)
96
+
97
+ return ObjectExpr3987()
98
+
99
+ def _arrow3989(comment: Comment, inv: Any=inv) -> IEncodable:
100
+ return encoder_6(comment)
101
+
102
+ values: FSharpList[tuple[str, IEncodable]] = choose(chooser, of_array([("Identifier", _arrow3973()), try_include("Title", _arrow3975, inv.Title), try_include("Description", _arrow3977, inv.Description), try_include("SubmissionDate", _arrow3979, inv.SubmissionDate), try_include("PublicReleaseDate", _arrow3981, inv.PublicReleaseDate), try_include_seq("OntologySourceReferences", _arrow3982, inv.OntologySourceReferences), try_include_seq("Publications", _arrow3983, inv.Publications), try_include_seq("Contacts", _arrow3984, inv.Contacts), try_include_seq("Assays", _arrow3985, inv.Assays), try_include_seq("Studies", _arrow3986, inv.Studies), try_include_seq("RegisteredStudyIdentifiers", _arrow3988, inv.RegisteredStudyIdentifiers), try_include_seq("Comments", _arrow3989, inv.Comments)]))
103
+ class ObjectExpr3990(IEncodable):
104
+ def Encode(self, helpers_6: IEncoderHelpers_1[Any], inv: Any=inv) -> Any:
105
+ def mapping_1(tupled_arg_1: tuple[str, IEncodable]) -> tuple[str, __A_]:
106
+ return (tupled_arg_1[0], tupled_arg_1[1].Encode(helpers_6))
107
+
108
+ arg: IEnumerable_1[tuple[str, __A_]] = map_1(mapping_1, values)
109
+ return helpers_6.encode_object(arg)
110
+
111
+ return ObjectExpr3990()
112
+
113
+
114
+ def _arrow4004(get: IGetters) -> ArcInvestigation:
115
+ def _arrow3991(__unit: None=None) -> str:
116
+ object_arg: IRequiredGetter = get.Required
117
+ return object_arg.Field("Identifier", string)
118
+
119
+ def _arrow3992(__unit: None=None) -> str | None:
120
+ object_arg_1: IOptionalGetter = get.Optional
121
+ return object_arg_1.Field("Title", string)
122
+
123
+ def _arrow3993(__unit: None=None) -> str | None:
124
+ object_arg_2: IOptionalGetter = get.Optional
125
+ return object_arg_2.Field("Description", string)
126
+
127
+ def _arrow3994(__unit: None=None) -> str | None:
128
+ object_arg_3: IOptionalGetter = get.Optional
129
+ return object_arg_3.Field("SubmissionDate", string)
130
+
131
+ def _arrow3995(__unit: None=None) -> str | None:
132
+ object_arg_4: IOptionalGetter = get.Optional
133
+ return object_arg_4.Field("PublicReleaseDate", string)
134
+
135
+ def _arrow3996(__unit: None=None) -> Array[OntologySourceReference] | None:
136
+ arg_11: Decoder_1[Array[OntologySourceReference]] = resize_array(decoder_3)
137
+ object_arg_5: IOptionalGetter = get.Optional
138
+ return object_arg_5.Field("OntologySourceReferences", arg_11)
139
+
140
+ def _arrow3997(__unit: None=None) -> Array[Publication] | None:
141
+ arg_13: Decoder_1[Array[Publication]] = resize_array(decoder_4)
142
+ object_arg_6: IOptionalGetter = get.Optional
143
+ return object_arg_6.Field("Publications", arg_13)
144
+
145
+ def _arrow3998(__unit: None=None) -> Array[Person] | None:
146
+ arg_15: Decoder_1[Array[Person]] = resize_array(decoder_5)
147
+ object_arg_7: IOptionalGetter = get.Optional
148
+ return object_arg_7.Field("Contacts", arg_15)
149
+
150
+ def _arrow3999(__unit: None=None) -> Array[ArcAssay] | None:
151
+ arg_17: Decoder_1[Array[ArcAssay]] = resize_array(decoder_6)
152
+ object_arg_8: IOptionalGetter = get.Optional
153
+ return object_arg_8.Field("Assays", arg_17)
154
+
155
+ def _arrow4001(__unit: None=None) -> Array[ArcStudy] | None:
156
+ arg_19: Decoder_1[Array[ArcStudy]] = resize_array(decoder_7)
157
+ object_arg_9: IOptionalGetter = get.Optional
158
+ return object_arg_9.Field("Studies", arg_19)
159
+
160
+ def _arrow4002(__unit: None=None) -> Array[str] | None:
161
+ arg_21: Decoder_1[Array[str]] = resize_array(string)
162
+ object_arg_10: IOptionalGetter = get.Optional
163
+ return object_arg_10.Field("RegisteredStudyIdentifiers", arg_21)
164
+
165
+ def _arrow4003(__unit: None=None) -> Array[Comment] | None:
166
+ arg_23: Decoder_1[Array[Comment]] = resize_array(decoder_8)
167
+ object_arg_11: IOptionalGetter = get.Optional
168
+ return object_arg_11.Field("Comments", arg_23)
169
+
170
+ return ArcInvestigation(_arrow3991(), _arrow3992(), _arrow3993(), _arrow3994(), _arrow3995(), _arrow3996(), _arrow3997(), _arrow3998(), _arrow3999(), _arrow4001(), None, None, _arrow4002(), _arrow4003())
171
+
172
+
173
+ decoder: Decoder_1[ArcInvestigation] = object(_arrow4004)
174
+
175
+ def encoder_compressed(string_table: Any, oa_table: Any, cell_table: Any, inv: ArcInvestigation) -> IEncodable:
176
+ def chooser(tupled_arg: tuple[str, IEncodable | None], string_table: Any=string_table, oa_table: Any=oa_table, cell_table: Any=cell_table, inv: Any=inv) -> tuple[str, IEncodable] | None:
177
+ def mapping(v_1: IEncodable, tupled_arg: Any=tupled_arg) -> tuple[str, IEncodable]:
178
+ return (tupled_arg[0], v_1)
179
+
180
+ return map(mapping, tupled_arg[1])
181
+
182
+ def _arrow4010(__unit: None=None, string_table: Any=string_table, oa_table: Any=oa_table, cell_table: Any=cell_table, inv: Any=inv) -> IEncodable:
183
+ value: str = inv.Identifier
184
+ class ObjectExpr4009(IEncodable):
185
+ def Encode(self, helpers: IEncoderHelpers_1[Any]) -> Any:
186
+ return helpers.encode_string(value)
187
+
188
+ return ObjectExpr4009()
189
+
190
+ def _arrow4012(value_1: str, string_table: Any=string_table, oa_table: Any=oa_table, cell_table: Any=cell_table, inv: Any=inv) -> IEncodable:
191
+ class ObjectExpr4011(IEncodable):
192
+ def Encode(self, helpers_1: IEncoderHelpers_1[Any]) -> Any:
193
+ return helpers_1.encode_string(value_1)
194
+
195
+ return ObjectExpr4011()
196
+
197
+ def _arrow4014(value_3: str, string_table: Any=string_table, oa_table: Any=oa_table, cell_table: Any=cell_table, inv: Any=inv) -> IEncodable:
198
+ class ObjectExpr4013(IEncodable):
199
+ def Encode(self, helpers_2: IEncoderHelpers_1[Any]) -> Any:
200
+ return helpers_2.encode_string(value_3)
201
+
202
+ return ObjectExpr4013()
203
+
204
+ def _arrow4016(value_5: str, string_table: Any=string_table, oa_table: Any=oa_table, cell_table: Any=cell_table, inv: Any=inv) -> IEncodable:
205
+ class ObjectExpr4015(IEncodable):
206
+ def Encode(self, helpers_3: IEncoderHelpers_1[Any]) -> Any:
207
+ return helpers_3.encode_string(value_5)
208
+
209
+ return ObjectExpr4015()
210
+
211
+ def _arrow4018(value_7: str, string_table: Any=string_table, oa_table: Any=oa_table, cell_table: Any=cell_table, inv: Any=inv) -> IEncodable:
212
+ class ObjectExpr4017(IEncodable):
213
+ def Encode(self, helpers_4: IEncoderHelpers_1[Any]) -> Any:
214
+ return helpers_4.encode_string(value_7)
215
+
216
+ return ObjectExpr4017()
217
+
218
+ def _arrow4019(osr: OntologySourceReference, string_table: Any=string_table, oa_table: Any=oa_table, cell_table: Any=cell_table, inv: Any=inv) -> IEncodable:
219
+ return encoder_1(osr)
220
+
221
+ def _arrow4020(oa: Publication, string_table: Any=string_table, oa_table: Any=oa_table, cell_table: Any=cell_table, inv: Any=inv) -> IEncodable:
222
+ return encoder_2(oa)
223
+
224
+ def _arrow4021(person: Person, string_table: Any=string_table, oa_table: Any=oa_table, cell_table: Any=cell_table, inv: Any=inv) -> IEncodable:
225
+ return encoder_3(person)
226
+
227
+ def _arrow4022(assay: ArcAssay, string_table: Any=string_table, oa_table: Any=oa_table, cell_table: Any=cell_table, inv: Any=inv) -> IEncodable:
228
+ return encoder_compressed_1(string_table, oa_table, cell_table, assay)
229
+
230
+ def _arrow4023(study: ArcStudy, string_table: Any=string_table, oa_table: Any=oa_table, cell_table: Any=cell_table, inv: Any=inv) -> IEncodable:
231
+ return encoder_compressed_2(string_table, oa_table, cell_table, study)
232
+
233
+ def _arrow4025(value_9: str, string_table: Any=string_table, oa_table: Any=oa_table, cell_table: Any=cell_table, inv: Any=inv) -> IEncodable:
234
+ class ObjectExpr4024(IEncodable):
235
+ def Encode(self, helpers_5: IEncoderHelpers_1[Any]) -> Any:
236
+ return helpers_5.encode_string(value_9)
237
+
238
+ return ObjectExpr4024()
239
+
240
+ def _arrow4026(comment: Comment, string_table: Any=string_table, oa_table: Any=oa_table, cell_table: Any=cell_table, inv: Any=inv) -> IEncodable:
241
+ return encoder_6(comment)
242
+
243
+ values: FSharpList[tuple[str, IEncodable]] = choose(chooser, of_array([("Identifier", _arrow4010()), try_include("Title", _arrow4012, inv.Title), try_include("Description", _arrow4014, inv.Description), try_include("SubmissionDate", _arrow4016, inv.SubmissionDate), try_include("PublicReleaseDate", _arrow4018, inv.PublicReleaseDate), try_include_seq("OntologySourceReferences", _arrow4019, inv.OntologySourceReferences), try_include_seq("Publications", _arrow4020, inv.Publications), try_include_seq("Contacts", _arrow4021, inv.Contacts), try_include_seq("Assays", _arrow4022, inv.Assays), try_include_seq("Studies", _arrow4023, inv.Studies), try_include_seq("RegisteredStudyIdentifiers", _arrow4025, inv.RegisteredStudyIdentifiers), try_include_seq("Comments", _arrow4026, inv.Comments)]))
244
+ class ObjectExpr4028(IEncodable):
245
+ def Encode(self, helpers_6: IEncoderHelpers_1[Any], string_table: Any=string_table, oa_table: Any=oa_table, cell_table: Any=cell_table, inv: Any=inv) -> Any:
246
+ def mapping_1(tupled_arg_1: tuple[str, IEncodable]) -> tuple[str, __A_]:
247
+ return (tupled_arg_1[0], tupled_arg_1[1].Encode(helpers_6))
248
+
249
+ arg: IEnumerable_1[tuple[str, __A_]] = map_1(mapping_1, values)
250
+ return helpers_6.encode_object(arg)
251
+
252
+ return ObjectExpr4028()
253
+
254
+
255
+ def decoder_compressed(string_table: Array[str], oa_table: Array[OntologyAnnotation], cell_table: Array[CompositeCell]) -> Decoder_1[ArcInvestigation]:
256
+ def _arrow4041(get: IGetters, string_table: Any=string_table, oa_table: Any=oa_table, cell_table: Any=cell_table) -> ArcInvestigation:
257
+ def _arrow4029(__unit: None=None) -> str:
258
+ object_arg: IRequiredGetter = get.Required
259
+ return object_arg.Field("Identifier", string)
260
+
261
+ def _arrow4030(__unit: None=None) -> str | None:
262
+ object_arg_1: IOptionalGetter = get.Optional
263
+ return object_arg_1.Field("Title", string)
264
+
265
+ def _arrow4031(__unit: None=None) -> str | None:
266
+ object_arg_2: IOptionalGetter = get.Optional
267
+ return object_arg_2.Field("Description", string)
268
+
269
+ def _arrow4032(__unit: None=None) -> str | None:
270
+ object_arg_3: IOptionalGetter = get.Optional
271
+ return object_arg_3.Field("SubmissionDate", string)
272
+
273
+ def _arrow4033(__unit: None=None) -> str | None:
274
+ object_arg_4: IOptionalGetter = get.Optional
275
+ return object_arg_4.Field("PublicReleaseDate", string)
276
+
277
+ def _arrow4034(__unit: None=None) -> Array[OntologySourceReference] | None:
278
+ arg_11: Decoder_1[Array[OntologySourceReference]] = resize_array(decoder_3)
279
+ object_arg_5: IOptionalGetter = get.Optional
280
+ return object_arg_5.Field("OntologySourceReferences", arg_11)
281
+
282
+ def _arrow4035(__unit: None=None) -> Array[Publication] | None:
283
+ arg_13: Decoder_1[Array[Publication]] = resize_array(decoder_4)
284
+ object_arg_6: IOptionalGetter = get.Optional
285
+ return object_arg_6.Field("Publications", arg_13)
286
+
287
+ def _arrow4036(__unit: None=None) -> Array[Person] | None:
288
+ arg_15: Decoder_1[Array[Person]] = resize_array(decoder_5)
289
+ object_arg_7: IOptionalGetter = get.Optional
290
+ return object_arg_7.Field("Contacts", arg_15)
291
+
292
+ def _arrow4037(__unit: None=None) -> Array[ArcAssay] | None:
293
+ arg_17: Decoder_1[Array[ArcAssay]] = resize_array(decoder_compressed_1(string_table, oa_table, cell_table))
294
+ object_arg_8: IOptionalGetter = get.Optional
295
+ return object_arg_8.Field("Assays", arg_17)
296
+
297
+ def _arrow4038(__unit: None=None) -> Array[ArcStudy] | None:
298
+ arg_19: Decoder_1[Array[ArcStudy]] = resize_array(decoder_compressed_2(string_table, oa_table, cell_table))
299
+ object_arg_9: IOptionalGetter = get.Optional
300
+ return object_arg_9.Field("Studies", arg_19)
301
+
302
+ def _arrow4039(__unit: None=None) -> Array[str] | None:
303
+ arg_21: Decoder_1[Array[str]] = resize_array(string)
304
+ object_arg_10: IOptionalGetter = get.Optional
305
+ return object_arg_10.Field("RegisteredStudyIdentifiers", arg_21)
306
+
307
+ def _arrow4040(__unit: None=None) -> Array[Comment] | None:
308
+ arg_23: Decoder_1[Array[Comment]] = resize_array(decoder_8)
309
+ object_arg_11: IOptionalGetter = get.Optional
310
+ return object_arg_11.Field("Comments", arg_23)
311
+
312
+ return ArcInvestigation(_arrow4029(), _arrow4030(), _arrow4031(), _arrow4032(), _arrow4033(), _arrow4034(), _arrow4035(), _arrow4036(), _arrow4037(), _arrow4038(), None, None, _arrow4039(), _arrow4040())
313
+
314
+ return object(_arrow4041)
315
+
316
+
317
+ def ROCrate_genID(i: ArcInvestigation) -> str:
318
+ return "./"
319
+
320
+
321
+ def ROCrate_encoder(oa: ArcInvestigation) -> IEncodable:
322
+ def chooser(tupled_arg: tuple[str, IEncodable | None], oa: Any=oa) -> tuple[str, IEncodable] | None:
323
+ def mapping(v_1: IEncodable, tupled_arg: Any=tupled_arg) -> tuple[str, IEncodable]:
324
+ return (tupled_arg[0], v_1)
325
+
326
+ return map(mapping, tupled_arg[1])
327
+
328
+ def _arrow4045(__unit: None=None, oa: Any=oa) -> IEncodable:
329
+ value: str = ROCrate_genID(oa)
330
+ class ObjectExpr4044(IEncodable):
331
+ def Encode(self, helpers: IEncoderHelpers_1[Any]) -> Any:
332
+ return helpers.encode_string(value)
333
+
334
+ return ObjectExpr4044()
335
+
336
+ class ObjectExpr4046(IEncodable):
337
+ def Encode(self, helpers_1: IEncoderHelpers_1[Any], oa: Any=oa) -> Any:
338
+ return helpers_1.encode_string("Investigation")
339
+
340
+ class ObjectExpr4047(IEncodable):
341
+ def Encode(self, helpers_2: IEncoderHelpers_1[Any], oa: Any=oa) -> Any:
342
+ return helpers_2.encode_string("Investigation")
343
+
344
+ def _arrow4049(__unit: None=None, oa: Any=oa) -> IEncodable:
345
+ value_3: str = oa.Identifier
346
+ class ObjectExpr4048(IEncodable):
347
+ def Encode(self, helpers_3: IEncoderHelpers_1[Any]) -> Any:
348
+ return helpers_3.encode_string(value_3)
349
+
350
+ return ObjectExpr4048()
351
+
352
+ def _arrow4051(__unit: None=None, oa: Any=oa) -> IEncodable:
353
+ value_4: str = ArcInvestigation.FileName()
354
+ class ObjectExpr4050(IEncodable):
355
+ def Encode(self, helpers_4: IEncoderHelpers_1[Any]) -> Any:
356
+ return helpers_4.encode_string(value_4)
357
+
358
+ return ObjectExpr4050()
359
+
360
+ def _arrow4053(value_5: str, oa: Any=oa) -> IEncodable:
361
+ class ObjectExpr4052(IEncodable):
362
+ def Encode(self, helpers_5: IEncoderHelpers_1[Any]) -> Any:
363
+ return helpers_5.encode_string(value_5)
364
+
365
+ return ObjectExpr4052()
366
+
367
+ def _arrow4055(value_7: str, oa: Any=oa) -> IEncodable:
368
+ class ObjectExpr4054(IEncodable):
369
+ def Encode(self, helpers_6: IEncoderHelpers_1[Any]) -> Any:
370
+ return helpers_6.encode_string(value_7)
371
+
372
+ return ObjectExpr4054()
373
+
374
+ def _arrow4057(value_9: str, oa: Any=oa) -> IEncodable:
375
+ class ObjectExpr4056(IEncodable):
376
+ def Encode(self, helpers_7: IEncoderHelpers_1[Any]) -> Any:
377
+ return helpers_7.encode_string(value_9)
378
+
379
+ return ObjectExpr4056()
380
+
381
+ def _arrow4060(__unit: None=None, oa: Any=oa) -> IEncodable:
382
+ def _arrow4058(__unit: None=None) -> str:
383
+ copy_of_struct: Any = today()
384
+ return to_string(copy_of_struct, "yyyy-MM-dd")
385
+
386
+ value_12: str = default_arg(oa.PublicReleaseDate, _arrow4058())
387
+ class ObjectExpr4059(IEncodable):
388
+ def Encode(self, helpers_8: IEncoderHelpers_1[Any]) -> Any:
389
+ return helpers_8.encode_string(value_12)
390
+
391
+ return ObjectExpr4059()
392
+
393
+ def _arrow4061(osr: OntologySourceReference, oa: Any=oa) -> IEncodable:
394
+ return ROCrate_encoder_1(osr)
395
+
396
+ def _arrow4062(oa_1: Publication, oa: Any=oa) -> IEncodable:
397
+ return ROCrate_encoder_2(oa_1)
398
+
399
+ def _arrow4063(oa_2: Person, oa: Any=oa) -> IEncodable:
400
+ return ROCrate_encoder_3(oa_2)
401
+
402
+ def _arrow4064(s: ArcStudy, oa: Any=oa) -> IEncodable:
403
+ return ROCrate_encoder_4(None, s)
404
+
405
+ def _arrow4065(comment: Comment, oa: Any=oa) -> IEncodable:
406
+ return ROCrate_encoder_5(comment)
407
+
408
+ values: FSharpList[tuple[str, IEncodable]] = choose(chooser, of_array([("@id", _arrow4045()), ("@type", ObjectExpr4046()), ("additionalType", ObjectExpr4047()), ("identifier", _arrow4049()), ("filename", _arrow4051()), try_include("title", _arrow4053, oa.Title), try_include("description", _arrow4055, oa.Description), try_include("submissionDate", _arrow4057, oa.SubmissionDate), ("publicReleaseDate", _arrow4060()), try_include_seq("ontologySourceReferences", _arrow4061, oa.OntologySourceReferences), try_include_seq("publications", _arrow4062, oa.Publications), try_include_seq("people", _arrow4063, oa.Contacts), try_include_seq("studies", _arrow4064, oa.Studies), try_include_seq("comments", _arrow4065, oa.Comments), ("@context", context_jsonvalue)]))
409
+ class ObjectExpr4066(IEncodable):
410
+ def Encode(self, helpers_9: IEncoderHelpers_1[Any], oa: Any=oa) -> Any:
411
+ def mapping_1(tupled_arg_1: tuple[str, IEncodable]) -> tuple[str, __A_]:
412
+ return (tupled_arg_1[0], tupled_arg_1[1].Encode(helpers_9))
413
+
414
+ arg: IEnumerable_1[tuple[str, __A_]] = map_1(mapping_1, values)
415
+ return helpers_9.encode_object(arg)
416
+
417
+ return ObjectExpr4066()
418
+
419
+
420
+ def _arrow4078(get: IGetters) -> ArcInvestigation:
421
+ identifier: str
422
+ match_value: str | None
423
+ object_arg: IOptionalGetter = get.Optional
424
+ match_value = object_arg.Field("identifier", string)
425
+ identifier = create_missing_identifier() if (match_value is None) else match_value
426
+ def _arrow4067(__unit: None=None) -> FSharpList[tuple[ArcStudy, FSharpList[ArcAssay]]] | None:
427
+ arg_3: Decoder_1[FSharpList[tuple[ArcStudy, FSharpList[ArcAssay]]]] = list_1_1(ROCrate_decoder_1)
428
+ object_arg_1: IOptionalGetter = get.Optional
429
+ return object_arg_1.Field("studies", arg_3)
430
+
431
+ pattern_input: tuple[FSharpList[ArcStudy], FSharpList[FSharpList[ArcAssay]]] = unzip(default_arg(_arrow4067(), empty()))
432
+ studies_raw: FSharpList[ArcStudy] = pattern_input[0]
433
+ def projection(a: ArcAssay) -> str:
434
+ return a.Identifier
435
+
436
+ class ObjectExpr4069:
437
+ @property
438
+ def Equals(self) -> Callable[[str, str], bool]:
439
+ def _arrow4068(x: str, y: str) -> bool:
440
+ return x == y
441
+
442
+ return _arrow4068
443
+
444
+ @property
445
+ def GetHashCode(self) -> Callable[[str], int]:
446
+ return string_hash
447
+
448
+ assays: Array[ArcAssay] = list(distinct_by(projection, concat(pattern_input[1]), ObjectExpr4069()))
449
+ studies: Array[ArcStudy] = list(studies_raw)
450
+ def mapping(a_1: ArcStudy) -> str:
451
+ return a_1.Identifier
452
+
453
+ study_identifiers: Array[str] = list(map_1(mapping, studies_raw))
454
+ def _arrow4070(__unit: None=None) -> str | None:
455
+ object_arg_2: IOptionalGetter = get.Optional
456
+ return object_arg_2.Field("title", string)
457
+
458
+ def _arrow4071(__unit: None=None) -> str | None:
459
+ object_arg_3: IOptionalGetter = get.Optional
460
+ return object_arg_3.Field("description", string)
461
+
462
+ def _arrow4072(__unit: None=None) -> str | None:
463
+ object_arg_4: IOptionalGetter = get.Optional
464
+ return object_arg_4.Field("submissionDate", string)
465
+
466
+ def _arrow4073(__unit: None=None) -> str | None:
467
+ object_arg_5: IOptionalGetter = get.Optional
468
+ return object_arg_5.Field("publicReleaseDate", string)
469
+
470
+ def _arrow4074(__unit: None=None) -> Array[OntologySourceReference] | None:
471
+ arg_13: Decoder_1[Array[OntologySourceReference]] = resize_array(ROCrate_decoder_2)
472
+ object_arg_6: IOptionalGetter = get.Optional
473
+ return object_arg_6.Field("ontologySourceReferences", arg_13)
474
+
475
+ def _arrow4075(__unit: None=None) -> Array[Publication] | None:
476
+ arg_15: Decoder_1[Array[Publication]] = resize_array(ROCrate_decoder_3)
477
+ object_arg_7: IOptionalGetter = get.Optional
478
+ return object_arg_7.Field("publications", arg_15)
479
+
480
+ def _arrow4076(__unit: None=None) -> Array[Person] | None:
481
+ arg_17: Decoder_1[Array[Person]] = resize_array(ROCrate_decoder_4)
482
+ object_arg_8: IOptionalGetter = get.Optional
483
+ return object_arg_8.Field("people", arg_17)
484
+
485
+ def _arrow4077(__unit: None=None) -> Array[Comment] | None:
486
+ arg_19: Decoder_1[Array[Comment]] = resize_array(ROCrate_decoder_5)
487
+ object_arg_9: IOptionalGetter = get.Optional
488
+ return object_arg_9.Field("comments", arg_19)
489
+
490
+ return ArcInvestigation(identifier, _arrow4070(), _arrow4071(), _arrow4072(), _arrow4073(), _arrow4074(), _arrow4075(), _arrow4076(), assays, studies, None, None, study_identifiers, _arrow4077())
491
+
492
+
493
+ ROCrate_decoder: Decoder_1[ArcInvestigation] = object(_arrow4078)
494
+
495
+ def ROCrate_encodeRoCrate(oa: ArcInvestigation) -> IEncodable:
496
+ def chooser(tupled_arg: tuple[str, IEncodable | None], oa: Any=oa) -> tuple[str, IEncodable] | None:
497
+ def mapping(v_1: IEncodable, tupled_arg: Any=tupled_arg) -> tuple[str, IEncodable]:
498
+ return (tupled_arg[0], v_1)
499
+
500
+ return map(mapping, tupled_arg[1])
501
+
502
+ def _arrow4082(value: str, oa: Any=oa) -> IEncodable:
503
+ class ObjectExpr4081(IEncodable):
504
+ def Encode(self, helpers: IEncoderHelpers_1[Any]) -> Any:
505
+ return helpers.encode_string(value)
506
+
507
+ return ObjectExpr4081()
508
+
509
+ def _arrow4084(value_2: str, oa: Any=oa) -> IEncodable:
510
+ class ObjectExpr4083(IEncodable):
511
+ def Encode(self, helpers_1: IEncoderHelpers_1[Any]) -> Any:
512
+ return helpers_1.encode_string(value_2)
513
+
514
+ return ObjectExpr4083()
515
+
516
+ def _arrow4085(oa_1: ArcInvestigation, oa: Any=oa) -> IEncodable:
517
+ return ROCrate_encoder(oa_1)
518
+
519
+ values: FSharpList[tuple[str, IEncodable]] = choose(chooser, of_array([try_include("@type", _arrow4082, "CreativeWork"), try_include("@id", _arrow4084, "ro-crate-metadata.json"), try_include("about", _arrow4085, oa), ("conformsTo", conforms_to_jsonvalue), ("@context", context_jsonvalue_1)]))
520
+ class ObjectExpr4086(IEncodable):
521
+ def Encode(self, helpers_2: IEncoderHelpers_1[Any], oa: Any=oa) -> Any:
522
+ def mapping_1(tupled_arg_1: tuple[str, IEncodable]) -> tuple[str, __A_]:
523
+ return (tupled_arg_1[0], tupled_arg_1[1].Encode(helpers_2))
524
+
525
+ arg: IEnumerable_1[tuple[str, __A_]] = map_1(mapping_1, values)
526
+ return helpers_2.encode_object(arg)
527
+
528
+ return ObjectExpr4086()
529
+
530
+
531
+ ISAJson_allowedFields: FSharpList[str] = of_array(["@id", "filename", "identifier", "title", "description", "submissionDate", "publicReleaseDate", "ontologySourceReferences", "publications", "people", "studies", "comments", "@type", "@context"])
532
+
533
+ def ISAJson_encoder(id_map: Any | None, inv: ArcInvestigation) -> IEncodable:
534
+ def chooser(tupled_arg: tuple[str, IEncodable | None], id_map: Any=id_map, inv: Any=inv) -> tuple[str, IEncodable] | None:
535
+ def mapping(v_1: IEncodable, tupled_arg: Any=tupled_arg) -> tuple[str, IEncodable]:
536
+ return (tupled_arg[0], v_1)
537
+
538
+ return map(mapping, tupled_arg[1])
539
+
540
+ def _arrow4090(__unit: None=None, id_map: Any=id_map, inv: Any=inv) -> IEncodable:
541
+ value: str = ROCrate_genID(inv)
542
+ class ObjectExpr4089(IEncodable):
543
+ def Encode(self, helpers: IEncoderHelpers_1[Any]) -> Any:
544
+ return helpers.encode_string(value)
545
+
546
+ return ObjectExpr4089()
547
+
548
+ def _arrow4092(__unit: None=None, id_map: Any=id_map, inv: Any=inv) -> IEncodable:
549
+ value_1: str = ArcInvestigation.FileName()
550
+ class ObjectExpr4091(IEncodable):
551
+ def Encode(self, helpers_1: IEncoderHelpers_1[Any]) -> Any:
552
+ return helpers_1.encode_string(value_1)
553
+
554
+ return ObjectExpr4091()
555
+
556
+ def _arrow4094(__unit: None=None, id_map: Any=id_map, inv: Any=inv) -> IEncodable:
557
+ value_2: str = inv.Identifier
558
+ class ObjectExpr4093(IEncodable):
559
+ def Encode(self, helpers_2: IEncoderHelpers_1[Any]) -> Any:
560
+ return helpers_2.encode_string(value_2)
561
+
562
+ return ObjectExpr4093()
563
+
564
+ def _arrow4096(value_3: str, id_map: Any=id_map, inv: Any=inv) -> IEncodable:
565
+ class ObjectExpr4095(IEncodable):
566
+ def Encode(self, helpers_3: IEncoderHelpers_1[Any]) -> Any:
567
+ return helpers_3.encode_string(value_3)
568
+
569
+ return ObjectExpr4095()
570
+
571
+ def _arrow4098(value_5: str, id_map: Any=id_map, inv: Any=inv) -> IEncodable:
572
+ class ObjectExpr4097(IEncodable):
573
+ def Encode(self, helpers_4: IEncoderHelpers_1[Any]) -> Any:
574
+ return helpers_4.encode_string(value_5)
575
+
576
+ return ObjectExpr4097()
577
+
578
+ def _arrow4100(value_7: str, id_map: Any=id_map, inv: Any=inv) -> IEncodable:
579
+ class ObjectExpr4099(IEncodable):
580
+ def Encode(self, helpers_5: IEncoderHelpers_1[Any]) -> Any:
581
+ return helpers_5.encode_string(value_7)
582
+
583
+ return ObjectExpr4099()
584
+
585
+ def _arrow4102(value_9: str, id_map: Any=id_map, inv: Any=inv) -> IEncodable:
586
+ class ObjectExpr4101(IEncodable):
587
+ def Encode(self, helpers_6: IEncoderHelpers_1[Any]) -> Any:
588
+ return helpers_6.encode_string(value_9)
589
+
590
+ return ObjectExpr4101()
591
+
592
+ def _arrow4103(osr: OntologySourceReference, id_map: Any=id_map, inv: Any=inv) -> IEncodable:
593
+ return ISAJson_encoder_1(id_map, osr)
594
+
595
+ def _arrow4104(oa: Publication, id_map: Any=id_map, inv: Any=inv) -> IEncodable:
596
+ return ISAJson_encoder_2(id_map, oa)
597
+
598
+ def _arrow4105(person: Person, id_map: Any=id_map, inv: Any=inv) -> IEncodable:
599
+ return ISAJson_encoder_3(id_map, person)
600
+
601
+ def _arrow4106(s: ArcStudy, id_map: Any=id_map, inv: Any=inv) -> IEncodable:
602
+ return ISAJson_encoder_4(id_map, None, s)
603
+
604
+ def _arrow4107(comment: Comment, id_map: Any=id_map, inv: Any=inv) -> IEncodable:
605
+ return ISAJson_encoder_5(id_map, comment)
606
+
607
+ values: FSharpList[tuple[str, IEncodable]] = choose(chooser, of_array([("@id", _arrow4090()), ("filename", _arrow4092()), ("identifier", _arrow4094()), try_include("title", _arrow4096, inv.Title), try_include("description", _arrow4098, inv.Description), try_include("submissionDate", _arrow4100, inv.SubmissionDate), try_include("publicReleaseDate", _arrow4102, inv.PublicReleaseDate), try_include_seq("ontologySourceReferences", _arrow4103, inv.OntologySourceReferences), try_include_seq("publications", _arrow4104, inv.Publications), try_include_seq("people", _arrow4105, inv.Contacts), try_include_seq("studies", _arrow4106, inv.Studies), try_include_seq("comments", _arrow4107, inv.Comments)]))
608
+ class ObjectExpr4108(IEncodable):
609
+ def Encode(self, helpers_7: IEncoderHelpers_1[Any], id_map: Any=id_map, inv: Any=inv) -> Any:
610
+ def mapping_1(tupled_arg_1: tuple[str, IEncodable]) -> tuple[str, __A_]:
611
+ return (tupled_arg_1[0], tupled_arg_1[1].Encode(helpers_7))
612
+
613
+ arg: IEnumerable_1[tuple[str, __A_]] = map_1(mapping_1, values)
614
+ return helpers_7.encode_object(arg)
615
+
616
+ return ObjectExpr4108()
617
+
618
+
619
+ def _arrow4120(get: IGetters) -> ArcInvestigation:
620
+ identifer: str
621
+ match_value: str | None
622
+ object_arg: IOptionalGetter = get.Optional
623
+ match_value = object_arg.Field("identifier", string)
624
+ identifer = create_missing_identifier() if (match_value is None) else match_value
625
+ def _arrow4109(__unit: None=None) -> FSharpList[tuple[ArcStudy, FSharpList[ArcAssay]]] | None:
626
+ arg_3: Decoder_1[FSharpList[tuple[ArcStudy, FSharpList[ArcAssay]]]] = list_1_1(ISAJson_decoder_1)
627
+ object_arg_1: IOptionalGetter = get.Optional
628
+ return object_arg_1.Field("studies", arg_3)
629
+
630
+ pattern_input: tuple[FSharpList[ArcStudy], FSharpList[FSharpList[ArcAssay]]] = unzip(default_arg(_arrow4109(), empty()))
631
+ studies_raw: FSharpList[ArcStudy] = pattern_input[0]
632
+ def projection(a: ArcAssay) -> str:
633
+ return a.Identifier
634
+
635
+ class ObjectExpr4111:
636
+ @property
637
+ def Equals(self) -> Callable[[str, str], bool]:
638
+ def _arrow4110(x: str, y: str) -> bool:
639
+ return x == y
640
+
641
+ return _arrow4110
642
+
643
+ @property
644
+ def GetHashCode(self) -> Callable[[str], int]:
645
+ return string_hash
646
+
647
+ assays: Array[ArcAssay] = list(distinct_by(projection, concat(pattern_input[1]), ObjectExpr4111()))
648
+ studies: Array[ArcStudy] = list(studies_raw)
649
+ def mapping(a_1: ArcStudy) -> str:
650
+ return a_1.Identifier
651
+
652
+ study_identifiers: Array[str] = list(map_1(mapping, studies_raw))
653
+ def _arrow4112(__unit: None=None) -> str | None:
654
+ object_arg_2: IOptionalGetter = get.Optional
655
+ return object_arg_2.Field("title", string)
656
+
657
+ def _arrow4113(__unit: None=None) -> str | None:
658
+ object_arg_3: IOptionalGetter = get.Optional
659
+ return object_arg_3.Field("description", string)
660
+
661
+ def _arrow4114(__unit: None=None) -> str | None:
662
+ object_arg_4: IOptionalGetter = get.Optional
663
+ return object_arg_4.Field("submissionDate", string)
664
+
665
+ def _arrow4115(__unit: None=None) -> str | None:
666
+ object_arg_5: IOptionalGetter = get.Optional
667
+ return object_arg_5.Field("publicReleaseDate", string)
668
+
669
+ def _arrow4116(__unit: None=None) -> Array[OntologySourceReference] | None:
670
+ arg_13: Decoder_1[Array[OntologySourceReference]] = resize_array(ISAJson_decoder_2)
671
+ object_arg_6: IOptionalGetter = get.Optional
672
+ return object_arg_6.Field("ontologySourceReferences", arg_13)
673
+
674
+ def _arrow4117(__unit: None=None) -> Array[Publication] | None:
675
+ arg_15: Decoder_1[Array[Publication]] = resize_array(ISAJson_decoder_3)
676
+ object_arg_7: IOptionalGetter = get.Optional
677
+ return object_arg_7.Field("publications", arg_15)
678
+
679
+ def _arrow4118(__unit: None=None) -> Array[Person] | None:
680
+ arg_17: Decoder_1[Array[Person]] = resize_array(ISAJson_decoder_4)
681
+ object_arg_8: IOptionalGetter = get.Optional
682
+ return object_arg_8.Field("people", arg_17)
683
+
684
+ def _arrow4119(__unit: None=None) -> Array[Comment] | None:
685
+ arg_19: Decoder_1[Array[Comment]] = resize_array(ISAJson_decoder_5)
686
+ object_arg_9: IOptionalGetter = get.Optional
687
+ return object_arg_9.Field("comments", arg_19)
688
+
689
+ return ArcInvestigation(identifer, _arrow4112(), _arrow4113(), _arrow4114(), _arrow4115(), _arrow4116(), _arrow4117(), _arrow4118(), assays, studies, None, None, study_identifiers, _arrow4119())
690
+
691
+
692
+ ISAJson_decoder: Decoder_1[ArcInvestigation] = Decode_objectNoAdditionalProperties(ISAJson_allowedFields, _arrow4120)
693
+
694
+ __all__ = ["encoder", "decoder", "encoder_compressed", "decoder_compressed", "ROCrate_genID", "ROCrate_encoder", "ROCrate_decoder", "ROCrate_encodeRoCrate", "ISAJson_allowedFields", "ISAJson_encoder", "ISAJson_decoder"]
695
+