Installation#

End users / Install from PyPI#

ampycloud is available on PyPI, which should make its installation straightforward. Typing the following in a terminal should take care of things:

pip install ampycloud

ampycloud uses semantic versioning. The latest stable version is dev.

The different releases of ampycloud are also available for download from its Github repository.

or (if you prefer Poetry):

poetry add ampycloud

Development setup (Poetry)#

If you plan to contribute or run the test suite, use the Poetry-based development workflow. And clone/fork the main branch of the ampycloud Github repository, in which case the install command becomes:

# clone the project and enter the repo
git clone https://github.com/MeteoSwiss/ampycloud.git
cd ampycloud

# create/install the development environment
poetry install

# run test suite
poetry run pytest

# run the quality tools
poetry run pylint ampycloud
poetry run mypy ampycloud
poetry run ruff format --check

Note

If you do not use Poetry, the editable pip install is an alternative to develop locally:

python -m pip install -e '.[dev]'

Note

If you plan to do dev-work with ampycloud, you ought to read the contributing guidelines first.

Requirements#

ampycloud is compatible with the following python versions:

requires-python = ">=3.10,<3.13"

Furthermore, ampycloud relies on a few external modules, which will be automatically installed by pip/poetry if required:

dependencies = [
    "matplotlib>=3.7.2",
    "numpy>=1.20.3",
    "scikit-learn>=1.2.0",
    "scipy>=1.7.3",
    "statsmodels>=0.14.3",
    "pandas>=1.5",
    "pyyaml",
    "ruamel.yaml",
]

Testing the installation & Speed benchmark#

ampycloud is shipped with a high-level entry point that allows to run a speed check from the command line. To see if your installation was successful, run the following command:

ampycloud_speed_test -h

To actually run the speed test, simply call ampycloud_speed_test, optionally setting a different number of executions via the -niter argument. The dedicated CI_speed_check workflow tracks these performances over time to catch any regression.