Initial commit for fixing broken code: - Fixed ETF_Analyzer page config issue - Updated ETF_Portfolio_Builder with improved error handling and data validation
This commit is contained in:
parent
f0ea40767c
commit
2687b63d3f
@ -1,3 +1,11 @@
|
|||||||
|
# Set page config first, before any other Streamlit commands
|
||||||
|
st.set_page_config(
|
||||||
|
page_title="ETF Analyzer",
|
||||||
|
page_icon="📊",
|
||||||
|
layout="wide",
|
||||||
|
initial_sidebar_state="expanded"
|
||||||
|
)
|
||||||
|
|
||||||
"""
|
"""
|
||||||
ETF Analyzer - Comprehensive ETF Analysis Tool
|
ETF Analyzer - Comprehensive ETF Analysis Tool
|
||||||
|
|
||||||
@ -21,7 +29,46 @@ import time
|
|||||||
from typing import Dict, List, Tuple, Any, Optional, Union
|
from typing import Dict, List, Tuple, Any, Optional, Union
|
||||||
import sys
|
import sys
|
||||||
import yfinance as yf
|
import yfinance as yf
|
||||||
|
from dotenv import load_dotenv
|
||||||
|
import logging
|
||||||
|
|
||||||
|
# Load environment variables
|
||||||
|
load_dotenv()
|
||||||
|
|
||||||
|
# Configure logging
|
||||||
|
logging.basicConfig(level=logging.INFO)
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
# FMP API configuration
|
||||||
|
FMP_API_KEY = st.session_state.get('fmp_api_key', os.getenv('FMP_API_KEY', ''))
|
||||||
|
FMP_BASE_URL = "https://financialmodelingprep.com/api/v3"
|
||||||
|
|
||||||
|
def test_fmp_connection():
|
||||||
|
"""Test the FMP API connection and display status."""
|
||||||
|
try:
|
||||||
|
if not FMP_API_KEY:
|
||||||
|
return False, "No API key found"
|
||||||
|
|
||||||
|
session = get_fmp_session()
|
||||||
|
test_url = f"{FMP_BASE_URL}/profile/AAPL?apikey={FMP_API_KEY}"
|
||||||
|
response = session.get(test_url)
|
||||||
|
|
||||||
|
if response.status_code == 200:
|
||||||
|
data = response.json()
|
||||||
|
if data and isinstance(data, list) and len(data) > 0:
|
||||||
|
return True, "Connected"
|
||||||
|
return False, f"Error: {response.status_code}"
|
||||||
|
except Exception as e:
|
||||||
|
return False, f"Error: {str(e)}"
|
||||||
|
|
||||||
|
# Add FMP connection status to the navigation bar
|
||||||
|
st.sidebar.markdown("---")
|
||||||
|
st.sidebar.subheader("FMP API Status")
|
||||||
|
connection_status, message = test_fmp_connection()
|
||||||
|
if connection_status:
|
||||||
|
st.sidebar.success(f"✅ FMP API: {message}")
|
||||||
|
else:
|
||||||
|
st.sidebar.error(f"❌ FMP API: {message}")
|
||||||
|
|
||||||
# --- Constants and Settings ---
|
# --- Constants and Settings ---
|
||||||
CACHE_DIR = Path("cache")
|
CACHE_DIR = Path("cache")
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user