Metadata-Version: 2.1
Name: elicito
Version: 0.5.3
Summary: A Python package for learning prior distributions based on expert knowledge
Author-Email: Florence Bockting <florence.bockting@tu-dortmund.de>
License: Apache-2.0
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
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: Typing :: Typed
Project-URL: Homepage, https://elicito.readthedocs.io
Project-URL: Documentation, https://elicito.readthedocs.io
Project-URL: Changelog, https://elicito.readthedocs.io/en/stable/changelog
Project-URL: Repository, https://github.com/florence-bockting/elicito
Project-URL: Issues, https://github.com/florence-bockting/elicito/issues
Requires-Python: >=3.9
Requires-Dist: tqdm>=4.67.1
Requires-Dist: numpy>=1.26.4
Requires-Dist: tensorflow>=2.16.1; sys_platform != "win32"
Requires-Dist: tensorflow-cpu>=2.16.1; sys_platform == "win32"
Requires-Dist: tensorflow-probability>=0.24.0
Requires-Dist: joblib>=1.4.2
Requires-Dist: tf-keras>=2.16.0
Provides-Extra: plots
Requires-Dist: matplotlib>=3.7.1; extra == "plots"
Requires-Dist: seaborn>=0.12; extra == "plots"
Provides-Extra: pandas
Requires-Dist: pandas==2.2.3; extra == "pandas"
Provides-Extra: scipy
Requires-Dist: scipy==1.13.1; extra == "scipy"
Provides-Extra: full
Requires-Dist: elicito[plots]; extra == "full"
Requires-Dist: elicito[scipy]; extra == "full"
Requires-Dist: elicito[pandas]; extra == "full"
Provides-Extra: locked
Requires-Dist: absl-py==2.2.2; extra == "locked"
Requires-Dist: astunparse==1.6.3; extra == "locked"
Requires-Dist: certifi==2024.12.14; extra == "locked"
Requires-Dist: charset-normalizer==3.4.1; extra == "locked"
Requires-Dist: cloudpickle==3.1.1; extra == "locked"
Requires-Dist: colorama==0.4.6; extra == "locked"
Requires-Dist: decorator==5.1.1; extra == "locked"
Requires-Dist: dm-tree==0.1.8; extra == "locked"
Requires-Dist: flatbuffers==25.2.10; extra == "locked"
Requires-Dist: gast==0.6.0; extra == "locked"
Requires-Dist: google-pasta==0.2.0; extra == "locked"
Requires-Dist: grpcio==1.71.0; extra == "locked"
Requires-Dist: h5py==3.13.0; extra == "locked"
Requires-Dist: idna==3.10; extra == "locked"
Requires-Dist: importlib-metadata==8.7.0; python_version < "3.10" and extra == "locked"
Requires-Dist: joblib==1.5.0; extra == "locked"
Requires-Dist: keras==3.9.2; extra == "locked"
Requires-Dist: libclang==18.1.1; extra == "locked"
Requires-Dist: markdown==3.7; extra == "locked"
Requires-Dist: markdown-it-py==3.0.0; extra == "locked"
Requires-Dist: markupsafe==3.0.2; extra == "locked"
Requires-Dist: mdurl==0.1.2; extra == "locked"
Requires-Dist: ml-dtypes==0.4.1; extra == "locked"
Requires-Dist: namex==0.0.9; extra == "locked"
Requires-Dist: numpy==2.0.2; extra == "locked"
Requires-Dist: opt-einsum==3.4.0; extra == "locked"
Requires-Dist: optree==0.15.0; extra == "locked"
Requires-Dist: packaging==24.2; extra == "locked"
Requires-Dist: protobuf==5.29.4; extra == "locked"
Requires-Dist: pygments==2.19.1; extra == "locked"
Requires-Dist: requests==2.32.3; extra == "locked"
Requires-Dist: rich==14.0.0; extra == "locked"
Requires-Dist: setuptools==75.6.0; extra == "locked"
Requires-Dist: six==1.17.0; extra == "locked"
Requires-Dist: tensorboard==2.18.0; extra == "locked"
Requires-Dist: tensorboard-data-server==0.7.2; extra == "locked"
Requires-Dist: tensorflow==2.18.1; extra == "locked"
Requires-Dist: tensorflow-cpu==2.18.0; sys_platform == "win32" and extra == "locked"
Requires-Dist: tensorflow-intel==2.18.0; platform_system == "Windows" and sys_platform == "win32" and extra == "locked"
Requires-Dist: tensorflow-io-gcs-filesystem==0.37.1; python_version < "3.12" and extra == "locked"
Requires-Dist: tensorflow-probability==0.25.0; extra == "locked"
Requires-Dist: termcolor==3.1.0; extra == "locked"
Requires-Dist: tf-keras==2.18.0; extra == "locked"
Requires-Dist: tqdm==4.67.1; extra == "locked"
Requires-Dist: typing-extensions==4.12.2; extra == "locked"
Requires-Dist: urllib3==2.3.0; extra == "locked"
Requires-Dist: werkzeug==3.1.3; extra == "locked"
Requires-Dist: wheel==0.45.1; extra == "locked"
Requires-Dist: wrapt==1.17.2; extra == "locked"
Requires-Dist: zipp==3.21.0; python_version < "3.10" and extra == "locked"
Provides-Extra: plots-locked
Requires-Dist: contourpy==1.3.0; extra == "plots-locked"
Requires-Dist: cycler==0.12.1; extra == "plots-locked"
Requires-Dist: fonttools==4.58.0; extra == "plots-locked"
Requires-Dist: importlib-resources==6.5.2; python_version < "3.10" and extra == "plots-locked"
Requires-Dist: kiwisolver==1.4.7; extra == "plots-locked"
Requires-Dist: matplotlib==3.9.4; extra == "plots-locked"
Requires-Dist: numpy==2.0.2; extra == "plots-locked"
Requires-Dist: packaging==24.2; extra == "plots-locked"
Requires-Dist: pandas==2.2.3; extra == "plots-locked"
Requires-Dist: pillow==11.2.1; extra == "plots-locked"
Requires-Dist: pyparsing==3.2.3; extra == "plots-locked"
Requires-Dist: python-dateutil==2.9.0.post0; extra == "plots-locked"
Requires-Dist: pytz==2025.2; extra == "plots-locked"
Requires-Dist: seaborn==0.13.2; extra == "plots-locked"
Requires-Dist: six==1.17.0; extra == "plots-locked"
Requires-Dist: tzdata==2025.2; extra == "plots-locked"
Requires-Dist: zipp==3.21.0; python_version < "3.10" and extra == "plots-locked"
Provides-Extra: pandas-locked
Requires-Dist: numpy==2.0.2; extra == "pandas-locked"
Requires-Dist: pandas==2.2.3; extra == "pandas-locked"
Requires-Dist: python-dateutil==2.9.0.post0; extra == "pandas-locked"
Requires-Dist: pytz==2025.2; extra == "pandas-locked"
Requires-Dist: six==1.17.0; extra == "pandas-locked"
Requires-Dist: tzdata==2025.2; extra == "pandas-locked"
Provides-Extra: scipy-locked
Requires-Dist: numpy==2.0.2; extra == "scipy-locked"
Requires-Dist: scipy==1.13.1; extra == "scipy-locked"
Provides-Extra: full-locked
Requires-Dist: contourpy==1.3.0; extra == "full-locked"
Requires-Dist: cycler==0.12.1; extra == "full-locked"
Requires-Dist: fonttools==4.58.0; extra == "full-locked"
Requires-Dist: importlib-resources==6.5.2; python_version < "3.10" and extra == "full-locked"
Requires-Dist: kiwisolver==1.4.7; extra == "full-locked"
Requires-Dist: matplotlib==3.9.4; extra == "full-locked"
Requires-Dist: numpy==2.0.2; extra == "full-locked"
Requires-Dist: packaging==24.2; extra == "full-locked"
Requires-Dist: pandas==2.2.3; extra == "full-locked"
Requires-Dist: pillow==11.2.1; extra == "full-locked"
Requires-Dist: pyparsing==3.2.3; extra == "full-locked"
Requires-Dist: python-dateutil==2.9.0.post0; extra == "full-locked"
Requires-Dist: pytz==2025.2; extra == "full-locked"
Requires-Dist: scipy==1.13.1; extra == "full-locked"
Requires-Dist: seaborn==0.13.2; extra == "full-locked"
Requires-Dist: six==1.17.0; extra == "full-locked"
Requires-Dist: tzdata==2025.2; extra == "full-locked"
Requires-Dist: zipp==3.21.0; python_version < "3.10" and extra == "full-locked"
Description-Content-Type: text/markdown

