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 docs.
Installation
Note: If you are not familiar working with python packages, please refer to the quick start guide first.
Install pyetm from PyPI:
pip install pyetm
Requirements: Python 3.12 or later
Check your Python version:
python3 --version
If you need to install Python:
- Windows: Download from python.org
- macOS: Install via Homebrew:
brew install python@3.12 - Linux: Use your package manager (e.g.,
apt install python3)
Quick Start
1. Create a Virtual Environment
We recommend using a virtual environment to keep your project dependencies isolated:
# Create a new virtual environment
python3 -m venv .venv
# Activate it
# On macOS/Linux:
source .venv/bin/activate
# On Windows (PowerShell):
.venv\Scripts\Activate.ps1
# On Windows (Command Prompt):
.venv\Scripts\activate.bat
More details on how python virtual environments work can be found here
2. Install pyetm
With your virtual environment activated:
pip install pyetm
Note: New versions of pyetm are consistently released. Check here for the latest release
An example of how to install a specific release:
pip install pyetm==2.0.0
3. Initialize Your Project
Run the interactive setup command:
pyetm init
This will:
- Ask which environment you want to use (production, beta, or local)
- Create a
.envconfiguration file - Copy an input template Excel file to
excel/input.xlsx
After initialization, you'll need to manually add your API token to the .env file:
- Open
.envin your text editor - Find the commented
# ETM_API_TOKEN=line - Uncomment it by removing the
# - Paste your full token after the
=sign (get your token here) - Save the file
Note: API tokens are very long (1000+ characters). Make sure you paste the entire token.
Command options:
--environment: Target environment (pro,beta, orlocal)--log-level: Logging verbosity (DEBUG,INFO,WARNING,ERROR,CRITICAL)--force: Overwrite existing files without prompting
Example:
pyetm init --environment pro --log-level INFO
4. Run Scenarios from Excel
The easiest way to work with scenarios is using Excel files:
# Edit excel/input.xlsx with your scenario data, then run:
pyetm run excel/input.xlsx
This will load your scenarios, update them on ETM, and export results to excel/input_results.xlsx.
Command options:
--output PATHor-o PATH: Custom output file location--log-level: Logging verbosity
Example:
# Custom output location
pyetm run excel/input.xlsx --output results/my_results.xlsx
# Read-only mode (fetch data without updating)
pyetm run excel/input.xlsx --no-update
For more detailed 'pyetm run' workflow instructions, see the Quick Start Guide in the docs.
Configuration
The pyetm init command creates a .env file with your settings. You can also configure manually:
Environment Variables
Create a .env file in your project directory:
# Your ETM API token (optional for public scenarios)
ETM_API_TOKEN=etm_your_token_here
# Environment (default: pro)
# Options: pro, beta, local, or stable tags like 2025-01
ENVIRONMENT=pro
# Logging level (default: INFO)
LOG_LEVEL=INFO
# CSV export settings (optional)
CSV_SEPARATOR=,
DECIMAL_SEPARATOR=.
Note on API Token:
- Without a token: You can create and work with public scenarios (read and write operations)
- With a token: Required to access your saved scenarios, list your scenarios, and work with private scenarios
- Get your token here
Environment Options:
pro(default): Production environmentbeta: Staging environmentlocal: Local development environmentYYYY-MM: Stable tagged environment (e.g.,2025-01)
Advanced Configuration
You can override the base URL directly if needed:
BASE_URL=https://engine.energytransitionmodel.com/api/v3
SSL/TLS Configuration
For corporate environments or custom certificate setups:
| Option | Default | Description |
|---|---|---|
SSL_VERIFY |
true |
Verify SSL certificates. Set to false only for testing with self-signed certificates. Never disable in production! |
TRUST_ENV |
false |
Enable system proxy environment variables (HTTP_PROXY, HTTPS_PROXY, NO_PROXY) |
SSL_CERT_PATH |
(empty) | Path to custom CA certificate bundle for corporate environments |
Example for corporate CA:
SSL_CERT_PATH=/path/to/corporate-ca-bundle.pem
TRUST_ENV=true
HTTP_PROXY=http://proxy.company.com:8080
For examples and tutorials, visit our documentation.
Temporary File Storage
The package stores temporary files (cached curves and custom data) in your system's temp directory:
- macOS/Linux:
/tmp/pyetm/ - Windows:
%TEMP%\pyetm\
Contributing
Interested in contributing to pyetm development? See our Contributing Guide for details on:
- Setting up the development environment with Poetry
- Running tests
- Code style guidelines
- Submitting pull requests
Getting Help
- Documentation: docs.energytransitionmodel.com
- Issues: GitHub Issues
- Repository: github.com/quintel/pyetm
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.0b12.tar.gz.
File metadata
- Download URL: pyetm-2.0.0b12.tar.gz
- Upload date:
- Size: 134.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.25
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6b0abe9c4c5ff927602e785b2fa30d08c0f7fd3e610160a615901a346d4f4cee
|
|
| MD5 |
843107d9e71770b229f52a87e78ca2c3
|
|
| BLAKE2b-256 |
eb74096fbb57172bb77624e86e9a3aeaae66504d97103c59a42fad26e4f4c55f
|
File details
Details for the file pyetm-2.0.0b12-py3-none-any.whl.
File metadata
- Download URL: pyetm-2.0.0b12-py3-none-any.whl
- Upload date:
- Size: 181.7 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 |
c076106b1c3328434418d5dc175796253cdd1f4898a3053e6ef7987647f78a30
|
|
| MD5 |
d877580e9c4c78eb3a4aaa8634f66bc5
|
|
| BLAKE2b-256 |
53a43251da5cbbaa4837bcc91ab06d96925d9ffcad5c72892d8fb66c239b02ff
|