A Redux Toolkit-inspired state container for Python desktop applications.
PyDux gives Python desktop apps one observable source of truth. Dispatch actions, let reducers update state, and subscribe only to the values a view needs.
- Redux Toolkit-style slices with generated action creators.
- Selectors and selective subscriptions.
- Async thunks with
pending,fulfilled, andrejectedactions. - Optional DevTools, time travel, and a local web inspector.
- Adapters for Qt, Tkinter, Kivy, and Qyro.
pip install pydux
# With Qyro and PySide6
pip install "pydux[qyro,pyside6]"See the English installation guide or the guía de instalación en español for every optional framework extra and Poetry command.
from pydux import configure_store, create_slice
counter = create_slice(
name="counter",
initial_state={"value": 0},
reducers={
"increment": lambda state, action: state.update(value=state["value"] + 1),
},
)
store = configure_store({"counter": counter}, devtools=False)
store.dispatch(counter.actions.increment())
print(store.get_state()) # {"counter": {"value": 1}}The complete Mintlify documentation lives in docs/, in
English and español:
- Get started / Primeros pasos
- PyDux + Qyro for beginners / PyDux + Qyro para principiantes
- API reference / Referencia de API
To preview it locally, install Mintlify and run mint dev from docs/.
PyDux manages state. Qyro Runtime provides application context, resources, settings, and lifecycle; Qyro CLI scaffolds, builds, packages, and signs applications.
MIT. See LICENSE.
- Organization: Neuri
- Lead Maintainer: Luis Alfredo De Los Reyes (luisalfredoreyes98@gmail.com)
- Ecosystem: Qyro • Qyro CLI • Boilerplates