# Copyright (C) 2001-2018, Python Software Foundation # For licence information, see README file. # msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-03-23 18:39+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: library/shlex.rst:2 msgid ":mod:`shlex` --- Simple lexical analysis" msgstr "" #: library/shlex.rst:12 msgid "**Source code:** :source:`Lib/shlex.py`" msgstr "**Code source :** :source:`Lib/shlex.py`" #: library/shlex.rst:16 msgid "" "The :class:`~shlex.shlex` class makes it easy to write lexical analyzers for " "simple syntaxes resembling that of the Unix shell. This will often be " "useful for writing minilanguages, (for example, in run control files for " "Python applications) or for parsing quoted strings." msgstr "" #: library/shlex.rst:21 #, fuzzy msgid "The :mod:`shlex` module defines the following functions:" msgstr "Le module :mod:`binhex` définit les fonctions suivantes :" #: library/shlex.rst:26 msgid "" "Split the string *s* using shell-like syntax. If *comments* is :const:" "`False` (the default), the parsing of comments in the given string will be " "disabled (setting the :attr:`~shlex.commenters` attribute of the :class:" "`~shlex.shlex` instance to the empty string). This function operates in " "POSIX mode by default, but uses non-POSIX mode if the *posix* argument is " "false." msgstr "" #: library/shlex.rst:35 msgid "" "Since the :func:`split` function instantiates a :class:`~shlex.shlex` " "instance, passing ``None`` for *s* will read the string to split from " "standard input." msgstr "" #: library/shlex.rst:39 msgid "" "Passing ``None`` for *s* will raise an exception in future Python versions." msgstr "" #: library/shlex.rst:45 msgid "" "Concatenate the tokens of the list *split_command* and return a string. This " "function is the inverse of :func:`split`." msgstr "" #: library/shlex.rst:52 msgid "" "The returned value is shell-escaped to protect against injection " "vulnerabilities (see :func:`quote`)." msgstr "" #: library/shlex.rst:60 msgid "" "Return a shell-escaped version of the string *s*. The returned value is a " "string that can safely be used as one token in a shell command line, for " "cases where you cannot use a list." msgstr "" #: library/shlex.rst:68 msgid "The ``shlex`` module is **only designed for Unix shells**." msgstr "" #: library/shlex.rst:70 msgid "" "The :func:`quote` function is not guaranteed to be correct on non-POSIX " "compliant shells or shells from other operating systems such as Windows. " "Executing commands quoted by this module on such shells can open up the " "possibility of a command injection vulnerability." msgstr "" #: library/shlex.rst:75 msgid "" "Consider using functions that pass command arguments with lists such as :" "func:`subprocess.run` with ``shell=False``." msgstr "" #: library/shlex.rst:78 msgid "This idiom would be unsafe:" msgstr "" #: library/shlex.rst:85 msgid ":func:`quote` lets you plug the security hole:" msgstr "" #: library/shlex.rst:95 msgid "The quoting is compatible with UNIX shells and with :func:`split`:" msgstr "" #: library/shlex.rst:107 #, fuzzy msgid "The :mod:`shlex` module defines the following class:" msgstr "Le module :mod:`csv` définit les classes suivantes :" #: library/shlex.rst:112 msgid "" "A :class:`~shlex.shlex` instance or subclass instance is a lexical analyzer " "object. The initialization argument, if present, specifies where to read " "characters from. It must be a file-/stream-like object with :meth:`~io." "TextIOBase.read` and :meth:`~io.TextIOBase.readline` methods, or a string. " "If no argument is given, input will be taken from ``sys.stdin``. The second " "optional argument is a filename string, which sets the initial value of the :" "attr:`~shlex.infile` attribute. If the *instream* argument is omitted or " "equal to ``sys.stdin``, this second argument defaults to \"stdin\". The " "*posix* argument defines the operational mode: when *posix* is not true " "(default), the :class:`~shlex.shlex` instance will operate in compatibility " "mode. When operating in POSIX mode, :class:`~shlex.shlex` will try to be as " "close as possible to the POSIX shell parsing rules. The *punctuation_chars* " "argument provides a way to make the behaviour even closer to how real shells " "parse. This can take a number of values: the default value, ``False``, " "preserves the behaviour seen under Python 3.5 and earlier. If set to " "``True``, then parsing of the characters ``();<>|&`` is changed: any run of " "these characters (considered punctuation characters) is returned as a single " "token. If set to a non-empty string of characters, those characters will be " "used as the punctuation characters. Any characters in the :attr:`wordchars` " "attribute that appear in *punctuation_chars* will be removed from :attr:" "`wordchars`. See :ref:`improved-shell-compatibility` for more information. " "*punctuation_chars* can be set only upon :class:`~shlex.shlex` instance " "creation and can't be modified later." msgstr "" #: library/shlex.rst:137 msgid "The *punctuation_chars* parameter was added." msgstr "" #: library/shlex.rst:142 msgid "Module :mod:`configparser`" msgstr "" #: library/shlex.rst:143 msgid "" "Parser for configuration files similar to the Windows :file:`.ini` files." msgstr "" #: library/shlex.rst:149 msgid "shlex Objects" msgstr "" #: library/shlex.rst:151 msgid "A :class:`~shlex.shlex` instance has the following methods:" msgstr "" #: library/shlex.rst:156 msgid "" "Return a token. If tokens have been stacked using :meth:`push_token`, pop a " "token off the stack. Otherwise, read one from the input stream. If reading " "encounters an immediate end-of-file, :attr:`eof` is returned (the empty " "string (``''``) in non-POSIX mode, and ``None`` in POSIX mode)." msgstr "" #: library/shlex.rst:164 msgid "Push the argument onto the token stack." msgstr "" #: library/shlex.rst:169 msgid "" "Read a raw token. Ignore the pushback stack, and do not interpret source " "requests. (This is not ordinarily a useful entry point, and is documented " "here only for the sake of completeness.)" msgstr "" #: library/shlex.rst:176 msgid "" "When :class:`~shlex.shlex` detects a source request (see :attr:`source` " "below) this method is given the following token as argument, and expected to " "return a tuple consisting of a filename and an open file-like object." msgstr "" #: library/shlex.rst:180 msgid "" "Normally, this method first strips any quotes off the argument. If the " "result is an absolute pathname, or there was no previous source request in " "effect, or the previous source was a stream (such as ``sys.stdin``), the " "result is left alone. Otherwise, if the result is a relative pathname, the " "directory part of the name of the file immediately before it on the source " "inclusion stack is prepended (this behavior is like the way the C " "preprocessor handles ``#include \"file.h\"``)." msgstr "" #: library/shlex.rst:188 msgid "" "The result of the manipulations is treated as a filename, and returned as " "the first component of the tuple, with :func:`open` called on it to yield " "the second component. (Note: this is the reverse of the order of arguments " "in instance initialization!)" msgstr "" #: library/shlex.rst:193 msgid "" "This hook is exposed so that you can use it to implement directory search " "paths, addition of file extensions, and other namespace hacks. There is no " "corresponding 'close' hook, but a shlex instance will call the :meth:`~io." "IOBase.close` method of the sourced input stream when it returns EOF." msgstr "" #: library/shlex.rst:199 msgid "" "For more explicit control of source stacking, use the :meth:`push_source` " "and :meth:`pop_source` methods." msgstr "" #: library/shlex.rst:205 msgid "" "Push an input source stream onto the input stack. If the filename argument " "is specified it will later be available for use in error messages. This is " "the same method used internally by the :meth:`sourcehook` method." msgstr "" #: library/shlex.rst:212 msgid "" "Pop the last-pushed input source from the input stack. This is the same " "method used internally when the lexer reaches EOF on a stacked input stream." msgstr "" #: library/shlex.rst:218 msgid "" "This method generates an error message leader in the format of a Unix C " "compiler error label; the format is ``'\"%s\", line %d: '``, where the " "``%s`` is replaced with the name of the current source file and the ``%d`` " "with the current input line number (the optional arguments can be used to " "override these)." msgstr "" #: library/shlex.rst:223 msgid "" "This convenience is provided to encourage :mod:`shlex` users to generate " "error messages in the standard, parseable format understood by Emacs and " "other Unix tools." msgstr "" #: library/shlex.rst:227 msgid "" "Instances of :class:`~shlex.shlex` subclasses have some public instance " "variables which either control lexical analysis or can be used for debugging:" msgstr "" #: library/shlex.rst:233 msgid "" "The string of characters that are recognized as comment beginners. All " "characters from the comment beginner to end of line are ignored. Includes " "just ``'#'`` by default." msgstr "" #: library/shlex.rst:240 msgid "" "The string of characters that will accumulate into multi-character tokens. " "By default, includes all ASCII alphanumerics and underscore. In POSIX mode, " "the accented characters in the Latin-1 set are also included. If :attr:" "`punctuation_chars` is not empty, the characters ``~-./*?=``, which can " "appear in filename specifications and command line parameters, will also be " "included in this attribute, and any characters which appear in " "``punctuation_chars`` will be removed from ``wordchars`` if they are present " "there. If :attr:`whitespace_split` is set to ``True``, this will have no " "effect." msgstr "" #: library/shlex.rst:253 msgid "" "Characters that will be considered whitespace and skipped. Whitespace " "bounds tokens. By default, includes space, tab, linefeed and carriage-" "return." msgstr "" #: library/shlex.rst:259 msgid "" "Characters that will be considered as escape. This will be only used in " "POSIX mode, and includes just ``'\\'`` by default." msgstr "" #: library/shlex.rst:265 msgid "" "Characters that will be considered string quotes. The token accumulates " "until the same quote is encountered again (thus, different quote types " "protect each other as in the shell.) By default, includes ASCII single and " "double quotes." msgstr "" #: library/shlex.rst:272 msgid "" "Characters in :attr:`quotes` that will interpret escape characters defined " "in :attr:`escape`. This is only used in POSIX mode, and includes just " "``'\"'`` by default." msgstr "" #: library/shlex.rst:279 msgid "" "If ``True``, tokens will only be split in whitespaces. This is useful, for " "example, for parsing command lines with :class:`~shlex.shlex`, getting " "tokens in a similar way to shell arguments. When used in combination with :" "attr:`punctuation_chars`, tokens will be split on whitespace in addition to " "those characters." msgstr "" #: library/shlex.rst:285 msgid "" "The :attr:`punctuation_chars` attribute was made compatible with the :attr:" "`whitespace_split` attribute." msgstr "" #: library/shlex.rst:292 msgid "" "The name of the current input file, as initially set at class instantiation " "time or stacked by later source requests. It may be useful to examine this " "when constructing error messages." msgstr "" #: library/shlex.rst:299 msgid "" "The input stream from which this :class:`~shlex.shlex` instance is reading " "characters." msgstr "" #: library/shlex.rst:305 msgid "" "This attribute is ``None`` by default. If you assign a string to it, that " "string will be recognized as a lexical-level inclusion request similar to " "the ``source`` keyword in various shells. That is, the immediately " "following token will be opened as a filename and input will be taken from " "that stream until EOF, at which point the :meth:`~io.IOBase.close` method of " "that stream will be called and the input source will again become the " "original input stream. Source requests may be stacked any number of levels " "deep." msgstr "" #: library/shlex.rst:316 msgid "" "If this attribute is numeric and ``1`` or more, a :class:`~shlex.shlex` " "instance will print verbose progress output on its behavior. If you need to " "use this, you can read the module source code to learn the details." msgstr "" #: library/shlex.rst:323 msgid "Source line number (count of newlines seen so far plus one)." msgstr "" #: library/shlex.rst:328 msgid "" "The token buffer. It may be useful to examine this when catching exceptions." msgstr "" #: library/shlex.rst:333 msgid "" "Token used to determine end of file. This will be set to the empty string " "(``''``), in non-POSIX mode, and to ``None`` in POSIX mode." msgstr "" #: library/shlex.rst:339 msgid "" "A read-only property. Characters that will be considered punctuation. Runs " "of punctuation characters will be returned as a single token. However, note " "that no semantic validity checking will be performed: for example, '>>>' " "could be returned as a token, even though it may not be recognised as such " "by shells." msgstr "" #: library/shlex.rst:350 msgid "Parsing Rules" msgstr "" #: library/shlex.rst:352 msgid "" "When operating in non-POSIX mode, :class:`~shlex.shlex` will try to obey to " "the following rules." msgstr "" #: library/shlex.rst:355 msgid "" "Quote characters are not recognized within words (``Do\"Not\"Separate`` is " "parsed as the single word ``Do\"Not\"Separate``);" msgstr "" #: library/shlex.rst:358 msgid "Escape characters are not recognized;" msgstr "" #: library/shlex.rst:360 msgid "" "Enclosing characters in quotes preserve the literal value of all characters " "within the quotes;" msgstr "" #: library/shlex.rst:363 msgid "" "Closing quotes separate words (``\"Do\"Separate`` is parsed as ``\"Do\"`` " "and ``Separate``);" msgstr "" #: library/shlex.rst:366 msgid "" "If :attr:`~shlex.whitespace_split` is ``False``, any character not declared " "to be a word character, whitespace, or a quote will be returned as a single-" "character token. If it is ``True``, :class:`~shlex.shlex` will only split " "words in whitespaces;" msgstr "" #: library/shlex.rst:371 msgid "EOF is signaled with an empty string (``''``);" msgstr "" #: library/shlex.rst:373 msgid "It's not possible to parse empty strings, even if quoted." msgstr "" #: library/shlex.rst:375 msgid "" "When operating in POSIX mode, :class:`~shlex.shlex` will try to obey to the " "following parsing rules." msgstr "" #: library/shlex.rst:378 msgid "" "Quotes are stripped out, and do not separate words " "(``\"Do\"Not\"Separate\"`` is parsed as the single word ``DoNotSeparate``);" msgstr "" #: library/shlex.rst:381 msgid "" "Non-quoted escape characters (e.g. ``'\\'``) preserve the literal value of " "the next character that follows;" msgstr "" #: library/shlex.rst:384 msgid "" "Enclosing characters in quotes which are not part of :attr:`~shlex." "escapedquotes` (e.g. ``\"'\"``) preserve the literal value of all characters " "within the quotes;" msgstr "" #: library/shlex.rst:388 msgid "" "Enclosing characters in quotes which are part of :attr:`~shlex." "escapedquotes` (e.g. ``'\"'``) preserves the literal value of all characters " "within the quotes, with the exception of the characters mentioned in :attr:" "`~shlex.escape`. The escape characters retain its special meaning only when " "followed by the quote in use, or the escape character itself. Otherwise the " "escape character will be considered a normal character." msgstr "" #: library/shlex.rst:396 msgid "EOF is signaled with a :const:`None` value;" msgstr "" #: library/shlex.rst:398 msgid "Quoted empty strings (``''``) are allowed." msgstr "" #: library/shlex.rst:403 msgid "Improved Compatibility with Shells" msgstr "" #: library/shlex.rst:407 msgid "" "The :class:`shlex` class provides compatibility with the parsing performed " "by common Unix shells like ``bash``, ``dash``, and ``sh``. To take " "advantage of this compatibility, specify the ``punctuation_chars`` argument " "in the constructor. This defaults to ``False``, which preserves pre-3.6 " "behaviour. However, if it is set to ``True``, then parsing of the characters " "``();<>|&`` is changed: any run of these characters is returned as a single " "token. While this is short of a full parser for shells (which would be out " "of scope for the standard library, given the multiplicity of shells out " "there), it does allow you to perform processing of command lines more easily " "than you could otherwise. To illustrate, you can see the difference in the " "following snippet:" msgstr "" #: library/shlex.rst:433 msgid "" "Of course, tokens will be returned which are not valid for shells, and " "you'll need to implement your own error checks on the returned tokens." msgstr "" #: library/shlex.rst:436 msgid "" "Instead of passing ``True`` as the value for the punctuation_chars " "parameter, you can pass a string with specific characters, which will be " "used to determine which characters constitute punctuation. For example::" msgstr "" #: library/shlex.rst:445 msgid "" "When ``punctuation_chars`` is specified, the :attr:`~shlex.wordchars` " "attribute is augmented with the characters ``~-./*?=``. That is because " "these characters can appear in file names (including wildcards) and command-" "line arguments (e.g. ``--color=auto``). Hence::" msgstr "" #: library/shlex.rst:456 msgid "" "However, to match the shell as closely as possible, it is recommended to " "always use ``posix`` and :attr:`~shlex.whitespace_split` when using :attr:" "`~shlex.punctuation_chars`, which will negate :attr:`~shlex.wordchars` " "entirely." msgstr "" #: library/shlex.rst:461 msgid "" "For best effect, ``punctuation_chars`` should be set in conjunction with " "``posix=True``. (Note that ``posix=False`` is the default for :class:`~shlex." "shlex`.)" msgstr ""