From c51a9acbe94cc5a2956d0db86d1412b160b43058 Mon Sep 17 00:00:00 2001 From: Felix Stupp Date: Sun, 6 Nov 2022 16:08:57 +0100 Subject: [PATCH] generate_preference_list: Declare base as optional --- server/entertainment_decider/models.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/server/entertainment_decider/models.py b/server/entertainment_decider/models.py index 407223b..7b3cd62 100644 --- a/server/entertainment_decider/models.py +++ b/server/entertainment_decider/models.py @@ -385,12 +385,13 @@ PreferenceScoreCompatible = Union[ def generate_preference_list( - base: PreferenceScore, object_gen: Callable[[], List[MediaElement]], score_adapt: float, + base: Optional[PreferenceScore] = None, limit: Optional[int] = None, ) -> List[MediaElement]: element_list = set(object_gen()) + preference = base if base is not None else PreferenceScore() # add tags corresponding to collections collections: Iterable[MediaCollection] = MediaCollection.select() @@ -464,7 +465,7 @@ def generate_preference_list( return math.fsum(chain(all_nerfs, (-val for val in all_buffs))) def gen_score(element: MediaElement) -> float: - return gen_statis_score(element) + base.calculate_iter_score(all_tags(element)) + return gen_statis_score(element) + preference.calculate_iter_score(all_tags(element)) # gen elements res_ids = list[int]() @@ -476,7 +477,7 @@ def generate_preference_list( if limit is not None and limit <= len(res_ids): break element_list.remove(first_element) - base = base.adapt_score(first_element, score_adapt) + preference = preference.adapt_score(first_element, score_adapt) orm.rollback() db.execute(f"ALTER TABLE {Tag._table_} AUTO_INCREMENT = 1;") return [MediaElement[i] for i in res_ids]