Update main.py
Browse files
main.py
CHANGED
|
@@ -7,7 +7,7 @@ import tempfile
|
|
| 7 |
import requests
|
| 8 |
import json
|
| 9 |
import pandas as pd
|
| 10 |
-
import numpy as np
|
| 11 |
from datetime import datetime, timedelta # Import timedelta for daily refresh logic
|
| 12 |
from flask import Flask, request, jsonify, send_file
|
| 13 |
from flask_cors import CORS, cross_origin
|
|
@@ -579,7 +579,8 @@ def parse_table(html, table_id=None):
|
|
| 579 |
return pd.DataFrame()
|
| 580 |
|
| 581 |
try:
|
| 582 |
-
|
|
|
|
| 583 |
except ValueError:
|
| 584 |
logging.warning("No tables found in the provided HTML string for parsing.")
|
| 585 |
return pd.DataFrame()
|
|
@@ -704,6 +705,9 @@ def _scrape_team_stats_bs(year):
|
|
| 704 |
if col not in non_numeric_cols:
|
| 705 |
df[col] = pd.to_numeric(df[col], errors="coerce")
|
| 706 |
|
|
|
|
|
|
|
|
|
|
| 707 |
return df
|
| 708 |
|
| 709 |
# BRScraper Data Fetching Utilities (for players)
|
|
@@ -815,7 +819,7 @@ def ask_perp(prompt, system="You are a helpful NBA analyst AI.", max_tokens=500,
|
|
| 815 |
return "Perplexity API key is not configured."
|
| 816 |
hdr = {'Authorization':f'Bearer {PERP_KEY}','Content-Type':'application/json'}
|
| 817 |
payload = {
|
| 818 |
-
"model":"sonar-
|
| 819 |
"messages":[{"role":"system","content":system},{"role":"user","content":prompt}],
|
| 820 |
"max_tokens":max_tokens, "temperature":temp
|
| 821 |
}
|
|
|
|
| 7 |
import requests
|
| 8 |
import json
|
| 9 |
import pandas as pd
|
| 10 |
+
import numpy as np # Added for np.nan
|
| 11 |
from datetime import datetime, timedelta # Import timedelta for daily refresh logic
|
| 12 |
from flask import Flask, request, jsonify, send_file
|
| 13 |
from flask_cors import CORS, cross_origin
|
|
|
|
| 579 |
return pd.DataFrame()
|
| 580 |
|
| 581 |
try:
|
| 582 |
+
# FIX 1: Wrap tbl_html in io.StringIO
|
| 583 |
+
return pd.read_html(io.StringIO(tbl_html))[0]
|
| 584 |
except ValueError:
|
| 585 |
logging.warning("No tables found in the provided HTML string for parsing.")
|
| 586 |
return pd.DataFrame()
|
|
|
|
| 705 |
if col not in non_numeric_cols:
|
| 706 |
df[col] = pd.to_numeric(df[col], errors="coerce")
|
| 707 |
|
| 708 |
+
# FIX 2: Replace NaN values with None for JSON compliance
|
| 709 |
+
df = df.replace({np.nan: None})
|
| 710 |
+
|
| 711 |
return df
|
| 712 |
|
| 713 |
# BRScraper Data Fetching Utilities (for players)
|
|
|
|
| 819 |
return "Perplexity API key is not configured."
|
| 820 |
hdr = {'Authorization':f'Bearer {PERP_KEY}','Content-Type':'application/json'}
|
| 821 |
payload = {
|
| 822 |
+
"model":"sonar-pro", # do not change
|
| 823 |
"messages":[{"role":"system","content":system},{"role":"user","content":prompt}],
|
| 824 |
"max_tokens":max_tokens, "temperature":temp
|
| 825 |
}
|