skillfed

observable

minimalist event system

observable v1.0.3 156.6K downloads/30d#10,779 on PyPI86
Permissive license MIT Abandoned released

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 on this page — 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

observable on PyPI

pip

pip install observable

uv

uv add observable

poetry

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 not specified
Install friction low — pure-Python wheel
Runtime dependencies none
Maintenance abandoned — 2,885 days since the last release
Last repo commit
First released
Downloads 156,647/month — #10,779 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: observable-1.0.3-py2.py3-none-any.whl

Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseNatural Language :: EnglishOperating System :: OS IndependentProgramming Language :: Python :: 3Programming Language :: Python :: 3.5Programming Language :: Python :: 3.6Programming Language :: Python :: 3.7Programming Language :: Python :: ImplementationProgramming Language :: Python :: Implementation :: CPythonTopic :: Software Development :: Libraries :: Python Modules

Tags

event system pythonevent emittertrigger callbacksobserver patternevent dispatcherpublish subscribeevent handling library
event-drivenabandoned-but-stable

More Python Modules packages