o
    î6Wj×  ã                   @  s†   d dl mZ d dlZd dlmZ d dlmZ d dlZddl	m
Z
mZmZmZmZ ddlmZ ddlmZ dd	lmZ G d
d„ dƒZdS )é    )ÚannotationsN)ÚAny)Úoverrideé   )ÚBodyÚQueryÚHeadersÚNotGivenÚ	not_given)Úis_given)Ú
model_copy)ÚFinalRequestOptionsc                   @  s®   e Zd ZdZddddœd7dd„Zed8dd„ƒZed8dd„ƒZed9dd„ƒZed:dd„ƒZ	ed;d d!„ƒZ
ed<d#d$„ƒZed=d&d'„ƒZeeeeeed(œd>d3d4„Zed8d5d6„ƒZdS )?Ú
APIRequestz�A view over the request that the client is about to execute.

    Treat instances as immutable; use `copy()` to derive a modified request.
    FNr   )ÚstreamÚ
stream_clsÚretries_takenÚoptionsr   Úcast_tor   r   Úboolr   útype[Any] | Noner   ÚintÚreturnÚNonec                C  s"   || _ || _|| _|| _|| _d S ©N©r   r   r   r   r   )Úselfr   r   r   r   r   © r   úa/home/esfera/Documents/content_generation/venv/lib/python3.10/site-packages/anthropic/_request.pyÚ__init__   s   	zAPIRequest.__init__Ústrc                 C  ó   | j jS r   )r   Úmethod©r   r   r   r   r!   (   ó   zAPIRequest.methodc                 C  r    r   )r   Úurlr"   r   r   r   r$   ,   r#   zAPIRequest.urlr   c                 C  s   | j j}t|ƒr
|S i S r   )r   Úheadersr   )r   r%   r   r   r   r%   0   s   zAPIRequest.headersr   c                 C  r    r   )r   Úparamsr"   r   r   r   Úquery_params5   r#   zAPIRequest.query_paramsúBody | Nonec                 C  r    r   )r   Ú	json_datar"   r   r   r   Újson9   r#   zAPIRequest.jsonú'float | httpx.Timeout | None | NotGivenc                 C  r    r   )r   Útimeoutr"   r   r   r   r,   =   r#   zAPIRequest.timeoutúint | NotGivenc                 C  r    r   )r   Úmax_retriesr"   r   r   r   r.   A   r#   zAPIRequest.max_retries)r!   r$   r%   r&   Úbodyr,   r!   ústr | NotGivenr$   r%   úHeaders | NotGivenr&   úQuery | NotGivenr/   úBody | NotGivenr,   c                C  s¼   t | jƒ}t |j¡|_t |j¡|_t |j¡|_t|jƒr%t	|jƒ|_t|ƒr,||_
t|ƒr3||_t|ƒr:||_t|ƒrA||_t|tƒsI||_t|tƒsQ||_t|| j| j| j| jd�S )Nr   )r   r   Ú_copyÚdeepcopyr)   Ú
extra_jsonr&   r   r%   Údictr!   r$   Ú
isinstancer	   r,   r   r   r   r   r   )r   r!   r$   r%   r&   r/   r,   r   r   r   r   ÚcopyE   s2   



ûzAPIRequest.copyc                 C  s   d| j ›d| j›d| j›d�S )Nz<APIRequest method=z url=z stream=ú>)r!   r$   r   r"   r   r   r   Ú__repr__p   s   zAPIRequest.__repr__)r   r   r   r   r   r   r   r   r   r   r   r   )r   r   )r   r   )r   r   )r   r(   )r   r+   )r   r-   )r!   r0   r$   r0   r%   r1   r&   r2   r/   r3   r,   r+   r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Úpropertyr!   r$   r%   r'   r*   r,   r.   r
   r9   r   r;   r   r   r   r   r      s:    
ùø+r   )Ú
__future__r   r9   r4   Útypingr   Útyping_extensionsr   ÚhttpxÚ_typesr   r   r   r	   r
   Ú_utilsr   Ú_compatr   Ú_modelsr   r   r   r   r   r   Ú<module>   s    