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,148 @@
1
+ from __future__ import annotations
2
+
3
+ import re
4
+ from collections.abc import Iterable
5
+ from enum import IntEnum
6
+ from re import Match
7
+ from typing import (
8
+ TYPE_CHECKING,
9
+ Any,
10
+ NoReturn,
11
+ TypeVar,
12
+ )
13
+
14
+ from .types import FSharpRef, Union
15
+ from .util import Array
16
+
17
+
18
+ _K = TypeVar("_K")
19
+ _V = TypeVar("_V")
20
+
21
+
22
+ class CaseRules(IntEnum):
23
+ Ignore = 0
24
+ LowerFirst = 1
25
+ SnakeCase = 2
26
+ SnakeCaseAllCaps = 3
27
+ KebabCase = 4
28
+
29
+
30
+ def dashify(string: str, separator: str) -> str:
31
+ def match(m: Match[str]) -> str:
32
+ s = m.string
33
+ if len(s) == 1:
34
+ return s.lower()
35
+ else:
36
+ return s[0] + separator + s[1].lower()
37
+
38
+ return re.sub(r"[a-z]?[A-Z]", match, string)
39
+
40
+
41
+ def change_case(string: str, case_rule: CaseRules) -> str:
42
+ if case_rule == CaseRules.LowerFirst:
43
+ return string[0].lower() + string[1:]
44
+
45
+ if case_rule == CaseRules.SnakeCase:
46
+ return dashify(string, "_")
47
+ if case_rule == CaseRules.SnakeCaseAllCaps:
48
+ return dashify(string, "_").upper()
49
+ if case_rule == CaseRules.KebabCase:
50
+ return dashify(string, "-")
51
+
52
+ return string
53
+
54
+
55
+ if TYPE_CHECKING:
56
+
57
+ class FSharpMap(dict[_K, _V]): ...
58
+
59
+ else:
60
+ from .map import FSharpMap
61
+
62
+
63
+ def add_to_set(v: _V, st: set[_V]) -> bool:
64
+ if v in st:
65
+ return False
66
+
67
+ st.add(v)
68
+ return True
69
+
70
+
71
+ def add_to_dict(di: dict[_K, _V], k: _K, v: _V) -> None:
72
+ if k in di:
73
+ raise Exception("An item with the same key has already been added. Key: " + str(k))
74
+
75
+ di[k] = v
76
+
77
+
78
+ def remove_from_dict(di: dict[_K, Any], k: _K) -> bool:
79
+ if k in di:
80
+ del di[k]
81
+ return True
82
+
83
+ return False
84
+
85
+
86
+ def try_get_value(map: FSharpMap[_K, _V], key: _K, default_value: FSharpRef[_V]) -> bool:
87
+ if key in map.keys():
88
+ default_value.contents = map[key]
89
+ return True
90
+
91
+ return False
92
+
93
+
94
+ def get_item_from_dict(map: dict[_K, _V], key: _K) -> _V:
95
+ if key in map:
96
+ return map[key]
97
+ else:
98
+ raise Exception(f"The given key '{key}' was not present in the dictionary.")
99
+
100
+
101
+ def contains_value(v: _V, map: dict[Any, _V]) -> bool:
102
+ return v in map.values()
103
+
104
+
105
+ def key_value_list(fields: Iterable[Any], case_rule: CaseRules = CaseRules.Ignore):
106
+ obj: dict[str, Any] = {}
107
+ defined_case_rule = case_rule
108
+
109
+ def fail(kvPair: Any) -> NoReturn:
110
+ raise Exception("Cannot infer key and value of " + str(kvPair))
111
+
112
+ def assign(key: str, case_rule: CaseRules, value: Any):
113
+ key = change_case(key, case_rule)
114
+ obj[key] = value
115
+
116
+ for kv_pair in fields:
117
+ case_rule = CaseRules.Ignore
118
+ if kv_pair is None:
119
+ fail(kv_pair)
120
+
121
+ # Deflate unions and use the defined case rule
122
+ if isinstance(kv_pair, Union):
123
+ name = kv_pair.cases()[kv_pair.tag]
124
+ kv_pair = name if len(kv_pair.fields) == 0 else [name, *kv_pair.fields]
125
+ case_rule = defined_case_rule
126
+
127
+ if isinstance(kv_pair, Array):
128
+ length = len(kv_pair)
129
+ if length == 0:
130
+ fail(kv_pair)
131
+
132
+ elif length == 1:
133
+ assign(kv_pair[0], case_rule, True)
134
+ break
135
+
136
+ elif length == 2:
137
+ value = kv_pair[1]
138
+ assign(kv_pair[0], case_rule, value)
139
+ break
140
+
141
+ assign(kv_pair[0], case_rule, kv_pair[1:])
142
+
143
+ elif isinstance(kv_pair, str):
144
+ assign(kv_pair, case_rule, True)
145
+ else:
146
+ fail(kv_pair)
147
+
148
+ return obj
@@ -0,0 +1,397 @@
1
+ from __future__ import annotations
2
+
3
+ from collections.abc import Callable
4
+ from typing import Any, Generic, TypeVar
5
+
6
+ from .map_util import get_item_from_dict, try_get_value
7
+ from .reflection import TypeInfo, class_type
8
+ from .resize_array import find_index
9
+ from .seq import concat, delay, iterate, iterate_indexed, map, to_array
10
+ from .string_ import format
11
+ from .types import Array, FSharpRef
12
+ from .util import (
13
+ ICollection,
14
+ IEnumerable_1,
15
+ IEnumerator,
16
+ IEqualityComparer_1,
17
+ dispose,
18
+ equals,
19
+ get_enumerator,
20
+ ignore,
21
+ to_iterator,
22
+ )
23
+
24
+
25
+ _KEY = TypeVar("_KEY")
26
+
27
+ _VALUE = TypeVar("_VALUE")
28
+
29
+
30
+ def _expr30(gen0: TypeInfo, gen1: TypeInfo) -> TypeInfo:
31
+ return class_type("Fable.Collections.Dictionary", [gen0, gen1], Dictionary)
32
+
33
+
34
+ class Dictionary(Generic[_KEY, _VALUE]):
35
+ def __init__(self, pairs: IEnumerable_1[Any], comparer: IEqualityComparer_1[Any]) -> None:
36
+ this: FSharpRef[Dictionary[_KEY, _VALUE]] = FSharpRef(None)
37
+ self.comparer: IEqualityComparer_1[Any] = comparer
38
+ this.contents = self
39
+ self.hash_map: Any = dict([])
40
+ self.init_00409: int = 1
41
+ with get_enumerator(pairs) as enumerator:
42
+ while enumerator.System_Collections_IEnumerator_MoveNext():
43
+ pair: Any = enumerator.System_Collections_Generic_IEnumerator_1_get_Current()
44
+ Dictionary__Add_5BDDA1(this.contents, pair[0], pair[1])
45
+
46
+ @property
47
+ def Symbol_toStringTag(self, __unit: None = None) -> str:
48
+ return "Dictionary"
49
+
50
+ def to_json(self, __unit: None = None) -> Any:
51
+ this: Dictionary[_KEY, _VALUE] = self
52
+ return list(this)
53
+
54
+ def System_Collections_IEnumerable_GetEnumerator(self, __unit: None = None) -> IEnumerator[Any]:
55
+ this: Dictionary[_KEY, _VALUE] = self
56
+ return get_enumerator(this)
57
+
58
+ def GetEnumerator(self, __unit: None = None) -> IEnumerator[Any]:
59
+ this: Dictionary[_KEY, _VALUE] = self
60
+ return get_enumerator(concat(this.hash_map.values()))
61
+
62
+ def __iter__(self) -> IEnumerator[Any]:
63
+ return to_iterator(self.GetEnumerator())
64
+
65
+ def System_Collections_Generic_ICollection_1_Add2B595(self, item: Any) -> None:
66
+ this: Dictionary[_KEY, _VALUE] = self
67
+ Dictionary__Add_5BDDA1(this, item[0], item[1])
68
+
69
+ def System_Collections_Generic_ICollection_1_Clear(self, __unit: None = None) -> None:
70
+ this: Dictionary[_KEY, _VALUE] = self
71
+ Dictionary__Clear(this)
72
+
73
+ def System_Collections_Generic_ICollection_1_Contains2B595(self, item: Any) -> bool:
74
+ this: Dictionary[_KEY, _VALUE] = self
75
+ match_value: Any | None = Dictionary__TryFind_2B595(this, item[0])
76
+ (pattern_matching_result,) = (None,)
77
+ if match_value is not None:
78
+ if equals(match_value[1], item[1]):
79
+ pattern_matching_result = 0
80
+
81
+ else:
82
+ pattern_matching_result = 1
83
+
84
+ else:
85
+ pattern_matching_result = 1
86
+
87
+ if pattern_matching_result == 0:
88
+ return True
89
+
90
+ elif pattern_matching_result == 1:
91
+ return False
92
+
93
+ def System_Collections_Generic_ICollection_1_CopyToZ3B4C077E(self, array: Array[Any], array_index: int) -> None:
94
+ this: Dictionary[_KEY, _VALUE] = self
95
+
96
+ def action(i: int, e: Any) -> None:
97
+ array[array_index + i] = e
98
+
99
+ iterate_indexed(action, this)
100
+
101
+ def __len__(self, __unit: None = None) -> int:
102
+ this: Dictionary[_KEY, _VALUE] = self
103
+ return Dictionary__get_Count(this)
104
+
105
+ def System_Collections_Generic_ICollection_1_get_IsReadOnly(self, __unit: None = None) -> bool:
106
+ return False
107
+
108
+ def System_Collections_Generic_ICollection_1_Remove2B595(self, item: Any) -> bool:
109
+ this: Dictionary[_KEY, _VALUE] = self
110
+ match_value: Any | None = Dictionary__TryFind_2B595(this, item[0])
111
+ if match_value is not None:
112
+ if equals(match_value[1], item[1]):
113
+ ignore(Dictionary__Remove_2B595(this, item[0]))
114
+
115
+ return True
116
+
117
+ else:
118
+ return False
119
+
120
+ def System_Collections_Generic_IDictionary_2_Add5BDDA1(self, key: _KEY, value: _VALUE) -> None:
121
+ this: Dictionary[_KEY, _VALUE] = self
122
+ Dictionary__Add_5BDDA1(this, key, value)
123
+
124
+ def System_Collections_Generic_IDictionary_2_ContainsKey2B595(self, key: _KEY | None = None) -> bool:
125
+ this: Dictionary[_KEY, _VALUE] = self
126
+ return Dictionary__ContainsKey_2B595(this, key)
127
+
128
+ def System_Collections_Generic_IDictionary_2_get_Item2B595(self, key: _KEY | None = None) -> _VALUE:
129
+ this: Dictionary[_KEY, _VALUE] = self
130
+ return Dictionary__get_Item_2B595(this, key)
131
+
132
+ def System_Collections_Generic_IDictionary_2_set_Item5BDDA1(self, key: _KEY, v: _VALUE) -> None:
133
+ this: Dictionary[_KEY, _VALUE] = self
134
+ Dictionary__set_Item_5BDDA1(this, key, v)
135
+
136
+ def System_Collections_Generic_IDictionary_2_get_Keys(self, __unit: None = None) -> ICollection[_KEY]:
137
+ this: Dictionary[_KEY, _VALUE] = self
138
+
139
+ def _arrow27(__unit: None = None) -> IEnumerable_1[_KEY]:
140
+ def _arrow26(pair: Any) -> _KEY:
141
+ return pair[0]
142
+
143
+ return map(_arrow26, this)
144
+
145
+ return to_array(delay(_arrow27))
146
+
147
+ def System_Collections_Generic_IDictionary_2_Remove2B595(self, key: _KEY | None = None) -> bool:
148
+ this: Dictionary[_KEY, _VALUE] = self
149
+ return Dictionary__Remove_2B595(this, key)
150
+
151
+ def System_Collections_Generic_IDictionary_2_TryGetValue6DC89625(self, key: _KEY, value: FSharpRef[_VALUE]) -> bool:
152
+ this: Dictionary[_KEY, _VALUE] = self
153
+ match_value: Any | None = Dictionary__TryFind_2B595(this, key)
154
+ if match_value is not None:
155
+ pair: Any = match_value
156
+ value.contents = pair[1]
157
+ return True
158
+
159
+ else:
160
+ return False
161
+
162
+ def System_Collections_Generic_IDictionary_2_get_Values(self, __unit: None = None) -> ICollection[_VALUE]:
163
+ this: Dictionary[_KEY, _VALUE] = self
164
+
165
+ def _arrow29(__unit: None = None) -> IEnumerable_1[_VALUE]:
166
+ def _arrow28(pair: Any) -> _VALUE:
167
+ return pair[1]
168
+
169
+ return map(_arrow28, this)
170
+
171
+ return to_array(delay(_arrow29))
172
+
173
+ @property
174
+ def size(self, __unit: None = None) -> int:
175
+ this: Dictionary[_KEY, _VALUE] = self
176
+ return Dictionary__get_Count(this)
177
+
178
+ def clear(self, __unit: None = None) -> None:
179
+ this: Dictionary[_KEY, _VALUE] = self
180
+ Dictionary__Clear(this)
181
+
182
+ def __delitem__(self, k: _KEY | None = None) -> bool:
183
+ this: Dictionary[_KEY, _VALUE] = self
184
+ return Dictionary__Remove_2B595(this, k)
185
+
186
+ def entries(self, __unit: None = None) -> IEnumerable_1[tuple[_KEY, _VALUE]]:
187
+ this: Dictionary[_KEY, _VALUE] = self
188
+
189
+ def mapping(p: Any) -> tuple[_KEY, _VALUE]:
190
+ return (p[0], p[1])
191
+
192
+ return map(mapping, this)
193
+
194
+ def __getitem__(self, k: _KEY | None = None) -> _VALUE:
195
+ this: Dictionary[_KEY, _VALUE] = self
196
+ return Dictionary__get_Item_2B595(this, k)
197
+
198
+ def __contains__(self, k: _KEY | None = None) -> bool:
199
+ this: Dictionary[_KEY, _VALUE] = self
200
+ return Dictionary__ContainsKey_2B595(this, k)
201
+
202
+ def keys(self, __unit: None = None) -> IEnumerable_1[_KEY]:
203
+ this: Dictionary[_KEY, _VALUE] = self
204
+
205
+ def mapping(p: Any) -> _KEY:
206
+ return p[0]
207
+
208
+ return map(mapping, this)
209
+
210
+ def __setitem__(self, k: _KEY, v: _VALUE) -> Map_2[_KEY, _VALUE]:
211
+ this: Dictionary[_KEY, _VALUE] = self
212
+ Dictionary__set_Item_5BDDA1(this, k, v)
213
+ return this
214
+
215
+ def values(self, __unit: None = None) -> IEnumerable_1[_VALUE]:
216
+ this: Dictionary[_KEY, _VALUE] = self
217
+
218
+ def mapping(p: Any) -> _VALUE:
219
+ return p[1]
220
+
221
+ return map(mapping, this)
222
+
223
+ def for_each(self, f: Callable[[_VALUE, _KEY, Map_2[_KEY, _VALUE]], None], this_arg: Any | None = None) -> None:
224
+ this: Dictionary[_KEY, _VALUE] = self
225
+
226
+ def action(p: Any) -> None:
227
+ f(p[1], p[0], this)
228
+
229
+ iterate(action, this)
230
+
231
+
232
+ Dictionary_reflection = _expr30
233
+
234
+
235
+ def Dictionary__ctor_6623D9B3(
236
+ pairs: IEnumerable_1[Any], comparer: IEqualityComparer_1[Any]
237
+ ) -> Dictionary[_KEY, _VALUE]:
238
+ return Dictionary(pairs, comparer)
239
+
240
+
241
+ def Dictionary__TryFindIndex_2B595(this: Dictionary[Any, Any], k: Any) -> tuple[bool, int, int]:
242
+ h: int = this.comparer.GetHashCode(k) or 0
243
+ match_value: tuple[bool, Array[Any]]
244
+ out_arg: Array[Any] = None
245
+
246
+ def _arrow31(__unit: None = None, this: Any = this, k: Any = k) -> Array[Any]:
247
+ return out_arg
248
+
249
+ def _arrow32(v: Array[Any], this: Any = this, k: Any = k) -> None:
250
+ nonlocal out_arg
251
+ out_arg = v
252
+
253
+ match_value = (try_get_value(this.hash_map, h, FSharpRef(_arrow31, _arrow32)), out_arg)
254
+ if match_value[0]:
255
+
256
+ def _arrow33(pair: Any, this: Any = this, k: Any = k) -> bool:
257
+ return this.comparer.Equals(k, pair[0])
258
+
259
+ return (True, h, find_index(_arrow33, match_value[1]))
260
+
261
+ else:
262
+ return (False, h, -1)
263
+
264
+
265
+ def Dictionary__TryFind_2B595(this: Dictionary[Any, Any], k: Any) -> Any | None:
266
+ match_value: tuple[bool, int, int] = Dictionary__TryFindIndex_2B595(this, k)
267
+ (pattern_matching_result,) = (None,)
268
+ if match_value[0]:
269
+ if match_value[2] > -1:
270
+ pattern_matching_result = 0
271
+
272
+ else:
273
+ pattern_matching_result = 1
274
+
275
+ else:
276
+ pattern_matching_result = 1
277
+
278
+ if pattern_matching_result == 0:
279
+ return get_item_from_dict(this.hash_map, match_value[1])[match_value[2]]
280
+
281
+ elif pattern_matching_result == 1:
282
+ return None
283
+
284
+
285
+ def Dictionary__get_Comparer(this: Dictionary[Any, Any]) -> IEqualityComparer_1[Any]:
286
+ return this.comparer
287
+
288
+
289
+ def Dictionary__Clear(this: Dictionary[Any, Any]) -> None:
290
+ this.hash_map.clear()
291
+
292
+
293
+ def Dictionary__get_Count(this: Dictionary[Any, Any]) -> int:
294
+ count: int = 0
295
+ enumerator: Any = get_enumerator(this.hash_map.values())
296
+ try:
297
+ while enumerator.System_Collections_IEnumerator_MoveNext():
298
+ pairs: Array[Any] = enumerator.System_Collections_Generic_IEnumerator_1_get_Current()
299
+ count = (count + len(pairs)) or 0
300
+
301
+ finally:
302
+ dispose(enumerator)
303
+
304
+ return count
305
+
306
+
307
+ def Dictionary__get_Item_2B595(this: Dictionary[Any, Any], k: Any) -> Any:
308
+ match_value: Any | None = Dictionary__TryFind_2B595(this, k)
309
+ if match_value is not None:
310
+ return match_value[1]
311
+
312
+ else:
313
+ raise Exception("The item was not found in collection")
314
+
315
+
316
+ def Dictionary__set_Item_5BDDA1(this: Dictionary[Any, Any], k: Any, v: Any) -> None:
317
+ match_value: tuple[bool, int, int] = Dictionary__TryFindIndex_2B595(this, k)
318
+ if match_value[0]:
319
+ if match_value[2] > -1:
320
+ get_item_from_dict(this.hash_map, match_value[1])[match_value[2]] = (k, v)
321
+
322
+ else:
323
+ value: None = get_item_from_dict(this.hash_map, match_value[1]).append((k, v))
324
+ ignore(None)
325
+
326
+ else:
327
+ this.hash_map[match_value[1]] = [(k, v)]
328
+
329
+
330
+ def Dictionary__Add_5BDDA1(this: Dictionary[Any, Any], k: Any, v: Any) -> None:
331
+ match_value: tuple[bool, int, int] = Dictionary__TryFindIndex_2B595(this, k)
332
+ if match_value[0]:
333
+ if match_value[2] > -1:
334
+ raise Exception(format("An item with the same key has already been added. Key: {0}", k))
335
+
336
+ else:
337
+ value: None = get_item_from_dict(this.hash_map, match_value[1]).append((k, v))
338
+ ignore(None)
339
+
340
+ else:
341
+ this.hash_map[match_value[1]] = [(k, v)]
342
+
343
+
344
+ def Dictionary__ContainsKey_2B595(this: Dictionary[Any, Any], k: Any) -> bool:
345
+ match_value: tuple[bool, int, int] = Dictionary__TryFindIndex_2B595(this, k)
346
+ (pattern_matching_result,) = (None,)
347
+ if match_value[0]:
348
+ if match_value[2] > -1:
349
+ pattern_matching_result = 0
350
+
351
+ else:
352
+ pattern_matching_result = 1
353
+
354
+ else:
355
+ pattern_matching_result = 1
356
+
357
+ if pattern_matching_result == 0:
358
+ return True
359
+
360
+ elif pattern_matching_result == 1:
361
+ return False
362
+
363
+
364
+ def Dictionary__Remove_2B595(this: Dictionary[Any, Any], k: Any) -> bool:
365
+ match_value: tuple[bool, int, int] = Dictionary__TryFindIndex_2B595(this, k)
366
+ (pattern_matching_result,) = (None,)
367
+ if match_value[0]:
368
+ if match_value[2] > -1:
369
+ pattern_matching_result = 0
370
+
371
+ else:
372
+ pattern_matching_result = 1
373
+
374
+ else:
375
+ pattern_matching_result = 1
376
+
377
+ if pattern_matching_result == 0:
378
+ get_item_from_dict(this.hash_map, match_value[1]).pop(match_value[2])
379
+ return True
380
+
381
+ elif pattern_matching_result == 1:
382
+ return False
383
+
384
+
385
+ __all__ = [
386
+ "Dictionary_reflection",
387
+ "Dictionary__TryFindIndex_2B595",
388
+ "Dictionary__TryFind_2B595",
389
+ "Dictionary__get_Comparer",
390
+ "Dictionary__Clear",
391
+ "Dictionary__get_Count",
392
+ "Dictionary__get_Item_2B595",
393
+ "Dictionary__set_Item_5BDDA1",
394
+ "Dictionary__Add_5BDDA1",
395
+ "Dictionary__ContainsKey_2B595",
396
+ "Dictionary__Remove_2B595",
397
+ ]