Skip to content

oraad/pyogero

Repository files navigation

pyOgero: Ogero API Python module

PyPI Latest Release Package Status GitHub branch checks state License Code style: black

Ogero does not currently provide a rest api to access it services, therefore this module web scrap the mobile version of the pages to collect data.

Async client

The async client (pyogero.asyncio.Ogero) requires an injected aiohttp.ClientSession (for example from Home Assistant async_get_clientsession(hass)):

import aiohttp
from pyogero.asyncio import Ogero

async with aiohttp.ClientSession() as session:
    client = Ogero("user", "pass", session=session)
    await client.login()

Home Assistant compatibility

Runtime dependency versions are capped at the versions used by Home Assistant 2026.3.2 (requests, aiohttp, beautifulsoup4, pydantic). To install exact pins in a virtual environment:

pip install -e . -c constraints-home-assistant-2026.3.2.txt

Development

This project uses uv for dependencies and a PEP 621 pyproject.toml for package metadata. Python 3.14 is used for CI and local development (see .python-version).

uv sync --group dev
uv run pytest tests/ -m "not integration"
uv run ruff check .
uv run ruff format .

To match Home Assistant pins after syncing dev dependencies:

uv sync --group dev
uv pip install -c constraints-home-assistant-2026.3.2.txt -e .

Build release artifacts with uv run python -m build (requires dev dependencies).

Releasing

  1. Bump version in pyproject.toml and document changes in CHANGELOG.md.
  2. Merge to main. CI runs on push; the Release workflow then runs tests and creates tag vX.Y.Z if that tag does not exist yet.
  3. Pushing the new tag triggers the publish job (GitHub release + PyPI). Re-pushing main without a version bump does not re-release because the tag already exists.
  4. You can also run the Release workflow manually via workflow_dispatch to re-run pre-release checks.

PyPI publishing

CI publishes with trusted publishing (OIDC) when the PyPI project is linked to this GitHub repository. The workflow also supports PYPI_TOKEN in repository secrets as a fallback if trusted publishing is not configured yet.

About

Ogero API Python module

Resources

License

Stars

1 star

Watchers

1 watching

Forks

Packages

 
 
 

Contributors

Languages