oarepo-runtime 1.10.3__py3-none-any.whl → 2.0.0.dev4__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 (171) hide show
  1. oarepo_runtime/__init__.py +24 -0
  2. oarepo_runtime/api.py +210 -0
  3. oarepo_runtime/cli/__init__.py +10 -21
  4. oarepo_runtime/cli/search.py +34 -0
  5. oarepo_runtime/config.py +98 -13
  6. oarepo_runtime/ext.py +64 -82
  7. oarepo_runtime/proxies.py +21 -5
  8. oarepo_runtime/records/__init__.py +11 -50
  9. oarepo_runtime/records/drafts.py +24 -18
  10. oarepo_runtime/records/mapping.py +84 -0
  11. oarepo_runtime/records/pid_providers.py +43 -7
  12. oarepo_runtime/records/systemfields/__init__.py +15 -33
  13. oarepo_runtime/records/systemfields/mapping.py +41 -24
  14. oarepo_runtime/records/systemfields/publication_status.py +61 -0
  15. oarepo_runtime/services/__init__.py +12 -0
  16. oarepo_runtime/services/config/__init__.py +15 -21
  17. oarepo_runtime/services/config/link_conditions.py +69 -75
  18. oarepo_runtime/services/config/permissions.py +62 -0
  19. oarepo_runtime/services/facets/__init__.py +12 -33
  20. oarepo_runtime/services/facets/params.py +45 -110
  21. oarepo_runtime/services/records/__init__.py +14 -1
  22. oarepo_runtime/services/records/links.py +21 -11
  23. oarepo_runtime/services/records/mapping.py +42 -0
  24. oarepo_runtime/services/results.py +98 -109
  25. oarepo_runtime/services/schema/__init__.py +12 -44
  26. oarepo_runtime/services/schema/i18n.py +47 -22
  27. oarepo_runtime/services/schema/i18n_ui.py +61 -24
  28. {oarepo_runtime-1.10.3.dist-info → oarepo_runtime-2.0.0.dev4.dist-info}/METADATA +10 -21
  29. oarepo_runtime-2.0.0.dev4.dist-info/RECORD +32 -0
  30. {oarepo_runtime-1.10.3.dist-info → oarepo_runtime-2.0.0.dev4.dist-info}/WHEEL +1 -2
  31. oarepo_runtime-2.0.0.dev4.dist-info/entry_points.txt +5 -0
  32. oarepo_runtime/cli/assets.py +0 -145
  33. oarepo_runtime/cli/base.py +0 -25
  34. oarepo_runtime/cli/cf.py +0 -15
  35. oarepo_runtime/cli/check.py +0 -167
  36. oarepo_runtime/cli/configuration.py +0 -51
  37. oarepo_runtime/cli/fixtures.py +0 -167
  38. oarepo_runtime/cli/index.py +0 -272
  39. oarepo_runtime/cli/permissions/__init__.py +0 -6
  40. oarepo_runtime/cli/permissions/base.py +0 -26
  41. oarepo_runtime/cli/permissions/evaluate.py +0 -63
  42. oarepo_runtime/cli/permissions/list.py +0 -239
  43. oarepo_runtime/cli/permissions/search.py +0 -121
  44. oarepo_runtime/cli/validate.py +0 -150
  45. oarepo_runtime/datastreams/__init__.py +0 -38
  46. oarepo_runtime/datastreams/asynchronous.py +0 -247
  47. oarepo_runtime/datastreams/catalogue.py +0 -150
  48. oarepo_runtime/datastreams/datastreams.py +0 -152
  49. oarepo_runtime/datastreams/errors.py +0 -54
  50. oarepo_runtime/datastreams/ext.py +0 -41
  51. oarepo_runtime/datastreams/fixtures.py +0 -265
  52. oarepo_runtime/datastreams/json.py +0 -4
  53. oarepo_runtime/datastreams/readers/__init__.py +0 -39
  54. oarepo_runtime/datastreams/readers/attachments.py +0 -51
  55. oarepo_runtime/datastreams/readers/excel.py +0 -123
  56. oarepo_runtime/datastreams/readers/json.py +0 -27
  57. oarepo_runtime/datastreams/readers/service.py +0 -54
  58. oarepo_runtime/datastreams/readers/yaml.py +0 -14
  59. oarepo_runtime/datastreams/semi_asynchronous.py +0 -91
  60. oarepo_runtime/datastreams/synchronous.py +0 -70
  61. oarepo_runtime/datastreams/transformers.py +0 -18
  62. oarepo_runtime/datastreams/types.py +0 -323
  63. oarepo_runtime/datastreams/utils.py +0 -131
  64. oarepo_runtime/datastreams/writers/__init__.py +0 -21
  65. oarepo_runtime/datastreams/writers/attachments_file.py +0 -92
  66. oarepo_runtime/datastreams/writers/attachments_service.py +0 -118
  67. oarepo_runtime/datastreams/writers/publish.py +0 -70
  68. oarepo_runtime/datastreams/writers/service.py +0 -175
  69. oarepo_runtime/datastreams/writers/utils.py +0 -30
  70. oarepo_runtime/datastreams/writers/validation_errors.py +0 -20
  71. oarepo_runtime/datastreams/writers/yaml.py +0 -56
  72. oarepo_runtime/ext_config.py +0 -67
  73. oarepo_runtime/i18n/__init__.py +0 -3
  74. oarepo_runtime/info/__init__.py +0 -0
  75. oarepo_runtime/info/check.py +0 -95
  76. oarepo_runtime/info/permissions/__init__.py +0 -0
  77. oarepo_runtime/info/permissions/debug.py +0 -191
  78. oarepo_runtime/info/views.py +0 -586
  79. oarepo_runtime/profile.py +0 -60
  80. oarepo_runtime/records/dumpers/__init__.py +0 -8
  81. oarepo_runtime/records/dumpers/edtf_interval.py +0 -38
  82. oarepo_runtime/records/dumpers/multilingual_dumper.py +0 -34
  83. oarepo_runtime/records/entity_resolvers/__init__.py +0 -13
  84. oarepo_runtime/records/entity_resolvers/proxies.py +0 -57
  85. oarepo_runtime/records/mappings/__init__.py +0 -0
  86. oarepo_runtime/records/mappings/rdm_parent_mapping.json +0 -483
  87. oarepo_runtime/records/owners/__init__.py +0 -3
  88. oarepo_runtime/records/owners/registry.py +0 -22
  89. oarepo_runtime/records/relations/__init__.py +0 -22
  90. oarepo_runtime/records/relations/base.py +0 -296
  91. oarepo_runtime/records/relations/internal.py +0 -46
  92. oarepo_runtime/records/relations/lookup.py +0 -28
  93. oarepo_runtime/records/relations/pid_relation.py +0 -102
  94. oarepo_runtime/records/systemfields/featured_file.py +0 -45
  95. oarepo_runtime/records/systemfields/has_draftcheck.py +0 -47
  96. oarepo_runtime/records/systemfields/icu.py +0 -371
  97. oarepo_runtime/records/systemfields/owner.py +0 -115
  98. oarepo_runtime/records/systemfields/record_status.py +0 -35
  99. oarepo_runtime/records/systemfields/selectors.py +0 -98
  100. oarepo_runtime/records/systemfields/synthetic.py +0 -130
  101. oarepo_runtime/resources/__init__.py +0 -4
  102. oarepo_runtime/resources/config.py +0 -12
  103. oarepo_runtime/resources/file_resource.py +0 -15
  104. oarepo_runtime/resources/json_serializer.py +0 -27
  105. oarepo_runtime/resources/localized_ui_json_serializer.py +0 -54
  106. oarepo_runtime/resources/resource.py +0 -53
  107. oarepo_runtime/resources/responses.py +0 -20
  108. oarepo_runtime/services/components.py +0 -429
  109. oarepo_runtime/services/config/draft_link.py +0 -23
  110. oarepo_runtime/services/config/permissions_presets.py +0 -174
  111. oarepo_runtime/services/config/service.py +0 -117
  112. oarepo_runtime/services/custom_fields/__init__.py +0 -80
  113. oarepo_runtime/services/custom_fields/mappings.py +0 -188
  114. oarepo_runtime/services/entity/__init__.py +0 -0
  115. oarepo_runtime/services/entity/config.py +0 -14
  116. oarepo_runtime/services/entity/schema.py +0 -9
  117. oarepo_runtime/services/entity/service.py +0 -48
  118. oarepo_runtime/services/expansions/__init__.py +0 -0
  119. oarepo_runtime/services/expansions/expandable_fields.py +0 -21
  120. oarepo_runtime/services/expansions/service.py +0 -4
  121. oarepo_runtime/services/facets/base.py +0 -12
  122. oarepo_runtime/services/facets/date.py +0 -72
  123. oarepo_runtime/services/facets/enum.py +0 -11
  124. oarepo_runtime/services/facets/facet_groups_names.py +0 -17
  125. oarepo_runtime/services/facets/max_facet.py +0 -13
  126. oarepo_runtime/services/facets/multilingual_facet.py +0 -33
  127. oarepo_runtime/services/facets/nested_facet.py +0 -32
  128. oarepo_runtime/services/facets/year_histogram.py +0 -200
  129. oarepo_runtime/services/files/__init__.py +0 -8
  130. oarepo_runtime/services/files/components.py +0 -62
  131. oarepo_runtime/services/files/service.py +0 -16
  132. oarepo_runtime/services/generators.py +0 -10
  133. oarepo_runtime/services/permissions/__init__.py +0 -3
  134. oarepo_runtime/services/permissions/generators.py +0 -103
  135. oarepo_runtime/services/relations/__init__.py +0 -0
  136. oarepo_runtime/services/relations/components.py +0 -15
  137. oarepo_runtime/services/relations/errors.py +0 -18
  138. oarepo_runtime/services/relations/mapping.py +0 -38
  139. oarepo_runtime/services/schema/cf.py +0 -13
  140. oarepo_runtime/services/schema/i18n_validation.py +0 -7
  141. oarepo_runtime/services/schema/marshmallow.py +0 -44
  142. oarepo_runtime/services/schema/marshmallow_to_json_schema.py +0 -72
  143. oarepo_runtime/services/schema/oneofschema.py +0 -192
  144. oarepo_runtime/services/schema/polymorphic.py +0 -21
  145. oarepo_runtime/services/schema/rdm.py +0 -146
  146. oarepo_runtime/services/schema/rdm_ui.py +0 -156
  147. oarepo_runtime/services/schema/ui.py +0 -251
  148. oarepo_runtime/services/schema/validation.py +0 -70
  149. oarepo_runtime/services/search.py +0 -282
  150. oarepo_runtime/services/service.py +0 -61
  151. oarepo_runtime/tasks.py +0 -6
  152. oarepo_runtime/translations/cs/LC_MESSAGES/messages.mo +0 -0
  153. oarepo_runtime/translations/cs/LC_MESSAGES/messages.po +0 -95
  154. oarepo_runtime/translations/default_translations.py +0 -6
  155. oarepo_runtime/translations/en/LC_MESSAGES/messages.mo +0 -0
  156. oarepo_runtime/translations/en/LC_MESSAGES/messages.po +0 -97
  157. oarepo_runtime/translations/messages.pot +0 -100
  158. oarepo_runtime/uow.py +0 -146
  159. oarepo_runtime/utils/__init__.py +0 -0
  160. oarepo_runtime/utils/functools.py +0 -37
  161. oarepo_runtime/utils/identity_utils.py +0 -35
  162. oarepo_runtime/utils/index.py +0 -11
  163. oarepo_runtime/utils/path.py +0 -97
  164. oarepo_runtime-1.10.3.dist-info/RECORD +0 -163
  165. oarepo_runtime-1.10.3.dist-info/entry_points.txt +0 -16
  166. oarepo_runtime-1.10.3.dist-info/top_level.txt +0 -2
  167. tests/marshmallow_to_json/__init__.py +0 -0
  168. tests/marshmallow_to_json/test_datacite_ui_schema.py +0 -1410
  169. tests/marshmallow_to_json/test_simple_schema.py +0 -52
  170. tests/pkg_data/__init__.py +0 -0
  171. {oarepo_runtime-1.10.3.dist-info → oarepo_runtime-2.0.0.dev4.dist-info}/licenses/LICENSE +0 -0
