This release is a pre-release and may not be stable for production use.
Table of contents
Requirements
- Python ≥ 3.11 (the API uses the standard library
tomllib) numpy≥ 1.21,matplotlib≥ 3.5 (installed automatically as dependencies)- A working ESTHER installation
This package is a client for ESTHER: it does not ship the solver itself.
Installation
pip install esther
Quick start
On first import, ESTHER looks for a config file at ~/.config/esther/config.toml and prints setup instructions if none exists yet. Create it once:
import esther
cfg = esther.Config()
cfg.set("paths", "esther_root", "/path/to/ESTHER", autopath=True)
cfg.save()
An interactive terminal wizard that walks through the whole setup (installation root, display theme, default units) is also available in examples/Usage guide/config_assistant.py.
Everything it sets, ESTHER binary paths, temporary directories, the display theme, verbosity, and unit presets, is stored as TOML under ~/.config/esther/ and persists across sessions. It can all be read and changed later through esther.Config and esther.unit:
cfg = esther.Config()
cfg.get("paths", "esther_root") # read back a setting
cfg.set("display", "theme", "matrix")
cfg.save()
Features
| Input management | Inputs are TOML files, edited through CRUD-style methods (add, get, set, pop), with layer and energy-deposition management that shifts indices automatically. Every keyword is checked against mc_complet.txt before writing, and parametric studies are declared directly in the TOML, either as a lockstep sweep or a full cartesian grid. |
| Fortran conversion | toml_to_txt and txt_to_toml convert both ways between the TOML format and ESTHER's native .txt deck, so existing Fortran inputs can be brought into the API and new ones exported back out. |
| Run management | Run accepts a TOML path, an Input object, or a legacy .txt file, and executes one case or many in parallel with max_workers. Progress is shown as a live terminal bar or, inside Jupyter, an HTML widget; status(), success, duration, and get_error_message() report how each run went. |
| Output reading | Output loads a result directory lazily, exposing 1D and 2D variables as NumPy arrays through attribute access. A single global unit system (esther.unit) applies unit preferences across every load, while each Variable can also be converted individually without touching the global setting. |
| Plotting | A thin layer over matplotlib adds ESTHER-specific behaviour on top: automatic time axes, unit-aware labels, and dispatch between time series, spatial profiles, and time × space heatmaps depending on the variable's shape. |
Examples
The examples/ directory is split in two.
examples/Usage guide/ is reference material, illustrating the API's usage patterns rather than something meant to be run as-is.
| File | Purpose |
|---|---|
config_assistant.py |
Walkthrough of the configuration options |
user_guide.ipynb |
Tour of the main API |
examples/Working examples/ are complete, runnable cases.
| File | Purpose |
|---|---|
basic_example.py |
Full build-run-read cycle |
complete_workflow.ipynb |
End-to-end notebook workflow |
Documentation
Full API reference documentation is included in the repository under docs/. Open docs/esther.html in a browser to browse it locally.
License
CeCILL v2.1. See LICENSE.
Release files for esther 0.1.0b2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| esther-0.1.0b2.tar.gz | 139.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| esther-0.1.0b2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 269.5 kB
Release files / esther-0.1.0b2.tar.gz
| Download URL | esther-0.1.0b2.tar.gz |
|---|---|
| Size | 139.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
20550eed39495ad07f712c0f03ea954321e8b8a8e8a060c03e798e16490c2ee9
|
|
BLAKE2b-256 checksum How to use checksums |
21f567c3ab4f1369f9f596fa8ddbcffbd8b023d949b4e7007b9344a7f0502df1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|
Release files / esther-0.1.0b2-py3-none-any.whl
| Download URL | esther-0.1.0b2-py3-none-any.whl |
|---|---|
| Size | 130.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
22ccda012d39ab166300311cd6596b2968b61b0ccc516e7e150ae3da13ffa547
|
|
BLAKE2b-256 checksum How to use checksums |
aed1e06f8343bafe8471d99cb86697e7e4792d68b0035a5348301403329f904b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|