All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Added QR code generation example
- Added stock monitoring web application example
- New FastAPI & SocketIO examples:
- QR code generation with real-time updates
- Interactive stock monitoring web application
- Improved documentation and screenshots
- New FastAPI & SocketIO minimal example
- Demonstrates PynneX worker integration with web frameworks
- Shows real-time WebSocket communication
- Includes simple web frontend
- Enhanced logging configuration
- Added dictConfig support
- Improved logging setup documentation
- Fixed worker stop signal handling
- Replace direct asyncio.create_task with queue_task method in examples
- Clarify worker thread function naming
- Add proper worker state checks in test teardown
- Improved worker pattern task cancellation
- Simplify task result handling by moving it to try block
- Remove redundant cancelled flag
- Improved worker pattern implementation:
- Added state machine (CREATED, STARTING, STARTED, STOPPING, STOPPED)
- Added thread-safe task queue with pre-loop buffering
- Replaced run() method with started signal listener pattern
- Enhanced worker lifecycle management and cleanup
- Added detailed debug logging for worker operations
- Updated documentation and examples:
- Added complete runnable worker examples
- Updated API documentation to reflect new worker pattern
- Improved README examples with async context
- Renamed signal/slot terminology to emitter/listener across the API:
- @signal → @emitter (aliases: @signal, @publisher)
- @slot → @listener (aliases: @slot, @subscriber)
- @with_signals → @with_emitters (aliases: @with_signals, @with_publishers)
- Updated all documentation and examples
- Kept old terms as aliases for backward compatibility
- Updated logging namespaces from signal/slot to emitter/listener
- Handle task name safely
- Enhanced logging structure with hierarchical loggers:
- Improved log message clarity and structure
- Added trace-level loggers (emitter.trace, listener.trace) for detailed debugging
- Improved weak reference handling:
- Replaced manual bound method reconstruction with WeakMethod
- Enhanced cleanup for weak method references
- Removed nx_ prefix from public API imports for better consistency:
- Updated imports in examples and tests to use unprefixed versions (emitter, with_emitters, etc.)
- Maintained nx_ prefix in internal implementation files
- Improved API documentation with detailed method descriptions
- Improved documentation structure and readability:
- Improved usage guide structure and navigation
- Updated example descriptions and use cases
- Enhanced decorator alias usage clarity
- Initial release of PynneX (rebranded from temitter)
- Comprehensive emitter-listener mechanism with Python 3.10+ features
- Core Features:
- Robust emitter-listener communication pattern
- Thread-safe operations with automatic thread affinity
- Full async/await support
- Weak reference support for automatic cleanup
- One-shot connections
- Worker thread pattern
- Simplified decorator aliases (@emitter, @listener, @with_emitters, @with_worker)
- Comprehensive test suite with 100% coverage
- Full documentation and examples
- Python 3.10 or higher (for stable asyncio operations)