invenio-vocabularies 6.5.0__py2.py3-none-any.whl → 6.6.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/contrib/affiliations/affiliations.py +2 -1
- invenio_vocabularies/contrib/awards/awards.py +2 -1
- invenio_vocabularies/contrib/funders/funders.py +2 -1
- invenio_vocabularies/contrib/names/jsonschemas/names/name-v1.0.0.json +28 -5
- invenio_vocabularies/contrib/names/mappings/os-v1/names/name-v2.0.0.json +4 -0
- invenio_vocabularies/contrib/names/mappings/os-v2/names/name-v2.0.0.json +4 -0
- invenio_vocabularies/contrib/names/permissions.py +14 -4
- invenio_vocabularies/contrib/names/schema.py +1 -0
- invenio_vocabularies/contrib/names/services.py +23 -14
- invenio_vocabularies/contrib/subjects/config.py +4 -1
- invenio_vocabularies/contrib/subjects/mesh/datastreams.py +7 -2
- invenio_vocabularies/jobs.py +15 -0
- invenio_vocabularies/services/generators.py +38 -0
- invenio_vocabularies/services/permissions.py +6 -1
- {invenio_vocabularies-6.5.0.dist-info → invenio_vocabularies-6.6.0.dist-info}/METADATA +12 -1
- {invenio_vocabularies-6.5.0.dist-info → invenio_vocabularies-6.6.0.dist-info}/RECORD +22 -21
- {invenio_vocabularies-6.5.0.dist-info → invenio_vocabularies-6.6.0.dist-info}/entry_points.txt +1 -0
- {invenio_vocabularies-6.5.0.dist-info → invenio_vocabularies-6.6.0.dist-info}/AUTHORS.rst +0 -0
- {invenio_vocabularies-6.5.0.dist-info → invenio_vocabularies-6.6.0.dist-info}/LICENSE +0 -0
- {invenio_vocabularies-6.5.0.dist-info → invenio_vocabularies-6.6.0.dist-info}/WHEEL +0 -0
- {invenio_vocabularies-6.5.0.dist-info → invenio_vocabularies-6.6.0.dist-info}/top_level.txt +0 -0
invenio_vocabularies/__init__.py
CHANGED
|
@@ -16,7 +16,8 @@ from invenio_records_resources.factories.factory import RecordTypeFactory
|
|
|
16
16
|
from invenio_records_resources.records.systemfields import ModelPIDField
|
|
17
17
|
from invenio_records_resources.resources.records.headers import etag_headers
|
|
18
18
|
|
|
19
|
-
from
|
|
19
|
+
from invenio_vocabularies.services.permissions import PermissionPolicy
|
|
20
|
+
|
|
20
21
|
from .config import AffiliationsSearchOptions, service_components
|
|
21
22
|
from .schema import AffiliationSchema
|
|
22
23
|
|
|
@@ -27,7 +27,8 @@ from invenio_records_resources.records.systemfields import (
|
|
|
27
27
|
)
|
|
28
28
|
from invenio_records_resources.resources.records.headers import etag_headers
|
|
29
29
|
|
|
30
|
-
from
|
|
30
|
+
from invenio_vocabularies.services.permissions import PermissionPolicy
|
|
31
|
+
|
|
31
32
|
from ..funders.api import Funder
|
|
32
33
|
from ..subjects.api import Subject
|
|
33
34
|
from .config import AwardsSearchOptions, service_components
|
|
@@ -21,7 +21,8 @@ from invenio_records_resources.factories.factory import RecordTypeFactory
|
|
|
21
21
|
from invenio_records_resources.records.systemfields import ModelPIDField
|
|
22
22
|
from invenio_records_resources.resources.records.headers import etag_headers
|
|
23
23
|
|
|
24
|
-
from
|
|
24
|
+
from invenio_vocabularies.services.permissions import PermissionPolicy
|
|
25
|
+
|
|
25
26
|
from .config import FundersSearchOptions, service_components
|
|
26
27
|
from .schema import FunderSchema
|
|
27
28
|
from .serializer import FunderL10NItemSchema
|
|
@@ -15,15 +15,38 @@
|
|
|
15
15
|
"description": "Identifier of the name scheme.",
|
|
16
16
|
"$ref": "local://definitions-v1.0.0.json#/identifier"
|
|
17
17
|
},
|
|
18
|
-
"name": {
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
"name": {
|
|
19
|
+
"type": "string"
|
|
20
|
+
},
|
|
21
|
+
"given_name": {
|
|
22
|
+
"type": "string"
|
|
23
|
+
},
|
|
24
|
+
"family_name": {
|
|
25
|
+
"type": "string"
|
|
26
|
+
},
|
|
21
27
|
"identifiers": {
|
|
22
28
|
"description": "Identifiers for the person.",
|
|
23
29
|
"type": "array",
|
|
24
|
-
"items": {
|
|
30
|
+
"items": {
|
|
31
|
+
"$ref": "local://definitions-v1.0.0.json#/identifiers_with_scheme"
|
|
32
|
+
},
|
|
25
33
|
"uniqueItems": true
|
|
26
34
|
},
|
|
35
|
+
"props": {
|
|
36
|
+
"type": "object",
|
|
37
|
+
"patternProperties": {
|
|
38
|
+
"^.*$": {
|
|
39
|
+
"oneOf": [
|
|
40
|
+
{
|
|
41
|
+
"type": "string"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"type": "boolean"
|
|
45
|
+
}
|
|
46
|
+
]
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
},
|
|
27
50
|
"affiliations": {
|
|
28
51
|
"description": "Affiliations of the person.",
|
|
29
52
|
"type": "array",
|
|
@@ -42,4 +65,4 @@
|
|
|
42
65
|
"uniqueItems": true
|
|
43
66
|
}
|
|
44
67
|
}
|
|
45
|
-
}
|
|
68
|
+
}
|
|
@@ -10,11 +10,21 @@
|
|
|
10
10
|
|
|
11
11
|
from invenio_records_permissions.generators import AuthenticatedUser, SystemProcess
|
|
12
12
|
|
|
13
|
-
from
|
|
13
|
+
from invenio_vocabularies.services.generators import IfTags
|
|
14
|
+
from invenio_vocabularies.services.permissions import PermissionPolicy
|
|
14
15
|
|
|
15
16
|
|
|
16
17
|
class NamesPermissionPolicy(PermissionPolicy):
|
|
17
|
-
"""
|
|
18
|
+
"""Names permission policy.
|
|
18
19
|
|
|
19
|
-
|
|
20
|
-
|
|
20
|
+
Names endpoints are protected, only authenticated users can access them.
|
|
21
|
+
"""
|
|
22
|
+
|
|
23
|
+
can_search = [
|
|
24
|
+
SystemProcess(),
|
|
25
|
+
AuthenticatedUser(),
|
|
26
|
+
]
|
|
27
|
+
can_read = [
|
|
28
|
+
SystemProcess(),
|
|
29
|
+
IfTags(["unlisted"], then_=[SystemProcess()], else_=[AuthenticatedUser()]),
|
|
30
|
+
]
|
|
@@ -42,6 +42,7 @@ class NameSchema(BaseVocabularySchema, ModePIDFieldVocabularyMixin):
|
|
|
42
42
|
)
|
|
43
43
|
)
|
|
44
44
|
affiliations = fields.List(fields.Nested(AffiliationRelationSchema))
|
|
45
|
+
props = fields.Dict(keys=fields.Str(), values=fields.Raw())
|
|
45
46
|
|
|
46
47
|
@validates_schema
|
|
47
48
|
def validate_names(self, data, **kwargs):
|
|
@@ -19,11 +19,12 @@ NamesServiceConfig = record_type.service_config_cls
|
|
|
19
19
|
class NamesService(record_type.service_cls):
|
|
20
20
|
"""Name service."""
|
|
21
21
|
|
|
22
|
-
def resolve(self, identity, id_, id_type):
|
|
22
|
+
def resolve(self, identity, id_, id_type, many=False):
|
|
23
23
|
"""Get the record with a given identifier.
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
param id_: The identifier value.
|
|
26
|
+
param id_type: The identifier type.
|
|
27
|
+
param many: If True, return a list of records.
|
|
27
28
|
"""
|
|
28
29
|
search_query = dsl.Q(
|
|
29
30
|
"bool",
|
|
@@ -36,20 +37,28 @@ class NamesService(record_type.service_cls):
|
|
|
36
37
|
|
|
37
38
|
# max_records = 1, we assume there cannot be duplicates
|
|
38
39
|
# the loading process needs to make sure of that
|
|
39
|
-
|
|
40
|
+
if many:
|
|
41
|
+
results = self._read_many(identity, search_query)
|
|
42
|
+
else:
|
|
43
|
+
results = self._read_many(identity, search_query, max_records=1)
|
|
44
|
+
|
|
40
45
|
# cant use the results_item because it returns dicts intead of records
|
|
41
46
|
total = results.hits.total["value"]
|
|
42
47
|
if total == 0:
|
|
43
48
|
# Not a PID but trated as such
|
|
44
49
|
raise PIDDoesNotExistError(pid_type=id_type, pid_value=id_)
|
|
50
|
+
if many:
|
|
51
|
+
for result in results:
|
|
52
|
+
record = self.record_cls.loads(result.to_dict())
|
|
53
|
+
self.require_permission(identity, "read", record=record)
|
|
54
|
+
return self.result_list(self, identity, results)
|
|
55
|
+
else:
|
|
56
|
+
record = self.record_cls.loads(results[0].to_dict())
|
|
57
|
+
self.require_permission(identity, "read", record=record)
|
|
45
58
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
identity,
|
|
53
|
-
record,
|
|
54
|
-
links_tpl=self.links_item_tpl,
|
|
55
|
-
)
|
|
59
|
+
return self.result_item(
|
|
60
|
+
self,
|
|
61
|
+
identity,
|
|
62
|
+
record,
|
|
63
|
+
links_tpl=self.links_item_tpl,
|
|
64
|
+
)
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
"""Subjects configuration."""
|
|
12
12
|
|
|
13
13
|
from flask import current_app
|
|
14
|
+
from invenio_i18n import get_locale
|
|
14
15
|
from invenio_i18n import lazy_gettext as _
|
|
15
16
|
from invenio_records_resources.services import SearchOptions
|
|
16
17
|
from invenio_records_resources.services.records.components import DataComponent
|
|
@@ -22,6 +23,7 @@ from ...services.querystr import FilteredSuggestQueryParser
|
|
|
22
23
|
subject_schemes = LocalProxy(
|
|
23
24
|
lambda: current_app.config["VOCABULARIES_SUBJECTS_SCHEMES"]
|
|
24
25
|
)
|
|
26
|
+
localized_title = LocalProxy(lambda: f"title.{get_locale()}^20")
|
|
25
27
|
|
|
26
28
|
|
|
27
29
|
class SubjectsSearchOptions(SearchOptions):
|
|
@@ -30,7 +32,8 @@ class SubjectsSearchOptions(SearchOptions):
|
|
|
30
32
|
suggest_parser_cls = FilteredSuggestQueryParser.factory(
|
|
31
33
|
filter_field="scheme",
|
|
32
34
|
fields=[ # suggest fields
|
|
33
|
-
"
|
|
35
|
+
"subject^100",
|
|
36
|
+
localized_title,
|
|
34
37
|
"synonyms^20",
|
|
35
38
|
],
|
|
36
39
|
)
|
|
@@ -22,14 +22,19 @@ class MeshSubjectsTransformer(BaseTransformer):
|
|
|
22
22
|
"""Apply transformation on steam entry."""
|
|
23
23
|
entry_data = stream_entry.entry
|
|
24
24
|
|
|
25
|
-
# ID in MeSH data is the URL, ex. https://id.nlm.nih.gov/mesh/D000001
|
|
25
|
+
# ID in MeSH data is in the URL, ex. https://id.nlm.nih.gov/mesh/D000001
|
|
26
26
|
# We just want to use the ID prefixed by "mesh:""
|
|
27
27
|
try:
|
|
28
28
|
mesh_id = entry_data["id"].split("/")[-1]
|
|
29
|
+
entry_data["id"] = "mesh:" + mesh_id
|
|
29
30
|
except Exception:
|
|
30
31
|
raise TransformerError("Not a valid MeSH ID.")
|
|
31
32
|
|
|
32
|
-
entry_data["
|
|
33
|
+
entry_data["title"] = title = entry_data.get("title", {})
|
|
34
|
+
# NOTE: MeSH import file comes with an English subject by default
|
|
35
|
+
if "en" not in title:
|
|
36
|
+
title["en"] = entry_data["subject"]
|
|
37
|
+
|
|
33
38
|
return stream_entry
|
|
34
39
|
|
|
35
40
|
|
invenio_vocabularies/jobs.py
CHANGED
|
@@ -18,6 +18,8 @@ from marshmallow_utils.fields import TZDateTime
|
|
|
18
18
|
|
|
19
19
|
from invenio_vocabularies.services.tasks import process_datastream
|
|
20
20
|
|
|
21
|
+
from .contrib.names.datastreams import ORCID_PRESET_DATASTREAM_CONFIG
|
|
22
|
+
|
|
21
23
|
|
|
22
24
|
class ArgsSchema(Schema):
|
|
23
25
|
"""Schema of task input arguments."""
|
|
@@ -194,3 +196,16 @@ class UpdateAwardsCordisJob(ProcessDataStreamJob):
|
|
|
194
196
|
],
|
|
195
197
|
}
|
|
196
198
|
}
|
|
199
|
+
|
|
200
|
+
|
|
201
|
+
class ImportORCIDJob(ProcessDataStreamJob):
|
|
202
|
+
"""Import ORCID data registered task."""
|
|
203
|
+
|
|
204
|
+
description = "Import ORCID data"
|
|
205
|
+
title = "Import ORCID data"
|
|
206
|
+
id = "import_orcid"
|
|
207
|
+
|
|
208
|
+
@classmethod
|
|
209
|
+
def default_args(cls, job_obj, **kwargs):
|
|
210
|
+
"""Generate default job arguments."""
|
|
211
|
+
return {"config": {**ORCID_PRESET_DATASTREAM_CONFIG}}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
#
|
|
3
|
+
# Copyright (C) 2024 CERN.
|
|
4
|
+
#
|
|
5
|
+
# Invenio-Vocabularies is free software; you can redistribute it and/or
|
|
6
|
+
# modify it under the terms of the MIT License; see LICENSE file for more
|
|
7
|
+
# details.
|
|
8
|
+
#
|
|
9
|
+
|
|
10
|
+
"""Vocabulary generators."""
|
|
11
|
+
|
|
12
|
+
from invenio_access import any_user, authenticated_user
|
|
13
|
+
from invenio_records_permissions.generators import ConditionalGenerator
|
|
14
|
+
from invenio_search.engine import dsl
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class IfTags(ConditionalGenerator):
|
|
18
|
+
"""Generator to filter based on tags.
|
|
19
|
+
|
|
20
|
+
This generator will filter out records based on the tags field.
|
|
21
|
+
"""
|
|
22
|
+
|
|
23
|
+
def __init__(self, tags, then_, else_):
|
|
24
|
+
"""Constructor."""
|
|
25
|
+
self.tags = tags or []
|
|
26
|
+
super().__init__(then_, else_)
|
|
27
|
+
|
|
28
|
+
def _condition(self, record=None, **kwargs):
|
|
29
|
+
"""Check if the record has the tags."""
|
|
30
|
+
return any(tag in record.get("tags", []) for tag in self.tags)
|
|
31
|
+
|
|
32
|
+
def query_filter(self, **kwargs):
|
|
33
|
+
"""Search based on configured tags."""
|
|
34
|
+
must_not_clauses = [dsl.Q("terms", tags=self.tags)]
|
|
35
|
+
return dsl.Q(
|
|
36
|
+
"bool",
|
|
37
|
+
must_not=must_not_clauses,
|
|
38
|
+
)
|
|
@@ -11,12 +11,17 @@
|
|
|
11
11
|
from invenio_records_permissions import RecordPermissionPolicy
|
|
12
12
|
from invenio_records_permissions.generators import AnyUser, SystemProcess
|
|
13
13
|
|
|
14
|
+
from invenio_vocabularies.services.generators import IfTags
|
|
15
|
+
|
|
14
16
|
|
|
15
17
|
class PermissionPolicy(RecordPermissionPolicy):
|
|
16
18
|
"""Permission policy."""
|
|
17
19
|
|
|
18
20
|
can_search = [SystemProcess(), AnyUser()]
|
|
19
|
-
can_read = [
|
|
21
|
+
can_read = [
|
|
22
|
+
SystemProcess(),
|
|
23
|
+
IfTags(["unlisted"], then_=[SystemProcess()], else_=[AnyUser()]),
|
|
24
|
+
]
|
|
20
25
|
can_create = [SystemProcess()]
|
|
21
26
|
can_update = [SystemProcess()]
|
|
22
27
|
can_delete = [SystemProcess()]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: invenio-vocabularies
|
|
3
|
-
Version: 6.
|
|
3
|
+
Version: 6.6.0
|
|
4
4
|
Summary: Invenio module for managing vocabularies.
|
|
5
5
|
Home-page: https://github.com/inveniosoftware/invenio-vocabularies
|
|
6
6
|
Author: CERN
|
|
@@ -83,6 +83,17 @@ https://invenio-vocabularies.readthedocs.io/
|
|
|
83
83
|
Changes
|
|
84
84
|
=======
|
|
85
85
|
|
|
86
|
+
Version v6.6.0 (released 2024-11-15)
|
|
87
|
+
|
|
88
|
+
- mesh: add title en if not present
|
|
89
|
+
- subjects: add subject to search fields
|
|
90
|
+
- jobs: add ORCID job
|
|
91
|
+
- global: Add unlisted tag
|
|
92
|
+
* This adds a new tag to the vocabularies to allow for unlisted
|
|
93
|
+
vocabularies. This is useful for vocabularies that are not meant to be
|
|
94
|
+
displayed in the UI.
|
|
95
|
+
* This requires to update the names mapping to add the props.
|
|
96
|
+
|
|
86
97
|
Version v6.5.0 (released 2024-10-31)
|
|
87
98
|
|
|
88
99
|
- subjects: euroscivoc: change default to latest version-less URL
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
invenio_vocabularies/__init__.py,sha256=
|
|
1
|
+
invenio_vocabularies/__init__.py,sha256=DkkDOJmftfh3xjufCTDk4WnNqDSoY5oEWAyLQ_kwtwI,377
|
|
2
2
|
invenio_vocabularies/cli.py,sha256=S3lBsLxsSYa83sCDaGZr5mP7TwPvmmwxzzbB13h8VBI,5856
|
|
3
3
|
invenio_vocabularies/config.py,sha256=l-mKnoZaIO0p-9K2gnlBvExdjzpQw5aU1lFI16ZI4Mk,5614
|
|
4
4
|
invenio_vocabularies/ext.py,sha256=GujJ4UARd4Fxf4z7zznRk9JAgHamZuYCOdrKU5czg00,5987
|
|
5
5
|
invenio_vocabularies/factories.py,sha256=mVg4yGKe58e4uS8rYe0DmIO6oMpmtNTcK3wH9eM5jVU,4380
|
|
6
6
|
invenio_vocabularies/fixtures.py,sha256=nNWwH04HFASjfj1oy5kMdcQGKmVjzUuA5wSw-ER1QAg,1585
|
|
7
|
-
invenio_vocabularies/jobs.py,sha256=
|
|
7
|
+
invenio_vocabularies/jobs.py,sha256=0aTukWooBPCvEgvnjJcQAZuMeS2H_m-RGULNIfJ5Gmc,6800
|
|
8
8
|
invenio_vocabularies/proxies.py,sha256=k7cTUgWfnCoYIuNqAj_VFi1zBN33KNNclRSVnBkObEM,711
|
|
9
9
|
invenio_vocabularies/views.py,sha256=PNJ5nvc3O7ASwNe56xmqy5YaU9n3UYF3W2JwvtE_kYs,1561
|
|
10
10
|
invenio_vocabularies/webpack.py,sha256=hzTM0qx6iiRHkmjti53yuZ5ebfPMR5mpO9uNewBat74,1891
|
|
@@ -44,7 +44,7 @@ invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/script
|
|
|
44
44
|
invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/scripts/initCatalog.js,sha256=ghTi5iOIhT8AJoFGlxnBrHWiw2ts21dKwY_vWxmkiCE,682
|
|
45
45
|
invenio_vocabularies/contrib/__init__.py,sha256=C5eDia6tAVBCrbb5hd_KnxmczyBoF87NIBUCLID-Tzc,240
|
|
46
46
|
invenio_vocabularies/contrib/affiliations/__init__.py,sha256=rV8YAzBRoSKsBYcVjCNJh6j7ITuPRfurwj9HJHRjkN8,565
|
|
47
|
-
invenio_vocabularies/contrib/affiliations/affiliations.py,sha256=
|
|
47
|
+
invenio_vocabularies/contrib/affiliations/affiliations.py,sha256=zqFwrAuYhZw7dTfm7dE8bUDxmyPqydUEjKTMPwWSjHk,2096
|
|
48
48
|
invenio_vocabularies/contrib/affiliations/api.py,sha256=5nIOvpfcseuAAg2XgblHc8jb7TAdfU79XOBRpL-p398,326
|
|
49
49
|
invenio_vocabularies/contrib/affiliations/config.py,sha256=kk-zAl7Uyi6N4qVOiCkBD9cN1KKOvDcILDHJ-zoIzJA,2084
|
|
50
50
|
invenio_vocabularies/contrib/affiliations/datastreams.py,sha256=M99qM0R2_Tpa1IR_WC9xI2jHQDaVjvEHSn7Mh17_AHI,6060
|
|
@@ -66,7 +66,7 @@ invenio_vocabularies/contrib/affiliations/mappings/v7/__init__.py,sha256=zr9YyyK
|
|
|
66
66
|
invenio_vocabularies/contrib/affiliations/mappings/v7/affiliations/affiliation-v1.0.0.json,sha256=PaHChFsf9r7xRnZ_7ro8SWNEXpWv4uUYrl32g0QESZs,2096
|
|
67
67
|
invenio_vocabularies/contrib/awards/__init__.py,sha256=KwCmwFalz-3pDs9iTa5TKUidBjLepnUMqpCBXRiQOO8,474
|
|
68
68
|
invenio_vocabularies/contrib/awards/api.py,sha256=OXukE7PLXs45BTtqVrhvGBNqLmQaI-CgXmHTCi36LZk,303
|
|
69
|
-
invenio_vocabularies/contrib/awards/awards.py,sha256=
|
|
69
|
+
invenio_vocabularies/contrib/awards/awards.py,sha256=GrC-ClFPWrGl_kij2aSpsidnHisBP5_V1kdkCaoYjmQ,2978
|
|
70
70
|
invenio_vocabularies/contrib/awards/config.py,sha256=PlDHabkWDUzwa1Fvk_U2hG83kQYBqM1IyChg8Yg_VlY,1630
|
|
71
71
|
invenio_vocabularies/contrib/awards/datastreams.py,sha256=4J6JFCqYosDO8y4FRq-LTWgRNPbeH4Tj4Tur6ziChtY,14234
|
|
72
72
|
invenio_vocabularies/contrib/awards/models.py,sha256=mM-kSNf7kDH3oIbV8epxxbUi7muYqi4JreXxgWXlVzw,318
|
|
@@ -93,7 +93,7 @@ invenio_vocabularies/contrib/funders/api.py,sha256=QKGGeSnPHSoBfucvpaVruXT_txYid
|
|
|
93
93
|
invenio_vocabularies/contrib/funders/config.py,sha256=EU7UrwLOkr2Bem9Skz_HJIxyBQRkXEdPT8zIuV8vbzI,2217
|
|
94
94
|
invenio_vocabularies/contrib/funders/datastreams.py,sha256=3tOwcN1mK5AVqtdU6KdguouGSUurPTO-FDWTKzK1eRo,2481
|
|
95
95
|
invenio_vocabularies/contrib/funders/facets.py,sha256=a068TVtt74Ncu0latb177LFK8EdnpbMOWecAKozA04M,1245
|
|
96
|
-
invenio_vocabularies/contrib/funders/funders.py,sha256=
|
|
96
|
+
invenio_vocabularies/contrib/funders/funders.py,sha256=j4V7lz0fR5rp5XBL3cwmQQElwpopIpv4v37xfi1rU0o,2357
|
|
97
97
|
invenio_vocabularies/contrib/funders/models.py,sha256=RAU-_YVOUNVCn03_XGJ2czcVwXTaZPk5w7X_bMAgMOk,314
|
|
98
98
|
invenio_vocabularies/contrib/funders/resources.py,sha256=He4gXd737ovdrHL-HB9dX7AGxp1BVJ9QteIO7JWUVSE,415
|
|
99
99
|
invenio_vocabularies/contrib/funders/schema.py,sha256=tEOdMU2i0z_3PkXL1yD1qIJeoAy_8n22xxv8V7iltz0,2480
|
|
@@ -116,25 +116,25 @@ invenio_vocabularies/contrib/names/config.py,sha256=8FVtMuq1NHC0cz8O-p_-Ng_IpHE9
|
|
|
116
116
|
invenio_vocabularies/contrib/names/datastreams.py,sha256=EKatHb0gkvcC9LCYBLIcN5pAgklBY4G43lZR_XE52wY,9505
|
|
117
117
|
invenio_vocabularies/contrib/names/models.py,sha256=SYdtDDG-y5Wq_d06YhiVO5n8gfxPW_mx-tECsIcv5H8,308
|
|
118
118
|
invenio_vocabularies/contrib/names/names.py,sha256=x_kcSrH48Q6Iqx1zeCcat5xRmTLe_KqZd5CbHCeR2C4,2498
|
|
119
|
-
invenio_vocabularies/contrib/names/permissions.py,sha256=
|
|
119
|
+
invenio_vocabularies/contrib/names/permissions.py,sha256=5xrpYsA3oQUJ5lJpF7wjRAFiW-pM6_yP1k9zllbRwnQ,844
|
|
120
120
|
invenio_vocabularies/contrib/names/resources.py,sha256=Z8XqLKfFKE69zdTTvcTDmpEZ6wqiqjIH5tp0LzXTSwQ,1588
|
|
121
121
|
invenio_vocabularies/contrib/names/s3client.py,sha256=c7B9_NbnXCfE4pE_yMTsT6uQ2hgbcRU-KY6nbWFuFzU,1063
|
|
122
|
-
invenio_vocabularies/contrib/names/schema.py,sha256=
|
|
123
|
-
invenio_vocabularies/contrib/names/services.py,sha256=
|
|
122
|
+
invenio_vocabularies/contrib/names/schema.py,sha256=zALcirT7toGnzLuLWlec6sTElpCxELNHvcANA75jScc,3418
|
|
123
|
+
invenio_vocabularies/contrib/names/services.py,sha256=IyZzZ9fovSQa_tqorWciRaPTrY5yv1clD9PHotdzYOQ,2125
|
|
124
124
|
invenio_vocabularies/contrib/names/jsonschemas/__init__.py,sha256=pdDZdyoxqWbAQ6ngiclhYoDUsGKgRDRPXlIDy0U5Jzg,241
|
|
125
|
-
invenio_vocabularies/contrib/names/jsonschemas/names/name-v1.0.0.json,sha256=
|
|
125
|
+
invenio_vocabularies/contrib/names/jsonschemas/names/name-v1.0.0.json,sha256=SmnQtet_AWZE1uZR8UY01IiO5QVLHRNAQ2cNubfP8-o,1573
|
|
126
126
|
invenio_vocabularies/contrib/names/mappings/__init__.py,sha256=l5hYJmrj83lds5GupnwCcwQn7cdJo6_4H4YYzrnBa54,242
|
|
127
127
|
invenio_vocabularies/contrib/names/mappings/os-v1/__init__.py,sha256=CKtF-xflE4QGF5P82Lj1ifEP1c7ekR24fc3SiTAkhsY,249
|
|
128
128
|
invenio_vocabularies/contrib/names/mappings/os-v1/names/name-v1.0.0.json,sha256=5Ybcq3fUMYx3u1MNKmHh-CWBtATS9MYpdEcwAM8EQ80,1943
|
|
129
|
-
invenio_vocabularies/contrib/names/mappings/os-v1/names/name-v2.0.0.json,sha256=
|
|
129
|
+
invenio_vocabularies/contrib/names/mappings/os-v1/names/name-v2.0.0.json,sha256=qnQyYP_eJedklQaNZHkzJL1Az1jzNz6MC-o4dksrN6I,3427
|
|
130
130
|
invenio_vocabularies/contrib/names/mappings/os-v2/__init__.py,sha256=p38Ausy2cu1OetTQYwx-9gOFoxGrtrmqjArSDpvxfMU,249
|
|
131
131
|
invenio_vocabularies/contrib/names/mappings/os-v2/names/name-v1.0.0.json,sha256=5Ybcq3fUMYx3u1MNKmHh-CWBtATS9MYpdEcwAM8EQ80,1943
|
|
132
|
-
invenio_vocabularies/contrib/names/mappings/os-v2/names/name-v2.0.0.json,sha256=
|
|
132
|
+
invenio_vocabularies/contrib/names/mappings/os-v2/names/name-v2.0.0.json,sha256=qnQyYP_eJedklQaNZHkzJL1Az1jzNz6MC-o4dksrN6I,3427
|
|
133
133
|
invenio_vocabularies/contrib/names/mappings/v7/__init__.py,sha256=qLGB8C0kPI3xubcfhI8t6Wb2bLlCmVYCiwQ08bKGz9g,252
|
|
134
134
|
invenio_vocabularies/contrib/names/mappings/v7/names/name-v1.0.0.json,sha256=5Ybcq3fUMYx3u1MNKmHh-CWBtATS9MYpdEcwAM8EQ80,1943
|
|
135
135
|
invenio_vocabularies/contrib/subjects/__init__.py,sha256=GtXZKA6VWG1oA1fUX2Wh92nd-1i7RnnQF6RprGhxkD4,591
|
|
136
136
|
invenio_vocabularies/contrib/subjects/api.py,sha256=QH8mxoLsa8qjJT1i1Tj6rRnpbH23plo2IMOJ56rnvbU,347
|
|
137
|
-
invenio_vocabularies/contrib/subjects/config.py,sha256=
|
|
137
|
+
invenio_vocabularies/contrib/subjects/config.py,sha256=lkui8VA9yoshA5_mIIkWrJrGfo0rBEpOu_wI0pbBjP4,1842
|
|
138
138
|
invenio_vocabularies/contrib/subjects/datastreams.py,sha256=CiLSTm9PukzLKm34VDmmKOH4A_pYnjbrshxAht1Fox4,1787
|
|
139
139
|
invenio_vocabularies/contrib/subjects/facets.py,sha256=qQ7_rppFBzsmrlZu4-MvOIdUcjeOmDA9gOHAcs0lWwI,695
|
|
140
140
|
invenio_vocabularies/contrib/subjects/models.py,sha256=8XgbVRxDDvhWPjMWsoCriNlOKdmV_113a14yLRtlvM4,363
|
|
@@ -154,7 +154,7 @@ invenio_vocabularies/contrib/subjects/mappings/os-v2/subjects/subject-v1.0.0.jso
|
|
|
154
154
|
invenio_vocabularies/contrib/subjects/mappings/v7/__init__.py,sha256=QK__a1749g2UN3fBqOr9jx8ccZHWAuvd6DSN4B1jJW4,258
|
|
155
155
|
invenio_vocabularies/contrib/subjects/mappings/v7/subjects/subject-v1.0.0.json,sha256=WNNWVsaf-pNxqV6p_IR2uIcwIBh30WJeP4IDIxzqutI,1810
|
|
156
156
|
invenio_vocabularies/contrib/subjects/mesh/__init__.py,sha256=P44hmgVNNTN5O_EmWgaeYJ91yqkGNoeKYo0wfif_wE4,241
|
|
157
|
-
invenio_vocabularies/contrib/subjects/mesh/datastreams.py,sha256=
|
|
157
|
+
invenio_vocabularies/contrib/subjects/mesh/datastreams.py,sha256=6W6bgQ7P_31kf3enkAqCBTFBqgrQ2BlV625vn0N9ibQ,1544
|
|
158
158
|
invenio_vocabularies/datastreams/__init__.py,sha256=VPefh6k4Q3eYxKIW8I5zXUGucntp7VHxaOR5Vhgkfmg,412
|
|
159
159
|
invenio_vocabularies/datastreams/datastreams.py,sha256=SpI6ivmf2LIDS2JSkxoM2v5kRmrPoRDtAG5fuzZO4oQ,6078
|
|
160
160
|
invenio_vocabularies/datastreams/errors.py,sha256=IDUZ3gNtYGrhcOgApHCms1gNNJTyJzoMPmG5JtIeYNU,678
|
|
@@ -190,7 +190,8 @@ invenio_vocabularies/services/__init__.py,sha256=6mi62EG21Id6x23nx0X193I6sVTakK6
|
|
|
190
190
|
invenio_vocabularies/services/components.py,sha256=d9C-24dEDM63gFm75nU-dXrrjS2zZi7Nfkv40BGnHwM,1941
|
|
191
191
|
invenio_vocabularies/services/config.py,sha256=H5l1PQ-72-LyLXPiouvU9_7lqWZcdKOrGVSTlyldIdE,4787
|
|
192
192
|
invenio_vocabularies/services/facets.py,sha256=qvdHoGSJJr90dZHSVe0-hlO1r0LtTnFVSjrt9PNuNAg,3872
|
|
193
|
-
invenio_vocabularies/services/
|
|
193
|
+
invenio_vocabularies/services/generators.py,sha256=jcXwb9Hiyek4o-cQ1G2osVgbTBKDbd-5siJMBOWE018,1116
|
|
194
|
+
invenio_vocabularies/services/permissions.py,sha256=83rNOwCuggdJji3VtWTQgytTrhfiWqASCpvI75DxEus,960
|
|
194
195
|
invenio_vocabularies/services/querystr.py,sha256=X3JHVF9B0O0iLWrnW3ok_bf_8jA-Cs_oAcYYkGOm3Uw,1829
|
|
195
196
|
invenio_vocabularies/services/results.py,sha256=6LZIpzWSbt9wpRNWgjA1uIM4RFooOYTkHcp5-PnIJdU,3767
|
|
196
197
|
invenio_vocabularies/services/schema.py,sha256=mwIBFylpQlWw1M6h_axc-z4Yd7X3Z1S0PxJOlZGpfrQ,4634
|
|
@@ -297,10 +298,10 @@ invenio_vocabularies/translations/zh_CN/LC_MESSAGES/messages.mo,sha256=g1I5aNO8r
|
|
|
297
298
|
invenio_vocabularies/translations/zh_CN/LC_MESSAGES/messages.po,sha256=vg8qC8ofpAdJ3mQz7mWM1ylKDpiNWXFs7rlMdSPkgKk,4629
|
|
298
299
|
invenio_vocabularies/translations/zh_TW/LC_MESSAGES/messages.mo,sha256=cqSm8NtMAwrP9O6qbmtkDtRT1e9D93qpsJN5X9_PPVw,600
|
|
299
300
|
invenio_vocabularies/translations/zh_TW/LC_MESSAGES/messages.po,sha256=9ACePz_EpB-LfcIJajZ2kp8Q04tcdrQLOtug162ZUss,4115
|
|
300
|
-
invenio_vocabularies-6.
|
|
301
|
-
invenio_vocabularies-6.
|
|
302
|
-
invenio_vocabularies-6.
|
|
303
|
-
invenio_vocabularies-6.
|
|
304
|
-
invenio_vocabularies-6.
|
|
305
|
-
invenio_vocabularies-6.
|
|
306
|
-
invenio_vocabularies-6.
|
|
301
|
+
invenio_vocabularies-6.6.0.dist-info/AUTHORS.rst,sha256=8d0p_WWE1r9DavvzMDi2D4YIGBHiMYcN3LYxqQOj8sY,291
|
|
302
|
+
invenio_vocabularies-6.6.0.dist-info/LICENSE,sha256=UvI8pR8jGWqe0sTkb_hRG6eIrozzWwWzyCGEpuXX4KE,1062
|
|
303
|
+
invenio_vocabularies-6.6.0.dist-info/METADATA,sha256=-goSCUDGKwEl_kvbJJdy3WTizJVJlQKdGq3lFhtqIqM,11082
|
|
304
|
+
invenio_vocabularies-6.6.0.dist-info/WHEEL,sha256=-G_t0oGuE7UD0DrSpVZnq1hHMBV9DD2XkS5v7XpmTnk,110
|
|
305
|
+
invenio_vocabularies-6.6.0.dist-info/entry_points.txt,sha256=ud9nfdMlhO_mu3okwmy5vQD48r3-rCU_pSR-lUtLeYE,3180
|
|
306
|
+
invenio_vocabularies-6.6.0.dist-info/top_level.txt,sha256=x1gRNbaODF_bCD0SBLM3nVOFPGi06cmGX5X94WKrFKk,21
|
|
307
|
+
invenio_vocabularies-6.6.0.dist-info/RECORD,,
|
{invenio_vocabularies-6.5.0.dist-info → invenio_vocabularies-6.6.0.dist-info}/entry_points.txt
RENAMED
|
@@ -51,6 +51,7 @@ invenio_vocabularies = invenio_vocabularies
|
|
|
51
51
|
|
|
52
52
|
[invenio_jobs.jobs]
|
|
53
53
|
import_awards_openaire = invenio_vocabularies.jobs:ImportAwardsOpenAIREJob
|
|
54
|
+
import_orcid_names = invenio_vocabularies.jobs:ImportORCIDJob
|
|
54
55
|
process_ror_affiliations = invenio_vocabularies.jobs:ProcessRORAffiliationsJob
|
|
55
56
|
process_ror_funders = invenio_vocabularies.jobs:ProcessRORFundersJob
|
|
56
57
|
update_awards_cordis = invenio_vocabularies.jobs:UpdateAwardsCordisJob
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|