Source code for langchain_community.agent_toolkits.zapier.toolkit

"""[DEPRECATED] Zapier Toolkit."""

from typing import List

from langchain_core._api import warn_deprecated
from langchain_core.tools import BaseTool
from langchain_core.tools.base import BaseToolkit

from langchain_community.tools.zapier.tool import ZapierNLARunAction
from langchain_community.utilities.zapier import ZapierNLAWrapper


[docs]class ZapierToolkit(BaseToolkit): """Zapier Toolkit. Parameters: tools: List[BaseTool]. The tools in the toolkit. Default is an empty list. """ tools: List[BaseTool] = []
[docs] @classmethod def from_zapier_nla_wrapper( cls, zapier_nla_wrapper: ZapierNLAWrapper ) -> "ZapierToolkit": """Create a toolkit from a ZapierNLAWrapper. Args: zapier_nla_wrapper: ZapierNLAWrapper. The Zapier NLA wrapper. Returns: ZapierToolkit. The Zapier toolkit. """ actions = zapier_nla_wrapper.list() tools = [ ZapierNLARunAction( action_id=action["id"], zapier_description=action["description"], params_schema=action["params"], api_wrapper=zapier_nla_wrapper, ) for action in actions ] return cls(tools=tools) # type: ignore[arg-type]
[docs] @classmethod async def async_from_zapier_nla_wrapper( cls, zapier_nla_wrapper: ZapierNLAWrapper ) -> "ZapierToolkit": """Async create a toolkit from a ZapierNLAWrapper. Args: zapier_nla_wrapper: ZapierNLAWrapper. The Zapier NLA wrapper. Returns: ZapierToolkit. The Zapier toolkit. """ actions = await zapier_nla_wrapper.alist() tools = [ ZapierNLARunAction( action_id=action["id"], zapier_description=action["description"], params_schema=action["params"], api_wrapper=zapier_nla_wrapper, ) for action in actions ] return cls(tools=tools) # type: ignore[arg-type]
[docs] def get_tools(self) -> List[BaseTool]: """Get the tools in the toolkit.""" warn_deprecated( since="0.0.319", message=( "This tool will be deprecated on 2023-11-17. See " "<https://nla.zapier.com/sunset/> for details" ), ) return self.tools