invenio-vocabularies 7.4.0__py2.py3-none-any.whl → 8.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.

Files changed (55) hide show
  1. invenio_vocabularies/__init__.py +2 -2
  2. invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/CustomAwardForm.js +1 -1
  3. invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/FunderDropdown.js +1 -1
  4. invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/FundingField.js +1 -1
  5. invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/FundingFieldItem.js +1 -1
  6. invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/FundingModal.js +1 -1
  7. invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/NoAwardResults.js +1 -1
  8. invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/i18next-scanner.config.js +1 -1
  9. invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/i18next.js +1 -1
  10. invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/ar/translations.json +28 -0
  11. invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/bg/translations.json +28 -0
  12. invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/ca/translations.json +28 -0
  13. invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/cs/translations.json +28 -0
  14. invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/da/translations.json +28 -0
  15. invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/de/translations.json +28 -0
  16. invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/el/translations.json +28 -0
  17. invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/en/translations.json +28 -0
  18. invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/es/translations.json +28 -0
  19. invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/et/translations.json +28 -0
  20. invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/fa/translations.json +28 -0
  21. invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/fr/translations.json +28 -0
  22. invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/hr/translations.json +28 -0
  23. invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/hu/translations.json +28 -0
  24. invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/it/translations.json +28 -0
  25. invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/ja/translations.json +28 -0
  26. invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/ka/translations.json +28 -0
  27. invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/lt/translations.json +28 -0
  28. invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/no/translations.json +28 -0
  29. invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/pl/translations.json +28 -0
  30. invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/pt/translations.json +28 -0
  31. invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/ro/translations.json +28 -0
  32. invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/ru/translations.json +28 -0
  33. invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/sk/translations.json +28 -0
  34. invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/sv/translations.json +28 -0
  35. invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/tr/translations.json +28 -0
  36. invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/uk/translations.json +28 -0
  37. invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/zh_CN/translations.json +28 -0
  38. invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/zh_TW/translations.json +28 -0
  39. invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/package-lock.json +1992 -0
  40. invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/package.json +0 -4
  41. invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/scripts/compileCatalog.js +1 -1
  42. invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/scripts/initCatalog.js +1 -1
  43. invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/translations.pot +88 -0
  44. invenio_vocabularies/config.py +14 -14
  45. invenio_vocabularies/contrib/common/ror/datastreams.py +7 -1
  46. invenio_vocabularies/contrib/names/datastreams.py +2 -1
  47. invenio_vocabularies/contrib/names/s3client.py +9 -3
  48. invenio_vocabularies/datastreams/readers.py +12 -2
  49. {invenio_vocabularies-7.4.0.dist-info → invenio_vocabularies-8.0.0.dist-info}/METADATA +21 -5
  50. {invenio_vocabularies-7.4.0.dist-info → invenio_vocabularies-8.0.0.dist-info}/RECORD +55 -24
  51. {invenio_vocabularies-7.4.0.dist-info → invenio_vocabularies-8.0.0.dist-info}/WHEEL +1 -1
  52. {invenio_vocabularies-7.4.0.dist-info → invenio_vocabularies-8.0.0.dist-info}/entry_points.txt +0 -0
  53. {invenio_vocabularies-7.4.0.dist-info → invenio_vocabularies-8.0.0.dist-info}/licenses/AUTHORS.rst +0 -0
  54. {invenio_vocabularies-7.4.0.dist-info → invenio_vocabularies-8.0.0.dist-info}/licenses/LICENSE +0 -0
  55. {invenio_vocabularies-7.4.0.dist-info → invenio_vocabularies-8.0.0.dist-info}/top_level.txt +0 -0
@@ -2,7 +2,6 @@
2
2
  "name": "invenio-vocabularies-ui",
