3 \�" � @ sl d dl Z d dlZd dlZd dlmZ dgZdZdZdZdZ dZ d Zeeee e egZG d d� d�Z dd� ZdS ) � N)�quote�TemplateZffz-fzf-z--z.-z-.c @ sl e Zd Zdd� Zdd� Zdd� Zdd� Zd d � Zdd� Zd d� Z dd� Z dd� Zdd� Zdd� Z dd� ZdS )r c C s d| _ | j� d S )Nr )� debugging�reset)�self� r �/usr/lib64/python3.6/pipes.py�__init__U s zTemplate.__init__c C s d| j f S )Nz)�steps)r r r r �__repr__Z s zTemplate.__repr__c C s g | _ d S )N)r )r r r r r ^ s zTemplate.resetc C s" t � }| jd d � |_| j|_|S )N)r r r )r �tr r r �cloneb s zTemplate.clonec C s || _ d S )N)r )r �flagr r r �debugj s zTemplate.debugc C s� t |�t d�k rtd��|tkr.td|f ��|tkr>td��| jr^| jd d tkr^td��|d dkr�tjd |� r�td ��|d dkr�tjd|� r�td��| jj ||f� d S )N� z%Template.append: cmd must be a stringzTemplate.append: bad kind %rz-Template.append: SOURCE can only be prepended� z'Template.append: already ends with SINKr �fz\$IN\bz#Template.append: missing $IN in cmdz\$OUT\bz$Template.append: missing $OUT in cmd�����) �type� TypeError� stepkinds� ValueError�SOURCEr �SINK�re�search�append)r �cmd�kindr r r r n s zTemplate.appendc C s� t |�t d�k rtd��|tkr.td|f ��|tkr>td��| jr^| jd d tkr^td��|d dkr�tjd |� r�td ��|d dkr�tjd|� r�td��| jj d||f� d S ) Nr z&Template.prepend: cmd must be a stringzTemplate.prepend: bad kind %rz+Template.prepend: SINK can only be appendedr r z,Template.prepend: already begins with SOURCEr z\$IN\bz$Template.prepend: missing $IN in cmdz\$OUT\bz%Template.prepend: missing $OUT in cmd) r r r r r r r r r �insert)r r r r r r �prepend~ s zTemplate.prependc C s6 |dkr| j |�S |dkr$| j|�S td|f ��d S )N�r�wz,Template.open: rw must be 'r' or 'w', not %r)�open_r�open_wr )r �fileZrwr r r �open� s z Template.openc C sB | j st|d�S | j d d tkr*td��| j|d�}tj|d�S )Nr! r z)Template.open_r: pipeline ends width SINKr r )r r&