arctrl 3.0.0__tar.gz

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-3.0.0/LICENSE +21 -0
  2. arctrl-3.0.0/PKG-INFO +157 -0
  3. arctrl-3.0.0/README.md +137 -0
  4. arctrl-3.0.0/pyproject.toml +43 -0
  5. arctrl-3.0.0/src/ARCtrl/__init__.py +23 -0
  6. arctrl-3.0.0/src/ARCtrl/cwl.py +12 -0
  7. arctrl-3.0.0/src/ARCtrl/py/CWL/__init__.py +0 -0
  8. arctrl-3.0.0/src/ARCtrl/py/CWL/cwlprocessing_unit.py +221 -0
  9. arctrl-3.0.0/src/ARCtrl/py/CWL/cwltypes.py +364 -0
  10. arctrl-3.0.0/src/ARCtrl/py/CWL/decode.py +3532 -0
  11. arctrl-3.0.0/src/ARCtrl/py/CWL/encode.py +1905 -0
  12. arctrl-3.0.0/src/ARCtrl/py/CWL/expression_tool_description.py +192 -0
  13. arctrl-3.0.0/src/ARCtrl/py/CWL/hash_helpers.py +60 -0
  14. arctrl-3.0.0/src/ARCtrl/py/CWL/inputs.py +122 -0
  15. arctrl-3.0.0/src/ARCtrl/py/CWL/operation_description.py +169 -0
  16. arctrl-3.0.0/src/ARCtrl/py/CWL/outputs.py +171 -0
  17. arctrl-3.0.0/src/ARCtrl/py/CWL/parameter_reference.py +74 -0
  18. arctrl-3.0.0/src/ARCtrl/py/CWL/requirements.py +350 -0
  19. arctrl-3.0.0/src/ARCtrl/py/CWL/tool_description.py +192 -0
  20. arctrl-3.0.0/src/ARCtrl/py/CWL/workflow_description.py +181 -0
  21. arctrl-3.0.0/src/ARCtrl/py/CWL/workflow_steps.py +354 -0
  22. arctrl-3.0.0/src/ARCtrl/py/Contract/__init__.py +0 -0
  23. arctrl-3.0.0/src/ARCtrl/py/Contract/arc.py +89 -0
  24. arctrl-3.0.0/src/ARCtrl/py/Contract/arc_assay.py +125 -0
  25. arctrl-3.0.0/src/ARCtrl/py/Contract/arc_investigation.py +88 -0
  26. arctrl-3.0.0/src/ARCtrl/py/Contract/arc_run.py +291 -0
  27. arctrl-3.0.0/src/ARCtrl/py/Contract/arc_study.py +126 -0
  28. arctrl-3.0.0/src/ARCtrl/py/Contract/arc_workflow.py +213 -0
  29. arctrl-3.0.0/src/ARCtrl/py/Contract/contract.py +153 -0
  30. arctrl-3.0.0/src/ARCtrl/py/Contract/datamap.py +396 -0
  31. arctrl-3.0.0/src/ARCtrl/py/Contract/git.py +116 -0
  32. arctrl-3.0.0/src/ARCtrl/py/Contract/license.py +58 -0
  33. arctrl-3.0.0/src/ARCtrl/py/Contract/validation_packages_config.py +107 -0
  34. arctrl-3.0.0/src/ARCtrl/py/ContractIO/__init__.py +0 -0
  35. arctrl-3.0.0/src/ARCtrl/py/ContractIO/contract_io.py +350 -0
  36. arctrl-3.0.0/src/ARCtrl/py/ContractIO/file_system_helper.py +264 -0
  37. arctrl-3.0.0/src/ARCtrl/py/Conversion/__init__.py +0 -0
  38. arctrl-3.0.0/src/ARCtrl/py/Conversion/assay.py +151 -0
  39. arctrl-3.0.0/src/ARCtrl/py/Conversion/basic.py +559 -0
  40. arctrl-3.0.0/src/ARCtrl/py/Conversion/column_index.py +91 -0
  41. arctrl-3.0.0/src/ARCtrl/py/Conversion/datamap.py +36 -0
  42. arctrl-3.0.0/src/ARCtrl/py/Conversion/date_time.py +32 -0
  43. arctrl-3.0.0/src/ARCtrl/py/Conversion/investigation.py +171 -0
  44. arctrl-3.0.0/src/ARCtrl/py/Conversion/person.py +148 -0
  45. arctrl-3.0.0/src/ARCtrl/py/Conversion/process.py +828 -0
  46. arctrl-3.0.0/src/ARCtrl/py/Conversion/run.py +367 -0
  47. arctrl-3.0.0/src/ARCtrl/py/Conversion/scholarly_article.py +163 -0
  48. arctrl-3.0.0/src/ARCtrl/py/Conversion/study.py +99 -0
  49. arctrl-3.0.0/src/ARCtrl/py/Conversion/table.py +229 -0
  50. arctrl-3.0.0/src/ARCtrl/py/Conversion/workflow.py +680 -0
  51. arctrl-3.0.0/src/ARCtrl/py/Core/Helper/__init__.py +0 -0
  52. arctrl-3.0.0/src/ARCtrl/py/Core/Helper/collections_.py +512 -0
  53. arctrl-3.0.0/src/ARCtrl/py/Core/Helper/date_time.py +26 -0
  54. arctrl-3.0.0/src/ARCtrl/py/Core/Helper/hash_codes.py +60 -0
  55. arctrl-3.0.0/src/ARCtrl/py/Core/Helper/identifier.py +290 -0
  56. arctrl-3.0.0/src/ARCtrl/py/Core/Helper/orcid.py +42 -0
  57. arctrl-3.0.0/src/ARCtrl/py/Core/Helper/printer.py +13 -0
  58. arctrl-3.0.0/src/ARCtrl/py/Core/Helper/regex.py +554 -0
  59. arctrl-3.0.0/src/ARCtrl/py/Core/Helper/sem_ver.py +71 -0
  60. arctrl-3.0.0/src/ARCtrl/py/Core/Helper/url.py +148 -0
  61. arctrl-3.0.0/src/ARCtrl/py/Core/Process/__init__.py +0 -0
  62. arctrl-3.0.0/src/ARCtrl/py/Core/Process/column_index.py +280 -0
  63. arctrl-3.0.0/src/ARCtrl/py/Core/Process/component.py +200 -0
  64. arctrl-3.0.0/src/ARCtrl/py/Core/Process/factor.py +151 -0
  65. arctrl-3.0.0/src/ARCtrl/py/Core/Process/factor_value.py +182 -0
  66. arctrl-3.0.0/src/ARCtrl/py/Core/Process/material.py +74 -0
  67. arctrl-3.0.0/src/ARCtrl/py/Core/Process/material_attribute.py +95 -0
  68. arctrl-3.0.0/src/ARCtrl/py/Core/Process/material_attribute_value.py +184 -0
  69. arctrl-3.0.0/src/ARCtrl/py/Core/Process/material_type.py +45 -0
  70. arctrl-3.0.0/src/ARCtrl/py/Core/Process/process.py +477 -0
  71. arctrl-3.0.0/src/ARCtrl/py/Core/Process/process_input.py +265 -0
  72. arctrl-3.0.0/src/ARCtrl/py/Core/Process/process_output.py +235 -0
  73. arctrl-3.0.0/src/ARCtrl/py/Core/Process/process_parameter_value.py +200 -0
  74. arctrl-3.0.0/src/ARCtrl/py/Core/Process/process_sequence.py +435 -0
  75. arctrl-3.0.0/src/ARCtrl/py/Core/Process/protocol.py +175 -0
  76. arctrl-3.0.0/src/ARCtrl/py/Core/Process/protocol_parameter.py +98 -0
  77. arctrl-3.0.0/src/ARCtrl/py/Core/Process/sample.py +82 -0
  78. arctrl-3.0.0/src/ARCtrl/py/Core/Process/source.py +62 -0
  79. arctrl-3.0.0/src/ARCtrl/py/Core/Table/__init__.py +0 -0
  80. arctrl-3.0.0/src/ARCtrl/py/Core/Table/arc_table.py +1206 -0
  81. arctrl-3.0.0/src/ARCtrl/py/Core/Table/arc_table_aux.py +1308 -0
  82. arctrl-3.0.0/src/ARCtrl/py/Core/Table/arc_tables.py +574 -0
  83. arctrl-3.0.0/src/ARCtrl/py/Core/Table/composite_cell.py +319 -0
  84. arctrl-3.0.0/src/ARCtrl/py/Core/Table/composite_column.py +73 -0
  85. arctrl-3.0.0/src/ARCtrl/py/Core/Table/composite_header.py +739 -0
  86. arctrl-3.0.0/src/ARCtrl/py/Core/__init__.py +0 -0
  87. arctrl-3.0.0/src/ARCtrl/py/Core/arc_types.py +5312 -0
  88. arctrl-3.0.0/src/ARCtrl/py/Core/comment.py +128 -0
  89. arctrl-3.0.0/src/ARCtrl/py/Core/comment_list.py +127 -0
  90. arctrl-3.0.0/src/ARCtrl/py/Core/conversion.py +1375 -0
  91. arctrl-3.0.0/src/ARCtrl/py/Core/data.py +247 -0
  92. arctrl-3.0.0/src/ARCtrl/py/Core/data_context.py +157 -0
  93. arctrl-3.0.0/src/ARCtrl/py/Core/data_file.py +112 -0
  94. arctrl-3.0.0/src/ARCtrl/py/Core/datamap.py +217 -0
  95. arctrl-3.0.0/src/ARCtrl/py/Core/identifier_setters.py +43 -0
  96. arctrl-3.0.0/src/ARCtrl/py/Core/iproperty_value.py +36 -0
  97. arctrl-3.0.0/src/ARCtrl/py/Core/ontology_annotation.py +298 -0
  98. arctrl-3.0.0/src/ARCtrl/py/Core/ontology_source_reference.py +114 -0
  99. arctrl-3.0.0/src/ARCtrl/py/Core/person.py +259 -0
  100. arctrl-3.0.0/src/ARCtrl/py/Core/publication.py +161 -0
  101. arctrl-3.0.0/src/ARCtrl/py/Core/template.py +231 -0
  102. arctrl-3.0.0/src/ARCtrl/py/Core/templates.py +148 -0
  103. arctrl-3.0.0/src/ARCtrl/py/Core/uri.py +11 -0
  104. arctrl-3.0.0/src/ARCtrl/py/Core/value.py +188 -0
  105. arctrl-3.0.0/src/ARCtrl/py/FileSystem/__init__.py +0 -0
  106. arctrl-3.0.0/src/ARCtrl/py/FileSystem/commit.py +21 -0
  107. arctrl-3.0.0/src/ARCtrl/py/FileSystem/default_gitattributes.py +1 -0
  108. arctrl-3.0.0/src/ARCtrl/py/FileSystem/default_gitignore.py +1 -0
  109. arctrl-3.0.0/src/ARCtrl/py/FileSystem/default_license.py +1 -0
  110. arctrl-3.0.0/src/ARCtrl/py/FileSystem/file_system.py +58 -0
  111. arctrl-3.0.0/src/ARCtrl/py/FileSystem/file_system_tree.py +483 -0
  112. arctrl-3.0.0/src/ARCtrl/py/FileSystem/path.py +266 -0
  113. arctrl-3.0.0/src/ARCtrl/py/Json/Datamap/__init__.py +0 -0
  114. arctrl-3.0.0/src/ARCtrl/py/Json/Datamap/data_context.py +101 -0
  115. arctrl-3.0.0/src/ARCtrl/py/Json/Datamap/datamap.py +53 -0
  116. arctrl-3.0.0/src/ARCtrl/py/Json/Process/__init__.py +0 -0
  117. arctrl-3.0.0/src/ARCtrl/py/Json/Process/assay_materials.py +46 -0
  118. arctrl-3.0.0/src/ARCtrl/py/Json/Process/component.py +125 -0
  119. arctrl-3.0.0/src/ARCtrl/py/Json/Process/factor.py +107 -0
  120. arctrl-3.0.0/src/ARCtrl/py/Json/Process/factor_value.py +101 -0
  121. arctrl-3.0.0/src/ARCtrl/py/Json/Process/material.py +226 -0
  122. arctrl-3.0.0/src/ARCtrl/py/Json/Process/material_attribute.py +79 -0
  123. arctrl-3.0.0/src/ARCtrl/py/Json/Process/material_attribute_value.py +101 -0
  124. arctrl-3.0.0/src/ARCtrl/py/Json/Process/material_type.py +53 -0
  125. arctrl-3.0.0/src/ARCtrl/py/Json/Process/process.py +296 -0
  126. arctrl-3.0.0/src/ARCtrl/py/Json/Process/process_input.py +83 -0
  127. arctrl-3.0.0/src/ARCtrl/py/Json/Process/process_output.py +67 -0
  128. arctrl-3.0.0/src/ARCtrl/py/Json/Process/process_parameter_value.py +81 -0
  129. arctrl-3.0.0/src/ARCtrl/py/Json/Process/protocol.py +354 -0
  130. arctrl-3.0.0/src/ARCtrl/py/Json/Process/protocol_parameter.py +91 -0
  131. arctrl-3.0.0/src/ARCtrl/py/Json/Process/sample.py +277 -0
  132. arctrl-3.0.0/src/ARCtrl/py/Json/Process/source.py +214 -0
  133. arctrl-3.0.0/src/ARCtrl/py/Json/Process/study_materials.py +52 -0
  134. arctrl-3.0.0/src/ARCtrl/py/Json/Process/value.py +56 -0
  135. arctrl-3.0.0/src/ARCtrl/py/Json/ROCrate/__init__.py +0 -0
  136. arctrl-3.0.0/src/ARCtrl/py/Json/ROCrate/ldcontext.py +143 -0
  137. arctrl-3.0.0/src/ARCtrl/py/Json/ROCrate/ldgraph.py +117 -0
  138. arctrl-3.0.0/src/ARCtrl/py/Json/ROCrate/ldnode.py +304 -0
  139. arctrl-3.0.0/src/ARCtrl/py/Json/ROCrate/ldref.py +44 -0
  140. arctrl-3.0.0/src/ARCtrl/py/Json/ROCrate/ldvalue.py +102 -0
  141. arctrl-3.0.0/src/ARCtrl/py/Json/Table/__init__.py +0 -0
  142. arctrl-3.0.0/src/ARCtrl/py/Json/Table/arc_table.py +375 -0
  143. arctrl-3.0.0/src/ARCtrl/py/Json/Table/cell_table.py +83 -0
  144. arctrl-3.0.0/src/ARCtrl/py/Json/Table/composite_cell.py +136 -0
  145. arctrl-3.0.0/src/ARCtrl/py/Json/Table/composite_header.py +67 -0
  146. arctrl-3.0.0/src/ARCtrl/py/Json/Table/iotype.py +24 -0
  147. arctrl-3.0.0/src/ARCtrl/py/Json/Table/oatable.py +82 -0
  148. arctrl-3.0.0/src/ARCtrl/py/Json/Table/templates.py +281 -0
  149. arctrl-3.0.0/src/ARCtrl/py/Json/__init__.py +0 -0
  150. arctrl-3.0.0/src/ARCtrl/py/Json/assay.py +600 -0
  151. arctrl-3.0.0/src/ARCtrl/py/Json/comment.py +206 -0
  152. arctrl-3.0.0/src/ARCtrl/py/Json/context/rocrate/__init__.py +0 -0
  153. arctrl-3.0.0/src/ARCtrl/py/Json/context/rocrate/isa_assay_context.py +101 -0
  154. arctrl-3.0.0/src/ARCtrl/py/Json/context/rocrate/isa_comment_context.py +60 -0
  155. arctrl-3.0.0/src/ARCtrl/py/Json/context/rocrate/isa_component_context.py +77 -0
  156. arctrl-3.0.0/src/ARCtrl/py/Json/context/rocrate/isa_data_context.py +74 -0
  157. arctrl-3.0.0/src/ARCtrl/py/Json/context/rocrate/isa_factor_context.py +74 -0
  158. arctrl-3.0.0/src/ARCtrl/py/Json/context/rocrate/isa_factor_value_context.py +84 -0
  159. arctrl-3.0.0/src/ARCtrl/py/Json/context/rocrate/isa_investigation_context.py +110 -0
  160. arctrl-3.0.0/src/ARCtrl/py/Json/context/rocrate/isa_material_attribute_context.py +64 -0
  161. arctrl-3.0.0/src/ARCtrl/py/Json/context/rocrate/isa_material_attribute_value_context.py +80 -0
  162. arctrl-3.0.0/src/ARCtrl/py/Json/context/rocrate/isa_material_context.py +71 -0
  163. arctrl-3.0.0/src/ARCtrl/py/Json/context/rocrate/isa_ontology_annotation_context.py +68 -0
  164. arctrl-3.0.0/src/ARCtrl/py/Json/context/rocrate/isa_ontology_source_reference_context.py +75 -0
  165. arctrl-3.0.0/src/ARCtrl/py/Json/context/rocrate/isa_organization_context.py +55 -0
  166. arctrl-3.0.0/src/ARCtrl/py/Json/context/rocrate/isa_person_context.py +131 -0
  167. arctrl-3.0.0/src/ARCtrl/py/Json/context/rocrate/isa_process_context.py +94 -0
  168. arctrl-3.0.0/src/ARCtrl/py/Json/context/rocrate/isa_process_parameter_value_context.py +80 -0
  169. arctrl-3.0.0/src/ARCtrl/py/Json/context/rocrate/isa_protocol_context.py +97 -0
  170. arctrl-3.0.0/src/ARCtrl/py/Json/context/rocrate/isa_protocol_parameter_context.py +64 -0
  171. arctrl-3.0.0/src/ARCtrl/py/Json/context/rocrate/isa_publication_context.py +78 -0
  172. arctrl-3.0.0/src/ARCtrl/py/Json/context/rocrate/isa_sample_context.py +65 -0
  173. arctrl-3.0.0/src/ARCtrl/py/Json/context/rocrate/isa_source_context.py +66 -0
  174. arctrl-3.0.0/src/ARCtrl/py/Json/context/rocrate/isa_study_context.py +125 -0
  175. arctrl-3.0.0/src/ARCtrl/py/Json/context/rocrate/property_value_context.py +73 -0
  176. arctrl-3.0.0/src/ARCtrl/py/Json/context/rocrate/rocrate_context.py +81 -0
  177. arctrl-3.0.0/src/ARCtrl/py/Json/converter_options.py +23 -0
  178. arctrl-3.0.0/src/ARCtrl/py/Json/data.py +356 -0
  179. arctrl-3.0.0/src/ARCtrl/py/Json/data_file.py +63 -0
  180. arctrl-3.0.0/src/ARCtrl/py/Json/decode.py +271 -0
  181. arctrl-3.0.0/src/ARCtrl/py/Json/encode.py +140 -0
  182. arctrl-3.0.0/src/ARCtrl/py/Json/idtable.py +44 -0
  183. arctrl-3.0.0/src/ARCtrl/py/Json/investigation.py +695 -0
  184. arctrl-3.0.0/src/ARCtrl/py/Json/ontology_annotation.py +404 -0
  185. arctrl-3.0.0/src/ARCtrl/py/Json/ontology_source_reference.py +255 -0
  186. arctrl-3.0.0/src/ARCtrl/py/Json/person.py +658 -0
  187. arctrl-3.0.0/src/ARCtrl/py/Json/property_value.py +359 -0
  188. arctrl-3.0.0/src/ARCtrl/py/Json/publication.py +279 -0
  189. arctrl-3.0.0/src/ARCtrl/py/Json/run.py +275 -0
  190. arctrl-3.0.0/src/ARCtrl/py/Json/string_table.py +87 -0
  191. arctrl-3.0.0/src/ARCtrl/py/Json/study.py +793 -0
  192. arctrl-3.0.0/src/ARCtrl/py/Json/workflow.py +307 -0
  193. arctrl-3.0.0/src/ARCtrl/py/JsonIO/Process/__init__.py +0 -0
  194. arctrl-3.0.0/src/ARCtrl/py/JsonIO/Process/component.py +60 -0
  195. arctrl-3.0.0/src/ARCtrl/py/JsonIO/Process/factor.py +36 -0
  196. arctrl-3.0.0/src/ARCtrl/py/JsonIO/Process/factor_value.py +38 -0
  197. arctrl-3.0.0/src/ARCtrl/py/JsonIO/Process/material.py +60 -0
  198. arctrl-3.0.0/src/ARCtrl/py/JsonIO/Process/material_attribute.py +38 -0
  199. arctrl-3.0.0/src/ARCtrl/py/JsonIO/Process/material_attribute_value.py +60 -0
  200. arctrl-3.0.0/src/ARCtrl/py/JsonIO/Process/material_type.py +36 -0
  201. arctrl-3.0.0/src/ARCtrl/py/JsonIO/Process/process.py +60 -0
  202. arctrl-3.0.0/src/ARCtrl/py/JsonIO/Process/process_input.py +38 -0
  203. arctrl-3.0.0/src/ARCtrl/py/JsonIO/Process/process_output.py +60 -0
  204. arctrl-3.0.0/src/ARCtrl/py/JsonIO/Process/process_parameter_value.py +60 -0
  205. arctrl-3.0.0/src/ARCtrl/py/JsonIO/Process/process_sequence.py +71 -0
  206. arctrl-3.0.0/src/ARCtrl/py/JsonIO/Process/protocol.py +60 -0
  207. arctrl-3.0.0/src/ARCtrl/py/JsonIO/Process/protocol_parameter.py +36 -0
  208. arctrl-3.0.0/src/ARCtrl/py/JsonIO/Process/sample.py +60 -0
  209. arctrl-3.0.0/src/ARCtrl/py/JsonIO/Process/source.py +60 -0
  210. arctrl-3.0.0/src/ARCtrl/py/JsonIO/Process/study_materials.py +52 -0
  211. arctrl-3.0.0/src/ARCtrl/py/JsonIO/Process/value.py +32 -0
  212. arctrl-3.0.0/src/ARCtrl/py/JsonIO/Table/__init__.py +0 -0
  213. arctrl-3.0.0/src/ARCtrl/py/JsonIO/Table/arc_table.py +103 -0
  214. arctrl-3.0.0/src/ARCtrl/py/JsonIO/Table/composite_cell.py +36 -0
  215. arctrl-3.0.0/src/ARCtrl/py/JsonIO/Table/composite_header.py +36 -0
  216. arctrl-3.0.0/src/ARCtrl/py/JsonIO/Table/compression.py +67 -0
  217. arctrl-3.0.0/src/ARCtrl/py/JsonIO/Table/iotype.py +36 -0
  218. arctrl-3.0.0/src/ARCtrl/py/JsonIO/Table/templates.py +113 -0
  219. arctrl-3.0.0/src/ARCtrl/py/JsonIO/__init__.py +0 -0
  220. arctrl-3.0.0/src/ARCtrl/py/JsonIO/assay.py +113 -0
  221. arctrl-3.0.0/src/ARCtrl/py/JsonIO/comment.py +80 -0
  222. arctrl-3.0.0/src/ARCtrl/py/JsonIO/data.py +60 -0
  223. arctrl-3.0.0/src/ARCtrl/py/JsonIO/data_file.py +58 -0
  224. arctrl-3.0.0/src/ARCtrl/py/JsonIO/datamap.py +36 -0
  225. arctrl-3.0.0/src/ARCtrl/py/JsonIO/decode.py +9 -0
  226. arctrl-3.0.0/src/ARCtrl/py/JsonIO/encode.py +1 -0
  227. arctrl-3.0.0/src/ARCtrl/py/JsonIO/investigation.py +91 -0
  228. arctrl-3.0.0/src/ARCtrl/py/JsonIO/ldobject.py +106 -0
  229. arctrl-3.0.0/src/ARCtrl/py/JsonIO/ontology_annotation.py +80 -0
  230. arctrl-3.0.0/src/ARCtrl/py/JsonIO/ontology_source_reference.py +80 -0
  231. arctrl-3.0.0/src/ARCtrl/py/JsonIO/person.py +82 -0
  232. arctrl-3.0.0/src/ARCtrl/py/JsonIO/publication.py +82 -0
  233. arctrl-3.0.0/src/ARCtrl/py/JsonIO/run.py +68 -0
  234. arctrl-3.0.0/src/ARCtrl/py/JsonIO/study.py +114 -0
  235. arctrl-3.0.0/src/ARCtrl/py/JsonIO/workflow.py +68 -0
  236. arctrl-3.0.0/src/ARCtrl/py/ROCrate/ISAProfile/__init__.py +0 -0
  237. arctrl-3.0.0/src/ARCtrl/py/ROCrate/ISAProfile/assay.py +70 -0
  238. arctrl-3.0.0/src/ARCtrl/py/ROCrate/ISAProfile/data.py +65 -0
  239. arctrl-3.0.0/src/ARCtrl/py/ROCrate/ISAProfile/dataset.py +24 -0
  240. arctrl-3.0.0/src/ARCtrl/py/ROCrate/ISAProfile/investigation.py +73 -0
  241. arctrl-3.0.0/src/ARCtrl/py/ROCrate/ISAProfile/lab_process.py +162 -0
  242. arctrl-3.0.0/src/ARCtrl/py/ROCrate/ISAProfile/lab_protocol.py +37 -0
  243. arctrl-3.0.0/src/ARCtrl/py/ROCrate/ISAProfile/person.py +72 -0
  244. arctrl-3.0.0/src/ARCtrl/py/ROCrate/ISAProfile/property_value.py +98 -0
  245. arctrl-3.0.0/src/ARCtrl/py/ROCrate/ISAProfile/sample.py +64 -0
  246. arctrl-3.0.0/src/ARCtrl/py/ROCrate/ISAProfile/scholarly_article.py +98 -0
  247. arctrl-3.0.0/src/ARCtrl/py/ROCrate/ISAProfile/study.py +74 -0
  248. arctrl-3.0.0/src/ARCtrl/py/ROCrate/LDTypes/__init__.py +0 -0
  249. arctrl-3.0.0/src/ARCtrl/py/ROCrate/LDTypes/comment.py +131 -0
  250. arctrl-3.0.0/src/ARCtrl/py/ROCrate/LDTypes/computational_workflow.py +455 -0
  251. arctrl-3.0.0/src/ARCtrl/py/ROCrate/LDTypes/computer_language.py +269 -0
  252. arctrl-3.0.0/src/ARCtrl/py/ROCrate/LDTypes/create_action.py +303 -0
  253. arctrl-3.0.0/src/ARCtrl/py/ROCrate/LDTypes/creative_work.py +566 -0
  254. arctrl-3.0.0/src/ARCtrl/py/ROCrate/LDTypes/dataset.py +943 -0
  255. arctrl-3.0.0/src/ARCtrl/py/ROCrate/LDTypes/defined_term.py +131 -0
  256. arctrl-3.0.0/src/ARCtrl/py/ROCrate/LDTypes/file.py +281 -0
  257. arctrl-3.0.0/src/ARCtrl/py/ROCrate/LDTypes/formal_parameter.py +431 -0
  258. arctrl-3.0.0/src/ARCtrl/py/ROCrate/LDTypes/lab_process.py +352 -0
  259. arctrl-3.0.0/src/ARCtrl/py/ROCrate/LDTypes/lab_protocol.py +395 -0
  260. arctrl-3.0.0/src/ARCtrl/py/ROCrate/LDTypes/organization.py +83 -0
  261. arctrl-3.0.0/src/ARCtrl/py/ROCrate/LDTypes/person.py +484 -0
  262. arctrl-3.0.0/src/ARCtrl/py/ROCrate/LDTypes/postal_address.py +195 -0
  263. arctrl-3.0.0/src/ARCtrl/py/ROCrate/LDTypes/property_value.py +952 -0
  264. arctrl-3.0.0/src/ARCtrl/py/ROCrate/LDTypes/sample.py +202 -0
  265. arctrl-3.0.0/src/ARCtrl/py/ROCrate/LDTypes/scholarly_article.py +229 -0
  266. arctrl-3.0.0/src/ARCtrl/py/ROCrate/LDTypes/software_source_code.py +310 -0
  267. arctrl-3.0.0/src/ARCtrl/py/ROCrate/LDTypes/workflow_invocation.py +48 -0
  268. arctrl-3.0.0/src/ARCtrl/py/ROCrate/LDTypes/workflow_protocol.py +52 -0
  269. arctrl-3.0.0/src/ARCtrl/py/ROCrate/__init__.py +0 -0
  270. arctrl-3.0.0/src/ARCtrl/py/ROCrate/arc_rocrate_metadata.py +39 -0
  271. arctrl-3.0.0/src/ARCtrl/py/ROCrate/dyn_obj_extensions.py +1 -0
  272. arctrl-3.0.0/src/ARCtrl/py/ROCrate/helper.py +8 -0
  273. arctrl-3.0.0/src/ARCtrl/py/ROCrate/ldcontext.py +406 -0
  274. arctrl-3.0.0/src/ARCtrl/py/ROCrate/ldobject.py +1247 -0
  275. arctrl-3.0.0/src/ARCtrl/py/ROCrate/rocrate_context.py +51 -0
  276. arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/AnnotationTable/__init__.py +0 -0
  277. arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/AnnotationTable/arc_table.py +203 -0
  278. arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/AnnotationTable/composite_cell.py +78 -0
  279. arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/AnnotationTable/composite_column.py +305 -0
  280. arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/AnnotationTable/composite_header.py +623 -0
  281. arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/DatamapTable/__init__.py +0 -0
  282. arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/DatamapTable/datamap_column.py +114 -0
  283. arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/DatamapTable/datamap_header.py +621 -0
  284. arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/DatamapTable/datamap_table.py +118 -0
  285. arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/Metadata/__init__.py +0 -0
  286. arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/Metadata/assays.py +125 -0
  287. arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/Metadata/comment.py +77 -0
  288. arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/Metadata/contacts.py +134 -0
  289. arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/Metadata/conversions.py +190 -0
  290. arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/Metadata/design_descriptors.py +34 -0
  291. arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/Metadata/factors.py +107 -0
  292. arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/Metadata/ontology_annotation.py +88 -0
  293. arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/Metadata/ontology_source_reference.py +96 -0
  294. arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/Metadata/protocols.py +146 -0
  295. arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/Metadata/publication.py +122 -0
  296. arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/Metadata/run.py +122 -0
  297. arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/Metadata/sparse_table.py +499 -0
  298. arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/Metadata/study.py +312 -0
  299. arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/Metadata/workflow.py +159 -0
  300. arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/__init__.py +0 -0
  301. arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/arc_assay.py +233 -0
  302. arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/arc_investigation.py +435 -0
  303. arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/arc_run.py +190 -0
  304. arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/arc_study.py +144 -0
  305. arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/arc_workflow.py +177 -0
  306. arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/assembly_info.py +1 -0
  307. arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/collection_aux.py +167 -0
  308. arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/datamap.py +43 -0
  309. arctrl-3.0.0/src/ARCtrl/py/Spreadsheet/template.py +460 -0
  310. arctrl-3.0.0/src/ARCtrl/py/ValidationPackages/__init__.py +0 -0
  311. arctrl-3.0.0/src/ARCtrl/py/ValidationPackages/validation_package.py +82 -0
  312. arctrl-3.0.0/src/ARCtrl/py/ValidationPackages/validation_packages_config.py +132 -0
  313. arctrl-3.0.0/src/ARCtrl/py/WebRequest/__init__.py +0 -0
  314. arctrl-3.0.0/src/ARCtrl/py/WebRequest/web_request.py +9 -0
  315. arctrl-3.0.0/src/ARCtrl/py/WebRequest/web_request_py.py +135 -0
  316. arctrl-3.0.0/src/ARCtrl/py/WorkflowGraph/__init__.py +0 -0
  317. arctrl-3.0.0/src/ARCtrl/py/WorkflowGraph/adapters.py +141 -0
  318. arctrl-3.0.0/src/ARCtrl/py/WorkflowGraph/build_options.py +45 -0
  319. arctrl-3.0.0/src/ARCtrl/py/WorkflowGraph/builder.py +720 -0
  320. arctrl-3.0.0/src/ARCtrl/py/WorkflowGraph/graph_types.py +260 -0
  321. arctrl-3.0.0/src/ARCtrl/py/WorkflowGraph/query_helpers.py +76 -0
  322. arctrl-3.0.0/src/ARCtrl/py/WorkflowGraph/reference_parsing.py +59 -0
  323. arctrl-3.0.0/src/ARCtrl/py/WorkflowGraph/visualization_siren.py +574 -0
  324. arctrl-3.0.0/src/ARCtrl/py/WorkflowGraph/workflow_graph.py +119 -0
  325. arctrl-3.0.0/src/ARCtrl/py/Yaml/__init__.py +0 -0
  326. arctrl-3.0.0/src/ARCtrl/py/Yaml/decode.py +1 -0
  327. arctrl-3.0.0/src/ARCtrl/py/Yaml/encode.py +10 -0
  328. arctrl-3.0.0/src/ARCtrl/py/Yaml/validation_package.py +77 -0
  329. arctrl-3.0.0/src/ARCtrl/py/Yaml/validation_packages_config.py +86 -0
  330. arctrl-3.0.0/src/ARCtrl/py/__init__.py +0 -0
  331. arctrl-3.0.0/src/ARCtrl/py/arc.py +1891 -0
  332. arctrl-3.0.0/src/ARCtrl/py/column_index.py +280 -0
  333. arctrl-3.0.0/src/ARCtrl/py/conversion.py +142 -0
  334. arctrl-3.0.0/src/ARCtrl/py/cross_async.py +76 -0
  335. arctrl-3.0.0/src/ARCtrl/py/cwlrun_resolver.py +228 -0
  336. arctrl-3.0.0/src/ARCtrl/py/fable_modules/dynamic_obj/__init__.py +0 -0
  337. arctrl-3.0.0/src/ARCtrl/py/fable_modules/dynamic_obj/dyn_obj.py +136 -0
  338. arctrl-3.0.0/src/ARCtrl/py/fable_modules/dynamic_obj/dynamic_obj.py +415 -0
  339. arctrl-3.0.0/src/ARCtrl/py/fable_modules/dynamic_obj/fable_js.py +1 -0
  340. arctrl-3.0.0/src/ARCtrl/py/fable_modules/dynamic_obj/fable_py.py +288 -0
  341. arctrl-3.0.0/src/ARCtrl/py/fable_modules/dynamic_obj/hash_codes.py +82 -0
  342. arctrl-3.0.0/src/ARCtrl/py/fable_modules/dynamic_obj/property_helper.py +25 -0
  343. arctrl-3.0.0/src/ARCtrl/py/fable_modules/dynamic_obj/reflection_utils.py +87 -0
  344. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/__init__.py +0 -0
  345. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/array_.py +1528 -0
  346. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/async_.py +377 -0
  347. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/async_builder.py +379 -0
  348. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/big_int.py +330 -0
  349. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/bit_converter.py +131 -0
  350. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/boolean.py +26 -0
  351. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/char.py +237 -0
  352. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/choice.py +212 -0
  353. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/date.py +779 -0
  354. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/date_offset.py +79 -0
  355. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/decimal_.py +190 -0
  356. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/diagnostics.py +54 -0
  357. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/double.py +87 -0
  358. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/encoding.py +41 -0
  359. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/event.py +206 -0
  360. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/file.py +107 -0
  361. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/fsharp_collections.py +52 -0
  362. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/fsharp_core.py +123 -0
  363. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/global_.py +63 -0
  364. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/guid.py +41 -0
  365. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/int32.py +73 -0
  366. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/list.py +1788 -0
  367. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/long.py +240 -0
  368. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/mailbox_processor.py +179 -0
  369. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/map.py +1854 -0
  370. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/map_util.py +148 -0
  371. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/mutable_map.py +397 -0
  372. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/mutable_set.py +279 -0
  373. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/native.py +45 -0
  374. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/numeric.py +46 -0
  375. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/observable.py +222 -0
  376. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/option.py +128 -0
  377. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/path.py +62 -0
  378. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/range.py +117 -0
  379. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/reflection.py +463 -0
  380. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/reg_exp.py +137 -0
  381. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/resize_array.py +31 -0
  382. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/result.py +212 -0
  383. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/seq.py +1979 -0
  384. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/seq2.py +221 -0
  385. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/set.py +2414 -0
  386. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/singleton_local_time_zone.py +36 -0
  387. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/string_.py +573 -0
  388. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/system_collections_generic.py +462 -0
  389. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/system_text.py +237 -0
  390. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/task.py +116 -0
  391. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/task_builder.py +122 -0
  392. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/thread.py +5 -0
  393. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/time_span.py +283 -0
  394. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/timer.py +24 -0
  395. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/types.py +401 -0
  396. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/uri.py +109 -0
  397. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_library/util.py +2735 -0
  398. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_openpyxl/__init__.py +0 -0
  399. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_openpyxl/openpyxl.py +362 -0
  400. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_python/cognite-sdk/__init__.py +0 -0
  401. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_python/cognite-sdk/cognite_sdk.py +22 -0
  402. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_python/flask/__init__.py +0 -0
  403. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_python/flask/flask.py +34 -0
  404. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_python/jupyter/__init__.py +0 -0
  405. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_python/jupyter/ipy_widgets.py +47 -0
  406. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_python/jupyter/ipython.py +13 -0
  407. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_python/stdlib/__init__.py +0 -0
  408. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_python/stdlib/ast.py +1 -0
  409. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_python/stdlib/asyncio/__init__.py +0 -0
  410. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_python/stdlib/asyncio/events.py +17 -0
  411. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_python/stdlib/asyncio/futures.py +52 -0
  412. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_python/stdlib/asyncio/tasks.py +38 -0
  413. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_python/stdlib/base64_.py +1 -0
  414. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_python/stdlib/builtins_.py +38 -0
  415. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_python/stdlib/html.py +1 -0
  416. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_python/stdlib/json.py +1 -0
  417. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_python/stdlib/math_.py +1 -0
  418. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_python/stdlib/os_.py +1 -0
  419. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_python/stdlib/queue_.py +1 -0
  420. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_python/stdlib/string_.py +1 -0
  421. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_python/stdlib/sys_.py +30 -0
  422. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_python/stdlib/time_.py +1 -0
  423. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fable_python/stdlib/tk_inter.py +1 -0
  424. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/Cells/__init__.py +0 -0
  425. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/Cells/fs_cell.py +340 -0
  426. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/Cells/fs_cells_collection.py +466 -0
  427. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/DSL/__init__.py +0 -0
  428. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/DSL/cell_builder.py +214 -0
  429. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/DSL/column_builder.py +139 -0
  430. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/DSL/dsl.py +50 -0
  431. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/DSL/expression.py +65 -0
  432. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/DSL/operators.py +9 -0
  433. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/DSL/row_builder.py +139 -0
  434. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/DSL/sheet_builder.py +118 -0
  435. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/DSL/table_builder.py +122 -0
  436. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/DSL/transform.py +463 -0
  437. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/DSL/types.py +314 -0
  438. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/DSL/workbook_builder.py +106 -0
  439. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/Json/__init__.py +0 -0
  440. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/Json/cell.py +103 -0
  441. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/Json/column.py +70 -0
  442. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/Json/row.py +70 -0
  443. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/Json/table.py +54 -0
  444. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/Json/value.py +93 -0
  445. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/Json/workbook.py +71 -0
  446. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/Json/worksheet.py +216 -0
  447. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/Ranges/__init__.py +0 -0
  448. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range.py +43 -0
  449. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_address.py +190 -0
  450. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_base.py +92 -0
  451. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_column.py +77 -0
  452. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_row.py +48 -0
  453. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/Tables/__init__.py +0 -0
  454. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/Tables/fs_table.py +461 -0
  455. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/Tables/fs_table_field.py +117 -0
  456. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/Tables/fs_table_row.py +23 -0
  457. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/__init__.py +0 -0
  458. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/fs_address.py +236 -0
  459. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/fs_column.py +172 -0
  460. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/fs_row.py +183 -0
  461. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/fs_workbook.py +192 -0
  462. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/fs_worksheet.py +610 -0
  463. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/hash_codes.py +60 -0
  464. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet/sheet_builder.py +329 -0
  465. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet_py/__init__.py +0 -0
  466. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet_py/cell.py +60 -0
  467. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet_py/cell_type.py +50 -0
  468. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet_py/fs_extension.py +60 -0
  469. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet_py/json.py +47 -0
  470. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet_py/table.py +54 -0
  471. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet_py/workbook.py +41 -0
  472. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet_py/worksheet.py +52 -0
  473. arctrl-3.0.0/src/ARCtrl/py/fable_modules/fs_spreadsheet_py/xlsx.py +37 -0
  474. arctrl-3.0.0/src/ARCtrl/py/fable_modules/siren/__init__.py +0 -0
  475. arctrl-3.0.0/src/ARCtrl/py/fable_modules/siren/config.py +1038 -0
  476. arctrl-3.0.0/src/ARCtrl/py/fable_modules/siren/formatting.py +1121 -0
  477. arctrl-3.0.0/src/ARCtrl/py/fable_modules/siren/siren.py +1941 -0
  478. arctrl-3.0.0/src/ARCtrl/py/fable_modules/siren/siren_types.py +1229 -0
  479. arctrl-3.0.0/src/ARCtrl/py/fable_modules/siren/theme_variables.py +517 -0
  480. arctrl-3.0.0/src/ARCtrl/py/fable_modules/siren/util.py +37 -0
  481. arctrl-3.0.0/src/ARCtrl/py/fable_modules/siren/yaml.py +101 -0
  482. arctrl-3.0.0/src/ARCtrl/py/fable_modules/thoth_json_core/__init__.py +0 -0
  483. arctrl-3.0.0/src/ARCtrl/py/fable_modules/thoth_json_core/decode.py +1614 -0
  484. arctrl-3.0.0/src/ARCtrl/py/fable_modules/thoth_json_core/encode.py +305 -0
  485. arctrl-3.0.0/src/ARCtrl/py/fable_modules/thoth_json_core/types.py +181 -0
  486. arctrl-3.0.0/src/ARCtrl/py/fable_modules/thoth_json_python/__init__.py +0 -0
  487. arctrl-3.0.0/src/ARCtrl/py/fable_modules/thoth_json_python/decode.py +112 -0
  488. arctrl-3.0.0/src/ARCtrl/py/fable_modules/thoth_json_python/encode.py +72 -0
  489. arctrl-3.0.0/src/ARCtrl/py/fable_modules/thoth_json_python/python.py +1 -0
  490. arctrl-3.0.0/src/ARCtrl/py/fable_modules/yamlicious/Interop/__init__.py +0 -0
  491. arctrl-3.0.0/src/ARCtrl/py/fable_modules/yamlicious/Interop/js_interop.py +1 -0
  492. arctrl-3.0.0/src/ARCtrl/py/fable_modules/yamlicious/Interop/py_interop.py +7 -0
  493. arctrl-3.0.0/src/ARCtrl/py/fable_modules/yamlicious/__init__.py +0 -0
  494. arctrl-3.0.0/src/ARCtrl/py/fable_modules/yamlicious/decode.py +1784 -0
  495. arctrl-3.0.0/src/ARCtrl/py/fable_modules/yamlicious/encode.py +84 -0
  496. arctrl-3.0.0/src/ARCtrl/py/fable_modules/yamlicious/flow_to_block.py +994 -0
  497. arctrl-3.0.0/src/ARCtrl/py/fable_modules/yamlicious/library.py +10 -0
  498. arctrl-3.0.0/src/ARCtrl/py/fable_modules/yamlicious/persil.py +57 -0
  499. arctrl-3.0.0/src/ARCtrl/py/fable_modules/yamlicious/preprocessing.py +99 -0
  500. arctrl-3.0.0/src/ARCtrl/py/fable_modules/yamlicious/reader.py +739 -0
  501. arctrl-3.0.0/src/ARCtrl/py/fable_modules/yamlicious/regex.py +29 -0
  502. arctrl-3.0.0/src/ARCtrl/py/fable_modules/yamlicious/regex_active_patterns.py +265 -0
  503. arctrl-3.0.0/src/ARCtrl/py/fable_modules/yamlicious/writer.py +175 -0
  504. arctrl-3.0.0/src/ARCtrl/py/fable_modules/yamlicious/yamlicious_types.py +128 -0
  505. arctrl-3.0.0/src/ARCtrl/py/json.py +389 -0
  506. arctrl-3.0.0/src/ARCtrl/py/license.py +169 -0
  507. arctrl-3.0.0/src/ARCtrl/py/rocrate_io.py +242 -0
  508. arctrl-3.0.0/src/ARCtrl/py/template_web.py +23 -0
  509. arctrl-3.0.0/src/ARCtrl/py/xlsx.py +212 -0
  510. arctrl-3.0.0/src/ARCtrl/py/yaml.py +79 -0
  511. arctrl-3.0.0/src/ARCtrl/rocrate.py +21 -0
