
    WiA                    `    d Z ddlmZ ddlmZmZmZ  ed      Z G d dee   ee         Z	e	Z
y)zList-like response wrapper.

When a response model returns a list (for example `list[User]`), we still want to
attach the provider's raw response so `create_with_completion()` can return it.
    )annotations)AnyGenericTypeVarTc                  V     e Zd ZU dZded<   dd	 fdZed
d       ZddZ fdZ	 xZ
S )ListResponsezA list that preserves the underlying provider response.

    This is used when a call returns a list of objects (e.g. `list[User]`), so
    `create_with_completion()` can still return `(result, raw_response)` without
    crashing on a plain `list`.
    
Any | None_raw_responsec                2    t         |   |       || _        y N)super__init__r   )selfiterabler   	__class__s      h/home/sietch6/trending-topics-pipeline/venv/lib/python3.12/site-packages/instructor/dsl/response_list.pyr   zListResponse.__init__   s    "*    c                    | ||      S Nr    )clsitemsraw_responses      r   	from_listzListResponse.from_list   s    555r   c                    | j                   S r   r   )r   s    r   get_raw_responsezListResponse.get_raw_response    s    !!!r   c                    t         |   |      }t        |t              r t	        |       || j
                        S |S r   )r   __getitem__
isinstanceslicetyper   )r   keyvaluer   s      r   r    zListResponse.__getitem__#   s:    #C(c5!4:e43E3EFFr   )r   N)r   r
   )r   zlist[T]r   r
   returnzListResponse[T])r&   r
   )__name__
__module____qualname____doc____annotations__r   classmethodr   r   r    __classcell__)r   s   @r   r	   r	      s8     + 6 6" r   r	   N)r*   
__future__r   typingr   r   r   r   listr	   ResponseListr   r   r   <module>r2      s;    # ( (CL47GAJ : r   