3
%^                 @   sL   d dl Z d dlZd dlZd dlZG dd deZdd Zdd Zdd	 ZdS )
    Nc               @   s6   e Zd ZdddZdd Zdd Zd	d
 Zdd ZdS )Command Nc             C   sN   || _ || _|| _|| _|| _|| _| jd kr4g | _|| _| jd krJg | _d S )N)STAGEpathargs
short_name
config_dir	del_afteroutput_files)selfr   r   r   r   r   r	   r
    r   e/home/psgendb/BIRCHDEV/pkg/SPAdes-3.15.4/linux-x86_64/share/spades/spades_pipeline/commands_parser.py__init__   s    

zCommand.__init__c             C   s   | j g| j S )N)r   r   )r   r   r   r   to_list   s    zCommand.to_listc             C   s   dj | j S )N )joinr   )r   r   r   r   __str__"   s    zCommand.__str__c             C   s   t j| j | d S )N)supportsys_callr   )r   logr   r   r   run%   s    zCommand.runc             C   s"   | j | j| j| j| j| j| jdS )N)r   r   r   r   r   r
   r	   )r   r   r   r   r   r
   r	   )r   r   r   r   to_dict(   s    zCommand.to_dict)r   NN)__name__
__module____qualname__r   r   r   r   r   r   r   r   r   r      s    
r   c             C   sD   t |d0}|jd x| D ]}|j|j d  qW W d Q R X d S )Nwzset -e

)openwriter   )commandsoutput_filefwcommandr   r   r   write_commands_to_sh2   s    

r#   c             C   sb   t jjdrdd l}nt jjdr*dd l}dd | D }t|d}|j||dd W d Q R X d S )	Nz2.r   z3.c             S   s   g | ]}|j  qS r   )r   ).0r"   r   r   r   
<listcomp>?   s    z*write_commands_to_yaml.<locals>.<listcomp>r   F)default_flow_style)sysversion
startswithpyyaml2pyyaml3r   dump)r   r    yamldatafr   r   r   write_commands_to_yaml9   s    
r0   c             C   sn   t jjdrdd l}nt jjdr*dd l}t| }|j|}W d Q R X g }x|D ]}|jtf | qRW |S )Nz2.r   z3.)	r'   r(   r)   r*   r+   r   loadappendr   )Z
yaml_fpathr-   streamr.   r   kwargsr   r   r   read_commands_from_yamlE   s    


r5   )	randomstringr   r'   objectr   r#   r0   r5   r   r   r   r   <module>	   s   "