
     h#                        d Z ddlZddlmZmZ ddlmZ ddlmZ ddl	m
Z
 ddlmZ ddlmZmZmZmZmZmZmZmZmZ d	d
lmZ dZ edd          Z edd          Z edd          Z edd          ZeefZ e
fZ!e"e#fZ$ eddd	          Z% eddd          Z& eddd          Z' eddd	          Z( eddd          Z) eddd          Z* eddd	          Z+ eddd          Z, eddd	          Z- eddd          Z. eddd          Z/d.d Z0e&e*fd!Z1e*fd"Z2d# Z3d$ Z4d/d&Z5d' Z6d( Z7d) Z8d* Z9d.d+Z:d, Z;ddde<fd-Z=dS )0a  Streaming, truncating, non-recursive version of :func:`repr`.

Differences from regular :func:`repr`:

- Sets are represented the Python 3 way: ``{1, 2}`` vs ``set([1, 2])``.
- Unicode strings does not have the ``u'`` prefix, even on Python 2.
- Empty set formatted as ``set()`` (Python 3), not ``set([])`` (Python 2).
- Longs don't have the ``L`` suffix.

Very slow with no limits, super quick with limits.
    N)deque
namedtuple)Decimal)chain)Number)
_recursion)	AnyAnyStrCallableDictIteratorListSequenceSetTuple   )truncate)saferepr
reprstream_literal)valuer   	direction_key)r   _quoted_dirty)objid{F: T}[]z, ()z,)   c                 N    d                     t          | |||                    S )zSafe version of :func:`repr`.

    Warning:
        Make sure you set the maxlen argument, or it will be very slow
        for recursive objects.  With the maxlen set, it's often faster
        than built-in repr.
     )maxlen	maxlevelsseen)join	_saferepr)or(   r)   r*   s       Q/var/www/html/Sam_Eipo/venv/lib/python3.11/site-packages/celery/utils/saferepr.pyr   r   C   s4     779	&ID         c              #      K   t          |           }t          |                                           D ].\  }\  }}t          |          V  |V  |V  ||dz
  k     r|V  /d S Nr   )len	enumerateitemsr   )mappingLIT_DICT_KVSEPLIT_LIST_SEPsizeikvs          r.   
_chaindictr<   Q   s       w<<Dw}}//  	6Aq1ggq>> r/   c              #   t   K   t          |           }t          |           D ]\  }}|V  ||dz
  k     r|V  d S r1   )r2   r3   )itr7   r8   r9   r;   s        r.   
_chainlistr?   ^   sW      r77D"  1q>> r/   c                 0    t          |           j         dS )Nz())type__name__ss    r.   _repr_empty_setrE   g   s    1gg""""r/   c                     t          | t                    r>	 |                     d           n'# t          $ r |                     dd          cY S w xY w| S )Nutf-8backslashreplaceerrors)
isinstancebytesencodeUnicodeDecodeErrordecode)vals    r.   	_safetextrQ   l   su    #u B	BJJw! 	B 	B 	B ::g.@:AAAAA	B Js   - !AA...c                    |r^t          |           |k    rKt          |           d |                                         }t          dt	          |           | d          S t          dt	          |            d          S )N')r2   
memoryviewtobytes_bytes_prefix_repr_binary_bytes)rP   r(   ellipsischunks       r.   _format_binary_bytesr[   x   s     I#c((V##3(0022G!3E!:!:GHGGGHHH7/44777888r/   c                     d| z   S )Nb rC   s    r.   rW   rW      s    7Nr/   c                     	 |                      d          S # t          $ r> 	 | j        } |            cY S # t          $ r |                      dd          cY cY S w xY ww xY w)NrG   replacerI   )rO   rN   hexAttributeError)rP   ashexs     r.   rX   rX      s    zz'""" 	 	 		GE 577NNN  	9 	9 	9::gi:8888888	9		s)    
A5
A!AAAAc                     t          | t                    rt          | |          S d                    t	          | |                              dd                    S )Nz'{}'rT   z\')rK   rL   r[   formatr   r`   )rP   r(   s     r.   _format_charsrf      sQ    #u H#C000}}Xc622::3FFGGGr/   c           	          	 t          |           S # t          $ rY}d                    t          j                              }dt          |           t          |           dd|d|dcY d }~S d }~ww xY w)N
z<Unrepresentable z#xr    >)repr	Exceptionr+   	tracebackformat_stackrA   id)objexcstacks      r.   _reprrs      s    QCyy Q Q Q		)02233P499P3PPPcPPePPPPPPPPPQs    
A4AA/)A4/A4c              #   l  K   t          t          | g          g          }t          |||          D ]\  }}|!|dk    rdV  |                    |            nt	          |t
                    r|j        }ntt	          |t                    rt          |j        ||          }nHt	          |t                    rt          |j        |          }nt          t          ||                    }|V  ||t          |          z  }|D ],}|D ]'}	t	          |	t
                    r|	j        s	|	j        V  (-d S )N)r*   r)   r   z, ...)r   iterr   appendrK   r   r   r   r   r   rf   rQ   r   r2   )
