Skip to main content

Generic EPD Aggregator

Build Coverage PyPI Python Documentation License pre-commit Code style: black Flake8


Features

  • Parse ILCD process and flow XMLs
  • Normalize material properties and LCIA modules
  • Aggregate impacts and compute weighted averages
  • Write new ILCD XML datasets

Installation

Install via PyPI:

pip install materia-epd

Requires Python 3.10+.


Documentation

Full documentation is hosted on Read the Docs.

It covers the EPD pipeline, module reference, contributing guidelines, and the changelog.


Usage

Run the aggregator

python -m materia_epd <generic_processes_dir> <epd_processes_dir> -o <output_dir> -v

Note that you need to point to the root processes folders and need to provide a matches folder in the generic data folder to link generic products and EPDs. Add the flag --v or -v for verbosity. Logs files with details will be automatically created in <output_dir>.

Run for specific processes only

By default, the pipeline runs for all processes with defined matches. To run only for specific processes, provide a JSON file containing an array of UUIDs via the --process-list or -p option:

python -m materia_epd <generic_processes_dir> <epd_processes_dir> -p process_list.json -o <output_dir>

Example process_list.json:

[
  "8a3b1c4d-5e6f-7g8h-9i0j-1k2l3m4n5o6p",
  "2d4e6f8a-9b1c-2d3e-4f5g-6h7i8j9k0l1m"
]

The <generic_processes_dir> folder should be structured like this:

<generic_process_dir>
├── flows
│   ├── <flow-uuid-1>.xml   # Reference flow of generic-uuid-1
│   ├── <flow-uuid-2>.xml
│   └── ...
├── matches
│   ├── <generic-uuid-1>.json   # Source EPDs for generic-uuid-1
│   ├── <generic-uuid-2>.json
│   └── ...
├── PDFs
├── processes
│   ├── <generic-uuid-1>.xml   # Skeleton process for generic-uuid-1
│   ├── <generic-uuid-2>.xml
│   └── ...
└── templates
    ├── GenPro_template.xml # Template with the EPD schema
    └── GenRef_template.xml # Template with the flow schema

Source EPDs (<epd_processes_dir>)

<epd_process_dir>
├── flows       # Reference flows for all source EPDs
└── processes   # All potential source EPD process XMLs

Matches JSON

Files in matches/ are named after the corresponding generic product UUID:

{
  "type": "<aggregation_type>",
  "uuids": [
    "<uuid-1>",
    "<uuid-2>",
    "<uuid-3>",
    "... more UUIDs ..."
  ]
}

type is "average", "market-average", "assembled" or "regression". The uuids list links to process files in the source EPD processes/ folder.


Development / running tests

See DEVELOP.md for local setup, versioning, and PyPI release instructions.

For local development, install the package in editable mode with developer dependencies:

python -m pip install -e ".[dev]"

Then run tests:

pytest

Metadata

Release files for materia-epd 0.8.0

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

Source distribution (sdist)

Source distribution for materia-epd 0.8.0
File Size Uploaded
materia_epd-0.8.0.tar.gz 189.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for materia-epd 0.8.0
File Interpreter ABI Platform
materia_epd-0.8.0-py3-none-any.whl Python 3 none any Details

Total release size: 392.2 kB

Release files / materia_epd-0.8.0.tar.gz

Download URL materia_epd-0.8.0.tar.gz
Size 189.2 kB
Tags Source
SHA-256 checksum
How to use checksums
7fef09ec42b28f6c98ede33061e30b5a8d4b0a9f132cf24b6f7c513715d18c8c
BLAKE2b-256 checksum
How to use checksums
b6b88e4d3578f296465126ca871260c439accc5516d541159c3bef40afae7de0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 9, 2026.

Transparency log

Release files / materia_epd-0.8.0-py3-none-any.whl

Download URL materia_epd-0.8.0-py3-none-any.whl
Size 203.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c9824ff5f716af48185a4dc05367e79297a89b8fc7c8af4ee4d0c1fec42e2871
BLAKE2b-256 checksum
How to use checksums
73e2ba2e22725e53773c9754df01b2243009ac1f59504aff196e7b19f2bff998
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 9, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.8.0 This release

2 release files

0.7.4

2 release files

0.7.3

2 release files

0.6.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

1 release file

0.1.0

2 release files

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