
    nϞi                    t    d Z ddlmZ ddlmZmZmZ dZddZddZ		 	 d	 	 	 	 	 ddZ
	 	 d	 	 	 	 	 dd	Zdd
Zy)z@Tracking for SDK helper usage via the x-stainless-helper header.    )annotations)AnyDictcast_stainless_helperc                f    	 t         j                  | t        |       y# t        t        f$ r Y yw xY w)z0Mark an object as created by a named SDK helper.N)object__setattr___HELPER_ATTRAttributeError	TypeError)objnames     b/var/www/html/jploft-chatbot/venv/lib/python3.12/site-packages/anthropic/lib/_stainless_helpers.py
tag_helperr   
   s0    3d3I& s    00c                $    t        | t        d      S )z+Get the helper name from an object, if any.N)getattrr   )r   s    r   get_helper_tagr      s    3d++    Nc                   t               }| r&| D ]!  }t        |      }||j                  |       # |r|D ]  }t        |      }||j                  |       t        |t              r-t        t        t        t        f   |      j                  d      }nt        |dd      }t        |t              s|t        t        t           |      D ]!  }t        |      }||j                  |       #  t        |      S )z:Collect deduplicated helper names from tools and messages.Ncontent)setr   add
isinstancedictr   r   strr   getr   listr	   )toolsmessageshelperstooltagmessageblocksblocks           r   collect_helpersr'      s    
 G 	!D &CC 	!
  	)G )CC  '4("4S>7;??	J )T:&$'!$v,7 )E(/CC()	)  =r   c                H    t        | |      }|si S ddj                  |      iS )zvBuild x-stainless-helper header dict from tools and messages.

    Returns an empty dict if no helpers are found.
    x-stainless-helperz, )r'   join)r   r    r!   s      r   stainless_helper_headerr+   8   s,     eX.G	 $))G"455r   c                (    t        |       }|i S d|iS )z8Build x-stainless-helper header dict from a file object.r)   )r   )filer#   s     r   !stainless_helper_header_from_filer.   F   s!    

C
{	 #&&r   )r   r   r   r   returnNone)r   r	   r/   z
str | None)NN)r   r   r    r   r/   z	list[str])r   r   r    r   r/   dict[str, str])r-   r	   r/   r1   )__doc__
__future__r   typingr   r   r   r   r   r   r'   r+   r.    r   r   <module>r6      st    F " " "",  D 666 6'r   