invenio-vocabularies 5.0.3__py2.py3-none-any.whl → 6.0.0__py2.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.
Potentially problematic release.
This version of invenio-vocabularies might be problematic. Click here for more details.
- invenio_vocabularies/__init__.py +1 -1
- invenio_vocabularies/cli.py +7 -2
- invenio_vocabularies/config.py +13 -0
- invenio_vocabularies/contrib/affiliations/datastreams.py +95 -1
- invenio_vocabularies/contrib/awards/awards.py +15 -4
- invenio_vocabularies/contrib/awards/datastreams.py +156 -60
- invenio_vocabularies/contrib/awards/jsonschemas/awards/award-v1.0.0.json +55 -0
- invenio_vocabularies/contrib/awards/mappings/os-v1/awards/award-v1.0.0.json +44 -1
- invenio_vocabularies/contrib/awards/mappings/os-v2/awards/award-v1.0.0.json +44 -1
- invenio_vocabularies/contrib/awards/mappings/v7/awards/award-v1.0.0.json +44 -1
- invenio_vocabularies/contrib/awards/schema.py +16 -1
- invenio_vocabularies/contrib/awards/serializer.py +8 -1
- invenio_vocabularies/contrib/common/openaire/__init__.py +9 -0
- invenio_vocabularies/contrib/common/openaire/datastreams.py +84 -0
- invenio_vocabularies/contrib/funders/config.py +8 -3
- invenio_vocabularies/contrib/funders/mappings/os-v1/funders/funder-v2.0.0.json +17 -1
- invenio_vocabularies/contrib/funders/mappings/os-v2/funders/funder-v2.0.0.json +17 -1
- invenio_vocabularies/contrib/names/datastreams.py +12 -2
- invenio_vocabularies/contrib/names/names.py +4 -3
- invenio_vocabularies/contrib/names/permissions.py +20 -0
- invenio_vocabularies/contrib/subjects/datastreams.py +12 -6
- invenio_vocabularies/contrib/subjects/euroscivoc/__init__.py +9 -0
- invenio_vocabularies/contrib/subjects/euroscivoc/datastreams.py +171 -0
- invenio_vocabularies/contrib/subjects/jsonschemas/subjects/subject-v1.0.0.json +16 -0
- invenio_vocabularies/contrib/subjects/mappings/os-v1/subjects/subject-v1.0.0.json +14 -0
- invenio_vocabularies/contrib/subjects/mappings/os-v2/subjects/subject-v1.0.0.json +14 -0
- invenio_vocabularies/contrib/subjects/mappings/v7/subjects/subject-v1.0.0.json +14 -0
- invenio_vocabularies/contrib/subjects/mesh/__init__.py +9 -0
- invenio_vocabularies/contrib/subjects/schema.py +30 -6
- invenio_vocabularies/datastreams/readers.py +15 -4
- invenio_vocabularies/datastreams/transformers.py +15 -4
- invenio_vocabularies/datastreams/writers.py +44 -12
- invenio_vocabularies/factories.py +30 -0
- {invenio_vocabularies-5.0.3.dist-info → invenio_vocabularies-6.0.0.dist-info}/METADATA +16 -1
- {invenio_vocabularies-5.0.3.dist-info → invenio_vocabularies-6.0.0.dist-info}/RECORD +40 -34
- {invenio_vocabularies-5.0.3.dist-info → invenio_vocabularies-6.0.0.dist-info}/AUTHORS.rst +0 -0
- {invenio_vocabularies-5.0.3.dist-info → invenio_vocabularies-6.0.0.dist-info}/LICENSE +0 -0
- {invenio_vocabularies-5.0.3.dist-info → invenio_vocabularies-6.0.0.dist-info}/WHEEL +0 -0
- {invenio_vocabularies-5.0.3.dist-info → invenio_vocabularies-6.0.0.dist-info}/entry_points.txt +0 -0
- {invenio_vocabularies-5.0.3.dist-info → invenio_vocabularies-6.0.0.dist-info}/top_level.txt +0 -0
|
@@ -74,6 +74,20 @@
|
|
|
74
74
|
"synonyms": {
|
|
75
75
|
"type": "text"
|
|
76
76
|
},
|
|
77
|
+
"props": {
|
|
78
|
+
"type": "object",
|
|
79
|
+
"dynamic": "true"
|
|
80
|
+
},
|
|
81
|
+
"identifiers": {
|
|
82
|
+
"properties": {
|
|
83
|
+
"identifier": {
|
|
84
|
+
"type": "keyword"
|
|
85
|
+
},
|
|
86
|
+
"scheme": {
|
|
87
|
+
"type": "keyword"
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
},
|
|
77
91
|
"tags": {
|
|
78
92
|
"type": "keyword"
|
|
79
93
|
}
|
|
@@ -71,6 +71,20 @@
|
|
|
71
71
|
"type": "object",
|
|
72
72
|
"dynamic": "true"
|
|
73
73
|
},
|
|
74
|
+
"props": {
|
|
75
|
+
"type": "object",
|
|
76
|
+
"dynamic": "true"
|
|
77
|
+
},
|
|
78
|
+
"identifiers": {
|
|
79
|
+
"properties": {
|
|
80
|
+
"identifier": {
|
|
81
|
+
"type": "keyword"
|
|
82
|
+
},
|
|
83
|
+
"scheme": {
|
|
84
|
+
"type": "keyword"
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
},
|
|
74
88
|
"synonyms": {
|
|
75
89
|
"type": "text"
|
|
76
90
|
},
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*-
|
|
2
2
|
#
|
|
3
3
|
# Copyright (C) 2021 Northwestern University.
|
|
4
|
-
# Copyright (C) 2021-
|
|
4
|
+
# Copyright (C) 2021-2024 CERN.
|
|
5
5
|
# Copyright (C) 2024 University of Münster.
|
|
6
6
|
#
|
|
7
7
|
# Invenio-Vocabularies is free software; you can redistribute it and/or
|
|
@@ -10,15 +10,19 @@
|
|
|
10
10
|
|
|
11
11
|
"""Subjects schema."""
|
|
12
12
|
|
|
13
|
+
from functools import partial
|
|
14
|
+
|
|
13
15
|
from invenio_i18n import get_locale
|
|
14
|
-
from marshmallow import fields, pre_load
|
|
15
|
-
from marshmallow_utils.fields import SanitizedUnicode
|
|
16
|
+
from marshmallow import Schema, fields, pre_load
|
|
17
|
+
from marshmallow_utils.fields import IdentifierSet, SanitizedUnicode
|
|
18
|
+
from marshmallow_utils.schemas import IdentifierSchema
|
|
16
19
|
|
|
17
20
|
from ...services.schema import (
|
|
18
21
|
BaseVocabularySchema,
|
|
19
22
|
ContribVocabularyRelationSchema,
|
|
20
23
|
i18n_strings,
|
|
21
24
|
)
|
|
25
|
+
from .config import subject_schemes
|
|
22
26
|
|
|
23
27
|
|
|
24
28
|
class SubjectSchema(BaseVocabularySchema):
|
|
@@ -31,6 +35,16 @@ class SubjectSchema(BaseVocabularySchema):
|
|
|
31
35
|
scheme = SanitizedUnicode(required=True)
|
|
32
36
|
subject = SanitizedUnicode(required=True)
|
|
33
37
|
title = i18n_strings
|
|
38
|
+
props = fields.Dict(keys=SanitizedUnicode(), values=SanitizedUnicode())
|
|
39
|
+
identifiers = IdentifierSet(
|
|
40
|
+
fields.Nested(
|
|
41
|
+
partial(
|
|
42
|
+
IdentifierSchema,
|
|
43
|
+
allowed_schemes=subject_schemes,
|
|
44
|
+
identifier_required=False,
|
|
45
|
+
)
|
|
46
|
+
)
|
|
47
|
+
)
|
|
34
48
|
synonyms = fields.List(SanitizedUnicode())
|
|
35
49
|
|
|
36
50
|
@pre_load
|
|
@@ -48,6 +62,16 @@ class SubjectRelationSchema(ContribVocabularyRelationSchema):
|
|
|
48
62
|
ftf_name = "subject"
|
|
49
63
|
parent_field_name = "subjects"
|
|
50
64
|
subject = SanitizedUnicode()
|
|
51
|
-
scheme = SanitizedUnicode()
|
|
52
|
-
title =
|
|
53
|
-
|
|
65
|
+
scheme = SanitizedUnicode(dump_only=True)
|
|
66
|
+
title = fields.Dict(dump_only=True)
|
|
67
|
+
props = fields.Dict(dump_only=True)
|
|
68
|
+
identifiers = IdentifierSet(
|
|
69
|
+
fields.Nested(
|
|
70
|
+
partial(
|
|
71
|
+
IdentifierSchema,
|
|
72
|
+
allowed_schemes=subject_schemes,
|
|
73
|
+
identifier_required=False,
|
|
74
|
+
)
|
|
75
|
+
)
|
|
76
|
+
)
|
|
77
|
+
synonyms = fields.List(SanitizedUnicode(), dump_only=True)
|
|
@@ -224,19 +224,30 @@ class CSVReader(BaseReader):
|
|
|
224
224
|
class XMLReader(BaseReader):
|
|
225
225
|
"""XML reader."""
|
|
226
226
|
|
|
227
|
+
def __init__(self, root_element=None, *args, **kwargs):
|
|
228
|
+
"""Constructor."""
|
|
229
|
+
self.root_element = root_element
|
|
230
|
+
super().__init__(*args, **kwargs)
|
|
231
|
+
|
|
227
232
|
def _iter(self, fp, *args, **kwargs):
|
|
228
233
|
"""Read and parse an XML file to dict."""
|
|
229
234
|
# NOTE: We parse HTML, to skip XML validation and strip XML namespaces
|
|
230
235
|
record = None
|
|
231
236
|
try:
|
|
232
237
|
xml_tree = fromstring(fp)
|
|
233
|
-
|
|
238
|
+
xml_dict = etree_to_dict(xml_tree)
|
|
234
239
|
except Exception as e:
|
|
235
240
|
xml_tree = html_parse(fp).getroot()
|
|
236
|
-
|
|
241
|
+
xml_dict = etree_to_dict(xml_tree)["html"]["body"]
|
|
237
242
|
|
|
238
|
-
if
|
|
239
|
-
|
|
243
|
+
if self.root_element:
|
|
244
|
+
record = xml_dict.get(self.root_element)
|
|
245
|
+
if not record:
|
|
246
|
+
raise ReaderError(
|
|
247
|
+
f"Root element '{self.root_element}' not found in XML entry."
|
|
248
|
+
)
|
|
249
|
+
else:
|
|
250
|
+
record = xml_dict
|
|
240
251
|
|
|
241
252
|
yield record
|
|
242
253
|
|
|
@@ -32,6 +32,11 @@ class BaseTransformer(ABC):
|
|
|
32
32
|
class XMLTransformer(BaseTransformer):
|
|
33
33
|
"""XML transformer."""
|
|
34
34
|
|
|
35
|
+
def __init__(self, root_element=None, *args, **kwargs):
|
|
36
|
+
"""Initializes the transformer."""
|
|
37
|
+
self.root_element = root_element
|
|
38
|
+
super().__init__(*args, **kwargs)
|
|
39
|
+
|
|
35
40
|
@classmethod
|
|
36
41
|
def _xml_to_etree(cls, xml):
|
|
37
42
|
"""Converts XML to a lxml etree."""
|
|
@@ -43,10 +48,16 @@ class XMLTransformer(BaseTransformer):
|
|
|
43
48
|
Requires the root element to be named "record".
|
|
44
49
|
"""
|
|
45
50
|
xml_tree = self._xml_to_etree(stream_entry.entry)
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
if
|
|
49
|
-
|
|
51
|
+
xml_dict = etree_to_dict(xml_tree)["html"]["body"]
|
|
52
|
+
|
|
53
|
+
if self.root_element:
|
|
54
|
+
record = xml_dict.get(self.root_element)
|
|
55
|
+
if not record:
|
|
56
|
+
raise TransformerError(
|
|
57
|
+
f"Root element '{self.root_element}' not found in XML entry."
|
|
58
|
+
)
|
|
59
|
+
else:
|
|
60
|
+
record = xml_dict
|
|
50
61
|
|
|
51
62
|
stream_entry.entry = record
|
|
52
63
|
return stream_entry
|
|
@@ -13,10 +13,11 @@ from pathlib import Path
|
|
|
13
13
|
|
|
14
14
|
import yaml
|
|
15
15
|
from invenio_access.permissions import system_identity
|
|
16
|
-
from invenio_pidstore.errors import PIDAlreadyExists
|
|
16
|
+
from invenio_pidstore.errors import PIDAlreadyExists, PIDDoesNotExistError
|
|
17
17
|
from invenio_records.systemfields.relations.errors import InvalidRelationValue
|
|
18
18
|
from invenio_records_resources.proxies import current_service_registry
|
|
19
19
|
from marshmallow import ValidationError
|
|
20
|
+
from sqlalchemy.exc import NoResultFound
|
|
20
21
|
|
|
21
22
|
from .datastreams import StreamEntry
|
|
22
23
|
from .errors import WriterError
|
|
@@ -55,12 +56,15 @@ class BaseWriter(ABC):
|
|
|
55
56
|
class ServiceWriter(BaseWriter):
|
|
56
57
|
"""Writes the entries to an RDM instance using a Service object."""
|
|
57
58
|
|
|
58
|
-
def __init__(
|
|
59
|
+
def __init__(
|
|
60
|
+
self, service_or_name, *args, identity=None, insert=True, update=False, **kwargs
|
|
61
|
+
):
|
|
59
62
|
"""Constructor.
|
|
60
63
|
|
|
61
64
|
:param service_or_name: a service instance or a key of the
|
|
62
65
|
service registry.
|
|
63
66
|
:param identity: access identity.
|
|
67
|
+
:param insert: if True it will insert records which do not exist.
|
|
64
68
|
:param update: if True it will update records if they exist.
|
|
65
69
|
"""
|
|
66
70
|
if isinstance(service_or_name, str):
|
|
@@ -68,6 +72,7 @@ class ServiceWriter(BaseWriter):
|
|
|
68
72
|
|
|
69
73
|
self._service = service_or_name
|
|
70
74
|
self._identity = identity or system_identity
|
|
75
|
+
self._insert = insert
|
|
71
76
|
self._update = update
|
|
72
77
|
|
|
73
78
|
super().__init__(*args, **kwargs)
|
|
@@ -79,20 +84,47 @@ class ServiceWriter(BaseWriter):
|
|
|
79
84
|
def _resolve(self, id_):
|
|
80
85
|
return self._service.read(self._identity, id_)
|
|
81
86
|
|
|
87
|
+
def _do_update(self, entry):
|
|
88
|
+
vocab_id = self._entry_id(entry)
|
|
89
|
+
current = self._resolve(vocab_id)
|
|
90
|
+
combined_dict = current.to_dict()
|
|
91
|
+
|
|
92
|
+
# Update fields from entry
|
|
93
|
+
for key, value in entry.items():
|
|
94
|
+
if key in combined_dict:
|
|
95
|
+
if isinstance(combined_dict[key], list) and isinstance(value, list):
|
|
96
|
+
combined_dict[key].extend(
|
|
97
|
+
item for item in value if item not in combined_dict[key]
|
|
98
|
+
)
|
|
99
|
+
else:
|
|
100
|
+
combined_dict[key] = value
|
|
101
|
+
else:
|
|
102
|
+
combined_dict[key] = value
|
|
103
|
+
|
|
104
|
+
return StreamEntry(
|
|
105
|
+
self._service.update(self._identity, vocab_id, combined_dict)
|
|
106
|
+
)
|
|
107
|
+
|
|
82
108
|
def write(self, stream_entry, *args, **kwargs):
|
|
83
109
|
"""Writes the input entry using a given service."""
|
|
84
110
|
entry = stream_entry.entry
|
|
111
|
+
|
|
85
112
|
try:
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
self.
|
|
113
|
+
if self._insert:
|
|
114
|
+
try:
|
|
115
|
+
return StreamEntry(self._service.create(self._identity, entry))
|
|
116
|
+
except PIDAlreadyExists:
|
|
117
|
+
if not self._update:
|
|
118
|
+
raise WriterError([f"Vocabulary entry already exists: {entry}"])
|
|
119
|
+
return self._do_update(entry)
|
|
120
|
+
elif self._update:
|
|
121
|
+
try:
|
|
122
|
+
return self._do_update(entry)
|
|
123
|
+
except (NoResultFound, PIDDoesNotExistError):
|
|
124
|
+
raise WriterError([f"Vocabulary entry does not exist: {entry}"])
|
|
125
|
+
else:
|
|
126
|
+
raise WriterError(
|
|
127
|
+
["Writer wrongly configured to not insert and to not update"]
|
|
96
128
|
)
|
|
97
129
|
|
|
98
130
|
except ValidationError as err:
|
|
@@ -16,7 +16,13 @@ from invenio_records_resources.proxies import current_service_registry
|
|
|
16
16
|
from .contrib.affiliations.datastreams import (
|
|
17
17
|
DATASTREAM_CONFIG as affiliations_ds_config,
|
|
18
18
|
)
|
|
19
|
+
from .contrib.affiliations.datastreams import (
|
|
20
|
+
DATASTREAM_CONFIG_OPENAIRE as affiliations_openaire_ds_config,
|
|
21
|
+
)
|
|
19
22
|
from .contrib.awards.datastreams import DATASTREAM_CONFIG as awards_ds_config
|
|
23
|
+
from .contrib.awards.datastreams import (
|
|
24
|
+
DATASTREAM_CONFIG_CORDIS as awards_cordis_ds_config,
|
|
25
|
+
)
|
|
20
26
|
from .contrib.funders.datastreams import DATASTREAM_CONFIG as funders_ds_config
|
|
21
27
|
from .contrib.names.datastreams import DATASTREAM_CONFIG as names_ds_config
|
|
22
28
|
from .contrib.subjects.datastreams import DATASTREAM_CONFIG as subjects_ds_config
|
|
@@ -84,6 +90,17 @@ class AwardsVocabularyConfig(VocabularyConfig):
|
|
|
84
90
|
raise NotImplementedError("Service not implemented for Awards")
|
|
85
91
|
|
|
86
92
|
|
|
93
|
+
class AwardsCordisVocabularyConfig(VocabularyConfig):
|
|
94
|
+
"""Awards Vocabulary Config."""
|
|
95
|
+
|
|
96
|
+
config = awards_cordis_ds_config
|
|
97
|
+
vocabulary_name = "awards:cordis"
|
|
98
|
+
|
|
99
|
+
def get_service(self):
|
|
100
|
+
"""Get the service for the vocabulary."""
|
|
101
|
+
raise NotImplementedError("Service not implemented for CORDIS Awards")
|
|
102
|
+
|
|
103
|
+
|
|
87
104
|
class AffiliationsVocabularyConfig(VocabularyConfig):
|
|
88
105
|
"""Affiliations Vocabulary Config."""
|
|
89
106
|
|
|
@@ -95,13 +112,26 @@ class AffiliationsVocabularyConfig(VocabularyConfig):
|
|
|
95
112
|
raise NotImplementedError("Service not implemented for Affiliations")
|
|
96
113
|
|
|
97
114
|
|
|
115
|
+
class AffiliationsOpenAIREVocabularyConfig(VocabularyConfig):
|
|
116
|
+
"""OpenAIRE Affiliations Vocabulary Config."""
|
|
117
|
+
|
|
118
|
+
config = affiliations_openaire_ds_config
|
|
119
|
+
vocabulary_name = "affiliations:openaire"
|
|
120
|
+
|
|
121
|
+
def get_service(self):
|
|
122
|
+
"""Get the service for the vocabulary."""
|
|
123
|
+
raise NotImplementedError("Service not implemented for OpenAIRE Affiliations")
|
|
124
|
+
|
|
125
|
+
|
|
98
126
|
def get_vocabulary_config(vocabulary):
|
|
99
127
|
"""Factory function to get the appropriate Vocabulary Config."""
|
|
100
128
|
vocab_config = {
|
|
101
129
|
"names": NamesVocabularyConfig,
|
|
102
130
|
"funders": FundersVocabularyConfig,
|
|
103
131
|
"awards": AwardsVocabularyConfig,
|
|
132
|
+
"awards:cordis": AwardsCordisVocabularyConfig,
|
|
104
133
|
"affiliations": AffiliationsVocabularyConfig,
|
|
134
|
+
"affiliations:openaire": AffiliationsOpenAIREVocabularyConfig,
|
|
105
135
|
"subjects": SubjectsVocabularyConfig,
|
|
106
136
|
}
|
|
107
137
|
return vocab_config.get(vocabulary, VocabularyConfig)()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: invenio-vocabularies
|
|
3
|
-
Version:
|
|
3
|
+
Version: 6.0.0
|
|
4
4
|
Summary: Invenio module for managing vocabularies.
|
|
5
5
|
Home-page: https://github.com/inveniosoftware/invenio-vocabularies
|
|
6
6
|
Author: CERN
|
|
@@ -16,6 +16,7 @@ Requires-Dist: invenio-administration <3.0.0,>=2.0.0
|
|
|
16
16
|
Requires-Dist: lxml >=4.5.0
|
|
17
17
|
Requires-Dist: PyYAML >=5.4.1
|
|
18
18
|
Requires-Dist: regex >=2024.7.24
|
|
19
|
+
Requires-Dist: rdflib >=7.0.0
|
|
19
20
|
Provides-Extra: elasticsearch7
|
|
20
21
|
Requires-Dist: invenio-search[elasticsearch7] <3.0.0,>=2.1.0 ; extra == 'elasticsearch7'
|
|
21
22
|
Provides-Extra: mysql
|
|
@@ -81,6 +82,20 @@ https://invenio-vocabularies.readthedocs.io/
|
|
|
81
82
|
Changes
|
|
82
83
|
=======
|
|
83
84
|
|
|
85
|
+
Version v6.0.0 (released 2024-10-03)
|
|
86
|
+
|
|
87
|
+
- datastreams: writers: add option to not insert
|
|
88
|
+
- subjects: added euroscivoc datastream
|
|
89
|
+
- affiliations: OpenAIRE transformer and writer adding PIC identifier
|
|
90
|
+
- awards: added subjects and participating organizations from CORDIS datastreams
|
|
91
|
+
- names: add permission check to names search
|
|
92
|
+
|
|
93
|
+
Version v5.1.0 (released 2024-09-25)
|
|
94
|
+
|
|
95
|
+
- funders: tune search boost for acronyms
|
|
96
|
+
* Add and `acronym.keyword` field to the funders mapping.
|
|
97
|
+
* Apply to funders the same field boosting as in affiliations.
|
|
98
|
+
|
|
84
99
|
Version v5.0.3 (released 2024-09-06)
|
|
85
100
|
|
|
86
101
|
- services: skip index rebuilding
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
invenio_vocabularies/__init__.py,sha256=
|
|
2
|
-
invenio_vocabularies/cli.py,sha256=
|
|
3
|
-
invenio_vocabularies/config.py,sha256=
|
|
1
|
+
invenio_vocabularies/__init__.py,sha256=SV2dyAIGCJfHua-VM-jL5my73f_o0u1gT2o-sAjYwq4,377
|
|
2
|
+
invenio_vocabularies/cli.py,sha256=S3lBsLxsSYa83sCDaGZr5mP7TwPvmmwxzzbB13h8VBI,5856
|
|
3
|
+
invenio_vocabularies/config.py,sha256=bpNKVgwfb7bgkP5zbmoawnAMD6bHWXIJV-6CpEhi-M8,5752
|
|
4
4
|
invenio_vocabularies/ext.py,sha256=GujJ4UARd4Fxf4z7zznRk9JAgHamZuYCOdrKU5czg00,5987
|
|
5
|
-
invenio_vocabularies/factories.py,sha256=
|
|
5
|
+
invenio_vocabularies/factories.py,sha256=mVg4yGKe58e4uS8rYe0DmIO6oMpmtNTcK3wH9eM5jVU,4380
|
|
6
6
|
invenio_vocabularies/fixtures.py,sha256=nNWwH04HFASjfj1oy5kMdcQGKmVjzUuA5wSw-ER1QAg,1585
|
|
7
7
|
invenio_vocabularies/proxies.py,sha256=k7cTUgWfnCoYIuNqAj_VFi1zBN33KNNclRSVnBkObEM,711
|
|
8
8
|
invenio_vocabularies/views.py,sha256=PNJ5nvc3O7ASwNe56xmqy5YaU9n3UYF3W2JwvtE_kYs,1561
|
|
@@ -46,7 +46,7 @@ invenio_vocabularies/contrib/affiliations/__init__.py,sha256=rV8YAzBRoSKsBYcVjCN
|
|
|
46
46
|
invenio_vocabularies/contrib/affiliations/affiliations.py,sha256=BSEjzAjLq17GGKHyPrgC5VLluvZqVnKMepIiqqLQKzo,2077
|
|
47
47
|
invenio_vocabularies/contrib/affiliations/api.py,sha256=5nIOvpfcseuAAg2XgblHc8jb7TAdfU79XOBRpL-p398,326
|
|
48
48
|
invenio_vocabularies/contrib/affiliations/config.py,sha256=kk-zAl7Uyi6N4qVOiCkBD9cN1KKOvDcILDHJ-zoIzJA,2084
|
|
49
|
-
invenio_vocabularies/contrib/affiliations/datastreams.py,sha256=
|
|
49
|
+
invenio_vocabularies/contrib/affiliations/datastreams.py,sha256=vEH6wj951LLa9pSsNb0rS8IVJ1zWbEQDDe0Cu770J9k,5479
|
|
50
50
|
invenio_vocabularies/contrib/affiliations/facets.py,sha256=w316MGvtdyTpRCPOpCEmMxxLraRkbFFb1VvLkFlEc9o,1229
|
|
51
51
|
invenio_vocabularies/contrib/affiliations/models.py,sha256=JUcj-1ydc2Cw2Rsc24JwXE3TFBJ_6fivhUYhGq4rT8A,329
|
|
52
52
|
invenio_vocabularies/contrib/affiliations/resources.py,sha256=DBEbRxQmp-o-PeZlgFG588Q4sGcruuwIL8L9O-SzCes,435
|
|
@@ -65,29 +65,31 @@ invenio_vocabularies/contrib/affiliations/mappings/v7/__init__.py,sha256=zr9YyyK
|
|
|
65
65
|
invenio_vocabularies/contrib/affiliations/mappings/v7/affiliations/affiliation-v1.0.0.json,sha256=PaHChFsf9r7xRnZ_7ro8SWNEXpWv4uUYrl32g0QESZs,2096
|
|
66
66
|
invenio_vocabularies/contrib/awards/__init__.py,sha256=KwCmwFalz-3pDs9iTa5TKUidBjLepnUMqpCBXRiQOO8,474
|
|
67
67
|
invenio_vocabularies/contrib/awards/api.py,sha256=OXukE7PLXs45BTtqVrhvGBNqLmQaI-CgXmHTCi36LZk,303
|
|
68
|
-
invenio_vocabularies/contrib/awards/awards.py,sha256=
|
|
68
|
+
invenio_vocabularies/contrib/awards/awards.py,sha256=tOLvcvTPiN1gn1QAl-hSh1bwcclg8Kx2ZMmJMEhI7vk,2959
|
|
69
69
|
invenio_vocabularies/contrib/awards/config.py,sha256=PlDHabkWDUzwa1Fvk_U2hG83kQYBqM1IyChg8Yg_VlY,1630
|
|
70
|
-
invenio_vocabularies/contrib/awards/datastreams.py,sha256=
|
|
70
|
+
invenio_vocabularies/contrib/awards/datastreams.py,sha256=j6dtimniWg9faHzV1J49QpAgUJDDW3rjQR0_Mhcfqm4,11147
|
|
71
71
|
invenio_vocabularies/contrib/awards/models.py,sha256=mM-kSNf7kDH3oIbV8epxxbUi7muYqi4JreXxgWXlVzw,318
|
|
72
72
|
invenio_vocabularies/contrib/awards/resources.py,sha256=_9YTqbhz8axFXGhG5y4WyjE27p9n-7e3c6HoBRditPA,411
|
|
73
|
-
invenio_vocabularies/contrib/awards/schema.py,sha256=
|
|
74
|
-
invenio_vocabularies/contrib/awards/serializer.py,sha256=
|
|
73
|
+
invenio_vocabularies/contrib/awards/schema.py,sha256=P_k9EONMMx0eWpALVuhGBzZlDeh4599elLlmMis-Vko,3302
|
|
74
|
+
invenio_vocabularies/contrib/awards/serializer.py,sha256=W59OMDxOXPdXrrimzMdIPbDIfVk6hARgyz1N2xSbchA,1440
|
|
75
75
|
invenio_vocabularies/contrib/awards/services.py,sha256=zwOMHqa4SyZuHopGZwEKhfw3kUHrWg73_4zMNo5kOe4,371
|
|
76
76
|
invenio_vocabularies/contrib/awards/jsonschemas/__init__.py,sha256=XB2l9hr53vqTk7o9lmy18FWGhHEUvNHu8D6nMF8Bz4k,246
|
|
77
|
-
invenio_vocabularies/contrib/awards/jsonschemas/awards/award-v1.0.0.json,sha256=
|
|
77
|
+
invenio_vocabularies/contrib/awards/jsonschemas/awards/award-v1.0.0.json,sha256=viw8rgfjiQwKsLjWyqIKCtZSYVC5vhdt6s0jE2EeQmw,2731
|
|
78
78
|
invenio_vocabularies/contrib/awards/mappings/__init__.py,sha256=PbM5urjiSrJSx4Ak-H_lJrOOVKGT38MrGgRv61gIbAM,243
|
|
79
79
|
invenio_vocabularies/contrib/awards/mappings/os-v1/__init__.py,sha256=r8IZvjorG9SVz32Hv1fncoqLfz-5Ml0Ph3jiYWCHBPk,250
|
|
80
|
-
invenio_vocabularies/contrib/awards/mappings/os-v1/awards/award-v1.0.0.json,sha256=
|
|
80
|
+
invenio_vocabularies/contrib/awards/mappings/os-v1/awards/award-v1.0.0.json,sha256=dcE1dvgGBYYb7vziGArmXb64rg2HpBdiIw_aP3oYaDw,2441
|
|
81
81
|
invenio_vocabularies/contrib/awards/mappings/os-v2/__init__.py,sha256=9gRLFRtjhNJcbop3qz8iRpQVEng_wudDTbOFsS-gxjk,250
|
|
82
|
-
invenio_vocabularies/contrib/awards/mappings/os-v2/awards/award-v1.0.0.json,sha256=
|
|
82
|
+
invenio_vocabularies/contrib/awards/mappings/os-v2/awards/award-v1.0.0.json,sha256=dcE1dvgGBYYb7vziGArmXb64rg2HpBdiIw_aP3oYaDw,2441
|
|
83
83
|
invenio_vocabularies/contrib/awards/mappings/v7/__init__.py,sha256=fERdPp7K7ajaoUu_4_HVLfF-WD_qcl7QgST6yGb68s4,253
|
|
84
|
-
invenio_vocabularies/contrib/awards/mappings/v7/awards/award-v1.0.0.json,sha256=
|
|
84
|
+
invenio_vocabularies/contrib/awards/mappings/v7/awards/award-v1.0.0.json,sha256=dcE1dvgGBYYb7vziGArmXb64rg2HpBdiIw_aP3oYaDw,2441
|
|
85
85
|
invenio_vocabularies/contrib/common/__init__.py,sha256=DdbGYRthEpQtObhY_YK4vOT9Zf7FFagQ6qtUjJOYw-M,247
|
|
86
|
+
invenio_vocabularies/contrib/common/openaire/__init__.py,sha256=L7UtSimFJ3NI6j53bHzYKsWpFti1uo4fPb9OaTl7leI,244
|
|
87
|
+
invenio_vocabularies/contrib/common/openaire/datastreams.py,sha256=BV6NtBCPFuii6KbTHGkgNQO5tt_3Hn9T_219bz8AINg,3514
|
|
86
88
|
invenio_vocabularies/contrib/common/ror/__init__.py,sha256=3u2-fre1SQ-4nz3Ay0nxj3ntmMZ8Ujh_4eV-fyxfmtc,239
|
|
87
89
|
invenio_vocabularies/contrib/common/ror/datastreams.py,sha256=7VaQUGtc4j0fX6P16csjAUgIVxSDEySrdZ5QZ57RD_g,7941
|
|
88
90
|
invenio_vocabularies/contrib/funders/__init__.py,sha256=YxFXBDnT7NM8rFwxT_Ge3xXR2n17EM0alknQq7r_Bt8,478
|
|
89
91
|
invenio_vocabularies/contrib/funders/api.py,sha256=QKGGeSnPHSoBfucvpaVruXT_txYidofZ080G3IxFkIo,306
|
|
90
|
-
invenio_vocabularies/contrib/funders/config.py,sha256=
|
|
92
|
+
invenio_vocabularies/contrib/funders/config.py,sha256=EU7UrwLOkr2Bem9Skz_HJIxyBQRkXEdPT8zIuV8vbzI,2217
|
|
91
93
|
invenio_vocabularies/contrib/funders/datastreams.py,sha256=3tOwcN1mK5AVqtdU6KdguouGSUurPTO-FDWTKzK1eRo,2481
|
|
92
94
|
invenio_vocabularies/contrib/funders/facets.py,sha256=a068TVtt74Ncu0latb177LFK8EdnpbMOWecAKozA04M,1245
|
|
93
95
|
invenio_vocabularies/contrib/funders/funders.py,sha256=F2AQWv7IfSovThoKPEmlQbxbbmv7gNzIxDoSCaL5D0U,2338
|
|
@@ -101,18 +103,19 @@ invenio_vocabularies/contrib/funders/jsonschemas/funders/funder-v1.0.0.json,sha2
|
|
|
101
103
|
invenio_vocabularies/contrib/funders/mappings/__init__.py,sha256=aSr-tZd9rsjet6leeS336gdSdZHXwZKdaPStNtVNQVk,244
|
|
102
104
|
invenio_vocabularies/contrib/funders/mappings/os-v1/__init__.py,sha256=xXEX3tacmXp0I1KFtDw7ohIahozd2oIGp1UN40IhFic,251
|
|
103
105
|
invenio_vocabularies/contrib/funders/mappings/os-v1/funders/funder-v1.0.0.json,sha256=E7Zp4IHsQGdaxVrksr-SaQtieV7tV0W6-LgGe231G1w,1646
|
|
104
|
-
invenio_vocabularies/contrib/funders/mappings/os-v1/funders/funder-v2.0.0.json,sha256=
|
|
106
|
+
invenio_vocabularies/contrib/funders/mappings/os-v1/funders/funder-v2.0.0.json,sha256=31shkTYZDvx7tSCnOA4OlqRmQ0IEv2qhePJsIStReJo,3385
|
|
105
107
|
invenio_vocabularies/contrib/funders/mappings/os-v2/__init__.py,sha256=YvMRlKYTnEmyTzI9smZp_lO3w-zcK-8IpqT-jGUXEEY,251
|
|
106
108
|
invenio_vocabularies/contrib/funders/mappings/os-v2/funders/funder-v1.0.0.json,sha256=E7Zp4IHsQGdaxVrksr-SaQtieV7tV0W6-LgGe231G1w,1646
|
|
107
|
-
invenio_vocabularies/contrib/funders/mappings/os-v2/funders/funder-v2.0.0.json,sha256=
|
|
109
|
+
invenio_vocabularies/contrib/funders/mappings/os-v2/funders/funder-v2.0.0.json,sha256=31shkTYZDvx7tSCnOA4OlqRmQ0IEv2qhePJsIStReJo,3385
|
|
108
110
|
invenio_vocabularies/contrib/funders/mappings/v7/__init__.py,sha256=yFHmi3QYD65YKzLU5vMEtwAZn0gwkFYa6Db_tSbHjKE,254
|
|
109
111
|
invenio_vocabularies/contrib/funders/mappings/v7/funders/funder-v1.0.0.json,sha256=E7Zp4IHsQGdaxVrksr-SaQtieV7tV0W6-LgGe231G1w,1646
|
|
110
112
|
invenio_vocabularies/contrib/names/__init__.py,sha256=DBfsM7JMETZGaV5QmXEwE7zhCaAXvc2SZN6uXnW_V-c,451
|
|
111
113
|
invenio_vocabularies/contrib/names/api.py,sha256=sEPn_jFX3gyoxgbdEUSIvOoPCUI8pocI6qCZO6mzCgQ,300
|
|
112
114
|
invenio_vocabularies/contrib/names/config.py,sha256=8FVtMuq1NHC0cz8O-p_-Ng_IpHE9PTOVqQ7KDJIm7qA,1905
|
|
113
|
-
invenio_vocabularies/contrib/names/datastreams.py,sha256=
|
|
115
|
+
invenio_vocabularies/contrib/names/datastreams.py,sha256=EKatHb0gkvcC9LCYBLIcN5pAgklBY4G43lZR_XE52wY,9505
|
|
114
116
|
invenio_vocabularies/contrib/names/models.py,sha256=SYdtDDG-y5Wq_d06YhiVO5n8gfxPW_mx-tECsIcv5H8,308
|
|
115
|
-
invenio_vocabularies/contrib/names/names.py,sha256=
|
|
117
|
+
invenio_vocabularies/contrib/names/names.py,sha256=x_kcSrH48Q6Iqx1zeCcat5xRmTLe_KqZd5CbHCeR2C4,2498
|
|
118
|
+
invenio_vocabularies/contrib/names/permissions.py,sha256=d7UxvmqFBKWNcFQeJ4MGGFUHlNh_BJGO03-DVW_YFI4,576
|
|
116
119
|
invenio_vocabularies/contrib/names/resources.py,sha256=Z8XqLKfFKE69zdTTvcTDmpEZ6wqiqjIH5tp0LzXTSwQ,1588
|
|
117
120
|
invenio_vocabularies/contrib/names/s3client.py,sha256=c7B9_NbnXCfE4pE_yMTsT6uQ2hgbcRU-KY6nbWFuFzU,1063
|
|
118
121
|
invenio_vocabularies/contrib/names/schema.py,sha256=eKhpNwBaACMEY0JWNrSUhr-40lXhkiHDRmM42KsLrYg,3354
|
|
@@ -131,31 +134,34 @@ invenio_vocabularies/contrib/names/mappings/v7/names/name-v1.0.0.json,sha256=5Yb
|
|
|
131
134
|
invenio_vocabularies/contrib/subjects/__init__.py,sha256=GtXZKA6VWG1oA1fUX2Wh92nd-1i7RnnQF6RprGhxkD4,591
|
|
132
135
|
invenio_vocabularies/contrib/subjects/api.py,sha256=QH8mxoLsa8qjJT1i1Tj6rRnpbH23plo2IMOJ56rnvbU,347
|
|
133
136
|
invenio_vocabularies/contrib/subjects/config.py,sha256=12Hoy46iGaBv7DlxcCjBuJaDtmpSvPPQKrWabtaUGe0,1712
|
|
134
|
-
invenio_vocabularies/contrib/subjects/datastreams.py,sha256=
|
|
137
|
+
invenio_vocabularies/contrib/subjects/datastreams.py,sha256=CiLSTm9PukzLKm34VDmmKOH4A_pYnjbrshxAht1Fox4,1787
|
|
135
138
|
invenio_vocabularies/contrib/subjects/facets.py,sha256=qQ7_rppFBzsmrlZu4-MvOIdUcjeOmDA9gOHAcs0lWwI,695
|
|
136
139
|
invenio_vocabularies/contrib/subjects/models.py,sha256=8XgbVRxDDvhWPjMWsoCriNlOKdmV_113a14yLRtlvM4,363
|
|
137
140
|
invenio_vocabularies/contrib/subjects/resources.py,sha256=0KRfUMizwgIziZybk4HnIjiSsXbrCv_XmguNPwnxoo8,506
|
|
138
|
-
invenio_vocabularies/contrib/subjects/schema.py,sha256=
|
|
141
|
+
invenio_vocabularies/contrib/subjects/schema.py,sha256=5pM9FFVdeb1nUuTwr2SqkUJh-oHIjYN-EXXI8_SSjCQ,2446
|
|
139
142
|
invenio_vocabularies/contrib/subjects/services.py,sha256=s1U6HMmpjuz7rrgR0DtT9C28TC6sZEeDTsa4Jh1TXQk,864
|
|
140
143
|
invenio_vocabularies/contrib/subjects/subjects.py,sha256=NwZycExLyV8l7ikGStH4GOecVuDSxFT70KoNv6qC78I,1877
|
|
144
|
+
invenio_vocabularies/contrib/subjects/euroscivoc/__init__.py,sha256=e5L9E4l5JHqVzijAX8tn2DIa2n01vJ5wOAZdN62RnIo,247
|
|
145
|
+
invenio_vocabularies/contrib/subjects/euroscivoc/datastreams.py,sha256=ZEFDySRSEkb-2cjbYP_so2uCB1tP2_zcdMGpwPcRe90,6152
|
|
141
146
|
invenio_vocabularies/contrib/subjects/jsonschemas/__init__.py,sha256=WowVUST1JoEDS3-xeHhCJvIgC9nzMkFs8XRks9zgzaM,292
|
|
142
|
-
invenio_vocabularies/contrib/subjects/jsonschemas/subjects/subject-v1.0.0.json,sha256=
|
|
147
|
+
invenio_vocabularies/contrib/subjects/jsonschemas/subjects/subject-v1.0.0.json,sha256=SCFOfwtdAQJnUC4wccRJj--c2yUUmo5Z3tnOfo2XluU,1632
|
|
143
148
|
invenio_vocabularies/contrib/subjects/mappings/__init__.py,sha256=Qk-yj1ENsTmijO8ImWuDYGzXi6QQ2VjP4DbjrpRfDk8,243
|
|
144
149
|
invenio_vocabularies/contrib/subjects/mappings/os-v1/__init__.py,sha256=rv2-AasC_WJFp2t9Nrhzivmw9RovRI2_msin4oHTZuk,250
|
|
145
|
-
invenio_vocabularies/contrib/subjects/mappings/os-v1/subjects/subject-v1.0.0.json,sha256=
|
|
150
|
+
invenio_vocabularies/contrib/subjects/mappings/os-v1/subjects/subject-v1.0.0.json,sha256=WNNWVsaf-pNxqV6p_IR2uIcwIBh30WJeP4IDIxzqutI,1810
|
|
146
151
|
invenio_vocabularies/contrib/subjects/mappings/os-v2/__init__.py,sha256=rQnrw1tMKR0yzlPiXBbCVHnxy_aAhwrKghrSuhhZYAc,250
|
|
147
|
-
invenio_vocabularies/contrib/subjects/mappings/os-v2/subjects/subject-v1.0.0.json,sha256=
|
|
152
|
+
invenio_vocabularies/contrib/subjects/mappings/os-v2/subjects/subject-v1.0.0.json,sha256=cJSjcJ_PqrifBZOUeDMW3qyT7VtENTvYq3Xvi-iylOc,1810
|
|
148
153
|
invenio_vocabularies/contrib/subjects/mappings/v7/__init__.py,sha256=QK__a1749g2UN3fBqOr9jx8ccZHWAuvd6DSN4B1jJW4,258
|
|
149
|
-
invenio_vocabularies/contrib/subjects/mappings/v7/subjects/subject-v1.0.0.json,sha256=
|
|
154
|
+
invenio_vocabularies/contrib/subjects/mappings/v7/subjects/subject-v1.0.0.json,sha256=WNNWVsaf-pNxqV6p_IR2uIcwIBh30WJeP4IDIxzqutI,1810
|
|
155
|
+
invenio_vocabularies/contrib/subjects/mesh/__init__.py,sha256=P44hmgVNNTN5O_EmWgaeYJ91yqkGNoeKYo0wfif_wE4,241
|
|
150
156
|
invenio_vocabularies/contrib/subjects/mesh/datastreams.py,sha256=qsi2fu-TzpI2aC9qIOkXGpNcLFkClJ5Dw5rC9ffEdjc,1318
|
|
151
157
|
invenio_vocabularies/datastreams/__init__.py,sha256=VPefh6k4Q3eYxKIW8I5zXUGucntp7VHxaOR5Vhgkfmg,412
|
|
152
158
|
invenio_vocabularies/datastreams/datastreams.py,sha256=SpI6ivmf2LIDS2JSkxoM2v5kRmrPoRDtAG5fuzZO4oQ,6078
|
|
153
159
|
invenio_vocabularies/datastreams/errors.py,sha256=IDUZ3gNtYGrhcOgApHCms1gNNJTyJzoMPmG5JtIeYNU,678
|
|
154
160
|
invenio_vocabularies/datastreams/factories.py,sha256=H8a2gAy7KNImtdCdtqpVKC5gIvE3ON6U1Wn1_zaMlQ4,2181
|
|
155
|
-
invenio_vocabularies/datastreams/readers.py,sha256=
|
|
161
|
+
invenio_vocabularies/datastreams/readers.py,sha256=Gr_KbN-tZtoQ8R4TJG4dTBTE8028eLRlcxSv2-IqI9c,11386
|
|
156
162
|
invenio_vocabularies/datastreams/tasks.py,sha256=0fuH_PRt9Ncv6WHM4pkYmfheRVGDKkERZiMPvgV4bZU,1129
|
|
157
|
-
invenio_vocabularies/datastreams/transformers.py,sha256=
|
|
158
|
-
invenio_vocabularies/datastreams/writers.py,sha256=
|
|
163
|
+
invenio_vocabularies/datastreams/transformers.py,sha256=0ymZiHtNtgfYxt2MIjthtSzikRH1jAqhIAZ1yScoAHs,1733
|
|
164
|
+
invenio_vocabularies/datastreams/writers.py,sha256=PO9UPQ8rT4pstfoCiB-zCfuvCNOHRgFbysq6-spXm34,7218
|
|
159
165
|
invenio_vocabularies/datastreams/xml.py,sha256=HFa-lfxj7kFrr2IjeN1jxSLDfcvpBwO9nZLZF2-BryE,997
|
|
160
166
|
invenio_vocabularies/records/__init__.py,sha256=Uj7O6fYdAtLOkLXUGSAYPADBB7aqP4yVs9b6OAjA158,243
|
|
161
167
|
invenio_vocabularies/records/api.py,sha256=Lynt6Sz4BVN1orh0zgJ5ljhnUobEtcq8c22PmSeUo2U,1494
|
|
@@ -290,10 +296,10 @@ invenio_vocabularies/translations/zh_CN/LC_MESSAGES/messages.mo,sha256=g1I5aNO8r
|
|
|
290
296
|
invenio_vocabularies/translations/zh_CN/LC_MESSAGES/messages.po,sha256=vg8qC8ofpAdJ3mQz7mWM1ylKDpiNWXFs7rlMdSPkgKk,4629
|
|
291
297
|
invenio_vocabularies/translations/zh_TW/LC_MESSAGES/messages.mo,sha256=cqSm8NtMAwrP9O6qbmtkDtRT1e9D93qpsJN5X9_PPVw,600
|
|
292
298
|
invenio_vocabularies/translations/zh_TW/LC_MESSAGES/messages.po,sha256=9ACePz_EpB-LfcIJajZ2kp8Q04tcdrQLOtug162ZUss,4115
|
|
293
|
-
invenio_vocabularies-
|
|
294
|
-
invenio_vocabularies-
|
|
295
|
-
invenio_vocabularies-
|
|
296
|
-
invenio_vocabularies-
|
|
297
|
-
invenio_vocabularies-
|
|
298
|
-
invenio_vocabularies-
|
|
299
|
-
invenio_vocabularies-
|
|
299
|
+
invenio_vocabularies-6.0.0.dist-info/AUTHORS.rst,sha256=8d0p_WWE1r9DavvzMDi2D4YIGBHiMYcN3LYxqQOj8sY,291
|
|
300
|
+
invenio_vocabularies-6.0.0.dist-info/LICENSE,sha256=UvI8pR8jGWqe0sTkb_hRG6eIrozzWwWzyCGEpuXX4KE,1062
|
|
301
|
+
invenio_vocabularies-6.0.0.dist-info/METADATA,sha256=15W_c_CPnFjEGWzftlNZhUaqtu0yaPs8_Gcu8f-6zac,9466
|
|
302
|
+
invenio_vocabularies-6.0.0.dist-info/WHEEL,sha256=-G_t0oGuE7UD0DrSpVZnq1hHMBV9DD2XkS5v7XpmTnk,110
|
|
303
|
+
invenio_vocabularies-6.0.0.dist-info/entry_points.txt,sha256=qHHFkyU3r0COsKm5gCYuhP8tfsioBggxKAiEXNAbbjM,2803
|
|
304
|
+
invenio_vocabularies-6.0.0.dist-info/top_level.txt,sha256=x1gRNbaODF_bCD0SBLM3nVOFPGi06cmGX5X94WKrFKk,21
|
|
305
|
+
invenio_vocabularies-6.0.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{invenio_vocabularies-5.0.3.dist-info → invenio_vocabularies-6.0.0.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|