Metadata-Version: 2.1
Name: pyipp
Version: 0.12.0
Summary: Asynchronous Python client for Internet Printing Protocol (IPP)
Home-page: https://github.com/ctalkington/python-ipp
License: MIT
Keywords: ipp,api,async,client,printer
Author: Chris Talkington
Author-email: chris@talkingtontech.com
Maintainer: Chris Talkington
Maintainer-email: chris@talkingtontech.com
Requires-Python: >=3.9,<4.0
Classifier: Development Status :: 4 - Beta
Classifier: Framework :: AsyncIO
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.9
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Dist: aiohttp (>=3.0.0)
Requires-Dist: awesomeversion (>=21.10.1)
Requires-Dist: backoff (>=1.9.0)
Requires-Dist: deepmerge (>=0.1.0)
Requires-Dist: yarl (>=1.6.0)
Project-URL: Bug Tracker, https://github.com/ctalkington/python-ipp/issues
Project-URL: Changelog, https://github.com/ctalkington/python-ipp/releases
Project-URL: Documentation, https://github.com/ctalkington/python-ipp
Project-URL: Repository, https://github.com/ctalkington/python-ipp
Description-Content-Type: text/markdown

# Python: Internet Printing Protocol (IPP) Client

Asynchronous Python client for Internet Printing Protocol (IPP).

## About

This package allows you to monitor printers that support the Internet Printing Protocol (IPP) programmatically.

## Installation

```bash
pip install pyipp
```

## Usage

```python
import asyncio

from pyipp import IPP, Printer


async def main():
    """Show example of connecting to your IPP print server."""
    async with IPP("ipps://EPSON123456.local:631/ipp/print") as ipp:
        printer: Printer = await ipp.printer()
        print(printer)


if __name__ == "__main__":
    loop = asyncio.get_event_loop()
    loop.run_until_complete(main())
```

## Setting up development environment

This Python project is fully managed using the [Poetry](https://python-poetry.org) dependency
manager. But also relies on the use of NodeJS for certain checks during
development.

You need at least:

- Python 3.9+
- [Poetry](https://python-poetry.org/docs/#installation)
- NodeJS 16+ (including NPM)

To install all packages, including all development requirements:

```bash
npm install
poetry install
```

As this repository uses the [pre-commit](https://pre-commit.com/) framework, all changes
are linted and tested with each commit. You can run all checks and tests
manually, using the following command:

```bash
poetry run pre-commit run --all-files
```

To run just the Python tests:

```bash
poetry run pytest
```

