"pipes" --- Interfaz para tuberías de shell
*******************************************

**Código fuente:** Lib/pipes.py

Obsoleto desde la versión 3.11, se eliminará en la versión 3.13: El
módulo "pipes" está obsoleto (para más detalles ver **PEP 594**. Por
favor, utilice el módulo "subprocess" en su lugar.

======================================================================

El módulo "pipes" define una clase para abstraer el concepto de una
*tubería* --- una secuencia de conversores de un archivo a otro.

Debido a que el módulo utiliza líneas de comando **/bin/sh**, se
requiere una interfaz POSIX o un shell compatible para ejecutar
"os.system()" y "os.popen()".

Disponibilidad: Unix. No disponible en VxWorks.

El módulo "pipes" define la siguiente clase:

class pipes.Template

   Una abstracción de una tubería.

Ejemplo:

   >>> import pipes
   >>> t = pipes.Template()
   >>> t.append('tr a-z A-Z', '--')
   >>> f = t.open('pipefile', 'w')
   >>> f.write('hello world')
   >>> f.close()
   >>> open('pipefile').read()
   'HELLO WORLD'


Objetos Template
================

Las instancias Template tienen los siguientes métodos:

Template.reset()

   Recupera el estado inicial del Template de una tubería.

Template.clone()

   Retorna una nueva y equivalente instancia del Template de una
   tubería.

Template.debug(flag)

   Si  *flag* es verdadero, activa la depuración. Si no, la depuración
   no se activa. Cuando la depuración está activada, los comandos a
   ejecutar son impresos, y se le añade el comando "set -x" a la shell
   para ser más verboso.

Template.append(cmd, kind)

   Añade una nueva acción al final. La variable *cmd* tiene que ser un
   comando válido de *Bourne Shell*. La variable *kind* está formada
   por dos letras.

   La primera letra puede ser tanto "'-'" (que significa que el
   comando lee su entrada de datos estándar), "'f'" (que significa que
   el comando lee un fichero desde línea de comandos) o "'.'" (que
   significa que el comando no lee ninguna entrada de datos, y por
   tanto tiene que ser el primero.)

   De manera parecida, la segunda letra puede ser tanto "'-'" (que
   significa que el comando escribe a la salida de datos estándar),
   "'f'" (que significa que el comando escribirá a un fichero de la
   línea de comandos) o "'.'" (que significa que el comando no escribe
   nada, por lo que debe ser el primero)

Template.prepend(cmd, kind)

   Añade una nueva acción al principio. Ver "append()" para la
   explicación de los argumentos.

Template.open(file, mode)

   Retorna un objeto similar a un fichero, abierto a *file*, pero
   leído o escrito por la tubería. Destacar que solo una de "'r'" o
   "'w'" puede ser añadida.

Template.copy(infile, outfile)

   Copia *infile* a *outfile* a través de la tubería.
