initial working env

This commit is contained in:
Arian Nasr
2025-12-11 03:30:35 -05:00
commit 25469a54b3
11 changed files with 799 additions and 0 deletions

48
greenbutton/parse.py Executable file
View File

@@ -0,0 +1,48 @@
#!/usr/bin/python
import sys
import xml.etree.ElementTree as ET
from .resources import *
def parse_feed(filename):
tree = ET.parse(filename)
usagePoints = []
for entry in tree.getroot().findall('atom:entry/atom:content/espi:UsagePoint/../..', ns):
up = UsagePoint(entry)
usagePoints.append(up)
meterReadings = []
for entry in tree.getroot().findall('atom:entry/atom:content/espi:MeterReading/../..', ns):
mr = MeterReading(entry, usagePoints=usagePoints)
meterReadings.append(mr)
for entry in tree.getroot().findall('atom:entry/atom:content/espi:LocalTimeParameters/../..', ns):
ltp = LocalTimeParameters(entry, usagePoints=usagePoints)
readingTypes = []
for entry in tree.getroot().findall('atom:entry/atom:content/espi:ReadingType/../..', ns):
rt = ReadingType(entry, meterReadings=meterReadings)
readingTypes.append(rt)
intervalBlocks = []
for entry in tree.getroot().findall('atom:entry/atom:content/espi:IntervalBlock/../..', ns):
ib = IntervalBlock(entry, meterReadings=meterReadings)
intervalBlocks.append(ib)
return usagePoints
if __name__ == '__main__':
ups = parse_feed(sys.argv[1])
for up in ups:
print('UsagePoint (%s) %s %s:' % (up.title, up.serviceCategory.name, up.status))
for mr in up.meterReadings:
print(' Meter Reading (%s) %s:' % (mr.title, mr.readingType.uom.name))
for ir in mr.intervalReadings:
print(' %s, %s: %s %s' % (ir.timePeriod.start, ir.timePeriod.duration, ir.value, ir.value_symbol), end = '')
if ir.cost is not None:
print(' (%s%s)' % (ir.cost_symbol, ir.cost))
if len(ir.readingQualities) > 0:
print('[%s]' % ', '.join([rq.quality.name for rq in ir.readingQualities]))
print