commonmeta-py 0.100__tar.gz → 0.101__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. {commonmeta_py-0.100 → commonmeta_py-0.101}/PKG-INFO +1 -1
  2. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/__init__.py +1 -1
  3. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/author_utils.py +7 -1
  4. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/readers/schema_org_reader.py +2 -3
  5. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/utils.py +5 -47
  6. {commonmeta_py-0.100 → commonmeta_py-0.101}/pyproject.toml +3 -9
  7. {commonmeta_py-0.100 → commonmeta_py-0.101}/.gitignore +0 -0
  8. {commonmeta_py-0.100 → commonmeta_py-0.101}/LICENSE +0 -0
  9. {commonmeta_py-0.100 → commonmeta_py-0.101}/README.md +0 -0
  10. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/api_utils.py +0 -0
  11. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/base_utils.py +0 -0
  12. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/cli.py +0 -0
  13. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/constants.py +0 -0
  14. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/crossref_utils.py +0 -0
  15. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/date_utils.py +0 -0
  16. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/doi_utils.py +0 -0
  17. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/metadata.py +0 -0
  18. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/readers/__init__.py +0 -0
  19. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/readers/bibtex_reader.py +0 -0
  20. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/readers/cff_reader.py +0 -0
  21. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/readers/codemeta_reader.py +0 -0
  22. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/readers/commonmeta_reader.py +0 -0
  23. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/readers/crossref_reader.py +0 -0
  24. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/readers/crossref_xml_reader.py +0 -0
  25. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/readers/csl_reader.py +0 -0
  26. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/readers/datacite_reader.py +0 -0
  27. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/readers/datacite_xml_reader.py +0 -0
  28. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/readers/inveniordm_reader.py +0 -0
  29. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/readers/json_feed_reader.py +0 -0
  30. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/readers/kbase_reader.py +0 -0
  31. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/readers/ris_reader.py +0 -0
  32. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/resources/cff_v1.2.0.json +0 -0
  33. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/resources/commonmeta_v0.12.json +0 -0
  34. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/resources/commonmeta_v0.13.json +0 -0
  35. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/resources/commonmeta_v0.14.json +0 -0
  36. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/resources/commonmeta_v0.15.json +0 -0
  37. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/resources/commonmeta_v0.16.json +0 -0
  38. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/resources/crossref/AccessIndicators.xsd +0 -0
  39. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/resources/crossref/JATS-journalpublishing1-3d2-mathml3-elements.xsd +0 -0
  40. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/resources/crossref/JATS-journalpublishing1-3d2-mathml3.xsd +0 -0
  41. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/resources/crossref/JATS-journalpublishing1-elements.xsd +0 -0
  42. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/resources/crossref/JATS-journalpublishing1-mathml3-elements.xsd +0 -0
  43. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/resources/crossref/JATS-journalpublishing1-mathml3.xsd +0 -0
  44. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/resources/crossref/JATS-journalpublishing1.xsd +0 -0
  45. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/resources/crossref/clinicaltrials.xsd +0 -0
  46. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/resources/crossref/common5.3.1.xsd +0 -0
  47. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/resources/crossref/crossref5.3.1.xsd +0 -0
  48. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/resources/crossref/crossref_query_output3.0.xsd +0 -0
  49. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/resources/crossref/fundref.xsd +0 -0
  50. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/resources/crossref/module-ali.xsd +0 -0
  51. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/resources/crossref/relations.xsd +0 -0
  52. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/resources/crossref-v0.2.json +0 -0
  53. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/resources/csl-data.json +0 -0
  54. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/resources/datacite-v4.5.json +0 -0
  55. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/resources/datacite-v4.5pr.json +0 -0
  56. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/resources/ietf-bcp-47.json +0 -0
  57. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/resources/iso-8601.json +0 -0
  58. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/resources/spdx/licenses.json +0 -0
  59. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/resources/spdx-schema.json +0 -0
  60. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/resources/styles/apa.csl +0 -0
  61. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/resources/styles/chicago-author-date.csl +0 -0
  62. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/resources/styles/harvard-cite-them-right.csl +0 -0
  63. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/resources/styles/ieee.csl +0 -0
  64. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/resources/styles/modern-language-association.csl +0 -0
  65. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/resources/styles/vancouver.csl +0 -0
  66. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/schema_utils.py +0 -0
  67. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/translators.py +0 -0
  68. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/writers/__init__.py +0 -0
  69. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/writers/bibtex_writer.py +0 -0
  70. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/writers/citation_writer.py +0 -0
  71. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/writers/commonmeta_writer.py +0 -0
  72. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/writers/crossref_xml_writer.py +0 -0
  73. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/writers/csl_writer.py +0 -0
  74. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/writers/datacite_writer.py +0 -0
  75. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/writers/inveniordm_writer.py +0 -0
  76. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/writers/ris_writer.py +0 -0
  77. {commonmeta_py-0.100 → commonmeta_py-0.101}/commonmeta/writers/schema_org_writer.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: commonmeta-py
3
- Version: 0.100
3
+ Version: 0.101
4
4
  Summary: Library for conversions to/from the Commonmeta scholarly metadata format
5
5
  Project-URL: Homepage, https://python.commonmeta.org
6
6
  Project-URL: Repository, https://github.com/front-matter/commonmeta-py
