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,329 @@
1
+ from __future__ import annotations
2
+ from collections.abc import Callable
3
+ from dataclasses import dataclass
4
+ from typing import (Any, Generic, TypeVar)
5
+ from ..fable_library.guid import new_guid
6
+ from ..fable_library.list import (FSharpList, empty as empty_1, append, singleton, concat, map as map_1, is_empty, iterate)
7
+ from ..fable_library.map_util import (try_get_value, add_to_dict)
8
+ from ..fable_library.option import (some, to_nullable)
9
+ from ..fable_library.reflection import (TypeInfo, lambda_type, list_type, float64_type, option_type, bool_type, string_type, record_type)
10
+ from ..fable_library.seq import (indexed, find)
11
+ from ..fable_library.types import (FSharpRef, Record)
12
+ from ..fable_library.util import (curry2, ignore, get_enumerator, IEnumerable_1, equals)
13
+ from .Cells.fs_cell import (FsCell, FsCell_reflection)
14
+ from .Cells.fs_cells_collection import FsCellsCollection
15
+ from .fs_address import FsAddress
16
+ from .fs_row import FsRow
17
+ from .fs_workbook import FsWorkbook
18
+ from .fs_worksheet import FsWorksheet
19
+ from .Ranges.fs_range_address import FsRangeAddress
20
+ from .Tables.fs_table import FsTable
21
+ from .Tables.fs_table_field import FsTableField
22
+
23
+ _V = TypeVar("_V")
24
+
25
+ _T = TypeVar("_T")
26
+
27
+ def Dictionary_tryGetValue(k: Any, dict_1: Any) -> Any | None:
28
+ pattern_input: tuple[bool, _V]
29
+ out_arg: _V = None
30
+ def _arrow448(__unit: None=None, k: Any=k, dict_1: Any=dict_1) -> _V:
31
+ return out_arg
32
+
33
+ def _arrow449(v: _V | None=None, k: Any=k, dict_1: Any=dict_1) -> None:
34
+ nonlocal out_arg
35
+ out_arg = v
36
+
37
+ pattern_input = (try_get_value(dict_1, k, FSharpRef(_arrow448, _arrow449)), out_arg)
38
+ if pattern_input[0]:
39
+ return some(pattern_input[1])
40
+
41
+ else:
42
+ return None
43
+
44
+
45
+
46
+ def Dictionary_length(dict_1: Any) -> int:
47
+ return len(dict_1)
48
+
49
+
50
+ def _expr450(gen0: TypeInfo) -> TypeInfo:
51
+ return record_type("FsSpreadsheet.SheetBuilder.FieldMap`1", [gen0], FieldMap_1, lambda: [("CellTransformers", list_type(lambda_type(gen0, lambda_type(FsCell_reflection(), FsCell_reflection())))), ("HeaderTransformers", list_type(lambda_type(gen0, lambda_type(FsCell_reflection(), FsCell_reflection())))), ("ColumnWidth", option_type(float64_type)), ("RowHeight", option_type(lambda_type(gen0, option_type(float64_type)))), ("AdjustToContents", bool_type), ("Hash", string_type)])
52
+
53
+
54
+ @dataclass(eq = False, repr = False, slots = True)
55
+ class FieldMap_1(Record, Generic[_T]):
56
+ CellTransformers: FSharpList[Callable[[_T, FsCell], FsCell]]
57
+ HeaderTransformers: FSharpList[Callable[[_T, FsCell], FsCell]]
58
+ ColumnWidth: float | None
59
+ RowHeight: Callable[[_T], float | None] | None
60
+ AdjustToContents: bool
61
+ Hash: str
62
+
63
+ FieldMap_1_reflection = _expr450
64
+
65
+ def FieldMap_1_empty(__unit: None=None) -> FieldMap_1[Any]:
66
+ def _arrow451(__unit: None=None) -> str:
67
+ copy_of_struct: str = new_guid()
68
+ return str(copy_of_struct)
69
+
70
+ return FieldMap_1(empty_1(), empty_1(), None, None, False, _arrow451())
71
+
72
+
73
+ def FieldMap_1_create_Z3BCCB7EB(map_row: Callable[[_T, FsCell], FsCell]) -> FieldMap_1[Any]:
74
+ empty: FieldMap_1[_T] = FieldMap_1_empty()
75
+ return FieldMap_1(append(empty.CellTransformers, singleton(curry2(map_row))), empty.HeaderTransformers, empty.ColumnWidth, empty.RowHeight, empty.AdjustToContents, empty.Hash)
76
+
77
+
78
+ def FieldMap_1__header_Z721C83C5(self_1: FieldMap_1[Any], name: str) -> FieldMap_1[Any]:
79
+ def transformer(_arg: _T | None=None, self_1: Any=self_1, name: Any=name) -> Callable[[FsCell], FsCell]:
80
+ def _arrow452(cell: FsCell, _arg: Any=_arg) -> FsCell:
81
+ cell.SetValueAs(name)
82
+ return cell
83
+
84
+ return _arrow452
85
+
86
+ return FieldMap_1(self_1.CellTransformers, append(self_1.HeaderTransformers, singleton(transformer)), self_1.ColumnWidth, self_1.RowHeight, self_1.AdjustToContents, self_1.Hash)
87
+
88
+
89
+ def FieldMap_1__header_54F19B58(self_1: FieldMap_1[Any], map_header: Callable[[_T], str]) -> FieldMap_1[Any]:
90
+ def transformer(value: _T | None=None, self_1: Any=self_1, map_header: Any=map_header) -> Callable[[FsCell], FsCell]:
91
+ def _arrow453(cell: FsCell, value: Any=value) -> FsCell:
92
+ cell.SetValueAs(map_header(value))
93
+ return cell
94
+
95
+ return _arrow453
96
+
97
+ return FieldMap_1(self_1.CellTransformers, append(self_1.HeaderTransformers, singleton(transformer)), self_1.ColumnWidth, self_1.RowHeight, self_1.AdjustToContents, self_1.Hash)
98
+
99
+
100
+ def FieldMap_1__adjustToContents(self_1: FieldMap_1[Any]) -> FieldMap_1[Any]:
101
+ return FieldMap_1(self_1.CellTransformers, self_1.HeaderTransformers, self_1.ColumnWidth, self_1.RowHeight, True, self_1.Hash)
102
+
103
+
104
+ def FieldMap_1_field_Z5C94BCA1(map: Callable[[_T], int]) -> FieldMap_1[Any]:
105
+ def _arrow454(row: Any, cell: FsCell, map: Any=map) -> FsCell:
106
+ cell.SetValueAs(map(row))
107
+ return cell
108
+
109
+ return FieldMap_1_create_Z3BCCB7EB(_arrow454)
110
+
111
+
112
+ def FieldMap_1_field_54F19B58(map: Callable[[_T], str]) -> FieldMap_1[Any]:
113
+ def _arrow455(row: Any, cell: FsCell, map: Any=map) -> FsCell:
114
+ cell.SetValueAs(map(row))
115
+ return cell
116
+
117
+ return FieldMap_1_create_Z3BCCB7EB(_arrow455)
118
+
119
+
120
+ def FieldMap_1_field_477D79EC(map: Callable[[_T], Any]) -> FieldMap_1[Any]:
121
+ def _arrow456(row: Any, cell: FsCell, map: Any=map) -> FsCell:
122
+ cell.SetValueAs(map(row))
123
+ return cell
124
+
125
+ return FieldMap_1_create_Z3BCCB7EB(_arrow456)
126
+
127
+
128
+ def FieldMap_1_field_Z1D55A0D7(map: Callable[[_T], bool]) -> FieldMap_1[Any]:
129
+ def _arrow457(row: Any, cell: FsCell, map: Any=map) -> FsCell:
130
+ cell.SetValueAs(map(row))
131
+ return cell
132
+
133
+ return FieldMap_1_create_Z3BCCB7EB(_arrow457)
134
+
135
+
136
+ def FieldMap_1_field_298D8758(map: Callable[[_T], float]) -> FieldMap_1[Any]:
137
+ def _arrow458(row: Any, cell: FsCell, map: Any=map) -> FsCell:
138
+ cell.SetValueAs(map(row))
139
+ return cell
140
+
141
+ return FieldMap_1_create_Z3BCCB7EB(_arrow458)
142
+
143
+
144
+ def FieldMap_1_field_Z78848E24(map: Callable[[_T], int | None]) -> FieldMap_1[Any]:
145
+ def _arrow459(row: Any, cell: FsCell, map: Any=map) -> FsCell:
146
+ cell.SetValueAs(to_nullable(map(row)))
147
+ return cell
148
+
149
+ return FieldMap_1_create_Z3BCCB7EB(_arrow459)
150
+
151
+
152
+ def FieldMap_1_field_4C14CE8F(map: Callable[[_T], Any | None]) -> FieldMap_1[Any]:
153
+ def _arrow460(row: Any, cell: FsCell, map: Any=map) -> FsCell:
154
+ cell.SetValueAs(to_nullable(map(row)))
155
+ return cell
156
+
157
+ return FieldMap_1_create_Z3BCCB7EB(_arrow460)
158
+
159
+
160
+ def FieldMap_1_field_Z404517D6(map: Callable[[_T], bool | None]) -> FieldMap_1[Any]:
161
+ def _arrow461(row: Any, cell: FsCell, map: Any=map) -> FsCell:
162
+ cell.SetValueAs(to_nullable(map(row)))
163
+ return cell
164
+
165
+ return FieldMap_1_create_Z3BCCB7EB(_arrow461)
166
+
167
+
168
+ def FieldMap_1_field_Z14464045(map: Callable[[_T], float | None]) -> FieldMap_1[Any]:
169
+ def _arrow462(row: Any, cell: FsCell, map: Any=map) -> FsCell:
170
+ cell.SetValueAs(to_nullable(map(row)))
171
+ return cell
172
+
173
+ return FieldMap_1_create_Z3BCCB7EB(_arrow462)
174
+
175
+
176
+ def FieldMap_1_field_33F53BB(map: Callable[[_T], str | None]) -> FieldMap_1[Any]:
177
+ def _arrow463(row: Any, cell: FsCell, map: Any=map) -> FsCell:
178
+ match_value: str | None = map(row)
179
+ if match_value is not None:
180
+ text: str = match_value
181
+ cell.SetValueAs(text)
182
+ return cell
183
+
184
+ else:
185
+ return cell
186
+
187
+
188
+ return FieldMap_1_create_Z3BCCB7EB(_arrow463)
189
+
190
+
191
+ def FsSpreadsheet_FsTable__FsTable_Populate_526F9CF7(self_1: FsTable, cells: FsCellsCollection, data: IEnumerable_1[Any], fields: FSharpList[FieldMap_1[Any]]) -> None:
192
+ def mapping(field: FieldMap_1[_T], self_1: Any=self_1, cells: Any=cells, data: Any=data, fields: Any=fields) -> FSharpList[Callable[[_T, FsCell], FsCell]]:
193
+ return field.HeaderTransformers
194
+
195
+ headers_available: bool = not is_empty(concat(map_1(mapping, fields)))
196
+ if (self_1.ShowHeaderRow == False) if headers_available else False:
197
+ self_1.ShowHeaderRow = headers_available
198
+
199
+ start_address: FsAddress = self_1.RangeAddress.FirstAddress
200
+ start_row_index: int = ((start_address.RowNumber + 1) if headers_available else start_address.RowNumber) or 0
201
+ with get_enumerator(indexed(data)) as enumerator:
202
+ while enumerator.System_Collections_IEnumerator_MoveNext():
203
+ for_loop_var: tuple[int, _T] = enumerator.System_Collections_Generic_IEnumerator_1_get_Current()
204
+ row: _T = for_loop_var[1]
205
+ active_row_index: int = (for_loop_var[0] + start_row_index) or 0
206
+ with get_enumerator(fields) as enumerator_1:
207
+ while enumerator_1.System_Collections_IEnumerator_MoveNext():
208
+ field_1: FieldMap_1[_T] = enumerator_1.System_Collections_Generic_IEnumerator_1_get_Current()
209
+ header_cell: FsCell = FsCell.create_empty()
210
+ with get_enumerator(field_1.HeaderTransformers) as enumerator_2:
211
+ while enumerator_2.System_Collections_IEnumerator_MoveNext():
212
+ ignore(enumerator_2.System_Collections_Generic_IEnumerator_1_get_Current()(row)(header_cell))
213
+ header_string: str = field_1.Hash if (header_cell.ValueAsString() == "") else header_cell.ValueAsString()
214
+ table_field: FsTableField = self_1.Field(header_string, cells)
215
+ active_cell: FsCell = table_field.Column.Cell(active_row_index, cells)
216
+ with get_enumerator(field_1.CellTransformers) as enumerator_3:
217
+ while enumerator_3.System_Collections_IEnumerator_MoveNext():
218
+ ignore(enumerator_3.System_Collections_Generic_IEnumerator_1_get_Current()(row)(active_cell))
219
+
220
+
221
+ def FsSpreadsheet_FsTable__FsTable_populate_Static_Z735E4C44(table: FsTable, cells: FsCellsCollection, data: IEnumerable_1[Any], fields: FSharpList[FieldMap_1[Any]]) -> None:
222
+ FsSpreadsheet_FsTable__FsTable_Populate_526F9CF7(table, cells, data, fields)
223
+
224
+
225
+ def FsSpreadsheet_FsWorksheet__FsWorksheet_Populate_Z2A1350BF(self_1: FsWorksheet, data: IEnumerable_1[Any], fields: FSharpList[FieldMap_1[Any]]) -> None:
226
+ def mapping(field: FieldMap_1[_T], self_1: Any=self_1, data: Any=data, fields: Any=fields) -> FSharpList[Callable[[_T, FsCell], FsCell]]:
227
+ return field.HeaderTransformers
228
+
229
+ headers_available: bool = not is_empty(concat(map_1(mapping, fields)))
230
+ headers: Any = dict([])
231
+ with get_enumerator(indexed(data)) as enumerator:
232
+ while enumerator.System_Collections_IEnumerator_MoveNext():
233
+ for_loop_var: tuple[int, _T] = enumerator.System_Collections_Generic_IEnumerator_1_get_Current()
234
+ row: _T = for_loop_var[1]
235
+ start_row_index: int = (2 if headers_available else 1) or 0
236
+ active_row: FsRow = self_1.Row(for_loop_var[0] + start_row_index)
237
+ with get_enumerator(fields) as enumerator_1:
238
+ while enumerator_1.System_Collections_IEnumerator_MoveNext():
239
+ field_1: FieldMap_1[_T] = enumerator_1.System_Collections_Generic_IEnumerator_1_get_Current()
240
+ header_cell: FsCell = FsCell.create_empty()
241
+ with get_enumerator(field_1.HeaderTransformers) as enumerator_2:
242
+ while enumerator_2.System_Collections_IEnumerator_MoveNext():
243
+ ignore(enumerator_2.System_Collections_Generic_IEnumerator_1_get_Current()(row)(header_cell))
244
+ index: int
245
+ pattern_input: tuple[bool, str] = ((False, field_1.Hash)) if equals(header_cell.Value, "") else ((True, header_cell.ValueAsString()))
246
+ header_string: str = pattern_input[1]
247
+ match_value: int | None = Dictionary_tryGetValue(header_string, headers)
248
+ if match_value is None:
249
+ i: int = (len(headers) + 1) or 0
250
+ add_to_dict(headers, header_string, i)
251
+ if pattern_input[0]:
252
+ value: None = self_1.Row(1).Item(i).CopyFrom(header_cell)
253
+ ignore(None)
254
+
255
+ index = i
256
+
257
+ else:
258
+ index = match_value
259
+
260
+ active_cell: FsCell = active_row.Item(index)
261
+ with get_enumerator(field_1.CellTransformers) as enumerator_3:
262
+ while enumerator_3.System_Collections_IEnumerator_MoveNext():
263
+ ignore(enumerator_3.System_Collections_Generic_IEnumerator_1_get_Current()(row)(active_cell))
264
+ self_1.SortRows()
265
+
266
+
267
+ def FsSpreadsheet_FsWorksheet__FsWorksheet_populate_Static_Z2578A106(sheet: FsWorksheet, data: IEnumerable_1[Any], fields: FSharpList[FieldMap_1[Any]]) -> None:
268
+ FsSpreadsheet_FsWorksheet__FsWorksheet_Populate_Z2A1350BF(sheet, data, fields)
269
+
270
+
271
+ def FsSpreadsheet_FsWorksheet__FsWorksheet_createFrom_Static_Z2DEFA746(name: str, data: IEnumerable_1[Any], fields: FSharpList[FieldMap_1[Any]]) -> FsWorksheet:
272
+ sheet: FsWorksheet = FsWorksheet(name)
273
+ FsSpreadsheet_FsWorksheet__FsWorksheet_populate_Static_Z2578A106(sheet, data, fields)
274
+ return sheet
275
+
276
+
277
+ def FsSpreadsheet_FsWorksheet__FsWorksheet_createFrom_Static_Z2A1350BF(data: IEnumerable_1[Any], fields: FSharpList[FieldMap_1[Any]]) -> FsWorksheet:
278
+ return FsSpreadsheet_FsWorksheet__FsWorksheet_createFrom_Static_Z2DEFA746("Sheet1", data, fields)
279
+
280
+
281
+ def FsSpreadsheet_FsWorksheet__FsWorksheet_PopulateTable_59F260F9(self_1: FsWorksheet, table_name: str, start_address: FsAddress, data: IEnumerable_1[Any], fields: FSharpList[FieldMap_1[Any]]) -> None:
282
+ def mapping(field: FieldMap_1[_T], self_1: Any=self_1, table_name: Any=table_name, start_address: Any=start_address, data: Any=data, fields: Any=fields) -> FSharpList[Callable[[_T, FsCell], FsCell]]:
283
+ return field.HeaderTransformers
284
+
285
+ headers_available: bool = not is_empty(concat(map_1(mapping, fields)))
286
+ FsSpreadsheet_FsTable__FsTable_Populate_526F9CF7(self_1.Table(table_name, FsRangeAddress(start_address, start_address), headers_available), self_1.CellCollection, data, fields)
287
+ self_1.SortRows()
288
+
289
+
290
+ def FsSpreadsheet_FsWorksheet__FsWorksheet_createTableFrom_Static_30234BE1(name: str, table_name: str, data: IEnumerable_1[Any], fields: FSharpList[FieldMap_1[Any]]) -> FsWorksheet:
291
+ sheet: FsWorksheet = FsWorksheet(name)
292
+ FsSpreadsheet_FsWorksheet__FsWorksheet_PopulateTable_59F260F9(sheet, table_name, FsAddress(1, 1), data, fields)
293
+ return sheet
294
+
295
+
296
+ def FsSpreadsheet_FsWorkbook__FsWorkbook_Populate_Z2DEFA746(self_1: FsWorkbook, name: str, data: IEnumerable_1[Any], fields: FSharpList[FieldMap_1[Any]]) -> None:
297
+ ignore(self_1.InitWorksheet(name))
298
+ def predicate(s: FsWorksheet, self_1: Any=self_1, name: Any=name, data: Any=data, fields: Any=fields) -> bool:
299
+ return s.Name == name
300
+
301
+ FsSpreadsheet_FsWorksheet__FsWorksheet_populate_Static_Z2578A106(find(predicate, self_1.GetWorksheets()), data, fields)
302
+
303
+
304
+ def FsSpreadsheet_FsWorkbook__FsWorkbook_populate_Static_Z7163EB39(workbook: FsWorkbook, name: str, data: IEnumerable_1[Any], fields: FSharpList[FieldMap_1[Any]]) -> None:
305
+ FsSpreadsheet_FsWorkbook__FsWorkbook_Populate_Z2DEFA746(workbook, name, data, fields)
306
+
307
+
308
+ def FsSpreadsheet_FsWorkbook__FsWorkbook_createFrom_Static_Z2DEFA746(name: str, data: IEnumerable_1[Any], fields: FSharpList[FieldMap_1[Any]]) -> FsWorkbook:
309
+ workbook: FsWorkbook = FsWorkbook()
310
+ FsSpreadsheet_FsWorkbook__FsWorkbook_populate_Static_Z7163EB39(workbook, name, data, fields)
311
+ return workbook
312
+
313
+
314
+ def FsSpreadsheet_FsWorkbook__FsWorkbook_createFrom_Static_Z2A1350BF(data: IEnumerable_1[Any], fields: FSharpList[FieldMap_1[Any]]) -> FsWorkbook:
315
+ return FsSpreadsheet_FsWorkbook__FsWorkbook_createFrom_Static_Z2DEFA746("Sheet1", data, fields)
316
+
317
+
318
+ def FsSpreadsheet_FsWorkbook__FsWorkbook_createFrom_Static_Z2E36FAE7(sheets: FSharpList[FsWorksheet]) -> FsWorkbook:
319
+ workbook: FsWorkbook = FsWorkbook()
320
+ def action(sheet: FsWorksheet, sheets: Any=sheets) -> None:
321
+ value: None = workbook.AddWorksheet(sheet)
322
+ ignore(None)
323
+
324
+ iterate(action, sheets)
325
+ return workbook
326
+
327
+
328
+ __all__ = ["Dictionary_tryGetValue", "Dictionary_length", "FieldMap_1_reflection", "FieldMap_1_empty", "FieldMap_1_create_Z3BCCB7EB", "FieldMap_1__header_Z721C83C5", "FieldMap_1__header_54F19B58", "FieldMap_1__adjustToContents", "FieldMap_1_field_Z5C94BCA1", "FieldMap_1_field_54F19B58", "FieldMap_1_field_477D79EC", "FieldMap_1_field_Z1D55A0D7", "FieldMap_1_field_298D8758", "FieldMap_1_field_Z78848E24", "FieldMap_1_field_4C14CE8F", "FieldMap_1_field_Z404517D6", "FieldMap_1_field_Z14464045", "FieldMap_1_field_33F53BB", "FsSpreadsheet_FsTable__FsTable_Populate_526F9CF7", "FsSpreadsheet_FsTable__FsTable_populate_Static_Z735E4C44", "FsSpreadsheet_FsWorksheet__FsWorksheet_Populate_Z2A1350BF", "FsSpreadsheet_FsWorksheet__FsWorksheet_populate_Static_Z2578A106", "FsSpreadsheet_FsWorksheet__FsWorksheet_createFrom_Static_Z2DEFA746", "FsSpreadsheet_FsWorksheet__FsWorksheet_createFrom_Static_Z2A1350BF", "FsSpreadsheet_FsWorksheet__FsWorksheet_PopulateTable_59F260F9", "FsSpreadsheet_FsWorksheet__FsWorksheet_createTableFrom_Static_30234BE1", "FsSpreadsheet_FsWorkbook__FsWorkbook_Populate_Z2DEFA746", "FsSpreadsheet_FsWorkbook__FsWorkbook_populate_Static_Z7163EB39", "FsSpreadsheet_FsWorkbook__FsWorkbook_createFrom_Static_Z2DEFA746", "FsSpreadsheet_FsWorkbook__FsWorkbook_createFrom_Static_Z2A1350BF", "FsSpreadsheet_FsWorkbook__FsWorkbook_createFrom_Static_Z2E36FAE7"]
329
+
File without changes
@@ -0,0 +1,60 @@
1
+ from __future__ import annotations
2
+ from abc import abstractmethod
3
+ from datetime import datetime as datetime_1
4
+ from typing import (Protocol, Any)
5
+ from ..fable_library.date import to_universal_time
6
+ from ..fable_library.option import some
7
+ from ..fable_library.util import equals
8
+ from ..fable_openpyxl.openpyxl import Cell
9
+ from ..fs_spreadsheet.Cells.fs_cell import (DataType, FsCell)
10
+ from ..fs_spreadsheet.fs_address import FsAddress
11
+
12
+ class datetime(Protocol):
13
+ @abstractmethod
14
+ def decoy(self) -> None:
15
+ ...
16
+
17
+
18
+ class DateTimeStatic(Protocol):
19
+ @abstractmethod
20
+ def from_time_stamp(self, timestamp: float) -> datetime:
21
+ ...
22
+
23
+
24
+ def to_universal_time_py(dt: Any) -> datetime:
25
+ timestamp: float = to_universal_time(dt).timestamp()
26
+ return datetime_1.fromtimestamp(timestamp=timestamp)
27
+
28
+
29
+ def from_fs_cell(fs_cell: FsCell) -> Any | None:
30
+ match_value: DataType = fs_cell.DataType
31
+ if match_value.tag == 2:
32
+ return some(fs_cell.ValueAsFloat())
33
+
34
+ elif match_value.tag == 3:
35
+ return some(to_universal_time_py(fs_cell.ValueAsDateTime()))
36
+
37
+ elif match_value.tag == 0:
38
+ return some(fs_cell.Value)
39
+
40
+ elif match_value.tag == 4:
41
+ return some(fs_cell.Value)
42
+
43
+ else:
44
+ return some(fs_cell.ValueAsBool())
45
+
46
+
47
+
48
+ def to_fs_cell(worksheet_name: Any, row_index: int, column_index: int, py_cell: Cell) -> FsCell:
49
+ fsadress: FsAddress = FsAddress(row_index, column_index)
50
+ pattern_input_1: tuple[DataType, Any]
51
+ pattern_input: tuple[DataType, Any]
52
+ value_1: Any = py_cell.value
53
+ pattern_input = ((DataType(0), value_1)) if (str(type(value_1)) == "<class \'str\'>") else ((((DataType(1), True)) if value_1 else ((DataType(1), False))) if (str(type(value_1)) == "<class \'bool\'>") else (((DataType(2), value_1)) if (str(type(value_1)) == "<fable_modules.fable_library.types.uint8\'>>") else (((DataType(2), value_1)) if (str(type(value_1)) == "<class \'fable_modules.fable_library.types.int8\'>") else (((DataType(2), value_1)) if (str(type(value_1)) == "<class \'int\'>") else (((DataType(2), value_1)) if (str(type(value_1)) == "<class \'fable_modules.fable_library.types.int16\'>") else (((DataType(2), value_1)) if (str(type(value_1)) == "<class \'fable_modules.fable_library.types.int64\'>") else (((DataType(2), value_1)) if (str(type(value_1)) == "<class \'fable_modules.fable_library.types.uint32>") else (((DataType(2), value_1)) if (str(type(value_1)) == "<class \'fable_modules.fable_library.types.uint16\'>") else (((DataType(2), value_1)) if (str(type(value_1)) == "<class \'fable_modules.fable_library.types.uint32\'>") else (((DataType(2), value_1)) if (str(type(value_1)) == "<class \'fable_modules.fable_library.types.float32\'>") else (((DataType(2), value_1)) if (str(type(value_1)) == "<class \'float\'>") else (((DataType(2), value_1)) if (str(type(value_1)) == "<class \'int\'>") else (((DataType(3), value_1)) if isinstance(value_1, datetime_1) else (((DataType(0), value_1)) if (str(type(value_1)) == "<class \'str\'>") else ((DataType(0), value_1))))))))))))))))
54
+ v: Any = pattern_input[1]
55
+ pattern_input_1 = ((DataType(1), True)) if (True if equals(v, "=TRUE()") else equals(v, "=True()")) else (((DataType(1), False)) if (True if equals(v, "=FALSE()") else equals(v, "=False()")) else ((pattern_input[0], v)))
56
+ return FsCell(pattern_input_1[1], pattern_input_1[0], fsadress)
57
+
58
+
59
+ __all__ = ["to_universal_time_py", "from_fs_cell", "to_fs_cell"]
60
+
@@ -0,0 +1,50 @@
1
+ from __future__ import annotations
2
+ from ..fable_library.string_ import (to_text, printf, to_console)
3
+ from ..fable_openpyxl.openpyxl import CellType
4
+ from ..fs_spreadsheet.Cells.fs_cell import DataType
5
+
6
+ def from_data_tyoe(t: DataType) -> CellType:
7
+ if t.tag == 1:
8
+ return CellType(3)
9
+
10
+ elif t.tag == 2:
11
+ return CellType(0)
12
+
13
+ elif t.tag == 3:
14
+ return CellType(4)
15
+
16
+ elif t.tag == 0:
17
+ return CellType(2)
18
+
19
+ else:
20
+ msg: str = to_text(printf("ValueType \'%A\' is not fully implemented in FsSpreadsheet and is handled as string input."))(t)
21
+ to_console(printf("%s"))(msg)
22
+ return CellType(2)
23
+
24
+
25
+
26
+ def to_data_type(t: CellType) -> DataType:
27
+ if t.tag == 3:
28
+ return DataType(1)
29
+
30
+ elif t.tag == 0:
31
+ return DataType(2)
32
+
33
+ elif t.tag == 1:
34
+ return DataType(2)
35
+
36
+ elif t.tag == 4:
37
+ return DataType(3)
38
+
39
+ elif t.tag == 2:
40
+ return DataType(0)
41
+
42
+ else:
43
+ msg: str = to_text(printf("ValueType \'%A\' is not fully implemented in FsSpreadsheet and is handled as string input."))(t)
44
+ to_console(printf("%s"))(msg)
45
+ return DataType(0)
46
+
47
+
48
+
49
+ __all__ = ["from_data_tyoe", "to_data_type"]
50
+
@@ -0,0 +1,60 @@
1
+ from __future__ import annotations
2
+ from typing import Any
3
+ from ..fs_spreadsheet.fs_workbook import FsWorkbook
4
+ from .json import Json
5
+ from .xlsx import Xlsx
6
+
7
+ def FsSpreadsheet_FsWorkbook__FsWorkbook_fromXlsxFile_Static_Z721C83C5(path: str) -> FsWorkbook:
8
+ return Xlsx.from_xlsx_file(path)
9
+
10
+
11
+ def FsSpreadsheet_FsWorkbook__FsWorkbook_fromXlsxStream_Static_4D976C1A(stream: Any) -> FsWorkbook:
12
+ return Xlsx.from_xlsx_stream(stream)
13
+
14
+
15
+ def FsSpreadsheet_FsWorkbook__FsWorkbook_fromXlsxBytes_Static_Z3F6BC7B1(bytes: bytearray) -> FsWorkbook:
16
+ return Xlsx.from_xlsx_bytes(bytes)
17
+
18
+
19
+ def FsSpreadsheet_FsWorkbook__FsWorkbook_toXlsxFile_Static(path: str, wb: FsWorkbook) -> None:
20
+ Xlsx.to_xlsx_file(path, wb)
21
+
22
+
23
+ def FsSpreadsheet_FsWorkbook__FsWorkbook_toXlsxBytes_Static_32154C9D(wb: FsWorkbook) -> bytearray:
24
+ return Xlsx.to_xlsx_bytes(wb)
25
+
26
+
27
+ def FsSpreadsheet_FsWorkbook__FsWorkbook_ToXlsxFile_Z721C83C5(this: FsWorkbook, path: str) -> None:
28
+ FsSpreadsheet_FsWorkbook__FsWorkbook_toXlsxFile_Static(path, this)
29
+
30
+
31
+ def FsSpreadsheet_FsWorkbook__FsWorkbook_ToXlsxBytes(this: FsWorkbook) -> bytearray:
32
+ return FsSpreadsheet_FsWorkbook__FsWorkbook_toXlsxBytes_Static_32154C9D(this)
33
+
34
+
35
+ def FsSpreadsheet_FsWorkbook__FsWorkbook_fromRowsJsonString_Static_Z721C83C5(json: str) -> FsWorkbook:
36
+ return Json.from_rows_json_string(json)
37
+
38
+
39
+ def FsSpreadsheet_FsWorkbook__FsWorkbook_toRowsJsonString_Static_Z2B6E0EF5(wb: FsWorkbook, spaces: int | None=None, no_numbering: bool | None=None) -> str:
40
+ return Json.to_rows_json_string(wb, spaces, no_numbering)
41
+
42
+
43
+ def FsSpreadsheet_FsWorkbook__FsWorkbook_ToRowsJsonString_Z3B036AA(this: FsWorkbook, spaces: int | None=None, no_numbering: bool | None=None) -> str:
44
+ return FsSpreadsheet_FsWorkbook__FsWorkbook_toRowsJsonString_Static_Z2B6E0EF5(this, spaces, no_numbering)
45
+
46
+
47
+ def FsSpreadsheet_FsWorkbook__FsWorkbook_fromColumnsJsonString_Static_Z721C83C5(json: str) -> FsWorkbook:
48
+ return Json.from_columns_json_string(json)
49
+
50
+
51
+ def FsSpreadsheet_FsWorkbook__FsWorkbook_toColumnsJsonString_Static_Z2B6E0EF5(wb: FsWorkbook, spaces: int | None=None, no_numbering: bool | None=None) -> str:
52
+ return Json.to_columns_json_string(wb, spaces, no_numbering)
53
+
54
+
55
+ def FsSpreadsheet_FsWorkbook__FsWorkbook_ToColumnsJsonString_Z3B036AA(this: FsWorkbook, spaces: int | None=None, no_numbering: bool | None=None) -> str:
56
+ return FsSpreadsheet_FsWorkbook__FsWorkbook_toColumnsJsonString_Static_Z2B6E0EF5(this, spaces, no_numbering)
57
+
58
+
59
+ __all__ = ["FsSpreadsheet_FsWorkbook__FsWorkbook_fromXlsxFile_Static_Z721C83C5", "FsSpreadsheet_FsWorkbook__FsWorkbook_fromXlsxStream_Static_4D976C1A", "FsSpreadsheet_FsWorkbook__FsWorkbook_fromXlsxBytes_Static_Z3F6BC7B1", "FsSpreadsheet_FsWorkbook__FsWorkbook_toXlsxFile_Static", "FsSpreadsheet_FsWorkbook__FsWorkbook_toXlsxBytes_Static_32154C9D", "FsSpreadsheet_FsWorkbook__FsWorkbook_ToXlsxFile_Z721C83C5", "FsSpreadsheet_FsWorkbook__FsWorkbook_ToXlsxBytes", "FsSpreadsheet_FsWorkbook__FsWorkbook_fromRowsJsonString_Static_Z721C83C5", "FsSpreadsheet_FsWorkbook__FsWorkbook_toRowsJsonString_Static_Z2B6E0EF5", "FsSpreadsheet_FsWorkbook__FsWorkbook_ToRowsJsonString_Z3B036AA", "FsSpreadsheet_FsWorkbook__FsWorkbook_fromColumnsJsonString_Static_Z721C83C5", "FsSpreadsheet_FsWorkbook__FsWorkbook_toColumnsJsonString_Static_Z2B6E0EF5", "FsSpreadsheet_FsWorkbook__FsWorkbook_ToColumnsJsonString_Z3B036AA"]
60
+
@@ -0,0 +1,47 @@
1
+ from __future__ import annotations
2
+ from ..fable_library.option import default_arg
3
+ from ..fable_library.reflection import (TypeInfo, class_type)
4
+ from ..fable_library.result import FSharpResult_2
5
+ from ..fable_library.string_ import (to_fail, printf)
6
+ from ..fs_spreadsheet.fs_workbook import FsWorkbook
7
+ from ..fs_spreadsheet.Json.workbook import (decode_rows, encode_rows, decode_columns, encode_columns)
8
+ from ..thoth_json_python.decode import Decode_fromString
9
+ from ..thoth_json_python.encode import to_string
10
+
11
+ def _expr566() -> TypeInfo:
12
+ return class_type("FsSpreadsheet.Py.Json", None, Json)
13
+
14
+
15
+ class Json:
16
+ @staticmethod
17
+ def try_from_rows_json_string(json: str) -> FSharpResult_2[FsWorkbook, str]:
18
+ return Decode_fromString(decode_rows, json)
19
+
20
+ @staticmethod
21
+ def from_rows_json_string(json: str) -> FsWorkbook:
22
+ match_value: FSharpResult_2[FsWorkbook, str] = Json.try_from_rows_json_string(json)
23
+ return to_fail(printf("Could not deserialize json Workbook: \n%s"))(match_value.fields[0]) if (match_value.tag == 1) else match_value.fields[0]
24
+
25
+ @staticmethod
26
+ def to_rows_json_string(wb: FsWorkbook, spaces: int | None=None, no_numbering: bool | None=None) -> str:
27
+ no_numbering_1: bool = default_arg(no_numbering, False)
28
+ return to_string(default_arg(spaces, 2), encode_rows(no_numbering_1, wb))
29
+
30
+ @staticmethod
31
+ def try_from_columns_json_string(json: str) -> FSharpResult_2[FsWorkbook, str]:
32
+ return Decode_fromString(decode_columns, json)
33
+
34
+ @staticmethod
35
+ def from_columns_json_string(json: str) -> FsWorkbook:
36
+ match_value: FSharpResult_2[FsWorkbook, str] = Json.try_from_columns_json_string(json)
37
+ return to_fail(printf("Could not deserialize json Workbook: \n%s"))(match_value.fields[0]) if (match_value.tag == 1) else match_value.fields[0]
38
+
39
+ @staticmethod
40
+ def to_columns_json_string(wb: FsWorkbook, spaces: int | None=None, no_numbering: bool | None=None) -> str:
41
+ return to_string(default_arg(spaces, 2), encode_columns(default_arg(no_numbering, False), wb))
42
+
43
+
44
+ Json_reflection = _expr566
45
+
46
+ __all__ = ["Json_reflection"]
47
+
@@ -0,0 +1,54 @@
1
+ from __future__ import annotations
2
+ from abc import abstractmethod
3
+ from openpyxl.worksheet.table import (TableStyleInfo, Table)
4
+ from typing import Protocol
5
+ from ..fable_openpyxl.openpyxl import Table as Table_1
6
+ from ..fs_spreadsheet.Ranges.fs_range_address import FsRangeAddress
7
+ from ..fs_spreadsheet.Tables.fs_table import FsTable
8
+
9
+ class tablestyle(Protocol):
10
+ @abstractmethod
11
+ def name(self) -> str:
12
+ ...
13
+
14
+ @abstractmethod
15
+ def show_column_stripes(self) -> bool:
16
+ ...
17
+
18
+ @abstractmethod
19
+ def show_first_column(self) -> bool:
20
+ ...
21
+
22
+ @abstractmethod
23
+ def show_last_column(self) -> bool:
24
+ ...
25
+
26
+ @abstractmethod
27
+ def show_row_stripes(self) -> bool:
28
+ ...
29
+
30
+
31
+ class TableStyleStatic(Protocol):
32
+ @abstractmethod
33
+ def create(self, name: str, showFirstColumn: bool, showLastColumn: bool, showRowStripes: bool, showColumnStripes: bool) -> tablestyle:
34
+ ...
35
+
36
+
37
+ def default_table_style(__unit: None=None) -> tablestyle:
38
+ return TableStyleInfo(name="TableStyleMedium9", showFirstColumn=False, showLastColumn=False, showRowStripes=True, showColumnStripes=True)
39
+
40
+
41
+ def from_fs_table(fs_table: FsTable) -> Table:
42
+ table: Table = Table(displayName=fs_table.Name, ref=fs_table.RangeAddress.Range)
43
+ table.tableStyleInfo = default_table_style()
44
+ return table
45
+
46
+
47
+ def to_fs_table(table: Table) -> FsTable:
48
+ name: str = table.name if ((table.displayName) is None) else (table.displayName)
49
+ ref: str = table.ref
50
+ return FsTable(name, FsRangeAddress.from_string(ref))
51
+
52
+
53
+ __all__ = ["default_table_style", "from_fs_table", "to_fs_table"]
54
+
@@ -0,0 +1,41 @@
1
+ from __future__ import annotations
2
+ from openpyxl import Workbook
3
+ from typing import Any
4
+ from ..fable_library.array_ import iterate as iterate_1
5
+ from ..fable_library.seq import iterate
6
+ from ..fable_library.util import ignore
7
+ from ..fable_openpyxl.openpyxl import (Workbook as Workbook_1, Worksheet)
8
+ from ..fs_spreadsheet.fs_workbook import FsWorkbook
9
+ from ..fs_spreadsheet.fs_worksheet import FsWorksheet
10
+ from .worksheet import (from_fs_worksheet, to_fs_worksheet)
11
+
12
+ def from_fs_workbook(fs_wb: FsWorkbook) -> Workbook:
13
+ FsWorkbook.validate_for_write(fs_wb)
14
+ if len(fs_wb.GetWorksheets()) == 0:
15
+ raise Exception("Workbook must contain at least one worksheet")
16
+
17
+ py_wb: Workbook = Workbook(None)
18
+ py_wb.remove(py_wb.active)
19
+ def action(ws: FsWorksheet, fs_wb: Any=fs_wb) -> None:
20
+ ignore(from_fs_worksheet(py_wb, ws))
21
+
22
+ iterate(action, fs_wb.GetWorksheets())
23
+ return py_wb
24
+
25
+
26
+ def to_fs_workbook(py_wb: Workbook) -> FsWorkbook:
27
+ fs_wb: FsWorkbook = FsWorkbook()
28
+ def action(ws: Worksheet, py_wb: Any=py_wb) -> None:
29
+ if (len([list(inner_tuple) for inner_tuple in ws.values]) != 0) if (ws.title != "Sheet") else False:
30
+ w: FsWorksheet = to_fs_worksheet(ws)
31
+ w.RescanRows()
32
+ value: None = fs_wb.AddWorksheet(w)
33
+ ignore(None)
34
+
35
+
36
+ iterate_1(action, py_wb.worksheets)
37
+ return fs_wb
38
+
39
+
40
+ __all__ = ["from_fs_workbook", "to_fs_workbook"]
41
+