SYMBOL INDEX (728 symbols across 73 files) FILE: evals/runledger/agent/agent.py function _safe_print (line 21) | def _safe_print(*args: Any, **kwargs: Any) -> None: class JsonlChannel (line 32) | class JsonlChannel: method __init__ (line 33) | def __init__(self, stream: Any) -> None: method read (line 36) | def read(self) -> dict[str, Any] | None: method send (line 50) | def send(payload: dict[str, Any]) -> None: function _last_user_text (line 55) | def _last_user_text(messages: list[Any]) -> str: function _runledger_tool_call (line 62) | def _runledger_tool_call(channel: JsonlChannel, name: str, args: dict[st... class SearchKnowledgeInput (line 78) | class SearchKnowledgeInput(BaseModel): class ShowSchemaInput (line 85) | class ShowSchemaInput(BaseModel): class Text2SQLInput (line 90) | class Text2SQLInput(BaseModel): class RunPythonInput (line 95) | class RunPythonInput(BaseModel): class SaveReportInput (line 100) | class SaveReportInput(BaseModel): function _build_tool_proxies (line 106) | def _build_tool_proxies(channel: JsonlChannel) -> dict[str, StructuredTo... function _stub_llm_call (line 186) | def _stub_llm_call(chat_model: Any, messages: list[Any], **_kwargs: Any)... function _configure_agent_graph (line 204) | def _configure_agent_graph(channel: JsonlChannel) -> None: function _bootstrap_config (line 219) | def _bootstrap_config() -> None: function main (line 229) | def main() -> int: FILE: evals/runledger/tools.py function _invoke_tool (line 8) | def _invoke_tool(tool, args: dict[str, Any]) -> Any: function _search_knowledge (line 12) | def _search_knowledge(args: dict[str, Any]) -> Any: FILE: openchatbi/__init__.py function get_default_graph (line 18) | def get_default_graph(): FILE: openchatbi/agent_graph.py function get_mcp_servers (line 43) | def get_mcp_servers(): function ask_human (line 51) | def ask_human(state: AgentState) -> dict[str, Any]: class CallSQLGraphInput (line 72) | class CallSQLGraphInput(BaseModel): function _format_sql_response (line 97) | def _format_sql_response(sql_graph_response: dict) -> str: function get_sql_tools (line 128) | def get_sql_tools(sql_graph: CompiledStateGraph, sync_mode: bool = False... function agent_llm_call (line 185) | def agent_llm_call(llm: BaseChatModel, tools: list, context_manager: Con... function _build_graph_core (line 273) | def _build_graph_core( function build_agent_graph_sync (line 373) | def build_agent_graph_sync( function build_agent_graph_async (line 406) | async def build_agent_graph_async( FILE: openchatbi/catalog/catalog_loader.py class DataCatalogLoader (line 12) | class DataCatalogLoader: method __init__ (line 17) | def __init__(self, engine: Engine, include_tables: list[str] | None = ... method get_tables_and_columns (line 30) | def get_tables_and_columns(self) -> dict[str, list[dict[str, Any]]]: method get_table_indexes (line 84) | def get_table_indexes(self, table_name: str) -> list[dict[str, Any]]: method get_foreign_keys (line 101) | def get_foreign_keys(self, table_name: str) -> list[dict[str, Any]]: method save_to_catalog_store (line 118) | def save_to_catalog_store( function load_catalog_from_data_warehouse (line 184) | def load_catalog_from_data_warehouse(catalog_store: CatalogStore) -> bool: FILE: openchatbi/catalog/catalog_store.py class CatalogStore (line 7) | class CatalogStore(ABC): method get_data_warehouse_config (line 24) | def get_data_warehouse_config(self) -> dict: method get_sql_engine (line 34) | def get_sql_engine(self) -> Engine: method get_database_list (line 44) | def get_database_list(self) -> list[str]: method get_table_list (line 54) | def get_table_list(self, database: str | None = None) -> list[str]: method get_column_list (line 67) | def get_column_list(self, table: str | None = None, database: str | No... method get_table_information (line 81) | def get_table_information(self, table: str, database: str | None = Non... method get_sql_examples (line 95) | def get_sql_examples( method get_table_selection_examples (line 111) | def get_table_selection_examples(self) -> list[tuple[str, list[str]]]: method save_table_information (line 121) | def save_table_information( method save_table_sql_examples (line 146) | def save_table_sql_examples(self, table: str, examples: list[dict[str,... method save_table_selection_examples (line 161) | def save_table_selection_examples(self, examples: list[tuple[str, list... method check_exists (line 174) | def check_exists(self) -> bool: function split_db_table_name (line 184) | def split_db_table_name(table: str, database: str | None = None) -> tupl... FILE: openchatbi/catalog/factory.py function create_catalog_store (line 12) | def create_catalog_store( function _auto_load_catalog_if_needed (line 46) | def _auto_load_catalog_if_needed(catalog_store: CatalogStore) -> None: FILE: openchatbi/catalog/helper.py function get_requests_session (line 10) | def get_requests_session(token: str, header_extra_params: dict) -> reque... function create_sqlalchemy_engine_instance (line 19) | def create_sqlalchemy_engine_instance(data_warehouse_config: dict[str, A... FILE: openchatbi/catalog/retrival_helper.py function get_columns_metadata (line 10) | def get_columns_metadata(catalog): function build_column_tables_mapping (line 40) | def build_column_tables_mapping(catalog): function build_columns_retriever (line 52) | def build_columns_retriever(catalog, vector_db_path: str = None): FILE: openchatbi/catalog/schema_retrival.py function column_retrieval (line 30) | def column_retrieval(query, db, k=10, threshold=0.5, filter=None): function merge_list (line 51) | def merge_list(list1, list2): function edit_distance_score (line 55) | def edit_distance_score(key1, key2): function edit_distance_search (line 66) | def edit_distance_search(keywords_list, top_k=10, threshold=0.5): function bm25_search (line 97) | def bm25_search(query_list, top_k=5, score_threshold=0.5): function get_relevant_columns (line 119) | def get_relevant_columns(keywords_list, dimensions, metrics): FILE: openchatbi/catalog/store/file_system.py class FileSystemCatalogStore (line 19) | class FileSystemCatalogStore(CatalogStore): method __init__ (line 43) | def __init__(self, data_path: str, data_warehouse_config: dict): method _clear_cache (line 90) | def _clear_cache(self) -> None: method get_data_warehouse_config (line 102) | def get_data_warehouse_config(self) -> dict: method get_sql_engine (line 105) | def get_sql_engine(self) -> Engine: method _validate_table_name (line 110) | def _validate_table_name(self, table: str) -> bool: method _validate_column_data (line 133) | def _validate_column_data(self, columns: list[dict[str, Any]]) -> bool: method _validate_table_information (line 172) | def _validate_table_information(self, information: dict[str, Any]) -> ... method _validate_sql_examples (line 198) | def _validate_sql_examples(self, examples: list[dict[str, str]]) -> bool: method _load_yaml_file (line 234) | def _load_yaml_file(file_path: str) -> dict: method _load_csv_file (line 259) | def _load_csv_file(file_path: str) -> list[dict[str, str]]: method _save_yaml_file (line 287) | def _save_yaml_file(file_path: str, data: dict) -> bool: method _save_csv_file (line 308) | def _save_csv_file(file_path: str, data: list[dict[str, str]], headers... method _load_tables (line 347) | def _load_tables(self) -> dict[str, list[str]]: method _load_common_columns (line 364) | def _load_common_columns(self) -> dict[str, dict[str, Any]]: method _load_table_spec_columns (line 381) | def _load_table_spec_columns(self) -> dict[str, dict[str, Any]]: method _parse_example_text (line 404) | def _parse_example_text(self, example_text: str) -> list[tuple[str, st... method get_database_list (line 447) | def get_database_list(self) -> list[str]: method _get_all_table_schema (line 456) | def _get_all_table_schema(self) -> dict[str, list[str]]: method get_table_list (line 467) | def get_table_list(self, database: str | None = None) -> list[str]: method _get_common_columns (line 481) | def _get_common_columns(self) -> dict[str, dict[str, Any]]: method _get_table_spec_columns (line 492) | def _get_table_spec_columns(self) -> dict[str, dict[str, Any]]: method get_column_list (line 503) | def get_column_list(self, table: str | None = None, database: str | No... method get_table_information (line 539) | def get_table_information(self, table: str, database: str | None = Non... method get_sql_examples (line 551) | def get_sql_examples( method _load_table_selection_examples_from_csv (line 581) | def _load_table_selection_examples_from_csv(file_path: str) -> list[tu... method get_table_selection_examples (line 596) | def get_table_selection_examples(self) -> list[tuple[str, list[str]]]: method save_table_information (line 603) | def save_table_information( method _save_columns (line 644) | def _save_columns( method save_table_sql_examples (line 729) | def save_table_sql_examples(self, table: str, examples: list[dict[str,... method save_table_selection_examples (line 763) | def save_table_selection_examples(self, examples: list[tuple[str, list... method check_exists (line 774) | def check_exists(self) -> bool: FILE: openchatbi/catalog/token_service.py class TokenService (line 8) | class TokenService: method __init__ (line 20) | def __init__(self, user_name: str, password: str): method apply_token (line 25) | def apply_token(self): function apply_token_for_user (line 34) | def apply_token_for_user(token_url: str, user_name: str, password: str): FILE: openchatbi/code/docker_executor.py function check_docker_status (line 13) | def check_docker_status() -> tuple[bool, str]: class DockerExecutor (line 44) | class DockerExecutor(ExecutorBase): method __init__ (line 47) | def __init__(self, variable: dict = None): method _check_docker_availability (line 63) | def _check_docker_availability(): method _handle_docker_error (line 88) | def _handle_docker_error(error: Exception): method _ensure_image_exists (line 107) | def _ensure_image_exists(self): method run_code (line 121) | def run_code(self, code: str) -> tuple[bool, str]: method __del__ (line 172) | def __del__(self): FILE: openchatbi/code/executor_base.py class ExecutorBase (line 4) | class ExecutorBase: method __init__ (line 9) | def __init__(self, variable: dict = None): method run_code (line 15) | def run_code(self, code: str) -> (bool, str): method set_variable (line 19) | def set_variable(self, key: str, value: Any) -> None: FILE: openchatbi/code/local_executor.py class LocalExecutor (line 7) | class LocalExecutor(ExecutorBase): method run_code (line 9) | def run_code(self, code: str) -> str: FILE: openchatbi/code/restricted_local_executor.py class RestrictedLocalExecutor (line 10) | class RestrictedLocalExecutor(ExecutorBase): method run_code (line 12) | def run_code(self, code: str) -> (bool, str): FILE: openchatbi/config_loader.py class LLMProviderConfig (line 14) | class LLMProviderConfig(BaseModel): class Config (line 24) | class Config(BaseModel): method from_dict (line 82) | def from_dict(cls, config: dict[str, Any]) -> "Config": class ConfigLoader (line 94) | class ConfigLoader: method __new__ (line 104) | def __new__(cls): method get (line 111) | def get(self) -> Config: method load (line 124) | def load(self, config_file: str = None) -> None: method _process_config_dict (line 159) | def _process_config_dict(self, config_data: dict[str, Any]) -> None: method _instantiate_from_config_dict (line 234) | def _instantiate_from_config_dict(self, config_item: dict[str, Any], *... method _process_llm_providers (line 247) | def _process_llm_providers(self, config_data: dict[str, Any]) -> None: method load_bi_config (line 279) | def load_bi_config(self, bi_config_file: str) -> dict[str, Any]: method set (line 312) | def set(self, config: dict[str, Any]) -> None: FILE: openchatbi/context_config.py class ContextConfig (line 9) | class ContextConfig: function get_context_config (line 36) | def get_context_config() -> ContextConfig: function update_context_config (line 64) | def update_context_config(**kwargs) -> ContextConfig: FILE: openchatbi/context_manager.py class ContextManager (line 16) | class ContextManager: method __init__ (line 19) | def __init__(self, llm: BaseChatModel, config: ContextConfig = None): method manage_context_messages (line 33) | def manage_context_messages(self, messages: list) -> None: method estimate_tokens (line 67) | def estimate_tokens(text: str) -> int: method estimate_message_tokens (line 71) | def estimate_message_tokens(self, messages: list[BaseMessage]) -> int: method trim_tool_output (line 84) | def trim_tool_output(self, content: str, tool_name: str = "") -> str: method _trim_structured_output (line 106) | def _trim_structured_output(self, content: str) -> str: method _trim_code_output (line 141) | def _trim_code_output(self, content: str) -> str: method summarize_conversation (line 162) | def summarize_conversation(self, messages: list[BaseMessage]) -> str: method _truncate_text (line 196) | def _truncate_text(self, text: str, truncate_len: int = 500) -> str: method _truncate_text_or_list (line 204) | def _truncate_text_or_list(self, content): method _format_messages_for_summary (line 219) | def _format_messages_for_summary(self, messages: list[BaseMessage]) ->... method _compress_historical_tool_messages (line 247) | def _compress_historical_tool_messages(self, messages: list[BaseMessag... method _apply_conversation_summarization (line 274) | def _apply_conversation_summarization(self, messages: list[BaseMessage... method _find_safe_split_point (line 306) | def _find_safe_split_point(self, messages: list[BaseMessage]) -> int: method _should_compress_historical_tool_message (line 333) | def _should_compress_historical_tool_message(self, tool_msg: ToolMessa... method _is_error_content (line 366) | def _is_error_content(self, content: str) -> bool: method _is_sql_content (line 390) | def _is_sql_content(self, content: str) -> bool: method _is_data_query_result (line 406) | def _is_data_query_result(self, content: str) -> bool: method _is_python_execution_result (line 420) | def _is_python_execution_result(self, content: str) -> bool: FILE: openchatbi/graph_state.py function add_history_messages (line 10) | def add_history_messages(left: list, right: list): class AgentState (line 18) | class AgentState(MessagesState): class SQLGraphState (line 31) | class SQLGraphState(MessagesState): class InputState (line 49) | class InputState(MessagesState): class OutputState (line 55) | class OutputState(MessagesState): class SQLOutputState (line 61) | class SQLOutputState(MessagesState): FILE: openchatbi/llm/llm.py function list_llm_providers (line 13) | def list_llm_providers() -> list[str]: function _get_provider_config (line 22) | def _get_provider_config(provider: str | None): function get_embedding_model (line 34) | def get_embedding_model(provider: str | None = None): function get_default_llm (line 42) | def get_default_llm(provider: str | None = None): function get_llm (line 50) | def get_llm(provider: str | None = None): function get_text2sql_llm (line 55) | def get_text2sql_llm(provider: str | None = None): function _invalid_tool_names (line 63) | def _invalid_tool_names(valid_tools, tool_calls) -> str: function call_llm_chat_model_with_retry (line 71) | def call_llm_chat_model_with_retry( FILE: openchatbi/prompts/system_prompt.py function get_basic_knowledge (line 17) | def get_basic_knowledge(): function get_data_warehouse_introduction (line 25) | def get_data_warehouse_introduction(): function get_agent_extra_tool_use_rule (line 33) | def get_agent_extra_tool_use_rule(): function get_organization (line 41) | def get_organization(): function get_dialect_rules (line 49) | def get_dialect_rules(): function get_agent_prompt_template (line 65) | def get_agent_prompt_template() -> str: function get_extraction_prompt_template (line 80) | def get_extraction_prompt_template() -> str: function get_table_selection_prompt_template (line 93) | def get_table_selection_prompt_template() -> str: function get_text2sql_prompt_template (line 105) | def get_text2sql_prompt_template() -> str: function get_visualization_prompt_template (line 119) | def get_visualization_prompt_template() -> str: function get_summary_prompt_template (line 128) | def get_summary_prompt_template() -> str: function get_text2sql_dialect_prompt_template (line 137) | def get_text2sql_dialect_prompt_template(dialect: str) -> str: function reset_cache (line 148) | def reset_cache(): FILE: openchatbi/text2sql/extraction.py function generate_extraction_prompt (line 17) | def generate_extraction_prompt() -> str: function parse_extracted_info_json (line 31) | def parse_extracted_info_json(llm_answer_content: Any) -> dict[str, Any]: function information_extraction (line 49) | def information_extraction(llm: BaseChatModel) -> Callable: function information_extraction_conditional_edges (line 95) | def information_extraction_conditional_edges(state: SQLGraphState): FILE: openchatbi/text2sql/generate_sql.py function create_sql_nodes (line 34) | def create_sql_nodes( function should_retry_sql (line 354) | def should_retry_sql(state: SQLGraphState) -> str: function should_execute_sql (line 387) | def should_execute_sql(state: SQLGraphState) -> str: FILE: openchatbi/text2sql/schema_linking.py function schema_linking (line 17) | def schema_linking(llm: BaseChatModel, catalog: CatalogStore): FILE: openchatbi/text2sql/sql_graph.py function ask_human (line 23) | def ask_human(state): function should_generate_visualization_or_retry (line 40) | def should_generate_visualization_or_retry(state: SQLGraphState) -> str: function build_sql_graph (line 61) | def build_sql_graph( FILE: openchatbi/text2sql/text2sql_utils.py function init_sql_example_retriever (line 7) | def init_sql_example_retriever(catalog, vector_db_path: str = None): function init_table_selection_example_dict (line 34) | def init_table_selection_example_dict(catalog, vector_db_path: str = None): FILE: openchatbi/text2sql/visualization.py class ChartType (line 15) | class ChartType(Enum): class VisualizationConfig (line 29) | class VisualizationConfig: class VisualizationDSL (line 46) | class VisualizationDSL: method to_dict (line 54) | def to_dict(self) -> dict[str, Any]: class VisualizationService (line 64) | class VisualizationService: method __init__ (line 79) | def __init__(self, llm: BaseChatModel | None = None): method _get_chart_type_by_rule (line 87) | def _get_chart_type_by_rule(self, question: str, schema_info: dict[str... method generate_visualization_dsl (line 129) | def generate_visualization_dsl( method _llm_recommend_chart_type (line 246) | def _llm_recommend_chart_type(self, question: str, schema_info: dict[s... method generate_visualization (line 278) | def generate_visualization( FILE: openchatbi/text_segmenter.py class TextSegmenter (line 19) | class TextSegmenter: method __init__ (line 30) | def __init__(self, use_jieba: bool = True): method _contains_chinese (line 47) | def _contains_chinese(text: str) -> bool: method _simple_cut (line 58) | def _simple_cut(self, text: str) -> list[str]: method cut (line 74) | def cut(self, text: str) -> list[str]: class SimpleSegmenter (line 97) | class SimpleSegmenter: method __init__ (line 107) | def __init__(self): method cut (line 114) | def cut(self, text: str) -> list[str]: FILE: openchatbi/tool/ask_human.py class AskHuman (line 6) | class AskHuman(BaseModel): FILE: openchatbi/tool/mcp_tools.py function make_tool_sync_compatible (line 21) | def make_tool_sync_compatible(tool: StructuredTool, timeout: int) -> Str... class MCPServerConfig (line 81) | class MCPServerConfig(BaseModel): function create_mcp_tools_async (line 101) | async def create_mcp_tools_async(server_configs: list[dict[str, Any]]) -... function create_mcp_tools_sync (line 195) | def create_mcp_tools_sync(server_configs: list[dict[str, Any]]) -> list[... function get_mcp_tools_async (line 237) | async def get_mcp_tools_async(server_configs: list[dict[str, Any]]) -> l... function reset_mcp_tools_cache (line 254) | def reset_mcp_tools_cache() -> None: FILE: openchatbi/tool/memory.py class UserProfile (line 39) | class UserProfile(BaseModel): function get_sync_memory_store (line 48) | def get_sync_memory_store() -> SqliteStore | None: function get_async_memory_store (line 72) | async def get_async_memory_store() -> AsyncSqliteStore | None: function cleanup_async_memory_store (line 92) | async def cleanup_async_memory_store() -> None: function setup_async_memory_store (line 105) | async def setup_async_memory_store() -> Any: function fix_schema_for_openai (line 110) | def fix_schema_for_openai(schema: dict) -> None: function get_memory_manager (line 130) | def get_memory_manager() -> Any: class StructuredToolWithRequired (line 142) | class StructuredToolWithRequired(StructuredTool): method __init__ (line 143) | def __init__(self, orig_tool: StructuredTool): method tool_call_schema (line 154) | def tool_call_schema(self) -> "ArgsSchema": function get_memory_tools (line 166) | def get_memory_tools( function get_async_memory_tools (line 188) | async def get_async_memory_tools(llm: BaseChatModel) -> list[StructuredT... FILE: openchatbi/tool/run_python_code.py class PythonCodeInput (line 13) | class PythonCodeInput(BaseModel): function _create_executor (line 18) | def _create_executor(): function run_python_code (line 51) | def run_python_code(reasoning: str, code: str) -> str: FILE: openchatbi/tool/save_report.py class SaveReportInput (line 13) | class SaveReportInput(BaseModel): function save_report (line 22) | def save_report(content: str, title: str, file_format: str = "md") -> str: FILE: openchatbi/tool/search_knowledge.py class SearchInput (line 11) | class SearchInput(BaseModel): function search_knowledge (line 27) | def search_knowledge( class ShowSchemaInput (line 42) | class ShowSchemaInput(BaseModel): function show_schema (line 50) | def show_schema(reasoning: str, tables: list[str]) -> list[str]: function search_column_from_catalog (line 60) | def search_column_from_catalog(query_list: list[str], with_table_list: b... function list_table_from_catalog (line 70) | def list_table_from_catalog(tables: list[str]) -> list[str]: function render_column_result (line 92) | def render_column_result(column_list: list[str], with_table_list: bool =... FILE: openchatbi/tool/timeseries_forecast.py class TimeseriesForecastInput (line 16) | class TimeseriesForecastInput(BaseModel): function _check_service_health (line 35) | def _check_service_health(service_url: str) -> bool: function check_forecast_service_health (line 47) | def check_forecast_service_health() -> bool: function _call_timeseries_service (line 56) | def _call_timeseries_service( function _format_forecast_result (line 95) | def _format_forecast_result(result: dict[str, Any], reasoning: str, inpu... function timeseries_forecast (line 151) | def timeseries_forecast( FILE: openchatbi/utils.py function log (line 22) | def log(args) -> None: function get_text_from_content (line 27) | def get_text_from_content(content: str | list[str | dict]) -> str: function get_text_from_message_chunk (line 46) | def get_text_from_message_chunk(chunk: AIMessageChunk) -> str: function extract_json_from_answer (line 60) | def extract_json_from_answer(answer: str) -> dict: function get_report_download_response (line 75) | def get_report_download_response(filename: str) -> FileResponse: function _create_chroma_from_texts (line 129) | def _create_chroma_from_texts( function create_vector_db (line 148) | def create_vector_db( function recover_incomplete_tool_calls (line 223) | def recover_incomplete_tool_calls(state: AgentState) -> list: class SimpleStore (line 313) | class SimpleStore(VectorStore): method __init__ (line 316) | def __init__( method _tokenize (line 344) | def _tokenize(self, text: str) -> list[str]: method similarity_search (line 355) | def similarity_search(self, query: str, k: int = 4, **kwargs: Any) -> ... method similarity_search_with_score (line 382) | def similarity_search_with_score(self, query: str, k: int = 4, **kwarg... method _select_relevance_score_fn (line 409) | def _select_relevance_score_fn(self): method add_texts (line 416) | def add_texts( method delete (line 460) | def delete(self, ids: list[str] | None = None, **kwargs: Any) -> bool ... method get_by_ids (line 495) | def get_by_ids(self, ids: list[str], /) -> list[Document]: method from_texts (line 508) | def from_texts( method max_marginal_relevance_search (line 531) | def max_marginal_relevance_search( method _calculate_similarity (line 611) | def _calculate_similarity(self, doc1: Document, doc2: Document) -> float: FILE: run_streamlit_ui.py function main (line 16) | def main(): FILE: run_tests.py function run_command (line 9) | def run_command(cmd, description): function main (line 34) | def main(): FILE: sample_api/async_api.py function get_or_build_graph (line 25) | async def get_or_build_graph(provider: str | None): function lifespan (line 38) | async def lifespan(app: FastAPI): class UserRequest (line 50) | class UserRequest(BaseModel): function chat_stream (line 60) | async def chat_stream(req: UserRequest): function get_user_memories (line 96) | async def get_user_memories(user_id: str): function download_report (line 140) | async def download_report(filename: str): FILE: sample_ui/async_graph_manager.py class AsyncGraphManager (line 13) | class AsyncGraphManager: method __init__ (line 16) | def __init__(self): method initialize (line 24) | async def initialize(self): method get_graph (line 52) | async def get_graph(self, llm_provider: str | None = None): method cleanup (line 71) | async def cleanup(self): FILE: sample_ui/memory_ui.py function get_thread_memory_store (line 13) | def get_thread_memory_store() -> Any: function list_all_memories (line 33) | def list_all_memories() -> list[dict[str, Any]]: function format_memories_for_display (line 67) | def format_memories_for_display(memories: list[dict[str, Any]]) -> str: function refresh_memories (line 111) | def refresh_memories() -> list[list[str]]: function delete_memory_by_key (line 117) | def delete_memory_by_key(namespace_str: str, key: str) -> str: FILE: sample_ui/plotly_utils.py function create_plotly_chart (line 11) | def create_plotly_chart(data_csv: str, visualization_dsl: dict[str, Any]... function create_line_chart (line 60) | def create_line_chart(df: pd.DataFrame, config: dict[str, Any], layout: ... function create_bar_chart (line 94) | def create_bar_chart(df: pd.DataFrame, config: dict[str, Any], layout: d... function create_pie_chart (line 123) | def create_pie_chart(df: pd.DataFrame, config: dict[str, Any], layout: d... function create_scatter_chart (line 136) | def create_scatter_chart(df: pd.DataFrame, config: dict[str, Any], layou... function create_histogram_chart (line 149) | def create_histogram_chart(df: pd.DataFrame, config: dict[str, Any], lay... function create_box_chart (line 162) | def create_box_chart(df: pd.DataFrame, config: dict[str, Any], layout: d... function create_table_chart (line 179) | def create_table_chart(df: pd.DataFrame, config: dict[str, Any], layout:... function create_empty_chart (line 203) | def create_empty_chart(message: str) -> go.Figure: function visualization_dsl_to_gradio_plot (line 225) | def visualization_dsl_to_gradio_plot(data_csv: str, visualization_dsl: d... function create_inline_chart_markdown (line 247) | def create_inline_chart_markdown(data_csv: str, visualization_dsl: dict[... FILE: sample_ui/simple_ui.py function chat_fn (line 32) | def chat_fn(message: str, history: list[tuple[str, str]], user_id: str =... function respond (line 77) | def respond( function download_report (line 90) | def download_report(filename: str): FILE: sample_ui/streaming_ui.py function lifespan (line 38) | async def lifespan(app: FastAPI): function get_or_create_event_loop (line 54) | def get_or_create_event_loop(): function _async_respond_helper (line 65) | async def _async_respond_helper(message, chat_history, user_id, session_... function respond (line 175) | def respond(message, chat_history, user_id, session_id="default"): function list_user_memories (line 209) | def list_user_memories(user_id: str) -> str: function show_chart_panel (line 325) | def show_chart_panel(): function hide_chart_panel (line 329) | def hide_chart_panel(): function download_report (line 359) | async def download_report(filename: str): FILE: sample_ui/streamlit_ui.py function process_user_message_stream (line 42) | async def process_user_message_stream( function get_available_reports (line 233) | def get_available_reports() -> list[str]: function get_report_file_content (line 255) | def get_report_file_content(filename: str) -> tuple[bytes | None, str | ... function process_download_links (line 303) | def process_download_links(content: str) -> str: function render_content_with_downloads (line 335) | def render_content_with_downloads(content: str) -> None: function display_message_with_thinking (line 365) | def display_message_with_thinking( function cleanup_session (line 544) | def cleanup_session(): FILE: tests/conftest.py function test_config (line 20) | def test_config() -> dict[str, Any]: function temp_dir (line 35) | def temp_dir() -> Generator[Path, None, None]: function mock_llm (line 42) | def mock_llm() -> FakeListChatModel: function sample_agent_state (line 50) | def sample_agent_state() -> AgentState: function mock_catalog_store (line 61) | def mock_catalog_store(temp_dir: Path) -> FileSystemCatalogStore: function mock_database_engine (line 113) | def mock_database_engine(): function sample_table_info (line 127) | def sample_table_info() -> dict[str, Any]: function sample_messages (line 142) | def sample_messages() -> list: function reset_config_loader (line 152) | def reset_config_loader(): function mock_config (line 164) | def mock_config(): function setup_test_env (line 186) | def setup_test_env(monkeypatch, temp_dir): class MockTokenService (line 192) | class MockTokenService: method __init__ (line 195) | def __init__(self): method get_token (line 198) | def get_token(self) -> str: function mock_token_service (line 203) | def mock_token_service() -> MockTokenService: function sample_sql_examples (line 209) | def sample_sql_examples() -> list: function mock_presto_connection (line 222) | def mock_presto_connection(): FILE: tests/context_management/conftest.py function mock_llm (line 12) | def mock_llm(): function mock_llm_with_summary_response (line 20) | def mock_llm_with_summary_response(): function standard_config (line 28) | def standard_config(): function minimal_config (line 44) | def minimal_config(): function disabled_config (line 57) | def disabled_config(): function sample_conversation (line 65) | def sample_conversation(): function large_sql_output (line 85) | def large_sql_output(): function large_python_output (line 107) | def large_python_output(): function error_output (line 119) | def error_output(): function pytest_configure (line 132) | def pytest_configure(config): function pytest_collection_modifyitems (line 138) | def pytest_collection_modifyitems(config, items): FILE: tests/context_management/test_agent_graph_integration.py class TestAgentGraphIntegration (line 15) | class TestAgentGraphIntegration: method mock_catalog (line 19) | def mock_catalog(self): method mock_llm (line 26) | def mock_llm(self): method mock_tools (line 33) | def mock_tools(self): method test_config (line 43) | def test_config(self): method test_agent_llm_node_with_context_manager (line 52) | def test_agent_llm_node_with_context_manager(self, mock_llm, mock_tool... method test_agent_llm_node_without_context_manager (line 76) | def test_agent_llm_node_without_context_manager(self, mock_llm, mock_t... method test_build_graph_core_with_context_management (line 88) | def test_build_graph_core_with_context_management(self, mock_catalog, ... method test_build_graph_core_without_context_management (line 135) | def test_build_graph_core_without_context_management(self, mock_catalo... method test_build_agent_graph_sync_with_context_management (line 180) | def test_build_agent_graph_sync_with_context_management(self, mock_cat... method test_build_agent_graph_async_with_context_management (line 201) | async def test_build_agent_graph_async_with_context_management(self, m... method test_full_context_management_flow (line 223) | def test_full_context_management_flow(self, mock_llm_call, mock_catalog): class TestContextManagementEdgeCases (line 264) | class TestContextManagementEdgeCases: method test_empty_message_handling (line 267) | def test_empty_message_handling(self): method test_state_message_type_validation (line 277) | def test_state_message_type_validation(self): method test_context_management_with_tool_calls (line 299) | def test_context_management_with_tool_calls(self): method test_summarization_failure_fallback (line 320) | def test_summarization_failure_fallback(self, mock_llm_call): FILE: tests/context_management/test_context_config.py class TestContextConfig (line 6) | class TestContextConfig: method test_default_config_values (line 9) | def test_default_config_values(self): method test_custom_config_values (line 27) | def test_custom_config_values(self): method test_config_validation_logic (line 47) | def test_config_validation_logic(self): method test_get_context_config (line 63) | def test_get_context_config(self): method test_update_context_config_single_value (line 68) | def test_update_context_config_single_value(self): method test_update_context_config_multiple_values (line 78) | def test_update_context_config_multiple_values(self): method test_update_context_config_invalid_attribute (line 92) | def test_update_context_config_invalid_attribute(self): method test_update_context_config_returns_copy (line 98) | def test_update_context_config_returns_copy(self): class TestContextConfigPresets (line 108) | class TestContextConfigPresets: method test_minimal_context_config (line 111) | def test_minimal_context_config(self): method test_aggressive_compression_config (line 124) | def test_aggressive_compression_config(self): method test_development_debug_config (line 142) | def test_development_debug_config(self): method test_production_optimized_config (line 154) | def test_production_optimized_config(self): class TestContextConfigEdgeCases (line 171) | class TestContextConfigEdgeCases: method test_zero_values (line 174) | def test_zero_values(self): method test_very_large_values (line 187) | def test_very_large_values(self): method test_inconsistent_token_limits (line 197) | def test_inconsistent_token_limits(self): method test_all_features_disabled (line 202) | def test_all_features_disabled(self): method test_config_serialization (line 214) | def test_config_serialization(self): method test_config_immutability_simulation (line 229) | def test_config_immutability_simulation(self): method test_realistic_configuration_scenarios (line 238) | def test_realistic_configuration_scenarios(self): FILE: tests/context_management/test_context_manager.py class TestContextManager (line 12) | class TestContextManager: method mock_llm (line 16) | def mock_llm(self): method default_config (line 25) | def default_config(self): method context_manager (line 39) | def context_manager(self, mock_llm, default_config): method test_token_estimation (line 43) | def test_token_estimation(self, context_manager): method test_message_token_estimation (line 53) | def test_message_token_estimation(self, context_manager): method test_trim_short_tool_output (line 66) | def test_trim_short_tool_output(self, context_manager): method test_trim_long_generic_output (line 72) | def test_trim_long_generic_output(self, context_manager): method test_trim_sql_output (line 82) | def test_trim_sql_output(self, context_manager): method test_trim_code_output (line 113) | def test_trim_code_output(self, context_manager): method test_preserve_error_output (line 122) | def test_preserve_error_output(self, context_manager): method test_conversation_summary_disabled (line 140) | def test_conversation_summary_disabled(self, context_manager): method test_conversation_summary_success (line 149) | def test_conversation_summary_success(self, mock_llm_call, context_man... method test_conversation_summary_failure (line 170) | def test_conversation_summary_failure(self, mock_llm_call, context_man... method test_manage_context_disabled (line 187) | def test_manage_context_disabled(self, context_manager): method test_manage_context_empty_messages (line 196) | def test_manage_context_empty_messages(self, context_manager): method test_manage_context_tool_message_trimming (line 203) | def test_manage_context_tool_message_trimming(self, context_manager): method test_manage_context_with_summarization (line 227) | def test_manage_context_with_summarization(self, mock_llm_call, contex... method test_format_messages_for_summary (line 256) | def test_format_messages_for_summary(self, context_manager): method test_format_long_ai_message_for_summary (line 272) | def test_format_long_ai_message_for_summary(self, context_manager): function sample_sql_output (line 288) | def sample_sql_output(): function sample_error_output (line 318) | def sample_error_output(): FILE: tests/context_management/test_edge_cases.py class TestContextManagementEdgeCases (line 12) | class TestContextManagementEdgeCases: method edge_case_config (line 16) | def edge_case_config(self): method context_manager (line 26) | def context_manager(self, edge_case_config): method test_empty_and_none_inputs (line 30) | def test_empty_and_none_inputs(self, context_manager): method test_malformed_messages (line 45) | def test_malformed_messages(self, context_manager): method test_extremely_long_single_message (line 59) | def test_extremely_long_single_message(self, context_manager): method test_tool_message_without_tool_call_id (line 73) | def test_tool_message_without_tool_call_id(self, context_manager): method test_circular_references_in_content (line 86) | def test_circular_references_in_content(self, context_manager): method test_zero_configuration_values (line 109) | def test_zero_configuration_values(self): method test_negative_configuration_values (line 126) | def test_negative_configuration_values(self): method test_unicode_and_encoding_edge_cases (line 143) | def test_unicode_and_encoding_edge_cases(self, context_manager): method test_extremely_nested_or_complex_structures (line 162) | def test_extremely_nested_or_complex_structures(self, context_manager): method test_sql_output_edge_cases (line 183) | def test_sql_output_edge_cases(self, context_manager): method test_conversation_state_consistency (line 227) | def test_conversation_state_consistency(self, context_manager): FILE: tests/context_management/test_runner.py function run_tests (line 9) | def run_tests(test_type="all", verbose=False, coverage=False): function main (line 72) | def main(): FILE: tests/context_management/test_state_operations.py class TestMessageBasedContextManagement (line 12) | class TestMessageBasedContextManagement: method test_config (line 16) | def test_config(self): method context_manager (line 28) | def context_manager(self, test_config): method test_no_operations_when_disabled (line 33) | def test_no_operations_when_disabled(self, context_manager): method test_no_operations_when_under_limit (line 43) | def test_no_operations_when_under_limit(self, context_manager): method test_historical_tool_compression (line 52) | def test_historical_tool_compression(self, context_manager): method test_error_message_preservation (line 89) | def test_error_message_preservation(self, context_manager): method test_sql_content_preservation (line 113) | def test_sql_content_preservation(self, context_manager): method test_conversation_summarization (line 147) | def test_conversation_summarization(self, mock_llm_call, context_manag... method test_content_type_detection (line 183) | def test_content_type_detection(self, context_manager): method test_should_compress_logic (line 216) | def test_should_compress_logic(self, context_manager): method test_recent_messages_always_preserved (line 237) | def test_recent_messages_always_preserved(self, context_manager): method test_message_order_preservation (line 270) | def test_message_order_preservation(self, context_manager): FILE: tests/test_catalog_loader.py class TestDataCatalogLoader (line 10) | class TestDataCatalogLoader: method mock_engine (line 14) | def mock_engine(self): method test_catalog_loader_initialization (line 19) | def test_catalog_loader_initialization(self, mock_engine): method test_catalog_loader_without_include_tables (line 29) | def test_catalog_loader_without_include_tables(self, mock_engine): method test_get_tables_and_columns (line 37) | def test_get_tables_and_columns(self, mock_engine): method test_get_table_indexes (line 54) | def test_get_table_indexes(self, mock_engine): method test_get_foreign_keys (line 66) | def test_get_foreign_keys(self, mock_engine): method test_save_to_catalog_store_success (line 80) | def test_save_to_catalog_store_success(self, mock_engine): method test_save_to_catalog_store_failure (line 103) | def test_save_to_catalog_store_failure(self, mock_engine): method test_load_catalog_from_data_warehouse (line 118) | def test_load_catalog_from_data_warehouse(self): method test_error_handling_in_get_tables_and_columns (line 138) | def test_error_handling_in_get_tables_and_columns(self, mock_engine): FILE: tests/test_catalog_store.py class TestCatalogStore (line 9) | class TestCatalogStore: method test_catalog_store_is_abstract (line 12) | def test_catalog_store_is_abstract(self): method test_catalog_store_interface_methods (line 17) | def test_catalog_store_interface_methods(self): class TestFileSystemCatalogStore (line 28) | class TestFileSystemCatalogStore: method test_filesystem_store_initialization (line 31) | def test_filesystem_store_initialization(self, temp_dir): method test_get_tables_from_csv (line 40) | def test_get_tables_from_csv(self, mock_catalog_store): method test_get_columns_from_csv (line 47) | def test_get_columns_from_csv(self, mock_catalog_store): method test_get_table_info (line 57) | def test_get_table_info(self, mock_catalog_store): method test_get_tables_file_not_found (line 63) | def test_get_tables_file_not_found(self, temp_dir): method test_get_columns_file_not_found (line 75) | def test_get_columns_file_not_found(self, temp_dir): method test_get_tables_malformed_csv (line 87) | def test_get_tables_malformed_csv(self, temp_dir): method test_get_tables_pandas_error (line 100) | def test_get_tables_pandas_error(self, temp_dir): method test_get_table_schema (line 109) | def test_get_table_schema(self, mock_catalog_store): method test_search_tables (line 116) | def test_search_tables(self, mock_catalog_store): method test_get_all_table_names (line 124) | def test_get_all_table_names(self, mock_catalog_store): method test_case_insensitive_table_lookup (line 133) | def test_case_insensitive_table_lookup(self, mock_catalog_store): method test_data_path_validation (line 142) | def test_data_path_validation(self): method test_concurrent_access (line 153) | def test_concurrent_access(self, mock_catalog_store): FILE: tests/test_config_loader.py class TestConfigLoader (line 11) | class TestConfigLoader: method test_config_initialization (line 14) | def test_config_initialization(self): method test_config_from_dict (line 27) | def test_config_from_dict(self): method test_config_loader_initialization (line 46) | def test_config_loader_initialization(self): method test_load_config_from_file (line 52) | def test_load_config_from_file(self, temp_dir): method test_load_config_missing_file (line 91) | def test_load_config_missing_file(self): method test_load_config_invalid_yaml (line 105) | def test_load_config_invalid_yaml(self, temp_dir): method test_load_config_with_bi_config_file (line 115) | def test_load_config_with_bi_config_file(self, temp_dir): method test_load_config_with_catalog_store (line 155) | def test_load_config_with_catalog_store(self, temp_dir): method test_load_config_with_llm_configs (line 190) | def test_load_config_with_llm_configs(self, temp_dir): method test_load_config_with_llm_providers_selected_by_default_llm (line 229) | def test_load_config_with_llm_providers_selected_by_default_llm(self, ... method test_set_config (line 278) | def test_set_config(self): method test_get_config_not_loaded (line 308) | def test_get_config_not_loaded(self): method test_load_bi_config_missing_file (line 316) | def test_load_bi_config_missing_file(self, temp_dir): method test_catalog_store_missing_store_type (line 326) | def test_catalog_store_missing_store_type(self, temp_dir): FILE: tests/test_graph_state.py class TestAgentState (line 8) | class TestAgentState: method test_agent_state_with_data (line 11) | def test_agent_state_with_data(self): method test_agent_state_message_types (line 25) | def test_agent_state_message_types(self): method test_agent_state_immutability (line 40) | def test_agent_state_immutability(self): class TestInputState (line 68) | class TestInputState: method test_input_state_creation (line 71) | def test_input_state_creation(self): method test_input_state_empty_messages (line 79) | def test_input_state_empty_messages(self): class TestOutputState (line 86) | class TestOutputState: method test_output_state_creation (line 89) | def test_output_state_creation(self): method test_output_state_with_multiple_messages (line 97) | def test_output_state_with_multiple_messages(self): class TestStateIntegration (line 112) | class TestStateIntegration: method test_input_to_agent_state_conversion (line 115) | def test_input_to_agent_state_conversion(self): method test_agent_to_output_state_conversion (line 126) | def test_agent_to_output_state_conversion(self): method test_state_serialization_compatibility (line 142) | def test_state_serialization_compatibility(self): FILE: tests/test_incomplete_tool_calls.py class TestIncompleteToolCallRecovery (line 12) | class TestIncompleteToolCallRecovery: method test_no_messages (line 15) | def test_no_messages(self): method test_no_tool_calls (line 21) | def test_no_tool_calls(self): method test_complete_tool_calls (line 28) | def test_complete_tool_calls(self): method test_incomplete_single_tool_call (line 42) | def test_incomplete_single_tool_call(self): method test_incomplete_multiple_tool_calls (line 61) | def test_incomplete_multiple_tool_calls(self): method test_partial_incomplete_tool_calls (line 88) | def test_partial_incomplete_tool_calls(self): method test_multiple_ai_messages_with_tool_calls (line 124) | def test_multiple_ai_messages_with_tool_calls(self): method test_llm_node_integration_with_recovery (line 145) | def test_llm_node_integration_with_recovery(self): FILE: tests/test_memory.py class TestUserProfile (line 27) | class TestUserProfile: method test_user_profile_basic_initialization (line 30) | def test_user_profile_basic_initialization(self): method test_user_profile_optional_fields (line 39) | def test_user_profile_optional_fields(self): method test_user_profile_partial_initialization (line 48) | def test_user_profile_partial_initialization(self): method test_user_profile_serialization (line 57) | def test_user_profile_serialization(self): class TestMemoryStoreManagement (line 68) | class TestMemoryStoreManagement: method setup_test_env (line 72) | def setup_test_env(self, tmp_path: Path): method test_get_sync_memory_store (line 84) | def test_get_sync_memory_store(self, mock_config, mock_connect): method test_get_async_memory_store (line 104) | async def test_get_async_memory_store(self, mock_config, mock_from_con... method test_cleanup_async_memory_store (line 123) | async def test_cleanup_async_memory_store(self, mock_context_manager): method test_setup_async_memory_store (line 133) | async def test_setup_async_memory_store(self, mock_get_store): class TestMemoryTools (line 144) | class TestMemoryTools: method test_get_memory_tools_sync_mode (line 150) | def test_get_memory_tools_sync_mode(self, mock_get_store, mock_search_... method test_get_memory_tools_with_openai_llm (line 172) | def test_get_memory_tools_with_openai_llm(self, mock_config, mock_sear... method test_get_async_memory_tools (line 198) | async def test_get_async_memory_tools(self, mock_config, mock_get_tool... class TestMemoryManager (line 217) | class TestMemoryManager: method test_get_memory_manager (line 222) | def test_get_memory_manager(self, mock_config, mock_create_manager): method test_get_memory_manager_singleton (line 242) | def test_get_memory_manager_singleton(self, mock_config, mock_create_m... class TestSchemaFixer (line 257) | class TestSchemaFixer: method test_fix_schema_for_openai_basic (line 260) | def test_fix_schema_for_openai_basic(self): method test_fix_schema_for_openai_nested_object (line 268) | def test_fix_schema_for_openai_nested_object(self): method test_fix_schema_for_openai_with_arrays (line 281) | def test_fix_schema_for_openai_with_arrays(self): class TestStructuredToolWithRequired (line 291) | class TestStructuredToolWithRequired: method test_structured_tool_with_required_initialization (line 294) | def test_structured_tool_with_required_initialization(self): method test_tool_call_schema_property (line 312) | def test_tool_call_schema_property(self): FILE: tests/test_plotly_utils.py function sample_csv_data (line 14) | def sample_csv_data(): function sample_line_dsl (line 26) | def sample_line_dsl(): function sample_bar_dsl (line 37) | def sample_bar_dsl(): function sample_pie_dsl (line 48) | def sample_pie_dsl(): class TestPlotlyChartCreation (line 58) | class TestPlotlyChartCreation: method test_create_line_chart_success (line 61) | def test_create_line_chart_success(self, sample_csv_data, sample_line_... method test_create_line_chart_with_color (line 69) | def test_create_line_chart_with_color(self, sample_csv_data): method test_create_line_chart_with_multiple_y_columns (line 84) | def test_create_line_chart_with_multiple_y_columns(self): method test_create_bar_chart_success (line 104) | def test_create_bar_chart_success(self, sample_csv_data, sample_bar_dsl): method test_create_pie_chart_success (line 112) | def test_create_pie_chart_success(self, sample_csv_data, sample_pie_dsl): method test_create_scatter_chart (line 120) | def test_create_scatter_chart(self, sample_csv_data): method test_create_histogram_chart (line 134) | def test_create_histogram_chart(self, sample_csv_data): method test_create_box_chart (line 148) | def test_create_box_chart(self, sample_csv_data): method test_create_table_chart (line 162) | def test_create_table_chart(self, sample_csv_data): class TestErrorHandling (line 178) | class TestErrorHandling: method test_empty_data (line 181) | def test_empty_data(self): method test_invalid_csv_data (line 188) | def test_invalid_csv_data(self, sample_bar_dsl): method test_missing_columns (line 197) | def test_missing_columns(self, sample_csv_data): method test_unsupported_chart_type (line 211) | def test_unsupported_chart_type(self, sample_csv_data): method test_visualization_dsl_error (line 220) | def test_visualization_dsl_error(self): class TestVisualizationDslToGradioPlot (line 230) | class TestVisualizationDslToGradioPlot: method test_successful_conversion (line 233) | def test_successful_conversion(self, sample_csv_data, sample_line_dsl): method test_empty_dsl (line 242) | def test_empty_dsl(self, sample_csv_data): method test_no_data (line 250) | def test_no_data(self, sample_line_dsl): class TestCreateEmptyChart (line 258) | class TestCreateEmptyChart: method test_create_empty_chart (line 261) | def test_create_empty_chart(self): function sample_time_series_data (line 274) | def sample_time_series_data(): class TestIntegrationScenarios (line 284) | class TestIntegrationScenarios: method test_sales_dashboard_scenario (line 287) | def test_sales_dashboard_scenario(self, sample_csv_data): method test_time_series_scenario (line 305) | def test_time_series_scenario(self, sample_time_series_data): method test_multiple_metrics_scenario (line 320) | def test_multiple_metrics_scenario(self, sample_time_series_data): FILE: tests/test_simple_store.py class TestSimpleStore (line 8) | class TestSimpleStore: method sample_texts (line 12) | def sample_texts(self): method sample_metadatas (line 22) | def sample_metadatas(self): method simple_store (line 32) | def simple_store(self, sample_texts): method test_initialization_basic (line 36) | def test_initialization_basic(self, sample_texts): method test_initialization_with_metadata_and_ids (line 45) | def test_initialization_with_metadata_and_ids(self, sample_texts, samp... method test_similarity_search (line 59) | def test_similarity_search(self, simple_store): method test_similarity_search_with_score (line 71) | def test_similarity_search_with_score(self, simple_store): method test_empty_store (line 86) | def test_empty_store(self): method test_add_texts (line 94) | def test_add_texts(self, simple_store): method test_delete (line 117) | def test_delete(self): method test_get_by_ids (line 144) | def test_get_by_ids(self, sample_texts): method test_from_texts (line 163) | def test_from_texts(self, sample_texts, sample_metadatas): method test_as_retriever (line 173) | def test_as_retriever(self, simple_store): method test_chinese_and_mixed_language (line 181) | def test_chinese_and_mixed_language(self): method test_max_marginal_relevance_search (line 211) | def test_max_marginal_relevance_search(self, simple_store): method test_calculate_similarity (line 245) | def test_calculate_similarity(self, simple_store): FILE: tests/test_text2sql_extraction.py class TestText2SQLExtraction (line 18) | class TestText2SQLExtraction: method test_generate_extraction_prompt (line 21) | def test_generate_extraction_prompt(self): method test_parse_extracted_info_json_valid (line 33) | def test_parse_extracted_info_json_valid(self): method test_parse_extracted_info_json_invalid (line 53) | def test_parse_extracted_info_json_invalid(self): method test_information_extraction_function_creation (line 63) | def test_information_extraction_function_creation(self): method test_information_extraction_successful (line 72) | def test_information_extraction_successful(self): method test_information_extraction_empty_response (line 100) | def test_information_extraction_empty_response(self): method test_information_extraction_conditional_edges_success (line 118) | def test_information_extraction_conditional_edges_success(self): method test_information_extraction_conditional_edges_failure (line 132) | def test_information_extraction_conditional_edges_failure(self): method test_information_extraction_conditional_edges_missing (line 143) | def test_information_extraction_conditional_edges_missing(self): method test_information_extraction_with_retry_on_failure (line 152) | def test_information_extraction_with_retry_on_failure(self): method test_information_extraction_time_period_detection (line 178) | def test_information_extraction_time_period_detection(self): method test_information_extraction_error_handling (line 206) | def test_information_extraction_error_handling(self): FILE: tests/test_text2sql_generate_sql.py class TestText2SQLGenerateSQL (line 12) | class TestText2SQLGenerateSQL: method mock_llm (line 16) | def mock_llm(self): method mock_catalog (line 23) | def mock_catalog(self): method test_create_sql_nodes (line 60) | def test_create_sql_nodes(self, mock_llm, mock_catalog): method test_generate_sql_node_success (line 71) | def test_generate_sql_node_success(self, mock_llm, mock_catalog): method test_generate_sql_node_missing_rewrite_question (line 90) | def test_generate_sql_node_missing_rewrite_question(self, mock_llm, mo... method test_generate_sql_node_missing_tables (line 103) | def test_generate_sql_node_missing_tables(self, mock_llm, mock_catalog): method test_execute_sql_node_success (line 114) | def test_execute_sql_node_success(self, mock_llm, mock_catalog): method test_execute_sql_node_empty_sql (line 128) | def test_execute_sql_node_empty_sql(self, mock_llm, mock_catalog): method test_execute_sql_node_syntax_error (line 141) | def test_execute_sql_node_syntax_error(self, mock_llm, mock_catalog): method test_regenerate_sql_node_success (line 162) | def test_regenerate_sql_node_success(self, mock_llm, mock_catalog): method test_should_retry_sql_success (line 186) | def test_should_retry_sql_success(self): method test_should_retry_sql_timeout (line 196) | def test_should_retry_sql_timeout(self): method test_should_retry_sql_retry_needed (line 206) | def test_should_retry_sql_retry_needed(self): method test_should_retry_sql_max_retries_reached (line 213) | def test_should_retry_sql_max_retries_reached(self): method test_should_execute_sql_with_sql (line 220) | def test_should_execute_sql_with_sql(self): method test_should_execute_sql_without_sql (line 227) | def test_should_execute_sql_without_sql(self): method test_sql_generation_with_examples (line 234) | def test_sql_generation_with_examples(self, mock_llm, mock_catalog): method test_sql_error_handling_database_error (line 260) | def test_sql_error_handling_database_error(self, mock_llm, mock_catalog): method test_regenerate_sql_empty_response (line 280) | def test_regenerate_sql_empty_response(self, mock_llm, mock_catalog): FILE: tests/test_text2sql_schema_linking.py class TestText2SQLSchemaLinking (line 12) | class TestText2SQLSchemaLinking: method mock_llm (line 16) | def mock_llm(self): method mock_catalog (line 23) | def mock_catalog(self): method test_select_table_function_creation (line 32) | def test_select_table_function_creation(self, mock_llm, mock_catalog): method test_select_table_success (line 38) | def test_select_table_success(self, mock_llm, mock_catalog): method test_select_table_missing_rewrite_question (line 98) | def test_select_table_missing_rewrite_question(self, mock_llm, mock_ca... method test_select_table_with_examples (line 111) | def test_select_table_with_examples(self, mock_llm, mock_catalog): method test_select_table_invalid_table_selection (line 168) | def test_select_table_invalid_table_selection(self, mock_llm, mock_cat... method test_select_table_retry_mechanism (line 207) | def test_select_table_retry_mechanism(self, mock_llm, mock_catalog): method test_select_table_with_time_filter (line 249) | def test_select_table_with_time_filter(self, mock_llm, mock_catalog): method test_select_table_llm_error_handling (line 299) | def test_select_table_llm_error_handling(self, mock_llm, mock_catalog): method test_select_table_max_retries_exceeded (line 335) | def test_select_table_max_retries_exceeded(self, mock_llm, mock_catalog): FILE: tests/test_text2sql_visualization.py class TestVisualizationService (line 8) | class TestVisualizationService: method test_generate_visualization_dsl_basic (line 11) | def test_generate_visualization_dsl_basic(self): method test_get_chart_type_by_rule_with_datetime (line 31) | def test_get_chart_type_by_rule_with_datetime(self): method test_generate_visualization_dsl_error_handling (line 47) | def test_generate_visualization_dsl_error_handling(self): method test_get_chart_type_by_rule_line_chart (line 58) | def test_get_chart_type_by_rule_line_chart(self): method test_get_chart_type_by_rule_pie_chart (line 73) | def test_get_chart_type_by_rule_pie_chart(self): method test_get_chart_type_by_rule_bar_chart (line 89) | def test_get_chart_type_by_rule_bar_chart(self): method test_get_chart_type_by_rule_scatter_plot (line 105) | def test_get_chart_type_by_rule_scatter_plot(self): method test_get_chart_type_by_rule_histogram (line 120) | def test_get_chart_type_by_rule_histogram(self): method test_get_chart_type_by_rule_data_based_priority (line 130) | def test_get_chart_type_by_rule_data_based_priority(self): method test_generate_visualization_dsl_line_chart (line 147) | def test_generate_visualization_dsl_line_chart(self): method test_generate_visualization_dsl_bar_chart (line 167) | def test_generate_visualization_dsl_bar_chart(self): method test_generate_visualization_dsl_pie_chart (line 188) | def test_generate_visualization_dsl_pie_chart(self): method test_generate_visualization_dsl_empty_data (line 207) | def test_generate_visualization_dsl_empty_data(self): method test_visualization_config_dataclass (line 224) | def test_visualization_config_dataclass(self): method test_visualization_dsl_to_dict (line 236) | def test_visualization_dsl_to_dict(self): class TestChartType (line 253) | class TestChartType: method test_chart_type_values (line 256) | def test_chart_type_values(self): function sample_csv_data (line 269) | def sample_csv_data(): function sample_time_series_data (line 281) | def sample_time_series_data(): class TestVisualizationIntegration (line 291) | class TestVisualizationIntegration: method test_complete_workflow_line_chart (line 294) | def test_complete_workflow_line_chart(self, sample_time_series_data): method test_complete_workflow_bar_chart (line 319) | def test_complete_workflow_bar_chart(self, sample_csv_data): FILE: tests/test_tools_ask_human.py class TestAskHuman (line 9) | class TestAskHuman: method test_ask_human_basic_initialization (line 12) | def test_ask_human_basic_initialization(self): method test_ask_human_empty_options (line 22) | def test_ask_human_empty_options(self): method test_ask_human_validation_error (line 29) | def test_ask_human_validation_error(self): method test_ask_human_serialization (line 37) | def test_ask_human_serialization(self): FILE: tests/test_tools_run_python_code.py class TestRunPythonCode (line 8) | class TestRunPythonCode: method test_run_python_code_basic (line 11) | def test_run_python_code_basic(self): method test_run_python_code_with_variables (line 25) | def test_run_python_code_with_variables(self): method test_run_python_code_data_analysis (line 44) | def test_run_python_code_data_analysis(self): method test_run_python_code_matplotlib_plot (line 63) | def test_run_python_code_matplotlib_plot(self): method test_run_python_code_syntax_error (line 84) | def test_run_python_code_syntax_error(self): method test_run_python_code_runtime_error (line 99) | def test_run_python_code_runtime_error(self): method test_run_python_code_import_error (line 119) | def test_run_python_code_import_error(self): method test_run_python_code_multiline_output (line 137) | def test_run_python_code_multiline_output(self): method test_run_python_code_with_sql_data (line 156) | def test_run_python_code_with_sql_data(self): method test_run_python_code_empty_code (line 178) | def test_run_python_code_empty_code(self): method test_run_python_code_whitespace_only (line 192) | def test_run_python_code_whitespace_only(self): method test_run_python_code_with_comments (line 206) | def test_run_python_code_with_comments(self): method test_run_python_code_security_restrictions (line 224) | def test_run_python_code_security_restrictions(self): method test_run_python_code_timeout_handling (line 249) | def test_run_python_code_timeout_handling(self): method test_run_python_code_memory_limit (line 268) | def test_run_python_code_memory_limit(self): method test_run_python_code_return_values (line 287) | def test_run_python_code_return_values(self): method test_run_python_code_exception_details (line 311) | def test_run_python_code_exception_details(self): method test_run_python_code_executor_selection (line 332) | def test_run_python_code_executor_selection(self): FILE: tests/test_tools_search_knowledge.py class TestSearchKnowledge (line 10) | class TestSearchKnowledge: method test_search_knowledge_basic (line 13) | def test_search_knowledge_basic(self): method test_search_knowledge_table_matching (line 36) | def test_search_knowledge_table_matching(self): method test_search_knowledge_empty_query (line 58) | def test_search_knowledge_empty_query(self): method test_search_knowledge_no_matches (line 80) | def test_search_knowledge_no_matches(self): method test_search_knowledge_multiple_matches (line 102) | def test_search_knowledge_multiple_matches(self): method test_search_knowledge_with_synonyms (line 125) | def test_search_knowledge_with_synonyms(self): method test_search_knowledge_case_insensitive (line 146) | def test_search_knowledge_case_insensitive(self): method test_search_knowledge_partial_matches (line 167) | def test_search_knowledge_partial_matches(self): method test_search_knowledge_error_handling (line 187) | def test_search_knowledge_error_handling(self): method test_show_schema_basic (line 207) | def test_show_schema_basic(self): method test_show_schema_detailed_info (line 222) | def test_show_schema_detailed_info(self): method test_show_schema_nonexistent_table (line 240) | def test_show_schema_nonexistent_table(self): method test_show_schema_table_error (line 253) | def test_show_schema_table_error(self): method test_show_schema_complex_table (line 264) | def test_show_schema_complex_table(self): method test_search_knowledge_with_metrics (line 280) | def test_search_knowledge_with_metrics(self): method test_search_knowledge_contextual_search (line 302) | def test_search_knowledge_contextual_search(self): method test_search_knowledge_with_aggregations (line 323) | def test_search_knowledge_with_aggregations(self): method test_show_schema_with_examples (line 343) | def test_show_schema_with_examples(self): method test_search_knowledge_performance (line 359) | def test_search_knowledge_performance(self): method test_search_knowledge_special_characters (line 380) | def test_search_knowledge_special_characters(self): method test_search_knowledge_unicode_support (line 400) | def test_search_knowledge_unicode_support(self): method test_knowledge_integration_with_state (line 420) | def test_knowledge_integration_with_state(self): FILE: tests/test_utils.py class TestUtilityFunctions (line 11) | class TestUtilityFunctions: method test_log_function_basic (line 14) | def test_log_function_basic(self): method test_log_function_multiple_messages (line 25) | def test_log_function_multiple_messages(self): method test_log_function_empty_message (line 37) | def test_log_function_empty_message(self): method test_log_function_none_message (line 48) | def test_log_function_none_message(self): method test_log_function_complex_objects (line 59) | def test_log_function_complex_objects(self): method test_log_function_with_exception (line 74) | def test_log_function_with_exception(self): method test_log_function_stderr_error (line 89) | def test_log_function_stderr_error(self, mock_stderr): method test_log_function_unicode_handling (line 97) | def test_log_function_unicode_handling(self): method test_log_function_large_message (line 110) | def test_log_function_large_message(self): method test_log_function_newline_handling (line 123) | def test_log_function_newline_handling(self): method test_log_function_timestamp_format (line 137) | def test_log_function_timestamp_format(self): method test_log_function_concurrent_calls (line 149) | def test_log_function_concurrent_calls(self): FILE: timeseries_forecasting/app.py class ForecastRequest (line 28) | class ForecastRequest(BaseModel): class ForecastResponse (line 42) | class ForecastResponse(BaseModel): class ErrorResponse (line 51) | class ErrorResponse(BaseModel): function startup_event (line 64) | async def startup_event(): function health_check (line 85) | async def health_check(): function ping (line 97) | async def ping(): function predict (line 111) | async def predict(request: ForecastRequest): function model_info (line 157) | async def model_info(): function root (line 171) | async def root(): function http_exception_handler (line 189) | async def http_exception_handler(request: Request, exc: HTTPException): function general_exception_handler (line 198) | async def general_exception_handler(request: Request, exc: Exception): FILE: timeseries_forecasting/model_handler.py class TransformerModelHandler (line 16) | class TransformerModelHandler: method __init__ (line 21) | def __init__(self, model_path: str = "hf_model"): method initialize (line 30) | def initialize(self) -> bool: method preprocess (line 69) | def preprocess( method inference (line 152) | def inference(self, input_tensor: torch.Tensor, metadata: dict[str, An... method postprocess (line 183) | def postprocess(self, output_tensor: torch.Tensor, metadata: dict[str,... method predict (line 222) | def predict( function get_model_handler (line 282) | def get_model_handler() -> TransformerModelHandler: FILE: timeseries_forecasting/test_forecasting.py class TimeseriesForecastingTester (line 12) | class TimeseriesForecastingTester: method __init__ (line 15) | def __init__(self, base_url="http://localhost:8765"): method generate_sample_data (line 21) | def generate_sample_data(self, length=100, frequency="H"): method test_basic_forecasting (line 43) | def test_basic_forecasting(self): method test_structured_data (line 81) | def test_structured_data(self): method test_different_windows (line 125) | def test_different_windows(self): method test_error_handling (line 153) | def test_error_handling(self): method test_health_check (line 184) | def test_health_check(self): method run_all_tests (line 206) | def run_all_tests(self): function main (line 255) | def main():