edron-sim
Build a static, interactive preview from a real Edron application. edron-sim
executes the app's registered pages, fragments, and actions through Edron's
public simulation boundary and renders the result into the existing offline
HTMX runtime.
Package maturity: Beta tooling-grade (0.1.x) · pin >=0.1.0,<0.2
Install
pip install "edron-sim>=0.1.0,<0.2"
Quick start
from edron_sim import Simulation
# `app` is the real edron.App from your application module.
artifact = Simulation.from_app(app, fixtures={"current_user": demo_user}).build()
print(artifact.embed())
The output is a static HTML island. Load the hedron-sim JavaScript and CSS
assets in the documentation site, as described in the hedron-sim package
documentation.
The application source remains ordinary Edron code:
import edron as ed
app = ed.App(title="Operations")
@app.page("/", title="Home")
class Home(ed.Page):
def render(self) -> None:
self.heading("Hello from Edron")
edron-sim does not introduce a component DSL, fake database, fake identity
provider, browser JavaScript engine, or live server. Supply bounded fixtures for
application-owned dependencies and keep side effects out of build-time render
callbacks.
Public API
| Symbol | Role |
|---|---|
Simulation.from_app(app) |
Create a builder around a real edron.App |
Simulation.build() |
Synchronously build a static artifact |
Simulation.build_async() |
Async equivalent for async build pipelines |
SimulationArtifact.embed() |
Return the generated HTML island |
SimulationArtifact.manifest |
Bounded route and source manifest |
SimulationConfig |
Entrypoint and resource bounds |
Scope
The supported surface is intentionally narrow: Edron pages, fragments, actions, themes, deterministic fixtures, and bounded refresh effects. Authentication, databases, queues, network calls, websockets, server-sent events, arbitrary browser JavaScript, and pixel-perfect execution of arbitrary CSS remain live-app concerns.
Links
License
MIT. See the repository license.
Release files for edron-sim 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| edron_sim-0.1.1.tar.gz | 6.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| edron_sim-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 13.4 kB
Release files / edron_sim-0.1.1.tar.gz
| Download URL | edron_sim-0.1.1.tar.gz |
|---|---|
| Size | 6.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7280848d4bbde63fff98d37e233838b76dc2a647a0decf4de8cfc5622e7f1a80
|
|
BLAKE2b-256 checksum How to use checksums |
70526e01d43c9cb6b1e047e8f9e7a671a8f8c410fa659937f739dea93099454c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / edron_sim-0.1.1-py3-none-any.whl
| Download URL | edron_sim-0.1.1-py3-none-any.whl |
|---|---|
| Size | 6.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e7ca5c7af6e5316e4daadefb6d1a21c0ece6bd32980233117ce5b09f95810f05
|
|
BLAKE2b-256 checksum How to use checksums |
0dbe8170f73bc5f94a419ac1ff5a0f1a9024156041240d2a72e6c55dfe2d9dcc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|