# Expert prior elicitation method

A Python package for learning prior distributions based on expert knowledge

**Key info :**
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.15452973.svg)](https://doi.org/10.5281/zenodo.15452973)
[![Docs](https://readthedocs.org/projects/elicito/badge/?version=latest)](https://elicito.readthedocs.io)
[![Main branch: supported Python versions](https://img.shields.io/python/required-version-toml?tomlFilePath=https%3A%2F%2Fraw.githubusercontent.com%2Fflorence-bockting%2Felicito%2Fmain%2Fpyproject.toml)](https://github.com/florence-bockting/elicito/blob/main/pyproject.toml)
[![Licence](https://img.shields.io/pypi/l/elicito?label=license)](https://github.com/florence-bockting/elicito/blob/main/LICENCE)

**PyPI :**
[![PyPI](https://img.shields.io/pypi/v/elicito.svg)](https://pypi.org/project/elicito/)
[![PyPI install](https://github.com/florence-bockting/elicito/actions/workflows/install-pypi.yaml/badge.svg?branch=main)](https://github.com/florence-bockting/elicito/actions/workflows/install-pypi.yaml)

**Conda :**
[![Conda](https://img.shields.io/conda/vn/conda-forge/elicito.svg)](https://anaconda.org/conda-forge/elicito)
[![Conda platforms](https://img.shields.io/conda/pn/conda-forge/elicito.svg)](https://anaconda.org/conda-forge/elicito)
[![Conda install](https://github.com/florence-bockting/elicito/actions/workflows/install-conda.yaml/badge.svg?branch=main)](https://github.com/florence-bockting/elicito/actions/workflows/install-conda.yaml)

**Tests :**
[![CI](https://github.com/florence-bockting/elicito/actions/workflows/ci.yaml/badge.svg?branch=main)](https://github.com/florence-bockting/elicito/actions/workflows/ci.yaml)
[![Coverage](https://codecov.io/gh/florence-bockting/elicito/branch/main/graph/badge.svg)](https://codecov.io/gh/florence-bockting/elicito)

**Other info :**
[![Last Commit](https://img.shields.io/github/last-commit/florence-bockting/elicito.svg)](https://github.com/florence-bockting/elicito/commits/main)
[![Contributors](https://img.shields.io/github/contributors/florence-bockting/elicito.svg)](https://github.com/florence-bockting/elicito/graphs/contributors)
## Status

<!---

We recommend having a status line in your repo
to tell anyone who stumbles on your repository where you're up to.
Some suggested options:

- prototype: the project is just starting up and the code is all prototype
- development: the project is actively being worked on
- finished: the project has achieved what it wanted
  and is no longer being worked on, we won't reply to any issues
- dormant: the project is no longer worked on
  but we might come back to it,
  if you have questions, feel free to raise an issue
- abandoned: this project is no longer worked on
  and we won't reply to any issues
-->

- prototype: the project is just starting up and the code is all prototype

<!--- --8<-- [end:description] -->

Full documentation can be found at:
[elicito.readthedocs.io](https://elicito.readthedocs.io/en/latest/).
We recommend reading the docs there because the internal documentation links
don't render correctly on GitHub's viewer.

## Installation

Our package depends on `TensorFlow` and thus all its requirements.
Specifically, for Windows the Microsoft Visual C++ Redistributable for VisualStudio needs to be installed.
See [`install tensorflow`](https://www.tensorflow.org/install/pip)

<!--- --8<-- [start:installation] -->
### As an application

If you want to use Expert prior elicitation method as an application,
then we recommend using the 'locked' version of the package.
This version pins the version of all dependencies too,
which reduces the chance of installation issues
because of breaking updates to dependencies.

The locked version of Expert prior elicitation method can be installed with

=== "conda"

    ```sh
    conda install -c conda-forge elicito-locked
    ```
=== "pip"

    ```sh
    pip install 'elicito[locked]'
    ```

### As a library

If you want to use Expert prior elicitation method as a library,
for example you want to use it
as a dependency in another package/application that you're building,
then we recommend installing the package with the commands below.
This method provides the loosest pins possible of all dependencies.
This gives you, the package/application developer,
as much freedom as possible to set the versions of different packages.
However, the tradeoff with this freedom is that you may install
incompatible versions of Expert prior elicitation method's dependencies
(we cannot test all combinations of dependencies,
particularly ones which haven't been released yet!).
Hence, you may run into installation issues.
If you believe these are because of a problem in Expert prior elicitation method,
please [raise an issue](https://github.com/florence-bockting/elicito/issues).

The (non-locked) version of Expert prior elicitation method can be installed with

=== "conda"

    ```sh
    conda install -c conda-forge elicito
    ```
=== "pip"

    ```sh
    pip install elicito
    ```

Additional dependencies can be installed using


=== "conda"

    If you are installing with conda, we recommend
    installing the extras by hand because there is no stable
    solution yet (see [conda issue #7502](https://github.com/conda/conda/issues/7502))
=== "pip"

    ```sh
    # To add plotting dependencies
    pip install 'elicito[plots]'

    # To add all optional dependencies
    pip install 'elicito[full]'
    ```

### For developers

For development, we rely on [uv](https://docs.astral.sh/uv/)
for all our dependency management.
To get started, you will need to make sure that uv is installed
([instructions here](https://docs.astral.sh/uv/getting-started/installation/)
(we found that the self-managed install was best,
particularly for upgrading uv later).

For all of our work, we use our `Makefile`.
You can read the instructions out and run the commands by hand if you wish,
but we generally discourage this because it can be error prone.
In order to create your environment, run `make virtual-environment`.

If there are any issues, the messages from the `Makefile` should guide you through.
If not, please raise an issue in the
[issue tracker](https://github.com/florence-bockting/elicito/issues).

For the rest of our developer docs, please see [development][development].

<!--- --8<-- [end:installation] -->

## Older versions

+ **v0.3.1**: [![DOI](https://zenodo.org/badge/663057594.svg)](https://zenodo.org/doi/10.5281/zenodo.15241853)

## Original template

This project was generated from this template:
[copier core python repository](https://gitlab.com/openscm/copier-core-python-repository).
[copier](https://copier.readthedocs.io/en/stable/) is used to manage and
distribute this template.
