arctrl 3.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (511) hide show
  1. arctrl/__init__.py +23 -0
  2. arctrl/cwl.py +12 -0
  3. arctrl/py/CWL/__init__.py +0 -0
  4. arctrl/py/CWL/cwlprocessing_unit.py +221 -0
  5. arctrl/py/CWL/cwltypes.py +364 -0
  6. arctrl/py/CWL/decode.py +3532 -0
  7. arctrl/py/CWL/encode.py +1905 -0
  8. arctrl/py/CWL/expression_tool_description.py +192 -0
  9. arctrl/py/CWL/hash_helpers.py +60 -0
  10. arctrl/py/CWL/inputs.py +122 -0
  11. arctrl/py/CWL/operation_description.py +169 -0
  12. arctrl/py/CWL/outputs.py +171 -0
  13. arctrl/py/CWL/parameter_reference.py +74 -0
  14. arctrl/py/CWL/requirements.py +350 -0
  15. arctrl/py/CWL/tool_description.py +192 -0
  16. arctrl/py/CWL/workflow_description.py +181 -0
  17. arctrl/py/CWL/workflow_steps.py +354 -0
  18. arctrl/py/Contract/__init__.py +0 -0
  19. arctrl/py/Contract/arc.py +89 -0
  20. arctrl/py/Contract/arc_assay.py +125 -0
  21. arctrl/py/Contract/arc_investigation.py +88 -0
  22. arctrl/py/Contract/arc_run.py +291 -0
  23. arctrl/py/Contract/arc_study.py +126 -0
  24. arctrl/py/Contract/arc_workflow.py +213 -0
  25. arctrl/py/Contract/contract.py +153 -0
  26. arctrl/py/Contract/datamap.py +396 -0
  27. arctrl/py/Contract/git.py +116 -0
  28. arctrl/py/Contract/license.py +58 -0
  29. arctrl/py/Contract/validation_packages_config.py +107 -0
  30. arctrl/py/ContractIO/__init__.py +0 -0
  31. arctrl/py/ContractIO/contract_io.py +350 -0
  32. arctrl/py/ContractIO/file_system_helper.py +264 -0
  33. arctrl/py/Conversion/__init__.py +0 -0
  34. arctrl/py/Conversion/assay.py +151 -0
  35. arctrl/py/Conversion/basic.py +559 -0
  36. arctrl/py/Conversion/column_index.py +91 -0
  37. arctrl/py/Conversion/datamap.py +36 -0
  38. arctrl/py/Conversion/date_time.py +32 -0
  39. arctrl/py/Conversion/investigation.py +171 -0
  40. arctrl/py/Conversion/person.py +148 -0
  41. arctrl/py/Conversion/process.py +828 -0
  42. arctrl/py/Conversion/run.py +367 -0
  43. arctrl/py/Conversion/scholarly_article.py +163 -0
  44. arctrl/py/Conversion/study.py +99 -0
  45. arctrl/py/Conversion/table.py +229 -0
  46. arctrl/py/Conversion/workflow.py +680 -0
  47. arctrl/py/Core/Helper/__init__.py +0 -0
  48. arctrl/py/Core/Helper/collections_.py +512 -0
  49. arctrl/py/Core/Helper/date_time.py +26 -0
  50. arctrl/py/Core/Helper/hash_codes.py +60 -0
  51. arctrl/py/Core/Helper/identifier.py +290 -0
  52. arctrl/py/Core/Helper/orcid.py +42 -0
  53. arctrl/py/Core/Helper/printer.py +13 -0
  54. arctrl/py/Core/Helper/regex.py +554 -0
  55. arctrl/py/Core/Helper/sem_ver.py +71 -0
  56. arctrl/py/Core/Helper/url.py +148 -0
  57. arctrl/py/Core/Process/__init__.py +0 -0
  58. arctrl/py/Core/Process/column_index.py +280 -0
  59. arctrl/py/Core/Process/component.py +200 -0
  60. arctrl/py/Core/Process/factor.py +151 -0
  61. arctrl/py/Core/Process/factor_value.py +182 -0
  62. arctrl/py/Core/Process/material.py +74 -0
  63. arctrl/py/Core/Process/material_attribute.py +95 -0
  64. arctrl/py/Core/Process/material_attribute_value.py +184 -0
  65. arctrl/py/Core/Process/material_type.py +45 -0
  66. arctrl/py/Core/Process/process.py +477 -0
  67. arctrl/py/Core/Process/process_input.py +265 -0
  68. arctrl/py/Core/Process/process_output.py +235 -0
  69. arctrl/py/Core/Process/process_parameter_value.py +200 -0
  70. arctrl/py/Core/Process/process_sequence.py +435 -0
  71. arctrl/py/Core/Process/protocol.py +175 -0
  72. arctrl/py/Core/Process/protocol_parameter.py +98 -0
  73. arctrl/py/Core/Process/sample.py +82 -0
  74. arctrl/py/Core/Process/source.py +62 -0
  75. arctrl/py/Core/Table/__init__.py +0 -0
  76. arctrl/py/Core/Table/arc_table.py +1206 -0
  77. arctrl/py/Core/Table/arc_table_aux.py +1308 -0
  78. arctrl/py/Core/Table/arc_tables.py +574 -0
  79. arctrl/py/Core/Table/composite_cell.py +319 -0
  80. arctrl/py/Core/Table/composite_column.py +73 -0
  81. arctrl/py/Core/Table/composite_header.py +739 -0
  82. arctrl/py/Core/__init__.py +0 -0
  83. arctrl/py/Core/arc_types.py +5312 -0
  84. arctrl/py/Core/comment.py +128 -0
  85. arctrl/py/Core/comment_list.py +127 -0
  86. arctrl/py/Core/conversion.py +1375 -0
  87. arctrl/py/Core/data.py +247 -0
  88. arctrl/py/Core/data_context.py +157 -0
  89. arctrl/py/Core/data_file.py +112 -0
  90. arctrl/py/Core/datamap.py +217 -0
  91. arctrl/py/Core/identifier_setters.py +43 -0
  92. arctrl/py/Core/iproperty_value.py +36 -0
  93. arctrl/py/Core/ontology_annotation.py +298 -0
  94. arctrl/py/Core/ontology_source_reference.py +114 -0
  95. arctrl/py/Core/person.py +259 -0
  96. arctrl/py/Core/publication.py +161 -0
  97. arctrl/py/Core/template.py +231 -0
  98. arctrl/py/Core/templates.py +148 -0
  99. arctrl/py/Core/uri.py +11 -0
  100. arctrl/py/Core/value.py +188 -0
  101. arctrl/py/FileSystem/__init__.py +0 -0
  102. arctrl/py/FileSystem/commit.py +21 -0
  103. arctrl/py/FileSystem/default_gitattributes.py +1 -0
  104. arctrl/py/FileSystem/default_gitignore.py +1 -0
  105. arctrl/py/FileSystem/default_license.py +1 -0
  106. arctrl/py/FileSystem/file_system.py +58 -0
  107. arctrl/py/FileSystem/file_system_tree.py +483 -0
  108. arctrl/py/FileSystem/path.py +266 -0
  109. arctrl/py/Json/Datamap/__init__.py +0 -0
  110. arctrl/py/Json/Datamap/data_context.py +101 -0
  111. arctrl/py/Json/Datamap/datamap.py +53 -0
  112. arctrl/py/Json/Process/__init__.py +0 -0
  113. arctrl/py/Json/Process/assay_materials.py +46 -0
  114. arctrl/py/Json/Process/component.py +125 -0
  115. arctrl/py/Json/Process/factor.py +107 -0
  116. arctrl/py/Json/Process/factor_value.py +101 -0
  117. arctrl/py/Json/Process/material.py +226 -0
  118. arctrl/py/Json/Process/material_attribute.py +79 -0
  119. arctrl/py/Json/Process/material_attribute_value.py +101 -0
  120. arctrl/py/Json/Process/material_type.py +53 -0
  121. arctrl/py/Json/Process/process.py +296 -0
  122. arctrl/py/Json/Process/process_input.py +83 -0
  123. arctrl/py/Json/Process/process_output.py +67 -0
  124. arctrl/py/Json/Process/process_parameter_value.py +81 -0
  125. arctrl/py/Json/Process/protocol.py +354 -0
  126. arctrl/py/Json/Process/protocol_parameter.py +91 -0
  127. arctrl/py/Json/Process/sample.py +277 -0
  128. arctrl/py/Json/Process/source.py +214 -0
  129. arctrl/py/Json/Process/study_materials.py +52 -0
  130. arctrl/py/Json/Process/value.py +56 -0
  131. arctrl/py/Json/ROCrate/__init__.py +0 -0
  132. arctrl/py/Json/ROCrate/ldcontext.py +143 -0
  133. arctrl/py/Json/ROCrate/ldgraph.py +117 -0
  134. arctrl/py/Json/ROCrate/ldnode.py +304 -0
  135. arctrl/py/Json/ROCrate/ldref.py +44 -0
  136. arctrl/py/Json/ROCrate/ldvalue.py +102 -0
  137. arctrl/py/Json/Table/__init__.py +0 -0
  138. arctrl/py/Json/Table/arc_table.py +375 -0
  139. arctrl/py/Json/Table/cell_table.py +83 -0
  140. arctrl/py/Json/Table/composite_cell.py +136 -0
  141. arctrl/py/Json/Table/composite_header.py +67 -0
  142. arctrl/py/Json/Table/iotype.py +24 -0
  143. arctrl/py/Json/Table/oatable.py +82 -0
  144. arctrl/py/Json/Table/templates.py +281 -0
  145. arctrl/py/Json/__init__.py +0 -0
  146. arctrl/py/Json/assay.py +600 -0
  147. arctrl/py/Json/comment.py +206 -0
  148. arctrl/py/Json/context/rocrate/__init__.py +0 -0
  149. arctrl/py/Json/context/rocrate/isa_assay_context.py +101 -0
  150. arctrl/py/Json/context/rocrate/isa_comment_context.py +60 -0
  151. arctrl/py/Json/context/rocrate/isa_component_context.py +77 -0
  152. arctrl/py/Json/context/rocrate/isa_data_context.py +74 -0
  153. arctrl/py/Json/context/rocrate/isa_factor_context.py +74 -0
  154. arctrl/py/Json/context/rocrate/isa_factor_value_context.py +84 -0
  155. arctrl/py/Json/context/rocrate/isa_investigation_context.py +110 -0
  156. arctrl/py/Json/context/rocrate/isa_material_attribute_context.py +64 -0
  157. arctrl/py/Json/context/rocrate/isa_material_attribute_value_context.py +80 -0
  158. arctrl/py/Json/context/rocrate/isa_material_context.py +71 -0
  159. arctrl/py/Json/context/rocrate/isa_ontology_annotation_context.py +68 -0
  160. arctrl/py/Json/context/rocrate/isa_ontology_source_reference_context.py +75 -0
  161. arctrl/py/Json/context/rocrate/isa_organization_context.py +55 -0
  162. arctrl/py/Json/context/rocrate/isa_person_context.py +131 -0
  163. arctrl/py/Json/context/rocrate/isa_process_context.py +94 -0
  164. arctrl/py/Json/context/rocrate/isa_process_parameter_value_context.py +80 -0
  165. arctrl/py/Json/context/rocrate/isa_protocol_context.py +97 -0
  166. arctrl/py/Json/context/rocrate/isa_protocol_parameter_context.py +64 -0
  167. arctrl/py/Json/context/rocrate/isa_publication_context.py +78 -0
  168. arctrl/py/Json/context/rocrate/isa_sample_context.py +65 -0
  169. arctrl/py/Json/context/rocrate/isa_source_context.py +66 -0
  170. arctrl/py/Json/context/rocrate/isa_study_context.py +125 -0
  171. arctrl/py/Json/context/rocrate/property_value_context.py +73 -0
  172. arctrl/py/Json/context/rocrate/rocrate_context.py +81 -0
  173. arctrl/py/Json/converter_options.py +23 -0
  174. arctrl/py/Json/data.py +356 -0
  175. arctrl/py/Json/data_file.py +63 -0
  176. arctrl/py/Json/decode.py +271 -0
  177. arctrl/py/Json/encode.py +140 -0
  178. arctrl/py/Json/idtable.py +44 -0
  179. arctrl/py/Json/investigation.py +695 -0
  180. arctrl/py/Json/ontology_annotation.py +404 -0
  181. arctrl/py/Json/ontology_source_reference.py +255 -0
  182. arctrl/py/Json/person.py +658 -0
  183. arctrl/py/Json/property_value.py +359 -0
  184. arctrl/py/Json/publication.py +279 -0
  185. arctrl/py/Json/run.py +275 -0
  186. arctrl/py/Json/string_table.py +87 -0
  187. arctrl/py/Json/study.py +793 -0
  188. arctrl/py/Json/workflow.py +307 -0
  189. arctrl/py/JsonIO/Process/__init__.py +0 -0
  190. arctrl/py/JsonIO/Process/component.py +60 -0
  191. arctrl/py/JsonIO/Process/factor.py +36 -0
  192. arctrl/py/JsonIO/Process/factor_value.py +38 -0
  193. arctrl/py/JsonIO/Process/material.py +60 -0
  194. arctrl/py/JsonIO/Process/material_attribute.py +38 -0
  195. arctrl/py/JsonIO/Process/material_attribute_value.py +60 -0
  196. arctrl/py/JsonIO/Process/material_type.py +36 -0
  197. arctrl/py/JsonIO/Process/process.py +60 -0
  198. arctrl/py/JsonIO/Process/process_input.py +38 -0
  199. arctrl/py/JsonIO/Process/process_output.py +60 -0
  200. arctrl/py/JsonIO/Process/process_parameter_value.py +60 -0
  201. arctrl/py/JsonIO/Process/process_sequence.py +71 -0
  202. arctrl/py/JsonIO/Process/protocol.py +60 -0
  203. arctrl/py/JsonIO/Process/protocol_parameter.py +36 -0
  204. arctrl/py/JsonIO/Process/sample.py +60 -0
  205. arctrl/py/JsonIO/Process/source.py +60 -0
  206. arctrl/py/JsonIO/Process/study_materials.py +52 -0
  207. arctrl/py/JsonIO/Process/value.py +32 -0
  208. arctrl/py/JsonIO/Table/__init__.py +0 -0
  209. arctrl/py/JsonIO/Table/arc_table.py +103 -0
  210. arctrl/py/JsonIO/Table/composite_cell.py +36 -0
  211. arctrl/py/JsonIO/Table/composite_header.py +36 -0
  212. arctrl/py/JsonIO/Table/compression.py +67 -0
  213. arctrl/py/JsonIO/Table/iotype.py +36 -0
  214. arctrl/py/JsonIO/Table/templates.py +113 -0
  215. arctrl/py/JsonIO/__init__.py +0 -0
  216. arctrl/py/JsonIO/assay.py +113 -0
  217. arctrl/py/JsonIO/comment.py +80 -0
  218. arctrl/py/JsonIO/data.py +60 -0
  219. arctrl/py/JsonIO/data_file.py +58 -0
  220. arctrl/py/JsonIO/datamap.py +36 -0
  221. arctrl/py/JsonIO/decode.py +9 -0
  222. arctrl/py/JsonIO/encode.py +1 -0
  223. arctrl/py/JsonIO/investigation.py +91 -0
  224. arctrl/py/JsonIO/ldobject.py +106 -0
  225. arctrl/py/JsonIO/ontology_annotation.py +80 -0
  226. arctrl/py/JsonIO/ontology_source_reference.py +80 -0
  227. arctrl/py/JsonIO/person.py +82 -0
  228. arctrl/py/JsonIO/publication.py +82 -0
  229. arctrl/py/JsonIO/run.py +68 -0
  230. arctrl/py/JsonIO/study.py +114 -0
  231. arctrl/py/JsonIO/workflow.py +68 -0
  232. arctrl/py/ROCrate/ISAProfile/__init__.py +0 -0
  233. arctrl/py/ROCrate/ISAProfile/assay.py +70 -0
  234. arctrl/py/ROCrate/ISAProfile/data.py +65 -0
  235. arctrl/py/ROCrate/ISAProfile/dataset.py +24 -0
  236. arctrl/py/ROCrate/ISAProfile/investigation.py +73 -0
  237. arctrl/py/ROCrate/ISAProfile/lab_process.py +162 -0
  238. arctrl/py/ROCrate/ISAProfile/lab_protocol.py +37 -0
  239. arctrl/py/ROCrate/ISAProfile/person.py +72 -0
  240. arctrl/py/ROCrate/ISAProfile/property_value.py +98 -0
  241. arctrl/py/ROCrate/ISAProfile/sample.py +64 -0
  242. arctrl/py/ROCrate/ISAProfile/scholarly_article.py +98 -0
  243. arctrl/py/ROCrate/ISAProfile/study.py +74 -0
  244. arctrl/py/ROCrate/LDTypes/__init__.py +0 -0
  245. arctrl/py/ROCrate/LDTypes/comment.py +131 -0
  246. arctrl/py/ROCrate/LDTypes/computational_workflow.py +455 -0
  247. arctrl/py/ROCrate/LDTypes/computer_language.py +269 -0
  248. arctrl/py/ROCrate/LDTypes/create_action.py +303 -0
  249. arctrl/py/ROCrate/LDTypes/creative_work.py +566 -0
  250. arctrl/py/ROCrate/LDTypes/dataset.py +943 -0
  251. arctrl/py/ROCrate/LDTypes/defined_term.py +131 -0
  252. arctrl/py/ROCrate/LDTypes/file.py +281 -0
  253. arctrl/py/ROCrate/LDTypes/formal_parameter.py +431 -0
  254. arctrl/py/ROCrate/LDTypes/lab_process.py +352 -0
  255. arctrl/py/ROCrate/LDTypes/lab_protocol.py +395 -0
  256. arctrl/py/ROCrate/LDTypes/organization.py +83 -0
  257. arctrl/py/ROCrate/LDTypes/person.py +484 -0
  258. arctrl/py/ROCrate/LDTypes/postal_address.py +195 -0
  259. arctrl/py/ROCrate/LDTypes/property_value.py +952 -0
  260. arctrl/py/ROCrate/LDTypes/sample.py +202 -0
  261. arctrl/py/ROCrate/LDTypes/scholarly_article.py +229 -0
  262. arctrl/py/ROCrate/LDTypes/software_source_code.py +310 -0
  263. arctrl/py/ROCrate/LDTypes/workflow_invocation.py +48 -0
  264. arctrl/py/ROCrate/LDTypes/workflow_protocol.py +52 -0
  265. arctrl/py/ROCrate/__init__.py +0 -0
  266. arctrl/py/ROCrate/arc_rocrate_metadata.py +39 -0
  267. arctrl/py/ROCrate/dyn_obj_extensions.py +1 -0
  268. arctrl/py/ROCrate/helper.py +8 -0
  269. arctrl/py/ROCrate/ldcontext.py +406 -0
  270. arctrl/py/ROCrate/ldobject.py +1247 -0
  271. arctrl/py/ROCrate/rocrate_context.py +51 -0
  272. arctrl/py/Spreadsheet/AnnotationTable/__init__.py +0 -0
  273. arctrl/py/Spreadsheet/AnnotationTable/arc_table.py +203 -0
  274. arctrl/py/Spreadsheet/AnnotationTable/composite_cell.py +78 -0
  275. arctrl/py/Spreadsheet/AnnotationTable/composite_column.py +305 -0
  276. arctrl/py/Spreadsheet/AnnotationTable/composite_header.py +623 -0
  277. arctrl/py/Spreadsheet/DatamapTable/__init__.py +0 -0
  278. arctrl/py/Spreadsheet/DatamapTable/datamap_column.py +114 -0
  279. arctrl/py/Spreadsheet/DatamapTable/datamap_header.py +621 -0
  280. arctrl/py/Spreadsheet/DatamapTable/datamap_table.py +118 -0
  281. arctrl/py/Spreadsheet/Metadata/__init__.py +0 -0
  282. arctrl/py/Spreadsheet/Metadata/assays.py +125 -0
  283. arctrl/py/Spreadsheet/Metadata/comment.py +77 -0
  284. arctrl/py/Spreadsheet/Metadata/contacts.py +134 -0
  285. arctrl/py/Spreadsheet/Metadata/conversions.py +190 -0
  286. arctrl/py/Spreadsheet/Metadata/design_descriptors.py +34 -0
  287. arctrl/py/Spreadsheet/Metadata/factors.py +107 -0
  288. arctrl/py/Spreadsheet/Metadata/ontology_annotation.py +88 -0
  289. arctrl/py/Spreadsheet/Metadata/ontology_source_reference.py +96 -0
  290. arctrl/py/Spreadsheet/Metadata/protocols.py +146 -0
  291. arctrl/py/Spreadsheet/Metadata/publication.py +122 -0
  292. arctrl/py/Spreadsheet/Metadata/run.py +122 -0
  293. arctrl/py/Spreadsheet/Metadata/sparse_table.py +499 -0
  294. arctrl/py/Spreadsheet/Metadata/study.py +312 -0
  295. arctrl/py/Spreadsheet/Metadata/workflow.py +159 -0
  296. arctrl/py/Spreadsheet/__init__.py +0 -0
  297. arctrl/py/Spreadsheet/arc_assay.py +233 -0
  298. arctrl/py/Spreadsheet/arc_investigation.py +435 -0
  299. arctrl/py/Spreadsheet/arc_run.py +190 -0
  300. arctrl/py/Spreadsheet/arc_study.py +144 -0
  301. arctrl/py/Spreadsheet/arc_workflow.py +177 -0
  302. arctrl/py/Spreadsheet/assembly_info.py +1 -0
  303. arctrl/py/Spreadsheet/collection_aux.py +167 -0
  304. arctrl/py/Spreadsheet/datamap.py +43 -0
  305. arctrl/py/Spreadsheet/template.py +460 -0
  306. arctrl/py/ValidationPackages/__init__.py +0 -0
  307. arctrl/py/ValidationPackages/validation_package.py +82 -0
  308. arctrl/py/ValidationPackages/validation_packages_config.py +132 -0
  309. arctrl/py/WebRequest/__init__.py +0 -0
  310. arctrl/py/WebRequest/web_request.py +9 -0
  311. arctrl/py/WebRequest/web_request_py.py +135 -0
  312. arctrl/py/WorkflowGraph/__init__.py +0 -0
  313. arctrl/py/WorkflowGraph/adapters.py +141 -0
  314. arctrl/py/WorkflowGraph/build_options.py +45 -0
  315. arctrl/py/WorkflowGraph/builder.py +720 -0
  316. arctrl/py/WorkflowGraph/graph_types.py +260 -0
  317. arctrl/py/WorkflowGraph/query_helpers.py +76 -0
  318. arctrl/py/WorkflowGraph/reference_parsing.py +59 -0
  319. arctrl/py/WorkflowGraph/visualization_siren.py +574 -0
  320. arctrl/py/WorkflowGraph/workflow_graph.py +119 -0
  321. arctrl/py/Yaml/__init__.py +0 -0
  322. arctrl/py/Yaml/decode.py +1 -0
  323. arctrl/py/Yaml/encode.py +10 -0
  324. arctrl/py/Yaml/validation_package.py +77 -0
  325. arctrl/py/Yaml/validation_packages_config.py +86 -0
  326. arctrl/py/__init__.py +0 -0
  327. arctrl/py/arc.py +1891 -0
  328. arctrl/py/column_index.py +280 -0
  329. arctrl/py/conversion.py +142 -0
  330. arctrl/py/cross_async.py +76 -0
  331. arctrl/py/cwlrun_resolver.py +228 -0
  332. arctrl/py/fable_modules/dynamic_obj/__init__.py +0 -0
  333. arctrl/py/fable_modules/dynamic_obj/dyn_obj.py +136 -0
  334. arctrl/py/fable_modules/dynamic_obj/dynamic_obj.py +415 -0
  335. arctrl/py/fable_modules/dynamic_obj/fable_js.py +1 -0
  336. arctrl/py/fable_modules/dynamic_obj/fable_py.py +288 -0
  337. arctrl/py/fable_modules/dynamic_obj/hash_codes.py +82 -0
  338. arctrl/py/fable_modules/dynamic_obj/property_helper.py +25 -0
  339. arctrl/py/fable_modules/dynamic_obj/reflection_utils.py +87 -0
  340. arctrl/py/fable_modules/fable_library/__init__.py +0 -0
  341. arctrl/py/fable_modules/fable_library/array_.py +1528 -0
  342. arctrl/py/fable_modules/fable_library/async_.py +377 -0
  343. arctrl/py/fable_modules/fable_library/async_builder.py +379 -0
  344. arctrl/py/fable_modules/fable_library/big_int.py +330 -0
  345. arctrl/py/fable_modules/fable_library/bit_converter.py +131 -0
  346. arctrl/py/fable_modules/fable_library/boolean.py +26 -0
  347. arctrl/py/fable_modules/fable_library/char.py +237 -0
  348. arctrl/py/fable_modules/fable_library/choice.py +212 -0
  349. arctrl/py/fable_modules/fable_library/date.py +779 -0
  350. arctrl/py/fable_modules/fable_library/date_offset.py +79 -0
  351. arctrl/py/fable_modules/fable_library/decimal_.py +190 -0
  352. arctrl/py/fable_modules/fable_library/diagnostics.py +54 -0
  353. arctrl/py/fable_modules/fable_library/double.py +87 -0
  354. arctrl/py/fable_modules/fable_library/encoding.py +41 -0
  355. arctrl/py/fable_modules/fable_library/event.py +206 -0
  356. arctrl/py/fable_modules/fable_library/file.py +107 -0
  357. arctrl/py/fable_modules/fable_library/fsharp_collections.py +52 -0
  358. arctrl/py/fable_modules/fable_library/fsharp_core.py +123 -0
  359. arctrl/py/fable_modules/fable_library/global_.py +63 -0
  360. arctrl/py/fable_modules/fable_library/guid.py +41 -0
  361. arctrl/py/fable_modules/fable_library/int32.py +73 -0
  362. arctrl/py/fable_modules/fable_library/list.py +1788 -0
  363. arctrl/py/fable_modules/fable_library/long.py +240 -0
  364. arctrl/py/fable_modules/fable_library/mailbox_processor.py +179 -0
  365. arctrl/py/fable_modules/fable_library/map.py +1854 -0
  366. arctrl/py/fable_modules/fable_library/map_util.py +148 -0
  367. arctrl/py/fable_modules/fable_library/mutable_map.py +397 -0
  368. arctrl/py/fable_modules/fable_library/mutable_set.py +279 -0
  369. arctrl/py/fable_modules/fable_library/native.py +45 -0
  370. arctrl/py/fable_modules/fable_library/numeric.py +46 -0
  371. arctrl/py/fable_modules/fable_library/observable.py +222 -0
  372. arctrl/py/fable_modules/fable_library/option.py +128 -0
  373. arctrl/py/fable_modules/fable_library/path.py +62 -0
  374. arctrl/py/fable_modules/fable_library/range.py +117 -0
  375. arctrl/py/fable_modules/fable_library/reflection.py +463 -0
  376. arctrl/py/fable_modules/fable_library/reg_exp.py +137 -0
  377. arctrl/py/fable_modules/fable_library/resize_array.py +31 -0
  378. arctrl/py/fable_modules/fable_library/result.py +212 -0
  379. arctrl/py/fable_modules/fable_library/seq.py +1979 -0
  380. arctrl/py/fable_modules/fable_library/seq2.py +221 -0
  381. arctrl/py/fable_modules/fable_library/set.py +2414 -0
  382. arctrl/py/fable_modules/fable_library/singleton_local_time_zone.py +36 -0
  383. arctrl/py/fable_modules/fable_library/string_.py +573 -0
  384. arctrl/py/fable_modules/fable_library/system_collections_generic.py +462 -0
  385. arctrl/py/fable_modules/fable_library/system_text.py +237 -0
  386. arctrl/py/fable_modules/fable_library/task.py +116 -0
  387. arctrl/py/fable_modules/fable_library/task_builder.py +122 -0
  388. arctrl/py/fable_modules/fable_library/thread.py +5 -0
  389. arctrl/py/fable_modules/fable_library/time_span.py +283 -0
  390. arctrl/py/fable_modules/fable_library/timer.py +24 -0
  391. arctrl/py/fable_modules/fable_library/types.py +401 -0
  392. arctrl/py/fable_modules/fable_library/uri.py +109 -0
  393. arctrl/py/fable_modules/fable_library/util.py +2735 -0
  394. arctrl/py/fable_modules/fable_openpyxl/__init__.py +0 -0
  395. arctrl/py/fable_modules/fable_openpyxl/openpyxl.py +362 -0
  396. arctrl/py/fable_modules/fable_python/cognite-sdk/__init__.py +0 -0
  397. arctrl/py/fable_modules/fable_python/cognite-sdk/cognite_sdk.py +22 -0
  398. arctrl/py/fable_modules/fable_python/flask/__init__.py +0 -0
  399. arctrl/py/fable_modules/fable_python/flask/flask.py +34 -0
  400. arctrl/py/fable_modules/fable_python/jupyter/__init__.py +0 -0
  401. arctrl/py/fable_modules/fable_python/jupyter/ipy_widgets.py +47 -0
  402. arctrl/py/fable_modules/fable_python/jupyter/ipython.py +13 -0
  403. arctrl/py/fable_modules/fable_python/stdlib/__init__.py +0 -0
  404. arctrl/py/fable_modules/fable_python/stdlib/ast.py +1 -0
  405. arctrl/py/fable_modules/fable_python/stdlib/asyncio/__init__.py +0 -0
  406. arctrl/py/fable_modules/fable_python/stdlib/asyncio/events.py +17 -0
  407. arctrl/py/fable_modules/fable_python/stdlib/asyncio/futures.py +52 -0
  408. arctrl/py/fable_modules/fable_python/stdlib/asyncio/tasks.py +38 -0
  409. arctrl/py/fable_modules/fable_python/stdlib/base64_.py +1 -0
  410. arctrl/py/fable_modules/fable_python/stdlib/builtins_.py +38 -0
  411. arctrl/py/fable_modules/fable_python/stdlib/html.py +1 -0
  412. arctrl/py/fable_modules/fable_python/stdlib/json.py +1 -0
  413. arctrl/py/fable_modules/fable_python/stdlib/math_.py +1 -0
  414. arctrl/py/fable_modules/fable_python/stdlib/os_.py +1 -0
  415. arctrl/py/fable_modules/fable_python/stdlib/queue_.py +1 -0
  416. arctrl/py/fable_modules/fable_python/stdlib/string_.py +1 -0
  417. arctrl/py/fable_modules/fable_python/stdlib/sys_.py +30 -0
  418. arctrl/py/fable_modules/fable_python/stdlib/time_.py +1 -0
  419. arctrl/py/fable_modules/fable_python/stdlib/tk_inter.py +1 -0
  420. arctrl/py/fable_modules/fs_spreadsheet/Cells/__init__.py +0 -0
  421. arctrl/py/fable_modules/fs_spreadsheet/Cells/fs_cell.py +340 -0
  422. arctrl/py/fable_modules/fs_spreadsheet/Cells/fs_cells_collection.py +466 -0
  423. arctrl/py/fable_modules/fs_spreadsheet/DSL/__init__.py +0 -0
  424. arctrl/py/fable_modules/fs_spreadsheet/DSL/cell_builder.py +214 -0
  425. arctrl/py/fable_modules/fs_spreadsheet/DSL/column_builder.py +139 -0
  426. arctrl/py/fable_modules/fs_spreadsheet/DSL/dsl.py +50 -0
  427. arctrl/py/fable_modules/fs_spreadsheet/DSL/expression.py +65 -0
  428. arctrl/py/fable_modules/fs_spreadsheet/DSL/operators.py +9 -0
  429. arctrl/py/fable_modules/fs_spreadsheet/DSL/row_builder.py +139 -0
  430. arctrl/py/fable_modules/fs_spreadsheet/DSL/sheet_builder.py +118 -0
  431. arctrl/py/fable_modules/fs_spreadsheet/DSL/table_builder.py +122 -0
  432. arctrl/py/fable_modules/fs_spreadsheet/DSL/transform.py +463 -0
  433. arctrl/py/fable_modules/fs_spreadsheet/DSL/types.py +314 -0
  434. arctrl/py/fable_modules/fs_spreadsheet/DSL/workbook_builder.py +106 -0
  435. arctrl/py/fable_modules/fs_spreadsheet/Json/__init__.py +0 -0
  436. arctrl/py/fable_modules/fs_spreadsheet/Json/cell.py +103 -0
  437. arctrl/py/fable_modules/fs_spreadsheet/Json/column.py +70 -0
  438. arctrl/py/fable_modules/fs_spreadsheet/Json/row.py +70 -0
  439. arctrl/py/fable_modules/fs_spreadsheet/Json/table.py +54 -0
  440. arctrl/py/fable_modules/fs_spreadsheet/Json/value.py +93 -0
  441. arctrl/py/fable_modules/fs_spreadsheet/Json/workbook.py +71 -0
  442. arctrl/py/fable_modules/fs_spreadsheet/Json/worksheet.py +216 -0
  443. arctrl/py/fable_modules/fs_spreadsheet/Ranges/__init__.py +0 -0
  444. arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range.py +43 -0
  445. arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_address.py +190 -0
  446. arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_base.py +92 -0
  447. arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_column.py +77 -0
  448. arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_row.py +48 -0
  449. arctrl/py/fable_modules/fs_spreadsheet/Tables/__init__.py +0 -0
  450. arctrl/py/fable_modules/fs_spreadsheet/Tables/fs_table.py +461 -0
  451. arctrl/py/fable_modules/fs_spreadsheet/Tables/fs_table_field.py +117 -0
  452. arctrl/py/fable_modules/fs_spreadsheet/Tables/fs_table_row.py +23 -0
  453. arctrl/py/fable_modules/fs_spreadsheet/__init__.py +0 -0
  454. arctrl/py/fable_modules/fs_spreadsheet/fs_address.py +236 -0
  455. arctrl/py/fable_modules/fs_spreadsheet/fs_column.py +172 -0
  456. arctrl/py/fable_modules/fs_spreadsheet/fs_row.py +183 -0
  457. arctrl/py/fable_modules/fs_spreadsheet/fs_workbook.py +192 -0
  458. arctrl/py/fable_modules/fs_spreadsheet/fs_worksheet.py +610 -0
  459. arctrl/py/fable_modules/fs_spreadsheet/hash_codes.py +60 -0
  460. arctrl/py/fable_modules/fs_spreadsheet/sheet_builder.py +329 -0
  461. arctrl/py/fable_modules/fs_spreadsheet_py/__init__.py +0 -0
  462. arctrl/py/fable_modules/fs_spreadsheet_py/cell.py +60 -0
  463. arctrl/py/fable_modules/fs_spreadsheet_py/cell_type.py +50 -0
  464. arctrl/py/fable_modules/fs_spreadsheet_py/fs_extension.py +60 -0
  465. arctrl/py/fable_modules/fs_spreadsheet_py/json.py +47 -0
  466. arctrl/py/fable_modules/fs_spreadsheet_py/table.py +54 -0
  467. arctrl/py/fable_modules/fs_spreadsheet_py/workbook.py +41 -0
  468. arctrl/py/fable_modules/fs_spreadsheet_py/worksheet.py +52 -0
  469. arctrl/py/fable_modules/fs_spreadsheet_py/xlsx.py +37 -0
  470. arctrl/py/fable_modules/siren/__init__.py +0 -0
  471. arctrl/py/fable_modules/siren/config.py +1038 -0
  472. arctrl/py/fable_modules/siren/formatting.py +1121 -0
  473. arctrl/py/fable_modules/siren/siren.py +1941 -0
  474. arctrl/py/fable_modules/siren/siren_types.py +1229 -0
  475. arctrl/py/fable_modules/siren/theme_variables.py +517 -0
  476. arctrl/py/fable_modules/siren/util.py +37 -0
  477. arctrl/py/fable_modules/siren/yaml.py +101 -0
  478. arctrl/py/fable_modules/thoth_json_core/__init__.py +0 -0
  479. arctrl/py/fable_modules/thoth_json_core/decode.py +1614 -0
  480. arctrl/py/fable_modules/thoth_json_core/encode.py +305 -0
  481. arctrl/py/fable_modules/thoth_json_core/types.py +181 -0
  482. arctrl/py/fable_modules/thoth_json_python/__init__.py +0 -0
  483. arctrl/py/fable_modules/thoth_json_python/decode.py +112 -0
  484. arctrl/py/fable_modules/thoth_json_python/encode.py +72 -0
  485. arctrl/py/fable_modules/thoth_json_python/python.py +1 -0
  486. arctrl/py/fable_modules/yamlicious/Interop/__init__.py +0 -0
  487. arctrl/py/fable_modules/yamlicious/Interop/js_interop.py +1 -0
  488. arctrl/py/fable_modules/yamlicious/Interop/py_interop.py +7 -0
  489. arctrl/py/fable_modules/yamlicious/__init__.py +0 -0
  490. arctrl/py/fable_modules/yamlicious/decode.py +1784 -0
  491. arctrl/py/fable_modules/yamlicious/encode.py +84 -0
  492. arctrl/py/fable_modules/yamlicious/flow_to_block.py +994 -0
  493. arctrl/py/fable_modules/yamlicious/library.py +10 -0
  494. arctrl/py/fable_modules/yamlicious/persil.py +57 -0
  495. arctrl/py/fable_modules/yamlicious/preprocessing.py +99 -0
  496. arctrl/py/fable_modules/yamlicious/reader.py +739 -0
  497. arctrl/py/fable_modules/yamlicious/regex.py +29 -0
  498. arctrl/py/fable_modules/yamlicious/regex_active_patterns.py +265 -0
  499. arctrl/py/fable_modules/yamlicious/writer.py +175 -0
  500. arctrl/py/fable_modules/yamlicious/yamlicious_types.py +128 -0
  501. arctrl/py/json.py +389 -0
  502. arctrl/py/license.py +169 -0
  503. arctrl/py/rocrate_io.py +242 -0
  504. arctrl/py/template_web.py +23 -0
  505. arctrl/py/xlsx.py +212 -0
  506. arctrl/py/yaml.py +79 -0
  507. arctrl/rocrate.py +21 -0
  508. arctrl-3.0.0.dist-info/METADATA +157 -0
  509. arctrl-3.0.0.dist-info/RECORD +511 -0
  510. arctrl-3.0.0.dist-info/WHEEL +4 -0
  511. arctrl-3.0.0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,610 @@
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
16
+ from .fs_address import FsAddress
17
+ from .fs_column import FsColumn
18
+ from .fs_row import FsRow
19
+ from .Ranges.fs_range_address import FsRangeAddress
20
+ from .Tables.fs_table import FsTable
21
+
22
+ __B = TypeVar("__B")
23
+
24
+ def _expr447() -> TypeInfo:
25
+ return class_type("FsSpreadsheet.FsWorksheet", None, FsWorksheet)
26
+
27
+
28
+ class FsWorksheet:
29
+ def __init__(self, name: str, fs_rows: Array[FsRow] | None=None, fs_tables: Array[FsTable] | None=None, fs_cells_collection: FsCellsCollection | None=None) -> None:
30
+ self.name: str = name
31
+ self._name: str = self.name
32
+ self._rows: Array[FsRow] = default_arg(fs_rows, [])
33
+ self._tables: Array[FsTable] = default_arg(fs_tables, [])
34
+ self._cells: FsCellsCollection = default_arg(fs_cells_collection, FsCellsCollection())
35
+
36
+ @staticmethod
37
+ def init(name: str) -> FsWorksheet:
38
+ return FsWorksheet(name, [], [], FsCellsCollection())
39
+
40
+ @property
41
+ def Name(self, __unit: None=None) -> str:
42
+ self_1: FsWorksheet = self
43
+ return self_1._name
44
+
45
+ @Name.setter
46
+ def Name(self, name: str) -> None:
47
+ self_1: FsWorksheet = self
48
+ self_1._name = name
49
+
50
+ @property
51
+ def CellCollection(self, __unit: None=None) -> FsCellsCollection:
52
+ self_1: FsWorksheet = self
53
+ return self_1._cells
54
+
55
+ @property
56
+ def Tables(self, __unit: None=None) -> Array[FsTable]:
57
+ self_1: FsWorksheet = self
58
+ return self_1._tables
59
+
60
+ @property
61
+ def Rows(self, __unit: None=None) -> Array[FsRow]:
62
+ self_1: FsWorksheet = self
63
+ return self_1._rows
64
+
65
+ @property
66
+ def Columns(self, __unit: None=None) -> IEnumerable_1[FsColumn]:
67
+ self_1: FsWorksheet = self
68
+ def mapping(tupled_arg: tuple[int, IEnumerable_1[FsCell]]) -> FsColumn:
69
+ column_index: int = tupled_arg[0] or 0
70
+ def _arrow433(__unit: None=None, tupled_arg: Any=tupled_arg) -> FsRangeAddress:
71
+ tupled_arg_1: tuple[FsAddress, FsAddress]
72
+ def projection_1(c_1: FsCell) -> int:
73
+ return c_1.RowNumber
74
+
75
+ class ObjectExpr430:
76
+ @property
77
+ def Compare(self) -> Callable[[int, int], int]:
78
+ return compare_primitives
79
+
80
+ cells_1: IEnumerable_1[FsCell] = sort_by(projection_1, tupled_arg[1], ObjectExpr430())
81
+ def _arrow431(__unit: None=None) -> int:
82
+ c_2: FsCell = head(cells_1)
83
+ return c_2.RowNumber
84
+
85
+ def _arrow432(__unit: None=None) -> int:
86
+ c_3: FsCell = last(cells_1)
87
+ return c_3.RowNumber
88
+
89
+ tupled_arg_1 = (FsAddress(_arrow431(), column_index), FsAddress(_arrow432(), column_index))
90
+ return FsRangeAddress(tupled_arg_1[0], tupled_arg_1[1])
91
+
92
+ return FsColumn(_arrow433(), self_1.CellCollection)
93
+
94
+ def projection(c: FsCell) -> int:
95
+ return c.ColumnNumber
96
+
97
+ class ObjectExpr435:
98
+ @property
99
+ def Equals(self) -> Callable[[int, int], bool]:
100
+ def _arrow434(x: int, y: int) -> bool:
101
+ return x == y
102
+
103
+ return _arrow434
104
+
105
+ @property
106
+ def GetHashCode(self) -> Callable[[int], int]:
107
+ return number_hash
108
+
109
+ return map(mapping, group_by(projection, self_1._cells.GetCells(), ObjectExpr435()))
110
+
111
+ @property
112
+ def MaxRowIndex(self, __unit: None=None) -> int:
113
+ this: FsWorksheet = self
114
+ return this.CellCollection.MaxRowNumber
115
+
116
+ @property
117
+ def MaxColumnIndex(self, __unit: None=None) -> int:
118
+ this: FsWorksheet = self
119
+ return this.CellCollection.MaxColumnNumber
120
+
121
+ def Copy(self, __unit: None=None) -> FsWorksheet:
122
+ self_1: FsWorksheet = self
123
+ fcc: FsCellsCollection = self_1.CellCollection.Copy()
124
+ def _arrow436(__unit: None=None) -> Array[FsRow]:
125
+ n: Array[FsRow] = []
126
+ def action(r: FsRow) -> None:
127
+ item: FsRow = r.Copy()
128
+ (n.append(item))
129
+
130
+ iterate(action, self_1.Rows)
131
+ return n
132
+
133
+ def _arrow437(__unit: None=None) -> Array[FsTable]:
134
+ n_1: Array[FsTable] = []
135
+ def action_1(t: FsTable) -> None:
136
+ item_1: FsTable = t.Copy()
137
+ (n_1.append(item_1))
138
+
139
+ iterate(action_1, self_1.Tables)
140
+ return n_1
141
+
142
+ return FsWorksheet(self_1.Name, _arrow436(), _arrow437(), fcc)
143
+
144
+ @staticmethod
145
+ def copy(sheet: FsWorksheet) -> FsWorksheet:
146
+ return sheet.Copy()
147
+
148
+ def Row(self, row_index: int, SkipSearch: bool | None=None) -> FsRow:
149
+ self_1: FsWorksheet = self
150
+ if default_arg(SkipSearch, False):
151
+ row: FsRow = FsRow.create_at(row_index, self_1.CellCollection)
152
+ (self_1._rows.append(row))
153
+ return row
154
+
155
+ else:
156
+ def predicate(row_1: FsRow) -> bool:
157
+ return row_1.Index == row_index
158
+
159
+ match_value: FsRow | None = try_find(predicate, self_1._rows)
160
+ if match_value is None:
161
+ row_3: FsRow = FsRow.create_at(row_index, self_1.CellCollection)
162
+ (self_1._rows.append(row_3))
163
+ return row_3
164
+
165
+ else:
166
+ return match_value
167
+
168
+
169
+
170
+ def RowWithRange(self, range_address: FsRangeAddress, SkipSearch: bool | None=None) -> FsRow:
171
+ self_1: FsWorksheet = self
172
+ skip_search: bool = default_arg(SkipSearch, False)
173
+ if range_address.FirstAddress.RowNumber != range_address.LastAddress.RowNumber:
174
+ to_fail(printf("Row may not have a range address spanning over different row indices"))
175
+
176
+ if skip_search:
177
+ row: FsRow = FsRow(range_address, self_1.CellCollection)
178
+ row.RangeAddress = range_address
179
+ (self_1._rows.append(row))
180
+ return row
181
+
182
+ else:
183
+ row_1: FsRow = self_1.Row(range_address.FirstAddress.RowNumber)
184
+ row_1.RangeAddress = range_address
185
+ return row_1
186
+
187
+
188
+ @staticmethod
189
+ def append_row(row: FsRow, sheet: FsWorksheet) -> FsWorksheet:
190
+ ignore(sheet.Row(row.Index))
191
+ return sheet
192
+
193
+ @staticmethod
194
+ def get_rows(sheet: FsWorksheet) -> Array[FsRow]:
195
+ return sheet.Rows
196
+
197
+ @staticmethod
198
+ def get_row_at(row_index: int, sheet: FsWorksheet) -> FsRow:
199
+ def predicate(arg: FsRow) -> bool:
200
+ return row_index == FsRow.get_index(arg)
201
+
202
+ return find(predicate, FsWorksheet.get_rows(sheet))
203
+
204
+ @staticmethod
205
+ def try_get_row_at(row_index: int, sheet: FsWorksheet) -> FsRow | None:
206
+ def predicate(arg: FsRow) -> bool:
207
+ return row_index == FsRow.get_index(arg)
208
+
209
+ return try_find(predicate, sheet.Rows)
210
+
211
+ @staticmethod
212
+ def try_get_row_after(row_index: int, sheet: FsWorksheet) -> FsRow | None:
213
+ def predicate(r: FsRow) -> bool:
214
+ return r.Index >= row_index
215
+
216
+ return try_find(predicate, sheet.Rows)
217
+
218
+ def InsertBefore(self, row: FsRow, ref_row: FsRow) -> FsWorksheet:
219
+ self_1: FsWorksheet = self
220
+ enumerator: Any = get_enumerator(self_1._rows)
221
+ try:
222
+ while enumerator.System_Collections_IEnumerator_MoveNext():
223
+ row_1: FsRow = enumerator.System_Collections_Generic_IEnumerator_1_get_Current()
224
+ if row_1.Index >= ref_row.Index:
225
+ row_1.Index = (row_1.Index + 1) or 0
226
+
227
+
228
+ finally:
229
+ dispose(enumerator)
230
+
231
+ ignore(self_1.Row(row.Index))
232
+ return self_1
233
+
234
+ @staticmethod
235
+ def insert_before(row: FsRow, ref_row: FsRow, sheet: FsWorksheet) -> FsWorksheet:
236
+ return sheet.InsertBefore(row, ref_row)
237
+
238
+ def ContainsRowAt(self, row_index: int) -> bool:
239
+ self_1: FsWorksheet = self
240
+ def predicate(t: FsRow) -> bool:
241
+ return t.Index == row_index
242
+
243
+ return exists(predicate, self_1.Rows)
244
+
245
+ @staticmethod
246
+ def contains_row_at(row_index: int, sheet: FsWorksheet) -> bool:
247
+ return sheet.ContainsRowAt(row_index)
248
+
249
+ @staticmethod
250
+ def count_rows(sheet: FsWorksheet) -> int:
251
+ return len(sheet.Rows)
252
+
253
+ def RemoveRowAt(self, row_index: int) -> None:
254
+ self_1: FsWorksheet = self
255
+ def predicate(r: FsRow) -> bool:
256
+ return r.Index == row_index
257
+
258
+ with get_enumerator(filter(predicate, self_1._rows)) as enumerator:
259
+ while enumerator.System_Collections_IEnumerator_MoveNext():
260
+ class ObjectExpr438:
261
+ @property
262
+ def Equals(self) -> Callable[[FsRow, FsRow], bool]:
263
+ return equals
264
+
265
+ @property
266
+ def GetHashCode(self) -> Callable[[FsRow], int]:
267
+ return safe_hash
268
+
269
+ ignore(remove_in_place(enumerator.System_Collections_Generic_IEnumerator_1_get_Current(), self_1._rows, ObjectExpr438()))
270
+
271
+ @staticmethod
272
+ def remove_row_at(row_index: int, sheet: FsWorksheet) -> FsWorksheet:
273
+ sheet.RemoveRowAt(row_index)
274
+ return sheet
275
+
276
+ def TryRemoveAt(self, row_index: int) -> FsWorksheet:
277
+ self_1: FsWorksheet = self
278
+ if self_1.ContainsRowAt(row_index):
279
+ self_1.RemoveRowAt(row_index)
280
+
281
+ return self_1
282
+
283
+ @staticmethod
284
+ def try_remove_at(row_index: int, sheet: FsWorksheet) -> None:
285
+ if FsWorksheet.contains_row_at(row_index, sheet):
286
+ sheet.RemoveRowAt(row_index)
287
+
288
+
289
+ def SortRows(self, __unit: None=None) -> None:
290
+ self_1: FsWorksheet = self
291
+ def projection(r: FsRow) -> int:
292
+ return r.Index
293
+
294
+ class ObjectExpr439:
295
+ @property
296
+ def Compare(self) -> Callable[[int, int], int]:
297
+ return compare_primitives
298
+
299
+ sorted: Array[FsRow] = list(sort_by(projection, self_1._rows, ObjectExpr439()))
300
+ clear(self_1._rows)
301
+ add_range_in_place(sorted, self_1._rows)
302
+
303
+ def MapRowsInPlace(self, f: Callable[[FsRow], FsRow]) -> FsWorksheet:
304
+ self_1: FsWorksheet = self
305
+ for i in range(0, (len(self_1._rows) - 1) + 1, 1):
306
+ r: FsRow = self_1._rows[i]
307
+ self_1._rows[i] = f(r)
308
+ return self_1
309
+
310
+ @staticmethod
311
+ def map_rows_in_place(f: Callable[[FsRow], FsRow], sheet: FsWorksheet) -> FsWorksheet:
312
+ return sheet.MapRowsInPlace(f)
313
+
314
+ def GetMaxRowIndex(self, __unit: None=None) -> FsRow:
315
+ self_1: FsWorksheet = self
316
+ if len(self_1.Rows) == 0:
317
+ raise Exception("The FsWorksheet has no FsRows.")
318
+
319
+ def projection(r: FsRow) -> int:
320
+ return r.Index
321
+
322
+ class ObjectExpr441:
323
+ @property
324
+ def Compare(self) -> Callable[[int, int], int]:
325
+ return compare_primitives
326
+
327
+ return max_by(projection, self_1.Rows, ObjectExpr441())
328
+
329
+ @staticmethod
330
+ def get_max_row_index(sheet: FsWorksheet) -> FsRow:
331
+ return sheet.GetMaxRowIndex()
332
+
333
+ def GetRowValuesAt(self, row_index: int) -> IEnumerable_1[Any]:
334
+ self_1: FsWorksheet = self
335
+ def mapping(c: FsCell) -> Any:
336
+ return c.Value
337
+
338
+ return map(mapping, self_1.Row(row_index).Cells) if self_1.ContainsRowAt(row_index) else empty()
339
+
340
+ @staticmethod
341
+ def get_row_values_at(row_index: int, sheet: FsWorksheet) -> IEnumerable_1[Any]:
342
+ return sheet.GetRowValuesAt(row_index)
343
+
344
+ def TryGetRowValuesAt(self, row_index: int) -> IEnumerable_1[Any] | None:
345
+ self_1: FsWorksheet = self
346
+ return self_1.GetRowValuesAt(row_index) if self_1.ContainsRowAt(row_index) else None
347
+
348
+ @staticmethod
349
+ def try_get_row_values_at(row_index: int, sheet: FsWorksheet) -> IEnumerable_1[Any] | None:
350
+ return sheet.TryGetRowValuesAt(row_index)
351
+
352
+ def RescanRows(self, __unit: None=None) -> None:
353
+ self_1: FsWorksheet = self
354
+ def mapping(r: FsRow) -> tuple[int, FsRow]:
355
+ return (r.Index, r)
356
+
357
+ class ObjectExpr444:
358
+ @property
359
+ def Compare(self) -> Callable[[int, int], int]:
360
+ return compare_primitives
361
+
362
+ rows: Any = of_seq(map(mapping, self_1._rows), ObjectExpr444())
363
+ def action_1(tupled_arg: tuple[int, IEnumerable_1[FsCell]]) -> None:
364
+ row_index: int = tupled_arg[0] or 0
365
+ min: int = 1
366
+ max: int = 1
367
+ def action(c_1: FsCell, tupled_arg: Any=tupled_arg) -> None:
368
+ nonlocal min, max
369
+ cn: int = c_1.ColumnNumber or 0
370
+ if cn < min:
371
+ min = cn or 0
372
+
373
+ if cn > max:
374
+ max = cn or 0
375
+
376
+
377
+ iterate(action, tupled_arg[1])
378
+ new_range: FsRangeAddress = FsRangeAddress(FsAddress(row_index, min), FsAddress(row_index, max))
379
+ match_value: FsRow | None = try_find_1(row_index, rows)
380
+ if match_value is None:
381
+ ignore(self_1.RowWithRange(new_range, True))
382
+
383
+ else:
384
+ row: FsRow = match_value
385
+ row.RangeAddress = new_range
386
+
387
+
388
+ def projection(c: FsCell) -> int:
389
+ return c.RowNumber
390
+
391
+ class ObjectExpr446:
392
+ @property
393
+ def Equals(self) -> Callable[[int, int], bool]:
394
+ def _arrow445(x_1: int, y_1: int) -> bool:
395
+ return x_1 == y_1
396
+
397
+ return _arrow445
398
+
399
+ @property
400
+ def GetHashCode(self) -> Callable[[int], int]:
401
+ return number_hash
402
+
403
+ iterate(action_1, group_by(projection, self_1._cells.GetCells(), ObjectExpr446()))
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 range_address.FirstAddress.ColumnNumber != range_address.LastAddress.ColumnNumber:
412
+ to_fail(printf("Column may not have a range address spanning over different column indices"))
413
+
414
+ self_1.Column(range_address.FirstAddress.ColumnNumber).RangeAddress = 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 self_1.CellCollection.TryGetCell(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 = self_1.CellCollection.Add(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 = self_1.CellCollection.AddMany(cells)
523
+ ignore(None)
524
+ return self_1
525
+
526
+ def InsertValueAt(self, value: Any, row_index: int, col_index: int) -> None:
527
+ self_1: FsWorksheet = self
528
+ cell: FsCell = FsCell(value)
529
+ self_1.CellCollection.Add(cell, row_index, col_index)
530
+
531
+ @staticmethod
532
+ def insert_value_at(value: Any, row_index: int, col_index: int, sheet: FsWorksheet) -> None:
533
+ sheet.InsertValueAt(value, row_index, col_index)
534
+
535
+ def SetValueAt(self, value: Any, row_index: int, col_index: int) -> FsWorksheet:
536
+ self_1: FsWorksheet = self
537
+ match_value: FsCell | None = self_1.CellCollection.TryGetCell(row_index, col_index)
538
+ if match_value is None:
539
+ value_2: None = self_1.CellCollection.Add(value, row_index, col_index)
540
+ ignore(None)
541
+ return self_1
542
+
543
+ else:
544
+ c: FsCell = match_value
545
+ value_1: None = c.SetValueAs(value)
546
+ ignore(None)
547
+ return self_1
548
+
549
+
550
+ @staticmethod
551
+ def set_value_at(value: Any, row_index: int, col_index: int, sheet: FsWorksheet) -> FsWorksheet:
552
+ return sheet.SetValueAt(value, row_index, col_index)
553
+
554
+ def RemoveCellAt(self, row_index: int, col_index: int) -> FsWorksheet:
555
+ self_1: FsWorksheet = self
556
+ self_1.CellCollection.RemoveCellAt(row_index, col_index)
557
+ return self_1
558
+
559
+ @staticmethod
560
+ def remove_cell_at(row_index: int, col_index: int, sheet: FsWorksheet) -> FsWorksheet:
561
+ return sheet.RemoveCellAt(row_index, col_index)
562
+
563
+ def TryRemoveValueAt(self, row_index: int, col_index: int) -> None:
564
+ self_1: FsWorksheet = self
565
+ self_1.CellCollection.TryRemoveValueAt(row_index, col_index)
566
+
567
+ @staticmethod
568
+ def try_remove_value_at(row_index: int, col_index: int, sheet: FsWorksheet) -> None:
569
+ sheet.TryRemoveValueAt(row_index, col_index)
570
+
571
+ def RemoveValueAt(self, row_index: int, col_index: int) -> None:
572
+ self_1: FsWorksheet = self
573
+ self_1.CellCollection.RemoveValueAt(row_index, col_index)
574
+
575
+ @staticmethod
576
+ def remove_value_at(row_index: int, col_index: int, sheet: FsWorksheet) -> None:
577
+ sheet.RemoveValueAt(row_index, col_index)
578
+
579
+ @staticmethod
580
+ def add_cell(cell: FsCell, sheet: FsWorksheet) -> FsWorksheet:
581
+ return sheet.AddCell(cell)
582
+
583
+ @staticmethod
584
+ def add_cells(cell: IEnumerable_1[FsCell], sheet: FsWorksheet) -> FsWorksheet:
585
+ return sheet.AddCells(cell)
586
+
587
+ @staticmethod
588
+ def validate_for_write(ws: FsWorksheet) -> None:
589
+ try:
590
+ def action(t: FsTable) -> None:
591
+ cells_collection: FsCellsCollection = ws.CellCollection
592
+ FsTable.validate_for_write(t, cells_collection)
593
+
594
+ iterate(action, ws.Tables)
595
+
596
+ except Exception as ex:
597
+ arg: str = ws.Name
598
+ arg_1: str = str(ex)
599
+ to_fail(printf("FsWorksheet %s could not be validated for writing to xlsx file. %s"))(arg)(arg_1)
600
+
601
+
602
+
603
+ FsWorksheet_reflection = _expr447
604
+
605
+ 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:
606
+ return FsWorksheet(name, fs_rows, fs_tables, fs_cells_collection)
607
+
608
+
609
+ __all__ = ["FsWorksheet_reflection"]
610
+
@@ -0,0 +1,60 @@
1
+ from typing import (Any, TypeVar)
2
+ from ..fable_library.array_ import fold
3
+ from ..fable_library.date import (year, month, day, hour, minute, second)
4
+ from ..fable_library.option import value as value_1
5
+ from ..fable_library.seq import fold as fold_1
6
+ from ..fable_library.types import Array
7
+ from ..fable_library.util import (identity_hash, number_hash, IEnumerable_1)
8
+
9
+ __A = TypeVar("__A")
10
+
11
+ _A = TypeVar("_A")
12
+
13
+ def merge_hashes(hash1: int, hash2: int) -> int:
14
+ return ((-1640531527 + hash2) + (hash1 << 6)) + (hash1 >> 2)
15
+
16
+
17
+ def hash_date_time(dt: Any) -> int:
18
+ acc: int = 0
19
+ acc = merge_hashes(acc, year(dt)) or 0
20
+ acc = merge_hashes(acc, month(dt)) or 0
21
+ acc = merge_hashes(acc, day(dt)) or 0
22
+ acc = merge_hashes(acc, hour(dt)) or 0
23
+ acc = merge_hashes(acc, minute(dt)) or 0
24
+ acc = merge_hashes(acc, second(dt)) or 0
25
+ return acc
26
+
27
+
28
+ def hash_1(obj: Any | None=None) -> int:
29
+ copy_of_struct: __A = obj
30
+ return identity_hash(copy_of_struct)
31
+
32
+
33
+ def box_hash_option(a: Any | None=None) -> Any:
34
+ def _arrow249(__unit: None=None, a: Any=a) -> int:
35
+ copy_of_struct: _A = value_1(a)
36
+ return identity_hash(copy_of_struct)
37
+
38
+ def _arrow250(__unit: None=None, a: Any=a) -> int:
39
+ copy_of_struct_1: int = 0
40
+ return number_hash(copy_of_struct_1)
41
+
42
+ return _arrow249() if (a is not None) else _arrow250()
43
+
44
+
45
+ def box_hash_array(a: Array[Any]) -> Any:
46
+ def folder(acc: int, o: _A, a: Any=a) -> int:
47
+ return merge_hashes(acc, hash_1(o))
48
+
49
+ return fold(folder, 0, a)
50
+
51
+
52
+ def box_hash_seq(a: IEnumerable_1[Any]) -> Any:
53
+ def folder(acc: int, o: _A, a: Any=a) -> int:
54
+ return merge_hashes(acc, hash_1(o))
55
+
56
+ return fold_1(folder, 0, a)
57
+
58
+
59
+ __all__ = ["merge_hashes", "hash_date_time", "hash_1", "box_hash_option", "box_hash_array", "box_hash_seq"]
60
+