# 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: 2020-02-04 10:00+0100\n"
"PO-Revision-Date: 2018-09-11 07:42+0200\n"
"Last-Translator: Julien VITARD <julienvitard@gmail.com>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.8.11\n"

#: ../Doc/library/ast.rst:2
msgid ":mod:`ast` --- Abstract Syntax Trees"
msgstr ":mod:`ast` — Arbres Syntaxiques Abstraits"

#: ../Doc/library/ast.rst:10
msgid "**Source code:** :source:`Lib/ast.py`"
msgstr "**Code source :** :source:`Lib/ast.py`"

#: ../Doc/library/ast.rst:14
msgid ""
"The :mod:`ast` module helps Python applications to process trees of the "
"Python abstract syntax grammar.  The abstract syntax itself might change "
"with each Python release; this module helps to find out programmatically "
"what the current grammar looks like."
msgstr ""
"Le module :mod:`ast` permet aux applications Python de traiter la grammaire "
"abstraite de l'arbre syntaxique Python. La grammaire abstraite Python elle-"
"même est susceptible d'être modifiée à chaque nouvelle version de Python; ce "
"module permet de trouver à quoi la grammaire actuelle ressemble."

#: ../Doc/library/ast.rst:19
msgid ""
"An abstract syntax tree can be generated by passing :data:`ast."
"PyCF_ONLY_AST` as a flag to the :func:`compile` built-in function, or using "
"the :func:`parse` helper provided in this module.  The result will be a tree "
"of objects whose classes all inherit from :class:`ast.AST`.  An abstract "
"syntax tree can be compiled into a Python code object using the built-in :"
"func:`compile` function."
msgstr ""
"Un arbre syntaxique abstrait peut être généré en passant l'option :data:`ast."
"PyCF_ONLY_AST` à la fonction native :func:`compile`, ou en utilisant la "
"fonction de facilité :func:`parse` fournie par le module. Le résultat est un "
"arbre composé d'objets dont les classes héritent toutes de :class:`ast.AST`. "
"Un arbre syntaxique abstrait peut être compilé en code objet Python en "
"utilisant la fonction native :func:`compile`."

#: ../Doc/library/ast.rst:27
msgid "Node classes"
msgstr "Les classes nœud"

#: ../Doc/library/ast.rst:31
msgid ""
"This is the base of all AST node classes.  The actual node classes are "
"derived from the :file:`Parser/Python.asdl` file, which is reproduced :ref:"
"`below <abstract-grammar>`.  They are defined in the :mod:`_ast` C module "
"and re-exported in :mod:`ast`."
msgstr ""
"C'est la classe de base de toute classe nœud de l'AST. Les classes nœud "
"courantes sont dérivées du fichier :file:`Parser/Python.asdl`, qui est "
"reproduit :ref:`ci-dessous <abstract-grammar>`. Ils sont définis dans le "
"module C :mod:`_ast` et ré-exportés dans le module :mod:`ast`."

#: ../Doc/library/ast.rst:36
msgid ""
"There is one class defined for each left-hand side symbol in the abstract "
"grammar (for example, :class:`ast.stmt` or :class:`ast.expr`).  In addition, "
"there is one class defined for each constructor on the right-hand side; "
"these classes inherit from the classes for the left-hand side trees.  For "
"example, :class:`ast.BinOp` inherits from :class:`ast.expr`.  For production "
"rules with alternatives (aka \"sums\"), the left-hand side class is "
"abstract: only instances of specific constructor nodes are ever created."
msgstr ""
"Il y a une classe définie pour chacun des symboles présents à gauche dans la "
"grammaire abstraite (par exemple, :class:`ast.stmt` ou :class:`ast.expr`). "
"En plus de cela, il y a une classe définie pour chacun des constructeurs "
"présentés à droite; ces classes héritent des classes situées à gauche dans "
"l'arbre. Par exemple, la classe :class:`ast.BinOp` hérite de la classe :"
"class:`ast.expr`. Pour les règles de réécriture avec alternatives (comme "
"*sums*), la partie gauche est abstraite : seules les instances des "
"constructeurs spécifiques aux nœuds sont créés."

