This release is a pre-release and may not be stable for production use.
✨ panel-reactflow
A Panel wrapper for the React Flow JS library.
Features
- Python-first, JSON-serializable graph state
- Panel viewables inside nodes via node
viewentries - Interactive editing (drag/select/connect/delete) with sync back to Python
- Optional schema definitions for node/edge properties
- Event callbacks via
ReactFlow.on(...)for app-level handling (callback signature:callback(payload, flow))
Pin your version!
This project is in its early stages, so if you find a version that suits your needs, it’s recommended to pin your version, as updates may introduce changes.
Installation
Install it via pip:
pip install panel-reactflow
Usage
import panel as pn
from panel_reactflow import ReactFlow
pn.extension("jsoneditor")
nodes = [
{
"id": "n1",
"position": {"x": 0, "y": 0},
"type": "panel",
"label": "Start",
"data": {},
"view": pn.pane.Markdown("Node 1 content"),
},
{
"id": "n2",
"position": {"x": 260, "y": 60},
"type": "panel",
"label": "End",
"data": {},
"view": pn.pane.Markdown("Node 2 content"),
},
]
edges = [
{"id": "e1", "source": "n1", "target": "n2"},
]
flow = ReactFlow(
nodes=nodes,
edges=edges,
)
flow
For property schemas and richer editors, provide node_types/edge_types with PropertySpec and handle changes via ReactFlow.on(...). .on callbacks receive the event payload as the first argument and can optionally accept the ReactFlow instance as a second argument.
Development
git clone https://github.com/panel-extensions/panel-reactflow
cd panel-reactflow
For a simple setup use uv:
uv venv
source .venv/bin/activate # on linux. Similar commands for windows and osx
uv pip install -e .[dev]
pre-commit run install
pytest tests
For the full Github Actions setup use pixi:
pixi run pre-commit-install
pixi run postinstall
pixi run test
This repository is based on copier-template-panel-extension (you can create your own Panel extension with it)!
To update to the latest template version run:
pixi exec --spec copier --spec ruamel.yaml -- copier update --defaults --trust
Note: copier will show Conflict for files with manual changes during an update. This is normal. As long as there are no merge conflict markers, all patches applied cleanly.
❤️ Contributing
Contributions are welcome! Please follow these steps to contribute:
- Fork the repository.
- Create a new branch:
git checkout -b feature/YourFeature. - Make your changes and commit them:
git commit -m 'Add some feature'. - Push to the branch:
git push origin feature/YourFeature. - Open a pull request.
Please ensure your code adheres to the project's coding standards and passes all tests.
Release files for panel-reactflow 0.5.0a1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| panel_reactflow-0.5.0a1.tar.gz | 2.0 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| panel_reactflow-0.5.0a1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 2.2 MB
Release files / panel_reactflow-0.5.0a1.tar.gz
| Download URL | panel_reactflow-0.5.0a1.tar.gz |
|---|---|
| Size | 2.0 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f400aeb75e100e1dbd08240298e4250df791a7082816edb9d373b4282a682e4e
|
|
BLAKE2b-256 checksum How to use checksums |
40bd75c8cacb9dad2eb870e1057c37918ada415cad7787cc1c77ddc5e5a854f5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 28, 2026.
Transparency logRelease files / panel_reactflow-0.5.0a1-py3-none-any.whl
| Download URL | panel_reactflow-0.5.0a1-py3-none-any.whl |
|---|---|
| Size | 177.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c9e6e6fe67f302de45788984abfe6a563938601df7abe0ea240c89e79f3faa4e
|
|
BLAKE2b-256 checksum How to use checksums |
fa7d5b9b5a2d5217a5e70c70929501de974d52352fc89e513b772a1ab81775d0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 28, 2026.
Transparency log