# EnergyPlus Python IDD/IDF Utilities
Python library of EnergyPlus IDD/IDF manipulation utilities.
## Documentation
[![Documentation Status](https://readthedocs.org/projects/energyplus-idd-idf/badge/?version=latest)](https://energyplus-idd-idf.readthedocs.io/en/latest/?badge=latest)
Documentation is hosted on ReadTheDocs at https://energyplus-idd-idf.readthedocs.io/en/latest/.
To build the documentation, enter the docs/ subdirectory and execute `make html`; then open
`/docs/_build/html/index.html` to see the documentation.
## Installation
This package is deployed to PyPi at https://badge.fury.io/py/energyplus-idd-idf-utilities.
To install, simply `pip install energyplus-idd-idf-utilities`.
## Basic Usage
Once installed, the utilities are available for use as a library of functionality to call from Python, or with a very limited (for now) CLI called `energyplus_idd_idf`.
Some example CLI calls:
Get the CLI form:
```shell
$ energyplus_idd_idf --help
usage: energyplus_idd_idf [-h] [--idd_check] [--idd_obj_matches IDD_OBJ_MATCHES] [--summarize_idd_object SUMMARIZE_IDD_OBJECT] filename
EnergyPlus IDD/IDF Utility Command Line
positional arguments:
filename Path to IDD/IDF file to be operated upon
optional arguments:
-h, --help show this help message and exit
--idd_check Process the given IDD file and report statistics and issues
--idd_obj_matches IDD_OBJ_MATCHES
Find IDD objects that match the given basic pattern
--summarize_idd_object SUMMARIZE_IDD_OBJECT
Print a summary of a single IDD object by name
This CLI is in infancy and will probably have features added over time
```
Check an existing IDD file and get basic information:
```shell
$ energyplus_idd_idf --idd_check /path/to/EnergyPlus-22-2-0/Energy+.idd
{
"message": "Everything looks OK",
"content": {
"idd_version": "22.2.0",
"idd_build_id": "c249759bad",
"num_groups": 59,
"num_objects": 881
}
}
```
Find all objects which match a certain name pattern:
```shell
$ energyplus_idd_idf --idd_obj_matches 'Coil:Cooling*' /path/to/EnergyPlus-22-2-0/Energy+.idd
{
"message": "Everything looks OK",
"content": {
"pattern": "Coil:Cooling*",
"matching_objects": [
"Coil:Cooling:Water",
"Coil:Cooling:Water:DetailedGeometry",
"Coil:Cooling:DX",
"Coil:Cooling:DX:CurveFit:Performance",
"Coil:Cooling:DX:CurveFit:OperatingMode",
"Coil:Cooling:DX:CurveFit:Speed",
"Coil:Cooling:DX:SingleSpeed",
"Coil:Cooling:DX:TwoSpeed",
"Coil:Cooling:DX:MultiSpeed",
"Coil:Cooling:DX:VariableSpeed",
"Coil:Cooling:DX:TwoStageWithHumidityControlMode",
"Coil:Cooling:DX:VariableRefrigerantFlow",
"Coil:Cooling:DX:VariableRefrigerantFlow:FluidTemperatureControl",
"Coil:Cooling:WaterToAirHeatPump:ParameterEstimation",
"Coil:Cooling:WaterToAirHeatPump:EquationFit",
"Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit",
"Coil:Cooling:DX:SingleSpeed:ThermalStorage"
]
}
}
```
Get specific details about a single object by name:
```shell
$ energyplus_idd_idf /path/to/EnergyPlus-22-2-0/Energy+.idd --summarize_idd_object "Coil:Cooling:DX"
{
"message": "Everything looks OK",
"content": {
"searched_object_name": "COIL:COOLING:DX",
"field": [
"A1 : Name",
"A2 : Evaporator Inlet Node Name",
"A3 : Evaporator Outlet Node Name",
"A4 : Availability Schedule Name",
"A5 : Condenser Zone Name",
"A6 : Condenser Inlet Node Name",
"A7 : Condenser Outlet Node Name",
"A8 : Performance Object Name",
"A9 : Condensate Collection Water Storage Tank Name",
"A10 : Evaporative Condenser Supply Water Storage Tank Name"
]
}
}
```
## Testing
[![Flake8](https://github.com/Myoldmopar/py-idd-idf/actions/workflows/flake8.yml/badge.svg)](https://github.com/Myoldmopar/py-idd-idf/actions/workflows/flake8.yml)
[![Run Tests](https://github.com/Myoldmopar/py-idd-idf/actions/workflows/test.yml/badge.svg)](https://github.com/Myoldmopar/py-idd-idf/actions/workflows/test.yml)
The source is tested using the python unittest framework.
To execute all the unit tests, simply run `nosetests` from the project root.
The tests are also executed by GitHub Actions for each commit.
## Test Coverage
[![Coverage Status](https://coveralls.io/repos/github/Myoldmopar/py-idd-idf/badge.svg?branch=master)](https://coveralls.io/github/Myoldmopar/py-idd-idf?branch=master)
Coverage of the code from unit testing is reported to Coveralls at https://coveralls.io/github/Myoldmopar/py-idd-idf.
Anything less than 100% coverage will be frowned upon. :)
Raw data
{
"_id": null,
"home_page": "https://github.com/myoldmopar/py-idd-idf",
"name": "energyplus-idd-idf-utilities",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "energyplus_launch,ep_launch,EnergyPlus,eplus,Energy+,Building Simulation,Whole Building Energy Simulation,Heat Transfer,HVAC,Modeling",
"author": "Edwin Lee, for NREL, for the United States Department of Energy",
"author_email": "",
"download_url": "https://files.pythonhosted.org/packages/62/a3/84fdd9448327187bfadab762cac668ef85535e2b8e5777723f0ea6845a24/energyplus_idd_idf_utilities-0.88.tar.gz",
"platform": "Linux (Tested on Ubuntu)",
"description": "# EnergyPlus Python IDD/IDF Utilities\n\nPython library of EnergyPlus IDD/IDF manipulation utilities.\n\n## Documentation\n\n[![Documentation Status](https://readthedocs.org/projects/energyplus-idd-idf/badge/?version=latest)](https://energyplus-idd-idf.readthedocs.io/en/latest/?badge=latest)\n\nDocumentation is hosted on ReadTheDocs at https://energyplus-idd-idf.readthedocs.io/en/latest/.\nTo build the documentation, enter the docs/ subdirectory and execute `make html`; then open\n`/docs/_build/html/index.html` to see the documentation.\n\n## Installation\n\nThis package is deployed to PyPi at https://badge.fury.io/py/energyplus-idd-idf-utilities.\nTo install, simply `pip install energyplus-idd-idf-utilities`.\n\n## Basic Usage\n\nOnce installed, the utilities are available for use as a library of functionality to call from Python, or with a very limited (for now) CLI called `energyplus_idd_idf`.\nSome example CLI calls:\n\nGet the CLI form:\n\n```shell\n$ energyplus_idd_idf --help\nusage: energyplus_idd_idf [-h] [--idd_check] [--idd_obj_matches IDD_OBJ_MATCHES] [--summarize_idd_object SUMMARIZE_IDD_OBJECT] filename\n\nEnergyPlus IDD/IDF Utility Command Line\n\npositional arguments:\n filename Path to IDD/IDF file to be operated upon\n\noptional arguments:\n -h, --help show this help message and exit\n --idd_check Process the given IDD file and report statistics and issues\n --idd_obj_matches IDD_OBJ_MATCHES\n Find IDD objects that match the given basic pattern\n --summarize_idd_object SUMMARIZE_IDD_OBJECT\n Print a summary of a single IDD object by name\n\nThis CLI is in infancy and will probably have features added over time\n\n```\n\nCheck an existing IDD file and get basic information:\n\n```shell\n$ energyplus_idd_idf --idd_check /path/to/EnergyPlus-22-2-0/Energy+.idd \n{\n \"message\": \"Everything looks OK\",\n \"content\": {\n \"idd_version\": \"22.2.0\",\n \"idd_build_id\": \"c249759bad\",\n \"num_groups\": 59,\n \"num_objects\": 881\n }\n}\n\n```\n\nFind all objects which match a certain name pattern:\n\n```shell\n$ energyplus_idd_idf --idd_obj_matches 'Coil:Cooling*' /path/to/EnergyPlus-22-2-0/Energy+.idd \n{\n \"message\": \"Everything looks OK\",\n \"content\": {\n \"pattern\": \"Coil:Cooling*\",\n \"matching_objects\": [\n \"Coil:Cooling:Water\",\n \"Coil:Cooling:Water:DetailedGeometry\",\n \"Coil:Cooling:DX\",\n \"Coil:Cooling:DX:CurveFit:Performance\",\n \"Coil:Cooling:DX:CurveFit:OperatingMode\",\n \"Coil:Cooling:DX:CurveFit:Speed\",\n \"Coil:Cooling:DX:SingleSpeed\",\n \"Coil:Cooling:DX:TwoSpeed\",\n \"Coil:Cooling:DX:MultiSpeed\",\n \"Coil:Cooling:DX:VariableSpeed\",\n \"Coil:Cooling:DX:TwoStageWithHumidityControlMode\",\n \"Coil:Cooling:DX:VariableRefrigerantFlow\",\n \"Coil:Cooling:DX:VariableRefrigerantFlow:FluidTemperatureControl\",\n \"Coil:Cooling:WaterToAirHeatPump:ParameterEstimation\",\n \"Coil:Cooling:WaterToAirHeatPump:EquationFit\",\n \"Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit\",\n \"Coil:Cooling:DX:SingleSpeed:ThermalStorage\"\n ]\n }\n}\n\n```\n\nGet specific details about a single object by name:\n\n```shell\n$ energyplus_idd_idf /path/to/EnergyPlus-22-2-0/Energy+.idd --summarize_idd_object \"Coil:Cooling:DX\"\n{\n \"message\": \"Everything looks OK\",\n \"content\": {\n \"searched_object_name\": \"COIL:COOLING:DX\",\n \"field\": [\n \"A1 : Name\",\n \"A2 : Evaporator Inlet Node Name\",\n \"A3 : Evaporator Outlet Node Name\",\n \"A4 : Availability Schedule Name\",\n \"A5 : Condenser Zone Name\",\n \"A6 : Condenser Inlet Node Name\",\n \"A7 : Condenser Outlet Node Name\",\n \"A8 : Performance Object Name\",\n \"A9 : Condensate Collection Water Storage Tank Name\",\n \"A10 : Evaporative Condenser Supply Water Storage Tank Name\"\n ]\n }\n}\n```\n\n## Testing\n\n[![Flake8](https://github.com/Myoldmopar/py-idd-idf/actions/workflows/flake8.yml/badge.svg)](https://github.com/Myoldmopar/py-idd-idf/actions/workflows/flake8.yml)\n[![Run Tests](https://github.com/Myoldmopar/py-idd-idf/actions/workflows/test.yml/badge.svg)](https://github.com/Myoldmopar/py-idd-idf/actions/workflows/test.yml)\n\nThe source is tested using the python unittest framework. \nTo execute all the unit tests, simply run `nosetests` from the project root.\nThe tests are also executed by GitHub Actions for each commit.\n\n## Test Coverage\n\n[![Coverage Status](https://coveralls.io/repos/github/Myoldmopar/py-idd-idf/badge.svg?branch=master)](https://coveralls.io/github/Myoldmopar/py-idd-idf?branch=master)\n\nCoverage of the code from unit testing is reported to Coveralls at https://coveralls.io/github/Myoldmopar/py-idd-idf.\nAnything less than 100% coverage will be frowned upon. :)\n\n\n",
"bugtrack_url": null,
"license": "ModifiedBSD",
"summary": "EnergyPlus idd/idf manipulation in Python.",
"version": "0.88",
"split_keywords": [
"energyplus_launch",
"ep_launch",
"energyplus",
"eplus",
"energy+",
"building simulation",
"whole building energy simulation",
"heat transfer",
"hvac",
"modeling"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "86c563addb950252a5f2413048773641234b11bb9ba39420d41b99fbedb5eb44",
"md5": "f51e54c4f4af2e6a6feb05f34da83322",
"sha256": "e47e46c0a9d15c005928ebeda78a12e31c611ca7bc57d40fdd33110f95e903aa"
},
"downloads": -1,
"filename": "energyplus_idd_idf_utilities-0.88-py3-none-any.whl",
"has_sig": false,
"md5_digest": "f51e54c4f4af2e6a6feb05f34da83322",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 22271,
"upload_time": "2023-04-14T15:26:36",
"upload_time_iso_8601": "2023-04-14T15:26:36.411090Z",
"url": "https://files.pythonhosted.org/packages/86/c5/63addb950252a5f2413048773641234b11bb9ba39420d41b99fbedb5eb44/energyplus_idd_idf_utilities-0.88-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "62a384fdd9448327187bfadab762cac668ef85535e2b8e5777723f0ea6845a24",
"md5": "51fb8abc6e296c9bbeba270a38338795",
"sha256": "a667d73cc97acbd2e83c036af1865101131b6abb2a27ddca37d8593fea70d101"
},
"downloads": -1,
"filename": "energyplus_idd_idf_utilities-0.88.tar.gz",
"has_sig": false,
"md5_digest": "51fb8abc6e296c9bbeba270a38338795",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 19577,
"upload_time": "2023-04-14T15:26:38",
"upload_time_iso_8601": "2023-04-14T15:26:38.058081Z",
"url": "https://files.pythonhosted.org/packages/62/a3/84fdd9448327187bfadab762cac668ef85535e2b8e5777723f0ea6845a24/energyplus_idd_idf_utilities-0.88.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-04-14 15:26:38",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "myoldmopar",
"github_project": "py-idd-idf",
"travis_ci": false,
"coveralls": true,
"github_actions": true,
"requirements": [],
"lcname": "energyplus-idd-idf-utilities"
}