Metadata-Version: 2.4
Name: python-ntfy
Version: 0.9.0
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.31.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://static.pepy.tech/badge/python-ntfy/month)](https://pepy.tech/projects/python-ntfy)
![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

We welcome contributions! This project aims to provide a complete and user-friendly Python library for ntfy. Here's how you can help:

### Prerequisites

Before contributing, you'll need to install these tools:

- **[uv](https://github.com/astral-sh/uv)** - Fast Python package manager and installer
- **[Just](https://github.com/casey/just)** - Command runner for project tasks
- **[Docker](https://www.docker.com/)** and **[Docker Compose](https://docs.docker.com/compose/)** - For running tests with ntfy servers
- **[Pre-commit](https://pre-commit.com/)** - Git hooks for code quality (optional but recommended)

### Development Steps

- Fork the repository and make your changes
- Run `just setup` to install the pre-commit hooks
- Run `just format` to format the code
- Run `just test` to run all the tests
- Create a pull request with detailed description of your changes

Thank you for contributing to python-ntfy! 🚀
