diff --git a/ddapioper.py b/ddapioper.py index bcd0236..86e1ba5 100644 --- a/ddapioper.py +++ b/ddapioper.py @@ -16,6 +16,7 @@ See: import logging import requests from datetime import datetime, timedelta +from dateutil.parser import isoparse class ddApiOper: """ @@ -225,6 +226,9 @@ Returns the results part of the response. """ return(self.data["results"][index]) + def __iter__(self): + self.values() + def aspectSet(self): """aspectSet() @@ -246,20 +250,33 @@ Returns the source metadata """ return(self.result()["source"]) - def values(self, index=0): - """values(index=0) + def values(self, index=0, quality=False, additionalInfo=False): + """values(index=0, quality=False, additionalInfo=False) -Returns the values at ittorator of tupples. +Returns the values as a ittorator of tupples. - (time, value) - (time, value) + (datetime, value, (quality, additinalInfo)) + (datetime, value, ...) Note: Is this the correct return data format?? This may change! """ for e in self.result()["events"]: - yield (e["timeStamp"], e["aspects"][index]["points"][0]["value"]) + dt = isoparse(e["timeStamp"]) + p = e["aspects"][index]["points"][0] + v = p.get("value", None) + q = p.get("quality", None) + a = p.get("additionalInfo", None) + if (quality & additionalInfo): + yield (dt, v, q, a) + elif quality: + yield (dt, v, q) + elif additionalInfo: + # Why would you use this? + yield (dt, v, a) + else: + yield (dt, v) def sip(self, index=0): """sip(index)