Spaces:
Sleeping
Sleeping
File size: 6,447 Bytes
7852820 d9db89f ba217a9 7852820 ad242a2 bfa4569 ad242a2 bfa4569 ad242a2 7852820 ba217a9 9d66c9c ba217a9 9d66c9c 7852820 cee1912 ad242a2 7852820 b6cd6af 7852820 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 |
import streamlit as st
import numpy as np
import pandas as pd
import time
from rapidfuzz import process
import re
sport_headers = {
'Draftkings': {
'Classic' : {
'MMA' : ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6'],
'GOLF' : ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6'],
'F1' : ['CPT', 'DRIVER1', 'DRIVER2', 'DRIVER3', 'DRIVER4', 'CONST'],
'SOC' : ['F1', 'F2', 'M1', 'M2', 'D1', 'D2', 'GK', 'UTIL'],
'TENNIS' : ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6'],
'WNBA' : ['G1', 'G2', 'F1', 'F2', 'F3', 'UTIL'],
'NASCAR' : ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6'],
'MLB' : ['SP1', 'SP2', 'C', '1B', '2B', '3B', 'SS', 'OF1', 'OF2', 'OF3'],
'NFL' : ['QB', 'RB1', 'RB2', 'WR1', 'WR2', 'WR3', 'TE', 'FLEX', 'DST'],
'CFL' : ['QB', 'RB', 'WR1', 'WR2', 'FLEX1', 'FLEX2', 'DST'],
'LOL' : ['CPT', 'TOP', 'JNG', 'MID', 'ADC', 'SUP', 'TEAM'],
'CSGO' : ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5'],
'COD' : ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'TEAM'],
'NHL' : ['C1', 'C2', 'W1', 'W2', 'W3', 'D1', 'D2', 'UTIL', 'G'],
'NCAAF' : ['QB', 'RB1', 'RB2', 'WR1', 'WR2', 'WR3', 'FLEX', 'SFLEX'],
},
'Showdown' : {
'MMA' : ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6'],
'GOLF' : ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6'],
'F1' : ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5'],
'SOC' : ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5'],
'TENNIS' : ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5'],
'WNBA' : ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5'],
'NASCAR' : ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5'],
'MLB' : ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5'],
'NFL' : ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5'],
'CFL' : ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5'],
'LOL' : ['CPT1', 'CPT2', 'FLEX1', 'FLEX2'],
'CSGO' : ['CPT1', 'CPT2', 'FLEX1', 'FLEX2'],
'COD' : ['CPT1', 'CPT2', 'FLEX1', 'FLEX2'],
'NHL' : ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5'],
'NCAAF' : ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5'],
},
},
'Fanduel': {
'Classic' : {
'MMA' : ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6'],
'GOLF' : ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6'],
'F1' : ['CPT', 'DRIVER1', 'DRIVER2', 'DRIVER3', 'DRIVER4', 'CONST'],
'SOC' : ['F1', 'F2', 'M1', 'M2', 'D1', 'D2', 'GK', 'UTIL'],
'TENNIS' : ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6'],
'WNBA' : ['G1', 'G2', 'G3', 'F1', 'F2', 'F3', 'F4'],
'NASCAR' : ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6'],
'MLB' : ['P', 'C/1B', '2B', '3B', 'SS', 'OF1', 'OF2', 'OF3', 'UTIL'],
'NFL' : ['QB', 'RB1', 'RB2', 'WR1', 'WR2', 'WR3', 'TE', 'FLEX', 'DST'],
'CFL' : ['QB', 'RB', 'WR1', 'WR2', 'FLEX1', 'FLEX2', 'DST'],
'LOL' : ['CPT', 'TOP', 'JNG', 'MID', 'ADC', 'SUP', 'TEAM'],
'CSGO' : ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5'],
'COD' : ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'TEAM'],
'NHL' : ['C1', 'C2', 'W1', 'W2', 'W3', 'D1', 'D2', 'UTIL', 'G'],
'NCAAF' : ['QB', 'RB1', 'RB2', 'WR1', 'WR2', 'WR3', 'FLEX', 'SFLEX'],
},
'Showdown' : {
'MMA' : ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6'],
'GOLF' : ['FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5', 'FLEX6'],
'F1' : ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5'],
'SOC' : ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5'],
'TENNIS' : ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5'],
'WNBA' : ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5'],
'NASCAR' : ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5'],
'MLB' : ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5'],
'NFL' : ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5'],
'CFL' : ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5'],
'LOL' : ['CPT1', 'CPT2', 'FLEX1', 'FLEX2'],
'CSGO' : ['CPT1', 'CPT2', 'FLEX1', 'FLEX2'],
'COD' : ['CPT1', 'CPT2', 'FLEX1', 'FLEX2'],
'NHL' : ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5'],
'NCAAF' : ['CPT', 'FLEX1', 'FLEX2', 'FLEX3', 'FLEX4', 'FLEX5'],
},
},
}
def load_dk_fd_file(lineups, csv_file, site_var, type_var, sport_var):
df = csv_file.copy()
try:
name_dict = dict(zip(df['Name + ID'], df['Name']))
except:
name_dict = dict(zip(df['Id'], df['Nickname']))
# Now load and process the lineups file
try:
clean_name = re.sub(r' \(\d+\)', '', lineups.name)
if clean_name.endswith('.csv'):
lineups_df = pd.read_csv(lineups)
elif clean_name.endswith(('.xls', '.xlsx')):
lineups_df = pd.read_excel(lineups)
else:
st.error('Please upload either a CSV or Excel file for lineups')
return None, None
try:
lineups_df = lineups_df.drop(columns=['Entry ID', 'Contest Name', 'Contest ID', 'Entry Fee'])
except:
pass
lineups_df.columns = sport_headers[site_var][type_var][sport_var]
export_df = lineups_df.copy()
# Map the IDs to names
for col in lineups_df.columns:
def map_or_clean(value):
# First try to map using the dictionary
if value in name_dict:
return name_dict[value]
else:
# If no match found, remove the ID portion
match = re.search(r' \(', str(value))
if match:
return str(value)[:match.start()]
return value
lineups_df[col] = lineups_df[col].apply(map_or_clean)
return export_df, lineups_df
except Exception as e:
st.error(f'Error loading lineups file: {str(e)}')
return None, None |