arctrl 3.0.0a3__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 (456) hide show
  1. arctrl/__init__.py +18 -0
  2. arctrl/py/CWL/__init__.py +0 -0
  3. arctrl/py/CWL/cwltypes.py +150 -0
  4. arctrl/py/CWL/decode.py +973 -0
  5. arctrl/py/CWL/encode.py +1 -0
  6. arctrl/py/CWL/inputs.py +88 -0
  7. arctrl/py/CWL/outputs.py +85 -0
  8. arctrl/py/CWL/requirements.py +77 -0
  9. arctrl/py/CWL/tool_description.py +103 -0
  10. arctrl/py/CWL/workflow_description.py +104 -0
  11. arctrl/py/CWL/workflow_steps.py +113 -0
  12. arctrl/py/Contract/__init__.py +0 -0
  13. arctrl/py/Contract/arc.py +60 -0
  14. arctrl/py/Contract/arc_assay.py +125 -0
  15. arctrl/py/Contract/arc_investigation.py +88 -0
  16. arctrl/py/Contract/arc_run.py +125 -0
  17. arctrl/py/Contract/arc_study.py +126 -0
  18. arctrl/py/Contract/arc_workflow.py +125 -0
  19. arctrl/py/Contract/contract.py +153 -0
  20. arctrl/py/Contract/datamap.py +372 -0
  21. arctrl/py/Contract/git.py +118 -0
  22. arctrl/py/Contract/validation_packages_config.py +107 -0
  23. arctrl/py/ContractIO/__init__.py +0 -0
  24. arctrl/py/ContractIO/contract_io.py +344 -0
  25. arctrl/py/ContractIO/file_system_helper.py +264 -0
  26. arctrl/py/Core/Helper/__init__.py +0 -0
  27. arctrl/py/Core/Helper/collections_.py +438 -0
  28. arctrl/py/Core/Helper/date_time.py +26 -0
  29. arctrl/py/Core/Helper/hash_codes.py +60 -0
  30. arctrl/py/Core/Helper/identifier.py +248 -0
  31. arctrl/py/Core/Helper/orcid.py +42 -0
  32. arctrl/py/Core/Helper/printer.py +13 -0
  33. arctrl/py/Core/Helper/regex.py +554 -0
  34. arctrl/py/Core/Helper/sem_ver.py +71 -0
  35. arctrl/py/Core/Helper/url.py +148 -0
  36. arctrl/py/Core/Process/__init__.py +0 -0
  37. arctrl/py/Core/Process/column_index.py +280 -0
  38. arctrl/py/Core/Process/component.py +200 -0
  39. arctrl/py/Core/Process/factor.py +151 -0
  40. arctrl/py/Core/Process/factor_value.py +182 -0
  41. arctrl/py/Core/Process/material.py +74 -0
  42. arctrl/py/Core/Process/material_attribute.py +95 -0
  43. arctrl/py/Core/Process/material_attribute_value.py +184 -0
  44. arctrl/py/Core/Process/material_type.py +45 -0
  45. arctrl/py/Core/Process/process.py +477 -0
  46. arctrl/py/Core/Process/process_input.py +265 -0
  47. arctrl/py/Core/Process/process_output.py +235 -0
  48. arctrl/py/Core/Process/process_parameter_value.py +200 -0
  49. arctrl/py/Core/Process/process_sequence.py +435 -0
  50. arctrl/py/Core/Process/protocol.py +175 -0
  51. arctrl/py/Core/Process/protocol_parameter.py +98 -0
  52. arctrl/py/Core/Process/sample.py +82 -0
  53. arctrl/py/Core/Process/source.py +62 -0
  54. arctrl/py/Core/Table/__init__.py +0 -0
  55. arctrl/py/Core/Table/arc_table.py +1264 -0
  56. arctrl/py/Core/Table/arc_table_aux.py +575 -0
  57. arctrl/py/Core/Table/arc_tables.py +591 -0
  58. arctrl/py/Core/Table/composite_cell.py +319 -0
  59. arctrl/py/Core/Table/composite_column.py +73 -0
  60. arctrl/py/Core/Table/composite_header.py +739 -0
  61. arctrl/py/Core/__init__.py +0 -0
  62. arctrl/py/Core/arc_types.py +5064 -0
  63. arctrl/py/Core/comment.py +128 -0
  64. arctrl/py/Core/comment_list.py +127 -0
  65. arctrl/py/Core/conversion.py +1313 -0
  66. arctrl/py/Core/data.py +245 -0
  67. arctrl/py/Core/data_context.py +157 -0
  68. arctrl/py/Core/data_file.py +112 -0
  69. arctrl/py/Core/data_map.py +225 -0
  70. arctrl/py/Core/identifier_setters.py +31 -0
  71. arctrl/py/Core/iproperty_value.py +36 -0
  72. arctrl/py/Core/ontology_annotation.py +299 -0
  73. arctrl/py/Core/ontology_source_reference.py +114 -0
  74. arctrl/py/Core/person.py +259 -0
  75. arctrl/py/Core/publication.py +161 -0
  76. arctrl/py/Core/template.py +231 -0
  77. arctrl/py/Core/templates.py +148 -0
  78. arctrl/py/Core/uri.py +11 -0
  79. arctrl/py/Core/value.py +188 -0
  80. arctrl/py/FileSystem/__init__.py +0 -0
  81. arctrl/py/FileSystem/commit.py +21 -0
  82. arctrl/py/FileSystem/default_gitattributes.py +5 -0
  83. arctrl/py/FileSystem/default_gitignore.py +5 -0
  84. arctrl/py/FileSystem/file_system.py +58 -0
  85. arctrl/py/FileSystem/file_system_tree.py +426 -0
  86. arctrl/py/FileSystem/path.py +64 -0
  87. arctrl/py/Json/DataMap/__init__.py +0 -0
  88. arctrl/py/Json/DataMap/data_context.py +101 -0
  89. arctrl/py/Json/DataMap/data_map.py +53 -0
  90. arctrl/py/Json/Process/__init__.py +0 -0
  91. arctrl/py/Json/Process/assay_materials.py +46 -0
  92. arctrl/py/Json/Process/component.py +79 -0
  93. arctrl/py/Json/Process/factor.py +107 -0
  94. arctrl/py/Json/Process/factor_value.py +101 -0
  95. arctrl/py/Json/Process/material.py +226 -0
  96. arctrl/py/Json/Process/material_attribute.py +79 -0
  97. arctrl/py/Json/Process/material_attribute_value.py +101 -0
  98. arctrl/py/Json/Process/material_type.py +53 -0
  99. arctrl/py/Json/Process/process.py +296 -0
  100. arctrl/py/Json/Process/process_input.py +83 -0
  101. arctrl/py/Json/Process/process_output.py +67 -0
  102. arctrl/py/Json/Process/process_parameter_value.py +81 -0
  103. arctrl/py/Json/Process/protocol.py +354 -0
  104. arctrl/py/Json/Process/protocol_parameter.py +79 -0
  105. arctrl/py/Json/Process/sample.py +277 -0
  106. arctrl/py/Json/Process/source.py +214 -0
  107. arctrl/py/Json/Process/study_materials.py +52 -0
  108. arctrl/py/Json/Process/value.py +56 -0
  109. arctrl/py/Json/ROCrate/__init__.py +0 -0
  110. arctrl/py/Json/ROCrate/ldcontext.py +133 -0
  111. arctrl/py/Json/ROCrate/ldgraph.py +111 -0
  112. arctrl/py/Json/ROCrate/ldnode.py +290 -0
  113. arctrl/py/Json/ROCrate/ldref.py +44 -0
  114. arctrl/py/Json/ROCrate/ldvalue.py +102 -0
  115. arctrl/py/Json/Table/__init__.py +0 -0
  116. arctrl/py/Json/Table/arc_table.py +393 -0
  117. arctrl/py/Json/Table/cell_table.py +83 -0
  118. arctrl/py/Json/Table/composite_cell.py +136 -0
  119. arctrl/py/Json/Table/composite_header.py +67 -0
  120. arctrl/py/Json/Table/iotype.py +24 -0
  121. arctrl/py/Json/Table/oatable.py +82 -0
  122. arctrl/py/Json/Table/templates.py +281 -0
  123. arctrl/py/Json/__init__.py +0 -0
  124. arctrl/py/Json/assay.py +600 -0
  125. arctrl/py/Json/comment.py +206 -0
  126. arctrl/py/Json/context/rocrate/__init__.py +0 -0
  127. arctrl/py/Json/context/rocrate/isa_assay_context.py +101 -0
  128. arctrl/py/Json/context/rocrate/isa_comment_context.py +60 -0
  129. arctrl/py/Json/context/rocrate/isa_component_context.py +77 -0
  130. arctrl/py/Json/context/rocrate/isa_data_context.py +74 -0
  131. arctrl/py/Json/context/rocrate/isa_factor_context.py +74 -0
  132. arctrl/py/Json/context/rocrate/isa_factor_value_context.py +84 -0
  133. arctrl/py/Json/context/rocrate/isa_investigation_context.py +110 -0
  134. arctrl/py/Json/context/rocrate/isa_material_attribute_context.py +64 -0
  135. arctrl/py/Json/context/rocrate/isa_material_attribute_value_context.py +80 -0
  136. arctrl/py/Json/context/rocrate/isa_material_context.py +71 -0
  137. arctrl/py/Json/context/rocrate/isa_ontology_annotation_context.py +68 -0
  138. arctrl/py/Json/context/rocrate/isa_ontology_source_reference_context.py +75 -0
  139. arctrl/py/Json/context/rocrate/isa_organization_context.py +55 -0
  140. arctrl/py/Json/context/rocrate/isa_person_context.py +131 -0
  141. arctrl/py/Json/context/rocrate/isa_process_context.py +94 -0
  142. arctrl/py/Json/context/rocrate/isa_process_parameter_value_context.py +80 -0
  143. arctrl/py/Json/context/rocrate/isa_protocol_context.py +97 -0
  144. arctrl/py/Json/context/rocrate/isa_protocol_parameter_context.py +64 -0
  145. arctrl/py/Json/context/rocrate/isa_publication_context.py +78 -0
  146. arctrl/py/Json/context/rocrate/isa_sample_context.py +65 -0
  147. arctrl/py/Json/context/rocrate/isa_source_context.py +66 -0
  148. arctrl/py/Json/context/rocrate/isa_study_context.py +125 -0
  149. arctrl/py/Json/context/rocrate/property_value_context.py +73 -0
  150. arctrl/py/Json/context/rocrate/rocrate_context.py +81 -0
  151. arctrl/py/Json/converter_options.py +23 -0
  152. arctrl/py/Json/data.py +356 -0
  153. arctrl/py/Json/data_file.py +63 -0
  154. arctrl/py/Json/decode.py +155 -0
  155. arctrl/py/Json/encode.py +92 -0
  156. arctrl/py/Json/idtable.py +44 -0
  157. arctrl/py/Json/investigation.py +695 -0
  158. arctrl/py/Json/ontology_annotation.py +404 -0
  159. arctrl/py/Json/ontology_source_reference.py +255 -0
  160. arctrl/py/Json/person.py +658 -0
  161. arctrl/py/Json/property_value.py +359 -0
  162. arctrl/py/Json/publication.py +279 -0
  163. arctrl/py/Json/string_table.py +76 -0
  164. arctrl/py/Json/study.py +793 -0
  165. arctrl/py/JsonIO/DataMap/__init__.py +0 -0
  166. arctrl/py/JsonIO/DataMap/data_map.py +53 -0
  167. arctrl/py/JsonIO/Process/__init__.py +0 -0
  168. arctrl/py/JsonIO/Process/component.py +60 -0
  169. arctrl/py/JsonIO/Process/factor.py +36 -0
  170. arctrl/py/JsonIO/Process/factor_value.py +38 -0
  171. arctrl/py/JsonIO/Process/material.py +60 -0
  172. arctrl/py/JsonIO/Process/material_attribute.py +38 -0
  173. arctrl/py/JsonIO/Process/material_attribute_value.py +60 -0
  174. arctrl/py/JsonIO/Process/material_type.py +36 -0
  175. arctrl/py/JsonIO/Process/process.py +60 -0
  176. arctrl/py/JsonIO/Process/process_input.py +38 -0
  177. arctrl/py/JsonIO/Process/process_output.py +60 -0
  178. arctrl/py/JsonIO/Process/process_parameter_value.py +60 -0
  179. arctrl/py/JsonIO/Process/process_sequence.py +71 -0
  180. arctrl/py/JsonIO/Process/protocol.py +60 -0
  181. arctrl/py/JsonIO/Process/protocol_parameter.py +36 -0
  182. arctrl/py/JsonIO/Process/sample.py +60 -0
  183. arctrl/py/JsonIO/Process/source.py +60 -0
  184. arctrl/py/JsonIO/Process/study_materials.py +52 -0
  185. arctrl/py/JsonIO/Process/value.py +32 -0
  186. arctrl/py/JsonIO/Table/__init__.py +0 -0
  187. arctrl/py/JsonIO/Table/arc_table.py +121 -0
  188. arctrl/py/JsonIO/Table/composite_cell.py +36 -0
  189. arctrl/py/JsonIO/Table/composite_header.py +36 -0
  190. arctrl/py/JsonIO/Table/compression.py +85 -0
  191. arctrl/py/JsonIO/Table/iotype.py +36 -0
  192. arctrl/py/JsonIO/Table/templates.py +113 -0
  193. arctrl/py/JsonIO/__init__.py +0 -0
  194. arctrl/py/JsonIO/assay.py +113 -0
  195. arctrl/py/JsonIO/comment.py +80 -0
  196. arctrl/py/JsonIO/data.py +60 -0
  197. arctrl/py/JsonIO/data_file.py +58 -0
  198. arctrl/py/JsonIO/decode.py +9 -0
  199. arctrl/py/JsonIO/encode.py +1 -0
  200. arctrl/py/JsonIO/investigation.py +113 -0
  201. arctrl/py/JsonIO/ldobject.py +106 -0
  202. arctrl/py/JsonIO/ontology_annotation.py +80 -0
  203. arctrl/py/JsonIO/ontology_source_reference.py +80 -0
  204. arctrl/py/JsonIO/person.py +82 -0
  205. arctrl/py/JsonIO/publication.py +82 -0
  206. arctrl/py/JsonIO/study.py +114 -0
  207. arctrl/py/ROCrate/Generic/__init__.py +0 -0
  208. arctrl/py/ROCrate/Generic/comment.py +131 -0
  209. arctrl/py/ROCrate/Generic/dataset.py +817 -0
  210. arctrl/py/ROCrate/Generic/defined_term.py +131 -0
  211. arctrl/py/ROCrate/Generic/file.py +237 -0
  212. arctrl/py/ROCrate/Generic/lab_process.py +324 -0
  213. arctrl/py/ROCrate/Generic/lab_protocol.py +338 -0
  214. arctrl/py/ROCrate/Generic/organization.py +83 -0
  215. arctrl/py/ROCrate/Generic/person.py +484 -0
  216. arctrl/py/ROCrate/Generic/postal_address.py +195 -0
  217. arctrl/py/ROCrate/Generic/property_value.py +696 -0
  218. arctrl/py/ROCrate/Generic/sample.py +202 -0
  219. arctrl/py/ROCrate/Generic/scholarly_article.py +229 -0
  220. arctrl/py/ROCrate/ISAProfile/__init__.py +0 -0
  221. arctrl/py/ROCrate/ISAProfile/assay.py +70 -0
  222. arctrl/py/ROCrate/ISAProfile/data.py +65 -0
  223. arctrl/py/ROCrate/ISAProfile/dataset.py +24 -0
  224. arctrl/py/ROCrate/ISAProfile/investigation.py +73 -0
  225. arctrl/py/ROCrate/ISAProfile/lab_process.py +162 -0
  226. arctrl/py/ROCrate/ISAProfile/lab_protocol.py +37 -0
  227. arctrl/py/ROCrate/ISAProfile/person.py +72 -0
  228. arctrl/py/ROCrate/ISAProfile/property_value.py +98 -0
  229. arctrl/py/ROCrate/ISAProfile/sample.py +64 -0
  230. arctrl/py/ROCrate/ISAProfile/scholarly_article.py +98 -0
  231. arctrl/py/ROCrate/ISAProfile/study.py +74 -0
  232. arctrl/py/ROCrate/__init__.py +0 -0
  233. arctrl/py/ROCrate/arc_rocrate_metadata.py +39 -0
  234. arctrl/py/ROCrate/dyn_obj_extensions.py +1 -0
  235. arctrl/py/ROCrate/helper.py +8 -0
  236. arctrl/py/ROCrate/ldcontext.py +362 -0
  237. arctrl/py/ROCrate/ldobject.py +1247 -0
  238. arctrl/py/ROCrate/rocrate_context.py +51 -0
  239. arctrl/py/Spreadsheet/AnnotationTable/__init__.py +0 -0
  240. arctrl/py/Spreadsheet/AnnotationTable/arc_table.py +193 -0
  241. arctrl/py/Spreadsheet/AnnotationTable/composite_cell.py +78 -0
  242. arctrl/py/Spreadsheet/AnnotationTable/composite_column.py +210 -0
  243. arctrl/py/Spreadsheet/AnnotationTable/composite_header.py +623 -0
  244. arctrl/py/Spreadsheet/DataMapTable/__init__.py +0 -0
  245. arctrl/py/Spreadsheet/DataMapTable/data_map_column.py +114 -0
  246. arctrl/py/Spreadsheet/DataMapTable/data_map_header.py +618 -0
  247. arctrl/py/Spreadsheet/DataMapTable/data_map_table.py +119 -0
  248. arctrl/py/Spreadsheet/Metadata/__init__.py +0 -0
  249. arctrl/py/Spreadsheet/Metadata/assays.py +125 -0
  250. arctrl/py/Spreadsheet/Metadata/comment.py +77 -0
  251. arctrl/py/Spreadsheet/Metadata/contacts.py +134 -0
  252. arctrl/py/Spreadsheet/Metadata/conversions.py +190 -0
  253. arctrl/py/Spreadsheet/Metadata/design_descriptors.py +34 -0
  254. arctrl/py/Spreadsheet/Metadata/factors.py +107 -0
  255. arctrl/py/Spreadsheet/Metadata/ontology_annotation.py +88 -0
  256. arctrl/py/Spreadsheet/Metadata/ontology_source_reference.py +96 -0
  257. arctrl/py/Spreadsheet/Metadata/protocols.py +146 -0
  258. arctrl/py/Spreadsheet/Metadata/publication.py +122 -0
  259. arctrl/py/Spreadsheet/Metadata/run.py +122 -0
  260. arctrl/py/Spreadsheet/Metadata/sparse_table.py +508 -0
  261. arctrl/py/Spreadsheet/Metadata/study.py +312 -0
  262. arctrl/py/Spreadsheet/Metadata/workflow.py +151 -0
  263. arctrl/py/Spreadsheet/__init__.py +0 -0
  264. arctrl/py/Spreadsheet/arc_assay.py +233 -0
  265. arctrl/py/Spreadsheet/arc_investigation.py +418 -0
  266. arctrl/py/Spreadsheet/arc_run.py +190 -0
  267. arctrl/py/Spreadsheet/arc_study.py +144 -0
  268. arctrl/py/Spreadsheet/arc_workflow.py +176 -0
  269. arctrl/py/Spreadsheet/assembly_info.py +1 -0
  270. arctrl/py/Spreadsheet/collection_aux.py +167 -0
  271. arctrl/py/Spreadsheet/data_map.py +44 -0
  272. arctrl/py/Spreadsheet/template.py +460 -0
  273. arctrl/py/ValidationPackages/__init__.py +0 -0
  274. arctrl/py/ValidationPackages/validation_package.py +82 -0
  275. arctrl/py/ValidationPackages/validation_packages_config.py +132 -0
  276. arctrl/py/WebRequest/__init__.py +0 -0
  277. arctrl/py/WebRequest/web_request.py +9 -0
  278. arctrl/py/WebRequest/web_request_py.py +135 -0
  279. arctrl/py/Yaml/__init__.py +0 -0
  280. arctrl/py/Yaml/decode.py +1 -0
  281. arctrl/py/Yaml/encode.py +10 -0
  282. arctrl/py/Yaml/validation_package.py +77 -0
  283. arctrl/py/Yaml/validation_packages_config.py +86 -0
  284. arctrl/py/__init__.py +0 -0
  285. arctrl/py/arc.py +1400 -0
  286. arctrl/py/column_index.py +280 -0
  287. arctrl/py/conversion.py +2184 -0
  288. arctrl/py/cross_async.py +76 -0
  289. arctrl/py/fable_modules/dynamic_obj/__init__.py +0 -0
  290. arctrl/py/fable_modules/dynamic_obj/dyn_obj.py +136 -0
  291. arctrl/py/fable_modules/dynamic_obj/dynamic_obj.py +415 -0
  292. arctrl/py/fable_modules/dynamic_obj/fable_js.py +1 -0
  293. arctrl/py/fable_modules/dynamic_obj/fable_py.py +288 -0
  294. arctrl/py/fable_modules/dynamic_obj/hash_codes.py +82 -0
  295. arctrl/py/fable_modules/dynamic_obj/property_helper.py +25 -0
  296. arctrl/py/fable_modules/dynamic_obj/reflection_utils.py +87 -0
  297. arctrl/py/fable_modules/fable_library/__init__.py +0 -0
  298. arctrl/py/fable_modules/fable_library/array_.py +1528 -0
  299. arctrl/py/fable_modules/fable_library/async_.py +377 -0
  300. arctrl/py/fable_modules/fable_library/async_builder.py +379 -0
  301. arctrl/py/fable_modules/fable_library/big_int.py +330 -0
  302. arctrl/py/fable_modules/fable_library/bit_converter.py +131 -0
  303. arctrl/py/fable_modules/fable_library/boolean.py +26 -0
  304. arctrl/py/fable_modules/fable_library/char.py +237 -0
  305. arctrl/py/fable_modules/fable_library/choice.py +212 -0
  306. arctrl/py/fable_modules/fable_library/date.py +779 -0
  307. arctrl/py/fable_modules/fable_library/date_offset.py +79 -0
  308. arctrl/py/fable_modules/fable_library/decimal_.py +190 -0
  309. arctrl/py/fable_modules/fable_library/diagnostics.py +54 -0
  310. arctrl/py/fable_modules/fable_library/double.py +87 -0
  311. arctrl/py/fable_modules/fable_library/encoding.py +41 -0
  312. arctrl/py/fable_modules/fable_library/event.py +206 -0
  313. arctrl/py/fable_modules/fable_library/file.py +107 -0
  314. arctrl/py/fable_modules/fable_library/fsharp_collections.py +52 -0
  315. arctrl/py/fable_modules/fable_library/fsharp_core.py +123 -0
  316. arctrl/py/fable_modules/fable_library/global_.py +63 -0
  317. arctrl/py/fable_modules/fable_library/guid.py +41 -0
  318. arctrl/py/fable_modules/fable_library/int32.py +73 -0
  319. arctrl/py/fable_modules/fable_library/list.py +1788 -0
  320. arctrl/py/fable_modules/fable_library/long.py +240 -0
  321. arctrl/py/fable_modules/fable_library/mailbox_processor.py +179 -0
  322. arctrl/py/fable_modules/fable_library/map.py +1854 -0
  323. arctrl/py/fable_modules/fable_library/map_util.py +148 -0
  324. arctrl/py/fable_modules/fable_library/mutable_map.py +397 -0
  325. arctrl/py/fable_modules/fable_library/mutable_set.py +279 -0
  326. arctrl/py/fable_modules/fable_library/native.py +45 -0
  327. arctrl/py/fable_modules/fable_library/numeric.py +46 -0
  328. arctrl/py/fable_modules/fable_library/observable.py +222 -0
  329. arctrl/py/fable_modules/fable_library/option.py +128 -0
  330. arctrl/py/fable_modules/fable_library/path.py +62 -0
  331. arctrl/py/fable_modules/fable_library/range.py +117 -0
  332. arctrl/py/fable_modules/fable_library/reflection.py +463 -0
  333. arctrl/py/fable_modules/fable_library/reg_exp.py +137 -0
  334. arctrl/py/fable_modules/fable_library/resize_array.py +31 -0
  335. arctrl/py/fable_modules/fable_library/result.py +212 -0
  336. arctrl/py/fable_modules/fable_library/seq.py +1979 -0
  337. arctrl/py/fable_modules/fable_library/seq2.py +221 -0
  338. arctrl/py/fable_modules/fable_library/set.py +2414 -0
  339. arctrl/py/fable_modules/fable_library/singleton_local_time_zone.py +36 -0
  340. arctrl/py/fable_modules/fable_library/string_.py +573 -0
  341. arctrl/py/fable_modules/fable_library/system_collections_generic.py +462 -0
  342. arctrl/py/fable_modules/fable_library/system_text.py +237 -0
  343. arctrl/py/fable_modules/fable_library/task.py +116 -0
  344. arctrl/py/fable_modules/fable_library/task_builder.py +122 -0
  345. arctrl/py/fable_modules/fable_library/thread.py +5 -0
  346. arctrl/py/fable_modules/fable_library/time_span.py +283 -0
  347. arctrl/py/fable_modules/fable_library/timer.py +24 -0
  348. arctrl/py/fable_modules/fable_library/types.py +401 -0
  349. arctrl/py/fable_modules/fable_library/uri.py +109 -0
  350. arctrl/py/fable_modules/fable_library/util.py +2735 -0
  351. arctrl/py/fable_modules/fable_openpyxl/__init__.py +0 -0
  352. arctrl/py/fable_modules/fable_openpyxl/openpyxl.py +362 -0
  353. arctrl/py/fable_modules/fable_python/cognite-sdk/__init__.py +0 -0
  354. arctrl/py/fable_modules/fable_python/cognite-sdk/cognite_sdk.py +22 -0
  355. arctrl/py/fable_modules/fable_python/flask/__init__.py +0 -0
  356. arctrl/py/fable_modules/fable_python/flask/flask.py +34 -0
  357. arctrl/py/fable_modules/fable_python/jupyter/__init__.py +0 -0
  358. arctrl/py/fable_modules/fable_python/jupyter/ipy_widgets.py +47 -0
  359. arctrl/py/fable_modules/fable_python/jupyter/ipython.py +13 -0
  360. arctrl/py/fable_modules/fable_python/stdlib/__init__.py +0 -0
  361. arctrl/py/fable_modules/fable_python/stdlib/ast.py +1 -0
  362. arctrl/py/fable_modules/fable_python/stdlib/asyncio/__init__.py +0 -0
  363. arctrl/py/fable_modules/fable_python/stdlib/asyncio/events.py +17 -0
  364. arctrl/py/fable_modules/fable_python/stdlib/asyncio/futures.py +52 -0
  365. arctrl/py/fable_modules/fable_python/stdlib/asyncio/tasks.py +38 -0
  366. arctrl/py/fable_modules/fable_python/stdlib/base64_.py +1 -0
  367. arctrl/py/fable_modules/fable_python/stdlib/builtins_.py +38 -0
  368. arctrl/py/fable_modules/fable_python/stdlib/html.py +1 -0
  369. arctrl/py/fable_modules/fable_python/stdlib/json.py +1 -0
  370. arctrl/py/fable_modules/fable_python/stdlib/math_.py +1 -0
  371. arctrl/py/fable_modules/fable_python/stdlib/os_.py +1 -0
  372. arctrl/py/fable_modules/fable_python/stdlib/queue_.py +1 -0
  373. arctrl/py/fable_modules/fable_python/stdlib/string_.py +1 -0
  374. arctrl/py/fable_modules/fable_python/stdlib/sys_.py +30 -0
  375. arctrl/py/fable_modules/fable_python/stdlib/time_.py +1 -0
  376. arctrl/py/fable_modules/fable_python/stdlib/tk_inter.py +1 -0
  377. arctrl/py/fable_modules/fs_spreadsheet/Cells/__init__.py +0 -0
  378. arctrl/py/fable_modules/fs_spreadsheet/Cells/fs_cell.py +338 -0
  379. arctrl/py/fable_modules/fs_spreadsheet/Cells/fs_cells_collection.py +469 -0
  380. arctrl/py/fable_modules/fs_spreadsheet/DSL/__init__.py +0 -0
  381. arctrl/py/fable_modules/fs_spreadsheet/DSL/cell_builder.py +214 -0
  382. arctrl/py/fable_modules/fs_spreadsheet/DSL/column_builder.py +139 -0
  383. arctrl/py/fable_modules/fs_spreadsheet/DSL/dsl.py +50 -0
  384. arctrl/py/fable_modules/fs_spreadsheet/DSL/expression.py +65 -0
  385. arctrl/py/fable_modules/fs_spreadsheet/DSL/operators.py +9 -0
  386. arctrl/py/fable_modules/fs_spreadsheet/DSL/row_builder.py +139 -0
  387. arctrl/py/fable_modules/fs_spreadsheet/DSL/sheet_builder.py +118 -0
  388. arctrl/py/fable_modules/fs_spreadsheet/DSL/table_builder.py +122 -0
  389. arctrl/py/fable_modules/fs_spreadsheet/DSL/transform.py +464 -0
  390. arctrl/py/fable_modules/fs_spreadsheet/DSL/types.py +314 -0
  391. arctrl/py/fable_modules/fs_spreadsheet/DSL/workbook_builder.py +106 -0
  392. arctrl/py/fable_modules/fs_spreadsheet/Json/__init__.py +0 -0
  393. arctrl/py/fable_modules/fs_spreadsheet/Json/cell.py +103 -0
  394. arctrl/py/fable_modules/fs_spreadsheet/Json/column.py +70 -0
  395. arctrl/py/fable_modules/fs_spreadsheet/Json/row.py +70 -0
  396. arctrl/py/fable_modules/fs_spreadsheet/Json/table.py +57 -0
  397. arctrl/py/fable_modules/fs_spreadsheet/Json/value.py +93 -0
  398. arctrl/py/fable_modules/fs_spreadsheet/Json/workbook.py +71 -0
  399. arctrl/py/fable_modules/fs_spreadsheet/Json/worksheet.py +217 -0
  400. arctrl/py/fable_modules/fs_spreadsheet/Ranges/__init__.py +0 -0
  401. arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range.py +47 -0
  402. arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_address.py +186 -0
  403. arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_base.py +90 -0
  404. arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_column.py +78 -0
  405. arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_row.py +48 -0
  406. arctrl/py/fable_modules/fs_spreadsheet/Tables/__init__.py +0 -0
  407. arctrl/py/fable_modules/fs_spreadsheet/Tables/fs_table.py +393 -0
  408. arctrl/py/fable_modules/fs_spreadsheet/Tables/fs_table_field.py +127 -0
  409. arctrl/py/fable_modules/fs_spreadsheet/Tables/fs_table_row.py +23 -0
  410. arctrl/py/fable_modules/fs_spreadsheet/__init__.py +0 -0
  411. arctrl/py/fable_modules/fs_spreadsheet/fs_address.py +218 -0
  412. arctrl/py/fable_modules/fs_spreadsheet/fs_column.py +172 -0
  413. arctrl/py/fable_modules/fs_spreadsheet/fs_row.py +183 -0
  414. arctrl/py/fable_modules/fs_spreadsheet/fs_workbook.py +180 -0
  415. arctrl/py/fable_modules/fs_spreadsheet/fs_worksheet.py +600 -0
  416. arctrl/py/fable_modules/fs_spreadsheet/sheet_builder.py +330 -0
  417. arctrl/py/fable_modules/fs_spreadsheet_py/__init__.py +0 -0
  418. arctrl/py/fable_modules/fs_spreadsheet_py/cell.py +63 -0
  419. arctrl/py/fable_modules/fs_spreadsheet_py/cell_type.py +50 -0
  420. arctrl/py/fable_modules/fs_spreadsheet_py/fs_extension.py +60 -0
  421. arctrl/py/fable_modules/fs_spreadsheet_py/json.py +47 -0
  422. arctrl/py/fable_modules/fs_spreadsheet_py/table.py +53 -0
  423. arctrl/py/fable_modules/fs_spreadsheet_py/workbook.py +40 -0
  424. arctrl/py/fable_modules/fs_spreadsheet_py/worksheet.py +54 -0
  425. arctrl/py/fable_modules/fs_spreadsheet_py/xlsx.py +37 -0
  426. arctrl/py/fable_modules/thoth_json_core/__init__.py +0 -0
  427. arctrl/py/fable_modules/thoth_json_core/decode.py +1588 -0
  428. arctrl/py/fable_modules/thoth_json_core/encode.py +261 -0
  429. arctrl/py/fable_modules/thoth_json_core/types.py +181 -0
  430. arctrl/py/fable_modules/thoth_json_python/__init__.py +0 -0
  431. arctrl/py/fable_modules/thoth_json_python/decode.py +112 -0
  432. arctrl/py/fable_modules/thoth_json_python/encode.py +72 -0
  433. arctrl/py/fable_modules/thoth_json_python/python.py +1 -0
  434. arctrl/py/fable_modules/yamlicious/Interop/__init__.py +0 -0
  435. arctrl/py/fable_modules/yamlicious/Interop/js_interop.py +1 -0
  436. arctrl/py/fable_modules/yamlicious/Interop/py_interop.py +7 -0
  437. arctrl/py/fable_modules/yamlicious/__init__.py +0 -0
  438. arctrl/py/fable_modules/yamlicious/decode.py +1784 -0
  439. arctrl/py/fable_modules/yamlicious/encode.py +84 -0
  440. arctrl/py/fable_modules/yamlicious/library.py +10 -0
  441. arctrl/py/fable_modules/yamlicious/persil.py +57 -0
  442. arctrl/py/fable_modules/yamlicious/preprocessing.py +99 -0
  443. arctrl/py/fable_modules/yamlicious/reader.py +665 -0
  444. arctrl/py/fable_modules/yamlicious/regex.py +21 -0
  445. arctrl/py/fable_modules/yamlicious/regex_active_patterns.py +256 -0
  446. arctrl/py/fable_modules/yamlicious/writer.py +175 -0
  447. arctrl/py/fable_modules/yamlicious/yamlicious_types.py +128 -0
  448. arctrl/py/json.py +213 -0
  449. arctrl/py/rocrate_io.py +72 -0
  450. arctrl/py/template_web.py +23 -0
  451. arctrl/py/xlsx.py +148 -0
  452. arctrl/rocrate.py +21 -0
  453. arctrl-3.0.0a3.dist-info/LICENSE +21 -0
  454. arctrl-3.0.0a3.dist-info/METADATA +119 -0
  455. arctrl-3.0.0a3.dist-info/RECORD +456 -0
  456. arctrl-3.0.0a3.dist-info/WHEEL +4 -0
