Metadata-Version: 2.4
Name: python-ntfy
Version: 0.7.2
Summary: An ntfy library aiming for feature completeness
Keywords: ntfy,notifications,push,http,api
Author: Matthew Cane
Author-email: Matthew Cane <matthew.cane0@gmail.com>
License-Expression: MIT
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Communications
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Dist: requests>=2.31.0
Requires-Dist: mkdocstrings[python]>=0.26.2,<0.30.0 ; extra == 'dev'
Requires-Dist: mypy>=1.12.0,<2.0.0 ; extra == 'dev'
Requires-Dist: pytest>=7.4.1,<9.0.0 ; extra == 'dev'
Requires-Dist: python-dotenv>=1.0.0,<2.0.0 ; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.21.1,<1.2.0 ; extra == 'dev'
Requires-Dist: pytest-codecov>=0.5.1,<0.8.0 ; extra == 'dev'
Requires-Dist: ruff>=0.7,<0.13 ; extra == 'dev'
Requires-Dist: mkdocs-material>=9.5.41,<10.0.0 ; extra == 'dev'
Requires-Dist: mkdocstrings-python>=1.12.1,<2.0.0 ; extra == 'dev'
Requires-Dist: types-pygments>=2.18.0.20240506 ; extra == 'dev'
Requires-Dist: types-colorama>=0.4.15.20240311 ; extra == 'dev'
Requires-Dist: types-requests>=2.32.0.20241016 ; extra == 'dev'
Requires-Dist: types-setuptools>=75.2.0.20241018,<81.0.0.0 ; extra == 'dev'
Requires-Python: >=3.12, <3.14
Project-URL: Changelog, https://github.com/matthewcane/python-ntfy/releases
Project-URL: Documentation, https://python-ntfy.readthedocs.io/
Project-URL: Homepage, https://github.com/matthewcane/python-ntfy
Project-URL: Issues, https://github.com/matthewcane/python-ntfy/issues
Project-URL: Repository, https://github.com/matthewcane/python-ntfy
Provides-Extra: dev
Description-Content-Type: text/markdown

# A Python Library For ntfy

![GitHub Release](https://img.shields.io/github/v/release/MatthewCane/python-ntfy?display_name=release&label=latest%20release&link=https%3A%2F%2Fgithub.com%2FMatthewCane%2Fpython-ntfy%2Freleases%2Flatest)
![PyPI - Downloads](https://img.shields.io/pypi/dm/python-ntfy?logo=pypi&link=http%3A%2F%2Fpypi.org%2Fproject%2Fpython-ntfy%2F)
![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/MatthewCane/python-ntfy/publish.yml?logo=githubactions&link=https%3A%2F%2Fgithub.com%2FMatthewCane%2Fpython-ntfy%2Factions%2Fworkflows%2Fpublish.yml)

An easy-to-use python library for the [ntfy notification service](https://ntfy.sh/). Aiming for full feature support and a super easy to use interface.

## Quickstart

1. Install using pip with `pip3 install python-ntfy`
2. Use the `NtfyClient` to send messages:

```python
# Import the ntfy client
from python_ntfy import NtfyClient

# Create an `NtfyClient` instance with a topic
client = NtfyClient(topic="Your topic")

# Send a message
client.send("Your message here")
```

For information on setting up authentication, see the [quickstart guide](https://matthewcane.github.io/python-ntfy/quickstart/).

## Documentation

See the full documentation at [https://matthewcane.github.io/python-ntfy/](https://matthewcane.github.io/python-ntfy/).

## Supported Features

- Username + password auth
- Access token auth
- Custom servers
- Sending plaintext messages
- Sending Markdown formatted text messages
- Scheduling messages
- Retrieving cached messages
- Scheduled delivery
- Tags
- Action buttons
- Email notifications

## Contributing

This project uses:

- [uv](https://github.com/astral-sh/uv) as its dependency manager
- [Just](https://github.com/casey/just) as a task runner
- [Pre-commit](https://pre-commit.com/) for running checks before each commit
- [Docker](https://www.docker.com/) and [Docker Compose](https://docs.docker.com/compose/) for running tests

These need to be installed separately to run the tasks.

To see all available tasks, run `just`.

Some useful tasks are:

- `just install` - Install dependencies (including dev dependencies)
- `just test` - Run all tests and checks
- `just check` - Run code quality checks (ruff + mypy)
- `just format` - Format code with ruff
- `just serve-docs` - Build and serve the docs locally

### Tests

This project is aiming for 95% code coverage. Any added features must include comprehensive tests.