#: ../Doc/library/ast.rst:49
msgid ""
"Each concrete class has an attribute :attr:`_fields` which gives the names "
"of all child nodes."
msgstr ""
"Chaque classe concrète possède un attribut :attr:`_fields` donnant les noms "
"de tous les nœuds enfants."

#: ../Doc/library/ast.rst:52
msgid ""
"Each instance of a concrete class has one attribute for each child node, of "
"the type as defined in the grammar.  For example, :class:`ast.BinOp` "
"instances have an attribute :attr:`left` of type :class:`ast.expr`."
msgstr ""
"Chaque instance d'une classe concrète possède un attribut pour chaque nœud "
"enfant, du type défini par la grammaire. Par exemple, les instances :class:"
"`ast.BinOp` possèdent un attribut :attr:`left` de type :class:`ast.expr`."

#: ../Doc/library/ast.rst:56
msgid ""
"If these attributes are marked as optional in the grammar (using a question "
"mark), the value might be ``None``.  If the attributes can have zero-or-more "
"values (marked with an asterisk), the values are represented as Python "
"lists.  All possible attributes must be present and have valid values when "
"compiling an AST with :func:`compile`."
msgstr ""
"Si ces attributs sont marqués comme optionnels dans la grammaire (en "
"utilisant un point d'interrogation ``?``), la valeur peut être ``None``. Si "
"les attributs peuvent avoir zéro ou plus valeurs (marqués avec un astérisque "
"``*``), les valeurs sont représentées par des listes Python. Tous les "
"attributs possibles doivent être présents et avoir une valeur valide pour "
"compiler un AST avec :func:`compile`."

#: ../Doc/library/ast.rst:67
#, fuzzy
msgid ""
"Instances of :class:`ast.expr` and :class:`ast.stmt` subclasses have :attr:"
"`lineno`, :attr:`col_offset`, :attr:`lineno`, and :attr:`col_offset` "
"attributes.  The :attr:`lineno` and :attr:`end_lineno` are the first and "
"last line numbers of source text span (1-indexed so the first line is line "
"1) and the :attr:`col_offset` and :attr:`end_col_offset` are the "
"corresponding UTF-8 byte offsets of the first and last tokens that generated "
"the node. The UTF-8 offset is recorded because the parser uses UTF-8 "
"internally."
msgstr ""
"Les instances des sous-classes :class:`ast.expr` et :class:`ast.stmt` "
"possèdent les attributs :attr:`lineno` et :attr:`col_offset`. L'attribut :"
"attr:`lineno` est le numéro de ligne dans le code source (indexé à partir de "
"1 tel que la première ligne est la ligne 1) et l'attribut :attr:`col_offset` "
"qui représente le décalage UTF-8 en byte du premier jeton qui a généré le "
"nœud. Le décalage UTF-8 est enregistré parce que l'analyseur syntaxique "
"utilise l'UTF-8 en interne."

#: ../Doc/library/ast.rst:75
msgid ""
"Note that the end positions are not required by the compiler and are "
"therefore optional. The end offset is *after* the last symbol, for example "
"one can get the source segment of a one-line expression node using "
"``source_line[node.col_offset : node.end_col_offset]``."
msgstr ""

#: ../Doc/library/ast.rst:80
msgid ""
"The constructor of a class :class:`ast.T` parses its arguments as follows:"
msgstr ""
"Le constructeur d'une classe :class:`ast.T` analyse ses arguments comme "
"suit :"

#: ../Doc/library/ast.rst:82
msgid ""
"If there are positional arguments, there must be as many as there are items "
"in :attr:`T._fields`; they will be assigned as attributes of these names."
msgstr ""
"S'il y a des arguments positionnels, il doit y avoir autant de termes dans :"
"attr:`T._fields`; ils sont assignés comme attributs portant ces noms."

#: ../Doc/library/ast.rst:84
msgid ""
"If there are keyword arguments, they will set the attributes of the same "
"names to the given values."
msgstr ""
"S'il y a des arguments nommés, ils définissent les attributs de mêmes noms "
"avec les valeurs données."

#: ../Doc/library/ast.rst:87
msgid ""
"For example, to create and populate an :class:`ast.UnaryOp` node, you could "
"use ::"
msgstr ""
"Par exemple, pour créer et peupler un nœud :class:`ast.UnaryOp`, on peut "
"utiliser ::"