@@ -0,0 +1,591 @@
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, fold, insert_range_in_place, map as map_3, collect)
5
+ from ...fable_modules.fable_library.list import FSharpList
6
+ from ...fable_modules.fable_library.map import (of_seq as of_seq_1, try_find)
7
+ from ...fable_modules.fable_library.map_util import (add_to_dict, add_to_set)
8
+ from ...fable_modules.fable_library.option import (value as value_2, default_arg, map as map_2, bind)
9
+ from ...fable_modules.fable_library.reflection import (TypeInfo, class_type)
10
+ from ...fable_modules.fable_library.seq import (try_find_index, find_index, length, to_list, delay, map as map_1, choose, reduce, to_array, append)
11
+ from ...fable_modules.fable_library.seq2 import (distinct, Array_groupBy)
12
+ from ...fable_modules.fable_library.set import (intersect, of_seq, FSharpSet__get_IsEmpty)
13
+ from ...fable_modules.fable_library.types import Array
14
+ from ...fable_modules.fable_library.util import (get_enumerator, dispose, compare, string_hash, IEnumerable_1, compare_primitives, equals, ignore, IEnumerator, to_iterator)
15
+ from ..Helper.collections_ import Dictionary_tryFind
16
+ from .arc_table import ArcTable
17
+ from .arc_table_aux import Unchecked_fillMissingCells
18
+ from .composite_cell import CompositeCell
19
+ from .composite_column import CompositeColumn
20
+ from .composite_header import (IOType, CompositeHeader)
21
+
22
+ def ArcTablesAux_tryFindIndexByTableName(name: str, tables: Array[ArcTable]) -> int | None:
23
+ def predicate(t: ArcTable, name: Any=name, tables: Any=tables) -> bool:
24
+ return t.Name == name
25
+
26
+ return try_find_index(predicate, tables)
27
+
28
+
29
+ def ArcTablesAux_findIndexByTableName(name: str, tables: Array[ArcTable]) -> int:
30
+ def predicate(t: ArcTable, name: Any=name, tables: Any=tables) -> bool:
31
+ return t.Name == name
32
+
33
+ match_value: int | None = try_find_index(predicate, tables)
34
+ if match_value is None:
35
+ raise Exception(("Unable to find table with name \'" + name) + "\'!")
36
+
37
+ else:
38
+ return match_value
39
+
40
+
41
+
42
+ def ArcTablesAux_getIOMap(tables: Array[ArcTable]) -> Any:
43
+ mappings: Any = dict([])
44
+ def include_in_map(name: str, io_type: IOType, tables: Any=tables) -> None:
45
+ if name != "":
46
+ match_value: IOType | None = Dictionary_tryFind(name, mappings)
47
+ if match_value is None:
48
+ add_to_dict(mappings, name, io_type)
49
+
50
+ else:
51
+ old_iotype: IOType = match_value
52
+ new_iotype: IOType = old_iotype.Merge(io_type)
53
+ mappings[name] = new_iotype
54
+
55
+
56
+
57
+ enumerator: Any = get_enumerator(tables)
58
+ try:
59
+ while enumerator.System_Collections_IEnumerator_MoveNext():
60
+ table: ArcTable = enumerator.System_Collections_Generic_IEnumerator_1_get_Current()
61
+ match_value_1: CompositeColumn | None = table.TryGetInputColumn()
62
+ if match_value_1 is None:
63
+ pass
64
+
65
+ else:
66
+ ic: CompositeColumn = match_value_1
67
+ io_type_1: IOType = value_2(ic.Header.TryInput())
68
+ def action(c: CompositeCell) -> None:
69
+ include_in_map(c.ToFreeTextCell().AsFreeText, io_type_1)
70
+
71
+ iterate(action, ic.Cells)
72
+
73
+ match_value_2: CompositeColumn | None = table.TryGetOutputColumn()
74
+ if match_value_2 is None:
75
+ pass
76
+
77
+ else:
78
+ oc: CompositeColumn = match_value_2
79
+ io_type_2: IOType = value_2(oc.Header.TryOutput())
80
+ def action_1(c_1: CompositeCell) -> None:
81
+ include_in_map(c_1.ToFreeTextCell().AsFreeText, io_type_2)
82
+
83
+ iterate(action_1, oc.Cells)
84
+
85
+
86
+ finally:
87
+ dispose(enumerator)
88
+
89
+ return mappings
90
+
91
+
92
+ def ArcTablesAux_applyIOMap(map: Any, tables: Array[ArcTable]) -> None:
93
+ enumerator: Any = get_enumerator(tables)
94
+ try:
95
+ while enumerator.System_Collections_IEnumerator_MoveNext():
96
+ table: ArcTable = enumerator.System_Collections_Generic_IEnumerator_1_get_Current()
97
+ match_value: CompositeColumn | None = table.TryGetInputColumn()
98
+ if match_value is None:
99
+ pass
100
+
101
+ else:
102
+ ic: CompositeColumn = match_value
103
+ def predicate(x: CompositeHeader) -> bool:
104
+ return x.is_input
105
+
106
+ index: int = find_index(predicate, table.Headers) or 0
107
+ def folder(io: IOType, c: CompositeCell) -> IOType:
108
+ match_value_1: IOType | None = Dictionary_tryFind(c.ToFreeTextCell().AsFreeText, map)
109
+ if match_value_1 is None:
110
+ return io
111
+
112
+ else:
113
+ new_io: IOType = match_value_1
114
+ return io.Merge(new_io)
115
+
116
+
117
+ new_iotype: IOType = fold(folder, value_2(ic.Header.TryInput()), ic.Cells)
118
+ table.UpdateHeader(index, CompositeHeader(11, new_iotype))
119
+
120
+ match_value_2: CompositeColumn | None = table.TryGetOutputColumn()
121
+ if match_value_2 is None:
122
+ pass
123
+
124
+ else:
125
+ oc: CompositeColumn = match_value_2
126
+ def predicate_1(x_1: CompositeHeader) -> bool:
127
+ return x_1.is_output
128
+
129
+ index_1: int = find_index(predicate_1, table.Headers) or 0
130
+ def folder_1(io_1: IOType, c_1: CompositeCell) -> IOType:
131
+ match_value_3: IOType | None = Dictionary_tryFind(c_1.ToFreeTextCell().AsFreeText, map)
132
+ if match_value_3 is None:
133
+ return io_1
134
+
135
+ else:
136
+ new_io_1: IOType = match_value_3
137
+ return io_1.Merge(new_io_1)
138
+
139
+
140
+ new_iotype_1: IOType = fold(folder_1, value_2(oc.Header.TryOutput()), oc.Cells)
141
+ table.UpdateHeader(index_1, CompositeHeader(12, new_iotype_1))
142
+
143
+
144
+ finally:
145
+ dispose(enumerator)
146
+
147
+
148
+
149
+ def ArcTablesAux_SanityChecks_validateSheetIndex(index: int, allow_append: bool, sheets: Array[ArcTable]) -> None:
150
+ if index < 0:
151
+ raise Exception("Cannot insert ArcTable at index < 0.")
152
+
153
+ def _arrow677(__unit: None=None, index: Any=index, allow_append: Any=allow_append, sheets: Any=sheets) -> bool:
154
+ x: int = index or 0
155
+ y: int = len(sheets) or 0
156
+ return (compare(x, y) > 0) if allow_append else (compare(x, y) >= 0)
157
+
158
+ if _arrow677():
159
+ raise Exception(("Specified index is out of range! Assay contains only " + str(len(sheets))) + " tables.")
160
+
161
+
162
+
163
+ def ArcTablesAux_SanityChecks_validateNamesUnique(names: IEnumerable_1[str]) -> None:
164
+ class ObjectExpr679:
165
+ @property
166
+ def Equals(self) -> Callable[[str, str], bool]:
167
+ def _arrow678(x: str, y: str) -> bool:
168
+ return x == y
169
+
170
+ return _arrow678
171
+
172
+ @property
173
+ def GetHashCode(self) -> Callable[[str], int]:
174
+ return string_hash
175
+
176
+ if not (length(names) == length(distinct(names, ObjectExpr679()))):
177
+ raise Exception("Cannot add multiple tables with the same name! Table names inside one assay must be unqiue")
178
+
179
+
180
+
181
+ def ArcTablesAux_SanityChecks_validateNewNameUnique(new_name: str, existing_names: IEnumerable_1[str]) -> None:
182
+ def _arrow680(x: str, new_name: Any=new_name, existing_names: Any=existing_names) -> bool:
183
+ return x == new_name
184
+
185
+ match_value: int | None = try_find_index(_arrow680, existing_names)
186
+ if match_value is None:
187
+ pass
188
+
189
+ else:
190
+ raise Exception(((("Cannot create table with name " + new_name) + ", as table names must be unique and table at index ") + str(match_value)) + " has the same name.")
191
+
192
+
193
+
194
+ def ArcTablesAux_SanityChecks_validateNewNameAtUnique(index: int, new_name: str, existing_names: IEnumerable_1[str]) -> None:
195
+ def _arrow681(x: str, index: Any=index, new_name: Any=new_name, existing_names: Any=existing_names) -> bool:
196
+ return x == new_name
197
+
198
+ match_value: int | None = try_find_index(_arrow681, existing_names)
199
+ if match_value is None:
200
+ pass
201
+
202
+ elif index == match_value:
203
+ i_1: int = match_value or 0
204
+
205
+ else:
206
+ i_2: int = match_value or 0
207
+ raise Exception(((("Cannot create table with name " + new_name) + ", as table names must be unique and table at index ") + str(i_2)) + " has the same name.")
208
+
209
+
210
+
211
+ def ArcTablesAux_SanityChecks_validateNewNamesUnique(new_names: IEnumerable_1[str], existing_names: IEnumerable_1[str]) -> None:
212
+ ArcTablesAux_SanityChecks_validateNamesUnique(new_names)
213
+ class ObjectExpr682:
214
+ @property
215
+ def Compare(self) -> Callable[[str, str], int]:
216
+ return compare_primitives
217
+
218
+ class ObjectExpr683:
219
+ @property
220
+ def Compare(self) -> Callable[[str, str], int]:
221
+ return compare_primitives
222
+
223
+ same: Any = intersect(of_seq(new_names, ObjectExpr682()), of_seq(existing_names, ObjectExpr683()))
224
+ if not FSharpSet__get_IsEmpty(same):
225
+ raise Exception(("Cannot create tables with the names " + str(same)) + ", as table names must be unique.")
226
+
227
+
228
+
229
+ def _expr698() -> TypeInfo:
230
+ return class_type("ARCtrl.ArcTables", None, ArcTables)
231
+
232
+
233
+ class ArcTables:
234
+ def __init__(self, init_tables: Array[ArcTable]) -> None:
235
+ def _expr697():
236
+ def mapping(t: ArcTable) -> str:
237
+ return t.Name
238
+
239
+ ArcTablesAux_SanityChecks_validateNamesUnique(map_1(mapping, init_tables))
240
+ return init_tables
241
+
242
+ self.tables: Array[ArcTable] = _expr697()
243
+
244
+ @property
245
+ def Tables(self, __unit: None=None) -> Array[ArcTable]:
246
+ this: ArcTables = self
247
+ return this.tables
248
+
249
+ @Tables.setter
250
+ def Tables(self, new_tables: Array[ArcTable]) -> None:
251
+ this: ArcTables = self
252
+ this.tables = new_tables
253
+
254
+ def get_item(self, index: int) -> ArcTable:
255
+ this: ArcTables = self
256
+ return this.Tables[index]
257
+
258
+ @property
259
+ def TableNames(self, __unit: None=None) -> FSharpList[str]:
260
+ this: ArcTables = self
261
+ def _arrow685(__unit: None=None) -> IEnumerable_1[str]:
262
+ def _arrow684(s: ArcTable) -> str:
263
+ return s.Name
264
+
265
+ return map_1(_arrow684, this.Tables)
266
+
267
+ return to_list(delay(_arrow685))
268
+
269
+ @property
270
+ def TableCount(self, __unit: None=None) -> int:
271
+ this: ArcTables = self
272
+ return len(this.Tables)
273
+
274
+ def AddTable(self, table: ArcTable, index: int | None=None) -> None:
275
+ this: ArcTables = self
276
+ index_1: int = default_arg(index, this.TableCount) or 0
277
+ ArcTablesAux_SanityChecks_validateSheetIndex(index_1, True, this.Tables)
278
+ ArcTablesAux_SanityChecks_validateNewNameUnique(table.Name, this.TableNames)
279
+ this.Tables.insert(index_1, table)
280
+
281
+ def AddTables(self, tables: IEnumerable_1[ArcTable], index: int | None=None) -> None:
282
+ this: ArcTables = self
283
+ index_1: int = default_arg(index, this.TableCount) or 0
284
+ ArcTablesAux_SanityChecks_validateSheetIndex(index_1, True, this.Tables)
285
+ def mapping(x: ArcTable) -> str:
286
+ return x.Name
287
+
288
+ ArcTablesAux_SanityChecks_validateNewNamesUnique(map_1(mapping, tables), this.TableNames)
289
+ insert_range_in_place(index_1, tables, this.Tables)
290
+
291
+ def InitTable(self, table_name: str, index: int | None=None) -> ArcTable:
292
+ this: ArcTables = self
293
+ index_1: int = default_arg(index, this.TableCount) or 0
294
+ table: ArcTable = ArcTable.init(table_name)
295
+ ArcTablesAux_SanityChecks_validateSheetIndex(index_1, True, this.Tables)
296
+ ArcTablesAux_SanityChecks_validateNewNameUnique(table.Name, this.TableNames)
297
+ this.Tables.insert(index_1, table)
298
+ return table
299
+
300
+ def InitTables(self, table_names: IEnumerable_1[str], index: int | None=None) -> None:
301
+ this: ArcTables = self
302
+ index_1: int = default_arg(index, this.TableCount) or 0
303
+ def mapping(x: str) -> ArcTable:
304
+ return ArcTable.init(x)
305
+
306
+ tables: IEnumerable_1[ArcTable] = map_1(mapping, table_names)
307
+ ArcTablesAux_SanityChecks_validateSheetIndex(index_1, True, this.Tables)
308
+ def mapping_1(x_1: ArcTable) -> str:
309
+ return x_1.Name
310
+
311
+ ArcTablesAux_SanityChecks_validateNewNamesUnique(map_1(mapping_1, tables), this.TableNames)
312
+ insert_range_in_place(index_1, tables, this.Tables)
313
+
314
+ def GetTableAt(self, index: int) -> ArcTable:
315
+ this: ArcTables = self
316
+ ArcTablesAux_SanityChecks_validateSheetIndex(index, False, this.Tables)
317
+ return this.Tables[index]
318
+
319
+ def GetTable(self, name: str) -> ArcTable:
320
+ this: ArcTables = self
321
+ index: int = ArcTablesAux_findIndexByTableName(name, this.Tables) or 0
322
+ return this.GetTableAt(index)
323
+
324
+ def UpdateTableAt(self, index: int, table: ArcTable) -> None:
325
+ this: ArcTables = self
326
+ ArcTablesAux_SanityChecks_validateSheetIndex(index, False, this.Tables)
327
+ ArcTablesAux_SanityChecks_validateNewNameAtUnique(index, table.Name, this.TableNames)
328
+ this.Tables[index] = table
329
+
330
+ def UpdateTable(self, name: str, table: ArcTable) -> None:
331
+ this: ArcTables = self
332
+ tupled_arg: tuple[int, ArcTable] = (ArcTablesAux_findIndexByTableName(name, this.Tables), table)
333
+ this.UpdateTableAt(tupled_arg[0], tupled_arg[1])
334
+
335
+ def SetTableAt(self, index: int, table: ArcTable) -> None:
336
+ this: ArcTables = self
337
+ ArcTablesAux_SanityChecks_validateSheetIndex(index, True, this.Tables)
338
+ ArcTablesAux_SanityChecks_validateNewNameAtUnique(index, table.Name, this.TableNames)
339
+ this.Tables[index] = table
340
+
341
+ def SetTable(self, name: str, table: ArcTable) -> None:
342
+ this: ArcTables = self
343
+ match_value: int | None = ArcTablesAux_tryFindIndexByTableName(name, this.Tables)
344
+ if match_value is None:
345
+ this.AddTable(table)
346
+
347
+ else:
348
+ index: int = match_value or 0
349
+ this.SetTableAt(index, table)
350
+
351
+
352
+ def RemoveTableAt(self, index: int) -> None:
353
+ this: ArcTables = self
354
+ ArcTablesAux_SanityChecks_validateSheetIndex(index, False, this.Tables)
355
+ this.Tables.pop(index)
356
+
357
+ def RemoveTable(self, name: str) -> None:
358
+ this: ArcTables = self
359
+ index: int = ArcTablesAux_findIndexByTableName(name, this.Tables) or 0
360
+ this.RemoveTableAt(index)
361
+
362
+ def MapTableAt(self, index: int, update_fun: Callable[[ArcTable], None]) -> None:
363
+ this: ArcTables = self
364
+ ArcTablesAux_SanityChecks_validateSheetIndex(index, False, this.Tables)
365
+ update_fun(this.Tables[index])
366
+
367
+ def MapTable(self, name: str, update_fun: Callable[[ArcTable], None]) -> None:
368
+ this: ArcTables = self
369
+ tupled_arg: tuple[int, Callable[[ArcTable], None]] = (ArcTablesAux_findIndexByTableName(name, this.Tables), update_fun)
370
+ this.MapTableAt(tupled_arg[0], tupled_arg[1])
371
+
372
+ def RenameTableAt(self, index: int, new_name: str) -> None:
373
+ this: ArcTables = self
374
+ ArcTablesAux_SanityChecks_validateSheetIndex(index, False, this.Tables)
375
+ ArcTablesAux_SanityChecks_validateNewNameUnique(new_name, this.TableNames)
376
+ table: ArcTable = this.GetTableAt(index)
377
+ table.Name = new_name
378
+
379
+ def RenameTable(self, name: str, new_name: str) -> None:
380
+ this: ArcTables = self
381
+ tupled_arg: tuple[int, str] = (ArcTablesAux_findIndexByTableName(name, this.Tables), new_name)
382
+ this.RenameTableAt(tupled_arg[0], tupled_arg[1])
383
+
384
+ def AddColumnAt(self, table_index: int, header: CompositeHeader, cells: Array[CompositeCell] | None=None, column_index: int | None=None, force_replace: bool | None=None) -> None:
385
+ this: ArcTables = self
386
+ def _arrow686(table: ArcTable) -> None:
387
+ table.AddColumn(header, cells, column_index, force_replace)
388
+
389
+ this.MapTableAt(table_index, _arrow686)
390
+
391
+ def AddColumn(self, table_name: str, header: CompositeHeader, cells: Array[CompositeCell] | None=None, column_index: int | None=None, force_replace: bool | None=None) -> None:
392
+ this: ArcTables = self
393
+ i: int = ArcTablesAux_findIndexByTableName(table_name, this.Tables) or 0
394
+ this.AddColumnAt(i, header, cells, column_index, force_replace)
395
+
396
+ def RemoveColumnAt(self, table_index: int, column_index: int) -> None:
397
+ this: ArcTables = self
398
+ def _arrow687(table: ArcTable) -> None:
399
+ table.RemoveColumn(column_index)
400
+
401
+ this.MapTableAt(table_index, _arrow687)
402
+
403
+ def RemoveColumn(self, table_name: str, column_index: int) -> None:
404
+ this: ArcTables = self
405
+ tupled_arg: tuple[int, int] = (ArcTablesAux_findIndexByTableName(table_name, this.Tables), column_index)
406
+ this.RemoveColumnAt(tupled_arg[0], tupled_arg[1])
407
+
408
+ def UpdateColumnAt(self, table_index: int, column_index: int, header: CompositeHeader, cells: Array[CompositeCell] | None=None) -> None:
409
+ this: ArcTables = self
410
+ def _arrow688(table: ArcTable) -> None:
411
+ table.UpdateColumn(column_index, header, cells)
412
+
413
+ this.MapTableAt(table_index, _arrow688)
414
+
415
+ def UpdateColumn(self, table_name: str, column_index: int, header: CompositeHeader, cells: Array[CompositeCell] | None=None) -> None:
416
+ this: ArcTables = self
417
+ table_index: int = ArcTablesAux_findIndexByTableName(table_name, this.Tables) or 0
418
+ this.UpdateColumnAt(table_index, column_index, header, cells)
419
+
420
+ def GetColumnAt(self, table_index: int, column_index: int) -> CompositeColumn:
421
+ this: ArcTables = self
422
+ table: ArcTable = this.GetTableAt(table_index)
423
+ return table.GetColumn(column_index)
424
+
425
+ def GetColumn(self, table_name: str, column_index: int) -> CompositeColumn:
426
+ this: ArcTables = self
427
+ tupled_arg: tuple[int, int] = (ArcTablesAux_findIndexByTableName(table_name, this.Tables), column_index)
428
+ return this.GetColumnAt(tupled_arg[0], tupled_arg[1])
429
+
430
+ def AddRowAt(self, table_index: int, cells: Array[CompositeCell] | None=None, row_index: int | None=None) -> None:
431
+ this: ArcTables = self
432
+ def _arrow689(table: ArcTable) -> None:
433
+ table.AddRow(cells, row_index)
434
+
435
+ this.MapTableAt(table_index, _arrow689)
436
+
437
+ def AddRow(self, table_name: str, cells: Array[CompositeCell] | None=None, row_index: int | None=None) -> None:
438
+ this: ArcTables = self
439
+ i: int = ArcTablesAux_findIndexByTableName(table_name, this.Tables) or 0
440
+ this.AddRowAt(i, cells, row_index)
441
+
442
+ def RemoveRowAt(self, table_index: int, row_index: int) -> None:
443
+ this: ArcTables = self
444
+ def _arrow690(table: ArcTable) -> None:
445
+ table.RemoveRow(row_index)
446
+
447
+ this.MapTableAt(table_index, _arrow690)
448
+
449
+ def RemoveRow(self, table_name: str, row_index: int) -> None:
450
+ this: ArcTables = self
451
+ tupled_arg: tuple[int, int] = (ArcTablesAux_findIndexByTableName(table_name, this.Tables), row_index)
452
+ this.RemoveRowAt(tupled_arg[0], tupled_arg[1])
453
+
454
+ def UpdateRowAt(self, table_index: int, row_index: int, cells: Array[CompositeCell]) -> None:
455
+ this: ArcTables = self
456
+ def _arrow691(table: ArcTable) -> None:
457
+ table.UpdateRow(row_index, cells)
458
+
459
+ this.MapTableAt(table_index, _arrow691)
460
+
461
+ def UpdateRow(self, table_name: str, row_index: int, cells: Array[CompositeCell]) -> None:
462
+ this: ArcTables = self
463
+ tupled_arg: tuple[int, int, Array[CompositeCell]] = (ArcTablesAux_findIndexByTableName(table_name, this.Tables), row_index, cells)
464
+ this.UpdateRowAt(tupled_arg[0], tupled_arg[1], tupled_arg[2])
465
+
466
+ def GetRowAt(self, table_index: int, row_index: int) -> Array[CompositeCell]:
467
+ this: ArcTables = self
468
+ table: ArcTable = this.GetTableAt(table_index)
469
+ return table.GetRow(row_index)
470
+
471
+ def GetRow(self, table_name: str, row_index: int) -> Array[CompositeCell]:
472
+ this: ArcTables = self
473
+ tupled_arg: tuple[int, int] = (ArcTablesAux_findIndexByTableName(table_name, this.Tables), row_index)
474
+ return this.GetRowAt(tupled_arg[0], tupled_arg[1])
475
+
476
+ @staticmethod
477
+ def of_seq(tables: IEnumerable_1[ArcTable]) -> ArcTables:
478
+ return ArcTables(list(tables))
479
+
480
+ def MoveTable(self, old_index: int, new_index: int) -> None:
481
+ this: ArcTables = self
482
+ table: ArcTable = this.GetTableAt(old_index)
483
+ this.Tables.pop(old_index)
484
+ this.Tables.insert(new_index, table)
485
+
486
+ @staticmethod
487
+ def update_reference_tables_by_sheets(reference_tables: ArcTables, sheet_tables: ArcTables, keep_unused_ref_tables: bool | None=None) -> ArcTables:
488
+ keep_unused_ref_tables_1: bool = default_arg(keep_unused_ref_tables, False)
489
+ used_tables: Any = set([])
490
+ def chooser(t: ArcTable) -> tuple[str, ArcTable] | None:
491
+ def mapping(c: CompositeColumn, t: Any=t) -> tuple[str, ArcTable]:
492
+ return (c.Cells[0].AsFreeText, t)
493
+
494
+ return map_2(mapping, t.TryGetProtocolNameColumn())
495
+
496
+ class ObjectExpr692:
497
+ @property
498
+ def Compare(self) -> Callable[[str, str], int]:
499
+ return compare_primitives
500
+
501
+ reference_table_map: Any = of_seq_1(choose(chooser, reference_tables.Tables), ObjectExpr692())
502
+ def _arrow696(__unit: None=None) -> IEnumerable_1[ArcTable]:
503
+ def mapping_4(t_3: ArcTable) -> ArcTable:
504
+ Unchecked_fillMissingCells(t_3.Headers, t_3.Values)
505
+ return t_3
506
+
507
+ def mapping_3(tupled_arg: tuple[str, Array[ArcTable]]) -> ArcTable:
508
+ def reduction(table: ArcTable, table_1: ArcTable, tupled_arg: Any=tupled_arg) -> ArcTable:
509
+ return ArcTable.append(table, table_1)
510
+
511
+ return reduce(reduction, tupled_arg[1])
512
+
513
+ def projection(t_2: ArcTable) -> str:
514
+ return t_2.Name
515
+
516
+ def mapping_2(t_1: ArcTable) -> ArcTable:
517
+ def binder_1(c_1: CompositeCell, t_1: Any=t_1) -> str | None:
518
+ if c_1.AsFreeText == "":
519
+ return None
520
+
521
+ else:
522
+ return c_1.AsFreeText
523
+
524
+
525
+ def binder(i: int, t_1: Any=t_1) -> CompositeCell | None:
526
+ return t_1.TryGetCellAt(i, 0)
527
+
528
+ def predicate(x_1: CompositeHeader, t_1: Any=t_1) -> bool:
529
+ return equals(x_1, CompositeHeader(8))
530
+
531
+ k: str = default_arg(bind(binder_1, bind(binder, try_find_index(predicate, t_1.Headers))), t_1.Name)
532
+ match_value: ArcTable | None = try_find(k, reference_table_map)
533
+ if match_value is None:
534
+ return t_1
535
+
536
+ else:
537
+ rt: ArcTable = match_value
538
+ ignore(add_to_set(k, used_tables))
539
+ updated_table: ArcTable = ArcTable.update_reference_by_annotation_table(rt, t_1)
540
+ return ArcTable.create(t_1.Name, updated_table.Headers, updated_table.Values)
541
+
542
+
543
+ def _arrow693(__unit: None=None) -> Array[ArcTable]:
544
+ array: Array[ArcTable] = to_array(sheet_tables.Tables)
545
+ return collect(ArcTable.SplitByProtocolREF(), array, None)
546
+
547
+ class ObjectExpr695:
548
+ @property
549
+ def Equals(self) -> Callable[[str, str], bool]:
550
+ def _arrow694(x_2: str, y_1: str) -> bool:
551
+ return x_2 == y_1
552
+
553
+ return _arrow694
554
+
555
+ @property
556
+ def GetHashCode(self) -> Callable[[str], int]:
557
+ return string_hash
558
+
559
+ s: Array[ArcTable] = map_3(mapping_4, map_3(mapping_3, Array_groupBy(projection, map_3(mapping_2, _arrow693(), None), ObjectExpr695()), None), None)
560
+ def chooser_1(kv: Any) -> ArcTable | None:
561
+ if kv[0] in used_tables:
562
+ return None
563
+
564
+ else:
565
+ return kv[1]
566
+
567
+
568
+ return append(choose(chooser_1, reference_table_map), s) if keep_unused_ref_tables_1 else s
569
+
570
+ return ArcTables(list(_arrow696()))
571
+
572
+ def GetEnumerator(self, __unit: None=None) -> IEnumerator[ArcTable]:
573
+ this: ArcTables = self
574
+ return get_enumerator(this.Tables)
575
+
576
+ def __iter__(self) -> IEnumerator[ArcTable]:
577
+ return to_iterator(self.GetEnumerator())
578
+
579
+ def System_Collections_IEnumerable_GetEnumerator(self, __unit: None=None) -> IEnumerator[Any]:
580
+ this: ArcTables = self
581
+ return get_enumerator(this.Tables)
582
+
583
+
584
+ ArcTables_reflection = _expr698
585
+
586
+ def ArcTables__ctor_Z420F2E1A(init_tables: Array[ArcTable]) -> ArcTables:
587
+ return ArcTables(init_tables)
588
+
589
+
590
+ __all__ = ["ArcTablesAux_tryFindIndexByTableName", "ArcTablesAux_findIndexByTableName", "ArcTablesAux_getIOMap", "ArcTablesAux_applyIOMap", "ArcTablesAux_SanityChecks_validateSheetIndex", "ArcTablesAux_SanityChecks_validateNamesUnique", "ArcTablesAux_SanityChecks_validateNewNameUnique", "ArcTablesAux_SanityChecks_validateNewNameAtUnique", "ArcTablesAux_SanityChecks_validateNewNamesUnique", "ArcTables_reflection"]
591
+