SYMBOL INDEX (690 symbols across 96 files) FILE: examples/aider_code_generation.py function main (line 32) | def main(): FILE: examples/data/groupchat/fetch_arxiv_gpt4.py function search_arxiv (line 6) | def search_arxiv(query): function parse_response (line 21) | def parse_response(response): function main (line 31) | def main(): FILE: examples/data/groupchat/fetch_latest_gpt4_paper.py function fetch_latest_paper (line 5) | def fetch_latest_paper(): FILE: examples/image_from_gslides_example.py function demo_complete_workflow (line 23) | def demo_complete_workflow(): function demo_backward_compatibility (line 79) | def demo_backward_compatibility(): function demo_error_handling (line 104) | def demo_error_handling(): FILE: examples/key_value_store.py class ObjectInsertionTool (line 10) | class ObjectInsertionTool(MotleyTool): method run (line 11) | def run(self, query: str) -> List[str]: class ObjectFetcherTool (line 29) | class ObjectFetcherTool(MotleyTool): method run (line 30) | def run(self, object_id: str) -> str: FILE: examples/llama_index_output_handler.py function main (line 12) | def main(): FILE: examples/submit_image.py function create_multimodal_messages (line 9) | def create_multimodal_messages(context: dict) -> list[HumanMessage]: FILE: examples/tool_calling_with_memory.py function main (line 10) | def main(): FILE: motleycrew/agents/abstract_parent.py class MotleyAgentAbstractParent (line 10) | class MotleyAgentAbstractParent(Runnable, ABC): method kv_store (line 18) | def kv_store(self) -> dict: method invoke (line 22) | def invoke( method as_tool (line 31) | def as_tool(self, **kwargs) -> Any: FILE: motleycrew/agents/langchain/langchain.py class LangchainMotleyAgent (line 23) | class LangchainMotleyAgent(MotleyAgentParent, LangchainOutputHandlingAge... method __init__ (line 26) | def __init__( method materialize (line 108) | def materialize(self): method _prepare_config (line 177) | def _prepare_config(self, config: RunnableConfig) -> RunnableConfig: method invoke (line 187) | def invoke( method ainvoke (line 208) | async def ainvoke( method from_agent (line 234) | def from_agent( FILE: motleycrew/agents/langchain/legacy_react.py class LegacyReActMotleyAgent (line 41) | class LegacyReActMotleyAgent(LangchainMotleyAgent): method __init__ (line 48) | def __init__( FILE: motleycrew/agents/langchain/tool_calling_react.py function check_variables (line 33) | def check_variables(prompt: ChatPromptTemplate): function render_text_description (line 43) | def render_text_description(tools: list[BaseTool]) -> str: function get_relevant_internal_prompt (line 50) | def get_relevant_internal_prompt( function create_tool_calling_react_agent (line 64) | def create_tool_calling_react_agent( class ReActToolCallingMotleyAgent (line 99) | class ReActToolCallingMotleyAgent(LangchainMotleyAgent): method __init__ (line 107) | def __init__( FILE: motleycrew/agents/langchain/tool_calling_react_prompts.py class ToolCallingReActPrompts (line 14) | class ToolCallingReActPrompts: method __init__ (line 22) | def __init__(self): class ToolCallingReActPromptsForOpenAI (line 47) | class ToolCallingReActPromptsForOpenAI(ToolCallingReActPrompts): class ToolCallingReActPromptsForAnthropic (line 135) | class ToolCallingReActPromptsForAnthropic(ToolCallingReActPrompts): FILE: motleycrew/agents/llama_index/llama_index.py class LlamaIndexMotleyAgent (line 28) | class LlamaIndexMotleyAgent(MotleyAgentParent): method __init__ (line 31) | def __init__( method _propagate_error_step (line 91) | def _propagate_error_step(self, task_id: str, message: str): method _run_step_decorator (line 102) | def _run_step_decorator(self): method materialize (line 152) | def materialize(self): method invoke (line 156) | def invoke( method ainvoke (line 171) | async def ainvoke( method from_agent (line 189) | def from_agent( FILE: motleycrew/agents/llama_index/llama_index_react.py class ReActLlamaIndexMotleyAgent (line 20) | class ReActLlamaIndexMotleyAgent(LlamaIndexMotleyAgent): method __init__ (line 23) | def __init__( FILE: motleycrew/agents/mixins.py class LangchainOutputHandlingAgentMixin (line 17) | class LangchainOutputHandlingAgentMixin: method _create_agent_error_tool (line 25) | def _create_agent_error_tool(self) -> BaseTool: method _create_error_action (line 39) | def _create_error_action(self, message: str, error_message: str) -> Ag... method _is_error_action (line 49) | def _is_error_action(self, action: AgentAction) -> bool: method agent_plan_decorator (line 53) | def agent_plan_decorator(self, func: Callable): method agent_aplan_decorator (line 122) | def agent_aplan_decorator(self, func: Callable): method take_next_step_decorator (line 184) | def take_next_step_decorator(self, func: Callable): method _run_tool_direct_decorator (line 232) | def _run_tool_direct_decorator(self, func: Callable): method run_tool_direct_decorator (line 251) | def run_tool_direct_decorator(self, func: Callable): FILE: motleycrew/agents/parent.py class MotleyAgentParent (line 24) | class MotleyAgentParent(MotleyAgentAbstractParent, ABC): method __init__ (line 36) | def __init__( method kv_store (line 97) | def kv_store(self) -> dict: method __repr__ (line 100) | def __repr__(self): method __str__ (line 103) | def __str__(self): method compose_prompt (line 106) | def compose_prompt( method agent (line 182) | def agent(self): method is_materialized (line 192) | def is_materialized(self): method get_output_handlers (line 196) | def get_output_handlers(self): method _check_force_output_handler (line 200) | def _check_force_output_handler(self): method materialize (line 207) | def materialize(self): method _prepare_for_invocation (line 219) | def _prepare_for_invocation( method add_tools (line 246) | def add_tools(self, tools: Sequence[MotleySupportedTool]): method as_tool (line 267) | def as_tool(self, **kwargs) -> MotleyTool: method invoke (line 302) | def invoke( FILE: motleycrew/applications/customer_support/communication.py class CommunicationInterface (line 5) | class CommunicationInterface(ABC): method send_message_to_customer (line 7) | async def send_message_to_customer(self, message: str) -> str: method escalate_to_human_agent (line 20) | def escalate_to_human_agent(self) -> None: method resolve_issue (line 27) | def resolve_issue(self, resolution: str) -> str: class DummyCommunicationInterface (line 40) | class DummyCommunicationInterface(CommunicationInterface): method send_message_to_customer (line 41) | async def send_message_to_customer(self, message: str) -> str: method escalate_to_human_agent (line 45) | def escalate_to_human_agent(self) -> None: method resolve_issue (line 48) | def resolve_issue(self, resolution: str) -> str: class RealCommunicationInterface (line 58) | class RealCommunicationInterface(CommunicationInterface): method send_message_to_customer (line 59) | async def send_message_to_customer(self, message: str) -> str: method escalate_to_human_agent (line 64) | def escalate_to_human_agent(self) -> None: FILE: motleycrew/applications/customer_support/issue_tree.py class IssueNode (line 15) | class IssueNode(MotleyGraphNode): class Issue (line 20) | class Issue(BaseModel): class IssueData (line 26) | class IssueData(MotleyGraphNode): function insert_issue_data (line 31) | def insert_issue_data(graph_store: MotleyKuzuGraphStore, issue: Issue, c... class IssueCategorizer (line 77) | class IssueCategorizer: method __init__ (line 78) | def __init__(self, graph_store: MotleyKuzuGraphStore, max_depth: int =... method _get_or_create_root (line 83) | def _get_or_create_root(self) -> IssueNode: method _get_children (line 99) | def _get_children(self, parent: IssueNode) -> List[IssueNode]: method _create_child (line 112) | def _create_child(self, parent: IssueNode, name: str, description: str... method _categorize (line 118) | def _categorize(self, issue: Issue, categories: List[IssueNode]) -> Op... method categorize_issue (line 156) | def categorize_issue(self, issue: Issue, insert_issue: bool = False): function main (line 199) | def main(): FILE: motleycrew/applications/customer_support/ray_serve_app.py class WebSocketCommunicationInterface (line 23) | class WebSocketCommunicationInterface: method __init__ (line 24) | def __init__(self, websocket: WebSocket): method send_message_to_customer (line 27) | async def send_message_to_customer(self, message: str) -> str: method escalate_to_human_agent (line 32) | async def escalate_to_human_agent(self) -> None: method resolve_issue (line 37) | async def resolve_issue(self, resolution: str) -> str: class SupportAgentDeployment (line 43) | class SupportAgentDeployment: method __init__ (line 44) | def __init__(self): method root (line 55) | async def root(self): method websocket_endpoint (line 59) | async def websocket_endpoint(self, websocket: WebSocket): function main (line 91) | def main(): FILE: motleycrew/applications/customer_support/support_agent.py class SupportAgentContext (line 32) | class SupportAgentContext: class IssueTreeViewInput (line 38) | class IssueTreeViewInput(BaseModel): class IssueTreeViewTool (line 44) | class IssueTreeViewTool(MotleyTool): method __init__ (line 45) | def __init__(self, context: SupportAgentContext): method run (line 53) | def run(self, categories_path: List[str]): method _get_root_node (line 71) | def _get_root_node(self) -> Optional[IssueNode]: method _get_child_node (line 76) | def _get_child_node(self, parent: IssueNode, category: str) -> Optiona... method _format_node_view (line 89) | def _format_node_view(self, node: IssueNode) -> str: method _get_subcategories (line 110) | def _get_subcategories(self, node: IssueNode) -> List[IssueNode]: method _get_issues (line 120) | def _get_issues(self, node: IssueNode) -> List[IssueData]: class CustomerChatInput (line 131) | class CustomerChatInput(BaseModel): class CustomerChatTool (line 135) | class CustomerChatTool(MotleyTool): method __init__ (line 136) | def __init__(self, context: SupportAgentContext): method arun (line 145) | async def arun(self, message: str) -> str: class ResolveIssueInput (line 156) | class ResolveIssueInput(BaseModel): class ResolveIssueTool (line 161) | class ResolveIssueTool(MotleyTool): method __init__ (line 162) | def __init__(self, context: SupportAgentContext): method run (line 171) | def run(self, resolution: Optional[str] = None, escalate: bool = False... function format_chat_history (line 239) | def format_chat_history(chat_history: list) -> str: function create_support_agent (line 249) | def create_support_agent( class SupportAgent (line 275) | class SupportAgent(LangchainMotleyAgent): method __init__ (line 276) | def __init__( function main (line 308) | async def main(): FILE: motleycrew/applications/expenses/expenses.py class SchemaDesignerOutput (line 24) | class SchemaDesignerOutput(BaseModel): class SchemaDesignerExtendedOutput (line 35) | class SchemaDesignerExtendedOutput(SchemaDesignerOutput): class SchemaDesignerInput (line 42) | class SchemaDesignerInput(BaseModel): class VerifyPolicyRepresentation (line 50) | class VerifyPolicyRepresentation(MotleyTool): method invoke (line 51) | def invoke(self, latest_schema: str, query: str): FILE: motleycrew/applications/expenses/schema_delta.py class DeltaGeneratorInput (line 4) | class DeltaGeneratorInput(BaseModel): FILE: motleycrew/applications/expenses/sql_tools.py class SQLExpression (line 1) | class SQLExpression(BaseModel): FILE: motleycrew/applications/faust_workflow/faust_workflow.py class ExecutionContext (line 8) | class ExecutionContext(Record): class Event (line 14) | class Event(Record, abstract=True): function step (line 18) | def step(func): class FaustWorkflow (line 26) | class FaustWorkflow: method __init__ (line 33) | def __init__(self, app: App, verbose: bool = False, timeout: int = 60): method _initialize_steps (line 52) | def _initialize_steps(self): method _create_agent (line 73) | def _create_agent( method _create_final_agent (line 108) | def _create_final_agent(self): method send_event (line 123) | async def send_event(self, ev: Event): method run (line 148) | async def run(self, ev: Event) -> Event: FILE: motleycrew/applications/faust_workflow/visualize.py function draw_faust_workflow (line 8) | def draw_faust_workflow( FILE: motleycrew/applications/research_agent/answer_task.py class QuestionAnsweringTaskUnit (line 14) | class QuestionAnsweringTaskUnit(TaskUnit): class AnswerTask (line 18) | class AnswerTask(Task): method __init__ (line 21) | def __init__( method get_next_unit (line 38) | def get_next_unit(self) -> QuestionAnsweringTaskUnit | None: method get_worker (line 61) | def get_worker(self, tools: Optional[List[MotleyTool]]) -> Runnable: FILE: motleycrew/applications/research_agent/question.py class Question (line 8) | class Question(MotleyGraphNode): method __repr__ (line 15) | def __repr__(self): FILE: motleycrew/applications/research_agent/question_answerer.py class AnswerSubQuestionTool (line 32) | class AnswerSubQuestionTool(MotleyTool): method __init__ (line 35) | def __init__( class QuestionAnswererInput (line 52) | class QuestionAnswererInput(BaseModel, arbitrary_types_allowed=True): function get_subquestions (line 58) | def get_subquestions(graph: MotleyGraphStore, question: Question) -> lis... function create_answer_question_langchain_tool (line 71) | def create_answer_question_langchain_tool( FILE: motleycrew/applications/research_agent/question_generator.py class QuestionGeneratorTool (line 36) | class QuestionGeneratorTool(MotleyTool): method __init__ (line 47) | def __init__( class QuestionGeneratorToolInput (line 66) | class QuestionGeneratorToolInput(BaseModel, arbitrary_types_allowed=True): function create_question_generator_langchain_tool (line 72) | def create_question_generator_langchain_tool( FILE: motleycrew/applications/research_agent/question_prioritizer.py class QuestionPrioritizerTool (line 16) | class QuestionPrioritizerTool(MotleyTool): method __init__ (line 19) | def __init__( class QuestionPrioritizerInput (line 43) | class QuestionPrioritizerInput(BaseModel, arbitrary_types_allowed=True): function create_question_prioritizer_langchain_tool (line 52) | def create_question_prioritizer_langchain_tool( FILE: motleycrew/applications/research_agent/question_task.py class QuestionGenerationTaskUnit (line 16) | class QuestionGenerationTaskUnit(TaskUnit): class QuestionTask (line 20) | class QuestionTask(Task): method __init__ (line 23) | def __init__( method get_next_unit (line 49) | def get_next_unit(self) -> QuestionGenerationTaskUnit | None: method on_unit_dispatch (line 76) | def on_unit_dispatch(self, unit: TaskUnitType) -> None: method on_unit_completion (line 82) | def on_unit_completion(self, unit: TaskUnitType) -> None: method get_worker (line 90) | def get_worker(self, tools: Optional[List[MotleyTool]]) -> Runnable: method get_unanswered_questions (line 95) | def get_unanswered_questions(self, only_without_children: bool = False... FILE: motleycrew/common/aux_prompts.py class AuxPrompts (line 7) | class AuxPrompts: method get_direct_output_error_message (line 27) | def get_direct_output_error_message(output_handlers: List["MotleyTool"... method get_ambiguous_output_handler_call_error_message (line 40) | def get_ambiguous_output_handler_call_error_message( FILE: motleycrew/common/defaults.py class Defaults (line 4) | class Defaults: FILE: motleycrew/common/enums.py class LLMProvider (line 4) | class LLMProvider: class LLMFramework (line 16) | class LLMFramework: class GraphStoreType (line 23) | class GraphStoreType: class TaskUnitStatus (line 29) | class TaskUnitStatus: class LunaryRunType (line 37) | class LunaryRunType: class LunaryEventName (line 47) | class LunaryEventName: class AsyncBackend (line 56) | class AsyncBackend: FILE: motleycrew/common/exceptions.py class LLMProviderNotSupported (line 8) | class LLMProviderNotSupported(Exception): method __init__ (line 11) | def __init__(self, llm_framework: str, llm_provider: str): method __str__ (line 15) | def __str__(self) -> str: class LLMFrameworkNotSupported (line 19) | class LLMFrameworkNotSupported(Exception): method __init__ (line 22) | def __init__(self, llm_framework: str): method __str__ (line 25) | def __str__(self) -> str: class AgentNotMaterialized (line 29) | class AgentNotMaterialized(Exception): method __init__ (line 32) | def __init__(self, agent_name: str): method __str__ (line 35) | def __str__(self) -> str: class CannotModifyMaterializedAgent (line 39) | class CannotModifyMaterializedAgent(Exception): method __init__ (line 42) | def __init__(self, agent_name: str | None): method __str__ (line 45) | def __str__(self) -> str: class TaskDependencyCycleError (line 51) | class TaskDependencyCycleError(Exception): class IntegrationTestException (line 55) | class IntegrationTestException(Exception): method __init__ (line 58) | def __init__(self, test_names: list[str]): method __str__ (line 65) | def __str__(self): class IpynbIntegrationTestResultNotFound (line 69) | class IpynbIntegrationTestResultNotFound(Exception): method __init__ (line 72) | def __init__(self, ipynb_path: str, result_path: str): method __str__ (line 76) | def __str__(self): class ModuleNotInstalled (line 82) | class ModuleNotInstalled(Exception): method __init__ (line 86) | def __init__(self, module_name: str, install_command: str = None): method __str__ (line 97) | def __str__(self): class InvalidToolInput (line 106) | class InvalidToolInput(Exception): method __init__ (line 109) | def __init__(self, tool: Any, input: Any, message: Optional[str] = None): method __str__ (line 114) | def __str__(self): class InvalidOutput (line 121) | class InvalidOutput(Exception): FILE: motleycrew/common/llms.py function langchain_openai_llm (line 10) | def langchain_openai_llm( function llama_index_openai_llm (line 24) | def llama_index_openai_llm( function langchain_anthropic_llm (line 40) | def langchain_anthropic_llm( function llama_index_anthropic_llm (line 55) | def llama_index_anthropic_llm( function langchain_replicate_llm (line 70) | def langchain_replicate_llm( function llama_index_replicate_llm (line 85) | def llama_index_replicate_llm( function langchain_together_llm (line 100) | def langchain_together_llm( function llama_index_together_llm (line 114) | def llama_index_together_llm( function langchain_groq_llm (line 129) | def langchain_groq_llm( function llama_index_groq_llm (line 143) | def llama_index_groq_llm( function langchain_ollama_llm (line 158) | def langchain_ollama_llm( function llama_index_ollama_llm (line 172) | def llama_index_ollama_llm( function langchain_azure_openai_llm (line 187) | def langchain_azure_openai_llm( function llama_index_azure_openai_llm (line 201) | def llama_index_azure_openai_llm( function init_llm (line 242) | def init_llm( FILE: motleycrew/common/logging.py function configure_logging (line 18) | def configure_logging(verbose: bool = False, debug: bool = False): FILE: motleycrew/common/types.py class MotleyAgentFactory (line 36) | class MotleyAgentFactory(Protocol[AgentType]): method __call__ (line 47) | def __call__( FILE: motleycrew/common/utils.py function to_str (line 13) | def to_str(value: str | BaseMessage | Sequence[str] | Sequence[BaseMessa... function is_http_url (line 27) | def is_http_url(url): function generate_hex_hash (line 37) | def generate_hex_hash(data: str, length: Optional[int] = None): function print_passthrough (line 49) | def print_passthrough(x): function ensure_module_is_installed (line 57) | def ensure_module_is_installed(module_name: str, install_command: str = ... FILE: motleycrew/crew/crew.py class MotleyCrew (line 15) | class MotleyCrew: method __init__ (line 20) | def __init__( method run (line 48) | def run(self) -> list[TaskUnit]: method add_dependency (line 71) | def add_dependency(self, upstream: Task, downstream: Task): method register_tasks (line 84) | def register_tasks(self, tasks: Collection[Task]): method _prepare_next_unit_for_dispatch (line 104) | def _prepare_next_unit_for_dispatch( method _handle_task_unit_completion (line 145) | def _handle_task_unit_completion( method _run_sync (line 172) | def _run_sync(self) -> list[TaskUnit]: method _run_threaded (line 202) | def _run_threaded(self) -> list[TaskUnit]: method _async_invoke_agent (line 237) | async def _async_invoke_agent(agent: MotleyAgentParent, unit: TaskUnit... method _run_async (line 240) | async def _run_async(self) -> list[TaskUnit]: method get_available_tasks (line 274) | def get_available_tasks(self) -> list[Task]: method add_task_unit_to_graph (line 295) | def add_task_unit_to_graph(self, task: Task, unit: TaskUnitType): method get_extra_tools (line 311) | def get_extra_tools(self, task: Task) -> list[MotleyTool]: method check_cyclical_dependencies (line 323) | def check_cyclical_dependencies(self): FILE: motleycrew/crew/crew_threads.py class TaskUnitThreadState (line 17) | class TaskUnitThreadState(Enum): class TaskUnitThread (line 26) | class TaskUnitThread(threading.Thread): method __init__ (line 29) | def __init__(self, input_queue: Queue, output_queue: Queue, *args, **k... method state (line 45) | def state(self): method run (line 49) | def run(self) -> None: class TaskUnitThreadPool (line 76) | class TaskUnitThreadPool: method __init__ (line 79) | def __init__(self, num_threads: int = Defaults.DEFAULT_NUM_THREADS): method add_task_unit (line 97) | def add_task_unit(self, agent: Runnable, task: "Task", unit: "TaskUnit... method get_completed_task_units (line 108) | def get_completed_task_units(self) -> List[Tuple["Task", "TaskUnit", A... method wait_and_close (line 125) | def wait_and_close(self): method is_completed (line 136) | def is_completed(self) -> bool: FILE: motleycrew/storage/graph_node.py class MotleyGraphNode (line 9) | class MotleyGraphNode(BaseModel, ABC): method id (line 23) | def id(self) -> Optional[Any]: method is_inserted (line 32) | def is_inserted(self) -> bool: method get_label (line 37) | def get_label(cls) -> str: method __setattr__ (line 55) | def __setattr__(self, name, value): method __eq__ (line 73) | def __eq__(self, other): FILE: motleycrew/storage/graph_store.py class MotleyGraphStore (line 6) | class MotleyGraphStore(ABC): method check_node_exists_by_class_and_id (line 10) | def check_node_exists_by_class_and_id( method check_node_exists (line 22) | def check_node_exists(self, node: MotleyGraphNode) -> bool: method check_relation_exists (line 35) | def check_relation_exists( method get_node_by_class_and_id (line 49) | def get_node_by_class_and_id( method insert_node (line 65) | def insert_node(self, node: MotleyGraphNode): method create_relation (line 78) | def create_relation( method upsert_triplet (line 95) | def upsert_triplet(self, from_node: MotleyGraphNode, to_node: MotleyGr... method delete_node (line 111) | def delete_node(self, node: MotleyGraphNode) -> None: method update_property (line 123) | def update_property(self, node: MotleyGraphNode, property_name: str): method ensure_node_table (line 135) | def ensure_node_table(self, node_class: Type[MotleyGraphNode]) -> str:... method ensure_relation_table (line 146) | def ensure_relation_table( method run_cypher_query (line 162) | def run_cypher_query( FILE: motleycrew/storage/graph_store_utils.py function init_graph_store (line 11) | def init_graph_store( FILE: motleycrew/storage/kuzu_graph_store.py class MotleyKuzuGraphStore (line 19) | class MotleyKuzuGraphStore(MotleyGraphStore): method __init__ (line 37) | def __init__(self, database: Any) -> None: method __repr__ (line 46) | def __repr__(self): method __str__ (line 49) | def __str__(self): method database_path (line 53) | def database_path(self) -> str: method _execute_query (line 56) | def _execute_query( method _check_node_table_exists (line 75) | def _check_node_table_exists(self, label: str) -> bool: method _check_rel_table_exists (line 86) | def _check_rel_table_exists( method _get_node_property_names (line 112) | def _get_node_property_names(self, label: str) -> Collection[str]: method ensure_node_table (line 123) | def ensure_node_table(self, node_class: Type[MotleyGraphNode]) -> str: method ensure_relation_table (line 160) | def ensure_relation_table( method check_node_exists_by_class_and_id (line 187) | def check_node_exists_by_class_and_id( method check_node_exists (line 208) | def check_node_exists(self, node: MotleyGraphNode) -> bool: method check_relation_exists (line 222) | def check_relation_exists( method get_node_by_class_and_id (line 264) | def get_node_by_class_and_id( method insert_node (line 292) | def insert_node(self, node: MotleyGraphNodeType) -> MotleyGraphNodeType: method create_relation (line 328) | def create_relation( method upsert_triplet (line 374) | def upsert_triplet( method delete_node (line 399) | def delete_node(self, node: MotleyGraphNode) -> None: method update_property (line 436) | def update_property(self, node: MotleyGraphNode, property_name: str) -... method run_cypher_query (line 490) | def run_cypher_query( method _deserialize_node (line 519) | def _deserialize_node( method _set_node_id (line 552) | def _set_node_id(node: MotleyGraphNode, node_id: Optional[int]) -> None: method _node_to_cypher_mapping_with_parameters (line 562) | def _node_to_cypher_mapping_with_parameters(node: MotleyGraphNode) -> ... method _get_cypher_type_and_is_json_by_python_type_annotation (line 595) | def _get_cypher_type_and_is_json_by_python_type_annotation( method from_persist_dir (line 617) | def from_persist_dir( method from_dict (line 639) | def from_dict(cls, config_dict: Dict[str, Any]) -> "MotleyKuzuGraphSto... FILE: motleycrew/storage/kv_store_domain.py class RetrievableObjectParent (line 6) | class RetrievableObjectParent(ABC): method __init__ (line 7) | def __init__(self, id: str, name: str, description: Optional[str] = No... method summary (line 17) | def summary(self) -> str: class SimpleRetrievableObject (line 21) | class SimpleRetrievableObject(RetrievableObjectParent): method __init__ (line 22) | def __init__( method summary (line 29) | def summary(self) -> str: FILE: motleycrew/tasks/simple.py function compose_simple_task_prompt_with_dependencies (line 27) | def compose_simple_task_prompt_with_dependencies( class SimpleTaskUnit (line 68) | class SimpleTaskUnit(TaskUnit): class SimpleTask (line 82) | class SimpleTask(Task): method __init__ (line 92) | def __init__( method on_unit_completion (line 125) | def on_unit_completion(self, unit: SimpleTaskUnit) -> None: method get_next_unit (line 139) | def get_next_unit(self) -> SimpleTaskUnit | None: method get_worker (line 169) | def get_worker(self, tools: Optional[List[MotleyTool]]) -> MotleyAgent... FILE: motleycrew/tasks/task.py class TaskNode (line 17) | class TaskNode(MotleyGraphNode): method __eq__ (line 30) | def __eq__(self, other): class Task (line 37) | class Task(ABC, Generic[TaskUnitType]): method __init__ (line 50) | def __init__( method prepare_graph_store (line 81) | def prepare_graph_store(self): method graph_store (line 93) | def graph_store(self) -> MotleyGraphStore: method __repr__ (line 102) | def __repr__(self) -> str: method __str__ (line 105) | def __str__(self) -> str: method set_upstream (line 108) | def set_upstream(self, task: Task) -> Task: method __rshift__ (line 127) | def __rshift__(self, other: Task | Sequence[Task]) -> Task: method __rrshift__ (line 143) | def __rrshift__(self, other: Sequence[Task]) -> Sequence[Task]: method get_units (line 153) | def get_units(self, status: Optional[str] = None) -> List[TaskUnitType]: method get_upstream_tasks (line 185) | def get_upstream_tasks(self) -> List[Task]: method get_downstream_tasks (line 208) | def get_downstream_tasks(self) -> List[Task]: method set_done (line 231) | def set_done(self, value: bool = True): method on_unit_dispatch (line 240) | def on_unit_dispatch(self, unit: TaskUnitType) -> None: method on_unit_completion (line 250) | def on_unit_completion(self, unit: TaskUnitType) -> None: method get_next_unit (line 261) | def get_next_unit(self) -> TaskUnitType | None: method get_worker (line 282) | def get_worker(self, tools: Optional[List[MotleyTool]]) -> Runnable: FILE: motleycrew/tasks/task_unit.py class TaskUnit (line 10) | class TaskUnit(MotleyGraphNode, ABC): method __repr__ (line 25) | def __repr__(self) -> str: method __str__ (line 28) | def __str__(self) -> str: method __eq__ (line 31) | def __eq__(self, other: TaskUnit): method pending (line 35) | def pending(self): method running (line 40) | def running(self): method done (line 45) | def done(self): method set_pending (line 49) | def set_pending(self): method set_running (line 53) | def set_running(self): method set_done (line 57) | def set_done(self): method as_dict (line 61) | def as_dict(self): FILE: motleycrew/tools/agentic_validation_loop.py class AgenticValidationLoop (line 14) | class AgenticValidationLoop(MotleyTool): method __init__ (line 16) | def __init__( method run (line 49) | def run(self, **kwargs) -> Any: FILE: motleycrew/tools/autogen_chat_tool.py function get_last_message (line 18) | def get_last_message(chat_result: ChatResult) -> str: class AutoGenChatTool (line 24) | class AutoGenChatTool(MotleyTool): method __init__ (line 27) | def __init__( function create_autogen_chat_tool (line 70) | def create_autogen_chat_tool( FILE: motleycrew/tools/code/aider_tool.py class AiderTool (line 19) | class AiderTool(MotleyTool): method __init__ (line 22) | def __init__( class AiderToolInput (line 43) | class AiderToolInput(BaseModel): function create_aider_tool (line 49) | def create_aider_tool(coder: Coder): FILE: motleycrew/tools/code/postgresql_linter.py class PostgreSQLLinterTool (line 18) | class PostgreSQLLinterTool(MotleyTool): method __init__ (line 21) | def __init__( class PostgreSQLLinterInput (line 38) | class PostgreSQLLinterInput(BaseModel): function create_pgsql_linter_tool (line 44) | def create_pgsql_linter_tool() -> Tool: FILE: motleycrew/tools/code/python_linter.py class PythonLinterTool (line 16) | class PythonLinterTool(MotleyTool): method __init__ (line 19) | def __init__( class PythonLinterInput (line 34) | class PythonLinterInput(BaseModel): function create_python_linter_tool (line 41) | def create_python_linter_tool() -> StructuredTool: FILE: motleycrew/tools/code/python_repl.py function warn_once (line 16) | def warn_once() -> None: class MissingPrintStatementError (line 25) | class MissingPrintStatementError(Exception): method __init__ (line 28) | def __init__(self, command: str): class PythonREPLTool (line 35) | class PythonREPLTool(MotleyTool): method __init__ (line 42) | def __init__( method sanitize_input (line 65) | def sanitize_input(query: str) -> str: method run (line 81) | def run(self, command: str) -> str: method validate_input (line 100) | def validate_input(self, command: str): class REPLToolInput (line 105) | class REPLToolInput(BaseModel): FILE: motleycrew/tools/html_render_tool.py class HTMLRenderer (line 21) | class HTMLRenderer: method __init__ (line 24) | def __init__( method render_image (line 47) | def render_image(self, html: str, file_name: str | None = None): method build_file_paths (line 84) | def build_file_paths(self, file_name: str | None = None) -> Tuple[str,... class HTMLRenderTool (line 99) | class HTMLRenderTool(MotleyTool): method __init__ (line 102) | def __init__( class HTMLRenderToolInput (line 130) | class HTMLRenderToolInput(BaseModel): function create_render_tool (line 136) | def create_render_tool(renderer: HTMLRenderer): FILE: motleycrew/tools/image/dall_e.py class DallEImageGeneratorTool (line 24) | class DallEImageGeneratorTool(MotleyTool): method __init__ (line 31) | def __init__( class DallEToolInput (line 70) | class DallEToolInput(BaseModel): function run_dalle_and_save_images (line 76) | def run_dalle_and_save_images( function create_dalle_image_generator_langchain_tool (line 120) | def create_dalle_image_generator_langchain_tool( FILE: motleycrew/tools/image/download_image.py function download_image (line 10) | def download_image(url: str, file_path: str) -> Optional[str]: function download_url_to_directory (line 35) | def download_url_to_directory(url: str, images_directory: str, file_name... FILE: motleycrew/tools/image/replicate_tool.py function run_model_in_replicate (line 29) | def run_model_in_replicate(model_name: str, prompt: str, **kwargs) -> st... function run_model_in_replicate_and_save_images (line 36) | def run_model_in_replicate_and_save_images( class ImageToolInput (line 52) | class ImageToolInput(BaseModel): class ReplicateImageGeneratorTool (line 58) | class ReplicateImageGeneratorTool(MotleyTool): method __init__ (line 59) | def __init__( function create_replicate_image_generator_langchain_tool (line 88) | def create_replicate_image_generator_langchain_tool( FILE: motleycrew/tools/llm_tool.py class LLMTool (line 14) | class LLMTool(MotleyTool): method __init__ (line 17) | def __init__( function create_llm_langchain_tool (line 54) | def create_llm_langchain_tool( FILE: motleycrew/tools/mermaid_evaluator_tool.py class MermaidEvaluatorTool (line 15) | class MermaidEvaluatorTool(MotleyTool): method __init__ (line 16) | def __init__( function eval_mermaid (line 41) | def eval_mermaid(mermaid_code: str, format: Optional[str] = "svg") -> io... FILE: motleycrew/tools/simple_retriever_tool.py class SimpleRetrieverTool (line 20) | class SimpleRetrieverTool(MotleyTool): method __init__ (line 23) | def __init__( class RetrieverToolInput (line 46) | class RetrieverToolInput(BaseModel, arbitrary_types_allowed=True): function make_retriever_langchain_tool (line 54) | def make_retriever_langchain_tool( FILE: motleycrew/tools/sql_validation.py class ValidationLevel (line 35) | class ValidationLevel(Enum): class ValidationError (line 43) | class ValidationError: method __str__ (line 51) | def __str__(self) -> str: class SchemaValidator (line 60) | class SchemaValidator: method __init__ (line 69) | def __init__(self, dialect: str = "postgres"): method load_schema_from_sql (line 79) | def load_schema_from_sql(self, schema_sql: str) -> Dict[str, Dict[str,... method load_schema_from_dict (line 288) | def load_schema_from_dict(self, schema_dict: Dict[str, Dict[str, str]]... method validate_query (line 297) | def validate_query( method get_detailed_validation_errors (line 376) | def get_detailed_validation_errors(self, query: str) -> List[Validatio... class SQLValidator (line 476) | class SQLValidator: method validate_syntax (line 484) | def validate_syntax(query: str, dialect: str = "postgres") -> Tuple[bo... method validate_query_against_schema (line 504) | def validate_query_against_schema( method validate_query_against_schema_dict (line 530) | def validate_query_against_schema_dict( method format_query (line 556) | def format_query(query: str, dialect: str = "postgres", pretty: bool =... method transpile_query (line 575) | def transpile_query( FILE: motleycrew/tools/structured_passthrough.py class StructuredPassthroughTool (line 10) | class StructuredPassthroughTool(MotleyTool): method __init__ (line 15) | def __init__( method run (line 35) | def run(self, **kwargs) -> T: FILE: motleycrew/tools/tool.py class DirectOutput (line 35) | class DirectOutput(BaseException): method __init__ (line 42) | def __init__(self, output: Any): class RetryConfig (line 47) | class RetryConfig: class MotleyTool (line 63) | class MotleyTool(Runnable): method __init__ (line 69) | def __init__( method __repr__ (line 136) | def __repr__(self): method __str__ (line 139) | def __str__(self): method name (line 143) | def name(self): method description (line 148) | def description(self): method args_schema (line 153) | def args_schema(self): method is_async (line 158) | def is_async(self): method _patch_tool_run (line 162) | def _patch_tool_run(self): method _patch_tool_arun (line 203) | def _patch_tool_arun(self): method _format_error (line 244) | def _format_error(e: Exception) -> str: method ainvoke (line 261) | async def ainvoke( method invoke (line 269) | def invoke( method run (line 277) | def run(self, *args, **kwargs): method arun (line 280) | async def arun(self, *args, **kwargs): method _tool_from_run_method (line 283) | def _tool_from_run_method(self, name: str, description: str, args_sche... method from_langchain_tool (line 307) | def from_langchain_tool( method from_llama_index_tool (line 321) | def from_llama_index_tool( method from_crewai_tool (line 356) | def from_crewai_tool( method from_motley_agent (line 388) | def from_motley_agent( method from_supported_tool (line 413) | def from_supported_tool( method to_langchain_tool (line 466) | def to_langchain_tool(self) -> BaseTool: method to_llama_index_tool (line 474) | def to_llama_index_tool(self) -> LlamaIndex__BaseTool: method to_autogen_tool (line 495) | def to_autogen_tool(self) -> Callable: method to_crewai_tool (line 517) | def to_crewai_tool(self) -> CrewAI__BaseTool: FILE: motleycrew/tracking/callbacks.py function event_delegate_decorator (line 29) | def event_delegate_decorator(f): function _message_to_dict (line 78) | def _message_to_dict(message: ChatMessage) -> Dict[str, Any]: class LlamaIndexLunaryCallbackHandler (line 98) | class LlamaIndexLunaryCallbackHandler(BaseCallbackHandler): method __init__ (line 102) | def __init__( method _get_initial_track_event_params (line 134) | def _get_initial_track_event_params( method _on_llm_start (line 156) | def _on_llm_start( method _on_llm_end (line 190) | def _on_llm_end( method _on_function_call_start (line 214) | def _on_function_call_start( method _on_function_call_end (line 249) | def _on_function_call_end( method _on_agent_step_start (line 271) | def _on_agent_step_start( method _on_agent_step_end (line 300) | def _on_agent_step_end( method _on_exception_start (line 329) | def _on_exception_start( method start_trace (line 360) | def start_trace(self, trace_id: Optional[str] = None) -> None: method end_trace (line 364) | def end_trace( method on_event_start (line 373) | def on_event_start( method on_event_end (line 396) | def on_event_end( method check_parent_id (line 414) | def check_parent_id(parent_id: str) -> Union[str, None]: FILE: motleycrew/tracking/utils.py function get_lunary_public_key (line 19) | def get_lunary_public_key(): function create_lunary_callback (line 35) | def create_lunary_callback() -> LunaryCallbackHandler: function get_llamaindex_default_callbacks (line 47) | def get_llamaindex_default_callbacks(): function get_langchain_default_callbacks (line 64) | def get_langchain_default_callbacks(): function get_default_callbacks_list (line 86) | def get_default_callbacks_list( function add_callback_handlers_to_config (line 109) | def add_callback_handlers_to_config( function add_default_callbacks_to_langchain_config (line 149) | def add_default_callbacks_to_langchain_config( FILE: motleycrew/utils/chart_to_df.py class SeriesData (line 14) | class SeriesData(BaseModel): class ChartDataResult (line 19) | class ChartDataResult(BaseModel): method validate_series_data_length (line 26) | def validate_series_data_length(self): method to_df (line 40) | def to_df(self, x_axis_name: str = "x_axis") -> pd.DataFrame: function extract_chart_data_from_file (line 48) | def extract_chart_data_from_file( function extract_chart_data (line 55) | def extract_chart_data( FILE: motleycrew/utils/image_utils.py function _convert_with_libreoffice (line 25) | def _convert_with_libreoffice(image_bytes: bytes, source_mime_type: str)... function _convert_with_wand (line 91) | def _convert_with_wand(image_bytes: bytes, source_mime_type: str) -> Tup... function convert_image_to_png (line 120) | def convert_image_to_png(image_bytes: bytes, source_mime_type: str) -> T... function human_message_from_image_bytes (line 145) | def human_message_from_image_bytes(image_bytes: bytes, mime_type: str) -... function image_file_to_bytes_and_mime_type (line 153) | def image_file_to_bytes_and_mime_type(image_path: str) -> Tuple[bytes, s... function is_this_a_chart (line 175) | def is_this_a_chart(image_bytes: bytes, mime_type: str, llm: BaseLanguag... FILE: motleycrew/utils/structured_output_with_retries.py function structured_output_with_retries (line 13) | def structured_output_with_retries( FILE: tests/run_integration_tests.py function get_args_parser (line 61) | def get_args_parser(): function run_ipynb (line 90) | def run_ipynb(ipynb_path: str, strong_cache: bool = False, cache_sub_dir... function build_ipynb_integration_tests (line 122) | def build_ipynb_integration_tests(is_minimal: bool = False) -> dict: function run_integration_tests (line 136) | def run_integration_tests( function main (line 196) | def main(): FILE: tests/test_agents/__init__.py class MockToolInput (line 7) | class MockToolInput(BaseModel): class MockTool (line 13) | class MockTool(BaseTool): method _run (line 21) | def _run(self, tool_input: str, *args, **kwargs): FILE: tests/test_agents/test_agent_chain.py class AgentMock (line 6) | class AgentMock: method invoke (line 7) | def invoke(self, input_dict: dict, *args, **kwargs): class MotleyAgentMock (line 11) | class MotleyAgentMock(MotleyAgentParent): method invoke (line 13) | def invoke(self, *args, **kwargs): function agent_factory (line 18) | def agent_factory(*args, **kwargs): function motley_agents (line 23) | def motley_agents(): function test_agent_chain (line 29) | def test_agent_chain(motley_agents): FILE: tests/test_agents/test_agents.py class TestAgents (line 19) | class TestAgents: method agent (line 21) | def agent(self): method test_add_tools (line 31) | def test_add_tools(self, agent): method test_materialized (line 37) | def test_materialized(self, agent): method test_compose_prompt (line 48) | def test_compose_prompt(self, agent): method test_streaming_configuration_preserved (line 54) | def test_streaming_configuration_preserved(self): method test_streaming_configuration_preserved_true (line 80) | def test_streaming_configuration_preserved_true(self): method test_default_llm_no_streaming_configuration (line 105) | def test_default_llm_no_streaming_configuration(self): method test_compose_prompt_with_messages_and_variables_error (line 119) | def test_compose_prompt_with_messages_and_variables_error(self): method test_compose_prompt_with_messages_no_variables (line 132) | def test_compose_prompt_with_messages_no_variables(self): method test_compose_prompt_with_messages_no_variables_as_string (line 149) | def test_compose_prompt_with_messages_no_variables_as_string(self): FILE: tests/test_agents/test_kv_store_tools.py class TestObjectInsertionTool (line 10) | class TestObjectInsertionTool(MotleyTool): method run (line 11) | def run(self, query: str) -> List[str]: class TestObjectFetcherTool (line 19) | class TestObjectFetcherTool(MotleyTool): method run (line 20) | def run(self, object_id: str) -> str: function kv_store_agent (line 26) | def kv_store_agent(): function test_kv_store_insertion (line 43) | def test_kv_store_insertion(kv_store_agent): function test_kv_store_retrieval (line 55) | def test_kv_store_retrieval(kv_store_agent): function test_kv_store_nonexistent_key (line 67) | def test_kv_store_nonexistent_key(kv_store_agent): FILE: tests/test_agents/test_langchain_output_handler.py class ReportOutputHandler (line 13) | class ReportOutputHandler(MotleyTool): method __init__ (line 14) | def __init__(self): method run (line 21) | def run(self, output: str): function fake_agent_plan (line 28) | def fake_agent_plan(intermediate_steps, step, **kwargs): function fake_agent_take_next_step (line 32) | def fake_agent_take_next_step( function agent (line 46) | def agent(): function run_kwargs (line 67) | def run_kwargs(agent): function test_agent_plan (line 79) | def test_agent_plan(agent): function test_agent_take_next_step (line 97) | def test_agent_take_next_step(agent, run_kwargs): function test_anthropic_output_handler_error_recovery (line 116) | def test_anthropic_output_handler_error_recovery(): FILE: tests/test_agents/test_llms.py function test_init_llm (line 18) | def test_init_llm(llm_provider, llm_framework, expected_class): function test_raise_init_llm (line 23) | def test_raise_init_llm(): function test_init_llm_with_temperature_via_kwargs (line 28) | def test_init_llm_with_temperature_via_kwargs(): function test_init_llm_without_temperature (line 42) | def test_init_llm_without_temperature(): FILE: tests/test_crew/__init__.py class AgentMock (line 7) | class AgentMock: method invoke (line 8) | def invoke(self, input_dict) -> str: method ainvoke (line 12) | async def ainvoke(self, input_dict) -> str: method clear_input_dict (line 16) | def clear_input_dict(input_dict: dict) -> dict: class CrewFixtures (line 25) | class CrewFixtures: method crew (line 29) | def crew(self): method agent (line 34) | def agent(self): method tasks (line 38) | def tasks(self, request, crew, agent): FILE: tests/test_crew/test_crew.py class TestCrew (line 7) | class TestCrew(CrewFixtures): method test_create_simple_task (line 9) | def test_create_simple_task(self, crew, agent): method test_add_dependency (line 17) | def test_add_dependency(self, crew, tasks): method test_register_added_task (line 23) | def test_register_added_task(self, tasks, crew): method test_get_available_task (line 29) | def test_get_available_task(self, crew): method test_get_extra_tools (line 33) | def test_get_extra_tools(self, crew): method test_run (line 37) | def test_run(self, crew, agent): FILE: tests/test_crew/test_crew_threads.py class TestInvokeThreadPool (line 8) | class TestInvokeThreadPool(CrewFixtures): method thread_pool (line 11) | def thread_pool(self): method thread_pool_with_tasks (line 18) | def thread_pool_with_tasks(self, tasks, thread_pool, agent): method test_init_thread_pool (line 25) | def test_init_thread_pool(self, thread_pool): method test_put (line 33) | def test_put(self, thread_pool, agent, tasks): method test_get_completed_tasks (line 42) | def test_get_completed_tasks(self, thread_pool, agent, tasks): method test_get_completed_task_exception (line 56) | def test_get_completed_task_exception(self, thread_pool, agent, tasks): method test_close (line 66) | def test_close(self, thread_pool): FILE: tests/test_image_utils.py function test_human_message_from_image_bytes (line 14) | def test_human_message_from_image_bytes(): function test_image_file_to_bytes_and_mime_type (line 28) | def test_image_file_to_bytes_and_mime_type(): function test_image_file_to_bytes_and_mime_type_unknown_type (line 43) | def test_image_file_to_bytes_and_mime_type_unknown_type(): function test_is_this_a_chart (line 58) | def test_is_this_a_chart(): function test_is_this_a_chart_not_chart (line 85) | def test_is_this_a_chart_not_chart(): FILE: tests/test_storage/__init__.py class GraphStoreFixtures (line 7) | class GraphStoreFixtures: method kuzu_graph_store (line 9) | def kuzu_graph_store(self, tmpdir): method graph_store (line 17) | def graph_store(self, request, kuzu_graph_store): FILE: tests/test_storage/test_graph_store.py class Entity (line 11) | class Entity(MotleyGraphNode): class TestMotleyGraphStore (line 17) | class TestMotleyGraphStore(GraphStoreFixtures): method test_insert_new_node (line 19) | def test_insert_new_node(self, graph_store): method test_insert_node_and_retrieve (line 26) | def test_insert_node_and_retrieve(self, graph_store): method test_check_node_exists_true (line 37) | def test_check_node_exists_true(self, graph_store): method test_check_node_exists_false (line 44) | def test_check_node_exists_false(self, graph_store): method test_create_relation (line 55) | def test_create_relation(self, graph_store): method test_upsert_triplet (line 69) | def test_upsert_triplet(self, graph_store): method test_nodes_do_not_exist (line 83) | def test_nodes_do_not_exist(self, graph_store): method test_relation_does_not_exist (line 94) | def test_relation_does_not_exist(self, graph_store): method test_delete_node (line 108) | def test_delete_node(self, graph_store): method test_delete_entity_with_relations (line 119) | def test_delete_entity_with_relations(self, graph_store): method test_set_property (line 134) | def test_set_property(self, graph_store): method test_run_cypher_query (line 150) | def test_run_cypher_query(self, graph_store): method test_run_cypher_query_with_container (line 172) | def test_run_cypher_query_with_container(self, graph_store): FILE: tests/test_storage/test_kuzu_graph_store.py class Entity (line 12) | class Entity(MotleyGraphNode): function database (line 19) | def database(tmpdir): class TestMotleyKuzuGraphStore (line 25) | class TestMotleyKuzuGraphStore(GraphStoreFixtures): method test_set_get_node_id (line 26) | def test_set_get_node_id(self): method test_insert_node_with_id_already_set (line 32) | def test_insert_node_with_id_already_set(self, graph_store): FILE: tests/test_tasks/test_simple_task.py function graph_store (line 22) | def graph_store(): function crew (line 28) | def crew(graph_store): function agent (line 33) | def agent(): function tasks (line 50) | def tasks(crew, agent): class TestSimpleTask (line 57) | class TestSimpleTask: method test_register_completed_unit (line 58) | def test_register_completed_unit(self, tasks, crew): method test_get_next_unit (line 73) | def test_get_next_unit(self, tasks, crew): method test_get_worker (line 89) | def test_get_worker(self, tasks, agent): FILE: tests/test_tasks/test_task.py class TaskMock (line 14) | class TaskMock(Task): method get_next_unit (line 15) | def get_next_unit(self) -> List[TaskUnitType]: method get_worker (line 18) | def get_worker(self, tools: Optional[List[MotleyTool]]) -> Runnable: function create_dummy_task (line 22) | def create_dummy_task(crew: MotleyCrew, name: str): function graph_store (line 31) | def graph_store(): function crew (line 37) | def crew(graph_store): function task_1 (line 42) | def task_1(crew): function task_2 (line 47) | def task_2(crew): function task_3 (line 52) | def task_3(crew): class TestSetUpstream (line 56) | class TestSetUpstream: method test_set_upstream_returns_self (line 57) | def test_set_upstream_returns_self(self, task_1, task_2): method test_set_upstream_sets_upstream (line 62) | def test_set_upstream_sets_upstream(self, task_1, task_2): method test_set_upstream_sets_downstreams (line 68) | def test_set_upstream_sets_downstreams(self, task_1, task_2): method test_rshift_returns_left (line 74) | def test_rshift_returns_left(self, task_1, task_2): method test_rshift_sets_downstream (line 79) | def test_rshift_sets_downstream(self, task_1, task_2): method test_rshift_sets_upstream (line 85) | def test_rshift_sets_upstream(self, task_1, task_2): method test_rshift_set_multiple_downstream (line 91) | def test_rshift_set_multiple_downstream(self, task_1, task_2, task_3): method test_rshift_set_multiple_upstream (line 98) | def test_rshift_set_multiple_upstream(self, task_1, task_2, task_3): method test_sequence_on_left_returns_sequence (line 105) | def test_sequence_on_left_returns_sequence(self, task_1, task_2, task_3): method test_sequence_on_left_sets_downstream (line 110) | def test_sequence_on_left_sets_downstream(self, task_1, task_2, task_3): method test_sequence_on_left_sets_upstream (line 117) | def test_sequence_on_left_sets_upstream(self, task_1, task_2, task_3): method test_deduplicates (line 124) | def test_deduplicates(self, task_1, task_2): method test_error_on_direct_dependency_cycle (line 129) | def test_error_on_direct_dependency_cycle(self, task_1): class TestTask (line 134) | class TestTask: method test_set_done (line 135) | def test_set_done(self, task_1): FILE: tests/test_tasks/test_task_unit.py class TestTaskUnit (line 6) | class TestTaskUnit: method unit (line 9) | def unit(self): method test_set_pending (line 12) | def test_set_pending(self, unit): method test_set_running (line 16) | def test_set_running(self, unit): method test_set_done (line 20) | def test_set_done(self, unit): method test_as_dict (line 24) | def test_as_dict(self, unit): FILE: tests/test_tools/test_agentic_validation_loop.py class TestInputSchema (line 9) | class TestInputSchema(BaseModel): function mock_llm (line 14) | def mock_llm(): function mock_agent (line 21) | def mock_agent(): class TestAgenticValidationLoop (line 27) | class TestAgenticValidationLoop: method test_init_with_string_prompt (line 29) | def test_init_with_string_prompt(self, mock_llm): method test_init_with_prompt_template (line 46) | def test_init_with_prompt_template(self, mock_llm): method test_init_with_custom_schema (line 59) | def test_init_with_custom_schema(self, mock_llm): method test_run_method (line 73) | def test_run_method(self, mock_structured_tool, mock_agent_class, mock... method test_post_processing (line 103) | def test_post_processing(self, mock_llm): FILE: tests/test_tools/test_html_render_tool.py function test_render_tool (line 16) | def test_render_tool(tmpdir, html_code): FILE: tests/test_tools/test_image_utils.py function image_path_girl (line 17) | def image_path_girl(): function image_path_chart (line 24) | def image_path_chart(): function test_human_message_from_image_bytes (line 30) | def test_human_message_from_image_bytes(image_path_girl): function test_image_file_to_bytes_and_mime_type_jpg (line 41) | def test_image_file_to_bytes_and_mime_type_jpg(): function test_is_this_a_chart_with_chart_image (line 71) | def test_is_this_a_chart_with_chart_image(image_path_chart): function test_is_this_a_chart_with_non_chart_image (line 90) | def test_is_this_a_chart_with_non_chart_image(image_path_girl): function test_convert_image_to_png_supported_format_unchanged (line 109) | def test_convert_image_to_png_supported_format_unchanged(image_path_girl): function test_convert_image_to_png_all_supported_types (line 122) | def test_convert_image_to_png_all_supported_types(): function test_libreoffice_formats_constant (line 134) | def test_libreoffice_formats_constant(): function test_supported_mime_types_constant (line 142) | def test_supported_mime_types_constant(): FILE: tests/test_tools/test_linter_tools.py function pgsql_linter_tool (line 8) | def pgsql_linter_tool(): function python_linter_tool (line 14) | def python_linter_tool(): function test_python_tool (line 45) | def test_python_tool(python_linter_tool, code, file_name, valid_code, ra... FILE: tests/test_tools/test_repl_tool.py class TestREPLTool (line 4) | class TestREPLTool: method test_repl_tool (line 5) | def test_repl_tool(self): method test_repl_tool_multiple_calls (line 12) | def test_repl_tool_multiple_calls(self): method test_repl_tool_multiline_input_with_import (line 17) | def test_repl_tool_multiline_input_with_import(self): FILE: tests/test_tools/test_structured_passthrough_tool.py class SampleSchema (line 8) | class SampleSchema(BaseModel): class B (line 13) | class B(BaseModel): class C (line 19) | class C(BaseModel): class A (line 25) | class A(BaseModel): function sample_schema (line 30) | def sample_schema(): function structured_passthrough_tool (line 35) | def structured_passthrough_tool(sample_schema): function test_structured_passthrough_tool_initialization (line 39) | def test_structured_passthrough_tool_initialization(structured_passthrou... function test_structured_passthrough_tool_run_valid_input (line 45) | def test_structured_passthrough_tool_run_valid_input(structured_passthro... function test_structured_passthrough_tool_run_invalid_input (line 52) | def test_structured_passthrough_tool_run_invalid_input(structured_passth... function test_structured_passthrough_tool_post_process (line 58) | def test_structured_passthrough_tool_post_process(structured_passthrough... function test_structured_passthrough_tool_post_process_noop (line 73) | def test_structured_passthrough_tool_post_process_noop(structured_passth... function test_structured_passthrough_tool_with_nested_model_instances (line 87) | def test_structured_passthrough_tool_with_nested_model_instances(): FILE: tests/test_tools/test_tool.py function mock_tool_args_schema (line 14) | def mock_tool_args_schema(): function mock_tool_function (line 21) | def mock_tool_function(mock_input: str): function mock_input (line 29) | def mock_input(): function langchain_tool (line 34) | def langchain_tool(mock_tool_args_schema): function llama_index_tool (line 46) | def llama_index_tool(mock_tool_args_schema): function crewai_tool (line 58) | def crewai_tool(mock_tool_args_schema): function motley_agent (line 70) | def motley_agent(langchain_tool): class TestMotleyTool (line 80) | class TestMotleyTool: method test_tool_return_direct (line 81) | def test_tool_return_direct(self, langchain_tool, mock_input): method test_tool_handle_exception (line 89) | def test_tool_handle_exception(self, langchain_tool, mock_input): method test_langchain_tool_conversion (line 94) | def test_langchain_tool_conversion(self, langchain_tool, mock_input): method test_llama_index_tool_conversion (line 108) | def test_llama_index_tool_conversion(self, llama_index_tool, mock_input): method test_motley_tool_self_conversion (line 123) | def test_motley_tool_self_conversion(self, langchain_tool): method test_motley_agent_conversion (line 129) | def test_motley_agent_conversion(self, motley_agent, mock_input): method test_autogen_tool_conversion (line 136) | def test_autogen_tool_conversion(self, langchain_tool, mock_input): method test_crewai_tool_conversion (line 145) | def test_crewai_tool_conversion(self, crewai_tool, mock_input): FILE: tests/test_tools/test_tool_chain.py class ToolMock (line 6) | class ToolMock: method invoke (line 7) | def invoke(self, input: dict, *args, **kwargs): method _run (line 10) | def _run(self, input: dict, *args, **kwargs): function tools (line 15) | def tools(): function test_tool_chain (line 21) | def test_tool_chain(tools):