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.7.3.tar.gz (60.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

epmodel-0.7.3-py3-none-any.whl (60.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: epmodel-0.7.3.tar.gz
  • Upload date:
  • Size: 60.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for epmodel-0.7.3.tar.gz
Algorithm Hash digest
SHA256 51cab5e07b13fd60622c27368bdea2af16272c46afbeaf4426f4223dad9ed251
MD5 731a584bfdd49ab6489e7d953574edd1
BLAKE2b-256 4fe5d9bd5a0f8be1c5ad577d7b2e411c183ffc8f1089beda9d580a4f1a553379

See more details on using hashes here.

File details

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

File metadata

  • Download URL: epmodel-0.7.3-py3-none-any.whl
  • Upload date:
  • Size: 60.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for epmodel-0.7.3-py3-none-any.whl
Algorithm Hash digest
SHA256 b5229d78ac8afa2802f28c015e1a752d42d94fedfa02e99f6bf7e7bc2a1bde49
MD5 3effd5e7e82f1953f013816b45cdbf6e
BLAKE2b-256 283cc46c4b0fdeb5e7680f5e5bd2826b78ea25e5c88ecdd2a57c1d3d7d94de60

See more details on using hashes here.

Supported by

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