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,1206 @@
1
+ from __future__ import annotations
2
+ from collections.abc import Callable
3
+ from typing import Any
4
+ from ...fable_modules.fable_library.array_ import (iterate as iterate_2, sort_descending)
5
+ from ...fable_modules.fable_library.list import (FSharpList, is_empty, iterate, append)
6
+ from ...fable_modules.fable_library.map_util import get_item_from_dict
7
+ from ...fable_modules.fable_library.option import (default_arg, map as map_1)
8
+ from ...fable_modules.fable_library.range import range_big_int
9
+ from ...fable_modules.fable_library.reflection import (TypeInfo, class_type)
10
+ from ...fable_modules.fable_library.seq import (to_array, delay, map, remove_at, iterate as iterate_1, try_find_index, length, collect, singleton, choose, indexed, to_list, map_indexed, append as append_1)
11
+ from ...fable_modules.fable_library.string_ import (to_fail, printf, join)
12
+ from ...fable_modules.fable_library.system_text import (StringBuilder__ctor, StringBuilder__AppendLine_Z721C83C5)
13
+ from ...fable_modules.fable_library.types import (Array, to_string)
14
+ from ...fable_modules.fable_library.util import (ignore, IEnumerable_1, get_enumerator, compare_primitives, equals, dispose, safe_hash)
15
+ from ..Helper.collections_ import (ResizeArray_map, ResizeArray_iteri, ResizeArray_singleton, ResizeArray_iter, ResizeArray_init, ResizeArray_choose, ResizeArray_mapi, ResizeArray_groupBy, ResizeArray_indexed)
16
+ from ..Helper.hash_codes import (box_hash_array, box_hash_seq)
17
+ from ..ontology_annotation import OntologyAnnotation
18
+ from .arc_table_aux import (SanityChecks_validateArcTableValues, ArcTableValues, Unchecked_tryGetCellAt, SanityChecks_validateColumnIndex, SanityChecks_validateRowIndex, Unchecked_getCellWithDefault, Unchecked_setCellAt, try_find_duplicate_unique, SanityChecks_validateColumn, Unchecked_addColumn, Unchecked_addColumnFill, Unchecked_removeHeader, Unchecked_removeColumnCells, try_find_duplicate_unique_in_array, Unchecked_removeColumnCells_withIndexChange, ColumnValueRefs, get_empty_cell_for_header, Unchecked_moveColumnTo, Unchecked_addRow, Unchecked_addEmptyRow, Unchecked_addRows, Unchecked_removeRowCells_withIndexChange, Unchecked_alignByHeaders, SanityChecks_validateCellColumns)
19
+ from .composite_cell import CompositeCell
20
+ from .composite_column import CompositeColumn
21
+ from .composite_header import CompositeHeader
22
+
23
+ def _expr1300() -> TypeInfo:
24
+ return class_type("ARCtrl.ArcTable", None, ArcTable)
25
+
26
+
27
+ class ArcTable:
28
+ def __init__(self, name: str, headers: Array[CompositeHeader] | None=None, columns: Array[Array[CompositeCell]] | None=None) -> None:
29
+ headers_1: Array[CompositeHeader] = default_arg(headers, [])
30
+ columns_1: Array[Array[CompositeCell]] = default_arg(columns, [])
31
+ valid: bool = SanityChecks_validateCellColumns(headers_1, columns_1, True)
32
+ self._values: ArcTableValues = ArcTableValues.from_cell_columns(columns_1)
33
+ self._name: str = name
34
+ self._headers: Array[CompositeHeader] = headers_1
35
+
36
+ @property
37
+ def ValueMap(self, __unit: None=None) -> Any:
38
+ this: ArcTable = self
39
+ return this._values.ValueMap
40
+
41
+ @ValueMap.setter
42
+ def ValueMap(self, value_map: Any) -> None:
43
+ this: ArcTable = self
44
+ this._values.ValueMap = value_map
45
+
46
+ @property
47
+ def ColumnRefs(self, __unit: None=None) -> Any:
48
+ this: ArcTable = self
49
+ return this._values.Columns
50
+
51
+ @ColumnRefs.setter
52
+ def ColumnRefs(self, internal_column_refs: Any) -> None:
53
+ this: ArcTable = self
54
+ this._values.Columns = internal_column_refs
55
+
56
+ @property
57
+ def Headers(self, __unit: None=None) -> Array[CompositeHeader]:
58
+ this: ArcTable = self
59
+ return this._headers
60
+
61
+ @Headers.setter
62
+ def Headers(self, new_headers: Array[CompositeHeader]) -> None:
63
+ this: ArcTable = self
64
+ ignore(SanityChecks_validateArcTableValues(new_headers, this._values, True))
65
+ this._headers = new_headers
66
+
67
+ @property
68
+ def Values(self, __unit: None=None) -> ArcTableValues:
69
+ this: ArcTable = self
70
+ return this._values
71
+
72
+ @property
73
+ def Name(self, __unit: None=None) -> str:
74
+ this: ArcTable = self
75
+ return this._name
76
+
77
+ @Name.setter
78
+ def Name(self, new_name: str) -> None:
79
+ this: ArcTable = self
80
+ this._name = new_name
81
+
82
+ @staticmethod
83
+ def create(name: str, headers: Array[CompositeHeader], values: Array[Array[CompositeCell]]) -> ArcTable:
84
+ return ArcTable(name, headers, values)
85
+
86
+ @staticmethod
87
+ def init(name: str) -> ArcTable:
88
+ return ArcTable(name, [], [])
89
+
90
+ @staticmethod
91
+ def from_arc_table_values(name: str, headers: Array[CompositeHeader], values: ArcTableValues) -> ArcTable:
92
+ t: ArcTable = ArcTable.init(name)
93
+ t.Headers = headers
94
+ t.ValueMap = values.ValueMap
95
+ t.ColumnRefs = values.Columns
96
+ t.RowCount = values.RowCount or 0
97
+ return t
98
+
99
+ @staticmethod
100
+ def create_from_rows(name: str, headers: Array[CompositeHeader], rows: Array[Array[CompositeCell]]) -> ArcTable:
101
+ t: ArcTable = ArcTable(name, headers)
102
+ t.AddRows(rows)
103
+ return t
104
+
105
+ def Validate(self, raise_exception: bool | None=None) -> bool:
106
+ this: ArcTable = self
107
+ raise_exception_1: bool = default_arg(raise_exception, True)
108
+ return SanityChecks_validateArcTableValues(this.Headers, this.Values, raise_exception_1)
109
+
110
+ @staticmethod
111
+ def validate(raise_exception: bool | None=None) -> Callable[[ArcTable], bool]:
112
+ def _arrow1227(table: ArcTable) -> bool:
113
+ return table.Validate(raise_exception)
114
+
115
+ return _arrow1227
116
+
117
+ @property
118
+ def ColumnCount(self, __unit: None=None) -> int:
119
+ this: ArcTable = self
120
+ return len(this.Headers)
121
+
122
+ @staticmethod
123
+ def column_count(table: ArcTable) -> int:
124
+ return table.ColumnCount
125
+
126
+ @property
127
+ def RowCount(self, __unit: None=None) -> int:
128
+ this: ArcTable = self
129
+ return this._values.RowCount
130
+
131
+ @RowCount.setter
132
+ def RowCount(self, new_row_count: int) -> None:
133
+ this: ArcTable = self
134
+ this._values.RowCount = new_row_count or 0
135
+
136
+ @staticmethod
137
+ def row_count(table: ArcTable) -> int:
138
+ return table.RowCount
139
+
140
+ @staticmethod
141
+ def set_row_count(new_row_count: int) -> Callable[[ArcTable], ArcTable]:
142
+ def _arrow1229(table: ArcTable) -> ArcTable:
143
+ new_table: ArcTable = table.Copy()
144
+ new_table.RowCount = new_row_count or 0
145
+ return new_table
146
+
147
+ return _arrow1229
148
+
149
+ @property
150
+ def Columns(self, __unit: None=None) -> Array[CompositeColumn]:
151
+ this: ArcTable = self
152
+ def _arrow1231(__unit: None=None) -> IEnumerable_1[CompositeColumn]:
153
+ def _arrow1230(i: int) -> CompositeColumn:
154
+ return this.GetColumn(i)
155
+
156
+ return map(_arrow1230, range_big_int(0, 1, this.ColumnCount - 1))
157
+
158
+ return list(to_array(delay(_arrow1231)))
159
+
160
+ def Copy(self, __unit: None=None) -> ArcTable:
161
+ this: ArcTable = self
162
+ def f(h: CompositeHeader) -> CompositeHeader:
163
+ return h.Copy()
164
+
165
+ next_headers: Array[CompositeHeader] = ResizeArray_map(f, this.Headers)
166
+ next_values: ArcTableValues = this._values.Copy()
167
+ return ArcTable.from_arc_table_values(this.Name, next_headers, next_values)
168
+
169
+ def TryGetCellAt(self, column: int, row: int) -> CompositeCell | None:
170
+ this: ArcTable = self
171
+ return Unchecked_tryGetCellAt(column, row, this._values)
172
+
173
+ @staticmethod
174
+ def try_get_cell_at(column: int, row: int) -> Callable[[ArcTable], CompositeCell | None]:
175
+ def _arrow1233(table: ArcTable) -> CompositeCell | None:
176
+ return table.TryGetCellAt(column, row)
177
+
178
+ return _arrow1233
179
+
180
+ def GetCellAt(self, column: int, row: int) -> CompositeCell:
181
+ this: ArcTable = self
182
+ SanityChecks_validateColumnIndex(column, this.ColumnCount, False)
183
+ SanityChecks_validateRowIndex(row, this.RowCount, False)
184
+ return Unchecked_getCellWithDefault(column, row, this._headers, this._values)
185
+
186
+ @staticmethod
187
+ def get_cell_at(column: int, row: int) -> Callable[[ArcTable], CompositeCell]:
188
+ def _arrow1235(table: ArcTable) -> CompositeCell:
189
+ return table.GetCellAt(column, row)
190
+
191
+ return _arrow1235
192
+
193
+ def IterColumns(self, action: Callable[[CompositeColumn], None]) -> None:
194
+ this: ArcTable = self
195
+ for column_index in range(0, (this.ColumnCount - 1) + 1, 1):
196
+ action(this.GetColumn(column_index))
197
+
198
+ @staticmethod
199
+ def iter_columns(action: Callable[[CompositeColumn], None]) -> Callable[[ArcTable], ArcTable]:
200
+ def _arrow1236(table: ArcTable) -> ArcTable:
201
+ copy: ArcTable = table.Copy()
202
+ copy.IterColumns(action)
203
+ return copy
204
+
205
+ return _arrow1236
206
+
207
+ def IteriColumns(self, action: Callable[[int, CompositeColumn], None]) -> None:
208
+ this: ArcTable = self
209
+ for column_index in range(0, (this.ColumnCount - 1) + 1, 1):
210
+ action(column_index, this.GetColumn(column_index))
211
+
212
+ @staticmethod
213
+ def iteri_columns(action: Callable[[int, CompositeColumn], None]) -> Callable[[ArcTable], ArcTable]:
214
+ def _arrow1237(table: ArcTable) -> ArcTable:
215
+ copy: ArcTable = table.Copy()
216
+ copy.IteriColumns(action)
217
+ return copy
218
+
219
+ return _arrow1237
220
+
221
+ def UpdateCellAt(self, column_index: int, row_index: int, c: CompositeCell, skip_validation: bool | None=None) -> None:
222
+ this: ArcTable = self
223
+ if not default_arg(skip_validation, False):
224
+ SanityChecks_validateColumnIndex(column_index, this.ColumnCount, False)
225
+ SanityChecks_validateRowIndex(row_index, this.RowCount, False)
226
+ ignore(c.ValidateAgainstHeader(this.Headers[column_index], True))
227
+
228
+ Unchecked_setCellAt(column_index, row_index, c, this._values)
229
+
230
+ @staticmethod
231
+ def update_cell_at(column_index: int, row_index: int, cell: CompositeCell, skip_validation: bool | None=None) -> Callable[[ArcTable], ArcTable]:
232
+ def _arrow1239(table: ArcTable) -> ArcTable:
233
+ new_table: ArcTable = table.Copy()
234
+ new_table.UpdateCellAt(column_index, row_index, cell, skip_validation)
235
+ return new_table
236
+
237
+ return _arrow1239
238
+
239
+ def SetCellAt(self, column_index: int, row_index: int, c: CompositeCell, skip_validation: bool | None=None) -> None:
240
+ this: ArcTable = self
241
+ if not default_arg(skip_validation, False):
242
+ SanityChecks_validateColumnIndex(column_index, this.ColumnCount, False)
243
+ ignore(c.ValidateAgainstHeader(this.Headers[column_index], True))
244
+
245
+ Unchecked_setCellAt(column_index, row_index, c, this._values)
246
+
247
+ @staticmethod
248
+ def set_cell_at(column_index: int, row_index: int, cell: CompositeCell, skip_validation: bool | None=None) -> Callable[[ArcTable], ArcTable]:
249
+ def _arrow1240(table: ArcTable) -> ArcTable:
250
+ new_table: ArcTable = table.Copy()
251
+ new_table.SetCellAt(column_index, row_index, cell, skip_validation)
252
+ return new_table
253
+
254
+ return _arrow1240
255
+
256
+ def UpdateCellsBy(self, f: Callable[[int, int, CompositeCell], CompositeCell], skip_validation: bool | None=None) -> None:
257
+ this: ArcTable = self
258
+ skip_validation_1: bool = default_arg(skip_validation, False)
259
+ with get_enumerator(this._values) as enumerator:
260
+ while enumerator.System_Collections_IEnumerator_MoveNext():
261
+ kv: Any = enumerator.System_Collections_Generic_IEnumerator_1_get_Current()
262
+ pattern_input: tuple[int, int] = kv[0]
263
+ ri: int = pattern_input[1] or 0
264
+ ci: int = pattern_input[0] or 0
265
+ new_cell: CompositeCell = f(ci, ri, kv[1])
266
+ if not skip_validation_1:
267
+ ignore(new_cell.ValidateAgainstHeader(this.Headers[ci], True))
268
+
269
+ Unchecked_setCellAt(ci, ri, new_cell, this._values)
270
+
271
+ @staticmethod
272
+ def update_cells_by(f: Callable[[int, int, CompositeCell], CompositeCell], skip_validation: bool | None=None) -> Callable[[ArcTable], None]:
273
+ def _arrow1243(table: ArcTable) -> None:
274
+ new_table: ArcTable = table.Copy()
275
+ new_table.UpdateCellsBy(f, skip_validation)
276
+
277
+ return _arrow1243
278
+
279
+ def UpdateCellBy(self, column_index: int, row_index: int, f: Callable[[CompositeCell], CompositeCell], skip_validation: bool | None=None) -> None:
280
+ this: ArcTable = self
281
+ skip_validation_1: bool = default_arg(skip_validation, False)
282
+ if not skip_validation_1:
283
+ SanityChecks_validateColumnIndex(column_index, this.ColumnCount, False)
284
+ SanityChecks_validateRowIndex(row_index, this.RowCount, False)
285
+
286
+ new_cell: CompositeCell = f(this.GetCellAt(column_index, row_index))
287
+ if not skip_validation_1:
288
+ ignore(new_cell.ValidateAgainstHeader(this.Headers[column_index], True))
289
+
290
+ Unchecked_setCellAt(column_index, row_index, new_cell, this._values)
291
+
292
+ @staticmethod
293
+ def update_cell_by(column_index: int, row_index: int, f: Callable[[CompositeCell], CompositeCell], skip_validation: bool | None=None) -> Callable[[ArcTable], None]:
294
+ def _arrow1246(table: ArcTable) -> None:
295
+ new_table: ArcTable = table.Copy()
296
+ new_table.UpdateCellBy(column_index, row_index, f, skip_validation)
297
+
298
+ return _arrow1246
299
+
300
+ def UpdateHeader(self, index: int, new_header: CompositeHeader, force_convert_cells: bool | None=None) -> None:
301
+ this: ArcTable = self
302
+ force_convert_cells_1: bool = default_arg(force_convert_cells, False)
303
+ SanityChecks_validateColumnIndex(index, this.ColumnCount, False)
304
+ header: CompositeHeader = new_header
305
+ match_value: int | None = try_find_duplicate_unique(header, remove_at(index, this.Headers))
306
+ if match_value is not None:
307
+ raise Exception(((("Invalid input. Tried setting unique header `" + str(header)) + "`, but header of same type already exists at index ") + str(match_value)) + ".")
308
+
309
+ c: CompositeColumn = CompositeColumn(new_header, this.GetColumn(index).Cells)
310
+ if c.Validate():
311
+ set_header: None
312
+ this.Headers[index] = new_header
313
+
314
+ elif force_convert_cells_1:
315
+ def f(c_1: CompositeCell) -> CompositeCell:
316
+ if c_1.is_free_text:
317
+ return c_1.ToTermCell()
318
+
319
+ else:
320
+ return c_1
321
+
322
+
323
+ def f_1(c_2: CompositeCell) -> CompositeCell:
324
+ return c_2.ToFreeTextCell()
325
+
326
+ converted_cells: Array[CompositeCell] = ResizeArray_map(f, c.Cells) if new_header.IsTermColumn else ResizeArray_map(f_1, c.Cells)
327
+ this.UpdateColumn(index, new_header, converted_cells)
328
+
329
+ else:
330
+ raise Exception("Tried setting header for column with invalid type of cells. Set `forceConvertCells` flag to automatically convert cells into valid CompositeCell type.")
331
+
332
+
333
+ @staticmethod
334
+ def update_header(index: int, header: CompositeHeader) -> Callable[[ArcTable], ArcTable]:
335
+ def _arrow1247(table: ArcTable) -> ArcTable:
336
+ new_table: ArcTable = table.Copy()
337
+ new_table.UpdateHeader(index, header)
338
+ return new_table
339
+
340
+ return _arrow1247
341
+
342
+ def AddColumn(self, header: CompositeHeader, cells: Array[CompositeCell] | None=None, index: int | None=None, force_replace: bool | None=None) -> None:
343
+ this: ArcTable = self
344
+ index_1: int = default_arg(index, this.ColumnCount) or 0
345
+ cells_1: Array[CompositeCell] = default_arg(cells, [])
346
+ force_replace_1: bool = default_arg(force_replace, False)
347
+ SanityChecks_validateColumnIndex(index_1, this.ColumnCount, True)
348
+ SanityChecks_validateColumn(CompositeColumn.create(header, cells_1))
349
+ Unchecked_addColumn(header, cells_1, index_1, force_replace_1, False, this.Headers, this._values)
350
+
351
+ @staticmethod
352
+ def add_column(header: CompositeHeader, cells: Array[CompositeCell] | None=None, index: int | None=None, force_replace: bool | None=None) -> Callable[[ArcTable], ArcTable]:
353
+ def _arrow1248(table: ArcTable) -> ArcTable:
354
+ new_table: ArcTable = table.Copy()
355
+ new_table.AddColumn(header, cells, index, force_replace)
356
+ return new_table
357
+
358
+ return _arrow1248
359
+
360
+ def AddColumnFill(self, header: CompositeHeader, cell: CompositeCell, index: int | None=None, force_replace: bool | None=None) -> None:
361
+ this: ArcTable = self
362
+ index_1: int = default_arg(index, this.ColumnCount) or 0
363
+ force_replace_1: bool = default_arg(force_replace, False)
364
+ SanityChecks_validateColumnIndex(index_1, this.ColumnCount, True)
365
+ SanityChecks_validateColumn(CompositeColumn.create(header, [cell]))
366
+ Unchecked_addColumnFill(header, cell, index_1, force_replace_1, False, this.Headers, this._values)
367
+
368
+ @staticmethod
369
+ def add_column_fill(header: CompositeHeader, cell: CompositeCell, index: int | None=None, force_replace: bool | None=None) -> Callable[[ArcTable], ArcTable]:
370
+ def _arrow1249(table: ArcTable) -> ArcTable:
371
+ new_table: ArcTable = table.Copy()
372
+ new_table.AddColumnFill(header, cell, index, force_replace)
373
+ return new_table
374
+
375
+ return _arrow1249
376
+
377
+ def UpdateColumn(self, column_index: int, header: CompositeHeader, cells: Array[CompositeCell] | None=None) -> None:
378
+ this: ArcTable = self
379
+ SanityChecks_validateColumnIndex(column_index, this.ColumnCount, False)
380
+ column: CompositeColumn = CompositeColumn.create(header, cells)
381
+ SanityChecks_validateColumn(column)
382
+ header_1: CompositeHeader = column.Header
383
+ match_value: int | None = try_find_duplicate_unique(header_1, remove_at(column_index, this.Headers))
384
+ if match_value is not None:
385
+ raise Exception(((("Invalid input. Tried setting unique header `" + str(header_1)) + "`, but header of same type already exists at index ") + str(match_value)) + ".")
386
+
387
+ Unchecked_removeHeader(column_index, this.Headers)
388
+ Unchecked_removeColumnCells(column_index, this._values)
389
+ this.Headers.insert(column_index, column.Header)
390
+ def f(row_index: int, v: CompositeCell) -> None:
391
+ Unchecked_setCellAt(column_index, row_index, v, this._values)
392
+
393
+ ResizeArray_iteri(f, column.Cells)
394
+
395
+ @staticmethod
396
+ def update_column(column_index: int, header: CompositeHeader, cells: Array[CompositeCell] | None=None) -> Callable[[ArcTable], ArcTable]:
397
+ def _arrow1250(table: ArcTable) -> ArcTable:
398
+ new_table: ArcTable = table.Copy()
399
+ new_table.UpdateColumn(column_index, header, cells)
400
+ return new_table
401
+
402
+ return _arrow1250
403
+
404
+ def InsertColumn(self, index: int, header: CompositeHeader, cells: Array[CompositeCell] | None=None) -> None:
405
+ this: ArcTable = self
406
+ this.AddColumn(header, cells, index, False)
407
+
408
+ @staticmethod
409
+ def insert_column(index: int, header: CompositeHeader, cells: Array[CompositeCell] | None=None) -> Callable[[ArcTable], ArcTable]:
410
+ def _arrow1251(table: ArcTable) -> ArcTable:
411
+ new_table: ArcTable = table.Copy()
412
+ new_table.InsertColumn(index, header, cells)
413
+ return new_table
414
+
415
+ return _arrow1251
416
+
417
+ def AppendColumn(self, header: CompositeHeader, cells: Array[CompositeCell] | None=None) -> None:
418
+ this: ArcTable = self
419
+ this.AddColumn(header, cells, this.ColumnCount, False)
420
+
421
+ @staticmethod
422
+ def append_column(header: CompositeHeader, cells: Array[CompositeCell] | None=None) -> Callable[[ArcTable], ArcTable]:
423
+ def _arrow1252(table: ArcTable) -> ArcTable:
424
+ new_table: ArcTable = table.Copy()
425
+ new_table.AppendColumn(header, cells)
426
+ return new_table
427
+
428
+ return _arrow1252
429
+
430
+ def AddColumns(self, columns: IEnumerable_1[CompositeColumn], index: int | None=None, force_replace: bool | None=None) -> None:
431
+ this: ArcTable = self
432
+ index_1: int = default_arg(index, this.ColumnCount) or 0
433
+ force_replace_1: bool = default_arg(force_replace, False)
434
+ SanityChecks_validateColumnIndex(index_1, this.ColumnCount, True)
435
+ def mapping(x: CompositeColumn) -> CompositeHeader:
436
+ return x.Header
437
+
438
+ duplicates: FSharpList[dict[str, Any]] = try_find_duplicate_unique_in_array(map(mapping, columns))
439
+ if not is_empty(duplicates):
440
+ sb: Any = StringBuilder__ctor()
441
+ ignore(StringBuilder__AppendLine_Z721C83C5(sb, "Found duplicate unique columns in `columns`."))
442
+ def action(x_1: dict[str, Any]) -> None:
443
+ ignore(StringBuilder__AppendLine_Z721C83C5(sb, ((((("Duplicate `" + str(x_1["HeaderType"])) + "` at index ") + str(x_1["Index1"])) + " and ") + str(x_1["Index2"])) + "."))
444
+
445
+ iterate(action, duplicates)
446
+ raise Exception(to_string(sb))
447
+
448
+ def action_1(x_2: CompositeColumn) -> None:
449
+ SanityChecks_validateColumn(x_2)
450
+
451
+ iterate_1(action_1, columns)
452
+ def action_2(col: CompositeColumn) -> None:
453
+ nonlocal index_1
454
+ prev_headers_count: int = len(this.Headers) or 0
455
+ Unchecked_addColumn(col.Header, col.Cells, index_1, force_replace_1, False, this.Headers, this._values)
456
+ if len(this.Headers) > prev_headers_count:
457
+ index_1 = (index_1 + 1) or 0
458
+
459
+
460
+ iterate_1(action_2, columns)
461
+
462
+ @staticmethod
463
+ def add_columns(columns: Array[CompositeColumn], index: int | None=None) -> Callable[[ArcTable], ArcTable]:
464
+ def _arrow1253(table: ArcTable) -> ArcTable:
465
+ new_table: ArcTable = table.Copy()
466
+ new_table.AddColumns(columns, index)
467
+ return new_table
468
+
469
+ return _arrow1253
470
+
471
+ def RemoveColumn(self, index: int) -> None:
472
+ this: ArcTable = self
473
+ SanityChecks_validateColumnIndex(index, this.ColumnCount, False)
474
+ column_count: int = this.ColumnCount or 0
475
+ Unchecked_removeHeader(index, this.Headers)
476
+ Unchecked_removeColumnCells_withIndexChange(index, column_count, this._values)
477
+
478
+ @staticmethod
479
+ def remove_column(index: int) -> Callable[[ArcTable], ArcTable]:
480
+ def _arrow1254(table: ArcTable) -> ArcTable:
481
+ new_table: ArcTable = table.Copy()
482
+ new_table.RemoveColumn(index)
483
+ return new_table
484
+
485
+ return _arrow1254
486
+
487
+ def RemoveColumns(self, index_arr: Array[int]) -> None:
488
+ this: ArcTable = self
489
+ def _arrow1255(index: int) -> None:
490
+ SanityChecks_validateColumnIndex(index, this.ColumnCount, False)
491
+
492
+ iterate_2(_arrow1255, index_arr)
493
+ def _arrow1256(index_1: int) -> None:
494
+ this.RemoveColumn(index_1)
495
+
496
+ class ObjectExpr1257:
497
+ @property
498
+ def Compare(self) -> Callable[[int, int], int]:
499
+ return compare_primitives
500
+
501
+ iterate_2(_arrow1256, sort_descending(index_arr, ObjectExpr1257()))
502
+
503
+ @staticmethod
504
+ def remove_columns(index_arr: Array[int]) -> Callable[[ArcTable], ArcTable]:
505
+ def _arrow1258(table: ArcTable) -> ArcTable:
506
+ new_table: ArcTable = table.Copy()
507
+ new_table.RemoveColumns(index_arr)
508
+ return new_table
509
+
510
+ return _arrow1258
511
+
512
+ def GetColumn(self, column_index: int, fail_on_missing_cell: bool | None=None) -> CompositeColumn:
513
+ this: ArcTable = self
514
+ fail_on_missing_cell_1: bool = default_arg(fail_on_missing_cell, False)
515
+ SanityChecks_validateColumnIndex(column_index, this.ColumnCount, False)
516
+ h: CompositeHeader = this.Headers[column_index]
517
+ cells: Array[CompositeCell] = []
518
+ if this.RowCount != 0:
519
+ col: ColumnValueRefs = get_item_from_dict(this._values.Columns, column_index)
520
+ if col.tag == 1:
521
+ vals: Any = col.fields[0]
522
+ empty_cell: CompositeCell = get_empty_cell_for_header(h, None)
523
+ for row_index in range(0, (this.RowCount - 1) + 1, 1):
524
+ if row_index in vals:
525
+ (cells.append(get_item_from_dict(this._values.ValueMap, get_item_from_dict(vals, row_index))))
526
+
527
+ elif fail_on_missing_cell_1:
528
+ to_fail(printf("Could not return column: Unable to find cell for index: (%i, %i)"))(column_index)(row_index)
529
+
530
+ else:
531
+ (cells.append(empty_cell))
532
+
533
+
534
+ else:
535
+ c: CompositeCell = get_item_from_dict(this._values.ValueMap, col.fields[0])
536
+ for i in range(0, (this.RowCount - 1) + 1, 1):
537
+ (cells.append(c))
538
+
539
+
540
+ return CompositeColumn.create(h, cells)
541
+
542
+ @staticmethod
543
+ def get_column(index: int, fail_on_missing_cell: bool | None=None) -> Callable[[ArcTable], CompositeColumn]:
544
+ def _arrow1259(table: ArcTable) -> CompositeColumn:
545
+ return table.GetColumn(index, fail_on_missing_cell)
546
+
547
+ return _arrow1259
548
+
549
+ def TryGetColumnByHeader(self, header: CompositeHeader, fail_on_missing_cell: bool | None=None) -> CompositeColumn | None:
550
+ this: ArcTable = self
551
+ def mapping(i: int) -> CompositeColumn:
552
+ return this.GetColumn(i, fail_on_missing_cell)
553
+
554
+ def predicate(x: CompositeHeader) -> bool:
555
+ return equals(x, header)
556
+
557
+ return map_1(mapping, try_find_index(predicate, this.Headers))
558
+
559
+ @staticmethod
560
+ def try_get_column_by_header(header: CompositeHeader, fail_on_missing_cell: bool | None=None) -> Callable[[ArcTable], CompositeColumn | None]:
561
+ def _arrow1260(table: ArcTable) -> CompositeColumn | None:
562
+ return table.TryGetColumnByHeader(header, fail_on_missing_cell)
563
+
564
+ return _arrow1260
565
+
566
+ def TryGetColumnByHeaderBy(self, header_predicate: Callable[[CompositeHeader], bool], fail_on_missing_cell: bool | None=None) -> CompositeColumn | None:
567
+ this: ArcTable = self
568
+ def mapping(i: int) -> CompositeColumn:
569
+ return this.GetColumn(i, fail_on_missing_cell)
570
+
571
+ return map_1(mapping, try_find_index(header_predicate, this.Headers))
572
+
573
+ @staticmethod
574
+ def try_get_column_by_header_by(header_predicate: Callable[[CompositeHeader], bool], fail_on_missing_cell: bool | None=None) -> Callable[[ArcTable], CompositeColumn | None]:
575
+ def _arrow1261(table: ArcTable) -> CompositeColumn | None:
576
+ return table.TryGetColumnByHeaderBy(header_predicate, fail_on_missing_cell)
577
+
578
+ return _arrow1261
579
+
580
+ def GetColumnByHeader(self, header: CompositeHeader, fail_on_missing_cell: bool | None=None) -> CompositeColumn:
581
+ this: ArcTable = self
582
+ match_value: CompositeColumn | None = this.TryGetColumnByHeader(header, fail_on_missing_cell)
583
+ if match_value is None:
584
+ arg: str = this.Name
585
+ return to_fail(printf("Unable to find column with header in table %s: %O"))(arg)(header)
586
+
587
+ else:
588
+ return match_value
589
+
590
+
591
+ @staticmethod
592
+ def get_column_by_header(header: CompositeHeader, fail_on_missing_cell: bool | None=None) -> Callable[[ArcTable], CompositeColumn]:
593
+ def _arrow1262(table: ArcTable) -> CompositeColumn:
594
+ return table.GetColumnByHeader(header, fail_on_missing_cell)
595
+
596
+ return _arrow1262
597
+
598
+ def TryGetInputColumn(self, __unit: None=None) -> CompositeColumn | None:
599
+ this: ArcTable = self
600
+ def mapping(i: int) -> CompositeColumn:
601
+ return this.GetColumn(i)
602
+
603
+ def predicate(x: CompositeHeader) -> bool:
604
+ return x.is_input
605
+
606
+ return map_1(mapping, try_find_index(predicate, this.Headers))
607
+
608
+ @staticmethod
609
+ def try_get_input_column(__unit: None=None) -> Callable[[ArcTable], CompositeColumn | None]:
610
+ def _arrow1263(table: ArcTable) -> CompositeColumn | None:
611
+ return table.TryGetInputColumn()
612
+
613
+ return _arrow1263
614
+
615
+ def GetInputColumn(self, __unit: None=None) -> CompositeColumn:
616
+ this: ArcTable = self
617
+ match_value: CompositeColumn | None = this.TryGetInputColumn()
618
+ if match_value is None:
619
+ arg: str = this.Name
620
+ return to_fail(printf("Unable to find input column in table %s"))(arg)
621
+
622
+ else:
623
+ return match_value
624
+
625
+
626
+ @staticmethod
627
+ def get_input_column(__unit: None=None) -> Callable[[ArcTable], CompositeColumn]:
628
+ def _arrow1264(table: ArcTable) -> CompositeColumn:
629
+ return table.GetInputColumn()
630
+
631
+ return _arrow1264
632
+
633
+ def TryGetOutputColumn(self, __unit: None=None) -> CompositeColumn | None:
634
+ this: ArcTable = self
635
+ def mapping(i: int) -> CompositeColumn:
636
+ return this.GetColumn(i)
637
+
638
+ def predicate(x: CompositeHeader) -> bool:
639
+ return x.is_output
640
+
641
+ return map_1(mapping, try_find_index(predicate, this.Headers))
642
+
643
+ @staticmethod
644
+ def try_get_output_column(__unit: None=None) -> Callable[[ArcTable], CompositeColumn | None]:
645
+ def _arrow1265(table: ArcTable) -> CompositeColumn | None:
646
+ return table.TryGetOutputColumn()
647
+
648
+ return _arrow1265
649
+
650
+ def GetOutputColumn(self, __unit: None=None) -> CompositeColumn:
651
+ this: ArcTable = self
652
+ match_value: CompositeColumn | None = this.TryGetOutputColumn()
653
+ if match_value is None:
654
+ arg: str = this.Name
655
+ return to_fail(printf("Unable to find output column in table %s"))(arg)
656
+
657
+ else:
658
+ return match_value
659
+
660
+
661
+ @staticmethod
662
+ def get_output_column(__unit: None=None) -> Callable[[ArcTable], CompositeColumn]:
663
+ def _arrow1266(table: ArcTable) -> CompositeColumn:
664
+ return table.GetOutputColumn()
665
+
666
+ return _arrow1266
667
+
668
+ def MoveColumn(self, start_col: int, end_col: int) -> None:
669
+ this: ArcTable = self
670
+ if start_col == end_col:
671
+ pass
672
+
673
+ elif True if (start_col < 0) else (start_col >= this.ColumnCount):
674
+ to_fail(printf("Cannt move column. Invalid start column index: %i"))(start_col)
675
+
676
+ elif True if (end_col < 0) else (end_col >= this.ColumnCount):
677
+ to_fail(printf("Cannt move column. Invalid end column index: %i"))(end_col)
678
+
679
+ else:
680
+ Unchecked_moveColumnTo(start_col, end_col, this.Headers, this._values)
681
+
682
+
683
+ @staticmethod
684
+ def move_column(start_col: int, end_col: int) -> Callable[[ArcTable], ArcTable]:
685
+ def _arrow1267(table: ArcTable) -> ArcTable:
686
+ new_table: ArcTable = table.Copy()
687
+ new_table.MoveColumn(start_col, end_col)
688
+ return new_table
689
+
690
+ return _arrow1267
691
+
692
+ def AddRow(self, cells: Array[CompositeCell] | None=None, index: int | None=None) -> None:
693
+ this: ArcTable = self
694
+ index_1: int = default_arg(index, this.RowCount) or 0
695
+ SanityChecks_validateRowIndex(index_1, this.RowCount, True)
696
+ if cells is not None:
697
+ cells_1: Array[CompositeCell] = cells
698
+ column_count: int = this.ColumnCount or 0
699
+ new_cells_count: int = length(cells_1) or 0
700
+ if column_count == 0:
701
+ raise Exception("Table contains no columns! Cannot add row to empty table!")
702
+
703
+ elif new_cells_count != column_count:
704
+ raise Exception(((("Cannot add a new row with " + str(new_cells_count)) + " cells, as the table has ") + str(column_count)) + " columns.")
705
+
706
+ for column_index in range(0, (this.ColumnCount - 1) + 1, 1):
707
+ h: CompositeHeader = this.Headers[column_index]
708
+ column: CompositeColumn = CompositeColumn.create(h, [cells_1[column_index]])
709
+ ignore(cells_1[column_index].ValidateAgainstHeader(h, True))
710
+ Unchecked_addRow(index_1, cells_1, this.Headers, this._values)
711
+
712
+ else:
713
+ Unchecked_addEmptyRow(index_1, this._values)
714
+
715
+
716
+ @staticmethod
717
+ def add_row(cells: Array[CompositeCell] | None=None, index: int | None=None) -> Callable[[ArcTable], ArcTable]:
718
+ def _arrow1268(table: ArcTable) -> ArcTable:
719
+ new_table: ArcTable = table.Copy()
720
+ new_table.AddRow(cells, index)
721
+ return new_table
722
+
723
+ return _arrow1268
724
+
725
+ def UpdateRow(self, row_index: int, cells: Array[CompositeCell]) -> None:
726
+ this: ArcTable = self
727
+ SanityChecks_validateRowIndex(row_index, this.RowCount, False)
728
+ column_count: int = this.RowCount or 0
729
+ new_cells_count: int = length(cells) or 0
730
+ if column_count == 0:
731
+ raise Exception("Table contains no columns! Cannot add row to empty table!")
732
+
733
+ elif new_cells_count != column_count:
734
+ raise Exception(((("Cannot add a new row with " + str(new_cells_count)) + " cells, as the table has ") + str(column_count)) + " columns.")
735
+
736
+ def f(i: int, cell: CompositeCell) -> None:
737
+ h: CompositeHeader = this.Headers[i]
738
+ SanityChecks_validateColumn(CompositeColumn.create(h, ResizeArray_singleton(cell)))
739
+
740
+ ResizeArray_iteri(f, cells)
741
+ def f_1(column_index: int, cell_1: CompositeCell) -> None:
742
+ Unchecked_setCellAt(column_index, row_index, cell_1, this._values)
743
+
744
+ ResizeArray_iteri(f_1, cells)
745
+
746
+ @staticmethod
747
+ def update_row(row_index: int, cells: Array[CompositeCell]) -> Callable[[ArcTable], ArcTable]:
748
+ def _arrow1269(table: ArcTable) -> ArcTable:
749
+ new_table: ArcTable = table.Copy()
750
+ new_table.UpdateRow(row_index, cells)
751
+ return new_table
752
+
753
+ return _arrow1269
754
+
755
+ def AppendRow(self, cells: Array[CompositeCell] | None=None) -> None:
756
+ this: ArcTable = self
757
+ this.AddRow(cells, this.RowCount)
758
+
759
+ @staticmethod
760
+ def append_row(cells: Array[CompositeCell] | None=None) -> Callable[[ArcTable], ArcTable]:
761
+ def _arrow1270(table: ArcTable) -> ArcTable:
762
+ new_table: ArcTable = table.Copy()
763
+ new_table.AppendRow(cells)
764
+ return new_table
765
+
766
+ return _arrow1270
767
+
768
+ def InsertRow(self, index: int, cells: Array[CompositeCell] | None=None) -> None:
769
+ this: ArcTable = self
770
+ this.AddRow(cells, index)
771
+
772
+ @staticmethod
773
+ def insert_row(index: int, cells: Array[CompositeCell] | None=None) -> Callable[[ArcTable], ArcTable]:
774
+ def _arrow1271(table: ArcTable) -> ArcTable:
775
+ new_table: ArcTable = table.Copy()
776
+ new_table.AddRow(cells, index)
777
+ return new_table
778
+
779
+ return _arrow1271
780
+
781
+ def AddRows(self, rows: Array[Array[CompositeCell]], index: int | None=None) -> None:
782
+ this: ArcTable = self
783
+ index_1: int = default_arg(index, this.RowCount) or 0
784
+ SanityChecks_validateRowIndex(index_1, this.RowCount, True)
785
+ def f(row: Array[CompositeCell]) -> None:
786
+ column_count: int = this.ColumnCount or 0
787
+ new_cells_count: int = length(row) or 0
788
+ if column_count == 0:
789
+ raise Exception("Table contains no columns! Cannot add row to empty table!")
790
+
791
+ elif new_cells_count != column_count:
792
+ raise Exception(((("Cannot add a new row with " + str(new_cells_count)) + " cells, as the table has ") + str(column_count)) + " columns.")
793
+
794
+
795
+ ResizeArray_iter(f, rows)
796
+ enumerator: Any = get_enumerator(rows)
797
+ try:
798
+ while enumerator.System_Collections_IEnumerator_MoveNext():
799
+ row_1: Array[CompositeCell] = enumerator.System_Collections_Generic_IEnumerator_1_get_Current()
800
+ for column_index in range(0, (this.ColumnCount - 1) + 1, 1):
801
+ h: CompositeHeader = this.Headers[column_index]
802
+ ignore(row_1[column_index].ValidateAgainstHeader(h, True))
803
+
804
+ finally:
805
+ dispose(enumerator)
806
+
807
+ Unchecked_addRows(index_1, rows, this.Headers, this._values)
808
+
809
+ @staticmethod
810
+ def add_rows(rows: Array[Array[CompositeCell]], index: int | None=None) -> Callable[[ArcTable], ArcTable]:
811
+ def _arrow1272(table: ArcTable) -> ArcTable:
812
+ new_table: ArcTable = table.Copy()
813
+ new_table.AddRows(rows, index)
814
+ return new_table
815
+
816
+ return _arrow1272
817
+
818
+ def AddRowsEmpty(self, row_count: int, index: int | None=None) -> None:
819
+ this: ArcTable = self
820
+ def _arrow1274(__unit: None=None) -> IEnumerable_1[CompositeCell]:
821
+ def _arrow1273(column_index: int) -> IEnumerable_1[CompositeCell]:
822
+ return singleton(get_empty_cell_for_header(this.Headers[column_index], Unchecked_tryGetCellAt(column_index, 0, this._values)))
823
+
824
+ return collect(_arrow1273, range_big_int(0, 1, this.ColumnCount - 1))
825
+
826
+ row: Array[CompositeCell] = list(to_array(delay(_arrow1274)))
827
+ def _arrow1275(_arg: int) -> Array[CompositeCell]:
828
+ return row
829
+
830
+ rows: Array[Array[CompositeCell]] = ResizeArray_init(row_count, _arrow1275)
831
+ this.AddRows(rows, index)
832
+
833
+ @staticmethod
834
+ def add_rows_empty(row_count: int, index: int | None=None) -> Callable[[ArcTable], ArcTable]:
835
+ def _arrow1276(table: ArcTable) -> ArcTable:
836
+ new_table: ArcTable = table.Copy()
837
+ new_table.AddRowsEmpty(row_count, index)
838
+ return new_table
839
+
840
+ return _arrow1276
841
+
842
+ def RemoveRow(self, index: int) -> None:
843
+ this: ArcTable = self
844
+ SanityChecks_validateRowIndex(index, this.RowCount, False)
845
+ Unchecked_removeRowCells_withIndexChange(index, this._values)
846
+
847
+ @staticmethod
848
+ def remove_row(index: int) -> Callable[[ArcTable], ArcTable]:
849
+ def _arrow1277(table: ArcTable) -> ArcTable:
850
+ new_table: ArcTable = table.Copy()
851
+ new_table.RemoveRow(index)
852
+ return new_table
853
+
854
+ return _arrow1277
855
+
856
+ def RemoveRows(self, index_arr: Array[int]) -> None:
857
+ this: ArcTable = self
858
+ def _arrow1278(index: int) -> None:
859
+ SanityChecks_validateRowIndex(index, this.RowCount, False)
860
+
861
+ iterate_2(_arrow1278, index_arr)
862
+ def _arrow1279(index_1: int) -> None:
863
+ this.RemoveRow(index_1)
864
+
865
+ class ObjectExpr1280:
866
+ @property
867
+ def Compare(self) -> Callable[[int, int], int]:
868
+ return compare_primitives
869
+
870
+ iterate_2(_arrow1279, sort_descending(index_arr, ObjectExpr1280()))
871
+
872
+ @staticmethod
873
+ def remove_rows(index_arr: Array[int]) -> Callable[[ArcTable], ArcTable]:
874
+ def _arrow1281(table: ArcTable) -> ArcTable:
875
+ new_table: ArcTable = table.Copy()
876
+ new_table.RemoveColumns(index_arr)
877
+ return new_table
878
+
879
+ return _arrow1281
880
+
881
+ def GetRow(self, row_index: int, SkipValidation: bool | None=None) -> Array[CompositeCell]:
882
+ this: ArcTable = self
883
+ if not equals(SkipValidation, True):
884
+ SanityChecks_validateRowIndex(row_index, this.RowCount, False)
885
+
886
+ def _arrow1283(__unit: None=None) -> IEnumerable_1[CompositeCell]:
887
+ def _arrow1282(column_index: int) -> CompositeCell:
888
+ return this.GetCellAt(column_index, row_index)
889
+
890
+ return map(_arrow1282, range_big_int(0, 1, this.ColumnCount - 1))
891
+
892
+ return list(to_array(delay(_arrow1283)))
893
+
894
+ @staticmethod
895
+ def get_row(index: int) -> Callable[[ArcTable], Array[CompositeCell]]:
896
+ def _arrow1284(table: ArcTable) -> Array[CompositeCell]:
897
+ return table.GetRow(index)
898
+
899
+ return _arrow1284
900
+
901
+ def Join(self, table: ArcTable, index: int | None=None, join_options: str | None=None, force_replace: bool | None=None) -> None:
902
+ this: ArcTable = self
903
+ join_options_1: str = default_arg(join_options, "headers")
904
+ force_replace_1: bool = default_arg(force_replace, False)
905
+ index_1: int = default_arg(index, this.ColumnCount) or 0
906
+ index_1 = (this.ColumnCount if (index_1 == -1) else index_1) or 0
907
+ SanityChecks_validateColumnIndex(index_1, this.ColumnCount, True)
908
+ only_headers: bool = join_options_1 == "headers"
909
+ columns: Array[CompositeColumn]
910
+ pre: Array[CompositeColumn] = table.Columns
911
+ def f_2(c_1: CompositeColumn) -> CompositeColumn:
912
+ units_opt: Array[OntologyAnnotation] | None = c_1.TryGetColumnUnits()
913
+ if units_opt is None:
914
+ return CompositeColumn(c_1.Header, [])
915
+
916
+ else:
917
+ def f_1(u: OntologyAnnotation, c_1: Any=c_1) -> CompositeCell:
918
+ return CompositeCell.create_unitized("", u)
919
+
920
+ return CompositeColumn(c_1.Header, ResizeArray_map(f_1, units_opt))
921
+
922
+
923
+ def f(c: CompositeColumn) -> CompositeColumn:
924
+ return CompositeColumn(c.Header, [])
925
+
926
+ columns = ResizeArray_map(f_2, pre) if (join_options_1 == "withUnit") else (pre if (join_options_1 == "withValues") else ResizeArray_map(f, pre))
927
+ def mapping(x: CompositeColumn) -> CompositeHeader:
928
+ return x.Header
929
+
930
+ duplicates: FSharpList[dict[str, Any]] = try_find_duplicate_unique_in_array(map(mapping, columns))
931
+ if not is_empty(duplicates):
932
+ sb: Any = StringBuilder__ctor()
933
+ ignore(StringBuilder__AppendLine_Z721C83C5(sb, "Found duplicate unique columns in `columns`."))
934
+ def action(x_1: dict[str, Any]) -> None:
935
+ ignore(StringBuilder__AppendLine_Z721C83C5(sb, ((((("Duplicate `" + str(x_1["HeaderType"])) + "` at index ") + str(x_1["Index1"])) + " and ") + str(x_1["Index2"])) + "."))
936
+
937
+ iterate(action, duplicates)
938
+ raise Exception(to_string(sb))
939
+
940
+ def f_3(x_2: CompositeColumn) -> None:
941
+ SanityChecks_validateColumn(x_2)
942
+
943
+ ResizeArray_iter(f_3, columns)
944
+ def f_4(col: CompositeColumn) -> None:
945
+ nonlocal index_1
946
+ prev_headers_count: int = len(this.Headers) or 0
947
+ Unchecked_addColumn(col.Header, col.Cells, index_1, force_replace_1, only_headers, this.Headers, this._values)
948
+ if len(this.Headers) > prev_headers_count:
949
+ index_1 = (index_1 + 1) or 0
950
+
951
+
952
+ ResizeArray_iter(f_4, columns)
953
+
954
+ @staticmethod
955
+ def join(table: ArcTable, index: int | None=None, join_options: str | None=None, force_replace: bool | None=None) -> Callable[[ArcTable], ArcTable]:
956
+ def _arrow1285(this: ArcTable) -> ArcTable:
957
+ copy: ArcTable = this.Copy()
958
+ copy.Join(table, index, join_options, force_replace)
959
+ return copy
960
+
961
+ return _arrow1285
962
+
963
+ def AddProtocolTypeColumn(self, types: Array[OntologyAnnotation] | None=None, index: int | None=None, force_replace: bool | None=None) -> None:
964
+ this: ArcTable = self
965
+ def mapping(a: Array[OntologyAnnotation]) -> Array[CompositeCell]:
966
+ def f(Item: OntologyAnnotation, a: Any=a) -> CompositeCell:
967
+ return CompositeCell(0, Item)
968
+
969
+ return ResizeArray_map(f, a)
970
+
971
+ cells: Array[CompositeCell] | None = map_1(mapping, types)
972
+ this.AddColumn(CompositeHeader(4), cells, index, force_replace)
973
+
974
+ def AddProtocolVersionColumn(self, versions: Array[str] | None=None, index: int | None=None, force_replace: bool | None=None) -> None:
975
+ this: ArcTable = self
976
+ def mapping(a: Array[str]) -> Array[CompositeCell]:
977
+ def f(Item: str, a: Any=a) -> CompositeCell:
978
+ return CompositeCell(1, Item)
979
+
980
+ return ResizeArray_map(f, a)
981
+
982
+ cells: Array[CompositeCell] | None = map_1(mapping, versions)
983
+ this.AddColumn(CompositeHeader(7), cells, index, force_replace)
984
+
985
+ def AddProtocolUriColumn(self, uris: Array[str] | None=None, index: int | None=None, force_replace: bool | None=None) -> None:
986
+ this: ArcTable = self
987
+ def mapping(a: Array[str]) -> Array[CompositeCell]:
988
+ def f(Item: str, a: Any=a) -> CompositeCell:
989
+ return CompositeCell(1, Item)
990
+
991
+ return ResizeArray_map(f, a)
992
+
993
+ cells: Array[CompositeCell] | None = map_1(mapping, uris)
994
+ this.AddColumn(CompositeHeader(6), cells, index, force_replace)
995
+
996
+ def AddProtocolDescriptionColumn(self, descriptions: Array[str] | None=None, index: int | None=None, force_replace: bool | None=None) -> None:
997
+ this: ArcTable = self
998
+ def mapping(a: Array[str]) -> Array[CompositeCell]:
999
+ def f(Item: str, a: Any=a) -> CompositeCell:
1000
+ return CompositeCell(1, Item)
1001
+
1002
+ return ResizeArray_map(f, a)
1003
+
1004
+ cells: Array[CompositeCell] | None = map_1(mapping, descriptions)
1005
+ this.AddColumn(CompositeHeader(5), cells, index, force_replace)
1006
+
1007
+ def AddProtocolNameColumn(self, names: Array[str] | None=None, index: int | None=None, force_replace: bool | None=None) -> None:
1008
+ this: ArcTable = self
1009
+ def mapping(a: Array[str]) -> Array[CompositeCell]:
1010
+ def f(Item: str, a: Any=a) -> CompositeCell:
1011
+ return CompositeCell(1, Item)
1012
+
1013
+ return ResizeArray_map(f, a)
1014
+
1015
+ cells: Array[CompositeCell] | None = map_1(mapping, names)
1016
+ this.AddColumn(CompositeHeader(8), cells, index, force_replace)
1017
+
1018
+ def GetProtocolTypeColumn(self, __unit: None=None) -> CompositeColumn:
1019
+ this: ArcTable = self
1020
+ return this.GetColumnByHeader(CompositeHeader(4))
1021
+
1022
+ def GetProtocolVersionColumn(self, __unit: None=None) -> CompositeColumn:
1023
+ this: ArcTable = self
1024
+ return this.GetColumnByHeader(CompositeHeader(7))
1025
+
1026
+ def GetProtocolUriColumn(self, __unit: None=None) -> CompositeColumn:
1027
+ this: ArcTable = self
1028
+ return this.GetColumnByHeader(CompositeHeader(6))
1029
+
1030
+ def GetProtocolDescriptionColumn(self, __unit: None=None) -> CompositeColumn:
1031
+ this: ArcTable = self
1032
+ return this.GetColumnByHeader(CompositeHeader(5))
1033
+
1034
+ def GetProtocolNameColumn(self, __unit: None=None) -> CompositeColumn:
1035
+ this: ArcTable = self
1036
+ return this.GetColumnByHeader(CompositeHeader(8))
1037
+
1038
+ def TryGetProtocolNameColumn(self, __unit: None=None) -> CompositeColumn | None:
1039
+ this: ArcTable = self
1040
+ return this.TryGetColumnByHeader(CompositeHeader(8))
1041
+
1042
+ def GetComponentColumns(self, __unit: None=None) -> Array[CompositeColumn]:
1043
+ this: ArcTable = self
1044
+ def f(h: CompositeHeader) -> CompositeColumn | None:
1045
+ if h.is_component:
1046
+ return this.GetColumnByHeader(h)
1047
+
1048
+ else:
1049
+ return None
1050
+
1051
+
1052
+ return ResizeArray_choose(f, this.Headers)
1053
+
1054
+ def RescanValueMap(self, __unit: None=None) -> None:
1055
+ this: ArcTable = self
1056
+ this._values.RescanValueMap()
1057
+
1058
+ @staticmethod
1059
+ def SplitByColumnValues(column_index: int) -> Callable[[ArcTable], Array[ArcTable]]:
1060
+ def _arrow1286(table: ArcTable) -> Array[ArcTable]:
1061
+ def f_4(i: int, index_group: Array[int]) -> ArcTable:
1062
+ headers: Array[CompositeHeader] = table.Headers
1063
+ def f_3(i_1: int, i: Any=i, index_group: Any=index_group) -> Array[CompositeCell]:
1064
+ return table.GetRow(i_1, True)
1065
+
1066
+ rows: Array[Array[CompositeCell]] = ResizeArray_map(f_3, index_group)
1067
+ return ArcTable.create_from_rows(table.Name, headers, rows)
1068
+
1069
+ def f_2(tupled_arg: tuple[CompositeCell, Array[tuple[int, CompositeCell]]]) -> Array[int]:
1070
+ def f_1(tuple_1: tuple[int, CompositeCell], tupled_arg: Any=tupled_arg) -> int:
1071
+ return tuple_1[0]
1072
+
1073
+ return ResizeArray_map(f_1, tupled_arg[1])
1074
+
1075
+ def f(tuple: tuple[int, CompositeCell]) -> CompositeCell:
1076
+ return tuple[1]
1077
+
1078
+ return ResizeArray_mapi(f_4, ResizeArray_map(f_2, ResizeArray_groupBy(f, ResizeArray_indexed(table.GetColumn(column_index).Cells))))
1079
+
1080
+ return _arrow1286
1081
+
1082
+ @staticmethod
1083
+ def SplitByColumnValuesByHeader(header: CompositeHeader) -> Callable[[ArcTable], Array[ArcTable]]:
1084
+ def _arrow1287(table: ArcTable) -> Array[ArcTable]:
1085
+ def predicate(x: CompositeHeader) -> bool:
1086
+ return equals(x, header)
1087
+
1088
+ index: int | None = try_find_index(predicate, table.Headers)
1089
+ if index is None:
1090
+ return ResizeArray_singleton(table.Copy())
1091
+
1092
+ else:
1093
+ i: int = index or 0
1094
+ return ArcTable.SplitByColumnValues(i)(table)
1095
+
1096
+
1097
+ return _arrow1287
1098
+
1099
+ @staticmethod
1100
+ def SplitByProtocolREF() -> Callable[[ArcTable], Array[ArcTable]]:
1101
+ def _arrow1288(table: ArcTable) -> Array[ArcTable]:
1102
+ return ArcTable.SplitByColumnValuesByHeader(CompositeHeader(8))(table)
1103
+
1104
+ return _arrow1288
1105
+
1106
+ @staticmethod
1107
+ def update_reference_by_annotation_table(ref_table: ArcTable, annotation_table: ArcTable) -> ArcTable:
1108
+ ref_table_1: ArcTable = ref_table.Copy()
1109
+ annotation_table_1: ArcTable = annotation_table.Copy()
1110
+ def chooser(tupled_arg: tuple[int, CompositeHeader]) -> int | None:
1111
+ if tupled_arg[1].is_protocol_column:
1112
+ return None
1113
+
1114
+ else:
1115
+ return tupled_arg[0]
1116
+
1117
+
1118
+ non_protocol_columns: Array[int] = to_array(choose(chooser, indexed(ref_table_1.Headers)))
1119
+ ref_table_1.RemoveColumns(non_protocol_columns)
1120
+ ref_table_1.RowCount = annotation_table_1.RowCount or 0
1121
+ enumerator: Any = get_enumerator(annotation_table_1.Columns)
1122
+ try:
1123
+ while enumerator.System_Collections_IEnumerator_MoveNext():
1124
+ c: CompositeColumn = enumerator.System_Collections_Generic_IEnumerator_1_get_Current()
1125
+ ref_table_1.AddColumn(c.Header, c.Cells, None, True)
1126
+
1127
+ finally:
1128
+ dispose(enumerator)
1129
+
1130
+ return ref_table_1
1131
+
1132
+ @staticmethod
1133
+ def append(table1: ArcTable, table2: ArcTable) -> ArcTable:
1134
+ def get_list(t: ArcTable) -> FSharpList[FSharpList[tuple[CompositeHeader, CompositeCell]]]:
1135
+ def _arrow1290(__unit: None=None, t: Any=t) -> IEnumerable_1[FSharpList[tuple[CompositeHeader, CompositeCell]]]:
1136
+ def _arrow1289(row: int) -> FSharpList[tuple[CompositeHeader, CompositeCell]]:
1137
+ def mapping(i: int, c: CompositeCell) -> tuple[CompositeHeader, CompositeCell]:
1138
+ return (t.Headers[i], c)
1139
+
1140
+ return to_list(map_indexed(mapping, t.GetRow(row, True)))
1141
+
1142
+ return map(_arrow1289, range_big_int(0, 1, t.RowCount - 1))
1143
+
1144
+ return to_list(delay(_arrow1290))
1145
+
1146
+ pattern_input: tuple[Array[CompositeHeader], ArcTableValues] = Unchecked_alignByHeaders(False, append(get_list(table1), get_list(table2)))
1147
+ return ArcTable.from_arc_table_values(table1.Name, pattern_input[0], pattern_input[1])
1148
+
1149
+ def __str__(self, __unit: None=None) -> str:
1150
+ this: ArcTable = self
1151
+ row_count: int = this.RowCount or 0
1152
+ def _arrow1299(__unit: None=None) -> IEnumerable_1[str]:
1153
+ def _arrow1298(__unit: None=None) -> IEnumerable_1[str]:
1154
+ def _arrow1297(__unit: None=None) -> IEnumerable_1[str]:
1155
+ def _arrow1296(__unit: None=None) -> IEnumerable_1[str]:
1156
+ def _arrow1291(row_i: int) -> str:
1157
+ return join("\t|\t", map(to_string, this.GetRow(row_i)))
1158
+
1159
+ def _arrow1294(__unit: None=None) -> IEnumerable_1[str]:
1160
+ def _arrow1293(__unit: None=None) -> IEnumerable_1[str]:
1161
+ def _arrow1292(row_i_1: int) -> str:
1162
+ return join("\t|\t", map(to_string, this.GetRow(row_i_1)))
1163
+
1164
+ return map(_arrow1292, range_big_int(row_count - 20, 1, row_count - 1))
1165
+
1166
+ return append_1(singleton("..."), delay(_arrow1293))
1167
+
1168
+ def _arrow1295(row_i_2: int) -> str:
1169
+ return join("\t|\t", map(to_string, this.GetRow(row_i_2)))
1170
+
1171
+ return append_1(map(_arrow1291, range_big_int(0, 1, 19)), delay(_arrow1294)) if (row_count > 50) else (singleton("No rows") if (row_count == 0) else map(_arrow1295, range_big_int(0, 1, row_count - 1)))
1172
+
1173
+ return append_1(singleton(join("\t|\t", map(to_string, this.Headers))), delay(_arrow1296))
1174
+
1175
+ return append_1(singleton("-------------"), delay(_arrow1297))
1176
+
1177
+ return append_1(singleton(("Table: " + this.Name) + ""), delay(_arrow1298))
1178
+
1179
+ return join("\n", to_list(delay(_arrow1299)))
1180
+
1181
+ def StructurallyEquals(self, other: ArcTable) -> bool:
1182
+ this: ArcTable = self
1183
+ return safe_hash(this) == safe_hash(other)
1184
+
1185
+ def ReferenceEquals(self, other: ArcTable) -> bool:
1186
+ this: ArcTable = self
1187
+ return this is other
1188
+
1189
+ def __eq__(self, other: Any=None) -> bool:
1190
+ this: ArcTable = self
1191
+ return this.StructurallyEquals(other) if isinstance(other, ArcTable) else False
1192
+
1193
+ def __hash__(self, __unit: None=None) -> Any:
1194
+ this: ArcTable = self
1195
+ v_hash: int = safe_hash(this._values) or 0
1196
+ return box_hash_array([this.Name, box_hash_seq(this.Headers), v_hash])
1197
+
1198
+
1199
+ ArcTable_reflection = _expr1300
1200
+
1201
+ def ArcTable__ctor_2D310C9B(name: str, headers: Array[CompositeHeader] | None=None, columns: Array[Array[CompositeCell]] | None=None) -> ArcTable:
1202
+ return ArcTable(name, headers, columns)
1203
+
1204
+
1205
+ __all__ = ["ArcTable_reflection"]
1206
+