Metadata-Version: 2.4
Name: imas-ibex
Version: 0.3.0
Summary: Data visualization for IMAS IDS data
Author: IBEX Developers
Author-email: Olivier Hoenen <olivier.hoenen@iter.org>
License: LGPL-3.0-only
Project-URL: homepage, https://github.com/iterorganization/IBEX
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Framework :: FastAPI
Classifier: Framework :: Pytest
Classifier: Framework :: Sphinx
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: System Administrators
Classifier: Natural Language :: English
Classifier: Operating System :: POSIX
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Physics
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: imas-idstools
Requires-Dist: click
Requires-Dist: uvicorn
Requires-Dist: fastapi[standard]==0.115.14
Requires-Dist: packaging
Requires-Dist: tsdownsample
Requires-Dist: orjson
Requires-Dist: autodoc_pydantic
Requires-Dist: scipy
Provides-Extra: all
Requires-Dist: imas-ibex[test]; extra == "all"
Requires-Dist: imas-ibex[linting]; extra == "all"
Requires-Dist: imas-ibex[docs]; extra == "all"
Provides-Extra: test
Requires-Dist: pytest; extra == "test"
Requires-Dist: pytest-cov; extra == "test"
Requires-Dist: pytest-xdist; extra == "test"
Requires-Dist: pytest-unordered; extra == "test"
Provides-Extra: linting
Requires-Dist: ruff==0.15.22; extra == "linting"
Provides-Extra: docs
Requires-Dist: sphinx<9,>=7; extra == "docs"
Requires-Dist: sphinx-autosummary-accessors==2025.3.1; extra == "docs"
Requires-Dist: sphinx_immaterial; extra == "docs"
Provides-Extra: benchmark
Requires-Dist: asv==0.6.4; extra == "benchmark"
Dynamic: license-file

# Ibex backend

## Installation

## Requirements

Load required modules

```commandline
module load IDStools IMAS-Python
```

## Development setup

```commandline
python -m venv venv
. venv/bin/activate

# in `backend` directory
pip install -e . # editable mode allows changes to have instant impact
```

## Development run
```commandline
./bin/run_ibex_service

>...
>Uvicorn running on http://127.0.0.1:<port_number>
>...

# start firefox and open localhost:<port_number>/docs to explore endpoints

# you can also specify port number when running service
./bin/run_ibex_service -p 8000
```

## Documentation build
```commandline
. venv/bin/activate
pip install sphinx==8.2.3 sphinx-autosummary-accessors==2025.3.1 sphinx_immaterial==0.13.9

make -C docs html
```

## Testing
```commandline
python -m pytest tests/ #make sure to run pythest with python -m. Otherwise it won't see installed fastapi packages
```

## Benchmarking
```commandline
./ci/run_benchmarks.sh
# results will be saved in `cwd`/ibex_benchmarks
```
