arctrl 3.0.0a3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (456) hide show
  1. arctrl/__init__.py +18 -0
  2. arctrl/py/CWL/__init__.py +0 -0
  3. arctrl/py/CWL/cwltypes.py +150 -0
  4. arctrl/py/CWL/decode.py +973 -0
  5. arctrl/py/CWL/encode.py +1 -0
  6. arctrl/py/CWL/inputs.py +88 -0
  7. arctrl/py/CWL/outputs.py +85 -0
  8. arctrl/py/CWL/requirements.py +77 -0
  9. arctrl/py/CWL/tool_description.py +103 -0
  10. arctrl/py/CWL/workflow_description.py +104 -0
  11. arctrl/py/CWL/workflow_steps.py +113 -0
  12. arctrl/py/Contract/__init__.py +0 -0
  13. arctrl/py/Contract/arc.py +60 -0
  14. arctrl/py/Contract/arc_assay.py +125 -0
  15. arctrl/py/Contract/arc_investigation.py +88 -0
  16. arctrl/py/Contract/arc_run.py +125 -0
  17. arctrl/py/Contract/arc_study.py +126 -0
  18. arctrl/py/Contract/arc_workflow.py +125 -0
  19. arctrl/py/Contract/contract.py +153 -0
  20. arctrl/py/Contract/datamap.py +372 -0
  21. arctrl/py/Contract/git.py +118 -0
  22. arctrl/py/Contract/validation_packages_config.py +107 -0
  23. arctrl/py/ContractIO/__init__.py +0 -0
  24. arctrl/py/ContractIO/contract_io.py +344 -0
  25. arctrl/py/ContractIO/file_system_helper.py +264 -0
  26. arctrl/py/Core/Helper/__init__.py +0 -0
  27. arctrl/py/Core/Helper/collections_.py +438 -0
  28. arctrl/py/Core/Helper/date_time.py +26 -0
  29. arctrl/py/Core/Helper/hash_codes.py +60 -0
  30. arctrl/py/Core/Helper/identifier.py +248 -0
  31. arctrl/py/Core/Helper/orcid.py +42 -0
  32. arctrl/py/Core/Helper/printer.py +13 -0
  33. arctrl/py/Core/Helper/regex.py +554 -0
  34. arctrl/py/Core/Helper/sem_ver.py +71 -0
  35. arctrl/py/Core/Helper/url.py +148 -0
  36. arctrl/py/Core/Process/__init__.py +0 -0
  37. arctrl/py/Core/Process/column_index.py +280 -0
  38. arctrl/py/Core/Process/component.py +200 -0
  39. arctrl/py/Core/Process/factor.py +151 -0
  40. arctrl/py/Core/Process/factor_value.py +182 -0
  41. arctrl/py/Core/Process/material.py +74 -0
  42. arctrl/py/Core/Process/material_attribute.py +95 -0
  43. arctrl/py/Core/Process/material_attribute_value.py +184 -0
  44. arctrl/py/Core/Process/material_type.py +45 -0
  45. arctrl/py/Core/Process/process.py +477 -0
  46. arctrl/py/Core/Process/process_input.py +265 -0
  47. arctrl/py/Core/Process/process_output.py +235 -0
  48. arctrl/py/Core/Process/process_parameter_value.py +200 -0
  49. arctrl/py/Core/Process/process_sequence.py +435 -0
  50. arctrl/py/Core/Process/protocol.py +175 -0
  51. arctrl/py/Core/Process/protocol_parameter.py +98 -0
  52. arctrl/py/Core/Process/sample.py +82 -0
  53. arctrl/py/Core/Process/source.py +62 -0
  54. arctrl/py/Core/Table/__init__.py +0 -0
  55. arctrl/py/Core/Table/arc_table.py +1264 -0
  56. arctrl/py/Core/Table/arc_table_aux.py +575 -0
  57. arctrl/py/Core/Table/arc_tables.py +591 -0
  58. arctrl/py/Core/Table/composite_cell.py +319 -0
  59. arctrl/py/Core/Table/composite_column.py +73 -0
  60. arctrl/py/Core/Table/composite_header.py +739 -0
  61. arctrl/py/Core/__init__.py +0 -0
  62. arctrl/py/Core/arc_types.py +5064 -0
  63. arctrl/py/Core/comment.py +128 -0
  64. arctrl/py/Core/comment_list.py +127 -0
  65. arctrl/py/Core/conversion.py +1313 -0
  66. arctrl/py/Core/data.py +245 -0
  67. arctrl/py/Core/data_context.py +157 -0
  68. arctrl/py/Core/data_file.py +112 -0
  69. arctrl/py/Core/data_map.py +225 -0
  70. arctrl/py/Core/identifier_setters.py +31 -0
  71. arctrl/py/Core/iproperty_value.py +36 -0
  72. arctrl/py/Core/ontology_annotation.py +299 -0
  73. arctrl/py/Core/ontology_source_reference.py +114 -0
  74. arctrl/py/Core/person.py +259 -0
  75. arctrl/py/Core/publication.py +161 -0
  76. arctrl/py/Core/template.py +231 -0
  77. arctrl/py/Core/templates.py +148 -0
  78. arctrl/py/Core/uri.py +11 -0
  79. arctrl/py/Core/value.py +188 -0
  80. arctrl/py/FileSystem/__init__.py +0 -0
  81. arctrl/py/FileSystem/commit.py +21 -0
  82. arctrl/py/FileSystem/default_gitattributes.py +5 -0
  83. arctrl/py/FileSystem/default_gitignore.py +5 -0
  84. arctrl/py/FileSystem/file_system.py +58 -0
  85. arctrl/py/FileSystem/file_system_tree.py +426 -0
  86. arctrl/py/FileSystem/path.py +64 -0
  87. arctrl/py/Json/DataMap/__init__.py +0 -0
  88. arctrl/py/Json/DataMap/data_context.py +101 -0
  89. arctrl/py/Json/DataMap/data_map.py +53 -0
  90. arctrl/py/Json/Process/__init__.py +0 -0
  91. arctrl/py/Json/Process/assay_materials.py +46 -0
  92. arctrl/py/Json/Process/component.py +79 -0
  93. arctrl/py/Json/Process/factor.py +107 -0
  94. arctrl/py/Json/Process/factor_value.py +101 -0
  95. arctrl/py/Json/Process/material.py +226 -0
  96. arctrl/py/Json/Process/material_attribute.py +79 -0
  97. arctrl/py/Json/Process/material_attribute_value.py +101 -0
  98. arctrl/py/Json/Process/material_type.py +53 -0
  99. arctrl/py/Json/Process/process.py +296 -0
  100. arctrl/py/Json/Process/process_input.py +83 -0
  101. arctrl/py/Json/Process/process_output.py +67 -0
  102. arctrl/py/Json/Process/process_parameter_value.py +81 -0
  103. arctrl/py/Json/Process/protocol.py +354 -0
  104. arctrl/py/Json/Process/protocol_parameter.py +79 -0
  105. arctrl/py/Json/Process/sample.py +277 -0
  106. arctrl/py/Json/Process/source.py +214 -0
  107. arctrl/py/Json/Process/study_materials.py +52 -0
  108. arctrl/py/Json/Process/value.py +56 -0
  109. arctrl/py/Json/ROCrate/__init__.py +0 -0
  110. arctrl/py/Json/ROCrate/ldcontext.py +133 -0
  111. arctrl/py/Json/ROCrate/ldgraph.py +111 -0
  112. arctrl/py/Json/ROCrate/ldnode.py +290 -0
  113. arctrl/py/Json/ROCrate/ldref.py +44 -0
  114. arctrl/py/Json/ROCrate/ldvalue.py +102 -0
  115. arctrl/py/Json/Table/__init__.py +0 -0
  116. arctrl/py/Json/Table/arc_table.py +393 -0
  117. arctrl/py/Json/Table/cell_table.py +83 -0
  118. arctrl/py/Json/Table/composite_cell.py +136 -0
  119. arctrl/py/Json/Table/composite_header.py +67 -0
  120. arctrl/py/Json/Table/iotype.py +24 -0
  121. arctrl/py/Json/Table/oatable.py +82 -0
  122. arctrl/py/Json/Table/templates.py +281 -0
  123. arctrl/py/Json/__init__.py +0 -0
  124. arctrl/py/Json/assay.py +600 -0
  125. arctrl/py/Json/comment.py +206 -0
  126. arctrl/py/Json/context/rocrate/__init__.py +0 -0
  127. arctrl/py/Json/context/rocrate/isa_assay_context.py +101 -0
  128. arctrl/py/Json/context/rocrate/isa_comment_context.py +60 -0
  129. arctrl/py/Json/context/rocrate/isa_component_context.py +77 -0
  130. arctrl/py/Json/context/rocrate/isa_data_context.py +74 -0
  131. arctrl/py/Json/context/rocrate/isa_factor_context.py +74 -0
  132. arctrl/py/Json/context/rocrate/isa_factor_value_context.py +84 -0
  133. arctrl/py/Json/context/rocrate/isa_investigation_context.py +110 -0
  134. arctrl/py/Json/context/rocrate/isa_material_attribute_context.py +64 -0
  135. arctrl/py/Json/context/rocrate/isa_material_attribute_value_context.py +80 -0
  136. arctrl/py/Json/context/rocrate/isa_material_context.py +71 -0
  137. arctrl/py/Json/context/rocrate/isa_ontology_annotation_context.py +68 -0
  138. arctrl/py/Json/context/rocrate/isa_ontology_source_reference_context.py +75 -0
  139. arctrl/py/Json/context/rocrate/isa_organization_context.py +55 -0
  140. arctrl/py/Json/context/rocrate/isa_person_context.py +131 -0
  141. arctrl/py/Json/context/rocrate/isa_process_context.py +94 -0
  142. arctrl/py/Json/context/rocrate/isa_process_parameter_value_context.py +80 -0
  143. arctrl/py/Json/context/rocrate/isa_protocol_context.py +97 -0
  144. arctrl/py/Json/context/rocrate/isa_protocol_parameter_context.py +64 -0
  145. arctrl/py/Json/context/rocrate/isa_publication_context.py +78 -0
  146. arctrl/py/Json/context/rocrate/isa_sample_context.py +65 -0
  147. arctrl/py/Json/context/rocrate/isa_source_context.py +66 -0
  148. arctrl/py/Json/context/rocrate/isa_study_context.py +125 -0
  149. arctrl/py/Json/context/rocrate/property_value_context.py +73 -0
  150. arctrl/py/Json/context/rocrate/rocrate_context.py +81 -0
  151. arctrl/py/Json/converter_options.py +23 -0
  152. arctrl/py/Json/data.py +356 -0
  153. arctrl/py/Json/data_file.py +63 -0
  154. arctrl/py/Json/decode.py +155 -0
  155. arctrl/py/Json/encode.py +92 -0
  156. arctrl/py/Json/idtable.py +44 -0
  157. arctrl/py/Json/investigation.py +695 -0
  158. arctrl/py/Json/ontology_annotation.py +404 -0
  159. arctrl/py/Json/ontology_source_reference.py +255 -0
  160. arctrl/py/Json/person.py +658 -0
  161. arctrl/py/Json/property_value.py +359 -0
  162. arctrl/py/Json/publication.py +279 -0
  163. arctrl/py/Json/string_table.py +76 -0
  164. arctrl/py/Json/study.py +793 -0
  165. arctrl/py/JsonIO/DataMap/__init__.py +0 -0
  166. arctrl/py/JsonIO/DataMap/data_map.py +53 -0
  167. arctrl/py/JsonIO/Process/__init__.py +0 -0
  168. arctrl/py/JsonIO/Process/component.py +60 -0
  169. arctrl/py/JsonIO/Process/factor.py +36 -0
  170. arctrl/py/JsonIO/Process/factor_value.py +38 -0
  171. arctrl/py/JsonIO/Process/material.py +60 -0
  172. arctrl/py/JsonIO/Process/material_attribute.py +38 -0
  173. arctrl/py/JsonIO/Process/material_attribute_value.py +60 -0
  174. arctrl/py/JsonIO/Process/material_type.py +36 -0
  175. arctrl/py/JsonIO/Process/process.py +60 -0
  176. arctrl/py/JsonIO/Process/process_input.py +38 -0
  177. arctrl/py/JsonIO/Process/process_output.py +60 -0
  178. arctrl/py/JsonIO/Process/process_parameter_value.py +60 -0
  179. arctrl/py/JsonIO/Process/process_sequence.py +71 -0
  180. arctrl/py/JsonIO/Process/protocol.py +60 -0
  181. arctrl/py/JsonIO/Process/protocol_parameter.py +36 -0
  182. arctrl/py/JsonIO/Process/sample.py +60 -0
  183. arctrl/py/JsonIO/Process/source.py +60 -0
  184. arctrl/py/JsonIO/Process/study_materials.py +52 -0
  185. arctrl/py/JsonIO/Process/value.py +32 -0
  186. arctrl/py/JsonIO/Table/__init__.py +0 -0
  187. arctrl/py/JsonIO/Table/arc_table.py +121 -0
  188. arctrl/py/JsonIO/Table/composite_cell.py +36 -0
  189. arctrl/py/JsonIO/Table/composite_header.py +36 -0
  190. arctrl/py/JsonIO/Table/compression.py +85 -0
  191. arctrl/py/JsonIO/Table/iotype.py +36 -0
  192. arctrl/py/JsonIO/Table/templates.py +113 -0
  193. arctrl/py/JsonIO/__init__.py +0 -0
  194. arctrl/py/JsonIO/assay.py +113 -0
  195. arctrl/py/JsonIO/comment.py +80 -0
  196. arctrl/py/JsonIO/data.py +60 -0
  197. arctrl/py/JsonIO/data_file.py +58 -0
  198. arctrl/py/JsonIO/decode.py +9 -0
  199. arctrl/py/JsonIO/encode.py +1 -0
  200. arctrl/py/JsonIO/investigation.py +113 -0
  201. arctrl/py/JsonIO/ldobject.py +106 -0
  202. arctrl/py/JsonIO/ontology_annotation.py +80 -0
  203. arctrl/py/JsonIO/ontology_source_reference.py +80 -0
  204. arctrl/py/JsonIO/person.py +82 -0
  205. arctrl/py/JsonIO/publication.py +82 -0
  206. arctrl/py/JsonIO/study.py +114 -0
  207. arctrl/py/ROCrate/Generic/__init__.py +0 -0
  208. arctrl/py/ROCrate/Generic/comment.py +131 -0
  209. arctrl/py/ROCrate/Generic/dataset.py +817 -0
  210. arctrl/py/ROCrate/Generic/defined_term.py +131 -0
  211. arctrl/py/ROCrate/Generic/file.py +237 -0
  212. arctrl/py/ROCrate/Generic/lab_process.py +324 -0
  213. arctrl/py/ROCrate/Generic/lab_protocol.py +338 -0
  214. arctrl/py/ROCrate/Generic/organization.py +83 -0
  215. arctrl/py/ROCrate/Generic/person.py +484 -0
  216. arctrl/py/ROCrate/Generic/postal_address.py +195 -0
  217. arctrl/py/ROCrate/Generic/property_value.py +696 -0
  218. arctrl/py/ROCrate/Generic/sample.py +202 -0
  219. arctrl/py/ROCrate/Generic/scholarly_article.py +229 -0
  220. arctrl/py/ROCrate/ISAProfile/__init__.py +0 -0
  221. arctrl/py/ROCrate/ISAProfile/assay.py +70 -0
  222. arctrl/py/ROCrate/ISAProfile/data.py +65 -0
  223. arctrl/py/ROCrate/ISAProfile/dataset.py +24 -0
  224. arctrl/py/ROCrate/ISAProfile/investigation.py +73 -0
  225. arctrl/py/ROCrate/ISAProfile/lab_process.py +162 -0
  226. arctrl/py/ROCrate/ISAProfile/lab_protocol.py +37 -0
  227. arctrl/py/ROCrate/ISAProfile/person.py +72 -0
  228. arctrl/py/ROCrate/ISAProfile/property_value.py +98 -0
  229. arctrl/py/ROCrate/ISAProfile/sample.py +64 -0
  230. arctrl/py/ROCrate/ISAProfile/scholarly_article.py +98 -0
  231. arctrl/py/ROCrate/ISAProfile/study.py +74 -0
  232. arctrl/py/ROCrate/__init__.py +0 -0
  233. arctrl/py/ROCrate/arc_rocrate_metadata.py +39 -0
  234. arctrl/py/ROCrate/dyn_obj_extensions.py +1 -0
  235. arctrl/py/ROCrate/helper.py +8 -0
  236. arctrl/py/ROCrate/ldcontext.py +362 -0
  237. arctrl/py/ROCrate/ldobject.py +1247 -0
  238. arctrl/py/ROCrate/rocrate_context.py +51 -0
  239. arctrl/py/Spreadsheet/AnnotationTable/__init__.py +0 -0
  240. arctrl/py/Spreadsheet/AnnotationTable/arc_table.py +193 -0
  241. arctrl/py/Spreadsheet/AnnotationTable/composite_cell.py +78 -0
  242. arctrl/py/Spreadsheet/AnnotationTable/composite_column.py +210 -0
  243. arctrl/py/Spreadsheet/AnnotationTable/composite_header.py +623 -0
  244. arctrl/py/Spreadsheet/DataMapTable/__init__.py +0 -0
  245. arctrl/py/Spreadsheet/DataMapTable/data_map_column.py +114 -0
  246. arctrl/py/Spreadsheet/DataMapTable/data_map_header.py +618 -0
  247. arctrl/py/Spreadsheet/DataMapTable/data_map_table.py +119 -0
  248. arctrl/py/Spreadsheet/Metadata/__init__.py +0 -0
  249. arctrl/py/Spreadsheet/Metadata/assays.py +125 -0
  250. arctrl/py/Spreadsheet/Metadata/comment.py +77 -0
  251. arctrl/py/Spreadsheet/Metadata/contacts.py +134 -0
  252. arctrl/py/Spreadsheet/Metadata/conversions.py +190 -0
  253. arctrl/py/Spreadsheet/Metadata/design_descriptors.py +34 -0
  254. arctrl/py/Spreadsheet/Metadata/factors.py +107 -0
  255. arctrl/py/Spreadsheet/Metadata/ontology_annotation.py +88 -0
  256. arctrl/py/Spreadsheet/Metadata/ontology_source_reference.py +96 -0
  257. arctrl/py/Spreadsheet/Metadata/protocols.py +146 -0
  258. arctrl/py/Spreadsheet/Metadata/publication.py +122 -0
  259. arctrl/py/Spreadsheet/Metadata/run.py +122 -0
  260. arctrl/py/Spreadsheet/Metadata/sparse_table.py +508 -0
  261. arctrl/py/Spreadsheet/Metadata/study.py +312 -0
  262. arctrl/py/Spreadsheet/Metadata/workflow.py +151 -0
  263. arctrl/py/Spreadsheet/__init__.py +0 -0
  264. arctrl/py/Spreadsheet/arc_assay.py +233 -0
  265. arctrl/py/Spreadsheet/arc_investigation.py +418 -0
  266. arctrl/py/Spreadsheet/arc_run.py +190 -0
  267. arctrl/py/Spreadsheet/arc_study.py +144 -0
  268. arctrl/py/Spreadsheet/arc_workflow.py +176 -0
  269. arctrl/py/Spreadsheet/assembly_info.py +1 -0
  270. arctrl/py/Spreadsheet/collection_aux.py +167 -0
  271. arctrl/py/Spreadsheet/data_map.py +44 -0
  272. arctrl/py/Spreadsheet/template.py +460 -0
  273. arctrl/py/ValidationPackages/__init__.py +0 -0
  274. arctrl/py/ValidationPackages/validation_package.py +82 -0
  275. arctrl/py/ValidationPackages/validation_packages_config.py +132 -0
  276. arctrl/py/WebRequest/__init__.py +0 -0
  277. arctrl/py/WebRequest/web_request.py +9 -0
  278. arctrl/py/WebRequest/web_request_py.py +135 -0
  279. arctrl/py/Yaml/__init__.py +0 -0
  280. arctrl/py/Yaml/decode.py +1 -0
  281. arctrl/py/Yaml/encode.py +10 -0
  282. arctrl/py/Yaml/validation_package.py +77 -0
  283. arctrl/py/Yaml/validation_packages_config.py +86 -0
  284. arctrl/py/__init__.py +0 -0
  285. arctrl/py/arc.py +1400 -0
  286. arctrl/py/column_index.py +280 -0
  287. arctrl/py/conversion.py +2184 -0
  288. arctrl/py/cross_async.py +76 -0
  289. arctrl/py/fable_modules/dynamic_obj/__init__.py +0 -0
  290. arctrl/py/fable_modules/dynamic_obj/dyn_obj.py +136 -0
  291. arctrl/py/fable_modules/dynamic_obj/dynamic_obj.py +415 -0
  292. arctrl/py/fable_modules/dynamic_obj/fable_js.py +1 -0
  293. arctrl/py/fable_modules/dynamic_obj/fable_py.py +288 -0
  294. arctrl/py/fable_modules/dynamic_obj/hash_codes.py +82 -0
  295. arctrl/py/fable_modules/dynamic_obj/property_helper.py +25 -0
  296. arctrl/py/fable_modules/dynamic_obj/reflection_utils.py +87 -0
  297. arctrl/py/fable_modules/fable_library/__init__.py +0 -0
  298. arctrl/py/fable_modules/fable_library/array_.py +1528 -0
  299. arctrl/py/fable_modules/fable_library/async_.py +377 -0
  300. arctrl/py/fable_modules/fable_library/async_builder.py +379 -0
  301. arctrl/py/fable_modules/fable_library/big_int.py +330 -0
  302. arctrl/py/fable_modules/fable_library/bit_converter.py +131 -0
  303. arctrl/py/fable_modules/fable_library/boolean.py +26 -0
  304. arctrl/py/fable_modules/fable_library/char.py +237 -0
  305. arctrl/py/fable_modules/fable_library/choice.py +212 -0
  306. arctrl/py/fable_modules/fable_library/date.py +779 -0
  307. arctrl/py/fable_modules/fable_library/date_offset.py +79 -0
  308. arctrl/py/fable_modules/fable_library/decimal_.py +190 -0
  309. arctrl/py/fable_modules/fable_library/diagnostics.py +54 -0
  310. arctrl/py/fable_modules/fable_library/double.py +87 -0
  311. arctrl/py/fable_modules/fable_library/encoding.py +41 -0
  312. arctrl/py/fable_modules/fable_library/event.py +206 -0
  313. arctrl/py/fable_modules/fable_library/file.py +107 -0
  314. arctrl/py/fable_modules/fable_library/fsharp_collections.py +52 -0
  315. arctrl/py/fable_modules/fable_library/fsharp_core.py +123 -0
  316. arctrl/py/fable_modules/fable_library/global_.py +63 -0
  317. arctrl/py/fable_modules/fable_library/guid.py +41 -0
  318. arctrl/py/fable_modules/fable_library/int32.py +73 -0
  319. arctrl/py/fable_modules/fable_library/list.py +1788 -0
  320. arctrl/py/fable_modules/fable_library/long.py +240 -0
  321. arctrl/py/fable_modules/fable_library/mailbox_processor.py +179 -0
  322. arctrl/py/fable_modules/fable_library/map.py +1854 -0
  323. arctrl/py/fable_modules/fable_library/map_util.py +148 -0
  324. arctrl/py/fable_modules/fable_library/mutable_map.py +397 -0
  325. arctrl/py/fable_modules/fable_library/mutable_set.py +279 -0
  326. arctrl/py/fable_modules/fable_library/native.py +45 -0
  327. arctrl/py/fable_modules/fable_library/numeric.py +46 -0
  328. arctrl/py/fable_modules/fable_library/observable.py +222 -0
  329. arctrl/py/fable_modules/fable_library/option.py +128 -0
  330. arctrl/py/fable_modules/fable_library/path.py +62 -0
  331. arctrl/py/fable_modules/fable_library/range.py +117 -0
  332. arctrl/py/fable_modules/fable_library/reflection.py +463 -0
  333. arctrl/py/fable_modules/fable_library/reg_exp.py +137 -0
  334. arctrl/py/fable_modules/fable_library/resize_array.py +31 -0
  335. arctrl/py/fable_modules/fable_library/result.py +212 -0
  336. arctrl/py/fable_modules/fable_library/seq.py +1979 -0
  337. arctrl/py/fable_modules/fable_library/seq2.py +221 -0
  338. arctrl/py/fable_modules/fable_library/set.py +2414 -0
  339. arctrl/py/fable_modules/fable_library/singleton_local_time_zone.py +36 -0
  340. arctrl/py/fable_modules/fable_library/string_.py +573 -0
  341. arctrl/py/fable_modules/fable_library/system_collections_generic.py +462 -0
  342. arctrl/py/fable_modules/fable_library/system_text.py +237 -0
  343. arctrl/py/fable_modules/fable_library/task.py +116 -0
  344. arctrl/py/fable_modules/fable_library/task_builder.py +122 -0
  345. arctrl/py/fable_modules/fable_library/thread.py +5 -0
  346. arctrl/py/fable_modules/fable_library/time_span.py +283 -0
  347. arctrl/py/fable_modules/fable_library/timer.py +24 -0
  348. arctrl/py/fable_modules/fable_library/types.py +401 -0
  349. arctrl/py/fable_modules/fable_library/uri.py +109 -0
  350. arctrl/py/fable_modules/fable_library/util.py +2735 -0
  351. arctrl/py/fable_modules/fable_openpyxl/__init__.py +0 -0
  352. arctrl/py/fable_modules/fable_openpyxl/openpyxl.py +362 -0
  353. arctrl/py/fable_modules/fable_python/cognite-sdk/__init__.py +0 -0
  354. arctrl/py/fable_modules/fable_python/cognite-sdk/cognite_sdk.py +22 -0
  355. arctrl/py/fable_modules/fable_python/flask/__init__.py +0 -0
  356. arctrl/py/fable_modules/fable_python/flask/flask.py +34 -0
  357. arctrl/py/fable_modules/fable_python/jupyter/__init__.py +0 -0
  358. arctrl/py/fable_modules/fable_python/jupyter/ipy_widgets.py +47 -0
  359. arctrl/py/fable_modules/fable_python/jupyter/ipython.py +13 -0
  360. arctrl/py/fable_modules/fable_python/stdlib/__init__.py +0 -0
  361. arctrl/py/fable_modules/fable_python/stdlib/ast.py +1 -0
  362. arctrl/py/fable_modules/fable_python/stdlib/asyncio/__init__.py +0 -0
  363. arctrl/py/fable_modules/fable_python/stdlib/asyncio/events.py +17 -0
  364. arctrl/py/fable_modules/fable_python/stdlib/asyncio/futures.py +52 -0
  365. arctrl/py/fable_modules/fable_python/stdlib/asyncio/tasks.py +38 -0
  366. arctrl/py/fable_modules/fable_python/stdlib/base64_.py +1 -0
  367. arctrl/py/fable_modules/fable_python/stdlib/builtins_.py +38 -0
  368. arctrl/py/fable_modules/fable_python/stdlib/html.py +1 -0
  369. arctrl/py/fable_modules/fable_python/stdlib/json.py +1 -0
  370. arctrl/py/fable_modules/fable_python/stdlib/math_.py +1 -0
  371. arctrl/py/fable_modules/fable_python/stdlib/os_.py +1 -0
  372. arctrl/py/fable_modules/fable_python/stdlib/queue_.py +1 -0
  373. arctrl/py/fable_modules/fable_python/stdlib/string_.py +1 -0
  374. arctrl/py/fable_modules/fable_python/stdlib/sys_.py +30 -0
  375. arctrl/py/fable_modules/fable_python/stdlib/time_.py +1 -0
  376. arctrl/py/fable_modules/fable_python/stdlib/tk_inter.py +1 -0
  377. arctrl/py/fable_modules/fs_spreadsheet/Cells/__init__.py +0 -0
  378. arctrl/py/fable_modules/fs_spreadsheet/Cells/fs_cell.py +338 -0
  379. arctrl/py/fable_modules/fs_spreadsheet/Cells/fs_cells_collection.py +469 -0
  380. arctrl/py/fable_modules/fs_spreadsheet/DSL/__init__.py +0 -0
  381. arctrl/py/fable_modules/fs_spreadsheet/DSL/cell_builder.py +214 -0
  382. arctrl/py/fable_modules/fs_spreadsheet/DSL/column_builder.py +139 -0
  383. arctrl/py/fable_modules/fs_spreadsheet/DSL/dsl.py +50 -0
  384. arctrl/py/fable_modules/fs_spreadsheet/DSL/expression.py +65 -0
  385. arctrl/py/fable_modules/fs_spreadsheet/DSL/operators.py +9 -0
  386. arctrl/py/fable_modules/fs_spreadsheet/DSL/row_builder.py +139 -0
  387. arctrl/py/fable_modules/fs_spreadsheet/DSL/sheet_builder.py +118 -0
  388. arctrl/py/fable_modules/fs_spreadsheet/DSL/table_builder.py +122 -0
  389. arctrl/py/fable_modules/fs_spreadsheet/DSL/transform.py +464 -0
  390. arctrl/py/fable_modules/fs_spreadsheet/DSL/types.py +314 -0
  391. arctrl/py/fable_modules/fs_spreadsheet/DSL/workbook_builder.py +106 -0
  392. arctrl/py/fable_modules/fs_spreadsheet/Json/__init__.py +0 -0
  393. arctrl/py/fable_modules/fs_spreadsheet/Json/cell.py +103 -0
  394. arctrl/py/fable_modules/fs_spreadsheet/Json/column.py +70 -0
  395. arctrl/py/fable_modules/fs_spreadsheet/Json/row.py +70 -0
  396. arctrl/py/fable_modules/fs_spreadsheet/Json/table.py +57 -0
  397. arctrl/py/fable_modules/fs_spreadsheet/Json/value.py +93 -0
  398. arctrl/py/fable_modules/fs_spreadsheet/Json/workbook.py +71 -0
  399. arctrl/py/fable_modules/fs_spreadsheet/Json/worksheet.py +217 -0
  400. arctrl/py/fable_modules/fs_spreadsheet/Ranges/__init__.py +0 -0
  401. arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range.py +47 -0
  402. arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_address.py +186 -0
  403. arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_base.py +90 -0
  404. arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_column.py +78 -0
  405. arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_row.py +48 -0
  406. arctrl/py/fable_modules/fs_spreadsheet/Tables/__init__.py +0 -0
  407. arctrl/py/fable_modules/fs_spreadsheet/Tables/fs_table.py +393 -0
  408. arctrl/py/fable_modules/fs_spreadsheet/Tables/fs_table_field.py +127 -0
  409. arctrl/py/fable_modules/fs_spreadsheet/Tables/fs_table_row.py +23 -0
  410. arctrl/py/fable_modules/fs_spreadsheet/__init__.py +0 -0
  411. arctrl/py/fable_modules/fs_spreadsheet/fs_address.py +218 -0
  412. arctrl/py/fable_modules/fs_spreadsheet/fs_column.py +172 -0
  413. arctrl/py/fable_modules/fs_spreadsheet/fs_row.py +183 -0
  414. arctrl/py/fable_modules/fs_spreadsheet/fs_workbook.py +180 -0
  415. arctrl/py/fable_modules/fs_spreadsheet/fs_worksheet.py +600 -0
  416. arctrl/py/fable_modules/fs_spreadsheet/sheet_builder.py +330 -0
  417. arctrl/py/fable_modules/fs_spreadsheet_py/__init__.py +0 -0
  418. arctrl/py/fable_modules/fs_spreadsheet_py/cell.py +63 -0
  419. arctrl/py/fable_modules/fs_spreadsheet_py/cell_type.py +50 -0
  420. arctrl/py/fable_modules/fs_spreadsheet_py/fs_extension.py +60 -0
  421. arctrl/py/fable_modules/fs_spreadsheet_py/json.py +47 -0
  422. arctrl/py/fable_modules/fs_spreadsheet_py/table.py +53 -0
  423. arctrl/py/fable_modules/fs_spreadsheet_py/workbook.py +40 -0
  424. arctrl/py/fable_modules/fs_spreadsheet_py/worksheet.py +54 -0
  425. arctrl/py/fable_modules/fs_spreadsheet_py/xlsx.py +37 -0
  426. arctrl/py/fable_modules/thoth_json_core/__init__.py +0 -0
  427. arctrl/py/fable_modules/thoth_json_core/decode.py +1588 -0
  428. arctrl/py/fable_modules/thoth_json_core/encode.py +261 -0
  429. arctrl/py/fable_modules/thoth_json_core/types.py +181 -0
  430. arctrl/py/fable_modules/thoth_json_python/__init__.py +0 -0
  431. arctrl/py/fable_modules/thoth_json_python/decode.py +112 -0
  432. arctrl/py/fable_modules/thoth_json_python/encode.py +72 -0
  433. arctrl/py/fable_modules/thoth_json_python/python.py +1 -0
  434. arctrl/py/fable_modules/yamlicious/Interop/__init__.py +0 -0
  435. arctrl/py/fable_modules/yamlicious/Interop/js_interop.py +1 -0
  436. arctrl/py/fable_modules/yamlicious/Interop/py_interop.py +7 -0
  437. arctrl/py/fable_modules/yamlicious/__init__.py +0 -0
  438. arctrl/py/fable_modules/yamlicious/decode.py +1784 -0
  439. arctrl/py/fable_modules/yamlicious/encode.py +84 -0
  440. arctrl/py/fable_modules/yamlicious/library.py +10 -0
  441. arctrl/py/fable_modules/yamlicious/persil.py +57 -0
  442. arctrl/py/fable_modules/yamlicious/preprocessing.py +99 -0
  443. arctrl/py/fable_modules/yamlicious/reader.py +665 -0
  444. arctrl/py/fable_modules/yamlicious/regex.py +21 -0
  445. arctrl/py/fable_modules/yamlicious/regex_active_patterns.py +256 -0
  446. arctrl/py/fable_modules/yamlicious/writer.py +175 -0
  447. arctrl/py/fable_modules/yamlicious/yamlicious_types.py +128 -0
  448. arctrl/py/json.py +213 -0
  449. arctrl/py/rocrate_io.py +72 -0
  450. arctrl/py/template_web.py +23 -0
  451. arctrl/py/xlsx.py +148 -0
  452. arctrl/rocrate.py +21 -0
  453. arctrl-3.0.0a3.dist-info/LICENSE +21 -0
  454. arctrl-3.0.0a3.dist-info/METADATA +119 -0
  455. arctrl-3.0.0a3.dist-info/RECORD +456 -0
  456. arctrl-3.0.0a3.dist-info/WHEEL +4 -0
