diff --git "a/database_queries.py" "b/database_queries.py" --- "a/database_queries.py" +++ "b/database_queries.py" @@ -14,22 +14,36 @@ right_nfl_name_teams = ['Broncos', 'Commanders', 'Bengals', 'Cardinals', 'Rams', 'Jets', 'Colts', 'Dolphins', 'Lions', 'Raiders', 'Falcons', 'Seahawks', 'Texans', 'Saints', 'Panthers', 'Giants', 'Browns', 'Titans', 'Eagles', 'Cowboys', 'Chiefs', 'Chargers', 'Ravens', 'Bills', 'Vikings', 'Bears'] +# Mix mode uses two Mongo cursors; heavy overlap after concat + drop_duplicates can return far fewer than lineup_num. +_SEED_MIX_FETCH_OVERSAMPLE = 2.0 -def _showdown_seed_filter(salary_min, salary_max, team_count_min=None, team_count_max=None): - """Mongo filter for Showdown seed collections: salary band and at least one team.""" + +def _mix_seed_limit_primary(lineup_num, prio_mix): + return max(1, math.ceil(lineup_num * (prio_mix / 100) * _SEED_MIX_FETCH_OVERSAMPLE)) + + +def _mix_seed_limit_secondary(lineup_num, prio_mix): + return max(1, math.ceil(lineup_num * ((100 - prio_mix) / 100) * _SEED_MIX_FETCH_OVERSAMPLE)) + + +def _showdown_seed_filter(salary_min, salary_max, team_count_min=None, team_count_max=None, secondary_team_count_min=None, secondary_team_count_max=None): + """Mongo filter for seed collections: salary band, Team_count, and Secondary_Team_count (Classic and Showdown).""" return { 'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, } -def _showdown_seed_filter_with_players(filter_query, salary_min, salary_max, team_count_min=None, team_count_max=None): - """AND player filter (e.g. {'$or': [...]}) with salary and Team_count constraints.""" +def _showdown_seed_filter_with_players(filter_query, salary_min, salary_max, team_count_min=None, team_count_max=None, secondary_team_count_min=None, secondary_team_count_max=None): + """AND player filter (e.g. {'$or': [...]}) with salary and team-count constraints.""" return { '$and': [ filter_query, - {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}, - {'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}, + _showdown_seed_filter( + salary_min, salary_max, team_count_min, team_count_max, + secondary_team_count_min, secondary_team_count_max, + ), ], } @@ -122,7 +136,7 @@ def init_nfl_baselines(type_var: str, site_var: str, slate_var: str): return dk_roo_raw, fd_roo_raw, dk_sd_roo_raw, fd_sd_roo_raw, dk_id_map, fd_id_map, dk_sd_id_map, fd_sd_id_map -def init_DK_NFL_lineups(type_var, slate_var, prio_var, prio_mix, nfl_db_translation, lineup_num, salary_min, salary_max, team_count_min, team_count_max, player_var2): +def init_DK_NFL_lineups(type_var, slate_var, prio_var, prio_mix, nfl_db_translation, lineup_num, salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max, player_var2): if prio_var == 'Mix': prio_var = None @@ -149,21 +163,43 @@ def init_DK_NFL_lineups(type_var, slate_var, prio_var, prio_mix, nfl_db_translat # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}]}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}]}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, + 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }]}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, + 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }]}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, + 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, + 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) - raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) - else: - cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort(prio_var, -1).limit(lineup_num) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, + 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, + 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) + raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) + else: + cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, + 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort(prio_var, -1).limit(lineup_num) raw_display = pd.DataFrame(list(cursor)) raw_display = raw_display.drop_duplicates(subset=['QB', 'RB1', 'RB2', 'WR1', 'WR2', 'WR3', 'TE', 'FLEX', 'DST']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['QB', 'RB1', 'RB2', 'WR1', 'WR2', 'WR3', 'TE', 'FLEX', 'DST']] dict_columns = ['QB', 'RB1', 'RB2', 'WR1', 'WR2', 'WR3', 'TE', 'FLEX', 'DST'] @@ -190,21 +226,43 @@ def init_DK_NFL_lineups(type_var, slate_var, prio_var, prio_mix, nfl_db_translat # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}]}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}]}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, + 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }]}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, + 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }]}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, + 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, + 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) - raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) - else: - cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort(prio_var, -1).limit(lineup_num) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, + 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, + 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) + raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) + else: + cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, + 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort(prio_var, -1).limit(lineup_num) raw_display = pd.DataFrame(list(cursor)) raw_display = raw_display.drop_duplicates(subset=['QB', 'RB1', 'RB2', 'WR1', 'WR2', 'WR3', 'TE', 'FLEX', 'DST']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['QB', 'RB1', 'RB2', 'WR1', 'WR2', 'WR3', 'TE', 'FLEX', 'DST']] dict_columns = ['QB', 'RB1', 'RB2', 'WR1', 'WR2', 'WR3', 'TE', 'FLEX', 'DST'] @@ -231,21 +289,39 @@ def init_DK_NFL_lineups(type_var, slate_var, prio_var, prio_mix, nfl_db_translat # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}]}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}]}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + stack_f = _showdown_seed_filter( + salary_min, salary_max, team_count_min, team_count_max, + secondary_team_count_min, secondary_team_count_max, + ) + cursor1 = collection.find({'$and': [filter_query, stack_f]}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'$and': [filter_query, stack_f]}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + stack_f = _showdown_seed_filter( + salary_min, salary_max, team_count_min, team_count_max, + secondary_team_count_min, secondary_team_count_max, + ) + cursor1 = collection.find(stack_f).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find(stack_f).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) - raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) - else: - cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort(prio_var, -1).limit(lineup_num) + stack_f = _showdown_seed_filter( + salary_min, salary_max, team_count_min, team_count_max, + secondary_team_count_min, secondary_team_count_max, + ) + cursor1 = collection.find(stack_f).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find(stack_f).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) + raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) + else: + cursor = collection.find( + _showdown_seed_filter( + salary_min, salary_max, team_count_min, team_count_max, + secondary_team_count_min, secondary_team_count_max, + ), + ).sort(prio_var, -1).limit(lineup_num) raw_display = pd.DataFrame(list(cursor)) raw_display = raw_display.drop_duplicates(subset=['QB', 'RB1', 'RB2', 'WR1', 'WR2', 'WR3', 'TE', 'FLEX', 'DST']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['QB', 'RB1', 'RB2', 'WR1', 'WR2', 'WR3', 'TE', 'FLEX', 'DST']] dict_columns = ['QB', 'RB1', 'RB2', 'WR1', 'WR2', 'WR3', 'TE', 'FLEX', 'DST'] @@ -266,21 +342,22 @@ def init_DK_NFL_lineups(type_var, slate_var, prio_var, prio_mix, nfl_db_translat # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find(_showdown_seed_filter_with_players(filter_query, salary_min, salary_max, team_count_min, team_count_max)).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find(_showdown_seed_filter_with_players(filter_query, salary_min, salary_max, team_count_min, team_count_max)).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find(_showdown_seed_filter_with_players(filter_query, salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find(_showdown_seed_filter_with_players(filter_query, salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) else: - cursor1 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max)).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max)).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max)).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max)).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max)).sort(prio_var, -1).limit(lineup_num) + cursor = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).sort(prio_var, -1).limit(lineup_num) raw_display = pd.DataFrame(list(cursor)) raw_display = raw_display.drop_duplicates(subset=['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5']] for column in ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5']: @@ -290,7 +367,7 @@ def init_DK_NFL_lineups(type_var, slate_var, prio_var, prio_mix, nfl_db_translat return DK_seed -def init_FD_NFL_lineups(type_var, slate_var, prio_var, prio_mix, nfl_db_translation, lineup_num, salary_min, salary_max, team_count_min, team_count_max, player_var2): +def init_FD_NFL_lineups(type_var, slate_var, prio_var, prio_mix, nfl_db_translation, lineup_num, salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max, player_var2): if prio_var == 'Mix': prio_var = None @@ -318,21 +395,43 @@ def init_FD_NFL_lineups(type_var, slate_var, prio_var, prio_mix, nfl_db_translat # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}]}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}]}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, + 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }]}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, + 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }]}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, + 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, + 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) - raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) - else: - cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort(prio_var, -1).limit(lineup_num) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, + 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, + 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) + raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) + else: + cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, + 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort(prio_var, -1).limit(lineup_num) raw_display = pd.DataFrame(list(cursor)) raw_display = raw_display.drop_duplicates(subset=['QB', 'RB1', 'RB2', 'WR1', 'WR2', 'WR3', 'TE', 'FLEX', 'DST']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['QB', 'RB1', 'RB2', 'WR1', 'WR2', 'WR3', 'TE', 'FLEX', 'DST']] dict_columns = ['QB', 'RB1', 'RB2', 'WR1', 'WR2', 'WR3', 'TE', 'FLEX', 'DST'] @@ -359,21 +458,43 @@ def init_FD_NFL_lineups(type_var, slate_var, prio_var, prio_mix, nfl_db_translat # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}]}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}]}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, + 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }]}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, + 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }]}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, + 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, + 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) - raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) - else: - cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort(prio_var, -1).limit(lineup_num) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, + 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, + 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) + raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) + else: + cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, + 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort(prio_var, -1).limit(lineup_num) raw_display = pd.DataFrame(list(cursor)) raw_display = raw_display.drop_duplicates(subset=['QB', 'RB1', 'RB2', 'WR1', 'WR2', 'WR3', 'TE', 'FLEX', 'DST']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['QB', 'RB1', 'RB2', 'WR1', 'WR2', 'WR3', 'TE', 'FLEX', 'DST']] dict_columns = ['QB', 'RB1', 'RB2', 'WR1', 'WR2', 'WR3', 'TE', 'FLEX', 'DST'] @@ -400,21 +521,43 @@ def init_FD_NFL_lineups(type_var, slate_var, prio_var, prio_mix, nfl_db_translat # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}]}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}]}).sort('Own', -1).limit(math.ceil(lineup_num = ((100 - prio_mix) / 100))) + cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, + 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }]}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, + 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }]}).sort('Own', -1).limit(math.ceil(lineup_num = ((100 - prio_mix) / 100))) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, + 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, + 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) - raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) - else: - cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort(prio_var, -1).limit(lineup_num) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, + 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, + 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) + raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) + else: + cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, + 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort(prio_var, -1).limit(lineup_num) raw_display = pd.DataFrame(list(cursor)) raw_display = raw_display.drop_duplicates(subset=['QB', 'RB1', 'RB2', 'WR1', 'WR2', 'WR3', 'TE', 'FLEX', 'DST']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['QB', 'RB1', 'RB2', 'WR1', 'WR2', 'WR3', 'TE', 'FLEX', 'DST']] dict_columns = ['QB', 'RB1', 'RB2', 'WR1', 'WR2', 'WR3', 'TE', 'FLEX', 'DST'] @@ -436,21 +579,22 @@ def init_FD_NFL_lineups(type_var, slate_var, prio_var, prio_mix, nfl_db_translat # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find(_showdown_seed_filter_with_players(filter_query, salary_min, salary_max, team_count_min, team_count_max)).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find(_showdown_seed_filter_with_players(filter_query, salary_min, salary_max, team_count_min, team_count_max)).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find(_showdown_seed_filter_with_players(filter_query, salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find(_showdown_seed_filter_with_players(filter_query, salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) else: - cursor1 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max)).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max)).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max)).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max)).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max)).sort(prio_var, -1).limit(lineup_num) + cursor = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).sort(prio_var, -1).limit(lineup_num) raw_display = pd.DataFrame(list(cursor)) raw_display = raw_display.drop_duplicates(subset=['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5']] for column in ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5']: @@ -548,7 +692,7 @@ def init_nba_baselines(type_var: str, site_var: str, slate_var: str): return dk_roo_raw, fd_roo_raw, dk_sd_roo_raw, fd_sd_roo_raw, dk_id_map, fd_id_map, dk_sd_id_map, fd_sd_id_map, minutes_map, locked_teams_list -def init_DK_NBA_lineups(type_var, slate_var, prio_var, prio_mix, nba_db_translation, lineup_num, salary_min, salary_max, team_count_min, team_count_max, player_var2): +def init_DK_NBA_lineups(type_var, slate_var, prio_var, prio_mix, nba_db_translation, lineup_num, salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max, player_var2): if prio_var == 'Mix': prio_var = None @@ -574,21 +718,38 @@ def init_DK_NBA_lineups(type_var, slate_var, prio_var, prio_mix, nba_db_translat # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}]}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}]}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, + 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }]}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, + 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }]}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort(prio_var, -1).limit(lineup_num) + cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort(prio_var, -1).limit(lineup_num) raw_display = pd.DataFrame(list(cursor)) raw_display = raw_display.drop_duplicates(subset=['PG', 'SG', 'SF', 'PF', 'C', 'G', 'F', 'FLEX']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['PG', 'SG', 'SF', 'PF', 'C', 'G', 'F', 'FLEX']] dict_columns = ['PG', 'SG', 'SF', 'PF', 'C', 'G', 'F', 'FLEX'] @@ -614,21 +775,38 @@ def init_DK_NBA_lineups(type_var, slate_var, prio_var, prio_mix, nba_db_translat # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}]}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}]}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, + 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }]}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, + 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }]}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort(prio_var, -1).limit(lineup_num) + cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort(prio_var, -1).limit(lineup_num) raw_display = pd.DataFrame(list(cursor)) raw_display = raw_display.drop_duplicates(subset=['PG', 'SG', 'SF', 'PF', 'C', 'G', 'F', 'FLEX']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['PG', 'SG', 'SF', 'PF', 'C', 'G', 'F', 'FLEX']] dict_columns = ['PG', 'SG', 'SF', 'PF', 'C', 'G', 'F', 'FLEX'] @@ -654,21 +832,38 @@ def init_DK_NBA_lineups(type_var, slate_var, prio_var, prio_mix, nba_db_translat # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}]}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}]}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, + 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }]}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, + 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }]}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort(prio_var, -1).limit(lineup_num) + cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort(prio_var, -1).limit(lineup_num) raw_display = pd.DataFrame(list(cursor)) raw_display = raw_display.drop_duplicates(subset=['PG', 'SG', 'SF', 'PF', 'C', 'G', 'F', 'FLEX']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['PG', 'SG', 'SF', 'PF', 'C', 'G', 'F', 'FLEX']] dict_columns = ['PG', 'SG', 'SF', 'PF', 'C', 'G', 'F', 'FLEX'] @@ -689,21 +884,22 @@ def init_DK_NBA_lineups(type_var, slate_var, prio_var, prio_mix, nba_db_translat # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find(_showdown_seed_filter_with_players(filter_query, salary_min, salary_max, team_count_min, team_count_max)).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find(_showdown_seed_filter_with_players(filter_query, salary_min, salary_max, team_count_min, team_count_max)).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find(_showdown_seed_filter_with_players(filter_query, salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find(_showdown_seed_filter_with_players(filter_query, salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) else: - cursor1 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max)).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max)).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max)).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max)).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max)).sort(prio_var, -1).limit(lineup_num) + cursor = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).sort(prio_var, -1).limit(lineup_num) raw_display = pd.DataFrame(list(cursor)) raw_display = raw_display.drop_duplicates(subset=['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5']] @@ -711,7 +907,7 @@ def init_DK_NBA_lineups(type_var, slate_var, prio_var, prio_mix, nba_db_translat return DK_seed -def init_FD_NBA_lineups(type_var, slate_var, prio_var, prio_mix, nba_db_translation, lineup_num, salary_min, salary_max, team_count_min, team_count_max, player_var2): +def init_FD_NBA_lineups(type_var, slate_var, prio_var, prio_mix, nba_db_translation, lineup_num, salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max, player_var2): if prio_var == 'Mix': prio_var = None @@ -738,21 +934,38 @@ def init_FD_NBA_lineups(type_var, slate_var, prio_var, prio_mix, nba_db_translat # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}]}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}]}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, + 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }]}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, + 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }]}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort(prio_var, -1).limit(lineup_num) + cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort(prio_var, -1).limit(lineup_num) raw_display = pd.DataFrame(list(cursor)) raw_display = raw_display.drop_duplicates(subset=['PG1', 'PG2', 'SG1', 'SG2', 'SF1', 'SF2', 'PF1', 'PF2', 'C']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['PG1', 'PG2', 'SG1', 'SG2', 'SF1', 'SF2', 'PF1', 'PF2', 'C']] dict_columns = ['PG1', 'PG2', 'SG1', 'SG2', 'SF1', 'SF2', 'PF1', 'PF2', 'C'] @@ -778,21 +991,38 @@ def init_FD_NBA_lineups(type_var, slate_var, prio_var, prio_mix, nba_db_translat # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}]}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}]}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, + 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }]}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, + 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }]}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort(prio_var, -1).limit(lineup_num) + cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort(prio_var, -1).limit(lineup_num) raw_display = pd.DataFrame(list(cursor)) raw_display = raw_display.drop_duplicates(subset=['PG1', 'PG2', 'SG1', 'SG2', 'SF1', 'SF2', 'PF1', 'PF2', 'C']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['PG1', 'PG2', 'SG1', 'SG2', 'SF1', 'SF2', 'PF1', 'PF2', 'C']] dict_columns = ['PG1', 'PG2', 'SG1', 'SG2', 'SF1', 'SF2', 'PF1', 'PF2', 'C'] @@ -818,21 +1048,38 @@ def init_FD_NBA_lineups(type_var, slate_var, prio_var, prio_mix, nba_db_translat # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}]}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}]}).sort('Own', -1).limit(math.ceil(lineup_num = ((100 - prio_mix) / 100))) + cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, + 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }]}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, + 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }]}).sort('Own', -1).limit(math.ceil(lineup_num = ((100 - prio_mix) / 100))) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort(prio_var, -1).limit(lineup_num) + cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort(prio_var, -1).limit(lineup_num) raw_display = pd.DataFrame(list(cursor)) raw_display = raw_display.drop_duplicates(subset=['PG1', 'PG2', 'SG1', 'SG2', 'SF1', 'SF2', 'PF1', 'PF2', 'C']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['PG1', 'PG2', 'SG1', 'SG2', 'SF1', 'SF2', 'PF1', 'PF2', 'C']] dict_columns = ['PG1', 'PG2', 'SG1', 'SG2', 'SF1', 'SF2', 'PF1', 'PF2', 'C'] @@ -854,21 +1101,22 @@ def init_FD_NBA_lineups(type_var, slate_var, prio_var, prio_mix, nba_db_translat # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find(_showdown_seed_filter_with_players(filter_query, salary_min, salary_max, team_count_min, team_count_max)).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find(_showdown_seed_filter_with_players(filter_query, salary_min, salary_max, team_count_min, team_count_max)).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find(_showdown_seed_filter_with_players(filter_query, salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find(_showdown_seed_filter_with_players(filter_query, salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) else: - cursor1 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max)).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max)).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max)).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max)).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max)).sort(prio_var, -1).limit(lineup_num) + cursor = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).sort(prio_var, -1).limit(lineup_num) raw_display = pd.DataFrame(list(cursor)) raw_display = raw_display.drop_duplicates(subset=['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5']] @@ -944,7 +1192,7 @@ def init_nhl_baselines(type_var: str, site_var: str, slate_var: str): return dk_roo_raw, fd_roo_raw, dk_sd_roo_raw, fd_sd_roo_raw, dk_id_map, fd_id_map, dk_sd_id_map, fd_sd_id_map -def init_DK_NHL_lineups(type_var, slate_var, prio_var, prio_mix, nhl_db_translation, lineup_num, salary_min, salary_max, team_count_min, team_count_max, player_var2): +def init_DK_NHL_lineups(type_var, slate_var, prio_var, prio_mix, nhl_db_translation, lineup_num, salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max, player_var2): if prio_var == 'Mix': prio_var = None @@ -970,21 +1218,36 @@ def init_DK_NHL_lineups(type_var, slate_var, prio_var, prio_mix, nhl_db_translat # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}]}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}]}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }]}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }]}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort(prio_var, -1).limit(lineup_num) + cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort(prio_var, -1).limit(lineup_num) raw_display = pd.DataFrame(list(cursor)) raw_display = raw_display.drop_duplicates(subset=['C1', 'C2', 'W1', 'W2', 'W3', 'D1', 'D2', 'G', 'FLEX']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['C1', 'C2', 'W1', 'W2', 'W3', 'D1', 'D2', 'G', 'FLEX']] dict_columns = ['C1', 'C2', 'W1', 'W2', 'W3', 'D1', 'D2', 'G', 'FLEX'] @@ -1010,21 +1273,36 @@ def init_DK_NHL_lineups(type_var, slate_var, prio_var, prio_mix, nhl_db_translat # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}]}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}]}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }]}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }]}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort(prio_var, -1).limit(lineup_num) + cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort(prio_var, -1).limit(lineup_num) raw_display = pd.DataFrame(list(cursor)) raw_display = raw_display.drop_duplicates(subset=['C1', 'C2', 'W1', 'W2', 'W3', 'D1', 'D2', 'G', 'FLEX']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['C1', 'C2', 'W1', 'W2', 'W3', 'D1', 'D2', 'G', 'FLEX']] dict_columns = ['C1', 'C2', 'W1', 'W2', 'W3', 'D1', 'D2', 'G', 'FLEX'] @@ -1050,21 +1328,36 @@ def init_DK_NHL_lineups(type_var, slate_var, prio_var, prio_mix, nhl_db_translat # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}]}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}]}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }]}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }]}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort(prio_var, -1).limit(lineup_num) + cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort(prio_var, -1).limit(lineup_num) raw_display = pd.DataFrame(list(cursor)) raw_display = raw_display.drop_duplicates(subset=['C1', 'C2', 'W1', 'W2', 'W3', 'D1', 'D2', 'G', 'FLEX']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['C1', 'C2', 'W1', 'W2', 'W3', 'D1', 'D2', 'G', 'FLEX']] dict_columns = ['C1', 'C2', 'W1', 'W2', 'W3', 'D1', 'D2', 'G', 'FLEX'] @@ -1085,21 +1378,22 @@ def init_DK_NHL_lineups(type_var, slate_var, prio_var, prio_mix, nhl_db_translat # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find(_showdown_seed_filter_with_players(filter_query, salary_min, salary_max, team_count_min, team_count_max)).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find(_showdown_seed_filter_with_players(filter_query, salary_min, salary_max, team_count_min, team_count_max)).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find(_showdown_seed_filter_with_players(filter_query, salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find(_showdown_seed_filter_with_players(filter_query, salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) else: - cursor1 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max)).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max)).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max)).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max)).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max)).sort(prio_var, -1).limit(lineup_num) + cursor = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).sort(prio_var, -1).limit(lineup_num) raw_display = pd.DataFrame(list(cursor)) raw_display = raw_display.drop_duplicates(subset=['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5']] @@ -1107,7 +1401,7 @@ def init_DK_NHL_lineups(type_var, slate_var, prio_var, prio_mix, nhl_db_translat return DK_seed -def init_FD_NHL_lineups(type_var, slate_var, prio_var, prio_mix, nhl_db_translation, lineup_num, salary_min, salary_max, team_count_min, team_count_max, player_var2): +def init_FD_NHL_lineups(type_var, slate_var, prio_var, prio_mix, nhl_db_translation, lineup_num, salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max, player_var2): if prio_var == 'Mix': prio_var = None @@ -1134,21 +1428,36 @@ def init_FD_NHL_lineups(type_var, slate_var, prio_var, prio_mix, nhl_db_translat # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}]}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}]}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }]}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }]}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort(prio_var, -1).limit(lineup_num) + cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort(prio_var, -1).limit(lineup_num) raw_display = pd.DataFrame(list(cursor)) raw_display = raw_display.drop_duplicates(subset=['C1', 'C2', 'W1', 'W2', 'D1', 'D2', 'FLEX1', 'FLEX2', 'G']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['C1', 'C2', 'W1', 'W2', 'D1', 'D2', 'FLEX1', 'FLEX2', 'G']] dict_columns = ['C1', 'C2', 'W1', 'W2', 'D1', 'D2', 'FLEX1', 'FLEX2', 'G'] @@ -1174,21 +1483,36 @@ def init_FD_NHL_lineups(type_var, slate_var, prio_var, prio_mix, nhl_db_translat # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}]}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}]}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }]}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }]}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort(prio_var, -1).limit(lineup_num) + cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort(prio_var, -1).limit(lineup_num) raw_display = pd.DataFrame(list(cursor)) raw_display = raw_display.drop_duplicates(subset=['C1', 'C2', 'W1', 'W2', 'D1', 'D2', 'FLEX1', 'FLEX2', 'G']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['C1', 'C2', 'W1', 'W2', 'D1', 'D2', 'FLEX1', 'FLEX2', 'G']] dict_columns = ['C1', 'C2', 'W1', 'W2', 'D1', 'D2', 'FLEX1', 'FLEX2', 'G'] @@ -1214,21 +1538,36 @@ def init_FD_NHL_lineups(type_var, slate_var, prio_var, prio_mix, nhl_db_translat # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}]}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}]}).sort('Own', -1).limit(math.ceil(lineup_num = ((100 - prio_mix) / 100))) + cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }]}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }]}).sort('Own', -1).limit(math.ceil(lineup_num = ((100 - prio_mix) / 100))) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort(prio_var, -1).limit(lineup_num) + cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort(prio_var, -1).limit(lineup_num) raw_display = pd.DataFrame(list(cursor)) raw_display = raw_display.drop_duplicates(subset=['C1', 'C2', 'W1', 'W2', 'D1', 'D2', 'FLEX1', 'FLEX2', 'G']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['C1', 'C2', 'W1', 'W2', 'D1', 'D2', 'FLEX1', 'FLEX2', 'G']] dict_columns = ['C1', 'C2', 'W1', 'W2', 'D1', 'D2', 'FLEX1', 'FLEX2', 'G'] @@ -1250,21 +1589,22 @@ def init_FD_NHL_lineups(type_var, slate_var, prio_var, prio_mix, nhl_db_translat # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find(_showdown_seed_filter_with_players(filter_query, salary_min, salary_max, team_count_min, team_count_max)).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find(_showdown_seed_filter_with_players(filter_query, salary_min, salary_max, team_count_min, team_count_max)).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find(_showdown_seed_filter_with_players(filter_query, salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find(_showdown_seed_filter_with_players(filter_query, salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) else: - cursor1 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max)).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max)).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max)).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max)).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max)).sort(prio_var, -1).limit(lineup_num) + cursor = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).sort(prio_var, -1).limit(lineup_num) raw_display = pd.DataFrame(list(cursor)) raw_display = raw_display.drop_duplicates(subset=['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5']] @@ -1340,7 +1680,7 @@ def init_mlb_baselines(type_var: str, site_var: str, slate_var: str): return dk_roo_raw, fd_roo_raw, dk_sd_roo_raw, fd_sd_roo_raw, dk_id_map, fd_id_map, dk_sd_id_map, fd_sd_id_map -def init_DK_MLB_lineups(type_var, slate_var, prio_var, prio_mix, mlb_db_translation, lineup_num, salary_min, salary_max, team_count_min, team_count_max, player_var2): +def init_DK_MLB_lineups(type_var, slate_var, prio_var, prio_mix, mlb_db_translation, lineup_num, salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max, player_var2): if prio_var == 'Mix': prio_var = None @@ -1366,21 +1706,36 @@ def init_DK_MLB_lineups(type_var, slate_var, prio_var, prio_mix, mlb_db_translat # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}]}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}]}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }]}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }]}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort(prio_var, -1).limit(lineup_num) + cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort(prio_var, -1).limit(lineup_num) raw_display = pd.DataFrame(list(cursor)) raw_display = raw_display.drop_duplicates(subset=['SP1', 'SP2', 'C', '1B', '2B', '3B', 'SS', 'OF1', 'OF2', 'OF3']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['SP1', 'SP2', 'C', '1B', '2B', '3B', 'SS', 'OF1', 'OF2', 'OF3']] dict_columns = ['SP1', 'SP2', 'C', '1B', '2B', '3B', 'SS', 'OF1', 'OF2', 'OF3'] @@ -1406,21 +1761,36 @@ def init_DK_MLB_lineups(type_var, slate_var, prio_var, prio_mix, mlb_db_translat # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}]}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}]}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }]}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }]}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort(prio_var, -1).limit(lineup_num) + cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort(prio_var, -1).limit(lineup_num) raw_display = pd.DataFrame(list(cursor)) raw_display = raw_display.drop_duplicates(subset=['SP1', 'SP2', 'C', '1B', '2B', '3B', 'SS', 'OF1', 'OF2', 'OF3']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['SP1', 'SP2', 'C', '1B', '2B', '3B', 'SS', 'OF1', 'OF2', 'OF3']] dict_columns = ['SP1', 'SP2', 'C', '1B', '2B', '3B', 'SS', 'OF1', 'OF2', 'OF3'] @@ -1446,21 +1816,36 @@ def init_DK_MLB_lineups(type_var, slate_var, prio_var, prio_mix, mlb_db_translat # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}]}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}]}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }]}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }]}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort(prio_var, -1).limit(lineup_num) + cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort(prio_var, -1).limit(lineup_num) raw_display = pd.DataFrame(list(cursor)) raw_display = raw_display.drop_duplicates(subset=['SP1', 'SP2', 'C', '1B', '2B', '3B', 'SS', 'OF1', 'OF2', 'OF3']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['SP1', 'SP2', 'C', '1B', '2B', '3B', 'SS', 'OF1', 'OF2', 'OF3']] dict_columns = ['SP1', 'SP2', 'C', '1B', '2B', '3B', 'SS', 'OF1', 'OF2', 'OF3'] @@ -1481,21 +1866,22 @@ def init_DK_MLB_lineups(type_var, slate_var, prio_var, prio_mix, mlb_db_translat # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find(_showdown_seed_filter_with_players(filter_query, salary_min, salary_max, team_count_min, team_count_max)).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find(_showdown_seed_filter_with_players(filter_query, salary_min, salary_max, team_count_min, team_count_max)).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find(_showdown_seed_filter_with_players(filter_query, salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find(_showdown_seed_filter_with_players(filter_query, salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) else: - cursor1 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max)).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max)).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max)).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max)).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max)).sort(prio_var, -1).limit(lineup_num) + cursor = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).sort(prio_var, -1).limit(lineup_num) raw_display = pd.DataFrame(list(cursor)) raw_display = raw_display.drop_duplicates(subset=['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5']] @@ -1503,7 +1889,7 @@ def init_DK_MLB_lineups(type_var, slate_var, prio_var, prio_mix, mlb_db_translat return DK_seed -def init_FD_MLB_lineups(type_var, slate_var, prio_var, prio_mix, mlb_db_translation, lineup_num, salary_min, salary_max, team_count_min, team_count_max, player_var2): +def init_FD_MLB_lineups(type_var, slate_var, prio_var, prio_mix, mlb_db_translation, lineup_num, salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max, player_var2): if prio_var == 'Mix': prio_var = None @@ -1530,21 +1916,36 @@ def init_FD_MLB_lineups(type_var, slate_var, prio_var, prio_mix, mlb_db_translat # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}]}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}]}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }]}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }]}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort(prio_var, -1).limit(lineup_num) + cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort(prio_var, -1).limit(lineup_num) raw_display = pd.DataFrame(list(cursor)) raw_display = raw_display.drop_duplicates(subset=['P', 'C_1B', '2B', '3B', 'SS', 'OF1', 'OF2', 'OF3', 'UTIL']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['P', 'C_1B', '2B', '3B', 'SS', 'OF1', 'OF2', 'OF3', 'UTIL']] dict_columns = ['P', 'C_1B', '2B', '3B', 'SS', 'OF1', 'OF2', 'OF3', 'UTIL'] @@ -1570,21 +1971,36 @@ def init_FD_MLB_lineups(type_var, slate_var, prio_var, prio_mix, mlb_db_translat # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}]}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}]}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }]}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }]}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort(prio_var, -1).limit(lineup_num) + cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort(prio_var, -1).limit(lineup_num) raw_display = pd.DataFrame(list(cursor)) raw_display = raw_display.drop_duplicates(subset=['P', 'C_1B', '2B', '3B', 'SS', 'OF1', 'OF2', 'OF3', 'UTIL']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['P', 'C_1B', '2B', '3B', 'SS', 'OF1', 'OF2', 'OF3', 'UTIL']] dict_columns = ['P', 'C_1B', '2B', '3B', 'SS', 'OF1', 'OF2', 'OF3', 'UTIL'] @@ -1610,21 +2026,36 @@ def init_FD_MLB_lineups(type_var, slate_var, prio_var, prio_mix, mlb_db_translat # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}]}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}]}).sort('Own', -1).limit(math.ceil(lineup_num = ((100 - prio_mix) / 100))) + cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }]}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }]}).sort('Own', -1).limit(math.ceil(lineup_num = ((100 - prio_mix) / 100))) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}}).sort(prio_var, -1).limit(lineup_num) + cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}, 'Team_count': {'$gte': team_count_min if team_count_min is not None else 1, '$lte': team_count_max if team_count_max is not None else 999}, + 'Secondary_Team_count': {'$gte': secondary_team_count_min if secondary_team_count_min is not None else 1, '$lte': secondary_team_count_max if secondary_team_count_max is not None else 999}, + }).sort(prio_var, -1).limit(lineup_num) raw_display = pd.DataFrame(list(cursor)) raw_display = raw_display.drop_duplicates(subset=['P', 'C_1B', '2B', '3B', 'SS', 'OF1', 'OF2', 'OF3', 'UTIL']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['P', 'C_1B', '2B', '3B', 'SS', 'OF1', 'OF2', 'OF3', 'UTIL']] dict_columns = ['P', 'C_1B', '2B', '3B', 'SS', 'OF1', 'OF2', 'OF3', 'UTIL'] @@ -1646,21 +2077,22 @@ def init_FD_MLB_lineups(type_var, slate_var, prio_var, prio_mix, mlb_db_translat # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find(_showdown_seed_filter_with_players(filter_query, salary_min, salary_max, team_count_min, team_count_max)).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find(_showdown_seed_filter_with_players(filter_query, salary_min, salary_max, team_count_min, team_count_max)).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find(_showdown_seed_filter_with_players(filter_query, salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find(_showdown_seed_filter_with_players(filter_query, salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) else: - cursor1 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max)).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max)).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max)).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max)).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max)).sort(prio_var, -1).limit(lineup_num) + cursor = collection.find(_showdown_seed_filter(salary_min, salary_max, team_count_min, team_count_max, secondary_team_count_min, secondary_team_count_max)).sort(prio_var, -1).limit(lineup_num) raw_display = pd.DataFrame(list(cursor)) raw_display = raw_display.drop_duplicates(subset=['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5']] @@ -1764,15 +2196,15 @@ def init_DK_MMA_lineups(type_var, slate_var, prio_var, prio_mix, lineup_num, sal # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort(prio_var, -1).limit(lineup_num) @@ -1782,6 +2214,7 @@ def init_DK_MMA_lineups(type_var, slate_var, prio_var, prio_mix, lineup_num, sal raw_display = pd.DataFrame(columns=['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']) else: raw_display = raw_display.drop_duplicates(subset=['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']] dict_columns = ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6'] # Map names @@ -1806,15 +2239,15 @@ def init_DK_MMA_lineups(type_var, slate_var, prio_var, prio_mix, lineup_num, sal # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort(prio_var, -1).limit(lineup_num) @@ -1824,6 +2257,7 @@ def init_DK_MMA_lineups(type_var, slate_var, prio_var, prio_mix, lineup_num, sal raw_display = pd.DataFrame(columns=['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']) else: raw_display = raw_display.drop_duplicates(subset=['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']] dict_columns = ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6'] # Map names @@ -1848,15 +2282,15 @@ def init_DK_MMA_lineups(type_var, slate_var, prio_var, prio_mix, lineup_num, sal # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort(prio_var, -1).limit(lineup_num) @@ -1866,6 +2300,7 @@ def init_DK_MMA_lineups(type_var, slate_var, prio_var, prio_mix, lineup_num, sal raw_display = pd.DataFrame(columns=['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']) else: raw_display = raw_display.drop_duplicates(subset=['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']] dict_columns = ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6'] # Map names @@ -1885,21 +2320,22 @@ def init_DK_MMA_lineups(type_var, slate_var, prio_var, prio_mix, lineup_num, sal # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort(prio_var, -1).limit(lineup_num) raw_display = pd.DataFrame(list(cursor)) raw_display = raw_display.drop_duplicates(subset=['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5']] @@ -1934,15 +2370,15 @@ def init_FD_MMA_lineups(type_var, slate_var, prio_var, prio_mix, lineup_num, sal # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort(prio_var, -1).limit(lineup_num) @@ -1952,6 +2388,7 @@ def init_FD_MMA_lineups(type_var, slate_var, prio_var, prio_mix, lineup_num, sal raw_display = pd.DataFrame(columns=['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']) else: raw_display = raw_display.drop_duplicates(subset=['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']] dict_columns = ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6'] # Map names @@ -1976,15 +2413,15 @@ def init_FD_MMA_lineups(type_var, slate_var, prio_var, prio_mix, lineup_num, sal # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort(prio_var, -1).limit(lineup_num) @@ -1994,6 +2431,7 @@ def init_FD_MMA_lineups(type_var, slate_var, prio_var, prio_mix, lineup_num, sal raw_display = pd.DataFrame(columns=['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']) else: raw_display = raw_display.drop_duplicates(subset=['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']] dict_columns = ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6'] # Map names @@ -2018,15 +2456,15 @@ def init_FD_MMA_lineups(type_var, slate_var, prio_var, prio_mix, lineup_num, sal # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort(prio_var, -1).limit(lineup_num) @@ -2036,6 +2474,7 @@ def init_FD_MMA_lineups(type_var, slate_var, prio_var, prio_mix, lineup_num, sal raw_display = pd.DataFrame(columns=['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']) else: raw_display = raw_display.drop_duplicates(subset=['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']] dict_columns = ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6'] # Map names @@ -2056,21 +2495,22 @@ def init_FD_MMA_lineups(type_var, slate_var, prio_var, prio_mix, lineup_num, sal # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort(prio_var, -1).limit(lineup_num) raw_display = pd.DataFrame(list(cursor)) raw_display = raw_display.drop_duplicates(subset=['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5']] @@ -2172,15 +2612,15 @@ def init_DK_PGA_lineups(type_var, slate_var, prio_var, prio_mix, lineup_num, sal # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort(prio_var, -1).limit(lineup_num) @@ -2190,6 +2630,7 @@ def init_DK_PGA_lineups(type_var, slate_var, prio_var, prio_mix, lineup_num, sal raw_display = pd.DataFrame(columns=['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']) else: raw_display = raw_display.drop_duplicates(subset=['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']] dict_columns = ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6'] # Map names @@ -2214,15 +2655,15 @@ def init_DK_PGA_lineups(type_var, slate_var, prio_var, prio_mix, lineup_num, sal # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort(prio_var, -1).limit(lineup_num) @@ -2232,6 +2673,7 @@ def init_DK_PGA_lineups(type_var, slate_var, prio_var, prio_mix, lineup_num, sal raw_display = pd.DataFrame(columns=['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']) else: raw_display = raw_display.drop_duplicates(subset=['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']] dict_columns = ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6'] # Map names @@ -2256,15 +2698,15 @@ def init_DK_PGA_lineups(type_var, slate_var, prio_var, prio_mix, lineup_num, sal # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort(prio_var, -1).limit(lineup_num) @@ -2274,6 +2716,7 @@ def init_DK_PGA_lineups(type_var, slate_var, prio_var, prio_mix, lineup_num, sal raw_display = pd.DataFrame(columns=['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']) else: raw_display = raw_display.drop_duplicates(subset=['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']] dict_columns = ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6'] # Map names @@ -2298,15 +2741,15 @@ def init_DK_PGA_lineups(type_var, slate_var, prio_var, prio_mix, lineup_num, sal # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort(prio_var, -1).limit(lineup_num) @@ -2316,6 +2759,7 @@ def init_DK_PGA_lineups(type_var, slate_var, prio_var, prio_mix, lineup_num, sal raw_display = pd.DataFrame(columns=['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']) else: raw_display = raw_display.drop_duplicates(subset=['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']] dict_columns = ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6'] # Map names @@ -2351,15 +2795,15 @@ def init_FD_PGA_lineups(type_var, slate_var, prio_var, prio_mix, lineup_num, sal # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort(prio_var, -1).limit(lineup_num) @@ -2369,6 +2813,7 @@ def init_FD_PGA_lineups(type_var, slate_var, prio_var, prio_mix, lineup_num, sal raw_display = pd.DataFrame(columns=['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']) else: raw_display = raw_display.drop_duplicates(subset=['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']] dict_columns = ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6'] # Map names @@ -2393,15 +2838,15 @@ def init_FD_PGA_lineups(type_var, slate_var, prio_var, prio_mix, lineup_num, sal # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort(prio_var, -1).limit(lineup_num) @@ -2411,6 +2856,7 @@ def init_FD_PGA_lineups(type_var, slate_var, prio_var, prio_mix, lineup_num, sal raw_display = pd.DataFrame(columns=['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']) else: raw_display = raw_display.drop_duplicates(subset=['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']] dict_columns = ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6'] # Map names @@ -2435,15 +2881,15 @@ def init_FD_PGA_lineups(type_var, slate_var, prio_var, prio_mix, lineup_num, sal # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort(prio_var, -1).limit(lineup_num) @@ -2453,6 +2899,7 @@ def init_FD_PGA_lineups(type_var, slate_var, prio_var, prio_mix, lineup_num, sal raw_display = pd.DataFrame(columns=['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']) else: raw_display = raw_display.drop_duplicates(subset=['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']] dict_columns = ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6'] # Map names @@ -2477,15 +2924,15 @@ def init_FD_PGA_lineups(type_var, slate_var, prio_var, prio_mix, lineup_num, sal # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort(prio_var, -1).limit(lineup_num) @@ -2495,6 +2942,7 @@ def init_FD_PGA_lineups(type_var, slate_var, prio_var, prio_mix, lineup_num, sal raw_display = pd.DataFrame(columns=['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']) else: raw_display = raw_display.drop_duplicates(subset=['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']] dict_columns = ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6'] # Map names @@ -2604,15 +3052,15 @@ def init_DK_NASCAR_lineups(type_var, slate_var, prio_var, prio_mix, lineup_num, # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort(prio_var, -1).limit(lineup_num) @@ -2622,6 +3070,7 @@ def init_DK_NASCAR_lineups(type_var, slate_var, prio_var, prio_mix, lineup_num, raw_display = pd.DataFrame(columns=['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']) else: raw_display = raw_display.drop_duplicates(subset=['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']] dict_columns = ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6'] raw_display[dict_columns] = raw_display[dict_columns].apply(lambda x: x.map(names_dict)) @@ -2645,15 +3094,15 @@ def init_DK_NASCAR_lineups(type_var, slate_var, prio_var, prio_mix, lineup_num, # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort(prio_var, -1).limit(lineup_num) @@ -2663,6 +3112,7 @@ def init_DK_NASCAR_lineups(type_var, slate_var, prio_var, prio_mix, lineup_num, raw_display = pd.DataFrame(columns=['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']) else: raw_display = raw_display.drop_duplicates(subset=['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']] dict_columns = ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6'] raw_display[dict_columns] = raw_display[dict_columns].apply(lambda x: x.map(names_dict)) @@ -2686,15 +3136,15 @@ def init_DK_NASCAR_lineups(type_var, slate_var, prio_var, prio_mix, lineup_num, # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort(prio_var, -1).limit(lineup_num) @@ -2704,6 +3154,7 @@ def init_DK_NASCAR_lineups(type_var, slate_var, prio_var, prio_mix, lineup_num, raw_display = pd.DataFrame(columns=['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']) else: raw_display = raw_display.drop_duplicates(subset=['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']] dict_columns = ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6'] # Map names @@ -2728,21 +3179,22 @@ def init_DK_NASCAR_lineups(type_var, slate_var, prio_var, prio_mix, lineup_num, # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort(prio_var, -1).limit(lineup_num) raw_display = pd.DataFrame(list(cursor)) raw_display = raw_display.drop_duplicates(subset=['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']] dict_columns = ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6'] @@ -2779,15 +3231,15 @@ def init_FD_NASCAR_lineups(type_var, slate_var, prio_var, prio_mix, lineup_num, # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort(prio_var, -1).limit(lineup_num) @@ -2797,6 +3249,7 @@ def init_FD_NASCAR_lineups(type_var, slate_var, prio_var, prio_mix, lineup_num, raw_display = pd.DataFrame(columns=['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']) else: raw_display = raw_display.drop_duplicates(subset=['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']] dict_columns = ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6'] # Map names @@ -2821,15 +3274,15 @@ def init_FD_NASCAR_lineups(type_var, slate_var, prio_var, prio_mix, lineup_num, # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort(prio_var, -1).limit(lineup_num) @@ -2839,6 +3292,7 @@ def init_FD_NASCAR_lineups(type_var, slate_var, prio_var, prio_mix, lineup_num, raw_display = pd.DataFrame(columns=['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']) else: raw_display = raw_display.drop_duplicates(subset=['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']] dict_columns = ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6'] # Map names @@ -2863,15 +3317,15 @@ def init_FD_NASCAR_lineups(type_var, slate_var, prio_var, prio_mix, lineup_num, # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort(prio_var, -1).limit(lineup_num) @@ -2881,6 +3335,7 @@ def init_FD_NASCAR_lineups(type_var, slate_var, prio_var, prio_mix, lineup_num, raw_display = pd.DataFrame(columns=['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']) else: raw_display = raw_display.drop_duplicates(subset=['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']] dict_columns = ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6'] # Map names @@ -2905,21 +3360,22 @@ def init_FD_NASCAR_lineups(type_var, slate_var, prio_var, prio_mix, lineup_num, # Combine all player conditions with $or if query_conditions: filter_query = {'$or': query_conditions} - cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'$and': [filter_query, {'salary': {'$gte': salary_min, '$lte': salary_max}}]}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: - cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(math.ceil(lineup_num * (prio_mix / 100))) - cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(math.ceil(lineup_num * ((100 - prio_mix) / 100))) + cursor1 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).limit(_mix_seed_limit_primary(lineup_num, prio_mix)) + cursor2 = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort('Own', -1).limit(_mix_seed_limit_secondary(lineup_num, prio_mix)) raw_display = pd.concat([pd.DataFrame(list(cursor1)), pd.DataFrame(list(cursor2))]) else: cursor = collection.find({'salary': {'$gte': salary_min, '$lte': salary_max}}).sort(prio_var, -1).limit(lineup_num) raw_display = pd.DataFrame(list(cursor)) raw_display = raw_display.drop_duplicates(subset=['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']) + raw_display = raw_display.head(lineup_num) raw_display = raw_display[['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']] dict_columns = ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6']