�
�Udac @` s� d d l m Z m Z m Z e Z d d l Z d d l Z d d l m Z m
Z
m Z d d l m
Z
d d l m Z m Z m Z d � Z d � Z d d d
� Z d d d � Z d S( i ( t absolute_importt divisiont print_functionN( t to_bytest to_nativet to_text( t Set( t binary_typet iteritemst text_typec C` sO t | t � r t | � St | t j � r5 | j � St d t | � � � d S( Ns Cannot json serialize %s( t
isinstanceR t listt datetimet isoformatt TypeErrorR ( t obj( ( sO /usr/lib/python2.7/site-packages/ansible/module_utils/common/text/converters.pyt _json_encode_fallback s
c K` s� x� d D]� } y t j | d | d t | �SWq t k
r� y t | d | �} Wn t k
ri q n Xt j | d t | �St k
r� q q Xq Wt d � � d S( Ns utf-8s latin-1t encodingt defaults$ Invalid unicode encoding encountered( s utf-8s latin-1( t jsont dumpsR R t container_to_textt UnicodeDecodeErrort UnicodeError( t datat kwargsR t new_data( ( sO /usr/lib/python2.7/site-packages/ansible/module_utils/common/text/converters.pyt jsonify s
s utf-8t surrogate_or_strictc ` s� t | t � r% t | d � d � �St | t � rW t � � f d � t | � D� � St | t � r� g | D] } t | � � � ^ qm St | t � r� t � � f d � | D� � S| Sd S( s� Recursively convert dict keys and values to byte str
Specialized for json return because this only handles, lists, tuples,
and dict container types (the containers that the json module returns)
R t errorsc 3` s! | ] } t | � � � Vq d S( N( t container_to_bytes( t .0t o( R R ( sO /usr/lib/python2.7/site-packages/ansible/module_utils/common/text/converters.pys <genexpr>6 s c 3` s! | ] } t | � � � Vq d S( N( R ( R R ( R R ( sO /usr/lib/python2.7/site-packages/ansible/module_utils/common/text/converters.pys <genexpr>: s N( R
R R t dictR R R t tuple( t dR R R ( ( R R sO /usr/lib/python2.7/site-packages/ansible/module_utils/common/text/converters.pyR , s ##c ` s� t | t � r% t | d � d � �St | t � rW t � � f d � t | � D� � St | t � r� g | D] } t | � � � ^ qm St | t � r� t � � f d � | D� � S| Sd S( s� Recursively convert dict keys and values to text str
Specialized for json return because this only handles, lists, tuples,
and dict container types (the containers that the json module returns)
R R c 3` s! | ] } t | � � � Vq d S( N( R ( R R ( R R ( sO /usr/lib/python2.7/site-packages/ansible/module_utils/common/text/converters.pys <genexpr>J s c 3` s! | ] } t | � � � Vq d S( N( R ( R R ( R R ( sO /usr/lib/python2.7/site-packages/ansible/module_utils/common/text/converters.pys <genexpr>N s N( R
R R R! R R R R"