Skip to main content

pyenergyplus (LBNL)

pyenergyplus is a pip-installable wheel that packages the EnergyPlus simulation engine and its Python API. It also ships pyenergyplus.model, a Pydantic v2 sub-package providing data models for the EnergyPlus epJSON format. Both components are versioned together and always track the same EnergyPlus release.

Installation

pip install pyenergyplus-lbnl

Usage

Simulation API

from pyenergyplus.api import EnergyPlusAPI

api = EnergyPlusAPI()
state = api.state_manager.new_state()
api.runtime.run_energyplus(state, ["-w", "weather.epw", "-r", "model.idf"])

epJSON data models (pyenergyplus.model)

Load an epJSON file into a typed EnergyPlusModel:

import json
from pyenergyplus.model import EnergyPlusModel

with open("model.epJSON") as f:
    model = EnergyPlusModel.model_validate(json.load(f))

print(model.version)

Modify fields through the Pydantic model, then serialize back to a dict and write to a file for simulation. Use by_alias=True so object-type keys match the EnergyPlus epJSON format (e.g. "Building" not "building"), and exclude_none=True to omit optional fields that were not set:

import json, tempfile, os
from pyenergyplus.api import EnergyPlusAPI
from pyenergyplus.model import EnergyPlusModel

with open("model.epJSON") as f:
    model = EnergyPlusModel.model_validate(json.load(f))

# --- make changes to the model here ---

epjson_dict = model.model_dump(by_alias=True, exclude_none=True)

with tempfile.NamedTemporaryFile(
    mode="w", suffix=".epJSON", delete=False
) as tmp:
    json.dump(epjson_dict, tmp)
    tmp_path = tmp.name

api = EnergyPlusAPI()
state = api.state_manager.new_state()
api.runtime.run_energyplus(state, ["-w", "weather.epw", "-r", tmp_path])
os.unlink(tmp_path)

Individual model classes are importable from pyenergyplus.model.model:

from pyenergyplus.model.model import WindowMaterialGas, GasType

gas = WindowMaterialGas(gas_type=GasType.air, thickness=0.012)

Builder helpers

from pyenergyplus.model.builder import (
    ConstructionComplexFenestrationStateBuilder,
    ConstructionComplexFenestrationStateInput,
)

Bundled reference models and weather files

from pyenergyplus.dataset import ref_models, ashrae_models, weather_files

idf_path = ref_models["large_office"]
epw_path = weather_files["chicago"]

Metadata

Release files for pyenergyplus-lbnl 26.1.0

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

Built distributions (wheels)

Table of built distributions (wheels) for pyenergyplus-lbnl 26.1.0
File Interpreter ABI Platform Actions
pyenergyplus_lbnl-26.1.0-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details for pyenergyplus_lbnl-26.1.0-py3-none-win_amd64.whl
pyenergyplus_lbnl-26.1.0-py3-none-manylinux1_x86_64.whl Python 3 none Linux glibc 2.5+ x86-64 Details for pyenergyplus_lbnl-26.1.0-py3-none-manylinux1_x86_64.whl
pyenergyplus_lbnl-26.1.0-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details for pyenergyplus_lbnl-26.1.0-py3-none-macosx_11_0_arm64.whl

Total release size: 105.0 MB

Release files / pyenergyplus_lbnl-26.1.0-py3-none-win_amd64.whl

Download URL pyenergyplus_lbnl-26.1.0-py3-none-win_amd64.whl
Size 21.9 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
5669748080888d33424a6c2bae665fedc5b14fa7d43dc897cf20d46ee2ee3426
BLAKE2b-256 checksum
How to use checksums
399a2ef6f39fa7865bb5da4cd84702cb169a2974bb3045e2575d0613b66890ba
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Apr 13, 2026.

Transparency log

Release files / pyenergyplus_lbnl-26.1.0-py3-none-manylinux1_x86_64.whl

Download URL pyenergyplus_lbnl-26.1.0-py3-none-manylinux1_x86_64.whl
Size 46.1 MB
Tags Linux glibc 2.5+ x86-64 Python 3
SHA-256 checksum
How to use checksums
16bda1d451a72d8ec27697d8c52f804a7ce1c51b0ccb567b80033652e356720b
BLAKE2b-256 checksum
How to use checksums
1bfa03767459c9f4281ed2a0778eea1d5f033f27669de43a6c22ccb9326198e4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Apr 13, 2026.

Transparency log

Release files / pyenergyplus_lbnl-26.1.0-py3-none-macosx_11_0_arm64.whl

Download URL pyenergyplus_lbnl-26.1.0-py3-none-macosx_11_0_arm64.whl
Size 37.0 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
629fb061b78f529b682477fb0396cf4f3e3c67e31fbff4e20d574b8352afc2a9
BLAKE2b-256 checksum
How to use checksums
20b45227a206df7d7fb4bd94934aeb7ed8a27b618489cda00fc74305bdf7e7b6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Apr 13, 2026.

Transparency log

Security for pyenergyplus-lbnl 26.1.0

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.

Full provenance

All 3 files in this release have been uploaded with provenance metadata.

Select from 3 files

Attestation for pyenergyplus_lbnl-26.1.0-py3-none-win_amd64.whl

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 Apr 13, 2026.

Transparency log

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.

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