Une instance de shlex possède les méthodes suivantes:
Normalement, cette méthode élimine les guillemets de l'argument. Si le
résultat est un nom de chemin absolu, ou qu'il n'y avait aucune requête de
source en cours, ou que la source précédente était un flux (par exemple
sys.stdin), le résultat est laissé tel quel. Sinon, si le résultat
est un nom de chemin relatif, on ajoute comme répertoire celui du nom du fichier
qui précède immédiatement sur la pile d'inclusion de sources (ce comportement
est similaire à celui du préprocesseur C quand il traite #include
"file.h"). Le résultat de ces manipulations est traité comme un nom de fichier,
et retourné comme le premier élément du tuple, et open() est
appelée sur ce nom de fichier pour fournir le second élément.
Cette méthode de raccordement est exposée pour permettre l'implémentation de chemins de recherche de répertoire, l'addition d'extensions de fichiers, et d'autres critères d'espace de noms. Il n'y a pas d'accroche `close' correspondante, mais une instance de shlex appelle la méthode close() du flux d'entrée de source quand celui-ci retourne .
Cette commodité est fournie pour encourager les utilisateurs de shlex à générer des messages d'erreur dans le format standard et interprétable reconnu par Emacs et d'autres outils Unix.
Les instances des sous-classes de shlex possèdent un certain nombre de variables d'instance publiques qui contrôlent l'analyse lexicale ou qui peuvent être utilisées pour le débogage:
None par défaut. Si vous lui assignez une valeur chaîne
cette chaîne sera reconnue comme une requête d'inclusion au niveau
lexical, similaire au mot-clé "source" dans différents shells.
C'est-à-dire que le lexème qui suit immédiatement sera considéré comme
un nom de fichier, sera ouvert, et que les entrées seront prises depuis
cette source jusqu'à , après quoi la méthode close() de ce flux sera
appelée et la source d'entrée redeviendra le flux d'entrée d'origine. Les
requêtes de source peuvent être empilées sur un nombre quelconque de niveaux.
1 ou plus, une instance de
shlex affichera des messages d'avancement sur son comportement.
Si vous devez vous en servir, vous pouvez lire le code source du module
pour apprendre les détails.
Notez que tout caractère non déclaré comme caractère de mot, espace ou guillemet sera retourné comme lexème mono-caractère.
Les caractères guillemet et commentaire ne sont pas reconnus à l'intérieur des mots. Ainsi, les mots "aujourd'hui" et "aujourd#hui" seront retournés comme un seul et même lexème par l'interpréteur par défaut.