From 6383fbde1ae7e16e33e8999734a8a8cfa4718853 Mon Sep 17 00:00:00 2001 From: Jr Miranda Date: Sun, 11 Oct 2020 04:20:57 -0300 Subject: [PATCH 1/7] Fetch CO2 emission information --- web_programming/co2_emission.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 web_programming/co2_emission.py diff --git a/web_programming/co2_emission.py b/web_programming/co2_emission.py new file mode 100644 index 000000000000..87b54c4d82bd --- /dev/null +++ b/web_programming/co2_emission.py @@ -0,0 +1,26 @@ +""" +Get CO2 emission data from CarbonIntensity API +""" +import requests +import datetime + +BASE_URL = 'https://api.carbonintensity.org.uk/intensity' +DATE_FORMAT = '%Y-%m-%d' + +# Emission in the last half hour +def fetch_last_half_hour(): + data = requests.get(BASE_URL).json() + actual_intensity = data['data'][0]['intensity']['actual'] + return actual_intensity + +# Emissions in a specific date range +def fetch_from_to(start, end): + data = requests.get(f'{BASE_URL}/{start}/{end}').json() + for entry in data['data']: + print('from ' + entry['from'] + ' to ' + entry['to'] + ': ' + str(entry['intensity']['actual']) + '\n') + +if __name__ == '__main__': + start = datetime.date(2020, 10, 1) + end = datetime.date(2020, 10, 3) + + fetch_from_to(start, end) \ No newline at end of file From 4ae8aabe9efd5c5d79cc55173c66916389658ad0 Mon Sep 17 00:00:00 2001 From: Jr Miranda Date: Sun, 11 Oct 2020 12:17:02 -0300 Subject: [PATCH 2/7] fix blank lines --- web_programming/co2_emission.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/web_programming/co2_emission.py b/web_programming/co2_emission.py index 87b54c4d82bd..5b68c5d89963 100644 --- a/web_programming/co2_emission.py +++ b/web_programming/co2_emission.py @@ -4,15 +4,18 @@ import requests import datetime + BASE_URL = 'https://api.carbonintensity.org.uk/intensity' DATE_FORMAT = '%Y-%m-%d' + # Emission in the last half hour def fetch_last_half_hour(): data = requests.get(BASE_URL).json() actual_intensity = data['data'][0]['intensity']['actual'] return actual_intensity + # Emissions in a specific date range def fetch_from_to(start, end): data = requests.get(f'{BASE_URL}/{start}/{end}').json() From 42a4bdf9a67bd5e3e45c5a5b05a0a3f1ae0d2468 Mon Sep 17 00:00:00 2001 From: Jr Miranda Date: Sun, 11 Oct 2020 14:18:29 -0300 Subject: [PATCH 3/7] fix blank lines --- web_programming/co2_emission.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/web_programming/co2_emission.py b/web_programming/co2_emission.py index 5b68c5d89963..1cf087bed549 100644 --- a/web_programming/co2_emission.py +++ b/web_programming/co2_emission.py @@ -22,8 +22,9 @@ def fetch_from_to(start, end): for entry in data['data']: print('from ' + entry['from'] + ' to ' + entry['to'] + ': ' + str(entry['intensity']['actual']) + '\n') + if __name__ == '__main__': start = datetime.date(2020, 10, 1) end = datetime.date(2020, 10, 3) - fetch_from_to(start, end) \ No newline at end of file + fetch_from_to(start, end) From 587212d41f81b1e7997cd67f022b955e486a6ba7 Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Mon, 12 Oct 2020 00:43:42 +0200 Subject: [PATCH 4/7] Add type hints for function return values --- web_programming/co2_emission.py | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/web_programming/co2_emission.py b/web_programming/co2_emission.py index 1cf087bed549..21c297f59671 100644 --- a/web_programming/co2_emission.py +++ b/web_programming/co2_emission.py @@ -1,30 +1,25 @@ + """ -Get CO2 emission data from CarbonIntensity API +Get CO2 emission data from the UK CarbonIntensity API """ +from datetime import date import requests -import datetime - BASE_URL = 'https://api.carbonintensity.org.uk/intensity' -DATE_FORMAT = '%Y-%m-%d' # Emission in the last half hour -def fetch_last_half_hour(): - data = requests.get(BASE_URL).json() - actual_intensity = data['data'][0]['intensity']['actual'] - return actual_intensity +def fetch_last_half_hour() -> str: + last_half_hour = requests.get(BASE_URL).json()['data'][0] + return last_half_hour['intensity']['actual'] # Emissions in a specific date range -def fetch_from_to(start, end): - data = requests.get(f'{BASE_URL}/{start}/{end}').json() - for entry in data['data']: - print('from ' + entry['from'] + ' to ' + entry['to'] + ': ' + str(entry['intensity']['actual']) + '\n') +def fetch_from_to(start, end) -> list: + return requests.get(f'{BASE_URL}/{start}/{end}').json()['data'] if __name__ == '__main__': - start = datetime.date(2020, 10, 1) - end = datetime.date(2020, 10, 3) - - fetch_from_to(start, end) + for entry in fetch_from_to(start=date(2020, 10, 1), end=date(2020, 10, 3)): + print('from {from} to {to}: {intensity[actual]}'.format(**entry)) + print(f"{fetch_last_half_hour() = }") From c5e1d319fe30258c247f30ae2093fb8e5f94a2e9 Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Mon, 12 Oct 2020 01:17:12 +0200 Subject: [PATCH 5/7] Update co2_emission.py --- web_programming/co2_emission.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/web_programming/co2_emission.py b/web_programming/co2_emission.py index 21c297f59671..ed632f5e9810 100644 --- a/web_programming/co2_emission.py +++ b/web_programming/co2_emission.py @@ -5,21 +5,21 @@ from datetime import date import requests -BASE_URL = 'https://api.carbonintensity.org.uk/intensity' +BASE_URL = "https://api.carbonintensity.org.uk/intensity" # Emission in the last half hour def fetch_last_half_hour() -> str: - last_half_hour = requests.get(BASE_URL).json()['data'][0] - return last_half_hour['intensity']['actual'] + last_half_hour = requests.get(BASE_URL).json()["data"][0] + return last_half_hour["intensity"]["actual"] # Emissions in a specific date range def fetch_from_to(start, end) -> list: - return requests.get(f'{BASE_URL}/{start}/{end}').json()['data'] + return requests.get(f"{BASE_URL}/{start}/{end}").json()["data"] -if __name__ == '__main__': +if __name__ == "__main__": for entry in fetch_from_to(start=date(2020, 10, 1), end=date(2020, 10, 3)): - print('from {from} to {to}: {intensity[actual]}'.format(**entry)) + print("from {from} to {to}: {intensity[actual]}".format(**entry)) print(f"{fetch_last_half_hour() = }") From 9cf4d6458b09298f239df1b9a7d2308ce13e8604 Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Mon, 12 Oct 2020 01:19:56 +0200 Subject: [PATCH 6/7] Update co2_emission.py --- web_programming/co2_emission.py | 1 + 1 file changed, 1 insertion(+) diff --git a/web_programming/co2_emission.py b/web_programming/co2_emission.py index ed632f5e9810..c4d18890e562 100644 --- a/web_programming/co2_emission.py +++ b/web_programming/co2_emission.py @@ -3,6 +3,7 @@ Get CO2 emission data from the UK CarbonIntensity API """ from datetime import date + import requests BASE_URL = "https://api.carbonintensity.org.uk/intensity" From 1bddff796851cfd491b1ae1bc990fb509a660eae Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Mon, 12 Oct 2020 01:22:42 +0200 Subject: [PATCH 7/7] Update co2_emission.py --- web_programming/co2_emission.py | 1 - 1 file changed, 1 deletion(-) diff --git a/web_programming/co2_emission.py b/web_programming/co2_emission.py index c4d18890e562..97927e7ef541 100644 --- a/web_programming/co2_emission.py +++ b/web_programming/co2_emission.py @@ -1,4 +1,3 @@ - """ Get CO2 emission data from the UK CarbonIntensity API """