Signalrgb

Latest version: v1.0.0

Safety actively analyzes 723217 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 2

1.0.0

This major release introduces full asynchronous API support alongside the existing synchronous client, enabling seamless integration with modern asyncio architectures like Home Assistant. The update includes significant documentation improvements, performance optimizations, and enhanced development tooling.

โœจ Highlights

Asynchronous API Support

Native asyncio integration with a dedicated AsyncSignalRGBClient for modern application patterns, maintaining full feature parity with the synchronous client.

Improved Documentation

Comprehensive documentation updates including async usage guides, improved API references, and Home Assistant integration examples.

Performance Enhancements

Critical fixes to prevent event loop blocking in async operations, ensuring smooth integration with event-driven applications.

โœจ New Features

- Added AsyncSignalRGBClient for native asyncio integration patterns
- Created new async_usage.md guide with comprehensive examples
- Added Home Assistant integration examples
- Added httpx dependency for modern HTTP async operations

๐Ÿ”จ Improvements

- Updated Python requirement to 3.11+ (was previously 3.12+)
- Extracted exceptions to dedicated module for better organization
- Enhanced release script with automatic UV lock file handling
- Improved documentation with both sync and async patterns throughout
- Updated README and docs to reference UV instead of Poetry for dependency management

๐Ÿ› Bug Fixes

- Fixed AsyncSignalRGBClient initialization to avoid blocking event loop during SSL certificate loading
- Added consistent null checks before aclose() calls in cleanup methods
- Fixed code style issues and linting warnings in async implementation

๐Ÿ“ Documentation

- Comprehensively updated all documentation to reflect new asynchronous capabilities
- Added AsyncSignalRGBClient reference to client API docs
- Updated models documentation with new response types
- Modernized UI with emojis and better section organization
- Improved installation instructions for async requirements

๐Ÿงช Testing

- Added pytest-asyncio for proper testing of async code
- Added dedicated test_async_client.py test suite
- Updated existing tests to accommodate new architecture

๐Ÿ”ง Upgrade Notes

- Python 3.11+ is now required (previously 3.12+)
- If upgrading from v0.9.8, no code changes are required - the synchronous API remains fully compatible
- For new projects, consider using the AsyncSignalRGBClient for better performance in asyncio environments

๐Ÿ“Š Metrics

- Total Commits: 6
- Files Changed: 31
- Insertions: 2428
- Deletions: 1532

0.9.8

This release modernizes the SignalRGB Python library with improved dependency management, enhanced CLI features, expanded API capabilities, and better error handling. It introduces layout management, preset handling, and improved visual output while migrating from Poetry to UV for more reliable package management.

โœจ Highlights

๐Ÿ”ง Migration to UV Package Manager

Switched from Poetry to UV for faster, more reliable dependency management with broader Python version compatibility (now supporting Python 3.9+).

๐Ÿ’„ Enhanced CLI Experience

Completely revamped CLI with colorful output, improved table formatting, and a new subcommand structure that makes working with effects and layouts more intuitive.

โœจ Layout Management

Added new functionality to view, list, and switch between SignalRGB layouts, expanding the library's capabilities beyond just effect control.

โ™ป๏ธ Python 3.11 Type Hints

Modernized codebase with improved type annotations using Python 3.11 features, making the library more robust and developer-friendly.

โœจ New Features

- Implemented layout management functionality with methods to get current layout, set layout, and list available layouts
- Added rich preset handling with ability to list and apply effect presets
- Introduced effect navigation with next, previous, and random effect selection
- Added --full-rgb flag to CLI for vibrant gradient-colored output
- Implemented EffectIterator for simpler programmatic effect iteration
- Replaced Bash release script with more robust Python version featuring improved validation and colored output

โ™ป๏ธ Code Improvements

- Modernized codebase with Python 3.11 type hints using union syntax (str | None) and improved collection types
- Refactored SignalRGBClient to use context manager for requests with improved error handling
- Restructured CLI commands into logical subcommands (effect, preset, layout, canvas) for better organization
- Renamed EffectNotFoundError to NotFoundError for broader use across different resource types
- Introduced explicit caching in SignalRGBClient replacing LRU cache for better control
- Created new data models for EffectPreset, EffectPresetList, Layout, and related responses

๐Ÿ”ง Infrastructure Changes

- Migrated from Poetry to UV for dependency management with PEP 621 compliant pyproject.toml
- Updated CI/CD workflow configuration to work with UV instead of Poetry
- Lowered Python requirement from 3.12 to 3.9 for broader compatibility
- Updated all dependencies to their latest compatible versions

๐Ÿ’„ UI/UX Improvements

- Enhanced CLI with colorful output, icons, and improved table formatting
- Added progress bar for effect cycling operations
- Improved parameter display with better formatting for boolean and color values
- Simplified preset and layout display by removing unnecessary type information

๐Ÿ“ Documentation

- Updated documentation to reflect new subcommand structure in CLI
- Added sections for preset and layout management in the docs
- Revised library usage docs with new methods and error handling examples
- Updated installation instructions to reference UV instead of Poetry

โœ… Testing

- Updated test cases to cover new methods and error handling scenarios
- Added tests for layout-related functionality
- Modified test assertions to align with CLI output format changes
- Converted assertions to pytest-style in tests for better diagnostics

๐Ÿ”ง Upgrade Notes

- The CLI command structure has changed to use subcommands. For example, `signalrgb list_effects` is now `signalrgb effect list`.
- If you were using the Python library directly and catching `EffectNotFoundError`, update your code to catch `NotFoundError` instead.
- Users who had development environments set up with Poetry should migrate to using UV for dependency management.

๐Ÿ“Š Metrics

- Total Commits: 24
- Files Changed: 61
- Insertions: 5533
- Deletions: 2416

0.9.7

0.9.6

0.9.5

0.9.4

Page 1 of 2

ยฉ 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.