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,26 @@
1
+ from __future__ import annotations
2
+ from typing import Any
3
+ from ...fable_modules.fable_library.date import (min_value, try_parse as try_parse_1)
4
+ from ...fable_modules.fable_library.types import FSharpRef
5
+
6
+ def try_parse(s: str) -> Any | None:
7
+ match_value: tuple[bool, Any]
8
+ out_arg: Any = min_value()
9
+ def _arrow471(__unit: None=None, s: Any=s) -> Any:
10
+ return out_arg
11
+
12
+ def _arrow472(v: Any, s: Any=s) -> None:
13
+ nonlocal out_arg
14
+ out_arg = v
15
+
16
+ match_value = (try_parse_1(s, FSharpRef(_arrow471, _arrow472)), out_arg)
17
+ if match_value[0]:
18
+ return match_value[1]
19
+
20
+ else:
21
+ return None
22
+
23
+
24
+
25
+ __all__ = ["try_parse"]
26
+
@@ -0,0 +1,60 @@
1
+ from typing import (Any, TypeVar)
2
+ from ...fable_modules.fable_library.array_ import fold
3
+ from ...fable_modules.fable_library.date import (year, month, day, hour, minute, second)
4
+ from ...fable_modules.fable_library.option import value as value_1
5
+ from ...fable_modules.fable_library.seq import fold as fold_1
6
+ from ...fable_modules.fable_library.types import Array
7
+ from ...fable_modules.fable_library.util import (identity_hash, number_hash, IEnumerable_1)
8
+
9
+ __A = TypeVar("__A")
10
+
11
+ _A = TypeVar("_A")
12
+
13
+ def merge_hashes(hash1: int, hash2: int) -> int:
14
+ return ((-1640531527 + hash2) + (hash1 << 6)) + (hash1 >> 2)
15
+
16
+
17
+ def hash_date_time(dt: Any) -> int:
18
+ acc: int = 0
19
+ acc = merge_hashes(acc, year(dt)) or 0
20
+ acc = merge_hashes(acc, month(dt)) or 0
21
+ acc = merge_hashes(acc, day(dt)) or 0
22
+ acc = merge_hashes(acc, hour(dt)) or 0
23
+ acc = merge_hashes(acc, minute(dt)) or 0
24
+ acc = merge_hashes(acc, second(dt)) or 0
25
+ return acc
26
+
27
+
28
+ def hash_1(obj: Any | None=None) -> int:
29
+ copy_of_struct: __A = obj
30
+ return identity_hash(copy_of_struct)
31
+
32
+
33
+ def box_hash_option(a: Any | None=None) -> Any:
34
+ def _arrow511(__unit: None=None, a: Any=a) -> int:
35
+ copy_of_struct: _A = value_1(a)
36
+ return identity_hash(copy_of_struct)
37
+
38
+ def _arrow512(__unit: None=None, a: Any=a) -> int:
39
+ copy_of_struct_1: int = 0
40
+ return number_hash(copy_of_struct_1)
41
+
42
+ return _arrow511() if (a is not None) else _arrow512()
43
+
44
+
45
+ def box_hash_array(a: Array[Any]) -> Any:
46
+ def folder(acc: int, o: _A, a: Any=a) -> int:
47
+ return merge_hashes(acc, hash_1(o))
48
+
49
+ return fold(folder, 0, a)
50
+
51
+
52
+ def box_hash_seq(a: IEnumerable_1[Any]) -> Any:
53
+ def folder(acc: int, o: _A, a: Any=a) -> int:
54
+ return merge_hashes(acc, hash_1(o))
55
+
56
+ return fold_1(folder, 0, a)
57
+
58
+
59
+ __all__ = ["merge_hashes", "hash_date_time", "hash_1", "box_hash_option", "box_hash_array", "box_hash_seq"]
60
+
@@ -0,0 +1,248 @@
1
+ from typing import Any
2
+ from ...fable_modules.fable_library.guid import new_guid
3
+ from ...fable_modules.fable_library.reg_exp import (get_item, groups)
4
+ from ...fable_modules.fable_library.string_ import starts_with_exact
5
+ from ...FileSystem.path import combine_many
6
+ from .regex import ActivePatterns__007CRegex_007C__007C
7
+
8
+ def try_check_valid_characters(identifier: str) -> bool:
9
+ if ActivePatterns__007CRegex_007C__007C("^[a-zA-Z0-9_\\- ]+$", identifier) is not None:
10
+ return True
11
+
12
+ else:
13
+ return False
14
+
15
+
16
+
17
+ def check_valid_characters(identifier: str) -> None:
18
+ if try_check_valid_characters(identifier):
19
+ pass
20
+
21
+ else:
22
+ raise Exception(("New identifier \"" + identifier) + "\"contains forbidden characters! Allowed characters are: letters, digits, underscore (_), dash (-) and whitespace ( ).")
23
+
24
+
25
+
26
+ def create_missing_identifier(__unit: None=None) -> str:
27
+ def _arrow510(__unit: None=None) -> str:
28
+ copy_of_struct: str = new_guid()
29
+ return str(copy_of_struct)
30
+
31
+ return "MISSING_IDENTIFIER_" + _arrow510()
32
+
33
+
34
+ def is_missing_identifier(str_1: str) -> bool:
35
+ return starts_with_exact(str_1, "MISSING_IDENTIFIER_")
36
+
37
+
38
+ def remove_missing_identifier(str_1: str) -> str:
39
+ if starts_with_exact(str_1, "MISSING_IDENTIFIER_"):
40
+ return ""
41
+
42
+ else:
43
+ return str_1
44
+
45
+
46
+
47
+ def Assay_identifierFromFileName(file_name: str) -> str:
48
+ active_pattern_result: Any | None = ActivePatterns__007CRegex_007C__007C("^(assays(\\/|\\\\))?(?<identifier>[a-zA-Z0-9_\\- ]+)((\\/|\\\\)isa.assay.xlsx)?$", file_name)
49
+ if active_pattern_result is not None:
50
+ m: Any = active_pattern_result
51
+ return get_item(groups(m), "identifier") or ""
52
+
53
+ else:
54
+ raise Exception(("Cannot parse assay identifier from FileName `" + file_name) + "`")
55
+
56
+
57
+
58
+ def Assay_tryIdentifierFromFileName(file_name: str) -> str | None:
59
+ active_pattern_result: Any | None = ActivePatterns__007CRegex_007C__007C("^(assays(\\/|\\\\))?(?<identifier>[a-zA-Z0-9_\\- ]+)((\\/|\\\\)isa.assay.xlsx)?$", file_name)
60
+ if active_pattern_result is not None:
61
+ m: Any = active_pattern_result
62
+ return get_item(groups(m), "identifier") or ""
63
+
64
+ else:
65
+ return None
66
+
67
+
68
+
69
+ def Assay_fileNameFromIdentifier(identifier: str) -> str:
70
+ check_valid_characters(identifier)
71
+ return combine_many(["assays", identifier, "isa.assay.xlsx"])
72
+
73
+
74
+ def Assay_tryFileNameFromIdentifier(identifier: str) -> str | None:
75
+ if try_check_valid_characters(identifier):
76
+ return combine_many(["assays", identifier, "isa.assay.xlsx"])
77
+
78
+ else:
79
+ return None
80
+
81
+
82
+
83
+ def Assay_datamapFileNameFromIdentifier(identifier: str) -> str:
84
+ check_valid_characters(identifier)
85
+ return combine_many(["assays", identifier, "isa.datamap.xlsx"])
86
+
87
+
88
+ def Assay_tryDatamapFileNameFromIdentifier(identifier: str) -> str | None:
89
+ if try_check_valid_characters(identifier):
90
+ return combine_many(["assays", identifier, "isa.datamap.xlsx"])
91
+
92
+ else:
93
+ return None
94
+
95
+
96
+
97
+ def Study_identifierFromFileName(file_name: str) -> str:
98
+ active_pattern_result: Any | None = ActivePatterns__007CRegex_007C__007C("^(studies(\\/|\\\\))?(?<identifier>[a-zA-Z0-9_\\- ]+)((\\/|\\\\)isa.study.xlsx)?$", file_name)
99
+ if active_pattern_result is not None:
100
+ m: Any = active_pattern_result
101
+ return get_item(groups(m), "identifier") or ""
102
+
103
+ else:
104
+ raise Exception(("Cannot parse study identifier from FileName `" + file_name) + "`")
105
+
106
+
107
+
108
+ def Study_tryIdentifierFromFileName(file_name: str) -> str | None:
109
+ active_pattern_result: Any | None = ActivePatterns__007CRegex_007C__007C("^(studies(\\/|\\\\))?(?<identifier>[a-zA-Z0-9_\\- ]+)((\\/|\\\\)isa.study.xlsx)?$", file_name)
110
+ if active_pattern_result is not None:
111
+ m: Any = active_pattern_result
112
+ return get_item(groups(m), "identifier") or ""
113
+
114
+ else:
115
+ return None
116
+
117
+
118
+
119
+ def Study_fileNameFromIdentifier(identifier: str) -> str:
120
+ check_valid_characters(identifier)
121
+ return combine_many(["studies", identifier, "isa.study.xlsx"])
122
+
123
+
124
+ def Study_tryFileNameFromIdentifier(identifier: str) -> str | None:
125
+ if try_check_valid_characters(identifier):
126
+ return combine_many(["studies", identifier, "isa.study.xlsx"])
127
+
128
+ else:
129
+ return None
130
+
131
+
132
+
133
+ def Study_datamapFileNameFromIdentifier(identifier: str) -> str:
134
+ check_valid_characters(identifier)
135
+ return combine_many(["studies", identifier, "isa.datamap.xlsx"])
136
+
137
+
138
+ def Study_tryDatamapFileNameFromIdentifier(identifier: str) -> str | None:
139
+ if try_check_valid_characters(identifier):
140
+ return combine_many(["studies", identifier, "isa.datamap.xlsx"])
141
+
142
+ else:
143
+ return None
144
+
145
+
146
+
147
+ def Workflow_identifierFromFileName(file_name: str) -> str:
148
+ active_pattern_result: Any | None = ActivePatterns__007CRegex_007C__007C("^(workflows(\\/|\\\\))?(?<identifier>[a-zA-Z0-9_\\- ]+)((\\/|\\\\)isa.workflow.xlsx)?$", file_name)
149
+ if active_pattern_result is not None:
150
+ m: Any = active_pattern_result
151
+ return get_item(groups(m), "identifier") or ""
152
+
153
+ else:
154
+ raise Exception(("Cannot parse workflow identifier from FileName `" + file_name) + "`")
155
+
156
+
157
+
158
+ def Workflow_tryIdentifierFromFileName(file_name: str) -> str | None:
159
+ active_pattern_result: Any | None = ActivePatterns__007CRegex_007C__007C("^(workflows(\\/|\\\\))?(?<identifier>[a-zA-Z0-9_\\- ]+)((\\/|\\\\)isa.workflow.xlsx)?$", file_name)
160
+ if active_pattern_result is not None:
161
+ m: Any = active_pattern_result
162
+ return get_item(groups(m), "identifier") or ""
163
+
164
+ else:
165
+ return None
166
+
167
+
168
+
169
+ def Workflow_fileNameFromIdentifier(identifier: str) -> str:
170
+ check_valid_characters(identifier)
171
+ return combine_many(["workflows", identifier, "isa.workflow.xlsx"])
172
+
173
+
174
+ def Workflow_tryFileNameFromIdentifier(identifier: str) -> str | None:
175
+ if try_check_valid_characters(identifier):
176
+ return combine_many(["workflows", identifier, "isa.workflow.xlsx"])
177
+
178
+ else:
179
+ return None
180
+
181
+
182
+
183
+ def Workflow_datamapFileNameFromIdentifier(identifier: str) -> str:
184
+ check_valid_characters(identifier)
185
+ return combine_many(["workflows", identifier, "isa.datamap.xlsx"])
186
+
187
+
188
+ def Workflow_tryDatamapFileNameFromIdentifier(identifier: str) -> str | None:
189
+ if try_check_valid_characters(identifier):
190
+ return combine_many(["workflows", identifier, "isa.datamap.xlsx"])
191
+
192
+ else:
193
+ return None
194
+
195
+
196
+
197
+ def Run_identifierFromFileName(file_name: str) -> str:
198
+ active_pattern_result: Any | None = ActivePatterns__007CRegex_007C__007C("^(runs(\\/|\\\\))?(?<identifier>[a-zA-Z0-9_\\- ]+)((\\/|\\\\)isa.run.xlsx)?$", file_name)
199
+ if active_pattern_result is not None:
200
+ m: Any = active_pattern_result
201
+ return get_item(groups(m), "identifier") or ""
202
+
203
+ else:
204
+ raise Exception(("Cannot parse run identifier from FileName `" + file_name) + "`")
205
+
206
+
207
+
208
+ def Run_tryIdentifierFromFileName(file_name: str) -> str | None:
209
+ active_pattern_result: Any | None = ActivePatterns__007CRegex_007C__007C("^(runs(\\/|\\\\))?(?<identifier>[a-zA-Z0-9_\\- ]+)((\\/|\\\\)isa.run.xlsx)?$", file_name)
210
+ if active_pattern_result is not None:
211
+ m: Any = active_pattern_result
212
+ return get_item(groups(m), "identifier") or ""
213
+
214
+ else:
215
+ return None
216
+
217
+
218
+
219
+ def Run_fileNameFromIdentifier(identifier: str) -> str:
220
+ check_valid_characters(identifier)
221
+ return combine_many(["runs", identifier, "isa.run.xlsx"])
222
+
223
+
224
+ def Run_tryFileNameFromIdentifier(identifier: str) -> str | None:
225
+ if try_check_valid_characters(identifier):
226
+ return combine_many(["runs", identifier, "isa.run.xlsx"])
227
+
228
+ else:
229
+ return None
230
+
231
+
232
+
233
+ def Run_datamapFileNameFromIdentifier(identifier: str) -> str:
234
+ check_valid_characters(identifier)
235
+ return combine_many(["runs", identifier, "isa.datamap.xlsx"])
236
+
237
+
238
+ def Run_tryDatamapFileNameFromIdentifier(identifier: str) -> str | None:
239
+ if try_check_valid_characters(identifier):
240
+ return combine_many(["runs", identifier, "isa.datamap.xlsx"])
241
+
242
+ else:
243
+ return None
244
+
245
+
246
+
247
+ __all__ = ["try_check_valid_characters", "check_valid_characters", "create_missing_identifier", "is_missing_identifier", "remove_missing_identifier", "Assay_identifierFromFileName", "Assay_tryIdentifierFromFileName", "Assay_fileNameFromIdentifier", "Assay_tryFileNameFromIdentifier", "Assay_datamapFileNameFromIdentifier", "Assay_tryDatamapFileNameFromIdentifier", "Study_identifierFromFileName", "Study_tryIdentifierFromFileName", "Study_fileNameFromIdentifier", "Study_tryFileNameFromIdentifier", "Study_datamapFileNameFromIdentifier", "Study_tryDatamapFileNameFromIdentifier", "Workflow_identifierFromFileName", "Workflow_tryIdentifierFromFileName", "Workflow_fileNameFromIdentifier", "Workflow_tryFileNameFromIdentifier", "Workflow_datamapFileNameFromIdentifier", "Workflow_tryDatamapFileNameFromIdentifier", "Run_identifierFromFileName", "Run_tryIdentifierFromFileName", "Run_fileNameFromIdentifier", "Run_tryFileNameFromIdentifier", "Run_datamapFileNameFromIdentifier", "Run_tryDatamapFileNameFromIdentifier"]
248
+
@@ -0,0 +1,42 @@
1
+ from typing import Any
2
+ from ...fable_modules.fable_library.reg_exp import (create, match)
3
+ from .regex import ActivePatterns__007CRegex_007C__007C
4
+
5
+ orcid_regex: Any = create("[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{3}[0-9X]")
6
+
7
+ def try_get_orcid_number(orcid: str) -> str | None:
8
+ m: Any = match(orcid_regex, orcid)
9
+ if m is not None:
10
+ return m[0]
11
+
12
+ else:
13
+ return None
14
+
15
+
16
+
17
+ orcid_prefix: str = "http://orcid.org/"
18
+
19
+ def _007CORCID_007C__007C(input: str) -> str | None:
20
+ active_pattern_result: Any | None = ActivePatterns__007CRegex_007C__007C("[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{3}[0-9X]", input)
21
+ if active_pattern_result is not None:
22
+ r: Any = active_pattern_result
23
+ return r[0]
24
+
25
+ else:
26
+ return None
27
+
28
+
29
+
30
+ def try_get_orcid_url(orcid: str) -> str | None:
31
+ active_pattern_result: str | None = _007CORCID_007C__007C(orcid)
32
+ if active_pattern_result is not None:
33
+ orcid_1: str = active_pattern_result
34
+ return ((("" + orcid_prefix) + "") + orcid_1) + ""
35
+
36
+ else:
37
+ return None
38
+
39
+
40
+
41
+ __all__ = ["orcid_regex", "try_get_orcid_number", "orcid_prefix", "_007CORCID_007C__007C", "try_get_orcid_url"]
42
+
@@ -0,0 +1,13 @@
1
+ from abc import abstractmethod
2
+ from typing import Protocol
3
+
4
+ class IISAPrintable(Protocol):
5
+ @abstractmethod
6
+ def Print(self) -> str:
7
+ ...
8
+
9
+ @abstractmethod
10
+ def PrintCompact(self) -> str:
11
+ ...
12
+
13
+