ó
Š[‚Rc           @   s   d  d l  Z  d  d l Z d  d l Z d  d l m Z m Z d  d l m Z d  d l m Z d e f d „  ƒ  YZ	 d e
 f d „  ƒ  YZ d	 Z d
 e f d „  ƒ  YZ d „  Z d d „ Z d „  Z d „  Z e rÛ d „  Z n	 d „  Z d d d „ Z d „  Z d S(   iÿÿÿÿN(   t   Loadert   Dumper(   t   translators(   t   str_to_boolt	   BazDumperc           B   s   e  Z d  „  Z RS(   c         C   s(   t  j |  | ƒ } | r$ t | _ n  | S(   N(   R   t   analyze_scalart   Truet   allow_block(   t   selft   scalart   ret(    (    sE   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazyaml/format.pyR      s    (   t   __name__t
   __module__R   (    (    (    sE   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazyaml/format.pyR      s   t   InvalidBazFilec           B   s   e  Z RS(    (   R   R   (    (    (    sE   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazyaml/format.pyR      s   u   !includet   Includec           B   s   e  Z d  „  Z d „  Z RS(   c         C   s   | |  _  | |  _ d  S(   N(   t   valt   ext(   R   R   R   (    (    sE   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazyaml/format.pyt   __init__   s    	c         C   s   t  | t ƒ o | j |  j k S(   N(   t
   isinstanceR   R   (   R   t   other(    (    sE   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazyaml/format.pyt   __eq__   s    (   R   R   R   R   (    (    (    sE   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazyaml/format.pyR      s   	c         C   s8   |  j  ƒ  } t | | ƒ s4 t d | | f ƒ ‚ n  | S(   Ns   Expected %s, got %s(   t   nextR   R   (   t   seqt   evtt   e(    (    sE   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazyaml/format.pyt   expect!   s    c         C   sK   | j  d ƒ s t | ƒ ‚ | d  k	 r: | j | ƒ r: | Sd |  | | f S(   Nt   .s   %s.%s%s(   t
   startswitht   AssertionErrort   Nonet   endswith(   t   enamet   pnameR   t   previous(    (    sE   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazyaml/format.pyt   default_include_name'   s    c         C   s*   d |  k s t  |  ƒ d k r" d Sd  Sd  S(   Ns   
i<   t   |(   t   lenR   (   t   value(    (    sE   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazyaml/format.pyt   style_for_value-   s    c         #   s÷  d  } t ˆ d ƒ r* ‡ ‡ f d †  } n	 d „  } i t ƒ  ˆ 6} ˆ j ˆ ƒ t | t j ƒ V| j ƒ  } t | t j	 ƒ r	| ƒ  ‰  ˆ  rð t j
 d t ƒ Vt t j d d  d d  d t d t ƒ t j ƒ  t j ƒ  g ƒ } ‡  f d	 †  } q3| Vˆ j ˆ ƒ d  Sn* t | t j
 ƒ r#| Vn t d
 | ƒ ‚ | j ƒ  } t | t j ƒ r| j d k rò| ƒ  ‰  ˆ  rÈt j d d  d d  d t d t ƒ Vt t j ƒ  t | t j ƒ g ƒ } ‡  f d †  } q| Vt | t j ƒ Vˆ j ˆ ƒ d  Sq2t d | j ƒ ‚ n* t | t j ƒ r"| Vn t d | ƒ ‚ yuxn| D]f} t | t j ƒ rä| ƒ  ‰  ˆ  rÛxuˆ  D]j} t | t ƒ s‘t t | ƒ ƒ ‚ t j d d  d d  d t t f d d  d | ƒ Vt ˆ  | t ƒ rt j d d  d d  d t t f d t ˆ  | ƒ d ˆ  | ƒ Vqjˆ  | \ } }	 t |	 t ƒ sHt t ˆ  | ƒ ƒ ‚ t ˆ | | ƒ }
 ˆ j |
 |	 d t ƒ}
 d |
 k sŠt |
 ƒ ‚ |
 j | ƒ s«t |
 | f ƒ ‚ t j d d  d t d t t f d |
 ƒ VqjWn  | VPn“ t | t j ƒ swt | t j ƒ r-| d  k	 r-t d ˆ | f ƒ ‚ qwt | t j ƒ rd| d  k	 rdt d ˆ | f ƒ ‚ qwt d | ƒ ‚ n  | d  k	 rH| j t k rWd | j k rÀt d | j ˆ | f ƒ ‚ n  | j j d ƒ rñt d | j ˆ | f ƒ ‚ n  ˆ j  | j ƒ }	 |	 d  k r.t d | j ˆ | f ƒ ‚ n  t! |	 d | j j" d d ƒ d ƒ }	 n' | j d( k sut | j ƒ ‚ | j }	 | | ˆ k r§t d | ˆ f ƒ ‚ n  | ˆ j# | ƒ | } d  } ˆ j$ ˆ | |	 ƒ } | d  k	 r¢t | t t! f ƒ st t | ƒ ƒ ‚ t |	 t t! f ƒ s3t t |	 ƒ ƒ ‚ | |	 k r8t | t! ƒ rê| j t k rf| j n d  } t ˆ | | j% | ƒ }
 ˆ j |
 | j& d |
 | k ƒ}
 d |
 k s½t |
 ƒ ‚ t | _ t t f | _' d  | _( |
 | _ n0 d  | _ t t f | _' t | ƒ | _( | | _ | j( d  k r8d | _( q8n  | V| Vq¢q<ˆ d  k	 r<| j d) k srt | j ƒ ‚ ˆ t k rt d ƒ ‚ n  | j } | } q<q<q<WWnõ t j) j* k
 rž} | j+ rÞd  t | j+ ƒ } n d } | j, r'| j, j d! ƒ r'| d  k	 r't d" ˆ | | f ƒ ‚ qŸ| j, rg| j, d# k rg| d  k	 rgt d$ ˆ | | f ƒ ‚ qŸ| j, r˜| j, d% k r˜t d& ˆ | f ƒ ‚ qŸ‚  n Xt | t j ƒ Vt | t j	 ƒ V| d  k	 ræt d' ˆ | f ƒ ‚ n  ˆ j ˆ ƒ d  S(*   Nt   get_new_propertiesc              s   ˆ j  ˆ  ƒ S(   N(   R'   (    (   t   curret   handler(    sE   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazyaml/format.pyt   <lambda>7   s    c           S   s   d  S(   N(   R   (    (    (    sE   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazyaml/format.pyR*   9   s    t   explicitt   anchort   tagt   implicitt
   flow_stylec              s   ˆ  S(   N(    (    (   t   extra(    sE   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazyaml/format.pyR*   N   s    s   Got %s at start of document.t    c              s   ˆ  S(   N(    (    (   R0   (    sE   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazyaml/format.pyR*   d   s    s*   Non-empty scalar '%s' at start of mapping.s   Got %s at start of mapping.t   styleR%   t   newt   /sP   Unexpected sequence in value for %s.%s; values starting with a [ must be quoted.sO   Unexpected mapping in value for %s.%s; values starting with a { must be quoted.s   Unexpected yaml event: %ss<   Includes must not be in a different directory! (%s in %s.%s)s   .yamls-   Includes must not end in .yaml! (%s in %s.%s)s%   Couldn't read include '%s' for %s.%s!R   i   iÿÿÿÿu   !s#   Prop '%s' set more than once in %s!s   Lines after end of file!s   
s   but found '*'sN   Malformed alias in value for %s.%s; values starting with a * must be quoted.%ss!   mapping keys are not allowed heresU   Unexpected mapping key in value for %s.%s; values starting with a ? must be quoted.%ss#   mapping values are not allowed heresG   Unexpected mapping value in %s; values containing a : must be quoted.%ss   %s.%s unclosed!(   Nu   !(   Nu   !(-   R   t   hasattrt   sett   start_elementR   t   yamlt   StreamStartEventR   R   t   StreamEndEventt   DocumentStartEventt   Falset   itert   MappingStartEventR   t   MappingEndEventt   DocumentEndEventt   end_elementR   t   ScalarEventR%   t   unicodeR   t   reprR&   t   strR"   t   set_includeR   t   INCLUDEt   SequenceStartEventR-   t   get_includeR   t   rsplitt   addt   propR   R   R.   R2   t   scannert   ScannerErrort   problem_markt   problem(   R(   R)   R   t   currpt	   get_extrat   seenR   t   pR   R   t   namet   oldcurrpR
   t   oldnamet   currpet   suffix(    (   R0   R)   R(   sE   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazyaml/format.pyt   parse_h3   s0   					!	%!)	''								c         C   s   t  j t |  ƒ IJ|  S(   N(   t   syst   stderrRD   (   t   s(    (    sE   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazyaml/format.pyRT   ê   s    c         C   s   |  S(   N(    (   R]   (    (    sE   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazyaml/format.pyR*   î   s    c   
      C   s=  | d  k r$ t j |  d d ƒ } n  |  j d ƒ s9 t ‚ |  j d d ƒ d j d d ƒ d } yt t | | t j | d	 t	 ƒƒ } | rÁ g  | D] } t
 | ƒ ^ q } t j | | d
 t ƒn x | D] } qÈ WWnc t j k
 r8}	 t j |  IJt |	 d ƒ r2t j |	 j It |	 j ƒ IJ|  |	 j _ n  ‚  n Xd  S(   Nt   rs   utf-8s   .yamlR4   i   iÿÿÿÿR   i    R    R   RO   (   R   t   codecst   openR   R   RJ   RZ   R8   t   parseR    RT   t   emitR   t	   YAMLErrorR[   R\   R5   RO   t   dirRU   (
   t   pathR)   t   inft   outfR(   t   iteratorR]   t   yR   t   exc(    (    sE   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazyaml/format.pyRa   ò   s"    &!c         C   sI   |  d k s t  ‚ |  d k r( t | ƒ S|  d k rA | j d ƒ S| Sd  S(   Nt   flavort   defaultt   visiblet   comments   utf-8(   s   flavors   defaults   visibles   comment(   R   R   t   encode(   t   attrR%   (    (    sE   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazyaml/format.pyt   interpret_as_prop  s    
(   R[   R_   R8   R    R   t   bazbaseR   t   bazbase.flavorsR   R   t	   ExceptionR   RG   t   objectR   R   R   R"   R&   RZ   R<   RT   Ra   Rq   (    (    (    sE   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazyaml/format.pyt   <module>   s$   			¶	