Skip to main content

Data models for EnergyPlus automatically generated from EnergyPlus JSON schema using datamodel-code-generator.

Project description

epmodel

epmodel is a pydantic (V2) data model for EnergyPlus modeling. The data model code itself is automatically generated from the EnergyPlus JSON schema using the datamodel-code-generator package.

Usage

Due to the size of the official EnergyPlus JSON schema, we reduce the data model scope down the a few commonly used ones. The name of these data models are list in the keys.txt file, which is also used to generate the data model code.

Expanding the scope of data model

We can add object to the data model by adding names directly to the keys.txt file.

Generate the source code

To generate the source code, run the following command inside the codegen directory:

python codegen.py

As a result, a src/epmodel/model.py file will be a generated with the data model code.

Using the data model

Using the data model object is as simple as:

import json
from epmodel import EnergyPlusModel

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

The code above loads in the EnergyPlus epJSON model and validate it against the data model. If the mode is valid, a EnergyPlusModel object will be returned, otherwise, an ValidationError will be raised.

One of the benefits of having such data model, beyond data validation, is that we can use autocomplete in IDE to help use write the code.

Dependencies

Dependency for code generation

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

epmodel-0.2.0.tar.gz (4.7 kB view details)

Uploaded Source

Built Distribution

epmodel-0.2.0-py3-none-any.whl (5.8 kB view details)

Uploaded Python 3

File details

Details for the file epmodel-0.2.0.tar.gz.

File metadata

  • Download URL: epmodel-0.2.0.tar.gz
  • Upload date:
  • Size: 4.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.17

File hashes

Hashes for epmodel-0.2.0.tar.gz
Algorithm Hash digest
SHA256 0e39acef0af52fc3ec2360fe277636aa40288624a8c9d5c3e55e7e6ea0ecc0b0
MD5 0deb0e0dfa6adec9cc29a19d9d75afd5
BLAKE2b-256 6d67a3a30ceb388d6b08fb0cd08944dfdbcd50c467f08ebc3b672949b39a9b6b

See more details on using hashes here.

File details

Details for the file epmodel-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: epmodel-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 5.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.17

File hashes

Hashes for epmodel-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1e99313b63cfbe15364d17c7030cce9634eaf2f34d80337f573a79f8e56593d5
MD5 31da570c6883b4b740ab43fe94e7552d
BLAKE2b-256 a55e3e33ba48005e3081eebd4d22e7c1025a7cb7ad6c736b61c44e7a2f45cac0

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page