Skip to content

A parser for the Readium Web Publication Manifest (RWPM) and Open Publication Distribution System 2.0 (OPDS 2.0) formats.

License

Notifications You must be signed in to change notification settings

ThePalaceProject/webpub-manifest-parser

Repository files navigation

webpub manifest parser

Run Tests PyPI Code style: black Imports: isort pre-commit Python: 3.8,3.9,3.10,3.11

A parser for the Readium Web Publication Manifest (RWPM), Open Publication Distribution System 2.0 (OPDS 2.0), and Open Distribution to Libraries 1.0 (ODL) formats.

Note: This parser varys from the OPDS 2 + ODL spec in that it allows OPDS 2 + ODL feeds to contain non-open access acquisition links.

The spec defines an OPDS 2 + ODL feed as:

  • It must be a valid OPDS Feed as defined in [OPDS-2] with one difference:
    • The requirement for the presence of an Acquisition Link is relaxed
    • Instead, each Publication listed in publications must either contain a licenses subcollection or an Open-Access Acquisition Link (http://opds-spec.org/acquisition/open-access)

The requirement that each link be an Open-Access Acquisition Link is overly restrictive, and prevents us from importing mixed OPDS2 and OPDS2 + ODL feeds. We relax the requirement to:

  • It must be a valid OPDS Feed as defined in [OPDS-2] with one difference:
    • The requirement for the presence of an Acquisition Link is relaxed
    • Instead, each Publication listed in publications must either contain a licenses subcollection or an Acquisition Link (http://opds-spec.org/acquisition)

Usage

Install the library with pip

pip install palace-webpub-manifest-parser

Pyenv

You can optionally install the python version to run the library with using pyenv.

  1. Install pyenv

  2. Install one of the supported Python versions:

    pyenv install <python-version>
  3. Install pyenv-virtualenv plugin

  4. Create a virtual environment:

    pyenv virtualenv <virtual-env-name>
    pyenv activate <virtual-env-name>
  5. Install the library

    pip install palace-webpub-manifest-parser

Setting up a development environment

Running tests using tox

  1. Make sure that a virtual environment is not activated and deactivate it if needed:

    deactivate
  2. Install tox and tox-pyenv globally:

    pip install tox tox-pyenv
  3. Make your code prettier using isort and black:

    pre-commit run -a
  4. To run the unit tests use the following command:

    tox -e <python-version>

    where <python-version> is one of supported python versions:

    • py38
    • py39
    • py310
    • py311

    For example, to run the unit test using Python 3.9 run the following command:

    tox -e py39

Releasing

Releases will be automatically published to PyPI when new releases are created on github by the release.yml workflow. Just create a release in github with the version number that you would like to use as the tag, and the rest will happen automatically.

About

A parser for the Readium Web Publication Manifest (RWPM) and Open Publication Distribution System 2.0 (OPDS 2.0) formats.

Topics

Resources

License

Stars

Watchers

Forks

Languages