arctrl 3.0.0a3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (456) hide show
  1. arctrl/__init__.py +18 -0
  2. arctrl/py/CWL/__init__.py +0 -0
  3. arctrl/py/CWL/cwltypes.py +150 -0
  4. arctrl/py/CWL/decode.py +973 -0
  5. arctrl/py/CWL/encode.py +1 -0
  6. arctrl/py/CWL/inputs.py +88 -0
  7. arctrl/py/CWL/outputs.py +85 -0
  8. arctrl/py/CWL/requirements.py +77 -0
  9. arctrl/py/CWL/tool_description.py +103 -0
  10. arctrl/py/CWL/workflow_description.py +104 -0
  11. arctrl/py/CWL/workflow_steps.py +113 -0
  12. arctrl/py/Contract/__init__.py +0 -0
  13. arctrl/py/Contract/arc.py +60 -0
  14. arctrl/py/Contract/arc_assay.py +125 -0
  15. arctrl/py/Contract/arc_investigation.py +88 -0
  16. arctrl/py/Contract/arc_run.py +125 -0
  17. arctrl/py/Contract/arc_study.py +126 -0
  18. arctrl/py/Contract/arc_workflow.py +125 -0
  19. arctrl/py/Contract/contract.py +153 -0
  20. arctrl/py/Contract/datamap.py +372 -0
  21. arctrl/py/Contract/git.py +118 -0
  22. arctrl/py/Contract/validation_packages_config.py +107 -0
  23. arctrl/py/ContractIO/__init__.py +0 -0
  24. arctrl/py/ContractIO/contract_io.py +344 -0
  25. arctrl/py/ContractIO/file_system_helper.py +264 -0
  26. arctrl/py/Core/Helper/__init__.py +0 -0
  27. arctrl/py/Core/Helper/collections_.py +438 -0
  28. arctrl/py/Core/Helper/date_time.py +26 -0
  29. arctrl/py/Core/Helper/hash_codes.py +60 -0
  30. arctrl/py/Core/Helper/identifier.py +248 -0
  31. arctrl/py/Core/Helper/orcid.py +42 -0
  32. arctrl/py/Core/Helper/printer.py +13 -0
  33. arctrl/py/Core/Helper/regex.py +554 -0
  34. arctrl/py/Core/Helper/sem_ver.py +71 -0
  35. arctrl/py/Core/Helper/url.py +148 -0
  36. arctrl/py/Core/Process/__init__.py +0 -0
  37. arctrl/py/Core/Process/column_index.py +280 -0
  38. arctrl/py/Core/Process/component.py +200 -0
  39. arctrl/py/Core/Process/factor.py +151 -0
  40. arctrl/py/Core/Process/factor_value.py +182 -0
  41. arctrl/py/Core/Process/material.py +74 -0
  42. arctrl/py/Core/Process/material_attribute.py +95 -0
  43. arctrl/py/Core/Process/material_attribute_value.py +184 -0
  44. arctrl/py/Core/Process/material_type.py +45 -0
  45. arctrl/py/Core/Process/process.py +477 -0
  46. arctrl/py/Core/Process/process_input.py +265 -0
  47. arctrl/py/Core/Process/process_output.py +235 -0
  48. arctrl/py/Core/Process/process_parameter_value.py +200 -0
  49. arctrl/py/Core/Process/process_sequence.py +435 -0
  50. arctrl/py/Core/Process/protocol.py +175 -0
  51. arctrl/py/Core/Process/protocol_parameter.py +98 -0
  52. arctrl/py/Core/Process/sample.py +82 -0
  53. arctrl/py/Core/Process/source.py +62 -0
  54. arctrl/py/Core/Table/__init__.py +0 -0
  55. arctrl/py/Core/Table/arc_table.py +1264 -0
  56. arctrl/py/Core/Table/arc_table_aux.py +575 -0
  57. arctrl/py/Core/Table/arc_tables.py +591 -0
  58. arctrl/py/Core/Table/composite_cell.py +319 -0
  59. arctrl/py/Core/Table/composite_column.py +73 -0
  60. arctrl/py/Core/Table/composite_header.py +739 -0
  61. arctrl/py/Core/__init__.py +0 -0
  62. arctrl/py/Core/arc_types.py +5064 -0
  63. arctrl/py/Core/comment.py +128 -0
  64. arctrl/py/Core/comment_list.py +127 -0
  65. arctrl/py/Core/conversion.py +1313 -0
  66. arctrl/py/Core/data.py +245 -0
  67. arctrl/py/Core/data_context.py +157 -0
  68. arctrl/py/Core/data_file.py +112 -0
  69. arctrl/py/Core/data_map.py +225 -0
  70. arctrl/py/Core/identifier_setters.py +31 -0
  71. arctrl/py/Core/iproperty_value.py +36 -0
  72. arctrl/py/Core/ontology_annotation.py +299 -0
  73. arctrl/py/Core/ontology_source_reference.py +114 -0
  74. arctrl/py/Core/person.py +259 -0
  75. arctrl/py/Core/publication.py +161 -0
  76. arctrl/py/Core/template.py +231 -0
  77. arctrl/py/Core/templates.py +148 -0
  78. arctrl/py/Core/uri.py +11 -0
  79. arctrl/py/Core/value.py +188 -0
  80. arctrl/py/FileSystem/__init__.py +0 -0
  81. arctrl/py/FileSystem/commit.py +21 -0
  82. arctrl/py/FileSystem/default_gitattributes.py +5 -0
  83. arctrl/py/FileSystem/default_gitignore.py +5 -0
  84. arctrl/py/FileSystem/file_system.py +58 -0
  85. arctrl/py/FileSystem/file_system_tree.py +426 -0
  86. arctrl/py/FileSystem/path.py +64 -0
  87. arctrl/py/Json/DataMap/__init__.py +0 -0
  88. arctrl/py/Json/DataMap/data_context.py +101 -0
  89. arctrl/py/Json/DataMap/data_map.py +53 -0
  90. arctrl/py/Json/Process/__init__.py +0 -0
  91. arctrl/py/Json/Process/assay_materials.py +46 -0
  92. arctrl/py/Json/Process/component.py +79 -0
  93. arctrl/py/Json/Process/factor.py +107 -0
  94. arctrl/py/Json/Process/factor_value.py +101 -0
  95. arctrl/py/Json/Process/material.py +226 -0
  96. arctrl/py/Json/Process/material_attribute.py +79 -0
  97. arctrl/py/Json/Process/material_attribute_value.py +101 -0
  98. arctrl/py/Json/Process/material_type.py +53 -0
  99. arctrl/py/Json/Process/process.py +296 -0
  100. arctrl/py/Json/Process/process_input.py +83 -0
  101. arctrl/py/Json/Process/process_output.py +67 -0
  102. arctrl/py/Json/Process/process_parameter_value.py +81 -0
  103. arctrl/py/Json/Process/protocol.py +354 -0
  104. arctrl/py/Json/Process/protocol_parameter.py +79 -0
  105. arctrl/py/Json/Process/sample.py +277 -0
  106. arctrl/py/Json/Process/source.py +214 -0
  107. arctrl/py/Json/Process/study_materials.py +52 -0
  108. arctrl/py/Json/Process/value.py +56 -0
  109. arctrl/py/Json/ROCrate/__init__.py +0 -0
  110. arctrl/py/Json/ROCrate/ldcontext.py +133 -0
  111. arctrl/py/Json/ROCrate/ldgraph.py +111 -0
  112. arctrl/py/Json/ROCrate/ldnode.py +290 -0
  113. arctrl/py/Json/ROCrate/ldref.py +44 -0
  114. arctrl/py/Json/ROCrate/ldvalue.py +102 -0
  115. arctrl/py/Json/Table/__init__.py +0 -0
  116. arctrl/py/Json/Table/arc_table.py +393 -0
  117. arctrl/py/Json/Table/cell_table.py +83 -0
  118. arctrl/py/Json/Table/composite_cell.py +136 -0
  119. arctrl/py/Json/Table/composite_header.py +67 -0
  120. arctrl/py/Json/Table/iotype.py +24 -0
  121. arctrl/py/Json/Table/oatable.py +82 -0
  122. arctrl/py/Json/Table/templates.py +281 -0
  123. arctrl/py/Json/__init__.py +0 -0
  124. arctrl/py/Json/assay.py +600 -0
  125. arctrl/py/Json/comment.py +206 -0
  126. arctrl/py/Json/context/rocrate/__init__.py +0 -0
  127. arctrl/py/Json/context/rocrate/isa_assay_context.py +101 -0
  128. arctrl/py/Json/context/rocrate/isa_comment_context.py +60 -0
  129. arctrl/py/Json/context/rocrate/isa_component_context.py +77 -0
  130. arctrl/py/Json/context/rocrate/isa_data_context.py +74 -0
  131. arctrl/py/Json/context/rocrate/isa_factor_context.py +74 -0
  132. arctrl/py/Json/context/rocrate/isa_factor_value_context.py +84 -0
  133. arctrl/py/Json/context/rocrate/isa_investigation_context.py +110 -0
  134. arctrl/py/Json/context/rocrate/isa_material_attribute_context.py +64 -0
  135. arctrl/py/Json/context/rocrate/isa_material_attribute_value_context.py +80 -0
  136. arctrl/py/Json/context/rocrate/isa_material_context.py +71 -0
  137. arctrl/py/Json/context/rocrate/isa_ontology_annotation_context.py +68 -0
  138. arctrl/py/Json/context/rocrate/isa_ontology_source_reference_context.py +75 -0
  139. arctrl/py/Json/context/rocrate/isa_organization_context.py +55 -0
  140. arctrl/py/Json/context/rocrate/isa_person_context.py +131 -0
  141. arctrl/py/Json/context/rocrate/isa_process_context.py +94 -0
  142. arctrl/py/Json/context/rocrate/isa_process_parameter_value_context.py +80 -0
  143. arctrl/py/Json/context/rocrate/isa_protocol_context.py +97 -0
  144. arctrl/py/Json/context/rocrate/isa_protocol_parameter_context.py +64 -0
  145. arctrl/py/Json/context/rocrate/isa_publication_context.py +78 -0
  146. arctrl/py/Json/context/rocrate/isa_sample_context.py +65 -0
  147. arctrl/py/Json/context/rocrate/isa_source_context.py +66 -0
  148. arctrl/py/Json/context/rocrate/isa_study_context.py +125 -0
  149. arctrl/py/Json/context/rocrate/property_value_context.py +73 -0
  150. arctrl/py/Json/context/rocrate/rocrate_context.py +81 -0
  151. arctrl/py/Json/converter_options.py +23 -0
  152. arctrl/py/Json/data.py +356 -0
  153. arctrl/py/Json/data_file.py +63 -0
  154. arctrl/py/Json/decode.py +155 -0
  155. arctrl/py/Json/encode.py +92 -0
  156. arctrl/py/Json/idtable.py +44 -0
  157. arctrl/py/Json/investigation.py +695 -0
  158. arctrl/py/Json/ontology_annotation.py +404 -0
  159. arctrl/py/Json/ontology_source_reference.py +255 -0
  160. arctrl/py/Json/person.py +658 -0
  161. arctrl/py/Json/property_value.py +359 -0
  162. arctrl/py/Json/publication.py +279 -0
  163. arctrl/py/Json/string_table.py +76 -0
  164. arctrl/py/Json/study.py +793 -0
  165. arctrl/py/JsonIO/DataMap/__init__.py +0 -0
  166. arctrl/py/JsonIO/DataMap/data_map.py +53 -0
  167. arctrl/py/JsonIO/Process/__init__.py +0 -0
  168. arctrl/py/JsonIO/Process/component.py +60 -0
  169. arctrl/py/JsonIO/Process/factor.py +36 -0
  170. arctrl/py/JsonIO/Process/factor_value.py +38 -0
  171. arctrl/py/JsonIO/Process/material.py +60 -0
  172. arctrl/py/JsonIO/Process/material_attribute.py +38 -0
  173. arctrl/py/JsonIO/Process/material_attribute_value.py +60 -0
  174. arctrl/py/JsonIO/Process/material_type.py +36 -0
  175. arctrl/py/JsonIO/Process/process.py +60 -0
  176. arctrl/py/JsonIO/Process/process_input.py +38 -0
  177. arctrl/py/JsonIO/Process/process_output.py +60 -0
  178. arctrl/py/JsonIO/Process/process_parameter_value.py +60 -0
  179. arctrl/py/JsonIO/Process/process_sequence.py +71 -0
  180. arctrl/py/JsonIO/Process/protocol.py +60 -0
  181. arctrl/py/JsonIO/Process/protocol_parameter.py +36 -0
  182. arctrl/py/JsonIO/Process/sample.py +60 -0
  183. arctrl/py/JsonIO/Process/source.py +60 -0
  184. arctrl/py/JsonIO/Process/study_materials.py +52 -0
  185. arctrl/py/JsonIO/Process/value.py +32 -0
  186. arctrl/py/JsonIO/Table/__init__.py +0 -0
  187. arctrl/py/JsonIO/Table/arc_table.py +121 -0
  188. arctrl/py/JsonIO/Table/composite_cell.py +36 -0
  189. arctrl/py/JsonIO/Table/composite_header.py +36 -0
  190. arctrl/py/JsonIO/Table/compression.py +85 -0
  191. arctrl/py/JsonIO/Table/iotype.py +36 -0
  192. arctrl/py/JsonIO/Table/templates.py +113 -0
  193. arctrl/py/JsonIO/__init__.py +0 -0
  194. arctrl/py/JsonIO/assay.py +113 -0
  195. arctrl/py/JsonIO/comment.py +80 -0
  196. arctrl/py/JsonIO/data.py +60 -0
  197. arctrl/py/JsonIO/data_file.py +58 -0
  198. arctrl/py/JsonIO/decode.py +9 -0
  199. arctrl/py/JsonIO/encode.py +1 -0
  200. arctrl/py/JsonIO/investigation.py +113 -0
  201. arctrl/py/JsonIO/ldobject.py +106 -0
  202. arctrl/py/JsonIO/ontology_annotation.py +80 -0
  203. arctrl/py/JsonIO/ontology_source_reference.py +80 -0
  204. arctrl/py/JsonIO/person.py +82 -0
  205. arctrl/py/JsonIO/publication.py +82 -0
  206. arctrl/py/JsonIO/study.py +114 -0
  207. arctrl/py/ROCrate/Generic/__init__.py +0 -0
  208. arctrl/py/ROCrate/Generic/comment.py +131 -0
  209. arctrl/py/ROCrate/Generic/dataset.py +817 -0
  210. arctrl/py/ROCrate/Generic/defined_term.py +131 -0
  211. arctrl/py/ROCrate/Generic/file.py +237 -0
  212. arctrl/py/ROCrate/Generic/lab_process.py +324 -0
  213. arctrl/py/ROCrate/Generic/lab_protocol.py +338 -0
  214. arctrl/py/ROCrate/Generic/organization.py +83 -0
  215. arctrl/py/ROCrate/Generic/person.py +484 -0
  216. arctrl/py/ROCrate/Generic/postal_address.py +195 -0
  217. arctrl/py/ROCrate/Generic/property_value.py +696 -0
  218. arctrl/py/ROCrate/Generic/sample.py +202 -0
  219. arctrl/py/ROCrate/Generic/scholarly_article.py +229 -0
  220. arctrl/py/ROCrate/ISAProfile/__init__.py +0 -0
  221. arctrl/py/ROCrate/ISAProfile/assay.py +70 -0
  222. arctrl/py/ROCrate/ISAProfile/data.py +65 -0
  223. arctrl/py/ROCrate/ISAProfile/dataset.py +24 -0
  224. arctrl/py/ROCrate/ISAProfile/investigation.py +73 -0
  225. arctrl/py/ROCrate/ISAProfile/lab_process.py +162 -0
  226. arctrl/py/ROCrate/ISAProfile/lab_protocol.py +37 -0
  227. arctrl/py/ROCrate/ISAProfile/person.py +72 -0
  228. arctrl/py/ROCrate/ISAProfile/property_value.py +98 -0
  229. arctrl/py/ROCrate/ISAProfile/sample.py +64 -0
  230. arctrl/py/ROCrate/ISAProfile/scholarly_article.py +98 -0
  231. arctrl/py/ROCrate/ISAProfile/study.py +74 -0
  232. arctrl/py/ROCrate/__init__.py +0 -0
  233. arctrl/py/ROCrate/arc_rocrate_metadata.py +39 -0
  234. arctrl/py/ROCrate/dyn_obj_extensions.py +1 -0
  235. arctrl/py/ROCrate/helper.py +8 -0
  236. arctrl/py/ROCrate/ldcontext.py +362 -0
  237. arctrl/py/ROCrate/ldobject.py +1247 -0
  238. arctrl/py/ROCrate/rocrate_context.py +51 -0
  239. arctrl/py/Spreadsheet/AnnotationTable/__init__.py +0 -0
  240. arctrl/py/Spreadsheet/AnnotationTable/arc_table.py +193 -0
  241. arctrl/py/Spreadsheet/AnnotationTable/composite_cell.py +78 -0
  242. arctrl/py/Spreadsheet/AnnotationTable/composite_column.py +210 -0
  243. arctrl/py/Spreadsheet/AnnotationTable/composite_header.py +623 -0
  244. arctrl/py/Spreadsheet/DataMapTable/__init__.py +0 -0
  245. arctrl/py/Spreadsheet/DataMapTable/data_map_column.py +114 -0
  246. arctrl/py/Spreadsheet/DataMapTable/data_map_header.py +618 -0
  247. arctrl/py/Spreadsheet/DataMapTable/data_map_table.py +119 -0
  248. arctrl/py/Spreadsheet/Metadata/__init__.py +0 -0
  249. arctrl/py/Spreadsheet/Metadata/assays.py +125 -0
  250. arctrl/py/Spreadsheet/Metadata/comment.py +77 -0
  251. arctrl/py/Spreadsheet/Metadata/contacts.py +134 -0
  252. arctrl/py/Spreadsheet/Metadata/conversions.py +190 -0
  253. arctrl/py/Spreadsheet/Metadata/design_descriptors.py +34 -0
  254. arctrl/py/Spreadsheet/Metadata/factors.py +107 -0
  255. arctrl/py/Spreadsheet/Metadata/ontology_annotation.py +88 -0
  256. arctrl/py/Spreadsheet/Metadata/ontology_source_reference.py +96 -0
  257. arctrl/py/Spreadsheet/Metadata/protocols.py +146 -0
  258. arctrl/py/Spreadsheet/Metadata/publication.py +122 -0
  259. arctrl/py/Spreadsheet/Metadata/run.py +122 -0
  260. arctrl/py/Spreadsheet/Metadata/sparse_table.py +508 -0
  261. arctrl/py/Spreadsheet/Metadata/study.py +312 -0
  262. arctrl/py/Spreadsheet/Metadata/workflow.py +151 -0
  263. arctrl/py/Spreadsheet/__init__.py +0 -0
  264. arctrl/py/Spreadsheet/arc_assay.py +233 -0
  265. arctrl/py/Spreadsheet/arc_investigation.py +418 -0
  266. arctrl/py/Spreadsheet/arc_run.py +190 -0
  267. arctrl/py/Spreadsheet/arc_study.py +144 -0
  268. arctrl/py/Spreadsheet/arc_workflow.py +176 -0
  269. arctrl/py/Spreadsheet/assembly_info.py +1 -0
  270. arctrl/py/Spreadsheet/collection_aux.py +167 -0
  271. arctrl/py/Spreadsheet/data_map.py +44 -0
  272. arctrl/py/Spreadsheet/template.py +460 -0
  273. arctrl/py/ValidationPackages/__init__.py +0 -0
  274. arctrl/py/ValidationPackages/validation_package.py +82 -0
  275. arctrl/py/ValidationPackages/validation_packages_config.py +132 -0
  276. arctrl/py/WebRequest/__init__.py +0 -0
  277. arctrl/py/WebRequest/web_request.py +9 -0
  278. arctrl/py/WebRequest/web_request_py.py +135 -0
  279. arctrl/py/Yaml/__init__.py +0 -0
  280. arctrl/py/Yaml/decode.py +1 -0
  281. arctrl/py/Yaml/encode.py +10 -0
  282. arctrl/py/Yaml/validation_package.py +77 -0
  283. arctrl/py/Yaml/validation_packages_config.py +86 -0
  284. arctrl/py/__init__.py +0 -0
  285. arctrl/py/arc.py +1400 -0
  286. arctrl/py/column_index.py +280 -0
  287. arctrl/py/conversion.py +2184 -0
  288. arctrl/py/cross_async.py +76 -0
  289. arctrl/py/fable_modules/dynamic_obj/__init__.py +0 -0
  290. arctrl/py/fable_modules/dynamic_obj/dyn_obj.py +136 -0
  291. arctrl/py/fable_modules/dynamic_obj/dynamic_obj.py +415 -0
  292. arctrl/py/fable_modules/dynamic_obj/fable_js.py +1 -0
  293. arctrl/py/fable_modules/dynamic_obj/fable_py.py +288 -0
  294. arctrl/py/fable_modules/dynamic_obj/hash_codes.py +82 -0
  295. arctrl/py/fable_modules/dynamic_obj/property_helper.py +25 -0
  296. arctrl/py/fable_modules/dynamic_obj/reflection_utils.py +87 -0
  297. arctrl/py/fable_modules/fable_library/__init__.py +0 -0
  298. arctrl/py/fable_modules/fable_library/array_.py +1528 -0
  299. arctrl/py/fable_modules/fable_library/async_.py +377 -0
  300. arctrl/py/fable_modules/fable_library/async_builder.py +379 -0
  301. arctrl/py/fable_modules/fable_library/big_int.py +330 -0
  302. arctrl/py/fable_modules/fable_library/bit_converter.py +131 -0
  303. arctrl/py/fable_modules/fable_library/boolean.py +26 -0
  304. arctrl/py/fable_modules/fable_library/char.py +237 -0
  305. arctrl/py/fable_modules/fable_library/choice.py +212 -0
  306. arctrl/py/fable_modules/fable_library/date.py +779 -0
  307. arctrl/py/fable_modules/fable_library/date_offset.py +79 -0
  308. arctrl/py/fable_modules/fable_library/decimal_.py +190 -0
  309. arctrl/py/fable_modules/fable_library/diagnostics.py +54 -0
  310. arctrl/py/fable_modules/fable_library/double.py +87 -0
  311. arctrl/py/fable_modules/fable_library/encoding.py +41 -0
  312. arctrl/py/fable_modules/fable_library/event.py +206 -0
  313. arctrl/py/fable_modules/fable_library/file.py +107 -0
  314. arctrl/py/fable_modules/fable_library/fsharp_collections.py +52 -0
  315. arctrl/py/fable_modules/fable_library/fsharp_core.py +123 -0
  316. arctrl/py/fable_modules/fable_library/global_.py +63 -0
  317. arctrl/py/fable_modules/fable_library/guid.py +41 -0
  318. arctrl/py/fable_modules/fable_library/int32.py +73 -0
  319. arctrl/py/fable_modules/fable_library/list.py +1788 -0
  320. arctrl/py/fable_modules/fable_library/long.py +240 -0
  321. arctrl/py/fable_modules/fable_library/mailbox_processor.py +179 -0
  322. arctrl/py/fable_modules/fable_library/map.py +1854 -0
  323. arctrl/py/fable_modules/fable_library/map_util.py +148 -0
  324. arctrl/py/fable_modules/fable_library/mutable_map.py +397 -0
  325. arctrl/py/fable_modules/fable_library/mutable_set.py +279 -0
  326. arctrl/py/fable_modules/fable_library/native.py +45 -0
  327. arctrl/py/fable_modules/fable_library/numeric.py +46 -0
  328. arctrl/py/fable_modules/fable_library/observable.py +222 -0
  329. arctrl/py/fable_modules/fable_library/option.py +128 -0
  330. arctrl/py/fable_modules/fable_library/path.py +62 -0
  331. arctrl/py/fable_modules/fable_library/range.py +117 -0
  332. arctrl/py/fable_modules/fable_library/reflection.py +463 -0
  333. arctrl/py/fable_modules/fable_library/reg_exp.py +137 -0
  334. arctrl/py/fable_modules/fable_library/resize_array.py +31 -0
  335. arctrl/py/fable_modules/fable_library/result.py +212 -0
  336. arctrl/py/fable_modules/fable_library/seq.py +1979 -0
  337. arctrl/py/fable_modules/fable_library/seq2.py +221 -0
  338. arctrl/py/fable_modules/fable_library/set.py +2414 -0
  339. arctrl/py/fable_modules/fable_library/singleton_local_time_zone.py +36 -0
  340. arctrl/py/fable_modules/fable_library/string_.py +573 -0
  341. arctrl/py/fable_modules/fable_library/system_collections_generic.py +462 -0
  342. arctrl/py/fable_modules/fable_library/system_text.py +237 -0
  343. arctrl/py/fable_modules/fable_library/task.py +116 -0
  344. arctrl/py/fable_modules/fable_library/task_builder.py +122 -0
  345. arctrl/py/fable_modules/fable_library/thread.py +5 -0
  346. arctrl/py/fable_modules/fable_library/time_span.py +283 -0
  347. arctrl/py/fable_modules/fable_library/timer.py +24 -0
  348. arctrl/py/fable_modules/fable_library/types.py +401 -0
  349. arctrl/py/fable_modules/fable_library/uri.py +109 -0
  350. arctrl/py/fable_modules/fable_library/util.py +2735 -0
  351. arctrl/py/fable_modules/fable_openpyxl/__init__.py +0 -0
  352. arctrl/py/fable_modules/fable_openpyxl/openpyxl.py +362 -0
  353. arctrl/py/fable_modules/fable_python/cognite-sdk/__init__.py +0 -0
  354. arctrl/py/fable_modules/fable_python/cognite-sdk/cognite_sdk.py +22 -0
  355. arctrl/py/fable_modules/fable_python/flask/__init__.py +0 -0
  356. arctrl/py/fable_modules/fable_python/flask/flask.py +34 -0
  357. arctrl/py/fable_modules/fable_python/jupyter/__init__.py +0 -0
  358. arctrl/py/fable_modules/fable_python/jupyter/ipy_widgets.py +47 -0
  359. arctrl/py/fable_modules/fable_python/jupyter/ipython.py +13 -0
  360. arctrl/py/fable_modules/fable_python/stdlib/__init__.py +0 -0
  361. arctrl/py/fable_modules/fable_python/stdlib/ast.py +1 -0
  362. arctrl/py/fable_modules/fable_python/stdlib/asyncio/__init__.py +0 -0
  363. arctrl/py/fable_modules/fable_python/stdlib/asyncio/events.py +17 -0
  364. arctrl/py/fable_modules/fable_python/stdlib/asyncio/futures.py +52 -0
  365. arctrl/py/fable_modules/fable_python/stdlib/asyncio/tasks.py +38 -0
  366. arctrl/py/fable_modules/fable_python/stdlib/base64_.py +1 -0
  367. arctrl/py/fable_modules/fable_python/stdlib/builtins_.py +38 -0
  368. arctrl/py/fable_modules/fable_python/stdlib/html.py +1 -0
  369. arctrl/py/fable_modules/fable_python/stdlib/json.py +1 -0
  370. arctrl/py/fable_modules/fable_python/stdlib/math_.py +1 -0
  371. arctrl/py/fable_modules/fable_python/stdlib/os_.py +1 -0
  372. arctrl/py/fable_modules/fable_python/stdlib/queue_.py +1 -0
  373. arctrl/py/fable_modules/fable_python/stdlib/string_.py +1 -0
  374. arctrl/py/fable_modules/fable_python/stdlib/sys_.py +30 -0
  375. arctrl/py/fable_modules/fable_python/stdlib/time_.py +1 -0
  376. arctrl/py/fable_modules/fable_python/stdlib/tk_inter.py +1 -0
  377. arctrl/py/fable_modules/fs_spreadsheet/Cells/__init__.py +0 -0
  378. arctrl/py/fable_modules/fs_spreadsheet/Cells/fs_cell.py +338 -0
  379. arctrl/py/fable_modules/fs_spreadsheet/Cells/fs_cells_collection.py +469 -0
  380. arctrl/py/fable_modules/fs_spreadsheet/DSL/__init__.py +0 -0
  381. arctrl/py/fable_modules/fs_spreadsheet/DSL/cell_builder.py +214 -0
  382. arctrl/py/fable_modules/fs_spreadsheet/DSL/column_builder.py +139 -0
  383. arctrl/py/fable_modules/fs_spreadsheet/DSL/dsl.py +50 -0
  384. arctrl/py/fable_modules/fs_spreadsheet/DSL/expression.py +65 -0
  385. arctrl/py/fable_modules/fs_spreadsheet/DSL/operators.py +9 -0
  386. arctrl/py/fable_modules/fs_spreadsheet/DSL/row_builder.py +139 -0
  387. arctrl/py/fable_modules/fs_spreadsheet/DSL/sheet_builder.py +118 -0
  388. arctrl/py/fable_modules/fs_spreadsheet/DSL/table_builder.py +122 -0
  389. arctrl/py/fable_modules/fs_spreadsheet/DSL/transform.py +464 -0
  390. arctrl/py/fable_modules/fs_spreadsheet/DSL/types.py +314 -0
  391. arctrl/py/fable_modules/fs_spreadsheet/DSL/workbook_builder.py +106 -0
  392. arctrl/py/fable_modules/fs_spreadsheet/Json/__init__.py +0 -0
  393. arctrl/py/fable_modules/fs_spreadsheet/Json/cell.py +103 -0
  394. arctrl/py/fable_modules/fs_spreadsheet/Json/column.py +70 -0
  395. arctrl/py/fable_modules/fs_spreadsheet/Json/row.py +70 -0
  396. arctrl/py/fable_modules/fs_spreadsheet/Json/table.py +57 -0
  397. arctrl/py/fable_modules/fs_spreadsheet/Json/value.py +93 -0
  398. arctrl/py/fable_modules/fs_spreadsheet/Json/workbook.py +71 -0
  399. arctrl/py/fable_modules/fs_spreadsheet/Json/worksheet.py +217 -0
  400. arctrl/py/fable_modules/fs_spreadsheet/Ranges/__init__.py +0 -0
  401. arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range.py +47 -0
  402. arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_address.py +186 -0
  403. arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_base.py +90 -0
  404. arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_column.py +78 -0
  405. arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_row.py +48 -0
  406. arctrl/py/fable_modules/fs_spreadsheet/Tables/__init__.py +0 -0
  407. arctrl/py/fable_modules/fs_spreadsheet/Tables/fs_table.py +393 -0
  408. arctrl/py/fable_modules/fs_spreadsheet/Tables/fs_table_field.py +127 -0
  409. arctrl/py/fable_modules/fs_spreadsheet/Tables/fs_table_row.py +23 -0
  410. arctrl/py/fable_modules/fs_spreadsheet/__init__.py +0 -0
  411. arctrl/py/fable_modules/fs_spreadsheet/fs_address.py +218 -0
  412. arctrl/py/fable_modules/fs_spreadsheet/fs_column.py +172 -0
  413. arctrl/py/fable_modules/fs_spreadsheet/fs_row.py +183 -0
  414. arctrl/py/fable_modules/fs_spreadsheet/fs_workbook.py +180 -0
  415. arctrl/py/fable_modules/fs_spreadsheet/fs_worksheet.py +600 -0
  416. arctrl/py/fable_modules/fs_spreadsheet/sheet_builder.py +330 -0
  417. arctrl/py/fable_modules/fs_spreadsheet_py/__init__.py +0 -0
  418. arctrl/py/fable_modules/fs_spreadsheet_py/cell.py +63 -0
  419. arctrl/py/fable_modules/fs_spreadsheet_py/cell_type.py +50 -0
  420. arctrl/py/fable_modules/fs_spreadsheet_py/fs_extension.py +60 -0
  421. arctrl/py/fable_modules/fs_spreadsheet_py/json.py +47 -0
  422. arctrl/py/fable_modules/fs_spreadsheet_py/table.py +53 -0
  423. arctrl/py/fable_modules/fs_spreadsheet_py/workbook.py +40 -0
  424. arctrl/py/fable_modules/fs_spreadsheet_py/worksheet.py +54 -0
  425. arctrl/py/fable_modules/fs_spreadsheet_py/xlsx.py +37 -0
  426. arctrl/py/fable_modules/thoth_json_core/__init__.py +0 -0
  427. arctrl/py/fable_modules/thoth_json_core/decode.py +1588 -0
  428. arctrl/py/fable_modules/thoth_json_core/encode.py +261 -0
  429. arctrl/py/fable_modules/thoth_json_core/types.py +181 -0
  430. arctrl/py/fable_modules/thoth_json_python/__init__.py +0 -0
  431. arctrl/py/fable_modules/thoth_json_python/decode.py +112 -0
  432. arctrl/py/fable_modules/thoth_json_python/encode.py +72 -0
  433. arctrl/py/fable_modules/thoth_json_python/python.py +1 -0
  434. arctrl/py/fable_modules/yamlicious/Interop/__init__.py +0 -0
  435. arctrl/py/fable_modules/yamlicious/Interop/js_interop.py +1 -0
  436. arctrl/py/fable_modules/yamlicious/Interop/py_interop.py +7 -0
  437. arctrl/py/fable_modules/yamlicious/__init__.py +0 -0
  438. arctrl/py/fable_modules/yamlicious/decode.py +1784 -0
  439. arctrl/py/fable_modules/yamlicious/encode.py +84 -0
  440. arctrl/py/fable_modules/yamlicious/library.py +10 -0
  441. arctrl/py/fable_modules/yamlicious/persil.py +57 -0
  442. arctrl/py/fable_modules/yamlicious/preprocessing.py +99 -0
  443. arctrl/py/fable_modules/yamlicious/reader.py +665 -0
  444. arctrl/py/fable_modules/yamlicious/regex.py +21 -0
  445. arctrl/py/fable_modules/yamlicious/regex_active_patterns.py +256 -0
  446. arctrl/py/fable_modules/yamlicious/writer.py +175 -0
  447. arctrl/py/fable_modules/yamlicious/yamlicious_types.py +128 -0
  448. arctrl/py/json.py +213 -0
  449. arctrl/py/rocrate_io.py +72 -0
  450. arctrl/py/template_web.py +23 -0
  451. arctrl/py/xlsx.py +148 -0
  452. arctrl/rocrate.py +21 -0
  453. arctrl-3.0.0a3.dist-info/LICENSE +21 -0
  454. arctrl-3.0.0a3.dist-info/METADATA +119 -0
  455. arctrl-3.0.0a3.dist-info/RECORD +456 -0
  456. arctrl-3.0.0a3.dist-info/WHEEL +4 -0
