Skip to main content

The visualization plattform for ZEN-garden

Project description

ZEN-temple

ZEN-temple is a FastAPI Application that provides a REST API to access results from ZEN-garden. It is used as a backend for ZEN-Explorer.

PyPI - Version Python Version from PEP 621 TOML

GitHub Actions: Type checker

GitHub License

🛠️ Requirements

📦 Installation

Perform the following steps to install ZEN-temple:

  1. Clone the repository and navigate into the folder:

    git clone https://github.com/ZEN-universe/ZEN-temple.git
    cd ZEN-temple
    
  2. Create a new conda environment, activate it, and install all dependencies:

    conda create --name <your-env-name> python==3.13
    conda activate <your-env-name>
    pip install -e .[mypy]
    
  3. Create a new copy of .env.

    cp .env.example .env
    

    Modify the SOLUTION_FOLDER variable to the location of your solutions, e.g. ./outputs. This is the outputs folder generated by ZEN-garden.

▶️ Usage

Open this folder in your terminal. Activate your conda environment for this project and run the application with the following commands:

conda activate <your-env-name>
python -m zen_temple.main --reload

For information about the available command line arguments run:

python -m zen_temple.main --help

📤 Release workflow

To create a new release of ZEN-temple follow the following steps. The idea is that for each major release (from v0.4.x to v0.5.0) we sync the version number of ZEN-explorer and ZEN-temple

  1. Bump version in ZEN-explorer bash scripts/bump_version.sh and update its CHANGELOG.md.
  2. Commit and upload the updated files to GitHub.
  3. Create a new release for ZEN-explorer: https://github.com/ZEN-universe/ZEN-explorer/releases/new
  4. Bump version in ZEN-temple bash scripts/bump_version.sh and update CHANGELOG.md.
  5. Commit and upload the updated files to GitHub.
  6. Create a new release for ZEN-temple, e.g. <version>. For a pre-release also add a suffix .dev1, i.e. <version>.dev1, and mark the release as pre-release: https://github.com/ZEN-universe/ZEN-temple/releases/new
  7. (optional) Look at PyPI whether the new release has successfully been created: https://pypi.org/project/zen-temple/#history

🗂️ Folder structure

The folder and file structure is the following:

Explorer

explorer contains the HTML files for the frontend.

[!WARNING]
Do not edit the files in this folder. This folder is automatically generated by the frontend repository pipeline.

Models

models contains the Pydantic-models that are used for the documentation. Some of these models also include generators that create an instance of the model given the path of a solution. See https://fastapi.tiangolo.com/tutorial/body/#create-your-data-model

Repositories

repositories contains the repositories for the data access. These provide an abstraction layer for the routers such that the data access is separated from the data source. Arguably, the generators defined in the models should be part of the repository in order to separate the instantiation of the models from the way that the solutions are stored. For more information visit https://www.umlboard.com/design-patterns/repository.html

Routers

routers contains the FastAPI routers which define the different paths of the API server. For more information visit https://fastapi.tiangolo.com/tutorial/bigger-applications/

Config

config.py contains the config of the application.

Main

main.py contains the setup of the FastAPI application. For more information visit https://fastapi.tiangolo.com/tutorial/bigger-applications/

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

zen_temple-0.9.4.dev2.tar.gz (46.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

zen_temple-0.9.4.dev2-py3-none-any.whl (46.4 MB view details)

Uploaded Python 3

File details

Details for the file zen_temple-0.9.4.dev2.tar.gz.

File metadata

  • Download URL: zen_temple-0.9.4.dev2.tar.gz
  • Upload date:
  • Size: 46.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for zen_temple-0.9.4.dev2.tar.gz
Algorithm Hash digest
SHA256 cf3c5c31199a91c5bbdff63f16ea4f57006b07e4f3696a5bcde23860a4b59e0b
MD5 4d539896fc76f26f88806baa2bda4ff7
BLAKE2b-256 d508c3b92e449163d63c2ac8e5e2399dedb84fa1c01f8dc6b6d92970ba584eab

See more details on using hashes here.

Provenance

The following attestation bundles were made for zen_temple-0.9.4.dev2.tar.gz:

Publisher: publish-to-pypi.yml on ZEN-universe/ZEN-temple

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file zen_temple-0.9.4.dev2-py3-none-any.whl.

File metadata

  • Download URL: zen_temple-0.9.4.dev2-py3-none-any.whl
  • Upload date:
  • Size: 46.4 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for zen_temple-0.9.4.dev2-py3-none-any.whl
Algorithm Hash digest
SHA256 101052ead9343bafecefe0cf22243ae01d19d6ce91a7940cda2852331d90e5e5
MD5 0f9a229a7b3f937075cdc8416afca098
BLAKE2b-256 036084b9ede1fcfc667c35dbecb82f0f2accc844e6b0ceb973c20ac126cacb52

See more details on using hashes here.

Provenance

The following attestation bundles were made for zen_temple-0.9.4.dev2-py3-none-any.whl:

Publisher: publish-to-pypi.yml on ZEN-universe/ZEN-temple

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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