This release is a pre-release and may not be stable for production use.
Table of contents
- Requirements
- Installation
- Quick start
- Features
- Standalone builds
- Development
- Troubleshooting
- License
Requirements
- Python ≥ 3.11
- The esther API, NiceGUI, plotly and numpy (installed automatically as dependencies)
- A working ESTHER installation
- A recent web browser
Like the esther API it is built on, this package does not ship the solver itself.
Installation
pip install esther-ui
Builds that need no Python and open in their own window are also available for Windows and Linux: see Standalone builds.
Quick start
esther-ui
The interface opens in a browser tab on http://localhost:8080 (or the next free port up to 8089; ESTHER_PORT sets another one). It only listens on this machine. Launching it again while it runs opens the running one instead of a second, and Ctrl+C in the terminal stops it.
On first launch, open the Config tab, set the esther root, let Auto path fill in the other paths, and save. These settings are esther's own (~/.config/esther/config.toml), shared with the Python API: a configuration made with esther.Config is picked up as is.
What the interface keeps on its own between launches, the tab shown, the runs, the cases and plots open, the appearance, is stored in an esther-nicegui folder of the user's config directory.
Features
| Input & run | The cases of the input directory as a tree, refreshed as files appear or change. Each case opens in an editor, with completion of the mc_complet keywords, beside a tab for each of its associated files. Save as copies a case with its associated files, Convert switches between TOML and ESTHER's native .txt deck, Validate checks it, and the parametric variants it declares are listed under it. The cases ticked in the tree run side by side, one per CPU core but one. |
| Log | The runs of this launch and of former ones, with their progress, the live log of the one selected and a live plot of its outputs as they are written. A run can be stopped from there, and the overall progress shows behind the tab's title from anywhere in the app. |
| Output | Plot tabs over one or more cases of the output directory, to compare them: spatial profiles at a given time, time series at a given cell, and 2-D maps, split by layer if needed, each axis with its own unit, bounds and scale. Plot styles can be saved as themes, and each plot exported as PNG or its data as CSV. |
| Data | esther's material database, file by file: an editor for each file and a plot of the tables of numbers it holds, on linear or log axes. |
| Config | esther's paths (root, input, output and data directories, mc_complet, executable, documentation), its message channels and units, saved together; the appearance of the interface (System, Light or Dark), applied at once. |
| Docs | The user documentation shipped with ESTHER, searchable, inside the interface. |
Standalone builds
Each release comes with a Windows and a Linux build, made with PyInstaller. They need no Python, open in their own window instead of a browser tab, and work the same way otherwise.
| System | Archive | Launch |
|---|---|---|
| Windows 10, 11 | esther-ui-<version>-windows-x64.zip |
esther-ui\ESTHER.exe |
| Linux | esther-ui-<version>-linux-x64.tar.gz |
esther-ui/ESTHER |
On Windows the window uses the WebView2 runtime, preinstalled on Windows 11 and on an up-to-date Windows 10.
On Linux (Ubuntu 24.04, Debian 13, Fedora 40 or later), the window is the system's GTK WebKit, which the archive does not include:
sudo apt install libgirepository-2.0-0 gir1.2-gtk-3.0 gir1.2-webkit2-4.1 # Ubuntu, Debian
sudo dnf install webkit2gtk4.1 # Fedora
Without it, the build opens in the browser instead.
Development
git clone https://gitlab.com/esther4254519/esther-ui.git
cd esther-ui
python -m venv venv
venv/bin/pip install -e .
venv/bin/python main.py
main.py serves the interface on http://localhost:8080 and reloads it on each change of the sources. NiceGUI only reloads a script: python -m esther_ui, like the esther-ui command, runs without reload.
| Path | Purpose |
|---|---|
main.py |
Launcher of the sources, reloaded on changes; the script PyInstaller packages |
esther_ui/launch.py |
One app at a time, UTF-8 mode, window or browser tab |
esther_ui/page.py |
The page: header, tabs, and the routes it uses |
esther_ui/tab_*.py |
One module per tab |
esther_ui/__main__.py |
The esther-ui command |
packaging/ |
PyInstaller spec and build script |
A standalone build is made on the system it targets:
pip install . --group build
python packaging/build.py
It lands in dist/esther-ui/, archived beside it.
Pushing a version tag (v1.2.3) runs the GitLab pipeline: the package goes to PyPI, its version read from the tag, and the Windows and Linux builds to a release of the tag.
Troubleshooting
- Firefox crashes during a live run: set
gfx.webrender.softwaretotrueinabout:config. - The Linux build opens in the browser: GTK WebKit is missing, see Standalone builds.
- The Windows build shows nothing: its log is
esther.login%APPDATA%\esther-nicegui.
License
CeCILL v2.1. See LICENSE.
Metadata
Release files for esther-ui 0.1.0b1
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 | Actions |
|---|---|---|---|---|
| esther_ui-0.1.0b1.tar.gz | 116.2 kB | Without provenance | Details for esther_ui-0.1.0b1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| esther_ui-0.1.0b1-py3-none-any.whl | Python 3 | none | any | Details for esther_ui-0.1.0b1-py3-none-any.whl |
Total release size: 239.1 kB
Release files / esther_ui-0.1.0b1.tar.gz
| Download URL | esther_ui-0.1.0b1.tar.gz |
|---|---|
| Size | 116.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a5608b5de18649f17006d023fa6f958181f5aa1a30917cc566bc9f37fc59c152
|
|
BLAKE2b-256 checksum How to use checksums |
effcf5c9262c61aa0280abbb6cedf9e65a08246517ce26f760a5a10ef2e3d961
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.14.10
|
Release files / esther_ui-0.1.0b1-py3-none-any.whl
| Download URL | esther_ui-0.1.0b1-py3-none-any.whl |
|---|---|
| Size | 122.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fa28827daec8f122bed0a99cd8ebeac9841cfe70cb4a1061f9f34ce9496dfdfd
|
|
BLAKE2b-256 checksum How to use checksums |
f1653fd6df0c1d273f803a4eff78178a3ab3f432491c9cd04c1a17c4137caaf6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.14.10
|
Security for esther-ui 0.1.0b1
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.
To learn more about protecting yourself from malicious actors, visit our package security documentation.