arctrl/py/Core/data.py ADDED
@@ -0,0 +1,245 @@
1
+ from __future__ import annotations
2
+ from collections.abc import Callable
3
+ from typing import Any
4
+ from ..fable_modules.fable_library.option import default_arg
5
+ from ..fable_modules.fable_library.reflection import (TypeInfo, class_type)
6
+ from ..fable_modules.fable_library.string_ import (to_text, printf, trim, starts_with_exact, trim_start)
7
+ from ..fable_modules.fable_library.types import (Array, to_string)
8
+ from .comment import Comment
9
+ from .data_file import (DataFile, DataFile__get_AsString)
10
+ from .Helper.collections_ import ResizeArray_map
11
+ from .Helper.hash_codes import (box_hash_array, box_hash_option, box_hash_seq, hash_1)
12
+
13
+ def DataAux_nameFromPathAndSelector(path: str, selector: str) -> str:
14
+ return to_text(printf("%s#%s"))(path)(selector)
15
+
16
+
17
+ def DataAux_pathAndSelectorFromName(name: str) -> tuple[str, str | None]:
18
+ name_1: str = trim(name, "#")
19
+ parts: Array[str] = name_1.split("#")
20
+ if len(parts) == 2:
21
+ return (parts[0], parts[1])
22
+
23
+ else:
24
+ return (name_1, None)
25
+
26
+
27
+
28
+ def _expr545() -> TypeInfo:
29
+ return class_type("ARCtrl.Data", None, Data)
30
+
31
+
32
+ class Data:
33
+ def __init__(self, id: str | None=None, name: str | None=None, data_type: DataFile | None=None, format: str | None=None, selector_format: str | None=None, comments: Array[Comment] | None=None) -> None:
34
+ self._id: str | None = id
35
+ pattern_input_1: tuple[str | None, str | None]
36
+ if name is None:
37
+ pattern_input_1 = (None, None)
38
+
39
+ else:
40
+ pattern_input: tuple[str, str | None] = DataAux_pathAndSelectorFromName(name)
41
+ pattern_input_1 = (pattern_input[0], pattern_input[1])
42
+
43
+ self._selector: str | None = pattern_input_1[1]
44
+ self._filePath: str | None = pattern_input_1[0]
45
+ self._dataType: DataFile | None = data_type
46
+ self._format: str | None = format
47
+ self._selectorFormat: str | None = selector_format
48
+ self._comments: Array[Comment] = default_arg(comments, [])
49
+
50
+ @property
51
+ def ID(self, __unit: None=None) -> str | None:
52
+ this: Data = self
53
+ return this._id
54
+
55
+ @ID.setter
56
+ def ID(self, id: str | None=None) -> None:
57
+ this: Data = self
58
+ this._id = id
59
+
60
+ @property
61
+ def Name(self, __unit: None=None) -> str | None:
62
+ this: Data = self
63
+ match_value: str | None = this._filePath
64
+ match_value_1: str | None = this._selector
65
+ def _arrow540(__unit: None=None) -> str | None:
66
+ p_1: str = match_value
67
+ return p_1
68
+
69
+ def _arrow541(__unit: None=None) -> str | None:
70
+ p: str = match_value
71
+ s: str = match_value_1
72
+ return DataAux_nameFromPathAndSelector(p, s)
73
+
74
+ return None if (match_value is None) else (_arrow540() if (match_value_1 is None) else _arrow541())
75
+
76
+ @Name.setter
77
+ def Name(self, name: str | None=None) -> None:
78
+ this: Data = self
79
+ if name is None:
80
+ this._filePath = None
81
+ this._selector = None
82
+
83
+ else:
84
+ pattern_input: tuple[str, str | None] = DataAux_pathAndSelectorFromName(name)
85
+ this._filePath = pattern_input[0]
86
+ this._selector = pattern_input[1]
87
+
88
+
89
+ @property
90
+ def FilePath(self, __unit: None=None) -> str | None:
91
+ this: Data = self
92
+ return this._filePath
93
+
94
+ @FilePath.setter
95
+ def FilePath(self, file_path: str | None=None) -> None:
96
+ this: Data = self
97
+ this._filePath = file_path
98
+
99
+ @property
100
+ def Selector(self, __unit: None=None) -> str | None:
101
+ this: Data = self
102
+ return this._selector
103
+
104
+ @Selector.setter
105
+ def Selector(self, selector: str | None=None) -> None:
106
+ this: Data = self
107
+ this._selector = selector
108
+
109
+ @property
110
+ def DataType(self, __unit: None=None) -> DataFile | None:
111
+ this: Data = self
112
+ return this._dataType
113
+
114
+ @DataType.setter
115
+ def DataType(self, data_type: DataFile | None=None) -> None:
116
+ this: Data = self
117
+ this._dataType = data_type
118
+
119
+ @property
120
+ def Format(self, __unit: None=None) -> str | None:
121
+ this: Data = self
122
+ return this._format
123
+
124
+ @Format.setter
125
+ def Format(self, format: str | None=None) -> None:
126
+ this: Data = self
127
+ this._format = format
128
+
129
+ @property
130
+ def SelectorFormat(self, __unit: None=None) -> str | None:
131
+ this: Data = self
132
+ return this._selectorFormat
133
+
134
+ @SelectorFormat.setter
135
+ def SelectorFormat(self, selector_format: str | None=None) -> None:
136
+ this: Data = self
137
+ this._selectorFormat = selector_format
138
+
139
+ @property
140
+ def Comments(self, __unit: None=None) -> Array[Comment]:
141
+ this: Data = self
142
+ return this._comments
143
+
144
+ @Comments.setter
145
+ def Comments(self, comments: Array[Comment]) -> None:
146
+ this: Data = self
147
+ this._comments = comments
148
+
149
+ @staticmethod
150
+ def make(id: str | None=None, name: str | None=None, data_type: DataFile | None=None, format: str | None=None, selector_format: str | None=None, comments: Array[Comment] | None=None) -> Data:
151
+ return Data(id, name, data_type, format, selector_format, comments)
152
+
153
+ @staticmethod
154
+ def create(Id: str | None=None, Name: str | None=None, DataType: DataFile | None=None, Format: str | None=None, SelectorFormat: str | None=None, Comments: Array[Comment] | None=None) -> Data:
155
+ return Data.make(Id, Name, DataType, Format, SelectorFormat, Comments)
156
+
157
+ @staticmethod
158
+ def empty() -> Data:
159
+ return Data.create()
160
+
161
+ @property
162
+ def NameText(self, __unit: None=None) -> str:
163
+ this: Data = self
164
+ return default_arg(this.Name, "")
165
+
166
+ def GetAbsolutePathBy(self, f: Callable[[str], str], check_existence_from_root: Callable[[str], bool] | None=None) -> str:
167
+ this: Data = self
168
+ def _arrow542(_arg: str) -> bool:
169
+ return False
170
+
171
+ check_existence_from_root_1: Callable[[str], bool] = default_arg(check_existence_from_root, _arrow542)
172
+ match_value: str | None = this.FilePath
173
+ if match_value is None:
174
+ raise Exception("Data does not have a file path")
175
+
176
+ else:
177
+ p_2: str = match_value
178
+ def _arrow543(__unit: None=None) -> bool:
179
+ p: str = p_2
180
+ return True if (True if (True if starts_with_exact(p, "assays/") else starts_with_exact(p, "studies/")) else starts_with_exact(p, "workflows/")) else starts_with_exact(p, "runs/")
181
+
182
+ def _arrow544(__unit: None=None) -> bool:
183
+ p_1: str = p_2
184
+ return True if starts_with_exact(p_1, "http:") else starts_with_exact(p_1, "https:")
185
+
186
+ return p_2 if (True if (True if check_existence_from_root_1(p_2) else _arrow543()) else _arrow544()) else f(p_2)
187
+
188
+
189
+ def GetAbsolutePathForAssay(self, assay_identifier: str, check_existence_from_root: Callable[[str], bool] | None=None) -> str:
190
+ this: Data = self
191
+ def f(p: str) -> str:
192
+ return (("assays/" + assay_identifier) + "/dataset/") + trim_start(p, "/")
193
+
194
+ return this.GetAbsolutePathBy(f, check_existence_from_root)
195
+
196
+ def GetAbsolutePathForStudy(self, study_identifier: str, check_existence_from_root: Callable[[str], bool] | None=None) -> str:
197
+ this: Data = self
198
+ def f(p: str) -> str:
199
+ return (("studies/" + study_identifier) + "/resources/") + trim_start(p, "/")
200
+
201
+ return this.GetAbsolutePathBy(f, check_existence_from_root)
202
+
203
+ def Copy(self, __unit: None=None) -> Data:
204
+ this: Data = self
205
+ def f(c: Comment) -> Comment:
206
+ return c.Copy()
207
+
208
+ next_comments: Array[Comment] = ResizeArray_map(f, this.Comments)
209
+ return Data(this.ID, this.Name, this.DataType, this.Format, this.SelectorFormat, next_comments)
210
+
211
+ def __hash__(self, __unit: None=None) -> Any:
212
+ this: Data = self
213
+ return box_hash_array([box_hash_option(this.ID), box_hash_option(this.Name), box_hash_option(this.DataType), box_hash_option(this.Format), box_hash_option(this.SelectorFormat), box_hash_seq(this.Comments)])
214
+
215
+ def __eq__(self, obj: Any=None) -> bool:
216
+ this: Data = self
217
+ return hash_1(this) == hash_1(obj)
218
+
219
+ def Print(self, __unit: None=None) -> str:
220
+ this: Data = self
221
+ return to_string(this)
222
+
223
+ def PrintCompact(self, __unit: None=None) -> str:
224
+ this: Data = self
225
+ match_value: DataFile | None = this.DataType
226
+ if match_value is None:
227
+ arg_2: str = this.NameText
228
+ return to_text(printf("%s"))(arg_2)
229
+
230
+ else:
231
+ t: DataFile = match_value
232
+ arg: str = this.NameText
233
+ arg_1: str = DataFile__get_AsString(t)
234
+ return to_text(printf("%s [%s]"))(arg)(arg_1)
235
+
236
+
237
+
238
+ Data_reflection = _expr545
239
+
240
+ def Data__ctor_5909441C(id: str | None=None, name: str | None=None, data_type: DataFile | None=None, format: str | None=None, selector_format: str | None=None, comments: Array[Comment] | None=None) -> Data:
241
+ return Data(id, name, data_type, format, selector_format, comments)
242
+
243
+
244
+ __all__ = ["DataAux_nameFromPathAndSelector", "DataAux_pathAndSelectorFromName", "Data_reflection"]
245
+
@@ -0,0 +1,157 @@
1
+ from __future__ import annotations
2
+ from typing import Any
3
+ from ..fable_modules.fable_library.option import map
4
+ from ..fable_modules.fable_library.reflection import (TypeInfo, class_type)
5
+ from ..fable_modules.fable_library.types import Array
6
+ from .comment import Comment
7
+ from .data import (Data, Data_reflection)
8
+ from .data_file import DataFile
9
+ from .Helper.hash_codes import (box_hash_array, box_hash_option, box_hash_seq, hash_1)
10
+ from .ontology_annotation import OntologyAnnotation
11
+ from .value import Value as Value_1
12
+
13
+ def _expr546() -> TypeInfo:
14
+ return class_type("ARCtrl.DataContext", None, DataContext, Data_reflection())
15
+
16
+
17
+ class DataContext(Data):
18
+ def __init__(self, id: str | None=None, name: str | None=None, data_type: DataFile | None=None, format: str | None=None, selector_format: str | None=None, explication: OntologyAnnotation | None=None, unit: OntologyAnnotation | None=None, object_type: OntologyAnnotation | None=None, label: str | None=None, description: str | None=None, generated_by: str | None=None, comments: Array[Comment] | None=None) -> None:
19
+ super().__init__(id, name, data_type, format, selector_format, comments)
20
+ self._explication: OntologyAnnotation | None = explication
21
+ self._unit: OntologyAnnotation | None = unit
22
+ self._objectType: OntologyAnnotation | None = object_type
23
+ self._label: str | None = label
24
+ self._description: str | None = description
25
+ self._generatedBy: str | None = generated_by
26
+
27
+ def __hash__(self, __unit: None=None) -> Any:
28
+ this: DataContext = self
29
+ return box_hash_array([box_hash_option(this.ID), box_hash_option(this.Name), box_hash_option(this.DataType), box_hash_option(this.Format), box_hash_option(this.SelectorFormat), box_hash_seq(this.Comments), box_hash_option(DataContext__get_Explication(this)), box_hash_option(DataContext__get_Unit(this)), box_hash_option(DataContext__get_ObjectType(this)), box_hash_option(DataContext__get_Label(this)), box_hash_option(DataContext__get_Description(this)), box_hash_option(DataContext__get_GeneratedBy(this))])
30
+
31
+ def __eq__(self, obj: Any=None) -> bool:
32
+ this: DataContext = self
33
+ return hash_1(this) == hash_1(obj)
34
+
35
+ def AlternateName(self, __unit: None=None) -> str | None:
36
+ this: DataContext = self
37
+ return DataContext__get_Label(this)
38
+
39
+ def MeasurementMethod(self, __unit: None=None) -> str | None:
40
+ this: DataContext = self
41
+ return DataContext__get_GeneratedBy(this)
42
+
43
+ def GetCategory(self, __unit: None=None) -> OntologyAnnotation | None:
44
+ this: DataContext = self
45
+ return DataContext__get_Explication(this)
46
+
47
+ def GetValue(self, __unit: None=None) -> Value_1 | None:
48
+ this: DataContext = self
49
+ def mapping(Item: OntologyAnnotation) -> Value_1:
50
+ return Value_1(0, Item)
51
+
52
+ return map(mapping, DataContext__get_ObjectType(this))
53
+
54
+ def GetUnit(self, __unit: None=None) -> OntologyAnnotation | None:
55
+ this: DataContext = self
56
+ return DataContext__get_Unit(this)
57
+
58
+ def GetAdditionalType(self, __unit: None=None) -> str:
59
+ return "DataContext"
60
+
61
+ def Description(self, __unit: None=None) -> str | None:
62
+ this: DataContext = self
63
+ return DataContext__get_Description(this)
64
+
65
+
66
+ DataContext_reflection = _expr546
67
+
68
+ def DataContext__ctor_Z780A8A2A(id: str | None=None, name: str | None=None, data_type: DataFile | None=None, format: str | None=None, selector_format: str | None=None, explication: OntologyAnnotation | None=None, unit: OntologyAnnotation | None=None, object_type: OntologyAnnotation | None=None, label: str | None=None, description: str | None=None, generated_by: str | None=None, comments: Array[Comment] | None=None) -> DataContext:
69
+ return DataContext(id, name, data_type, format, selector_format, explication, unit, object_type, label, description, generated_by, comments)
70
+
71
+
72
+ def DataContext__get_Explication(this: DataContext) -> OntologyAnnotation | None:
73
+ return this._explication
74
+
75
+
76
+ def DataContext__set_Explication_279AAFF2(this: DataContext, explication: OntologyAnnotation | None=None) -> None:
77
+ this._explication = explication
78
+
79
+
80
+ def DataContext__get_Unit(this: DataContext) -> OntologyAnnotation | None:
81
+ return this._unit
82
+
83
+
84
+ def DataContext__set_Unit_279AAFF2(this: DataContext, unit: OntologyAnnotation | None=None) -> None:
85
+ this._unit = unit
86
+
87
+
88
+ def DataContext__get_ObjectType(this: DataContext) -> OntologyAnnotation | None:
89
+ return this._objectType
90
+
91
+
92
+ def DataContext__set_ObjectType_279AAFF2(this: DataContext, object_type: OntologyAnnotation | None=None) -> None:
93
+ this._objectType = object_type
94
+
95
+
96
+ def DataContext__get_Label(this: DataContext) -> str | None:
97
+ return this._label
98
+
99
+
100
+ def DataContext__set_Label_6DFDD678(this: DataContext, label: str | None=None) -> None:
101
+ this._label = label
102
+
103
+
104
+ def DataContext__get_Description(this: DataContext) -> str | None:
105
+ return this._description
106
+
107
+
108
+ def DataContext__set_Description_6DFDD678(this: DataContext, description: str | None=None) -> None:
109
+ this._description = description
110
+
111
+
112
+ def DataContext__get_GeneratedBy(this: DataContext) -> str | None:
113
+ return this._generatedBy
114
+
115
+
116
+ def DataContext__set_GeneratedBy_6DFDD678(this: DataContext, generated_by: str | None=None) -> None:
117
+ this._generatedBy = generated_by
118
+
119
+
120
+ def DataContext__AsData(this: DataContext) -> Data:
121
+ return Data(this.ID, this.Name, this.DataType, this.Format, this.SelectorFormat, this.Comments)
122
+
123
+
124
+ def DataContext_fromData_Z7B4D7BF5(data: Data, explication: OntologyAnnotation | None=None, unit: OntologyAnnotation | None=None, object_type: OntologyAnnotation | None=None, label: str | None=None, description: str | None=None, generated_by: str | None=None) -> DataContext:
125
+ return DataContext__ctor_Z780A8A2A(data.ID, data.Name, data.DataType, data.Format, data.SelectorFormat, explication, unit, object_type, label, description, generated_by, data.Comments)
126
+
127
+
128
+ def DataContext_createAsPV(alternate_name: str | None=None, measurement_method: str | None=None, description: str | None=None, category: OntologyAnnotation | None=None, value: Value_1 | None=None, unit: OntologyAnnotation | None=None) -> DataContext:
129
+ def _arrow547(__unit: None=None, alternate_name: Any=alternate_name, measurement_method: Any=measurement_method, description: Any=description, category: Any=category, value: Any=value, unit: Any=unit) -> OntologyAnnotation | None:
130
+ oa: OntologyAnnotation = value.fields[0]
131
+ return oa
132
+
133
+ def _arrow548(__unit: None=None, alternate_name: Any=alternate_name, measurement_method: Any=measurement_method, description: Any=description, category: Any=category, value: Any=value, unit: Any=unit) -> OntologyAnnotation | None:
134
+ v: Value_1 = value
135
+ return OntologyAnnotation(v.Text)
136
+
137
+ return DataContext__ctor_Z780A8A2A(None, None, None, None, None, category, unit, None if (value is None) else (_arrow547() if (value.tag == 0) else _arrow548()), alternate_name, description, measurement_method)
138
+
139
+
140
+ def DataContext__Copy(this: DataContext) -> DataContext:
141
+ copy: DataContext = DataContext__ctor_Z780A8A2A()
142
+ copy.ID = this.ID
143
+ copy.Name = this.Name
144
+ copy.DataType = this.DataType
145
+ copy.Format = this.Format
146
+ copy.SelectorFormat = this.SelectorFormat
147
+ DataContext__set_Explication_279AAFF2(copy, DataContext__get_Explication(this))
148
+ DataContext__set_Unit_279AAFF2(copy, DataContext__get_Unit(this))
149
+ DataContext__set_ObjectType_279AAFF2(copy, DataContext__get_ObjectType(this))
150
+ DataContext__set_Description_6DFDD678(copy, DataContext__get_Description(this))
151
+ DataContext__set_GeneratedBy_6DFDD678(copy, DataContext__get_GeneratedBy(this))
152
+ copy.Comments = this.Comments
153
+ return copy
154
+
155
+
156
+ __all__ = ["DataContext_reflection", "DataContext__get_Explication", "DataContext__set_Explication_279AAFF2", "DataContext__get_Unit", "DataContext__set_Unit_279AAFF2", "DataContext__get_ObjectType", "DataContext__set_ObjectType_279AAFF2", "DataContext__get_Label", "DataContext__set_Label_6DFDD678", "DataContext__get_Description", "DataContext__set_Description_6DFDD678", "DataContext__get_GeneratedBy", "DataContext__set_GeneratedBy_6DFDD678", "DataContext__AsData", "DataContext_fromData_Z7B4D7BF5", "DataContext_createAsPV", "DataContext__Copy"]
157
+
@@ -0,0 +1,112 @@
1
+ from __future__ import annotations
2
+ from typing import Any
3
+ from ..fable_modules.fable_library.reflection import (TypeInfo, union_type)
4
+ from ..fable_modules.fable_library.types import (Array, Union)
5
+
6
+ def _expr524() -> TypeInfo:
7
+ return union_type("ARCtrl.DataFile", [], DataFile, lambda: [[], [], []])
8
+
9
+
10
+ class DataFile(Union):
11
+ def __init__(self, tag: int, *fields: Any) -> None:
12
+ super().__init__()
13
+ self.tag: int = tag or 0
14
+ self.fields: Array[Any] = list(fields)
15
+
16
+ @staticmethod
17
+ def cases() -> list[str]:
18
+ return ["RawDataFile", "DerivedDataFile", "ImageFile"]
19
+
20
+
21
+ DataFile_reflection = _expr524
22
+
23
+ def DataFile_get_RawDataFileJson(__unit: None=None) -> str:
24
+ return "Raw Data File"
25
+
26
+
27
+ def DataFile_get_DerivedDataFileJson(__unit: None=None) -> str:
28
+ return "Derived Data File"
29
+
30
+
31
+ def DataFile_get_ImageFileJson(__unit: None=None) -> str:
32
+ return "Image File"
33
+
34
+
35
+ def DataFile__get_AsString(this: DataFile) -> str:
36
+ if this.tag == 1:
37
+ return "Derived Data File"
38
+
39
+ elif this.tag == 2:
40
+ return "Image File"
41
+
42
+ else:
43
+ return "Raw Data File"
44
+
45
+
46
+
47
+ def DataFile_fromString_Z721C83C5(dt: str) -> DataFile:
48
+ (pattern_matching_result,) = (None,)
49
+ if dt == "RawDataFileJson":
50
+ pattern_matching_result = 0
51
+
52
+ elif dt == "Raw Data File":
53
+ pattern_matching_result = 0
54
+
55
+ elif dt == "DerivedDataFileJson":
56
+ pattern_matching_result = 1
57
+
58
+ elif dt == "Derived Data File":
59
+ pattern_matching_result = 1
60
+
61
+ elif dt == "ImageFileJson":
62
+ pattern_matching_result = 2
63
+
64
+ elif dt == "Image File":
65
+ pattern_matching_result = 2
66
+
67
+ else:
68
+ pattern_matching_result = 3
69
+
70
+ if pattern_matching_result == 0:
71
+ return DataFile(0)
72
+
73
+ elif pattern_matching_result == 1:
74
+ return DataFile(1)
75
+
76
+ elif pattern_matching_result == 2:
77
+ return DataFile(2)
78
+
79
+ elif pattern_matching_result == 3:
80
+ raise Exception(("Invalid DataFile type: " + dt) + "")
81
+
82
+
83
+
84
+ def DataFile__get_IsDerivedData(this: DataFile) -> bool:
85
+ if this.tag == 1:
86
+ return True
87
+
88
+ else:
89
+ return False
90
+
91
+
92
+
93
+ def DataFile__get_IsRawData(this: DataFile) -> bool:
94
+ if this.tag == 0:
95
+ return True
96
+
97
+ else:
98
+ return False
99
+
100
+
101
+
102
+ def DataFile__get_IsImage(this: DataFile) -> bool:
103
+ if this.tag == 2:
104
+ return True
105
+
106
+ else:
107
+ return False
108
+
109
+
110
+
111
+ __all__ = ["DataFile_reflection", "DataFile_get_RawDataFileJson", "DataFile_get_DerivedDataFileJson", "DataFile_get_ImageFileJson", "DataFile__get_AsString", "DataFile_fromString_Z721C83C5", "DataFile__get_IsDerivedData", "DataFile__get_IsRawData", "DataFile__get_IsImage"]
112
+