Metadata-Version: 2.4
Name: aioskybellgen
Version: 0.1.1
Summary: A Skybell Gen5 API Python library running on Python 3.
Author-email: Tim Carey <tlcareyintx@gmail.com>
Maintainer-email: Tim Carey <tlcareyintx@gmail.com>
License-Expression: MIT
Project-URL: Repository, https://github.com/tcareyintx/aioskybellgen.git
Project-URL: Bug Tracker, https://github.com/tcareyintx/aioskybellgen/issues
Keywords: aioskybellgen,skybellgen
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: aiofiles>=0.3.0
Requires-Dist: aiohttp<4.0,>=3.6.1
Requires-Dist: aresponses>=2.1.4
Requires-Dist: black>=21.11b1
Requires-Dist: isort>=5.10.1
Requires-Dist: flake8>=4.0.1
Requires-Dist: flake8-docstrings>=1.6.0
Requires-Dist: freezegun==1.5.2
Requires-Dist: mypy>=0.910
Requires-Dist: pylint>=2.12.1
Requires-Dist: pytest-cov>=3.0.0
Requires-Dist: pytest-asyncio>=0.16.0
Requires-Dist: pytest-freezer>=0.4.8
Requires-Dist: pytest>=6.2.4
Requires-Dist: types-aiofiles>=0.8.3

# aioskybellgen
_Asynchronous python communication driver for Skybell Cloud APIs_

![python version](https://img.shields.io/badge/Python-3.9=><=3.13-blue.svg)
[![PyPI](https://img.shields.io/pypi/v/aioskybellgen)](https://pypi.org/project/aioskybellgen)

## Installation

```bash
python3 -m pip install aioskybellgen
```

## Example usage

More examples can be found in the `tests` directory.

```python
    """Provide an example usage of aioskybellgen."""
    # Sign on to Skybell API
    async with Skybell(
        username=USER_NAME, password=PASSWORD, get_devices=True
    ) as client:
        # Update the user and session cache
        await client.async_update_cache({CONST.ACCESS_TOKEN: ""})
        # Get the initial set of devices without events and activities
        devices = await client.async_initialize()
        for device in devices:
            # Update/refresh the activities and events
            await device.async_update()
            print(f"Device: {device.device_id}, Status: {device.status}")


loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
try:
    loop.run_until_complete(async_example())
except KeyboardInterrupt:
    pass
```

## Contribute

**All** contributions are welcome!

1. Fork the repository
2. Clone the repository locally and open the devcontainer or use GitHub codespaces
3. Do your changes
4. Lint the files with `make lint`
5. Ensure all tests passes with `make test`
6. Ensure 100% coverage with `make coverage`
7. Commit your work, and push it to GitHub
8. Create a PR against the `develop` branch
