'Reference Execution Model' Translation

This commit is contained in:
Christophe Nanteuil 2018-04-29 00:09:17 +02:00
parent c2b58d3161
commit d92124f32f
1 changed files with 166 additions and 12 deletions

View File

@ -3,27 +3,27 @@
# This file is distributed under the same license as the Python package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Python 3.6\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-05-27 19:40+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"PO-Revision-Date: 2018-04-29 00:05+0200\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Last-Translator: \n"
"Language-Team: \n"
"X-Generator: Poedit 2.0.2\n"
#: ../Doc/reference/executionmodel.rst:6
msgid "Execution model"
msgstr ""
msgstr "Modèle d'exécution"
#: ../Doc/reference/executionmodel.rst:15
msgid "Structure of a program"
msgstr ""
msgstr "Structure d'un programme"
#: ../Doc/reference/executionmodel.rst:19
msgid ""
@ -37,6 +37,16 @@ msgid ""
"passed to the built-in functions :func:`eval` and :func:`exec` is a code "
"block."
msgstr ""
"Un programme Python est constitué de blocs de code. Un :dfn:`bloc` est un "
"morceau de texte d'un programme Python qui est exécuté unitairement. Voici "
"des exemples de blocs : un module, le corps d'une fonction ou la définition "
"d'une classe. Chaque commande tapée dans l'interpréteur interactif est un "
"bloc. Un fichier script (fichier donné en entrée à l'interpréteur ou "
"spécifié en tant qu'argument de la ligne de commande) est un bloc de code. "
"Un script de commande (commande spécifiée dans la ligne de commande de "
"l'interpréteur avec l'option '**-c**') est un bloc de code. La chaîne passée "
"en argument aux fonctions natives :func:`eval` ou :func:`exec` est un bloc "
"de code."
#: ../Doc/reference/executionmodel.rst:31
msgid ""
@ -44,20 +54,26 @@ msgid ""
"some administrative information (used for debugging) and determines where "
"and how execution continues after the code block's execution has completed."
msgstr ""
"Un bloc de code est exécuté dans un :dfn:`cadre d'exécution`. Un cadre "
"contient des informations administratives (utilisées pour le débogage) et "
"détermine où et comment l'exécution se poursuit après la fin de l'exécution "
"du bloc de code."
#: ../Doc/reference/executionmodel.rst:38
msgid "Naming and binding"
msgstr ""
msgstr "Noms et liaisons"
#: ../Doc/reference/executionmodel.rst:47
msgid "Binding of names"
msgstr ""
msgstr "Liaisons des noms"
#: ../Doc/reference/executionmodel.rst:53
msgid ""
":dfn:`Names` refer to objects. Names are introduced by name binding "
"operations."
msgstr ""
"Les :dfn:`noms` sont des références aux objets. Ils sont créés lors des "
"opérations de liaisons de noms (*name binding* en anglais)."
#: ../Doc/reference/executionmodel.rst:57
msgid ""
@ -70,18 +86,34 @@ msgid ""
"binds all names defined in the imported module, except those beginning with "
"an underscore. This form may only be used at the module level."
msgstr ""
"Les constructions suivantes conduisent à des opérations de liaison à des "
"noms : les paramètres formels d'une fonction, les instructions :keyword:"
"`import`, les définitions de fonctions et de classes (le nom de la classe ou "
"de la fonction est lié au bloc qui la définit) et les cibles qui sont des "
"identifiants dans les assignations, les entêtes de boucles :keyword:`for` ou "
"après :keyword:`as` dans une instruction :keyword:`with` ou une clause :"
"keyword:`except`. L'instruction :keyword:`import` sous la forme ``from ... "
"import *`` lie tous les noms définis dans le module importé, sauf ceux qui "
"commencent par un tiret bas (`'_'`). Cette forme ne doit être utilisée qu'au "
"niveau du module."
#: ../Doc/reference/executionmodel.rst:67
msgid ""
"A target occurring in a :keyword:`del` statement is also considered bound "
"for this purpose (though the actual semantics are to unbind the name)."
msgstr ""
"Une cible qui apparaît dans une instruction :keyword:`del` est aussi "
"considérée comme une liaison à un nom dans ce cadre (bien que la sémantique "
"véritable soit de délier le nom)."
#: ../Doc/reference/executionmodel.rst:70
msgid ""
"Each assignment or import statement occurs within a block defined by a class "
"or function definition or at the module level (the top-level code block)."
msgstr ""
"Chaque assignation ou instruction *import* a lieu dans un bloc défini par "
"une définition de classe ou de fonction ou au niveau du module (le bloc de "
"code de plus haut niveau)."
#: ../Doc/reference/executionmodel.rst:75
msgid ""
@ -91,16 +123,24 @@ msgid ""
"code block are local and global.) If a variable is used in a code block but "
"not defined there, it is a :dfn:`free variable`."
msgstr ""
"Si un nom est lié dans un bloc, c'est une variable locale de ce bloc, à "
"moins qu'il ne soit déclaré :keyword:`nonlocal` ou :keyword:`global`. Si un "
"nom est lié au niveau du module, c'est une variable globale (les variables "
"du bloc de code de niveau module sont locales et globales). Si une variable "
"est utilisée dans un bloc de code alors qu'elle n'y est pas définie, c'est "
"une :dfn:`variable libre`."
#: ../Doc/reference/executionmodel.rst:81
msgid ""
"Each occurrence of a name in the program text refers to the :dfn:`binding` "
"of that name established by the following name resolution rules."
msgstr ""
"Chaque occurrence d'un nom dans un programme fait référence à la :dfn:"
"`liaison` de ce nom établie par les règles de résolution des noms suivantes."
#: ../Doc/reference/executionmodel.rst:87
msgid "Resolution of names"
msgstr ""
msgstr "Résolution des noms"
#: ../Doc/reference/executionmodel.rst:91
msgid ""
@ -110,6 +150,11 @@ msgid ""
"contained within the defining one, unless a contained block introduces a "
"different binding for the name."
msgstr ""
"La :dfn:`portée` définit la visibilité d'un nom dans un bloc. Si une "
"variable locale est définie dans un bloc, sa portée comprend ce bloc. Si la "
"définition intervient dans le bloc d'une fonction, la portée s'étend à tous "
"les blocs contenus dans celui qui comprend la définition, à moins qu'un bloc "
"intérieur ne définisse une autre liaison pour ce nom."
#: ../Doc/reference/executionmodel.rst:99
msgid ""
@ -117,6 +162,9 @@ msgid ""
"enclosing scope. The set of all such scopes visible to a code block is "
"called the block's :dfn:`environment`."
msgstr ""
"Quand un nom est utilisé dans un bloc de code, la résolution utilise la "
"portée la plus petite. L'ensemble de toutes les portées visibles dans un "
"bloc de code s'appelle :dfn:`l'environnement` du bloc."
#: ../Doc/reference/executionmodel.rst:107
msgid ""
@ -126,6 +174,11 @@ msgid ""
"is used, an :exc:`UnboundLocalError` exception is raised. :exc:"
"`UnboundLocalError` is a subclass of :exc:`NameError`."
msgstr ""
"Quand un nom n'est trouvé nulle part, une exception :exc:`NameError` est "
"levée. Si la portée courante est celle d'une fonction et que le nom fait "
"référence à une variable locale qui n'a pas encore été liée au moment où le "
"nom est utilisé, une exception :exc:`UnboundLocalError` est levée. :exc:"
"`UnboundLocalError` est une sous-classe de :exc:`NameError`."
#: ../Doc/reference/executionmodel.rst:113
msgid ""
@ -137,6 +190,14 @@ msgid ""
"variables of a code block can be determined by scanning the entire text of "
"the block for name binding operations."
msgstr ""
"Si une opération de liaison intervient dans un bloc de code, toutes les "
"utilisations du nom dans le bloc sont considérées comme des références au "
"bloc courant. Ceci peut conduire à des erreurs quand un nom est utilisé à "
"l'intérieur d'un bloc avant d'être lié. La règle est subtile. Python "
"n'attend pas de déclaration de variables et autorise les opérations de "
"liaison n'importe où dans un bloc de code. Les variables locales d'un bloc "
"de code peuvent être déterminées en parcourant tout le texte du bloc à la "
"recherche des opérations de liaisons."
#: ../Doc/reference/executionmodel.rst:120
msgid ""
@ -149,6 +210,16 @@ msgid ""
"found there, the builtins namespace is searched. The :keyword:`global` "
"statement must precede all uses of the name."
msgstr ""
"Si l'instruction :keyword:`global` apparaît dans un bloc, toutes les "
"utilisations du nom spécifié dans l'instruction font référence à la liaison "
"de ce nom dans l'espace de noms de plus haut niveau. Les noms sont résolus "
"dans cet espace de noms de plus haut niveau en recherchant l'espace des noms "
"globaux, c'est-à-dire l'espace de noms du module contenant le bloc de code "
"ainsi que dans l'espace de noms natifs, celui du module :mod:`builtins`. La "
"recherche commence dans l'espace de noms globaux. Si le nom n'y est pas "
"trouvé, la recherche se poursuit dans l'espace de noms natifs. "
"L'instruction :keyword:`global` doit précéder toute utilisation du nom "
"considéré."
#: ../Doc/reference/executionmodel.rst:129
msgid ""
@ -157,6 +228,9 @@ msgid ""
"variable contains a global statement, the free variable is treated as a "
"global."
msgstr ""
"L'instruction :keyword:`global` a la même porte qu'une opération de liaison "
"du même bloc. Si la portée englobante la plus petite pour une variable libre "
"contient une instruction *global*, la variable libre est considérée globale."
#: ../Doc/reference/executionmodel.rst:135
msgid ""
@ -165,12 +239,20 @@ msgid ""
"`SyntaxError` is raised at compile time if the given name does not exist in "
"any enclosing function scope."
msgstr ""
"L'instruction :keyword:`nonlocal` fait que les noms correspondants font "
"référence aux variables liées précédemment dans la portée de fonction "
"englobante la plus petite possible. :exc:`SyntaxError` est levée à la "
"compilation si le nom donné n'existe dans aucune portée de fonction "
"englobante."
#: ../Doc/reference/executionmodel.rst:142
msgid ""
"The namespace for a module is automatically created the first time a module "
"is imported. The main module for a script is always called :mod:`__main__`."
msgstr ""
"L'espace de noms pour un module est créé automatiquement la première fois "
"que le module est importé. Le module principal d'un script s'appelle "
"toujours :mod:`__main__`."
#: ../Doc/reference/executionmodel.rst:145
msgid ""
@ -185,10 +267,22 @@ msgid ""
"expressions since they are implemented using a function scope. This means "
"that the following will fail::"
msgstr ""
"Les blocs de définition de classe et les arguments de :func:`exec` ainsi "
"que :func:`eval` sont traités de manière spéciale dans le cadre de la "
"résolution des noms. Une définition de classe est une instruction exécutable "
"qui peut utiliser et définir des noms. Toutes ces références suivent les "
"règles normales de la résolution des noms à l'exception des variables "
"locales non liées qui sont recherchées dans l'espace des noms globaux. "
"L'espace de noms de la définition de classe devient le dictionnaire des "
"attributs de la classe. La portée des noms définis dans un bloc de classe "
"est limitée au bloc de la classe ; elle ne s'étend pas aux blocs de code des "
"méthodes -- y compris les compréhensions et les expressions générateurs "
"puisque celles-ci sont implémentées en utilisant une portée de fonction. "
"Ainsi, les instructions suivantes échouent ::"
#: ../Doc/reference/executionmodel.rst:163
msgid "Builtins and restricted execution"
msgstr ""
msgstr "Noms natifs et restrictions d'exécution"
#: ../Doc/reference/executionmodel.rst:169
msgid ""
@ -197,6 +291,11 @@ msgid ""
"keyword:`import` the :mod:`builtins` module and modify its attributes "
"appropriately."
msgstr ""
"L'utilisateur ne doit pas toucher à ``__builtins__``; c'est et cela doit "
"rester réservé aux besoins de l'implémentation. Les utilisateurs qui "
"souhaitent surcharger des valeurs dans l'espace de noms natifs doivent :"
"keyword:`import`\\ er le module :mod:`builtins` et modifier ses attributs "
"judicieusement."
#: ../Doc/reference/executionmodel.rst:174
msgid ""
@ -208,16 +307,26 @@ msgid ""
"other module, ``__builtins__`` is an alias for the dictionary of the :mod:"
"`builtins` module itself."
msgstr ""
"L'espace de noms natifs associé à l'exécution d'un bloc de code est "
"effectivement trouvé en cherchant le nom ``__builtins__`` dans l'espace de "
"noms globaux ; ce doit être un dictionnaire ou un module (dans ce dernier "
"cas, le dictionnaire du module est utilisé). Par défaut, lorsque l'on se "
"trouve dans le module :mod:`__main__`, ``__builtins__`` est le module natif :"
"mod:`builtins` ; lorsque l'on se trouve dans tout autre module, "
"``__builtins__`` est un pseudonyme du dictionnaire du module :mod:`builtins` "
"lui-même."
#: ../Doc/reference/executionmodel.rst:186
msgid "Interaction with dynamic features"
msgstr ""
msgstr "Interaction avec les fonctionnalités dynamiques"
#: ../Doc/reference/executionmodel.rst:188
msgid ""
"Name resolution of free variables occurs at runtime, not at compile time. "
"This means that the following code will print 42::"
msgstr ""
"La résolution des noms de variables libres intervient à l'exécution, pas à "
"la compilation. Cela signifie que le code suivant affiche 42 ::"
#: ../Doc/reference/executionmodel.rst:199
msgid ""
@ -229,10 +338,18 @@ msgid ""
"global and local namespace. If only one namespace is specified, it is used "
"for both."
msgstr ""
"Les fonctions :func:`eval` et :func:`exec` n'ont pas accès à l'environnement "
"complet pour résoudre les noms. Les noms doivent être résolus dans les "
"espaces de noms locaux et globaux de l'appelant. Les variables libres ne "
"sont pas résolues dans l'espace de noms englobant le plus proche mais dans "
"l'espace de noms globaux [#]_. Les fonctions :func:`eval` et :func:`exec` "
"possèdent des arguments optionnels pour surcharger les espaces de noms "
"globaux et locaux. Si seulement un espace de noms est spécifié, il est "
"utilisé pour les deux."
#: ../Doc/reference/executionmodel.rst:210
msgid "Exceptions"
msgstr "Les exceptions"
msgstr "Exceptions"
#: ../Doc/reference/executionmodel.rst:221
msgid ""
@ -242,6 +359,12 @@ msgid ""
"*handled* by the surrounding code block or by any code block that directly "
"or indirectly invoked the code block where the error occurred."
msgstr ""
"Les exceptions sont un moyen de sortir du flot normal d'exécution d'un bloc "
"de code de manière à gérer des erreurs ou des conditions exceptionnelles. "
"Une exception est *levée* au moment où l'erreur est détectée ; elle doit "
"être *gérée* par le bloc de code qui l'entoure ou par tout bloc de code qui "
"a, directement ou indirectement, invoqué le bloc de code où l'erreur s'est "
"produite."
#: ../Doc/reference/executionmodel.rst:227
msgid ""
@ -253,6 +376,14 @@ msgid ""
"code which does not handle the exception, but is executed whether an "
"exception occurred or not in the preceding code."
msgstr ""
"L'interpréteur Python lève une exception quand il détecte une erreur à "
"l'exécution (telle qu'une division par zéro). Un programme Python peut aussi "
"lever explicitement une exception avec l'instruction :keyword:`raise`. Les "
"gestionnaires d'exception sont spécifiés avec l'instruction :keyword:"
"`try` ... :keyword:`except`. La clause :keyword:`finally` d'une telle "
"instruction peut être utilisée pour spécifier un code de nettoyage qui ne "
"gère pas l'exception mais qui est exécuté quoi qu'il arrive (exception ou "
"pas)."
#: ../Doc/reference/executionmodel.rst:237
msgid ""
@ -261,6 +392,11 @@ msgid ""
"but it cannot repair the cause of the error and retry the failing operation "
"(except by re-entering the offending piece of code from the top)."
msgstr ""
"Python utilise le modèle par *terminaison* de gestion des erreurs : un "
"gestionnaire d'exception peut trouver ce qui est arrivé et continuer "
"l'exécution à un niveau plus élevé mais il ne peut pas réparer l'origine de "
"l'erreur et ré-essayer l'opération qui a échoué (sauf à entrer à nouveau "
"dans le code en question par le haut)."
#: ../Doc/reference/executionmodel.rst:244
msgid ""
@ -269,6 +405,10 @@ msgid ""
"either case, it prints a stack backtrace, except when the exception is :exc:"
"`SystemExit`."
msgstr ""
"Quand une exception n'est gérée par aucun gestionnaire, l'interpréteur "
"termine l'exécution du programme ou retourne à la boucle interactive. Dans "
"ces cas, il affiche une trace de la pile d'appels, sauf si l'exception est :"
"exc:`SystemExit`."
#: ../Doc/reference/executionmodel.rst:248
msgid ""
@ -278,6 +418,11 @@ msgid ""
"by the handler and can carry additional information about the exceptional "
"condition."
msgstr ""
"Les exceptions sont identifiées par des instances de classe. La clause :"
"keyword:`except` sélectionnée dépend de la classe de l'instance : elle doit "
"faire référence à la classe de l'instance ou à une de ses classes ancêtres. "
"L'instance peut être transmise au gestionnaire et peut apporter des "
"informations complémentaires sur les conditions de l'exception."
#: ../Doc/reference/executionmodel.rst:255
msgid ""
@ -286,12 +431,19 @@ msgid ""
"be relied on by code which will run under multiple versions of the "
"interpreter."
msgstr ""
"Les messages d'exception ne font pas partie de l'API Python. Leur contenu "
"peut changer d'une version de Python à une autre sans avertissement et le "
"code ne doit pas reposer sur ceux-ci s'il doit fonctionner sur plusieurs "
"versions de l'interpréteur."
#: ../Doc/reference/executionmodel.rst:259
msgid ""
"See also the description of the :keyword:`try` statement in section :ref:"
"`try` and :keyword:`raise` statement in section :ref:`raise`."
msgstr ""
"Reportez-vous aussi aux descriptions de l'instruction :keyword:`try` dans la "
"section :ref:`try` et de l'instruction :keyword:`raise` dans la section :ref:"
"`raise`."
#: ../Doc/reference/executionmodel.rst:264
msgid "Footnotes"
@ -302,3 +454,5 @@ msgid ""
"This limitation occurs because the code that is executed by these operations "
"is not available at the time the module is compiled."
msgstr ""
"En effet, le code qui est exécuté par ces opérations n'est pas connu au "
"moment où le module est compilé."