Documentation

Get started in
a few minutes

Install PyGX, write your first symbolic object, then pick the track that matches your work. This page is the front door — the complete guide, API reference, and runnable notebooks live in the full documentation.

Quickstart

Install & first object

PyGX requires Python 3.12+ and is published on PyPI under Apache 2.0. The hot paths run in a native Rust core (pygx-core, installed automatically) with wheels for Linux, macOS, and Windows on CPython 3.12–3.14 — including free-threaded 3.14t.

1
Install the core
$pip install pygx
2
Optional extras
pygx[io]remote IO — GCS, S3pygx[concurrent]parallel map + retries
first_object.py
import pygx as pg

class Model(pg.Object, topo=True):
    units: int = 8

    def on_sym_ready(self):
        super().on_sym_ready()
        self.scale = self.units * 2   # derived state,
                                      # never goes stale

class Trainer(pg.Object):
    model: Model
    lr: float = 0.01

t = Trainer(model=Model(units=128))
t.sym_init_args             # the call, kept
t.sym_rebind({'model.units': 64})    # edit any depth
t.model.scale               # 128 — recomputed, unasked
t.to_json_str()             # round-trips to the real class
User guide

Choose your track

The guide is organized by what you're building. Each track is a topic-specific path through the same toolkit.

Learning PyGX

Symbolic
Object-Oriented
Programming

The abstraction underneath PyGX: a symbolic object can be both executed and manipulated, and the two stay in sync. Conceptual material on the symbolic object model and symbolic detour — start here to understand why it works the way it does.

Learning hub

Ready to build?

The full documentation has the complete guide, API reference, and runnable notebooks.