Package: energyplus-idd-idf-utilities
EnergyPlus Python IDD/IDF UtilitiesPython library of EnergyPlus IDD/IDF manipulation utilities.DocumentationDocumentation is hosted on ReadTheDocs athttps://energyplus-idd-idf.readthedocs.io/en/latest/.
To build the documentation, enter the docs/ subdirectory and executemake html; then open/docs/_build/html/index.htmlto see the documentation.InstallationThis package is deployed to PyPi athttps://badge.fury.io/py/energyplus-idd-idf-utilities.
To install, simplypip install energyplus-idd-idf-utilities.Basic UsageOnce installed, the utilities are available for use as a library of functionality to call from Python, or with a very limited (for now) CLI calledenergyplus_idd_idf.
Some example CLI calls:Get the CLI form:$energyplus_idd_idf--help
usage:energyplus_idd_idf[-h][--idd_check][--idd_obj_matchesIDD_OBJ_MATCHES][--summarize_idd_objectSUMMARIZE_IDD_OBJECT]filename

EnergyPlusIDD/IDFUtilityCommandLine

positionalarguments:filenamePathtoIDD/IDFfiletobeoperatedupon

optionalarguments:-h,--helpshowthishelpmessageandexit--idd_checkProcessthegivenIDDfileandreportstatisticsandissues--idd_obj_matchesIDD_OBJ_MATCHESFindIDDobjectsthatmatchthegivenbasicpattern--summarize_idd_objectSUMMARIZE_IDD_OBJECTPrintasummaryofasingleIDDobjectbyname

ThisCLIisininfancyandwillprobablyhavefeaturesaddedovertimeCheck an existing IDD file and get basic information:$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:$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:$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"]}}TestingThe source is tested using the python unittest framework.
To execute all the unit tests, simply runnosetestsfrom the project root.
The tests are also executed by GitHub Actions for each commit.Test CoverageCoverage of the code from unit testing is reported to Coveralls athttps://coveralls.io/github/Myoldmopar/py-idd-idf.
Anything less than 100% coverage will be frowned upon. :)