Generic EPD Aggregator
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)
| File | Size | Uploaded | |
|---|---|---|---|
| materia_epd-0.8.0.tar.gz | 189.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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