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,92 @@
1
+ from __future__ import annotations
2
+ from typing import Any
3
+ from ...fable_library.reflection import (TypeInfo, class_type)
4
+ from ...fable_library.string_ import (to_fail, printf)
5
+ from ...fable_library.util import (equals, ignore, IEnumerable_1)
6
+ from ..Cells.fs_cell import FsCell
7
+ from ..Cells.fs_cells_collection import FsCellsCollection
8
+ from ..fs_address import FsAddress
9
+ from .fs_range_address import FsRangeAddress
10
+
11
+ def _expr372() -> TypeInfo:
12
+ return class_type("FsSpreadsheet.FsRangeBase", None, FsRangeBase)
13
+
14
+
15
+ class FsRangeBase:
16
+ def __init__(self, range_address: FsRangeAddress) -> None:
17
+ self._sortRows: Any = None
18
+ self._sortColumns: Any = None
19
+ self._rangeAddress: FsRangeAddress = range_address
20
+ _id: int
21
+ FsRangeBase.IdCounter = (FsRangeBase.IdCounter + 1) or 0
22
+ _id = FsRangeBase.IdCounter
23
+
24
+ def Extend(self, address: FsAddress) -> None:
25
+ this: FsRangeBase = self
26
+ this._rangeAddress.Extend(address)
27
+
28
+ @property
29
+ def RangeAddress(self, __unit: None=None) -> FsRangeAddress:
30
+ this: FsRangeBase = self
31
+ return this._rangeAddress
32
+
33
+ @RangeAddress.setter
34
+ def RangeAddress(self, range_adress: FsRangeAddress) -> None:
35
+ this: FsRangeBase = self
36
+ if not equals(range_adress, this._rangeAddress):
37
+ old_address: FsRangeAddress = this._rangeAddress
38
+ this._rangeAddress = range_adress
39
+
40
+
41
+ def Cell(self, cell_address_in_range: FsAddress, cells: FsCellsCollection) -> FsCell:
42
+ this: FsRangeBase = self
43
+ abs_row: int = ((cell_address_in_range.RowNumber + this.RangeAddress.FirstAddress.RowNumber) - 1) or 0
44
+ abs_column: int = ((cell_address_in_range.ColumnNumber + this.RangeAddress.FirstAddress.ColumnNumber) - 1) or 0
45
+ if True if (abs_row <= 0) else (abs_row > 1048576):
46
+ arg: int = cells.MaxRowNumber or 0
47
+ to_fail(printf("Row number must be between 1 and %i"))(arg)
48
+
49
+ if True if (abs_column <= 0) else (abs_column > 16384):
50
+ arg_1: int = cells.MaxColumnNumber or 0
51
+ to_fail(printf("Column number must be between 1 and %i"))(arg_1)
52
+
53
+ cell: FsCell | None = cells.TryGetCell(abs_row, abs_column)
54
+ if cell is None:
55
+ absolute_address: FsAddress = FsAddress(abs_row, abs_column, cell_address_in_range.FixedRow, cell_address_in_range.FixedColumn)
56
+ new_cell: FsCell = FsCell.create_empty_with_adress(absolute_address)
57
+ this.Extend(absolute_address)
58
+ value: None = cells.Add(new_cell, abs_row, abs_column)
59
+ ignore(None)
60
+ return new_cell
61
+
62
+ else:
63
+ return cell
64
+
65
+
66
+ def Cells(self, cells: FsCellsCollection) -> IEnumerable_1[FsCell]:
67
+ this: FsRangeBase = self
68
+ return cells.GetCellsInStringRange(this.RangeAddress.FirstAddress, this.RangeAddress.LastAddress)
69
+
70
+ def ColumnCount(self, __unit: None=None) -> int:
71
+ this: FsRangeBase = self
72
+ return (this._rangeAddress.LastAddress.ColumnNumber - this._rangeAddress.FirstAddress.ColumnNumber) + 1
73
+
74
+ def RowCount(self, __unit: None=None) -> int:
75
+ this: FsRangeBase = self
76
+ return (this._rangeAddress.LastAddress.RowNumber - this._rangeAddress.FirstAddress.RowNumber) + 1
77
+
78
+
79
+ FsRangeBase_reflection = _expr372
80
+
81
+ def FsRangeBase__ctor_6A2513BC(range_address: FsRangeAddress) -> FsRangeBase:
82
+ return FsRangeBase(range_address)
83
+
84
+
85
+ def FsRangeBase__cctor(__unit: None=None) -> None:
86
+ FsRangeBase.IdCounter = 0
87
+
88
+
89
+ FsRangeBase__cctor()
90
+
91
+ __all__ = ["FsRangeBase_reflection"]
92
+
@@ -0,0 +1,77 @@
1
+ from __future__ import annotations
2
+ from typing import Any
3
+ from ...fable_library.list import FSharpList
4
+ from ...fable_library.range import range_big_int
5
+ from ...fable_library.reflection import (TypeInfo, class_type)
6
+ from ...fable_library.seq import (to_list, map)
7
+ from ...fable_library.util import IEnumerable_1
8
+ from ..Cells.fs_cell import FsCell
9
+ from ..Cells.fs_cells_collection import FsCellsCollection
10
+ from ..fs_address import FsAddress
11
+ from .fs_range_address import FsRangeAddress
12
+ from .fs_range_base import (FsRangeBase, FsRangeBase_reflection)
13
+
14
+ def _expr391() -> TypeInfo:
15
+ return class_type("FsSpreadsheet.FsRangeColumn", None, FsRangeColumn, FsRangeBase_reflection())
16
+
17
+
18
+ class FsRangeColumn(FsRangeBase):
19
+ def __init__(self, range_address: FsRangeAddress) -> None:
20
+ super().__init__(range_address)
21
+ pass
22
+
23
+ @staticmethod
24
+ def from_index(index: int) -> FsRangeColumn:
25
+ return FsRangeColumn(FsRangeAddress(FsAddress(0, index), FsAddress(0, index)))
26
+
27
+ @property
28
+ def Index(self, __unit: None=None) -> int:
29
+ self_1: FsRangeColumn = self
30
+ return self_1.RangeAddress.FirstAddress.ColumnNumber
31
+
32
+ @Index.setter
33
+ def Index(self, i: int) -> None:
34
+ self_1: FsRangeColumn = self
35
+ self_1.RangeAddress.FirstAddress.ColumnNumber = i or 0
36
+ self_1.RangeAddress.LastAddress.ColumnNumber = i or 0
37
+
38
+ def Cell(self, row_index: int, cells_collection: FsCellsCollection) -> FsCell:
39
+ return super().Cell(FsAddress((row_index - super().RangeAddress.FirstAddress.RowNumber) + 1, 1), cells_collection)
40
+
41
+ def FirstCell(self, cells: FsCellsCollection) -> FsCell:
42
+ return super().Cell(FsAddress(1, 1), cells)
43
+
44
+ def Cells(self, cells_collection: FsCellsCollection) -> IEnumerable_1[FsCell]:
45
+ return super().Cells(cells_collection)
46
+
47
+ @staticmethod
48
+ def from_range_address(range_address: FsRangeAddress) -> FsRangeColumn:
49
+ return FsRangeColumn(range_address)
50
+
51
+ def Copy(self, __unit: None=None) -> FsRangeColumn:
52
+ self_1: FsRangeColumn = self
53
+ return FsRangeColumn(self_1.RangeAddress.Copy())
54
+
55
+ @staticmethod
56
+ def copy(range_column: FsRangeColumn) -> FsRangeColumn:
57
+ return range_column.Copy()
58
+
59
+
60
+ FsRangeColumn_reflection = _expr391
61
+
62
+ def FsRangeColumn__ctor_6A2513BC(range_address: FsRangeAddress) -> FsRangeColumn:
63
+ return FsRangeColumn(range_address)
64
+
65
+
66
+ def FsSpreadsheet_FsRangeAddress__FsRangeAddress_toRangeColumns_Static_6A2513BC(range_address: FsRangeAddress) -> IEnumerable_1[FsRangeColumn]:
67
+ columns: FSharpList[int] = to_list(range_big_int(range_address.FirstAddress.ColumnNumber, 1, range_address.LastAddress.ColumnNumber))
68
+ fst_row: int = range_address.FirstAddress.RowNumber or 0
69
+ lst_row: int = range_address.LastAddress.RowNumber or 0
70
+ def mapping(c: int, range_address: Any=range_address) -> FsRangeColumn:
71
+ return FsRangeColumn(FsRangeAddress(FsAddress(fst_row, c), FsAddress(lst_row, c)))
72
+
73
+ return map(mapping, columns)
74
+
75
+
76
+ __all__ = ["FsRangeColumn_reflection", "FsSpreadsheet_FsRangeAddress__FsRangeAddress_toRangeColumns_Static_6A2513BC"]
77
+
@@ -0,0 +1,48 @@
1
+ from __future__ import annotations
2
+ from ...fable_library.reflection import (TypeInfo, class_type)
3
+ from ...fable_library.util import IEnumerable_1
4
+ from ..Cells.fs_cell import FsCell
5
+ from ..Cells.fs_cells_collection import FsCellsCollection
6
+ from ..fs_address import FsAddress
7
+ from .fs_range_address import FsRangeAddress
8
+ from .fs_range_base import (FsRangeBase, FsRangeBase_reflection)
9
+
10
+ def _expr373() -> TypeInfo:
11
+ return class_type("FsSpreadsheet.FsRangeRow", None, FsRangeRow, FsRangeBase_reflection())
12
+
13
+
14
+ class FsRangeRow(FsRangeBase):
15
+ def __init__(self, range_address: FsRangeAddress) -> None:
16
+ super().__init__(range_address)
17
+ pass
18
+
19
+ @staticmethod
20
+ def from_index(index: int) -> FsRangeRow:
21
+ return FsRangeRow(FsRangeAddress(FsAddress(index, 0), FsAddress(index, 0)))
22
+
23
+ @property
24
+ def Index(self, __unit: None=None) -> int:
25
+ self_1: FsRangeRow = self
26
+ return self_1.RangeAddress.FirstAddress.RowNumber
27
+
28
+ @Index.setter
29
+ def Index(self, i: int) -> None:
30
+ self_1: FsRangeRow = self
31
+ self_1.RangeAddress.FirstAddress.RowNumber = i or 0
32
+ self_1.RangeAddress.LastAddress.RowNumber = i or 0
33
+
34
+ def Cell(self, column_index: int, cells: FsCellsCollection) -> FsCell:
35
+ return super().Cell(FsAddress(1, (column_index - super().RangeAddress.FirstAddress.ColumnNumber) + 1), cells)
36
+
37
+ def Cells(self, cells: FsCellsCollection) -> IEnumerable_1[FsCell]:
38
+ return super().Cells(cells)
39
+
40
+
41
+ FsRangeRow_reflection = _expr373
42
+
43
+ def FsRangeRow__ctor_6A2513BC(range_address: FsRangeAddress) -> FsRangeRow:
44
+ return FsRangeRow(range_address)
45
+
46
+
47
+ __all__ = ["FsRangeRow_reflection"]
48
+
@@ -0,0 +1,461 @@
1
+ from __future__ import annotations
2
+ from collections.abc import Callable
3
+ from typing import Any
4
+ from ...fable_library.map_util import (add_to_set, add_to_dict, get_item_from_dict, remove_from_dict)
5
+ from ...fable_library.option import (some, value as value_2, default_arg)
6
+ from ...fable_library.range import range_big_int
7
+ from ...fable_library.reflection import (TypeInfo, class_type)
8
+ from ...fable_library.seq import (initialize, delay, collect, singleton, reduce, map, iterate_indexed, iterate, length, max, find, try_find, try_pick, choose, to_list, exists)
9
+ from ...fable_library.string_ import (to_text, printf, replace)
10
+ from ...fable_library.util import (equals, IEnumerable_1, int32_to_string, ignore, compare_primitives, get_enumerator)
11
+ from ..Cells.fs_cell import (FsCell, DataType)
12
+ from ..Cells.fs_cells_collection import (FsCellsCollection, Dictionary_tryGet)
13
+ from ..fs_address import FsAddress
14
+ from ..fs_column import FsColumn
15
+ from ..fs_row import FsRow
16
+ from ..Ranges.fs_range import FsRange
17
+ from ..Ranges.fs_range_address import FsRangeAddress
18
+ from ..Ranges.fs_range_base import (FsRangeBase, FsRangeBase_reflection)
19
+ from ..Ranges.fs_range_column import FsRangeColumn
20
+ from ..Ranges.fs_range_row import FsRangeRow
21
+ from .fs_table_field import FsTableField
22
+
23
+ def _expr425() -> TypeInfo:
24
+ return class_type("FsSpreadsheet.FsTable", None, FsTable, FsRangeBase_reflection())
25
+
26
+
27
+ class FsTable(FsRangeBase):
28
+ def __init__(self, name: str, range_address: FsRangeAddress, show_totals_row: bool | None=None, show_header_row: bool | None=None, field_names: IEnumerable_1[str] | None=None) -> None:
29
+ super().__init__(range_address)
30
+ self._name: str = replace(name.strip(), " ", "_")
31
+ self._lastRangeAddress: FsRangeAddress = range_address
32
+ self._showTotalsRow: bool = default_arg(show_totals_row, False)
33
+ self._showHeaderRow: bool = default_arg(show_header_row, True)
34
+ def _arrow424(__unit: None=None) -> Any:
35
+ fns: IEnumerable_1[str] = field_names
36
+ if length(fns) != super().ColumnCount():
37
+ def _arrow423(__unit: None=None) -> str:
38
+ arg: int = length(fns) or 0
39
+ arg_1: int = super().ColumnCount() or 0
40
+ return to_text(printf("The number of field names (%i) must match the number of columns (%i) in the range."))(arg)(arg_1)
41
+
42
+ raise Exception(_arrow423(), "fieldNames")
43
+
44
+ dict_1: Any = dict([])
45
+ def action(i: int, fn: str) -> None:
46
+ col_i: int = (range_address.FirstAddress.ColumnNumber + i) or 0
47
+ add_to_dict(dict_1, fn, FsTableField(fn, i, FsRangeColumn(FsRangeAddress(FsAddress(range_address.FirstAddress.RowNumber, col_i), FsAddress(range_address.LastAddress.RowNumber, col_i)))))
48
+
49
+ iterate_indexed(action, fns)
50
+ return dict_1
51
+
52
+ self._fieldNames: Any = dict([]) if (field_names is None) else _arrow424()
53
+ self._uniqueNames: Any = set([])
54
+
55
+ @property
56
+ def Name(self, __unit: None=None) -> str:
57
+ this: FsTable = self
58
+ return this._name
59
+
60
+ def GetFieldNames(self, cells_collection: FsCellsCollection) -> Any:
61
+ this: FsTable = self
62
+ if equals(this._lastRangeAddress, this.RangeAddress) if ((not equals(this._lastRangeAddress, None)) if (not equals(this._fieldNames, None)) else False) else False:
63
+ return this._fieldNames
64
+
65
+ else:
66
+ this._lastRangeAddress = this.RangeAddress
67
+ return this._fieldNames
68
+
69
+
70
+ def GetFields(self, cells_collection: FsCellsCollection) -> IEnumerable_1[FsTableField]:
71
+ this: FsTable = self
72
+ def _arrow411(i: int) -> FsTableField:
73
+ return this.GetFieldAt(i, cells_collection)
74
+
75
+ return initialize(super().ColumnCount(), _arrow411)
76
+
77
+ @property
78
+ def ShowHeaderRow(self, __unit: None=None) -> bool:
79
+ this: FsTable = self
80
+ return this._showHeaderRow
81
+
82
+ @ShowHeaderRow.setter
83
+ def ShowHeaderRow(self, show_header_row: bool) -> None:
84
+ this: FsTable = self
85
+ this._showHeaderRow = show_header_row
86
+
87
+ def HeadersRow(self, __unit: None=None) -> FsRangeRow:
88
+ this: FsTable = self
89
+ return None if (not this.ShowHeaderRow) else FsRange(super().RangeAddress).FirstRow()
90
+
91
+ def TryGetHeaderRow(self, cells_collection: FsCellsCollection) -> FsRow | None:
92
+ this: FsTable = self
93
+ match_value: bool = this.ShowHeaderRow
94
+ if match_value:
95
+ row_index: int = this.RangeAddress.FirstAddress.RowNumber or 0
96
+ return FsRow(FsRangeAddress(FsAddress(row_index, this.RangeAddress.FirstAddress.ColumnNumber), FsAddress(row_index, this.RangeAddress.LastAddress.ColumnNumber)), cells_collection)
97
+
98
+ else:
99
+ return None
100
+
101
+
102
+ def GetHeaderRow(self, cells_collection: FsCellsCollection) -> FsRow:
103
+ this: FsTable = self
104
+ match_value: FsRow | None = this.TryGetHeaderRow(cells_collection)
105
+ if match_value is None:
106
+ raise Exception(("Error. Unable to get header row for table \"" + this.Name) + "\" as `ShowHeaderRow` is set to `false`.")
107
+
108
+ else:
109
+ return match_value
110
+
111
+
112
+ def GetColumns(self, cells_collection: FsCellsCollection) -> IEnumerable_1[FsColumn]:
113
+ this: FsTable = self
114
+ def _arrow413(__unit: None=None) -> IEnumerable_1[FsColumn]:
115
+ def _arrow412(i: int) -> IEnumerable_1[FsColumn]:
116
+ return singleton(FsColumn(FsRangeAddress(FsAddress(this.RangeAddress.FirstAddress.RowNumber, i), FsAddress(this.RangeAddress.LastAddress.RowNumber, i)), cells_collection))
117
+
118
+ return collect(_arrow412, range_big_int(this.RangeAddress.FirstAddress.ColumnNumber, 1, this.RangeAddress.LastAddress.ColumnNumber))
119
+
120
+ return delay(_arrow413)
121
+
122
+ def GetRows(self, cells_collection: FsCellsCollection) -> IEnumerable_1[FsRow]:
123
+ this: FsTable = self
124
+ def _arrow415(__unit: None=None) -> IEnumerable_1[FsRow]:
125
+ def _arrow414(i: int) -> IEnumerable_1[FsRow]:
126
+ return singleton(FsRow(FsRangeAddress(FsAddress(i, this.RangeAddress.FirstAddress.ColumnNumber), FsAddress(i, this.RangeAddress.LastAddress.ColumnNumber)), cells_collection))
127
+
128
+ return collect(_arrow414, range_big_int(this.RangeAddress.FirstAddress.RowNumber, 1, this.RangeAddress.LastAddress.RowNumber))
129
+
130
+ return delay(_arrow415)
131
+
132
+ def GetBodyRows(self, cells_collection: FsCellsCollection) -> IEnumerable_1[FsRow]:
133
+ this: FsTable = self
134
+ first_row_index: int = ((this.RangeAddress.FirstAddress.RowNumber + 1) if this.ShowHeaderRow else this.RangeAddress.FirstAddress.RowNumber) or 0
135
+ def _arrow417(__unit: None=None) -> IEnumerable_1[FsRow]:
136
+ def _arrow416(i: int) -> IEnumerable_1[FsRow]:
137
+ return singleton(FsRow(FsRangeAddress(FsAddress(i, this.RangeAddress.FirstAddress.ColumnNumber), FsAddress(i, this.RangeAddress.LastAddress.ColumnNumber)), cells_collection))
138
+
139
+ return collect(_arrow416, range_big_int(first_row_index, 1, this.RangeAddress.LastAddress.RowNumber))
140
+
141
+ return delay(_arrow417)
142
+
143
+ def GetRowAt(self, index: int, cells_collection: FsCellsCollection) -> FsRow:
144
+ this: FsTable = self
145
+ if True if (index <= 0) else (index > super().RowCount()):
146
+ def _arrow418(__unit: None=None) -> str:
147
+ arg: int = super().RowCount() or 0
148
+ return to_text(printf("Row index must be between 1 and %i"))(arg)
149
+
150
+ raise Exception(int32_to_string(index), _arrow418())
151
+
152
+ row_i: int = ((this.RangeAddress.FirstAddress.RowNumber + index) - 1) or 0
153
+ return FsRow(FsRangeAddress(FsAddress(row_i, this.RangeAddress.FirstAddress.ColumnNumber), FsAddress(row_i, this.RangeAddress.LastAddress.ColumnNumber)), cells_collection)
154
+
155
+ def GetBodyRowAt(self, index: int, cells_collection: FsCellsCollection) -> FsRow:
156
+ this: FsTable = self
157
+ return this.GetRowAt(index + 1, cells_collection) if this.ShowHeaderRow else this.GetRowAt(index, cells_collection)
158
+
159
+ def RescanRange(self, __unit: None=None) -> None:
160
+ this: FsTable = self
161
+ def reduction(r1: FsRangeAddress, r2: FsRangeAddress) -> FsRangeAddress:
162
+ return r1.Union(r2)
163
+
164
+ def mapping(v: FsTableField) -> FsRangeAddress:
165
+ return v.Column.RangeAddress
166
+
167
+ range_address: FsRangeAddress = reduce(reduction, map(mapping, this._fieldNames.values()))
168
+ this.RangeAddress = range_address
169
+
170
+ @staticmethod
171
+ def rescan_range(table: FsTable) -> FsTable:
172
+ table.RescanRange()
173
+ return table
174
+
175
+ def GetUniqueName(self, original_name: str, initial_offset: int, enforce_offset: bool) -> str:
176
+ this: FsTable = self
177
+ name: str = original_name + (int32_to_string(initial_offset) if enforce_offset else "")
178
+ if name in this._uniqueNames:
179
+ i: int = initial_offset or 0
180
+ name = original_name + int32_to_string(i)
181
+ while name in this._uniqueNames:
182
+ i = (i + 1) or 0
183
+ name = original_name + int32_to_string(i)
184
+
185
+ ignore(add_to_set(name, this._uniqueNames))
186
+ return name
187
+
188
+ @staticmethod
189
+ def get_unique_names(original_name: str, initial_offset: int, enforce_offset: bool, table: FsTable) -> str:
190
+ return table.GetUniqueName(original_name, initial_offset, enforce_offset)
191
+
192
+ def InitFields(self, field_names: IEnumerable_1[str]) -> None:
193
+ this: FsTable = self
194
+ def action(i: int, fn: str) -> None:
195
+ table_field: FsTableField = FsTableField(fn, i, FsRangeColumn.from_index(i))
196
+ add_to_dict(this._fieldNames, fn, table_field)
197
+
198
+ iterate_indexed(action, field_names)
199
+
200
+ @staticmethod
201
+ def init_fields(field_names: IEnumerable_1[str], table: FsTable) -> FsTable:
202
+ table.InitFields(field_names)
203
+ return table
204
+
205
+ def AddFields(self, table_fields: IEnumerable_1[FsTableField]) -> None:
206
+ this: FsTable = self
207
+ def action(tf: FsTableField) -> None:
208
+ add_to_dict(this._fieldNames, tf.Name, tf)
209
+
210
+ iterate(action, table_fields)
211
+
212
+ @staticmethod
213
+ def add_fields(table_fields: IEnumerable_1[FsTableField], table: FsTable) -> FsTable:
214
+ table.AddFields(table_fields)
215
+ return table
216
+
217
+ def Field(self, name: str, cells_collection: FsCellsCollection) -> FsTableField:
218
+ this: FsTable = self
219
+ match_value: FsTableField | None = Dictionary_tryGet(name, this._fieldNames)
220
+ if match_value is None:
221
+ def _arrow420(__unit: None=None) -> int:
222
+ def mapping(v: FsTableField) -> int:
223
+ return v.Index
224
+
225
+ s: IEnumerable_1[int] = map(mapping, this._fieldNames.values())
226
+ class ObjectExpr419:
227
+ @property
228
+ def Compare(self) -> Callable[[int, int], int]:
229
+ return compare_primitives
230
+
231
+ return 0 if (length(s) == 0) else max(s, ObjectExpr419())
232
+
233
+ def _arrow421(__unit: None=None) -> FsRangeAddress:
234
+ offset: int = len(this._fieldNames) or 0
235
+ return FsRangeAddress(FsAddress(this.RangeAddress.FirstAddress.RowNumber, this.RangeAddress.FirstAddress.ColumnNumber + offset), FsAddress(this.RangeAddress.LastAddress.RowNumber, this.RangeAddress.FirstAddress.ColumnNumber + offset))
236
+
237
+ new_field: FsTableField = FsTableField(name, _arrow420() + 1, FsRangeColumn(_arrow421()), some(None), some(None))
238
+ if this.ShowHeaderRow:
239
+ value: None = new_field.HeaderCell(cells_collection, True).SetValueAs(name)
240
+ ignore(None)
241
+
242
+ add_to_dict(this._fieldNames, name, new_field)
243
+ this.RescanRange()
244
+ return new_field
245
+
246
+ else:
247
+ return match_value
248
+
249
+
250
+ def GetField(self, name: str, cells_collection: FsCellsCollection) -> FsTableField:
251
+ this: FsTable = self
252
+ name_1: str = replace(name, "\r\n", "\n")
253
+ try:
254
+ return get_item_from_dict(this.GetFieldNames(cells_collection), name_1)
255
+
256
+ except Exception as match_value:
257
+ raise Exception(("The header row doesn\'t contain field name \'" + name_1) + "\'.")
258
+
259
+
260
+ @staticmethod
261
+ def get_field(name: str, cells_collection: FsCellsCollection, table: FsTable) -> FsTableField:
262
+ return table.GetField(name, cells_collection)
263
+
264
+ def GetFieldAt(self, index: int, cells_collection: FsCellsCollection) -> FsTableField:
265
+ this: FsTable = self
266
+ try:
267
+ def predicate(ftf: FsTableField) -> bool:
268
+ return ftf.Index == index
269
+
270
+ return find(predicate, this.GetFieldNames(cells_collection).values())
271
+
272
+ except Exception as match_value:
273
+ raise Exception(("FsTableField with index " + str(index)) + " does not exist in the FsTable.")
274
+
275
+
276
+ def GetFieldIndex(self, name: str, cells_collection: FsCellsCollection) -> int:
277
+ this: FsTable = self
278
+ return this.GetField(name, cells_collection).Index
279
+
280
+ def RenameField(self, old_name: str, new_name: str) -> None:
281
+ this: FsTable = self
282
+ match_value: FsTableField | None = Dictionary_tryGet(old_name, this._fieldNames)
283
+ if match_value is None:
284
+ raise Exception("The FsTabelField does not exist in this FsTable", "oldName")
285
+
286
+ else:
287
+ field: FsTableField = match_value
288
+ ignore(remove_from_dict(this._fieldNames, old_name))
289
+ add_to_dict(this._fieldNames, new_name, field)
290
+
291
+
292
+ @staticmethod
293
+ def rename_field(old_name: str, new_name: str, table: FsTable) -> FsTable:
294
+ table.RenameField(old_name, new_name)
295
+ return table
296
+
297
+ def TryGetHeaderCellOfColumnAt(self, cells_collection: FsCellsCollection, col_index: int) -> FsCell | None:
298
+ this: FsTable = self
299
+ fst_row_index: int = this.RangeAddress.FirstAddress.RowNumber or 0
300
+ def predicate(c: FsCell) -> bool:
301
+ return c.RowNumber == fst_row_index
302
+
303
+ return try_find(predicate, cells_collection.GetCellsInColumn(col_index))
304
+
305
+ @staticmethod
306
+ def try_get_header_cell_of_column_index_at(cells_collection: FsCellsCollection, col_index: int, table: FsTable) -> FsCell | None:
307
+ return table.TryGetHeaderCellOfColumnAt(cells_collection, col_index)
308
+
309
+ def TryGetHeaderCellOfColumn(self, cells_collection: FsCellsCollection, column: FsRangeColumn) -> FsCell | None:
310
+ this: FsTable = self
311
+ return this.TryGetHeaderCellOfColumnAt(cells_collection, column.Index)
312
+
313
+ @staticmethod
314
+ def try_get_header_cell_of_column(cells_collection: FsCellsCollection, column: FsRangeColumn, table: FsTable) -> FsCell | None:
315
+ return table.TryGetHeaderCellOfColumn(cells_collection, column)
316
+
317
+ def GetHeaderCellOfColumnAt(self, cells_collection: FsCellsCollection, col_index: int) -> FsCell:
318
+ this: FsTable = self
319
+ return value_2(this.TryGetHeaderCellOfColumnAt(cells_collection, col_index))
320
+
321
+ @staticmethod
322
+ def get_header_cell_of_column_index_at(cells_collection: FsCellsCollection, col_index: int, table: FsTable) -> FsCell:
323
+ return table.GetHeaderCellOfColumnAt(cells_collection, col_index)
324
+
325
+ def GetHeaderCellOfColumn(self, cells_collection: FsCellsCollection, column: FsRangeColumn) -> FsCell:
326
+ this: FsTable = self
327
+ return value_2(this.TryGetHeaderCellOfColumn(cells_collection, column))
328
+
329
+ @staticmethod
330
+ def get_header_cell_of_column(cells_collection: FsCellsCollection, column: FsRangeColumn, table: FsTable) -> FsCell:
331
+ return table.GetHeaderCellOfColumn(cells_collection, column)
332
+
333
+ def GetHeaderCellOfTableField(self, cells_collection: FsCellsCollection, table_field: FsTableField) -> FsCell:
334
+ this: FsTable = self
335
+ return table_field.HeaderCell(cells_collection, this.ShowHeaderRow)
336
+
337
+ @staticmethod
338
+ def get_header_cell_of_table_field(cells_collection: FsCellsCollection, table_field: FsTableField, table: FsTable) -> FsCell:
339
+ return table.GetHeaderCellOfTableField(cells_collection, table_field)
340
+
341
+ def TryGetHeaderCellOfTableFieldAt(self, cells_collection: FsCellsCollection, table_field_index: int) -> FsCell | None:
342
+ this: FsTable = self
343
+ def chooser(tf: FsTableField) -> FsCell | None:
344
+ if tf.Index == table_field_index:
345
+ return tf.HeaderCell(cells_collection, this.ShowHeaderRow)
346
+
347
+ else:
348
+ return None
349
+
350
+
351
+ return try_pick(chooser, this._fieldNames.values())
352
+
353
+ @staticmethod
354
+ def try_get_header_cell_of_table_field_index_at(cells_collection: FsCellsCollection, table_field_index: int, table: FsTable) -> FsCell | None:
355
+ return table.TryGetHeaderCellOfTableFieldAt(cells_collection, table_field_index)
356
+
357
+ def GetHeaderCellOfTableFieldAt(self, cells_collection: FsCellsCollection, table_field_index: int) -> FsCell:
358
+ this: FsTable = self
359
+ return value_2(this.TryGetHeaderCellOfTableFieldAt(cells_collection, table_field_index))
360
+
361
+ @staticmethod
362
+ def get_header_cell_of_table_field_index_at(cells_collection: FsCellsCollection, table_field_index: int, table: FsTable) -> FsCell:
363
+ return table.GetHeaderCellOfTableFieldAt(cells_collection, table_field_index)
364
+
365
+ def TryGetHeaderCellByFieldName(self, cells_collection: FsCellsCollection, field_name: str) -> FsCell | None:
366
+ this: FsTable = self
367
+ match_value: FsTableField | None = Dictionary_tryGet(field_name, this._fieldNames)
368
+ if match_value is None:
369
+ return None
370
+
371
+ else:
372
+ tf: FsTableField = match_value
373
+ return tf.HeaderCell(cells_collection, this.ShowHeaderRow)
374
+
375
+
376
+ @staticmethod
377
+ def try_get_header_cell_by_field_name(cells_collection: FsCellsCollection, field_name: str, table: FsTable) -> FsCell | None:
378
+ return table.TryGetHeaderCellByFieldName(cells_collection, field_name)
379
+
380
+ def GetDataCellsOfColumnAt(self, cells_collection: FsCellsCollection, col_index: int) -> IEnumerable_1[FsCell]:
381
+ this: FsTable = self
382
+ def chooser(ri: int) -> FsCell | None:
383
+ return cells_collection.TryGetCell(ri, col_index)
384
+
385
+ return choose(chooser, to_list(range_big_int(this.RangeAddress.FirstAddress.RowNumber + 1, 1, this.RangeAddress.LastAddress.RowNumber)))
386
+
387
+ @staticmethod
388
+ def get_data_cells_of_column_index_at(cells_collection: FsCellsCollection, col_index: int, table: FsTable) -> IEnumerable_1[FsCell]:
389
+ return table.GetDataCellsOfColumnAt(cells_collection, col_index)
390
+
391
+ def Copy(self, __unit: None=None) -> FsTable:
392
+ this: FsTable = self
393
+ ra: FsRangeAddress = this.RangeAddress.Copy()
394
+ return FsTable(this.Name, ra, False, this.ShowHeaderRow)
395
+
396
+ @staticmethod
397
+ def copy(table: FsTable) -> FsTable:
398
+ return table.Copy()
399
+
400
+ @staticmethod
401
+ def validate_for_write(table: FsTable, cells_collection: FsCellsCollection) -> None:
402
+ if length(table.GetBodyRows(cells_collection)) == 0:
403
+ def _arrow422(__unit: None=None) -> str:
404
+ arg: str = table.Name
405
+ return to_text(printf("The table \'%s\' must contain at least one body row."))(arg)
406
+
407
+ raise Exception(_arrow422(), "table")
408
+
409
+
410
+ def RescanFieldNames(self, cells_collection: FsCellsCollection) -> None:
411
+ this: FsTable = self
412
+ if this.ShowHeaderRow:
413
+ old_field_names: Any = this._fieldNames
414
+ this._fieldNames = dict([])
415
+ cell_pos: int = 0
416
+ with get_enumerator(this.GetHeaderRow(cells_collection)) as enumerator:
417
+ while enumerator.System_Collections_IEnumerator_MoveNext():
418
+ cell: FsCell = enumerator.System_Collections_Generic_IEnumerator_1_get_Current()
419
+ name: str = cell.ValueAsString()
420
+ match_value: FsTableField | None = Dictionary_tryGet(name, old_field_names)
421
+ if match_value is None:
422
+ if (name is None) != (name == ""):
423
+ name = this.GetUniqueName("Column", cell_pos + 1, True)
424
+ value: None = cell.SetValueAs(name)
425
+ ignore(None)
426
+ cell.DataType = DataType(0)
427
+
428
+ if name in this._fieldNames:
429
+ raise Exception(("The header row contains more than one field name \'" + name) + "\'.")
430
+
431
+ add_to_dict(this._fieldNames, name, FsTableField(name, cell_pos))
432
+ cell_pos = (cell_pos + 1) or 0
433
+
434
+ else:
435
+ table_field: FsTableField = match_value
436
+ table_field.Index = cell_pos or 0
437
+ add_to_dict(this._fieldNames, name, table_field)
438
+ cell_pos = (cell_pos + 1) or 0
439
+
440
+
441
+ else:
442
+ col_count: int = super().ColumnCount() or 0
443
+ for i in range(1, col_count + 1, 1):
444
+ def predicate(v: FsTableField) -> bool:
445
+ return v.Index == (i - 1)
446
+
447
+ if not exists(predicate, this._fieldNames.values()):
448
+ name_1: str = "Column" + int32_to_string(i)
449
+ add_to_dict(this._fieldNames, name_1, FsTableField(name_1, i - 1))
450
+
451
+
452
+
453
+
454
+ FsTable_reflection = _expr425
455
+
456
+ def FsTable__ctor_3B894C50(name: str, range_address: FsRangeAddress, show_totals_row: bool | None=None, show_header_row: bool | None=None, field_names: IEnumerable_1[str] | None=None) -> FsTable:
457
+ return FsTable(name, range_address, show_totals_row, show_header_row, field_names)
458
+
459
+
460
+ __all__ = ["FsTable_reflection"]
461
+