Skip to main content

e-footprint model

A toolkit for exhaustively modeling the environmental impact of digital services.

The current perimeter is the carbon footprint associated with the manufacturing and usage of servers, storage, network (usage only) and end-user devices necessary for the existence of a web digital service. It is also now possible to model the production of edge devices (like video game consoles, smartphones, servers, etc.) and describe the unitary usage by device over its usage phase, to get the environmental footprint of the deployed fleet. Edge devices support hierarchical grouping via EdgeDeviceGroup with per-component unit multiplicity (nb_of_units), enabling complex fleet structures with nested device and sub-group counts.

Other environmental impacts (water, rare earth metals, etc.) will be added soon through an integration with the Boavizta API, and the lifecycle phases of device transportation and end of life are currently considered negligible.

Getting started

Python support policy

e-footprint requires Python >= 3.12, with no cap on 3.x minor versions: it follows a rolling window where "supported" means the latest Python minor versions for which every compiled dependency ships wheels. Today that's 3.12 and 3.13; the next minor is added once its wheels land. The <4.0 bound in requires-python is a major-series guard, not a ceiling on the rolling window.

Installation

Check out INSTALL.md.

Documentation

Here is the link to the e-footprint documentation. There you will find a description of all the e-footprint objects, their parameters, the relationship between the objects and the calculated attributes and their graphs.

Graphical interface

You can explore the model’s graphical interface, which is also open source and found in the Boavizta e-footprint interface repository. Please send an email to e-footprint’s main maintainer, Vincent Villet if you wish to give feedback !

Modeling examples

Checkout our open source e-footprint modeling use cases.

Tutorial

pip install efootprint

You can then run the jupyter notebook tutorial to familiarize yourself with the object logic and generate an object relationship graph and a calculation graph as HTML files in the current folder.

object relationships graph
Object relationships graph: usage patterns in deep blue, user journey in blue, user journey steps in pale blue, jobs in gold, infra hardware in red. Hover over a node to get the numerical values of its environmental and technical attributes. For simplifying the graph the Network and Hardware nodes are not shown.
simple calculation graph
Calculation graph: user inputs in gold, hypothesis in darkred, and intermediate calculations in pale blue. Hover over a node to read the formula.

To launch jupyter:

# Todo once to setup jupyter kernel
poetry run ipython kernel install --user --name=efootprint-kernel
# Start Jupyter server with poetry
poetry run jupyter notebook tutorial.ipynb

Run with Docker

No local Python setup needed: build the image once, write your model script, then run it inside the container.

docker build --build-arg EFOOTPRINT_VERSION=<version> -t efootprint .
docker run --rm -v "$PWD":/work efootprint python /work/build_model.py

The current directory is mounted at /work inside the container, so build_model.py (and any file paths it references, e.g. an output HTML graph) resolves relative to your working directory. See Dockerfile. This image isn't published anywhere yet — build it locally as above.

Dev setup

Check out INSTALL.md.

Code logic

The code has been architectured to separate modeling from optimization from API logic. The goal is to make contribution to the modeling logic as straightforward as possible.

  • Modules that deal with modeling logic are located in efootprint/core.
  • Optimizations (having the model rerun the right calculations whenever an input attribute or a link between objects changes) are dealt with in efootprint/abstract_modeling_classes.
  • All json serialization / deserialization logic, that is essential for making the web interface work, are found in efootprint/api_utils.

Contributing

Check out CONTRIBUTING.md

License

GNU Affero General Public License v3.0

Metadata

Release files for efootprint 27.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for efootprint 27.0.1
File Size Uploaded Provenance Actions
efootprint-27.0.1.tar.gz 347.9 kB Without provenance Details for efootprint-27.0.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for efootprint 27.0.1
File Interpreter ABI Platform Actions
efootprint-27.0.1-py3-none-any.whl Python 3 none any Details for efootprint-27.0.1-py3-none-any.whl

Total release size: 767.6 kB

Release files / efootprint-27.0.1.tar.gz

Download URL efootprint-27.0.1.tar.gz
Size 347.9 kB
Tags Source
SHA-256 checksum
How to use checksums
130b515d2d8fc22d8f93ffcd026dbf98c10e08d7171dad4da280e25acefbf4ab
BLAKE2b-256 checksum
How to use checksums
68bb5bba16a00132f5940e793ff96975fc69e1c1b86dfa6b47f49bf33afa2586
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.4.1 CPython/3.13.5 Darwin/25.6.0

Release files / efootprint-27.0.1-py3-none-any.whl

Download URL efootprint-27.0.1-py3-none-any.whl
Size 419.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
763bd5e61fcc8a1f098551ab3de9b36ebf72ecea04d398b1257a950635f28e39
BLAKE2b-256 checksum
How to use checksums
78fde4375416e9f9e8994573365f3d3e91eca699013503d6728c17a0c432d1d9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.4.1 CPython/3.13.5 Darwin/25.6.0

Security for efootprint 27.0.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

27.0.1 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page