r-   r(   r)   r*   rr   tokenr>   rP   rest1rest2s
             r.   r,   r,      sd     499+EDIFFF  	r&A++MMM LLEeX&& 	5+CCt$$ 	55;	::CCw'' 	5V44CCHUF3344C			c#hhF " " 	" 	"E%** "5> "k!!!	"" "r/   c                     t          |           |u r|| ||           fS t          t          |           j         d|j         dd          t          |j         ddd           ||           fS )Nr#   Fr   r$   r    )rA   r   rB   r   )rP   	lit_startlit_endbuiltin_typechainers        r.   _reprseqr      s    CyyL  '773<<//DII&::::E2FFGM$$$eR00 r/   c           
   #     K   |pt                      }| j        }| j        }|j        }|j        }|j        }	| rdx}
} |            }|D ]}|} ||t                    r ||j                   ' ||t                    r||j	        z  }||fV  I ||t                    r||fV  a ||t                    rt          |          |fV   ||t                    rt          |          |fV   ||t                    rt!          |          |fV   ||t"                    rt          |          |fV   ||t$                    rC|st'          |          |fV  t)          |t*          t,          t           t.                    \  }
}}n ||t0                    r8t2          t5          |          dk    rt6          nt8          t/          |          }}}
ns ||t:                    rt<          t>          tA          |          }}}
nD ||tB                    rtD          tF          t/          |          }}}
nt          |          |fV  |r||k    r|
j$         d|j$         |fV  $tK          |          } ||          rtM          |          |fV  S |	|            |tO          |
g|t          |          |g|                      | dS dS )z Streaming repr, yielding tokens.Nr   rR   )(setrv   popleft__contains__discardaddr   r   r   r   r   r   rs   safe_tstrchars_tr   rangeset_trE   r   LIT_SET_STARTLIT_SET_ENDr?   tupleLIT_TUPLE_STARTr2   LIT_TUPLE_END_SVLIT_TUPLE_ENDdictLIT_DICT_STARTLIT_DICT_ENDr<   listLIT_LIST_STARTLIT_LIST_ENDr   ro   r   r   )rr   r*   r)   levelrK   rv   r   
is_in_seendiscard_from_seenadd_to_seenr{   r|   r>   rP   origr   s                   r.   r   r      s      =355D\FmG"J(K
 ;""	GWYY 8	 8	CDz#v&& 6!!#),,,C** 3&2gC&& 02gC)) .Cjj"n$$$$C(( ,#hhl""""C)) *cllB&&&&&C'' (Cjj"n$$$$:c5))  !-c22B6666 .6]Kj/ /+Iw  ZU++ ',/HHMM((}"3 ),wII  ZT** 	&joo ),wIIZT** &joo ),wII  **b.((( )!3!3&_@@@@"DDDD4:e$$ $T**B....E"""
 ui[#uw/GLLMMMw  ; ; ; ; ;r/   )Nr%   N)rR   )>__doc__rm   collectionsr   r   decimalr   	itertoolsr   numbersr   pprintr   typingr	   r
   r   r   r   r   r   r   r   textr   __all__r   r   r   r   rL   r   r   r   	frozensetr   r   r   r6   r   r   r   r7   r   r   r   r   r   r   r<   r?   rE   rQ   r[   rW   rX   rf   rs   r,   r   rK   r   r^   r/   r.   <module>r      sR  
 
     ) ) ) ) ) ) ) )                                                                         
$ :j"DEE z&*%% *Y

+
+ 
Hj	)	) #,  
C#ub))$a((xUB''#ub))xUB''xdA&&eR((hsE2&&(3r**eR((8D%,,     -(
 
 
 
 !-    # # #
	 	 	9 9 9 9     H H HQ Q Q" " " "8    1A* E E E E E Er/   