fairgraph 0.13.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 (267) hide show
  1. fairgraph/__init__.py +61 -0
  2. fairgraph/base.py +104 -0
  3. fairgraph/caching.py +52 -0
  4. fairgraph/client.py +867 -0
  5. fairgraph/collection.py +104 -0
  6. fairgraph/embedded.py +122 -0
  7. fairgraph/errors.py +47 -0
  8. fairgraph/fields.py +11 -0
  9. fairgraph/kgobject.py +1087 -0
  10. fairgraph/kgproxy.py +178 -0
  11. fairgraph/kgquery.py +151 -0
  12. fairgraph/node.py +488 -0
  13. fairgraph/openminds/__init__.py +1 -0
  14. fairgraph/openminds/chemicals/__init__.py +40 -0
  15. fairgraph/openminds/chemicals/amount_of_chemical.py +23 -0
  16. fairgraph/openminds/chemicals/chemical_mixture.py +72 -0
  17. fairgraph/openminds/chemicals/chemical_substance.py +67 -0
  18. fairgraph/openminds/chemicals/product_source.py +57 -0
  19. fairgraph/openminds/computation/__init__.py +53 -0
  20. fairgraph/openminds/computation/data_analysis.py +104 -0
  21. fairgraph/openminds/computation/data_copy.py +104 -0
  22. fairgraph/openminds/computation/environment.py +66 -0
  23. fairgraph/openminds/computation/generic_computation.py +104 -0
  24. fairgraph/openminds/computation/hardware_system.py +53 -0
  25. fairgraph/openminds/computation/launch_configuration.py +68 -0
  26. fairgraph/openminds/computation/local_file.py +83 -0
  27. fairgraph/openminds/computation/model_validation.py +107 -0
  28. fairgraph/openminds/computation/optimization.py +104 -0
  29. fairgraph/openminds/computation/simulation.py +104 -0
  30. fairgraph/openminds/computation/software_agent.py +81 -0
  31. fairgraph/openminds/computation/validation_test.py +105 -0
  32. fairgraph/openminds/computation/validation_test_version.py +180 -0
  33. fairgraph/openminds/computation/visualization.py +104 -0
  34. fairgraph/openminds/computation/workflow_execution.py +44 -0
  35. fairgraph/openminds/computation/workflow_recipe.py +95 -0
  36. fairgraph/openminds/computation/workflow_recipe_version.py +185 -0
  37. fairgraph/openminds/controlled_terms/__init__.py +116 -0
  38. fairgraph/openminds/controlled_terms/action_status_type.py +97 -0
  39. fairgraph/openminds/controlled_terms/age_category.py +89 -0
  40. fairgraph/openminds/controlled_terms/analysis_technique.py +108 -0
  41. fairgraph/openminds/controlled_terms/anatomical_axes_orientation.py +89 -0
  42. fairgraph/openminds/controlled_terms/anatomical_identification_type.py +89 -0
  43. fairgraph/openminds/controlled_terms/anatomical_plane.py +89 -0
  44. fairgraph/openminds/controlled_terms/annotation_criteria_type.py +89 -0
  45. fairgraph/openminds/controlled_terms/annotation_type.py +89 -0
  46. fairgraph/openminds/controlled_terms/atlas_type.py +88 -0
  47. fairgraph/openminds/controlled_terms/auditory_stimulus_type.py +127 -0
  48. fairgraph/openminds/controlled_terms/biological_order.py +117 -0
  49. fairgraph/openminds/controlled_terms/biological_process.py +79 -0
  50. fairgraph/openminds/controlled_terms/biological_sex.py +132 -0
  51. fairgraph/openminds/controlled_terms/breeding_type.py +127 -0
  52. fairgraph/openminds/controlled_terms/cell_culture_type.py +117 -0
  53. fairgraph/openminds/controlled_terms/cell_type.py +151 -0
  54. fairgraph/openminds/controlled_terms/chemical_mixture_type.py +89 -0
  55. fairgraph/openminds/controlled_terms/colormap.py +79 -0
  56. fairgraph/openminds/controlled_terms/contribution_type.py +79 -0
  57. fairgraph/openminds/controlled_terms/cranial_window_construction_type.py +89 -0
  58. fairgraph/openminds/controlled_terms/cranial_window_reinforcement_type.py +89 -0
  59. fairgraph/openminds/controlled_terms/criteria_quality_type.py +89 -0
  60. fairgraph/openminds/controlled_terms/data_type.py +89 -0
  61. fairgraph/openminds/controlled_terms/device_type.py +94 -0
  62. fairgraph/openminds/controlled_terms/difference_measure.py +89 -0
  63. fairgraph/openminds/controlled_terms/disease.py +142 -0
  64. fairgraph/openminds/controlled_terms/disease_model.py +142 -0
  65. fairgraph/openminds/controlled_terms/educational_level.py +79 -0
  66. fairgraph/openminds/controlled_terms/electrical_stimulus_type.py +137 -0
  67. fairgraph/openminds/controlled_terms/ethics_assessment.py +79 -0
  68. fairgraph/openminds/controlled_terms/experimental_approach.py +79 -0
  69. fairgraph/openminds/controlled_terms/file_bundle_grouping.py +99 -0
  70. fairgraph/openminds/controlled_terms/file_repository_type.py +89 -0
  71. fairgraph/openminds/controlled_terms/file_usage_role.py +89 -0
  72. fairgraph/openminds/controlled_terms/genetic_strain_type.py +127 -0
  73. fairgraph/openminds/controlled_terms/gustatory_stimulus_type.py +127 -0
  74. fairgraph/openminds/controlled_terms/handedness.py +127 -0
  75. fairgraph/openminds/controlled_terms/language.py +88 -0
  76. fairgraph/openminds/controlled_terms/laterality.py +94 -0
  77. fairgraph/openminds/controlled_terms/learning_resource_type.py +88 -0
  78. fairgraph/openminds/controlled_terms/measured_quantity.py +89 -0
  79. fairgraph/openminds/controlled_terms/measured_signal_type.py +79 -0
  80. fairgraph/openminds/controlled_terms/meta_data_model_type.py +88 -0
  81. fairgraph/openminds/controlled_terms/model_abstraction_level.py +89 -0
  82. fairgraph/openminds/controlled_terms/model_scope.py +89 -0
  83. fairgraph/openminds/controlled_terms/molecular_entity.py +142 -0
  84. fairgraph/openminds/controlled_terms/mri_pulse_sequence.py +98 -0
  85. fairgraph/openminds/controlled_terms/mri_weighting.py +98 -0
  86. fairgraph/openminds/controlled_terms/olfactory_stimulus_type.py +127 -0
  87. fairgraph/openminds/controlled_terms/operating_device.py +79 -0
  88. fairgraph/openminds/controlled_terms/operating_system.py +88 -0
  89. fairgraph/openminds/controlled_terms/optical_stimulus_type.py +127 -0
  90. fairgraph/openminds/controlled_terms/organ.py +161 -0
  91. fairgraph/openminds/controlled_terms/organism_substance.py +151 -0
  92. fairgraph/openminds/controlled_terms/organism_system.py +117 -0
  93. fairgraph/openminds/controlled_terms/patch_clamp_variation.py +89 -0
  94. fairgraph/openminds/controlled_terms/preparation_type.py +98 -0
  95. fairgraph/openminds/controlled_terms/product_accessibility.py +79 -0
  96. fairgraph/openminds/controlled_terms/programming_language.py +88 -0
  97. fairgraph/openminds/controlled_terms/qualitative_overlap.py +79 -0
  98. fairgraph/openminds/controlled_terms/semantic_data_type.py +79 -0
  99. fairgraph/openminds/controlled_terms/service.py +89 -0
  100. fairgraph/openminds/controlled_terms/setup_type.py +89 -0
  101. fairgraph/openminds/controlled_terms/software_application_category.py +79 -0
  102. fairgraph/openminds/controlled_terms/software_feature.py +79 -0
  103. fairgraph/openminds/controlled_terms/species.py +143 -0
  104. fairgraph/openminds/controlled_terms/stimulation_approach.py +98 -0
  105. fairgraph/openminds/controlled_terms/stimulation_technique.py +98 -0
  106. fairgraph/openminds/controlled_terms/subcellular_entity.py +143 -0
  107. fairgraph/openminds/controlled_terms/subject_attribute.py +89 -0
  108. fairgraph/openminds/controlled_terms/tactile_stimulus_type.py +127 -0
  109. fairgraph/openminds/controlled_terms/technique.py +108 -0
  110. fairgraph/openminds/controlled_terms/term_suggestion.py +121 -0
  111. fairgraph/openminds/controlled_terms/terminology.py +89 -0
  112. fairgraph/openminds/controlled_terms/tissue_sample_attribute.py +89 -0
  113. fairgraph/openminds/controlled_terms/tissue_sample_type.py +127 -0
  114. fairgraph/openminds/controlled_terms/type_of_uncertainty.py +89 -0
  115. fairgraph/openminds/controlled_terms/uberon_parcellation.py +153 -0
  116. fairgraph/openminds/controlled_terms/unit_of_measurement.py +108 -0
  117. fairgraph/openminds/controlled_terms/visual_stimulus_type.py +127 -0
  118. fairgraph/openminds/controlledterms.py +6 -0
  119. fairgraph/openminds/core/__init__.py +107 -0
  120. fairgraph/openminds/core/actors/__init__.py +7 -0
  121. fairgraph/openminds/core/actors/account_information.py +44 -0
  122. fairgraph/openminds/core/actors/affiliation.py +30 -0
  123. fairgraph/openminds/core/actors/consortium.py +175 -0
  124. fairgraph/openminds/core/actors/contact_information.py +43 -0
  125. fairgraph/openminds/core/actors/contribution.py +23 -0
  126. fairgraph/openminds/core/actors/organization.py +199 -0
  127. fairgraph/openminds/core/actors/person.py +236 -0
  128. fairgraph/openminds/core/data/__init__.py +13 -0
  129. fairgraph/openminds/core/data/content_type.py +107 -0
  130. fairgraph/openminds/core/data/content_type_pattern.py +53 -0
  131. fairgraph/openminds/core/data/copyright.py +23 -0
  132. fairgraph/openminds/core/data/file.py +275 -0
  133. fairgraph/openminds/core/data/file_archive.py +71 -0
  134. fairgraph/openminds/core/data/file_bundle.py +150 -0
  135. fairgraph/openminds/core/data/file_path_pattern.py +23 -0
  136. fairgraph/openminds/core/data/file_repository.py +99 -0
  137. fairgraph/openminds/core/data/file_repository_structure.py +51 -0
  138. fairgraph/openminds/core/data/hash.py +23 -0
  139. fairgraph/openminds/core/data/license.py +77 -0
  140. fairgraph/openminds/core/data/measurement.py +45 -0
  141. fairgraph/openminds/core/data/service_link.py +49 -0
  142. fairgraph/openminds/core/digital_identifier/__init__.py +11 -0
  143. fairgraph/openminds/core/digital_identifier/doi.py +98 -0
  144. fairgraph/openminds/core/digital_identifier/gridid.py +41 -0
  145. fairgraph/openminds/core/digital_identifier/handle.py +52 -0
  146. fairgraph/openminds/core/digital_identifier/identifiers_dot_org_id.py +41 -0
  147. fairgraph/openminds/core/digital_identifier/isbn.py +88 -0
  148. fairgraph/openminds/core/digital_identifier/issn.py +63 -0
  149. fairgraph/openminds/core/digital_identifier/orcid.py +41 -0
  150. fairgraph/openminds/core/digital_identifier/rorid.py +41 -0
  151. fairgraph/openminds/core/digital_identifier/rrid.py +55 -0
  152. fairgraph/openminds/core/digital_identifier/stock_number.py +23 -0
  153. fairgraph/openminds/core/digital_identifier/swhid.py +48 -0
  154. fairgraph/openminds/core/miscellaneous/__init__.py +7 -0
  155. fairgraph/openminds/core/miscellaneous/comment.py +47 -0
  156. fairgraph/openminds/core/miscellaneous/funding.py +70 -0
  157. fairgraph/openminds/core/miscellaneous/quantitative_value.py +43 -0
  158. fairgraph/openminds/core/miscellaneous/quantitative_value_array.py +49 -0
  159. fairgraph/openminds/core/miscellaneous/quantitative_value_range.py +43 -0
  160. fairgraph/openminds/core/miscellaneous/research_product_group.py +26 -0
  161. fairgraph/openminds/core/miscellaneous/web_resource.py +104 -0
  162. fairgraph/openminds/core/products/__init__.py +12 -0
  163. fairgraph/openminds/core/products/dataset.py +95 -0
  164. fairgraph/openminds/core/products/dataset_version.py +240 -0
  165. fairgraph/openminds/core/products/meta_data_model.py +95 -0
  166. fairgraph/openminds/core/products/meta_data_model_version.py +168 -0
  167. fairgraph/openminds/core/products/model.py +103 -0
  168. fairgraph/openminds/core/products/model_version.py +235 -0
  169. fairgraph/openminds/core/products/project.py +56 -0
  170. fairgraph/openminds/core/products/setup.py +69 -0
  171. fairgraph/openminds/core/products/software.py +95 -0
  172. fairgraph/openminds/core/products/software_version.py +226 -0
  173. fairgraph/openminds/core/products/web_service.py +103 -0
  174. fairgraph/openminds/core/products/web_service_version.py +182 -0
  175. fairgraph/openminds/core/research/__init__.py +17 -0
  176. fairgraph/openminds/core/research/behavioral_protocol.py +69 -0
  177. fairgraph/openminds/core/research/configuration.py +67 -0
  178. fairgraph/openminds/core/research/custom_property_set.py +27 -0
  179. fairgraph/openminds/core/research/numerical_property.py +23 -0
  180. fairgraph/openminds/core/research/property_value_list.py +71 -0
  181. fairgraph/openminds/core/research/protocol.py +67 -0
  182. fairgraph/openminds/core/research/protocol_execution.py +76 -0
  183. fairgraph/openminds/core/research/strain.py +90 -0
  184. fairgraph/openminds/core/research/string_property.py +23 -0
  185. fairgraph/openminds/core/research/subject.py +79 -0
  186. fairgraph/openminds/core/research/subject_group.py +91 -0
  187. fairgraph/openminds/core/research/subject_group_state.py +113 -0
  188. fairgraph/openminds/core/research/subject_state.py +138 -0
  189. fairgraph/openminds/core/research/tissue_sample.py +87 -0
  190. fairgraph/openminds/core/research/tissue_sample_collection.py +99 -0
  191. fairgraph/openminds/core/research/tissue_sample_collection_state.py +109 -0
  192. fairgraph/openminds/core/research/tissue_sample_state.py +127 -0
  193. fairgraph/openminds/ephys/__init__.py +39 -0
  194. fairgraph/openminds/ephys/activity/__init__.py +3 -0
  195. fairgraph/openminds/ephys/activity/cell_patching.py +73 -0
  196. fairgraph/openminds/ephys/activity/electrode_placement.py +67 -0
  197. fairgraph/openminds/ephys/activity/recording_activity.py +67 -0
  198. fairgraph/openminds/ephys/device/__init__.py +6 -0
  199. fairgraph/openminds/ephys/device/electrode.py +81 -0
  200. fairgraph/openminds/ephys/device/electrode_array.py +85 -0
  201. fairgraph/openminds/ephys/device/electrode_array_usage.py +105 -0
  202. fairgraph/openminds/ephys/device/electrode_usage.py +101 -0
  203. fairgraph/openminds/ephys/device/pipette.py +81 -0
  204. fairgraph/openminds/ephys/device/pipette_usage.py +123 -0
  205. fairgraph/openminds/ephys/entity/__init__.py +2 -0
  206. fairgraph/openminds/ephys/entity/channel.py +23 -0
  207. fairgraph/openminds/ephys/entity/recording.py +63 -0
  208. fairgraph/openminds/publications/__init__.py +47 -0
  209. fairgraph/openminds/publications/book.py +106 -0
  210. fairgraph/openminds/publications/chapter.py +100 -0
  211. fairgraph/openminds/publications/learning_resource.py +90 -0
  212. fairgraph/openminds/publications/live_paper.py +95 -0
  213. fairgraph/openminds/publications/live_paper_resource_item.py +58 -0
  214. fairgraph/openminds/publications/live_paper_section.py +57 -0
  215. fairgraph/openminds/publications/live_paper_version.py +177 -0
  216. fairgraph/openminds/publications/periodical.py +53 -0
  217. fairgraph/openminds/publications/publication_issue.py +44 -0
  218. fairgraph/openminds/publications/publication_volume.py +44 -0
  219. fairgraph/openminds/publications/scholarly_article.py +146 -0
  220. fairgraph/openminds/sands/__init__.py +57 -0
  221. fairgraph/openminds/sands/atlas/__init__.py +9 -0
  222. fairgraph/openminds/sands/atlas/atlas_annotation.py +52 -0
  223. fairgraph/openminds/sands/atlas/brain_atlas.py +113 -0
  224. fairgraph/openminds/sands/atlas/brain_atlas_version.py +213 -0
  225. fairgraph/openminds/sands/atlas/common_coordinate_space.py +121 -0
  226. fairgraph/openminds/sands/atlas/common_coordinate_space_version.py +243 -0
  227. fairgraph/openminds/sands/atlas/parcellation_entity.py +133 -0
  228. fairgraph/openminds/sands/atlas/parcellation_entity_version.py +162 -0
  229. fairgraph/openminds/sands/atlas/parcellation_terminology.py +38 -0
  230. fairgraph/openminds/sands/atlas/parcellation_terminology_version.py +38 -0
  231. fairgraph/openminds/sands/mathematical_shapes/__init__.py +3 -0
  232. fairgraph/openminds/sands/mathematical_shapes/circle.py +23 -0
  233. fairgraph/openminds/sands/mathematical_shapes/ellipse.py +27 -0
  234. fairgraph/openminds/sands/mathematical_shapes/rectangle.py +23 -0
  235. fairgraph/openminds/sands/miscellaneous/__init__.py +6 -0
  236. fairgraph/openminds/sands/miscellaneous/anatomical_target_position.py +40 -0
  237. fairgraph/openminds/sands/miscellaneous/coordinate_point.py +23 -0
  238. fairgraph/openminds/sands/miscellaneous/qualitative_relation_assessment.py +34 -0
  239. fairgraph/openminds/sands/miscellaneous/quantitative_relation_assessment.py +38 -0
  240. fairgraph/openminds/sands/miscellaneous/single_color.py +24 -0
  241. fairgraph/openminds/sands/miscellaneous/viewer_specification.py +40 -0
  242. fairgraph/openminds/sands/non_atlas/__init__.py +3 -0
  243. fairgraph/openminds/sands/non_atlas/custom_anatomical_entity.py +110 -0
  244. fairgraph/openminds/sands/non_atlas/custom_annotation.py +54 -0
  245. fairgraph/openminds/sands/non_atlas/custom_coordinate_space.py +67 -0
  246. fairgraph/openminds/specimen_prep/__init__.py +38 -0
  247. fairgraph/openminds/specimen_prep/activity/__init__.py +3 -0
  248. fairgraph/openminds/specimen_prep/activity/cranial_window_preparation.py +69 -0
  249. fairgraph/openminds/specimen_prep/activity/tissue_culture_preparation.py +67 -0
  250. fairgraph/openminds/specimen_prep/activity/tissue_sample_slicing.py +69 -0
  251. fairgraph/openminds/specimen_prep/device/__init__.py +2 -0
  252. fairgraph/openminds/specimen_prep/device/slicing_device.py +73 -0
  253. fairgraph/openminds/specimen_prep/device/slicing_device_usage.py +117 -0
  254. fairgraph/openminds/specimenprep.py +4 -0
  255. fairgraph/openminds/stimulation/__init__.py +38 -0
  256. fairgraph/openminds/stimulation/activity/__init__.py +1 -0
  257. fairgraph/openminds/stimulation/activity/stimulation_activity.py +67 -0
  258. fairgraph/openminds/stimulation/stimulus/__init__.py +1 -0
  259. fairgraph/openminds/stimulation/stimulus/ephys_stimulus.py +63 -0
  260. fairgraph/queries.py +499 -0
  261. fairgraph/registry.py +123 -0
  262. fairgraph/utility.py +607 -0
  263. fairgraph-0.13.0.dist-info/METADATA +222 -0
  264. fairgraph-0.13.0.dist-info/RECORD +267 -0
  265. fairgraph-0.13.0.dist-info/WHEEL +5 -0
  266. fairgraph-0.13.0.dist-info/licenses/LICENSE.txt +177 -0
  267. fairgraph-0.13.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,213 @@
