Skip to main content

Async Python client for Stewart Filmscreen CVM control protocol.

Project description

Stewart Filmscreen Python Library

Async Stewart Filmscreen CVM client for long-running integrations (Home Assistant primary target).

Status

This is a clean implementation focused on reliability, explicit typing, and deterministic parsing.

Protocol reference used:

Installation

pip install stewart-filmscreen

Quick Start

import asyncio

from stewart_filmscreen.client import StewartFilmscreenClient


async def main() -> None:
    client = StewartFilmscreenClient(
        host="192.168.1.50",
        username="your_username",
        password="your_password",
    )

    try:
        await client.start()
        await client.wait_authenticated(timeout=10)

        await client.move_down("1.1.1.MOTOR")
        await client.stop("1.1.1.MOTOR")
        await client.recall_preset(3)
    finally:
        await client.stop_client()


asyncio.run(main())

Development

uv sync --group dev
uv run ruff check .
uv run ruff format --check .
uv run ty check stewart_filmscreen
uv run pytest -v

Real Device Integration Tests (Read-Only)

The test suite includes a manual, read-only integration tier for validating behavior against a real CVM.

  • Marker: integration_real
  • Opt-in gate: STEWART_ITEST=1
  • Target host: STEWART_HOST=<ip-or-hostname>
  • Optional port override: STEWART_PORT=23
  • Credentials: STEWART_USERNAME, STEWART_PASSWORD
  • Optional metadata: STEWART_MAC
  • If the device is offline/unreachable, tests are skipped.

Set up local env:

cp .env.example .env

Run the real-device tests:

set -a && source .env && set +a && uv run pytest -v -m integration_real

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

stewart_filmscreen-0.1.0.tar.gz (20.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

stewart_filmscreen-0.1.0-py3-none-any.whl (8.6 kB view details)

Uploaded Python 3

File details

Details for the file stewart_filmscreen-0.1.0.tar.gz.

File metadata

  • Download URL: stewart_filmscreen-0.1.0.tar.gz
  • Upload date:
  • Size: 20.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for stewart_filmscreen-0.1.0.tar.gz
Algorithm Hash digest
SHA256 af0984c62a83f8bcef12cb3ba8592e5b3f74e4a5134608b37f7d46e43a37b12b
MD5 679e1440d9dfed956cf7a6b35b6efcef
BLAKE2b-256 4b8cb4afd8b1ac047d1c24ade0a62aeb96bad28d77cc323f31f8e8d879967d38

See more details on using hashes here.

Provenance

The following attestation bundles were made for stewart_filmscreen-0.1.0.tar.gz:

Publisher: publish.yml on binarylogic/py-stewart-filmscreen

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file stewart_filmscreen-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for stewart_filmscreen-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 28fd0691869359899a25551edf07913a4273d4c7c51ff4e8885a0d04df6e8f31
MD5 aa4641a4f93d3783507503cc4fa3efd3
BLAKE2b-256 e780f537c57c8313c97484d69b174434af9e538c68277c71ba9943f35bf11d12

See more details on using hashes here.

Provenance

The following attestation bundles were made for stewart_filmscreen-0.1.0-py3-none-any.whl:

Publisher: publish.yml on binarylogic/py-stewart-filmscreen

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page