Skip to main content

Free Evaluation and Analysis Framework (Freva)

Project description

Free Evaluation System Framework

PyPI version Update Anaconda-Server Badge Docs codecov Pipeline Binder BSD

Freva

What is Freva ?

Freva, the free evaluation system framework, is a data search and analysis platform developed by the atmospheric science community for the atmospheric science community. With help of Freva researchers can:

  • quickly and intuitively search for data stored at typical data centers that host many datasets.
  • create a common interface for user defined data analysis tools.
  • apply data analysis tools in a reproducible manner.

Data analysis is realised by user developed data analysis plugins. These plugins are code agnostic, meaning that users don't have to rewrite the core of their plugins to make them work with Freva. All that Freva does is providing a user interface for the plugins.

Currently Freva comes in three different flavours:

  • a python module that allows the usage of Freva in python environments, like jupyter notebooks
  • a command line interface (cli) that allows using Freva from the command lines and shell scripts.
  • a web user interface (web-ui)

Where can I find the Freva user documentation?

A more detailed overview on the usage of freva can be found on the freva user documentation page

How can I install Freva at my institution?

Deployment is realised via a dedicated repository that holds code to set up the command line and web user interface as well as all services. To deploy the system in production mode consult deployment docs.

How can I set up a local version for development?

To start development with freva clone the repository and its submodules:

git clone --recursive https://github.com/FREVA-CLINT/freva.git

A basic local development setup can be created using Docker and docker-compose (Linux users need to install it separately).

This also requires that the .envrc file is sourced.

docker-compose up -d

Dummy data can be injected into a running docker-compose environment with make dummy-data. This will add some example files into solr and run an example plugin a few times to add some history data.

When finished, tear down the environment with

docker-compose down

Creating a dedicated anaconda dev environment

We recommend using anaconda to install all packages that are needed for development. Here we assume that you have a working anaconda version per-installed on your local computer. To install the dev environment simply use the following command:

conda env create -f dev-environment.yml
source .envrc

This will automatically set environment variables needed for development. The freshly installed environment can be activated:

conda activate freva-dev

The conda environment can be deactivated using the following command:

conda deactivate

Note: The conda install command can be slow. If you want to speed up the installation of the environment we recommend to install the mamba package in the anaconda base environment and use the mamba command to create the environment:

conda install mamba
mamba env create -f dev-environment.yml
source .envrc

Installing the python package

Use the pip install command to install the actual python core packages into your activated environment:

pip install -e .[test]

The -e flag will link the source code into your python environment, which can be useful for development purpose.

Running tests and creating a test coverage report

The system can be tested with a Makefile. To run the tests and generate a simple test coverage report simply use the make command:

make test

The linter testing can be applied by:

make lint

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

freva-2307.0.2.tar.gz (162.7 kB view details)

Uploaded Source

Built Distribution

freva-2307.0.2-py3-none-any.whl (184.3 kB view details)

Uploaded Python 3

File details

Details for the file freva-2307.0.2.tar.gz.

File metadata

  • Download URL: freva-2307.0.2.tar.gz
  • Upload date:
  • Size: 162.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for freva-2307.0.2.tar.gz
Algorithm Hash digest
SHA256 5c5bb4f10f9dc29d6299a37bdff381f58b797d3342c178d5ff032fb36ba8752f
MD5 df504bb1c886e2c0838afabd54acdca9
BLAKE2b-256 0443b13b656d1166708b56e014491649e697a93e8444c407e0eb73bfa61a1507

See more details on using hashes here.

File details

Details for the file freva-2307.0.2-py3-none-any.whl.

File metadata

  • Download URL: freva-2307.0.2-py3-none-any.whl
  • Upload date:
  • Size: 184.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for freva-2307.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d9c6bc733535317fd1ff21c9383aa62b57ea9555e79d1e801df6294480dfb4c6
MD5 5fcaab75f2e6934402edca36e798cbd2
BLAKE2b-256 baeffeb936e754c50bfffce25bfbf4d9b4cc7fc79b6a139436148ed16673218d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page