Skip to main content

BDD-first Python library for Divoom Pixoo 64

Project description

PyPixoo

PyPI version License: MIT CI codecov

The Pixoo library you can trust — BDD-first, well-tested.

A Python library for the Divoom Pixoo 64 display. This is a true behavior-driven design project: behaviors come first. We work outside-in and backward from observable behavior — write Gherkin scenarios first, run them (expect failures), implement until they pass. Specs mock the device and assert library behavior; we test the library, not the device.

What is this?

PyPixoo is a reimplementation of Pixoo control logic, inspired by pixoo but built with BDD from the ground up. Outside-in: we specify observable behavior in Gherkin before writing production code, then implement just enough to make the specs pass. CI runs without a real Pixoo; specs mock HTTP and verify our buffer handling, API payloads, and control flow.

Planned evolution: a Pydantic buffer model with introspection for assertions; features for constructing images and running animation sequences with timing; async fire-and-forget constructs that push frames at the right times; headless browser rendering; and React + Storybook components that run on the Pixoo with a time parameter for frame rendering (variable frame rate, animation timing intact). See PR_FAQ.md for rationale and roadmap. See AGENTS.md for agent guidance.

Requirements

  • Python 3.9+
  • A Divoom Pixoo 64 on your network (for real-device use; specs use a mock)

Installation

cd PyPixoo
pip install -e ".[dev]"

Run specs

behave

Specs mock the device HTTP layer, so no Pixoo is required. The first scenario uses a hardcoded IP (192.168.0.37) in the step text; the mock fakes all API calls. Edit features/display.feature if you change the IP in your assertions.

Usage

from pypixoo import Pixoo

pixoo = Pixoo("192.168.0.37")
pixoo.connect()
pixoo.fill(255, 0, 68)  # RGB red
pixoo.push()

Project structure

PyPixoo/
  features/           # Gherkin specs (behave)
  src/pypixoo/        # Library
  PR_FAQ.md           # Project rationale and roadmap
  AGENTS.md           # Agent guide

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

pypixoo-1.0.3.tar.gz (4.8 kB view details)

Uploaded Source

Built Distribution

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

pypixoo-1.0.3-py3-none-any.whl (5.2 kB view details)

Uploaded Python 3

File details

Details for the file pypixoo-1.0.3.tar.gz.

File metadata

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

File hashes

Hashes for pypixoo-1.0.3.tar.gz
Algorithm Hash digest
SHA256 6b01181b1bc8ebb00ec66fc25e84b48c58273155b8fff53adedd558c9bf33dff
MD5 3fe4ebc2f8c044efb713113dc52baa08
BLAKE2b-256 af375f15eb31c7a6689b8ff07e4a8e6ac35aac23b4da5153aff66c7d58286553

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypixoo-1.0.3.tar.gz:

Publisher: ci.yml on endymion/PyPixoo

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

File details

Details for the file pypixoo-1.0.3-py3-none-any.whl.

File metadata

  • Download URL: pypixoo-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 5.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pypixoo-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 7b6fd3db77872ffd9a900f748a1748c7d5058e1746ebd7ce461a876a5c61ed9f
MD5 247a4a19e1492e145fc6f63f934f4df7
BLAKE2b-256 68ba5daa57114fdf5d0e081f403b1e194d364cc92f8e4dd3705db7659747d99c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pypixoo-1.0.3-py3-none-any.whl:

Publisher: ci.yml on endymion/PyPixoo

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