Skip to content

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)

0.6.4 (2018-10-02)

0.6.3 (2018-04-08)

  • fix unicode problems (issues 20 & 22)

0.6.2 (2017-08-11)

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.