palace_webpub_manifest_parser


Namepalace_webpub_manifest_parser JSON
Version 4.1.0 PyPI version JSON
download
home_pagehttps://github.com/ThePalaceProject/webpub-manifest-parser
SummaryA parser for the Readium Web Publication Manifest, OPDS 2.0 and ODL formats.
upload_time2024-11-21 15:52:55
maintainerNone
docs_urlNone
authorThe Palace Project
requires_python<4,>=3.8
licenseApache-2.0
keywords odl opds 2.0 open publication distribution system 2.0 readium web publication manifest rwpm
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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"
}
        
Elapsed time: 2.83181s