ó
'=[c           @   sI   d  Z  d d l m Z d d l m Z d e f d     YZ d   Z d S(   s/   NotebookNode - adding attribute access to dictsi˙˙˙˙(   t   Struct(   t   Mappingt   NotebookNodec           B   s    e  Z d  Z d   Z d   Z RS(   s&   A dict-like node with attribute-accessc         C   sK   t  | t  r. t  | t  r. t |  } n  t t |   j | |  d  S(   N(   t
   isinstanceR   R   t	   from_dictt   supert   __setitem__(   t   selft   keyt   value(    (    s4   lib/python2.7/site-packages/nbformat/notebooknode.pyR   
   s    c         O   sň   t  |  d k r+ t d t  |    n  | rÇ | d } t | t  rl xw | D] } | | |  | <qQ WqÇ t | d  rŁ xF | j   D] } | | |  | <q WqÇ x! | D] \ } } | |  | <qŞ Wn  x$ | j   D] \ } } | |  | <qÔ Wd S(   sf   
        A dict-like update method based on CPython's MutableMapping `update`
        method.
        i   s+   update expected at most 1 arguments, got %di    t   keysN(   t   lent	   TypeErrorR   R   t   hasattrR
   t   items(   R   t   argst   kwargst   otherR   R	   (    (    s4   lib/python2.7/site-packages/nbformat/notebooknode.pyt   update   s    
(   t   __name__t
   __module__t   __doc__R   R   (    (    (    s4   lib/python2.7/site-packages/nbformat/notebooknode.pyR      s   	c         C   sc   t  |  t  r) t d   |  j   D  St  |  t t f  r[ g  |  D] } t |  ^ qE S|  Sd S(   sß   Convert dict to dict-like NotebookNode

    Recursively converts any dict in the container to a NotebookNode.
    This does not check that the contents of the dictionary make a valid
    notebook or part of a notebook.
    c         S   s%   i  |  ] \ } } t  |  |  q S(    (   R   (   t   .0t   kt   v(    (    s4   lib/python2.7/site-packages/nbformat/notebooknode.pys
   <dictcomp>.   s   	 N(   R   t   dictR   R   t   tuplet   listR   (   t   dt   i(    (    s4   lib/python2.7/site-packages/nbformat/notebooknode.pyR   &   s
    N(   R   t   ipython_genutils.ipstructR    t   collectionsR   R   R   (    (    (    s4   lib/python2.7/site-packages/nbformat/notebooknode.pyt   <module>   s   