#: ../Doc/library/ast.rst:99
msgid "or the more compact ::"
msgstr "ou, plus compact ::"

#: ../Doc/library/ast.rst:106
msgid ""
"Class :class:`ast.Constant` is now used for all constants. Old classes :"
"class:`ast.Num`, :class:`ast.Str`, :class:`ast.Bytes`, :class:`ast."
"NameConstant` and :class:`ast.Ellipsis` are still available, but they will "
"be removed in future Python releases."
msgstr ""

#: ../Doc/library/ast.rst:115
msgid "Abstract Grammar"
msgstr "Grammaire abstraite"

#: ../Doc/library/ast.rst:117
msgid "The abstract grammar is currently defined as follows:"
msgstr "La grammaire abstraite est actuellement définie comme suit :"

#: ../Doc/library/ast.rst:124
msgid ":mod:`ast` Helpers"
msgstr "Outils du module :mod:`ast`"

#: ../Doc/library/ast.rst:126
msgid ""
"Apart from the node classes, the :mod:`ast` module defines these utility "
"functions and classes for traversing abstract syntax trees:"
msgstr ""
"À part la classe nœud, le module :mod:`ast` définit ces fonctions et classes "
"utilitaires pour traverser les arbres syntaxiques abstraits :"

#: ../Doc/library/ast.rst:131
msgid ""
"Parse the source into an AST node.  Equivalent to ``compile(source, "
"filename, mode, ast.PyCF_ONLY_AST)``."
msgstr ""
"Analyse le code source en un nœud AST. Équivalent à ``compile(source, "
"filename, mode, ast.PyCF_ONLY_AST)``."

#: ../Doc/library/ast.rst:134
msgid ""
"If ``type_comments=True`` is given, the parser is modified to check and "
"return type comments as specified by :pep:`484` and :pep:`526`. This is "
"equivalent to adding :data:`ast.PyCF_TYPE_COMMENTS` to the flags passed to :"
"func:`compile()`.  This will report syntax errors for misplaced type "
"comments.  Without this flag, type comments will be ignored, and the "
"``type_comment`` field on selected AST nodes will always be ``None``.  In "
"addition, the locations of ``# type: ignore`` comments will be returned as "
"the ``type_ignores`` attribute of :class:`Module` (otherwise it is always an "
"empty list)."
msgstr ""

#: ../Doc/library/ast.rst:144
msgid ""
"In addition, if ``mode`` is ``'func_type'``, the input syntax is modified to "
"correspond to :pep:`484` \"signature type comments\", e.g. ``(str, int) -> "
"List[str]``."
msgstr ""

#: ../Doc/library/ast.rst:148
msgid ""
"Also, setting ``feature_version`` to a tuple ``(major, minor)`` will attempt "
"to parse using that Python version's grammar. Currently ``major`` must equal "
"to ``3``.  For example, setting ``feature_version=(3, 4)`` will allow the "
"use of ``async`` and ``await`` as variable names.  The lowest supported "
"version is ``(3, 4)``; the highest is ``sys.version_info[0:2]``."
msgstr ""

#: ../Doc/library/ast.rst:156 ../Doc/library/ast.rst:177
msgid ""
"It is possible to crash the Python interpreter with a sufficiently large/"
"complex string due to stack depth limitations in Python's AST compiler."
msgstr ""
"Il est possible de faire planter l'interpréteur Python avec des chaînes "
"suffisamment grandes ou complexes lors de la compilation d'un objet AST dû à "
"la limitation de la profondeur de la pile d'appels."

#: ../Doc/library/ast.rst:160
msgid "Added ``type_comments``, ``mode='func_type'`` and ``feature_version``."
msgstr ""

#: ../Doc/library/ast.rst:166
msgid ""
"Safely evaluate an expression node or a string containing a Python literal "
"or container display.  The string or node provided may only consist of the "
"following Python literal structures: strings, bytes, numbers, tuples, lists, "
"dicts, sets, booleans, and ``None``."
msgstr ""
"Évalue de manière sûre un nœud expression ou une chaîne de caractères "
"contenant une expression littérale Python ou un conteneur. La chaîne de "
"caractères ou le nœud fourni peut seulement faire partie des littéraux "
"Python suivants : chaînes de caractères, bytes, nombres, n-uplets, listes, "
"dictionnaires, ensembles, booléens, et ``None``."

