destiny_sdk 0.7.6__tar.gz → 0.8.0__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 (38) hide show
  1. {destiny_sdk-0.7.6 → destiny_sdk-0.8.0}/PKG-INFO +1 -1
  2. {destiny_sdk-0.7.6 → destiny_sdk-0.8.0}/pyproject.toml +1 -1
  3. {destiny_sdk-0.7.6 → destiny_sdk-0.8.0}/src/destiny_sdk/enhancements.py +54 -0
  4. {destiny_sdk-0.7.6 → destiny_sdk-0.8.0}/tests/unit/test_enhancements.py +21 -0
  5. {destiny_sdk-0.7.6 → destiny_sdk-0.8.0}/uv.lock +2 -2
  6. {destiny_sdk-0.7.6 → destiny_sdk-0.8.0}/.gitignore +0 -0
  7. {destiny_sdk-0.7.6 → destiny_sdk-0.8.0}/LICENSE +0 -0
  8. {destiny_sdk-0.7.6 → destiny_sdk-0.8.0}/README.md +0 -0
  9. {destiny_sdk-0.7.6 → destiny_sdk-0.8.0}/src/destiny_sdk/__init__.py +0 -0
  10. {destiny_sdk-0.7.6 → destiny_sdk-0.8.0}/src/destiny_sdk/auth.py +0 -0
  11. {destiny_sdk-0.7.6 → destiny_sdk-0.8.0}/src/destiny_sdk/client.py +0 -0
  12. {destiny_sdk-0.7.6 → destiny_sdk-0.8.0}/src/destiny_sdk/core.py +0 -0
  13. {destiny_sdk-0.7.6 → destiny_sdk-0.8.0}/src/destiny_sdk/identifiers.py +0 -0
  14. {destiny_sdk-0.7.6 → destiny_sdk-0.8.0}/src/destiny_sdk/imports.py +0 -0
  15. {destiny_sdk-0.7.6 → destiny_sdk-0.8.0}/src/destiny_sdk/labs/__init__.py +0 -0
  16. {destiny_sdk-0.7.6 → destiny_sdk-0.8.0}/src/destiny_sdk/labs/references.py +0 -0
  17. {destiny_sdk-0.7.6 → destiny_sdk-0.8.0}/src/destiny_sdk/parsers/__init__.py +0 -0
  18. {destiny_sdk-0.7.6 → destiny_sdk-0.8.0}/src/destiny_sdk/parsers/eppi_parser.py +0 -0
  19. {destiny_sdk-0.7.6 → destiny_sdk-0.8.0}/src/destiny_sdk/parsers/exceptions.py +0 -0
  20. {destiny_sdk-0.7.6 → destiny_sdk-0.8.0}/src/destiny_sdk/py.typed +0 -0
  21. {destiny_sdk-0.7.6 → destiny_sdk-0.8.0}/src/destiny_sdk/references.py +0 -0
  22. {destiny_sdk-0.7.6 → destiny_sdk-0.8.0}/src/destiny_sdk/robots.py +0 -0
  23. {destiny_sdk-0.7.6 → destiny_sdk-0.8.0}/src/destiny_sdk/search.py +0 -0
  24. {destiny_sdk-0.7.6 → destiny_sdk-0.8.0}/src/destiny_sdk/visibility.py +0 -0
  25. {destiny_sdk-0.7.6 → destiny_sdk-0.8.0}/tests/unit/__init__.py +0 -0
  26. {destiny_sdk-0.7.6 → destiny_sdk-0.8.0}/tests/unit/conftest.py +0 -0
  27. {destiny_sdk-0.7.6 → destiny_sdk-0.8.0}/tests/unit/labs/test_references.py +0 -0
  28. {destiny_sdk-0.7.6 → destiny_sdk-0.8.0}/tests/unit/parsers/test_eppi_parser.py +0 -0
  29. {destiny_sdk-0.7.6 → destiny_sdk-0.8.0}/tests/unit/test_auth.py +0 -0
  30. {destiny_sdk-0.7.6 → destiny_sdk-0.8.0}/tests/unit/test_client.py +0 -0
  31. {destiny_sdk-0.7.6 → destiny_sdk-0.8.0}/tests/unit/test_data/destiny_references.jsonl +0 -0
  32. {destiny_sdk-0.7.6 → destiny_sdk-0.8.0}/tests/unit/test_data/eppi_import.jsonl +0 -0
  33. {destiny_sdk-0.7.6 → destiny_sdk-0.8.0}/tests/unit/test_data/eppi_import_with_annotations.jsonl +0 -0
  34. {destiny_sdk-0.7.6 → destiny_sdk-0.8.0}/tests/unit/test_data/eppi_import_with_raw.jsonl +0 -0
  35. {destiny_sdk-0.7.6 → destiny_sdk-0.8.0}/tests/unit/test_data/eppi_report.json +0 -0
  36. {destiny_sdk-0.7.6 → destiny_sdk-0.8.0}/tests/unit/test_identifiers.py +0 -0
  37. {destiny_sdk-0.7.6 → destiny_sdk-0.8.0}/tests/unit/test_references.py +0 -0
  38. {destiny_sdk-0.7.6 → destiny_sdk-0.8.0}/tests/unit/test_robots.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: destiny_sdk
3
- Version: 0.7.6
3
+ Version: 0.8.0
4
4
  Summary: A software development kit (sdk) to support interaction with the DESTINY repository
