get_suspensions
Retrieve suspended A-share stocks for a specific date to monitor trading halts and market activity.
Instructions
List suspended stocks for a date.
Args:
date: Optional 'YYYY-MM-DD'. If None, uses current date.
limit: Max rows to return. Defaults to 250.
format: Output format: 'markdown' | 'json' | 'csv'. Defaults to 'markdown'.
Returns:
Table of stocks where tradeStatus==0.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ||
| limit | No | ||
| format | No | markdown |
Implementation Reference
- src/tools/market_overview.py:85-102 (handler)The primary handler function for the 'get_suspensions' tool. Registered via @app.tool() decorator within register_market_overview_tools. Handles logging, error handling via run_tool_with_handling, and delegates core logic to fetch_suspensions.@app.tool() def get_suspensions(date: Optional[str] = None, limit: int = 250, format: str = "markdown") -> str: """ List suspended stocks for a date. Args: date: Optional 'YYYY-MM-DD'. If None, uses current date. limit: Max rows to return. Defaults to 250. format: Output format: 'markdown' | 'json' | 'csv'. Defaults to 'markdown'. Returns: Table of stocks where tradeStatus==0. """ logger.info("Tool 'get_suspensions' called date=%s, limit=%s, format=%s", date or "current", limit, format) return run_tool_with_handling( lambda: fetch_suspensions(active_data_source, date=date, limit=limit, format=format), context=f"get_suspensions:{date or 'current'}", )
- Core implementation logic for fetching and filtering suspended stocks from the data source, adding metadata, and formatting the output.def fetch_suspensions(data_source: FinancialDataSource, *, date: Optional[str], limit: int, format: str) -> str: validate_output_format(format) df = data_source.get_all_stock(date=date) if df is None or df.empty: return "(No data available to display)" if "tradeStatus" not in df.columns: raise ValueError("'tradeStatus' column not present in data source response.") suspended = df[df["tradeStatus"] == '0'] meta = {"as_of": date or "current", "total_suspended": int(suspended.shape[0])} return format_table_output(suspended, format=format, max_rows=limit, meta=meta)