�
�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 d d l
m Z m Z d d l
m Z d Z d e f d � � YZ e d d
� Z d S( i ( t absolute_importt divisiont print_functionN( t PY3( t to_bytest to_text( t MutableMappingt environt _TextEnvironc B` sJ e Z d Z d d d � Z d � Z d � Z d � Z d � Z d � Z RS( s�
Utility class to return text strings from the environment instead of byte strings
Mimics the behaviour of os.environ on Python3
c C` sU | d k r t j } n | | _ i | _ | d k rH t j � | _ n | | _ d S( N( t Nonet osR t _raw_environt _value_cachet syst getfilesystemencodingt encoding( t selft envR ( ( s; /usr/lib/python2.7/site-packages/ansible/utils/py3compat.pyt __init__ s c C` s | j | =d S( N( R ( R t key( ( s; /usr/lib/python2.7/site-packages/ansible/utils/py3compat.pyt __delitem__, s c C` s\ | j | } t r | S| | j k rQ t | d | j d d d d �| j | <n | j | S( NR t nonstringt passthrut errorst surrogate_or_strict( R R R R R ( R R t value( ( s; /usr/lib/python2.7/site-packages/ansible/utils/py3compat.pyt __getitem__/ s
c C` s, t | d | j d d d d �| j | <d S( NR R t strictR R ( R R R ( R R R ( ( s; /usr/lib/python2.7/site-packages/ansible/utils/py3compat.pyt __setitem__: s c C` s
| j j � S( N( R t __iter__( R ( ( s; /usr/lib/python2.7/site-packages/ansible/utils/py3compat.pyR >