neon3-sdk
Python client SDK for Neon3 neon3.rpc and neon3.event.
Install
python -m pip install --upgrade neon3-sdk
Package page: https://pypi.org/project/neon3-sdk/
Application API
from neon3_sdk import NeonApp, ObservableStore
with NeonApp.start(mode="windowed", origin="my-app") as app:
state = ObservableStore({"selected": None})
app.ui.mount_flow_file("app.nui")
app.intent("domain.select")(lambda event: state.value("selected").set(event.payload["key"]))
app.run()
NeonApp manages runtime lifecycle, UI revisions, intent routing, and Store
publication. Direct NeonClient remains available for protocol-level code.
Start Neon3
RuntimeSession starts the Neon3 services as separate processes. On Windows it
resolves and downloads the latest runtime release from:
https://github.com/unco999/Neon3-CiJian/releases
from neon3_sdk import RuntimeConfig, RuntimeMode, RuntimeSession
with RuntimeSession(RuntimeConfig(mode=RuntimeMode.WINDOWED)):
print("Neon3 services are running")
The resolved release is cached under %LOCALAPPDATA%\Neon3Sdk\runtime\<tag>.
Set NEON3_RUNTIME_VERSION=<tag> (for example v0.2.3) when reproducible
pinning is required; only pin a runtime that is at least as new as the UI
schema your flows use, otherwise newer nodes such as tooltip or canvas
fail with nui_flow_unknown_attribute.
Set NEON_ROOT or pass RuntimeConfig(neon_root="D:/Neon3", profile="debug")
to use a local checkout. The SDK starts neon-eventd, neon-wgpu-runtime, and
neon-ui-runtime; it does not create windows or GPU resources itself.
RPC Usage
from neon3_sdk import NeonClient, UiClient
rpc = NeonClient.connect("127.0.0.1:39102", origin="my-tool")
ui = UiClient(rpc)
program = ui.submit_flow('version 1\nsurface example revision 1\nsurface root\n')
print(program.surface_id)
Event Usage
from neon3_sdk import EventClient
with EventClient.connect("127.0.0.1:39101").subscribe(
name="ui.file_drop.accepted"
) as events:
for image in events.file_drops():
print(image.file_name, image.source_path)
ui.file_drop.accepted is the existing Neon3 event bridge for OS file drops.
Image tools can use it to start OpenCV analysis without polling.
Tests
python -m unittest discover -s tests -v
Metadata
Release files for neon3-sdk 0.1.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| neon3_sdk-0.1.4.tar.gz | 74.6 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| neon3_sdk-0.1.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 143.7 kB
Release files / neon3_sdk-0.1.4.tar.gz
| Download URL | neon3_sdk-0.1.4.tar.gz |
|---|---|
| Size | 74.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
80ed44d01a2eabdc25ecef6bd33db5eb236119614cf2e3297e2f94b28fceb120
|
|
BLAKE2b-256 checksum How to use checksums |
4c164a87565c01b8fc7c5af51b78ed6a54004ff95b6809cb3436cc297ddd6758
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.10
|
Release files / neon3_sdk-0.1.4-py3-none-any.whl
| Download URL | neon3_sdk-0.1.4-py3-none-any.whl |
|---|---|
| Size | 69.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
68df4421e9379c55c0e17eb04b85c9b8a3f4aa7b41801e079b9c2b3ad669a2af
|
|
BLAKE2b-256 checksum How to use checksums |
817baf32cb58eb0654bd704574a247a4401e245466ee86483102681aa1a00f28
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.10
|
Security for neon3-sdk 0.1.4
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.