Changelog
All notable changes to this project will be documented in this file.
This project adheres to Semantic Versioning. See conventional commits for commit guidelines.
Unreleased
0.13.0 (2024-05-07)
Features
- client: make numeric arguments accept 'int | float' (#366) (
b53bbed
)
Documentation
- readme: add codeql badge (#365) (
eca3e3b
) - tutorial: fix typo (#353) (
65f75b8
) - add references to exceptions in docstrings (#351) (
4df8491
)
0.12.1 (2024-04-25)
Bug Fixes
- exceptions: rename nometadataformat to nometadataformats (#349) (
255acb2
)
Code Refactoring
- make all exceptions available in the main init file (#348) (
bad60ff
) - client: set up explicit default encoding in httpx.Client (#330) (
25ef4cb
) - iterator: rename params argument to query in itemiterator (#329) (
1de6cd5
)
Documentation
- add api reference pages for all modules (#344) (
8578031
) - add python standard library inventory (#338) (
20d176c
)
0.12.0 (2024-04-04)
Features
- client: add authentication parameter (#316) (
035c0fe
)
Documentation
- readme: add download badges to readme (#294) (
c375ea9
) - add pypi project version to release notes template (#282) (
c9d37ea
) - update environment section in bug report template (#281) (
a2c225a
) - add ci to types of changes in pr template (#272) (
f2745e7
) - rename code of conduct (#270) (
1994bf3
) - add license headers to documentation (#258) (
63aa318
)
0.11.0 (2024-01-25)
Features
- set up logging of http requests (#250) (
3df5ba1
)
Documentation
- update python version in contributor guide (#248) (
81366d8
) - readme: add pypi downloads badge to readme (#243) (
1f87b18
) - add initial citation.cff (#240) (
135a433
) - readme: add pypi package information to readme (#237) (
ada4dcf
) - readme: add minor improvements to readme (#234) (
9871491
) - make urls in docstrings clickable (#233) (
55bf699
)
0.10.0 (2024-01-22)
Breaking Changes
- make request arguments explicit (#212) (
c61fab3
) - remove request_args from scythe class and _request method (#199) (
2be27aa
) - drop support for oai-pmh version 1.0 (#183) (
8644c4b
) - drop support for python < 3.10 (#180) (
cb3b99c
)
Code Refactoring
- client: remove obsolete is_error_code() (#177) (
1e6dfe1
) - add accept text/xml headers to client config (#155) (
4d92818
)
Testing
- update getrecord example (#200) (
77c8ee6
)
Documentation
- update author name (
5f286e1
) - readme: update required python version (
8237d2c
) - readme: restyle project metadata table (#214) (
e2487cc
) - readme: rephrase introduction about fork (#202) (
de65418
) - add more alternatives (#192) (
5062a38
) - add full changelog to release notes (#149) (
19a98f5
)
0.9.0 (2023-11-18)
Features
- add context manager to scythe class (#144) (
d660f77
)
Performance improvements
- set up internal httpx.Client (#140) (
969e868
)
Documentation
- readme: add similar projects section (
f45781f
) - readme: add acknowledgments section (
20ecd64
) - readme: add short descriptions of requirements (
a573150
) - remove outdated credits page (
47c80e8
) - rename api docs page to client (
cf77d57
) - change breaking changes heading (#138) (
69a8572
)
0.8.0 (2023-11-16)
Note: Rename project to oaipmh-scythe when forking it from mloesch/sickle to afuetterer/oaipmh-scythe
Breaking Changes
- drop support for Python 2
- drop support for EOL Python 3.7 and below
- rename Sickle class to Scythe to reflect the change of the project name
- switch to PEP8 compliant names for methods (ListRecords() -> list_records())
- remove .next() method from iterator classes
Features
- set up default custom user agent (oaipmh-scythe/{version})
Performance Improvements
- make iterator classes yield their responses
Code Refactoring
- switch from requests to httpx
- make BaseOAIIterator an ABC
- move version information to about.py
- add a custom base exception
Testing
- switch from nose to pytest
- add tests for Python 3.8 - 3.12 in CI
- use canned responses from Zenodo to test harvesting logic (vcr.py)
Documentation
- update license text
- update authors and contributors
- update copyright notice in src files
- add contributor guide
- add security policy
- add issue and pull request templates
- add custom GitHub labels
- switch from Sphinx to mkdocs-material
- switch from Read the Docs to GitHub pages
- switch from reStructuredText to Markdown
- switch to Zenodo for harvesting examples
- update README badges
Other
- switch from Travis CI to Github actions for CI
- add scheduled dependency updates with Dependabot
- add pre-commit hooks (e.g. ruff, mypy)
- switch to src layout
- switch from setup.py to pyproject.toml
- switch to hatch for project setup
- add type annotations
- switch to Google style docstrings
- rename first tags of sickle project for consistency (e.g. v0.5 -> 0.5.0)
- enable CodeQL scanning
- add OpenSSF Scorecard report
0.7.0 (2020-05-17)
- method for record metadata extraction has been extracted (
Record.get_metadata()
) to make subclassing easier (mloesch/sickle#38) - retryable HTTP status codes and default wait time between retries can be customized (mloesch/sickle#21 mloesch/sickle#41)
- retry logic has been fixed:
max_retries
parameter now refers to no. of retries, not counting the initial request anymore - the default number of HTTP retries has been set to 0 (= no retries)
- fix for mloesch/sickle#39
0.6.5 (2020-01-12)
- fix: repr methods where causing an exception on Python 3 (mloesch/sickle#30)
0.6.4 (2018-10-02)
- fix: resumption token with empty body indicates last response (mloesch/sickle#25)
0.6.3 (2018-04-08)
- fix unicode problems (issues 20 & 22)
0.6.2 (2017-08-11)
- missing datestamp and identifier elements in record header don\'t break harvesting
- lxml resolve_entities disabled (http://lxml.de/FAQ.html#how-do-i-use-lxml-safely-as-a-web-service-endpoint)
0.6.1 (2016-11-13)
- it is now possible to pass any keyword arguments to requests
- the encoding used to decode the server response can be overridden
0.5.0 (2015-11-12)
- support for Python 3
- consider resumption tokens with empty tag bodies
0.4.0 (2015-05-31)
- bug fix: resumptionToken parameter is exclusive
- added support for harvesting complete OAI-XML responses
0.3.0 (2013-04-17)
- added support for protected OAI interfaces (basic authentication)
- made class mapping for OAI elements configurable
- added options for HTTP timeout and max retries
- added handling of HTTP 503 responses
0.2.0 (2013-02-26)
- OAI items are now represented as their own classes instead of XML elements
- library raises OAI-specific exceptions
- made lxml a required dependency
0.1.0 (2013-02-20)
First public release.