Skip to main content
Glama
firmmaple
by firmmaple
markdown_formatter.py2.26 kB
""" Markdown formatting utilities for A-Share MCP Server. """ import pandas as pd import logging from datetime import datetime, timedelta logger = logging.getLogger(__name__) # Configuration # Common number of trading days per year. Max rows to display in Markdown output MAX_MARKDOWN_ROWS = 250 def format_df_to_markdown(df: pd.DataFrame, max_rows: int = None) -> str: """Formats a Pandas DataFrame to a Markdown string with row truncation. Args: df: The DataFrame to format max_rows: Maximum rows to include in output. Defaults to MAX_MARKDOWN_ROWS if None. Returns: A markdown formatted string representation of the DataFrame """ if df.empty: logger.warning("Attempted to format an empty DataFrame to Markdown.") return "(No data available to display)" # Default max_rows to the configured limit if not provided if max_rows is None: max_rows = MAX_MARKDOWN_ROWS logger.debug(f"max_rows defaulted to MAX_MARKDOWN_ROWS: {max_rows}") original_rows = df.shape[0] # Only need original_rows now truncated = False truncation_notes = [] # Determine the actual number of rows to display, capped by max_rows rows_to_show = min(original_rows, max_rows) # Always apply the row limit df_display = df.head(rows_to_show) # Check if actual row truncation occurred (only if original_rows > rows_to_show) if original_rows > rows_to_show: truncation_notes.append( f"rows truncated to the limit of {rows_to_show} (from {original_rows})") truncated = True try: markdown_table = df_display.to_markdown(index=False) except Exception as e: logger.error( f"Error converting DataFrame to Markdown: {e}", exc_info=True) return "Error: Could not format data into Markdown table." if truncated: # Note: 'truncated' is now only True if rows were truncated notes = "; ".join(truncation_notes) logger.debug( f"Markdown table generated with truncation notes: {notes}") return f"Note: Data truncated ({notes}).\n\n{markdown_table}" else: logger.debug("Markdown table generated without truncation.") return markdown_table

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/firmmaple/a-share-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server