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
File without changes
@@ -0,0 +1,203 @@
1
+ from __future__ import annotations
2
+ from collections.abc import Callable
3
+ from typing import (Any, TypeVar)
4
+ from ...fable_modules.fable_library.array_ import (map as map_1, unzip)
5
+ from ...fable_modules.fable_library.list import (reverse, map, FSharpList, fold, singleton, cons, is_empty, head, tail, empty, of_array, to_array, exists, collect as collect_1, sort_by, of_seq, length, iterate_indexed)
6
+ from ...fable_modules.fable_library.map_util import add_to_dict
7
+ from ...fable_modules.fable_library.range import range_big_int
8
+ from ...fable_modules.fable_library.reflection import enum_type
9
+ from ...fable_modules.fable_library.seq import (try_find, to_array as to_array_1, delay, map as map_2, collect, singleton as singleton_1, fold as fold_1)
10
+ from ...fable_modules.fable_library.string_ import (starts_with_exact, to_fail, printf)
11
+ from ...fable_modules.fable_library.types import Array
12
+ from ...fable_modules.fable_library.util import (IEnumerable_1, compare_primitives, max)
13
+ from ...fable_modules.fs_spreadsheet.Cells.fs_cell import FsCell
14
+ from ...fable_modules.fs_spreadsheet.Cells.fs_cells_collection import Dictionary_tryGet
15
+ from ...fable_modules.fs_spreadsheet.fs_address import FsAddress
16
+ from ...fable_modules.fs_spreadsheet.fs_worksheet import FsWorksheet
17
+ from ...fable_modules.fs_spreadsheet.Ranges.fs_range_address import FsRangeAddress
18
+ from ...fable_modules.fs_spreadsheet.Tables.fs_table import FsTable
19
+ from ...Core.Table.arc_table import ArcTable
20
+ from ...Core.Table.arc_table_aux import (ColumnValueRefs, ArcTableValues)
21
+ from ...Core.Table.composite_column import CompositeColumn
22
+ from ...Core.Table.composite_header import CompositeHeader
23
+ from .composite_column import (from_string_cell_columns, ColumnValueRefs_fromStringCellColumns, fix_deprecated_ioheader, to_string_cell_columns)
24
+
25
+ __A = TypeVar("__A")
26
+
27
+ def Aux_List_groupWhen(f: Callable[[__A], bool], list_1: FSharpList[Any]) -> FSharpList[FSharpList[Any]]:
28
+ def mapping(list_3: FSharpList[__A], f: Any=f, list_1: Any=list_1) -> FSharpList[__A]:
29
+ return reverse(list_3)
30
+
31
+ def folder(acc: FSharpList[FSharpList[__A]], e: __A, f: Any=f, list_1: Any=list_1) -> FSharpList[FSharpList[__A]]:
32
+ match_value: bool = f(e)
33
+ if match_value:
34
+ return cons(singleton(e), acc)
35
+
36
+ elif not is_empty(acc):
37
+ return cons(cons(e, head(acc)), tail(acc))
38
+
39
+ else:
40
+ return singleton(singleton(e))
41
+
42
+
43
+ return reverse(map(mapping, fold(folder, empty(), list_1)))
44
+
45
+
46
+ def classify_header_order(header: CompositeHeader) -> enum_type("ARCtrl.Spreadsheet.ArcTable.ColumnOrder", int, [("InputClass", 1.0), ("ProtocolClass", 2.0), ("ParamsClass", 3.0), ("OutputClass", 4.0)]):
47
+ if ((((((header.tag == 4) or (header.tag == 5)) or (header.tag == 6)) or (header.tag == 7)) or (header.tag == 8)) or (header.tag == 9)) or (header.tag == 10):
48
+ return 2
49
+
50
+ elif (((((header.tag == 0) or (header.tag == 1)) or (header.tag == 2)) or (header.tag == 3)) or (header.tag == 14)) or (header.tag == 13):
51
+ return 3
52
+
53
+ elif header.tag == 12:
54
+ return 4
55
+
56
+ else:
57
+ return 1
58
+
59
+
60
+
61
+ def classify_column_order(column: CompositeColumn) -> enum_type("ARCtrl.Spreadsheet.ArcTable.ColumnOrder", int, [("InputClass", 1.0), ("ProtocolClass", 2.0), ("ParamsClass", 3.0), ("OutputClass", 4.0)]):
62
+ return classify_header_order(column.Header)
63
+
64
+
65
+ helper_column_strings: FSharpList[str] = of_array(["Term Source REF", "Term Accession Number", "Unit", "Data Format", "Data Selector Format"])
66
+
67
+ def group_columns_by_header(string_cell_columns: Array[Array[str]]) -> Array[Array[Array[str]]]:
68
+ def mapping(list_4: FSharpList[Array[str]], string_cell_columns: Any=string_cell_columns) -> Array[Array[str]]:
69
+ return to_array(list_4)
70
+
71
+ def f(c: Array[str], string_cell_columns: Any=string_cell_columns) -> bool:
72
+ v: str = c[0]
73
+ def predicate(s: str, c: Any=c) -> bool:
74
+ return starts_with_exact(v, s)
75
+
76
+ return not exists(predicate, helper_column_strings)
77
+
78
+ return map_1(mapping, to_array(Aux_List_groupWhen(f, of_array(string_cell_columns))), None)
79
+
80
+
81
+ def try_annotation_table(sheet: FsWorksheet) -> FsTable | None:
82
+ def predicate(t: FsTable, sheet: Any=sheet) -> bool:
83
+ return starts_with_exact(t.Name, "annotationTable")
84
+
85
+ return try_find(predicate, sheet.Tables)
86
+
87
+
88
+ def compose_columns(string_cell_columns: Array[Array[str]]) -> Array[CompositeColumn]:
89
+ def _arrow1951(columns: Array[Array[str]], string_cell_columns: Any=string_cell_columns) -> CompositeColumn:
90
+ return from_string_cell_columns(columns)
91
+
92
+ return map_1(_arrow1951, group_columns_by_header(string_cell_columns), None)
93
+
94
+
95
+ def compose_arc_table_values(string_cell_columns: Array[Array[str]]) -> tuple[Array[CompositeHeader], ArcTableValues]:
96
+ value_map: Any = dict([])
97
+ row_count: int = (len(string_cell_columns[0]) - 1) or 0
98
+ def mapping(columns: Array[Array[str]], string_cell_columns: Any=string_cell_columns) -> tuple[CompositeHeader, ColumnValueRefs]:
99
+ return ColumnValueRefs_fromStringCellColumns(value_map, columns)
100
+
101
+ pattern_input: tuple[Array[CompositeHeader], Array[ColumnValueRefs]] = unzip(map_1(mapping, group_columns_by_header(string_cell_columns), None))
102
+ return (pattern_input[0], ArcTableValues.from_ref_columns(pattern_input[1], value_map, row_count))
103
+
104
+
105
+ def try_from_fs_worksheet(sheet: FsWorksheet) -> ArcTable | None:
106
+ try:
107
+ match_value: FsTable | None = try_annotation_table(sheet)
108
+ if match_value is None:
109
+ return None
110
+
111
+ else:
112
+ t: FsTable = match_value
113
+ def _arrow1955(__unit: None=None) -> IEnumerable_1[Array[str]]:
114
+ def _arrow1954(c: int) -> Array[str]:
115
+ def _arrow1953(__unit: None=None) -> IEnumerable_1[str]:
116
+ def _arrow1952(r: int) -> IEnumerable_1[str]:
117
+ match_value_1: FsCell | None = sheet.CellCollection.TryGetCell(r, c)
118
+ if match_value_1 is None:
119
+ return singleton_1("")
120
+
121
+ else:
122
+ cell: FsCell = match_value_1
123
+ return singleton_1(cell.ValueAsString())
124
+
125
+
126
+ return collect(_arrow1952, range_big_int(1, 1, t.RangeAddress.LastAddress.RowNumber))
127
+
128
+ return to_array_1(delay(_arrow1953))
129
+
130
+ return map_2(_arrow1954, range_big_int(1, 1, t.RangeAddress.LastAddress.ColumnNumber))
131
+
132
+ pattern_input: tuple[Array[CompositeHeader], ArcTableValues] = compose_arc_table_values(map_1(fix_deprecated_ioheader, to_array_1(delay(_arrow1955)), None))
133
+ return ArcTable.from_arc_table_values(sheet.Name, list(pattern_input[0]), pattern_input[1])
134
+
135
+
136
+ except Exception as err:
137
+ arg: str = sheet.Name
138
+ arg_1: str = str(err)
139
+ return to_fail(printf("Could not parse table with name \"%s\":\n%s"))(arg)(arg_1)
140
+
141
+
142
+
143
+ def to_fs_worksheet(index: int | None, table: ArcTable) -> FsWorksheet:
144
+ string_count: Any = dict([])
145
+ ws: FsWorksheet = FsWorksheet(table.Name)
146
+ if table.ColumnCount == 0:
147
+ return ws
148
+
149
+ else:
150
+ def _arrow1956(column_1: CompositeColumn, index: Any=index, table: Any=table) -> FSharpList[FSharpList[str]]:
151
+ return to_string_cell_columns(column_1)
152
+
153
+ def _arrow1957(column: CompositeColumn, index: Any=index, table: Any=table) -> enum_type("ARCtrl.Spreadsheet.ArcTable.ColumnOrder", int, [("InputClass", 1.0), ("ProtocolClass", 2.0), ("ParamsClass", 3.0), ("OutputClass", 4.0)]):
154
+ return classify_column_order(column)
155
+
156
+ class ObjectExpr1958:
157
+ @property
158
+ def Compare(self) -> Callable[[enum_type("ARCtrl.Spreadsheet.ArcTable.ColumnOrder", int, [("InputClass", 1.0), ("ProtocolClass", 2.0), ("ParamsClass", 3.0), ("OutputClass", 4.0)]), enum_type("ARCtrl.Spreadsheet.ArcTable.ColumnOrder", int, [("InputClass", 1.0), ("ProtocolClass", 2.0), ("ParamsClass", 3.0), ("OutputClass", 4.0)])], int]:
159
+ return compare_primitives
160
+
161
+ columns: FSharpList[FSharpList[str]] = collect_1(_arrow1956, sort_by(_arrow1957, of_seq(table.Columns), ObjectExpr1958()))
162
+ table_row_count: int
163
+ def folder(acc: int, c: FSharpList[str], index: Any=index, table: Any=table) -> int:
164
+ def _arrow1959(x_1: int, y_1: int, acc: Any=acc, c: Any=c) -> int:
165
+ return compare_primitives(x_1, y_1)
166
+
167
+ return max(_arrow1959, acc, length(c))
168
+
169
+ max_row: int = fold_1(folder, 0, columns) or 0
170
+ table_row_count = 2 if (max_row == 1) else max_row
171
+ table_column_count: int = length(columns) or 0
172
+ name: str = "annotationTable" if (index is None) else (((("" + "annotationTable") + "") + str(index)) + "")
173
+ fs_table: FsTable = ws.Table(name, FsRangeAddress(FsAddress(1, 1), FsAddress(table_row_count, table_column_count)))
174
+ def action_1(col_i: int, col: FSharpList[str], index: Any=index, table: Any=table) -> None:
175
+ def action(row_i: int, string_cell: str, col_i: Any=col_i, col: Any=col) -> None:
176
+ value: str
177
+ if row_i == 0:
178
+ match_value: str | None = Dictionary_tryGet(string_cell, string_count)
179
+ if match_value is None:
180
+ add_to_dict(string_count, string_cell, "")
181
+ value = string_cell
182
+
183
+ else:
184
+ spaces: str = match_value
185
+ string_count[string_cell] = spaces + " "
186
+ value = (string_cell + " ") + spaces
187
+
188
+
189
+ else:
190
+ value = string_cell
191
+
192
+ address: FsAddress = FsAddress(row_i + 1, col_i + 1)
193
+ fs_table.Cell(address, ws.CellCollection).SetValueAs(value)
194
+
195
+ iterate_indexed(action, col)
196
+
197
+ iterate_indexed(action_1, columns)
198
+ return ws
199
+
200
+
201
+
202
+ __all__ = ["Aux_List_groupWhen", "classify_header_order", "classify_column_order", "helper_column_strings", "group_columns_by_header", "try_annotation_table", "compose_columns", "compose_arc_table_values", "try_from_fs_worksheet", "to_fs_worksheet"]
203
+
@@ -0,0 +1,78 @@
1
+ from __future__ import annotations
2
+ from typing import Any
3
+ from ...fable_modules.fable_library.option import (map, bind, default_arg)
4
+ from ...fable_modules.fable_library.types import Array
5
+ from ...Core.Helper.collections_ import Option_fromValueWithDefault
6
+ from ...Core.Table.composite_cell import CompositeCell
7
+
8
+ def term_from_string_cells(tsr_col: int | None, tan_col: int | None, cell_values: Array[str]) -> CompositeCell:
9
+ def _arrow1860(i: int, tsr_col: Any=tsr_col, tan_col: Any=tan_col, cell_values: Any=cell_values) -> str:
10
+ return cell_values[i]
11
+
12
+ tan: str | None = map(_arrow1860, tan_col)
13
+ def _arrow1861(i_1: int, tsr_col: Any=tsr_col, tan_col: Any=tan_col, cell_values: Any=cell_values) -> str:
14
+ return cell_values[i_1]
15
+
16
+ tsr: str | None = map(_arrow1861, tsr_col)
17
+ return CompositeCell.create_term_from_string(cell_values[0], tsr, tan)
18
+
19
+
20
+ def unitized_from_string_cells(unit_col: int, tsr_col: int | None, tan_col: int | None, cell_values: Array[str]) -> CompositeCell:
21
+ unit: str = cell_values[unit_col]
22
+ def _arrow1862(i: int, unit_col: Any=unit_col, tsr_col: Any=tsr_col, tan_col: Any=tan_col, cell_values: Any=cell_values) -> str:
23
+ return cell_values[i]
24
+
25
+ tan: str | None = map(_arrow1862, tan_col)
26
+ def _arrow1863(i_1: int, unit_col: Any=unit_col, tsr_col: Any=tsr_col, tan_col: Any=tan_col, cell_values: Any=cell_values) -> str:
27
+ return cell_values[i_1]
28
+
29
+ tsr: str | None = map(_arrow1863, tsr_col)
30
+ return CompositeCell.create_unitized_from_string(cell_values[0], unit, tsr, tan)
31
+
32
+
33
+ def free_text_from_string_cells(cell_values: Array[str]) -> CompositeCell:
34
+ return CompositeCell.create_free_text(cell_values[0])
35
+
36
+
37
+ def data_from_string_cells(format: int | None, selector_format: int | None, cell_values: Array[str]) -> CompositeCell:
38
+ def _arrow1864(i: int, format: Any=format, selector_format: Any=selector_format, cell_values: Any=cell_values) -> str | None:
39
+ return Option_fromValueWithDefault("", cell_values[i])
40
+
41
+ format_1: str | None = bind(_arrow1864, format)
42
+ def _arrow1865(i_1: int, format: Any=format, selector_format: Any=selector_format, cell_values: Any=cell_values) -> str | None:
43
+ return Option_fromValueWithDefault("", cell_values[i_1])
44
+
45
+ selector_format_1: str | None = bind(_arrow1865, selector_format)
46
+ return CompositeCell.create_data_from_string(cell_values[0], format_1, selector_format_1)
47
+
48
+
49
+ def to_string_cells(is_term: bool, has_unit: bool, cell: CompositeCell) -> Array[str]:
50
+ if cell.tag == 0:
51
+ if has_unit:
52
+ return [cell.fields[0].NameText, "", default_arg(cell.fields[0].TermSourceREF, ""), cell.fields[0].TermAccessionOntobeeUrl]
53
+
54
+ else:
55
+ return [cell.fields[0].NameText, default_arg(cell.fields[0].TermSourceREF, ""), cell.fields[0].TermAccessionOntobeeUrl]
56
+
57
+
58
+ elif cell.tag == 2:
59
+ return [cell.fields[0], cell.fields[1].NameText, default_arg(cell.fields[1].TermSourceREF, ""), cell.fields[1].TermAccessionOntobeeUrl]
60
+
61
+ elif cell.tag == 3:
62
+ format: str = default_arg(cell.fields[0].Format, "")
63
+ selector_format: str = default_arg(cell.fields[0].SelectorFormat, "")
64
+ return [default_arg(cell.fields[0].Name, ""), format, selector_format]
65
+
66
+ elif has_unit:
67
+ return [cell.fields[0], "", "", ""]
68
+
69
+ elif is_term:
70
+ return [cell.fields[0], "", ""]
71
+
72
+ else:
73
+ return [cell.fields[0]]
74
+
75
+
76
+
77
+ __all__ = ["term_from_string_cells", "unitized_from_string_cells", "free_text_from_string_cells", "data_from_string_cells", "to_string_cells"]
78
+
@@ -0,0 +1,305 @@
1
+ from __future__ import annotations
2
+ from collections.abc import Callable
3
+ from typing import Any
4
+ from ...fable_modules.fable_library.array_ import (skip, map, try_item)
5
+ from ...fable_modules.fable_library.list import (of_array, singleton as singleton_1, FSharpList, map as map_2)
6
+ from ...fable_modules.fable_library.map_util import (try_get_value, get_item_from_dict)
7
+ from ...fable_modules.fable_library.option import default_arg
8
+ from ...fable_modules.fable_library.range import range_big_int
9
+ from ...fable_modules.fable_library.seq import (to_array, delay, map as map_1, exists, to_list, append, singleton, reduce)
10
+ from ...fable_modules.fable_library.types import (Array, to_string)
11
+ from ...fable_modules.fable_library.util import (IEnumerable_1, string_hash)
12
+ from ...fable_modules.fs_spreadsheet.Cells.fs_cell import FsCell
13
+ from ...fable_modules.fs_spreadsheet.fs_column import FsColumn
14
+ from ...fable_modules.fs_spreadsheet.hash_codes import merge_hashes
15
+ from ...fable_modules.fable_library.types import FSharpRef
16
+ from ...Core.Table.arc_table_aux import (ColumnValueRefs, ensure_cell_hash_in_value_map)
17
+ from ...Core.Table.composite_cell import CompositeCell
18
+ from ...Core.Table.composite_column import CompositeColumn
19
+ from ...Core.Table.composite_header import (IOType, CompositeHeader)
20
+ from .composite_cell import to_string_cells as to_string_cells_1
21
+ from .composite_header import (from_string_cells, to_string_cells)
22
+
23
+ def fix_deprecated_ioheader(string_cell_col: Array[str]) -> Array[str]:
24
+ if len(string_cell_col) == 0:
25
+ raise Exception("Can\'t fix IOHeader Invalid column, neither header nor values given")
26
+
27
+ values: Array[str] = skip(1, string_cell_col, None)
28
+ match_value: IOType = IOType.of_string(string_cell_col[0])
29
+ if match_value.tag == 4:
30
+ return string_cell_col
31
+
32
+ elif match_value.tag == 0:
33
+ string_cell_col[0] = to_string(CompositeHeader(11, IOType(0)))
34
+ return string_cell_col
35
+
36
+ else:
37
+ string_cell_col[0] = to_string(CompositeHeader(12, match_value))
38
+ return string_cell_col
39
+
40
+
41
+
42
+ def from_string_cell_columns(columns: Array[Array[str]]) -> CompositeColumn:
43
+ def mapping(c: Array[str], columns: Any=columns) -> str:
44
+ return c[0]
45
+
46
+ pattern_input: tuple[CompositeHeader, Callable[[Array[str]], CompositeCell]] = from_string_cells(map(mapping, columns, None))
47
+ l: int = len(columns[0]) or 0
48
+ def _arrow1904(__unit: None=None, columns: Any=columns) -> IEnumerable_1[CompositeCell]:
49
+ def _arrow1903(i: int) -> CompositeCell:
50
+ def mapping_1(c_1: Array[str]) -> str:
51
+ return c_1[i]
52
+
53
+ return pattern_input[1](map(mapping_1, columns, None))
54
+
55
+ return map_1(_arrow1903, range_big_int(1, 1, l - 1))
56
+
57
+ cells: Array[CompositeCell] = list(to_array(delay(_arrow1904)))
58
+ return CompositeColumn.create(pattern_input[0], cells)
59
+
60
+
61
+ def string_cell_columns_of_fs_columns(columns: Array[FsColumn]) -> Array[Array[str]]:
62
+ def mapping_1(c: FsColumn, columns: Any=columns) -> Array[str]:
63
+ c.ToDenseColumn()
64
+ def mapping(cell: FsCell, c: Any=c) -> str:
65
+ return cell.ValueAsString()
66
+
67
+ return map(mapping, to_array(c.Cells), None)
68
+
69
+ return map(mapping_1, columns, None)
70
+
71
+
72
+ def from_fs_columns(columns: Array[FsColumn]) -> CompositeColumn:
73
+ def mapping_1(c: FsColumn, columns: Any=columns) -> Array[str]:
74
+ c.ToDenseColumn()
75
+ def mapping(c_1: FsCell, c: Any=c) -> str:
76
+ return c_1.ValueAsString()
77
+
78
+ return map(mapping, to_array(c.Cells), None)
79
+
80
+ return from_string_cell_columns(map(mapping_1, columns, None))
81
+
82
+
83
+ def to_string_cell_columns(column: CompositeColumn) -> FSharpList[FSharpList[str]]:
84
+ def predicate(c: CompositeCell, column: Any=column) -> bool:
85
+ return c.is_unitized
86
+
87
+ has_unit: bool = exists(predicate, column.Cells)
88
+ is_term: bool = column.Header.IsTermColumn
89
+ def predicate_1(c_1: CompositeCell, column: Any=column) -> bool:
90
+ return c_1.is_data
91
+
92
+ is_data: bool = exists(predicate_1, column.Cells) if column.Header.IsDataColumn else False
93
+ header: Array[str] = to_string_cells(has_unit, column.Header)
94
+ composite_cells: Array[CompositeCell] = to_array(column.Cells)
95
+ def mapping(cell: CompositeCell, column: Any=column) -> Array[str]:
96
+ return to_string_cells_1(is_term, has_unit, cell)
97
+
98
+ cells: Array[Array[str]] = map(mapping, to_array(column.Cells), None)
99
+ def get_cell_or_default(ri: int, ci: int, cells_1: Array[Array[str]], column: Any=column) -> str:
100
+ return default_arg(try_item(ci, cells_1[ri]), "")
101
+
102
+ if has_unit:
103
+ def _arrow1910(__unit: None=None, column: Any=column) -> IEnumerable_1[str]:
104
+ def _arrow1909(__unit: None=None) -> IEnumerable_1[str]:
105
+ def _arrow1908(i: int) -> str:
106
+ return get_cell_or_default(i, 0, cells)
107
+
108
+ return map_1(_arrow1908, range_big_int(0, 1, len(composite_cells) - 1))
109
+
110
+ return append(singleton(header[0]), delay(_arrow1909))
111
+
112
+ def _arrow1913(__unit: None=None, column: Any=column) -> IEnumerable_1[str]:
113
+ def _arrow1912(__unit: None=None) -> IEnumerable_1[str]:
114
+ def _arrow1911(i_1: int) -> str:
115
+ return get_cell_or_default(i_1, 1, cells)
116
+
117
+ return map_1(_arrow1911, range_big_int(0, 1, len(composite_cells) - 1))
118
+
119
+ return append(singleton(header[1]), delay(_arrow1912))
120
+
121
+ def _arrow1916(__unit: None=None, column: Any=column) -> IEnumerable_1[str]:
122
+ def _arrow1915(__unit: None=None) -> IEnumerable_1[str]:
123
+ def _arrow1914(i_2: int) -> str:
124
+ return get_cell_or_default(i_2, 2, cells)
125
+
126
+ return map_1(_arrow1914, range_big_int(0, 1, len(composite_cells) - 1))
127
+
128
+ return append(singleton(header[2]), delay(_arrow1915))
129
+
130
+ def _arrow1919(__unit: None=None, column: Any=column) -> IEnumerable_1[str]:
131
+ def _arrow1918(__unit: None=None) -> IEnumerable_1[str]:
132
+ def _arrow1917(i_3: int) -> str:
133
+ return get_cell_or_default(i_3, 3, cells)
134
+
135
+ return map_1(_arrow1917, range_big_int(0, 1, len(composite_cells) - 1))
136
+
137
+ return append(singleton(header[3]), delay(_arrow1918))
138
+
139
+ return of_array([to_list(delay(_arrow1910)), to_list(delay(_arrow1913)), to_list(delay(_arrow1916)), to_list(delay(_arrow1919))])
140
+
141
+ elif is_term:
142
+ def _arrow1925(__unit: None=None, column: Any=column) -> IEnumerable_1[str]:
143
+ def _arrow1924(__unit: None=None) -> IEnumerable_1[str]:
144
+ def _arrow1923(i_4: int) -> str:
145
+ return get_cell_or_default(i_4, 0, cells)
146
+
147
+ return map_1(_arrow1923, range_big_int(0, 1, len(composite_cells) - 1))
148
+
149
+ return append(singleton(header[0]), delay(_arrow1924))
150
+
151
+ def _arrow1928(__unit: None=None, column: Any=column) -> IEnumerable_1[str]:
152
+ def _arrow1927(__unit: None=None) -> IEnumerable_1[str]:
153
+ def _arrow1926(i_5: int) -> str:
154
+ return get_cell_or_default(i_5, 1, cells)
155
+
156
+ return map_1(_arrow1926, range_big_int(0, 1, len(composite_cells) - 1))
157
+
158
+ return append(singleton(header[1]), delay(_arrow1927))
159
+
160
+ def _arrow1931(__unit: None=None, column: Any=column) -> IEnumerable_1[str]:
161
+ def _arrow1930(__unit: None=None) -> IEnumerable_1[str]:
162
+ def _arrow1929(i_6: int) -> str:
163
+ return get_cell_or_default(i_6, 2, cells)
164
+
165
+ return map_1(_arrow1929, range_big_int(0, 1, len(composite_cells) - 1))
166
+
167
+ return append(singleton(header[2]), delay(_arrow1930))
168
+
169
+ return of_array([to_list(delay(_arrow1925)), to_list(delay(_arrow1928)), to_list(delay(_arrow1931))])
170
+
171
+ elif is_data:
172
+ def _arrow1937(__unit: None=None, column: Any=column) -> IEnumerable_1[str]:
173
+ def _arrow1936(__unit: None=None) -> IEnumerable_1[str]:
174
+ def _arrow1935(i_7: int) -> str:
175
+ return get_cell_or_default(i_7, 0, cells)
176
+
177
+ return map_1(_arrow1935, range_big_int(0, 1, len(composite_cells) - 1))
178
+
179
+ return append(singleton(header[0]), delay(_arrow1936))
180
+
181
+ def _arrow1940(__unit: None=None, column: Any=column) -> IEnumerable_1[str]:
182
+ def _arrow1939(__unit: None=None) -> IEnumerable_1[str]:
183
+ def _arrow1938(i_8: int) -> str:
184
+ return get_cell_or_default(i_8, 1, cells)
185
+
186
+ return map_1(_arrow1938, range_big_int(0, 1, len(composite_cells) - 1))
187
+
188
+ return append(singleton(header[1]), delay(_arrow1939))
189
+
190
+ def _arrow1943(__unit: None=None, column: Any=column) -> IEnumerable_1[str]:
191
+ def _arrow1942(__unit: None=None) -> IEnumerable_1[str]:
192
+ def _arrow1941(i_9: int) -> str:
193
+ return get_cell_or_default(i_9, 2, cells)
194
+
195
+ return map_1(_arrow1941, range_big_int(0, 1, len(composite_cells) - 1))
196
+
197
+ return append(singleton(header[2]), delay(_arrow1942))
198
+
199
+ return of_array([to_list(delay(_arrow1937)), to_list(delay(_arrow1940)), to_list(delay(_arrow1943))])
200
+
201
+ else:
202
+ def _arrow1946(__unit: None=None, column: Any=column) -> IEnumerable_1[str]:
203
+ def _arrow1945(__unit: None=None) -> IEnumerable_1[str]:
204
+ def _arrow1944(i_10: int) -> str:
205
+ return cells[i_10][0]
206
+
207
+ return map_1(_arrow1944, range_big_int(0, 1, len(composite_cells) - 1))
208
+
209
+ return append(singleton(header[0]), delay(_arrow1945))
210
+
211
+ return singleton_1(to_list(delay(_arrow1946)))
212
+
213
+
214
+
215
+ def to_fs_columns(column: CompositeColumn) -> FSharpList[FSharpList[FsCell]]:
216
+ def mapping_1(c: FSharpList[str], column: Any=column) -> FSharpList[FsCell]:
217
+ def mapping(s: str, c: Any=c) -> FsCell:
218
+ return FsCell(s)
219
+
220
+ return map_2(mapping, c)
221
+
222
+ return map_2(mapping_1, to_string_cell_columns(column))
223
+
224
+
225
+ def ColumnValueRefs_fromStringCellColumns(value_map: Any, columns: Array[Array[str]]) -> tuple[CompositeHeader, ColumnValueRefs]:
226
+ hash_map: Any = dict([])
227
+ cells: Any = dict([])
228
+ constant: bool = True
229
+ def mapping(c: Array[str], value_map: Any=value_map, columns: Any=columns) -> str:
230
+ return c[0]
231
+
232
+ pattern_input: tuple[CompositeHeader, Callable[[Array[str]], CompositeCell]] = from_string_cells(map(mapping, columns, None))
233
+ header: CompositeHeader = pattern_input[0]
234
+ cell_parser: Callable[[Array[str]], CompositeCell] = pattern_input[1]
235
+ l: int = len(columns[0]) or 0
236
+ if l == 1:
237
+ return (header, ColumnValueRefs(1, cells))
238
+
239
+ else:
240
+ for i in range(1, (l - 1) + 1, 1):
241
+ def mapping_1(c_1: Array[str], value_map: Any=value_map, columns: Any=columns) -> str:
242
+ return c_1[i]
243
+
244
+ strings: Array[str] = map(mapping_1, columns, None)
245
+ def _arrow1947(hash_1: int, hash_2: int, value_map: Any=value_map, columns: Any=columns) -> int:
246
+ return merge_hashes(hash_1, hash_2)
247
+
248
+ def mapping_2(s: str, value_map: Any=value_map, columns: Any=columns) -> int:
249
+ return string_hash(s)
250
+
251
+ hash_3: int = reduce(_arrow1947, map_1(mapping_2, strings)) or 0
252
+ match_value: int | None
253
+ pattern_input_1: tuple[bool, int]
254
+ out_arg: int = None or 0
255
+ def _arrow1948(__unit: None=None, value_map: Any=value_map, columns: Any=columns) -> int:
256
+ return out_arg
257
+
258
+ def _arrow1949(v: int, value_map: Any=value_map, columns: Any=columns) -> None:
259
+ nonlocal out_arg
260
+ out_arg = v or 0
261
+
262
+ pattern_input_1 = (try_get_value(hash_map, hash_3, FSharpRef(_arrow1948, _arrow1949)), out_arg)
263
+ match_value = pattern_input_1[1] if pattern_input_1[0] else None
264
+ if match_value is None:
265
+ if i == 1:
266
+ cell_hash_3: int = ensure_cell_hash_in_value_map(cell_parser(strings), value_map) or 0
267
+ hash_map[hash_3] = cell_hash_3
268
+ cells[i - 1] = cell_hash_3
269
+
270
+ else:
271
+ if constant:
272
+ constant = False
273
+ for j in range(0, (i - 1) + 1, 1):
274
+ cell_hash_4: int = get_item_from_dict(cells, 0) or 0
275
+ cells[j] = cell_hash_4
276
+
277
+ cell_hash_5: int = ensure_cell_hash_in_value_map(cell_parser(strings), value_map) or 0
278
+ hash_map[hash_3] = cell_hash_5
279
+ cells[i - 1] = cell_hash_5
280
+
281
+
282
+ else:
283
+ def _arrow1950(__unit: None=None, value_map: Any=value_map, columns: Any=columns) -> bool:
284
+ cell_hash: int = match_value or 0
285
+ return constant
286
+
287
+ if _arrow1950():
288
+ cell_hash_1: int = match_value or 0
289
+
290
+ else:
291
+ cell_hash_2: int = match_value or 0
292
+ cells[i - 1] = cell_hash_2
293
+
294
+
295
+ if constant:
296
+ return (header, ColumnValueRefs(0, get_item_from_dict(cells, 0)))
297
+
298
+ else:
299
+ return (header, ColumnValueRefs(1, cells))
300
+
301
+
302
+
303
+
304
+ __all__ = ["fix_deprecated_ioheader", "from_string_cell_columns", "string_cell_columns_of_fs_columns", "from_fs_columns", "to_string_cell_columns", "to_fs_columns", "ColumnValueRefs_fromStringCellColumns"]
305
+