U
    H4f                     @   s*   d dl mZ d dlmZ G dd dZdS )    )OrderedDict)StringIOc                   @   s"   e Zd ZdZdd Zd	ddZdS )
PrettyPrinterzgCleaner pprint output.

    Heavily inspired by the Python pprint module, but more basic for now.

    c                 C   s   t  }| || | S )N)r   _formatgetvalue)selfobjstream r
   4/tmp/pip-unpacked-wheel-04z2hmy8/zeep/xsd/printer.pypformat   s    zPrettyPrinter.pformat      c                 C   s  t t|dd }|j}t|tr*|tjks>t|tr|tjkr|d t|}|dkrt|	 D ]`\}\}	}
|d||   |d|	  |d | j
|
||d d ||d k r|d	 |d
 qb|d||d    |d n,t|tr|tjkr|d t|}|dkr|d
 t|D ]L\}}
|d||   | j
|
||d d ||d k rh|d	 |d
 q&|d||d    |d n~t|}
d
|
kr|
d
}t|}t|D ]F\}}|dkr|d||d    || ||d k r|d
 qn||
 d S )N__repr__z{
r    z'%s'z: r   )level,
}[])getattrtypewrite
isinstancedictr   r   len	enumerateitemsr   listreprsplit)r   r   r	   indentr   _reprr   numikeyvaluelinesliner
   r
   r   r      sX    





zPrettyPrinter._formatN)r   r   )__name__
__module____qualname____doc__r   r   r
   r
   r
   r   r      s   r   N)collectionsr   ior   r   r
   r
   r
   r   <module>   s   