@@ -0,0 +1,426 @@
1
+ from __future__ import annotations
2
+ from collections.abc import Callable
3
+ from typing import Any
4
+ from ..fable_modules.fable_library.array_ import (try_find, exists, map, head, filter, tail, equals_with, iterate, choose, append as append_1)
5
+ from ..fable_modules.fable_library.list import (cons, to_array as to_array_1, reverse, FSharpList, empty)
6
+ from ..fable_modules.fable_library.option import default_arg
7
+ from ..fable_modules.fable_library.reflection import (TypeInfo, string_type, array_type, union_type)
8
+ from ..fable_modules.fable_library.seq import (to_array, delay, append, singleton)
9
+ from ..fable_modules.fable_library.seq2 import (Array_groupBy, Array_distinct)
10
+ from ..fable_modules.fable_library.types import (Array, Union)
11
+ from ..fable_modules.fable_library.util import (IEnumerable_1, string_hash, array_hash, curry2)
12
+ from .path import (split, combine_many)
13
+
14
+ def _expr470() -> TypeInfo:
15
+ return union_type("ARCtrl.FileSystem.FileSystemTree", [], FileSystemTree, lambda: [[("name", string_type)], [("name", string_type), ("children", array_type(FileSystemTree_reflection()))]])
16
+
17
+
18
+ class FileSystemTree(Union):
19
+ def __init__(self, tag: int, *fields: Any) -> None:
20
+ super().__init__()
21
+ self.tag: int = tag or 0
22
+ self.fields: Array[Any] = list(fields)
23
+
24
+ @staticmethod
25
+ def cases() -> list[str]:
26
+ return ["File", "Folder"]
27
+
28
+ @property
29
+ def Name(self, __unit: None=None) -> str:
30
+ this: FileSystemTree = self
31
+ (pattern_matching_result, n) = (None, None)
32
+ if this.tag == 1:
33
+ pattern_matching_result = 0
34
+ n = this.fields[0]
35
+
36
+ else:
37
+ pattern_matching_result = 0
38
+ n = this.fields[0]
39
+
40
+ if pattern_matching_result == 0:
41
+ return n
42
+
43
+
44
+ @property
45
+ def is_folder(self, __unit: None=None) -> bool:
46
+ this: FileSystemTree = self
47
+ return True if (this.tag == 1) else False
48
+
49
+ @property
50
+ def is_file(self, __unit: None=None) -> bool:
51
+ this: FileSystemTree = self
52
+ return True if (this.tag == 0) else False
53
+
54
+ @staticmethod
55
+ def ROOT_NAME() -> str:
56
+ return "root"
57
+
58
+ @staticmethod
59
+ def create_file(name: str) -> FileSystemTree:
60
+ return FileSystemTree(0, name)
61
+
62
+ @staticmethod
63
+ def create_folder(name: str, children: Array[FileSystemTree] | None=None) -> FileSystemTree:
64
+ return FileSystemTree(1, name, default_arg(children, []))
65
+
66
+ @staticmethod
67
+ def create_root_folder(children: Array[FileSystemTree]) -> FileSystemTree:
68
+ return FileSystemTree(1, FileSystemTree.ROOT_NAME(), children)
69
+
70
+ def TryGetChildByName(self, name: str) -> FileSystemTree | None:
71
+ this: FileSystemTree = self
72
+ def predicate(c: FileSystemTree) -> bool:
73
+ return c.Name == name
74
+
75
+ return None if (this.tag == 0) else try_find(predicate, this.fields[1])
76
+
77
+ @staticmethod
78
+ def try_get_child_by_name(name: str) -> Callable[[FileSystemTree], FileSystemTree | None]:
79
+ def _arrow450(fst: FileSystemTree) -> FileSystemTree | None:
80
+ return fst.TryGetChildByName(name)
81
+
82
+ return _arrow450
83
+
84
+ def ContainsChildWithName(self, name: str) -> bool:
85
+ this: FileSystemTree = self
86
+ def predicate(c: FileSystemTree) -> bool:
87
+ return c.Name == name
88
+
89
+ return False if (this.tag == 0) else exists(predicate, this.fields[1])
90
+
91
+ @staticmethod
92
+ def contains_child_with_name(name: str) -> Callable[[FileSystemTree], bool]:
93
+ def _arrow452(fst: FileSystemTree) -> bool:
94
+ return fst.ContainsChildWithName(name)
95
+
96
+ return _arrow452
97
+
98
+ def AddFile(self, path: str) -> FileSystemTree:
99
+ this: FileSystemTree = self
100
+ existing_paths: Array[str] = this.ToFilePaths()
101
+ def _arrow454(__unit: None=None) -> IEnumerable_1[str]:
102
+ def _arrow453(__unit: None=None) -> IEnumerable_1[str]:
103
+ return existing_paths
104
+
105
+ return append(singleton(path), delay(_arrow453))
106
+
107
+ file_paths: Array[str] = to_array(delay(_arrow454))
108
+ return FileSystemTree.from_file_paths(file_paths)
109
+
110
+ @staticmethod
111
+ def add_file(path: str) -> Callable[[FileSystemTree], FileSystemTree]:
112
+ def _arrow455(tree: FileSystemTree) -> FileSystemTree:
113
+ return tree.AddFile(path)
114
+
115
+ return _arrow455
116
+
117
+ @staticmethod
118
+ def from_file_paths(paths: Array[str]) -> FileSystemTree:
119
+ def loop(paths_1: Array[Array[str]], parent: FileSystemTree) -> FileSystemTree:
120
+ def mapping(arg: Array[str], paths_1: Any=paths_1, parent: Any=parent) -> FileSystemTree:
121
+ name: str = head(arg)
122
+ return FileSystemTree.create_file(name)
123
+
124
+ def predicate(p: Array[str], paths_1: Any=paths_1, parent: Any=parent) -> bool:
125
+ return len(p) == 1
126
+
127
+ files: Array[FileSystemTree] = map(mapping, filter(predicate, paths_1), None)
128
+ def mapping_2(tupled_arg: tuple[str, Array[Array[str]]], paths_1: Any=paths_1, parent: Any=parent) -> FileSystemTree:
129
+ parent_1: FileSystemTree = FileSystemTree.create_folder(tupled_arg[0], [])
130
+ def mapping_1(array_7: Array[str], tupled_arg: Any=tupled_arg) -> Array[str]:
131
+ return tail(array_7)
132
+
133
+ return loop(map(mapping_1, tupled_arg[1], None), parent_1)
134
+
135
+ def projection(x_2: Array[str], paths_1: Any=paths_1, parent: Any=parent) -> str:
136
+ return head(x_2)
137
+
138
+ def predicate_1(p_1: Array[str], paths_1: Any=paths_1, parent: Any=parent) -> bool:
139
+ return len(p_1) > 1
140
+
141
+ class ObjectExpr457:
142
+ @property
143
+ def Equals(self) -> Callable[[str, str], bool]:
144
+ def _arrow456(x_3: str, y_2: str) -> bool:
145
+ return x_3 == y_2
146
+
147
+ return _arrow456
148
+
149
+ @property
150
+ def GetHashCode(self) -> Callable[[str], int]:
151
+ return string_hash
152
+
153
+ folders: Array[FileSystemTree] = map(mapping_2, Array_groupBy(projection, filter(predicate_1, paths_1), ObjectExpr457()), None)
154
+ if parent.tag == 1:
155
+ def _arrow459(__unit: None=None, paths_1: Any=paths_1, parent: Any=parent) -> IEnumerable_1[FileSystemTree]:
156
+ def _arrow458(__unit: None=None) -> IEnumerable_1[FileSystemTree]:
157
+ return folders
158
+
159
+ return append(files, delay(_arrow458))
160
+
161
+ return FileSystemTree.create_folder(parent.fields[0], to_array(delay(_arrow459)))
162
+
163
+ else:
164
+ return parent
165
+
166
+
167
+ class ObjectExpr462:
168
+ @property
169
+ def Equals(self) -> Callable[[Array[str], Array[str]], bool]:
170
+ def _arrow461(x: Array[str], y: Array[str]) -> bool:
171
+ def _arrow460(x_1: str, y_1: str) -> bool:
172
+ return x_1 == y_1
173
+
174
+ return equals_with(_arrow460, x, y)
175
+
176
+ return _arrow461
177
+
178
+ @property
179
+ def GetHashCode(self) -> Callable[[Array[str]], int]:
180
+ return array_hash
181
+
182
+ return loop(Array_distinct(map(split, paths, None), ObjectExpr462()), FileSystemTree.create_folder(FileSystemTree.ROOT_NAME(), []))
183
+
184
+ def ToFilePaths(self, remove_root: bool | None=None) -> Array[str]:
185
+ this: FileSystemTree = self
186
+ res: Array[str] = []
187
+ def loop(output: FSharpList[str], parent: FileSystemTree) -> None:
188
+ if parent.tag == 1:
189
+ def action(filest: FileSystemTree, output: Any=output, parent: Any=parent) -> None:
190
+ loop(cons(parent.fields[0], output), filest)
191
+
192
+ iterate(action, parent.fields[1])
193
+
194
+ else:
195
+ item: str = combine_many(to_array_1(reverse(cons(parent.fields[0], output))))
196
+ (res.append(item))
197
+
198
+
199
+ if default_arg(remove_root, True):
200
+ if this.tag == 0:
201
+ (res.append(this.fields[0]))
202
+
203
+ else:
204
+ iterate(curry2(loop)(empty()), this.fields[1])
205
+
206
+
207
+ else:
208
+ loop(empty(), this)
209
+
210
+ return list(res)
211
+
212
+ @staticmethod
213
+ def to_file_paths(remove_root: bool | None=None) -> Callable[[FileSystemTree], Array[str]]:
214
+ def _arrow463(root: FileSystemTree) -> Array[str]:
215
+ return root.ToFilePaths(remove_root)
216
+
217
+ return _arrow463
218
+
219
+ def FilterFiles(self, predicate: Callable[[str], bool]) -> FileSystemTree | None:
220
+ this: FileSystemTree = self
221
+ def loop(parent: FileSystemTree) -> FileSystemTree | None:
222
+ if parent.tag == 1:
223
+ return FileSystemTree(1, parent.fields[0], choose(loop, parent.fields[1], None))
224
+
225
+ else:
226
+ n: str = parent.fields[0]
227
+ if predicate(n):
228
+ return FileSystemTree(0, n)
229
+
230
+ else:
231
+ return None
232
+
233
+
234
+
235
+ return loop(this)
236
+
237
+ @staticmethod
238
+ def filter_files(predicate: Callable[[str], bool]) -> Callable[[FileSystemTree], FileSystemTree | None]:
239
+ def _arrow464(tree: FileSystemTree) -> FileSystemTree | None:
240
+ return tree.FilterFiles(predicate)
241
+
242
+ return _arrow464
243
+
244
+ def FilterFolders(self, predicate: Callable[[str], bool]) -> FileSystemTree | None:
245
+ this: FileSystemTree = self
246
+ def loop(parent: FileSystemTree) -> FileSystemTree | None:
247
+ if parent.tag == 1:
248
+ n_1: str = parent.fields[0]
249
+ if predicate(n_1):
250
+ return FileSystemTree(1, n_1, choose(loop, parent.fields[1], None))
251
+
252
+ else:
253
+ return None
254
+
255
+
256
+ else:
257
+ return FileSystemTree(0, parent.fields[0])
258
+
259
+
260
+ return loop(this)
261
+
262
+ @staticmethod
263
+ def filter_folders(predicate: Callable[[str], bool]) -> Callable[[FileSystemTree], FileSystemTree | None]:
264
+ def _arrow465(tree: FileSystemTree) -> FileSystemTree | None:
265
+ return tree.FilterFolders(predicate)
266
+
267
+ return _arrow465
268
+
269
+ def Filter(self, predicate: Callable[[str], bool]) -> FileSystemTree | None:
270
+ this: FileSystemTree = self
271
+ def loop(parent: FileSystemTree) -> FileSystemTree | None:
272
+ if parent.tag == 1:
273
+ n_1: str = parent.fields[0]
274
+ if predicate(n_1):
275
+ filtered_children: Array[FileSystemTree] = choose(loop, parent.fields[1], None)
276
+ if len(filtered_children) == 0:
277
+ return None
278
+
279
+ else:
280
+ return FileSystemTree(1, n_1, filtered_children)
281
+
282
+
283
+ else:
284
+ return None
285
+
286
+
287
+ else:
288
+ n: str = parent.fields[0]
289
+ if predicate(n):
290
+ return FileSystemTree(0, n)
291
+
292
+ else:
293
+ return None
294
+
295
+
296
+
297
+ return loop(this)
298
+
299
+ @staticmethod
300
+ def filter(predicate: Callable[[str], bool]) -> Callable[[FileSystemTree], FileSystemTree | None]:
301
+ def _arrow466(tree: FileSystemTree) -> FileSystemTree | None:
302
+ return tree.Filter(predicate)
303
+
304
+ return _arrow466
305
+
306
+ def Union(self, other_fst: FileSystemTree) -> FileSystemTree:
307
+ this: FileSystemTree = self
308
+ def _arrow467(__unit: None=None) -> Array[str]:
309
+ array_1: Array[str] = this.ToFilePaths()
310
+ return append_1(other_fst.ToFilePaths(), array_1, None)
311
+
312
+ class ObjectExpr469:
313
+ @property
314
+ def Equals(self) -> Callable[[str, str], bool]:
315
+ def _arrow468(x: str, y: str) -> bool:
316
+ return x == y
317
+
318
+ return _arrow468
319
+
320
+ @property
321
+ def GetHashCode(self) -> Callable[[str], int]:
322
+ return string_hash
323
+
324
+ paths: Array[str] = Array_distinct(_arrow467(), ObjectExpr469())
325
+ return FileSystemTree.from_file_paths(paths)
326
+
327
+ def Copy(self, __unit: None=None) -> FileSystemTree:
328
+ this: FileSystemTree = self
329
+ def mapping(c: FileSystemTree) -> FileSystemTree:
330
+ return c.Copy()
331
+
332
+ return FileSystemTree(0, this.fields[0]) if (this.tag == 0) else FileSystemTree(1, this.fields[0], map(mapping, this.fields[1], None))
333
+
334
+ @staticmethod
335
+ def create_git_keep_file(__unit: None=None) -> FileSystemTree:
336
+ return FileSystemTree.create_file(".gitkeep")
337
+
338
+ @staticmethod
339
+ def create_readme_file(__unit: None=None) -> FileSystemTree:
340
+ return FileSystemTree.create_file("README.md")
341
+
342
+ @staticmethod
343
+ def create_empty_folder(name: str) -> FileSystemTree:
344
+ return FileSystemTree.create_folder(name, [FileSystemTree.create_git_keep_file()])
345
+
346
+ @staticmethod
347
+ def create_assay_folder(assay_name: str, has_data_map: bool | None=None) -> FileSystemTree:
348
+ has_data_map_1: bool = default_arg(has_data_map, False)
349
+ dataset: FileSystemTree = FileSystemTree.create_empty_folder("dataset")
350
+ protocols: FileSystemTree = FileSystemTree.create_empty_folder("protocols")
351
+ readme: FileSystemTree = FileSystemTree.create_readme_file()
352
+ assay_file: FileSystemTree = FileSystemTree.create_file("isa.assay.xlsx")
353
+ if has_data_map_1:
354
+ data_map_file: FileSystemTree = FileSystemTree.create_file("isa.datamap.xlsx")
355
+ return FileSystemTree.create_folder(assay_name, [dataset, protocols, assay_file, readme, data_map_file])
356
+
357
+ else:
358
+ return FileSystemTree.create_folder(assay_name, [dataset, protocols, assay_file, readme])
359
+
360
+
361
+ @staticmethod
362
+ def create_study_folder(study_name: str, has_data_map: bool | None=None) -> FileSystemTree:
363
+ has_data_map_1: bool = default_arg(has_data_map, False)
364
+ resources: FileSystemTree = FileSystemTree.create_empty_folder("resources")
365
+ protocols: FileSystemTree = FileSystemTree.create_empty_folder("protocols")
366
+ readme: FileSystemTree = FileSystemTree.create_readme_file()
367
+ study_file: FileSystemTree = FileSystemTree.create_file("isa.study.xlsx")
368
+ if has_data_map_1:
369
+ data_map_file: FileSystemTree = FileSystemTree.create_file("isa.datamap.xlsx")
370
+ return FileSystemTree.create_folder(study_name, [resources, protocols, study_file, readme, data_map_file])
371
+
372
+ else:
373
+ return FileSystemTree.create_folder(study_name, [resources, protocols, study_file, readme])
374
+
375
+
376
+ @staticmethod
377
+ def create_workflow_folder(workflow_name: str, has_data_map: bool | None=None) -> FileSystemTree:
378
+ has_data_map_1: bool = default_arg(has_data_map, False)
379
+ readme: FileSystemTree = FileSystemTree.create_readme_file()
380
+ workflow_file: FileSystemTree = FileSystemTree.create_file("isa.workflow.xlsx")
381
+ if has_data_map_1:
382
+ data_map_file: FileSystemTree = FileSystemTree.create_file("isa.datamap.xlsx")
383
+ return FileSystemTree.create_folder(workflow_name, [workflow_file, readme, data_map_file])
384
+
385
+ else:
386
+ return FileSystemTree.create_folder(workflow_name, [workflow_file, readme])
387
+
388
+
389
+ @staticmethod
390
+ def create_run_folder(run_name: str, has_data_map: bool | None=None) -> FileSystemTree:
391
+ has_data_map_1: bool = default_arg(has_data_map, False)
392
+ readme: FileSystemTree = FileSystemTree.create_readme_file()
393
+ run_file: FileSystemTree = FileSystemTree.create_file("isa.run.xlsx")
394
+ if has_data_map_1:
395
+ data_map_file: FileSystemTree = FileSystemTree.create_file("isa.datamap.xlsx")
396
+ return FileSystemTree.create_folder(run_name, [run_file, readme, data_map_file])
397
+
398
+ else:
399
+ return FileSystemTree.create_folder(run_name, [run_file, readme])
400
+
401
+
402
+ @staticmethod
403
+ def create_investigation_file(__unit: None=None) -> FileSystemTree:
404
+ return FileSystemTree.create_file("isa.investigation.xlsx")
405
+
406
+ @staticmethod
407
+ def create_assays_folder(assays: Array[FileSystemTree]) -> FileSystemTree:
408
+ return FileSystemTree.create_folder("assays", append_1([FileSystemTree.create_git_keep_file()], assays, None))
409
+
410
+ @staticmethod
411
+ def create_studies_folder(studies: Array[FileSystemTree]) -> FileSystemTree:
412
+ return FileSystemTree.create_folder("studies", append_1([FileSystemTree.create_git_keep_file()], studies, None))
413
+
414
+ @staticmethod
415
+ def create_workflows_folder(workflows: Array[FileSystemTree]) -> FileSystemTree:
416
+ return FileSystemTree.create_folder("workflows", append_1([FileSystemTree.create_git_keep_file()], workflows, None))
417
+
418
+ @staticmethod
419
+ def create_runs_folder(runs: Array[FileSystemTree]) -> FileSystemTree:
420
+ return FileSystemTree.create_folder("runs", append_1([FileSystemTree.create_git_keep_file()], runs, None))
421
+
422
+
423
+ FileSystemTree_reflection = _expr470
424
+
425
+ __all__ = ["FileSystemTree_reflection"]
426
+
@@ -0,0 +1,64 @@
1
+ from typing import Any
2
+ from ..fable_modules.fable_library.array_ import (filter, map_indexed, last)
3
+ from ..fable_modules.fable_library.string_ import (split as split_1, trim_end, trim_start, join, trim)
4
+ from ..fable_modules.fable_library.types import Array
5
+
6
+ seperators: Array[str] = ["/", "\\"]
7
+
8
+ def split(path: str) -> Array[str]:
9
+ def predicate(p: str, path: Any=path) -> bool:
10
+ if p != "":
11
+ return p != "."
12
+
13
+ else:
14
+ return False
15
+
16
+
17
+ return filter(predicate, split_1(path, seperators, None, 3))
18
+
19
+
20
+ def combine(path1: str, path2: str) -> str:
21
+ return (trim_end(path1, *seperators) + "/") + trim_start(path2, *seperators)
22
+
23
+
24
+ def combine_many(paths: Array[str]) -> str:
25
+ def mapping(i: int, p: str, paths: Any=paths) -> str:
26
+ if i == 0:
27
+ return trim_end(p, *seperators)
28
+
29
+ elif i == (len(paths) - 1):
30
+ return trim_start(p, *seperators)
31
+
32
+ else:
33
+ return trim(p, *seperators)
34
+
35
+
36
+ return join("/", map_indexed(mapping, paths, None))
37
+
38
+
39
+ def get_file_name(path: str) -> str:
40
+ return last(split(path))
41
+
42
+
43
+ def is_file(file_name: str, path: str) -> bool:
44
+ return get_file_name(path) == file_name
45
+
46
+
47
+ def get_assay_folder_path(assay_identifier: str) -> str:
48
+ return combine("assays", assay_identifier)
49
+
50
+
51
+ def get_study_folder_path(study_identifier: str) -> str:
52
+ return combine("studies", study_identifier)
53
+
54
+
55
+ def get_workflow_folder_path(workflow_identifier: str) -> str:
56
+ return combine("workflows", workflow_identifier)
57
+
58
+
59
+ def get_run_folder_path(run_identifier: str) -> str:
60
+ return combine("runs", run_identifier)
61
+
62
+
63
+ __all__ = ["seperators", "split", "combine", "combine_many", "get_file_name", "is_file", "get_assay_folder_path", "get_study_folder_path", "get_workflow_folder_path", "get_run_folder_path"]
64
+
File without changes
@@ -0,0 +1,101 @@
1
+ from __future__ import annotations
2
+ from typing import (Any, TypeVar)
3
+ from ...fable_modules.fable_library.list import (choose, of_array, FSharpList)
4
+ from ...fable_modules.fable_library.option import map
5
+ from ...fable_modules.fable_library.seq import map as map_1
6
+ from ...fable_modules.fable_library.util import IEnumerable_1
7
+ from ...fable_modules.thoth_json_core.decode import (object, IRequiredGetter, IOptionalGetter, string, IGetters)
8
+ from ...fable_modules.thoth_json_core.types import (IEncodable, IEncoderHelpers_1, Decoder_1)
9
+ from ...Core.data import Data
10
+ from ...Core.data_context import (DataContext__get_Explication, DataContext__get_Unit, DataContext__get_ObjectType, DataContext__get_Description, DataContext__get_GeneratedBy, DataContext__get_Label, DataContext, DataContext__ctor_Z780A8A2A)
11
+ from ...Core.ontology_annotation import OntologyAnnotation
12
+ from ..data import (encoder as encoder_1, decoder as decoder_1)
13
+ from ..encode import try_include
14
+ from ..ontology_annotation import (OntologyAnnotation_encoder, OntologyAnnotation_decoder)
15
+
16
+ __A_ = TypeVar("__A_")
17
+
18
+ def encoder(dc: DataContext) -> IEncodable:
19
+ def chooser(tupled_arg: tuple[str, IEncodable | None], dc: Any=dc) -> tuple[str, IEncodable] | None:
20
+ def mapping(v_1: IEncodable, tupled_arg: Any=tupled_arg) -> tuple[str, IEncodable]:
21
+ return (tupled_arg[0], v_1)
22
+
23
+ return map(mapping, tupled_arg[1])
24
+
25
+ def _arrow2808(oa: OntologyAnnotation, dc: Any=dc) -> IEncodable:
26
+ return OntologyAnnotation_encoder(oa)
27
+
28
+ def _arrow2809(oa_1: OntologyAnnotation, dc: Any=dc) -> IEncodable:
29
+ return OntologyAnnotation_encoder(oa_1)
30
+
31
+ def _arrow2810(oa_2: OntologyAnnotation, dc: Any=dc) -> IEncodable:
32
+ return OntologyAnnotation_encoder(oa_2)
33
+
34
+ def _arrow2812(value: str, dc: Any=dc) -> IEncodable:
35
+ class ObjectExpr2811(IEncodable):
36
+ def Encode(self, helpers: IEncoderHelpers_1[Any]) -> Any:
37
+ return helpers.encode_string(value)
38
+
39
+ return ObjectExpr2811()
40
+
41
+ def _arrow2816(value_2: str, dc: Any=dc) -> IEncodable:
42
+ class ObjectExpr2815(IEncodable):
43
+ def Encode(self, helpers_1: IEncoderHelpers_1[Any]) -> Any:
44
+ return helpers_1.encode_string(value_2)
45
+
46
+ return ObjectExpr2815()
47
+
48
+ def _arrow2819(value_4: str, dc: Any=dc) -> IEncodable:
49
+ class ObjectExpr2818(IEncodable):
50
+ def Encode(self, helpers_2: IEncoderHelpers_1[Any]) -> Any:
51
+ return helpers_2.encode_string(value_4)
52
+
53
+ return ObjectExpr2818()
54
+
55
+ values: FSharpList[tuple[str, IEncodable]] = choose(chooser, of_array([("data", encoder_1(dc)), try_include("explication", _arrow2808, DataContext__get_Explication(dc)), try_include("unit", _arrow2809, DataContext__get_Unit(dc)), try_include("objectType", _arrow2810, DataContext__get_ObjectType(dc)), try_include("description", _arrow2812, DataContext__get_Description(dc)), try_include("generatedBy", _arrow2816, DataContext__get_GeneratedBy(dc)), try_include("label", _arrow2819, DataContext__get_Label(dc))]))
56
+ class ObjectExpr2826(IEncodable):
57
+ def Encode(self, helpers_3: IEncoderHelpers_1[Any], dc: Any=dc) -> Any:
58
+ def mapping_1(tupled_arg_1: tuple[str, IEncodable]) -> tuple[str, __A_]:
59
+ return (tupled_arg_1[0], tupled_arg_1[1].Encode(helpers_3))
60
+
61
+ arg: IEnumerable_1[tuple[str, __A_]] = map_1(mapping_1, values)
62
+ return helpers_3.encode_object(arg)
63
+
64
+ return ObjectExpr2826()
65
+
66
+
67
+ def _arrow2837(get: IGetters) -> DataContext:
68
+ data: Data
69
+ object_arg: IRequiredGetter = get.Required
70
+ data = object_arg.Field("data", decoder_1)
71
+ def _arrow2829(__unit: None=None) -> OntologyAnnotation | None:
72
+ object_arg_1: IOptionalGetter = get.Optional
73
+ return object_arg_1.Field("explication", OntologyAnnotation_decoder)
74
+
75
+ def _arrow2830(__unit: None=None) -> OntologyAnnotation | None:
76
+ object_arg_2: IOptionalGetter = get.Optional
77
+ return object_arg_2.Field("unit", OntologyAnnotation_decoder)
78
+
79
+ def _arrow2831(__unit: None=None) -> OntologyAnnotation | None:
80
+ object_arg_3: IOptionalGetter = get.Optional
81
+ return object_arg_3.Field("objectType", OntologyAnnotation_decoder)
82
+
83
+ def _arrow2833(__unit: None=None) -> str | None:
84
+ object_arg_4: IOptionalGetter = get.Optional
85
+ return object_arg_4.Field("label", string)
86
+
87
+ def _arrow2835(__unit: None=None) -> str | None:
88
+ object_arg_5: IOptionalGetter = get.Optional
89
+ return object_arg_5.Field("description", string)
90
+
91
+ def _arrow2836(__unit: None=None) -> str | None:
92
+ object_arg_6: IOptionalGetter = get.Optional
93
+ return object_arg_6.Field("generatedBy", string)
94
+
95
+ return DataContext__ctor_Z780A8A2A(data.ID, data.Name, data.DataType, data.Format, data.SelectorFormat, _arrow2829(), _arrow2830(), _arrow2831(), _arrow2833(), _arrow2835(), _arrow2836(), data.Comments)
96
+
97
+
98
+ decoder: Decoder_1[DataContext] = object(_arrow2837)
99
+
100
+ __all__ = ["encoder", "decoder"]
101
+
@@ -0,0 +1,53 @@
1
+ from __future__ import annotations
2
+ from typing import (Any, TypeVar)
3
+ from ...fable_modules.fable_library.seq import map
4
+ from ...fable_modules.fable_library.types import Array
5
+ from ...fable_modules.fable_library.util import (to_enumerable, IEnumerable_1)
6
+ from ...fable_modules.thoth_json_core.decode import (object, resize_array, IRequiredGetter, IGetters)
7
+ from ...fable_modules.thoth_json_core.encode import seq
8
+ from ...fable_modules.thoth_json_core.types import (IEncodable, IEncoderHelpers_1, Decoder_1)
9
+ from ...Core.data_context import DataContext
10
+ from ...Core.data_map import (DataMap__get_DataContexts, DataMap, DataMap__ctor_4E3220A7)
11
+ from ...Core.ontology_annotation import OntologyAnnotation
12
+ from ...Core.Table.composite_cell import CompositeCell
13
+ from .data_context import (encoder as encoder_1, decoder as decoder_1)
14
+
15
+ __A_ = TypeVar("__A_")
16
+
17
+ def encoder(dm: DataMap) -> IEncodable:
18
+ def mapping(dc: DataContext, dm: Any=dm) -> IEncodable:
19
+ return encoder_1(dc)
20
+
21
+ values_1: IEnumerable_1[tuple[str, IEncodable]] = to_enumerable([("dataContexts", seq(map(mapping, DataMap__get_DataContexts(dm))))])
22
+ class ObjectExpr2859(IEncodable):
23
+ def Encode(self, helpers: IEncoderHelpers_1[Any], dm: Any=dm) -> Any:
24
+ def mapping_1(tupled_arg: tuple[str, IEncodable]) -> tuple[str, __A_]:
25
+ return (tupled_arg[0], tupled_arg[1].Encode(helpers))
26
+
27
+ arg: IEnumerable_1[tuple[str, __A_]] = map(mapping_1, values_1)
28
+ return helpers.encode_object(arg)
29
+
30
+ return ObjectExpr2859()
31
+
32
+
33
+ def _arrow2865(get: IGetters) -> DataMap:
34
+ def _arrow2863(__unit: None=None) -> Array[DataContext]:
35
+ arg_1: Decoder_1[Array[DataContext]] = resize_array(decoder_1)
36
+ object_arg: IRequiredGetter = get.Required
37
+ return object_arg.Field("dataContexts", arg_1)
38
+
39
+ return DataMap__ctor_4E3220A7(_arrow2863())
40
+
41
+
42
+ decoder: Decoder_1[DataMap] = object(_arrow2865)
43
+
44
+ def encoder_compressed(string_table: Any, oa_table: Any, cell_table: Any, dm: DataMap) -> IEncodable:
45
+ return encoder(dm)
46
+
47
+
48
+ def decoder_compressed(string_table: Array[str], oa_table: Array[OntologyAnnotation], cell_table: Array[CompositeCell]) -> Decoder_1[DataMap]:
49
+ return decoder
50
+
51
+
52
+ __all__ = ["encoder", "decoder", "encoder_compressed", "decoder_compressed"]
53
+
File without changes