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,43 @@
1
+ from __future__ import annotations
2
+ from ..fable_modules.fable_library.seq import (try_pick, for_all)
3
+ from ..fable_modules.fable_library.string_ import (to_fail, printf)
4
+ from ..fable_modules.fable_library.types import Array
5
+ from ..fable_modules.fs_spreadsheet.fs_workbook import FsWorkbook
6
+ from ..fable_modules.fs_spreadsheet.fs_worksheet import FsWorksheet
7
+ from ..Core.datamap import Datamap
8
+ from .DatamapTable.datamap_table import (try_from_fs_worksheet, to_fs_worksheet)
9
+
10
+ def from_fs_workbook(doc: FsWorkbook) -> Datamap:
11
+ try:
12
+ worksheets: Array[FsWorksheet] = doc.GetWorksheets()
13
+ datamap_table: Datamap | None = try_pick(try_from_fs_worksheet, worksheets)
14
+ if datamap_table is None:
15
+ def sheet_is_empty(sheet: FsWorksheet) -> bool:
16
+ return sheet.CellCollection.Count == 0
17
+
18
+ if for_all(sheet_is_empty, worksheets):
19
+ return Datamap.init()
20
+
21
+ else:
22
+ raise Exception("No DatamapTable was found in any of the sheets of the workbook")
23
+
24
+
25
+ else:
26
+ return datamap_table
27
+
28
+
29
+ except Exception as err:
30
+ arg: str = str(err)
31
+ return to_fail(printf("Could not parse datamap: \n%s"))(arg)
32
+
33
+
34
+
35
+ def to_fs_workbook(datamap: Datamap) -> FsWorkbook:
36
+ doc: FsWorkbook = FsWorkbook()
37
+ sheet: FsWorksheet = to_fs_worksheet(datamap)
38
+ doc.AddWorksheet(sheet)
39
+ return doc
40
+
41
+
42
+ __all__ = ["from_fs_workbook", "to_fs_workbook"]
43
+
@@ -0,0 +1,460 @@
1
+ from __future__ import annotations
2
+ from collections.abc import Callable
3
+ from dataclasses import dataclass
4
+ from typing import Any
5
+ from ..fable_modules.fable_library.date import now
6
+ from ..fable_modules.fable_library.guid import parse
7
+ from ..fable_modules.fable_library.list import (of_array, FSharpList, empty, map, reverse, append as append_1, of_seq)
8
+ from ..fable_modules.fable_library.map_util import add_to_dict
9
+ from ..fable_modules.fable_library.option import to_array
10
+ from ..fable_modules.fable_library.reflection import (TypeInfo, class_type, string_type, list_type, record_type)
11
+ from ..fable_modules.fable_library.seq import (map as map_1, exists, head, append, singleton, delay, to_list, try_find, iterate_indexed, try_pick)
12
+ from ..fable_modules.fable_library.seq2 import List_distinct
13
+ from ..fable_modules.fable_library.string_ import (starts_with_exact, to_console, printf)
14
+ from ..fable_modules.fable_library.types import (FSharpException, Record, to_string, Array)
15
+ from ..fable_modules.fable_library.util import (IEnumerable_1, IEnumerator, string_hash, to_enumerable, get_enumerator, ignore)
16
+ from ..fable_modules.fs_spreadsheet.fs_row import FsRow
17
+ from ..fable_modules.fs_spreadsheet.fs_workbook import FsWorkbook
18
+ from ..fable_modules.fs_spreadsheet.fs_worksheet import FsWorksheet
19
+ from ..fable_modules.fs_spreadsheet.Tables.fs_table import FsTable
20
+ from ..Core.comment import (Remark, Comment, Comment_reflection)
21
+ from ..Core.conversion import Person_orcidKey
22
+ from ..Core.Helper.identifier import create_missing_identifier
23
+ from ..Core.ontology_annotation import OntologyAnnotation
24
+ from ..Core.person import Person
25
+ from ..Core.Table.arc_table import ArcTable
26
+ from ..Core.template import (Template, Organisation)
27
+ from .AnnotationTable.arc_table import (try_from_fs_worksheet, to_fs_worksheet)
28
+ from .Metadata.comment import Comment_fromString
29
+ from .Metadata.contacts import (from_rows as from_rows_1, to_rows as to_rows_1)
30
+ from .Metadata.ontology_annotation import (from_sparse_table, to_sparse_table, from_rows, to_rows)
31
+ from .Metadata.sparse_table import (SparseTable, SparseTable__TryGetValueDefault_5BAE6133, SparseTable_Create_Z2192E64B, SparseTable_FromRows_Z5579EC29, SparseTable_ToRows_759CAFC1, SparseRowModule_tryGetValueAt, SparseRowModule_fromValues, SparseRowModule_writeToSheet, SparseRowModule_fromFsRow, SparseRowModule_getAllValues, SparseRowModule_fromAllValues)
32
+
33
+ def _expr2035() -> TypeInfo:
34
+ return class_type("ARCtrl.Spreadsheet.TemplateReadError", None, TemplateReadError, class_type("System.Exception"))
35
+
36
+
37
+ class TemplateReadError(FSharpException):
38
+ def __init__(self, Data0: str) -> None:
39
+ super().__init__()
40
+ self.Data0 = Data0
41
+
42
+
43
+ TemplateReadError_reflection = _expr2035
44
+
45
+ Metadata_ER_labels: FSharpList[str] = of_array(["ER", "ER Term Accession Number", "ER Term Source REF"])
46
+
47
+ def Metadata_ER_fromSparseTable(matrix: SparseTable) -> FSharpList[OntologyAnnotation]:
48
+ return from_sparse_table("ER", "ER Term Source REF", "ER Term Accession Number", matrix)
49
+
50
+
51
+ def Metadata_ER_toSparseTable(designs: FSharpList[OntologyAnnotation]) -> SparseTable:
52
+ return to_sparse_table("ER", "ER Term Source REF", "ER Term Accession Number", designs)
53
+
54
+
55
+ def Metadata_ER_fromRows(prefix: str | None, rows: IEnumerator[IEnumerable_1[tuple[int, str]]]) -> tuple[str | None, FSharpList[OntologyAnnotation]]:
56
+ pattern_input: tuple[str | None, int, FSharpList[Remark], FSharpList[OntologyAnnotation]] = from_rows(prefix, "ER", "ER Term Source REF", "ER Term Accession Number", 0, rows)
57
+ return (pattern_input[0], pattern_input[3])
58
+
59
+
60
+ def Metadata_ER_toRows(prefix: str | None, designs: FSharpList[OntologyAnnotation]) -> IEnumerable_1[IEnumerable_1[tuple[int, str]]]:
61
+ return to_rows(prefix, "ER", "ER Term Source REF", "ER Term Accession Number", designs)
62
+
63
+
64
+ Metadata_Tags_labels: FSharpList[str] = of_array(["Tags", "Tags Term Accession Number", "Tags Term Source REF"])
65
+
66
+ def Metadata_Tags_fromSparseTable(matrix: SparseTable) -> FSharpList[OntologyAnnotation]:
67
+ return from_sparse_table("Tags", "Tags Term Source REF", "Tags Term Accession Number", matrix)
68
+
69
+
70
+ def Metadata_Tags_toSparseTable(designs: FSharpList[OntologyAnnotation]) -> SparseTable:
71
+ return to_sparse_table("Tags", "Tags Term Source REF", "Tags Term Accession Number", designs)
72
+
73
+
74
+ def Metadata_Tags_fromRows(prefix: str | None, rows: IEnumerator[IEnumerable_1[tuple[int, str]]]) -> tuple[str | None, FSharpList[OntologyAnnotation]]:
75
+ pattern_input: tuple[str | None, int, FSharpList[Remark], FSharpList[OntologyAnnotation]] = from_rows(prefix, "Tags", "Tags Term Source REF", "Tags Term Accession Number", 0, rows)
76
+ return (pattern_input[0], pattern_input[3])
77
+
78
+
79
+ def Metadata_Tags_toRows(prefix: str | None, designs: FSharpList[OntologyAnnotation]) -> IEnumerable_1[IEnumerable_1[tuple[int, str]]]:
80
+ return to_rows(prefix, "Tags", "Tags Term Source REF", "Tags Term Accession Number", designs)
81
+
82
+
83
+ def _expr2036() -> TypeInfo:
84
+ return record_type("ARCtrl.Spreadsheet.Metadata.Template.TemplateInfo", [], Metadata_Template_TemplateInfo, lambda: [("Id", string_type), ("Name", string_type), ("Version", string_type), ("Description", string_type), ("Organisation", string_type), ("Table", string_type), ("Comments", list_type(Comment_reflection()))])
85
+
86
+
87
+ @dataclass(eq = False, repr = False, slots = True)
88
+ class Metadata_Template_TemplateInfo(Record):
89
+ Id: str
90
+ Name: str
91
+ Version: str
92
+ Description: str
93
+ Organisation: str
94
+ Table: str
95
+ Comments: FSharpList[Comment]
96
+
97
+ Metadata_Template_TemplateInfo_reflection = _expr2036
98
+
99
+ def Metadata_Template_TemplateInfo_create(id: str, name: str, version: str, description: str, organisation: str, table: str, comments: FSharpList[Comment]) -> Metadata_Template_TemplateInfo:
100
+ return Metadata_Template_TemplateInfo(id, name, version, description, organisation, table, comments)
101
+
102
+
103
+ def Metadata_Template_TemplateInfo_get_empty(__unit: None=None) -> Metadata_Template_TemplateInfo:
104
+ return Metadata_Template_TemplateInfo_create("", "", "", "", "", "", empty())
105
+
106
+
107
+ def Metadata_Template_TemplateInfo_get_Labels(__unit: None=None) -> FSharpList[str]:
108
+ return of_array(["Id", "Name", "Version", "Description", "Organisation", "Table"])
109
+
110
+
111
+ def Metadata_Template_TemplateInfo_FromSparseTable_3ECCA699(matrix: SparseTable) -> Metadata_Template_TemplateInfo:
112
+ def mapping(k: str, matrix: Any=matrix) -> Comment:
113
+ return Comment_fromString(k, SparseTable__TryGetValueDefault_5BAE6133(matrix, "", (k, 0)))
114
+
115
+ comments: FSharpList[Comment] = map(mapping, matrix.CommentKeys)
116
+ return Metadata_Template_TemplateInfo_create(SparseTable__TryGetValueDefault_5BAE6133(matrix, create_missing_identifier(), ("Id", 0)), SparseTable__TryGetValueDefault_5BAE6133(matrix, "", ("Name", 0)), SparseTable__TryGetValueDefault_5BAE6133(matrix, "", ("Version", 0)), SparseTable__TryGetValueDefault_5BAE6133(matrix, "", ("Description", 0)), SparseTable__TryGetValueDefault_5BAE6133(matrix, "", ("Organisation", 0)), SparseTable__TryGetValueDefault_5BAE6133(matrix, "", ("Table", 0)), comments)
117
+
118
+
119
+ def Metadata_Template_TemplateInfo_ToSparseTable_48C39BE1(template: Template) -> SparseTable:
120
+ matrix: SparseTable = SparseTable_Create_Z2192E64B(None, Metadata_Template_TemplateInfo_get_Labels(), None, 2)
121
+ comment_keys: FSharpList[str] = empty()
122
+ def _arrow2037(__unit: None=None, template: Any=template) -> str:
123
+ copy_of_struct: str = template.Id
124
+ return str(copy_of_struct)
125
+
126
+ def _arrow2038(__unit: None=None, template: Any=template) -> str:
127
+ copy_of_struct_1: str = template.Id
128
+ return str(copy_of_struct_1)
129
+
130
+ add_to_dict(matrix.Matrix, ("Id", 1), "" if starts_with_exact(_arrow2037(), "MISSING_IDENTIFIER_") else _arrow2038())
131
+ add_to_dict(matrix.Matrix, ("Name", 1), template.Name)
132
+ add_to_dict(matrix.Matrix, ("Version", 1), template.Version)
133
+ add_to_dict(matrix.Matrix, ("Description", 1), template.Description)
134
+ add_to_dict(matrix.Matrix, ("Organisation", 1), to_string(template.Organisation))
135
+ add_to_dict(matrix.Matrix, ("Table", 1), template.Table.Name)
136
+ class ObjectExpr2040:
137
+ @property
138
+ def Equals(self) -> Callable[[str, str], bool]:
139
+ def _arrow2039(x: str, y: str) -> bool:
140
+ return x == y
141
+
142
+ return _arrow2039
143
+
144
+ @property
145
+ def GetHashCode(self) -> Callable[[str], int]:
146
+ return string_hash
147
+
148
+ return SparseTable(matrix.Matrix, matrix.Keys, reverse(List_distinct(comment_keys, ObjectExpr2040())), matrix.ColumnCount)
149
+
150
+
151
+ def Metadata_Template_TemplateInfo_fromRows_9F97F2A(rows: IEnumerator[IEnumerable_1[tuple[int, str]]]) -> tuple[str | None, Metadata_Template_TemplateInfo]:
152
+ tupled_arg: tuple[str | None, int, FSharpList[Remark], SparseTable] = SparseTable_FromRows_Z5579EC29(rows, Metadata_Template_TemplateInfo_get_Labels(), 0)
153
+ return (tupled_arg[0], Metadata_Template_TemplateInfo_FromSparseTable_3ECCA699(tupled_arg[3]))
154
+
155
+
156
+ def Metadata_Template_TemplateInfo_toRows_48C39BE1(template: Template) -> IEnumerable_1[IEnumerable_1[tuple[int, str]]]:
157
+ return SparseTable_ToRows_759CAFC1(Metadata_Template_TemplateInfo_ToSparseTable_48C39BE1(template))
158
+
159
+
160
+ def Metadata_Template_mapDeprecatedKeys(rows: IEnumerable_1[IEnumerable_1[tuple[int, str]]]) -> IEnumerable_1[IEnumerable_1[tuple[int, str]]]:
161
+ def mapping_1(r: IEnumerable_1[tuple[int, str]], rows: Any=rows) -> IEnumerable_1[tuple[int, str]]:
162
+ def mapping(tupled_arg: tuple[int, str], r: Any=r) -> tuple[int, str]:
163
+ k: int = tupled_arg[0] or 0
164
+ v: str = tupled_arg[1]
165
+ if k == 0:
166
+ if v == "#AUTHORS list":
167
+ return (k, "AUTHORS")
168
+
169
+ elif v == "#ER list":
170
+ return (k, "ERS")
171
+
172
+ elif v == "#TAGS list":
173
+ return (k, "TAGS")
174
+
175
+ elif v == "Authors ORCID":
176
+ return (k, ("Comment[" + Person_orcidKey) + "]")
177
+
178
+ elif v == "Authors Last Name":
179
+ return (k, "Author Last Name")
180
+
181
+ elif v == "Authors First Name":
182
+ return (k, "Author First Name")
183
+
184
+ elif v == "Authors Mid Initials":
185
+ return (k, "Author Mid Initials")
186
+
187
+ elif v == "Authors Email":
188
+ return (k, "Author Email")
189
+
190
+ elif v == "Authors Phone":
191
+ return (k, "Author Phone")
192
+
193
+ elif v == "Authors Fax":
194
+ return (k, "Author Fax")
195
+
196
+ elif v == "Authors Address":
197
+ return (k, "Author Address")
198
+
199
+ elif v == "Authors Affiliation":
200
+ return (k, "Author Affiliation")
201
+
202
+ elif v == "Authors Role":
203
+ return (k, "Author Roles")
204
+
205
+ elif v == "Authors Role Term Accession Number":
206
+ return (k, "Author Roles Term Accession Number")
207
+
208
+ elif v == "Authors Role Term Source REF":
209
+ return (k, "Author Roles Term Source REF")
210
+
211
+ else:
212
+ return (k, v)
213
+
214
+
215
+ else:
216
+ return (k, v)
217
+
218
+
219
+ return map_1(mapping, r)
220
+
221
+ s: IEnumerable_1[IEnumerable_1[tuple[int, str]]] = map_1(mapping_1, rows)
222
+ def predicate(v_32: str, rows: Any=rows) -> bool:
223
+ return v_32 == "TEMPLATE"
224
+
225
+ if exists(predicate, to_array(SparseRowModule_tryGetValueAt(0, head(s)))):
226
+ return s
227
+
228
+ else:
229
+ return append(singleton(SparseRowModule_fromValues(to_enumerable(["TEMPLATE"]))), s)
230
+
231
+
232
+
233
+ def Metadata_Template_fromRows(rows: IEnumerable_1[IEnumerable_1[tuple[int, str]]]) -> tuple[Metadata_Template_TemplateInfo, FSharpList[OntologyAnnotation], FSharpList[OntologyAnnotation], FSharpList[Person]]:
234
+ def loop(en_mut: IEnumerator[IEnumerable_1[tuple[int, str]]], last_line_mut: str | None, template_info_mut: Metadata_Template_TemplateInfo, ers_mut: FSharpList[OntologyAnnotation], tags_mut: FSharpList[OntologyAnnotation], authors_mut: FSharpList[Person], rows: Any=rows) -> tuple[Metadata_Template_TemplateInfo, FSharpList[OntologyAnnotation], FSharpList[OntologyAnnotation], FSharpList[Person]]:
235
+ while True:
236
+ (en, last_line, template_info, ers, tags, authors) = (en_mut, last_line_mut, template_info_mut, ers_mut, tags_mut, authors_mut)
237
+ (pattern_matching_result,) = (None,)
238
+ if last_line is not None:
239
+ if last_line == "ERS":
240
+ pattern_matching_result = 0
241
+
242
+ elif last_line == "TAGS":
243
+ pattern_matching_result = 1
244
+
245
+ elif last_line == "AUTHORS":
246
+ pattern_matching_result = 2
247
+
248
+ else:
249
+ pattern_matching_result = 3
250
+
251
+
252
+ else:
253
+ pattern_matching_result = 3
254
+
255
+ if pattern_matching_result == 0:
256
+ pattern_input: tuple[str | None, FSharpList[OntologyAnnotation]] = Metadata_ER_fromRows(None, en)
257
+ en_mut = en
258
+ last_line_mut = pattern_input[0]
259
+ template_info_mut = template_info
260
+ ers_mut = append_1(ers, pattern_input[1])
261
+ tags_mut = tags
262
+ authors_mut = authors
263
+ continue
264
+
265
+ elif pattern_matching_result == 1:
266
+ pattern_input_1: tuple[str | None, FSharpList[OntologyAnnotation]] = Metadata_Tags_fromRows(None, en)
267
+ en_mut = en
268
+ last_line_mut = pattern_input_1[0]
269
+ template_info_mut = template_info
270
+ ers_mut = ers
271
+ tags_mut = append_1(tags, pattern_input_1[1])
272
+ authors_mut = authors
273
+ continue
274
+
275
+ elif pattern_matching_result == 2:
276
+ pattern_input_2: tuple[str | None, int, FSharpList[Remark], FSharpList[Person]] = from_rows_1("Author", 0, en)
277
+ en_mut = en
278
+ last_line_mut = pattern_input_2[0]
279
+ template_info_mut = template_info
280
+ ers_mut = ers
281
+ tags_mut = tags
282
+ authors_mut = append_1(authors, pattern_input_2[3])
283
+ continue
284
+
285
+ elif pattern_matching_result == 3:
286
+ return (template_info, ers, tags, authors)
287
+
288
+ break
289
+
290
+ en_1: IEnumerator[IEnumerable_1[tuple[int, str]]] = get_enumerator(Metadata_Template_mapDeprecatedKeys(rows))
291
+ ignore(en_1.System_Collections_IEnumerator_MoveNext())
292
+ pattern_input_3: tuple[str | None, Metadata_Template_TemplateInfo] = Metadata_Template_TemplateInfo_fromRows_9F97F2A(en_1)
293
+ return loop(en_1, pattern_input_3[0], pattern_input_3[1], empty(), empty(), empty())
294
+
295
+
296
+ def Metadata_Template_toRows(template: Template) -> IEnumerable_1[IEnumerable_1[tuple[int, str]]]:
297
+ def _arrow2048(__unit: None=None, template: Any=template) -> IEnumerable_1[IEnumerable_1[tuple[int, str]]]:
298
+ def _arrow2047(__unit: None=None) -> IEnumerable_1[IEnumerable_1[tuple[int, str]]]:
299
+ def _arrow2046(__unit: None=None) -> IEnumerable_1[IEnumerable_1[tuple[int, str]]]:
300
+ def _arrow2045(__unit: None=None) -> IEnumerable_1[IEnumerable_1[tuple[int, str]]]:
301
+ def _arrow2044(__unit: None=None) -> IEnumerable_1[IEnumerable_1[tuple[int, str]]]:
302
+ def _arrow2043(__unit: None=None) -> IEnumerable_1[IEnumerable_1[tuple[int, str]]]:
303
+ def _arrow2042(__unit: None=None) -> IEnumerable_1[IEnumerable_1[tuple[int, str]]]:
304
+ def _arrow2041(__unit: None=None) -> IEnumerable_1[IEnumerable_1[tuple[int, str]]]:
305
+ return to_rows_1("Author", of_seq(template.Authors))
306
+
307
+ return append(singleton(SparseRowModule_fromValues(to_enumerable(["AUTHORS"]))), delay(_arrow2041))
308
+
309
+ return append(Metadata_Tags_toRows(None, to_list(template.Tags)), delay(_arrow2042))
310
+
311
+ return append(singleton(SparseRowModule_fromValues(to_enumerable(["TAGS"]))), delay(_arrow2043))
312
+
313
+ return append(Metadata_ER_toRows(None, to_list(template.EndpointRepositories)), delay(_arrow2044))
314
+
315
+ return append(singleton(SparseRowModule_fromValues(to_enumerable(["ERS"]))), delay(_arrow2045))
316
+
317
+ return append(Metadata_Template_TemplateInfo_toRows_48C39BE1(template), delay(_arrow2046))
318
+
319
+ return append(singleton(SparseRowModule_fromValues(to_enumerable(["TEMPLATE"]))), delay(_arrow2047))
320
+
321
+ return delay(_arrow2048)
322
+
323
+
324
+ Template_metadataSheetName: str = "isa_template"
325
+
326
+ Template_obsoleteMetadataSheetName: str = "SwateTemplateMetadata"
327
+
328
+ def Template_fromParts(template_info: Metadata_Template_TemplateInfo, ers: FSharpList[OntologyAnnotation], tags: FSharpList[OntologyAnnotation], authors: FSharpList[Person], table: ArcTable, last_updated: Any) -> Template:
329
+ id: str = parse(template_info.Id)
330
+ organisation: Organisation = Organisation.of_string(template_info.Organisation)
331
+ authors_1: Array[Person] = list(authors)
332
+ repos: Array[OntologyAnnotation] = list(ers)
333
+ tags_1: Array[OntologyAnnotation] = list(tags)
334
+ return Template.make(id, table, template_info.Name, template_info.Description, organisation, template_info.Version, authors_1, repos, tags_1, last_updated)
335
+
336
+
337
+ def Template_isMetadataSheetName(name: str) -> bool:
338
+ if name == Template_metadataSheetName:
339
+ return True
340
+
341
+ else:
342
+ return name == Template_obsoleteMetadataSheetName
343
+
344
+
345
+
346
+ def Template_isMetadataSheet(sheet: FsWorksheet) -> bool:
347
+ return Template_isMetadataSheetName(sheet.Name)
348
+
349
+
350
+ def Template_tryGetMetadataSheet(doc: FsWorkbook) -> FsWorksheet | None:
351
+ def predicate(sheet: FsWorksheet, doc: Any=doc) -> bool:
352
+ return Template_isMetadataSheet(sheet)
353
+
354
+ return try_find(predicate, doc.GetWorksheets())
355
+
356
+
357
+ def Template_toMetadataSheet(template: Template) -> FsWorksheet:
358
+ sheet: FsWorksheet = FsWorksheet(Template_metadataSheetName)
359
+ def action(row_i: int, r: IEnumerable_1[tuple[int, str]], template: Any=template) -> None:
360
+ SparseRowModule_writeToSheet(row_i + 1, r, sheet)
361
+
362
+ iterate_indexed(action, Metadata_Template_toRows(template))
363
+ return sheet
364
+
365
+
366
+ def Template_fromMetadataSheet(sheet: FsWorksheet) -> tuple[Metadata_Template_TemplateInfo, FSharpList[OntologyAnnotation], FSharpList[OntologyAnnotation], FSharpList[Person]]:
367
+ def mapping(r: FsRow, sheet: Any=sheet) -> IEnumerable_1[tuple[int, str]]:
368
+ return SparseRowModule_fromFsRow(r)
369
+
370
+ return Metadata_Template_fromRows(map_1(mapping, sheet.Rows))
371
+
372
+
373
+ def Template_toMetadataCollection(template: Template) -> IEnumerable_1[IEnumerable_1[str | None]]:
374
+ def mapping(row: IEnumerable_1[tuple[int, str]], template: Any=template) -> IEnumerable_1[str | None]:
375
+ return SparseRowModule_getAllValues(row)
376
+
377
+ return map_1(mapping, Metadata_Template_toRows(template))
378
+
379
+
380
+ def Template_fromMetadataCollection(collection: IEnumerable_1[IEnumerable_1[str | None]]) -> tuple[Metadata_Template_TemplateInfo, FSharpList[OntologyAnnotation], FSharpList[OntologyAnnotation], FSharpList[Person]]:
381
+ def mapping(v: IEnumerable_1[str | None], collection: Any=collection) -> IEnumerable_1[tuple[int, str]]:
382
+ return SparseRowModule_fromAllValues(v)
383
+
384
+ return Metadata_Template_fromRows(map_1(mapping, collection))
385
+
386
+
387
+ def Template_fromFsWorkbook(doc: FsWorkbook) -> Template:
388
+ pattern_input: tuple[Metadata_Template_TemplateInfo, FSharpList[OntologyAnnotation], FSharpList[OntologyAnnotation], FSharpList[Person]]
389
+ match_value: FsWorksheet | None = Template_tryGetMetadataSheet(doc)
390
+ if match_value is None:
391
+ to_console(printf("Could not find metadata sheet with sheetname \"isa_template\" or deprecated sheetname \"Template\""))
392
+ pattern_input = (Metadata_Template_TemplateInfo_get_empty(), empty(), empty(), empty())
393
+
394
+ else:
395
+ pattern_input = Template_fromMetadataSheet(match_value)
396
+
397
+ template_info: Metadata_Template_TemplateInfo = pattern_input[0]
398
+ sheets: Array[FsWorksheet] = doc.GetWorksheets()
399
+ def _arrow2049(__unit: None=None, doc: Any=doc) -> ArcTable:
400
+ def try_table_name_matches(ws: FsWorksheet) -> FsWorksheet | None:
401
+ def predicate(t: FsTable, ws: Any=ws) -> bool:
402
+ return t.Name == template_info.Table
403
+
404
+ if exists(predicate, ws.Tables):
405
+ return ws
406
+
407
+ else:
408
+ return None
409
+
410
+
411
+ match_value_1: FsWorksheet | None = try_pick(try_table_name_matches, sheets)
412
+ if match_value_1 is None:
413
+ def try_wsname_matches(ws_1: FsWorksheet) -> FsWorksheet | None:
414
+ if ws_1.Name == template_info.Table:
415
+ return ws_1
416
+
417
+ else:
418
+ return None
419
+
420
+
421
+ match_value_3: FsWorksheet | None = try_pick(try_wsname_matches, sheets)
422
+ if match_value_3 is None:
423
+ raise TemplateReadError(("No worksheet or table with name `" + template_info.Table) + "` found")
424
+
425
+ else:
426
+ ws_3: FsWorksheet = match_value_3
427
+ match_value_4: ArcTable | None = try_from_fs_worksheet(ws_3)
428
+ if match_value_4 is None:
429
+ raise TemplateReadError(("Ws with name `" + ws_3.Name) + "` could not be converted to a table")
430
+
431
+ else:
432
+ return match_value_4
433
+
434
+
435
+
436
+ else:
437
+ ws_2: FsWorksheet = match_value_1
438
+ match_value_2: ArcTable | None = try_from_fs_worksheet(ws_2)
439
+ if match_value_2 is None:
440
+ raise TemplateReadError(("Ws with name `" + ws_2.Name) + "` could not be converted to a table")
441
+
442
+ else:
443
+ return match_value_2
444
+
445
+
446
+
447
+ return Template_fromParts(template_info, pattern_input[1], pattern_input[2], pattern_input[3], _arrow2049(), now())
448
+
449
+
450
+ def Template_toFsWorkbook(template: Template) -> FsWorkbook:
451
+ doc: FsWorkbook = FsWorkbook()
452
+ meta_data_sheet: FsWorksheet = Template_toMetadataSheet(template)
453
+ doc.AddWorksheet(meta_data_sheet)
454
+ sheet: FsWorksheet = to_fs_worksheet(None, template.Table)
455
+ doc.AddWorksheet(sheet)
456
+ return doc
457
+
458
+
459
+ __all__ = ["TemplateReadError_reflection", "Metadata_ER_labels", "Metadata_ER_fromSparseTable", "Metadata_ER_toSparseTable", "Metadata_ER_fromRows", "Metadata_ER_toRows", "Metadata_Tags_labels", "Metadata_Tags_fromSparseTable", "Metadata_Tags_toSparseTable", "Metadata_Tags_fromRows", "Metadata_Tags_toRows", "Metadata_Template_TemplateInfo_reflection", "Metadata_Template_TemplateInfo_create", "Metadata_Template_TemplateInfo_get_empty", "Metadata_Template_TemplateInfo_get_Labels", "Metadata_Template_TemplateInfo_FromSparseTable_3ECCA699", "Metadata_Template_TemplateInfo_ToSparseTable_48C39BE1", "Metadata_Template_TemplateInfo_fromRows_9F97F2A", "Metadata_Template_TemplateInfo_toRows_48C39BE1", "Metadata_Template_mapDeprecatedKeys", "Metadata_Template_fromRows", "Metadata_Template_toRows", "Template_metadataSheetName", "Template_obsoleteMetadataSheetName", "Template_fromParts", "Template_isMetadataSheetName", "Template_isMetadataSheet", "Template_tryGetMetadataSheet", "Template_toMetadataSheet", "Template_fromMetadataSheet", "Template_toMetadataCollection", "Template_fromMetadataCollection", "Template_fromFsWorkbook", "Template_toFsWorkbook"]
460
+
File without changes
@@ -0,0 +1,82 @@
1
+ from __future__ import annotations
2
+ from typing import Any
3
+ from ..fable_modules.fable_library.option import value as value_1
4
+ from ..fable_modules.fable_library.reflection import (TypeInfo, class_type)
5
+ from ..fable_modules.fable_library.seq import (to_list, delay, append, singleton, empty)
6
+ from ..fable_modules.fable_library.string_ import join
7
+ from ..fable_modules.fable_library.util import (IEnumerable_1, equals, string_hash)
8
+ from ..Core.Helper.hash_codes import (box_hash_array, box_hash_option)
9
+
10
+ def _expr3941() -> TypeInfo:
11
+ return class_type("ARCtrl.ValidationPackages.ValidationPackage", None, ValidationPackage)
12
+
13
+
14
+ class ValidationPackage:
15
+ def __init__(self, name: str, version: str | None=None) -> None:
16
+ self.version: str | None = version
17
+ self._name: str = name
18
+ self._version: str | None = self.version
19
+
20
+ @property
21
+ def Name(self, __unit: None=None) -> str:
22
+ this: ValidationPackage = self
23
+ return this._name
24
+
25
+ @Name.setter
26
+ def Name(self, name: str) -> None:
27
+ this: ValidationPackage = self
28
+ this._name = name
29
+
30
+ @property
31
+ def Version(self, __unit: None=None) -> str | None:
32
+ this: ValidationPackage = self
33
+ return this._version
34
+
35
+ @Version.setter
36
+ def Version(self, version: str | None=None) -> None:
37
+ this: ValidationPackage = self
38
+ this._version = version
39
+
40
+ @staticmethod
41
+ def make(name: str, version: str | None=None) -> ValidationPackage:
42
+ return ValidationPackage(name, version)
43
+
44
+ def Copy(self, __unit: None=None) -> ValidationPackage:
45
+ this: ValidationPackage = self
46
+ name: str = this.Name
47
+ version: str | None = this.Version
48
+ return ValidationPackage.make(name, version)
49
+
50
+ def __str__(self, __unit: None=None) -> str:
51
+ this: ValidationPackage = self
52
+ def _arrow3940(__unit: None=None) -> IEnumerable_1[str]:
53
+ def _arrow3939(__unit: None=None) -> IEnumerable_1[str]:
54
+ def _arrow3938(__unit: None=None) -> IEnumerable_1[str]:
55
+ def _arrow3937(__unit: None=None) -> IEnumerable_1[str]:
56
+ return singleton("}")
57
+
58
+ return append(singleton((" Version = " + value_1(this.Version)) + "") if (this.version is not None) else empty(), delay(_arrow3937))
59
+
60
+ return append(singleton((" Name = " + this.Name) + ""), delay(_arrow3938))
61
+
62
+ return append(singleton("{"), delay(_arrow3939))
63
+
64
+ return join("\n", to_list(delay(_arrow3940)))
65
+
66
+ def __eq__(self, obj: Any=None) -> bool:
67
+ this: ValidationPackage = self
68
+ return (equals(obj.Version, this.Version) if (obj.Name == this.Name) else False) if isinstance(obj, ValidationPackage) else False
69
+
70
+ def __hash__(self, __unit: None=None) -> Any:
71
+ this: ValidationPackage = self
72
+ return box_hash_array([string_hash(this.Name), box_hash_option(this.Version)])
73
+
74
+
75
+ ValidationPackage_reflection = _expr3941
76
+
77
+ def ValidationPackage__ctor_27AED5E3(name: str, version: str | None=None) -> ValidationPackage:
78
+ return ValidationPackage(name, version)
79
+
80
+
81
+ __all__ = ["ValidationPackage_reflection"]
82
+