Make get_readings return a list of namedtuples

This commit is contained in:
Michał Leśniewski
2024-05-19 18:08:16 +02:00
parent 7e5e2ede74
commit cd9ebcf9aa
3 changed files with 13 additions and 9 deletions

View File

@@ -104,8 +104,8 @@ with elicznik.ELicznik("freddy@example.com", "secretpassword", "optional_site_id
readings = m.get_readings(datetime.date(2021, 7, 1), datetime.date(2021, 7, 31))
for timestamp, consumed, produced in readings:
print(timestamp, consumed, produced)
for timestamp, consumed, produced, consumed_net, produced_net in readings:
print(timestamp, consumed, produced, consumed_net, produced_net)
# single day
print("Yesterday")
@@ -113,8 +113,8 @@ with elicznik.ELicznik("freddy@example.com", "secretpassword", "optional_site_id
yesterday = datetime.date.today() - datetime.timedelta(days=1)
readings = m.get_readings(yesterday)
for timestamp, consumed, produced in readings:
print(timestamp, consumed, produced)
for timestamp, consumed, produced, consumed_net, produced_net in readings:
print(timestamp, consumed, produced, consumed_net, produced_net)
```

View File

@@ -71,8 +71,8 @@ def main():
result,
headers=[
"timestamp",
"consumed",
"produced",
"consumption",
"production",
"net consumption",
"net production",
],

View File

@@ -1,11 +1,15 @@
#!/usr/bin/env python3
import collections
import csv
import datetime
from .session import Session
Reading = collections.namedtuple("Reading", "timestamp consumption production net_consumption net_production")
class ELicznikBase:
LOGIN_URL = "https://logowanie.tauron-dystrybucja.pl/login"
@@ -85,7 +89,7 @@ class ELicznikChart(ELicznikBase):
# This probably drops the data from the double hour during DST change
# Needs to be investigated and fixed
return sorted(
tuple([timestamp] + [results[name].get(timestamp) for name in COLUMNS])
Reading(*([timestamp] + [results[name].get(timestamp) for name in COLUMNS]))
for timestamp in timestamps
)
@@ -156,9 +160,9 @@ class ELicznikCSV(ELicznikBase):
# This probably drops the data from the double hour during DST change
# Needs to be investigated and fixed
return sorted(
tuple([timestamp] + [results[name].get(timestamp) for name in COLUMNS])
Reading(*([timestamp] + [results[name].get(timestamp) for name in COLUMNS]))
for timestamp in timestamps
)
ELicznik = ELicznikCSV
ELicznik = ELicznikCSV