Skip to main content

scitex-events

SciTeX

Zero-dep async event bus for the SciTeX ecosystem.

Full Documentation · uv pip install scitex-events[all]

pypi python docs docs-rtd

tests install-check cov


Quick Start

import scitex_events as ev

ev.emit("test_complete", project="figrecipe", status="success",
        payload={"exit_code": 0, "module": "stats"})

ev.latest("test_complete")     # most recent event of this type
list(ev.history(limit=20))     # recent history

Demo

flowchart LR
    Producer[ev.emit] --> JSONL[(JSONL store)]
    JSONL --> Latest[ev.latest]
    JSONL --> History[ev.history]
    JSONL -. optional .-> Webhook[Cloud webhook]

Figure 1. Demo path. One emit call lands in the JSONL store and is immediately readable via latest/history.

Installation

uv pip install "scitex-events[all]"
Per-module extras
Extra Pulls in
all dev + docs (recommended)
dev pytest, pytest-cov, pytest-timeout, ruff
docs Sphinx + RTD theme + myst-parser (docs build only)
uv pip install -e ".[dev]"               # editable install for contributors
## Architecture
flowchart LR
    Emit[ev.emit] --> Schema[_schema.Event]
    Schema --> Store[(JSONL store)]
    Store --> Latest[ev.latest]
    Store --> History[ev.history]
    Store -. optional .-> Webhook[webhook delivery]
    Registry[_types registry] --> Info[ev.list_types / get_type_info]

Figure 2. Event flow. Emission validates against the schema, appends to the local JSONL store, and fans out to readers plus an optional webhook.

1 Interfaces

Python API
import scitex_events as ev

# Emit an event (any kwargs become payload fields).
ev.emit("test_complete", project="figrecipe", status="success",
        payload={"exit_code": 0, "module": "stats"})

# Latest event of a given type.
ev.latest("test_complete")

# Recent history (newest first).
list(ev.history(limit=20))

# Schemas / introspection.
ev.list_types()
ev.get_type_info("test_complete")

Events are stored locally as JSON-Lines files under ~/.scitex/events/runtime/ (resolved via local_state.runtime_path("events")) and can optionally be forwarded to a cloud webhook.

Status

Standalone fork of scitex.events. Pure stdlib — zero runtime deps except scitex-config (canonical local-state directory resolver per the SciTeX local-state directories skill). The umbrella package's scitex.events import path is preserved via a sys.modules-alias bridge so existing code continues to work.

Part of SciTeX

scitex-events is part of SciTeX. Install via the umbrella with pip install scitex[events] to use as scitex.events (Python) or scitex events ... (CLI).

Four Freedoms for Research

  1. The freedom to run your research anywhere — your machine, your terms.
  2. The freedom to study how every step works — from raw data to final manuscript.
  3. The freedom to redistribute your workflows, not just your papers.
  4. The freedom to modify any module and share improvements with the community.

AGPL-3.0 — because we believe research infrastructure deserves the same freedoms as the software it runs on.

License

AGPL-3.0-only (see LICENSE).


SciTeX

Metadata

Release files for scitex-events 0.1.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for scitex-events 0.1.7
File Size Uploaded
scitex_events-0.1.7.tar.gz 7.7 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for scitex-events 0.1.7
File Interpreter ABI Platform
scitex_events-0.1.7-py3-none-any.whl Python 3 none any Details

Total release size: 15.4 MB

Release files / scitex_events-0.1.7.tar.gz

Download URL scitex_events-0.1.7.tar.gz
Size 7.7 MB
Tags Source
SHA-256 checksum
How to use checksums
1cbe1a9022fbb52df3fa50a8376213fe1dfaefc2fef3da25ffcc4a000766a5ca
BLAKE2b-256 checksum
How to use checksums
25546a9d20abffbd1366351fb2b57302e3b07f8bc661f45a5d000cdc235cd0dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.12.14

Release files / scitex_events-0.1.7-py3-none-any.whl

Download URL scitex_events-0.1.7-py3-none-any.whl
Size 7.7 MB
Tags Python 3
SHA-256 checksum
How to use checksums
31730604e76e123393e4160c7c0a3ee6363e47f56697ff3e0a1e88af0b94ee75
BLAKE2b-256 checksum
How to use checksums
403f6b61f945c6469bd782d37463ee873242bff80605952c7ce245b268ae469c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.12.14

Release history Release notifications | RSS feed

This release

0.1.7 This release

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page