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,600 @@
1
+ from __future__ import annotations
2
+ from collections.abc import Callable
3
+ from typing import (Any, TypeVar)
4
+ from ..fable_library.array_ import (remove_in_place, add_range_in_place)
5
+ from ..fable_library.list import (iterate as iterate_1, FSharpList)
6
+ from ..fable_library.map import (of_seq, try_find as try_find_1)
7
+ from ..fable_library.option import (default_arg, value as value_3)
8
+ from ..fable_library.reflection import (TypeInfo, class_type)
9
+ from ..fable_library.seq import (map, sort_by, head, last, iterate, try_find, find, exists, filter, max_by, empty)
10
+ from ..fable_library.seq2 import group_by
11
+ from ..fable_library.string_ import (to_fail, printf, to_console)
12
+ from ..fable_library.types import Array
13
+ from ..fable_library.util import (compare_primitives, IEnumerable_1, number_hash, ignore, get_enumerator, dispose, equals, safe_hash, clear)
14
+ from .Cells.fs_cell import FsCell
15
+ from .Cells.fs_cells_collection import (FsCellsCollection__ctor, FsCellsCollection, FsCellsCollection__GetCells, FsCellsCollection__get_MaxRowNumber, FsCellsCollection__get_MaxColumnNumber, FsCellsCollection__Copy, FsCellsCollection__TryGetCell_Z37302880, FsCellsCollection__Add_Z334DF64D, FsCellsCollection__Add_Z21F271A4, FsCellsCollection__Add_2E78CE33, FsCellsCollection__RemoveCellAt_Z37302880, FsCellsCollection__TryRemoveValueAt_Z37302880, FsCellsCollection__RemoveValueAt_Z37302880)
16
+ from .fs_address import (FsAddress, FsAddress__ctor_Z37302880, FsAddress__get_RowNumber, FsAddress__get_ColumnNumber)
17
+ from .fs_column import FsColumn
18
+ from .fs_row import FsRow
19
+ from .Ranges.fs_range_address import (FsRangeAddress__ctor_7E77A4A0, FsRangeAddress, FsRangeAddress__get_FirstAddress, FsRangeAddress__get_LastAddress)
20
+ from .Ranges.fs_range_base import FsRangeBase__set_RangeAddress_6A2513BC
21
+ from .Tables.fs_table import FsTable
22
+
23
+ __B = TypeVar("__B")
24
+
25
+ def _expr221() -> TypeInfo:
26
+ return class_type("FsSpreadsheet.FsWorksheet", None, FsWorksheet)
27
+
28
+
29
+ class FsWorksheet:
30
+ def __init__(self, name: str, fs_rows: Array[FsRow] | None=None, fs_tables: Array[FsTable] | None=None, fs_cells_collection: FsCellsCollection | None=None) -> None:
31
+ self.name: str = name
32
+ self._name: str = self.name
33
+ self._rows: Array[FsRow] = default_arg(fs_rows, [])
34
+ self._tables: Array[FsTable] = default_arg(fs_tables, [])
35
+ self._cells: FsCellsCollection = default_arg(fs_cells_collection, FsCellsCollection__ctor())
36
+
37
+ @staticmethod
38
+ def init(name: str) -> FsWorksheet:
39
+ return FsWorksheet(name, [], [], FsCellsCollection__ctor())
40
+
41
+ @property
42
+ def Name(self, __unit: None=None) -> str:
43
+ self_1: FsWorksheet = self
44
+ return self_1._name
45
+
46
+ @Name.setter
47
+ def Name(self, name: str) -> None:
48
+ self_1: FsWorksheet = self
49
+ self_1._name = name
50
+
51
+ @property
52
+ def CellCollection(self, __unit: None=None) -> FsCellsCollection:
53
+ self_1: FsWorksheet = self
54
+ return self_1._cells
55
+
56
+ @property
57
+ def Tables(self, __unit: None=None) -> Array[FsTable]:
58
+ self_1: FsWorksheet = self
59
+ return self_1._tables
60
+
61
+ @property
62
+ def Rows(self, __unit: None=None) -> Array[FsRow]:
63
+ self_1: FsWorksheet = self
64
+ return self_1._rows
65
+
66
+ @property
67
+ def Columns(self, __unit: None=None) -> IEnumerable_1[FsColumn]:
68
+ self_1: FsWorksheet = self
69
+ def mapping(tupled_arg: tuple[int, IEnumerable_1[FsCell]]) -> FsColumn:
70
+ column_index: int = tupled_arg[0] or 0
71
+ def _arrow210(__unit: None=None, tupled_arg: Any=tupled_arg) -> FsRangeAddress:
72
+ tupled_arg_1: tuple[FsAddress, FsAddress]
73
+ def projection_1(c_1: FsCell) -> int:
74
+ return c_1.RowNumber
75
+
76
+ class ObjectExpr207:
77
+ @property
78
+ def Compare(self) -> Callable[[int, int], int]:
79
+ return compare_primitives
80
+
81
+ cells_1: IEnumerable_1[FsCell] = sort_by(projection_1, tupled_arg[1], ObjectExpr207())
82
+ def _arrow208(__unit: None=None) -> int:
83
+ c_2: FsCell = head(cells_1)
84
+ return c_2.RowNumber
85
+
86
+ def _arrow209(__unit: None=None) -> int:
87
+ c_3: FsCell = last(cells_1)
88
+ return c_3.RowNumber
89
+
90
+ tupled_arg_1 = (FsAddress__ctor_Z37302880(_arrow208(), column_index), FsAddress__ctor_Z37302880(_arrow209(), column_index))
91
+ return FsRangeAddress__ctor_7E77A4A0(tupled_arg_1[0], tupled_arg_1[1])
92
+
93
+ return FsColumn(_arrow210(), self_1.CellCollection)
94
+
95
+ def projection(c: FsCell) -> int:
96
+ return c.ColumnNumber
97
+
98
+ class ObjectExpr212:
99
+ @property
100
+ def Equals(self) -> Callable[[int, int], bool]:
101
+ def _arrow211(x: int, y: int) -> bool:
102
+ return x == y
103
+
104
+ return _arrow211
105
+
106
+ @property
107
+ def GetHashCode(self) -> Callable[[int], int]:
108
+ return number_hash
109
+
110
+ return map(mapping, group_by(projection, FsCellsCollection__GetCells(self_1._cells), ObjectExpr212()))
111
+
112
+ @property
113
+ def MaxRowIndex(self, __unit: None=None) -> int:
114
+ this: FsWorksheet = self
115
+ return FsCellsCollection__get_MaxRowNumber(this.CellCollection)
116
+
117
+ @property
118
+ def MaxColumnIndex(self, __unit: None=None) -> int:
119
+ this: FsWorksheet = self
120
+ return FsCellsCollection__get_MaxColumnNumber(this.CellCollection)
121
+
122
+ def Copy(self, __unit: None=None) -> FsWorksheet:
123
+ self_1: FsWorksheet = self
124
+ fcc: FsCellsCollection = FsCellsCollection__Copy(self_1.CellCollection)
125
+ def _arrow213(__unit: None=None) -> Array[FsRow]:
126
+ n: Array[FsRow] = []
127
+ def action(r: FsRow) -> None:
128
+ item: FsRow = r.Copy()
129
+ (n.append(item))
130
+
131
+ iterate(action, self_1.Rows)
132
+ return n
133
+
134
+ def _arrow214(__unit: None=None) -> Array[FsTable]:
135
+ n_1: Array[FsTable] = []
136
+ def action_1(t: FsTable) -> None:
137
+ item_1: FsTable = t.Copy()
138
+ (n_1.append(item_1))
139
+
140
+ iterate(action_1, self_1.Tables)
141
+ return n_1
142
+
143
+ return FsWorksheet(self_1.Name, _arrow213(), _arrow214(), fcc)
144
+
145
+ @staticmethod
146
+ def copy(sheet: FsWorksheet) -> FsWorksheet:
147
+ return sheet.Copy()
148
+
149
+ def Row(self, row_index: int, SkipSearch: bool | None=None) -> FsRow:
150
+ self_1: FsWorksheet = self
151
+ if default_arg(SkipSearch, False):
152
+ row: FsRow = FsRow.create_at(row_index, self_1.CellCollection)
153
+ (self_1._rows.append(row))
154
+ return row
155
+
156
+ else:
157
+ def predicate(row_1: FsRow) -> bool:
158
+ return row_1.Index == row_index
159
+
160
+ match_value: FsRow | None = try_find(predicate, self_1._rows)
161
+ if match_value is None:
162
+ row_3: FsRow = FsRow.create_at(row_index, self_1.CellCollection)
163
+ (self_1._rows.append(row_3))
164
+ return row_3
165
+
166
+ else:
167
+ return match_value
168
+
169
+
170
+
171
+ def RowWithRange(self, range_address: FsRangeAddress, SkipSearch: bool | None=None) -> FsRow:
172
+ self_1: FsWorksheet = self
173
+ skip_search: bool = default_arg(SkipSearch, False)
174
+ if FsAddress__get_RowNumber(FsRangeAddress__get_FirstAddress(range_address)) != FsAddress__get_RowNumber(FsRangeAddress__get_LastAddress(range_address)):
175
+ to_fail(printf("Row may not have a range address spanning over different row indices"))
176
+
177
+ if skip_search:
178
+ row: FsRow = FsRow(range_address, self_1.CellCollection)
179
+ FsRangeBase__set_RangeAddress_6A2513BC(row, range_address)
180
+ (self_1._rows.append(row))
181
+ return row
182
+
183
+ else:
184
+ row_1: FsRow = self_1.Row(FsAddress__get_RowNumber(FsRangeAddress__get_FirstAddress(range_address)))
185
+ FsRangeBase__set_RangeAddress_6A2513BC(row_1, range_address)
186
+ return row_1
187
+
188
+
189
+ @staticmethod
190
+ def append_row(row: FsRow, sheet: FsWorksheet) -> FsWorksheet:
191
+ ignore(sheet.Row(row.Index))
192
+ return sheet
193
+
194
+ @staticmethod
195
+ def get_rows(sheet: FsWorksheet) -> Array[FsRow]:
196
+ return sheet.Rows
197
+
198
+ @staticmethod
199
+ def get_row_at(row_index: int, sheet: FsWorksheet) -> FsRow:
200
+ def predicate(arg: FsRow) -> bool:
201
+ return row_index == FsRow.get_index(arg)
202
+
203
+ return find(predicate, FsWorksheet.get_rows(sheet))
204
+
205
+ @staticmethod
206
+ def try_get_row_at(row_index: int, sheet: FsWorksheet) -> FsRow | None:
207
+ def predicate(arg: FsRow) -> bool:
208
+ return row_index == FsRow.get_index(arg)
209
+
210
+ return try_find(predicate, sheet.Rows)
211
+
212
+ @staticmethod
213
+ def try_get_row_after(row_index: int, sheet: FsWorksheet) -> FsRow | None:
214
+ def predicate(r: FsRow) -> bool:
215
+ return r.Index >= row_index
216
+
217
+ return try_find(predicate, sheet.Rows)
218
+
219
+ def InsertBefore(self, row: FsRow, ref_row: FsRow) -> FsWorksheet:
220
+ self_1: FsWorksheet = self
221
+ enumerator: Any = get_enumerator(self_1._rows)
222
+ try:
223
+ while enumerator.System_Collections_IEnumerator_MoveNext():
224
+ row_1: FsRow = enumerator.System_Collections_Generic_IEnumerator_1_get_Current()
225
+ if row_1.Index >= ref_row.Index:
226
+ row_1.Index = (row_1.Index + 1) or 0
227
+
228
+
229
+ finally:
230
+ dispose(enumerator)
231
+
232
+ ignore(self_1.Row(row.Index))
233
+ return self_1
234
+
235
+ @staticmethod
236
+ def insert_before(row: FsRow, ref_row: FsRow, sheet: FsWorksheet) -> FsWorksheet:
237
+ return sheet.InsertBefore(row, ref_row)
238
+
239
+ def ContainsRowAt(self, row_index: int) -> bool:
240
+ self_1: FsWorksheet = self
241
+ def predicate(t: FsRow) -> bool:
242
+ return t.Index == row_index
243
+
244
+ return exists(predicate, self_1.Rows)
245
+
246
+ @staticmethod
247
+ def contains_row_at(row_index: int, sheet: FsWorksheet) -> bool:
248
+ return sheet.ContainsRowAt(row_index)
249
+
250
+ @staticmethod
251
+ def count_rows(sheet: FsWorksheet) -> int:
252
+ return len(sheet.Rows)
253
+
254
+ def RemoveRowAt(self, row_index: int) -> None:
255
+ self_1: FsWorksheet = self
256
+ def predicate(r: FsRow) -> bool:
257
+ return r.Index == row_index
258
+
259
+ with get_enumerator(filter(predicate, self_1._rows)) as enumerator:
260
+ while enumerator.System_Collections_IEnumerator_MoveNext():
261
+ class ObjectExpr215:
262
+ @property
263
+ def Equals(self) -> Callable[[FsRow, FsRow], bool]:
264
+ return equals
265
+
266
+ @property
267
+ def GetHashCode(self) -> Callable[[FsRow], int]:
268
+ return safe_hash
269
+
270
+ ignore(remove_in_place(enumerator.System_Collections_Generic_IEnumerator_1_get_Current(), self_1._rows, ObjectExpr215()))
271
+
272
+ @staticmethod
273
+ def remove_row_at(row_index: int, sheet: FsWorksheet) -> FsWorksheet:
274
+ sheet.RemoveRowAt(row_index)
275
+ return sheet
276
+
277
+ def TryRemoveAt(self, row_index: int) -> FsWorksheet:
278
+ self_1: FsWorksheet = self
279
+ if self_1.ContainsRowAt(row_index):
280
+ self_1.RemoveRowAt(row_index)
281
+
282
+ return self_1
283
+
284
+ @staticmethod
285
+ def try_remove_at(row_index: int, sheet: FsWorksheet) -> None:
286
+ if FsWorksheet.contains_row_at(row_index, sheet):
287
+ sheet.RemoveRowAt(row_index)
288
+
289
+
290
+ def SortRows(self, __unit: None=None) -> None:
291
+ self_1: FsWorksheet = self
292
+ def projection(r: FsRow) -> int:
293
+ return r.Index
294
+
295
+ class ObjectExpr216:
296
+ @property
297
+ def Compare(self) -> Callable[[int, int], int]:
298
+ return compare_primitives
299
+
300
+ sorted: Array[FsRow] = list(sort_by(projection, self_1._rows, ObjectExpr216()))
301
+ clear(self_1._rows)
302
+ add_range_in_place(sorted, self_1._rows)
303
+
304
+ def MapRowsInPlace(self, f: Callable[[FsRow], FsRow]) -> FsWorksheet:
305
+ self_1: FsWorksheet = self
306
+ for i in range(0, (len(self_1._rows) - 1) + 1, 1):
307
+ r: FsRow = self_1._rows[i]
308
+ self_1._rows[i] = f(r)
309
+ return self_1
310
+
311
+ @staticmethod
312
+ def map_rows_in_place(f: Callable[[FsRow], FsRow], sheet: FsWorksheet) -> FsWorksheet:
313
+ return sheet.MapRowsInPlace(f)
314
+
315
+ def GetMaxRowIndex(self, __unit: None=None) -> FsRow:
316
+ self_1: FsWorksheet = self
317
+ if len(self_1.Rows) == 0:
318
+ raise Exception("The FsWorksheet has no FsRows.")
319
+
320
+ def projection(r: FsRow) -> int:
321
+ return r.Index
322
+
323
+ class ObjectExpr217:
324
+ @property
325
+ def Compare(self) -> Callable[[int, int], int]:
326
+ return compare_primitives
327
+
328
+ return max_by(projection, self_1.Rows, ObjectExpr217())
329
+
330
+ @staticmethod
331
+ def get_max_row_index(sheet: FsWorksheet) -> FsRow:
332
+ return sheet.GetMaxRowIndex()
333
+
334
+ def GetRowValuesAt(self, row_index: int) -> IEnumerable_1[Any]:
335
+ self_1: FsWorksheet = self
336
+ def mapping(c: FsCell) -> Any:
337
+ return c.Value
338
+
339
+ return map(mapping, self_1.Row(row_index).Cells) if self_1.ContainsRowAt(row_index) else empty()
340
+
341
+ @staticmethod
342
+ def get_row_values_at(row_index: int, sheet: FsWorksheet) -> IEnumerable_1[Any]:
343
+ return sheet.GetRowValuesAt(row_index)
344
+
345
+ def TryGetRowValuesAt(self, row_index: int) -> IEnumerable_1[Any] | None:
346
+ self_1: FsWorksheet = self
347
+ return self_1.GetRowValuesAt(row_index) if self_1.ContainsRowAt(row_index) else None
348
+
349
+ @staticmethod
350
+ def try_get_row_values_at(row_index: int, sheet: FsWorksheet) -> IEnumerable_1[Any] | None:
351
+ return sheet.TryGetRowValuesAt(row_index)
352
+
353
+ def RescanRows(self, __unit: None=None) -> None:
354
+ self_1: FsWorksheet = self
355
+ def mapping(r: FsRow) -> tuple[int, FsRow]:
356
+ return (r.Index, r)
357
+
358
+ class ObjectExpr218:
359
+ @property
360
+ def Compare(self) -> Callable[[int, int], int]:
361
+ return compare_primitives
362
+
363
+ rows: Any = of_seq(map(mapping, self_1._rows), ObjectExpr218())
364
+ def action_1(tupled_arg: tuple[int, IEnumerable_1[FsCell]]) -> None:
365
+ row_index: int = tupled_arg[0] or 0
366
+ min: int = 1
367
+ max: int = 1
368
+ def action(c_1: FsCell, tupled_arg: Any=tupled_arg) -> None:
369
+ nonlocal min, max
370
+ cn: int = c_1.ColumnNumber or 0
371
+ if cn < min:
372
+ min = cn or 0
373
+
374
+ if cn > max:
375
+ max = cn or 0
376
+
377
+
378
+ iterate(action, tupled_arg[1])
379
+ new_range: FsRangeAddress = FsRangeAddress__ctor_7E77A4A0(FsAddress__ctor_Z37302880(row_index, min), FsAddress__ctor_Z37302880(row_index, max))
380
+ match_value: FsRow | None = try_find_1(row_index, rows)
381
+ if match_value is None:
382
+ ignore(self_1.RowWithRange(new_range, True))
383
+
384
+ else:
385
+ FsRangeBase__set_RangeAddress_6A2513BC(match_value, new_range)
386
+
387
+
388
+ def projection(c: FsCell) -> int:
389
+ return c.RowNumber
390
+
391
+ class ObjectExpr220:
392
+ @property
393
+ def Equals(self) -> Callable[[int, int], bool]:
394
+ def _arrow219(x_1: int, y_1: int) -> bool:
395
+ return x_1 == y_1
396
+
397
+ return _arrow219
398
+
399
+ @property
400
+ def GetHashCode(self) -> Callable[[int], int]:
401
+ return number_hash
402
+
403
+ iterate(action_1, group_by(projection, FsCellsCollection__GetCells(self_1._cells), ObjectExpr220()))
404
+
405
+ def Column(self, column_index: int) -> FsColumn:
406
+ self_1: FsWorksheet = self
407
+ return FsColumn.create_at(column_index, self_1.CellCollection)
408
+
409
+ def ColumnWithRange(self, range_address: FsRangeAddress) -> None:
410
+ self_1: FsWorksheet = self
411
+ if FsAddress__get_ColumnNumber(FsRangeAddress__get_FirstAddress(range_address)) != FsAddress__get_ColumnNumber(FsRangeAddress__get_LastAddress(range_address)):
412
+ to_fail(printf("Column may not have a range address spanning over different column indices"))
413
+
414
+ FsRangeBase__set_RangeAddress_6A2513BC(self_1.Column(FsAddress__get_ColumnNumber(FsRangeAddress__get_FirstAddress(range_address))), range_address)
415
+
416
+ @staticmethod
417
+ def get_columns(sheet: FsWorksheet) -> IEnumerable_1[FsColumn]:
418
+ return sheet.Columns
419
+
420
+ @staticmethod
421
+ def get_column_at(column_index: int, sheet: FsWorksheet) -> FsColumn:
422
+ def predicate(arg: FsColumn) -> bool:
423
+ return column_index == FsColumn.get_index(arg)
424
+
425
+ return find(predicate, FsWorksheet.get_columns(sheet))
426
+
427
+ @staticmethod
428
+ def try_get_column_at(column_index: int, sheet: FsWorksheet) -> FsColumn | None:
429
+ def predicate(arg: FsColumn) -> bool:
430
+ return column_index == FsColumn.get_index(arg)
431
+
432
+ return try_find(predicate, sheet.Columns)
433
+
434
+ def Table(self, table_name: str, range_address: FsRangeAddress, show_header_row: bool | None=None) -> FsTable:
435
+ self_1: FsWorksheet = self
436
+ show_header_row_1: bool = default_arg(show_header_row, True)
437
+ def predicate(table: FsTable) -> bool:
438
+ return table.Name == self_1.name
439
+
440
+ match_value: FsTable | None = try_find(predicate, self_1._tables)
441
+ if match_value is None:
442
+ table_2: FsTable = FsTable(table_name, range_address, show_header_row_1)
443
+ (self_1._tables.append(table_2))
444
+ return table_2
445
+
446
+ else:
447
+ return match_value
448
+
449
+
450
+ @staticmethod
451
+ def try_get_table_by_name(table_name: str, sheet: FsWorksheet) -> FsTable | None:
452
+ def predicate(t: FsTable) -> bool:
453
+ return t.Name == table_name
454
+
455
+ return try_find(predicate, sheet.Tables)
456
+
457
+ @staticmethod
458
+ def get_table_by_name(table_name: str, sheet: FsWorksheet) -> FsTable:
459
+ try:
460
+ def predicate(t: FsTable) -> bool:
461
+ return t.Name == table_name
462
+
463
+ return value_3(try_find(predicate, sheet.Tables))
464
+
465
+ except Exception as match_value:
466
+ raise Exception(((("FsTable with name " + table_name) + " is not presen in the FsWorksheet ") + sheet.Name) + ".")
467
+
468
+
469
+ def AddTable(self, table: FsTable) -> FsWorksheet:
470
+ self_1: FsWorksheet = self
471
+ def predicate(t: FsTable) -> bool:
472
+ return t.Name == table.Name
473
+
474
+ if exists(predicate, self_1.Tables):
475
+ to_console(((("FsTable " + table.Name) + " could not be appended as an FsTable with this name is already present in the FsWorksheet ") + self_1.Name) + ".")
476
+
477
+ else:
478
+ (self_1._tables.append(table))
479
+
480
+ return self_1
481
+
482
+ @staticmethod
483
+ def add_table(table: FsTable, sheet: FsWorksheet) -> FsWorksheet:
484
+ return sheet.AddTable(table)
485
+
486
+ def AddTables(self, tables: FSharpList[Any]) -> FsWorksheet:
487
+ self_1: FsWorksheet = self
488
+ def action(arg: __B | None=None) -> None:
489
+ ignore(self_1.AddTable(arg))
490
+
491
+ iterate_1(action, tables)
492
+ return self_1
493
+
494
+ @staticmethod
495
+ def add_tables(tables: FSharpList[Any], sheet: FsWorksheet) -> FsWorksheet:
496
+ return sheet.AddTables(tables)
497
+
498
+ def TryGetCellAt(self, row_index: int, col_index: int) -> FsCell | None:
499
+ self_1: FsWorksheet = self
500
+ return FsCellsCollection__TryGetCell_Z37302880(self_1.CellCollection, row_index, col_index)
501
+
502
+ @staticmethod
503
+ def try_get_cell_at(row_index: int, col_index: int, sheet: FsWorksheet) -> FsCell | None:
504
+ return sheet.TryGetCellAt(row_index, col_index)
505
+
506
+ def GetCellAt(self, row_index: int, col_index: int) -> FsCell:
507
+ self_1: FsWorksheet = self
508
+ return value_3(self_1.TryGetCellAt(row_index, col_index))
509
+
510
+ @staticmethod
511
+ def get_cell_at(row_index: int, col_index: int, sheet: FsWorksheet) -> FsCell:
512
+ return sheet.GetCellAt(row_index, col_index)
513
+
514
+ def AddCell(self, cell: FsCell) -> FsWorksheet:
515
+ self_1: FsWorksheet = self
516
+ value: None = FsCellsCollection__Add_Z334DF64D(self_1.CellCollection, cell)
517
+ ignore(None)
518
+ return self_1
519
+
520
+ def AddCells(self, cells: IEnumerable_1[FsCell]) -> FsWorksheet:
521
+ self_1: FsWorksheet = self
522
+ value: None = FsCellsCollection__Add_Z21F271A4(self_1.CellCollection, cells)
523
+ ignore(None)
524
+ return self_1
525
+
526
+ def InsertValueAt(self, value: IConvertible, row_index: int, col_index: int) -> None:
527
+ self_1: FsWorksheet = self
528
+ cell: FsCell = FsCell(value)
529
+ FsCellsCollection__Add_2E78CE33(self_1.CellCollection, row_index, col_index, cell)
530
+
531
+ def InsertValueAt(self, value: Any, row_index: int, col_index: int) -> None:
532
+ self_1: FsWorksheet = self
533
+ cell: FsCell = FsCell(value)
534
+ FsCellsCollection__Add_2E78CE33(self_1.CellCollection, row_index, col_index, cell)
535
+
536
+ @staticmethod
537
+ def insert_value_at(value: Any, row_index: int, col_index: int, sheet: FsWorksheet) -> None:
538
+ sheet.InsertValueAt(value, row_index, col_index)
539
+
540
+ def SetValueAt(self, value: Any, row_index: int, col_index: int) -> FsWorksheet:
541
+ self_1: FsWorksheet = self
542
+ match_value: FsCell | None = FsCellsCollection__TryGetCell_Z37302880(self_1.CellCollection, row_index, col_index)
543
+ if match_value is None:
544
+ value_2: None = FsCellsCollection__Add_2E78CE33(self_1.CellCollection, row_index, col_index, value)
545
+ ignore(None)
546
+ return self_1
547
+
548
+ else:
549
+ c: FsCell = match_value
550
+ value_1: None = c.SetValueAs(value)
551
+ ignore(None)
552
+ return self_1
553
+
554
+
555
+ @staticmethod
556
+ def set_value_at(value: Any, row_index: int, col_index: int, sheet: FsWorksheet) -> FsWorksheet:
557
+ return sheet.SetValueAt(value, row_index, col_index)
558
+
559
+ def RemoveCellAt(self, row_index: int, col_index: int) -> FsWorksheet:
560
+ self_1: FsWorksheet = self
561
+ FsCellsCollection__RemoveCellAt_Z37302880(self_1.CellCollection, row_index, col_index)
562
+ return self_1
563
+
564
+ @staticmethod
565
+ def remove_cell_at(row_index: int, col_index: int, sheet: FsWorksheet) -> FsWorksheet:
566
+ return sheet.RemoveCellAt(row_index, col_index)
567
+
568
+ def TryRemoveValueAt(self, row_index: int, col_index: int) -> None:
569
+ self_1: FsWorksheet = self
570
+ FsCellsCollection__TryRemoveValueAt_Z37302880(self_1.CellCollection, row_index, col_index)
571
+
572
+ @staticmethod
573
+ def try_remove_value_at(row_index: int, col_index: int, sheet: FsWorksheet) -> None:
574
+ sheet.TryRemoveValueAt(row_index, col_index)
575
+
576
+ def RemoveValueAt(self, row_index: int, col_index: int) -> None:
577
+ self_1: FsWorksheet = self
578
+ FsCellsCollection__RemoveValueAt_Z37302880(self_1.CellCollection, row_index, col_index)
579
+
580
+ @staticmethod
581
+ def remove_value_at(row_index: int, col_index: int, sheet: FsWorksheet) -> None:
582
+ sheet.RemoveValueAt(row_index, col_index)
583
+
584
+ @staticmethod
585
+ def add_cell(cell: FsCell, sheet: FsWorksheet) -> FsWorksheet:
586
+ return sheet.AddCell(cell)
587
+
588
+ @staticmethod
589
+ def add_cells(cell: IEnumerable_1[FsCell], sheet: FsWorksheet) -> FsWorksheet:
590
+ return sheet.AddCells(cell)
591
+
592
+
593
+ FsWorksheet_reflection = _expr221
594
+
595
+ def FsWorksheet__ctor_7FDA5F7A(name: str, fs_rows: Array[FsRow] | None=None, fs_tables: Array[FsTable] | None=None, fs_cells_collection: FsCellsCollection | None=None) -> FsWorksheet:
596
+ return FsWorksheet(name, fs_rows, fs_tables, fs_cells_collection)
597
+
598
+
599
+ __all__ = ["FsWorksheet_reflection"]
600
+