#: ../Doc/library/ast.rst:171
msgid ""
"This can be used for safely evaluating strings containing Python values from "
"untrusted sources without the need to parse the values oneself.  It is not "
"capable of evaluating arbitrarily complex expressions, for example involving "
"operators or indexing."
msgstr ""
"Cela peut être utilisé pour évaluer de manière sûre la chaîne de caractères "
"contenant des valeurs Python de sources non fiable sans avoir besoin "
"d'analyser les valeurs elles-mêmes. Cette fonction n'est pas capable "
"d'évaluer des expressions complexes arbitraires, par exemple impliquant des "
"opérateurs ou de l'indexation."

#: ../Doc/library/ast.rst:181
msgid "Now allows bytes and set literals."
msgstr "Accepte maintenant les littéraux suivants *bytes* et *sets*."

#: ../Doc/library/ast.rst:187
msgid ""
"Return the docstring of the given *node* (which must be a :class:"
"`FunctionDef`, :class:`AsyncFunctionDef`, :class:`ClassDef`, or :class:"
"`Module` node), or ``None`` if it has no docstring. If *clean* is true, "
"clean up the docstring's indentation with :func:`inspect.cleandoc`."
msgstr ""
"Renvoie la *docstring* du *node* donné (qui doit être un nœud de type :class:"
"`FunctionDef`, :class:`AsyncFunctionDef`, :class:`ClassDef`, or :class:"
"`Module`), ou ``None`` s'il n'a pas de *docstring*. Si *clean* est vrai, "
"cette fonction nettoie l'indentation de la *docstring* avec :func:`inspect."
"cleandoc`."

#: ../Doc/library/ast.rst:193
msgid ":class:`AsyncFunctionDef` is now supported."
msgstr ":class:`AsyncFunctionDef` est maintenant gérée"

#: ../Doc/library/ast.rst:199
msgid ""
"Get source code segment of the *source* that generated *node*. If some "
"location information (:attr:`lineno`, :attr:`end_lineno`, :attr:"
"`col_offset`, or :attr:`end_col_offset`) is missing, return ``None``."
msgstr ""

#: ../Doc/library/ast.rst:203
msgid ""
"If *padded* is ``True``, the first line of a multi-line statement will be "
"padded with spaces to match its original position."
msgstr ""

#: ../Doc/library/ast.rst:211
msgid ""
"When you compile a node tree with :func:`compile`, the compiler expects :"
"attr:`lineno` and :attr:`col_offset` attributes for every node that supports "
"them.  This is rather tedious to fill in for generated nodes, so this helper "
"adds these attributes recursively where not already set, by setting them to "
"the values of the parent node.  It works recursively starting at *node*."
msgstr ""
"Lorsque l'on compile un arbre avec :func:`compile`, le compilateur attend "
"les attributs :attr:`lineno` et :attr:`col_offset` pour tous les nœuds qui "
"les supportent. Il est fastidieux de les remplir pour les nœuds générés, "
"cette fonction utilitaire ajoute ces attributs de manière récursive là où "
"ils ne sont pas déjà définis, en les définissant comme les valeurs du nœud "
"parent. Elle fonctionne récursivement en démarrant de *node*."

#: ../Doc/library/ast.rst:220
#, fuzzy
msgid ""
"Increment the line number and end line number of each node in the tree "
"starting at *node* by *n*. This is useful to \"move code\" to a different "
"location in a file."
msgstr ""
"Incrémente de *n* le numéro de ligne de chaque nœud dans l'arbre en "
"commençant par le nœud *node*. C'est utile pour \"déplacer du code\" à un "
"endroit différent dans un fichier."

#: ../Doc/library/ast.rst:227
#, fuzzy
msgid ""
"Copy source location (:attr:`lineno`, :attr:`col_offset`, :attr:"
"`end_lineno`, and :attr:`end_col_offset`) from *old_node* to *new_node* if "
"possible, and return *new_node*."
msgstr ""
"Copie le code source (:attr:`lineno` et :attr:`col_offset`) de l'ancien nœud "
"*old_node* vers le nouveau nœud *new_node* si possible, et renvoie "
"*new_node*."