1
+ """
2
+ <description not available>
3
+ """
4
+
5
+ # this file was auto-generated
6
+
7
+ from openminds.properties import Property
8
+ from openminds.v4.sands import BrainAtlasVersion as OMBrainAtlasVersion
9
+ from fairgraph import KGObject
10
+
11
+ from urllib.request import urlretrieve
12
+ from pathlib import Path
13
+ from ....utility import accepted_terms_of_use
14
+ from datetime import date
15
+ from openminds import IRI
16
+
17
+
18
+ class BrainAtlasVersion(KGObject, OMBrainAtlasVersion):
19
+ """
20
+ <description not available>
21
+ """
22
+
23
+ type_ = "https://openminds.om-i.org/types/BrainAtlasVersion"
24
+ default_space = "atlas"
25
+ # forward properties are defined in the parent class (in openMINDS-Python)
26
+ reverse_properties = [
27
+ Property(
28
+ "comments",
29
+ "openminds.v4.core.Comment",
30
+ "about",
31
+ reverse="about",
32
+ multiple=True,
33
+ description="reverse of 'about'",
34
+ ),
35
+ Property(
36
+ "is_input_to",
37
+ [
38
+ "openminds.v4.computation.DataAnalysis",
39
+ "openminds.v4.core.DatasetVersion",
40
+ "openminds.v4.core.ProtocolExecution",
41
+ ],
42
+ ["input", "inputData"],
43
+ reverse=["input_data", "inputs"],
44
+ multiple=True,
45
+ description="reverse of input_data, inputs",
46
+ ),
47
+ Property(
48
+ "is_old_version_of",
49
+ "openminds.v4.sands.BrainAtlasVersion",
50
+ "isNewVersionOf",
51
+ reverse="is_new_version_of",
52
+ multiple=True,
53
+ description="reverse of 'is_new_version_of'",
54
+ ),
55
+ Property(
56
+ "is_part_of",
57
+ [
58
+ "openminds.v4.core.Project",
59
+ "openminds.v4.core.ResearchProductGroup",
60
+ "openminds.v4.core.SoftwareVersion",
61
+ ],
62
+ "hasPart",
63
+ reverse="has_parts",
64
+ multiple=True,
65
+ description="reverse of 'has_parts'",
66
+ ),
67
+ Property(
68
+ "is_version_of",
69
+ "openminds.v4.sands.BrainAtlas",
70
+ "hasVersion",
71
+ reverse="has_versions",
72
+ multiple=True,
73
+ description="reverse of 'has_versions'",
74
+ ),
75
+ Property(
76
+ "learning_resources",
77
+ "openminds.v4.publications.LearningResource",
78
+ "about",
79
+ reverse="about",
80
+ multiple=True,
81
+ description="reverse of 'about'",
82
+ ),
83
+ ]
84
+ aliases = {"name": "full_name", "alias": "short_name"}
85
+ existence_query_properties = ("short_name", "version_identifier")
86
+
87
+ def __init__(
88
+ self,
89
+ name=None,
90
+ alias=None,
91
+ abbreviation=None,
92
+ accessibility=None,
93
+ authors=None,
94
+ comments=None,
95
+ coordinate_space=None,
96
+ copyright=None,
97
+ custodians=None,
98
+ description=None,
99
+ digital_identifier=None,
100
+ full_documentation=None,
101
+ full_name=None,
102
+ funding=None,
103
+ has_terminology=None,
104
+ homepage=None,
105
+ how_to_cite=None,
106
+ is_alternative_version_of=None,
107
+ is_input_to=None,
108
+ is_new_version_of=None,
109
+ is_old_version_of=None,
110
+ is_part_of=None,
111
+ is_version_of=None,
112
+ keywords=None,
113
+ learning_resources=None,
114
+ license=None,
115
+ major_version_identifier=None,
116
+ ontology_identifier=None,
117
+ other_contributions=None,
118
+ related_publications=None,
119
+ release_date=None,
120
+ repository=None,
121
+ short_name=None,
122
+ support_channels=None,
123
+ type=None,
124
+ used_specimens=None,
125
+ version_identifier=None,
126
+ version_innovation=None,
127
+ id=None,
128
+ data=None,
129
+ space=None,
130
+ release_status=None,
131
+ ):
132
+ return KGObject.__init__(
133
+ self,
134
+ id=id,
135
+ space=space,
136
+ release_status=release_status,
137
+ data=data,
138
+ name=name,
139
+ alias=alias,
140
+ abbreviation=abbreviation,
141
+ accessibility=accessibility,
142
+ authors=authors,
143
+ comments=comments,
144
+ coordinate_space=coordinate_space,
145
+ copyright=copyright,
146
+ custodians=custodians,
147
+ description=description,
148
+ digital_identifier=digital_identifier,
149
+ full_documentation=full_documentation,
150
+ full_name=full_name,
151
+ funding=funding,
152
+ has_terminology=has_terminology,
153
+ homepage=homepage,
154
+ how_to_cite=how_to_cite,
155
+ is_alternative_version_of=is_alternative_version_of,
156
+ is_input_to=is_input_to,
157
+ is_new_version_of=is_new_version_of,
158
+ is_old_version_of=is_old_version_of,
159
+ is_part_of=is_part_of,
160
+ is_version_of=is_version_of,
161
+ keywords=keywords,
162
+ learning_resources=learning_resources,
163
+ license=license,
164
+ major_version_identifier=major_version_identifier,
165
+ ontology_identifier=ontology_identifier,
166
+ other_contributions=other_contributions,
167
+ related_publications=related_publications,
168
+ release_date=release_date,
169
+ repository=repository,
170
+ short_name=short_name,
171
+ support_channels=support_channels,
172
+ type=type,
173
+ used_specimens=used_specimens,
174
+ version_identifier=version_identifier,
175
+ version_innovation=version_innovation,
176
+ )
177
+
178
+ def download(self, local_path, client, accept_terms_of_use=False):
179
+ if accepted_terms_of_use(client, accept_terms_of_use=accept_terms_of_use):
180
+ repo = self.repository.resolve(client, release_status=self.release_status or None)
181
+ if repo.iri.value.startswith("https://object.cscs.ch/v1/AUTH") or repo.iri.value.startswith(
182
+ "https://data-proxy.ebrains.eu/api/v1/public"
183
+ ):
184
+ zip_archive_url = f"https://data.kg.ebrains.eu/zip?container={repo.iri.value}"
185
+ else:
186
+ raise NotImplementedError("Download not yet implemented for this repository type")
187
+ if local_path.endswith(".zip"):
188
+ local_filename = Path(local_path)
189
+ else:
190
+ local_filename = Path(local_path) / (zip_archive_url.split("/")[-1] + ".zip")
191
+ local_filename.parent.mkdir(parents=True, exist_ok=True)
192
+ local_filename, headers = urlretrieve(zip_archive_url, local_filename)
193
+ return local_filename, repo.iri.value
194
+
195
+ def _get_inherited_property(self, property_name, client, release_status="released"):
196
+ value = getattr(self, property_name)
197
+ if value:
198
+ return value
199
+ else:
200
+ parent = self.is_version_of.resolve(client, release_status=release_status)
201
+ return getattr(parent, property_name)
202
+
203
+ def get_full_name(self, client, release_status="released"):
204
+ return self._get_inherited_property("full_name", client, release_status)
205
+
206
+ def get_short_name(self, client, release_status="released"):
207
+ return self._get_inherited_property("short_name", client, release_status)
208
+
209
+ def get_description(self, client, release_status="released"):
210
+ return self._get_inherited_property("description", client, release_status)
211
+
212
+ def get_authors(self, client, release_status="released"):
213
+ return self._get_inherited_property("authors", client, release_status)
@@ -0,0 +1,121 @@
1
+ """
2
+ <description not available>
3
+ """
4
+
5
+ # this file was auto-generated
6
+
7
+ from openminds.properties import Property
8
+ from openminds.v4.sands import CommonCoordinateSpace as OMCommonCoordinateSpace
9
+ from fairgraph import KGObject
10
+
11
+
12
+ from openminds import IRI
13
+
14
+
15
+ class CommonCoordinateSpace(KGObject, OMCommonCoordinateSpace):
16
+ """
17
+ <description not available>
18
+ """
19
+
20
+ type_ = "https://openminds.om-i.org/types/CommonCoordinateSpace"
21
+ default_space = "atlas"
22
+ # forward properties are defined in the parent class (in openMINDS-Python)
23
+ reverse_properties = [
24
+ Property(
25
+ "comments",
26
+ "openminds.v4.core.Comment",
27
+ "about",
28
+ reverse="about",
29
+ multiple=True,
30
+ description="reverse of 'about'",
31
+ ),
32
+ Property(
33
+ "is_input_to",
34
+ "openminds.v4.core.DatasetVersion",
35
+ "inputData",
36
+ reverse="input_data",
37
+ multiple=True,
38
+ description="reverse of 'input_data'",
39
+ ),
40
+ Property(
41
+ "is_part_of",
42
+ ["openminds.v4.core.Project", "openminds.v4.core.ResearchProductGroup"],
43
+ "hasPart",
44
+ reverse="has_parts",
45
+ multiple=True,
46
+ description="reverse of 'has_parts'",
47
+ ),
48
+ Property(
49
+ "is_used_to_group",
50
+ "openminds.v4.core.FileBundle",
51
+ "groupedBy",
52
+ reverse="grouped_by",
53
+ multiple=True,
54
+ description="reverse of 'grouped_by'",
55
+ ),
56
+ Property(
57
+ "learning_resources",
58
+ "openminds.v4.publications.LearningResource",
59
+ "about",
60
+ reverse="about",
61
+ multiple=True,
62
+ description="reverse of 'about'",
63
+ ),
64
+ ]
65
+ aliases = {"name": "full_name", "versions": "has_versions", "alias": "short_name"}
66
+ existence_query_properties = ("short_name", "version_identifier")
67
+
68
+ def __init__(
69
+ self,
70
+ name=None,
71
+ alias=None,
72
+ abbreviation=None,
73
+ authors=None,
74
+ comments=None,
75
+ custodians=None,
76
+ description=None,
77
+ digital_identifier=None,
78
+ full_name=None,
79
+ has_versions=None,
80
+ homepage=None,
81
+ how_to_cite=None,
82
+ is_input_to=None,
83
+ is_part_of=None,
84
+ is_used_to_group=None,
85
+ learning_resources=None,
86
+ ontology_identifiers=None,
87
+ short_name=None,
88
+ used_species=None,
89
+ versions=None,
90
+ id=None,
91
+ data=None,
92
+ space=None,
93
+ release_status=None,
94
+ ):
95
+ return KGObject.__init__(
96
+ self,
97
+ id=id,
98
+ space=space,
99
+ release_status=release_status,
100
+ data=data,
101
+ name=name,
102
+ alias=alias,
103
+ abbreviation=abbreviation,
104
+ authors=authors,
105
+ comments=comments,
106
+ custodians=custodians,
107
+ description=description,
108
+ digital_identifier=digital_identifier,
109
+ full_name=full_name,
110
+ has_versions=has_versions,
111
+ homepage=homepage,
112
+ how_to_cite=how_to_cite,
113
+ is_input_to=is_input_to,
114
+ is_part_of=is_part_of,
115
+ is_used_to_group=is_used_to_group,
116
+ learning_resources=learning_resources,
117
+ ontology_identifiers=ontology_identifiers,
118
+ short_name=short_name,
119
+ used_species=used_species,
120
+ versions=versions,
121
+ )
@@ -0,0 +1,243 @@
1
+ """
2
+ <description not available>
3
+ """
4
+
5
+ # this file was auto-generated
6
+
7
+ from openminds.properties import Property
8
+ from openminds.v4.sands import CommonCoordinateSpaceVersion as OMCommonCoordinateSpaceVersion
9
+ from fairgraph import KGObject
10
+
11
+ from urllib.request import urlretrieve
12
+ from pathlib import Path
13
+ from ....utility import accepted_terms_of_use
14
+ from datetime import date
15
+ from openminds import IRI
16
+
17
+
18
+ class CommonCoordinateSpaceVersion(KGObject, OMCommonCoordinateSpaceVersion):
19
+ """
20
+ <description not available>
21
+ """
22
+
23
+ type_ = "https://openminds.om-i.org/types/CommonCoordinateSpaceVersion"
24
+ default_space = "atlas"
25
+ # forward properties are defined in the parent class (in openMINDS-Python)
26
+ reverse_properties = [
27
+ Property(
28
+ "comments",
29
+ "openminds.v4.core.Comment",
30
+ "about",
31
+ reverse="about",
32
+ multiple=True,
33
+ description="reverse of 'about'",
34
+ ),
35
+ Property(
36
+ "is_coordinate_space_of",
37
+ ["openminds.v4.sands.BrainAtlasVersion", "openminds.v4.sands.CustomAnnotation"],
38
+ "coordinateSpace",
39
+ reverse="coordinate_space",
40
+ multiple=True,
41
+ description="reverse of 'coordinate_space'",
42
+ ),
43
+ Property(
44
+ "is_input_to",
45
+ [
46
+ "openminds.v4.computation.DataAnalysis",
47
+ "openminds.v4.core.DatasetVersion",
48
+ "openminds.v4.core.ProtocolExecution",
49
+ ],
50
+ ["input", "inputData"],
51
+ reverse=["input_data", "inputs"],
52
+ multiple=True,
53
+ description="reverse of input_data, inputs",
54
+ ),
55
+ Property(
56
+ "is_old_version_of",
57
+ "openminds.v4.sands.CommonCoordinateSpaceVersion",
58
+ "isNewVersionOf",
59
+ reverse="is_new_version_of",
60
+ multiple=True,
61
+ description="reverse of 'is_new_version_of'",
62
+ ),
63
+ Property(
64
+ "is_part_of",
65
+ [
66
+ "openminds.v4.core.Project",
67
+ "openminds.v4.core.ResearchProductGroup",
68
+ "openminds.v4.core.SoftwareVersion",
69
+ ],
70
+ "hasPart",
71
+ reverse="has_parts",
72
+ multiple=True,
73
+ description="reverse of 'has_parts'",
74
+ ),
75
+ Property(
76
+ "is_used_to_group",
77
+ "openminds.v4.core.FileBundle",
78
+ "groupedBy",
79
+ reverse="grouped_by",
80
+ multiple=True,
81
+ description="reverse of 'grouped_by'",
82
+ ),
83
+ Property(
84
+ "is_version_of",
85
+ "openminds.v4.sands.CommonCoordinateSpace",
86
+ "hasVersion",
87
+ reverse="has_versions",
88
+ multiple=True,
89
+ description="reverse of 'has_versions'",
90
+ ),
91
+ Property(
92
+ "learning_resources",
93
+ "openminds.v4.publications.LearningResource",
94
+ "about",
95
+ reverse="about",
96
+ multiple=True,
97
+ description="reverse of 'about'",
98
+ ),
99
+ ]
100
+ aliases = {"name": "full_name", "alias": "short_name"}
101
+ existence_query_properties = (
102
+ "accessibility",
103
+ "anatomical_axes_orientation",
104
+ "axes_origins",
105
+ "full_documentation",
106
+ "native_unit",
107
+ "release_date",
108
+ "short_name",
109
+ "version_identifier",
110
+ "version_innovation",
111
+ )
112
+
113
+ def __init__(
114
+ self,
115
+ name=None,
116
+ alias=None,
117
+ abbreviation=None,
118
+ accessibility=None,
119
+ anatomical_axes_orientation=None,
120
+ authors=None,
121
+ axes_origins=None,
122
+ comments=None,
123
+ copyright=None,
124
+ custodians=None,
125
+ default_images=None,
126
+ description=None,
127
+ digital_identifier=None,
128
+ full_documentation=None,
129
+ full_name=None,
130
+ funding=None,
131
+ homepage=None,
132
+ how_to_cite=None,
133
+ is_alternative_version_of=None,
134
+ is_coordinate_space_of=None,
135
+ is_input_to=None,
136
+ is_new_version_of=None,
137
+ is_old_version_of=None,
138
+ is_part_of=None,
139
+ is_used_to_group=None,
140
+ is_version_of=None,
141
+ keywords=None,
142
+ learning_resources=None,
143
+ license=None,
144
+ native_unit=None,
145
+ ontology_identifiers=None,
146
+ other_contributions=None,
147
+ related_publications=None,
148
+ release_date=None,
149
+ repository=None,
150
+ short_name=None,
151
+ support_channels=None,
152
+ used_specimens=None,
153
+ version_identifier=None,
154
+ version_innovation=None,
155
+ id=None,
156
+ data=None,
157
+ space=None,
158
+ release_status=None,
159
+ ):
160
+ return KGObject.__init__(
161
+ self,
162
+ id=id,
163
+ space=space,
164
+ release_status=release_status,
165
+ data=data,
166
+ name=name,
167
+ alias=alias,
168
+ abbreviation=abbreviation,
169
+ accessibility=accessibility,
170
+ anatomical_axes_orientation=anatomical_axes_orientation,
171
+ authors=authors,
172
+ axes_origins=axes_origins,
173
+ comments=comments,
174
+ copyright=copyright,
175
+ custodians=custodians,
176
+ default_images=default_images,
177
+ description=description,
178
+ digital_identifier=digital_identifier,
179
+ full_documentation=full_documentation,
180
+ full_name=full_name,
181
+ funding=funding,
182
+ homepage=homepage,
183
+ how_to_cite=how_to_cite,
184
+ is_alternative_version_of=is_alternative_version_of,
185
+ is_coordinate_space_of=is_coordinate_space_of,
186
+ is_input_to=is_input_to,
187
+ is_new_version_of=is_new_version_of,
188
+ is_old_version_of=is_old_version_of,
189
+ is_part_of=is_part_of,
190
+ is_used_to_group=is_used_to_group,
191
+ is_version_of=is_version_of,
192
+ keywords=keywords,
193
+ learning_resources=learning_resources,
194
+ license=license,
195
+ native_unit=native_unit,
196
+ ontology_identifiers=ontology_identifiers,
197
+ other_contributions=other_contributions,
198
+ related_publications=related_publications,
199
+ release_date=release_date,
200
+ repository=repository,
201
+ short_name=short_name,
202
+ support_channels=support_channels,
203
+ used_specimens=used_specimens,
204
+ version_identifier=version_identifier,
205
+ version_innovation=version_innovation,
206
+ )
207
+
208
+ def download(self, local_path, client, accept_terms_of_use=False):
209
+ if accepted_terms_of_use(client, accept_terms_of_use=accept_terms_of_use):
210
+ repo = self.repository.resolve(client, release_status=self.release_status or None)
211
+ if repo.iri.value.startswith("https://object.cscs.ch/v1/AUTH") or repo.iri.value.startswith(
212
+ "https://data-proxy.ebrains.eu/api/v1/public"
213
+ ):
214
+ zip_archive_url = f"https://data.kg.ebrains.eu/zip?container={repo.iri.value}"
215
+ else:
216
+ raise NotImplementedError("Download not yet implemented for this repository type")
217
+ if local_path.endswith(".zip"):
218
+ local_filename = Path(local_path)
219
+ else:
220
+ local_filename = Path(local_path) / (zip_archive_url.split("/")[-1] + ".zip")
221
+ local_filename.parent.mkdir(parents=True, exist_ok=True)
222
+ local_filename, headers = urlretrieve(zip_archive_url, local_filename)
223
+ return local_filename, repo.iri.value
224
+
225
+ def _get_inherited_property(self, property_name, client, release_status="released"):
226
+ value = getattr(self, property_name)
227
+ if value:
228
+ return value
229
+ else:
230
+ parent = self.is_version_of.resolve(client, release_status=release_status)
231
+ return getattr(parent, property_name)
232
+
233
+ def get_full_name(self, client, release_status="released"):
234
+ return self._get_inherited_property("full_name", client, release_status)
235
+
236
+ def get_short_name(self, client, release_status="released"):
237
+ return self._get_inherited_property("short_name", client, release_status)
238
+
239
+ def get_description(self, client, release_status="released"):
240
+ return self._get_inherited_property("description", client, release_status)
241
+
242
+ def get_authors(self, client, release_status="released"):
243
+ return self._get_inherited_property("authors", client, release_status)