arctrl 3.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (511) hide show
  1. arctrl/__init__.py +23 -0
  2. arctrl/cwl.py +12 -0
  3. arctrl/py/CWL/__init__.py +0 -0
  4. arctrl/py/CWL/cwlprocessing_unit.py +221 -0
  5. arctrl/py/CWL/cwltypes.py +364 -0
  6. arctrl/py/CWL/decode.py +3532 -0
  7. arctrl/py/CWL/encode.py +1905 -0
  8. arctrl/py/CWL/expression_tool_description.py +192 -0
  9. arctrl/py/CWL/hash_helpers.py +60 -0
  10. arctrl/py/CWL/inputs.py +122 -0
  11. arctrl/py/CWL/operation_description.py +169 -0
  12. arctrl/py/CWL/outputs.py +171 -0
  13. arctrl/py/CWL/parameter_reference.py +74 -0
  14. arctrl/py/CWL/requirements.py +350 -0
  15. arctrl/py/CWL/tool_description.py +192 -0
  16. arctrl/py/CWL/workflow_description.py +181 -0
  17. arctrl/py/CWL/workflow_steps.py +354 -0
  18. arctrl/py/Contract/__init__.py +0 -0
  19. arctrl/py/Contract/arc.py +89 -0
  20. arctrl/py/Contract/arc_assay.py +125 -0
  21. arctrl/py/Contract/arc_investigation.py +88 -0
  22. arctrl/py/Contract/arc_run.py +291 -0
  23. arctrl/py/Contract/arc_study.py +126 -0
  24. arctrl/py/Contract/arc_workflow.py +213 -0
  25. arctrl/py/Contract/contract.py +153 -0
  26. arctrl/py/Contract/datamap.py +396 -0
  27. arctrl/py/Contract/git.py +116 -0
  28. arctrl/py/Contract/license.py +58 -0
  29. arctrl/py/Contract/validation_packages_config.py +107 -0
  30. arctrl/py/ContractIO/__init__.py +0 -0
  31. arctrl/py/ContractIO/contract_io.py +350 -0
  32. arctrl/py/ContractIO/file_system_helper.py +264 -0
  33. arctrl/py/Conversion/__init__.py +0 -0
  34. arctrl/py/Conversion/assay.py +151 -0
  35. arctrl/py/Conversion/basic.py +559 -0
  36. arctrl/py/Conversion/column_index.py +91 -0
  37. arctrl/py/Conversion/datamap.py +36 -0
  38. arctrl/py/Conversion/date_time.py +32 -0
  39. arctrl/py/Conversion/investigation.py +171 -0
  40. arctrl/py/Conversion/person.py +148 -0
  41. arctrl/py/Conversion/process.py +828 -0
  42. arctrl/py/Conversion/run.py +367 -0
  43. arctrl/py/Conversion/scholarly_article.py +163 -0
  44. arctrl/py/Conversion/study.py +99 -0
  45. arctrl/py/Conversion/table.py +229 -0
  46. arctrl/py/Conversion/workflow.py +680 -0
  47. arctrl/py/Core/Helper/__init__.py +0 -0
  48. arctrl/py/Core/Helper/collections_.py +512 -0
  49. arctrl/py/Core/Helper/date_time.py +26 -0
  50. arctrl/py/Core/Helper/hash_codes.py +60 -0
  51. arctrl/py/Core/Helper/identifier.py +290 -0
  52. arctrl/py/Core/Helper/orcid.py +42 -0
  53. arctrl/py/Core/Helper/printer.py +13 -0
  54. arctrl/py/Core/Helper/regex.py +554 -0
  55. arctrl/py/Core/Helper/sem_ver.py +71 -0
  56. arctrl/py/Core/Helper/url.py +148 -0
  57. arctrl/py/Core/Process/__init__.py +0 -0
  58. arctrl/py/Core/Process/column_index.py +280 -0
  59. arctrl/py/Core/Process/component.py +200 -0
  60. arctrl/py/Core/Process/factor.py +151 -0
  61. arctrl/py/Core/Process/factor_value.py +182 -0
  62. arctrl/py/Core/Process/material.py +74 -0
  63. arctrl/py/Core/Process/material_attribute.py +95 -0
  64. arctrl/py/Core/Process/material_attribute_value.py +184 -0
  65. arctrl/py/Core/Process/material_type.py +45 -0
  66. arctrl/py/Core/Process/process.py +477 -0
  67. arctrl/py/Core/Process/process_input.py +265 -0
  68. arctrl/py/Core/Process/process_output.py +235 -0
  69. arctrl/py/Core/Process/process_parameter_value.py +200 -0
  70. arctrl/py/Core/Process/process_sequence.py +435 -0
  71. arctrl/py/Core/Process/protocol.py +175 -0
  72. arctrl/py/Core/Process/protocol_parameter.py +98 -0
  73. arctrl/py/Core/Process/sample.py +82 -0
  74. arctrl/py/Core/Process/source.py +62 -0
  75. arctrl/py/Core/Table/__init__.py +0 -0
  76. arctrl/py/Core/Table/arc_table.py +1206 -0
  77. arctrl/py/Core/Table/arc_table_aux.py +1308 -0
  78. arctrl/py/Core/Table/arc_tables.py +574 -0
  79. arctrl/py/Core/Table/composite_cell.py +319 -0
  80. arctrl/py/Core/Table/composite_column.py +73 -0
  81. arctrl/py/Core/Table/composite_header.py +739 -0
  82. arctrl/py/Core/__init__.py +0 -0
  83. arctrl/py/Core/arc_types.py +5312 -0
  84. arctrl/py/Core/comment.py +128 -0
  85. arctrl/py/Core/comment_list.py +127 -0
  86. arctrl/py/Core/conversion.py +1375 -0
  87. arctrl/py/Core/data.py +247 -0
  88. arctrl/py/Core/data_context.py +157 -0
  89. arctrl/py/Core/data_file.py +112 -0
  90. arctrl/py/Core/datamap.py +217 -0
  91. arctrl/py/Core/identifier_setters.py +43 -0
  92. arctrl/py/Core/iproperty_value.py +36 -0
  93. arctrl/py/Core/ontology_annotation.py +298 -0
  94. arctrl/py/Core/ontology_source_reference.py +114 -0
  95. arctrl/py/Core/person.py +259 -0
  96. arctrl/py/Core/publication.py +161 -0
  97. arctrl/py/Core/template.py +231 -0
  98. arctrl/py/Core/templates.py +148 -0
  99. arctrl/py/Core/uri.py +11 -0
  100. arctrl/py/Core/value.py +188 -0
  101. arctrl/py/FileSystem/__init__.py +0 -0
  102. arctrl/py/FileSystem/commit.py +21 -0
  103. arctrl/py/FileSystem/default_gitattributes.py +1 -0
  104. arctrl/py/FileSystem/default_gitignore.py +1 -0
  105. arctrl/py/FileSystem/default_license.py +1 -0
  106. arctrl/py/FileSystem/file_system.py +58 -0
  107. arctrl/py/FileSystem/file_system_tree.py +483 -0
  108. arctrl/py/FileSystem/path.py +266 -0
  109. arctrl/py/Json/Datamap/__init__.py +0 -0
  110. arctrl/py/Json/Datamap/data_context.py +101 -0
  111. arctrl/py/Json/Datamap/datamap.py +53 -0
  112. arctrl/py/Json/Process/__init__.py +0 -0
  113. arctrl/py/Json/Process/assay_materials.py +46 -0
  114. arctrl/py/Json/Process/component.py +125 -0
  115. arctrl/py/Json/Process/factor.py +107 -0
  116. arctrl/py/Json/Process/factor_value.py +101 -0
  117. arctrl/py/Json/Process/material.py +226 -0
  118. arctrl/py/Json/Process/material_attribute.py +79 -0
  119. arctrl/py/Json/Process/material_attribute_value.py +101 -0
  120. arctrl/py/Json/Process/material_type.py +53 -0
  121. arctrl/py/Json/Process/process.py +296 -0
  122. arctrl/py/Json/Process/process_input.py +83 -0
  123. arctrl/py/Json/Process/process_output.py +67 -0
  124. arctrl/py/Json/Process/process_parameter_value.py +81 -0
  125. arctrl/py/Json/Process/protocol.py +354 -0
  126. arctrl/py/Json/Process/protocol_parameter.py +91 -0
  127. arctrl/py/Json/Process/sample.py +277 -0
  128. arctrl/py/Json/Process/source.py +214 -0
  129. arctrl/py/Json/Process/study_materials.py +52 -0
  130. arctrl/py/Json/Process/value.py +56 -0
  131. arctrl/py/Json/ROCrate/__init__.py +0 -0
  132. arctrl/py/Json/ROCrate/ldcontext.py +143 -0
  133. arctrl/py/Json/ROCrate/ldgraph.py +117 -0
  134. arctrl/py/Json/ROCrate/ldnode.py +304 -0
  135. arctrl/py/Json/ROCrate/ldref.py +44 -0
  136. arctrl/py/Json/ROCrate/ldvalue.py +102 -0
  137. arctrl/py/Json/Table/__init__.py +0 -0
  138. arctrl/py/Json/Table/arc_table.py +375 -0
  139. arctrl/py/Json/Table/cell_table.py +83 -0
  140. arctrl/py/Json/Table/composite_cell.py +136 -0
  141. arctrl/py/Json/Table/composite_header.py +67 -0
  142. arctrl/py/Json/Table/iotype.py +24 -0
  143. arctrl/py/Json/Table/oatable.py +82 -0
  144. arctrl/py/Json/Table/templates.py +281 -0
  145. arctrl/py/Json/__init__.py +0 -0
  146. arctrl/py/Json/assay.py +600 -0
  147. arctrl/py/Json/comment.py +206 -0
  148. arctrl/py/Json/context/rocrate/__init__.py +0 -0
  149. arctrl/py/Json/context/rocrate/isa_assay_context.py +101 -0
  150. arctrl/py/Json/context/rocrate/isa_comment_context.py +60 -0
  151. arctrl/py/Json/context/rocrate/isa_component_context.py +77 -0
  152. arctrl/py/Json/context/rocrate/isa_data_context.py +74 -0
  153. arctrl/py/Json/context/rocrate/isa_factor_context.py +74 -0
  154. arctrl/py/Json/context/rocrate/isa_factor_value_context.py +84 -0
  155. arctrl/py/Json/context/rocrate/isa_investigation_context.py +110 -0
  156. arctrl/py/Json/context/rocrate/isa_material_attribute_context.py +64 -0
  157. arctrl/py/Json/context/rocrate/isa_material_attribute_value_context.py +80 -0
  158. arctrl/py/Json/context/rocrate/isa_material_context.py +71 -0
  159. arctrl/py/Json/context/rocrate/isa_ontology_annotation_context.py +68 -0
  160. arctrl/py/Json/context/rocrate/isa_ontology_source_reference_context.py +75 -0
  161. arctrl/py/Json/context/rocrate/isa_organization_context.py +55 -0
  162. arctrl/py/Json/context/rocrate/isa_person_context.py +131 -0
  163. arctrl/py/Json/context/rocrate/isa_process_context.py +94 -0
  164. arctrl/py/Json/context/rocrate/isa_process_parameter_value_context.py +80 -0
  165. arctrl/py/Json/context/rocrate/isa_protocol_context.py +97 -0
  166. arctrl/py/Json/context/rocrate/isa_protocol_parameter_context.py +64 -0
  167. arctrl/py/Json/context/rocrate/isa_publication_context.py +78 -0
  168. arctrl/py/Json/context/rocrate/isa_sample_context.py +65 -0
  169. arctrl/py/Json/context/rocrate/isa_source_context.py +66 -0
  170. arctrl/py/Json/context/rocrate/isa_study_context.py +125 -0
  171. arctrl/py/Json/context/rocrate/property_value_context.py +73 -0
  172. arctrl/py/Json/context/rocrate/rocrate_context.py +81 -0
  173. arctrl/py/Json/converter_options.py +23 -0
  174. arctrl/py/Json/data.py +356 -0
  175. arctrl/py/Json/data_file.py +63 -0
  176. arctrl/py/Json/decode.py +271 -0
  177. arctrl/py/Json/encode.py +140 -0
  178. arctrl/py/Json/idtable.py +44 -0
  179. arctrl/py/Json/investigation.py +695 -0
  180. arctrl/py/Json/ontology_annotation.py +404 -0
  181. arctrl/py/Json/ontology_source_reference.py +255 -0
  182. arctrl/py/Json/person.py +658 -0
  183. arctrl/py/Json/property_value.py +359 -0
  184. arctrl/py/Json/publication.py +279 -0
  185. arctrl/py/Json/run.py +275 -0
  186. arctrl/py/Json/string_table.py +87 -0
  187. arctrl/py/Json/study.py +793 -0
  188. arctrl/py/Json/workflow.py +307 -0
  189. arctrl/py/JsonIO/Process/__init__.py +0 -0
  190. arctrl/py/JsonIO/Process/component.py +60 -0
  191. arctrl/py/JsonIO/Process/factor.py +36 -0
  192. arctrl/py/JsonIO/Process/factor_value.py +38 -0
  193. arctrl/py/JsonIO/Process/material.py +60 -0
  194. arctrl/py/JsonIO/Process/material_attribute.py +38 -0
  195. arctrl/py/JsonIO/Process/material_attribute_value.py +60 -0
  196. arctrl/py/JsonIO/Process/material_type.py +36 -0
  197. arctrl/py/JsonIO/Process/process.py +60 -0
  198. arctrl/py/JsonIO/Process/process_input.py +38 -0
  199. arctrl/py/JsonIO/Process/process_output.py +60 -0
  200. arctrl/py/JsonIO/Process/process_parameter_value.py +60 -0
  201. arctrl/py/JsonIO/Process/process_sequence.py +71 -0
  202. arctrl/py/JsonIO/Process/protocol.py +60 -0
  203. arctrl/py/JsonIO/Process/protocol_parameter.py +36 -0
  204. arctrl/py/JsonIO/Process/sample.py +60 -0
  205. arctrl/py/JsonIO/Process/source.py +60 -0
  206. arctrl/py/JsonIO/Process/study_materials.py +52 -0
  207. arctrl/py/JsonIO/Process/value.py +32 -0
  208. arctrl/py/JsonIO/Table/__init__.py +0 -0
  209. arctrl/py/JsonIO/Table/arc_table.py +103 -0
  210. arctrl/py/JsonIO/Table/composite_cell.py +36 -0
  211. arctrl/py/JsonIO/Table/composite_header.py +36 -0
  212. arctrl/py/JsonIO/Table/compression.py +67 -0
  213. arctrl/py/JsonIO/Table/iotype.py +36 -0
  214. arctrl/py/JsonIO/Table/templates.py +113 -0
  215. arctrl/py/JsonIO/__init__.py +0 -0
  216. arctrl/py/JsonIO/assay.py +113 -0
  217. arctrl/py/JsonIO/comment.py +80 -0
  218. arctrl/py/JsonIO/data.py +60 -0
  219. arctrl/py/JsonIO/data_file.py +58 -0
  220. arctrl/py/JsonIO/datamap.py +36 -0
  221. arctrl/py/JsonIO/decode.py +9 -0
  222. arctrl/py/JsonIO/encode.py +1 -0
  223. arctrl/py/JsonIO/investigation.py +91 -0
  224. arctrl/py/JsonIO/ldobject.py +106 -0
  225. arctrl/py/JsonIO/ontology_annotation.py +80 -0
  226. arctrl/py/JsonIO/ontology_source_reference.py +80 -0
  227. arctrl/py/JsonIO/person.py +82 -0
  228. arctrl/py/JsonIO/publication.py +82 -0
  229. arctrl/py/JsonIO/run.py +68 -0
  230. arctrl/py/JsonIO/study.py +114 -0
  231. arctrl/py/JsonIO/workflow.py +68 -0
  232. arctrl/py/ROCrate/ISAProfile/__init__.py +0 -0
  233. arctrl/py/ROCrate/ISAProfile/assay.py +70 -0
  234. arctrl/py/ROCrate/ISAProfile/data.py +65 -0
  235. arctrl/py/ROCrate/ISAProfile/dataset.py +24 -0
  236. arctrl/py/ROCrate/ISAProfile/investigation.py +73 -0
  237. arctrl/py/ROCrate/ISAProfile/lab_process.py +162 -0
  238. arctrl/py/ROCrate/ISAProfile/lab_protocol.py +37 -0
  239. arctrl/py/ROCrate/ISAProfile/person.py +72 -0
  240. arctrl/py/ROCrate/ISAProfile/property_value.py +98 -0
  241. arctrl/py/ROCrate/ISAProfile/sample.py +64 -0
  242. arctrl/py/ROCrate/ISAProfile/scholarly_article.py +98 -0
  243. arctrl/py/ROCrate/ISAProfile/study.py +74 -0
  244. arctrl/py/ROCrate/LDTypes/__init__.py +0 -0
  245. arctrl/py/ROCrate/LDTypes/comment.py +131 -0
  246. arctrl/py/ROCrate/LDTypes/computational_workflow.py +455 -0
  247. arctrl/py/ROCrate/LDTypes/computer_language.py +269 -0
  248. arctrl/py/ROCrate/LDTypes/create_action.py +303 -0
  249. arctrl/py/ROCrate/LDTypes/creative_work.py +566 -0
  250. arctrl/py/ROCrate/LDTypes/dataset.py +943 -0
  251. arctrl/py/ROCrate/LDTypes/defined_term.py +131 -0
  252. arctrl/py/ROCrate/LDTypes/file.py +281 -0
  253. arctrl/py/ROCrate/LDTypes/formal_parameter.py +431 -0
  254. arctrl/py/ROCrate/LDTypes/lab_process.py +352 -0
  255. arctrl/py/ROCrate/LDTypes/lab_protocol.py +395 -0
  256. arctrl/py/ROCrate/LDTypes/organization.py +83 -0
  257. arctrl/py/ROCrate/LDTypes/person.py +484 -0
  258. arctrl/py/ROCrate/LDTypes/postal_address.py +195 -0
  259. arctrl/py/ROCrate/LDTypes/property_value.py +952 -0
  260. arctrl/py/ROCrate/LDTypes/sample.py +202 -0
  261. arctrl/py/ROCrate/LDTypes/scholarly_article.py +229 -0
  262. arctrl/py/ROCrate/LDTypes/software_source_code.py +310 -0
  263. arctrl/py/ROCrate/LDTypes/workflow_invocation.py +48 -0
  264. arctrl/py/ROCrate/LDTypes/workflow_protocol.py +52 -0
  265. arctrl/py/ROCrate/__init__.py +0 -0
  266. arctrl/py/ROCrate/arc_rocrate_metadata.py +39 -0
  267. arctrl/py/ROCrate/dyn_obj_extensions.py +1 -0
  268. arctrl/py/ROCrate/helper.py +8 -0
  269. arctrl/py/ROCrate/ldcontext.py +406 -0
  270. arctrl/py/ROCrate/ldobject.py +1247 -0
  271. arctrl/py/ROCrate/rocrate_context.py +51 -0
  272. arctrl/py/Spreadsheet/AnnotationTable/__init__.py +0 -0
  273. arctrl/py/Spreadsheet/AnnotationTable/arc_table.py +203 -0
  274. arctrl/py/Spreadsheet/AnnotationTable/composite_cell.py +78 -0
  275. arctrl/py/Spreadsheet/AnnotationTable/composite_column.py +305 -0
  276. arctrl/py/Spreadsheet/AnnotationTable/composite_header.py +623 -0
  277. arctrl/py/Spreadsheet/DatamapTable/__init__.py +0 -0
  278. arctrl/py/Spreadsheet/DatamapTable/datamap_column.py +114 -0
  279. arctrl/py/Spreadsheet/DatamapTable/datamap_header.py +621 -0
  280. arctrl/py/Spreadsheet/DatamapTable/datamap_table.py +118 -0
  281. arctrl/py/Spreadsheet/Metadata/__init__.py +0 -0
  282. arctrl/py/Spreadsheet/Metadata/assays.py +125 -0
  283. arctrl/py/Spreadsheet/Metadata/comment.py +77 -0
  284. arctrl/py/Spreadsheet/Metadata/contacts.py +134 -0
  285. arctrl/py/Spreadsheet/Metadata/conversions.py +190 -0
  286. arctrl/py/Spreadsheet/Metadata/design_descriptors.py +34 -0
  287. arctrl/py/Spreadsheet/Metadata/factors.py +107 -0
  288. arctrl/py/Spreadsheet/Metadata/ontology_annotation.py +88 -0
  289. arctrl/py/Spreadsheet/Metadata/ontology_source_reference.py +96 -0
  290. arctrl/py/Spreadsheet/Metadata/protocols.py +146 -0
  291. arctrl/py/Spreadsheet/Metadata/publication.py +122 -0
  292. arctrl/py/Spreadsheet/Metadata/run.py +122 -0
  293. arctrl/py/Spreadsheet/Metadata/sparse_table.py +499 -0
  294. arctrl/py/Spreadsheet/Metadata/study.py +312 -0
  295. arctrl/py/Spreadsheet/Metadata/workflow.py +159 -0
  296. arctrl/py/Spreadsheet/__init__.py +0 -0
  297. arctrl/py/Spreadsheet/arc_assay.py +233 -0
  298. arctrl/py/Spreadsheet/arc_investigation.py +435 -0
  299. arctrl/py/Spreadsheet/arc_run.py +190 -0
  300. arctrl/py/Spreadsheet/arc_study.py +144 -0
  301. arctrl/py/Spreadsheet/arc_workflow.py +177 -0
  302. arctrl/py/Spreadsheet/assembly_info.py +1 -0
  303. arctrl/py/Spreadsheet/collection_aux.py +167 -0
  304. arctrl/py/Spreadsheet/datamap.py +43 -0
  305. arctrl/py/Spreadsheet/template.py +460 -0
  306. arctrl/py/ValidationPackages/__init__.py +0 -0
  307. arctrl/py/ValidationPackages/validation_package.py +82 -0
  308. arctrl/py/ValidationPackages/validation_packages_config.py +132 -0
  309. arctrl/py/WebRequest/__init__.py +0 -0
  310. arctrl/py/WebRequest/web_request.py +9 -0
  311. arctrl/py/WebRequest/web_request_py.py +135 -0
  312. arctrl/py/WorkflowGraph/__init__.py +0 -0
  313. arctrl/py/WorkflowGraph/adapters.py +141 -0
  314. arctrl/py/WorkflowGraph/build_options.py +45 -0
  315. arctrl/py/WorkflowGraph/builder.py +720 -0
  316. arctrl/py/WorkflowGraph/graph_types.py +260 -0
  317. arctrl/py/WorkflowGraph/query_helpers.py +76 -0
  318. arctrl/py/WorkflowGraph/reference_parsing.py +59 -0
  319. arctrl/py/WorkflowGraph/visualization_siren.py +574 -0
  320. arctrl/py/WorkflowGraph/workflow_graph.py +119 -0
  321. arctrl/py/Yaml/__init__.py +0 -0
  322. arctrl/py/Yaml/decode.py +1 -0
  323. arctrl/py/Yaml/encode.py +10 -0
  324. arctrl/py/Yaml/validation_package.py +77 -0
  325. arctrl/py/Yaml/validation_packages_config.py +86 -0
  326. arctrl/py/__init__.py +0 -0
  327. arctrl/py/arc.py +1891 -0
  328. arctrl/py/column_index.py +280 -0
  329. arctrl/py/conversion.py +142 -0
  330. arctrl/py/cross_async.py +76 -0
  331. arctrl/py/cwlrun_resolver.py +228 -0
  332. arctrl/py/fable_modules/dynamic_obj/__init__.py +0 -0
  333. arctrl/py/fable_modules/dynamic_obj/dyn_obj.py +136 -0
  334. arctrl/py/fable_modules/dynamic_obj/dynamic_obj.py +415 -0
  335. arctrl/py/fable_modules/dynamic_obj/fable_js.py +1 -0
  336. arctrl/py/fable_modules/dynamic_obj/fable_py.py +288 -0
  337. arctrl/py/fable_modules/dynamic_obj/hash_codes.py +82 -0
  338. arctrl/py/fable_modules/dynamic_obj/property_helper.py +25 -0
  339. arctrl/py/fable_modules/dynamic_obj/reflection_utils.py +87 -0
  340. arctrl/py/fable_modules/fable_library/__init__.py +0 -0
  341. arctrl/py/fable_modules/fable_library/array_.py +1528 -0
  342. arctrl/py/fable_modules/fable_library/async_.py +377 -0
  343. arctrl/py/fable_modules/fable_library/async_builder.py +379 -0
  344. arctrl/py/fable_modules/fable_library/big_int.py +330 -0
  345. arctrl/py/fable_modules/fable_library/bit_converter.py +131 -0
  346. arctrl/py/fable_modules/fable_library/boolean.py +26 -0
  347. arctrl/py/fable_modules/fable_library/char.py +237 -0
  348. arctrl/py/fable_modules/fable_library/choice.py +212 -0
  349. arctrl/py/fable_modules/fable_library/date.py +779 -0
  350. arctrl/py/fable_modules/fable_library/date_offset.py +79 -0
  351. arctrl/py/fable_modules/fable_library/decimal_.py +190 -0
  352. arctrl/py/fable_modules/fable_library/diagnostics.py +54 -0
  353. arctrl/py/fable_modules/fable_library/double.py +87 -0
  354. arctrl/py/fable_modules/fable_library/encoding.py +41 -0
  355. arctrl/py/fable_modules/fable_library/event.py +206 -0
  356. arctrl/py/fable_modules/fable_library/file.py +107 -0
  357. arctrl/py/fable_modules/fable_library/fsharp_collections.py +52 -0
  358. arctrl/py/fable_modules/fable_library/fsharp_core.py +123 -0
  359. arctrl/py/fable_modules/fable_library/global_.py +63 -0
  360. arctrl/py/fable_modules/fable_library/guid.py +41 -0
  361. arctrl/py/fable_modules/fable_library/int32.py +73 -0
  362. arctrl/py/fable_modules/fable_library/list.py +1788 -0
  363. arctrl/py/fable_modules/fable_library/long.py +240 -0
  364. arctrl/py/fable_modules/fable_library/mailbox_processor.py +179 -0
  365. arctrl/py/fable_modules/fable_library/map.py +1854 -0
  366. arctrl/py/fable_modules/fable_library/map_util.py +148 -0
  367. arctrl/py/fable_modules/fable_library/mutable_map.py +397 -0
  368. arctrl/py/fable_modules/fable_library/mutable_set.py +279 -0
  369. arctrl/py/fable_modules/fable_library/native.py +45 -0
  370. arctrl/py/fable_modules/fable_library/numeric.py +46 -0
  371. arctrl/py/fable_modules/fable_library/observable.py +222 -0
  372. arctrl/py/fable_modules/fable_library/option.py +128 -0
  373. arctrl/py/fable_modules/fable_library/path.py +62 -0
  374. arctrl/py/fable_modules/fable_library/range.py +117 -0
  375. arctrl/py/fable_modules/fable_library/reflection.py +463 -0
  376. arctrl/py/fable_modules/fable_library/reg_exp.py +137 -0
  377. arctrl/py/fable_modules/fable_library/resize_array.py +31 -0
  378. arctrl/py/fable_modules/fable_library/result.py +212 -0
  379. arctrl/py/fable_modules/fable_library/seq.py +1979 -0
  380. arctrl/py/fable_modules/fable_library/seq2.py +221 -0
  381. arctrl/py/fable_modules/fable_library/set.py +2414 -0
  382. arctrl/py/fable_modules/fable_library/singleton_local_time_zone.py +36 -0
  383. arctrl/py/fable_modules/fable_library/string_.py +573 -0
  384. arctrl/py/fable_modules/fable_library/system_collections_generic.py +462 -0
  385. arctrl/py/fable_modules/fable_library/system_text.py +237 -0
  386. arctrl/py/fable_modules/fable_library/task.py +116 -0
  387. arctrl/py/fable_modules/fable_library/task_builder.py +122 -0
  388. arctrl/py/fable_modules/fable_library/thread.py +5 -0
  389. arctrl/py/fable_modules/fable_library/time_span.py +283 -0
  390. arctrl/py/fable_modules/fable_library/timer.py +24 -0
  391. arctrl/py/fable_modules/fable_library/types.py +401 -0
  392. arctrl/py/fable_modules/fable_library/uri.py +109 -0
  393. arctrl/py/fable_modules/fable_library/util.py +2735 -0
  394. arctrl/py/fable_modules/fable_openpyxl/__init__.py +0 -0
  395. arctrl/py/fable_modules/fable_openpyxl/openpyxl.py +362 -0
  396. arctrl/py/fable_modules/fable_python/cognite-sdk/__init__.py +0 -0
  397. arctrl/py/fable_modules/fable_python/cognite-sdk/cognite_sdk.py +22 -0
  398. arctrl/py/fable_modules/fable_python/flask/__init__.py +0 -0
  399. arctrl/py/fable_modules/fable_python/flask/flask.py +34 -0
  400. arctrl/py/fable_modules/fable_python/jupyter/__init__.py +0 -0
  401. arctrl/py/fable_modules/fable_python/jupyter/ipy_widgets.py +47 -0
  402. arctrl/py/fable_modules/fable_python/jupyter/ipython.py +13 -0
  403. arctrl/py/fable_modules/fable_python/stdlib/__init__.py +0 -0
  404. arctrl/py/fable_modules/fable_python/stdlib/ast.py +1 -0
  405. arctrl/py/fable_modules/fable_python/stdlib/asyncio/__init__.py +0 -0
  406. arctrl/py/fable_modules/fable_python/stdlib/asyncio/events.py +17 -0
  407. arctrl/py/fable_modules/fable_python/stdlib/asyncio/futures.py +52 -0
  408. arctrl/py/fable_modules/fable_python/stdlib/asyncio/tasks.py +38 -0
  409. arctrl/py/fable_modules/fable_python/stdlib/base64_.py +1 -0
  410. arctrl/py/fable_modules/fable_python/stdlib/builtins_.py +38 -0
  411. arctrl/py/fable_modules/fable_python/stdlib/html.py +1 -0
  412. arctrl/py/fable_modules/fable_python/stdlib/json.py +1 -0
  413. arctrl/py/fable_modules/fable_python/stdlib/math_.py +1 -0
  414. arctrl/py/fable_modules/fable_python/stdlib/os_.py +1 -0
  415. arctrl/py/fable_modules/fable_python/stdlib/queue_.py +1 -0
  416. arctrl/py/fable_modules/fable_python/stdlib/string_.py +1 -0
  417. arctrl/py/fable_modules/fable_python/stdlib/sys_.py +30 -0
  418. arctrl/py/fable_modules/fable_python/stdlib/time_.py +1 -0
  419. arctrl/py/fable_modules/fable_python/stdlib/tk_inter.py +1 -0
  420. arctrl/py/fable_modules/fs_spreadsheet/Cells/__init__.py +0 -0
  421. arctrl/py/fable_modules/fs_spreadsheet/Cells/fs_cell.py +340 -0
  422. arctrl/py/fable_modules/fs_spreadsheet/Cells/fs_cells_collection.py +466 -0
  423. arctrl/py/fable_modules/fs_spreadsheet/DSL/__init__.py +0 -0
  424. arctrl/py/fable_modules/fs_spreadsheet/DSL/cell_builder.py +214 -0
  425. arctrl/py/fable_modules/fs_spreadsheet/DSL/column_builder.py +139 -0
  426. arctrl/py/fable_modules/fs_spreadsheet/DSL/dsl.py +50 -0
  427. arctrl/py/fable_modules/fs_spreadsheet/DSL/expression.py +65 -0
  428. arctrl/py/fable_modules/fs_spreadsheet/DSL/operators.py +9 -0
  429. arctrl/py/fable_modules/fs_spreadsheet/DSL/row_builder.py +139 -0
  430. arctrl/py/fable_modules/fs_spreadsheet/DSL/sheet_builder.py +118 -0
  431. arctrl/py/fable_modules/fs_spreadsheet/DSL/table_builder.py +122 -0
  432. arctrl/py/fable_modules/fs_spreadsheet/DSL/transform.py +463 -0
  433. arctrl/py/fable_modules/fs_spreadsheet/DSL/types.py +314 -0
  434. arctrl/py/fable_modules/fs_spreadsheet/DSL/workbook_builder.py +106 -0
  435. arctrl/py/fable_modules/fs_spreadsheet/Json/__init__.py +0 -0
  436. arctrl/py/fable_modules/fs_spreadsheet/Json/cell.py +103 -0
  437. arctrl/py/fable_modules/fs_spreadsheet/Json/column.py +70 -0
  438. arctrl/py/fable_modules/fs_spreadsheet/Json/row.py +70 -0
  439. arctrl/py/fable_modules/fs_spreadsheet/Json/table.py +54 -0
  440. arctrl/py/fable_modules/fs_spreadsheet/Json/value.py +93 -0
  441. arctrl/py/fable_modules/fs_spreadsheet/Json/workbook.py +71 -0
  442. arctrl/py/fable_modules/fs_spreadsheet/Json/worksheet.py +216 -0
  443. arctrl/py/fable_modules/fs_spreadsheet/Ranges/__init__.py +0 -0
  444. arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range.py +43 -0
  445. arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_address.py +190 -0
  446. arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_base.py +92 -0
  447. arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_column.py +77 -0
  448. arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_row.py +48 -0
  449. arctrl/py/fable_modules/fs_spreadsheet/Tables/__init__.py +0 -0
  450. arctrl/py/fable_modules/fs_spreadsheet/Tables/fs_table.py +461 -0
  451. arctrl/py/fable_modules/fs_spreadsheet/Tables/fs_table_field.py +117 -0
  452. arctrl/py/fable_modules/fs_spreadsheet/Tables/fs_table_row.py +23 -0
  453. arctrl/py/fable_modules/fs_spreadsheet/__init__.py +0 -0
  454. arctrl/py/fable_modules/fs_spreadsheet/fs_address.py +236 -0
  455. arctrl/py/fable_modules/fs_spreadsheet/fs_column.py +172 -0
  456. arctrl/py/fable_modules/fs_spreadsheet/fs_row.py +183 -0
  457. arctrl/py/fable_modules/fs_spreadsheet/fs_workbook.py +192 -0
  458. arctrl/py/fable_modules/fs_spreadsheet/fs_worksheet.py +610 -0
  459. arctrl/py/fable_modules/fs_spreadsheet/hash_codes.py +60 -0
  460. arctrl/py/fable_modules/fs_spreadsheet/sheet_builder.py +329 -0
  461. arctrl/py/fable_modules/fs_spreadsheet_py/__init__.py +0 -0
  462. arctrl/py/fable_modules/fs_spreadsheet_py/cell.py +60 -0
  463. arctrl/py/fable_modules/fs_spreadsheet_py/cell_type.py +50 -0
  464. arctrl/py/fable_modules/fs_spreadsheet_py/fs_extension.py +60 -0
  465. arctrl/py/fable_modules/fs_spreadsheet_py/json.py +47 -0
  466. arctrl/py/fable_modules/fs_spreadsheet_py/table.py +54 -0
  467. arctrl/py/fable_modules/fs_spreadsheet_py/workbook.py +41 -0
  468. arctrl/py/fable_modules/fs_spreadsheet_py/worksheet.py +52 -0
  469. arctrl/py/fable_modules/fs_spreadsheet_py/xlsx.py +37 -0
  470. arctrl/py/fable_modules/siren/__init__.py +0 -0
  471. arctrl/py/fable_modules/siren/config.py +1038 -0
  472. arctrl/py/fable_modules/siren/formatting.py +1121 -0
  473. arctrl/py/fable_modules/siren/siren.py +1941 -0
  474. arctrl/py/fable_modules/siren/siren_types.py +1229 -0
  475. arctrl/py/fable_modules/siren/theme_variables.py +517 -0
  476. arctrl/py/fable_modules/siren/util.py +37 -0
  477. arctrl/py/fable_modules/siren/yaml.py +101 -0
  478. arctrl/py/fable_modules/thoth_json_core/__init__.py +0 -0
  479. arctrl/py/fable_modules/thoth_json_core/decode.py +1614 -0
  480. arctrl/py/fable_modules/thoth_json_core/encode.py +305 -0
  481. arctrl/py/fable_modules/thoth_json_core/types.py +181 -0
  482. arctrl/py/fable_modules/thoth_json_python/__init__.py +0 -0
  483. arctrl/py/fable_modules/thoth_json_python/decode.py +112 -0
  484. arctrl/py/fable_modules/thoth_json_python/encode.py +72 -0
  485. arctrl/py/fable_modules/thoth_json_python/python.py +1 -0
  486. arctrl/py/fable_modules/yamlicious/Interop/__init__.py +0 -0
  487. arctrl/py/fable_modules/yamlicious/Interop/js_interop.py +1 -0
  488. arctrl/py/fable_modules/yamlicious/Interop/py_interop.py +7 -0
  489. arctrl/py/fable_modules/yamlicious/__init__.py +0 -0
  490. arctrl/py/fable_modules/yamlicious/decode.py +1784 -0
  491. arctrl/py/fable_modules/yamlicious/encode.py +84 -0
  492. arctrl/py/fable_modules/yamlicious/flow_to_block.py +994 -0
  493. arctrl/py/fable_modules/yamlicious/library.py +10 -0
  494. arctrl/py/fable_modules/yamlicious/persil.py +57 -0
  495. arctrl/py/fable_modules/yamlicious/preprocessing.py +99 -0
  496. arctrl/py/fable_modules/yamlicious/reader.py +739 -0
  497. arctrl/py/fable_modules/yamlicious/regex.py +29 -0
  498. arctrl/py/fable_modules/yamlicious/regex_active_patterns.py +265 -0
  499. arctrl/py/fable_modules/yamlicious/writer.py +175 -0
  500. arctrl/py/fable_modules/yamlicious/yamlicious_types.py +128 -0
  501. arctrl/py/json.py +389 -0
  502. arctrl/py/license.py +169 -0
  503. arctrl/py/rocrate_io.py +242 -0
  504. arctrl/py/template_web.py +23 -0
  505. arctrl/py/xlsx.py +212 -0
  506. arctrl/py/yaml.py +79 -0
  507. arctrl/rocrate.py +21 -0
  508. arctrl-3.0.0.dist-info/METADATA +157 -0
  509. arctrl-3.0.0.dist-info/RECORD +511 -0
  510. arctrl-3.0.0.dist-info/WHEEL +4 -0
  511. arctrl-3.0.0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,217 @@
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 _expr1214() -> 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
+ @property
105
+ def StaticHash(self, __unit: None=None) -> int:
106
+ this: Datamap = self
107
+ return this.static_hash
108
+
109
+ @StaticHash.setter
110
+ def StaticHash(self, value: int) -> None:
111
+ this: Datamap = self
112
+ this.static_hash = value or 0
113
+
114
+ @property
115
+ def DataContexts(self, __unit: None=None) -> Array[DataContext]:
116
+ this: Datamap = self
117
+ return this.data_contexts_0040108
118
+
119
+ @staticmethod
120
+ def init(__unit: None=None) -> Datamap:
121
+ return Datamap([])
122
+
123
+ def GetExplicationColumn(self, __unit: None=None) -> Array[CompositeCell]:
124
+ this: Datamap = self
125
+ return DatamapAux_getOntologyColumn(DataContext__get_Explication, this.data_contexts_0040108)
126
+
127
+ def SetExplicationColumn(self, cells: Array[CompositeCell]) -> None:
128
+ this: Datamap = self
129
+ def _arrow1207(dc: DataContext, oa: OntologyAnnotation | None=None) -> None:
130
+ DataContext__set_Explication_279AAFF2(dc, oa)
131
+
132
+ DatamapAux_setOntologyColumn(_arrow1207, cells, this.data_contexts_0040108)
133
+
134
+ def GetUnitColumn(self, __unit: None=None) -> Array[CompositeCell]:
135
+ this: Datamap = self
136
+ return DatamapAux_getOntologyColumn(DataContext__get_Unit, this.data_contexts_0040108)
137
+
138
+ def SetUnitColumn(self, cells: Array[CompositeCell]) -> None:
139
+ this: Datamap = self
140
+ def _arrow1208(dc: DataContext, oa: OntologyAnnotation | None=None) -> None:
141
+ DataContext__set_Unit_279AAFF2(dc, oa)
142
+
143
+ DatamapAux_setOntologyColumn(_arrow1208, cells, this.data_contexts_0040108)
144
+
145
+ def GetObjectTypeColumn(self, __unit: None=None) -> Array[CompositeCell]:
146
+ this: Datamap = self
147
+ return DatamapAux_getOntologyColumn(DataContext__get_ObjectType, this.data_contexts_0040108)
148
+
149
+ def SetDataTypeColumn(self, cells: Array[CompositeCell]) -> None:
150
+ this: Datamap = self
151
+ def _arrow1209(dc: DataContext, oa: OntologyAnnotation | None=None) -> None:
152
+ DataContext__set_ObjectType_279AAFF2(dc, oa)
153
+
154
+ DatamapAux_setOntologyColumn(_arrow1209, cells, this.data_contexts_0040108)
155
+
156
+ def GetLabelColumn(self, __unit: None=None) -> Array[CompositeCell]:
157
+ this: Datamap = self
158
+ def _arrow1210(dc: DataContext) -> str | None:
159
+ return dc.Name
160
+
161
+ return DatamapAux_getStringColumn(_arrow1210, this.data_contexts_0040108)
162
+
163
+ def SetLabelColumn(self, cells: Array[CompositeCell]) -> None:
164
+ this: Datamap = self
165
+ def _arrow1211(dc: DataContext, s: str | None=None) -> None:
166
+ dc.Name = s
167
+
168
+ DatamapAux_setStringColumn(_arrow1211, cells, this.data_contexts_0040108)
169
+
170
+ def GetDescriptionColumn(self, __unit: None=None) -> Array[CompositeCell]:
171
+ this: Datamap = self
172
+ return DatamapAux_getStringColumn(DataContext__get_Description, this.data_contexts_0040108)
173
+
174
+ def SetDescriptionColumn(self, cells: Array[CompositeCell]) -> None:
175
+ this: Datamap = self
176
+ def _arrow1212(dc: DataContext, s: str | None=None) -> None:
177
+ DataContext__set_Description_6DFDD678(dc, s)
178
+
179
+ DatamapAux_setStringColumn(_arrow1212, cells, this.data_contexts_0040108)
180
+
181
+ def GetDataContext(self, row: int, SkipValidation: Any | None=None) -> DataContext:
182
+ this: Datamap = self
183
+ DatamapAux_SanityChecks_rowIndexInBoundaries(row, this.data_contexts_0040108)
184
+ return this.data_contexts_0040108[row]
185
+
186
+ @staticmethod
187
+ def get_data_context(row: int, SkipValidation: Any | None=None) -> Callable[[Datamap], DataContext]:
188
+ def _arrow1213(dm: Datamap) -> DataContext:
189
+ return dm.GetDataContext(row, SkipValidation)
190
+
191
+ return _arrow1213
192
+
193
+ def Copy(self, __unit: None=None) -> Datamap:
194
+ this: Datamap = self
195
+ return Datamap(list(map(DataContext__Copy, this.data_contexts_0040108)))
196
+
197
+ def __eq__(self, obj: Any=None) -> bool:
198
+ this: Datamap = self
199
+ return hash_1(this) == hash_1(obj)
200
+
201
+ def __hash__(self, __unit: None=None) -> Any:
202
+ this: Datamap = self
203
+ return box_hash_seq(this.data_contexts_0040108)
204
+
205
+ @staticmethod
206
+ def FileName() -> str:
207
+ return "isa.datamap.xlsx"
208
+
209
+
210
+ Datamap_reflection = _expr1214
211
+
212
+ def Datamap__ctor_4E3220A7(data_contexts: Array[DataContext]) -> Datamap:
213
+ return Datamap(data_contexts)
214
+
215
+
216
+ __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"]
217
+
@@ -0,0 +1,43 @@
1
+ from __future__ import annotations
2
+ from .arc_types import (ArcAssay, ArcStudy, ArcWorkflow, ArcRun, 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_workflow_identifier(new_identifier: str, workflow: ArcWorkflow) -> ArcWorkflow:
25
+ check_valid_characters(new_identifier)
26
+ workflow.Identifier = new_identifier
27
+ return workflow
28
+
29
+
30
+ def set_run_identifier(new_identifier: str, run: ArcRun) -> ArcRun:
31
+ check_valid_characters(new_identifier)
32
+ run.Identifier = new_identifier
33
+ return run
34
+
35
+
36
+ def set_investigation_identifier(new_identifier: str, investigation: ArcInvestigation) -> ArcInvestigation:
37
+ check_valid_characters(new_identifier)
38
+ investigation.Identifier = new_identifier
39
+ return investigation
40
+
41
+
42
+ __all__ = ["set_arc_table_name", "set_assay_identifier", "set_study_identifier", "set_workflow_identifier", "set_run_identifier", "set_investigation_identifier"]
43
+
@@ -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,298 @@
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)
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, string_hash, safe_hash)
10
+ from .comment import Comment
11
+ from .Helper.collections_ import ResizeArray_map
12
+ from .Helper.hash_codes import (merge_hashes, 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 _expr1004() -> 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
+ self._tanInfo: dict[str, Any] | None = OntologyAnnotation.compute_tan_info(self._termAccessionNumber, self._termSourceREF)
27
+
28
+ @property
29
+ def Name(self, __unit: None=None) -> str | None:
30
+ this: OntologyAnnotation = self
31
+ return this._name
32
+
33
+ @Name.setter
34
+ def Name(self, name: str | None=None) -> None:
35
+ this: OntologyAnnotation = self
36
+ this._name = name
37
+
38
+ @property
39
+ def TermSourceREF(self, __unit: None=None) -> str | None:
40
+ this: OntologyAnnotation = self
41
+ return this._termSourceREF
42
+
43
+ @TermSourceREF.setter
44
+ def TermSourceREF(self, tsr: str | None=None) -> None:
45
+ this: OntologyAnnotation = self
46
+ this._termSourceREF = tsr
47
+ this.recompute_tan_info()
48
+
49
+ @property
50
+ def TermAccessionNumber(self, __unit: None=None) -> str | None:
51
+ this: OntologyAnnotation = self
52
+ return this._termAccessionNumber
53
+
54
+ @TermAccessionNumber.setter
55
+ def TermAccessionNumber(self, tan: str | None=None) -> None:
56
+ this: OntologyAnnotation = self
57
+ this._termAccessionNumber = tan
58
+ this.recompute_tan_info()
59
+
60
+ @property
61
+ def Comments(self, __unit: None=None) -> Array[Comment]:
62
+ this: OntologyAnnotation = self
63
+ return this._comments
64
+
65
+ @Comments.setter
66
+ def Comments(self, comments: Array[Comment]) -> None:
67
+ this: OntologyAnnotation = self
68
+ this._comments = comments
69
+
70
+ @staticmethod
71
+ def make(name: str | None, tsr: str | None, tan: str | None, comments: Array[Comment]) -> OntologyAnnotation:
72
+ return OntologyAnnotation(name, tsr, tan, comments)
73
+
74
+ @staticmethod
75
+ def create(name: str | None=None, tsr: str | None=None, tan: str | None=None, comments: Array[Comment] | None=None) -> OntologyAnnotation:
76
+ comments_1: Array[Comment] = default_arg(comments, [])
77
+ return OntologyAnnotation.make(name, tsr, tan, comments_1)
78
+
79
+ @property
80
+ def TANInfo(self, __unit: None=None) -> dict[str, Any] | None:
81
+ this: OntologyAnnotation = self
82
+ return this._tanInfo
83
+
84
+ @property
85
+ def NameText(self, __unit: None=None) -> str:
86
+ this: OntologyAnnotation = self
87
+ return default_arg(this.Name, "")
88
+
89
+ @staticmethod
90
+ def create_uri_annotation(term_source_ref: str, local_tan: str) -> str:
91
+ return create_oauri(term_source_ref, local_tan)
92
+
93
+ @staticmethod
94
+ def from_term_annotation(tan: str, name: str | None=None) -> OntologyAnnotation:
95
+ match_value: dict[str, Any] | None = try_parse_term_annotation(tan)
96
+ if match_value is None:
97
+ return OntologyAnnotation.create(name, None, tan)
98
+
99
+ else:
100
+ r: dict[str, Any] = match_value
101
+ accession: str = (r["IDSpace"] + ":") + r["LocalID"]
102
+ return OntologyAnnotation.create(name, r["IDSpace"], accession)
103
+
104
+
105
+ @property
106
+ def TermAccessionShort(self, __unit: None=None) -> str:
107
+ this: OntologyAnnotation = self
108
+ match_value: dict[str, Any] | None = this.TANInfo
109
+ if match_value is not None:
110
+ id: dict[str, Any] = match_value
111
+ return ((("" + id["IDSpace"]) + ":") + id["LocalID"]) + ""
112
+
113
+ else:
114
+ return ""
115
+
116
+
117
+ @property
118
+ def TermAccessionOntobeeUrl(self, __unit: None=None) -> str:
119
+ this: OntologyAnnotation = self
120
+ match_value: dict[str, Any] | None = this.TANInfo
121
+ if match_value is not None:
122
+ id: dict[str, Any] = match_value
123
+ return OntologyAnnotation.create_uri_annotation(id["IDSpace"], id["LocalID"])
124
+
125
+ else:
126
+ return ""
127
+
128
+
129
+ @property
130
+ def TermAccessionAndOntobeeUrlIfShort(self, __unit: None=None) -> str:
131
+ this: OntologyAnnotation = self
132
+ match_value: str | None = this.TermAccessionNumber
133
+ if match_value is not None:
134
+ tan: str = match_value
135
+ return this.TermAccessionOntobeeUrl if (ActivePatterns__007CRegex_007C__007C(Pattern_TermAnnotationShortPattern, tan) is not None) else tan
136
+
137
+ else:
138
+ return ""
139
+
140
+
141
+ @staticmethod
142
+ def to_string_object(oa: OntologyAnnotation, as_ontobee_purl_url_if_short: bool | None=None) -> dict[str, Any]:
143
+ as_ontobee_purl_url_if_short_1: bool = default_arg(as_ontobee_purl_url_if_short, False)
144
+ TermName: str = default_arg(oa.Name, "")
145
+ TermSourceREF: str = default_arg(oa.TermSourceREF, "")
146
+ def _arrow989(__unit: None=None) -> str:
147
+ url: str = oa.TermAccessionAndOntobeeUrlIfShort
148
+ return default_arg(oa.TermAccessionNumber, "") if (url == "") else url
149
+
150
+ return {
151
+ "TermAccessionNumber": _arrow989() if as_ontobee_purl_url_if_short_1 else default_arg(oa.TermAccessionNumber, ""),
152
+ "TermName": TermName,
153
+ "TermSourceREF": TermSourceREF
154
+ }
155
+
156
+ def __str__(self, __unit: None=None) -> str:
157
+ this: OntologyAnnotation = self
158
+ sb: Any = StringBuilder__ctor()
159
+ ignore(StringBuilder__Append_Z721C83C5(sb, "{"))
160
+ def _arrow997(__unit: None=None) -> IEnumerable_1[str]:
161
+ def _arrow990(__unit: None=None) -> str:
162
+ arg: str = value_4(this.Name)
163
+ return to_text(printf("Name = %A"))(arg)
164
+
165
+ def _arrow996(__unit: None=None) -> IEnumerable_1[str]:
166
+ def _arrow991(__unit: None=None) -> str:
167
+ arg_1: str = value_4(this.TermSourceREF)
168
+ return to_text(printf("TSR = %A"))(arg_1)
169
+
170
+ def _arrow995(__unit: None=None) -> IEnumerable_1[str]:
171
+ def _arrow992(__unit: None=None) -> str:
172
+ arg_2: str = value_4(this.TermAccessionNumber)
173
+ return to_text(printf("TAN = %A"))(arg_2)
174
+
175
+ def _arrow994(__unit: None=None) -> IEnumerable_1[str]:
176
+ def _arrow993(__unit: None=None) -> str:
177
+ arg_3: Array[Comment] = this.Comments
178
+ return to_text(printf("Comments = %A"))(arg_3)
179
+
180
+ return singleton(_arrow993()) if (len(this.Comments) != 0) else empty()
181
+
182
+ return append(singleton(_arrow992()) if (this.TermAccessionNumber is not None) else empty(), delay(_arrow994))
183
+
184
+ return append(singleton(_arrow991()) if (this.TermSourceREF is not None) else empty(), delay(_arrow995))
185
+
186
+ return append(singleton(_arrow990()) if (this.Name is not None) else empty(), delay(_arrow996))
187
+
188
+ ignore(StringBuilder__Append_Z721C83C5(sb, join("; ", to_list(delay(_arrow997)))))
189
+ ignore(StringBuilder__Append_Z721C83C5(sb, "}"))
190
+ return to_string(sb)
191
+
192
+ def is_empty(self, __unit: None=None) -> bool:
193
+ this: OntologyAnnotation = self
194
+ 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
195
+
196
+ def __hash__(self, __unit: None=None) -> int:
197
+ this: OntologyAnnotation = self
198
+ def _arrow998(__unit: None=None) -> int:
199
+ match_value: str | None = this.Name
200
+ return 0 if (match_value is None) else string_hash(match_value)
201
+
202
+ def _arrow1000(__unit: None=None) -> int:
203
+ match_value: str | None = this.TermSourceREF
204
+ match_value_1: dict[str, Any] | None = this.TANInfo
205
+ if match_value is not None:
206
+ if match_value_1 is None:
207
+ tsr_1: str = match_value
208
+ match_value_2: str | None = this.TermAccessionNumber
209
+ if match_value_2 is None:
210
+ return string_hash(tsr_1.lower())
211
+
212
+ else:
213
+ tan: str = match_value_2
214
+ return merge_hashes(string_hash(tsr_1.lower()), string_hash(tan))
215
+
216
+
217
+ else:
218
+ taninfo_1: dict[str, Any] = match_value_1
219
+ tsr: str = match_value
220
+ return merge_hashes(string_hash(tsr.lower()), string_hash(taninfo_1["LocalID"]))
221
+
222
+
223
+ else:
224
+ def _arrow999(__unit: None=None) -> int:
225
+ taninfo: dict[str, Any] = match_value_1
226
+ return merge_hashes(string_hash(taninfo["IDSpace"].lower()), string_hash(taninfo["LocalID"]))
227
+
228
+ return 0 if (match_value_1 is None) else _arrow999()
229
+
230
+
231
+ return merge_hashes(_arrow998(), _arrow1000())
232
+
233
+ def __eq__(self, obj: Any=None) -> bool:
234
+ this: OntologyAnnotation = self
235
+ return hash_1_1(this) == hash_1_1(obj)
236
+
237
+ def Copy(self, __unit: None=None) -> OntologyAnnotation:
238
+ this: OntologyAnnotation = self
239
+ def f(c: Comment) -> Comment:
240
+ return c.Copy()
241
+
242
+ next_comments: Array[Comment] = ResizeArray_map(f, this.Comments)
243
+ name: str | None = this.Name
244
+ tsr: str | None = this.TermSourceREF
245
+ tan: str | None = this.TermAccessionNumber
246
+ return OntologyAnnotation.make(name, tsr, tan, next_comments)
247
+
248
+ @staticmethod
249
+ def compute_tan_info(tan: str | None=None, tsr: str | None=None) -> dict[str, Any] | None:
250
+ if tan is None:
251
+ return None
252
+
253
+ else:
254
+ tan_1: str = tan
255
+ match_value: dict[str, Any] | None = try_parse_term_annotation(tan_1)
256
+ def _arrow1001(__unit: None=None) -> dict[str, Any] | None:
257
+ tsr_1: str = tsr
258
+ return {
259
+ "IDSpace": tsr_1,
260
+ "LocalID": tan_1
261
+ }
262
+
263
+ return (None if (tsr is None) else (None if (tsr == "") else _arrow1001())) if (match_value is None) else match_value
264
+
265
+
266
+ def Print(self, __unit: None=None) -> str:
267
+ this: OntologyAnnotation = self
268
+ return to_string(this)
269
+
270
+ def PrintCompact(self, __unit: None=None) -> str:
271
+ this: OntologyAnnotation = self
272
+ return "OA " + this.NameText
273
+
274
+ def __cmp__(self, obj: Any=None) -> int:
275
+ this: OntologyAnnotation = self
276
+ if isinstance(obj, OntologyAnnotation):
277
+ hash_1: int = safe_hash(this) or 0
278
+ other_hash: int = safe_hash(obj) or 0
279
+ return 0 if (hash_1 == other_hash) else (-1 if (hash_1 < other_hash) else 1)
280
+
281
+ else:
282
+ return 1
283
+
284
+
285
+ def recompute_tan_info(self, __unit: None=None) -> None:
286
+ this: OntologyAnnotation = self
287
+ new_tan_info: dict[str, Any] | None = OntologyAnnotation.compute_tan_info(this._termAccessionNumber, this._termSourceREF)
288
+ this._tanInfo = new_tan_info
289
+
290
+
291
+ OntologyAnnotation_reflection = _expr1004
292
+
293
+ def OntologyAnnotation__ctor_Z54349580(name: str | None=None, tsr: str | None=None, tan: str | None=None, comments: Array[Comment] | None=None) -> OntologyAnnotation:
294
+ return OntologyAnnotation(name, tsr, tan, comments)
295
+
296
+
297
+ __all__ = ["OntologyAnnotation_reflection"]
298
+