Metadata-Version: 2.5
Name: pipit-module-sdk
Version: 0.1.2
Summary: Python contracts for Pipit modules.
Requires-Python: <3.15,>=3.14
Requires-Dist: pluggy<2,>=1.5
Description-Content-Type: text/markdown

# pipit-module-sdk

Python plugin and module contracts for the **Pipit** smart display platform.

`pipit-module-sdk` allows developers to build pluggable modules for Pipit hosts (such as Raspberry Pi smart displays or local servers) to expose custom hardware integrations, sensors, hooks, and services.

---

## Installation

```bash
pip install pipit-module-sdk
```

*(Requires Python `>= 3.14`)*

---

## Quick Start

Create a module by subclassing `PipitModule`:

```python
from pipit_sdk import PipitModule, ModuleMetadata


class MyCustomModule(PipitModule):
    @property
    def metadata(self) -> ModuleMetadata:
        return ModuleMetadata(
            name="my_custom_module",
            version="0.1.0",
            title="My Custom Module",
            description="Integrates custom hardware sensors with Pipit",
        )

    def startup(self) -> None:
        # Acquire resources or connect to hardware
        print("Custom module started")

    def shutdown(self) -> None:
        # Clean up resources
        print("Custom module stopped")
```

### Exposing your module

In your module package's `pyproject.toml`, register the entry point:

```toml
[project.entry-points."pipit.modules"]
my_module = "my_package:MyCustomModule"
```

Pipit hosts will automatically discover and load your module at runtime.

---

## License

MIT / Proprietary (Pipit Project)
