�
�Udac @` s� d Z d d l m Z m Z m Z e Z d d l m Z m Z d d l
m Z m Z m
Z
d e e f d � � YZ d � Z e d � Z e d � Z d
� Z d S( s* Collection of low-level utility functions.i ( t absolute_importt divisiont print_function( t binary_typet text_type( t Hashablet Mappingt Sequencet
ImmutableDictc B` sV e Z d Z d � Z d � Z d � Z d � Z d � Z d � Z d � Z d � Z
RS( s! Dictionary that cannot be updatedc O` s t | | � | _ d S( N( t dictt _store( t selft argst kwargs( ( sK /usr/lib/python2.7/site-packages/ansible/module_utils/common/collections.pyt __init__ s c C` s | j | S( N( R
( R t key( ( sK /usr/lib/python2.7/site-packages/ansible/module_utils/common/collections.pyt __getitem__ s c C` s
| j j � S( N( R
t __iter__( R ( ( sK /usr/lib/python2.7/site-packages/ansible/module_utils/common/collections.pyR s c C` s
| j j � S( N( R
t __len__( R ( ( sK /usr/lib/python2.7/site-packages/ansible/module_utils/common/collections.pyR s c C` s t t | j � � � S( N( t hasht frozensett items( R ( ( sK /usr/lib/python2.7/site-packages/ansible/module_utils/common/collections.pyt __hash__ s c C` s d j t | j � � S( Ns ImmutableDict({0})( t formatt reprR
( R ( ( sK /usr/lib/python2.7/site-packages/ansible/module_utils/common/collections.pyt __repr__ s c C` s t | j | � S( s�
Create an ImmutableDict as a combination of the original and overriding_mapping
:arg overriding_mapping: A Mapping of replacement and additional items
:return: A copy of the ImmutableDict with key-value pairs from the overriding_mapping added
If any of the keys in overriding_mapping are already present in the original ImmutableDict,
the overriding_mapping item replaces the one in the original ImmutableDict.
( R R
( R t overriding_mapping( ( sK /usr/lib/python2.7/site-packages/ansible/module_utils/common/collections.pyt union"