ó
–‰]c           @@  s:   d  d l  m Z d  d l m Z d e f d „  ƒ  YZ d S(   i    (   t   absolute_import(   t   defaultdictt   BoundDictionaryc           B@  s#   e  Z d  Z d d „ Z d „  Z RS(   s  
    A default dictionary where elements are tightly coupled.

    The factory method is responsible for binding the parent object to the child.

    If a reference attribute is assigned then child objects will have the key assigned to this.

    Otherwise it's just a defaultdict.
    c         O@  s&   | |  _  t t |  ƒ j | | Ž  d  S(   N(   t	   referencet   superR   t   __init__(   t   selfR   t   argst   kw(    (    s>   lib/python2.7/site-packages/openpyxl/utils/bound_dictionary.pyR      s    	c         C@  sA   t  t |  ƒ j | ƒ } |  j d  k	 r= t | |  j | ƒ n  | S(   N(   R   R   t   __getitem__R   t   Nonet   setattr(   R   t   keyt   value(    (    s>   lib/python2.7/site-packages/openpyxl/utils/bound_dictionary.pyR	      s    N(   t   __name__t
   __module__t   __doc__R
   R   R	   (    (    (    s>   lib/python2.7/site-packages/openpyxl/utils/bound_dictionary.pyR      s   	N(   t
   __future__R    t   collectionsR   R   (    (    (    s>   lib/python2.7/site-packages/openpyxl/utils/bound_dictionary.pyt   <module>   s   