Source code for eppy3000
# -*- coding: utf-8 -*-
# Copyright (c) 2022 Santosh Philip
# =======================================================================
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
# =======================================================================
"""Top-level package for eppy3000."""
__author__ = """Santosh Philip"""
__email__ = "santosh@noemail.com"
__version__ = "0.1.15"
from io import StringIO
import pathlib
from eppy3000.modelmaker import EPJ
from eppy3000.idfjsonconverter import getidfversion
from eppy3000.idfjsonconverter import idf2json
[docs]def openidf(idfpath, epjpath=None, schemapath=None, epjext=None):
"""open and idf file as a epj file"""
if not epjext:
epjext = "epJSON"
idfpath = pathlib.Path(idfpath)
if not schemapath:
with open(idfpath, "r") as idfhandle:
version = getidfversion(idfhandle)
schemapath = installlocation.schemapath(version)
if not epjpath:
epjpath = idfpath.with_suffix(f".{epjext}")
schemahandle = open(schemapath, "r")
idfhandle = open(idfpath, "r")
epjtxt = idf2json(idfhandle, schemahandle)
epj = EPJ(StringIO(epjtxt))
epj.epjname = epjpath
return epj
# with open(epjpath, "w") as epjhandle:
# epjhandle.write(epjtxt)
# return epjpath
[docs]def newepj(version=None):
"""open a new idf file
easy way to open a new idf file for particular version. Works only if Energyplus of that version is installed.
Parameters
----------
version: string
version of the new file you want to create. Will work only if this version of Energyplus has been installed.
Returns
-------
idf
file of type eppy.modelmake.IDF
""" # noqa: E501
if not version:
version = "9.6"
import eppy.easyopen as easyopen
idfstring = """{{
"Version": {{
"Version 1": {{
"version_identifier": "{}",
"idf_order": 1
}}
}}
}}""".format(
str(version)
)
fhandle = StringIO(idfstring)
return EPJ(fhandle)