#: ../Doc/library/ast.rst:234
msgid ""
"Yield a tuple of ``(fieldname, value)`` for each field in ``node._fields`` "
"that is present on *node*."
msgstr ""
"Produit un n-uplet de ``(fieldname, value)`` pour chaque champ de ``node."
"_fields`` qui est présent dans *node*."

#: ../Doc/library/ast.rst:240
msgid ""
"Yield all direct child nodes of *node*, that is, all fields that are nodes "
"and all items of fields that are lists of nodes."
msgstr ""
"Produit tous les nœuds enfants directs de *node*, c'est à dire, tous les "
"champs qui sont des nœuds et tous les éléments des champs qui sont des "
"listes de nœuds."

#: ../Doc/library/ast.rst:246
msgid ""
"Recursively yield all descendant nodes in the tree starting at *node* "
"(including *node* itself), in no specified order.  This is useful if you "
"only want to modify nodes in place and don't care about the context."
msgstr ""
"Produit récursivement tous les nœuds enfants dans l'arbre en commençant par "
"*node* (*node* lui-même est inclus), sans ordre spécifique. C'est utile "
"lorsque l'on souhaite modifier les nœuds sur place sans prêter attention au "
"contexte."

#: ../Doc/library/ast.rst:253
msgid ""
"A node visitor base class that walks the abstract syntax tree and calls a "
"visitor function for every node found.  This function may return a value "
"which is forwarded by the :meth:`visit` method."
msgstr ""
"Classe de base pour un visiteur de nœud, qui parcourt l'arbre syntaxique "
"abstrait et appelle une fonction de visite pour chacun des nœuds trouvés. "
"Cette fonction peut renvoyer une valeur qui est transmise par la méthode :"
"meth:`visit`."

#: ../Doc/library/ast.rst:257
msgid ""
"This class is meant to be subclassed, with the subclass adding visitor "
"methods."
msgstr ""
"Cette classe est faite pour être dérivée, en ajoutant des méthodes de visite "
"à la sous-classe."

#: ../Doc/library/ast.rst:262
msgid ""
"Visit a node.  The default implementation calls the method called :samp:"
"`self.visit_{classname}` where *classname* is the name of the node class, "
"or :meth:`generic_visit` if that method doesn't exist."
msgstr ""
"Visite un nœud. L'implémentation par défaut appelle la méthode :samp:`self."
"visit_{classname}` où *classname* représente le nom de la classe du nœud, "
"ou :meth:`generic_visit` si cette méthode n'existe pas."

#: ../Doc/library/ast.rst:268
msgid "This visitor calls :meth:`visit` on all children of the node."
msgstr ""
"Le visiteur appelle la méthode :meth:`visit` de tous les enfants du nœud."

#: ../Doc/library/ast.rst:270
msgid ""
"Note that child nodes of nodes that have a custom visitor method won't be "
"visited unless the visitor calls :meth:`generic_visit` or visits them itself."
msgstr ""
"Notons que les nœuds enfants qui possèdent une méthode de visite spéciale ne "
"seront pas visités à moins que le visiteur n'appelle la méthode :meth:"
"`generic_visit` ou ne les visite lui-même."

#: ../Doc/library/ast.rst:274
msgid ""
"Don't use the :class:`NodeVisitor` if you want to apply changes to nodes "
"during traversal.  For this a special visitor exists (:class:"
"`NodeTransformer`) that allows modifications."
msgstr ""
"N'utilisez pas :class:`NodeVisitor` si vous souhaitez appliquer des "
"changements sur les nœuds lors du parcours. Pour cela, un visiteur spécial "
"existe (:class:`NodeTransformer`) qui permet les modifications."

#: ../Doc/library/ast.rst:280
msgid ""
"Methods :meth:`visit_Num`, :meth:`visit_Str`, :meth:`visit_Bytes`, :meth:"
"`visit_NameConstant` and :meth:`visit_Ellipsis` are deprecated now and will "
"not be called in future Python versions.  Add the :meth:`visit_Constant` "
"method to handle all constant nodes."
msgstr ""

