
    z%i#                         	 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y)    N)quote)      )removeTemplateffz-fzf---z.-z-.c                   V    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y)r   c                 4    	 d| _         | j                          y )Nr   )	debuggingresetselfs    9/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/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 | _         y Nr   r   s    r   r   zTemplate.reseta   s    J
r   c                 f    	 t               }| j                  d d  |_        | j                  |_        |S r   )r   r   r   )r   ts     r   clonezTemplate.clonee   s-    	-J**Q-nnr   c                     	 || _         y 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                  j                  ||f       y )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#CDDy tEFF6>LMM::$**R.+t3FGG7c>"))Is";BCC7c>"))J"<C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                  j                  d||f       y )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#DEEy FGG4<JKK::$**Q-*f4KLL7c>"))Is";CDD7c>"))J"<DEE

!c4[)r   c                 x    	 |dk(  r| j                  |      S |dk(  r| j                  |      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   sI    	J9;;t$$9;;t$$! " 	"r   c                     	 | j                   st        |d      S | j                   d   d   t        k(  rt        d      | j	                  |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   s_    	Azzc?"::b>!$HIIb)xxS!!r   c                     | j                   st        |d      S | j                   d   d   t        k(  rt        d      | j	                  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   sY    zzc?"::a=v%KLLD)xxS!!r   c                 L    t        j                  | j                  ||            S r   )rA   systemr@   )r   infileoutfiles      r   copyzTemplate.copy   s    yy**67;<<r   c                 l    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   s1    64::w7>>#Js"C
r   N)__name__
__module____qualname__r   r   r   r   r   r/   r5   r=   r9   r:   rI   r@    r   r   r   r   U   sA    1
?' * """=r   c                 P   g }|D ]  \  }}|j                  d||dg        |s|j                  g d       |d   dd \  }}|d   dk(  r| s|j                  dg d       | |d   d<   |d   dd \  }}|d   dk(  r|s|j                  g d       ||d   d<   g }t        dt        |            D ]v  }||dz
     d   }||   d   }	|d   dk(  s	|	d   dk(  s't	        j
                         \  }
}t        j                  |
       |j                  |       |x||dz
     d<   ||   d<   x |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 ]/  }|dd \  }}|d   dk(  rd|v rd|z   dz   }|dz   |z   }(|dz   |z   }1 |r<d}|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@      s    D )	TRdB'()
 )* q'!A,KS$Aw#~fA,-DGAJr(1Q-KS$Aw#~g)*DHRL G1c$i  .QqS	!Q
8s?eAh#o!))+JRHHRLNN4 )--D1IbMDGAJ.  
!%c47c>5;&-3C7c>%*$t+c1C7c>c*uSz)C7c>d*uT{*CQ
 1gajGQR +1Qid7b=d{Sj5(&,Gns*G+  	.DCK%+-E	.E%("2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r   