3
3
  "config": {
4
4
  "languages": [
5
- "af",
6
5
  "ar",
7
6
  "bg",
8
7
  "ca",
@@ -13,10 +12,8 @@
13
12
  "en",
14
13
  "es",
15
14
  "et",
16
- "et_EE",
17
15
  "fa",
18
16
  "fr",
19
- "gl",
20
17
  "hr",
21
18
  "hu",
22
19
  "it",
@@ -28,7 +25,6 @@
28
25
  "pt",
29
26
  "ro",
30
27
  "ru",
31
- "rw",
32
28
  "sk",
33
29
  "sv",
34
30
  "tr",
@@ -1,4 +1,4 @@
1
- // This file is part of React-Invenio-Deposit
1
+ // This file is part of Invenio-Vocabularies
2
2
  //
3
3
  // Invenio-administration is free software; you can redistribute it and/or modify it
4
4
  // under the terms of the MIT License; see LICENSE file for more details.
@@ -1,4 +1,4 @@
1
- // This file is part of React-Invenio-Deposit
1
+ // This file is part of Invenio-Vocabularies
2
2
  //
3
3
  // Invenio-administration is free software; you can redistribute it and/or modify it
4
4
  // under the terms of the MIT License; see LICENSE file for more details.
@@ -0,0 +1,88 @@
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: i18next-conv\n"
4
+ "mime-version: 1.0\n"
5
+ "Content-Type: text/plain; charset=utf-8\n"
6
+ "Content-Transfer-Encoding: 8bit\n"
7
+ "Plural-Forms: nplurals=2; plural=(n != 1)\n"
8
+ "POT-Creation-Date: 2025-05-13T09:10:50.615Z\n"
9
+ "PO-Revision-Date: 2025-05-13T09:10:50.616Z\n"
10
+ "Language: en\n"
11
+
12
+ msgid "Search for a funder by name"
13
+ msgstr "Search for a funder by name"
14
+
15
+ msgid "Funder"
16
+ msgstr "Funder"
17
+
18
+ msgid "Search for funder..."
19
+ msgstr "Search for funder..."
20
+
21
+ msgid "Additional information"
22
+ msgstr "Additional information"
23
+
24
+ msgid "optional"
25
+ msgstr "optional"
26
+
27
+ msgid "Number"
28
+ msgstr "Number"
29
+
30
+ msgid "Award/Grant number"
31
+ msgstr "Award/Grant number"
32
+
33
+ msgid "Title"
34
+ msgstr "Title"
35
+
36
+ msgid "Award/Grant Title"
37
+ msgstr "Award/Grant Title"
38
+
39
+ msgid "URL"
40
+ msgstr "URL"
41
+
42
+ msgid "Award/Grant URL"
43
+ msgstr "Award/Grant URL"
44
+
45
+ msgid "Add"
46
+ msgstr "Add"
47
+
48
+ msgid "Add custom"
49
+ msgstr "Add custom"
50
+
51
+ msgid "Edit"
52
+ msgstr "Edit"
53
+
54
+ msgid "Remove"
55
+ msgstr "Remove"
56
+
57
+ msgid "Open external link"
58
+ msgstr "Open external link"
59
+
60
+ msgid "Funder is required."
61
+ msgstr "Funder is required."
62
+
63
+ msgid "URL must be valid."
64
+ msgstr "URL must be valid."
65
+
66
+ msgid "URL must be set alongside title or number."
67
+ msgstr "URL must be set alongside title or number."
68
+
69
+ msgid "Add standard award/grant"
70
+ msgstr "Add standard award/grant"
71
+
72
+ msgid "Add custom funding"
73
+ msgstr "Add custom funding"
74
+
75
+ msgid "Search for awards/grants"
76
+ msgstr "Search for awards/grants"
77
+
78
+ msgid "Cancel"
79
+ msgstr "Cancel"
80
+
81
+ msgid "Change"
82
+ msgstr "Change"
83
+
84
+ msgid "Did not find your award/grant? "
85
+ msgstr "Did not find your award/grant? "
86
+
87
+ msgid "Add a custom award/grant."
88
+ msgstr "Add a custom award/grant."
@@ -12,7 +12,7 @@
12
12
 
13
13
  import re
14
14
 
15
- import idutils
15
+ from idutils import is_doi, is_gnd, is_isni, is_orcid, is_ror, is_url
16
16
  from invenio_i18n import lazy_gettext as _
17
17
 
18
18
  from .datastreams.readers import (
@@ -42,9 +42,9 @@ VOCABULARIES_SERVICE_CONFIG = VocabulariesServiceConfig
42
42
 
43
43
  VOCABULARIES_IDENTIFIER_SCHEMES = {
44
44
  "grid": {"label": _("GRID"), "validator": lambda x: True},
45
- "gnd": {"label": _("GND"), "validator": idutils.is_gnd},
46
- "isni": {"label": _("ISNI"), "validator": idutils.is_isni},
47
- "ror": {"label": _("ROR"), "validator": idutils.is_ror},
45
+ "gnd": {"label": _("GND"), "validator": is_gnd},
46
+ "isni": {"label": _("ISNI"), "validator": is_isni},
47
+ "ror": {"label": _("ROR"), "validator": is_ror},
48
48
  }
49
49
  """"Generic identifier schemes, usable by other vocabularies."""
50
50
 
@@ -72,7 +72,7 @@ VOCABULARIES_AFFILIATION_SCHEMES = {
72
72
 
73
73
  VOCABULARIES_FUNDER_SCHEMES = {
74
74
  **VOCABULARIES_IDENTIFIER_SCHEMES,
75
- "doi": {"label": _("DOI"), "validator": idutils.is_doi},
75
+ "doi": {"label": _("DOI"), "validator": is_doi},
76
76
  }
77
77
  """Funders allowed identifier schemes."""
78
78
 
@@ -80,8 +80,8 @@ VOCABULARIES_FUNDER_DOI_PREFIX = "10.13039"
80
80
  """DOI prefix for the identifier formed with the FundRef id."""
81
81
 
82
82
  VOCABULARIES_AWARD_SCHEMES = {
83
- "url": {"label": _("URL"), "validator": idutils.is_url},
84
- "doi": {"label": _("DOI"), "validator": idutils.is_doi},
83
+ "url": {"label": _("URL"), "validator": is_url},
84
+ "doi": {"label": _("DOI"), "validator": is_doi},
85
85
  }
86
86
  """Awards allowed identifier schemes."""
87
87
 
@@ -121,15 +121,15 @@ VOCABULARIES_AWARDS_EC_ROR_ID = "00k4n6c32"
121
121
  """ROR ID for EC funder."""
122
122
 
123
123
  VOCABULARIES_NAMES_SCHEMES = {
124
- "orcid": {"label": _("ORCID"), "validator": idutils.is_orcid, "datacite": "ORCID"},
125
- "isni": {"label": _("ISNI"), "validator": idutils.is_isni, "datacite": "ISNI"},
126
- "gnd": {"label": _("GND"), "validator": idutils.is_gnd, "datacite": "GND"},
124
+ "orcid": {"label": _("ORCID"), "validator": is_orcid, "datacite": "ORCID"},
125
+ "isni": {"label": _("ISNI"), "validator": is_isni, "datacite": "ISNI"},
126
+ "gnd": {"label": _("GND"), "validator": is_gnd, "datacite": "GND"},
127
127
  }
128
128
  """Names allowed identifier schemes."""
129
129
 
130
130
  VOCABULARIES_SUBJECTS_SCHEMES = {
131
- "gnd": {"label": _("GND"), "validator": idutils.is_gnd, "datacite": "GND"},
132
- "url": {"label": _("URL"), "validator": idutils.is_url},
131
+ "gnd": {"label": _("GND"), "validator": is_gnd, "datacite": "GND"},
132
+ "url": {"label": _("URL"), "validator": is_url},
133
133
  }
134
134
  """Subjects allowed identifier schemes."""
135
135
 
@@ -204,9 +204,9 @@ VOCABULARIES_AFFILIATIONS_EDMO_COUNTRY_MAPPING = {
204
204
  }
205
205
  """Affiliations EDMO Country name remapping dictionary."""
206
206
 
207
- VOCABULARIES_ORCID_ACCESS_KEY = "TODO"
207
+ VOCABULARIES_ORCID_ACCESS_KEY = "CHANGEME"
208
208
  """ORCID access key to access the s3 bucket."""
209
- VOCABULARIES_ORCID_SECRET_KEY = "TODO"
209
+ VOCABULARIES_ORCID_SECRET_KEY = "CHANGEME"
210
210
  """ORCID secret key to access the s3 bucket."""
211
211
  VOCABULARIES_ORCID_SUMMARIES_BUCKET = "v3.0-summaries"
212
212
  """ORCID summaries bucket name."""
@@ -1,6 +1,6 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  #
3
- # Copyright (C) 2024 CERN.
3
+ # Copyright (C) 2024-2025 CERN.
4
4
  # Copyright (C) 2024 California Institute of Technology.
5
5
  #
6
6
  # Invenio-Vocabularies is free software; you can redistribute it and/or
@@ -13,6 +13,7 @@ import io
13
13
 
14
14
  import arrow
15
15
  import requests
16
+ from flask import current_app
16
17
  from idutils import normalize_ror
17
18
 
18
19
  from invenio_vocabularies.datastreams.errors import ReaderError, TransformerError
@@ -93,6 +94,9 @@ class RORHTTPReader(BaseReader):
93
94
  if self._since:
94
95
  last_dump_date = self._get_last_dump_date(linksets)
95
96
  if last_dump_date < arrow.get(self._since):
97
+ current_app.logger.info(
98
+ f"Skipping ROR data dump (last dump: {last_dump_date}, since: {self._since})"
99
+ )
96
100
  return
97
101
 
98
102
  for linkset in linksets:
@@ -104,6 +108,8 @@ class RORHTTPReader(BaseReader):
104
108
  if len(zip_files) > 1:
105
109
  raise ReaderError(f"Expected 1 ZIP item but got {len(zip_files)}")
106
110
 
111
+ current_app.logger.info(f"Reading ROR data dump (URL: {file_url})")
112
+
107
113
  # Download the ZIP file and fully load the response bytes content in memory.
108
114
  # The bytes content are then wrapped by a BytesIO to be
109
115
  # file-like object (as required by `zipfile.ZipFile`).
@@ -1,6 +1,6 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  #
3
- # Copyright (C) 2021-2024 CERN.
3
+ # Copyright (C) 2021-2025 CERN.
4
4
  #
5
5
  # Invenio-Vocabularies is free software; you can redistribute it and/or
6
6
  # modify it under the terms of the MIT License; see LICENSE file for more
@@ -438,6 +438,7 @@ ORCID_PRESET_DATASTREAM_CONFIG = {
438
438
  "args": {
439
439
  "writer": {
440
440
  "type": "names-service",
441
+ "args": {"update": True},
441
442
  }
442
443
  },
443
444
  }
@@ -1,7 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  #
3
3
  # This file is part of Invenio.
4
- # Copyright (C) 2024 CERN.
4
+ # Copyright (C) 2024-2025 CERN.
5
5
  #
6
6
  # Invenio-Vocabularies is free software; you can redistribute it and/or
7
7
  # modify it under the terms of the MIT License; see LICENSE file for more
@@ -38,7 +38,13 @@ class S3OrcidClient(S3Client):
38
38
 
39
39
  def __init__(self):
40
40
  """Constructor."""
41
+ access_key = current_app.config["VOCABULARIES_ORCID_ACCESS_KEY"]
42
+ secret_key = current_app.config["VOCABULARIES_ORCID_SECRET_KEY"]
43
+ if access_key == "CHANGEME" or secret_key == "CHANGEME":
44
+ raise Exception(
45
+ "VOCABULARIES_ORCID_ACCESS_KEY and VOCABULARIES_ORCID_SECRET_KEY are not configured."
46
+ )
41
47
  super().__init__(
42
- access_key=current_app.config["VOCABULARIES_ORCID_ACCESS_KEY"],
43
- secret_key=current_app.config["VOCABULARIES_ORCID_SECRET_KEY"],
48
+ access_key=access_key,
49
+ secret_key=secret_key,
44
50
  )
@@ -407,15 +407,18 @@ class RDFReader(BaseReader):
407
407
  class SPARQLReader(BaseReader):
408
408
  """Generic reader class to fetch and process RDF data from a SPARQL endpoint."""
409
409
 
410
- def __init__(self, origin, query, mode="r", *args, **kwargs):
410
+ def __init__(self, origin, query, mode="r", client_params=None, *args, **kwargs):
411
411
  """Initialize the reader with the data source.
412
412
 
413
413
  :param origin: The SPARQL endpoint from which to fetch the RDF data.
414
414
  :param query: The SPARQL query to execute.
415
415
  :param mode: Mode of operation (default is 'r' for reading).
416
+ :param client_params: Additional client parameters to pass to the SPARQL client.
416
417
  """
417
418
  self._origin = origin
418
419
  self._query = query
420
+ self._client_params = client_params or {}
421
+
419
422
  super().__init__(origin=origin, mode=mode, *args, **kwargs)
420
423
 
421
424
  def _iter(self, fp, *args, **kwargs):
@@ -430,7 +433,14 @@ class SPARQLReader(BaseReader):
430
433
  "SPARQLReader does not support being chained after another reader"
431
434
  )
432
435
 
433
- sparql_client = sparql.SPARQLWrapper(self._origin)
436
+ # Avoid overwriting SPARQLWrapper's default value for the user agent string
437
+ if self._client_params.get("user_agent"):
438
+ sparql_client = sparql.SPARQLWrapper(
439
+ self._origin, agent=self._client_params.get("user_agent")
440
+ )
441
+ else:
442
+ sparql_client = sparql.SPARQLWrapper(self._origin)
443
+
434
444
  sparql_client.setQuery(self._query)
435
445
  sparql_client.setReturnFormat(sparql.JSON)
436
446
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: invenio-vocabularies
3
- Version: 7.4.0
3
+ Version: 8.0.0
4
4
  Summary: Invenio module for managing vocabularies.
5
5
  Home-page: https://github.com/inveniosoftware/invenio-vocabularies
6
6
  Author: CERN
@@ -13,9 +13,9 @@ Requires-Python: >=3.7
13
13
  License-File: LICENSE
14
14
  License-File: AUTHORS.rst
15
15
  Requires-Dist: invenio-i18n<4.0.0,>=3.0.0
16
- Requires-Dist: invenio-records-resources<8.0.0,>=7.0.0
17
- Requires-Dist: invenio-administration<4.0.0,>=3.0.0
18
- Requires-Dist: invenio-jobs<4.0.0,>=3.0.0
16
+ Requires-Dist: invenio-records-resources<9.0.0,>=8.0.0
17
+ Requires-Dist: invenio-administration<5.0.0,>=4.0.0
18
+ Requires-Dist: invenio-jobs<5.0.0,>=4.0.0
19
19
  Requires-Dist: lxml>=4.5.0
20
20
  Requires-Dist: pycountry<23.0.0,>=22.3.5
21
21
  Requires-Dist: PyYAML>=5.4.1
@@ -80,7 +80,7 @@ Invenio module for managing vocabularies, based on Invenio-Records and Invenio-R
80
80
 
81
81
  ..
82
82
  Copyright (C) 2020-2024 CERN.
83
- Copyright (C) 2024 Graz University of Technology.
83
+ Copyright (C) 2024-2025 Graz University of Technology.
84
84
 
85
85
  Invenio-Vocabularies is free software; you can redistribute it and/or
86
86
  modify it under the terms of the MIT License; see LICENSE file for more
@@ -89,6 +89,22 @@ Invenio module for managing vocabularies, based on Invenio-Records and Invenio-R
89
89
  Changes
90
90
  =======
91
91
 
92
+ Version v8.0.0 (released 2025-06-03)
93
+
94
+ - setup: bump major dependencies
95
+
96
+ Version v7.5.0 (released 2025-06-03)
97
+
98
+ - jobs: ORCID job update instead of import (insert-only)
99
+ - readers: add SPARQLReader client params to allow setting user_agent (#472)
100
+ - chore(i18n): removed deprecated languages from i18next
101
+ - chore(tests): update MANIFEST.in
102
+ - chore(i18n): init catalog & extract messages
103
+ - refactor(i18n): use vocabularies i18next for funding ui
104
+ - config: update idutils imports
105
+ - logging: add basic logging for ROR HTTP reader
106
+ - names: ORCID Public Data Sync: detect default keys
107
+
92
108
  Version v7.4.0 (released 2025-04-28)
93
109
 
94
110
  - i18n: Fix untranslated strings in vocabularies
@@ -1,6 +1,6 @@
1
- invenio_vocabularies/__init__.py,sha256=6CI_9K8k_wlmk5qqZIAZ3AL72d63k5HdsTJ47WpjxnM,429
1
+ invenio_vocabularies/__init__.py,sha256=6EfMtdvPstHaJqjJWpXbXkqFQoZeFEOOZtb_Yha2g2g,434
2
2
  invenio_vocabularies/cli.py,sha256=CpXTTIn2GTpUqNfLEMlRAp3JWst8ZjHVxoGYdhuuv_4,5959
3
- invenio_vocabularies/config.py,sha256=HCX670_PXw-fA1aaTto93N4579dr4M3xRxnA4nHZn18,6967
3
+ invenio_vocabularies/config.py,sha256=v6fTdeQXfUl0LavI2Xslql7mv3DVuIuGTqe2z3H3S7o,6942
4
4
  invenio_vocabularies/ext.py,sha256=GujJ4UARd4Fxf4z7zznRk9JAgHamZuYCOdrKU5czg00,5987
5
5
  invenio_vocabularies/factories.py,sha256=DM4jRUYu-so1jHRzhbNoNTnWKpYTZeRJhSP273giYws,6400
6
6
  invenio_vocabularies/fixtures.py,sha256=iEPkWf_ZjdP2D9r2sLdIlPoR8Rq2m5cnoFwywUGHneg,1696
@@ -30,20 +30,51 @@ invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/index.js,sha
30
30
  invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/index.js,sha256=iSx-bdQkKj6XA9NAam31bdcQmFygljQnjLcFjjK3lwU,245
31
31
  invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/index.js,sha256=7sSg482yJODQHU4jkP-hWJjpBOw7ubFr5nPZl5D_1gQ,262
32
32
  invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/AwardResults.js,sha256=AgqJg9GEcJvKZR4plZsH0j7cm9C3yjT9YCPI6uvmOyc,3499
33
- invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/CustomAwardForm.js,sha256=TfwrlA_GrINvN1LAdW7J6q_hkbsiEKxbCWc-7VVp8mY,4674
34
- invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/FunderDropdown.js,sha256=pPMB9Hirc8z3efquecrO_CKlfXE1ws6OqDB7fB30l5k,2431
35
- invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/FundingField.js,sha256=NfbBZOxqphYqWB3i0N5p3LDNo4WxM1ko50K_zuuFT28,7621
33
+ invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/CustomAwardForm.js,sha256=N4nCbvm6_vTCfuGyhuDnydUdk4cHyum14qYALr6p1WE,4675
34
+ invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/FunderDropdown.js,sha256=KOeeopPt1xoxQDmFDOV8nEi9YsH4VZPlc96hEzLxIQY,2432
35
+ invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/FundingField.js,sha256=L1IqUDkU8VIpos7Cv75A-ZkG2ZLSP8aP3uKR5F1TL5k,7622
36
36
  invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/FundingField.test.js,sha256=z_4lWkf3h9Uin8OzSBSKY1wpUxtbnjE2kRUjW80jAhA,35
37
- invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/FundingFieldItem.js,sha256=ZN4dEcHCVtSVFjzb1SAYPxmaY1Qk5ZdCt1yY7j6pvQs,4610
38
- invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/FundingModal.js,sha256=X2l1hjwboHFZWEEODvQS8Q7YntD6npj_TmZLiXkuZQs,7474
39
- invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/NoAwardResults.js,sha256=MfA9PWElQcaYznZD5a8TDe5csD6fmxU_6-LTA690mSg,962
37
+ invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/FundingFieldItem.js,sha256=FvxrKFOf9tm3O2Dmnd3B4pt-Tj3OCMUKg22-rGI5qC8,4611
38
+ invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/FundingModal.js,sha256=4ZewwPdzYyWt85VcorgLDe9SguJ0RJCJSTdChUcSxsM,7475
39
+ invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/NoAwardResults.js,sha256=hJkNlZTopOEBRQFVx0PqZAusWxcE9DiVlIqY1DniXMQ,963
40
40
  invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/index.js,sha256=67N7fTRVuqH-dkVW9gh3ehr0xGrswVHYaTqUPgYEmF0,319
41
- invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/i18next-scanner.config.js,sha256=7Xn2OSYbm-zzguRiNTlKLHdBnJCqLuI7MaFaQTMebbA,1814
42
- invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/i18next.js,sha256=B7b65r5V2hCUgFw1G2GnMNxCeSgHgW5W2vf8I5ZWwcc,1024
43
- invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/package.json,sha256=N1tSgd6KC1QSE80VsO75qrDHraE0YO4kXvrtRrQ7MU0,1026
41
+ invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/i18next-scanner.config.js,sha256=3fjrDsYsRo4rg0QduzNaMtYYhpfoPcRMzBmgJjkeN3A,1813
42
+ invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/i18next.js,sha256=EQEi7-F7BuT8KmkoRnxOLmmEQtsnd1KRO9KTCO-nG_E,1023
43
+ invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/package-lock.json,sha256=hTBYSYq5OQTA52XEyw5uwKAVULbjVW7VojWL7mnmFZ8,75872
44
+ invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/package.json,sha256=iZYIB9ASfxxAhvTUaQE16uWMraMWGVcAOvf_VXM68yo,975
45
+ invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/translations.pot,sha256=5HeUmnb3SxqGzGz9OAxd-eDr94HlHLy-I5q1Xps_NQY,1637
44
46
  invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/index.js,sha256=6hVcIOIVAKLu-DNyqlsYJ8_TvjmIzGFBK6EGm73cUfU,32
45
- invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/scripts/compileCatalog.js,sha256=wsNlTVpBoI3egVJPTGIHq5eP5AByRE6HNUoWYcu1IEE,1170
46
- invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/scripts/initCatalog.js,sha256=ghTi5iOIhT8AJoFGlxnBrHWiw2ts21dKwY_vWxmkiCE,682
47
+ invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/ar/translations.json,sha256=ZCZK3cQD_wfWAH4F1jwGopguCKbXFr7696GUhGSEfCk,664
48
+ invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/bg/translations.json,sha256=ZCZK3cQD_wfWAH4F1jwGopguCKbXFr7696GUhGSEfCk,664
49
+ invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/ca/translations.json,sha256=ZCZK3cQD_wfWAH4F1jwGopguCKbXFr7696GUhGSEfCk,664
50
+ invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/cs/translations.json,sha256=ZCZK3cQD_wfWAH4F1jwGopguCKbXFr7696GUhGSEfCk,664
51
+ invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/da/translations.json,sha256=ZCZK3cQD_wfWAH4F1jwGopguCKbXFr7696GUhGSEfCk,664
52
+ invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/de/translations.json,sha256=ZCZK3cQD_wfWAH4F1jwGopguCKbXFr7696GUhGSEfCk,664
53
+ invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/el/translations.json,sha256=ZCZK3cQD_wfWAH4F1jwGopguCKbXFr7696GUhGSEfCk,664
54
+ invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/en/translations.json,sha256=hzDTBHGRYtpXlypyiZpId7iX-z7DRgGT7IlkLzE37Hk,1065
55
+ invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/es/translations.json,sha256=ZCZK3cQD_wfWAH4F1jwGopguCKbXFr7696GUhGSEfCk,664
56
+ invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/et/translations.json,sha256=ZCZK3cQD_wfWAH4F1jwGopguCKbXFr7696GUhGSEfCk,664
57
+ invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/fa/translations.json,sha256=ZCZK3cQD_wfWAH4F1jwGopguCKbXFr7696GUhGSEfCk,664
58
+ invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/fr/translations.json,sha256=ZCZK3cQD_wfWAH4F1jwGopguCKbXFr7696GUhGSEfCk,664
59
+ invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/hr/translations.json,sha256=ZCZK3cQD_wfWAH4F1jwGopguCKbXFr7696GUhGSEfCk,664
60
+ invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/hu/translations.json,sha256=ZCZK3cQD_wfWAH4F1jwGopguCKbXFr7696GUhGSEfCk,664
61
+ invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/it/translations.json,sha256=ZCZK3cQD_wfWAH4F1jwGopguCKbXFr7696GUhGSEfCk,664
62
+ invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/ja/translations.json,sha256=ZCZK3cQD_wfWAH4F1jwGopguCKbXFr7696GUhGSEfCk,664
63
+ invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/ka/translations.json,sha256=ZCZK3cQD_wfWAH4F1jwGopguCKbXFr7696GUhGSEfCk,664
64
+ invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/lt/translations.json,sha256=ZCZK3cQD_wfWAH4F1jwGopguCKbXFr7696GUhGSEfCk,664
65
+ invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/no/translations.json,sha256=ZCZK3cQD_wfWAH4F1jwGopguCKbXFr7696GUhGSEfCk,664
66
+ invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/pl/translations.json,sha256=ZCZK3cQD_wfWAH4F1jwGopguCKbXFr7696GUhGSEfCk,664
67
+ invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/pt/translations.json,sha256=ZCZK3cQD_wfWAH4F1jwGopguCKbXFr7696GUhGSEfCk,664
68
+ invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/ro/translations.json,sha256=ZCZK3cQD_wfWAH4F1jwGopguCKbXFr7696GUhGSEfCk,664
69
+ invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/ru/translations.json,sha256=ZCZK3cQD_wfWAH4F1jwGopguCKbXFr7696GUhGSEfCk,664
70
+ invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/sk/translations.json,sha256=ZCZK3cQD_wfWAH4F1jwGopguCKbXFr7696GUhGSEfCk,664
71
+ invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/sv/translations.json,sha256=ZCZK3cQD_wfWAH4F1jwGopguCKbXFr7696GUhGSEfCk,664
72
+ invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/tr/translations.json,sha256=ZCZK3cQD_wfWAH4F1jwGopguCKbXFr7696GUhGSEfCk,664
73
+ invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/uk/translations.json,sha256=ZCZK3cQD_wfWAH4F1jwGopguCKbXFr7696GUhGSEfCk,664
74
+ invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/zh_CN/translations.json,sha256=ZCZK3cQD_wfWAH4F1jwGopguCKbXFr7696GUhGSEfCk,664
75
+ invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/zh_TW/translations.json,sha256=ZCZK3cQD_wfWAH4F1jwGopguCKbXFr7696GUhGSEfCk,664
76
+ invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/scripts/compileCatalog.js,sha256=JuQlCwGj8WMqdzJv8wRoIxg8Y5AyVEkJHDaKYdt-CS8,1169
77
+ invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/scripts/initCatalog.js,sha256=OoStok0-oRJNDcGgnYi0phLFPupWY-fhR4MW7AUmBEs,681
47
78
  invenio_vocabularies/contrib/__init__.py,sha256=C5eDia6tAVBCrbb5hd_KnxmczyBoF87NIBUCLID-Tzc,240
48
79
  invenio_vocabularies/contrib/affiliations/__init__.py,sha256=rV8YAzBRoSKsBYcVjCNJh6j7ITuPRfurwj9HJHRjkN8,565
49
80
  invenio_vocabularies/contrib/affiliations/affiliations.py,sha256=zqFwrAuYhZw7dTfm7dE8bUDxmyPqydUEjKTMPwWSjHk,2096
@@ -89,7 +120,7 @@ invenio_vocabularies/contrib/common/__init__.py,sha256=DdbGYRthEpQtObhY_YK4vOT9Z
89
120
  invenio_vocabularies/contrib/common/openaire/__init__.py,sha256=L7UtSimFJ3NI6j53bHzYKsWpFti1uo4fPb9OaTl7leI,244
90
121
  invenio_vocabularies/contrib/common/openaire/datastreams.py,sha256=BV6NtBCPFuii6KbTHGkgNQO5tt_3Hn9T_219bz8AINg,3514
91
122
  invenio_vocabularies/contrib/common/ror/__init__.py,sha256=3u2-fre1SQ-4nz3Ay0nxj3ntmMZ8Ujh_4eV-fyxfmtc,239
92
- invenio_vocabularies/contrib/common/ror/datastreams.py,sha256=wHpJy5mRKgJ4nQ7IniLyjxoxjTCZKHaEKKKr_OKrqFM,8139
123
+ invenio_vocabularies/contrib/common/ror/datastreams.py,sha256=y8b1akZGbUjcvVBdT8hCqeN5ZsrlHr8OWqN0v_M-h18,8408
93
124
  invenio_vocabularies/contrib/funders/__init__.py,sha256=YxFXBDnT7NM8rFwxT_Ge3xXR2n17EM0alknQq7r_Bt8,478
94
125
  invenio_vocabularies/contrib/funders/api.py,sha256=QKGGeSnPHSoBfucvpaVruXT_txYidofZ080G3IxFkIo,306
95
126
  invenio_vocabularies/contrib/funders/config.py,sha256=OAP7NB7oF3cmrLBlP9dubrAAtanPWvrQO1XZaImBf98,2242
@@ -116,12 +147,12 @@ invenio_vocabularies/contrib/names/__init__.py,sha256=DBfsM7JMETZGaV5QmXEwE7zhCa
116
147
  invenio_vocabularies/contrib/names/api.py,sha256=sEPn_jFX3gyoxgbdEUSIvOoPCUI8pocI6qCZO6mzCgQ,300
117
148
  invenio_vocabularies/contrib/names/components.py,sha256=PyYD1lOhmsuNoyDwM_huxkeo7kWd44vkEbJk9gqbDrM,769
118
149
  invenio_vocabularies/contrib/names/config.py,sha256=62jh4MP-CygnBpnRBVaCoGySHDEwhBSG1MnlUBumthw,2046
119
- invenio_vocabularies/contrib/names/datastreams.py,sha256=0NE8S6GDYw0xHL2_jVcxrnJeBybtgeHvysD2ZbYQptY,16236
150
+ invenio_vocabularies/contrib/names/datastreams.py,sha256=cp6hyR3MNH8f05Y9Zhdp5l7uRax2z1ps2KJq4ycPxCQ,16282
120
151
  invenio_vocabularies/contrib/names/models.py,sha256=SYdtDDG-y5Wq_d06YhiVO5n8gfxPW_mx-tECsIcv5H8,308
121
152
  invenio_vocabularies/contrib/names/names.py,sha256=jej3gkBgOJpKwp5RmWk1AP678WkMb0VqCpzbTHLTyEc,2675
122
153
  invenio_vocabularies/contrib/names/permissions.py,sha256=5xrpYsA3oQUJ5lJpF7wjRAFiW-pM6_yP1k9zllbRwnQ,844
123
154
  invenio_vocabularies/contrib/names/resources.py,sha256=Z8XqLKfFKE69zdTTvcTDmpEZ6wqiqjIH5tp0LzXTSwQ,1588
124
- invenio_vocabularies/contrib/names/s3client.py,sha256=c7B9_NbnXCfE4pE_yMTsT6uQ2hgbcRU-KY6nbWFuFzU,1063
155
+ invenio_vocabularies/contrib/names/s3client.py,sha256=9n_Moet-XCQe0NEt1lYzRk_vorcNoCnmylZPKTbaqLA,1342
125
156
  invenio_vocabularies/contrib/names/schema.py,sha256=o5RDy3C9GaqCG6om6q-52t5DAJDwApwbnTUvuZUDQPg,3773
126
157
  invenio_vocabularies/contrib/names/services.py,sha256=ntcGUTM0ZsKnRTxIKvZhKrRuup6Tjv965PATCaJR6Cc,2127
127
158
  invenio_vocabularies/contrib/names/jsonschemas/__init__.py,sha256=pdDZdyoxqWbAQ6ngiclhYoDUsGKgRDRPXlIDy0U5Jzg,241
@@ -166,7 +197,7 @@ invenio_vocabularies/datastreams/__init__.py,sha256=VPefh6k4Q3eYxKIW8I5zXUGucntp
166
197
  invenio_vocabularies/datastreams/datastreams.py,sha256=HUla8TmfVtBbaXT-raFy-oOEtxeMZztZuNUZ04ICVM0,7133
167
198
  invenio_vocabularies/datastreams/errors.py,sha256=IDUZ3gNtYGrhcOgApHCms1gNNJTyJzoMPmG5JtIeYNU,678
168
199
  invenio_vocabularies/datastreams/factories.py,sha256=kuuN4Zt7Xw58rwf0M03djqcdZOZRWgJdLK16-HmID24,2213
169
- invenio_vocabularies/datastreams/readers.py,sha256=DUuV-D2PLio3nVR0J-2knASq8rB-H14QBr3DoRL6UgA,14352
200
+ invenio_vocabularies/datastreams/readers.py,sha256=rDYnYASYgPvp9OH0mtlGHsOEJGzDNcnSbyD8arXkmKE,14803
170
201
  invenio_vocabularies/datastreams/tasks.py,sha256=0fuH_PRt9Ncv6WHM4pkYmfheRVGDKkERZiMPvgV4bZU,1129
171
202
  invenio_vocabularies/datastreams/transformers.py,sha256=PJFbmRSj3dpJ95NzONAIns5ksztshd99JOp_FLQAlJM,4133
172
203
  invenio_vocabularies/datastreams/writers.py,sha256=58BczBDaEJQpJM8R4SAXwlDy4UegbxX5thD3IhmnNq0,7291
@@ -269,10 +300,10 @@ invenio_vocabularies/translations/zh_CN/LC_MESSAGES/messages.mo,sha256=bpqywk-Hn
269
300
  invenio_vocabularies/translations/zh_CN/LC_MESSAGES/messages.po,sha256=vg8qC8ofpAdJ3mQz7mWM1ylKDpiNWXFs7rlMdSPkgKk,4629
270
301
  invenio_vocabularies/translations/zh_TW/LC_MESSAGES/messages.mo,sha256=o3nwy64PXTcRaAbRrJpYMICW5aVQ0sCdGIn2Xy4UccU,600
271
302
  invenio_vocabularies/translations/zh_TW/LC_MESSAGES/messages.po,sha256=9ACePz_EpB-LfcIJajZ2kp8Q04tcdrQLOtug162ZUss,4115
272
- invenio_vocabularies-7.4.0.dist-info/licenses/AUTHORS.rst,sha256=8d0p_WWE1r9DavvzMDi2D4YIGBHiMYcN3LYxqQOj8sY,291
273
- invenio_vocabularies-7.4.0.dist-info/licenses/LICENSE,sha256=UvI8pR8jGWqe0sTkb_hRG6eIrozzWwWzyCGEpuXX4KE,1062
274
- invenio_vocabularies-7.4.0.dist-info/METADATA,sha256=Za3nO02fkegDS9gda0nftCiosW-x0kdOL_BDyTj4OZQ,13525
275
- invenio_vocabularies-7.4.0.dist-info/WHEEL,sha256=XAkygS4h1cf0JYWV13kJhTWht2y9NqKAsZuiTHc2920,109
276
- invenio_vocabularies-7.4.0.dist-info/entry_points.txt,sha256=lget4Ekno9VRTq36oowWReIJA99165gOp0BOiiET60Y,3179
277
- invenio_vocabularies-7.4.0.dist-info/top_level.txt,sha256=x1gRNbaODF_bCD0SBLM3nVOFPGi06cmGX5X94WKrFKk,21
278
- invenio_vocabularies-7.4.0.dist-info/RECORD,,
303
+ invenio_vocabularies-8.0.0.dist-info/licenses/AUTHORS.rst,sha256=8d0p_WWE1r9DavvzMDi2D4YIGBHiMYcN3LYxqQOj8sY,291
304
+ invenio_vocabularies-8.0.0.dist-info/licenses/LICENSE,sha256=UvI8pR8jGWqe0sTkb_hRG6eIrozzWwWzyCGEpuXX4KE,1062
305
+ invenio_vocabularies-8.0.0.dist-info/METADATA,sha256=3k_ZfbtPNxsB4V9CQyeUB2QNJQjIirDvR34aP-VQ2oI,14107
306
+ invenio_vocabularies-8.0.0.dist-info/WHEEL,sha256=JNWh1Fm1UdwIQV075glCn4MVuCRs0sotJIq-J6rbxCU,109
307
+ invenio_vocabularies-8.0.0.dist-info/entry_points.txt,sha256=lget4Ekno9VRTq36oowWReIJA99165gOp0BOiiET60Y,3179
308
+ invenio_vocabularies-8.0.0.dist-info/top_level.txt,sha256=x1gRNbaODF_bCD0SBLM3nVOFPGi06cmGX5X94WKrFKk,21
309
+ invenio_vocabularies-8.0.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.0.0)
2
+ Generator: setuptools (80.9.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py2-none-any
5
5
  Tag: py3-none-any