# `pipes` — Interface au pipelines shell

Code source : Lib/pipes.py

Obsolète depuis la version 3.11, sera supprimé dans la version 3.13: The `pipes` module is deprecated (see PEP 594 for details). Please use the `subprocess` module instead.

Le module `pipes` définit une classe permettant d'abstraire le concept de pipeline --- une séquence de convertisseurs d'un fichier vers un autre.

Du fait que le module utilise les lignes de commandes /bin/sh, un shell POSIX ou compatible est requis pour `os.system()` et `os.popen()`.

Availability: Unix, not VxWorks.

Le module `pipes` définit la classe suivante :

class pipes.Template

  Une abstraction d'un pipeline.

Exemple :

    >>> 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'

## L'Objet Template

Les méthodes de l'objet Template :

Template.reset()

  Réinitialise un modèle de pipeline à son état initial.

Template.clone()

  Renvoie un nouveau modèle de pipeline, équivalent.

Template.debug(flag)

  Si flag est vrai, active le débogage. Sinon, le désactive. Quand le débogage est actif, les commandes à exécuter seront affichée et le shell est pourvu de la commande `set -x` afin d'être plus verbeux.

Template.append(cmd, kind)

  Ajoute une nouvelle action à la fin. La variable cmd doit être une commande bourne shell valide. La variable kind est composée de deux lettres.

  La première lettre peut soit être `'-'` (qui signifie que la commande lit sa sortie standard), soit `'f'` (qui signifie que la commande lit un fichier donné par la ligne de commande), soit `'.'` (qui signifie que la commande ne lit pas d'entrée, et donc doit être la première.)

  De même, la seconde lettre peut soit être `'-'` (qui signifie que la commande écrit sur la sortie standard), soit `'f'` (qui signifie que la commande écrit sur un fichier donné par la ligne de commande), soit `'.'` (qui signifie que la commande n'écrit rien, et donc doit être la dernière.)

Template.prepend(cmd, kind)

  Ajoute une nouvelle action au début. Voir `append()` pour plus d'explications sur les arguments.

Template.open(file, mode)

  Renvoie un objet fichier-compatible, ouvert à file, mais permettant d'écrire vers le pipeline ou de lire depuis celui-ci. À noter que seulement un des deux ('r' ou 'w') peut être donné.

Template.copy(infile, outfile)

  Copie infile vers outfile au travers du pipe.