File size: 4,512 Bytes
f2d503a
 
 
a404a7a
 
 
 
 
 
 
 
f2d503a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
a404a7a
f2d503a
 
 
 
 
 
 
 
 
 
 
 
 
a404a7a
f2d503a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import streamlit as st
import pandas as pd
import snowflake.connector
import os

USER = os.environ['USER']
PASSWORD = os.environ['PASSWORD']
ACCOUNT = os.environ['ACCOUNT']
WAREHOUSE = os.environ['WAREHOUSE']
DATABASE = os.environ['DATABASE']


def on_page_load():
    st.set_page_config(layout="wide")
on_page_load()

col1, col2, col3 = st.columns(3)

with col2:
    st.markdown("<h1 style='text-align: center; color: steelblue;'>Build Your Team</h1>", unsafe_allow_html=True)
    player_add = st.text_input('Who\'re you picking?', 'James')
    player = player_add.lower()
st.markdown("<p style='text-align: center; color: steelblue;'>Search for a player to populate the dropdown menu then pick and save your team before searching for another player.</p>", unsafe_allow_html=True)
search_string = 'select full_name from NBA where full_name_lower=\'{}\' or first_name_lower=\'{}\' or last_name_lower=\'{}\';'.format(player, player, player)

if 'home_team' not in st.session_state:
        st.session_state['home_team'] = []
if 'away_team' not in st.session_state:
        st.session_state['away_team'] = []
if 'away_stats' not in st.session_state:
    st.session_state['away_stats'] = []
if 'home_team_df' not in st.session_state:
    st.session_state['home_team_df'] = pd.DataFrame()
if 'radio_index' not in st.session_state:
    st.session_state['radio_index'] = 0

def find_player():
  cnx = snowflake.connector.connect(user=USER, password=PASSWORD, account=ACCOUNT, warehouse=WAREHOUSE, database=DATABASE)
  data = get_player(cnx)
  cnx.close()
  return data

def get_player(cnx):
  with cnx.cursor() as cur:
    cur.execute(search_string)
    return cur.fetchall()

player_search = find_player()

def find_home_team():
    test =[]
    cnx = snowflake.connector.connect(user=USER, password=PASSWORD, account=ACCOUNT, warehouse=WAREHOUSE, database=DATABASE)
    for i in st.session_state.home_team:
        with cnx.cursor() as cur:
            cur.execute('SELECT * FROM NBA WHERE FULL_NAME=\'{}\''.format(i))
            test.append(cur.fetchall()[0])
    cnx.close()    
    df = pd.DataFrame(test, columns=['FULL_NAME', 'AST', 'BLK', 'DREB', 'FG3A', 'FG3M', 'FG3_PCT', 'FGA', 'FGM', 'FG_PCT', 'FTA', 'FTM', 'FT_PCT','GP', 'GS', 'MIN', 'OREB', 'PF', 'PTS', 'REB', 'STL', 'TOV', 'FIRST_NAME', 'LAST_NAME', 'FULL_NAME_LOWER', 'FIRST_NAME_LOWER', 'LAST_NAME_LOWER', 'IS_ACTIVE'])
    st.session_state.home_team_df = df
    return df

home_team_df = find_home_team()

player_search = [player[0] for player in player_search]
if not home_team_df.empty:
    name_list = home_team_df['FULL_NAME'].tolist()
    player_search += name_list

def save_state():
    saved_players = home_team_df['FULL_NAME'].tolist()
    holder = saved_players + player_selected
    if len(player_selected) > len(saved_players):
        for i in holder:
            if i not in st.session_state.home_team:
                st.session_state.home_team.append(i)
    elif len(player_selected) < len(saved_players):
        for i in saved_players:
            if i not in player_selected:
                st.session_state.home_team.remove(i)
    st.rerun()

col1, col2 = st.columns([7,1])
with col1:
    player_selected = st.multiselect("Search Results:", player_search, home_team_df['FULL_NAME'].tolist(), label_visibility="collapsed")
with col2:
    if st.button('Save Team'):
        save_state()

st.markdown("<h1 style='text-align: center; color: steelblue;'>Preview</h1>", unsafe_allow_html=True)
   
st.dataframe(home_team_df)
radio_index = st.session_state.radio_index
col1, col2, col3, col4, col5 = st.columns(5)
with col3:
    st.markdown("<h3 style='text-align: center; color: steelblue;'>Away Team</h3>", unsafe_allow_html=True)
    difficulty = st.radio(
        label="Difficulty", index=radio_index, options=['Regular','93\' Bulls', 'All-Stars', 'Dream Team'],
        label_visibility="collapsed", )

    if difficulty == 'Regular':
        st.session_state.away_stats = [850, 400, 200, 60]
        st.session_state.radio_index = 0       
    elif difficulty == '93\' Bulls':
        st.session_state.away_stats = [1050, 500, 300, 80]
        st.session_state.radio_index = 1
    elif difficulty == 'All-Stars':
        st.session_state.away_stats = [1250, 600, 400, 100]
        st.session_state.radio_index = 2
    elif difficulty == 'Dream Team':
        st.session_state.away_stats = [1450, 700, 500, 120]
        st.session_state.radio_index = 3
    else:
        st.write("You didn't select a difficulty.")