B
    lz]	                 @   s   d dl mZmZmZmZ d dlZd dlmZ ddlm	Z	m
Z
mZ ddlmZ ddlmZ eeZed	d
 Ze Zdd Zejje
e e	rdd Z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_literalsN)	getLogger   )PY2odictensure_text_type   )memoize)EntityEncoderc              C   sT   ydd l } W nB tk
rN   y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.7/site-packages/conda/common/serialize.pyget_yaml   s    r   c             C   sJ   g }x6|  D ]*\}}| |}| |}|||f qW 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   |  |dS )Nzutf-8)Zrepresent_strencode)selfr   r   r   r   represent_unicode0   s    r   c             C   s   t j| t jddS )Nz1.2)Loaderversion)r   loadZRoundTripLoader)stringr   r   r   	yaml_load7   s    r   c             C   s   t j| t jddS )zV
    Examples:
        >>> yaml_load_safe("key: value")
        {'key': 'value'}

    z1.2)r   r   )r   r   Z
SafeLoader)r   r   r   r   yaml_load_safe;   s    r    c             C   s   t j| t jddS )zUses the default (unsafe) loader.

    Examples:
        >>> yaml_load_standard("prefix: !!python/unicode '/Users/darwin/test'")
        {'prefix': '/Users/darwin/test'}
    z1.2)r   r   )r   r   r   )r   r   r   r   yaml_load_standardE   s    r!   c             C   s   t j| t jddddS )zdump object to stringr   F)ZDumperZblock_seq_indentZdefault_flow_styleindent)r   dumpZRoundTripDumper)objectr   r   r   	yaml_dumpO   s    
r%   c             C   s
   t | S )N)jsonloads)r   r   r   r   	json_loadV   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_dumpZ   s    r,   ) Z
__future__r   r   r   r   r&   Zloggingr   compatr   r	   r
   Z_vendor.auxlib.decoratorsr   Z_vendor.auxlib.entityr   __name__logr   r   r   ZrepresenterZRoundTripRepresenterZadd_representerr   Zunicoder   r    r!   r%   r(   r,   r   r   r   r   <module>   s&   

