--- id: observable version: "1.0.3" license: MIT license_treatment: permissive maintenance: abandoned --- # observable — minimalist event system License: permissive · Maintenance: abandoned · Downloads: 156.6K/mo ## What it is and what it does Observable is a minimalist event system for Python that lets you attach handler functions to named events and trigger them on demand. It supports both decorator-style registration (`@obs.on("event_name")`) and direct method calls, and provides utilities to remove handlers, check registration status, and manage events. The package has no external dependencies and installs cleanly. Typical usage involves creating an Observable instance, registering event handlers, and calling `trigger()` to invoke them with arbitrary arguments. It's designed for simple event-driven architectures where you need decoupled communication between different parts of your code—for example, error handling, state changes, or user actions. The package is stable and production-ready in its API, but has not been maintained since early 2020. Use it for: - Decouple error handling from core logic by registering error handlers that trigger on specific failure conditions. - Build simple plugin systems where external code registers handlers for application lifecycle events. - Implement state-change notifications so multiple parts of an application react when data changes. - Create callback chains for asynchronous workflows without introducing heavy async/await complexity. - Prototype event-driven architectures before committing to a larger framework. ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. Observable provides a lightweight event system that lets you register handler functions to trigger on named events and invoke them programmatically. Yes, for small to medium projects that need lightweight event handling without external dependencies. The API is simple and stable. However, do not use for new projects requiring ongoing maintenance or Python version support beyond 3.7—the package is abandoned and will not receive updates. Consider it only when you need a minimal, self-contained event system and can tolerate no future fixes. ## Install pip install observable uv add observable poetry add observable ## Installing observable Before you install: Installation is straightforward with no runtime dependencies. However, the package has been abandoned since early 2020 with no commits or releases in nearly six years, so maintenance and security updates are not expected. License in practice: MIT license permits free use, modification, and distribution with minimal restrictions, making it suitable for both open-source and proprietary projects. Quickstart: pip install observable from observable import Observable obs = Observable() @obs.on("error") def error_handler(message): print(f"Error: {message}") obs.trigger("error", "Something went wrong") Requires Python 3.5 or later; Python 2 is not supported. Verify before relying: - Whether the package works reliably with Python versions released after 3.7 (last tested version in classifiers) - Whether abandonment has led to compatibility issues with modern Python ecosystems ## Package facts - License: MIT (permissive) - Python support: unspecified - Install friction: low - Maintenance: abandoned - Downloads: 156.6K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags event system python, event emitter, trigger callbacks, observer pattern, event dispatcher, publish subscribe, event handling library, event-driven, abandoned-but-stable [View on SkillFed](https://skillfed.io/packages/observable) · [View on PyPI](https://pypi.org/project/observable/)