Metadata-Version: 2.4
Name: hassette
Version: 0.8.1
Summary: Hassette is a simple, modern, async-first Python framework for building Home Assistant automations.
Keywords: home-assistant,automation,async,typed,framework,smart-home,iot
Author: Jessica
Author-email: Jessica <12jessicasmith34@gmail.com>
License-Expression: MIT
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Home Automation
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Framework :: AsyncIO
Classifier: Typing :: Typed
Requires-Dist: aiohttp>=3.11.18
Requires-Dist: anyio>=4.10.0
Requires-Dist: coloredlogs>=15.0.1
Requires-Dist: croniter>=6.0.0
Requires-Dist: deepdiff>=8.6.1
Requires-Dist: orjson>=3.10.18
Requires-Dist: packaging>=25.0
Requires-Dist: platformdirs>=4.3.8
Requires-Dist: pydantic-settings>=2.9.1
Requires-Dist: python-dotenv>=1.1.0
Requires-Dist: tenacity>=9.1.2
Requires-Dist: watchfiles>=1.1.0
Requires-Dist: whenever>=0.8.4
Requires-Python: >=3.11, <3.14
Project-URL: Bug Reports, https://github.com/nodejsmith/hassette/issues
Project-URL: Changelog, https://github.com/nodejsmith/hassette/blob/main/CHANGELOG.md
Project-URL: Documentation, https://github.com/nodejsmith/hassette#readme
Project-URL: Homepage, https://github.com/nodejsmith/hassette
Project-URL: Repository, https://github.com/nodejsmith/hassette
Description-Content-Type: text/markdown

# Hassette

[![PyPI version](https://badge.fury.io/py/hassette.svg)](https://badge.fury.io/py/hassette)
[![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Documentation Status](https://readthedocs.org/projects/hassette/badge/?version=stable)](https://hassette.readthedocs.io/en/latest/?badge=stable)

A simple, modern, async-first Python framework for building Home Assistant automations.

Documentation: https://hassette.readthedocs.io

Why Hassette?
-------------
- 🌟 Async-first core built on asyncio
- 🔧 Typed events, states, and API interactions
- 📝 Typed app configuration, typed events, typed states, typed API, typed everything
- 🚌 Powerful event bus with predicates, debounce, and throttle
- ⏰ Flexible scheduling (cron and intervals)
- ⚙️ Simple, TOML-based configuration with Pydantic validation

## 📖 Examples

Check out the [`examples/`](https://github.com/NodeJSmith/hassette/tree/main/examples) directory for more complete examples:
- Based on AppDaemon's examples:
  - [Battery monitoring](https://github.com/NodeJSmith/hassette/tree/main/examples/apps/battery.py)
  - [Presence detection](https://github.com/NodeJSmith/hassette/tree/main/examples/apps/presence.py)
  - [Sensor notifications](https://github.com/NodeJSmith/hassette/tree/main/examples/apps/sensor_notification.py)
- Cleaned up versions of my own apps:
  - [Office Button App](https://github.com/NodeJSmith/hassette/tree/main/examples/apps/office_button_app.py)
  - [Laundry Room Lights](https://github.com/NodeJSmith/hassette/tree/main/examples/apps/laundry_room_light.py)
- Docker Compose Example: [docker-compose.yml](https://github.com/NodeJSmith/hassette/blob/main/examples/docker-compose.yml)
- hassette.toml example: [hassette.toml](https://github.com/NodeJSmith/hassette/blob/main/examples/config/hassette.toml)

## 🛣️ Status & Roadmap

Hassette is brand new and under active development. We follow semantic versioning and recommend pinning a minor version while the API stabilizes.

### Current Focus Areas

- 📚 **Comprehensive documentation**
- 🔐 **Enhanced type safety**: Service calls/responses, additional state types
- 🏗️ **Entity classes**: Include state data and service functionality (e.g. `LightEntity.turn_on()`)
- 🔄 **Enhanced error handling**: Better retry logic and error recovery
- 🧪 **Testing improvements**:
  - 📊 More tests for core and utilities
  - 🛠️ Test fixtures and framework for user apps
  - 🚫 No more manual state changes in HA Developer Tools for testing!

See the full [roadmap](https://github.com/NodeJSmith/hassette/blob/main/roadmap.md) for details - open an issue or PR if you'd like to contribute or provide feedback!

## 🤝 Contributing

Hassette is in active development and contributions are welcome! Whether you're:

- 🐛 Reporting bugs
- 💡 Suggesting features
- 📝 Improving documentation
- 🔧 Contributing code

Early feedback and contributions help shape the project's direction.

## 📄 License

[MIT](LICENSE)