@@ -10,7 +10,7 @@ commonmeta-py is a Python library to convert scholarly metadata
10
10
  """
11
11
 
12
12
  __title__ = "commonmeta-py"
13
- __version__ = "0.100"
13
+ __version__ = "0.101"
14
14
  __author__ = "Martin Fenner"
15
15
  __license__ = "MIT"
16
16
 
@@ -1,4 +1,5 @@
1
1
  """Author utils module for commonmeta-py"""
2
+
2
3
  import re
3
4
  from typing import List
4
5
  from nameparser import HumanName
@@ -71,7 +72,11 @@ def get_one_author(author, **kwargs):
71
72
  or next(
72
73
  (
73
74
  format_name_identifier(i)
74
- for i in wrap(author.get("nameIdentifiers", None or author.get("identifiers", None)))
75
+ for i in wrap(
76
+ author.get(
77
+ "nameIdentifiers", None or author.get("identifiers", None)
78
+ )
79
+ )
75
80
  ),
76
81
  None,
77
82
  )
@@ -169,6 +174,7 @@ def is_personal_name(name):
169
174
  "Staff",
170
175
  "Lab",
171
176
  "Redaktion",
177
+ "Group",
172
178
  "area",
173
179
  ]
174
180
  ):
@@ -410,9 +410,8 @@ def get_html_meta(soup):
410
410
  pid = pid.get("content", None) or pid.get("href", None)
411
411
  data["@id"] = normalize_id(pid)
412
412
 
413
- _type = (
414
- soup.select_one("meta[name='dc.type']")
415
- or soup.select_one("meta[name='DC.type']")
413
+ _type = soup.select_one("meta[name='dc.type']") or soup.select_one(
414
+ "meta[name='DC.type']"
416
415
  )
417
416
  data["@type"] = _type["content"].capitalize() if _type else None
418
417
  if _type is None:
@@ -190,8 +190,6 @@ def normalize_url(
190
190
  if url is None or not isinstance(url, str):
191
191
  return None
192
192
  url = url.strip()
193
- if url.endswith("/"):
194
- url = url.strip("/")
195
193
  scheme = urlparse(url).scheme
196
194
  if not scheme or scheme not in ["http", "https"]:
197
195
  return None
@@ -202,55 +200,13 @@ def normalize_url(
202
200
  return url
203
201
 
204
202
 
205
- # def normalize_url(url: Optional[str], secure=False, fragments=False, lower=False) -> Optional[str]:
206
- # """Normalize URL"""
207
- # if url is None or not isinstance(url, str):
208
- # return None
209
- # try:
210
- # f = furl(url.strip())
211
- # f.path.normalize()
212
-
213
- # # only allow http and https schemes
214
- # if f.scheme not in ["http", "https"]:
215
- # return None
216
- # if secure and f.scheme == "http":
217
- # f.set(scheme="https")
218
-
219
- # # remove index.html
220
- # if f.path.segments and f.path.segments[-1] in ["index.html"]:
221
- # f.path.segments.pop(-1)
222
-
223
- # # remove fragments
224
- # if fragments:
225
- # f.remove(fragment=True)
226
-
227
- # # remove specific query parameters
228
- # f.remove(
229
- # [
230
- # "origin",
231
- # "ref",
232
- # "referrer",
233
- # "source",
234
- # "utm_content",
235
- # "utm_medium",
236
- # "utm_campaign",
237
- # "utm_source",
238
- # ]
239
- # )
240
-
241
- # if lower:
242
- # return f.url.lower().strip("/")
243
- # return f.url.strip("/")
244
- # except ValueError:
245
- # print(f"Error normalizing url {url}")
246
- # return None
247
-
248
-
249
203
  def normalize_cc_url(url: Optional[str]):
250
204
  """Normalize Creative Commons URL"""
251
205
  if url is None or not isinstance(url, str):
252
206
  return None
253
207
  url = normalize_url(url, secure=True)
208
+ if url and url.endswith("/"):
209
+ url = url.strip("/")
254
210
  return NORMALIZED_LICENSES.get(url, url)
255
211
 
256
212
 
@@ -1129,7 +1085,9 @@ def replace_curie(string: Optional[str]) -> Optional[str]:
1129
1085
  if string is None:
1130
1086
  return None
1131
1087
  match = re.sub(
1132
- r"((?:doi|DOI):\s?([\w.,@?^=%&:\/~+#-]*[\w@?^=%&\/~+#-]))", r'https://doi.org/\2', string
1088
+ r"((?:doi|DOI):\s?([\w.,@?^=%&:\/~+#-]*[\w@?^=%&\/~+#-]))",
1089
+ r"https://doi.org/\2",
1090
+ string,
1133
1091
  )
1134
1092
  if match is None:
1135
1093
  return None
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "commonmeta-py"
3
- version = "0.100"
3
+ version = "0.101"
4
4
  description = "Library for conversions to/from the Commonmeta scholarly metadata format"
5
5
  authors = [{ name = "Martin Fenner", email = "martin@front-matter.io" }]
6
6
  requires-python = ">=3.9,<4.0"
@@ -71,10 +71,7 @@ dev = [
71
71
  ]
72
72
 
73
73
  [tool.uv]
74
- default-groups = [
75
- "docs",
76
- "dev",
77
- ]
74
+ default-groups = ["docs", "dev"]
78
75
 
79
76
  [tool.hatch.build.targets.sdist]
80
77
  include = ["commonmeta"]
@@ -88,10 +85,7 @@ build-backend = "hatchling.build"
88
85
 
89
86
  [tool.ruff]
90
87
  line-length = 88
91
- select = [
92
- "F401",
93
- "F403",
94
- ]
88
+ select = ["F401", "F403"]
95
89
 
96
90
  [tool.tox]
97
91
  legacy_tox_ini = """
File without changes
File without changes
File without changes