@@ -1,1410 +0,0 @@
1
- import marshmallow as ma
2
- from marshmallow import fields as ma_fields, Schema
3
- from marshmallow.validate import OneOf
4
- from oarepo_runtime.services.schema.marshmallow import DictOnlySchema
5
- from oarepo_runtime.services.schema.ui import LocalizedEDTFTime
6
-
7
- from oarepo_runtime.services.schema.marshmallow_to_json_schema import marshmallow_to_json_schema
8
-
9
- #TODO more testing on other schemas
10
-
11
- class NRDataCiteMetadataUISchema(Schema):
12
-
13
- alternateIdentifiers = ma_fields.List(
14
- ma_fields.Nested(lambda: AlternateIdentifierUISchema())
15
- )
16
-
17
- container = ma_fields.Nested(lambda: ContainerUISchema())
18
-
19
- contributors = ma_fields.List(ma_fields.Nested(lambda: ContributorUISchema()))
20
-
21
- creators = ma_fields.List(ma_fields.Nested(lambda: CreatorUISchema()))
22
-
23
- dates = ma_fields.List(ma_fields.Nested(lambda: DateUISchema()))
24
-
25
- descriptions = ma_fields.List(ma_fields.Nested(lambda: DescriptionUISchema()))
26
-
27
- doi = ma_fields.String()
28
-
29
- formats = ma_fields.List(ma_fields.String())
30
-
31
- fundingReferences = ma_fields.List(
32
- ma_fields.Nested(lambda: FundingReferenceUISchema())
33
- )
34
-
35
- geoLocations = ma_fields.List(ma_fields.Nested(lambda: GeoLocationUISchema()))
36
-
37
- language = ma_fields.String()
38
-
39
- publicationYear = ma_fields.String()
40
-
41
- publisher = ma_fields.Nested(lambda: PublisherUISchema())
42
-
43
- relatedIdentifiers = ma_fields.List(
44
- ma_fields.Nested(lambda: RelatedIdentifierUISchema())
45
- )
46
-
47
- relatedItems = ma_fields.List(ma_fields.Nested(lambda: RelatedItemUISchema()))
48
-
49
- resourceType = ma_fields.Nested(lambda: ResourceTypeUISchema())
50
-
51
- rightsList = ma_fields.List(ma_fields.Nested(lambda: RightsUISchema()))
52
-
53
- schemaVersion = ma_fields.String()
54
-
55
- sizes = ma_fields.List(ma_fields.String())
56
-
57
- subjects = ma_fields.List(ma_fields.Nested(lambda: SubjectUISchema()))
58
-
59
- titles = ma_fields.List(ma_fields.Nested(lambda: TitleUISchema()))
60
-
61
- url = ma_fields.String()
62
-
63
- version = ma_fields.String()
64
-
65
-
66
- class GeoLocationUISchema(DictOnlySchema):
67
- class Meta:
68
- unknown = ma.RAISE
69
-
70
- geoLocationBox = ma_fields.Nested(lambda: GeoLocationBoxUISchema())
71
-
72
- geoLocationPlace = ma_fields.String()
73
-
74
- geoLocationPoint = ma_fields.Nested(lambda: GeoLocationPointUISchema())
75
-
76
- geoLocationPolygons = ma_fields.List(
77
- ma_fields.Nested(lambda: GeoLocationPolygonUISchema())
78
- )
79
-
80
-
81
- class RelatedItemUISchema(DictOnlySchema):
82
- class Meta:
83
- unknown = ma.RAISE
84
-
85
- contributors = ma_fields.List(ma_fields.Nested(lambda: ContributorUISchema()))
86
-
87
- creators = ma_fields.List(ma_fields.Nested(lambda: CreatorUISchema()))
88
-
89
- edition = ma_fields.String()
90
-
91
- firstPage = ma_fields.String()
92
-
93
- issue = ma_fields.String()
94
-
95
- lastPage = ma_fields.String()
96
-
97
- number = ma_fields.String()
98
-
99
- numberType = ma_fields.String(
100
- validate=[OneOf(["Article", "Chapter", "Report", "Other"])]
101
- )
102
-
103
- publicationYear = ma_fields.String()
104
-
105
- publisher = ma_fields.String()
106
-
107
- relatedItemIdentifier = ma_fields.Nested(
108
- lambda: RelatedItemIdentifierUISchema(), required=True
109
- )
110
-
111
- relatedItemType = ma_fields.String(
112
- required=True,
113
- validate=[
114
- OneOf(
115
- [
116
- "Audiovisual",
117
- "Book",
118
- "BookChapter",
119
- "Collection",
120
- "ComputationalNotebook",
121
- "ConferencePaper",
122
- "ConferenceProceeding",
123
- "DataPaper",
124
- "Dataset",
125
- "Dissertation",
126
- "Event",
127
- "Image",
128
- "Instrument",
129
- "InteractiveResource",
130
- "Journal",
131
- "JournalArticle",
132
- "Model",
133
- "OutputManagementPlan",
134
- "PeerReview",
135
- "PhysicalObject",
136
- "Preprint",
137
- "Report",
138
- "Service",
139
- "Software",
140
- "Sound",
141
- "Standard",
142
- "StudyRegistration",
143
- "Text",
144
- "Workflow",
145
- "Other",
146
- ]
147
- )
148
- ],
149
- )
150
-
151
- relatedMetadataScheme = ma_fields.String()
152
-
153
- relationType = ma_fields.String(
154
- required=True,
155
- validate=[
156
- OneOf(
157
- [
158
- "IsCitedBy",
159
- "Cites",
160
- "IsCollectedBy",
161
- "Collects",
162
- "IsSupplementTo",
163
- "IsSupplementedBy",
164
- "IsContinuedBy",
165
- "Continues",
166
- "IsDescribedBy",
167
- "Describes",
168
- "HasMetadata",
169
- "IsMetadataFor",
170
- "HasVersion",
171
- "IsVersionOf",
172
- "IsNewVersionOf",
173
- "IsPartOf",
174
- "IsPreviousVersionOf",
175
- "IsPublishedIn",
176
- "HasPart",
177
- "IsReferencedBy",
178
- "References",
179
- "IsDocumentedBy",
180
- "Documents",
181
- "IsCompiledBy",
182
- "Compiles",
183
- "IsVariantFormOf",
184
- "IsOriginalFormOf",
185
- "IsIdenticalTo",
186
- "IsReviewedBy",
187
- "Reviews",
188
- "IsDerivedFrom",
189
- "IsSourceOf",
190
- "IsRequiredBy",
191
- "Requires",
192
- "IsObsoletedBy",
193
- "Obsoletes",
194
- ]
195
- )
196
- ],
197
- )
198
-
199
- resourceTypeGeneral = ma_fields.String(
200
- validate=[
201
- OneOf(
202
- [
203
- "Audiovisual",
204
- "Book",
205
- "BookChapter",
206
- "Collection",
207
- "ComputationalNotebook",
208
- "ConferencePaper",
209
- "ConferenceProceeding",
210
- "DataPaper",
211
- "Dataset",
212
- "Dissertation",
213
- "Event",
214
- "Image",
215
- "Instrument",
216
- "InteractiveResource",
217
- "Journal",
218
- "JournalArticle",
219
- "Model",
220
- "OutputManagementPlan",
221
- "PeerReview",
222
- "PhysicalObject",
223
- "Preprint",
224
- "Report",
225
- "Service",
226
- "Software",
227
- "Sound",
228
- "Standard",
229
- "StudyRegistration",
230
- "Text",
231
- "Workflow",
232
- "Other",
233
- ]
234
- )
235
- ]
236
- )
237
-
238
- schemeType = ma_fields.String()
239
-
240
- schemeURI = ma_fields.String()
241
-
242
- titles = ma_fields.List(
243
- ma_fields.Nested(lambda: RelatedItemTitleUISchema()), required=True
244
- )
245
-
246
- volume = ma_fields.String()
247
-
248
-
249
- class ContributorUISchema(DictOnlySchema):
250
- class Meta:
251
- unknown = ma.RAISE
252
-
253
- affiliation = ma_fields.List(ma_fields.Nested(lambda: AffiliationUISchema()))
254
-
255
- contributorType = ma_fields.String(
256
- required=True,
257
- validate=[
258
- OneOf(
259
- [
260
- "ContactPerson",
261
- "DataCollector",
262
- "DataCurator",
263
- "DataManager",
264
- "Distributor",
265
- "Editor",
266
- "HostingInstitution",
267
- "Producer",
268
- "ProjectLeader",
269
- "ProjectManager",
270
- "ProjectMember",
271
- "RegistrationAgency",
272
- "RegistrationAuthority",
273
- "RelatedPerson",
274
- "Researcher",
275
- "ResearchGroup",
276
- "RightsHolder",
277
- "Sponsor",
278
- "Supervisor",
279
- "WorkPackageLeader",
280
- "Other",
281
- ]
282
- )
283
- ],
284
- )
285
-
286
- familyName = ma_fields.String()
287
-
288
- givenName = ma_fields.String()
289
-
290
- lang = ma_fields.String()
291
-
292
- name = ma_fields.String(required=True)
293
-
294
- nameIdentifiers = ma_fields.List(ma_fields.Nested(lambda: NameIdentifierUISchema()))
295
-
296
- nameType = ma_fields.String(validate=[OneOf(["Organizational", "Personal"])])
297
-
298
-
299
- class CreatorUISchema(DictOnlySchema):
300
- class Meta:
301
- unknown = ma.RAISE
302
-
303
- affiliation = ma_fields.List(ma_fields.Nested(lambda: AffiliationUISchema()))
304
-
305
- familyName = ma_fields.String()
306
-
307
- givenName = ma_fields.String()
308
-
309
- lang = ma_fields.String()
310
-
311
- name = ma_fields.String(required=True)
312
-
313
- nameIdentifiers = ma_fields.List(ma_fields.Nested(lambda: NameIdentifierUISchema()))
314
-
315
- nameType = ma_fields.String(validate=[OneOf(["Organizational", "Personal"])])
316
-
317
-
318
- class GeoLocationPolygonUISchema(DictOnlySchema):
319
- class Meta:
320
- unknown = ma.RAISE
321
-
322
- inPolygonPoint = ma_fields.Nested(lambda: GeoLocationPointUISchema())
323
-
324
- polygonPoints = ma_fields.List(
325
- ma_fields.Nested(lambda: GeoLocationPointUISchema()), required=True
326
- )
327
-
328
-
329
- class AffiliationUISchema(DictOnlySchema):
330
- class Meta:
331
- unknown = ma.RAISE
332
-
333
- affiliationIdentifier = ma_fields.String()
334
-
335
- affiliationIdentifierScheme = ma_fields.String()
336
-
337
- name = ma_fields.String(required=True)
338
-
339
- schemeURI = ma_fields.String()
340
-
341
-
342
- class AlternateIdentifierUISchema(DictOnlySchema):
343
- class Meta:
344
- unknown = ma.RAISE
345
-
346
- alternateIdentifier = ma_fields.String(required=True)
347
-
348
- alternateIdentifierType = ma_fields.String(required=True)
349
-
350
-
351
- class ContainerUISchema(DictOnlySchema):
352
- class Meta:
353
- unknown = ma.RAISE
354
-
355
- firstPage = ma_fields.String()
356
-
357
- title = ma_fields.String()
358
-
359
- type = ma_fields.String()
360
-
361
-
362
- class DateUISchema(DictOnlySchema):
363
- class Meta:
364
- unknown = ma.RAISE
365
-
366
- date = LocalizedEDTFTime(required=True)
367
-
368
- dateInformation = ma_fields.String()
369
-
370
- dateType = ma_fields.String(
371
- required=True,
372
- validate=[
373
- OneOf(
374
- [
375
- "Accepted",
376
- "Available",
377
- "Copyrighted",
378
- "Collected",
379
- "Created",
380
- "Issued",
381
- "Submitted",
382
- "Updated",
383
- "Valid",
384
- "Withdrawn",
385
- "Other",
386
- ]
387
- )
388
- ],
389
- )
390
-
391
-
392
- class DescriptionUISchema(DictOnlySchema):
393
- class Meta:
394
- unknown = ma.RAISE
395
-
396
- description = ma_fields.String(required=True)
397
-
398
- descriptionType = ma_fields.String(
399
- required=True,
400
- validate=[
401
- OneOf(
402
- [
403
- "Abstract",
404
- "Methods",
405
- "SeriesInformation",
406
- "TableOfContents",
407
- "TechnicalInfo",
408
- "Other",
409
- ]
410
- )
411
- ],
412
- )
413
-
414
- lang = ma_fields.String()
415
-
416
-
417
- class FundingReferenceUISchema(DictOnlySchema):
418
- class Meta:
419
- unknown = ma.RAISE
420
-
421
- awardNumber = ma_fields.String()
422
-
423
- awardTitle = ma_fields.String()
424
-
425
- awardURI = ma_fields.String()
426
-
427
- funderIdentifier = ma_fields.String()
428
-
429
- funderIdentifierType = ma_fields.String(
430
- validate=[OneOf(["ISNI", "GRID", "Crossref Funder ID", "ROR", "Other"])]
431
- )
432
-
433
- funderName = ma_fields.String(required=True)
434
-
435
-
436
- class GeoLocationBoxUISchema(DictOnlySchema):
437
- class Meta:
438
- unknown = ma.RAISE
439
-
440
- eastBoundLongitude = ma_fields.Float(required=True)
441
-
442
- northBoundLatitude = ma_fields.Float(required=True)
443
-
444
- southBoundLatitude = ma_fields.Float(required=True)
445
-
446
- westBoundLongitude = ma_fields.Float(required=True)
447
-
448
-
449
- class GeoLocationPointUISchema(DictOnlySchema):
450
- class Meta:
451
- unknown = ma.RAISE
452
-
453
- pointLatitude = ma_fields.Float()
454
-
455
- pointLongitude = ma_fields.Float()
456
-
457
-
458
- class NameIdentifierUISchema(DictOnlySchema):
459
- class Meta:
460
- unknown = ma.RAISE
461
-
462
- nameIdentifier = ma_fields.String(required=True)
463
-
464
- nameIdentifierScheme = ma_fields.String(required=True)
465
-
466
- schemeURI = ma_fields.String()
467
-
468
-
469
- class PublisherUISchema(DictOnlySchema):
470
- class Meta:
471
- unknown = ma.RAISE
472
-
473
- lang = ma_fields.String()
474
-
475
- name = ma_fields.String(required=True)
476
-
477
- publisherIdentifier = ma_fields.String()
478
-
479
- publisherIdentifierScheme = ma_fields.String()
480
-
481
- schemeURI = ma_fields.String()
482
-
483
-
484
- class RelatedIdentifierUISchema(DictOnlySchema):
485
- class Meta:
486
- unknown = ma.RAISE
487
-
488
- relatedIdentifier = ma_fields.String()
489
-
490
- relatedIdentifierType = ma_fields.String(
491
- validate=[
492
- OneOf(
493
- [
494
- "ARK",
495
- "arXiv",
496
- "bibcode",
497
- "DOI",
498
- "EAN13",
499
- "EISSN",
500
- "Handle",
501
- "IGSN",
502
- "ISBN",
503
- "ISSN",
504
- "ISTC",
505
- "LISSN",
506
- "LSID",
507
- "PMID",
508
- "PURL",
509
- "UPC",
510
- "URL",
511
- "URN",
512
- "w3id",
513
- ]
514
- )
515
- ]
516
- )
517
-
518
- relatedMetadataScheme = ma_fields.String()
519
-
520
- relationType = ma_fields.String(
521
- required=True,
522
- validate=[
523
- OneOf(
524
- [
525
- "IsCitedBy",
526
- "Cites",
527
- "IsCollectedBy",
528
- "Collects",
529
- "IsSupplementTo",
530
- "IsSupplementedBy",
531
- "IsContinuedBy",
532
- "Continues",
533
- "IsDescribedBy",
534
- "Describes",
535
- "HasMetadata",
536
- "IsMetadataFor",
537
- "HasVersion",
538
- "IsVersionOf",
539
- "IsNewVersionOf",
540
- "IsPartOf",
541
- "IsPreviousVersionOf",
542
- "IsPublishedIn",
543
- "HasPart",
544
- "IsReferencedBy",
545
- "References",
546
- "IsDocumentedBy",
547
- "Documents",
548
- "IsCompiledBy",
549
- "Compiles",
550
- "IsVariantFormOf",
551
- "IsOriginalFormOf",
552
- "IsIdenticalTo",
553
- "IsReviewedBy",
554
- "Reviews",
555
- "IsDerivedFrom",
556
- "IsSourceOf",
557
- "IsRequiredBy",
558
- "Requires",
559
- "IsObsoletedBy",
560
- "Obsoletes",
561
- ]
562
- )
563
- ],
564
- )
565
-
566
- resourceTypeGeneral = ma_fields.String(
567
- validate=[
568
- OneOf(
569
- [
570
- "Audiovisual",
571
- "Book",
572
- "BookChapter",
573
- "Collection",
574
- "ComputationalNotebook",
575
- "ConferencePaper",
576
- "ConferenceProceeding",
577
- "DataPaper",
578
- "Dataset",
579
- "Dissertation",
580
- "Event",
581
- "Image",
582
- "Instrument",
583
- "InteractiveResource",
584
- "Journal",
585
- "JournalArticle",
586
- "Model",
587
- "OutputManagementPlan",
588
- "PeerReview",
589
- "PhysicalObject",
590
- "Preprint",
591
- "Report",
592
- "Service",
593
- "Software",
594
- "Sound",
595
- "Standard",
596
- "StudyRegistration",
597
- "Text",
598
- "Workflow",
599
- "Other",
600
- ]
601
- )
602
- ]
603
- )
604
-
605
- schemeType = ma_fields.String()
606
-
607
- schemeURI = ma_fields.String()
608
-
609
-
610
- class RelatedItemIdentifierUISchema(DictOnlySchema):
611
- class Meta:
612
- unknown = ma.RAISE
613
-
614
- relatedItemIdentifier = ma_fields.String(required=True)
615
-
616
- relatedItemIdentifierType = ma_fields.String(
617
- required=True,
618
- validate=[
619
- OneOf(
620
- [
621
- "ARK",
622
- "arXiv",
623
- "bibcode",
624
- "DOI",
625
- "EAN13",
626
- "EISSN",
627
- "Handle",
628
- "IGSN",
629
- "ISBN",
630
- "ISSN",
631
- "ISTC",
632
- "LISSN",
633
- "LSID",
634
- "PMID",
635
- "PURL",
636
- "UPC",
637
- "URL",
638
- "URN",
639
- "w3id",
640
- ]
641
- )
642
- ],
643
- )
644
-
645
-
646
- class RelatedItemTitleUISchema(DictOnlySchema):
647
- class Meta:
648
- unknown = ma.RAISE
649
-
650
- lang = ma_fields.String()
651
-
652
- title = ma_fields.String(required=True)
653
-
654
- titleType = ma_fields.String(
655
- validate=[OneOf(["AlternativeTitle", "Subtitle", "TranslatedTitle", "Other"])]
656
- )
657
-
658
-
659
- class ResourceTypeUISchema(DictOnlySchema):
660
- class Meta:
661
- unknown = ma.RAISE
662
-
663
- resourceType = ma_fields.String()
664
-
665
- resourceTypeGeneral = ma_fields.String(
666
- required=True,
667
- validate=[
668
- OneOf(
669
- [
670
- "Audiovisual",
671
- "Book",
672
- "BookChapter",
673
- "Collection",
674
- "ComputationalNotebook",
675
- "ConferencePaper",
676
- "ConferenceProceeding",
677
- "DataPaper",
678
- "Dataset",
679
- "Dissertation",
680
- "Event",
681
- "Image",
682
- "Instrument",
683
- "InteractiveResource",
684
- "Journal",
685
- "JournalArticle",
686
- "Model",
687
- "OutputManagementPlan",
688
- "PeerReview",
689
- "PhysicalObject",
690
- "Preprint",
691
- "Report",
692
- "Service",
693
- "Software",
694
- "Sound",
695
- "Standard",
696
- "StudyRegistration",
697
- "Text",
698
- "Workflow",
699
- "Other",
700
- ]
701
- )
702
- ],
703
- )
704
-
705
-
706
- class RightsUISchema(DictOnlySchema):
707
- class Meta:
708
- unknown = ma.RAISE
709
-
710
- lang = ma_fields.String()
711
-
712
- rights = ma_fields.String()
713
-
714
- rightsIdentifier = ma_fields.String()
715
-
716
- rightsIdentifierScheme = ma_fields.String()
717
-
718
- rightsURI = ma_fields.String()
719
-
720
- schemeURI = ma_fields.String()
721
-
722
-
723
- class SubjectUISchema(DictOnlySchema):
724
- class Meta:
725
- unknown = ma.RAISE
726
-
727
- classificationCode = ma_fields.String()
728
-
729
- lang = ma_fields.String()
730
-
731
- schemeURI = ma_fields.String()
732
-
733
- subject = ma_fields.String(required=True)
734
-
735
- subjectScheme = ma_fields.String()
736
-
737
- valueURI = ma_fields.String()
738
-
739
-
740
- class TitleUISchema(DictOnlySchema):
741
- class Meta:
742
- unknown = ma.RAISE
743
-
744
- lang = ma_fields.String()
745
-
746
- title = ma_fields.String(required=True)
747
-
748
- titleType = ma_fields.String(
749
- validate=[OneOf(["AlternativeTitle", "Subtitle", "TranslatedTitle", "Other"])]
750
- )
751
-
752
-
753
- def test_NRDataCiteMetadataUISchema():
754
- schema = NRDataCiteMetadataUISchema()
755
- converted = marshmallow_to_json_schema(schema)
756
-
757
- print(converted)
758
- assert converted == {
759
- "type": "object",
760
- "properties": {
761
- "alternateIdentifiers": {
762
- "type": "array",
763
- "items": {
764
- "type": "object",
765
- "properties": {
766
- "alternateIdentifier": {
767
- "type": "string"
768
- },
769
- "alternateIdentifierType": {
770
- "type": "string"
771
- }
772
- }
773
- }
774
- },
775
- "container": {
776
- "type": "object",
777
- "properties": {
778
- "firstPage": {
779
- "type": "string"
780
- },
781
- "title": {
782
- "type": "string"
783
- },
784
- "type": {
785
- "type": "string"
786
- }
787
- }
788
- },
789
- "contributors": {
790
- "type": "array",
791
- "items": {
792
- "type": "object",
793
- "properties": {
794
- "affiliation": {
795
- "type": "array",
796
- "items": {
797
- "type": "object",
798
- "properties": {
799
- "affiliationIdentifier": {
800
- "type": "string"
801
- },
802
- "affiliationIdentifierScheme": {
803
- "type": "string"
804
- },
805
- "name": {
806
- "type": "string"
807
- },
808
- "schemeURI": {
809
- "type": "string"
810
- }
811
- }
812
- }
813
- },
814
- "contributorType": {
815
- "type": "string"
816
- },
817
- "familyName": {
818
- "type": "string"
819
- },
820
- "givenName": {
821
- "type": "string"
822
- },
823
- "lang": {
824
- "type": "string"
825
- },
826
- "name": {
827
- "type": "string"
828
- },
829
- "nameIdentifiers": {
830
- "type": "array",
831
- "items": {
832
- "type": "object",
833
- "properties": {
834
- "nameIdentifier": {
835
- "type": "string"
836
- },
837
- "nameIdentifierScheme": {
838
- "type": "string"
839
- },
840
- "schemeURI": {
841
- "type": "string"
842
- }
843
- }
844
- }
845
- },
846
- "nameType": {
847
- "type": "string"
848
- }
849
- }
850
- }
851
- },
852
- "creators": {
853
- "type": "array",
854
- "items": {
855
- "type": "object",
856
- "properties": {
857
- "affiliation": {
858
- "type": "array",
859
- "items": {
860
- "type": "object",
861
- "properties": {
862
- "affiliationIdentifier": {
863
- "type": "string"
864
- },
865
- "affiliationIdentifierScheme": {
866
- "type": "string"
867
- },
868
- "name": {
869
- "type": "string"
870
- },
871
- "schemeURI": {
872
- "type": "string"
873
- }
874
- }
875
- }
876
- },
877
- "familyName": {
878
- "type": "string"
879
- },
880
- "givenName": {
881
- "type": "string"
882
- },
883
- "lang": {
884
- "type": "string"
885
- },
886
- "name": {
887
- "type": "string"
888
- },
889
- "nameIdentifiers": {
890
- "type": "array",
891
- "items": {
892
- "type": "object",
893
- "properties": {
894
- "nameIdentifier": {
895
- "type": "string"
896
- },
897
- "nameIdentifierScheme": {
898
- "type": "string"
899
- },
900
- "schemeURI": {
901
- "type": "string"
902
- }
903
- }
904
- }
905
- },
906
- "nameType": {
907
- "type": "string"
908
- }
909
- }
910
- }
911
- },
912
- "dates": {
913
- "type": "array",
914
- "items": {
915
- "type": "object",
916
- "properties": {
917
- "date": {
918
- "type": "string",
919
- "format": "date-time"
920
- },
921
- "dateInformation": {
922
- "type": "string"
923
- },
924
- "dateType": {
925
- "type": "string"
926
- }
927
- }
928
- }
929
- },
930
- "descriptions": {
931
- "type": "array",
932
- "items": {
933
- "type": "object",
934
- "properties": {
935
- "description": {
936
- "type": "string"
937
- },
938
- "descriptionType": {
939
- "type": "string"
940
- },
941
- "lang": {
942
- "type": "string"
943
- }
944
- }
945
- }
946
- },
947
- "doi": {
948
- "type": "string"
949
- },
950
- "formats": {
951
- "type": "array",
952
- "items": {
953
- "type": "string"
954
- }
955
- },
956
- "fundingReferences": {
957
- "type": "array",
958
- "items": {
959
- "type": "object",
960
- "properties": {
961
- "awardNumber": {
962
- "type": "string"
963
- },
964
- "awardTitle": {
965
- "type": "string"
966
- },
967
- "awardURI": {
968
- "type": "string"
969
- },
970
- "funderIdentifier": {
971
- "type": "string"
972
- },
973
- "funderIdentifierType": {
974
- "type": "string"
975
- },
976
- "funderName": {
977
- "type": "string"
978
- }
979
- }
980
- }
981
- },
982
- "geoLocations": {
983
- "type": "array",
984
- "items": {
985
- "type": "object",
986
- "properties": {
987
- "geoLocationBox": {
988
- "type": "object",
989
- "properties": {
990
- "eastBoundLongitude": {
991
- "type": "number"
992
- },
993
- "northBoundLatitude": {
994
- "type": "number"
995
- },
996
- "southBoundLatitude": {
997
- "type": "number"
998
- },
999
- "westBoundLongitude": {
1000
- "type": "number"
1001
- }
1002
- }
1003
- },
1004
- "geoLocationPlace": {
1005
- "type": "string"
1006
- },
1007
- "geoLocationPoint": {
1008
- "type": "object",
1009
- "properties": {
1010
- "pointLatitude": {
1011
- "type": "number"
1012
- },
1013
- "pointLongitude": {
1014
- "type": "number"
1015
- }
1016
- }
1017
- },
1018
- "geoLocationPolygons": {
1019
- "type": "array",
1020
- "items": {
1021
- "type": "object",
1022
- "properties": {
1023
- "inPolygonPoint": {
1024
- "type": "object",
1025
- "properties": {
1026
- "pointLatitude": {
1027
- "type": "number"
1028
- },
1029
- "pointLongitude": {
1030
- "type": "number"
1031
- }
1032
- }
1033
- },
1034
- "polygonPoints": {
1035
- "type": "array",
1036
- "items": {
1037
- "type": "object",
1038
- "properties": {
1039
- "pointLatitude": {
1040
- "type": "number"
1041
- },
1042
- "pointLongitude": {
1043
- "type": "number"
1044
- }
1045
- }
1046
- }
1047
- }
1048
- }
1049
- }
1050
- }
1051
- }
1052
- }
1053
- },
1054
- "language": {
1055
- "type": "string"
1056
- },
1057
- "publicationYear": {
1058
- "type": "string"
1059
- },
1060
- "publisher": {
1061
- "type": "object",
1062
- "properties": {
1063
- "lang": {
1064
- "type": "string"
1065
- },
1066
- "name": {
1067
- "type": "string"
1068
- },
1069
- "publisherIdentifier": {
1070
- "type": "string"
1071
- },
1072
- "publisherIdentifierScheme": {
1073
- "type": "string"
1074
- },
1075
- "schemeURI": {
1076
- "type": "string"
1077
- }
1078
- }
1079
- },
1080
- "relatedIdentifiers": {
1081
- "type": "array",
1082
- "items": {
1083
- "type": "object",
1084
- "properties": {
1085
- "relatedIdentifier": {
1086
- "type": "string"
1087
- },
1088
- "relatedIdentifierType": {
1089
- "type": "string"
1090
- },
1091
- "relatedMetadataScheme": {
1092
- "type": "string"
1093
- },
1094
- "relationType": {
1095
- "type": "string"
1096
- },
1097
- "resourceTypeGeneral": {
1098
- "type": "string"
1099
- },
1100
- "schemeType": {
1101
- "type": "string"
1102
- },
1103
- "schemeURI": {
1104
- "type": "string"
1105
- }
1106
- }
1107
- }
1108
- },
1109
- "relatedItems": {
1110
- "type": "array",
1111
- "items": {
1112
- "type": "object",
1113
- "properties": {
1114
- "contributors": {
1115
- "type": "array",
1116
- "items": {
1117
- "type": "object",
1118
- "properties": {
1119
- "affiliation": {
1120
- "type": "array",
1121
- "items": {
1122
- "type": "object",
1123
- "properties": {
1124
- "affiliationIdentifier": {
1125
- "type": "string"
1126
- },
1127
- "affiliationIdentifierScheme": {
1128
- "type": "string"
1129
- },
1130
- "name": {
1131
- "type": "string"
1132
- },
1133
- "schemeURI": {
1134
- "type": "string"
1135
- }
1136
- }
1137
- }
1138
- },
1139
- "contributorType": {
1140
- "type": "string"
1141
- },
1142
- "familyName": {
1143
- "type": "string"
1144
- },
1145
- "givenName": {
1146
- "type": "string"
1147
- },
1148
- "lang": {
1149
- "type": "string"
1150
- },
1151
- "name": {
1152
- "type": "string"
1153
- },
1154
- "nameIdentifiers": {
1155
- "type": "array",
1156
- "items": {
1157
- "type": "object",
1158
- "properties": {
1159
- "nameIdentifier": {
1160
- "type": "string"
1161
- },
1162
- "nameIdentifierScheme": {
1163
- "type": "string"
1164
- },
1165
- "schemeURI": {
1166
- "type": "string"
1167
- }
1168
- }
1169
- }
1170
- },
1171
- "nameType": {
1172
- "type": "string"
1173
- }
1174
- }
1175
- }
1176
- },
1177
- "creators": {
1178
- "type": "array",
1179
- "items": {
1180
- "type": "object",
1181
- "properties": {
1182
- "affiliation": {
1183
- "type": "array",
1184
- "items": {
1185
- "type": "object",
1186
- "properties": {
1187
- "affiliationIdentifier": {
1188
- "type": "string"
1189
- },
1190
- "affiliationIdentifierScheme": {
1191
- "type": "string"
1192
- },
1193
- "name": {
1194
- "type": "string"
1195
- },
1196
- "schemeURI": {
1197
- "type": "string"
1198
- }
1199
- }
1200
- }
1201
- },
1202
- "familyName": {
1203
- "type": "string"
1204
- },
1205
- "givenName": {
1206
- "type": "string"
1207
- },
1208
- "lang": {
1209
- "type": "string"
1210
- },
1211
- "name": {
1212
- "type": "string"
1213
- },
1214
- "nameIdentifiers": {
1215
- "type": "array",
1216
- "items": {
1217
- "type": "object",
1218
- "properties": {
1219
- "nameIdentifier": {
1220
- "type": "string"
1221
- },
1222
- "nameIdentifierScheme": {
1223
- "type": "string"
1224
- },
1225
- "schemeURI": {
1226
- "type": "string"
1227
- }
1228
- }
1229
- }
1230
- },
1231
- "nameType": {
1232
- "type": "string"
1233
- }
1234
- }
1235
- }
1236
- },
1237
- "edition": {
1238
- "type": "string"
1239
- },
1240
- "firstPage": {
1241
- "type": "string"
1242
- },
1243
- "issue": {
1244
- "type": "string"
1245
- },
1246
- "lastPage": {
1247
- "type": "string"
1248
- },
1249
- "number": {
1250
- "type": "string"
1251
- },
1252
- "numberType": {
1253
- "type": "string"
1254
- },
1255
- "publicationYear": {
1256
- "type": "string"
1257
- },
1258
- "publisher": {
1259
- "type": "string"
1260
- },
1261
- "relatedItemIdentifier": {
1262
- "type": "object",
1263
- "properties": {
1264
- "relatedItemIdentifier": {
1265
- "type": "string"
1266
- },
1267
- "relatedItemIdentifierType": {
1268
- "type": "string"
1269
- }
1270
- }
1271
- },
1272
- "relatedItemType": {
1273
- "type": "string"
1274
- },
1275
- "relatedMetadataScheme": {
1276
- "type": "string"
1277
- },
1278
- "relationType": {
1279
- "type": "string"
1280
- },
1281
- "resourceTypeGeneral": {
1282
- "type": "string"
1283
- },
1284
- "schemeType": {
1285
- "type": "string"
1286
- },
1287
- "schemeURI": {
1288
- "type": "string"
1289
- },
1290
- "titles": {
1291
- "type": "array",
1292
- "items": {
1293
- "type": "object",
1294
- "properties": {
1295
- "lang": {
1296
- "type": "string"
1297
- },
1298
- "title": {
1299
- "type": "string"
1300
- },
1301
- "titleType": {
1302
- "type": "string"
1303
- }
1304
- }
1305
- }
1306
- },
1307
- "volume": {
1308
- "type": "string"
1309
- }
1310
- }
1311
- }
1312
- },
1313
- "resourceType": {
1314
- "type": "object",
1315
- "properties": {
1316
- "resourceType": {
1317
- "type": "string"
1318
- },
1319
- "resourceTypeGeneral": {
1320
- "type": "string"
1321
- }
1322
- }
1323
- },
1324
- "rightsList": {
1325
- "type": "array",
1326
- "items": {
1327
- "type": "object",
1328
- "properties": {
1329
- "lang": {
1330
- "type": "string"
1331
- },
1332
- "rights": {
1333
- "type": "string"
1334
- },
1335
- "rightsIdentifier": {
1336
- "type": "string"
1337
- },
1338
- "rightsIdentifierScheme": {
1339
- "type": "string"
1340
- },
1341
- "rightsURI": {
1342
- "type": "string"
1343
- },
1344
- "schemeURI": {
1345
- "type": "string"
1346
- }
1347
- }
1348
- }
1349
- },
1350
- "schemaVersion": {
1351
- "type": "string"
1352
- },
1353
- "sizes": {
1354
- "type": "array",
1355
- "items": {
1356
- "type": "string"
1357
- }
1358
- },
1359
- "subjects": {
1360
- "type": "array",
1361
- "items": {
1362
- "type": "object",
1363
- "properties": {
1364
- "classificationCode": {
1365
- "type": "string"
1366
- },
1367
- "lang": {
1368
- "type": "string"
1369
- },
1370
- "schemeURI": {
1371
- "type": "string"
1372
- },
1373
- "subject": {
1374
- "type": "string"
1375
- },
1376
- "subjectScheme": {
1377
- "type": "string"
1378
- },
1379
- "valueURI": {
1380
- "type": "string"
1381
- }
1382
- }
1383
- }
1384
- },
1385
- "titles": {
1386
- "type": "array",
1387
- "items": {
1388
- "type": "object",
1389
- "properties": {
1390
- "lang": {
1391
- "type": "string"
1392
- },
1393
- "title": {
1394
- "type": "string"
1395
- },
1396
- "titleType": {
1397
- "type": "string"
1398
- }
1399
- }
1400
- }
1401
- },
1402
- "url": {
1403
- "type": "string"
1404
- },
1405
- "version": {
1406
- "type": "string"
1407
- }
1408
- }
1409
- }
1410
-