#: ../Doc/library/ast.rst:288
msgid ""
"A :class:`NodeVisitor` subclass that walks the abstract syntax tree and "
"allows modification of nodes."
msgstr ""
"Une sous-classe :class:`NodeVisitor` qui traverse l'arbre syntaxique "
"abstrait et permet les modifications des nœuds."

#: ../Doc/library/ast.rst:291
msgid ""
"The :class:`NodeTransformer` will walk the AST and use the return value of "
"the visitor methods to replace or remove the old node.  If the return value "
"of the visitor method is ``None``, the node will be removed from its "
"location, otherwise it is replaced with the return value.  The return value "
"may be the original node in which case no replacement takes place."
msgstr ""
"Le :class:`NodeTransformer` traverse l'AST et utilise la valeur renvoyée par "
"les méthodes du visiteur pour remplacer ou supprimer l'ancien nœud. Si la "
"valeur renvoyée par la méthode du visiteur est ``None``, le nœud est "
"supprimé de sa position, sinon il est remplacé par la valeur de retour. La "
"valeur de retour peut être le nœud original et dans ce cas, il n'y a pas de "
"remplacement. "

#: ../Doc/library/ast.rst:297
msgid ""
"Here is an example transformer that rewrites all occurrences of name lookups "
"(``foo``) to ``data['foo']``::"
msgstr ""
"Voici un exemple du *transformer* qui réécrit les occurrences du "
"dictionnaire (``foo``) en ``data['foo']`` ::"

#: ../Doc/library/ast.rst:309
msgid ""
"Keep in mind that if the node you're operating on has child nodes you must "
"either transform the child nodes yourself or call the :meth:`generic_visit` "
"method for the node first."
msgstr ""
"Gardez en tête que si un nœud sur lequel vous travaillez a des nœuds "
"enfants, vous devez transformer également ces nœuds enfant vous-même ou "
"appeler d'abord la méthode :meth:`generic_visit` sur le nœud."

#: ../Doc/library/ast.rst:313
msgid ""
"For nodes that were part of a collection of statements (that applies to all "
"statement nodes), the visitor may also return a list of nodes rather than "
"just a single node."
msgstr ""
"Pour les nœuds qui font partie d'une collection d'instructions (cela "
"s'applique à tous les nœuds instruction), le visiteur peut aussi renvoyer la "
"liste des nœuds plutôt qu'un seul nœud."

#: ../Doc/library/ast.rst:317
msgid ""
"If :class:`NodeTransformer` introduces new nodes (that weren't part of "
"original tree) without giving them location information (such as :attr:"
"`lineno`), :func:`fix_missing_locations` should be called with the new sub-"
"tree to recalculate the location information::"
msgstr ""

#: ../Doc/library/ast.rst:325
msgid "Usually you use the transformer like this::"
msgstr "Utilisation typique du *transformer* ::"

#: ../Doc/library/ast.rst:332
#, fuzzy
msgid ""
"Return a formatted dump of the tree in *node*.  This is mainly useful for "
"debugging purposes.  If *annotate_fields* is true (by default), the returned "
"string will show the names and the values for fields. If *annotate_fields* "
"is false, the result string will be more compact by omitting unambiguous "
"field names.  Attributes such as line numbers and column offsets are not "
"dumped by default.  If this is wanted, *include_attributes* can be set to "
"true."
msgstr ""
"Renvoie un *dump* formaté de l'arbre dans *node*. C'est principalement utile "
"à des fins de débogage. La chaîne de caractères renvoyée présente les noms "
"et valeurs des champs. Cela rend le code impossible à évaluer, si l'on "
"souhaite évaluer ce code, l'option *annotate_fields* doit être définie comme "
"``False``. Les attributs comme les numéros de ligne et les décalages de "
"colonne ne sont pas récupérés par défaut. Si l'on souhaite les récupérer, "
"l'option *include_attributes* peut être définie comme ``True``."

#: ../Doc/library/ast.rst:342
msgid ""
"`Green Tree Snakes <https://greentreesnakes.readthedocs.io/>`_, an external "
"documentation resource, has good details on working with Python ASTs."
msgstr ""
"`Green Tree Snakes <https://greentreesnakes.readthedocs.io/>`_, une "
"ressource documentaire externe, qui possède plus de détails pour travailler "
"avec des ASTs Python."
