
>_[c           @@ s  d  d l  m Z m Z d  d l Z d  d l Z d  d l m Z m Z m Z d  d l	 m
 Z
 e r d  d l m Z m Z m Z n d  d l m Z m Z m Z e r d  d l m Z m Z m Z m Z m Z n  d d d	 d
 d d d g Z d Z d Z d Z d Z d Z d Z d e f d     YZ d   Z  d e f d     YZ! d e f d     YZ" d e f d     YZ# d e f d     YZ$ d e f d      YZ% d e& e% f d!     YZ' d e( e% f d"     YZ) d# e f d$     YZ* d% e* e f d&     YZ+ d' e* e f d(     YZ, d) e* f d*     YZ- d	 e e% f d+     YZ. d
 e. f d,     YZ/ d e e. f d-     YZ0 d. e% f d/     YZ1 d0 d1 e j2 d2  Z3 d S(3   i    (   t   absolute_importt   print_functionN(   t   ordereddictt   PY2t   string_types(   t   ScalarString(   t
   MutableSett   Sizedt   Set(   t   Anyt   Dictt   Optionalt   Listt   Uniont   CommentedSeqt   CommentedKeySeqt   CommentedMapt   CommentedOrderedMapt   CommentedSett   comment_attribt   merge_attribt   _yaml_commentt   _yaml_formatt   _yaml_line_colt   _yaml_anchort   _yaml_merget	   _yaml_tagt   Commentc           B@ sw   e  Z d Z e Z d   Z d   Z e d    Z e d    Z	 e	 j
 d    Z	 e d	    Z e j
 d
    Z RS(   t   commentt   _itemst   _endt   _startc         C@ s   d  |  _ i  |  _ g  |  _ d  S(   N(   t   NoneR   R   R   (   t   self(    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt   __init__,   s    		c         C@ sD   t  |  j  r% d t |  j  } n d } d j |  j |  j |  S(   Ns   ,
  end=t    s$   Comment(comment={0},
  items={1}{2})(   t   boolR   t   strt   formatR   R   (   R!   t   end(    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt   __str__6   s
    c         C@ s   |  j  S(   N(   R   (   R!   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt   items?   s    c         C@ s   |  j  S(   N(   R   (   R!   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR'   D   s    c         C@ s   | |  _  d  S(   N(   R   (   R!   t   value(    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR'   I   s    c         C@ s   |  j  S(   N(   R   (   R!   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt   startN   s    c         C@ s   | |  _  d  S(   N(   R   (   R!   R*   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR+   S   s    (   R   R   R   R   (   t   __name__t
   __module__t	   __slots__R   t   attribR"   R(   t   propertyR)   R'   t   setterR+   (    (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR   &   s   	
		c           C@ s   d  S(   N(    (    (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt	   NoCommentZ   s    t   Formatc           B@ s;   e  Z d Z e Z d   Z d   Z d   Z d d  Z	 RS(   t   _flow_stylec         C@ s   d  |  _ d  S(   N(   R    R4   (   R!   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR"   c   s    c         C@ s   t  |  _ d  S(   N(   t   TrueR4   (   R!   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt   set_flow_styleg   s    c         C@ s   t  |  _ d  S(   N(   t   FalseR4   (   R!   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt   set_block_stylek   s    c         C@ s   |  j  d k r | S|  j  S(   s  if default (the flow_style) is None, the flow style tacked on to
        the object explicitly will be taken. If that is None as well the
        default flow style rules the format down the line, or the type
        of the constituent values (simple -> flow, map/list -> block)N(   R4   R    (   R!   t   default(    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt
   flow_styleo   s    (   R4   N(
   R,   R-   R.   t   format_attribR/   R"   R6   R8   R    R:   (    (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR3   _   s   			t   LineColc           B@ sM   e  Z e Z d    Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 RS(   c         C@ s   d  |  _ d  |  _ d  |  _ d  S(   N(   R    t   linet   colt   data(   R!   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR"   }   s    		c         C@ s,   |  j  d  k r i  |  _  n  | |  j  | <d  S(   N(   R?   R    (   R!   t   keyR?   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt   add_kv_line_col   s    c         C@ s   |  j  | d d  S(   Ni    i   (   t   _kv(   R!   t   k(    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR@      s    c         C@ s   |  j  | d d  S(   Ni   i   (   RB   (   R!   RC   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR*      s    c         C@ s2   |  j  d  k r d  S|  j  | } | | | | f S(   N(   R?   R    (   R!   RC   t   x0t   x1R?   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyRB      s    c         C@ s3   |  j  d  k r d  S|  j  | d |  j  | d f S(   Ni    i   (   R?   R    (   R!   t   idx(    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt   item   s    c         C@ s,   |  j  d  k r i  |  _  n  | |  j  | <d  S(   N(   R?   R    (   R!   R@   R?   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt   add_idx_line_col   s    (   R,   R-   t   line_col_attribR/   R"   RA   R@   R*   RB   RG   RH   (    (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR<   z   s   						t   Anchorc           B@ s   e  Z d Z e Z d   Z RS(   R*   t   always_dumpc         C@ s   d  |  _ t |  _ d  S(   N(   R    R*   R7   RK   (   R!   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR"      s    	(   R*   RK   (   R,   R-   R.   t   anchor_attribR/   R"   (    (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyRJ      s   t   Tagc           B@ s,   e  Z d  Z d Z e Z d   Z d   Z RS(   s'   store tag information for roundtrippingR*   c         C@ s   d  |  _ d  S(   N(   R    R*   (   R!   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR"      s    c         C@ s   d j  |   S(   Ns#   {0.__class__.__name__}({0.value!r})(   R&   (   R!   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt   __repr__   s    (   R*   (   R,   R-   t   __doc__R.   t
   tag_attribR/   R"   RN   (    (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyRM      s
   	t   CommentedBasec           B@ s  e  Z e d     Z e d  Z e d  Z e d  Z d d  Z d d d d d  Z
 e d    Z e d d  Z e d	    Z d
   Z d   Z d   Z e d    Z d   Z e d  Z e d    Z d   Z e d  Z d   Z d   Z d   Z RS(   c         C@ s;   t  |  t j  s+ t |  t j t    n  t |  t j  S(   N(   t   hasattrR   R/   t   setattrt   getattr(   R!   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt   ca   s    c         C@ sN   | d  k r d  S| s( |  j j d  k r7 g  |  j _ n  |  j j j |  d  S(   N(   R    RU   R'   t   extend(   R!   R   t   clear(    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt   yaml_end_comment_extend   s
    c         C@ s   |  j  j j | d  d  d  d  g  } | s: | d d  k rw | d d  k	 rf t | d t  sf t  n  | d | d <n | d j | d  | d | d <d  S(   Ni   i    (   RU   R   t
   setdefaultR    t
   isinstancet   listt   AssertionErrorRV   (   R!   R@   R   RW   t   r(    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt   yaml_key_comment_extend   s    $c         C@ s   |  j  j j | d  d  d  d  g  } | s: | d d  k rw | d d  k	 rf t | d t  sf t  n  | d | d <n | d j | d  | d | d <d  S(   Ni   i   i    i   (   RU   R   RY   R    RZ   R[   R\   RV   (   R!   R@   R   RW   R]   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt   yaml_value_comment_extend   s    $i    c         C@ s   d d l  m } d d l m } |  j   } | d d k rI | d  } n  | |  } x8 | j d  D]' } | j | d | d | d   qe Wd S(   s   overwrites any preceding comment lines on an object
        expects comment to be without `#` and possible have multiple lines
        i   (   t   CommentMark(   t   CommentTokenis   
s   # N(   t   errorR`   t   tokensRa   t   _yaml_get_pre_commentt   splitt   appendR    (   R!   R   t   indentR`   Ra   t   pre_commentst
   start_markt   com(    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt   yaml_set_start_comment   s    c         @ s  d d l  m } d d l m     f d   } | d k rH | d } n  | r} t |  d k r} | d d k r} | d  } n  | r | d d k r | d  } n  | |  } |  j j j | d g  d d g  }	 | d k r |	 d j	 | d	 |   n= | r6x4 | j
 d  D]  }
 |	 d j	 | |
 |   qWn  | r| |  } |	 d
 d k reg  |	 d
 <n  x4 | j
 d  D]  }
 |	 d
 j	 | |
 |   quWn  d S(   sc   
        expects comment (before/after) to be without `#` and possible have multiple lines
        i    (   R`   (   Ra   c         @ s$     |  r d n d |  d | d   S(   Ns   # R#   s   
(   R    (   t   st   mark(   Ra   (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt   comment_token   s    i   i   is   
R#   i   N(   t   ruamel_yaml.errorR`   t   ruamel_yaml.tokensRa   R    t   lenRU   R)   RY   Rf   Re   (   R!   R@   t   beforeRg   t   aftert   after_indentR`   Rn   Ri   t   cRj   (    (   Ra   s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt!   yaml_set_comment_before_after_key   s,    ($!c         C@ s;   t  |  t j  s+ t |  t j t    n  t |  t j  S(   s<   format attribute

        set_flow_style()/set_block_style()(   RR   R3   R/   RS   RT   (   R!   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt   fa  s    c         C@ s   d d l  m } d d l m } | d	 k r> |  j |  } n  | d d k r[ d | } n  | d	 k r | d d k r d | } d } q n  | |  } | | | d	  d	 g } |  j | d | d	 S(
   s   
        there is a problem as eol comments should start with ' #'
        (but at the beginning of the line the space doesn't have to be before
        the #. The column index is for the # mark
        i   (   Ra   (   R`   i    t   #s   # t    R@   N(   Rc   Ra   Rb   R`   R    t   _yaml_get_columnt   _yaml_add_eol_comment(   R!   R   R@   t   columnRa   R`   Ri   t   ct(    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt   yaml_add_eol_comment  s    
c         C@ s;   t  |  t j  s+ t |  t j t    n  t |  t j  S(   N(   RR   R<   R/   RS   RT   (   R!   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt   lc2  s    c         C@ s   | |  j  _ | |  j  _ d  S(   N(   R   R=   R>   (   R!   R=   R>   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt   _yaml_set_line_col9  s    c         C@ s   |  j  j | |  d  S(   N(   R   RA   (   R!   R@   R?   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt   _yaml_set_kv_line_col>  s    c         C@ s   |  j  j | |  d  S(   N(   R   RH   (   R!   R@   R?   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt   _yaml_set_idx_line_colB  s    c         C@ s;   t  |  t j  s+ t |  t j t    n  t |  t j  S(   N(   RR   RJ   R/   RS   RT   (   R!   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt   anchorF  s    c         C@ s   t  |  t j  s d  S|  j S(   N(   RR   RJ   R/   R    R   (   R!   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt   yaml_anchorM  s    c         C@ s   | |  j  _ | |  j  _ d  S(   N(   R   R*   RK   (   R!   R*   RK   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt   yaml_set_anchorS  s    c         C@ s;   t  |  t j  s+ t |  t j t    n  t |  t j  S(   N(   RR   RM   R/   RS   RT   (   R!   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt   tagX  s    c         C@ s   | |  j  _ d  S(   N(   R   R*   (   R!   R*   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt   yaml_set_tag_  s    c         C@ s   x t  j t j t j t j t j t g D]\ } t |  |  r( | rh t | | t	 j
 t |  |    q t | | t |  |   q( q( Wd  S(   N(   R   R/   R3   R<   RJ   RM   R   RR   RS   t   copyt   deepcopyRT   (   R!   t   tt   deept   a(    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt   copy_attributesc  s    %c         C@ s
   t   d  S(   N(   t   NotImplementedError(   R!   R   R@   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR{   m  s    c         C@ s
   t   d  S(   N(   R   (   R!   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyRd   q  s    c         C@ s
   t   d  S(   N(   R   (   R!   R@   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyRz   u  s    N(   R,   R-   R0   RU   R7   RX   R^   R_   Rk   R    Rv   Rw   R2   R~   R   R   R   R   R   R   R   R   R   R   R{   Rd   Rz   (    (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyRQ      s,   !
					
		c           B@ sk   e  Z e j f Z e d   Z d   Z d   Z d   Z	 d	 d  Z d   Z d   Z d   Z d   Z RS(
   c         C@ s/   | t  k	 r |  j | |  n | |  j _ d  S(   N(   R2   R^   RU   R   (   R!   R   R@   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt   _yaml_add_comment}  s    c         C@ s   |  j  | d | d  S(   NR@   (   R   (   R!   R   R@   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR{     s    c         C@ s   |  j  j | d j j S(   Ni    (   RU   R)   Ri   R|   (   R!   R@   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt   _yaml_get_columnX  s    c         C@ sm   t  j |  | |  xS t |  j j d t D]9 } | | k  rB Pn  |  j j j |  |  j j | d <q, Wd S(   s5   the comments after the insertion have to move forwardt   reversei   N(   R[   t   insertt   sortedRU   R)   R5   t   pop(   R!   RF   t   valt
   list_index(    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR     s
    c         C@ s~   t  j |  |  } |  j j j | d   xO t |  j j  D]; } | | k  rS q; n  |  j j j |  |  j j | d <q; W| S(   Ni   (   R[   R   RU   R)   R    R   (   R!   RF   t   resR   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR     s    'c         C@ s   d  } d  } | d | d } } | |  j j k r< | } nf | |  j j k rW | } nK xH t |   D]: \ } } | | k r Pn  | |  j j k r qd n  | } qd W| d  k	 r |  j |  } n  | S(   Ni   (   R    RU   R)   t	   enumerateR   (   R!   R@   R|   t   sel_idxt   pret   postt   row_idxt   k1(    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyRz     s     		
c         C@ sA   g  } |  j  j d  k r- d  | g |  j  _ n | |  j  j d <| S(   Ni   (   RU   R   R    (   R!   Rh   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyRd     s
    c         C@ sZ   |  j    } | | t |   <x7 |  D]/ } | j t j |   |  j | d t q# W| S(   NR   (   t	   __class__t   idRf   R   R   R   R5   (   R!   t   memoR   RC   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt   __deepcopy__  s    c         C@ sw   | t  |   k  r` t | t  r` t | t  r` t |  | t  r` t |  |  |  } q` n  t j |  | |  d  S(   N(   Rq   RZ   R   R   t   typeR[   t   __setitem__(   R!   RF   R*   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR     s    N(   R,   R-   R   R/   R.   R2   R   R{   R   R   R    R   Rz   Rd   R   R   (    (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR   z  s   				
					c           B@ s>   e  Z d  Z e d  Z d   Z d   Z d   Z d   Z RS(   sE   This primarily exists to be able to roundtrip keys that are sequencesc         C@ s/   | t  k	 r |  j | |  n | |  j _ d  S(   N(   R2   R^   RU   R   (   R!   R   R@   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR     s    c         C@ s   |  j  | d | d  S(   NR@   (   R   (   R!   R   R@   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR{     s    c         C@ s   |  j  j | d j j S(   Ni    (   RU   R)   Ri   R|   (   R!   R@   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR     s    c         C@ s   d  } d  } | d | d } } | |  j j k r< | } nf | |  j j k rW | } nK xH t |   D]: \ } } | | k r Pn  | |  j j k r qd n  | } qd W| d  k	 r |  j |  } n  | S(   Ni   (   R    RU   R)   R   R   (   R!   R@   R|   R   R   R   R   R   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyRz     s     		
c         C@ sA   g  } |  j  j d  k r- d  | g |  j  _ n | |  j  j d <| S(   Ni   (   RU   R   R    (   R!   Rh   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyRd     s
    (	   R,   R-   RO   R2   R   R{   R   Rz   Rd   (    (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR     s   			t   CommentedMapViewc           B@ s)   e  Z d Z d   Z d   Z d   Z RS(   t   _mappingc         C@ s   | |  _  d  S(   N(   R   (   R!   t   mapping(    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR"     s    c         C@ s   t  |  j  } g  } x t |  j t g   D]o } xU | d D]I } |  j j |  rZ q< n  x( | D] } | | k ra Pqa qa W| d 7} q< W| j | d  q+ W| S(   Ni   (   Rq   R   RT   R   t   _unmerged_containsRf   (   R!   t   countt   donet   mergedt   xt   y(    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt   __len__  s    c         C@ s   d j  |   S(   Ns&   {0.__class__.__name__}({0._mapping!r})(   R&   (   R!   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyRN     s    (   R   (   R,   R-   R.   R"   R   RN   (    (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR     s   		t   CommentedMapKeysViewc           B@ s/   e  Z d Z e d     Z d   Z d   Z RS(   c         C@ s
   t  |  S(   N(   t   set(   R!   t   it(    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt   _from_iterable   s    c         C@ s   | |  j  k S(   N(   R   (   R!   R@   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt   __contains__%  s    c         c@ s   x |  j  D] } | Vq
 Wd  S(   N(   R   (   R!   R   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt   __iter__)  s    (    (   R,   R-   R.   t   classmethodR   R   R   (    (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR     s   	t   CommentedMapItemsViewc           B@ s/   e  Z d Z e d     Z d   Z d   Z RS(   c         C@ s
   t  |  S(   N(   R   (   R!   R   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR   2  s    c         C@ s@   | \ } } y |  j  | } Wn t k
 r1 t SX| | k Sd  S(   N(   R   t   KeyErrorR7   (   R!   RG   R@   R*   t   v(    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR   7  s    c         c@ s0   x) |  j  j   D] } | |  j  | f Vq Wd  S(   N(   R   t   _keys(   R!   R@   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR   A  s    (    (   R,   R-   R.   R   R   R   R   (    (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR   /  s   	
t   CommentedMapValuesViewc           B@ s    e  Z d Z d    Z d   Z RS(   c         C@ s/   x( |  j  D] } | |  j  | k r
 t Sq
 Wt S(   N(   R   R5   R7   (   R!   R*   R@   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR   J  s    c         c@ s$   x |  j  D] } |  j  | Vq
 Wd  S(   N(   R   (   R!   R@   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR   Q  s    (    (   R,   R-   R.   R   R   (    (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR   G  s   	c           B@ s  e  Z e j f Z e e d   Z d   Z d   Z d   Z	 d   Z
 d   Z d# d  Z d# e d  Z d   Z d	   Z d
   Z d   Z d# d  Z d   Z d   Z d   Z d   Z d   Z e r d   Z d   Z d   Z n	 d   Z d   Z e r d   Z d   Z  d   Z! n	 d   Z d   Z" e rVd   Z# d   Z$ d   Z% n	 d   Z# e& d     Z' d!   Z( d"   Z) RS($   c         C@ sO   | t  k	 r  |  j | |  d S| t  k	 r? |  j | |  n | |  j _ d S(   s>   values is set to key to indicate a value attachment of commentN(   R2   R^   R_   RU   R   (   R!   R   R@   R*   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR   Z  s    c         C@ s   |  j  | d | d S(   s6   add on the value line, with value specified by the keyR*   N(   R   (   R!   R   R@   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR{   e  s    c         C@ s   |  j  j | d j j S(   Ni   (   RU   R)   Ri   R|   (   R!   R@   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR   j  s    c   
      C@ s  d  } d  } d \ } } } xK |  D]C } | d  k	 rJ | | k rJ | } Pn  | | k r_ | } n  | } q" W| |  j j k r | } nf | |  j j k r | } nK xH t |   D]: \ } }	 |	 | k r Pn  |	 |  j j k r q n  |	 } q W| d  k	 r|  j |  } n  | S(   N(   NNN(   R    RU   R)   R   R   (
   R!   R@   R|   R   R   R   t   lastR   R   R   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyRz   n  s.    	
		
c         C@ sA   g  } |  j  j d  k r- d  | g |  j  _ n | |  j  j d <| S(   Ni   (   RU   R   R    (   R!   Rh   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyRd     s
    c         C@ sK   y t  j |  |  Wn0 t k
 rF x  | D] } | | |  | <q+ Wn Xd  S(   N(   R   t   updatet	   TypeError(   R!   t   valsR   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR     s
    c         C@ s<   t  j |  | | |  | d k	 r8 |  j | d | n  d S(   sP   insert key value into given position
        attach comment if provided
        R@   N(   R   R   R    R~   (   R!   t   posR@   R*   R   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR     s    c         @ s   t  | t  s |  j | |  S   f d     y   | d |   SWn5 t k
 rY | St t f k
 r|  sx   n  | SXd S(   s/   multi-level get that expects dicts within dictsc         @ s{    s t  | t  s t  n  | t |   k r[ | t |   k rK t  n  | |  | d S  |  | d | |  | d  S(   Ni   (   RZ   t   dictR\   Rq   t
   IndexError(   t   key_listt   levelt   d(   t   get_one_levelt   list_ok(    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR     s    	i   N(   RZ   R[   t   getR   R   R   (   R!   R@   R9   R   (    (   R   R   s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt   mlget  s    
c         C@ sh   y t  j |  |  SWnM t k
 rc x6 t |  t g   D]" } | | d k r7 | d | Sq7 W  n Xd  S(   Ni   (   R   t   __getitem__R   RT   R   (   R!   R@   R   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR     s    c         C@ sq   | |  k rZ t  | t  rZ t  | t  rZ t  |  | t  rZ t |  |  |  } qZ n  t j |  | |  d  S(   N(   RZ   R   R   R   R   R   (   R!   R@   R*   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR     s    c         C@ s   t  j |  |  r t Sd  S(   N(   R   R   R5   R    (   R!   R@   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR     s    c         C@ sK   t  j |  |  r t Sx. t |  t g   D] } | | d k r) t Sq) Wt S(   Ni   (   R   R   R5   RT   R   R7   (   R!   R@   R   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR     s    c         C@ s    y |  j  |  SWn | SXd  S(   N(   R   (   R!   R@   R9   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR     s    c         C@ s:   t  |  t  s t j |   Sd t t |  j     d S(   Ns   ordereddict(t   )(   RR   R   R   RN   t   reprR[   R   (   R!   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyRN     s    c         c@ s5   x. t  j |   D] } | t  j |  |  f Vq Wd  S(   N(   R   R   R   (   R!   R   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt   non_merged_items  s    c         C@ s   t  } xC t |  t g   D]/ } y | d | =t  } Wq t k
 rG q Xq Wy t j |  |  Wn t k
 r | s   q n Xd  S(   Ni   (   R5   RT   R   R   R   t   __delitem__(   R!   R@   t   foundR   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR     s    
c         c@ s   x t  j |   D] } | Vq Wg  } x~ t |  t g   D]j } xP | d D]D } t  j |  |  rg qI n  x# | D] } | | k rn Pqn qn W| VqI W| j | d  q8 Wd  S(   Ni   (   R   R   RT   R   R   Rf   (   R!   R   R   R   R   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR     s    		c         c@ s   x t  j |   D] } | Vq Wg  } x~ t |  t g   D]j } xP | d D]D } t  j |  |  rg qI n  x# | D] } | | k rn Pqn qn W| VqI W| j | d  q8 Wd  S(   Ni   (   R   R   RT   R   R   Rf   (   R!   R   R   R   R   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR     s    		c         C@ s   t  |  j    S(   N(   R[   R   (   R!   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt   keys%  s    c         C@ s
   |  j    S(   N(   R   (   R!   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt   iterkeys)  s    c         C@ s
   t  |   S(   N(   R   (   R!   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt   viewkeys-  s    c         C@ s
   t  |   S(   N(   R   (   R!   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR   1  s    c         c@ s   x( t  j |   D] } t  j |  |  Vq Wg  } x t |  t g   D]z } x` | d D]T } t  j |  |  rs qU n  x3 | D] } | | k rz Pqz qz Wt  j | d |  VqU W| j | d  qD Wd  S(   Ni   (   R   R   R   RT   R   R   Rf   (   R!   R   R   R   R   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt   _values5  s    c         C@ s   t  |  j    S(   N(   R[   R   (   R!   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt   valuesF  s    c         C@ s
   |  j    S(   N(   R   (   R!   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt
   itervaluesJ  s    c         C@ s
   t  |   S(   N(   R   (   R!   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt
   viewvaluesN  s    c         C@ s
   t  |   S(   N(   R   (   R!   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR   R  s    c         c@ s   x. t  j |   D] } | t  j |  |  f Vq Wg  } x t |  t g   D]| } xb | d j   D]P \ } } t  j |  |  r qa n  x) | D] } | | k r Pq q W| | f Vqa W| j | d  qJ Wd  S(   Ni   (   R   R   R   RT   R   R)   R   Rf   (   R!   R   R   R   R   R   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR   V  s    c         C@ s   t  |  j    S(   N(   R[   R   (   R!   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR)   g  s    c         C@ s
   |  j    S(   N(   R   (   R!   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt	   iteritemsk  s    c         C@ s
   t  |   S(   N(   R   (   R!   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt	   viewitemso  s    c         C@ s
   t  |   S(   N(   R   (   R!   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR)   s  s    c         C@ s/   t  |  t  s" t |  t g   n  t |  t  S(   N(   RR   R   RS   RT   (   R!   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt   mergew  s    c         C@ s   |  j  j |  d  S(   N(   R   RV   (   R!   R*   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt   add_yaml_merge~  s    c         C@ s[   |  j    } | | t |   <x8 |  D]0 } t j |  |  | | <|  j | d t q# W| S(   NR   (   R   R   R   R   R   R5   (   R!   R   R   RC   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR     s    N(*   R,   R-   R   R/   R.   R2   R   R{   R   Rz   Rd   R   R    R   R7   R   R   R   R   R   R   RN   R   R   R   R   R   R   R   R   R   R   R   R   R   R)   R   R   R0   R   R   R   (    (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR   W  sN   									
	
		
																	c           B@ s   e  Z e j f Z RS(    (   R,   R-   R   R/   R.   (    (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR     s   c           B@ sY   e  Z e j d  f Z d d  Z d   Z d   Z d   Z	 d   Z
 d   Z d   Z RS(	   t   odictc         C@ s6   t    |  _ t j |   | d  k	 r2 |  | O}  n  d  S(   N(   R   R   R   R"   R    (   R!   R   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR"     s    c         C@ s   d |  j | <d S(   s   Add an element.N(   R    R   (   R!   R*   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt   add  s    c         C@ s   |  j  | =d S(   s8   Remove an element.  Do not raise an exception if absent.N(   R   (   R!   R*   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt   discard  s    c         C@ s   | |  j  k S(   N(   R   (   R!   R   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR     s    c         c@ s   x |  j  D] } | Vq
 Wd  S(   N(   R   (   R!   R   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR     s    c         C@ s   t  |  j  S(   N(   Rq   R   (   R!   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR     s    c         C@ s   d j  |  j j    S(   Ns
   set({0!r})(   R&   R   R   (   R!   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyRN     s    N(   R,   R-   R   R/   R.   R    R"   R   R   R   R   R   RN   (    (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR     s   					t   TaggedScalarc           B@ s   e  Z d    Z RS(   c         C@ s   |  j  S(   N(   R*   (   R!   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR(     s    (   R,   R-   R(   (    (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR     s   R#   t   .c      	   C@ s0  t  |  t  r t |  d  r | r1 t |  n  t |  j d | x |  D]: } t |  | d | rr | | | n | d | d | qK Wn t  |  t  r,t |  d  r,| r t |  n  t |  j d | xY t |   D]H \ } } t | d | r| | t |  n	 t |  d | d | q Wn  d S(   sg   
    recursively dump comments, all but the toplevel preceded by the path
    in dotted form x.0.a
    RU   t   filet   namet   sept   outN(	   RZ   R   RR   t   printRU   t   dump_commentsR[   R   R%   (   R   R   R   R   RC   RF   (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyR     s    ;/(4   t
   __future__R    R   t   sysR   t   ruamel_yaml.compatR   R   R   t   ruamel_yaml.scalarstringR   t   collectionsR   R   R   t   collections.abcR7   t   typingR	   R
   R   R   R   t   __all__R   R;   RI   RL   R   RP   t   objectR   R2   R3   R<   RJ   RM   RQ   R[   R   t   tupleR   R   R   R   R   R   R   R   R   t   stdoutR   (    (    (    s3   lib/python2.7/site-packages/ruamel_yaml/comments.pyt   <module>   sJ   +4	+
W0 6&