# webpub manifest parser
🚨 **ARCHIVED** 🚨: This package has been archived, and is no longer maintained. Palace Manager has been updated to
use Pydantic instead of this parsing library. See [Palace Manager](https://github.com/ThePalaceProject/circulation)
for more information.
A parser for the
[Readium Web Publication Manifest (RWPM)](https://github.com/readium/webpub-manifest),
[Open Publication Distribution System 2.0 (OPDS 2.0)](https://drafts.opds.io/opds-2.0), and
[Open Distribution to Libraries 1.0 (ODL)](https://drafts.opds.io/odl-1.0.html) 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](https://drafts.opds.io/odl-1.0.html#21-opds-20) an OPDS 2 + ODL feed as:
- It must be a valid OPDS Feed as defined in [[OPDS-2](https://drafts.opds.io/odl-1.0.html#normative-references)] 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](https://drafts.opds.io/odl-1.0.html#normative-references)] 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`
```bash
pip install palace-webpub-manifest-parser
```
### Pyenv
You can optionally install the python version to run the library with using pyenv.
1. Install [pyenv](https://github.com/pyenv/pyenv#installation)
2. Install one of the supported Python versions:
```bash
pyenv install <python-version>
```
3. Install [pyenv-virtualenv](https://github.com/pyenv/pyenv-virtualenv#installation) plugin
4. Create a virtual environment:
```bash
pyenv virtualenv <virtual-env-name>
pyenv activate <virtual-env-name>
```
5. Install the library
```bash
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:
```bash
deactivate
```
2. Install `tox` and `tox-pyenv` globally:
```bash
pip install tox tox-pyenv
```
3. Make your code prettier using isort and black:
```bash
pre-commit run -a
```
4. To run the unit tests use the following command:
```bash
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:
```bash
tox -e py39
```
## Releasing
Releases will be automatically published to PyPI when new releases are created on github by the
[release.yml](.github/workflows/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.
Raw data
{
"_id": null,
"home_page": "https://github.com/ThePalaceProject/webpub-manifest-parser",
"name": "palace_webpub_manifest_parser",
"maintainer": null,
"docs_url": null,
"requires_python": "<4,>=3.8",
"maintainer_email": null,
"keywords": "ODL, OPDS 2.0, Open Publication Distribution System 2.0, Readium Web Publication Manifest, RWPM",
"author": "The Palace Project",
"author_email": "info@thepalaceproject.org",
"download_url": "https://files.pythonhosted.org/packages/e8/03/2c9a2a82b33b77f466c2341811dc73de666a5d48f2826fee9439d5aca58e/palace_webpub_manifest_parser-4.1.0.tar.gz",
"platform": null,
"description": "# webpub manifest parser\n\n\ud83d\udea8 **ARCHIVED** \ud83d\udea8: This package has been archived, and is no longer maintained. Palace Manager has been updated to\nuse Pydantic instead of this parsing library. See [Palace Manager](https://github.com/ThePalaceProject/circulation)\nfor more information.\n\nA parser for the\n[Readium Web Publication Manifest (RWPM)](https://github.com/readium/webpub-manifest),\n[Open Publication Distribution System 2.0 (OPDS 2.0)](https://drafts.opds.io/opds-2.0), and\n[Open Distribution to Libraries 1.0 (ODL)](https://drafts.opds.io/odl-1.0.html) formats.\n\n**Note**: This parser varys from the OPDS 2 + ODL spec in that it allows OPDS 2 + ODL feeds to contain\nnon-open access acquisition links.\n\nThe spec [defines](https://drafts.opds.io/odl-1.0.html#21-opds-20) an OPDS 2 + ODL feed as:\n\n- It must be a valid OPDS Feed as defined in [[OPDS-2](https://drafts.opds.io/odl-1.0.html#normative-references)] with\n one difference:\n - The requirement for the presence of an Acquisition Link is relaxed\n - Instead, each Publication listed in publications must either contain a licenses subcollection or an Open-Access\n Acquisition Link (http://opds-spec.org/acquisition/open-access)\n\nThe requirement that each link be an Open-Access Acquisition Link is overly restrictive, and prevents us from importing\nmixed OPDS2 and OPDS2 + ODL feeds. We relax the requirement to:\n\n- It must be a valid OPDS Feed as defined in [[OPDS-2](https://drafts.opds.io/odl-1.0.html#normative-references)] with\n one difference:\n - The requirement for the presence of an Acquisition Link is relaxed\n - Instead, each Publication listed in publications must either contain a licenses subcollection or an\n **Acquisition Link** (http://opds-spec.org/acquisition)\n\n## Usage\n\nInstall the library with `pip`\n\n```bash\npip install palace-webpub-manifest-parser\n```\n\n### Pyenv\n\nYou can optionally install the python version to run the library with using pyenv.\n\n1. Install [pyenv](https://github.com/pyenv/pyenv#installation)\n\n2. Install one of the supported Python versions:\n ```bash\n pyenv install <python-version>\n ```\n\n3. Install [pyenv-virtualenv](https://github.com/pyenv/pyenv-virtualenv#installation) plugin\n\n4. Create a virtual environment:\n ```bash\n pyenv virtualenv <virtual-env-name>\n pyenv activate <virtual-env-name>\n ```\n\n5. Install the library\n ```bash\n pip install palace-webpub-manifest-parser\n ```\n\n## Setting up a development environment\n\n### Running tests using tox\n\n1. Make sure that a virtual environment is not activated and deactivate it if needed:\n ```bash\n deactivate\n ```\n\n2. Install `tox` and `tox-pyenv` globally:\n ```bash\n pip install tox tox-pyenv\n ```\n\n3. Make your code prettier using isort and black:\n ```bash\n pre-commit run -a\n ```\n\n4. To run the unit tests use the following command:\n ```bash\n tox -e <python-version>\n ```\n where `<python-version>` is one of supported python versions:\n - py38\n - py39\n - py310\n - py311\n\n For example, to run the unit test using Python 3.9 run the following command:\n ```bash\n tox -e py39\n ```\n\n## Releasing\n\nReleases will be automatically published to PyPI when new releases are created on github by the\n[release.yml](.github/workflows/release.yml) workflow. Just create a release in github with the version\nnumber that you would like to use as the tag, and the rest will happen automatically.\n",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "A parser for the Readium Web Publication Manifest, OPDS 2.0 and ODL formats.",
"version": "4.1.0",
"project_urls": {
"Homepage": "https://github.com/ThePalaceProject/webpub-manifest-parser",
"Repository": "https://github.com/ThePalaceProject/webpub-manifest-parser"
},
"split_keywords": [
"odl",
" opds 2.0",
" open publication distribution system 2.0",
" readium web publication manifest",
" rwpm"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "f54929cfaf2a065a8704ab7b7b92819278aefbe8845e9f475ac09b32e21bf069",
"md5": "07d5ea7028d143517ed223ddd2a092e6",
"sha256": "266ca8a813ce0feed3b4436d6f5c232da0ff0c8d366417ae37b5ae81319c872d"
},
"downloads": -1,
"filename": "palace_webpub_manifest_parser-4.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "07d5ea7028d143517ed223ddd2a092e6",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4,>=3.8",
"size": 47440,
"upload_time": "2024-11-21T15:52:53",
"upload_time_iso_8601": "2024-11-21T15:52:53.943649Z",
"url": "https://files.pythonhosted.org/packages/f5/49/29cfaf2a065a8704ab7b7b92819278aefbe8845e9f475ac09b32e21bf069/palace_webpub_manifest_parser-4.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "e8032c9a2a82b33b77f466c2341811dc73de666a5d48f2826fee9439d5aca58e",
"md5": "38570615028706160b2884f4c8e5fd24",
"sha256": "a51444e6a2cd60ba5625e40ea42dcde222e6a5ef11db55c36b47a007d72ad2b0"
},
"downloads": -1,
"filename": "palace_webpub_manifest_parser-4.1.0.tar.gz",
"has_sig": false,
"md5_digest": "38570615028706160b2884f4c8e5fd24",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4,>=3.8",
"size": 36926,
"upload_time": "2024-11-21T15:52:55",
"upload_time_iso_8601": "2024-11-21T15:52:55.629927Z",
"url": "https://files.pythonhosted.org/packages/e8/03/2c9a2a82b33b77f466c2341811dc73de666a5d48f2826fee9439d5aca58e/palace_webpub_manifest_parser-4.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-11-21 15:52:55",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ThePalaceProject",
"github_project": "webpub-manifest-parser",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"tox": true,
"lcname": "palace_webpub_manifest_parser"
}