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,225 @@
1
+ from __future__ import annotations
2
+ from collections.abc import Callable
3
+ from typing import Any
4
+ from ..fable_modules.fable_library.list import (of_array, FSharpList)
5
+ from ..fable_modules.fable_library.reflection import (TypeInfo, class_type)
6
+ from ..fable_modules.fable_library.seq import (map, iterate_indexed)
7
+ from ..fable_modules.fable_library.types import Array
8
+ from .data_context import (DataContext, DataContext__get_Explication, DataContext__set_Explication_279AAFF2, DataContext__get_Unit, DataContext__set_Unit_279AAFF2, DataContext__get_ObjectType, DataContext__set_ObjectType_279AAFF2, DataContext__get_Description, DataContext__set_Description_6DFDD678, DataContext__Copy)
9
+ from .Helper.hash_codes import (hash_1, box_hash_seq)
10
+ from .ontology_annotation import OntologyAnnotation
11
+ from .Table.composite_cell import CompositeCell
12
+ from .Table.composite_header import (IOType, CompositeHeader)
13
+
14
+ DataMapAux_dataHeader: CompositeHeader = CompositeHeader(11, IOType(2))
15
+
16
+ DataMapAux_explication: OntologyAnnotation = OntologyAnnotation("Clarification", "NCIT", "http://purl.obolibrary.org/obo/NCIT_C94778")
17
+
18
+ DataMapAux_explicationHeader: CompositeHeader = CompositeHeader(3, DataMapAux_explication)
19
+
20
+ DataMapAux_unit: OntologyAnnotation = OntologyAnnotation("Unit", "UO", "http://purl.obolibrary.org/obo/UO_0000000")
21
+
22
+ DataMapAux_unitHeader: CompositeHeader = CompositeHeader(3, DataMapAux_unit)
23
+
24
+ DataMapAux_objectType: OntologyAnnotation = OntologyAnnotation("Data Type", "NCIT", "http://purl.obolibrary.org/obo/NCIT_C42645")
25
+
26
+ DataMapAux_objectTypeHeader: CompositeHeader = CompositeHeader(3, DataMapAux_objectType)
27
+
28
+ DataMapAux_labelHeader: CompositeHeader = CompositeHeader(13, "Label")
29
+
30
+ DataMapAux_descriptionHeader: CompositeHeader = CompositeHeader(13, "Description")
31
+
32
+ DataMapAux_generatedByHeader: CompositeHeader = CompositeHeader(13, "Generated By")
33
+
34
+ DataMapAux_allowedHeaders: FSharpList[CompositeHeader] = of_array([DataMapAux_dataHeader, DataMapAux_explicationHeader, DataMapAux_unitHeader, DataMapAux_objectTypeHeader, DataMapAux_descriptionHeader, DataMapAux_generatedByHeader])
35
+
36
+ def DataMapAux_getOntologyColumn(f: Callable[[DataContext], OntologyAnnotation | None], data_contexts: Array[DataContext]) -> Array[CompositeCell]:
37
+ def mapping(dc: DataContext, f: Any=f, data_contexts: Any=data_contexts) -> CompositeCell:
38
+ match_value: OntologyAnnotation | None = f(dc)
39
+ if match_value is None:
40
+ return CompositeCell.empty_term()
41
+
42
+ else:
43
+ return CompositeCell(0, match_value)
44
+
45
+
46
+ return list(map(mapping, data_contexts))
47
+
48
+
49
+ def DataMapAux_getStringColumn(f: Callable[[DataContext], str | None], data_contexts: Array[DataContext]) -> Array[CompositeCell]:
50
+ def mapping(dc: DataContext, f: Any=f, data_contexts: Any=data_contexts) -> CompositeCell:
51
+ match_value: str | None = f(dc)
52
+ if match_value is None:
53
+ return CompositeCell.empty_free_text()
54
+
55
+ else:
56
+ return CompositeCell(1, match_value)
57
+
58
+
59
+ return list(map(mapping, data_contexts))
60
+
61
+
62
+ def DataMapAux_setOntologyColumn(f: Callable[[DataContext, OntologyAnnotation | None], None], column: Array[CompositeCell], data_contexts: Array[DataContext]) -> None:
63
+ def action(i: int, cell: CompositeCell, f: Any=f, column: Any=column, data_contexts: Any=data_contexts) -> None:
64
+ if cell.tag == 0:
65
+ f(data_contexts[i], cell.fields[0])
66
+
67
+
68
+ iterate_indexed(action, column)
69
+
70
+
71
+ def DataMapAux_setStringColumn(f: Callable[[DataContext, str | None], None], column: Array[CompositeCell], data_contexts: Array[DataContext]) -> None:
72
+ def action(i: int, cell: CompositeCell, f: Any=f, column: Any=column, data_contexts: Any=data_contexts) -> None:
73
+ if cell.tag == 1:
74
+ f(data_contexts[i], cell.fields[0])
75
+
76
+
77
+ iterate_indexed(action, column)
78
+
79
+
80
+ def DataMapAux_SanityChecks_rowIndexInBoundaries(row: int, data_contexts: Array[DataContext]) -> None:
81
+ if row < 0:
82
+ raise Exception("Row index must be greater or equal to 0.")
83
+
84
+ if row >= len(data_contexts):
85
+ raise Exception("Row index must be less than the number of rows.")
86
+
87
+
88
+
89
+ def DataMapAux_SanityChecks_lengthOfNewColumn(new_column: Array[CompositeCell], data_contexts: Array[DataContext]) -> None:
90
+ if len(new_column) != len(data_contexts):
91
+ raise Exception("Length of new column does not match length of data contexts.")
92
+
93
+
94
+
95
+ def _expr665() -> TypeInfo:
96
+ return class_type("ARCtrl.DataMap", None, DataMap)
97
+
98
+
99
+ class DataMap:
100
+ def __init__(self, data_contexts: Array[DataContext]) -> None:
101
+ self.static_hash: int = 0
102
+ self.data_contexts_0040108: Array[DataContext] = data_contexts
103
+
104
+ def __eq__(self, obj: Any=None) -> bool:
105
+ this: DataMap = self
106
+ return hash_1(this) == hash_1(obj)
107
+
108
+ def __hash__(self, __unit: None=None) -> Any:
109
+ this: DataMap = self
110
+ return box_hash_seq(this.data_contexts_0040108)
111
+
112
+
113
+ DataMap_reflection = _expr665
114
+
115
+ def DataMap__ctor_4E3220A7(data_contexts: Array[DataContext]) -> DataMap:
116
+ return DataMap(data_contexts)
117
+
118
+
119
+ def DataMap__get_StaticHash(this: DataMap) -> int:
120
+ return this.static_hash
121
+
122
+
123
+ def DataMap__set_StaticHash_Z524259A4(this: DataMap, value: int) -> None:
124
+ this.static_hash = value or 0
125
+
126
+
127
+ def DataMap__get_DataContexts(this: DataMap) -> Array[DataContext]:
128
+ return this.data_contexts_0040108
129
+
130
+
131
+ def DataMap_init(__unit: None=None) -> DataMap:
132
+ return DataMap__ctor_4E3220A7([])
133
+
134
+
135
+ def DataMap__GetExplicationColumn(this: DataMap) -> Array[CompositeCell]:
136
+ def _arrow666(dc: DataContext, this: Any=this) -> OntologyAnnotation | None:
137
+ return DataContext__get_Explication(dc)
138
+
139
+ return DataMapAux_getOntologyColumn(_arrow666, this.data_contexts_0040108)
140
+
141
+
142
+ def DataMap__SetExplicationColumn_C98E589(this: DataMap, cells: Array[CompositeCell]) -> None:
143
+ def _arrow667(dc: DataContext, oa: OntologyAnnotation | None=None, this: Any=this, cells: Any=cells) -> None:
144
+ DataContext__set_Explication_279AAFF2(dc, oa)
145
+
146
+ DataMapAux_setOntologyColumn(_arrow667, cells, this.data_contexts_0040108)
147
+
148
+
149
+ def DataMap__GetUnitColumn(this: DataMap) -> Array[CompositeCell]:
150
+ def _arrow668(dc: DataContext, this: Any=this) -> OntologyAnnotation | None:
151
+ return DataContext__get_Unit(dc)
152
+
153
+ return DataMapAux_getOntologyColumn(_arrow668, this.data_contexts_0040108)
154
+
155
+
156
+ def DataMap__SetUnitColumn_C98E589(this: DataMap, cells: Array[CompositeCell]) -> None:
157
+ def _arrow669(dc: DataContext, oa: OntologyAnnotation | None=None, this: Any=this, cells: Any=cells) -> None:
158
+ DataContext__set_Unit_279AAFF2(dc, oa)
159
+
160
+ DataMapAux_setOntologyColumn(_arrow669, cells, this.data_contexts_0040108)
161
+
162
+
163
+ def DataMap__GetObjectTypeColumn(this: DataMap) -> Array[CompositeCell]:
164
+ def _arrow670(dc: DataContext, this: Any=this) -> OntologyAnnotation | None:
165
+ return DataContext__get_ObjectType(dc)
166
+
167
+ return DataMapAux_getOntologyColumn(_arrow670, this.data_contexts_0040108)
168
+
169
+
170
+ def DataMap__SetDataTypeColumn_C98E589(this: DataMap, cells: Array[CompositeCell]) -> None:
171
+ def _arrow671(dc: DataContext, oa: OntologyAnnotation | None=None, this: Any=this, cells: Any=cells) -> None:
172
+ DataContext__set_ObjectType_279AAFF2(dc, oa)
173
+
174
+ DataMapAux_setOntologyColumn(_arrow671, cells, this.data_contexts_0040108)
175
+
176
+
177
+ def DataMap__GetLabelColumn(this: DataMap) -> Array[CompositeCell]:
178
+ def _arrow672(dc: DataContext, this: Any=this) -> str | None:
179
+ return dc.Name
180
+
181
+ return DataMapAux_getStringColumn(_arrow672, this.data_contexts_0040108)
182
+
183
+
184
+ def DataMap__SetLabelColumn_C98E589(this: DataMap, cells: Array[CompositeCell]) -> None:
185
+ def _arrow673(dc: DataContext, s: str | None=None, this: Any=this, cells: Any=cells) -> None:
186
+ dc.Name = s
187
+
188
+ DataMapAux_setStringColumn(_arrow673, cells, this.data_contexts_0040108)
189
+
190
+
191
+ def DataMap__GetDescriptionColumn(this: DataMap) -> Array[CompositeCell]:
192
+ def _arrow674(dc: DataContext, this: Any=this) -> str | None:
193
+ return DataContext__get_Description(dc)
194
+
195
+ return DataMapAux_getStringColumn(_arrow674, this.data_contexts_0040108)
196
+
197
+
198
+ def DataMap__SetDescriptionColumn_C98E589(this: DataMap, cells: Array[CompositeCell]) -> None:
199
+ def _arrow675(dc: DataContext, s: str | None=None, this: Any=this, cells: Any=cells) -> None:
200
+ DataContext__set_Description_6DFDD678(dc, s)
201
+
202
+ DataMapAux_setStringColumn(_arrow675, cells, this.data_contexts_0040108)
203
+
204
+
205
+ def DataMap__GetDataContext_Z58338566(this: DataMap, row: int, SkipValidation: Any | None=None) -> DataContext:
206
+ DataMapAux_SanityChecks_rowIndexInBoundaries(row, this.data_contexts_0040108)
207
+ return this.data_contexts_0040108[row]
208
+
209
+
210
+ def DataMap_getDataContext_Z58338566(row: int, SkipValidation: Any | None=None) -> Callable[[DataMap], DataContext]:
211
+ def _arrow676(dm: DataMap, row: Any=row, SkipValidation: Any=SkipValidation) -> DataContext:
212
+ return DataMap__GetDataContext_Z58338566(dm, row, SkipValidation)
213
+
214
+ return _arrow676
215
+
216
+
217
+ def DataMap__Copy(this: DataMap) -> DataMap:
218
+ def mapping(dc: DataContext, this: Any=this) -> DataContext:
219
+ return DataContext__Copy(dc)
220
+
221
+ return DataMap__ctor_4E3220A7(list(map(mapping, this.data_contexts_0040108)))
222
+
223
+
224
+ __all__ = ["DataMapAux_dataHeader", "DataMapAux_explication", "DataMapAux_explicationHeader", "DataMapAux_unit", "DataMapAux_unitHeader", "DataMapAux_objectType", "DataMapAux_objectTypeHeader", "DataMapAux_labelHeader", "DataMapAux_descriptionHeader", "DataMapAux_generatedByHeader", "DataMapAux_allowedHeaders", "DataMapAux_getOntologyColumn", "DataMapAux_getStringColumn", "DataMapAux_setOntologyColumn", "DataMapAux_setStringColumn", "DataMapAux_SanityChecks_rowIndexInBoundaries", "DataMapAux_SanityChecks_lengthOfNewColumn", "DataMap_reflection", "DataMap__get_StaticHash", "DataMap__set_StaticHash_Z524259A4", "DataMap__get_DataContexts", "DataMap_init", "DataMap__GetExplicationColumn", "DataMap__SetExplicationColumn_C98E589", "DataMap__GetUnitColumn", "DataMap__SetUnitColumn_C98E589", "DataMap__GetObjectTypeColumn", "DataMap__SetDataTypeColumn_C98E589", "DataMap__GetLabelColumn", "DataMap__SetLabelColumn_C98E589", "DataMap__GetDescriptionColumn", "DataMap__SetDescriptionColumn_C98E589", "DataMap__GetDataContext_Z58338566", "DataMap_getDataContext_Z58338566", "DataMap__Copy"]
225
+
@@ -0,0 +1,31 @@
1
+ from __future__ import annotations
2
+ from .arc_types import (ArcAssay, ArcStudy, ArcInvestigation)
3
+ from .Helper.identifier import check_valid_characters
4
+ from .Table.arc_table import ArcTable
5
+
6
+ def set_arc_table_name(new_name: str, table: ArcTable) -> ArcTable:
7
+ check_valid_characters(new_name)
8
+ table.Name = new_name
9
+ return table
10
+
11
+
12
+ def set_assay_identifier(new_identifier: str, assay: ArcAssay) -> ArcAssay:
13
+ check_valid_characters(new_identifier)
14
+ assay.Identifier = new_identifier
15
+ return assay
16
+
17
+
18
+ def set_study_identifier(new_identifier: str, study: ArcStudy) -> ArcStudy:
19
+ check_valid_characters(new_identifier)
20
+ study.Identifier = new_identifier
21
+ return study
22
+
23
+
24
+ def set_investigation_identifier(new_identifier: str, investigation: ArcInvestigation) -> ArcInvestigation:
25
+ check_valid_characters(new_identifier)
26
+ investigation.Identifier = new_identifier
27
+ return investigation
28
+
29
+
30
+ __all__ = ["set_arc_table_name", "set_assay_identifier", "set_study_identifier", "set_investigation_identifier"]
31
+
@@ -0,0 +1,36 @@
1
+ from __future__ import annotations
2
+ from abc import abstractmethod
3
+ from typing import Protocol
4
+ from .ontology_annotation import OntologyAnnotation
5
+ from .value import Value
6
+
7
+ class IPropertyValue(Protocol):
8
+ @abstractmethod
9
+ def AlternateName(self) -> str | None:
10
+ ...
11
+
12
+ @abstractmethod
13
+ def Description(self) -> str | None:
14
+ ...
15
+
16
+ @abstractmethod
17
+ def GetAdditionalType(self) -> str:
18
+ ...
19
+
20
+ @abstractmethod
21
+ def GetCategory(self) -> OntologyAnnotation | None:
22
+ ...
23
+
24
+ @abstractmethod
25
+ def GetUnit(self) -> OntologyAnnotation | None:
26
+ ...
27
+
28
+ @abstractmethod
29
+ def GetValue(self) -> Value | None:
30
+ ...
31
+
32
+ @abstractmethod
33
+ def MeasurementMethod(self) -> str | None:
34
+ ...
35
+
36
+
@@ -0,0 +1,299 @@
1
+ from __future__ import annotations
2
+ from typing import Any
3
+ from ..fable_modules.fable_library.option import (default_arg, value as value_4)
4
+ from ..fable_modules.fable_library.reflection import (TypeInfo, class_type)
5
+ from ..fable_modules.fable_library.seq import (to_list, delay, append, singleton, empty, to_array)
6
+ from ..fable_modules.fable_library.string_ import (join, to_text, printf)
7
+ from ..fable_modules.fable_library.system_text import (StringBuilder__ctor, StringBuilder__Append_Z721C83C5)
8
+ from ..fable_modules.fable_library.types import (Array, to_string)
9
+ from ..fable_modules.fable_library.util import (ignore, IEnumerable_1, safe_hash)
10
+ from .comment import Comment
11
+ from .Helper.collections_ import ResizeArray_map
12
+ from .Helper.hash_codes import (box_hash_array, box_hash_option, hash_1 as hash_1_1)
13
+ from .Helper.regex import (try_parse_term_annotation, ActivePatterns__007CRegex_007C__007C, Pattern_TermAnnotationShortPattern)
14
+ from .Helper.url import create_oauri
15
+
16
+ def _expr539() -> TypeInfo:
17
+ return class_type("ARCtrl.OntologyAnnotation", None, OntologyAnnotation)
18
+
19
+
20
+ class OntologyAnnotation:
21
+ def __init__(self, name: str | None=None, tsr: str | None=None, tan: str | None=None, comments: Array[Comment] | None=None) -> None:
22
+ self._name: str | None = None if (name is None) else (None if (name == "") else name)
23
+ self._termSourceREF: str | None = None if (tsr is None) else (None if (tsr == "") else tsr)
24
+ self._termAccessionNumber: str | None = None if (tan is None) else (None if (tan == "") else (None if (tan == ":") else tan))
25
+ self._comments: Array[Comment] = default_arg(comments, [])
26
+
27
+ @property
28
+ def Name(self, __unit: None=None) -> str | None:
29
+ this: OntologyAnnotation = self
30
+ return this._name
31
+
32
+ @Name.setter
33
+ def Name(self, name: str | None=None) -> None:
34
+ this: OntologyAnnotation = self
35
+ this._name = name
36
+
37
+ @property
38
+ def TermSourceREF(self, __unit: None=None) -> str | None:
39
+ this: OntologyAnnotation = self
40
+ return this._termSourceREF
41
+
42
+ @TermSourceREF.setter
43
+ def TermSourceREF(self, tsr: str | None=None) -> None:
44
+ this: OntologyAnnotation = self
45
+ this._termSourceREF = tsr
46
+
47
+ @property
48
+ def TermAccessionNumber(self, __unit: None=None) -> str | None:
49
+ this: OntologyAnnotation = self
50
+ return this._termAccessionNumber
51
+
52
+ @TermAccessionNumber.setter
53
+ def TermAccessionNumber(self, tan: str | None=None) -> None:
54
+ this: OntologyAnnotation = self
55
+ this._termAccessionNumber = tan
56
+
57
+ @property
58
+ def Comments(self, __unit: None=None) -> Array[Comment]:
59
+ this: OntologyAnnotation = self
60
+ return this._comments
61
+
62
+ @Comments.setter
63
+ def Comments(self, comments: Array[Comment]) -> None:
64
+ this: OntologyAnnotation = self
65
+ this._comments = comments
66
+
67
+ @staticmethod
68
+ def make(name: str | None, tsr: str | None, tan: str | None, comments: Array[Comment]) -> OntologyAnnotation:
69
+ return OntologyAnnotation(name, tsr, tan, comments)
70
+
71
+ @staticmethod
72
+ def create(name: str | None=None, tsr: str | None=None, tan: str | None=None, comments: Array[Comment] | None=None) -> OntologyAnnotation:
73
+ comments_1: Array[Comment] = default_arg(comments, [])
74
+ return OntologyAnnotation.make(name, tsr, tan, comments_1)
75
+
76
+ @property
77
+ def TANInfo(self, __unit: None=None) -> dict[str, Any] | None:
78
+ this: OntologyAnnotation = self
79
+ match_value: str | None = this.TermAccessionNumber
80
+ if match_value is None:
81
+ return None
82
+
83
+ else:
84
+ tan: str = match_value
85
+ match_value_1: dict[str, Any] | None = try_parse_term_annotation(tan)
86
+ if match_value_1 is None:
87
+ match_value_2: str | None = this.TermSourceREF
88
+ (pattern_matching_result, tsr) = (None, None)
89
+ if match_value_2 is None:
90
+ pattern_matching_result = 0
91
+
92
+ elif match_value_2 == "":
93
+ pattern_matching_result = 0
94
+
95
+ else:
96
+ pattern_matching_result = 1
97
+ tsr = match_value_2
98
+
99
+ if pattern_matching_result == 0:
100
+ return None
101
+
102
+ elif pattern_matching_result == 1:
103
+ return {
104
+ "IDSpace": tsr,
105
+ "LocalID": tan
106
+ }
107
+
108
+
109
+ else:
110
+ return match_value_1
111
+
112
+
113
+
114
+ @property
115
+ def NameText(self, __unit: None=None) -> str:
116
+ this: OntologyAnnotation = self
117
+ return default_arg(this.Name, "")
118
+
119
+ @staticmethod
120
+ def create_uri_annotation(term_source_ref: str, local_tan: str) -> str:
121
+ return create_oauri(term_source_ref, local_tan)
122
+
123
+ @staticmethod
124
+ def from_term_annotation(tan: str, name: str | None=None) -> OntologyAnnotation:
125
+ match_value: dict[str, Any] | None = try_parse_term_annotation(tan)
126
+ if match_value is None:
127
+ return OntologyAnnotation.create(name, None, tan)
128
+
129
+ else:
130
+ r: dict[str, Any] = match_value
131
+ accession: str = (r["IDSpace"] + ":") + r["LocalID"]
132
+ return OntologyAnnotation.create(name, r["IDSpace"], accession)
133
+
134
+
135
+ @property
136
+ def TermAccessionShort(self, __unit: None=None) -> str:
137
+ this: OntologyAnnotation = self
138
+ match_value: dict[str, Any] | None = this.TANInfo
139
+ if match_value is not None:
140
+ id: dict[str, Any] = match_value
141
+ return ((("" + id["IDSpace"]) + ":") + id["LocalID"]) + ""
142
+
143
+ else:
144
+ return ""
145
+
146
+
147
+ @property
148
+ def TermAccessionOntobeeUrl(self, __unit: None=None) -> str:
149
+ this: OntologyAnnotation = self
150
+ match_value: dict[str, Any] | None = this.TANInfo
151
+ if match_value is not None:
152
+ id: dict[str, Any] = match_value
153
+ return OntologyAnnotation.create_uri_annotation(id["IDSpace"], id["LocalID"])
154
+
155
+ else:
156
+ return ""
157
+
158
+
159
+ @property
160
+ def TermAccessionAndOntobeeUrlIfShort(self, __unit: None=None) -> str:
161
+ this: OntologyAnnotation = self
162
+ match_value: str | None = this.TermAccessionNumber
163
+ if match_value is not None:
164
+ tan: str = match_value
165
+ return this.TermAccessionOntobeeUrl if (ActivePatterns__007CRegex_007C__007C(Pattern_TermAnnotationShortPattern, tan) is not None) else tan
166
+
167
+ else:
168
+ return ""
169
+
170
+
171
+ @staticmethod
172
+ def to_string_object(oa: OntologyAnnotation, as_ontobee_purl_url_if_short: bool | None=None) -> dict[str, Any]:
173
+ as_ontobee_purl_url_if_short_1: bool = default_arg(as_ontobee_purl_url_if_short, False)
174
+ TermName: str = default_arg(oa.Name, "")
175
+ TermSourceREF: str = default_arg(oa.TermSourceREF, "")
176
+ def _arrow526(__unit: None=None) -> str:
177
+ url: str = oa.TermAccessionAndOntobeeUrlIfShort
178
+ return default_arg(oa.TermAccessionNumber, "") if (url == "") else url
179
+
180
+ return {
181
+ "TermAccessionNumber": _arrow526() if as_ontobee_purl_url_if_short_1 else default_arg(oa.TermAccessionNumber, ""),
182
+ "TermName": TermName,
183
+ "TermSourceREF": TermSourceREF
184
+ }
185
+
186
+ def __str__(self, __unit: None=None) -> str:
187
+ this: OntologyAnnotation = self
188
+ sb: Any = StringBuilder__ctor()
189
+ ignore(StringBuilder__Append_Z721C83C5(sb, "{"))
190
+ def _arrow534(__unit: None=None) -> IEnumerable_1[str]:
191
+ def _arrow527(__unit: None=None) -> str:
192
+ arg: str = value_4(this.Name)
193
+ return to_text(printf("Name = %A"))(arg)
194
+
195
+ def _arrow533(__unit: None=None) -> IEnumerable_1[str]:
196
+ def _arrow528(__unit: None=None) -> str:
197
+ arg_1: str = value_4(this.TermSourceREF)
198
+ return to_text(printf("TSR = %A"))(arg_1)
199
+
200
+ def _arrow532(__unit: None=None) -> IEnumerable_1[str]:
201
+ def _arrow529(__unit: None=None) -> str:
202
+ arg_2: str = value_4(this.TermAccessionNumber)
203
+ return to_text(printf("TAN = %A"))(arg_2)
204
+
205
+ def _arrow531(__unit: None=None) -> IEnumerable_1[str]:
206
+ def _arrow530(__unit: None=None) -> str:
207
+ arg_3: Array[Comment] = this.Comments
208
+ return to_text(printf("Comments = %A"))(arg_3)
209
+
210
+ return singleton(_arrow530()) if (len(this.Comments) != 0) else empty()
211
+
212
+ return append(singleton(_arrow529()) if (this.TermAccessionNumber is not None) else empty(), delay(_arrow531))
213
+
214
+ return append(singleton(_arrow528()) if (this.TermSourceREF is not None) else empty(), delay(_arrow532))
215
+
216
+ return append(singleton(_arrow527()) if (this.Name is not None) else empty(), delay(_arrow533))
217
+
218
+ ignore(StringBuilder__Append_Z721C83C5(sb, join("; ", to_list(delay(_arrow534)))))
219
+ ignore(StringBuilder__Append_Z721C83C5(sb, "}"))
220
+ return to_string(sb)
221
+
222
+ def is_empty(self, __unit: None=None) -> bool:
223
+ this: OntologyAnnotation = self
224
+ return (len(this.Comments) == 0) if ((this.TermAccessionNumber is None) if ((this.TermSourceREF is None) if (this.Name is None) else False) else False) else False
225
+
226
+ def __hash__(self, __unit: None=None) -> Any:
227
+ this: OntologyAnnotation = self
228
+ def _arrow538(__unit: None=None) -> IEnumerable_1[Any]:
229
+ def _arrow537(__unit: None=None) -> IEnumerable_1[Any]:
230
+ match_value: str | None = this.TermSourceREF
231
+ match_value_1: dict[str, Any] | None = this.TANInfo
232
+ if match_value is not None:
233
+ def _arrow535(__unit: None=None) -> IEnumerable_1[Any]:
234
+ tsr_1: str = match_value
235
+ return singleton(box_hash_array([tsr_1, default_arg(this.TermAccessionNumber, "")]))
236
+
237
+ def _arrow536(__unit: None=None) -> IEnumerable_1[Any]:
238
+ taninfo_1: dict[str, Any] = match_value_1
239
+ tsr: str = match_value
240
+ return singleton(box_hash_array([tsr, (taninfo_1["IDSpace"] + ":") + taninfo_1["LocalID"]]))
241
+
242
+ return _arrow535() if (match_value_1 is None) else _arrow536()
243
+
244
+ elif match_value_1 is None:
245
+ tan_1: str = default_arg(this.TermAccessionNumber, "")
246
+ return singleton(box_hash_array([default_arg(this.TermAccessionNumber, ""), tan_1]))
247
+
248
+ else:
249
+ taninfo: dict[str, Any] = match_value_1
250
+ return singleton(box_hash_array([taninfo["IDSpace"], (taninfo["IDSpace"] + ":") + taninfo["LocalID"]]))
251
+
252
+
253
+ return append(singleton(box_hash_option(this.Name)), delay(_arrow537))
254
+
255
+ return box_hash_array(to_array(delay(_arrow538)))
256
+
257
+ def __eq__(self, obj: Any=None) -> bool:
258
+ this: OntologyAnnotation = self
259
+ return hash_1_1(this) == hash_1_1(obj)
260
+
261
+ def Copy(self, __unit: None=None) -> OntologyAnnotation:
262
+ this: OntologyAnnotation = self
263
+ def f(c: Comment) -> Comment:
264
+ return c.Copy()
265
+
266
+ next_comments: Array[Comment] = ResizeArray_map(f, this.Comments)
267
+ name: str | None = this.Name
268
+ tsr: str | None = this.TermSourceREF
269
+ tan: str | None = this.TermAccessionNumber
270
+ return OntologyAnnotation.make(name, tsr, tan, next_comments)
271
+
272
+ def Print(self, __unit: None=None) -> str:
273
+ this: OntologyAnnotation = self
274
+ return to_string(this)
275
+
276
+ def PrintCompact(self, __unit: None=None) -> str:
277
+ this: OntologyAnnotation = self
278
+ return "OA " + this.NameText
279
+
280
+ def __cmp__(self, obj: Any=None) -> int:
281
+ this: OntologyAnnotation = self
282
+ if isinstance(obj, OntologyAnnotation):
283
+ hash_1: int = safe_hash(this) or 0
284
+ other_hash: int = safe_hash(obj) or 0
285
+ return 0 if (hash_1 == other_hash) else (-1 if (hash_1 < other_hash) else 1)
286
+
287
+ else:
288
+ return 1
289
+
290
+
291
+
292
+ OntologyAnnotation_reflection = _expr539
293
+
294
+ def OntologyAnnotation__ctor_Z54349580(name: str | None=None, tsr: str | None=None, tan: str | None=None, comments: Array[Comment] | None=None) -> OntologyAnnotation:
295
+ return OntologyAnnotation(name, tsr, tan, comments)
296
+
297
+
298
+ __all__ = ["OntologyAnnotation_reflection"]
299
+