File: //usr/local/lib/python3.9/site-packages/celery/utils/__pycache__/saferepr.cpython-39.pyc
a
X>h># � @ s� d Z ddlZddlmZmZ ddlmZ ddlmZ ddl m
Z
ddlmZ ddl
mZmZmZmZmZmZmZmZmZmZ d d
lmZ dZedd
�Zedd�Zedd�Zedd�Zee fZ!e
fZ"e#e$fZ%eddd �Z&eddd�Z'eddd�Z(eddd �Z)eddd�Z*eddd�Z+eddd �Z,eddd�Z-eddd �Z.eddd�Z/eddd�Z0d<d d!�Z1e'e+fd"d#�Z2e+fd$d%�Z3d&d'� Z4d(d)� Z5d=d+d,�Z6d-d.� Z7d/d0� Z8d1d2� Z9d3d4� Z:d>d5d6�Z;d7d8� Z<ddde=feee e>e>eee d9�d:d;�Z?dS )?a� 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�Optional�Sequence�Set�Tuple� )�truncate)�saferepr�
reprstream�_literal)�valuer � direction�_key)r �_quoted�_dirty)�objid�{F�: T�}����[�]z, �(�)z,)� c C s d� t| |||d��S )z�Safe 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'