
    ̺i                        S r SSKJr  SSKJrJrJr  SrSS jrSS jr	  S     SS jjr
  S     SS	 jjrSS
 jrg)z@Tracking for SDK helper usage via the x-stainless-helper header.    )annotations)AnyDictcast_stainless_helperc                h     [         R                  U [        U5        g! [        [        4 a     gf = f)z0Mark an object as created by a named SDK helper.N)object__setattr___HELPER_ATTRAttributeError	TypeError)objnames     _/var/www/piano.thomer.com/venv/lib/python3.13/site-packages/anthropic/lib/_stainless_helpers.py
tag_helperr   
   s0    3d3I& s    11c                $    [        U [        S5      $ )z+Get the helper name from an object, if any.N)getattrr   )r   s    r   get_helper_tagr      s    3d++    Nc                6   [        5       nU (       a*  U  H$  n[        U5      nUc  M  UR                  U5        M&     U(       a  U H  n[        U5      nUb  UR                  U5        [        U[        5      (       a-  [        [        [        [        4   U5      R                  S5      nO[        USS5      n[        U[        5      (       d  M  [        [        [           U5       H$  n[        U5      nUc  M  UR                  U5        M&     M     [        U5      $ )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,7E(/CC( 8    =r   c                P    [        X5      nU(       d  0 $ SSR                  U5      0$ )znBuild 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*     e.G	 $))G"455r   c                *    [        U 5      nUc  0 $ SU0$ )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   