Package: eppy3000
eppy3000E+ scripting using epJSON file formatFree software: Mozilla Public License, v. 2.0Documentation:https://eppy3000.readthedocs.io.Home Page:https://github.com/pyenergyplus/eppy3000Features - so far :-)Open and read an epJSON file withsomeeppyfunctionality.Right now theeppyfunctionality is only partialBackgroundE+ has been moving from the IDD/IDF text format to a JSON format.Eppyreads the old IDD/IDF format. There is a need to haveeppyread the JSON format and/or have a new package that will read the JSON format.Whats in a nameWhy is this package called eppy3000 ?It is a play on the word python3000. Guido van van Rossum said about python in 2007“The first time I came up with the idea of Python 3000 was probably at a Python conference in the year 2000. The name was a take on Windows 2000. …<snip>…  The idea was that Python 3000 would be the first Python release to give up backwards compatibility in favor of making it the best language going forward.”Eppy3000 will also break backward compatibility with eppy. Also eppy3000 will be written only for python3. Eppy3000 and eppy will continue to remain the best scripting language for modelling :-)So what is eppy3000This project is an attempt to read JSON file formats and work like eppy. There is some value in trying to do this from scratch. The dot syntax that makes the original eppy useful can be recreated with a couple of lines in eppy3000. It took a lot of deep hacking to make the dot syntax work in the original eppy. Eppy3000 reads the JSON format as a dictionary. The packageMunch(what wasBunch) allows the use of dot format syntax with a dictionary. The code is as simple as:as_json = json.load(open(fname, 'r'))
for_dot_syntax = DefaultMunch.fromDict(as_json)At this point eppy3000 is an exploration to find out what is possible. The API in eppy3000 will not be stable as we explore the possibilities. So, don’t use it as production code yet :-)What about eppyEppy will be continue to be developed and maintained. A major task will be to make eppy read the new JSON formats. Initial investigations shows that it is not too hard to develop this functionality. Internally eppy will continue to use the old format. Hopefully this will make the JSON reading functionality trivially easy. At the moment, E+ maintains a one to one mapping between the old IDD/IDF format and the new JSON format. This mapping is embedded in the file Energy+.schema.epJSON, pointing to an easy compatibility strategy.In the long term, this may not be a viable strategy, as E+ may totally abandon the IDD/IDF file format breaking the link between JSON and IDD/IDF. Discussion thread atunmethoursseems to indicate that this is about 5 yers in the future.Future possibilitesA number of possibilites came up in discussions at Simbuild 2018 in Chicago. The biggest takeaway was that the code base for the JSON format and the dot syntax can lead to a universal translator between modelling file formats. The thinking here is that if there exists a schema.JSON for two modelling file structures, the possibility of translating between the two exists.Of coursethe proof is in the pudding. So we are going to write some quick and dirty translators between E+ and DOE2.1E (or EQuest) as well as between the older idds and the new epJSON. Lets see how that goes.CreditsThis package was created withCookiecutterand theaudreyr/cookiecutter-pypackageproject template.HistoryReleasesRelease 0.1.13  (2021-03-16)2021-03-16Fixed #76Problem:Need easier conversion from IDF to epJSONSolution:idffile2epjfilewill convert a single file andidffolder2epjfolderwill do batch conversionDate: Mon Jan 18 21:53:40 PST 2021fixed issue #73Problem:Would be nice to have an html viewer for epjSolution:pytested eppy3000.epjviewer with sphinx user documentationDate: Tue Jan 12 14:18:37 PST 2021fixed issue #69Problem:no EPJ.run() functionSolution:EPJ.run() function implementedRelease 0.1.4  (2020-07-09)Date:   Tue Jul 7 08:09:26 2020 -0700Fixed issue #48Problem:No Tutorial for eppy3000Solution:tutorial for eppy3000This tutorial is based on eppy tutorialIdentifies the gaps in the eppy3000 tagged by TODO in the tutorialopen issues on these TODOs and resolveRelease 0.1.3 (2020-07-04)Date:   Wed May 13 14:20:34 2020 -0700fixed issue # 45Problem: setup.py not including foldersoldeppyandexperimentalSolution: setup.py updated and testedRelease 0.1.2 (2020-05-12)Date:   Tue May 12 08:11:39 2020 -0700fixed issue #41Problem: function to get an array of xyz points from the surfaces
Solution: function in eppy300.experimental.listfields.surf2list()Date:   Mon May 11 08:15:50 2020 -0700fixed issue #34Problem: need an easy to use converter between
epj (epyy300 format) and idf (eppy format)Solution: functions idf2epj() epj2idf() do this.
epj.saveas(filename) and idf.saveas(filename)
will save it to diskDate:   Mon May 11 15:35:54 2020 -0700fixed issue #39Problem:need a place to put experimental functionsSolution:created an experimental folder in eppy3000Date:   Mon May 11 08:15:50 2020 -0700fixed issue #34Problem: need an easy to use converter between
epj (epyy300 format) and idf (eppy format)Solution: functions idf2epj() epj2idf() do this.
epj.saveas(filename) and idf.saveas(filename)
will save it to diskSun May 10 09:26:32 2020 -0700fixed issue #36Problem: modelbuilder.EPJ need savecopy() to fix issue #34
Solution: coded EPJ.savecopy and EPJ.jsonstr()Release 0.1.1 (2019-06-06)2019-06-06functions to read and write IDF filesissue #200.1.0 (2018-10-15)First release on PyPI.