ó
ĵS]c           @@  s   d  Z  d d l m Z d d l Z d d l Z d d l Z d d l m Z e j d e j	  Z
 e j d e j	  Z d   Z d   Z d S(	   s   Analyze notebook files.i    (   t   absolute_importN(   t	   is_strings   #.*$s   ^\s*@fusion\.registerc         C@  s+   t  j t d |   }  t  j t |   d  k	 S(   Nt    (   t   ret   subt   _comment_ret   matcht   _fusion_register_ret   None(   t   source(    (    sJ   lib/python2.7/site-packages/anaconda_project/internal/notebook_analyzer.pyt   _has_fusion_register   s    c         C@  sI  y= t  j |  d d " } | j   } t j |  } Wd  QXWn1 t k
 rp } | j d |  t |  f  d  SXt	   } t
 } t | t	  r2d | k r2t | d t  r2x | d D]r } d | k rı t | d t  r+d j g  | d D] }	 t |	  rï |	 ^ qï  }
 t |
  r(t } q(q+qı qı Wn  | rEt | d <n  | S(   Nt   encodings   utf-8s   Failed to read or parse %s: %st   cellsR	   R   t   registers_fusion_function(   t   codecst   opent   readt   jsont   loadst	   Exceptiont   appendt   strR   t   dictt   Falset
   isinstancet   listt   joinR   R
   t   True(   t   filenamet   errorst   ft   json_stringt   parsedt   et   extrast   found_fusiont   cellt   sR	   (    (    sJ   lib/python2.7/site-packages/anaconda_project/internal/notebook_analyzer.pyR"      s*    	2(   t   __doc__t
   __future__R    R   R   R   t$   anaconda_project.internal.py2_compatR   t   compilet	   MULTILINER   R   R
   R"   (    (    (    sJ   lib/python2.7/site-packages/anaconda_project/internal/notebook_analyzer.pyt   <module>   s   	