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,1229 @@
1
+ from __future__ import annotations
2
+ from collections.abc import Callable
3
+ from dataclasses import dataclass
4
+ from typing import (Any, TypeVar)
5
+ from ..fable_library.list import (FSharpList, of_array, singleton as singleton_1, empty as empty_1, fold, map)
6
+ from ..fable_library.option import (value as value_2, map as map_1, default_arg)
7
+ from ..fable_library.reflection import (TypeInfo, union_type, string_type, list_type, option_type, record_type, bool_type, class_type)
8
+ from ..fable_library.seq import (to_list, delay, append, singleton, collect, empty)
9
+ from ..fable_library.string_ import (join, to_text, printf)
10
+ from ..fable_library.types import (Array, Union, Record, to_string, seq_to_string)
11
+ from ..fable_library.util import IEnumerable_1
12
+ from .yaml import (Yaml_line, Yaml_level, Yaml_AST, Yaml_root, Yaml_write)
13
+
14
+ __A = TypeVar("__A")
15
+
16
+ def YamlHelpers_writeYamlASTBasicWrapper(opener: str, closer: str, children: IEnumerable_1[Any]) -> FSharpList[Yaml_AST]:
17
+ def _arrow47(__unit: None=None, opener: Any=opener, closer: Any=closer, children: Any=children) -> IEnumerable_1[Yaml_AST]:
18
+ def _arrow46(__unit: None=None) -> IEnumerable_1[Yaml_AST]:
19
+ def _arrow44(__unit: None=None) -> IEnumerable_1[Yaml_AST]:
20
+ def _arrow43(child: __A | None=None) -> IEnumerable_1[Yaml_AST]:
21
+ return child.ToYamlAst()
22
+
23
+ return collect(_arrow43, children)
24
+
25
+ def _arrow45(__unit: None=None) -> IEnumerable_1[Yaml_AST]:
26
+ return singleton(Yaml_line(closer)) if (closer != "") else empty()
27
+
28
+ return append(singleton(Yaml_level(to_list(delay(_arrow44)))), delay(_arrow45))
29
+
30
+ return append(singleton(Yaml_line(opener)), delay(_arrow46))
31
+
32
+ return to_list(delay(_arrow47))
33
+
34
+
35
+ def YamlHelpers_writeYamlDiagramRoot(opener: str, children: IEnumerable_1[Any]) -> Yaml_AST:
36
+ def _arrow49(__unit: None=None, opener: Any=opener, children: Any=children) -> IEnumerable_1[Yaml_AST]:
37
+ def _arrow48(child: __A | None=None) -> IEnumerable_1[Yaml_AST]:
38
+ return child.ToYamlAst()
39
+
40
+ return collect(_arrow48, children)
41
+
42
+ return Yaml_root(of_array([Yaml_line(opener), Yaml_level(to_list(delay(_arrow49)))]))
43
+
44
+
45
+ def _expr50() -> TypeInfo:
46
+ return union_type("Siren.NotePosition", [], NotePosition, lambda: [[], [], []])
47
+
48
+
49
+ class NotePosition(Union):
50
+ def __init__(self, tag: int, *fields: Any) -> None:
51
+ super().__init__()
52
+ self.tag: int = tag or 0
53
+ self.fields: Array[Any] = list(fields)
54
+
55
+ @staticmethod
56
+ def cases() -> list[str]:
57
+ return ["Over", "RightOf", "LeftOf"]
58
+
59
+
60
+ NotePosition_reflection = _expr50
61
+
62
+ def _expr51() -> TypeInfo:
63
+ return union_type("Siren.Direction", [], Direction, lambda: [[], [], [], [], [], [("Item", string_type)]])
64
+
65
+
66
+ class Direction(Union):
67
+ def __init__(self, tag: int, *fields: Any) -> None:
68
+ super().__init__()
69
+ self.tag: int = tag or 0
70
+ self.fields: Array[Any] = list(fields)
71
+
72
+ @staticmethod
73
+ def cases() -> list[str]:
74
+ return ["TB", "TD", "BT", "RL", "LR", "Custom"]
75
+
76
+ def __str__(self, __unit: None=None) -> str:
77
+ this: Direction = self
78
+ if this.tag == 1:
79
+ return "TD"
80
+
81
+ elif this.tag == 2:
82
+ return "BT"
83
+
84
+ elif this.tag == 3:
85
+ return "RL"
86
+
87
+ elif this.tag == 4:
88
+ return "LR"
89
+
90
+ elif this.tag == 5:
91
+ return this.fields[0]
92
+
93
+ else:
94
+ return "TB"
95
+
96
+
97
+
98
+ Direction_reflection = _expr51
99
+
100
+ def _expr52() -> TypeInfo:
101
+ return union_type("Siren.FlowchartNodeTypes", [], FlowchartNodeTypes, lambda: [[], [], [], [], [], [], [], [], [], [], [], [], [], []])
102
+
103
+
104
+ class FlowchartNodeTypes(Union):
105
+ def __init__(self, tag: int, *fields: Any) -> None:
106
+ super().__init__()
107
+ self.tag: int = tag or 0
108
+ self.fields: Array[Any] = list(fields)
109
+
110
+ @staticmethod
111
+ def cases() -> list[str]:
112
+ return ["Default", "Round", "Stadium", "Subroutine", "Cylindrical", "Circle", "Asymmetric", "Rhombus", "Hexagon", "Parallelogram", "ParallelogramAlt", "Trapezoid", "TrapezoidAlt", "DoubleCircle"]
113
+
114
+
115
+ FlowchartNodeTypes_reflection = _expr52
116
+
117
+ def _expr53() -> TypeInfo:
118
+ return union_type("Siren.FlowchartLinkTypes", [], FlowchartLinkTypes, lambda: [[], [], [], [], [], [], [], [], [], [], [], []])
119
+
120
+
121
+ class FlowchartLinkTypes(Union):
122
+ def __init__(self, tag: int, *fields: Any) -> None:
123
+ super().__init__()
124
+ self.tag: int = tag or 0
125
+ self.fields: Array[Any] = list(fields)
126
+
127
+ @staticmethod
128
+ def cases() -> list[str]:
129
+ return ["Arrow", "Open", "Dotted", "DottedArrow", "Thick", "ThickArrow", "Invisible", "CircleEdge", "CrossEdge", "ArrowDouble", "CircleDouble", "CrossDouble"]
130
+
131
+
132
+ FlowchartLinkTypes_reflection = _expr53
133
+
134
+ def _expr54() -> TypeInfo:
135
+ return union_type("Siren.SequenceMessageTypes", [], SequenceMessageTypes, lambda: [[], [], [], [], [], [], [], []])
136
+
137
+
138
+ class SequenceMessageTypes(Union):
139
+ def __init__(self, tag: int, *fields: Any) -> None:
140
+ super().__init__()
141
+ self.tag: int = tag or 0
142
+ self.fields: Array[Any] = list(fields)
143
+
144
+ @staticmethod
145
+ def cases() -> list[str]:
146
+ return ["Solid", "Dotted", "Arrow", "DottedArrow", "CrossEdge", "DottedCrossEdge", "OpenArrow", "DottedOpenArrow"]
147
+
148
+
149
+ SequenceMessageTypes_reflection = _expr54
150
+
151
+ def _expr55() -> TypeInfo:
152
+ return union_type("Siren.ClassMemberVisibility", [], ClassMemberVisibility, lambda: [[], [], [], [], [("Item", string_type)]])
153
+
154
+
155
+ class ClassMemberVisibility(Union):
156
+ def __init__(self, tag: int, *fields: Any) -> None:
157
+ super().__init__()
158
+ self.tag: int = tag or 0
159
+ self.fields: Array[Any] = list(fields)
160
+
161
+ @staticmethod
162
+ def cases() -> list[str]:
163
+ return ["Public", "Private", "Protected", "PackageInternal", "Custom"]
164
+
165
+
166
+ ClassMemberVisibility_reflection = _expr55
167
+
168
+ def _expr56() -> TypeInfo:
169
+ return union_type("Siren.ClassMemberClassifier", [], ClassMemberClassifier, lambda: [[], [], [("Item", string_type)]])
170
+
171
+
172
+ class ClassMemberClassifier(Union):
173
+ def __init__(self, tag: int, *fields: Any) -> None:
174
+ super().__init__()
175
+ self.tag: int = tag or 0
176
+ self.fields: Array[Any] = list(fields)
177
+
178
+ @staticmethod
179
+ def cases() -> list[str]:
180
+ return ["Abstract", "Static", "Custom"]
181
+
182
+
183
+ ClassMemberClassifier_reflection = _expr56
184
+
185
+ def _expr57() -> TypeInfo:
186
+ return union_type("Siren.ClassRelationshipDirection", [], ClassRelationshipDirection, lambda: [[], [], []])
187
+
188
+
189
+ class ClassRelationshipDirection(Union):
190
+ def __init__(self, tag: int, *fields: Any) -> None:
191
+ super().__init__()
192
+ self.tag: int = tag or 0
193
+ self.fields: Array[Any] = list(fields)
194
+
195
+ @staticmethod
196
+ def cases() -> list[str]:
197
+ return ["Left", "Right", "TwoWay"]
198
+
199
+
200
+ ClassRelationshipDirection_reflection = _expr57
201
+
202
+ def _expr58() -> TypeInfo:
203
+ return union_type("Siren.ClassRelationshipType", [], ClassRelationshipType, lambda: [[], [], [], [], [], [], [], [], []])
204
+
205
+
206
+ class ClassRelationshipType(Union):
207
+ def __init__(self, tag: int, *fields: Any) -> None:
208
+ super().__init__()
209
+ self.tag: int = tag or 0
210
+ self.fields: Array[Any] = list(fields)
211
+
212
+ @staticmethod
213
+ def cases() -> list[str]:
214
+ return ["Inheritance", "Composition", "Aggregation", "Association", "Link", "Solid", "Dashed", "Dependency", "Realization"]
215
+
216
+
217
+ ClassRelationshipType_reflection = _expr58
218
+
219
+ def _expr59() -> TypeInfo:
220
+ return union_type("Siren.ClassCardinality", [], ClassCardinality, lambda: [[], [], [], [], [], [], [], [("Item", string_type)]])
221
+
222
+
223
+ class ClassCardinality(Union):
224
+ def __init__(self, tag: int, *fields: Any) -> None:
225
+ super().__init__()
226
+ self.tag: int = tag or 0
227
+ self.fields: Array[Any] = list(fields)
228
+
229
+ @staticmethod
230
+ def cases() -> list[str]:
231
+ return ["One", "ZeroOrOne", "OneOrMore", "Many", "N", "ZeroToN", "OneToN", "Custom"]
232
+
233
+
234
+ ClassCardinality_reflection = _expr59
235
+
236
+ def _expr60() -> TypeInfo:
237
+ return union_type("Siren.ERCardinalityType", [], ERCardinalityType, lambda: [[], [], [], []])
238
+
239
+
240
+ class ERCardinalityType(Union):
241
+ def __init__(self, tag: int, *fields: Any) -> None:
242
+ super().__init__()
243
+ self.tag: int = tag or 0
244
+ self.fields: Array[Any] = list(fields)
245
+
246
+ @staticmethod
247
+ def cases() -> list[str]:
248
+ return ["OneOrZero", "OneOrMany", "ZeroOrMany", "OnlyOne"]
249
+
250
+
251
+ ERCardinalityType_reflection = _expr60
252
+
253
+ def _expr61() -> TypeInfo:
254
+ return union_type("Siren.ERKeyType", [], ERKeyType, lambda: [[], [], []])
255
+
256
+
257
+ class ERKeyType(Union):
258
+ def __init__(self, tag: int, *fields: Any) -> None:
259
+ super().__init__()
260
+ self.tag: int = tag or 0
261
+ self.fields: Array[Any] = list(fields)
262
+
263
+ @staticmethod
264
+ def cases() -> list[str]:
265
+ return ["PK", "FK", "UK"]
266
+
267
+
268
+ ERKeyType_reflection = _expr61
269
+
270
+ def _expr62() -> TypeInfo:
271
+ return record_type("Siren.ERAttribute", [], ERAttribute, lambda: [("Type", string_type), ("Name", string_type), ("Keys", list_type(ERKeyType_reflection())), ("Comment", option_type(string_type))])
272
+
273
+
274
+ @dataclass(eq = False, repr = False, slots = True)
275
+ class ERAttribute(Record):
276
+ Type: str
277
+ Name: str
278
+ Keys: FSharpList[ERKeyType]
279
+ Comment: str | None
280
+
281
+ ERAttribute_reflection = _expr62
282
+
283
+ def _expr63() -> TypeInfo:
284
+ return union_type("Siren.GanttTags", [], GanttTags, lambda: [[], [], [], []])
285
+
286
+
287
+ class GanttTags(Union):
288
+ def __init__(self, tag: int, *fields: Any) -> None:
289
+ super().__init__()
290
+ self.tag: int = tag or 0
291
+ self.fields: Array[Any] = list(fields)
292
+
293
+ @staticmethod
294
+ def cases() -> list[str]:
295
+ return ["Active", "Done", "Crit", "Milestone"]
296
+
297
+
298
+ GanttTags_reflection = _expr63
299
+
300
+ def _expr64() -> TypeInfo:
301
+ return union_type("Siren.GanttUnit", [], GanttUnit, lambda: [[], [], [], [], [], [], []])
302
+
303
+
304
+ class GanttUnit(Union):
305
+ def __init__(self, tag: int, *fields: Any) -> None:
306
+ super().__init__()
307
+ self.tag: int = tag or 0
308
+ self.fields: Array[Any] = list(fields)
309
+
310
+ @staticmethod
311
+ def cases() -> list[str]:
312
+ return ["Millisecond", "Second", "Minute", "Hour", "Day", "Week", "Month"]
313
+
314
+
315
+ GanttUnit_reflection = _expr64
316
+
317
+ def _expr65() -> TypeInfo:
318
+ return union_type("Siren.RequirementType", [], RequirementType, lambda: [[], [], [], [], [], []])
319
+
320
+
321
+ class RequirementType(Union):
322
+ def __init__(self, tag: int, *fields: Any) -> None:
323
+ super().__init__()
324
+ self.tag: int = tag or 0
325
+ self.fields: Array[Any] = list(fields)
326
+
327
+ @staticmethod
328
+ def cases() -> list[str]:
329
+ return ["Requirement", "FunctionalRequirement", "InterfaceRequirement", "PerformanceRequirement", "PhysicalRequirement", "DesignConstraint"]
330
+
331
+
332
+ RequirementType_reflection = _expr65
333
+
334
+ def _expr66() -> TypeInfo:
335
+ return union_type("Siren.RDRiskType", [], RDRiskType, lambda: [[], [], []])
336
+
337
+
338
+ class RDRiskType(Union):
339
+ def __init__(self, tag: int, *fields: Any) -> None:
340
+ super().__init__()
341
+ self.tag: int = tag or 0
342
+ self.fields: Array[Any] = list(fields)
343
+
344
+ @staticmethod
345
+ def cases() -> list[str]:
346
+ return ["Low", "Medium", "High"]
347
+
348
+
349
+ RDRiskType_reflection = _expr66
350
+
351
+ def _expr67() -> TypeInfo:
352
+ return union_type("Siren.RDVerifyMethod", [], RDVerifyMethod, lambda: [[], [], [], []])
353
+
354
+
355
+ class RDVerifyMethod(Union):
356
+ def __init__(self, tag: int, *fields: Any) -> None:
357
+ super().__init__()
358
+ self.tag: int = tag or 0
359
+ self.fields: Array[Any] = list(fields)
360
+
361
+ @staticmethod
362
+ def cases() -> list[str]:
363
+ return ["Analysis", "Inspection", "Test", "Demonstration"]
364
+
365
+
366
+ RDVerifyMethod_reflection = _expr67
367
+
368
+ def _expr68() -> TypeInfo:
369
+ return union_type("Siren.RDRelationship", [], RDRelationship, lambda: [[], [], [], [], [], [], []])
370
+
371
+
372
+ class RDRelationship(Union):
373
+ def __init__(self, tag: int, *fields: Any) -> None:
374
+ super().__init__()
375
+ self.tag: int = tag or 0
376
+ self.fields: Array[Any] = list(fields)
377
+
378
+ @staticmethod
379
+ def cases() -> list[str]:
380
+ return ["Contains", "Copies", "Derives", "Satisfies", "Verifies", "Refines", "Traces"]
381
+
382
+
383
+ RDRelationship_reflection = _expr68
384
+
385
+ def _expr69() -> TypeInfo:
386
+ return union_type("Siren.GitCommitType", [], GitCommitType, lambda: [[], [], []])
387
+
388
+
389
+ class GitCommitType(Union):
390
+ def __init__(self, tag: int, *fields: Any) -> None:
391
+ super().__init__()
392
+ self.tag: int = tag or 0
393
+ self.fields: Array[Any] = list(fields)
394
+
395
+ @staticmethod
396
+ def cases() -> list[str]:
397
+ return ["NORMAL", "REVERSE", "HIGHLIGHT"]
398
+
399
+
400
+ GitCommitType_reflection = _expr69
401
+
402
+ def _expr70() -> TypeInfo:
403
+ return union_type("Siren.MindmapShape", [], MindmapShape, lambda: [[], [], [], [], [], []])
404
+
405
+
406
+ class MindmapShape(Union):
407
+ def __init__(self, tag: int, *fields: Any) -> None:
408
+ super().__init__()
409
+ self.tag: int = tag or 0
410
+ self.fields: Array[Any] = list(fields)
411
+
412
+ @staticmethod
413
+ def cases() -> list[str]:
414
+ return ["Square", "RoundedSquare", "Circle", "Bang", "Cloud", "Hexagon"]
415
+
416
+
417
+ MindmapShape_reflection = _expr70
418
+
419
+ def _expr71() -> TypeInfo:
420
+ return union_type("Siren.BlockBlockType", [], BlockBlockType, lambda: [[], [], [], [], [], [], [], [], [], [], [], [], [], []])
421
+
422
+
423
+ class BlockBlockType(Union):
424
+ def __init__(self, tag: int, *fields: Any) -> None:
425
+ super().__init__()
426
+ self.tag: int = tag or 0
427
+ self.fields: Array[Any] = list(fields)
428
+
429
+ @staticmethod
430
+ def cases() -> list[str]:
431
+ return ["Square", "RoundedEdge", "Stadium", "Subroutine", "Cylindrical", "Circle", "Asymmetric", "Rhombus", "Hexagon", "Parallelogram", "ParallelogramAlt", "Trapezoid", "TrapezoidAlt", "DoubleCircle"]
432
+
433
+
434
+ BlockBlockType_reflection = _expr71
435
+
436
+ def _expr72() -> TypeInfo:
437
+ return union_type("Siren.BlockArrowDirection", [], BlockArrowDirection, lambda: [[], [], [], [], [], [], [("Item", string_type)]])
438
+
439
+
440
+ class BlockArrowDirection(Union):
441
+ def __init__(self, tag: int, *fields: Any) -> None:
442
+ super().__init__()
443
+ self.tag: int = tag or 0
444
+ self.fields: Array[Any] = list(fields)
445
+
446
+ @staticmethod
447
+ def cases() -> list[str]:
448
+ return ["Right", "Left", "Up", "Down", "X", "Y", "Custom"]
449
+
450
+
451
+ BlockArrowDirection_reflection = _expr72
452
+
453
+ def _expr73() -> TypeInfo:
454
+ return union_type("Siren.FlowchartElement", [], FlowchartElement, lambda: [[("Item", string_type)], [("opener", string_type), ("closer", string_type), ("Item3", list_type(FlowchartElement_reflection()))]])
455
+
456
+
457
+ class FlowchartElement(Union):
458
+ def __init__(self, tag: int, *fields: Any) -> None:
459
+ super().__init__()
460
+ self.tag: int = tag or 0
461
+ self.fields: Array[Any] = list(fields)
462
+
463
+ @staticmethod
464
+ def cases() -> list[str]:
465
+ return ["FlowchartElement", "FlowchartSubgraph"]
466
+
467
+ def ToYamlAst(self, __unit: None=None) -> FSharpList[Yaml_AST]:
468
+ this: FlowchartElement = self
469
+ return YamlHelpers_writeYamlASTBasicWrapper(this.fields[0], this.fields[1], this.fields[2]) if (this.tag == 1) else singleton_1(Yaml_line(this.fields[0]))
470
+
471
+
472
+ FlowchartElement_reflection = _expr73
473
+
474
+ def _expr76() -> TypeInfo:
475
+ return union_type("Siren.SequenceElement", [], SequenceElement, lambda: [[("Item", string_type)], [("opener", string_type), ("closer", string_type), ("Item3", list_type(SequenceElement_reflection()))], [("Item", list_type(SequenceElement_reflection()))]])
476
+
477
+
478
+ class SequenceElement(Union):
479
+ def __init__(self, tag: int, *fields: Any) -> None:
480
+ super().__init__()
481
+ self.tag: int = tag or 0
482
+ self.fields: Array[Any] = list(fields)
483
+
484
+ @staticmethod
485
+ def cases() -> list[str]:
486
+ return ["SequenceElement", "SequenceWrapper", "SequenceWrapperList"]
487
+
488
+ def ToYamlAst(self, __unit: None=None) -> FSharpList[Yaml_AST]:
489
+ this: SequenceElement = self
490
+ if this.tag == 1:
491
+ return YamlHelpers_writeYamlASTBasicWrapper(this.fields[0], this.fields[1], this.fields[2])
492
+
493
+ elif this.tag == 2:
494
+ def _arrow75(__unit: None=None) -> IEnumerable_1[Yaml_AST]:
495
+ def _arrow74(child: SequenceElement) -> IEnumerable_1[Yaml_AST]:
496
+ return child.ToYamlAst()
497
+
498
+ return collect(_arrow74, this.fields[0])
499
+
500
+ return to_list(delay(_arrow75))
501
+
502
+ else:
503
+ return singleton_1(Yaml_line(this.fields[0]))
504
+
505
+
506
+
507
+ SequenceElement_reflection = _expr76
508
+
509
+ def _expr77() -> TypeInfo:
510
+ return union_type("Siren.ClassDiagramElement", [], ClassDiagramElement, lambda: [[("Item", string_type)], [("opener", string_type), ("closer", string_type), ("Item3", list_type(ClassDiagramElement_reflection()))], []])
511
+
512
+
513
+ class ClassDiagramElement(Union):
514
+ def __init__(self, tag: int, *fields: Any) -> None:
515
+ super().__init__()
516
+ self.tag: int = tag or 0
517
+ self.fields: Array[Any] = list(fields)
518
+
519
+ @staticmethod
520
+ def cases() -> list[str]:
521
+ return ["ClassDiagramElement", "ClassDiagramWrapper", "ClassDiagramNone"]
522
+
523
+ def ToYamlAst(self, __unit: None=None) -> FSharpList[Yaml_AST]:
524
+ this: ClassDiagramElement = self
525
+ if this.tag == 1:
526
+ return YamlHelpers_writeYamlASTBasicWrapper(this.fields[0], this.fields[1], this.fields[2])
527
+
528
+ elif this.tag == 2:
529
+ return empty_1()
530
+
531
+ else:
532
+ return singleton_1(Yaml_line(this.fields[0]))
533
+
534
+
535
+
536
+ ClassDiagramElement_reflection = _expr77
537
+
538
+ def _expr78() -> TypeInfo:
539
+ return union_type("Siren.StateDiagramElement", [], StateDiagramElement, lambda: [[("Item", string_type)], [("opener", string_type), ("closer", string_type), ("Item3", list_type(StateDiagramElement_reflection()))]])
540
+
541
+
542
+ class StateDiagramElement(Union):
543
+ def __init__(self, tag: int, *fields: Any) -> None:
544
+ super().__init__()
545
+ self.tag: int = tag or 0
546
+ self.fields: Array[Any] = list(fields)
547
+
548
+ @staticmethod
549
+ def cases() -> list[str]:
550
+ return ["StateDiagramElement", "StateDiagramWrapper"]
551
+
552
+ def ToYamlAst(self, __unit: None=None) -> FSharpList[Yaml_AST]:
553
+ this: StateDiagramElement = self
554
+ return YamlHelpers_writeYamlASTBasicWrapper(this.fields[0], this.fields[1], this.fields[2]) if (this.tag == 1) else singleton_1(Yaml_line(this.fields[0]))
555
+
556
+
557
+ StateDiagramElement_reflection = _expr78
558
+
559
+ def _expr79() -> TypeInfo:
560
+ return union_type("Siren.ERDiagramElement", [], ERDiagramElement, lambda: [[("Item", string_type)], [("opener", string_type), ("closer", string_type), ("Item3", list_type(ERDiagramElement_reflection()))]])
561
+
562
+
563
+ class ERDiagramElement(Union):
564
+ def __init__(self, tag: int, *fields: Any) -> None:
565
+ super().__init__()
566
+ self.tag: int = tag or 0
567
+ self.fields: Array[Any] = list(fields)
568
+
569
+ @staticmethod
570
+ def cases() -> list[str]:
571
+ return ["ERDiagramElement", "ERDiagramWrapper"]
572
+
573
+ def ToYamlAst(self, __unit: None=None) -> FSharpList[Yaml_AST]:
574
+ this: ERDiagramElement = self
575
+ return YamlHelpers_writeYamlASTBasicWrapper(this.fields[0], this.fields[1], this.fields[2]) if (this.tag == 1) else singleton_1(Yaml_line(this.fields[0]))
576
+
577
+
578
+ ERDiagramElement_reflection = _expr79
579
+
580
+ def _expr80() -> TypeInfo:
581
+ return union_type("Siren.JourneyElement", [], JourneyElement, lambda: [[("Item", string_type)]])
582
+
583
+
584
+ class JourneyElement(Union):
585
+ def __init__(self, tag: int, *fields: Any) -> None:
586
+ super().__init__()
587
+ self.tag: int = tag or 0
588
+ self.fields: Array[Any] = list(fields)
589
+
590
+ @staticmethod
591
+ def cases() -> list[str]:
592
+ return ["JourneyElement"]
593
+
594
+ def ToYamlAst(self, __unit: None=None) -> FSharpList[Yaml_AST]:
595
+ this: JourneyElement = self
596
+ return singleton_1(Yaml_line(this.fields[0]))
597
+
598
+
599
+ JourneyElement_reflection = _expr80
600
+
601
+ def _expr81() -> TypeInfo:
602
+ return union_type("Siren.GanttElement", [], GanttElement, lambda: [[("Item", string_type)]])
603
+
604
+
605
+ class GanttElement(Union):
606
+ def __init__(self, tag: int, *fields: Any) -> None:
607
+ super().__init__()
608
+ self.tag: int = tag or 0
609
+ self.fields: Array[Any] = list(fields)
610
+
611
+ @staticmethod
612
+ def cases() -> list[str]:
613
+ return ["GanttElement"]
614
+
615
+ def ToYamlAst(self, __unit: None=None) -> FSharpList[Yaml_AST]:
616
+ this: GanttElement = self
617
+ return singleton_1(Yaml_line(this.fields[0]))
618
+
619
+
620
+ GanttElement_reflection = _expr81
621
+
622
+ def _expr82() -> TypeInfo:
623
+ return union_type("Siren.PieChartElement", [], PieChartElement, lambda: [[("Item", string_type)]])
624
+
625
+
626
+ class PieChartElement(Union):
627
+ def __init__(self, tag: int, *fields: Any) -> None:
628
+ super().__init__()
629
+ self.tag: int = tag or 0
630
+ self.fields: Array[Any] = list(fields)
631
+
632
+ @staticmethod
633
+ def cases() -> list[str]:
634
+ return ["PieChartElement"]
635
+
636
+ def ToYamlAst(self, __unit: None=None) -> FSharpList[Yaml_AST]:
637
+ this: PieChartElement = self
638
+ return singleton_1(Yaml_line(this.fields[0]))
639
+
640
+
641
+ PieChartElement_reflection = _expr82
642
+
643
+ def _expr83() -> TypeInfo:
644
+ return union_type("Siren.QuadrantElement", [], QuadrantElement, lambda: [[("Item", string_type)]])
645
+
646
+
647
+ class QuadrantElement(Union):
648
+ def __init__(self, tag: int, *fields: Any) -> None:
649
+ super().__init__()
650
+ self.tag: int = tag or 0
651
+ self.fields: Array[Any] = list(fields)
652
+
653
+ @staticmethod
654
+ def cases() -> list[str]:
655
+ return ["QuadrantElement"]
656
+
657
+ def ToYamlAst(self, __unit: None=None) -> FSharpList[Yaml_AST]:
658
+ this: QuadrantElement = self
659
+ return singleton_1(Yaml_line(this.fields[0]))
660
+
661
+
662
+ QuadrantElement_reflection = _expr83
663
+
664
+ def _expr84() -> TypeInfo:
665
+ return union_type("Siren.RequirementDiagramElement", [], RequirementDiagramElement, lambda: [[("Item", string_type)], [("opener", string_type), ("closer", string_type), ("Item3", list_type(RequirementDiagramElement_reflection()))]])
666
+
667
+
668
+ class RequirementDiagramElement(Union):
669
+ def __init__(self, tag: int, *fields: Any) -> None:
670
+ super().__init__()
671
+ self.tag: int = tag or 0
672
+ self.fields: Array[Any] = list(fields)
673
+
674
+ @staticmethod
675
+ def cases() -> list[str]:
676
+ return ["RequirementDiagramElement", "RequirementDiagramWrapper"]
677
+
678
+ def ToYamlAst(self, __unit: None=None) -> FSharpList[Yaml_AST]:
679
+ this: RequirementDiagramElement = self
680
+ return YamlHelpers_writeYamlASTBasicWrapper(this.fields[0], this.fields[1], this.fields[2]) if (this.tag == 1) else singleton_1(Yaml_line(this.fields[0]))
681
+
682
+
683
+ RequirementDiagramElement_reflection = _expr84
684
+
685
+ def _expr85() -> TypeInfo:
686
+ return union_type("Siren.GitGraphElement", [], GitGraphElement, lambda: [[("Item", string_type)], [("opener", string_type), ("closer", string_type), ("Item3", list_type(GitGraphElement_reflection()))]])
687
+
688
+
689
+ class GitGraphElement(Union):
690
+ def __init__(self, tag: int, *fields: Any) -> None:
691
+ super().__init__()
692
+ self.tag: int = tag or 0
693
+ self.fields: Array[Any] = list(fields)
694
+
695
+ @staticmethod
696
+ def cases() -> list[str]:
697
+ return ["GitGraphElement", "GitGraphWrapper"]
698
+
699
+ def ToYamlAst(self, __unit: None=None) -> FSharpList[Yaml_AST]:
700
+ this: GitGraphElement = self
701
+ return YamlHelpers_writeYamlASTBasicWrapper(this.fields[0], this.fields[1], this.fields[2]) if (this.tag == 1) else singleton_1(Yaml_line(this.fields[0]))
702
+
703
+
704
+ GitGraphElement_reflection = _expr85
705
+
706
+ def _expr86() -> TypeInfo:
707
+ return union_type("Siren.MindmapElement", [], MindmapElement, lambda: [[("Item", string_type)], [("opener", string_type), ("closer", string_type), ("Item3", list_type(MindmapElement_reflection()))]])
708
+
709
+
710
+ class MindmapElement(Union):
711
+ def __init__(self, tag: int, *fields: Any) -> None:
712
+ super().__init__()
713
+ self.tag: int = tag or 0
714
+ self.fields: Array[Any] = list(fields)
715
+
716
+ @staticmethod
717
+ def cases() -> list[str]:
718
+ return ["MindmapElement", "MindmapWrapper"]
719
+
720
+ def ToYamlAst(self, __unit: None=None) -> FSharpList[Yaml_AST]:
721
+ this: MindmapElement = self
722
+ return YamlHelpers_writeYamlASTBasicWrapper(this.fields[0], this.fields[1], this.fields[2]) if (this.tag == 1) else singleton_1(Yaml_line(this.fields[0]))
723
+
724
+
725
+ MindmapElement_reflection = _expr86
726
+
727
+ def _expr87() -> TypeInfo:
728
+ return union_type("Siren.TimelineElement", [], TimelineElement, lambda: [[("Item", string_type)], [("opener", string_type), ("closer", string_type), ("Item3", list_type(TimelineElement_reflection()))]])
729
+
730
+
731
+ class TimelineElement(Union):
732
+ def __init__(self, tag: int, *fields: Any) -> None:
733
+ super().__init__()
734
+ self.tag: int = tag or 0
735
+ self.fields: Array[Any] = list(fields)
736
+
737
+ @staticmethod
738
+ def cases() -> list[str]:
739
+ return ["TimelineElement", "TimelineWrapper"]
740
+
741
+ def ToYamlAst(self, __unit: None=None) -> FSharpList[Yaml_AST]:
742
+ this: TimelineElement = self
743
+ return YamlHelpers_writeYamlASTBasicWrapper(this.fields[0], this.fields[1], this.fields[2]) if (this.tag == 1) else singleton_1(Yaml_line(this.fields[0]))
744
+
745
+
746
+ TimelineElement_reflection = _expr87
747
+
748
+ def _expr89() -> TypeInfo:
749
+ return union_type("Siren.BlockElement", [], BlockElement, lambda: [[("Item", string_type)], [("opener", string_type), ("closer", string_type), ("Item3", list_type(BlockElement_reflection()))], [("Item", list_type(BlockElement_reflection()))]])
750
+
751
+
752
+ class BlockElement(Union):
753
+ def __init__(self, tag: int, *fields: Any) -> None:
754
+ super().__init__()
755
+ self.tag: int = tag or 0
756
+ self.fields: Array[Any] = list(fields)
757
+
758
+ @staticmethod
759
+ def cases() -> list[str]:
760
+ return ["BlockElement", "BlockWrapper", "BlockLine"]
761
+
762
+ def ToYamlAst(self, __unit: None=None) -> FSharpList[Yaml_AST]:
763
+ this: BlockElement = self
764
+ if this.tag == 1:
765
+ return YamlHelpers_writeYamlASTBasicWrapper(this.fields[0], this.fields[1], this.fields[2])
766
+
767
+ elif this.tag == 2:
768
+ def _arrow88(__unit: None=None) -> str:
769
+ def folder(acc: str, child: BlockElement) -> str:
770
+ if child.tag == 0:
771
+ return (acc + " ") + child.fields[0]
772
+
773
+ else:
774
+ return acc
775
+
776
+
777
+ _arg: str = fold(folder, "", this.fields[0])
778
+ return _arg.strip()
779
+
780
+ return singleton_1(Yaml_line(_arrow88()))
781
+
782
+ else:
783
+ return singleton_1(Yaml_line(this.fields[0]))
784
+
785
+
786
+
787
+ BlockElement_reflection = _expr89
788
+
789
+ def _expr92() -> TypeInfo:
790
+ return union_type("Siren.SankeyElement", [], SankeyElement, lambda: [[("Item", string_type)], [("Item", list_type(SankeyElement_reflection()))]])
791
+
792
+
793
+ class SankeyElement(Union):
794
+ def __init__(self, tag: int, *fields: Any) -> None:
795
+ super().__init__()
796
+ self.tag: int = tag or 0
797
+ self.fields: Array[Any] = list(fields)
798
+
799
+ @staticmethod
800
+ def cases() -> list[str]:
801
+ return ["SankeyElement", "SankeyElementList"]
802
+
803
+ def ToYamlAst(self, __unit: None=None) -> FSharpList[Yaml_AST]:
804
+ this: SankeyElement = self
805
+ def _arrow91(__unit: None=None) -> IEnumerable_1[Yaml_AST]:
806
+ def _arrow90(ele: SankeyElement) -> IEnumerable_1[Yaml_AST]:
807
+ return ele.ToYamlAst()
808
+
809
+ return collect(_arrow90, this.fields[0])
810
+
811
+ return to_list(delay(_arrow91)) if (this.tag == 1) else singleton_1(Yaml_line(this.fields[0]))
812
+
813
+
814
+ SankeyElement_reflection = _expr92
815
+
816
+ def _expr93() -> TypeInfo:
817
+ return union_type("Siren.XYChartElement", [], XYChartElement, lambda: [[("Item", string_type)]])
818
+
819
+
820
+ class XYChartElement(Union):
821
+ def __init__(self, tag: int, *fields: Any) -> None:
822
+ super().__init__()
823
+ self.tag: int = tag or 0
824
+ self.fields: Array[Any] = list(fields)
825
+
826
+ @staticmethod
827
+ def cases() -> list[str]:
828
+ return ["XYChartElement"]
829
+
830
+ def ToYamlAst(self, __unit: None=None) -> FSharpList[Yaml_AST]:
831
+ this: XYChartElement = self
832
+ return singleton_1(Yaml_line(this.fields[0]))
833
+
834
+
835
+ XYChartElement_reflection = _expr93
836
+
837
+ def _expr101() -> TypeInfo:
838
+ return union_type("Siren.SirenGraph", [], SirenGraph, lambda: [[("Item1", Direction_reflection()), ("Item2", list_type(FlowchartElement_reflection()))], [("Item", list_type(SequenceElement_reflection()))], [("Item", list_type(ClassDiagramElement_reflection()))], [("Item", list_type(StateDiagramElement_reflection()))], [("Item", list_type(StateDiagramElement_reflection()))], [("Item", list_type(ERDiagramElement_reflection()))], [("Item", list_type(JourneyElement_reflection()))], [("Item", list_type(GanttElement_reflection()))], [("showData", bool_type), ("title", option_type(string_type)), ("Item3", list_type(PieChartElement_reflection()))], [("Item", list_type(QuadrantElement_reflection()))], [("Item", list_type(RequirementDiagramElement_reflection()))], [("Item", list_type(GitGraphElement_reflection()))], [("Item", list_type(MindmapElement_reflection()))], [("Item", list_type(TimelineElement_reflection()))], [("Item", list_type(SankeyElement_reflection()))], [("isHorizontal", bool_type), ("Item2", list_type(XYChartElement_reflection()))], [("Item", list_type(BlockElement_reflection()))]])
839
+
840
+
841
+ class SirenGraph(Union):
842
+ def __init__(self, tag: int, *fields: Any) -> None:
843
+ super().__init__()
844
+ self.tag: int = tag or 0
845
+ self.fields: Array[Any] = list(fields)
846
+
847
+ @staticmethod
848
+ def cases() -> list[str]:
849
+ return ["Flowchart", "Sequence", "Class", "State", "StateV2", "ERDiagram", "Journey", "Gantt", "PieChart", "Quadrant", "RequirementDiagram", "GitGraph", "Mindmap", "Timeline", "Sankey", "XYChart", "Block"]
850
+
851
+ def ToConfigName(self, __unit: None=None) -> str:
852
+ this: SirenGraph = self
853
+ if this.tag == 2:
854
+ return "class"
855
+
856
+ elif this.tag == 1:
857
+ return "sequence"
858
+
859
+ elif (this.tag == 3) or (this.tag == 4):
860
+ return "state"
861
+
862
+ elif this.tag == 5:
863
+ return "erDiagram"
864
+
865
+ elif this.tag == 6:
866
+ return "journey"
867
+
868
+ elif this.tag == 7:
869
+ return "gantt"
870
+
871
+ elif this.tag == 8:
872
+ return "pie"
873
+
874
+ elif this.tag == 9:
875
+ return "quadrant"
876
+
877
+ elif this.tag == 10:
878
+ return "requirement"
879
+
880
+ elif this.tag == 11:
881
+ return "gitGraph"
882
+
883
+ elif this.tag == 12:
884
+ return "mindmap"
885
+
886
+ elif this.tag == 13:
887
+ return "timeline"
888
+
889
+ elif this.tag == 14:
890
+ return "sankey"
891
+
892
+ elif this.tag == 15:
893
+ return "xyChart"
894
+
895
+ elif this.tag == 16:
896
+ return "block"
897
+
898
+ else:
899
+ return "flowchart"
900
+
901
+
902
+ def ToYamlAst(self, __unit: None=None) -> Yaml_AST:
903
+ this: SirenGraph = self
904
+ if this.tag == 1:
905
+ return YamlHelpers_writeYamlDiagramRoot("sequenceDiagram", this.fields[0])
906
+
907
+ elif this.tag == 2:
908
+ return YamlHelpers_writeYamlDiagramRoot("classDiagram", this.fields[0])
909
+
910
+ elif this.tag == 4:
911
+ return YamlHelpers_writeYamlDiagramRoot("stateDiagram-v2", this.fields[0])
912
+
913
+ elif this.tag == 3:
914
+ return YamlHelpers_writeYamlDiagramRoot("stateDiagram", this.fields[0])
915
+
916
+ elif this.tag == 5:
917
+ return YamlHelpers_writeYamlDiagramRoot("erDiagram", this.fields[0])
918
+
919
+ elif this.tag == 6:
920
+ return YamlHelpers_writeYamlDiagramRoot("journey", this.fields[0])
921
+
922
+ elif this.tag == 7:
923
+ return YamlHelpers_writeYamlDiagramRoot("gantt", this.fields[0])
924
+
925
+ elif this.tag == 8:
926
+ title: str | None = this.fields[1]
927
+ def _arrow97(__unit: None=None) -> IEnumerable_1[str]:
928
+ def _arrow96(__unit: None=None) -> IEnumerable_1[str]:
929
+ def _arrow95(__unit: None=None) -> IEnumerable_1[str]:
930
+ def _arrow94(__unit: None=None) -> str:
931
+ arg: str = value_2(title)
932
+ return to_text(printf("title %s"))(arg)
933
+
934
+ return singleton(_arrow94()) if (title is not None) else empty()
935
+
936
+ return append(singleton("showData"), delay(_arrow95)) if this.fields[0] else empty()
937
+
938
+ return append(singleton("pie"), delay(_arrow96))
939
+
940
+ return YamlHelpers_writeYamlDiagramRoot(join(" ", to_list(delay(_arrow97))), this.fields[2])
941
+
942
+ elif this.tag == 9:
943
+ return YamlHelpers_writeYamlDiagramRoot("quadrantChart", this.fields[0])
944
+
945
+ elif this.tag == 10:
946
+ return YamlHelpers_writeYamlDiagramRoot("requirementDiagram", this.fields[0])
947
+
948
+ elif this.tag == 11:
949
+ return YamlHelpers_writeYamlDiagramRoot("gitGraph", this.fields[0])
950
+
951
+ elif this.tag == 12:
952
+ return YamlHelpers_writeYamlDiagramRoot("mindmap", this.fields[0])
953
+
954
+ elif this.tag == 13:
955
+ return YamlHelpers_writeYamlDiagramRoot("timeline", this.fields[0])
956
+
957
+ elif this.tag == 14:
958
+ def _arrow100(__unit: None=None) -> IEnumerable_1[Yaml_AST]:
959
+ def _arrow99(__unit: None=None) -> IEnumerable_1[Yaml_AST]:
960
+ def _arrow98(child: SankeyElement) -> IEnumerable_1[Yaml_AST]:
961
+ return child.ToYamlAst()
962
+
963
+ return collect(_arrow98, this.fields[0])
964
+
965
+ return append(singleton(Yaml_line("sankey-beta")), delay(_arrow99))
966
+
967
+ return Yaml_root(to_list(delay(_arrow100)))
968
+
969
+ elif this.tag == 15:
970
+ return YamlHelpers_writeYamlDiagramRoot("xychart-beta" + (" horizontal" if this.fields[0] else ""), this.fields[1])
971
+
972
+ elif this.tag == 16:
973
+ return YamlHelpers_writeYamlDiagramRoot("block-beta", this.fields[0])
974
+
975
+ else:
976
+ return YamlHelpers_writeYamlDiagramRoot("flowchart " + to_string(this.fields[0]), this.fields[1])
977
+
978
+
979
+
980
+ SirenGraph_reflection = _expr101
981
+
982
+ def _expr102() -> TypeInfo:
983
+ return union_type("Siren.ConfigVariable", [], ConfigVariable, lambda: [[("Item1", string_type), ("Item2", string_type)]])
984
+
985
+
986
+ class ConfigVariable(Union):
987
+ def __init__(self, tag: int, *fields: Any) -> None:
988
+ super().__init__()
989
+ self.tag: int = tag or 0
990
+ self.fields: Array[Any] = list(fields)
991
+
992
+ @staticmethod
993
+ def cases() -> list[str]:
994
+ return ["ConfigVariable"]
995
+
996
+
997
+ ConfigVariable_reflection = _expr102
998
+
999
+ def _expr103() -> TypeInfo:
1000
+ return union_type("Siren.ThemeVariable", [], ThemeVariable, lambda: [[("Item1", string_type), ("Item2", string_type)]])
1001
+
1002
+
1003
+ class ThemeVariable(Union):
1004
+ def __init__(self, tag: int, *fields: Any) -> None:
1005
+ super().__init__()
1006
+ self.tag: int = tag or 0
1007
+ self.fields: Array[Any] = list(fields)
1008
+
1009
+ @staticmethod
1010
+ def cases() -> list[str]:
1011
+ return ["ThemeVariable"]
1012
+
1013
+
1014
+ ThemeVariable_reflection = _expr103
1015
+
1016
+ def _expr118() -> TypeInfo:
1017
+ return class_type("Siren.SirenConfig", None, SirenConfig)
1018
+
1019
+
1020
+ class SirenConfig:
1021
+ def __init__(self, graph: SirenGraph, title: str | None=None, theme: str | None=None, graph_config: Array[ConfigVariable] | None=None, theme_variable: Array[ThemeVariable] | None=None) -> None:
1022
+ self._Graph: SirenGraph = graph
1023
+ self._Title: str | None = title
1024
+ self._Theme: str | None = theme
1025
+ self._GraphConfig: Array[ConfigVariable] | None = graph_config
1026
+ self._ThemeVariables: Array[ThemeVariable] | None = theme_variable
1027
+
1028
+ @property
1029
+ def Graph(self, __unit: None=None) -> SirenGraph:
1030
+ __: SirenConfig = self
1031
+ return __._Graph
1032
+
1033
+ @property
1034
+ def Title(self, __unit: None=None) -> str | None:
1035
+ __: SirenConfig = self
1036
+ return __._Title
1037
+
1038
+ @Title.setter
1039
+ def Title(self, v: str | None=None) -> None:
1040
+ __: SirenConfig = self
1041
+ __._Title = v
1042
+
1043
+ @property
1044
+ def Theme(self, __unit: None=None) -> str | None:
1045
+ __: SirenConfig = self
1046
+ return __._Theme
1047
+
1048
+ @Theme.setter
1049
+ def Theme(self, v: str | None=None) -> None:
1050
+ __: SirenConfig = self
1051
+ __._Theme = v
1052
+
1053
+ @property
1054
+ def GraphConfig(self, __unit: None=None) -> Array[ConfigVariable] | None:
1055
+ __: SirenConfig = self
1056
+ return __._GraphConfig
1057
+
1058
+ @GraphConfig.setter
1059
+ def GraphConfig(self, v: Array[ConfigVariable] | None=None) -> None:
1060
+ __: SirenConfig = self
1061
+ __._GraphConfig = v
1062
+
1063
+ @property
1064
+ def ThemeVariables(self, __unit: None=None) -> Array[ThemeVariable] | None:
1065
+ __: SirenConfig = self
1066
+ return __._ThemeVariables
1067
+
1068
+ @ThemeVariables.setter
1069
+ def ThemeVariables(self, v: Array[ThemeVariable] | None=None) -> None:
1070
+ __: SirenConfig = self
1071
+ __._ThemeVariables = v
1072
+
1073
+ def AddGraphConfig(self, var: ConfigVariable) -> None:
1074
+ this: SirenConfig = self
1075
+ match_value: Array[ConfigVariable] | None = this.GraphConfig
1076
+ if match_value is None:
1077
+ config_1: Array[ConfigVariable] = []
1078
+ (config_1.append(var))
1079
+ this.GraphConfig = config_1
1080
+
1081
+ else:
1082
+ config: Array[ConfigVariable] = match_value
1083
+ (config.append(var))
1084
+
1085
+
1086
+ def AddThemeVariable(self, var: ThemeVariable) -> None:
1087
+ this: SirenConfig = self
1088
+ match_value: Array[ThemeVariable] | None = this.ThemeVariables
1089
+ if match_value is None:
1090
+ theme_1: Array[ThemeVariable] = []
1091
+ (theme_1.append(var))
1092
+ this.ThemeVariables = theme_1
1093
+
1094
+ else:
1095
+ theme: Array[ThemeVariable] = match_value
1096
+ (theme.append(var))
1097
+
1098
+
1099
+ def ToYamlAst(self, __unit: None=None) -> Yaml_AST:
1100
+ this: SirenConfig = self
1101
+ has_inner_config: bool = True if (True if (this.GraphConfig is not None) else (this.ThemeVariables is not None)) else (this.Theme is not None)
1102
+ def _arrow117(__unit: None=None) -> IEnumerable_1[Yaml_AST]:
1103
+ def _arrow116(__unit: None=None) -> IEnumerable_1[Yaml_AST]:
1104
+ def _arrow115(__unit: None=None) -> IEnumerable_1[Yaml_AST]:
1105
+ def _arrow113(__unit: None=None) -> IEnumerable_1[Yaml_AST]:
1106
+ def _arrow112(__unit: None=None) -> IEnumerable_1[Yaml_AST]:
1107
+ def _arrow107(__unit: None=None) -> IEnumerable_1[Yaml_AST]:
1108
+ match_value: Array[ConfigVariable] | None = this.GraphConfig
1109
+ if match_value is None:
1110
+ return empty()
1111
+
1112
+ else:
1113
+ config: Array[ConfigVariable] = match_value
1114
+ def _arrow106(__unit: None=None) -> IEnumerable_1[Yaml_AST]:
1115
+ def _arrow105(__unit: None=None) -> IEnumerable_1[Yaml_AST]:
1116
+ def _arrow104(match_value_1: ConfigVariable) -> IEnumerable_1[Yaml_AST]:
1117
+ return singleton(Yaml_line(((("" + match_value_1.fields[0]) + ": ") + match_value_1.fields[1]) + ""))
1118
+
1119
+ return collect(_arrow104, config)
1120
+
1121
+ return singleton(Yaml_level(to_list(delay(_arrow105))))
1122
+
1123
+ return append(singleton(Yaml_line(this.Graph.ToConfigName() + ":")), delay(_arrow106))
1124
+
1125
+
1126
+ def _arrow111(__unit: None=None) -> IEnumerable_1[Yaml_AST]:
1127
+ match_value_2: Array[ThemeVariable] | None = this.ThemeVariables
1128
+ if match_value_2 is None:
1129
+ return empty()
1130
+
1131
+ else:
1132
+ theme: Array[ThemeVariable] = match_value_2
1133
+ def _arrow110(__unit: None=None) -> IEnumerable_1[Yaml_AST]:
1134
+ def _arrow109(__unit: None=None) -> IEnumerable_1[Yaml_AST]:
1135
+ def _arrow108(match_value_3: ThemeVariable) -> IEnumerable_1[Yaml_AST]:
1136
+ return singleton(Yaml_line(((("" + match_value_3.fields[0]) + ": ") + match_value_3.fields[1]) + ""))
1137
+
1138
+ return collect(_arrow108, theme)
1139
+
1140
+ return singleton(Yaml_level(to_list(delay(_arrow109))))
1141
+
1142
+ return append(singleton(Yaml_line("themeVariables:")), delay(_arrow110))
1143
+
1144
+
1145
+ return append(_arrow107(), delay(_arrow111))
1146
+
1147
+ return append(singleton(Yaml_line(("theme: " + value_2(this.Theme)) + "")) if (this.Theme is not None) else empty(), delay(_arrow112))
1148
+
1149
+ def _arrow114(__unit: None=None) -> IEnumerable_1[Yaml_AST]:
1150
+ return singleton(Yaml_line("---"))
1151
+
1152
+ return append(singleton(Yaml_root(of_array([Yaml_line("config:"), Yaml_level(to_list(delay(_arrow113)))]))) if has_inner_config else empty(), delay(_arrow114))
1153
+
1154
+ return append(singleton(Yaml_line(("title: " + value_2(this.Title)) + "")) if (this.Title is not None) else empty(), delay(_arrow115))
1155
+
1156
+ return append(singleton(Yaml_line("---")), delay(_arrow116)) if (True if (this.Title is not None) else has_inner_config) else empty()
1157
+
1158
+ return Yaml_root(to_list(delay(_arrow117)))
1159
+
1160
+ def __str__(self, __unit: None=None) -> str:
1161
+ this: SirenConfig = self
1162
+ def mapping_2(tupled_arg: tuple[str, str]) -> str:
1163
+ return to_text(printf("%s: %s"))(tupled_arg[0])(tupled_arg[1])
1164
+
1165
+ arg_2: str = join(",\n", map(mapping_2, of_array([("Title", to_string(this.Title)), ("Theme", to_string(this.Theme)), ("GraphConfig", to_string(map_1(seq_to_string, this.GraphConfig))), ("ThemeVariables", to_string(map_1(seq_to_string, this.ThemeVariables)))])))
1166
+ return to_text(printf("{%s}"))(arg_2)
1167
+
1168
+
1169
+ SirenConfig_reflection = _expr118
1170
+
1171
+ def SirenConfig__ctor_4F11949C(graph: SirenGraph, title: str | None=None, theme: str | None=None, graph_config: Array[ConfigVariable] | None=None, theme_variable: Array[ThemeVariable] | None=None) -> SirenConfig:
1172
+ return SirenConfig(graph, title, theme, graph_config, theme_variable)
1173
+
1174
+
1175
+ def _expr119() -> TypeInfo:
1176
+ return record_type("Siren.SirenElement", [], SirenElement, lambda: [("Graph", SirenGraph_reflection()), ("Config", SirenConfig_reflection())])
1177
+
1178
+
1179
+ @dataclass(eq = False, repr = False, slots = True)
1180
+ class SirenElement(Record):
1181
+ Graph: SirenGraph
1182
+ Config: SirenConfig
1183
+ @staticmethod
1184
+ def init(graph: SirenGraph) -> SirenElement:
1185
+ return SirenElement(graph, SirenConfig(graph))
1186
+
1187
+ def with_title(self, title: str) -> SirenElement:
1188
+ this: SirenElement = self
1189
+ this.Config.Title = title
1190
+ return this
1191
+
1192
+ def with_theme(self, theme: str) -> SirenElement:
1193
+ this: SirenElement = self
1194
+ this.Config.Theme = theme
1195
+ return this
1196
+
1197
+ def with_graph_config(self, config_func: Callable[[Array[ConfigVariable]], None]) -> SirenElement:
1198
+ this: SirenElement = self
1199
+ config: Array[ConfigVariable] = default_arg(this.Config.GraphConfig, [])
1200
+ config_func(config)
1201
+ this.Config.GraphConfig = config
1202
+ return this
1203
+
1204
+ def with_theme_variables(self, theme_variables_func: Callable[[Array[ThemeVariable]], None]) -> SirenElement:
1205
+ this: SirenElement = self
1206
+ theme_variables: Array[ThemeVariable] = default_arg(this.Config.ThemeVariables, [])
1207
+ theme_variables_func(theme_variables)
1208
+ this.Config.ThemeVariables = theme_variables
1209
+ return this
1210
+
1211
+ def add_theme_variable(self, var: ThemeVariable) -> SirenElement:
1212
+ this: SirenElement = self
1213
+ this.Config.AddThemeVariable(var)
1214
+ return this
1215
+
1216
+ def add_graph_config_variable(self, var: ConfigVariable) -> SirenElement:
1217
+ this: SirenElement = self
1218
+ this.Config.AddGraphConfig(var)
1219
+ return this
1220
+
1221
+ def write(self, __unit: None=None) -> str:
1222
+ this: SirenElement = self
1223
+ return Yaml_write(Yaml_root(of_array([this.Config.ToYamlAst(), this.Graph.ToYamlAst()])))
1224
+
1225
+
1226
+ SirenElement_reflection = _expr119
1227
+
1228
+ __all__ = ["YamlHelpers_writeYamlASTBasicWrapper", "YamlHelpers_writeYamlDiagramRoot", "NotePosition_reflection", "Direction_reflection", "FlowchartNodeTypes_reflection", "FlowchartLinkTypes_reflection", "SequenceMessageTypes_reflection", "ClassMemberVisibility_reflection", "ClassMemberClassifier_reflection", "ClassRelationshipDirection_reflection", "ClassRelationshipType_reflection", "ClassCardinality_reflection", "ERCardinalityType_reflection", "ERKeyType_reflection", "ERAttribute_reflection", "GanttTags_reflection", "GanttUnit_reflection", "RequirementType_reflection", "RDRiskType_reflection", "RDVerifyMethod_reflection", "RDRelationship_reflection", "GitCommitType_reflection", "MindmapShape_reflection", "BlockBlockType_reflection", "BlockArrowDirection_reflection", "FlowchartElement_reflection", "SequenceElement_reflection", "ClassDiagramElement_reflection", "StateDiagramElement_reflection", "ERDiagramElement_reflection", "JourneyElement_reflection", "GanttElement_reflection", "PieChartElement_reflection", "QuadrantElement_reflection", "RequirementDiagramElement_reflection", "GitGraphElement_reflection", "MindmapElement_reflection", "TimelineElement_reflection", "BlockElement_reflection", "SankeyElement_reflection", "XYChartElement_reflection", "SirenGraph_reflection", "ConfigVariable_reflection", "ThemeVariable_reflection", "SirenConfig_reflection", "SirenElement_reflection"]
1229
+