5
5
  Author-email: Adam Hamilton <adam@futureevidence.org>, Andrew Harvey <andrew@futureevidence.org>, Daniel Breves <daniel@futureevidence.org>, Jack Walmisley <jack@futureevidence.org>, Tim Repke <tim.repke@pik-potsdam.de>
6
6
  License-Expression: Apache-2.0
@@ -35,7 +35,7 @@ license = "Apache-2.0"
35
35
  name = "destiny_sdk"
36
36
  readme = "README.md"
37
37
  requires-python = ">=3.12, <4"
38
- version = "0.7.6"
38
+ version = "0.8.0"
39
39
 
40
40
  [project.optional-dependencies]
41
41
  labs = []
@@ -50,6 +50,27 @@ class AuthorPosition(StrEnum):
50
50
  """The last author."""
51
51
 
52
52
 
53
+ class PublicationVenueType(StrEnum):
54
+ """
55
+ Type of publication venue.
56
+
57
+ Aligns with OpenAlex source types.
58
+ """
59
+
60
+ JOURNAL = auto()
61
+ """A journal publication."""
62
+ REPOSITORY = auto()
63
+ """A repository (includes preprint servers like arXiv, bioRxiv)."""
64
+ CONFERENCE = auto()
65
+ """A conference proceeding."""
66
+ EBOOK_PLATFORM = auto()
67
+ """An ebook platform."""
68
+ BOOK_SERIES = auto()
69
+ """A book series."""
70
+ OTHER = auto()
71
+ """Other venue type."""
72
+
73
+
53
74
  class Authorship(BaseModel):
54
75
  """
55
76
  Represents a single author and their association with a reference.
@@ -106,6 +127,35 @@ class Pagination(BaseModel):
106
127
  return value
107
128
 
108
129
 
130
+ class PublicationVenue(BaseModel):
131
+ """A publication venue (journal, repository, conference, etc.)."""
132
+
133
+ display_name: str | None = Field(
134
+ default=None,
135
+ description=(
136
+ "The display name of the venue (journal name, repository name, etc.)"
137
+ ),
138
+ )
139
+ venue_type: PublicationVenueType | None = Field(
140
+ default=None,
141
+ description="The type of venue: journal, repository, book, conference, etc.",
142
+ )
143
+ issn: list[str] | None = Field(
144
+ default=None,
145
+ description="List of ISSNs associated with this venue (print and electronic)",
146
+ )
147
+ issn_l: str | None = Field(
148
+ default=None,
149
+ description=(
150
+ "The linking ISSN - a canonical ISSN for the venue across format changes"
151
+ ),
152
+ )
153
+ host_organization_name: str | None = Field(
154
+ default=None,
155
+ description="Display name of the host organization (publisher)",
156
+ )
157
+
158
+
109
159
  class BibliographicMetadataEnhancement(BaseModel):
110
160
  """
111
161
  An enhancement which is made up of bibliographic metadata.
@@ -151,6 +201,10 @@ other works have cited this work
151
201
  default=None,
152
202
  description="Pagination info (volume, issue, pages).",
153
203
  )
204
+ publication_venue: PublicationVenue | None = Field(
205
+ default=None,
206
+ description="Publication venue information (journal, repository, etc.).",
207
+ )
154
208
 
155
209
  @property
156
210
  def fingerprint(self) -> str:
@@ -63,6 +63,27 @@ def test_bibliographic_metadata_enhancement_non_numeric_pagination_fields():
63
63
  assert bibliographic.pagination.last_page == "A15"
64
64
 
65
65
 
66
+ def test_bibliographic_metadata_enhancement_with_publication_venue():
67
+ """Test BibliographicMetadataEnhancement with publication_venue field."""
68
+ venue = destiny_sdk.enhancements.PublicationVenue(
69
+ display_name="Science",
70
+ venue_type=destiny_sdk.enhancements.PublicationVenueType.JOURNAL,
71
+ issn=["0036-8075"],
72
+ issn_l="0036-8075",
73
+ host_organization_name="AAAS",
74
+ )
75
+ bibliographic = destiny_sdk.enhancements.BibliographicMetadataEnhancement(
76
+ title="Test Article",
77
+ publication_venue=venue,
78
+ )
79
+ assert bibliographic.publication_venue is not None
80
+ assert bibliographic.publication_venue.display_name == "Science"
81
+ assert (
82
+ bibliographic.publication_venue.venue_type
83
+ == destiny_sdk.enhancements.PublicationVenueType.JOURNAL
84
+ )
85
+
86
+
66
87
  def test_abstract_content_enhancement_valid():
67
88
  # Create valid abstract content
68
89
  abstract_content = destiny_sdk.enhancements.AbstractContentEnhancement(
@@ -1,5 +1,5 @@
1
1
  version = 1
2
- revision = 3
2
+ revision = 2
3
3
  requires-python = ">=3.12, <4"
4
4
 
5
5
  [[package]]
@@ -233,7 +233,7 @@ wheels = [
233
233
 
234
234
  [[package]]
235
235
  name = "destiny-sdk"
236
- version = "0.7.6"
236
+ version = "0.8.0"
237
237
  source = { editable = "." }
238
238
  dependencies = [
239
239
  { name = "cachetools" },
File without changes
File without changes
File without changes