arctrl 3.0.0a3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (456) hide show
  1. arctrl/__init__.py +18 -0
  2. arctrl/py/CWL/__init__.py +0 -0
  3. arctrl/py/CWL/cwltypes.py +150 -0
  4. arctrl/py/CWL/decode.py +973 -0
  5. arctrl/py/CWL/encode.py +1 -0
  6. arctrl/py/CWL/inputs.py +88 -0
  7. arctrl/py/CWL/outputs.py +85 -0
  8. arctrl/py/CWL/requirements.py +77 -0
  9. arctrl/py/CWL/tool_description.py +103 -0
  10. arctrl/py/CWL/workflow_description.py +104 -0
  11. arctrl/py/CWL/workflow_steps.py +113 -0
  12. arctrl/py/Contract/__init__.py +0 -0
  13. arctrl/py/Contract/arc.py +60 -0
  14. arctrl/py/Contract/arc_assay.py +125 -0
  15. arctrl/py/Contract/arc_investigation.py +88 -0
  16. arctrl/py/Contract/arc_run.py +125 -0
  17. arctrl/py/Contract/arc_study.py +126 -0
  18. arctrl/py/Contract/arc_workflow.py +125 -0
  19. arctrl/py/Contract/contract.py +153 -0
  20. arctrl/py/Contract/datamap.py +372 -0
  21. arctrl/py/Contract/git.py +118 -0
  22. arctrl/py/Contract/validation_packages_config.py +107 -0
  23. arctrl/py/ContractIO/__init__.py +0 -0
  24. arctrl/py/ContractIO/contract_io.py +344 -0
  25. arctrl/py/ContractIO/file_system_helper.py +264 -0
  26. arctrl/py/Core/Helper/__init__.py +0 -0
  27. arctrl/py/Core/Helper/collections_.py +438 -0
  28. arctrl/py/Core/Helper/date_time.py +26 -0
  29. arctrl/py/Core/Helper/hash_codes.py +60 -0
  30. arctrl/py/Core/Helper/identifier.py +248 -0
  31. arctrl/py/Core/Helper/orcid.py +42 -0
  32. arctrl/py/Core/Helper/printer.py +13 -0
  33. arctrl/py/Core/Helper/regex.py +554 -0
  34. arctrl/py/Core/Helper/sem_ver.py +71 -0
  35. arctrl/py/Core/Helper/url.py +148 -0
  36. arctrl/py/Core/Process/__init__.py +0 -0
  37. arctrl/py/Core/Process/column_index.py +280 -0
  38. arctrl/py/Core/Process/component.py +200 -0
  39. arctrl/py/Core/Process/factor.py +151 -0
  40. arctrl/py/Core/Process/factor_value.py +182 -0
  41. arctrl/py/Core/Process/material.py +74 -0
  42. arctrl/py/Core/Process/material_attribute.py +95 -0
  43. arctrl/py/Core/Process/material_attribute_value.py +184 -0
  44. arctrl/py/Core/Process/material_type.py +45 -0
  45. arctrl/py/Core/Process/process.py +477 -0
  46. arctrl/py/Core/Process/process_input.py +265 -0
  47. arctrl/py/Core/Process/process_output.py +235 -0
  48. arctrl/py/Core/Process/process_parameter_value.py +200 -0
  49. arctrl/py/Core/Process/process_sequence.py +435 -0
  50. arctrl/py/Core/Process/protocol.py +175 -0
  51. arctrl/py/Core/Process/protocol_parameter.py +98 -0
  52. arctrl/py/Core/Process/sample.py +82 -0
  53. arctrl/py/Core/Process/source.py +62 -0
  54. arctrl/py/Core/Table/__init__.py +0 -0
  55. arctrl/py/Core/Table/arc_table.py +1264 -0
  56. arctrl/py/Core/Table/arc_table_aux.py +575 -0
  57. arctrl/py/Core/Table/arc_tables.py +591 -0
  58. arctrl/py/Core/Table/composite_cell.py +319 -0
  59. arctrl/py/Core/Table/composite_column.py +73 -0
  60. arctrl/py/Core/Table/composite_header.py +739 -0
  61. arctrl/py/Core/__init__.py +0 -0
  62. arctrl/py/Core/arc_types.py +5064 -0
  63. arctrl/py/Core/comment.py +128 -0
  64. arctrl/py/Core/comment_list.py +127 -0
  65. arctrl/py/Core/conversion.py +1313 -0
  66. arctrl/py/Core/data.py +245 -0
  67. arctrl/py/Core/data_context.py +157 -0
  68. arctrl/py/Core/data_file.py +112 -0
  69. arctrl/py/Core/data_map.py +225 -0
  70. arctrl/py/Core/identifier_setters.py +31 -0
  71. arctrl/py/Core/iproperty_value.py +36 -0
  72. arctrl/py/Core/ontology_annotation.py +299 -0
  73. arctrl/py/Core/ontology_source_reference.py +114 -0
  74. arctrl/py/Core/person.py +259 -0
  75. arctrl/py/Core/publication.py +161 -0
  76. arctrl/py/Core/template.py +231 -0
  77. arctrl/py/Core/templates.py +148 -0
  78. arctrl/py/Core/uri.py +11 -0
  79. arctrl/py/Core/value.py +188 -0
  80. arctrl/py/FileSystem/__init__.py +0 -0
  81. arctrl/py/FileSystem/commit.py +21 -0
  82. arctrl/py/FileSystem/default_gitattributes.py +5 -0
  83. arctrl/py/FileSystem/default_gitignore.py +5 -0
  84. arctrl/py/FileSystem/file_system.py +58 -0
  85. arctrl/py/FileSystem/file_system_tree.py +426 -0
  86. arctrl/py/FileSystem/path.py +64 -0
  87. arctrl/py/Json/DataMap/__init__.py +0 -0
  88. arctrl/py/Json/DataMap/data_context.py +101 -0
  89. arctrl/py/Json/DataMap/data_map.py +53 -0
  90. arctrl/py/Json/Process/__init__.py +0 -0
  91. arctrl/py/Json/Process/assay_materials.py +46 -0
  92. arctrl/py/Json/Process/component.py +79 -0
  93. arctrl/py/Json/Process/factor.py +107 -0
  94. arctrl/py/Json/Process/factor_value.py +101 -0
  95. arctrl/py/Json/Process/material.py +226 -0
  96. arctrl/py/Json/Process/material_attribute.py +79 -0
  97. arctrl/py/Json/Process/material_attribute_value.py +101 -0
  98. arctrl/py/Json/Process/material_type.py +53 -0
  99. arctrl/py/Json/Process/process.py +296 -0
  100. arctrl/py/Json/Process/process_input.py +83 -0
  101. arctrl/py/Json/Process/process_output.py +67 -0
  102. arctrl/py/Json/Process/process_parameter_value.py +81 -0
  103. arctrl/py/Json/Process/protocol.py +354 -0
  104. arctrl/py/Json/Process/protocol_parameter.py +79 -0
  105. arctrl/py/Json/Process/sample.py +277 -0
  106. arctrl/py/Json/Process/source.py +214 -0
  107. arctrl/py/Json/Process/study_materials.py +52 -0
  108. arctrl/py/Json/Process/value.py +56 -0
  109. arctrl/py/Json/ROCrate/__init__.py +0 -0
  110. arctrl/py/Json/ROCrate/ldcontext.py +133 -0
  111. arctrl/py/Json/ROCrate/ldgraph.py +111 -0
  112. arctrl/py/Json/ROCrate/ldnode.py +290 -0
  113. arctrl/py/Json/ROCrate/ldref.py +44 -0
  114. arctrl/py/Json/ROCrate/ldvalue.py +102 -0
  115. arctrl/py/Json/Table/__init__.py +0 -0
  116. arctrl/py/Json/Table/arc_table.py +393 -0
  117. arctrl/py/Json/Table/cell_table.py +83 -0
  118. arctrl/py/Json/Table/composite_cell.py +136 -0
  119. arctrl/py/Json/Table/composite_header.py +67 -0
  120. arctrl/py/Json/Table/iotype.py +24 -0
  121. arctrl/py/Json/Table/oatable.py +82 -0
  122. arctrl/py/Json/Table/templates.py +281 -0
  123. arctrl/py/Json/__init__.py +0 -0
  124. arctrl/py/Json/assay.py +600 -0
  125. arctrl/py/Json/comment.py +206 -0
  126. arctrl/py/Json/context/rocrate/__init__.py +0 -0
  127. arctrl/py/Json/context/rocrate/isa_assay_context.py +101 -0
  128. arctrl/py/Json/context/rocrate/isa_comment_context.py +60 -0
  129. arctrl/py/Json/context/rocrate/isa_component_context.py +77 -0
  130. arctrl/py/Json/context/rocrate/isa_data_context.py +74 -0
  131. arctrl/py/Json/context/rocrate/isa_factor_context.py +74 -0
  132. arctrl/py/Json/context/rocrate/isa_factor_value_context.py +84 -0
  133. arctrl/py/Json/context/rocrate/isa_investigation_context.py +110 -0
  134. arctrl/py/Json/context/rocrate/isa_material_attribute_context.py +64 -0
  135. arctrl/py/Json/context/rocrate/isa_material_attribute_value_context.py +80 -0
  136. arctrl/py/Json/context/rocrate/isa_material_context.py +71 -0
  137. arctrl/py/Json/context/rocrate/isa_ontology_annotation_context.py +68 -0
  138. arctrl/py/Json/context/rocrate/isa_ontology_source_reference_context.py +75 -0
  139. arctrl/py/Json/context/rocrate/isa_organization_context.py +55 -0
  140. arctrl/py/Json/context/rocrate/isa_person_context.py +131 -0
  141. arctrl/py/Json/context/rocrate/isa_process_context.py +94 -0
  142. arctrl/py/Json/context/rocrate/isa_process_parameter_value_context.py +80 -0
  143. arctrl/py/Json/context/rocrate/isa_protocol_context.py +97 -0
  144. arctrl/py/Json/context/rocrate/isa_protocol_parameter_context.py +64 -0
  145. arctrl/py/Json/context/rocrate/isa_publication_context.py +78 -0
  146. arctrl/py/Json/context/rocrate/isa_sample_context.py +65 -0
  147. arctrl/py/Json/context/rocrate/isa_source_context.py +66 -0
  148. arctrl/py/Json/context/rocrate/isa_study_context.py +125 -0
  149. arctrl/py/Json/context/rocrate/property_value_context.py +73 -0
  150. arctrl/py/Json/context/rocrate/rocrate_context.py +81 -0
  151. arctrl/py/Json/converter_options.py +23 -0
  152. arctrl/py/Json/data.py +356 -0
  153. arctrl/py/Json/data_file.py +63 -0
  154. arctrl/py/Json/decode.py +155 -0
  155. arctrl/py/Json/encode.py +92 -0
  156. arctrl/py/Json/idtable.py +44 -0
  157. arctrl/py/Json/investigation.py +695 -0
  158. arctrl/py/Json/ontology_annotation.py +404 -0
  159. arctrl/py/Json/ontology_source_reference.py +255 -0
  160. arctrl/py/Json/person.py +658 -0
  161. arctrl/py/Json/property_value.py +359 -0
  162. arctrl/py/Json/publication.py +279 -0
  163. arctrl/py/Json/string_table.py +76 -0
  164. arctrl/py/Json/study.py +793 -0
  165. arctrl/py/JsonIO/DataMap/__init__.py +0 -0
  166. arctrl/py/JsonIO/DataMap/data_map.py +53 -0
  167. arctrl/py/JsonIO/Process/__init__.py +0 -0
  168. arctrl/py/JsonIO/Process/component.py +60 -0
  169. arctrl/py/JsonIO/Process/factor.py +36 -0
  170. arctrl/py/JsonIO/Process/factor_value.py +38 -0
  171. arctrl/py/JsonIO/Process/material.py +60 -0
  172. arctrl/py/JsonIO/Process/material_attribute.py +38 -0
  173. arctrl/py/JsonIO/Process/material_attribute_value.py +60 -0
  174. arctrl/py/JsonIO/Process/material_type.py +36 -0
  175. arctrl/py/JsonIO/Process/process.py +60 -0
  176. arctrl/py/JsonIO/Process/process_input.py +38 -0
  177. arctrl/py/JsonIO/Process/process_output.py +60 -0
  178. arctrl/py/JsonIO/Process/process_parameter_value.py +60 -0
  179. arctrl/py/JsonIO/Process/process_sequence.py +71 -0
  180. arctrl/py/JsonIO/Process/protocol.py +60 -0
  181. arctrl/py/JsonIO/Process/protocol_parameter.py +36 -0
  182. arctrl/py/JsonIO/Process/sample.py +60 -0
  183. arctrl/py/JsonIO/Process/source.py +60 -0
  184. arctrl/py/JsonIO/Process/study_materials.py +52 -0
  185. arctrl/py/JsonIO/Process/value.py +32 -0
  186. arctrl/py/JsonIO/Table/__init__.py +0 -0
  187. arctrl/py/JsonIO/Table/arc_table.py +121 -0
  188. arctrl/py/JsonIO/Table/composite_cell.py +36 -0
  189. arctrl/py/JsonIO/Table/composite_header.py +36 -0
  190. arctrl/py/JsonIO/Table/compression.py +85 -0
  191. arctrl/py/JsonIO/Table/iotype.py +36 -0
  192. arctrl/py/JsonIO/Table/templates.py +113 -0
  193. arctrl/py/JsonIO/__init__.py +0 -0
  194. arctrl/py/JsonIO/assay.py +113 -0
  195. arctrl/py/JsonIO/comment.py +80 -0
  196. arctrl/py/JsonIO/data.py +60 -0
  197. arctrl/py/JsonIO/data_file.py +58 -0
  198. arctrl/py/JsonIO/decode.py +9 -0
  199. arctrl/py/JsonIO/encode.py +1 -0
  200. arctrl/py/JsonIO/investigation.py +113 -0
  201. arctrl/py/JsonIO/ldobject.py +106 -0
  202. arctrl/py/JsonIO/ontology_annotation.py +80 -0
  203. arctrl/py/JsonIO/ontology_source_reference.py +80 -0
  204. arctrl/py/JsonIO/person.py +82 -0
  205. arctrl/py/JsonIO/publication.py +82 -0
  206. arctrl/py/JsonIO/study.py +114 -0
  207. arctrl/py/ROCrate/Generic/__init__.py +0 -0
  208. arctrl/py/ROCrate/Generic/comment.py +131 -0
  209. arctrl/py/ROCrate/Generic/dataset.py +817 -0
  210. arctrl/py/ROCrate/Generic/defined_term.py +131 -0
  211. arctrl/py/ROCrate/Generic/file.py +237 -0
  212. arctrl/py/ROCrate/Generic/lab_process.py +324 -0
  213. arctrl/py/ROCrate/Generic/lab_protocol.py +338 -0
  214. arctrl/py/ROCrate/Generic/organization.py +83 -0
  215. arctrl/py/ROCrate/Generic/person.py +484 -0
  216. arctrl/py/ROCrate/Generic/postal_address.py +195 -0
  217. arctrl/py/ROCrate/Generic/property_value.py +696 -0
  218. arctrl/py/ROCrate/Generic/sample.py +202 -0
  219. arctrl/py/ROCrate/Generic/scholarly_article.py +229 -0
  220. arctrl/py/ROCrate/ISAProfile/__init__.py +0 -0
  221. arctrl/py/ROCrate/ISAProfile/assay.py +70 -0
  222. arctrl/py/ROCrate/ISAProfile/data.py +65 -0
  223. arctrl/py/ROCrate/ISAProfile/dataset.py +24 -0
  224. arctrl/py/ROCrate/ISAProfile/investigation.py +73 -0
  225. arctrl/py/ROCrate/ISAProfile/lab_process.py +162 -0
  226. arctrl/py/ROCrate/ISAProfile/lab_protocol.py +37 -0
  227. arctrl/py/ROCrate/ISAProfile/person.py +72 -0
  228. arctrl/py/ROCrate/ISAProfile/property_value.py +98 -0
  229. arctrl/py/ROCrate/ISAProfile/sample.py +64 -0
  230. arctrl/py/ROCrate/ISAProfile/scholarly_article.py +98 -0
  231. arctrl/py/ROCrate/ISAProfile/study.py +74 -0
  232. arctrl/py/ROCrate/__init__.py +0 -0
  233. arctrl/py/ROCrate/arc_rocrate_metadata.py +39 -0
  234. arctrl/py/ROCrate/dyn_obj_extensions.py +1 -0
  235. arctrl/py/ROCrate/helper.py +8 -0
  236. arctrl/py/ROCrate/ldcontext.py +362 -0
  237. arctrl/py/ROCrate/ldobject.py +1247 -0
  238. arctrl/py/ROCrate/rocrate_context.py +51 -0
  239. arctrl/py/Spreadsheet/AnnotationTable/__init__.py +0 -0
  240. arctrl/py/Spreadsheet/AnnotationTable/arc_table.py +193 -0
  241. arctrl/py/Spreadsheet/AnnotationTable/composite_cell.py +78 -0
  242. arctrl/py/Spreadsheet/AnnotationTable/composite_column.py +210 -0
  243. arctrl/py/Spreadsheet/AnnotationTable/composite_header.py +623 -0
  244. arctrl/py/Spreadsheet/DataMapTable/__init__.py +0 -0
  245. arctrl/py/Spreadsheet/DataMapTable/data_map_column.py +114 -0
  246. arctrl/py/Spreadsheet/DataMapTable/data_map_header.py +618 -0
  247. arctrl/py/Spreadsheet/DataMapTable/data_map_table.py +119 -0
  248. arctrl/py/Spreadsheet/Metadata/__init__.py +0 -0
  249. arctrl/py/Spreadsheet/Metadata/assays.py +125 -0
  250. arctrl/py/Spreadsheet/Metadata/comment.py +77 -0
  251. arctrl/py/Spreadsheet/Metadata/contacts.py +134 -0
  252. arctrl/py/Spreadsheet/Metadata/conversions.py +190 -0
  253. arctrl/py/Spreadsheet/Metadata/design_descriptors.py +34 -0
  254. arctrl/py/Spreadsheet/Metadata/factors.py +107 -0
  255. arctrl/py/Spreadsheet/Metadata/ontology_annotation.py +88 -0
  256. arctrl/py/Spreadsheet/Metadata/ontology_source_reference.py +96 -0
  257. arctrl/py/Spreadsheet/Metadata/protocols.py +146 -0
  258. arctrl/py/Spreadsheet/Metadata/publication.py +122 -0
  259. arctrl/py/Spreadsheet/Metadata/run.py +122 -0
  260. arctrl/py/Spreadsheet/Metadata/sparse_table.py +508 -0
  261. arctrl/py/Spreadsheet/Metadata/study.py +312 -0
  262. arctrl/py/Spreadsheet/Metadata/workflow.py +151 -0
  263. arctrl/py/Spreadsheet/__init__.py +0 -0
  264. arctrl/py/Spreadsheet/arc_assay.py +233 -0
  265. arctrl/py/Spreadsheet/arc_investigation.py +418 -0
  266. arctrl/py/Spreadsheet/arc_run.py +190 -0
  267. arctrl/py/Spreadsheet/arc_study.py +144 -0
  268. arctrl/py/Spreadsheet/arc_workflow.py +176 -0
  269. arctrl/py/Spreadsheet/assembly_info.py +1 -0
  270. arctrl/py/Spreadsheet/collection_aux.py +167 -0
  271. arctrl/py/Spreadsheet/data_map.py +44 -0
  272. arctrl/py/Spreadsheet/template.py +460 -0
  273. arctrl/py/ValidationPackages/__init__.py +0 -0
  274. arctrl/py/ValidationPackages/validation_package.py +82 -0
  275. arctrl/py/ValidationPackages/validation_packages_config.py +132 -0
  276. arctrl/py/WebRequest/__init__.py +0 -0
  277. arctrl/py/WebRequest/web_request.py +9 -0
  278. arctrl/py/WebRequest/web_request_py.py +135 -0
  279. arctrl/py/Yaml/__init__.py +0 -0
  280. arctrl/py/Yaml/decode.py +1 -0
  281. arctrl/py/Yaml/encode.py +10 -0
  282. arctrl/py/Yaml/validation_package.py +77 -0
  283. arctrl/py/Yaml/validation_packages_config.py +86 -0
  284. arctrl/py/__init__.py +0 -0
  285. arctrl/py/arc.py +1400 -0
  286. arctrl/py/column_index.py +280 -0
  287. arctrl/py/conversion.py +2184 -0
  288. arctrl/py/cross_async.py +76 -0
  289. arctrl/py/fable_modules/dynamic_obj/__init__.py +0 -0
  290. arctrl/py/fable_modules/dynamic_obj/dyn_obj.py +136 -0
  291. arctrl/py/fable_modules/dynamic_obj/dynamic_obj.py +415 -0
  292. arctrl/py/fable_modules/dynamic_obj/fable_js.py +1 -0
  293. arctrl/py/fable_modules/dynamic_obj/fable_py.py +288 -0
  294. arctrl/py/fable_modules/dynamic_obj/hash_codes.py +82 -0
  295. arctrl/py/fable_modules/dynamic_obj/property_helper.py +25 -0
  296. arctrl/py/fable_modules/dynamic_obj/reflection_utils.py +87 -0
  297. arctrl/py/fable_modules/fable_library/__init__.py +0 -0
  298. arctrl/py/fable_modules/fable_library/array_.py +1528 -0
  299. arctrl/py/fable_modules/fable_library/async_.py +377 -0
  300. arctrl/py/fable_modules/fable_library/async_builder.py +379 -0
  301. arctrl/py/fable_modules/fable_library/big_int.py +330 -0
  302. arctrl/py/fable_modules/fable_library/bit_converter.py +131 -0
  303. arctrl/py/fable_modules/fable_library/boolean.py +26 -0
  304. arctrl/py/fable_modules/fable_library/char.py +237 -0
  305. arctrl/py/fable_modules/fable_library/choice.py +212 -0
  306. arctrl/py/fable_modules/fable_library/date.py +779 -0
  307. arctrl/py/fable_modules/fable_library/date_offset.py +79 -0
  308. arctrl/py/fable_modules/fable_library/decimal_.py +190 -0
  309. arctrl/py/fable_modules/fable_library/diagnostics.py +54 -0
  310. arctrl/py/fable_modules/fable_library/double.py +87 -0
  311. arctrl/py/fable_modules/fable_library/encoding.py +41 -0
  312. arctrl/py/fable_modules/fable_library/event.py +206 -0
  313. arctrl/py/fable_modules/fable_library/file.py +107 -0
  314. arctrl/py/fable_modules/fable_library/fsharp_collections.py +52 -0
  315. arctrl/py/fable_modules/fable_library/fsharp_core.py +123 -0
  316. arctrl/py/fable_modules/fable_library/global_.py +63 -0
  317. arctrl/py/fable_modules/fable_library/guid.py +41 -0
  318. arctrl/py/fable_modules/fable_library/int32.py +73 -0
  319. arctrl/py/fable_modules/fable_library/list.py +1788 -0
  320. arctrl/py/fable_modules/fable_library/long.py +240 -0
  321. arctrl/py/fable_modules/fable_library/mailbox_processor.py +179 -0
  322. arctrl/py/fable_modules/fable_library/map.py +1854 -0
  323. arctrl/py/fable_modules/fable_library/map_util.py +148 -0
  324. arctrl/py/fable_modules/fable_library/mutable_map.py +397 -0
  325. arctrl/py/fable_modules/fable_library/mutable_set.py +279 -0
  326. arctrl/py/fable_modules/fable_library/native.py +45 -0
  327. arctrl/py/fable_modules/fable_library/numeric.py +46 -0
  328. arctrl/py/fable_modules/fable_library/observable.py +222 -0
  329. arctrl/py/fable_modules/fable_library/option.py +128 -0
  330. arctrl/py/fable_modules/fable_library/path.py +62 -0
  331. arctrl/py/fable_modules/fable_library/range.py +117 -0
  332. arctrl/py/fable_modules/fable_library/reflection.py +463 -0
  333. arctrl/py/fable_modules/fable_library/reg_exp.py +137 -0
  334. arctrl/py/fable_modules/fable_library/resize_array.py +31 -0
  335. arctrl/py/fable_modules/fable_library/result.py +212 -0
  336. arctrl/py/fable_modules/fable_library/seq.py +1979 -0
  337. arctrl/py/fable_modules/fable_library/seq2.py +221 -0
  338. arctrl/py/fable_modules/fable_library/set.py +2414 -0
  339. arctrl/py/fable_modules/fable_library/singleton_local_time_zone.py +36 -0
  340. arctrl/py/fable_modules/fable_library/string_.py +573 -0
  341. arctrl/py/fable_modules/fable_library/system_collections_generic.py +462 -0
  342. arctrl/py/fable_modules/fable_library/system_text.py +237 -0
  343. arctrl/py/fable_modules/fable_library/task.py +116 -0
  344. arctrl/py/fable_modules/fable_library/task_builder.py +122 -0
  345. arctrl/py/fable_modules/fable_library/thread.py +5 -0
  346. arctrl/py/fable_modules/fable_library/time_span.py +283 -0
  347. arctrl/py/fable_modules/fable_library/timer.py +24 -0
  348. arctrl/py/fable_modules/fable_library/types.py +401 -0
  349. arctrl/py/fable_modules/fable_library/uri.py +109 -0
  350. arctrl/py/fable_modules/fable_library/util.py +2735 -0
  351. arctrl/py/fable_modules/fable_openpyxl/__init__.py +0 -0
  352. arctrl/py/fable_modules/fable_openpyxl/openpyxl.py +362 -0
  353. arctrl/py/fable_modules/fable_python/cognite-sdk/__init__.py +0 -0
  354. arctrl/py/fable_modules/fable_python/cognite-sdk/cognite_sdk.py +22 -0
  355. arctrl/py/fable_modules/fable_python/flask/__init__.py +0 -0
  356. arctrl/py/fable_modules/fable_python/flask/flask.py +34 -0
  357. arctrl/py/fable_modules/fable_python/jupyter/__init__.py +0 -0
  358. arctrl/py/fable_modules/fable_python/jupyter/ipy_widgets.py +47 -0
  359. arctrl/py/fable_modules/fable_python/jupyter/ipython.py +13 -0
  360. arctrl/py/fable_modules/fable_python/stdlib/__init__.py +0 -0
  361. arctrl/py/fable_modules/fable_python/stdlib/ast.py +1 -0
  362. arctrl/py/fable_modules/fable_python/stdlib/asyncio/__init__.py +0 -0
  363. arctrl/py/fable_modules/fable_python/stdlib/asyncio/events.py +17 -0
  364. arctrl/py/fable_modules/fable_python/stdlib/asyncio/futures.py +52 -0
  365. arctrl/py/fable_modules/fable_python/stdlib/asyncio/tasks.py +38 -0
  366. arctrl/py/fable_modules/fable_python/stdlib/base64_.py +1 -0
  367. arctrl/py/fable_modules/fable_python/stdlib/builtins_.py +38 -0
  368. arctrl/py/fable_modules/fable_python/stdlib/html.py +1 -0
  369. arctrl/py/fable_modules/fable_python/stdlib/json.py +1 -0
  370. arctrl/py/fable_modules/fable_python/stdlib/math_.py +1 -0
  371. arctrl/py/fable_modules/fable_python/stdlib/os_.py +1 -0
  372. arctrl/py/fable_modules/fable_python/stdlib/queue_.py +1 -0
  373. arctrl/py/fable_modules/fable_python/stdlib/string_.py +1 -0
  374. arctrl/py/fable_modules/fable_python/stdlib/sys_.py +30 -0
  375. arctrl/py/fable_modules/fable_python/stdlib/time_.py +1 -0
  376. arctrl/py/fable_modules/fable_python/stdlib/tk_inter.py +1 -0
  377. arctrl/py/fable_modules/fs_spreadsheet/Cells/__init__.py +0 -0
  378. arctrl/py/fable_modules/fs_spreadsheet/Cells/fs_cell.py +338 -0
  379. arctrl/py/fable_modules/fs_spreadsheet/Cells/fs_cells_collection.py +469 -0
  380. arctrl/py/fable_modules/fs_spreadsheet/DSL/__init__.py +0 -0
  381. arctrl/py/fable_modules/fs_spreadsheet/DSL/cell_builder.py +214 -0
  382. arctrl/py/fable_modules/fs_spreadsheet/DSL/column_builder.py +139 -0
  383. arctrl/py/fable_modules/fs_spreadsheet/DSL/dsl.py +50 -0
  384. arctrl/py/fable_modules/fs_spreadsheet/DSL/expression.py +65 -0
  385. arctrl/py/fable_modules/fs_spreadsheet/DSL/operators.py +9 -0
  386. arctrl/py/fable_modules/fs_spreadsheet/DSL/row_builder.py +139 -0
  387. arctrl/py/fable_modules/fs_spreadsheet/DSL/sheet_builder.py +118 -0
  388. arctrl/py/fable_modules/fs_spreadsheet/DSL/table_builder.py +122 -0
  389. arctrl/py/fable_modules/fs_spreadsheet/DSL/transform.py +464 -0
  390. arctrl/py/fable_modules/fs_spreadsheet/DSL/types.py +314 -0
  391. arctrl/py/fable_modules/fs_spreadsheet/DSL/workbook_builder.py +106 -0
  392. arctrl/py/fable_modules/fs_spreadsheet/Json/__init__.py +0 -0
  393. arctrl/py/fable_modules/fs_spreadsheet/Json/cell.py +103 -0
  394. arctrl/py/fable_modules/fs_spreadsheet/Json/column.py +70 -0
  395. arctrl/py/fable_modules/fs_spreadsheet/Json/row.py +70 -0
  396. arctrl/py/fable_modules/fs_spreadsheet/Json/table.py +57 -0
  397. arctrl/py/fable_modules/fs_spreadsheet/Json/value.py +93 -0
  398. arctrl/py/fable_modules/fs_spreadsheet/Json/workbook.py +71 -0
  399. arctrl/py/fable_modules/fs_spreadsheet/Json/worksheet.py +217 -0
  400. arctrl/py/fable_modules/fs_spreadsheet/Ranges/__init__.py +0 -0
  401. arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range.py +47 -0
  402. arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_address.py +186 -0
  403. arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_base.py +90 -0
  404. arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_column.py +78 -0
  405. arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_row.py +48 -0
  406. arctrl/py/fable_modules/fs_spreadsheet/Tables/__init__.py +0 -0
  407. arctrl/py/fable_modules/fs_spreadsheet/Tables/fs_table.py +393 -0
  408. arctrl/py/fable_modules/fs_spreadsheet/Tables/fs_table_field.py +127 -0
  409. arctrl/py/fable_modules/fs_spreadsheet/Tables/fs_table_row.py +23 -0
  410. arctrl/py/fable_modules/fs_spreadsheet/__init__.py +0 -0
  411. arctrl/py/fable_modules/fs_spreadsheet/fs_address.py +218 -0
  412. arctrl/py/fable_modules/fs_spreadsheet/fs_column.py +172 -0
  413. arctrl/py/fable_modules/fs_spreadsheet/fs_row.py +183 -0
  414. arctrl/py/fable_modules/fs_spreadsheet/fs_workbook.py +180 -0
  415. arctrl/py/fable_modules/fs_spreadsheet/fs_worksheet.py +600 -0
  416. arctrl/py/fable_modules/fs_spreadsheet/sheet_builder.py +330 -0
  417. arctrl/py/fable_modules/fs_spreadsheet_py/__init__.py +0 -0
  418. arctrl/py/fable_modules/fs_spreadsheet_py/cell.py +63 -0
  419. arctrl/py/fable_modules/fs_spreadsheet_py/cell_type.py +50 -0
  420. arctrl/py/fable_modules/fs_spreadsheet_py/fs_extension.py +60 -0
  421. arctrl/py/fable_modules/fs_spreadsheet_py/json.py +47 -0
  422. arctrl/py/fable_modules/fs_spreadsheet_py/table.py +53 -0
  423. arctrl/py/fable_modules/fs_spreadsheet_py/workbook.py +40 -0
  424. arctrl/py/fable_modules/fs_spreadsheet_py/worksheet.py +54 -0
  425. arctrl/py/fable_modules/fs_spreadsheet_py/xlsx.py +37 -0
  426. arctrl/py/fable_modules/thoth_json_core/__init__.py +0 -0
  427. arctrl/py/fable_modules/thoth_json_core/decode.py +1588 -0
  428. arctrl/py/fable_modules/thoth_json_core/encode.py +261 -0
  429. arctrl/py/fable_modules/thoth_json_core/types.py +181 -0
  430. arctrl/py/fable_modules/thoth_json_python/__init__.py +0 -0
  431. arctrl/py/fable_modules/thoth_json_python/decode.py +112 -0
  432. arctrl/py/fable_modules/thoth_json_python/encode.py +72 -0
  433. arctrl/py/fable_modules/thoth_json_python/python.py +1 -0
  434. arctrl/py/fable_modules/yamlicious/Interop/__init__.py +0 -0
  435. arctrl/py/fable_modules/yamlicious/Interop/js_interop.py +1 -0
  436. arctrl/py/fable_modules/yamlicious/Interop/py_interop.py +7 -0
  437. arctrl/py/fable_modules/yamlicious/__init__.py +0 -0
  438. arctrl/py/fable_modules/yamlicious/decode.py +1784 -0
  439. arctrl/py/fable_modules/yamlicious/encode.py +84 -0
  440. arctrl/py/fable_modules/yamlicious/library.py +10 -0
  441. arctrl/py/fable_modules/yamlicious/persil.py +57 -0
  442. arctrl/py/fable_modules/yamlicious/preprocessing.py +99 -0
  443. arctrl/py/fable_modules/yamlicious/reader.py +665 -0
  444. arctrl/py/fable_modules/yamlicious/regex.py +21 -0
  445. arctrl/py/fable_modules/yamlicious/regex_active_patterns.py +256 -0
  446. arctrl/py/fable_modules/yamlicious/writer.py +175 -0
  447. arctrl/py/fable_modules/yamlicious/yamlicious_types.py +128 -0
  448. arctrl/py/json.py +213 -0
  449. arctrl/py/rocrate_io.py +72 -0
  450. arctrl/py/template_web.py +23 -0
  451. arctrl/py/xlsx.py +148 -0
  452. arctrl/rocrate.py +21 -0
  453. arctrl-3.0.0a3.dist-info/LICENSE +21 -0
  454. arctrl-3.0.0a3.dist-info/METADATA +119 -0
  455. arctrl-3.0.0a3.dist-info/RECORD +456 -0
  456. arctrl-3.0.0a3.dist-info/WHEEL +4 -0
