+
    WiK                        R t ^ RIHt ^ RIHtHtHtHtHt ^ RI	t	^ RI
t
]'       d	   ^ RIHtHt  ! R R4      t ! R R4      tR# )	z)Base client classes for the Research API.)annotations)TYPE_CHECKINGAnyDictOptionalUnionN)ExaAsyncExac                  F    ] tR t^tRtR R ltR
R R lltRR R lltR	tR# )ResearchBaseClientz4Base client for synchronous Research API operations.c                   V ^8  d   QhRR/# )   clientz'Exa' )formats   "S/home/ubuntu/hermes-agent/venv/lib/python3.14/site-packages/exa_py/research/base.py__annotate__ResearchBaseClient.__annotate__   s     ( (u (    c                     Wn         RV n        R# )zOInitialize the base client.

Args:
    client: The parent Exa client instance.
/research/v1N_client	base_pathselfr   s   &&r   __init__ResearchBaseClient.__init__        'r   Nc               0    V ^8  d   QhRRRRRRRRRR	R
R/# )r   endpointstrmethoddata$Optional[Union[Dict[str, Any], str]]paramsOptional[Dict[str, str]]streamboolreturnz(Union[Dict[str, Any], requests.Response]r   )r   s   "r   r   r      sF     + ++ + 3	+
 )+ + 
2+r   c                2   V P                    V 2pV'       dd   VR8X  d   V P                  P                  VRW$R7      # Vf   / p\        V\        4      '       d   RVR&   V P                  P                  WcW$R7      # V P                  P                  WcW$R7      # )a2  Make a request to the Research API.

Args:
    endpoint: The API endpoint (relative to base_path).
    method: HTTP method to use.
    data: Request body data.
    params: Query parameters.
    stream: Whether to stream the response.

Returns:
    The API response as a dict or raw Response for streaming.
GETNr#   r"   r%   Tr'   )r   r   request
isinstancedictr   r    r"   r#   r%   r'   full_endpoints   &&&&&& r   r-   ResearchBaseClient.request   s    (  >>*8*5 ||++!V ,  
 <DdD))%)DN||++!V ,   <<'' (  r   c               $    V ^8  d   QhRRRRRR/# r   cursorzOptional[str]limitzOptional[int]r)   zDict[str, str]r   )r   s   "r   r   r   G   $      #3@	r   c                >    / pVe   WR&   Ve   \        V4      VR&   V# zBuild pagination parameters for list requests.

Args:
    cursor: Pagination cursor.
    limit: Maximum number of results.

Returns:
    Dictionary of query parameters.
r5   r6   r!   r   r5   r6   r%   s   &&& r   build_pagination_params*ResearchBaseClient.build_pagination_paramsG   /     %8!%jF7Or   r   POSTNNFNN	__name__
__module____qualname____firstlineno____doc__r   r-   r<   __static_attributes__r   r   r   r   r      s    >(+Z r   r   c                  F    ] tR t^[tRtR R ltR
R R lltRR R lltR	tR# )AsyncResearchBaseClientz5Base client for asynchronous Research API operations.c                   V ^8  d   QhRR/# )r   r   z
'AsyncExa'r   )r   s   "r   r   $AsyncResearchBaseClient.__annotate__^   s     ( (z (r   c                     Wn         RV n        R# )zZInitialize the async base client.

Args:
    client: The parent AsyncExa client instance.
r   Nr   r   s   &&r   r    AsyncResearchBaseClient.__init__^   r   r   Nc               0    V ^8  d   QhRRRRRRRRRR	R
R/# )r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   z%Union[Dict[str, Any], httpx.Response]r   )r   s   "r   r   rL   g   sF     + ++ + 3	+
 )+ + 
/+r   c                v  "   V P                    V 2pV'       dt   VR8X  d'   V P                  P                  VRW$R7      G Rj  xL
 # Vf   / p\        V\        4      '       d   RVR&   V P                  P                  WcW$R7      G Rj  xL
 # V P                  P                  WcW$R7      G Rj  xL
 #  Lo L+ L5i)a9  Make an async request to the Research API.

Args:
    endpoint: The API endpoint (relative to base_path).
    method: HTTP method to use.
    data: Request body data.
    params: Query parameters.
    stream: Whether to stream the response.

Returns:
    The API response as a dict or raw Response for streaming.
r+   Nr,   Tr'   )r   r   async_requestr.   r/   r0   s   &&&&&& r   r-   AsyncResearchBaseClient.requestg   s     (  >>*8*5 "\\77!V 8   
 <DdD))%)DN!\\77!V 8    33 4   s7   AB9B3AB9	B5
$B9.B7/B95B97B9c               $    V ^8  d   QhRRRRRR/# r4   r   )r   s   "r   r   rL      r7   r   c                >    / pVe   WR&   Ve   \        V4      VR&   V# r9   r:   r;   s   &&& r   r<   /AsyncResearchBaseClient.build_pagination_params   r>   r   r   r?   rA   rB   r   r   r   rJ   rJ   [   s    ?(+Z r   rJ   )rG   
__future__r   typingr   r   r   r   r   httpxrequests
exa_py.apir   r	   r   rJ   r   r   r   <module>r[      s6    / " < <  (J JZJ Jr   