
    3fi                     t    d dl mZmZ d dlmZ d dlmZ d dlmZm	Z	 d dl
mZ  G d de      Z G d d	e      Zy
)    )OptionalType)CallbackManagerForToolRun)BaseTool)	BaseModelField)FinancialDatasetsAPIWrapperc                   f    e Zd ZU dZ ed      Zeed<    ed      Zeed<    ed      Z	e
ed<   y	)
IncomeStatementsSchemazInput for IncomeStatements.z1The ticker symbol to fetch income statements for.)descriptiontickerzeThe period of the income statement. Possible values are: annual, quarterly, ttm. Default is 'annual'.periodz9The number of income statements to return. Default is 10.limitN)__name__
__module____qualname____doc__r   r   str__annotations__r   r   int     |/var/www/auto_recruiter/arenv/lib/python3.12/site-packages/langchain_community/tools/financial_datasets/income_statements.pyr   r   
   sG    %GFC  FC  OE3 r   r   c                        e Zd ZU dZdZeed<   dZeed<   dZeed<   e	Z
ee	   ed<    ed	d
      Zeed<   def fdZ	 ddededee   dee   def
dZ xZS )IncomeStatementszR
    Tool that gets income statements for a given ticker over a given period.
    get_income_statementsmodeincome_statementsnameal  A wrapper around financial datasets's Income Statements API. This tool is useful for fetching income statements for a given ticker.The tool fetches income statements for a given ticker over a given period.The period can be annual, quarterly, or trailing twelve months (ttm).The number of income statements to return can also be specified using the limit parameter.r   args_schema.T)excludeapi_wrapperc                 &    t         |   |       y )N)r"   )super__init__)selfr"   	__class__s     r   r%   zIncomeStatements.__init__.   s    [1r   r   r   r   run_managerreturnc                 T    | j                   j                  | j                  |||      S )z#Use the Income Statements API tool.)r   r   r   r   )r"   runr   )r&   r   r   r   r(   s        r   _runzIncomeStatements._run1   s2     ##	 $ 
 	
r   )N)r   r   r   r   r   r   r   r   r   r   r    r   r   r"   r	   r%   r   r   r   r,   __classcell__)r'   s   @r   r   r      s     (D#'#D##	/   1GK,-F/4S$/GK,G2$? 2 <@

 
 }	

 78
 

r   r   N)typingr   r   langchain_core.callbacksr   langchain_core.toolsr   pydanticr   r   0langchain_community.utilities.financial_datasetsr	   r   r   r   r   r   <module>r3      s,    ! > ) % XY "#
x #
r   