ó
QŽfXc           @   s¤   d  d l  Z  d  d l Z d d d „  ƒ  YZ d „  Z d „  Z d „  Z d „  Z d „  Z d	 „  Z d
 „  Z	 d „  Z
 d „  Z d „  Z d „  Z d „  Z d „  Z d S(   iÿÿÿÿNt   cfg_placeholderc           B   s   e  Z RS(    (   t   __name__t
   __module__(    (    (    sa   /home/psgendb/BIRCHDEV/pkg/SPAdes-3.13.0/linux-x86_64/share/spades/spades_pipeline/process_cfg.pyR       s   c         C   s   t  |  ƒ j ƒ  S(   N(   t   opent	   readlines(   t   filename(    (    sa   /home/psgendb/BIRCHDEV/pkg/SPAdes-3.13.0/linux-x86_64/share/spades/spades_pipeline/process_cfg.pyt
   file_lines   s    c         C   s   |  j  d ƒ d j ƒ  S(   Nt   ;i    (   t   splitt   strip(   t   line(    (    sa   /home/psgendb/BIRCHDEV/pkg/SPAdes-3.13.0/linux-x86_64/share/spades/spades_pipeline/process_cfg.pyt   skip_info_comment   s    c         C   sG   |  j  ƒ  }  |  j d ƒ rC |  d  j  ƒ  }  |  j d d d ƒ }  n  |  S(   Nt   "iÿÿÿÿt    i   (   R	   t   endswitht   replace(   R
   (    (    sa   /home/psgendb/BIRCHDEV/pkg/SPAdes-3.13.0/linux-x86_64/share/spades/spades_pipeline/process_cfg.pyt   skip_double_quotes   s
    c         C   s9   t  |  j ƒ  ƒ d k r5 |  j ƒ  d d k r5 t Sn  t S(   Ni   s   N/A(   t   lenR   t   Truet   False(   t	   prop_line(    (    sa   /home/psgendb/BIRCHDEV/pkg/SPAdes-3.13.0/linux-x86_64/share/spades/spades_pipeline/process_cfg.pyt   check_property"   s    c         C   s   |  r
 d Sd S(   Nt   truet   false(    (   t   b(    (    sa   /home/psgendb/BIRCHDEV/pkg/SPAdes-3.13.0/linux-x86_64/share/spades/spades_pipeline/process_cfg.pyt   bool_to_str)   s    c         C   s   t  j |  ƒ S(   N(   t   supportt   process_spaces(   t   str(    (    sa   /home/psgendb/BIRCHDEV/pkg/SPAdes-3.13.0/linux-x86_64/share/spades/spades_pipeline/process_cfg.pyR   /   s    c            sŠ   d d d „  ƒ  Y‰ d „  ‰  ‡  ‡ f d †  } t  ƒ  } xL t t |  ƒ ƒ D]8 } | |  | | ƒ \ } } | d  k	 rJ | | | <qJ qJ W| S(   Nt   var_metadatac           B   s   e  Z d  „  Z RS(   c         S   s   | |  _  | |  _ | |  _ d  S(   N(   t   valuet   line_numt   indent(   t   selfR   R   R    (    (    sa   /home/psgendb/BIRCHDEV/pkg/SPAdes-3.13.0/linux-x86_64/share/spades/spades_pipeline/process_cfg.pyt   __init__5   s    		(   R   R   R"   (    (    (    sa   /home/psgendb/BIRCHDEV/pkg/SPAdes-3.13.0/linux-x86_64/share/spades/spades_pipeline/process_cfg.pyR   4   s   c         S   s3   x, |  D]$ } | j  ƒ  r* | d k r* t St SWd  S(   Nt   _(   t   isalphaR   R   (   t   namet   sym(    (    sa   /home/psgendb/BIRCHDEV/pkg/SPAdes-3.13.0/linux-x86_64/share/spades/spades_pipeline/process_cfg.pyt   valid_var_name:   s    c            sl   t  t |  ƒ ƒ j ƒ  } t | ƒ d k s; ˆ  | d ƒ r? d Sd „  } | d ˆ | d | | |  ƒ ƒ f S(   Ni    c         S   s   |  t  |  ƒ t  |  j ƒ  ƒ  S(   N(   R   t   lstrip(   t   s(    (    sa   /home/psgendb/BIRCHDEV/pkg/SPAdes-3.13.0/linux-x86_64/share/spades/spades_pipeline/process_cfg.pyR    F   s    i   (   NN(   R   R   R   R   t   None(   R
   R   t   lR    (   R'   R   (    sa   /home/psgendb/BIRCHDEV/pkg/SPAdes-3.13.0/linux-x86_64/share/spades/spades_pipeline/process_cfg.pyt   var_from_lineA   s
    #	(    (   t   dictt   rangeR   R*   (   t   linesR,   t   varst   it   vart   meta(    (   R'   R   sa   /home/psgendb/BIRCHDEV/pkg/SPAdes-3.13.0/linux-x86_64/share/spades/spades_pipeline/process_cfg.pyt   vars_from_lines3   s    	
	c   	      C   sÀ   t  |  ƒ } t | ƒ } x{ | j ƒ  D]m \ } } | | k r\ t j d | d |  | ƒ n  | | } | j t | ƒ d t | ƒ d | | j <q% Wt |  d ƒ } | j	 | ƒ | j
 ƒ  d  S(   Ns   Couldn't find s    in t    s   
t   w(   R   R4   t   itemsR   t   errorR    R   R   R   t
   writelinest   close(	   R   t   var_dictt   logR/   t   vars_in_fileR2   R   R3   t   file(    (    sa   /home/psgendb/BIRCHDEV/pkg/SPAdes-3.13.0/linux-x86_64/share/spades/spades_pipeline/process_cfg.pyt   substitute_paramsU   s    
0c          G   s7   t  ƒ  } x' t |  ƒ D] } | j j | j ƒ q W| S(   N(   R    t   reversedt   __dict__t   update(   t   cfgst   rest   cfg(    (    sa   /home/psgendb/BIRCHDEV/pkg/SPAdes-3.13.0/linux-x86_64/share/spades/spades_pipeline/process_cfg.pyt   merge_configsf   s    	c            sX   t  ƒ  } d „  ‰  ‡  f d †  } x0 |  j ƒ  D]" \ } } | | j ƒ | j | <q. W| S(   Nc         S   sV   |  d k s |  d k r t  S|  d k s4 |  d k r8 t S|  j ƒ  rN t |  ƒ S|  Sd  S(   NR   R   R   R   (   R   R   t   isdigitt   int(   R   (    (    sa   /home/psgendb/BIRCHDEV/pkg/SPAdes-3.13.0/linux-x86_64/share/spades/spades_pipeline/process_cfg.pyt
   load_valuer   s    
c            sS   t  |  ƒ d k r/ g  |  D] } ˆ  | ƒ ^ q St  |  ƒ d k rO ˆ  |  d ƒ Sd  S(   Ni   i    (   R   R*   (   t
   value_listt	   one_value(   RI   (    sa   /home/psgendb/BIRCHDEV/pkg/SPAdes-3.13.0/linux-x86_64/share/spades/spades_pipeline/process_cfg.pyt   load_value_list|   s
    (   R    R7   R   RA   (   t   cfg_varsRE   RL   R2   R3   (    (   RI   sa   /home/psgendb/BIRCHDEV/pkg/SPAdes-3.13.0/linux-x86_64/share/spades/spades_pipeline/process_cfg.pyt   load_config_from_varso   s    		
	c           C   s   t  t ƒ  ƒ S(   N(   RN   R-   (    (    (    sa   /home/psgendb/BIRCHDEV/pkg/SPAdes-3.13.0/linux-x86_64/share/spades/spades_pipeline/process_cfg.pyt   empty_config‹   s    c         C   s   t  t t |  ƒ ƒ ƒ S(   N(   RN   R4   R   (   R   (    (    sa   /home/psgendb/BIRCHDEV/pkg/SPAdes-3.13.0/linux-x86_64/share/spades/spades_pipeline/process_cfg.pyt   load_config_from_file   s    c   	      C   sˆ  t  |  ƒ } t ƒ  } d } g  | | <x"t d t | ƒ d ƒ D]} t | | d ƒ } d } | t | ƒ k  r~ | | } n  | j d ƒ r  | } g  | | <q? | j d ƒ rØ t | ƒ rÏ | | j | ƒ n  d } q? | | d j d ƒ r? | | d j d ƒ r? | | d j ƒ  d k r? t | ƒ rF| | j | ƒ qFq? q? Wt ƒ  } x. | j	 ƒ  D]  } t
 t | | ƒ ƒ | | <q`W| S(   Nt   commoni   R   t   {t   }(   R   R-   R.   R   R   t
   startswithR   t   appendR	   t   iterkeysRN   R4   (	   R   R/   t   blockst   cur_block_nameR1   t	   prev_linet   cur_lineRE   t
   block_name(    (    sa   /home/psgendb/BIRCHDEV/pkg/SPAdes-3.13.0/linux-x86_64/share/spades/spades_pipeline/process_cfg.pyt   load_config_from_info_file“   s.    	
 	K	(    (   t   sysR   R    R   R   R   R   R   R   R4   R?   RF   RN   RO   RP   R\   (    (    (    sa   /home/psgendb/BIRCHDEV/pkg/SPAdes-3.13.0/linux-x86_64/share/spades/spades_pipeline/process_cfg.pyt   <module>   s   							"						