Skip to content

Commit 76da91c

Browse files
committed
black
2 parents 3015c55 + 60eac8a commit 76da91c

File tree

6 files changed

+5201
-10
lines changed

6 files changed

+5201
-10
lines changed

days/01-03-datetimes/code/100day_calc.py

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,11 @@
55
duration = timedelta(days=100)
66

77

8-
9-
10-
11-
12-
138
def countdown():
149
event_delta = LAST_DAY_OF_SCHOOL - datetime.now()
1510
print()
1611
print("\tTime until school is out for summer 2021:", end="\n\n")
17-
while event_delta.seconds >0:
12+
while event_delta.seconds > 0:
1813
hours, remaining_delta = divmod(event_delta.seconds, 3600)
1914
mins, secs = divmod(remaining_delta, 60)
2015
timer = f"\t{event_delta.days:02d} days {hours:02d} hours {mins:02d} minutes {secs:02d} seconds"
Lines changed: 46 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,49 @@
1-
from datetime import datetime
1+
from datetime import datetime, date, timedelta
22
import time
33

4-
LAST_DAY_OF_SCHOOL = datetime(2021, 6, 10, 11, 50)
4+
LAST_DAY_OF_SCHOOL = datetime(2022, 6, 16, 13, 35)
5+
BREAKS_2021 = [
6+
date(2021, 9, 6),
7+
date(2021, 9, 16),
8+
date(2021, 10, 25),
9+
date(2021, 10, 26),
10+
date(2021, 10, 27),
11+
date(2021, 10, 28),
12+
date(2021, 10, 29),
13+
date(2021, 11, 11),
14+
date(2021, 11, 24),
15+
date(2021, 11, 25),
16+
date(2021, 11, 26),
17+
date(2021, 12, 20),
18+
date(2021, 12, 21),
19+
date(2021, 12, 22),
20+
date(2021, 12, 23),
21+
date(2021, 12, 24),
22+
date(2021, 12, 25),
23+
date(2021, 12, 27),
24+
date(2021, 12, 28),
25+
date(2021, 12, 29),
26+
date(2021, 12, 30),
27+
date(2021, 12, 31),
28+
date(2021, 12, 31),
29+
date(2022, 1, 17),
30+
date(2022, 2, 18),
31+
date(2022, 2, 21),
32+
date(2022, 4, 4),
33+
date(2022, 4, 5),
34+
date(2022, 4, 6),
35+
date(2022, 4, 7),
36+
date(2022, 4, 8),
37+
date(2022, 4, 15),
38+
date(2022, 5, 30),
39+
]
40+
541

642
def countdown():
743
event_delta = LAST_DAY_OF_SCHOOL - datetime.now()
844
print()
945
print("\tTime until school is out for summer 2021:", end="\n\n")
10-
while (event_delta.days + event_delta.seconds)>0:
46+
while (event_delta.days + event_delta.seconds) > 0:
1147
hours, remaining_delta = divmod(event_delta.seconds, 3600)
1248
mins, secs = divmod(remaining_delta, 60)
1349
timer = f"\t{event_delta.days:02d} days {hours:02d} hours {mins:02d} minutes {secs:02d} seconds"
@@ -17,5 +53,11 @@ def countdown():
1753

1854
print("School's out for summer!")
1955

20-
if __name__ == '__main__':
56+
57+
def school_days_left():
58+
pass
59+
60+
61+
if __name__ == "__main__":
62+
2163
countdown()

days/01-03-datetimes/code/datetime_timedelta.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,11 @@
1111
t.seconds
1212
# 36000
1313

14+
<<<<<<< HEAD
1415
t.hours
16+
=======
17+
# t.hours
18+
>>>>>>> 60eac8a6bae1374766b1a0f00190f693b7c2b298
1519
# Traceback (most recent call last):
1620
# File "<pyshell#119>", line 1, in <module> t.hours
1721
# AttributeError: 'datetime.timedelta' object has no attribute 'hours'
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
from datetime import datetime
2+
import numpy as np
3+
import time
4+
5+
LAST_DAY_OF_SCHOOL = datetime(2021, 6, 10, 11, 50, 0, 0)
6+
7+
def total_countdown():
8+
event_delta = LAST_DAY_OF_SCHOOL - datetime.now()
9+
while (event_delta.days + event_delta.seconds) > 0:
10+
hours, remaining_delta = divmod(event_delta.seconds, 3600)
11+
mins, secs = divmod(remaining_delta, 60)
12+
timer = f"\t{event_delta.days:02d} days {hours:02d} hours {mins:02d} minutes {secs:02d} seconds"
13+
print(timer, end="\r")
14+
time.sleep(1)
15+
event_delta = LAST_DAY_OF_SCHOOL - datetime.now()
16+
17+
print("School's out for summer!")
18+
19+
20+
def school_days():
21+
today = datetime.now()
22+
print(f"\tThere are {np.busday_count(today.date(), LAST_DAY_OF_SCHOOL.date()) -1} school days left in the 2020-2021 school year.")
23+
pass
24+
25+
26+
print()
27+
school_days()
28+
print()
29+
print("\tTime until school is out for summer 2021:", end="\n\n")
30+
total_countdown()
31+
32+
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
##{
2+
from collections import defaultdict, namedtuple, Counter, deque
3+
import csv
4+
from urllib.request import urlretrieve
5+
6+
# get the data from the web
7+
movie_data = "https://raw.githubusercontent.com/sundeepblue/movie_rating_prediction/master/movie_metadata.csv"
8+
movies_csv = 'movies.csv'
9+
urlretrieve(movie_data, movies_csv)
10+
##}
11+
12+
##{
13+
Movie = namedtuple("Movie", "title year score")
14+
15+
def get_movies_by_director(data=movies_csv):
16+
"""Extracts all movies from csv and stores them in a dictionary
17+
where keys are directors, and values is a list of movies (named tuples)"""
18+
directors = defaultdict(list)
19+
with open(data, encoding='utf-8') as f:
20+
for line in csv.DictReader(f):
21+
try:
22+
director = line['director_name']
23+
movie = line['movie_title'].replace('\xa0', '')
24+
year = int(line['title_year'])
25+
score = float(line['imdb_score'])
26+
except ValueError:
27+
continue
28+
29+
m = Movie(title=movie, year=year, score=score)
30+
directors[director].append(m)
31+
32+
return directors
33+
34+
directors = get_movies_by_director()
35+
##}
36+
37+
38+
##{
39+
cnt = Counter()
40+
for director, movies in directors.items():
41+
cnt[director] += len(movies)
42+
43+
cnt.most_common(5)
44+
##}
45+
46+
def get_average_scores(directors):
47+
'''Filter directors with < MIN_MOVIES and calculate averge score'''
48+
pass
49+
50+
51+
def _calc_mean(movies):
52+
'''Helper method to calculate mean of list of Movie namedtuples'''
53+
pass
54+
55+
56+
def print_results(directors):
57+
'''Print directors ordered by highest average rating. For each director
58+
print his/her movies also ordered by highest rated movie.
59+
See http://pybit.es/codechallenge13.html for example output'''
60+
fmt_director_entry = '{counter}. {director:<52} {avg}'
61+
fmt_movie_entry = '{year}] {title:<50} {score}'
62+
sep_line = '-' * 60
63+
64+
65+
def main():
66+
'''This is a template, feel free to structure your code differently.
67+
We wrote some tests based on our solution: test_directors.py'''
68+
director = get_movies_by_director()
69+
directors = get_average_scores(directors)
70+
print_results(directors)
71+
72+
73+
if __name__ == '__main__':
74+
main()s

0 commit comments

Comments
 (0)