arctrl-3.0.0/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2021 DataPLANT
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
arctrl-3.0.0/PKG-INFO ADDED
@@ -0,0 +1,157 @@
1
+ Metadata-Version: 2.4
2
+ Name: arctrl
3
+ Version: 3.0.0
4
+ Summary: Library for management of Annotated Research Contexts (ARCs) using an in-memory representation and runtimer agnostic contract systems.
5
+ License-File: LICENSE
6
+ Keywords: arc,annotated research context,isa,research data,multi platform
7
+ Author: Heinrich Lukas Weil
8
+ Author-email: weil@rptu.de
9
+ Maintainer: Florian Wetzels
10
+ Requires-Python: >=3.11
11
+ Classifier: Programming Language :: Python :: 3
12
+ Classifier: Programming Language :: Python :: 3.11
13
+ Classifier: Programming Language :: Python :: 3.12
14
+ Classifier: Programming Language :: Python :: 3.13
15
+ Classifier: Programming Language :: Python :: 3.14
16
+ Requires-Dist: openpyxl (>=3.1.5,<4)
17
+ Requires-Dist: requests (>=2.28.1,<3.0.0)
18
+ Project-URL: Repository, https://github.com/nfdi4plants/ARCtrl
19
+ Description-Content-Type: text/markdown
20
+
21
+
22
+ ![logo](logos/ARCtrl_horizontal.png)
23
+
24
+ # ARCtrl
25
+
26
+ [![DOI](https://img.shields.io/badge/Cite%20Us-10.5281%2Fzenodo.15194394-008273?logo=zenodo&logoColor=C70039)](https://doi.org/10.5281/zenodo.15194394)
27
+
28
+ > **ARCtrl** the easy way to read, manipulate and write ARCs in __.NET__, __JavaScript__ and __Python__! ❤️
29
+
30
+ | Version | Downloads |
31
+ | :--------|-----------:|
32
+ |<a href="https://www.nuget.org/packages/ARCtrl/"><img alt="Nuget" src="https://img.shields.io/nuget/v/ARCtrl?logo=nuget&color=%234fb3d9"></a>|<a href="https://www.nuget.org/packages/ARCtrl/"><img alt="Nuget" src="https://img.shields.io/nuget/dt/ARCtrl?color=%234FB3D9"></a>|
33
+ |<a href="https://www.npmjs.com/package/@nfdi4plants/arctrl"><img alt="NPM" src="https://img.shields.io/npm/v/%40nfdi4plants/arctrl?logo=npm&color=%234fb3d9"></a>|<a href="https://www.npmjs.com/package/@nfdi4plants/arctrl"><img alt="NPM" src="https://img.shields.io/npm/dt/%40nfdi4plants%2Farctrl?color=%234fb3d9"></a>|
34
+ |<a href="https://pypi.org/project/ARCtrl/"><img alt="PyPI" src="https://img.shields.io/pypi/v/arctrl?logo=pypi&color=%234fb3d9"></a>|<a href="https://pypi.org/project/ARCtrl/"><img alt="PyPI" src="https://img.shields.io/pepy/dt/arctrl?color=%234fb3d9"></a>|
35
+
36
+ ## Install
37
+
38
+ #### .NET
39
+
40
+ ```fsharp
41
+ #r "nuget: ARCtrl"
42
+ ```
43
+
44
+ ```bash
45
+ <PackageReference Include="ARCtrl" Version="1.1.0" />
46
+ ```
47
+
48
+ #### JavaScript
49
+
50
+ ```bash
51
+ npm i @nfdi4plants/arctrl
52
+ ```
53
+
54
+ #### Python
55
+
56
+ ```bash
57
+ pip install arctrl
58
+ ```
59
+
60
+ ## Docs
61
+
62
+ Documentation can be found [here](https://nfdi4plants.github.io/nfdi4plants.knowledgebase/arctrl/)
63
+
64
+ ## Development
65
+
66
+ #### Requirements
67
+
68
+ - [nodejs and npm](https://nodejs.org/en/download)
69
+ - verify with `node --version` (Tested with v18.16.1)
70
+ - verify with `npm --version` (Tested with v9.2.0)
71
+ - [.NET SDK](https://dotnet.microsoft.com/en-us/download)
72
+ - verify with `dotnet --version` (Tested with 7.0.306)
73
+ - [Python](https://www.python.org/downloads/)
74
+ - verify with `py --version` (Tested with 3.12.2, known to work only for >=3.11)
75
+
76
+ #### Local Setup
77
+
78
+ ##### Windows
79
+
80
+ On windows you can use the `setup.cmd` to run the following steps automatically!
81
+
82
+ 1. Setup dotnet tools
83
+
84
+ `dotnet tool restore`
85
+
86
+
87
+ 2. Install NPM dependencies
88
+
89
+ `npm install`
90
+
91
+ 3. Setup python environment
92
+
93
+ `py -m venv .venv`
94
+
95
+ 4. Install [uv](https://docs.astral.sh/uv/) and dependencies
96
+
97
+ 1. `.\.venv\Scripts\python.exe -m pip install -U pip setuptools`
98
+ 2. `.\.venv\Scripts\python.exe -m pip install uv`
99
+ 3. `.\.venv\Scripts\python.exe -m uv pip install -r pyproject.toml --group dev`
100
+
101
+ Verify correct setup with `./build.cmd runtests` ✨
102
+
103
+ ##### Linux / macOS
104
+
105
+ On unix you can use the `setup.sh` to run the following steps automatically!
106
+
107
+ 1. Setup dotnet tools
108
+
109
+ `dotnet tool restore`
110
+
111
+
112
+ 2. Install NPM dependencies
113
+
114
+ `npm install`
115
+
116
+ 3. Setup python environment
117
+
118
+ `python -m venv .venv`
119
+
120
+ 4. Install [uv](https://docs.astral.sh/uv/) and dependencies
121
+
122
+ 1. `.venv/bin/python -m pip install -U pip setuptools`
123
+ 2. `.venv/bin/python -m pip install uv`
124
+ 3. `.venv/bin/python -m uv pip install -r pyproject.toml --group dev`
125
+
126
+ Verify correct setup with `bash build.sh runtests` ✨
127
+
128
+ ## Branding
129
+
130
+ Feel free to reference `ARCtrl` on slides or elsewhere using our logos:
131
+
132
+ |Square | Horizontal | Vertical |
133
+ | - | - | - |
134
+ | ![square](logos/ARCtrl_square.png) | ![horizontal](logos/ARCtrl_horizontal.png) | ![vertical](logos/ARCtrl_vertical.png) |
135
+
136
+ ## Performance
137
+
138
+ Measured on 13th Gen Intel(R) Core(TM) i7-13800H
139
+
140
+ | Name | Description | FSharp Time (ms) | JavaScript Time (ms) | Python Time (ms) |
141
+ | --- | --- | --- | --- | --- |
142
+ | Table_GetHashCode | From a table with 1 column and 10000 rows, retrieve the Hash Code | 0 ± 0 | 0 ± 1 | 91 ± 12 |
143
+ | Table_AddDistinctRows | Add 10000 distinct rows to a table with 4 columns. | 13 ± 2 | 14 ± 4 | 119 ± 12 |
144
+ | Table_AddIdenticalRows | Add 10000 identical rows to a table with 4 columns. | 6 ± 2 | 6 ± 1 | 104 ± 6 |
145
+ | Table_AddColumnsWithDistinctValues | Add 4 columns with 10000 distinct values each. | 8 ± 3 | 10 ± 1 | 53 ± 1 |
146
+ | Table_AddColumnsWithIdenticalValues | Add 4 columns with 10000 identical values each. | 5 ± 1 | 4 ± 0 | 47 ± 1 |
147
+ | Table_fillMissingCells | For a table 6 columns and 20000 rows, where each row has one missing value, fill those values with default values. | 0 ± 0 | 2 ± 1 | 6 ± 4 |
148
+ | Table_ToJson | Serialize a table with 5 columns and 10000 rows to json, with 3 fixed and 2 variable columns. | 227 ± 64 | 68 ± 18 | 7851 ± 1411 |
149
+ | Table_ToCompressedJson | Serialize a table with 5 columns and 10000 rows to compressed json, with 3 fixed and 2 variable columns. | 147 ± 15 | 2878 ± 135 | 6303 ± 1798 |
150
+ | Assay_toJson | Parse an assay with one table with 10000 rows and 6 columns to json, with 3 fixed and 3 variable columns. | 330 ± 36 | 88 ± 9 | 12644 ± 550 |
151
+ | Assay_fromJson | Parse an assay with one table with 10000 rows and 6 columns from json, with 3 fixed and 3 variable columns. | 355 ± 66 | 61 ± 6 | 6499 ± 1068 |
152
+ | Assay_toISAJson | Parse an assay with one table with 10000 rows and 6 columns to json, with 3 fixed and 3 variable columns | 487 ± 36 | 959 ± 36 | 15618 ± 482 |
153
+ | Assay_fromISAJson | Parse an assay with one table with 10000 rows and 6 columns from json, with 3 fixed and 3 variable columns | 359 ± 29 | 706 ± 46 | 9587 ± 621 |
154
+ | Study_FromWorkbook | Parse a workbook with one study with 10000 rows and 6 columns to an ArcStudy | 29 ± 14 | 62 ± 5 | 818 ± 36 |
155
+ | Investigation_ToWorkbook_ManyStudies | Parse an investigation with 1500 studies to a workbook | 240 ± 31 | 284 ± 24 | 3657 ± 199 |
156
+ | Investigation_FromWorkbook_ManyStudies | Parse a workbook with 1500 studies to an ArcInvestigation | 127 ± 20 | 498 ± 21 | 9469 ± 412 |
157
+ | ARC_ToROCrate | Parse an ARC with one assay with 10000 rows and 6 columns to a RO-Crate metadata file. | 1431 ± 99 | 3526 ± 264 | 61224 ± 728 |
arctrl-3.0.0/README.md ADDED
@@ -0,0 +1,137 @@
1
+
2
+ ![logo](logos/ARCtrl_horizontal.png)
3
+
4
+ # ARCtrl
5
+
6
+ [![DOI](https://img.shields.io/badge/Cite%20Us-10.5281%2Fzenodo.15194394-008273?logo=zenodo&logoColor=C70039)](https://doi.org/10.5281/zenodo.15194394)
7
+
8
+ > **ARCtrl** the easy way to read, manipulate and write ARCs in __.NET__, __JavaScript__ and __Python__! ❤️
9
+
10
+ | Version | Downloads |
11
+ | :--------|-----------:|
12
+ |<a href="https://www.nuget.org/packages/ARCtrl/"><img alt="Nuget" src="https://img.shields.io/nuget/v/ARCtrl?logo=nuget&color=%234fb3d9"></a>|<a href="https://www.nuget.org/packages/ARCtrl/"><img alt="Nuget" src="https://img.shields.io/nuget/dt/ARCtrl?color=%234FB3D9"></a>|
13
+ |<a href="https://www.npmjs.com/package/@nfdi4plants/arctrl"><img alt="NPM" src="https://img.shields.io/npm/v/%40nfdi4plants/arctrl?logo=npm&color=%234fb3d9"></a>|<a href="https://www.npmjs.com/package/@nfdi4plants/arctrl"><img alt="NPM" src="https://img.shields.io/npm/dt/%40nfdi4plants%2Farctrl?color=%234fb3d9"></a>|
14
+ |<a href="https://pypi.org/project/ARCtrl/"><img alt="PyPI" src="https://img.shields.io/pypi/v/arctrl?logo=pypi&color=%234fb3d9"></a>|<a href="https://pypi.org/project/ARCtrl/"><img alt="PyPI" src="https://img.shields.io/pepy/dt/arctrl?color=%234fb3d9"></a>|
15
+
16
+ ## Install
17
+
18
+ #### .NET
19
+
20
+ ```fsharp
21
+ #r "nuget: ARCtrl"
22
+ ```
23
+
24
+ ```bash
25
+ <PackageReference Include="ARCtrl" Version="1.1.0" />
26
+ ```
27
+
28
+ #### JavaScript
29
+
30
+ ```bash
31
+ npm i @nfdi4plants/arctrl
32
+ ```
33
+
34
+ #### Python
35
+
36
+ ```bash
37
+ pip install arctrl
38
+ ```
39
+
40
+ ## Docs
41
+
42
+ Documentation can be found [here](https://nfdi4plants.github.io/nfdi4plants.knowledgebase/arctrl/)
43
+
44
+ ## Development
45
+
46
+ #### Requirements
47
+
48
+ - [nodejs and npm](https://nodejs.org/en/download)
49
+ - verify with `node --version` (Tested with v18.16.1)
50
+ - verify with `npm --version` (Tested with v9.2.0)
51
+ - [.NET SDK](https://dotnet.microsoft.com/en-us/download)
52
+ - verify with `dotnet --version` (Tested with 7.0.306)
53
+ - [Python](https://www.python.org/downloads/)
54
+ - verify with `py --version` (Tested with 3.12.2, known to work only for >=3.11)
55
+
56
+ #### Local Setup
57
+
58
+ ##### Windows
59
+
60
+ On windows you can use the `setup.cmd` to run the following steps automatically!
61
+
62
+ 1. Setup dotnet tools
63
+
64
+ `dotnet tool restore`
65
+
66
+
67
+ 2. Install NPM dependencies
68
+
69
+ `npm install`
70
+
71
+ 3. Setup python environment
72
+
73
+ `py -m venv .venv`
74
+
75
+ 4. Install [uv](https://docs.astral.sh/uv/) and dependencies
76
+
77
+ 1. `.\.venv\Scripts\python.exe -m pip install -U pip setuptools`
78
+ 2. `.\.venv\Scripts\python.exe -m pip install uv`
79
+ 3. `.\.venv\Scripts\python.exe -m uv pip install -r pyproject.toml --group dev`
80
+
81
+ Verify correct setup with `./build.cmd runtests` ✨
82
+
83
+ ##### Linux / macOS
84
+
85
+ On unix you can use the `setup.sh` to run the following steps automatically!
86
+
87
+ 1. Setup dotnet tools
88
+
89
+ `dotnet tool restore`
90
+
91
+
92
+ 2. Install NPM dependencies
93
+
94
+ `npm install`
95
+
96
+ 3. Setup python environment
97
+
98
+ `python -m venv .venv`
99
+
100
+ 4. Install [uv](https://docs.astral.sh/uv/) and dependencies
101
+
102
+ 1. `.venv/bin/python -m pip install -U pip setuptools`
103
+ 2. `.venv/bin/python -m pip install uv`
104
+ 3. `.venv/bin/python -m uv pip install -r pyproject.toml --group dev`
105
+
106
+ Verify correct setup with `bash build.sh runtests` ✨
107
+
108
+ ## Branding
109
+
110
+ Feel free to reference `ARCtrl` on slides or elsewhere using our logos:
111
+
112
+ |Square | Horizontal | Vertical |
113
+ | - | - | - |
114
+ | ![square](logos/ARCtrl_square.png) | ![horizontal](logos/ARCtrl_horizontal.png) | ![vertical](logos/ARCtrl_vertical.png) |
115
+
116
+ ## Performance
117
+
118
+ Measured on 13th Gen Intel(R) Core(TM) i7-13800H
119
+
120
+ | Name | Description | FSharp Time (ms) | JavaScript Time (ms) | Python Time (ms) |
121
+ | --- | --- | --- | --- | --- |
122
+ | Table_GetHashCode | From a table with 1 column and 10000 rows, retrieve the Hash Code | 0 ± 0 | 0 ± 1 | 91 ± 12 |
123
+ | Table_AddDistinctRows | Add 10000 distinct rows to a table with 4 columns. | 13 ± 2 | 14 ± 4 | 119 ± 12 |
124
+ | Table_AddIdenticalRows | Add 10000 identical rows to a table with 4 columns. | 6 ± 2 | 6 ± 1 | 104 ± 6 |
125
+ | Table_AddColumnsWithDistinctValues | Add 4 columns with 10000 distinct values each. | 8 ± 3 | 10 ± 1 | 53 ± 1 |
126
+ | Table_AddColumnsWithIdenticalValues | Add 4 columns with 10000 identical values each. | 5 ± 1 | 4 ± 0 | 47 ± 1 |
127
+ | Table_fillMissingCells | For a table 6 columns and 20000 rows, where each row has one missing value, fill those values with default values. | 0 ± 0 | 2 ± 1 | 6 ± 4 |
128
+ | Table_ToJson | Serialize a table with 5 columns and 10000 rows to json, with 3 fixed and 2 variable columns. | 227 ± 64 | 68 ± 18 | 7851 ± 1411 |
129
+ | Table_ToCompressedJson | Serialize a table with 5 columns and 10000 rows to compressed json, with 3 fixed and 2 variable columns. | 147 ± 15 | 2878 ± 135 | 6303 ± 1798 |
130
+ | Assay_toJson | Parse an assay with one table with 10000 rows and 6 columns to json, with 3 fixed and 3 variable columns. | 330 ± 36 | 88 ± 9 | 12644 ± 550 |
131
+ | Assay_fromJson | Parse an assay with one table with 10000 rows and 6 columns from json, with 3 fixed and 3 variable columns. | 355 ± 66 | 61 ± 6 | 6499 ± 1068 |
132
+ | Assay_toISAJson | Parse an assay with one table with 10000 rows and 6 columns to json, with 3 fixed and 3 variable columns | 487 ± 36 | 959 ± 36 | 15618 ± 482 |
133
+ | Assay_fromISAJson | Parse an assay with one table with 10000 rows and 6 columns from json, with 3 fixed and 3 variable columns | 359 ± 29 | 706 ± 46 | 9587 ± 621 |
134
+ | Study_FromWorkbook | Parse a workbook with one study with 10000 rows and 6 columns to an ArcStudy | 29 ± 14 | 62 ± 5 | 818 ± 36 |
135
+ | Investigation_ToWorkbook_ManyStudies | Parse an investigation with 1500 studies to a workbook | 240 ± 31 | 284 ± 24 | 3657 ± 199 |
136
+ | Investigation_FromWorkbook_ManyStudies | Parse a workbook with 1500 studies to an ArcInvestigation | 127 ± 20 | 498 ± 21 | 9469 ± 412 |
137
+ | ARC_ToROCrate | Parse an ARC with one assay with 10000 rows and 6 columns to a RO-Crate metadata file. | 1431 ± 99 | 3526 ± 264 | 61224 ± 728 |
@@ -0,0 +1,43 @@
1
+ [project]
2
+ name = "arctrl"
3
+ version = "3.0.0"
4
+ description = "Library for management of Annotated Research Contexts (ARCs) using an in-memory representation and runtimer agnostic contract systems."
5
+ authors = [
6
+ { name = "Heinrich Lukas Weil", email = "weil@rptu.de" },
7
+ { name = "Kevin Frey", email = "freymaurer@gmx.de" },
8
+ ]
9
+ requires-python = ">=3.11"
10
+ readme = "README.md"
11
+ maintainers = [{ name = "Florian Wetzels" }]
12
+ keywords = [
13
+ "arc",
14
+ "annotated research context",
15
+ "isa",
16
+ "research data",
17
+ "multi platform",
18
+ ]
19
+ dependencies = [
20
+ "requests>= 2.28.1, <3.0.0",
21
+ "openpyxl>=3.1.5,<4",
22
+ ]
23
+
24
+ [project.urls]
25
+ Repository = "https://github.com/nfdi4plants/ARCtrl"
26
+
27
+ [dependency-groups]
28
+ dev = [
29
+ "pytest>=8.1.1,<9",
30
+ "twine>=4.0.2"
31
+ ]
32
+
33
+ [tool.poetry]
34
+ include = [
35
+ "src/ARCtrl/py/**/*.py"
36
+ ]
37
+ packages = [
38
+ { include = "**/*.py", from = "src/ARCtrl/", to = "arctrl" }
39
+ ]
40
+
41
+ [build-system]
42
+ requires = ["poetry-core"]
43
+ build-backend = "poetry.core.masonry.api"
@@ -0,0 +1,23 @@
1
+ from __future__ import annotations
2
+ from collections.abc import Callable
3
+ from typing import Any
4
+ from .py.Contract.contract import Contract
5
+ from .py.Core.data_context import DataContext
6
+ from .py.Core.datamap import Datamap
7
+ from .py.Core.comment import Comment
8
+ from .py.Core.ontology_annotation import OntologyAnnotation
9
+ from .py.Core.person import Person
10
+ from .py.Core.publication import Publication
11
+ from .py.Core.Table.composite_header import IOType, CompositeHeader
12
+ from .py.Core.Table.composite_cell import CompositeCell
13
+ from .py.Core.Table.composite_column import CompositeColumn
14
+ from .py.Core.Table.arc_table import ArcTable
15
+ from .py.Core.Table.arc_tables import ArcTables
16
+ from .py.Core.arc_types import ArcAssay, ArcStudy, ArcRun, ArcWorkflow, ArcInvestigation
17
+ from .py.Core.template import Template
18
+ from .py.FileSystem.file_system import FileSystem
19
+ from .py.FileSystem.file_system_tree import FileSystemTree
20
+ from .py.json import JsonController
21
+ from .py.yaml import YamlController
22
+ from .py.xlsx import XlsxController
23
+ from .py.arc import ARC
@@ -0,0 +1,12 @@
1
+ from __future__ import annotations
2
+ from collections.abc import Callable
3
+ from typing import Any
4
+ from .py.CWL.cwlprocessing_unit import CWLProcessingUnit
5
+ from .py.CWL.cwltypes import CWLType, FileInstance, DirectoryInstance, DirentInstance, InputEnumSchema, InputRecordField, InputRecordSchema, InputArraySchema, SchemaDefRequirementType, SoftwarePackage
6
+ from .py.CWL.parameter_reference import CWLParameterReference
7
+ from .py.CWL.inputs import CWLInput, InputBinding
8
+ from .py.CWL.outputs import CWLOutput, OutputBinding
9
+ from .py.CWL.tool_description import CWLToolDescription
10
+ from .py.CWL.workflow_description import CWLWorkflowDescription
11
+ from .py.CWL.workflow_steps import WorkflowStep, StepInput, StepOutput
12
+ from .py.CWL.requirements import Requirement, DockerRequirement, EnvironmentDef, ResourceRequirementInstance
File without changes
@@ -0,0 +1,221 @@
1
+ from __future__ import annotations
2
+ from typing import Any
3
+ from ..fable_modules.fable_library.reflection import (TypeInfo, union_type)
4
+ from ..fable_modules.fable_library.seq import choose
5
+ from ..fable_modules.fable_library.types import (Array, Union)
6
+ from ..fable_modules.fable_library.util import IEnumerable_1
7
+ from .expression_tool_description import (CWLExpressionToolDescription_reflection, CWLExpressionToolDescription)
8
+ from .inputs import CWLInput
9
+ from .operation_description import (CWLOperationDescription_reflection, CWLOperationDescription)
10
+ from .outputs import CWLOutput
11
+ from .requirements import (Requirement, HintEntry, HintEntry_get_tryAsRequirement)
12
+ from .tool_description import (CWLToolDescription_reflection, CWLToolDescription)
13
+ from .workflow_description import (CWLWorkflowDescription_reflection, CWLWorkflowDescription)
14
+ from .workflow_steps import WorkflowStepRun
15
+
16
+ def _expr772() -> TypeInfo:
17
+ return union_type("ARCtrl.CWL.CWLProcessingUnit", [], CWLProcessingUnit, lambda: [[("Item", CWLToolDescription_reflection())], [("Item", CWLWorkflowDescription_reflection())], [("Item", CWLExpressionToolDescription_reflection())], [("Item", CWLOperationDescription_reflection())]])
18
+
19
+
20
+ class CWLProcessingUnit(Union):
21
+ def __init__(self, tag: int, *fields: Any) -> None:
22
+ super().__init__()
23
+ self.tag: int = tag or 0
24
+ self.fields: Array[Any] = list(fields)
25
+
26
+ @staticmethod
27
+ def cases() -> list[str]:
28
+ return ["CommandLineTool", "Workflow", "ExpressionTool", "Operation"]
29
+
30
+
31
+ CWLProcessingUnit_reflection = _expr772
32
+
33
+ def CWLProcessingUnit_getInputs_30922B92(processing_unit: CWLProcessingUnit) -> Array[CWLInput]:
34
+ if processing_unit.tag == 1:
35
+ return CWLWorkflowDescription.get_inputs(processing_unit.fields[0])
36
+
37
+ elif processing_unit.tag == 2:
38
+ return CWLExpressionToolDescription.get_inputs_or_empty(processing_unit.fields[0])
39
+
40
+ elif processing_unit.tag == 3:
41
+ return CWLOperationDescription.get_inputs(processing_unit.fields[0])
42
+
43
+ else:
44
+ return CWLToolDescription.get_inputs_or_empty(processing_unit.fields[0])
45
+
46
+
47
+
48
+ def CWLProcessingUnit_getOutputs_30922B92(processing_unit: CWLProcessingUnit) -> Array[CWLOutput]:
49
+ if processing_unit.tag == 1:
50
+ return CWLWorkflowDescription.get_outputs(processing_unit.fields[0])
51
+
52
+ elif processing_unit.tag == 2:
53
+ return CWLExpressionToolDescription.get_outputs(processing_unit.fields[0])
54
+
55
+ elif processing_unit.tag == 3:
56
+ return CWLOperationDescription.get_outputs(processing_unit.fields[0])
57
+
58
+ else:
59
+ return CWLToolDescription.get_outputs(processing_unit.fields[0])
60
+
61
+
62
+
63
+ def CWLProcessingUnit_getRequirements_30922B92(processing_unit: CWLProcessingUnit) -> Array[Requirement]:
64
+ if processing_unit.tag == 1:
65
+ return CWLWorkflowDescription.get_requirements_or_empty(processing_unit.fields[0])
66
+
67
+ elif processing_unit.tag == 2:
68
+ return CWLExpressionToolDescription.get_requirements_or_empty(processing_unit.fields[0])
69
+
70
+ elif processing_unit.tag == 3:
71
+ return CWLOperationDescription.get_requirements_or_empty(processing_unit.fields[0])
72
+
73
+ else:
74
+ return CWLToolDescription.get_requirements_or_empty(processing_unit.fields[0])
75
+
76
+
77
+
78
+ def CWLProcessingUnit_getHints_30922B92(processing_unit: CWLProcessingUnit) -> Array[HintEntry]:
79
+ if processing_unit.tag == 1:
80
+ return CWLWorkflowDescription.get_hints_or_empty(processing_unit.fields[0])
81
+
82
+ elif processing_unit.tag == 2:
83
+ return CWLExpressionToolDescription.get_hints_or_empty(processing_unit.fields[0])
84
+
85
+ elif processing_unit.tag == 3:
86
+ return CWLOperationDescription.get_hints_or_empty(processing_unit.fields[0])
87
+
88
+ else:
89
+ return CWLToolDescription.get_hints_or_empty(processing_unit.fields[0])
90
+
91
+
92
+
93
+ def CWLProcessingUnit_getIntent_30922B92(processing_unit: CWLProcessingUnit) -> Array[str]:
94
+ if processing_unit.tag == 1:
95
+ return CWLWorkflowDescription.get_intent_or_empty(processing_unit.fields[0])
96
+
97
+ elif processing_unit.tag == 2:
98
+ return CWLExpressionToolDescription.get_intent_or_empty(processing_unit.fields[0])
99
+
100
+ elif processing_unit.tag == 3:
101
+ return CWLOperationDescription.get_intent_or_empty(processing_unit.fields[0])
102
+
103
+ else:
104
+ return CWLToolDescription.get_intent_or_empty(processing_unit.fields[0])
105
+
106
+
107
+
108
+ def CWLProcessingUnit_getKnownHints_30922B92(processing_unit: CWLProcessingUnit) -> Array[Requirement]:
109
+ def _arrow773(__unit: None=None, processing_unit: Any=processing_unit) -> IEnumerable_1[Requirement]:
110
+ source: Array[HintEntry] = CWLProcessingUnit_getHints_30922B92(processing_unit)
111
+ return choose(HintEntry_get_tryAsRequirement(), source)
112
+
113
+ return list(_arrow773())
114
+
115
+
116
+ def WorkflowStepRunOps_fromTool(tool: CWLToolDescription) -> WorkflowStepRun:
117
+ return WorkflowStepRun(1, tool)
118
+
119
+
120
+ def WorkflowStepRunOps_fromWorkflow(workflow: CWLWorkflowDescription) -> WorkflowStepRun:
121
+ return WorkflowStepRun(2, workflow)
122
+
123
+
124
+ def WorkflowStepRunOps_fromExpressionTool(expression_tool: CWLExpressionToolDescription) -> WorkflowStepRun:
125
+ return WorkflowStepRun(3, expression_tool)
126
+
127
+
128
+ def WorkflowStepRunOps_fromOperation(operation: CWLOperationDescription) -> WorkflowStepRun:
129
+ return WorkflowStepRun(4, operation)
130
+
131
+
132
+ def WorkflowStepRunOps_tryGetTool(run: WorkflowStepRun) -> CWLToolDescription | None:
133
+ (pattern_matching_result, tool) = (None, None)
134
+ if run.tag == 1:
135
+ if isinstance(run.fields[0], CWLToolDescription):
136
+ pattern_matching_result = 0
137
+ tool = run.fields[0]
138
+
139
+ else:
140
+ pattern_matching_result = 1
141
+
142
+
143
+ else:
144
+ pattern_matching_result = 1
145
+
146
+ if pattern_matching_result == 0:
147
+ return tool
148
+
149
+ elif pattern_matching_result == 1:
150
+ return None
151
+
152
+
153
+
154
+ def WorkflowStepRunOps_tryGetWorkflow(run: WorkflowStepRun) -> CWLWorkflowDescription | None:
155
+ (pattern_matching_result, workflow) = (None, None)
156
+ if run.tag == 2:
157
+ if isinstance(run.fields[0], CWLWorkflowDescription):
158
+ pattern_matching_result = 0
159
+ workflow = run.fields[0]
160
+
161
+ else:
162
+ pattern_matching_result = 1
163
+
164
+
165
+ else:
166
+ pattern_matching_result = 1
167
+
168
+ if pattern_matching_result == 0:
169
+ return workflow
170
+
171
+ elif pattern_matching_result == 1:
172
+ return None
173
+
174
+
175
+
176
+ def WorkflowStepRunOps_tryGetExpressionTool(run: WorkflowStepRun) -> CWLExpressionToolDescription | None:
177
+ (pattern_matching_result, expression_tool) = (None, None)
178
+ if run.tag == 3:
179
+ if isinstance(run.fields[0], CWLExpressionToolDescription):
180
+ pattern_matching_result = 0
181
+ expression_tool = run.fields[0]
182
+
183
+ else:
184
+ pattern_matching_result = 1
185
+
186
+
187
+ else:
188
+ pattern_matching_result = 1
189
+
190
+ if pattern_matching_result == 0:
191
+ return expression_tool
192
+
193
+ elif pattern_matching_result == 1:
194
+ return None
195
+
196
+
197
+
198
+ def WorkflowStepRunOps_tryGetOperation(run: WorkflowStepRun) -> CWLOperationDescription | None:
199
+ (pattern_matching_result, operation) = (None, None)
200
+ if run.tag == 4:
201
+ if isinstance(run.fields[0], CWLOperationDescription):
202
+ pattern_matching_result = 0
203
+ operation = run.fields[0]
204
+
205
+ else:
206
+ pattern_matching_result = 1
207
+
208
+
209
+ else:
210
+ pattern_matching_result = 1
211
+
212
+ if pattern_matching_result == 0:
213
+ return operation
214
+
215
+ elif pattern_matching_result == 1:
216
+ return None
217
+
218
+
219
+
220
+ __all__ = ["CWLProcessingUnit_reflection", "CWLProcessingUnit_getInputs_30922B92", "CWLProcessingUnit_getOutputs_30922B92", "CWLProcessingUnit_getRequirements_30922B92", "CWLProcessingUnit_getHints_30922B92", "CWLProcessingUnit_getIntent_30922B92", "CWLProcessingUnit_getKnownHints_30922B92", "WorkflowStepRunOps_fromTool", "WorkflowStepRunOps_fromWorkflow", "WorkflowStepRunOps_fromExpressionTool", "WorkflowStepRunOps_fromOperation", "WorkflowStepRunOps_tryGetTool", "WorkflowStepRunOps_tryGetWorkflow", "WorkflowStepRunOps_tryGetExpressionTool", "WorkflowStepRunOps_tryGetOperation"]
221
+