39 lines
1.2 KiB
Python
39 lines
1.2 KiB
Python
|
import urllib.request
|
||
|
|
||
|
dataurl = "https://gist.githubusercontent.com/coderd00d/ca718df8e633285885fa/raw/eb4d0bb084e71c78c68c66e37e07b7f028a41bb6/windfarm.dat"
|
||
|
|
||
|
class Data(object):
|
||
|
days = ["Mon","Tue","Wed","Thu","Fri","Sat","Sun"]
|
||
|
|
||
|
def __init__(self):
|
||
|
self.data = {}
|
||
|
|
||
|
def addData(self, tower, day, energy):
|
||
|
if tower not in self.data:
|
||
|
self.data[tower] = { day : 0 for day in self.days }
|
||
|
|
||
|
self.data[tower][day] += energy
|
||
|
|
||
|
def __str__(self):
|
||
|
s = "| Tower | " + " | ".join(self.days) + " |\n"
|
||
|
for tower in sorted(self.data.keys()):
|
||
|
s += ("| %-5d | " % tower) + " | ".join(["%5d" % self.data[tower][day] for day in self.days]) + " |\n"
|
||
|
return s
|
||
|
|
||
|
@staticmethod
|
||
|
def get_from_url(url):
|
||
|
data = Data()
|
||
|
req = urllib.request.urlopen(url)
|
||
|
rawdata = req.read().decode("utf-8")
|
||
|
req.close()
|
||
|
for line in rawdata.split("\n"):
|
||
|
try:
|
||
|
(tower, day, energy) = line.split(" ")
|
||
|
data.addData(int(tower),day,int(energy))
|
||
|
except Exception:
|
||
|
pass
|
||
|
return data
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
print(str(Data.get_from_url(dataurl)))
|