@@ -0,0 +1,264 @@
1
+ from __future__ import annotations
2
+ from collections.abc import Callable
3
+ from pathlib import Path
4
+ import shutil
5
+ import os
6
+ from typing import Any
7
+ from ..cross_async import all
8
+ from ..fable_modules.fable_library.array_ import map
9
+ from ..fable_modules.fable_library.async_builder import (singleton, Async)
10
+ from ..fable_modules.fable_library.seq import (is_empty, empty, map as map_1, concat, append, to_array)
11
+ from ..fable_modules.fable_library.string_ import (starts_with_exact, trim as trim_1, replace, substring)
12
+ from ..fable_modules.fable_library.types import Array
13
+ from ..fable_modules.fable_library.util import (IEnumerable_1, to_enumerable)
14
+ from ..fable_modules.fs_spreadsheet.fs_workbook import FsWorkbook
15
+ from ..fable_modules.fs_spreadsheet_py.fs_extension import (FsSpreadsheet_FsWorkbook__FsWorkbook_fromXlsxFile_Static_Z721C83C5, FsSpreadsheet_FsWorkbook__FsWorkbook_toXlsxFile_Static)
16
+
17
+ shutil
18
+
19
+ os
20
+
21
+ Path
22
+
23
+ def directory_exists_async(path: str) -> Async[bool]:
24
+ def _arrow3579(__unit: None=None, path: Any=path) -> Async[bool]:
25
+ return singleton.Return(Path(path).is_dir())
26
+
27
+ return singleton.Delay(_arrow3579)
28
+
29
+
30
+ def create_directory_async(path: str) -> Async[None]:
31
+ def _arrow3580(__unit: None=None, path: Any=path) -> Async[None]:
32
+ Path(path).mkdir(parents=True, exist_ok=True)
33
+ return singleton.Zero()
34
+
35
+ return singleton.Delay(_arrow3580)
36
+
37
+
38
+ def ensure_directory_async(path: str) -> Async[None]:
39
+ def _arrow3582(__unit: None=None, path: Any=path) -> Async[None]:
40
+ def _arrow3581(_arg: bool) -> Async[None]:
41
+ return singleton.ReturnFrom(create_directory_async(path)) if (not _arg) else singleton.Zero()
42
+
43
+ return singleton.Bind(directory_exists_async(path), _arrow3581)
44
+
45
+ return singleton.Delay(_arrow3582)
46
+
47
+
48
+ def ensure_directory_of_file_async(file_path: str) -> Async[None]:
49
+ def _arrow3583(__unit: None=None, file_path: Any=file_path) -> Async[None]:
50
+ return singleton.ReturnFrom(ensure_directory_async(Path(file_path).parent))
51
+
52
+ return singleton.Delay(_arrow3583)
53
+
54
+
55
+ def file_exists_async(path: str) -> Async[bool]:
56
+ def _arrow3584(__unit: None=None, path: Any=path) -> Async[bool]:
57
+ return singleton.Return(Path(path).is_file())
58
+
59
+ return singleton.Delay(_arrow3584)
60
+
61
+
62
+ def read_file_text_async(path: str) -> Async[str]:
63
+ def _arrow3586(__unit: None=None, path: Any=path) -> Async[str]:
64
+ def _arrow3585(__unit: None=None) -> str:
65
+ with open(path, 'r', encoding='utf-8') as f: return f.read()
66
+
67
+ return singleton.Return(_arrow3585())
68
+
69
+ return singleton.Delay(_arrow3586)
70
+
71
+
72
+ def read_file_binary_async(path: str) -> Async[bytearray]:
73
+ def _arrow3588(__unit: None=None, path: Any=path) -> Async[bytearray]:
74
+ def _arrow3587(__unit: None=None) -> bytearray:
75
+ with open(path, 'rb') as f: return f.read()
76
+
77
+ return singleton.Return(_arrow3587())
78
+
79
+ return singleton.Delay(_arrow3588)
80
+
81
+
82
+ def read_file_xlsx_async(path: str) -> Async[FsWorkbook]:
83
+ def _arrow3589(__unit: None=None, path: Any=path) -> Async[FsWorkbook]:
84
+ return singleton.Return(FsSpreadsheet_FsWorkbook__FsWorkbook_fromXlsxFile_Static_Z721C83C5(path))
85
+
86
+ return singleton.Delay(_arrow3589)
87
+
88
+
89
+ def move_file_async(old_path: str, new_path: str) -> Async[None]:
90
+ def _arrow3590(__unit: None=None, old_path: Any=old_path, new_path: Any=new_path) -> Async[None]:
91
+ shutil.move(old_path, new_path)
92
+ return singleton.Zero()
93
+
94
+ return singleton.Delay(_arrow3590)
95
+
96
+
97
+ def move_directory_async(old_path: str, new_path: str) -> Async[None]:
98
+ return move_file_async(old_path, new_path)
99
+
100
+
101
+ def delete_file_async(path: str) -> Async[None]:
102
+ def _arrow3591(__unit: None=None, path: Any=path) -> Async[None]:
103
+ try:
104
+ os.remove(path)
105
+ except FileNotFoundError:
106
+ pass
107
+ return singleton.Zero()
108
+
109
+ return singleton.Delay(_arrow3591)
110
+
111
+
112
+ def delete_directory_async(path: str) -> Async[None]:
113
+ def _arrow3592(__unit: None=None, path: Any=path) -> Async[None]:
114
+ shutil.rmtree(path, ignore_errors=True)
115
+ return singleton.Zero()
116
+
117
+ return singleton.Delay(_arrow3592)
118
+
119
+
120
+ def write_file_text_async(path: str, text: str) -> Async[None]:
121
+ def _arrow3593(__unit: None=None, path: Any=path, text: Any=text) -> Async[None]:
122
+ with open(path, 'w') as f: f.write(text)
123
+ return singleton.Zero()
124
+
125
+ return singleton.Delay(_arrow3593)
126
+
127
+
128
+ def write_file_binary_async(path: str, bytes: bytearray) -> Async[None]:
129
+ def _arrow3594(__unit: None=None, path: Any=path, bytes: Any=bytes) -> Async[None]:
130
+ with open(path, 'wb') as f: f.write(bytes)
131
+ return singleton.Zero()
132
+
133
+ return singleton.Delay(_arrow3594)
134
+
135
+
136
+ def write_file_xlsx_async(path: str, wb: FsWorkbook) -> Async[None]:
137
+ def _arrow3595(__unit: None=None, path: Any=path, wb: Any=wb) -> Async[None]:
138
+ FsSpreadsheet_FsWorkbook__FsWorkbook_toXlsxFile_Static(path, wb)
139
+ return singleton.Zero()
140
+
141
+ return singleton.Delay(_arrow3595)
142
+
143
+
144
+ def trim(path: str) -> str:
145
+ if starts_with_exact(path, "./"):
146
+ return trim_1(replace(path, "./", ""), "/")
147
+
148
+ else:
149
+ return trim_1(path, "/")
150
+
151
+
152
+
153
+ def make_relative(directory_path: str, path: str) -> str:
154
+ if True if (True if (directory_path == ".") else (directory_path == "/")) else (directory_path == ""):
155
+ return path
156
+
157
+ else:
158
+ directory_path_1: str = trim(directory_path)
159
+ path_1: str = trim(path)
160
+ if starts_with_exact(path_1, directory_path_1):
161
+ return substring(path_1, len(directory_path_1))
162
+
163
+ else:
164
+ return path_1
165
+
166
+
167
+
168
+
169
+ def standardize_slashes(path: str) -> str:
170
+ return replace(path, "\\", "/")
171
+
172
+
173
+ def get_sub_directories_async(path: str) -> Async[Array[str]]:
174
+ def _arrow3596(__unit: None=None, path: Any=path) -> Async[Array[str]]:
175
+ paths: Array[str] = [str(entry) for entry in Path(path).iterdir() if entry.is_dir()]
176
+ return singleton.Return(map(standardize_slashes, paths, None))
177
+
178
+ return singleton.Delay(_arrow3596)
179
+
180
+
181
+ def get_sub_files_async(path: str) -> Async[Array[str]]:
182
+ def _arrow3597(__unit: None=None, path: Any=path) -> Async[Array[str]]:
183
+ paths: Array[str] = [str(entry) for entry in Path(path).iterdir() if entry.is_file()]
184
+ return singleton.Return(map(standardize_slashes, paths, None))
185
+
186
+ return singleton.Delay(_arrow3597)
187
+
188
+
189
+ def get_all_file_paths_async(directory_path: str) -> Async[Array[str]]:
190
+ directory_path_1: str = standardize_slashes(directory_path)
191
+ def _arrow3603(__unit: None=None, directory_path: Any=directory_path) -> Async[Array[str]]:
192
+ def all_files(dirs: IEnumerable_1[str]) -> Async[IEnumerable_1[str]]:
193
+ def _arrow3601(__unit: None=None, dirs: Any=dirs) -> Async[IEnumerable_1[str]]:
194
+ def _arrow3600(_arg: Array[Array[str]]) -> Async[IEnumerable_1[str]]:
195
+ sub_files_1: IEnumerable_1[str] = concat(_arg)
196
+ def _arrow3599(_arg_1: Array[Array[str]]) -> Async[IEnumerable_1[str]]:
197
+ def _arrow3598(_arg_2: Array[IEnumerable_1[str]]) -> Async[IEnumerable_1[str]]:
198
+ sub_dir_contents_1: IEnumerable_1[str] = concat(_arg_2)
199
+ return singleton.Return(append(sub_dir_contents_1, sub_files_1))
200
+
201
+ return singleton.Bind(all(map_1(all_files, _arg_1)), _arrow3598)
202
+
203
+ return singleton.Bind(all(map_1(get_sub_directories_async, dirs)), _arrow3599)
204
+
205
+ return singleton.Return(empty()) if is_empty(dirs) else singleton.Bind(all(map_1(get_sub_files_async, dirs)), _arrow3600)
206
+
207
+ return singleton.Delay(_arrow3601)
208
+
209
+ def _arrow3602(_arg_3: IEnumerable_1[str]) -> Async[Array[str]]:
210
+ def mapping_1(arg_2: str) -> str:
211
+ return standardize_slashes(make_relative(directory_path_1, arg_2))
212
+
213
+ all_files_relative: Array[str] = map(mapping_1, to_array(_arg_3), None)
214
+ return singleton.Return(all_files_relative)
215
+
216
+ return singleton.Bind(all_files(to_enumerable([directory_path_1])), _arrow3602)
217
+
218
+ return singleton.Delay(_arrow3603)
219
+
220
+
221
+ def rename_file_or_directory_async(old_path: str, new_path: str) -> Async[None]:
222
+ def _arrow3606(__unit: None=None, old_path: Any=old_path, new_path: Any=new_path) -> Async[None]:
223
+ def _arrow3605(_arg: bool) -> Async[None]:
224
+ def _arrow3604(_arg_1: bool) -> Async[None]:
225
+ if _arg:
226
+ return singleton.ReturnFrom(move_file_async(old_path, new_path))
227
+
228
+ elif _arg_1:
229
+ return singleton.ReturnFrom(move_directory_async(old_path, new_path))
230
+
231
+ else:
232
+ return singleton.Zero()
233
+
234
+
235
+ return singleton.Bind(directory_exists_async(old_path), _arrow3604)
236
+
237
+ return singleton.Bind(file_exists_async(old_path), _arrow3605)
238
+
239
+ return singleton.Delay(_arrow3606)
240
+
241
+
242
+ def delete_file_or_directory_async(path: str) -> Async[None]:
243
+ def _arrow3609(__unit: None=None, path: Any=path) -> Async[None]:
244
+ def _arrow3608(_arg: bool) -> Async[None]:
245
+ def _arrow3607(_arg_1: bool) -> Async[None]:
246
+ if _arg:
247
+ return singleton.ReturnFrom(delete_file_async(path))
248
+
249
+ elif _arg_1:
250
+ return singleton.ReturnFrom(delete_directory_async(path))
251
+
252
+ else:
253
+ return singleton.Zero()
254
+
255
+
256
+ return singleton.Bind(directory_exists_async(path), _arrow3607)
257
+
258
+ return singleton.Bind(file_exists_async(path), _arrow3608)
259
+
260
+ return singleton.Delay(_arrow3609)
261
+
262
+
263
+ __all__ = ["directory_exists_async", "create_directory_async", "ensure_directory_async", "ensure_directory_of_file_async", "file_exists_async", "read_file_text_async", "read_file_binary_async", "read_file_xlsx_async", "move_file_async", "move_directory_async", "delete_file_async", "delete_directory_async", "write_file_text_async", "write_file_binary_async", "write_file_xlsx_async", "trim", "make_relative", "standardize_slashes", "get_sub_directories_async", "get_sub_files_async", "get_all_file_paths_async", "rename_file_or_directory_async", "delete_file_or_directory_async"]
264
+
File without changes
@@ -0,0 +1,438 @@
1
+ from __future__ import annotations
2
+ from collections.abc import Callable
3
+ from typing import (Any, TypeVar)
4
+ from ...fable_modules.fable_library.array_ import contains
5
+ from ...fable_modules.fable_library.list import (is_empty as is_empty_1, tail, FSharpList, head, append, singleton, empty)
6
+ from ...fable_modules.fable_library.map_util import (add_to_dict, try_get_value, remove_from_dict)
7
+ from ...fable_modules.fable_library.mutable_map import Dictionary
8
+ from ...fable_modules.fable_library.option import (some, value as value_1)
9
+ from ...fable_modules.fable_library.seq import (is_empty, iterate, map)
10
+ from ...fable_modules.fable_library.seq2 import group_by
11
+ from ...fable_modules.fable_library.types import (FSharpRef, Array)
12
+ from ...fable_modules.fable_library.util import (equals, structural_hash, IEnumerable_1, ignore, get_enumerator, dispose, min, compare_primitives)
13
+
14
+ _T = TypeVar("_T")
15
+
16
+ _U = TypeVar("_U")
17
+
18
+ _KEY_ = TypeVar("_KEY_")
19
+
20
+ _KEY = TypeVar("_KEY")
21
+
22
+ __B = TypeVar("__B")
23
+
24
+ __A = TypeVar("__A")
25
+
26
+ __C = TypeVar("__C")
27
+
28
+ __A_ = TypeVar("__A_")
29
+
30
+ _A = TypeVar("_A")
31
+
32
+ _A_ = TypeVar("_A_")
33
+
34
+ def Option_fromValueWithDefault(d: Any, v: Any) -> Any | None:
35
+ if equals(d, v):
36
+ return None
37
+
38
+ else:
39
+ return some(v)
40
+
41
+
42
+
43
+ def Option_mapDefault(d: Any, f: Callable[[_T], _T], o: Any | None=None) -> Any | None:
44
+ return Option_fromValueWithDefault(d, f(d) if (o is None) else f(value_1(o)))
45
+
46
+
47
+ def Option_mapOrDefault(d: Any | None, f: Callable[[_U], _T], o: Any | None=None) -> Any | None:
48
+ if o is None:
49
+ return d
50
+
51
+ else:
52
+ return some(f(value_1(o)))
53
+
54
+
55
+
56
+ def Option_fromSeq(v: Any | None=None) -> Any | None:
57
+ if is_empty(v):
58
+ return None
59
+
60
+ else:
61
+ return some(v)
62
+
63
+
64
+
65
+ def List_tryPickAndRemove(f: Callable[[_T], _U | None], lst: FSharpList[Any]) -> tuple[_U | None, FSharpList[_T]]:
66
+ def loop(new_list_mut: FSharpList[_T], remaining_list_mut: FSharpList[_T], f: Any=f, lst: Any=lst) -> tuple[_U | None, FSharpList[_T]]:
67
+ while True:
68
+ (new_list, remaining_list) = (new_list_mut, remaining_list_mut)
69
+ if not is_empty_1(remaining_list):
70
+ t: FSharpList[_T] = tail(remaining_list)
71
+ h: _T = head(remaining_list)
72
+ match_value: _U | None = f(h)
73
+ if match_value is None:
74
+ new_list_mut = append(new_list, singleton(h))
75
+ remaining_list_mut = t
76
+ continue
77
+
78
+ else:
79
+ return (some(value_1(match_value)), append(new_list, t))
80
+
81
+
82
+ else:
83
+ return (None, new_list)
84
+
85
+ break
86
+
87
+ return loop(empty(), lst)
88
+
89
+
90
+ def Dictionary_addOrUpdate(key: Any, value: Any, dict_1: Any) -> None:
91
+ if key in dict_1:
92
+ dict_1[key] = value
93
+
94
+ else:
95
+ add_to_dict(dict_1, key, value)
96
+
97
+
98
+
99
+ def Dictionary_ofSeq(s: IEnumerable_1[tuple[_KEY, _T]]) -> Any:
100
+ class ObjectExpr503:
101
+ @property
102
+ def Equals(self) -> Callable[[_KEY_, _KEY_], bool]:
103
+ return equals
104
+
105
+ @property
106
+ def GetHashCode(self) -> Callable[[_KEY_], int]:
107
+ return structural_hash
108
+
109
+ dict_1: Any = Dictionary([], ObjectExpr503())
110
+ def action(tupled_arg: tuple[_KEY, _T], s: Any=s) -> None:
111
+ add_to_dict(dict_1, tupled_arg[0], tupled_arg[1])
112
+
113
+ iterate(action, s)
114
+ return dict_1
115
+
116
+
117
+ def Dictionary_tryFind(key: Any, dict_1: Any) -> Any | None:
118
+ pattern_input: tuple[bool, _T]
119
+ out_arg: _T = None
120
+ def _arrow504(__unit: None=None, key: Any=key, dict_1: Any=dict_1) -> _T:
121
+ return out_arg
122
+
123
+ def _arrow505(v: _T | None=None, key: Any=key, dict_1: Any=dict_1) -> None:
124
+ nonlocal out_arg
125
+ out_arg = v
126
+
127
+ pattern_input = (try_get_value(dict_1, key, FSharpRef(_arrow504, _arrow505)), out_arg)
128
+ if pattern_input[0]:
129
+ return some(pattern_input[1])
130
+
131
+ else:
132
+ return None
133
+
134
+
135
+
136
+ def Dictionary_ofSeqWithMerge(merge: Callable[[_T, _T], _T], s: IEnumerable_1[tuple[_KEY, _T]]) -> Any:
137
+ class ObjectExpr506:
138
+ @property
139
+ def Equals(self) -> Callable[[_KEY_, _KEY_], bool]:
140
+ return equals
141
+
142
+ @property
143
+ def GetHashCode(self) -> Callable[[_KEY_], int]:
144
+ return structural_hash
145
+
146
+ dict_1: Any = Dictionary([], ObjectExpr506())
147
+ def action(tupled_arg: tuple[_KEY, _T], merge: Any=merge, s: Any=s) -> None:
148
+ k: _KEY = tupled_arg[0]
149
+ v: _T = tupled_arg[1]
150
+ match_value: _T | None = Dictionary_tryFind(k, dict_1)
151
+ if match_value is None:
152
+ add_to_dict(dict_1, k, v)
153
+
154
+ else:
155
+ v_0027: _T = value_1(match_value)
156
+ ignore(remove_from_dict(dict_1, k))
157
+ add_to_dict(dict_1, k, merge(v_0027, v))
158
+
159
+
160
+ iterate(action, s)
161
+ return dict_1
162
+
163
+
164
+ def ResizeArray_create(i: int, v: Any) -> Array[Any]:
165
+ a: Array[_T] = []
166
+ if i > 0:
167
+ for for_loop_var in range(1, i + 1, 1):
168
+ (a.append(v))
169
+
170
+ return a
171
+
172
+
173
+ def ResizeArray_singleton(a: Any | None=None) -> Array[Any]:
174
+ b: Array[_T] = []
175
+ (b.append(a))
176
+ return b
177
+
178
+
179
+ def ResizeArray_map(f: Callable[[__A], __B], a: Array[Any]) -> Array[Any]:
180
+ b: Array[__B] = []
181
+ enumerator: Any = get_enumerator(a)
182
+ try:
183
+ while enumerator.System_Collections_IEnumerator_MoveNext():
184
+ i: __A = enumerator.System_Collections_Generic_IEnumerator_1_get_Current()
185
+ (b.append(f(i)))
186
+
187
+ finally:
188
+ dispose(enumerator)
189
+
190
+ return b
191
+
192
+
193
+ def ResizeArray_choose(f: Callable[[__A], __B | None], a: Array[Any]) -> Array[Any]:
194
+ b: Array[__B] = []
195
+ enumerator: Any = get_enumerator(a)
196
+ try:
197
+ while enumerator.System_Collections_IEnumerator_MoveNext():
198
+ match_value: __B | None = f(enumerator.System_Collections_Generic_IEnumerator_1_get_Current())
199
+ if match_value is None:
200
+ pass
201
+
202
+ else:
203
+ x: __B = value_1(match_value)
204
+ (b.append(x))
205
+
206
+
207
+ finally:
208
+ dispose(enumerator)
209
+
210
+ return b
211
+
212
+
213
+ def ResizeArray_filter(f: Callable[[__A], bool], a: Array[Any]) -> Array[Any]:
214
+ b: Array[__A] = []
215
+ enumerator: Any = get_enumerator(a)
216
+ try:
217
+ while enumerator.System_Collections_IEnumerator_MoveNext():
218
+ i: __A = enumerator.System_Collections_Generic_IEnumerator_1_get_Current()
219
+ if f(i):
220
+ (b.append(i))
221
+
222
+
223
+ finally:
224
+ dispose(enumerator)
225
+
226
+ return b
227
+
228
+
229
+ def ResizeArray_fold(f: Callable[[__A, __B], __A], s: Any, a: Array[Any]) -> Any:
230
+ state: __A = s
231
+ enumerator: Any = get_enumerator(a)
232
+ try:
233
+ while enumerator.System_Collections_IEnumerator_MoveNext():
234
+ i: __B = enumerator.System_Collections_Generic_IEnumerator_1_get_Current()
235
+ state = f(state, i)
236
+
237
+ finally:
238
+ dispose(enumerator)
239
+
240
+ return state
241
+
242
+
243
+ def ResizeArray_foldBack(f: Callable[[__A, __B], __B], a: Array[Any], s: Any) -> Any:
244
+ state: __B = s
245
+ enumerator: Any = get_enumerator(a)
246
+ try:
247
+ while enumerator.System_Collections_IEnumerator_MoveNext():
248
+ i: __A = enumerator.System_Collections_Generic_IEnumerator_1_get_Current()
249
+ state = f(i, state)
250
+
251
+ finally:
252
+ dispose(enumerator)
253
+
254
+ return state
255
+
256
+
257
+ def ResizeArray_iter(f: Callable[[__A], None], a: Array[Any]) -> None:
258
+ enumerator: Any = get_enumerator(a)
259
+ try:
260
+ while enumerator.System_Collections_IEnumerator_MoveNext():
261
+ f(enumerator.System_Collections_Generic_IEnumerator_1_get_Current())
262
+
263
+ finally:
264
+ dispose(enumerator)
265
+
266
+
267
+
268
+ def ResizeArray_reduce(f: Callable[[__A, __A], __A], a: Array[Any]) -> Any:
269
+ if len(a) == 0:
270
+ raise Exception("ResizeArray.reduce: empty array")
271
+
272
+ elif len(a) == 1:
273
+ return a[0]
274
+
275
+ else:
276
+ a_5: Array[__A] = a
277
+ state: __A = a_5[0]
278
+ for i in range(1, (len(a_5) - 1) + 1, 1):
279
+ state = f(state, a_5[i])
280
+ return state
281
+
282
+
283
+
284
+ def ResizeArray_collect(f: Callable[[__A], __B], a: Array[Any]) -> Array[Any]:
285
+ b: Array[__C] = []
286
+ enumerator: Any = get_enumerator(a)
287
+ try:
288
+ while enumerator.System_Collections_IEnumerator_MoveNext():
289
+ with get_enumerator(f(enumerator.System_Collections_Generic_IEnumerator_1_get_Current())) as enumerator_1:
290
+ while enumerator_1.System_Collections_IEnumerator_MoveNext():
291
+ j: __C = enumerator_1.System_Collections_Generic_IEnumerator_1_get_Current()
292
+ (b.append(j))
293
+
294
+ finally:
295
+ dispose(enumerator)
296
+
297
+ return b
298
+
299
+
300
+ def ResizeArray_distinct(a: Array[Any]) -> Array[Any]:
301
+ b: Array[__A] = []
302
+ enumerator: Any = get_enumerator(a)
303
+ try:
304
+ while enumerator.System_Collections_IEnumerator_MoveNext():
305
+ i: __A = enumerator.System_Collections_Generic_IEnumerator_1_get_Current()
306
+ class ObjectExpr507:
307
+ @property
308
+ def Equals(self) -> Callable[[__A_, __A_], bool]:
309
+ return equals
310
+
311
+ @property
312
+ def GetHashCode(self) -> Callable[[__A_], int]:
313
+ return structural_hash
314
+
315
+ if not contains(i, b, ObjectExpr507()):
316
+ (b.append(i))
317
+
318
+
319
+ finally:
320
+ dispose(enumerator)
321
+
322
+ return b
323
+
324
+
325
+ def ResizeArray_isEmpty(a: Array[Any]) -> bool:
326
+ return len(a) == 0
327
+
328
+
329
+ def ResizeArray_append(a: Array[Any], b: Array[Any]) -> Array[Any]:
330
+ c: Array[__A] = []
331
+ enumerator: Any = get_enumerator(a)
332
+ try:
333
+ while enumerator.System_Collections_IEnumerator_MoveNext():
334
+ i: __A = enumerator.System_Collections_Generic_IEnumerator_1_get_Current()
335
+ (c.append(i))
336
+
337
+ finally:
338
+ dispose(enumerator)
339
+
340
+ enumerator_1: Any = get_enumerator(b)
341
+ try:
342
+ while enumerator_1.System_Collections_IEnumerator_MoveNext():
343
+ i_1: __A = enumerator_1.System_Collections_Generic_IEnumerator_1_get_Current()
344
+ (c.append(i_1))
345
+
346
+ finally:
347
+ dispose(enumerator_1)
348
+
349
+ return c
350
+
351
+
352
+ def ResizeArray_appendSingleton(b: Any, a: Array[Any]) -> Array[Any]:
353
+ c: Array[_T] = []
354
+ enumerator: Any = get_enumerator(a)
355
+ try:
356
+ while enumerator.System_Collections_IEnumerator_MoveNext():
357
+ i: _T = enumerator.System_Collections_Generic_IEnumerator_1_get_Current()
358
+ (c.append(i))
359
+
360
+ finally:
361
+ dispose(enumerator)
362
+
363
+ (c.append(b))
364
+ return c
365
+
366
+
367
+ def ResizeArray_groupBy(f: Callable[[_T], _A], a: Array[Any]) -> Array[tuple[_A, Array[_T]]]:
368
+ def mapping(tupled_arg: tuple[_A, IEnumerable_1[_T]], f: Any=f, a: Any=a) -> tuple[_A, Array[_T]]:
369
+ return (tupled_arg[0], list(tupled_arg[1]))
370
+
371
+ class ObjectExpr508:
372
+ @property
373
+ def Equals(self) -> Callable[[_A_, _A_], bool]:
374
+ return equals
375
+
376
+ @property
377
+ def GetHashCode(self) -> Callable[[_A_], int]:
378
+ return structural_hash
379
+
380
+ return list(map(mapping, group_by(f, a, ObjectExpr508())))
381
+
382
+
383
+ def ResizeArray_tryPick(f: Callable[[_T], __A | None], a: Array[Any]) -> Any | None:
384
+ def loop(i_mut: int, f: Any=f, a: Any=a) -> __A | None:
385
+ while True:
386
+ (i,) = (i_mut,)
387
+ if i < len(a):
388
+ match_value: __A | None = f(a[i])
389
+ if match_value is None:
390
+ i_mut = i + 1
391
+ continue
392
+
393
+ else:
394
+ return some(value_1(match_value))
395
+
396
+
397
+ else:
398
+ return None
399
+
400
+ break
401
+
402
+ return loop(0)
403
+
404
+
405
+ def ResizeArray_zip(a: Array[Any], b: Array[Any]) -> Array[tuple[_T, _U]]:
406
+ c: Array[tuple[_T, _U]] = []
407
+ def _arrow509(x: int, y: int, a: Any=a, b: Any=b) -> int:
408
+ return compare_primitives(x, y)
409
+
410
+ n: int = min(_arrow509, len(a), len(b)) or 0
411
+ for i in range(0, (n - 1) + 1, 1):
412
+ (c.append((a[i], b[i])))
413
+ return c
414
+
415
+
416
+ def ResizeArray_tryFind(f: Callable[[_T], bool], a: Array[Any]) -> Any | None:
417
+ def loop(i_mut: int, f: Any=f, a: Any=a) -> _T | None:
418
+ while True:
419
+ (i,) = (i_mut,)
420
+ if i < len(a):
421
+ if f(a[i]):
422
+ return some(a[i])
423
+
424
+ else:
425
+ i_mut = i + 1
426
+ continue
427
+
428
+
429
+ else:
430
+ return None
431
+
432
+ break
433
+
434
+ return loop(0)
435
+
436
+
437
+ __all__ = ["Option_fromValueWithDefault", "Option_mapDefault", "Option_mapOrDefault", "Option_fromSeq", "List_tryPickAndRemove", "Dictionary_addOrUpdate", "Dictionary_ofSeq", "Dictionary_tryFind", "Dictionary_ofSeqWithMerge", "ResizeArray_create", "ResizeArray_singleton", "ResizeArray_map", "ResizeArray_choose", "ResizeArray_filter", "ResizeArray_fold", "ResizeArray_foldBack", "ResizeArray_iter", "ResizeArray_reduce", "ResizeArray_collect", "ResizeArray_distinct", "ResizeArray_isEmpty", "ResizeArray_append", "ResizeArray_appendSingleton", "ResizeArray_groupBy", "ResizeArray_tryPick", "ResizeArray_zip", "ResizeArray_tryFind"]
438
+