Spaces:
Sleeping
Sleeping
fix: Improve error logging and normalize ticker handling in financial data fetching
Browse files
src/tools/financial_data.py
CHANGED
|
@@ -57,17 +57,16 @@ class FinancialDataTool(BaseTool):
|
|
| 57 |
logger.error("yfinance library not installed")
|
| 58 |
return "ERROR: yfinance library is not installed. Run: pip install yfinance"
|
| 59 |
|
| 60 |
-
ticker = self._normalize_ticker(ticker)
|
| 61 |
-
|
| 62 |
try:
|
|
|
|
| 63 |
data = self._fetch_data(ticker)
|
| 64 |
return self._format_output(ticker, data)
|
| 65 |
except ToolError as e:
|
| 66 |
-
logger.warning(f"Tool error
|
| 67 |
return f"ERROR: {e.message}"
|
| 68 |
except Exception as e:
|
| 69 |
-
logger.exception(f"Unexpected error fetching data for
|
| 70 |
-
return f"ERROR: Unexpected error fetching data
|
| 71 |
|
| 72 |
def _normalize_ticker(self, ticker: str) -> str:
|
| 73 |
"""Normalize ticker symbol input."""
|
|
|
|
| 57 |
logger.error("yfinance library not installed")
|
| 58 |
return "ERROR: yfinance library is not installed. Run: pip install yfinance"
|
| 59 |
|
|
|
|
|
|
|
| 60 |
try:
|
| 61 |
+
ticker = self._normalize_ticker(ticker)
|
| 62 |
data = self._fetch_data(ticker)
|
| 63 |
return self._format_output(ticker, data)
|
| 64 |
except ToolError as e:
|
| 65 |
+
logger.warning(f"Tool error: {e.message}")
|
| 66 |
return f"ERROR: {e.message}"
|
| 67 |
except Exception as e:
|
| 68 |
+
logger.exception(f"Unexpected error fetching data for ticker")
|
| 69 |
+
return f"ERROR: Unexpected error fetching data: {type(e).__name__}"
|
| 70 |
|
| 71 |
def _normalize_ticker(self, ticker: str) -> str:
|
| 72 |
"""Normalize ticker symbol input."""
|