-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathservices.py
More file actions
60 lines (54 loc) · 2.18 KB
/
services.py
File metadata and controls
60 lines (54 loc) · 2.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
from repository import Repository
from models import Movie
movie_repository = Repository()
def get_min_diff(producers_list):
differences = []
for p in producers_list:
movies = movie_repository.get_by_field(Movie, Movie.producers, p).order_by(Movie.year.asc()).all()
fm = movies[0].year
lm = movies[-1].year
difference = lm - fm
differences.append({'difference': difference, 'producer': movies[0].producers})
minimum_difference = min(differences, key=lambda x:x.get('difference'))
return minimum_difference
def get_max_diff(producers_list):
differences = []
for p in producers_list:
movies = movie_repository.get_by_field(Movie, Movie.producers, p).order_by(Movie.year.asc()).all()
fm = movies[0].year
lm = movies[-1].year
difference = lm - fm
differences.append({'difference': difference, 'producer': movies[0].producers})
maximum_difference = max(differences, key=lambda x:x.get('difference'))
return maximum_difference
def transform_list(tuple_list):
l = []
for tl in tuple_list:
l.append(tl[0])
return l
def get_min(producers_list):
producers = transform_list(producers_list)
minimum_difference = get_min_diff(producers)
min_dif = movie_repository.get_by_field(Movie, Movie.producers, minimum_difference.get('producer'))\
.order_by(Movie.year.asc()).all()
return [
dict(
producer = minimum_difference.get('producer'),
interval = min_dif[-1].year - min_dif[0].year,
previousWin = min_dif[0].year,
followingWin = min_dif[1].year
)
]
def get_max(producers_list):
producers = transform_list(producers_list)
maximum_difference = get_max_diff(producers)
max_dif = movie_repository.get_by_field(Movie, Movie.producers, maximum_difference.get('producer'))\
.order_by(Movie.year.asc()).all()
return [
dict(
producer = maximum_difference.get('producer'),
interval = max_dif[-1].year - max_dif[0].year,
previousWin = max_dif[0].year,
followingWin = max_dif[1].year
)
]