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,122 @@
1
+ from __future__ import annotations
2
+ from collections.abc import Callable
3
+ from typing import Any
4
+ from ...fable_modules.fable_library.list import (of_array, FSharpList, map as map_1, empty, cons, reverse)
5
+ from ...fable_modules.fable_library.map_util import add_to_dict
6
+ from ...fable_modules.fable_library.option import (map, default_arg)
7
+ from ...fable_modules.fable_library.seq2 import List_distinct
8
+ from ...fable_modules.fable_library.string_ import (starts_with_exact, join)
9
+ from ...fable_modules.fable_library.types import Array
10
+ from ...fable_modules.fable_library.util import (string_hash, IEnumerable_1, IEnumerator)
11
+ from ...Core.arc_types import ArcRun
12
+ from ...Core.comment import (Comment, Remark)
13
+ from ...Core.conversion import (JsonTypes_decomposeTechnologyPlatform, JsonTypes_composeTechnologyPlatform)
14
+ from ...Core.Helper.collections_ import (Option_fromValueWithDefault, ResizeArray_iter)
15
+ from ...Core.Helper.identifier import (create_missing_identifier, Assay_tryIdentifierFromFileName, Run_fileNameFromIdentifier)
16
+ from ...Core.ontology_annotation import OntologyAnnotation
17
+ from .comment import (Comment_fromString, Comment_toString)
18
+ from .sparse_table import (SparseTable__TryGetValueDefault_5BAE6133, SparseTable__TryGetValue_11FD62A8, SparseTable, SparseTable_Create_Z2192E64B, SparseTable_FromRows_Z5579EC29, SparseTable_ToRows_759CAFC1)
19
+
20
+ labels: FSharpList[str] = of_array(["Identifier", "Title", "Description", "Workflow Identifiers", "Measurement Type", "Measurement Type Term Accession Number", "Measurement Type Term Source REF", "Technology Type", "Technology Type Term Accession Number", "Technology Type Term Source REF", "Technology Platform", "File Name"])
21
+
22
+ def from_string(identifier: str | None, title: str | None, description: str | None, workflow_identifiers: str | None, measurement_type: str | None, measurement_type_term_source_ref: str | None, measurement_type_term_accession_number: str | None, technology_type: str | None, technology_type_term_source_ref: str | None, technology_type_term_accession_number: str | None, technology_platform: str | None, file_name: str | None, comments: Array[Comment]) -> ArcRun:
23
+ workflow_identifiers_1: Array[str]
24
+ if workflow_identifiers is None:
25
+ workflow_identifiers_1 = []
26
+
27
+ else:
28
+ wi: str = workflow_identifiers
29
+ workflow_identifiers_1 = list(wi.split(";"))
30
+
31
+ measurement_type_1: OntologyAnnotation = OntologyAnnotation.create(measurement_type, measurement_type_term_source_ref, measurement_type_term_accession_number)
32
+ technology_type_1: OntologyAnnotation = OntologyAnnotation.create(technology_type, technology_type_term_source_ref, technology_type_term_accession_number)
33
+ identifier_4: str
34
+ if identifier is None:
35
+ if file_name is None:
36
+ identifier_4 = create_missing_identifier()
37
+
38
+ else:
39
+ match_value: str | None = Assay_tryIdentifierFromFileName(file_name)
40
+ identifier_4 = match_value if (match_value is not None) else create_missing_identifier()
41
+
42
+
43
+ else:
44
+ identifier_4 = identifier
45
+
46
+ measurement_type_2: OntologyAnnotation | None = Option_fromValueWithDefault(OntologyAnnotation(), measurement_type_1)
47
+ technology_type_2: OntologyAnnotation | None = Option_fromValueWithDefault(OntologyAnnotation(), technology_type_1)
48
+ def _arrow1853(name: str, identifier: Any=identifier, title: Any=title, description: Any=description, workflow_identifiers: Any=workflow_identifiers, measurement_type: Any=measurement_type, measurement_type_term_source_ref: Any=measurement_type_term_source_ref, measurement_type_term_accession_number: Any=measurement_type_term_accession_number, technology_type: Any=technology_type, technology_type_term_source_ref: Any=technology_type_term_source_ref, technology_type_term_accession_number: Any=technology_type_term_accession_number, technology_platform: Any=technology_platform, file_name: Any=file_name, comments: Any=comments) -> OntologyAnnotation:
49
+ return JsonTypes_decomposeTechnologyPlatform(name)
50
+
51
+ technology_platform_1: OntologyAnnotation | None = map(_arrow1853, technology_platform)
52
+ return ArcRun.make(identifier_4, title, description, measurement_type_2, technology_type_2, technology_platform_1, workflow_identifiers_1, [], None, [], None, [], comments)
53
+
54
+
55
+ def from_sparse_table(matrix: SparseTable) -> ArcRun:
56
+ def mapping(k: str, matrix: Any=matrix) -> Comment:
57
+ return Comment_fromString(k, SparseTable__TryGetValueDefault_5BAE6133(matrix, "", (k, 0)))
58
+
59
+ comments: Array[Comment] = list(map_1(mapping, matrix.CommentKeys))
60
+ return from_string(SparseTable__TryGetValue_11FD62A8(matrix, ("Identifier", 0)), SparseTable__TryGetValue_11FD62A8(matrix, ("Title", 0)), SparseTable__TryGetValue_11FD62A8(matrix, ("Description", 0)), SparseTable__TryGetValue_11FD62A8(matrix, ("Workflow Identifiers", 0)), SparseTable__TryGetValue_11FD62A8(matrix, ("Measurement Type", 0)), SparseTable__TryGetValue_11FD62A8(matrix, ("Measurement Type Term Source REF", 0)), SparseTable__TryGetValue_11FD62A8(matrix, ("Measurement Type Term Accession Number", 0)), SparseTable__TryGetValue_11FD62A8(matrix, ("Technology Type", 0)), SparseTable__TryGetValue_11FD62A8(matrix, ("Technology Type Term Source REF", 0)), SparseTable__TryGetValue_11FD62A8(matrix, ("Technology Type Term Accession Number", 0)), SparseTable__TryGetValue_11FD62A8(matrix, ("Technology Platform", 0)), SparseTable__TryGetValue_11FD62A8(matrix, ("File Name", 0)), comments)
61
+
62
+
63
+ def to_sparse_table(run: ArcRun) -> SparseTable:
64
+ matrix: SparseTable = SparseTable_Create_Z2192E64B(None, labels, None, 2)
65
+ comment_keys: FSharpList[str] = empty()
66
+ pattern_input: tuple[str, str] = (("", "")) if starts_with_exact(run.Identifier, "MISSING_IDENTIFIER_") else ((run.Identifier, Run_fileNameFromIdentifier(run.Identifier)))
67
+ workflow_identifiers: str = join(";", run.WorkflowIdentifiers)
68
+ mt_1: dict[str, Any]
69
+ mt: OntologyAnnotation = default_arg(run.MeasurementType, OntologyAnnotation())
70
+ mt_1 = OntologyAnnotation.to_string_object(mt, True)
71
+ tt_1: dict[str, Any]
72
+ tt: OntologyAnnotation = default_arg(run.TechnologyType, OntologyAnnotation())
73
+ tt_1 = OntologyAnnotation.to_string_object(tt, True)
74
+ add_to_dict(matrix.Matrix, ("Identifier", 1), pattern_input[0])
75
+ add_to_dict(matrix.Matrix, ("Title", 1), default_arg(run.Title, ""))
76
+ add_to_dict(matrix.Matrix, ("Description", 1), default_arg(run.Description, ""))
77
+ add_to_dict(matrix.Matrix, ("Workflow Identifiers", 1), workflow_identifiers)
78
+ add_to_dict(matrix.Matrix, ("Measurement Type", 1), mt_1["TermName"])
79
+ add_to_dict(matrix.Matrix, ("Measurement Type Term Accession Number", 1), mt_1["TermAccessionNumber"])
80
+ add_to_dict(matrix.Matrix, ("Measurement Type Term Source REF", 1), mt_1["TermSourceREF"])
81
+ add_to_dict(matrix.Matrix, ("Technology Type", 1), tt_1["TermName"])
82
+ add_to_dict(matrix.Matrix, ("Technology Type Term Accession Number", 1), tt_1["TermAccessionNumber"])
83
+ add_to_dict(matrix.Matrix, ("Technology Type Term Source REF", 1), tt_1["TermSourceREF"])
84
+ def mapping(tp: OntologyAnnotation, run: Any=run) -> str:
85
+ return JsonTypes_composeTechnologyPlatform(tp)
86
+
87
+ add_to_dict(matrix.Matrix, ("Technology Platform", 1), default_arg(map(mapping, run.TechnologyPlatform), ""))
88
+ add_to_dict(matrix.Matrix, ("File Name", 1), pattern_input[1])
89
+ def f(comment: Comment, run: Any=run) -> None:
90
+ nonlocal comment_keys
91
+ pattern_input_1: tuple[str, str] = Comment_toString(comment)
92
+ n: str = pattern_input_1[0]
93
+ comment_keys = cons(n, comment_keys)
94
+ add_to_dict(matrix.Matrix, (n, 1), pattern_input_1[1])
95
+
96
+ ResizeArray_iter(f, run.Comments)
97
+ class ObjectExpr1855:
98
+ @property
99
+ def Equals(self) -> Callable[[str, str], bool]:
100
+ def _arrow1854(x: str, y: str) -> bool:
101
+ return x == y
102
+
103
+ return _arrow1854
104
+
105
+ @property
106
+ def GetHashCode(self) -> Callable[[str], int]:
107
+ return string_hash
108
+
109
+ return SparseTable(matrix.Matrix, matrix.Keys, reverse(List_distinct(comment_keys, ObjectExpr1855())), matrix.ColumnCount)
110
+
111
+
112
+ def from_rows(line_number: int, rows: IEnumerator[IEnumerable_1[tuple[int, str]]]) -> tuple[str | None, int, FSharpList[Remark], ArcRun]:
113
+ tupled_arg: tuple[str | None, int, FSharpList[Remark], SparseTable] = SparseTable_FromRows_Z5579EC29(rows, labels, line_number, "Run")
114
+ return (tupled_arg[0], tupled_arg[1], tupled_arg[2], from_sparse_table(tupled_arg[3]))
115
+
116
+
117
+ def to_rows(run: ArcRun) -> IEnumerable_1[IEnumerable_1[tuple[int, str]]]:
118
+ return SparseTable_ToRows_759CAFC1(to_sparse_table(run), "Run")
119
+
120
+
121
+ __all__ = ["labels", "from_string", "from_sparse_table", "to_sparse_table", "from_rows", "to_rows"]
122
+
@@ -0,0 +1,499 @@
1
+ from __future__ import annotations
2
+ from collections.abc import Callable
3
+ from dataclasses import dataclass
4
+ from typing import Any
5
+ from ...fable_modules.fable_library.list import (FSharpList, singleton, empty, append, cons, find, exists, initialize as initialize_1, map as map_2)
6
+ from ...fable_modules.fable_library.map import (of_seq, try_find)
7
+ from ...fable_modules.fable_library.map_util import (get_item_from_dict, add_to_dict)
8
+ from ...fable_modules.fable_library.option import (map as map_1, default_arg)
9
+ from ...fable_modules.fable_library.reflection import (TypeInfo, string_type, int32_type, tuple_type, class_type, list_type, record_type)
10
+ from ...fable_modules.fable_library.seq import (indexed, map, choose, initialize, max_by, try_pick, fold, iterate, is_empty, length as length_1, try_item, delay, append as append_1)
11
+ from ...fable_modules.fable_library.string_ import (to_fail, printf)
12
+ from ...fable_modules.fable_library.types import (Record, Array)
13
+ from ...fable_modules.fable_library.util import (IEnumerable_1, compare_primitives, equals, IEnumerator)
14
+ from ...fable_modules.fs_spreadsheet.Cells.fs_cell import (FsCell, DataType)
15
+ from ...fable_modules.fs_spreadsheet.DSL.cell_builder import (CellBuilder__AsCellElement_6F87C2ED, CellBuilder__ctor)
16
+ from ...fable_modules.fs_spreadsheet.DSL.row_builder import (RowBuilder__ctor, RowBuilder__Combine_19F30600, RowBuilder_get_Empty)
17
+ from ...fable_modules.fs_spreadsheet.DSL.types import (SheetEntity_1_some_2B595, Messages_format)
18
+ from ...fable_modules.fs_spreadsheet.DSL.row_builder import RowBuilder
19
+ from ...fable_modules.fs_spreadsheet.DSL.types import (SheetEntity_1, RowElement, ColumnIndex)
20
+ from ...fable_modules.fs_spreadsheet.fs_address import FsAddress
21
+ from ...fable_modules.fs_spreadsheet.fs_row import FsRow
22
+ from ...fable_modules.fs_spreadsheet.fs_worksheet import FsWorksheet
23
+ from ...fable_modules.fs_spreadsheet.Ranges.fs_range_address import FsRangeAddress
24
+ from ...Core.comment import (Remark, Comment)
25
+ from ...Core.Helper.collections_ import Dictionary_init
26
+ from ..collection_aux import (Dictionary_tryGetValue, Seq_trySkip)
27
+ from .comment import (Remark__007CRemark_007C__007C, Comment__007CComment_007C__007C, Comment_wrapCommentKey)
28
+
29
+ def SparseRowModule_fromValues(v: IEnumerable_1[str]) -> IEnumerable_1[tuple[int, str]]:
30
+ return indexed(v)
31
+
32
+
33
+ def SparseRowModule_getValues(i: IEnumerable_1[tuple[int, str]]) -> IEnumerable_1[str]:
34
+ def mapping(tuple: tuple[int, str], i: Any=i) -> str:
35
+ return tuple[1]
36
+
37
+ return map(mapping, i)
38
+
39
+
40
+ def SparseRowModule_fromAllValues(v: IEnumerable_1[str | None]) -> IEnumerable_1[tuple[int, str]]:
41
+ def chooser(tupled_arg: tuple[int, str | None], v: Any=v) -> tuple[int, str] | None:
42
+ def _arrow1793(v_1: str, tupled_arg: Any=tupled_arg) -> tuple[int, str]:
43
+ return (tupled_arg[0], v_1)
44
+
45
+ return map_1(_arrow1793, tupled_arg[1])
46
+
47
+ return choose(chooser, indexed(v))
48
+
49
+
50
+ def SparseRowModule_getAllValues(i: IEnumerable_1[tuple[int, str]]) -> IEnumerable_1[str | None]:
51
+ class ObjectExpr1794:
52
+ @property
53
+ def Compare(self) -> Callable[[int, int], int]:
54
+ return compare_primitives
55
+
56
+ m: Any = of_seq(i, ObjectExpr1794())
57
+ def projection(tuple: tuple[int, str], i: Any=i) -> int:
58
+ return tuple[0]
59
+
60
+ class ObjectExpr1795:
61
+ @property
62
+ def Compare(self) -> Callable[[int, int], int]:
63
+ return compare_primitives
64
+
65
+ def _arrow1796(i_1: int, i: Any=i) -> str | None:
66
+ return try_find(i_1, m)
67
+
68
+ return initialize(max_by(projection, i, ObjectExpr1795())[0] + 1, _arrow1796)
69
+
70
+
71
+ def SparseRowModule_fromFsRow(r: FsRow) -> IEnumerable_1[tuple[int, str]]:
72
+ def chooser(c: FsCell, r: Any=r) -> tuple[int, str] | None:
73
+ if equals(c.Value, ""):
74
+ return None
75
+
76
+ else:
77
+ return (c.ColumnNumber - 1, c.ValueAsString())
78
+
79
+
80
+ return choose(chooser, r.Cells)
81
+
82
+
83
+ def SparseRowModule_tryGetValueAt(i: int, vs: IEnumerable_1[tuple[int, str]]) -> str | None:
84
+ def chooser(tupled_arg: tuple[int, str], i: Any=i, vs: Any=vs) -> str | None:
85
+ if tupled_arg[0] == i:
86
+ return tupled_arg[1]
87
+
88
+ else:
89
+ return None
90
+
91
+
92
+ return try_pick(chooser, vs)
93
+
94
+
95
+ def SparseRowModule_toDSLRow(vs: IEnumerable_1[tuple[int, str]]) -> FSharpList[RowElement]:
96
+ _builder: RowBuilder = RowBuilder__ctor()
97
+ this_9: SheetEntity_1[FSharpList[RowElement]]
98
+ def f_2(_arg: str | None=None, vs: Any=vs) -> SheetEntity_1[FSharpList[RowElement]]:
99
+ v: str | None = _arg
100
+ if v is None:
101
+ c_1: tuple[tuple[DataType, Any], int | None]
102
+ this_5: SheetEntity_1[tuple[tuple[DataType, Any], int | None]] = CellBuilder__AsCellElement_6F87C2ED(CellBuilder__ctor(), SheetEntity_1_some_2B595(singleton((DataType(0), ""))))
103
+ (pattern_matching_result, errs_1, f_1) = (None, None, None)
104
+ if this_5.tag == 1:
105
+ if equals(this_5.fields[0], empty()):
106
+ pattern_matching_result = 1
107
+
108
+ else:
109
+ pattern_matching_result = 2
110
+
111
+
112
+ elif this_5.tag == 2:
113
+ if equals(this_5.fields[0], empty()):
114
+ pattern_matching_result = 1
115
+
116
+ else:
117
+ pattern_matching_result = 2
118
+
119
+
120
+ else:
121
+ pattern_matching_result = 0
122
+ errs_1 = this_5.fields[1]
123
+ f_1 = this_5.fields[0]
124
+
125
+ if pattern_matching_result == 0:
126
+ c_1 = f_1
127
+
128
+ elif pattern_matching_result == 1:
129
+ raise Exception("SheetEntity does not contain Value.")
130
+
131
+ elif pattern_matching_result == 2:
132
+ (pattern_matching_result_1, ms_3_1) = (None, None)
133
+ if this_5.tag == 1:
134
+ pattern_matching_result_1 = 0
135
+ ms_3_1 = this_5.fields[0]
136
+
137
+ elif this_5.tag == 2:
138
+ pattern_matching_result_1 = 0
139
+ ms_3_1 = this_5.fields[0]
140
+
141
+ else:
142
+ pattern_matching_result_1 = 1
143
+
144
+ if pattern_matching_result_1 == 0:
145
+ raise Exception(("SheetEntity does not contain Value: \n\t" + Messages_format(ms_3_1)) + "")
146
+
147
+ elif pattern_matching_result_1 == 1:
148
+ raise Exception("Match failure: FsSpreadsheet.DSL.SheetEntity`1")
149
+
150
+
151
+ return SheetEntity_1_some_2B595(singleton(RowElement(1, c_1[0]) if (c_1[1] is None) else RowElement(0, ColumnIndex(0, c_1[1]), c_1[0])))
152
+
153
+ else:
154
+ v_1: str = v
155
+ c: tuple[tuple[DataType, Any], int | None]
156
+ this_2: SheetEntity_1[tuple[tuple[DataType, Any], int | None]] = CellBuilder__AsCellElement_6F87C2ED(CellBuilder__ctor(), SheetEntity_1_some_2B595(singleton((DataType(0), v_1))))
157
+ (pattern_matching_result_2, errs, f) = (None, None, None)
158
+ if this_2.tag == 1:
159
+ if equals(this_2.fields[0], empty()):
160
+ pattern_matching_result_2 = 1
161
+
162
+ else:
163
+ pattern_matching_result_2 = 2
164
+
165
+
166
+ elif this_2.tag == 2:
167
+ if equals(this_2.fields[0], empty()):
168
+ pattern_matching_result_2 = 1
169
+
170
+ else:
171
+ pattern_matching_result_2 = 2
172
+
173
+
174
+ else:
175
+ pattern_matching_result_2 = 0
176
+ errs = this_2.fields[1]
177
+ f = this_2.fields[0]
178
+
179
+ if pattern_matching_result_2 == 0:
180
+ c = f
181
+
182
+ elif pattern_matching_result_2 == 1:
183
+ raise Exception("SheetEntity does not contain Value.")
184
+
185
+ elif pattern_matching_result_2 == 2:
186
+ (pattern_matching_result_3, ms_3) = (None, None)
187
+ if this_2.tag == 1:
188
+ pattern_matching_result_3 = 0
189
+ ms_3 = this_2.fields[0]
190
+
191
+ elif this_2.tag == 2:
192
+ pattern_matching_result_3 = 0
193
+ ms_3 = this_2.fields[0]
194
+
195
+ else:
196
+ pattern_matching_result_3 = 1
197
+
198
+ if pattern_matching_result_3 == 0:
199
+ raise Exception(("SheetEntity does not contain Value: \n\t" + Messages_format(ms_3)) + "")
200
+
201
+ elif pattern_matching_result_3 == 1:
202
+ raise Exception("Match failure: FsSpreadsheet.DSL.SheetEntity`1")
203
+
204
+
205
+ return SheetEntity_1_some_2B595(singleton(RowElement(1, c[0]) if (c[1] is None) else RowElement(0, ColumnIndex(0, c[1]), c[0])))
206
+
207
+
208
+ ns: IEnumerable_1[SheetEntity_1[FSharpList[RowElement]]] = map(f_2, SparseRowModule_getAllValues(vs))
209
+ def folder(state: SheetEntity_1[FSharpList[RowElement]], we: SheetEntity_1[FSharpList[RowElement]], vs: Any=vs) -> SheetEntity_1[FSharpList[RowElement]]:
210
+ return RowBuilder__Combine_19F30600(_builder, state, we)
211
+
212
+ this_9 = fold(folder, RowBuilder_get_Empty(), ns)
213
+ (pattern_matching_result_4, errs_2, f_3) = (None, None, None)
214
+ if this_9.tag == 1:
215
+ if equals(this_9.fields[0], empty()):
216
+ pattern_matching_result_4 = 1
217
+
218
+ else:
219
+ pattern_matching_result_4 = 2
220
+
221
+
222
+ elif this_9.tag == 2:
223
+ if equals(this_9.fields[0], empty()):
224
+ pattern_matching_result_4 = 1
225
+
226
+ else:
227
+ pattern_matching_result_4 = 2
228
+
229
+
230
+ else:
231
+ pattern_matching_result_4 = 0
232
+ errs_2 = this_9.fields[1]
233
+ f_3 = this_9.fields[0]
234
+
235
+ if pattern_matching_result_4 == 0:
236
+ return f_3
237
+
238
+ elif pattern_matching_result_4 == 1:
239
+ raise Exception("SheetEntity does not contain Value.")
240
+
241
+ elif pattern_matching_result_4 == 2:
242
+ (pattern_matching_result_5, ms_3_2) = (None, None)
243
+ if this_9.tag == 1:
244
+ pattern_matching_result_5 = 0
245
+ ms_3_2 = this_9.fields[0]
246
+
247
+ elif this_9.tag == 2:
248
+ pattern_matching_result_5 = 0
249
+ ms_3_2 = this_9.fields[0]
250
+
251
+ else:
252
+ pattern_matching_result_5 = 1
253
+
254
+ if pattern_matching_result_5 == 0:
255
+ raise Exception(("SheetEntity does not contain Value: \n\t" + Messages_format(ms_3_2)) + "")
256
+
257
+ elif pattern_matching_result_5 == 1:
258
+ raise Exception("Match failure: FsSpreadsheet.DSL.SheetEntity`1")
259
+
260
+
261
+
262
+
263
+ def SparseRowModule_readFromSheet(sheet: FsWorksheet) -> IEnumerable_1[IEnumerable_1[tuple[int, str]]]:
264
+ def mapping(r: FsRow, sheet: Any=sheet) -> IEnumerable_1[tuple[int, str]]:
265
+ return SparseRowModule_fromFsRow(r)
266
+
267
+ return map(mapping, sheet.Rows)
268
+
269
+
270
+ def SparseRowModule_writeToSheet(row_i: int, row: IEnumerable_1[tuple[int, str]], sheet: FsWorksheet) -> None:
271
+ fs_row: FsRow = sheet.RowWithRange(FsRangeAddress(FsAddress(row_i, 1), FsAddress(row_i, 1)), True)
272
+ def action(tupled_arg: tuple[int, str], row_i: Any=row_i, row: Any=row, sheet: Any=sheet) -> None:
273
+ v: str = tupled_arg[1]
274
+ if v.strip() != "":
275
+ fs_row.Item(tupled_arg[0] + 1).SetValueAs(v)
276
+
277
+
278
+ iterate(action, row)
279
+
280
+
281
+ def _expr1804() -> TypeInfo:
282
+ return record_type("ARCtrl.Spreadsheet.SparseTable", [], SparseTable, lambda: [("Matrix", class_type("System.Collections.Generic.Dictionary`2", [tuple_type(string_type, int32_type), string_type])), ("Keys", list_type(string_type)), ("CommentKeys", list_type(string_type)), ("ColumnCount", int32_type)])
283
+
284
+
285
+ @dataclass(eq = False, repr = False, slots = True)
286
+ class SparseTable(Record):
287
+ Matrix: Any
288
+ Keys: FSharpList[str]
289
+ CommentKeys: FSharpList[str]
290
+ ColumnCount: int
291
+
292
+ SparseTable_reflection = _expr1804
293
+
294
+ def SparseTable__TryGetValue_11FD62A8(this: SparseTable, key: tuple[str, int]) -> str | None:
295
+ return Dictionary_tryGetValue(key, this.Matrix)
296
+
297
+
298
+ def SparseTable__TryGetValueDefault_5BAE6133(this: SparseTable, default_value: str, key: tuple[str, int]) -> str:
299
+ if key in this.Matrix:
300
+ return get_item_from_dict(this.Matrix, key)
301
+
302
+ else:
303
+ return default_value
304
+
305
+
306
+
307
+ def SparseTable_Create_Z2192E64B(matrix: Any | None=None, keys: FSharpList[str] | None=None, comment_keys: FSharpList[str] | None=None, length: int | None=None) -> SparseTable:
308
+ return SparseTable(default_arg(matrix, Dictionary_init()), default_arg(keys, empty()), default_arg(comment_keys, empty()), default_arg(length, 0))
309
+
310
+
311
+ def SparseTable_AddRow(key: str, values: IEnumerable_1[tuple[int, str]], matrix: SparseTable) -> SparseTable:
312
+ def action(tupled_arg: tuple[int, str], key: Any=key, values: Any=values, matrix: Any=matrix) -> None:
313
+ add_to_dict(matrix.Matrix, (key, tupled_arg[0]), tupled_arg[1])
314
+
315
+ iterate(action, values)
316
+ def _arrow1805(tuple: tuple[int, str], key: Any=key, values: Any=values, matrix: Any=matrix) -> int:
317
+ return tuple[0]
318
+
319
+ class ObjectExpr1806:
320
+ @property
321
+ def Compare(self) -> Callable[[int, int], int]:
322
+ return compare_primitives
323
+
324
+ length: int = (0 if is_empty(values) else (1 + max_by(_arrow1805, values, ObjectExpr1806())[0])) or 0
325
+ return SparseTable(matrix.Matrix, append(matrix.Keys, singleton(key)), matrix.CommentKeys, length if (length > matrix.ColumnCount) else matrix.ColumnCount)
326
+
327
+
328
+ def SparseTable_AddEmptyComment(key: str, matrix: SparseTable) -> SparseTable:
329
+ return SparseTable(matrix.Matrix, matrix.Keys, append(matrix.CommentKeys, singleton(key)), matrix.ColumnCount)
330
+
331
+
332
+ def SparseTable_AddComment(key: str, values: IEnumerable_1[tuple[int, str]], matrix: SparseTable) -> SparseTable:
333
+ if length_1(values) == 0:
334
+ return SparseTable_AddEmptyComment(key, matrix)
335
+
336
+ else:
337
+ def action(tupled_arg: tuple[int, str], key: Any=key, values: Any=values, matrix: Any=matrix) -> None:
338
+ add_to_dict(matrix.Matrix, (key, tupled_arg[0]), tupled_arg[1])
339
+
340
+ iterate(action, values)
341
+ def _arrow1807(tuple: tuple[int, str], key: Any=key, values: Any=values, matrix: Any=matrix) -> int:
342
+ return tuple[0]
343
+
344
+ class ObjectExpr1808:
345
+ @property
346
+ def Compare(self) -> Callable[[int, int], int]:
347
+ return compare_primitives
348
+
349
+ length: int = (0 if is_empty(values) else (1 + max_by(_arrow1807, values, ObjectExpr1808())[0])) or 0
350
+ return SparseTable(matrix.Matrix, matrix.Keys, append(matrix.CommentKeys, singleton(key)), length if (length > matrix.ColumnCount) else matrix.ColumnCount)
351
+
352
+
353
+
354
+ def SparseTable_FromRows_Z5579EC29(en: IEnumerator[IEnumerable_1[tuple[int, str]]], labels: FSharpList[str], line_number: int, prefix: str | None=None) -> tuple[str | None, int, FSharpList[Remark], SparseTable]:
355
+ try:
356
+ prefix_1: str = "" if (prefix is None) else (prefix + " ")
357
+ def loop(matrix_mut: SparseTable, remarks_mut: FSharpList[Remark], line_number_1_mut: int) -> tuple[str | None, int, FSharpList[Remark], SparseTable]:
358
+ while True:
359
+ (matrix, remarks, line_number_1) = (matrix_mut, remarks_mut, line_number_1_mut)
360
+ if en.System_Collections_IEnumerator_MoveNext():
361
+ def mapping(tupled_arg: tuple[int, str], matrix: Any=matrix, remarks: Any=remarks, line_number_1: Any=line_number_1) -> tuple[int, str]:
362
+ return (tupled_arg[0] - 1, tupled_arg[1])
363
+
364
+ row: IEnumerable_1[tuple[int, str]] = map(mapping, en.System_Collections_Generic_IEnumerator_1_get_Current())
365
+ def mapping_1(tuple: tuple[int, str], matrix: Any=matrix, remarks: Any=remarks, line_number_1: Any=line_number_1) -> str:
366
+ return tuple[1]
367
+
368
+ match_value: str | None = map_1(mapping_1, try_item(0, row))
369
+ vals: IEnumerable_1[tuple[int, str]] | None = Seq_trySkip(1, row)
370
+ key: str | None = match_value
371
+ (pattern_matching_result, k, v_1) = (None, None, None)
372
+ if key is not None:
373
+ active_pattern_result: str | None = Comment__007CComment_007C__007C(key)
374
+ if active_pattern_result is not None:
375
+ if vals is not None:
376
+ pattern_matching_result = 0
377
+ k = active_pattern_result
378
+ v_1 = vals
379
+
380
+ else:
381
+ pattern_matching_result = 1
382
+
383
+
384
+ else:
385
+ pattern_matching_result = 1
386
+
387
+
388
+ else:
389
+ pattern_matching_result = 1
390
+
391
+ if pattern_matching_result == 0:
392
+ matrix_mut = SparseTable_AddComment(k, v_1, matrix)
393
+ remarks_mut = remarks
394
+ line_number_1_mut = line_number_1 + 1
395
+ continue
396
+
397
+ elif pattern_matching_result == 1:
398
+ (pattern_matching_result_1, k_2, k_3, v_3, k_4) = (None, None, None, None, None)
399
+ active_pattern_result_1: str | None = Remark__007CRemark_007C__007C(key)
400
+ if active_pattern_result_1 is not None:
401
+ pattern_matching_result_1 = 0
402
+ k_2 = active_pattern_result_1
403
+
404
+ elif key is not None:
405
+ if vals is not None:
406
+ def _arrow1811(__unit: None=None, matrix: Any=matrix, remarks: Any=remarks, line_number_1: Any=line_number_1) -> bool:
407
+ v_2: IEnumerable_1[tuple[int, str]] = vals
408
+ k_1: str = key
409
+ def _arrow1810(label: str) -> bool:
410
+ return k_1 == (prefix_1 + label)
411
+
412
+ return exists(_arrow1810, labels)
413
+
414
+ if _arrow1811():
415
+ pattern_matching_result_1 = 1
416
+ k_3 = key
417
+ v_3 = vals
418
+
419
+ else:
420
+ pattern_matching_result_1 = 2
421
+ k_4 = key
422
+
423
+
424
+ else:
425
+ pattern_matching_result_1 = 2
426
+ k_4 = key
427
+
428
+
429
+ else:
430
+ pattern_matching_result_1 = 3
431
+
432
+ if pattern_matching_result_1 == 0:
433
+ matrix_mut = matrix
434
+ remarks_mut = cons(Remark.make(line_number_1, k_2), remarks)
435
+ line_number_1_mut = line_number_1 + 1
436
+ continue
437
+
438
+ elif pattern_matching_result_1 == 1:
439
+ def _arrow1809(label_1: str, matrix: Any=matrix, remarks: Any=remarks, line_number_1: Any=line_number_1) -> bool:
440
+ return k_3 == (prefix_1 + label_1)
441
+
442
+ matrix_mut = SparseTable_AddRow(find(_arrow1809, labels), v_3, matrix)
443
+ remarks_mut = remarks
444
+ line_number_1_mut = line_number_1 + 1
445
+ continue
446
+
447
+ elif pattern_matching_result_1 == 2:
448
+ return (k_4, line_number_1, remarks, matrix)
449
+
450
+ elif pattern_matching_result_1 == 3:
451
+ return (None, line_number_1, remarks, matrix)
452
+
453
+
454
+
455
+ else:
456
+ return (None, line_number_1, remarks, matrix)
457
+
458
+ break
459
+
460
+ return loop(SparseTable_Create_Z2192E64B(), empty(), line_number)
461
+
462
+ except Exception as err:
463
+ arg_1: str = str(err)
464
+ return to_fail(printf("Error parsing block in investigation file starting from line number %i: %s"))(line_number)(arg_1)
465
+
466
+
467
+
468
+ def SparseTable_ToRows_759CAFC1(matrix: SparseTable, prefix: str | None=None) -> IEnumerable_1[IEnumerable_1[tuple[int, str]]]:
469
+ prefix_1: str = "" if (prefix is None) else (prefix + " ")
470
+ def _arrow1817(__unit: None=None, matrix: Any=matrix, prefix: Any=prefix) -> IEnumerable_1[IEnumerable_1[tuple[int, str]]]:
471
+ def _arrow1813(key: str) -> IEnumerable_1[tuple[int, str]]:
472
+ def _arrow1812(i: int) -> str:
473
+ return SparseTable__TryGetValueDefault_5BAE6133(matrix, "", (key, i + 1))
474
+
475
+ return SparseRowModule_fromValues(cons(prefix_1 + key, initialize_1(matrix.ColumnCount - 1, _arrow1812)))
476
+
477
+ def _arrow1816(__unit: None=None) -> IEnumerable_1[IEnumerable_1[tuple[int, str]]]:
478
+ def _arrow1815(key_1: str) -> IEnumerable_1[tuple[int, str]]:
479
+ def _arrow1814(i_1: int) -> str:
480
+ return SparseTable__TryGetValueDefault_5BAE6133(matrix, "", (key_1, i_1 + 1))
481
+
482
+ return SparseRowModule_fromValues(cons(Comment_wrapCommentKey(key_1), initialize_1(matrix.ColumnCount - 1, _arrow1814)))
483
+
484
+ return map(_arrow1815, matrix.CommentKeys)
485
+
486
+ return append_1(map(_arrow1813, matrix.Keys), delay(_arrow1816))
487
+
488
+ return delay(_arrow1817)
489
+
490
+
491
+ def SparseTable_GetEmptyComments_3ECCA699(matrix: SparseTable) -> Array[Comment]:
492
+ def mapping(key: str, matrix: Any=matrix) -> Comment:
493
+ return Comment.create(key)
494
+
495
+ return list(map_2(mapping, matrix.CommentKeys))
496
+
497
+
498
+ __all__ = ["SparseRowModule_fromValues", "SparseRowModule_getValues", "SparseRowModule_fromAllValues", "SparseRowModule_getAllValues", "SparseRowModule_fromFsRow", "SparseRowModule_tryGetValueAt", "SparseRowModule_toDSLRow", "SparseRowModule_readFromSheet", "SparseRowModule_writeToSheet", "SparseTable_reflection", "SparseTable__TryGetValue_11FD62A8", "SparseTable__TryGetValueDefault_5BAE6133", "SparseTable_Create_Z2192E64B", "SparseTable_AddRow", "SparseTable_AddEmptyComment", "SparseTable_AddComment", "SparseTable_FromRows_Z5579EC29", "SparseTable_ToRows_759CAFC1", "SparseTable_GetEmptyComments_3ECCA699"]
499
+