
    =Og#                         	 d dl Z d dlZd dlZd dlZd dlmZ  ej        ed           dgZdZ	dZ
dZd	Zd
ZdZe	e
eeeegZ G d d          Zd ZdS )    N)quote)      )removeTemplateffz-fzf---z.-z-.c                   X    e 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 ZdS )r   c                 >    	 d| _         |                                  d S )Nr   )	debuggingresetselfs    /usr/lib64/python3.11/pipes.py__init__zTemplate.__init__X   s    ;

    c                     d| j         dS )Nz<Template instance, steps=>stepsr   s    r   __repr__zTemplate.__repr__]   s    .26***>>r   c                     	 g | _         d S Nr   r   s    r   r   zTemplate.reseta   s    J


r   c                 d    	 t                      }| j        d d          |_        | j        |_        |S r   )r   r   r   )r   ts     r   clonezTemplate.clonee   s/    	-JJ*QQQ-nr   c                     	 || _         d S r   )r   )r   flags     r   debugzTemplate.debugm   s    6r   c                    	 t          |t                    st          d          |t          vrt	          d|          |t
          k    rt	          d          | j        r+| j        d         d         t          k    rt	          d          |d         dk    r$t          j	        d	|          st	          d
          |d         dk    r$t          j	        d|          st	          d          | j        
                    ||f           d S )Nz%Template.append: cmd must be a stringzTemplate.append: bad kind z-Template.append: SOURCE can only be prepended   z'Template.append: already ends with SINKr   f\$IN\bz#Template.append: missing $IN in cmd\$OUT\bz$Template.append: missing $OUT in cmd)
isinstancestr	TypeError	stepkinds
ValueErrorSOURCEr   SINKresearchappendr   cmdkinds      r   r/   zTemplate.appendq   s   =#s## 	ECDDDy  *ttEFFF6>>LMMM: 	H$*R.+t33FGGG7c>>")Is";";>BCCC7c>>")J"<"<>CDDD
3+&&&&&r   c                    	 t          |t                    st          d          |t          vrt	          d|          |t
          k    rt	          d          | j        r+| j        d         d         t          k    rt	          d          |d         dk    r$t          j	        d|          st	          d	          |d         dk    r$t          j	        d
|          st	          d          | j        
                    d||f           d S )Nz&Template.prepend: cmd must be a stringzTemplate.prepend: bad kind z+Template.prepend: SINK can only be appendedr   r"   z,Template.prepend: already begins with SOURCEr#   r$   z$Template.prepend: missing $IN in cmdr%   z%Template.prepend: missing $OUT in cmd)r&   r'   r(   r)   r*   r,   r   r+   r-   r.   insertr0   s      r   prependzTemplate.prepend   s   @#s## 	FDEEEy  *FGGG4<<JKKK: 	M$*Q-*f44KLLL7c>>")Is";";>CDDD7c>>")J"<"<>DEEE
!c4[)))))r   c                     	 |dk    r|                      |          S |dk    r|                     |          S t          d|          )Nrwz*Template.open: rw must be 'r' or 'w', not )open_ropen_wr*   )r   filerws      r   openzTemplate.open   s\    	J99;;t$$$99;;t$$$jB! " " 	"r   c                     	 | j         st          |d          S | j         d         d         t          k    rt          d          |                     |d          }t          j        |d          S )Nr7   r!   r"   z)Template.open_r: pipeline ends width SINK )r   r=   r,   r*   makepipelineospopenr   r;   r1   s      r   r9   zTemplate.open_r   sl    	Az 	#c??":b>!$$HIIIb))xS!!!r   c                     | j         st          |d          S | j         d         d         t          k    rt          d          |                     d|          }t          j        |d          S )Nr8   r   r"   z,Template.open_w: pipeline begins with SOURCEr?   )r   r=   r+   r*   r@   rA   rB   rC   s      r   r:   zTemplate.open_w   sf    z 	#c??":a=v%%KLLLD))xS!!!r   c                 R    t          j        |                     ||                    S r   )rA   systemr@   )r   infileoutfiles      r   copyzTemplate.copy   s"    y**67;;<<<r   c                 h    t          || j        |          }| j        rt          |           d|z   }|S )Nzset -x; )r@   r   r   print)r   rG   rH   r1   s       r   r@   zTemplate.makepipeline   s9    64:w77> 	##JJJs"C
r   N)__name__
__module____qualname__r   r   r   r   r   r/   r5   r=   r9   r:   rI   r@    r   r   r   r   U   s        1  
? ? ?      ' ' ' * * * " " "" " "" " "= = =    r   c                 V   g }|D ]\  }}|                     d||dg           |s|                     g d           |d         dd         \  }}|d         dk    r| s|                    dg d           | |d         d<   |d         dd         \  }}|d         dk    r|s|                     g d           ||d         d<   g }t          dt          |                    D ]}||dz
           d         }||         d         }	|d         dk    s|	d         dk    rXt	          j                    \  }
}t          j        |
           |                     |           |x||dz
           d<   ||         d<   |D ]}|\  }}}}|d         dk    rd	t          |          z   d
z   |z   }|d         dk    rdt          |          z   d
z   |z   }|d         dk    r|r|dz   t          |          z   }|d         dk    r|r|dz   t          |          z   }||d<   |d         d         }|dd          D ]8}|dd         \  }}|d         dk    rd|v rd|z   dz   }|dz   |z   }0|dz   |z   }9|rBd}|D ]}|dz   t          |          z   }dt          |dz             z   dz   }|dz   |z   dz   |z   }|S )Nr?   )r?   catr	   r?   r   r"   r   r#   r!      zOUT=z; zIN=-z <z >z{ z; }z |

zrm -f ztrap z; exitz 1 2 3 13 14 15)	r/   r4   rangelentempfilemkstemprA   closer   )rG   r   rH   listr1   r2   garbageilkindrkindfdtempiteminfoutfcmdlistrmcmdr;   trapcmds                      r   r@   r@      sL    D ) )	TRdB'((((  +)))*** q'!A#,KS$Aw#~~f~A,,,---DGAJr(1Q3-KS$Aw#~~g~)))***DHRL G1c$ii   . .QqS	!Q
8s??eAh#oo!)++JRHRLLLNN4   )--D1IbMDGAJ 
 
!%c47c>>5;;&-3C7c>>%**$t+c1C7c>>c>*uSzz)C7c>>d>*uT{{*CQ1gajGQRR + +1Q3id7b==d{{Sj5(&,GGns*GG : 	. 	.DCK%++-EEE%("23336GGD.7*T1E9Nr   )r-   rA   rX   warningsshlexr   _deprecatedrL   __all__FILEIN_FILEOUTSTDIN_FILEOUTFILEIN_STDOUTSTDIN_STDOUTr+   r,   r)   r   r@   rO   r   r   <module>rp      s   8v 
			 				          Xg . . . ., ]M<T	` ` ` ` ` ` ` `FB B B B Br   