James McCool
commited on
Commit
·
8db1f1d
1
Parent(s):
313a2ff
Add debug prints to grab_contest_data for improved traceability
Browse files- Introduced print statements to display examples of lineup_hash, player_ids, and formatted results, aiding in debugging and understanding data transformations.
- Enhanced visibility of player ID mappings by printing the first three entries of pid_map, facilitating easier verification of data integrity.
- These changes support ongoing efforts to improve data handling and user experience within the application.
global_func/grab_contest_data.py
CHANGED
@@ -14,16 +14,22 @@ def grab_contest_data(sport, contest_name, contest_id_map, contest_date):
|
|
14 |
# Remove the leading colon and split by the remaining colons
|
15 |
player_ids = lineup_hash.lstrip(':').split(':')
|
16 |
|
|
|
|
|
|
|
|
|
17 |
# Check if the number of IDs matches the number of positions
|
18 |
if len(player_ids) != len(positions):
|
19 |
print(f"Warning: Mismatch for hash {lineup_hash}. IDs: {len(player_ids)}, Positions: {len(positions)}")
|
20 |
return lineup_hash
|
21 |
|
22 |
-
# Combine positions and player IDs
|
23 |
-
combined_parts = [
|
|
|
24 |
|
25 |
-
#
|
26 |
-
|
|
|
27 |
|
28 |
lineups_json = requests.get(lineups_url).json()
|
29 |
data_json = requests.get(data_url).json()
|
@@ -47,6 +53,10 @@ def grab_contest_data(sport, contest_name, contest_id_map, contest_date):
|
|
47 |
players_df = players_df.sort_values(by='ownership', ascending=False).reset_index(drop=True)
|
48 |
players_df = players_df.rename(columns={'fullName': 'Player', 'rosterPosition': 'Roster Position', 'ownership': '%Drafted', 'actualPoints': 'FPTS', 'salary': 'Salary', 'currentTeam': 'Team'})
|
49 |
pid_map = dict(zip(players_df['playerId'].astype(str).apply(lambda x: f" {x} "), players_df['Player']))
|
|
|
|
|
|
|
|
|
50 |
|
51 |
for lineup_hash, lineup_info in lineups_json['lineups'].items():
|
52 |
lineup_data.append({
|
@@ -65,7 +75,12 @@ def grab_contest_data(sport, contest_name, contest_id_map, contest_date):
|
|
65 |
lineups_df = lineups_df.rename(columns={'index': 'Rank', 'points': 'Points', 'entryNameList': 'EntryName', 'lineupHash': 'Lineup'})
|
66 |
lineups_df['EntryName'] = lineups_df['EntryName'] + ' (1/1)'
|
67 |
lineups_df['Lineup'] = lineups_df['Lineup'].apply(lambda x: format_lineup_string(x, position_inserts))
|
|
|
|
|
|
|
68 |
lineups_df['Lineup'] = lineups_df['Lineup'].replace(pid_map, regex=False)
|
|
|
|
|
69 |
lineups_df = lineups_df[['Rank', 'EntryId', 'EntryName', 'TimeRemaining', 'Points', 'Lineup']]
|
70 |
|
71 |
total_data = lineups_df.merge(players_df, how='left', left_index=True, right_index=True)
|
|
|
14 |
# Remove the leading colon and split by the remaining colons
|
15 |
player_ids = lineup_hash.lstrip(':').split(':')
|
16 |
|
17 |
+
# Print example of what we're working with
|
18 |
+
print(f"Example lineup_hash: {lineup_hash}")
|
19 |
+
print(f"Split player_ids: {player_ids}")
|
20 |
+
|
21 |
# Check if the number of IDs matches the number of positions
|
22 |
if len(player_ids) != len(positions):
|
23 |
print(f"Warning: Mismatch for hash {lineup_hash}. IDs: {len(player_ids)}, Positions: {len(positions)}")
|
24 |
return lineup_hash
|
25 |
|
26 |
+
# Combine positions and player IDs
|
27 |
+
combined_parts = [pos + pid for pos, pid in zip(positions, player_ids)]
|
28 |
+
result = "".join(combined_parts)
|
29 |
|
30 |
+
# Print example of the result
|
31 |
+
print(f"Formatted result: {result}")
|
32 |
+
return result
|
33 |
|
34 |
lineups_json = requests.get(lineups_url).json()
|
35 |
data_json = requests.get(data_url).json()
|
|
|
53 |
players_df = players_df.sort_values(by='ownership', ascending=False).reset_index(drop=True)
|
54 |
players_df = players_df.rename(columns={'fullName': 'Player', 'rosterPosition': 'Roster Position', 'ownership': '%Drafted', 'actualPoints': 'FPTS', 'salary': 'Salary', 'currentTeam': 'Team'})
|
55 |
pid_map = dict(zip(players_df['playerId'].astype(str).apply(lambda x: f" {x} "), players_df['Player']))
|
56 |
+
print("Example pid_map entries:")
|
57 |
+
for i, (pid, name) in enumerate(pid_map.items()):
|
58 |
+
if i < 3: # Print first 3 entries
|
59 |
+
print(f"ID: '{pid}' -> Name: '{name}'")
|
60 |
|
61 |
for lineup_hash, lineup_info in lineups_json['lineups'].items():
|
62 |
lineup_data.append({
|
|
|
75 |
lineups_df = lineups_df.rename(columns={'index': 'Rank', 'points': 'Points', 'entryNameList': 'EntryName', 'lineupHash': 'Lineup'})
|
76 |
lineups_df['EntryName'] = lineups_df['EntryName'] + ' (1/1)'
|
77 |
lineups_df['Lineup'] = lineups_df['Lineup'].apply(lambda x: format_lineup_string(x, position_inserts))
|
78 |
+
# Print example before and after replacement
|
79 |
+
print("\nExample before replacement:")
|
80 |
+
print(lineups_df['Lineup'].iloc[0])
|
81 |
lineups_df['Lineup'] = lineups_df['Lineup'].replace(pid_map, regex=False)
|
82 |
+
print("\nExample after replacement:")
|
83 |
+
print(lineups_df['Lineup'].iloc[0])
|
84 |
lineups_df = lineups_df[['Rank', 'EntryId', 'EntryName', 'TimeRemaining', 'Points', 'Lineup']]
|
85 |
|
86 |
total_data = lineups_df.merge(players_df, how='left', left_index=True, right_index=True)
|