U
    bH                     @   s   d dl mZmZmZmZ d dlmZ d dlZd dlm	Z	 ddl
mZmZ ddlmZ e	eZedd	d
d Ze Zdd Zejjee ejjee dd Zdd Zdd Zdd Zdd Zdd ZdS )    )absolute_importdivisionprint_functionunicode_literals)	lru_cacheN)	getLogger   )odictensure_text_type   )EntityEncoder)maxsizec                  C   sT   zdd l } W nB tk
rN   zdd lm}  W n tk
rH   tdY nX Y nX | S )Nr   z@No yaml library available.
To proceed, conda install ruamel_yaml)Zruamel_yamlImportErrorZruamel.yamlyaml)r    r   5lib/python3.8/site-packages/conda/common/serialize.pyget_yaml   s    r   c                 C   sF   g }|  D ]*\}}| |}| |}|||f qtjd|S )Nztag:yaml.org,2002:map)itemsZrepresent_dataappendr   ZnodesZMappingNode)ZdumperdatavalueZitem_keyZ
item_valueZnode_keyZ
node_valuer   r   r   represent_ordereddict!   s    

r   c                 C   s   t j| ddS )N1.2version)r   Zround_trip_loadstringr   r   r   yaml_round_trip_load1   s    r   c                 C   s   t j| ddS )zV
    Examples:
        >>> yaml_safe_load("key: value")
        {'key': 'value'}

    r   r   )r   Z	safe_loadr   r   r   r   yaml_safe_load5   s    r   c                 C   s   t j| ddddS zdump object to stringr   F)Zblock_seq_indentZdefault_flow_styleindent)r   Zround_trip_dumpobjectr   r   r   yaml_round_trip_dump?   s       r#   c                 C   s   t j| ddddS r   )r   Z	safe_dumpr!   r   r   r   yaml_safe_dumpF   s       r$   c                 C   s
   t | S )N)jsonloadsr   r   r   r   	json_loadM   s    r'   c                 C   s   t tj| dddtdS )Nr   T),z: )r    Z	sort_keysZ
separatorscls)r
   r%   dumpsr   r!   r   r   r   	json_dumpQ   s     r+   )Z
__future__r   r   r   r   	functoolsr   r%   Zloggingr   compatr	   r
   Zauxlib.entityr   __name__logr   r   r   ZrepresenterZRoundTripRepresenterZadd_representerZSafeRepresenterr   r   r#   r$   r'   r+   r   r   r   r   <module>   s$   

