Python-ETM Connector
Project description
This package provides a set of tools for interaction with the Energy Transition Model's API. Learn more about the Energy Transition Model here.
The package is designed to be a modular tool that advanced users can incorporate into their scenario workflows. More documentation is available via the ETM documentation page.
Installation
You can install pyetm directly from PyPI:
pip install pyetm
Or clone from our GitHub repository if you want the latest development version:
git clone https://github.com/quintel/pyetm.git
cd pyetm
Running Jupyter Notebooks (Beginner Friendly)
If you only want to open and run our Jupyter notebooks in VS Code without developing the package, follow the beginner guide here: Running notebooks.
Development Setup (Using Poetry)
We recommend using Poetry to manage dependencies and virtual environments. Poetry ensures all dependencies are installed in an isolated environment, keeping your system clean.
Python
Make sure you have Python 3.12 or later installed:
- Windows: Download from python.org
- macOS: Install via Homebrew
brew install python@3.12
- Linux: Use your package manager or install from source.
Check your version:
python3 --version
Poetry
Follow the official instructions:
For Mac with brew
brew install poetry
For other systems
Make sure pipx is installed, otherwise use:
brew install pipx
Then:
pipx install poetry
Finally
After installation, ensure Poetry is available:
poetry --version
Install Dependencies
Navigate to the pyetm folder and install all dependencies:
poetry install
This will:
- Create a virtual environment
- Install runtime dependencies If you want development dependencies (testing, linting, etc.) then append the "--with dev" flag to the install command.
How to use the environment:
You can either:
- Run commands inside Poetry's environment:
poetry run pytest poetry run pyetm
- Or activate the shell:
eval $(poetry env activate)
Then run you can commands normally (e.g.):pytest
Configuring Your Settings
You can configure your API token and base URL using environment variables or a .env file. You can simply set an environment and the base URL will be inferred for you.
Option 1: .env File (Recommended)
- Copy the example file (
.env.example) and rename it to.env:cp .env.example .env
- Edit
.envwith your settings:# Your ETM API token (required) ETM_API_TOKEN=your.token.here # Environment (default: pro) ENVIRONMENT=pro # Optional: Override base URL directly # BASE_URL=https://engine.energytransitionmodel.com/api/v3 # Optional: Proxy settings # PROXY_SERVERS_HTTP=http://proxy.example.com:8080 # PROXY_SERVERS_HTTPS=http://secureproxy.example.com:8080 # CSV settings (optional) CSV_SEPARATOR=, DECIMAL_SEPARATOR=.
For development: Place .env in the repository root (pyetm/ folder).
For installed package: Place .env in your project's working directory (where you run your Python scripts).
Environment Options:
pro(default): Production environmentbeta: Staging environmentlocal: Local development environmentYYYY-MM: Stable tagged environment (e.g.,2025-01)
Option 2: Environment Variables
Set these environment variables directly in your shell:
ETM_API_TOKEN=<your token>
ENVIRONMENT=<pro|beta|local|YYYY-MM>
# or provide a direct override instead of ENVIRONMENT
BASE_URL=<api url>
Note: Environment variables take precedence over values in .env files.
Temporary File Storage
The package stores temporary files (cached output curves and custom curves) in your system's temporary directory:
- macOS/Linux:
/tmp/pyetm/ - Windows:
%TEMP%\pyetm\
Files are organized by scenario ID to enable efficient caching across requests.
Running Examples
The example notebooks in the examples/ directory are designed for development and require the repository to be cloned. They use repository-relative paths and sample input files that are not included when installing via pip.
To run the examples:
- Clone the repository:
git clone https://github.com/quintel/pyetm.git cd pyetm
- Install with development dependencies:
poetry install --with dev
- Configure your settings (see "Configuring Your Settings" above)
- Open the notebooks in Jupyter or VS Code
Notes
- Windows:
- Use
pyinstead ofpython3ifpython3is not recognized. - In PowerShell, set environment variables with:
$env:ETM_API_TOKEN="your-token"
- Use
- macOS/Linux:
- Use
python3in commands. - Set environment variables with:
export ETM_API_TOKEN="your-token" export ENVIRONMENT=beta
- Use
Contributing
See our Contributing Guide for details.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyetm-2.0.0b5.tar.gz.
File metadata
- Download URL: pyetm-2.0.0b5.tar.gz
- Upload date:
- Size: 81.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.25
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1ce879c1657ff97cb2fcdfbc64e5cd4bbfdca07d119334fbf3185f7f61876964
|
|
| MD5 |
d0fa01379ba7755976dad423870161ae
|
|
| BLAKE2b-256 |
00e38f84b8bf509bcb2b2067df6918a973971a4d48e2e3947d782ea514940b53
|
File details
Details for the file pyetm-2.0.0b5-py3-none-any.whl.
File metadata
- Download URL: pyetm-2.0.0b5-py3-none-any.whl
- Upload date:
- Size: 120.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.25
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0232d022824798fe477112404d5ebc9538c1d6a430dc34c8b8ee8201e853cf03
|
|
| MD5 |
a6433fb3c6e927511203b0f6be0a9a0c
|
|
| BLAKE2b-256 |
4a56a766924fd59321586c5adfa4cc364fec50a2151ec773f4f5667756e2a9ab
|