Tutorial Modules Review.

This commit is contained in:
Christophe Nanteuil 2018-02-07 19:15:12 +01:00 committed by Julien Palard
parent d71a11b4bb
commit 3c33cb06b2
1 changed files with 180 additions and 179 deletions

View File

@ -8,14 +8,14 @@ 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: 2017-05-16 22:18+0200\n"
"PO-Revision-Date: 2018-02-07 13:42+0100\n"
"Last-Translator: Julien Palard <julien@palard.fr>\n"
"Language-Team: \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"
"X-Generator: Poedit 2.0.2\n"
#: ../Doc/tutorial/modules.rst:5
msgid "Modules"
@ -34,12 +34,12 @@ msgid ""
msgstr ""
"Lorsque vous quittez et entrez à nouveau dans l'interpréteur Python, tout ce "
"que vous avez déclaré dans la session précédente est perdu. Afin de rédiger "
"des programmes plus longs, vous devriez utiliser un éditeur de texte, "
"préparer votre code dans un fichier, et exécuter Python avec ce fichier en "
"paramètre. Ça s'appelle créé un *script*. Lorsque votre programme deviendra "
"plus long encore, vous pourrez séparer votre code dans plusieurs fichiers, "
"et vous trouverez aussi pratique de réutiliser des fonctions écrites pour un "
"programme dans un autre sans avoir à les copier."
"des programmes plus longs, vous devez utiliser un éditeur de texte, préparer "
"votre code dans un fichier et exécuter Python avec ce fichier en paramètre. "
"Cela s'appelle créer un *script*. Lorsque votre programme grandit, vous "
"pouvez séparer votre code dans plusieurs fichiers. Ainsi, il vous est facile "
"de réutiliser des fonctions écrites pour un programme dans un autre sans "
"avoir à les copier."
#: ../Doc/tutorial/modules.rst:16
msgid ""
@ -49,12 +49,12 @@ msgid ""
"modules or into the *main* module (the collection of variables that you have "
"access to in a script executed at the top level and in calculator mode)."
msgstr ""
"Pour gérer ça, Python à un moyen de rédiger des définitions dans un fichier "
"et les utiliser dans un script ou une session interactive. Un tel fichier "
"est appelé un *module*, et les définitions d'un module peuvent être "
"Pour gérer cela, Python vous permet de placer des définitions dans un "
"fichier et de les utiliser dans un script ou une session interactive. Un tel "
"fichier est appelé un *module* et les définitions d'un module peuvent être "
"importées dans un autre module ou dans le module *main* (qui est le module "
"qui contiens vos variables et définitions lors de l'exécution d'un script ou "
"en mode interactif)."
"qui contient vos variables et définitions lors de l'exécution d'un script au "
"niveau le plus haut ou en mode interactif)."
#: ../Doc/tutorial/modules.rst:22
msgid ""
@ -65,19 +65,18 @@ msgid ""
"to create a file called :file:`fibo.py` in the current directory with the "
"following contents::"
msgstr ""
"Un module est un fichier contenant des définitions et des instructions. Son "
"nom de fichier est le même que son nom, suffixé de :file:`.py`. À "
"l'intérieur d'un module, son propre nom est accessible dans la variable "
"``__name__``. Par exemple, prenez votre éditeur favori et créez un fichier :"
"file:`fibo.py` contenant : ::"
"Un module est un fichier contenant des définitions et des instructions. Son "
"nom de fichier est le nom du module suffixé de :file:`.py`. À l'intérieur "
"d'un module, son propre nom est accessible par la variable ``__name__``. Par "
"exemple, prenez votre éditeur favori et créez un fichier :file:`fibo.py` "
"dans le répertoire courant qui contient : ::"
#: ../Doc/tutorial/modules.rst:45
msgid ""
"Now enter the Python interpreter and import this module with the following "
"command::"
msgstr ""
"Maintenant, en étant dans le même dossier, ouvrez un interpréteur et "
"importez le module en tapant : ::"
"Maintenant, ouvrez un interpréteur et importez le module en tapant : ::"
#: ../Doc/tutorial/modules.rst:50
msgid ""
@ -86,19 +85,19 @@ msgid ""
"Using the module name you can access the functions::"
msgstr ""
"Cela n'importe pas les noms des fonctions définies dans ``fibo`` directement "
"dans la table des symboles courante, mais y ajoute simplement ``fibo``. Vous "
"pouvez donc appeler les fonctions via le nom du module : ::"
"dans la table des symboles courants mais y ajoute simplement ``fibo``. Vous "
"pouvez donc appeler les fonctions *via* le nom du module : ::"
#: ../Doc/tutorial/modules.rst:61
msgid ""
"If you intend to use a function often you can assign it to a local name::"
msgstr ""
"Si vous avez l'intention d'utiliser une fonction souvent, il est possible de "
"Si vous avez l'intention d'utiliser souvent une fonction, il est possible de "
"lui assigner un nom local : ::"
#: ../Doc/tutorial/modules.rst:71
msgid "More on Modules"
msgstr "Les modules en détails"
msgstr "Les modules en détail"
#: ../Doc/tutorial/modules.rst:73
msgid ""
@ -108,10 +107,10 @@ msgid ""
"[#]_ (They are also run if the file is executed as a script.)"
msgstr ""
"Un module peut contenir aussi bien des instructions que des déclarations de "
"fonctions. Ces instructions permettent d'initialiser le module, et ne sont "
"donc exécutées que la première fois que le nom d'un module est trouvé dans "
"un ``import``. [#]_ (Elles sont aussi exécutées lorsque le fichier est "
"exécuté en temps que script.)"
"fonctions. Ces instructions permettent d'initialiser le module. Elles ne "
"sont exécutées que la *première* fois que le nom d'un module est trouvé dans "
"un ``import`` [#]_ (elles sont aussi exécutées lorsque le fichier est "
"exécuté en tant que script)."
#: ../Doc/tutorial/modules.rst:78
msgid ""
@ -122,13 +121,13 @@ msgid ""
"know what you are doing you can touch a module's global variables with the "
"same notation used to refer to its functions, ``modname.itemname``."
msgstr ""
"Chaque module a sa propre table de symboles, utilisée comme table de "
"Chaque module possède sa propre table de symboles, utilisée comme table de "
"symboles globaux par toutes les fonctions définies par le module. Ainsi "
"l'auteur d'un module peut utiliser des variables globales dans un module "
"sans se soucier de collisions de noms avec des globales définies par "
"l'utilisateur du module. D'un autre côté, si vous savez ce que vous faites, "
"sans se soucier de collisions de noms avec des variables globales définies "
"par l'utilisateur du module. Cependant, si vous savez ce que vous faites, "
"vous pouvez modifier une variable globale d'un module avec la même notation "
"que pour accéder aux fonctions : ``modname.itemname``."
"que pour accéder aux fonctions : ``nommodule.nomelement``."
#: ../Doc/tutorial/modules.rst:85
msgid ""
@ -137,9 +136,9 @@ msgid ""
"for that matter). The imported module names are placed in the importing "
"module's global symbol table."
msgstr ""
"Des modules peuvent importer d'autres modules. Il est habituel mais pas "
"obligatoire de ranger tous les :keyword:`import` au début du module (ou du "
"script). Les noms des module importés sont insérés dans la table des "
"Des modules peuvent importer d'autres modules. Il est courant, mais pas "
"obligatoire, de ranger tous les :keyword:`import` au début du module (ou du "
"script). Les noms des modules importés sont insérés dans la table des "
"symboles globaux du module qui importe."
#: ../Doc/tutorial/modules.rst:90
@ -148,7 +147,7 @@ msgid ""
"from a module directly into the importing module's symbol table. For "
"example::"
msgstr ""
"Il existe une variation à l'instruction :keyword:`import` qui importe les "
"Il existe une variante de l'instruction :keyword:`import` qui importe les "
"noms d'un module directement dans la table de symboles du module qui "
"l'importe, par exemple : ::"
@ -158,13 +157,13 @@ msgid ""
"the local symbol table (so in the example, ``fibo`` is not defined)."
msgstr ""
"Cela n'insère pas le nom du module depuis lequel les définitions sont "
"récupérées dans la table locale de symboles (dans cet exemple, ``fibo`` "
"récupérées dans la table des symboles locaux (dans cet exemple, ``fibo`` "
"n'est pas défini)."
#: ../Doc/tutorial/modules.rst:100
msgid "There is even a variant to import all names that a module defines::"
msgstr ""
"Il existe même une variation permettant d'importer tous les noms qu'un "
"Il existe même une variante permettant d'importer tous les noms qu'un "
"module définit : ::"
#: ../Doc/tutorial/modules.rst:106
@ -177,7 +176,7 @@ msgstr ""
"Tous les noms ne commençant pas par un tiret bas (``_``) sont importés. Dans "
"la grande majorité des cas, les développeurs n'utilisent pas cette syntaxe "
"puisqu'en important un ensemble indéfini de noms, des noms déjà définis "
"peuvent se retrouver cachés."
"peuvent se retrouver masqués."
#: ../Doc/tutorial/modules.rst:111
msgid ""
@ -186,9 +185,8 @@ msgid ""
"However, it is okay to use it to save typing in interactive sessions."
msgstr ""
"Notez qu'en général, importer ``*`` d'un module ou d'un paquet est "
"déconseillé, en général ça engendre du code difficilement lisible. "
"Cependant, c'est acceptable de l'utiliser pour gagner quelques secondes en "
"mode interactif."
"déconseillé. Souvent, le code devient difficilement lisible. Son utilisation "
"en mode interactif est acceptée pour gagner quelques secondes."
#: ../Doc/tutorial/modules.rst:117
msgid ""
@ -198,11 +196,12 @@ msgid ""
"use :func:`importlib.reload`, e.g. ``import importlib; importlib."
"reload(modulename)``."
msgstr ""
"Pour des raisons de performance, chaque module n'est importé qu'une fois par "
"pour des raisons de performance, chaque module n'est importé qu'une fois par "
"session. Si vous changez le code d'un module vous devez donc redémarrer "
"l'interpréteur afin d'en voir l'impact. Ou le re-importer explicitement en "
"utilisant :func:`importlib.reload`, par exemple : ``import importlib; "
"importlib.reload(modulename)``."
"l'interpréteur afin d'en voir l'impact ; ou, s'il s'agit simplement d'un "
"seul module que vous voulez tester en mode interactif, vous pouvez le "
"ré-importer explicitement en utilisant :func:`importlib.reload`, par "
"exemple : ``import importlib; importlib.reload(nommodule)``."
#: ../Doc/tutorial/modules.rst:127
msgid "Executing modules as scripts"
@ -218,8 +217,8 @@ msgid ""
"with the ``__name__`` set to ``\"__main__\"``. That means that by adding "
"this code at the end of your module::"
msgstr ""
"le code du module sera exécuté comme si vous l'aviez importé, mais son "
"``__name__`` vaudra ``\"__main__\"``. Donc en ajoutant ces lignes à la fin "
"le code du module est exécuté comme si vous l'aviez importé mais son "
"``__name__`` vaut ``\"__main__\"``. Donc, en ajoutant ces lignes à la fin "
"du module : ::"
#: ../Doc/tutorial/modules.rst:141
@ -229,7 +228,7 @@ msgid ""
"executed as the \"main\" file:"
msgstr ""
"vous pouvez rendre le fichier utilisable comme script aussi bien que comme "
"module importable, car le code qui parse la ligne de commande n'est lancé "
"module importable, car le code qui analyse la ligne de commande n'est lancé "
"que si le module est exécuté comme fichier « main » :"
#: ../Doc/tutorial/modules.rst:150
@ -243,8 +242,8 @@ msgid ""
"test suite)."
msgstr ""
"C'est typiquement utilisé soit pour proposer une interface utilisateur pour "
"un module, soit pour lancer les tests sur le module (exécuter le module "
"en temps que script lance les tests)."
"un module, soit pour lancer les tests sur le module (exécuter le module en "
"tant que script lance les tests)."
#: ../Doc/tutorial/modules.rst:162
msgid "The Module Search Path"
@ -258,18 +257,18 @@ msgid ""
"data:`sys.path`. :data:`sys.path` is initialized from these locations:"
msgstr ""
"Lorsqu'un module nommé par exemple :mod:`spam` est importé, il est d'abord "
"recherché parmis les modules natifs, puis s'il n'y est pas trouvé, "
"l'interpréteur va chercher un fichier nommé :file:`spam.py` dans une liste "
"de dossiers donnés par la variable :data:`sys.path`, :data:`sys.path` est "
"initialisée par défaut à : ::"
"recherché parmi les modules natifs puis, s'il n'est pas trouvé, "
"l'interpréteur cherche un fichier nommé :file:`spam.py` dans une liste de "
"dossiers donnée par la variable :data:`sys.path`. Par défaut, "
":data:`sys.path` est initialisée à : ::"
#: ../Doc/tutorial/modules.rst:171
msgid ""
"The directory containing the input script (or the current directory when no "
"file is specified)."
msgstr ""
"Le dossier contenant le script courant (ou le dossier courant si aucun "
"script n'est donné)."
"le dossier contenant le script courant (ou le dossier courant si aucun "
"script n'est donné) ;"
#: ../Doc/tutorial/modules.rst:173
msgid ""
@ -277,11 +276,11 @@ msgid ""
"shell variable :envvar:`PATH`)."
msgstr ""
":envvar:`PYTHONPATH` (une liste de dossiers, utilisant la même syntaxe que "
"la variable shell :envvar:`PATH`)."
"la variable shell :envvar:`PATH`) ;"
#: ../Doc/tutorial/modules.rst:175
msgid "The installation-dependent default."
msgstr "La valeur par défaut, dépendante de l'installation."
msgstr "la valeur par défaut, dépendante de l'installation."
#: ../Doc/tutorial/modules.rst:178
msgid ""
@ -289,10 +288,10 @@ msgid ""
"script is calculated after the symlink is followed. In other words the "
"directory containing the symlink is **not** added to the module search path."
msgstr ""
"Sur les systèmes qui gèrent les liens symboliques, le dossier contenant le "
"script courant est résolu après avoir suivi le lien sublimer du script. "
"Autrement dit le dossier contenant le lien symbolique n'est **pas** ajouté "
"au dossiers de recherche de modules."
"sur les systèmes qui gèrent les liens symboliques, le dossier contenant le "
"script courant est résolu après avoir suivi le lien symbolique du script. "
"Autrement dit, le dossier contenant le lien symbolique n'est **pas** ajouté "
"aux dossiers de recherche de modules."
#: ../Doc/tutorial/modules.rst:182
msgid ""
@ -305,9 +304,9 @@ msgid ""
msgstr ""
"Après leur initialisation, les programmes Python peuvent modifier leur :data:"
"`sys.path`. Le dossier contenant le script courant est placé au début de la "
"liste des dossiers à rechercher, avant les dossiers de bibliothèques, Cela "
"liste des dossiers à rechercher, avant les dossiers de bibliothèques. Cela "
"signifie qu'un module dans ce dossier, ayant le même nom qu'un module, sera "
"chargé à sa place. C'est une erreur typique, à moins que ce soit voulu. "
"chargé à sa place. C'est une erreur typique, à moins que ce ne soit voulu. "
"Voir :ref:`tut-standardmodules` pour plus d'informations."
#: ../Doc/tutorial/modules.rst:193
@ -325,12 +324,12 @@ msgid ""
"different releases and different versions of Python to coexist."
msgstr ""
"Pour accélérer le chargement des modules, Python cache une version compilée "
"de chaque module, dans un fichier nommé :file:`module(version).pyc` (ou "
"de chaque module dans un fichier nommé :file:`module(version).pyc` (ou "
"*version* représente le format du fichier compilé, typiquement une version "
"de Python) dans le dossier ``__pycache__``. Par exemple avec CPython 3.3 la "
"version compilée de spam.py serait ``__pycache__/spam.cpython-33.pyc``. "
"Cette règle de nommage permet à des versions compilées par des versions de "
"Python différentes de coexister."
"de Python) dans le dossier ``__pycache__``. Par exemple, avec CPython 3.3, "
"la version compilée de spam.py serait ``__pycache__/spam.cpython-33.pyc``. "
"Cette règle de nommage permet à des versions compilées par des versions "
"différentes de Python de coexister."
#: ../Doc/tutorial/modules.rst:203
msgid ""
@ -342,9 +341,9 @@ msgid ""
msgstr ""
"Python compare les dates de modification du fichier source et de sa version "
"compilée pour voir si le module doit être recompilé. Ce processus est "
"entièrement automatique, et les versions compilées sont indépendantes de la "
"plateforme, et peuvent donc être partagées entre des systèmes d'architecture "
"différente."
"entièrement automatique. Par ailleurs, les versions compilées sont "
"indépendantes de la plateforme et peuvent donc être partagées entre des "
"systèmes d'architectures différentes."
#: ../Doc/tutorial/modules.rst:208
msgid ""
@ -355,13 +354,12 @@ msgid ""
"distribution, the compiled module must be in the source directory, and there "
"must not be a source module."
msgstr ""
"Il existe deux circonstances pour lesquelles Python ne vérifie pas le "
"cache : Le premier cas lorsque le module est donné par la ligne de commande "
"(cas où le module est toujours recompilé, sans même cacher sa version "
"compilée), le second cas est lorsque le module n'a pas de source dans ce cas "
"Python n'essaye pas de charger la version compilée. Pour gérer un module "
"sans source (seulement compilé) le module compilé doit être dans le dossier "
"source et sa source ne doit pas être présente."
"Il existe deux situations où Python ne vérifie pas le cache : le premier cas "
"est lorsque le module est donné par la ligne de commande (cas où le module "
"est toujours recompilé, sans même cacher sa version compilée) ; le second "
"cas est lorsque le module n'a pas de source. Pour gérer un module sans "
"source (où seule la version compilée est fournie), le module compilé doit se "
"trouver dans le dossier source et sa source ne doit pas être présente."
#: ../Doc/tutorial/modules.rst:215
msgid "Some tips for experts:"
@ -377,14 +375,14 @@ msgid ""
"have an ``opt-`` tag and are usually smaller. Future releases may change "
"the effects of optimization."
msgstr ""
"Vous pouvez utiliser les options :option:`-O` ou :option:`-OO` lors de "
"vous pouvez utiliser les options :option:`-O` ou :option:`-OO` lors de "
"l'appel à Python pour réduire la taille des modules compilés. L'option ``-"
"O`` supprime les instructions ``assert``, et l'option ``-OO`` supprime aussi "
"O`` supprime les instructions ``assert`` et l'option ``-OO`` supprime aussi "
"les documentations ``__doc__``. Cependant, puisque certains programmes ont "
"besoin de ces ``__doc__``, vous ne devriez utiliser ``-OO`` que si vous "
"savez ce que vous faites. Les modules \"optimisés\" sont marqués d'un ``opt-"
"`` et sont généralement plus petits. Les versions futures de Python "
"pourraient changer les effets de l'optimisation."
"pourraient changer les effets de l'optimisation ;"
#: ../Doc/tutorial/modules.rst:225
msgid ""
@ -392,25 +390,24 @@ msgid ""
"when it is read from a ``.py`` file; the only thing that's faster about ``."
"pyc`` files is the speed with which they are loaded."
msgstr ""
"Un programme ne s'exécute pas plus vite lorsqu'il est lu depuis un ``.pyc``, "
"il est cependant chargé plus vite puisque le ``.pyc`` est plut petit que le "
"``.py``."
"un programme ne s'exécute pas plus vite lorsqu'il est lu depuis un ``.pyc``, "
"il est juste chargé plus vite ;"
#: ../Doc/tutorial/modules.rst:229
msgid ""
"The module :mod:`compileall` can create .pyc files for all modules in a "
"directory."
msgstr ""
"Le module :mod:`compileall` peut créer des fichiers ``.pyc`` pour tous les "
"modules d'un dossier."
"le module :mod:`compileall` peut créer des fichiers ``.pyc`` pour tous les "
"modules d'un dossier ;"
#: ../Doc/tutorial/modules.rst:232
msgid ""
"There is more detail on this process, including a flow chart of the "
"decisions, in PEP 3147."
msgstr ""
"Voilà plus de détails sur le processus, ainsi qu'un organigramme des "
"decisions, dans la PEP 3147."
"vous trouvez plus de détails sur ce processus, ainsi qu'un organigramme des "
"décisions, dans la PEP 3147."
#: ../Doc/tutorial/modules.rst:239
msgid "Standard Modules"
@ -433,13 +430,13 @@ msgstr ""
"Python est accompagné d'une bibliothèque de modules standards, décrits dans "
"la documentation de la Bibliothèque Python, plus loin. Certains modules sont "
"intégrés dans l'interpréteur, ils exposent des outils qui ne font pas partie "
"du langage, mais qui font tout de même partie de l'interpréteur, soit pour "
"le côté pratique, soit pour exposer des outils essentiels tels que l'accès "
"aux appels systems. La composition de ces modules est configurable à la "
"compilation, et dépend aussi de la plateforme ciblée. Par exemple, le "
"module :mod:`winreg` n'est proposé que sur les systèmes Windows. Un module "
"mérite une attention particulière, le module :mod:`sys`, qui est présent "
"dans tous les interpréteurs Python. Les variables ``sys.ps1`` et ``sys.ps2`` "
"du langage mais qui font tout de même partie de l'interpréteur, soit pour le "
"côté pratique, soit pour exposer des outils essentiels tels que l'accès aux "
"appels système. La composition de ces modules est configurable à la "
"compilation et dépend aussi de la plateforme cible. Par exemple, le module :"
"mod:`winreg` n'est proposé que sur les systèmes Windows. Un module mérite "
"une attention particulière, le module :mod:`sys`, qui est présent dans tous "
"les interpréteurs Python. Les variables ``sys.ps1`` et ``sys.ps2`` "
"définissent les chaînes d'invites principales et secondaires : ::"
#: ../Doc/tutorial/modules.rst:266
@ -459,11 +456,11 @@ msgid ""
"standard list operations::"
msgstr ""
"La variable ``sys.path`` est une liste de chaînes qui détermine les chemins "
"de recherche de modules pour l'interpréteur. Il est initialisé à un chemin "
"par défaut pris de la variable d'environnement :envvar:`PYTHONPATH`, ou "
"d'une valeur par défaut interne si :envvar:`PYTHONPATH` n'est pas définie. "
"``sys.path`` est modifiable en utilisant les opérations habituelles des "
"listes : ::"
"de recherche de modules pour l'interpréteur. Elle est initialisée à un "
"chemin par défaut pris de la variable d'environnement :envvar:`PYTHONPATH` "
"ou d'une valeur par défaut interne si :envvar:`PYTHONPATH` n'est pas "
"définie. ``sys.path`` est modifiable en utilisant les opérations habituelles "
"des listes : ::"
#: ../Doc/tutorial/modules.rst:281
msgid "The :func:`dir` Function"
@ -475,19 +472,20 @@ msgid ""
"defines. It returns a sorted list of strings::"
msgstr ""
"La fonction interne :func:`dir` est utilisée pour trouver quels noms sont "
"définies par un module. Elle donne une liste triée de chaînes :;"
"définis par un module. Elle donne une liste de chaînes classées par ordre "
"lexicographique : ::"
#: ../Doc/tutorial/modules.rst:308
msgid ""
"Without arguments, :func:`dir` lists the names you have defined currently::"
msgstr "Sans paramètres, :func:`dir` listes les noms actuellement définis : ::"
msgstr "Sans paramètre, :func:`dir` liste les noms actuellement définis : ::"
#: ../Doc/tutorial/modules.rst:316
msgid ""
"Note that it lists all types of names: variables, modules, functions, etc."
msgstr ""
"Notez qu'elle liste tout types de noms : les variables, fonctions, modules, "
"etc."
"Notez qu'elle liste tous les types de noms : les variables, fonctions, "
"modules, etc."
#: ../Doc/tutorial/modules.rst:320
msgid ""
@ -495,8 +493,9 @@ msgid ""
"you want a list of those, they are defined in the standard module :mod:"
"`builtins`::"
msgstr ""
":func:`dir` ne liste ni les fonctions primitives ni les variables internes. "
"Si vous voulez les lister, ils sont définis dans le module :mod:`builtins` ::"
":func:`dir` ne liste ni les fonctions primitives, ni les variables internes. "
"Si vous voulez les lister, elles sont définies dans le module "
":mod:`builtins` : ::"
#: ../Doc/tutorial/modules.rst:359
msgid "Packages"
@ -513,7 +512,7 @@ msgid ""
"from having to worry about each other's module names."
msgstr ""
"Les paquets sont un moyen de structurer les espaces de noms des modules "
"Python en utilisant une notations \"pointée\". Par exemple, le nom de "
"Python en utilisant une notation \"pointée\". Par exemple, le nom de "
"module :mod:`A.B` désigne le sous-module ``B`` du paquet ``A``. De la même "
"manière que l'utilisation des modules évite aux auteurs de différents "
"modules d'avoir à se soucier des noms de variables globales des autres, "
@ -535,26 +534,26 @@ msgid ""
"operations. Here's a possible structure for your package (expressed in "
"terms of a hierarchical filesystem):"
msgstr ""
"Imaginez que vous voulez constuire une collections de modules (un \"paquet"
"\") pour gérer uniformément les fichiers contenant du son et des données "
"Imaginez que vous voulez construire un ensemble de modules (un \"paquet\") "
"pour gérer uniformément les fichiers contenant du son et des données "
"sonores. Il existe un grand nombre de formats de fichiers pour stocker du "
"son (généralement repérés par leur extension, par exemple :file:`.wav`, :"
"file:`.aiff`, :file:`.au`), vous aurez donc envie de créer et maintenir un "
"son (généralement identifiés par leur extension, par exemple :file:`.wav`, :"
"file:`.aiff`, :file:`.au`), vous avez donc besoin de créer et maintenir un "
"nombre croissant de modules pour gérer la conversion entre tous ces formats. "
"Il existe aussi tout une floppée d'opérations que vous voudriez pouvoir "
"faire sur du son (mixer, ajouter de l'écho, égaliser, ajouter un effet "
"stéréo articifiel), donc, en plus des modules de conversion, vous allez "
"écrire un nombre illimité de modules permettant d'effectuer ces opérations. "
"Voici une structure possible pour votre paquet (exprimée comme un système de "
"fichier, hierarchiquement) :"
"Vous voulez aussi pouvoir appliquer un certain nombre d'opérations sur ces "
"sons : mixer, ajouter de l'écho, égaliser, ajouter un effet stéréo "
"artificiel, etc. Donc, en plus des modules de conversion, vous allez écrire "
"une myriade de modules permettant d'effectuer ces opérations. Voici une "
"structure possible pour votre paquet (exprimée sous la forme d'une "
"arborescence de fichiers :"
#: ../Doc/tutorial/modules.rst:406
msgid ""
"When importing the package, Python searches through the directories on ``sys."
"path`` looking for the package subdirectory."
msgstr ""
"Lorsqu'il importe des paquets, Python cherche dans chaque dossiers de ``sys."
"path``, à la recherche du dossier du paquet."
"Lorsqu'il importe des paquets, Python cherche dans chaque dossier de ``sys."
"path`` un sous-dossier du nom du paquet."
#: ../Doc/tutorial/modules.rst:409
msgid ""
@ -567,10 +566,10 @@ msgid ""
"described later."
msgstr ""
"Les fichiers :file:`__init__.py` sont nécessaires pour que Python considère "
"les dossiers comme contenant des paquets, ça évite des dossiers ayant des "
"noms courants comme ``string`` de cacher des modules qui auraient été "
"trouvés plus loin dans les dossiers de recherche. Dans le plus simple des "
"cas, :file:`__init__.py` peut être vide, mais il peut exécuter du code "
"les dossiers comme contenant des paquets, cela évite que des dossiers ayant "
"des noms courants comme ``string`` ne masquent des modules qui auraient été "
"trouvés plus tard dans la recherche des dossiers. Dans le plus simple des "
"cas, :file:`__init__.py` peut être vide, mais il peut aussi exécuter du code "
"d'initialisation pour son paquet ou configurer la variable ``__all__`` "
"(documentée plus loin)."
@ -587,8 +586,8 @@ msgid ""
"This loads the submodule :mod:`sound.effects.echo`. It must be referenced "
"with its full name. ::"
msgstr ""
"Chargera le sous-module :mod:`sound.effects.echo`. Il dit être référencé par "
"son nom complet. ::"
"charge le sous-module :mod:`sound.effects.echo`. Il doit alors être "
"référencé par son nom complet. ::"
#: ../Doc/tutorial/modules.rst:426
msgid "An alternative way of importing the submodule is::"
@ -599,15 +598,15 @@ msgid ""
"This also loads the submodule :mod:`echo`, and makes it available without "
"its package prefix, so it can be used as follows::"
msgstr ""
"Chargera aussi le sous-module :mod:`echo`, et le rendra disponible dans le "
"préfixe du paquet, il peut donc être utilisé comme ça : ::"
"charge aussi le sous-module :mod:`echo` et le rend disponible sans avoir à "
"indiquer le préfixe du paquet. Il peut donc être utilisé comme ceci : ::"
#: ../Doc/tutorial/modules.rst:435
msgid ""
"Yet another variation is to import the desired function or variable "
"directly::"
msgstr ""
"Une autre méthode consisterait à importer la fonction ou variable désirée "
"Une autre méthode consiste à importer la fonction ou la variable désirée "
"directement : ::"
#: ../Doc/tutorial/modules.rst:439
@ -615,7 +614,7 @@ msgid ""
"Again, this loads the submodule :mod:`echo`, but this makes its function :"
"func:`echofilter` directly available::"
msgstr ""
"Le sous-module :mod:`echo` est toujours chargé, mais ici la fonction :func:"
"Le sous-module :mod:`echo` est toujours chargé mais ici la fonction :func:"
"`echofilter` est disponible directement : ::"
#: ../Doc/tutorial/modules.rst:444
@ -627,12 +626,12 @@ msgid ""
"module and attempts to load it. If it fails to find it, an :exc:"
"`ImportError` exception is raised."
msgstr ""
"Notez que lorsque vous utilisez ``from package import item``, ``item`` peut "
"aussi bien être un sous-module, un sous-paquet, ou simplement un nom déclaré "
"dans le paquet (une variable, une fonction ou une classe). L'instruction "
"``import`` cherche en premier si ``item`` est définit dans le paquet, s'il "
"ne l'est pas, elle cherche à charger un module, et si elle n'y arrive pas, "
"une exception :exc:`ImportError` est levée."
"Notez que lorsque vous utilisez ``from package import element``, ``element`` "
"peut aussi bien être un sous-module, un sous-paquet ou simplement un nom "
"déclaré dans le paquet (une variable, une fonction ou une classe). "
"L'instruction ``import`` cherche en premier si ``element`` est défini dans "
"le paquet ; s'il ne l'est pas, elle cherche à charger un module et, si elle "
"n'en trouve pas, une exception :exc:`ImportError` est levée."
#: ../Doc/tutorial/modules.rst:451
msgid ""
@ -641,10 +640,11 @@ msgid ""
"a package but can't be a class or function or variable defined in the "
"previous item."
msgstr ""
"Au contraire, en utilisant la syntaxe ``import item.item.subitement."
"subsubitem``, chaque ``item`` sauf le dernier doivent être des paquets. Le "
"dernier ``item`` peut être un module ou un paquet, mais ne peut être ni une "
"fonction, ni une classe, ni une variable défini dans l'élément précédent."
"Au contraire, en utilisant la syntaxe ``import element.souselement."
"soussouselement``, chaque ``element`` sauf le dernier doit être un paquet. "
"Le dernier ``element`` peut être un module ou un paquet, mais ne peut être "
"ni une fonction, ni une classe, ni une variable définie dans l'élément "
"précédent."
#: ../Doc/tutorial/modules.rst:460
msgid "Importing \\* From a Package"
@ -659,11 +659,11 @@ msgid ""
"effects that should only happen when the sub-module is explicitly imported."
msgstr ""
"Qu'arrive-il lorsqu'un utilisateur écrit ``from sound.effects import *`` ? "
"Dans l'idéal on pourrait espérer que ça irait chercher tous les sous-modules "
"du paquet sur le système de fichiers, et qu'ils seraient tous importés. Ça "
"pourrait être long, et importer certains sous-modules pourrait avoir des "
"effets secondaires indésirables, du moins, désirés seulement lorsque le sous "
"module est importé explicitement."
"Idéalement, on pourrait espérer que Python aille chercher tous les sous-modules "
"du paquet sur le système de fichiers et qu'ils seraient tous importés. Cela "
"pourrait être long et importer certains sous-modules pourrait avoir des "
"effets secondaires indésirables ou, du moins, désirés seulement lorsque le "
"sous-module est importé explicitement."
#: ../Doc/tutorial/modules.rst:470
msgid ""
@ -679,21 +679,22 @@ msgid ""
msgstr ""
"La seule solution, pour l'auteur du paquet, est de fournir un index "
"explicite du contenu du paquet. L'instruction :keyword:`import` utilise la "
"convention suivante: Si le fichier :file:`__init__.py` du paquet définit une "
"liste nommée ``__all__``, cette liste sera utilisée comme liste des noms de "
"modules devant être importés lorsque ``from package import *`` est utilisé. "
"C'est le rôle de l'auteur du paquet de maintenir cette liste à jour lorsque "
"de nouvelles version du paquet sont publiées. Un auteur de paquet peut aussi "
"décider de ne pas autoriser d'importer ``*`` de leur paquet. Par exemple, le "
"fichier :file:`sound/effects/__init__.py` peut contenir le code suivant : ::"
"convention suivante : si le fichier :file:`__init__.py` du paquet définit "
"une liste nommée ``__all__``, cette liste est utilisée comme liste des noms "
"de modules devant être importés lorsque ``from package import *`` est "
"utilisé. Il est de la responsabilité de l'auteur du paquet de maintenir "
"cette liste à jour lorsque de nouvelles versions du paquet sont publiées. Un "
"auteur de paquet peut aussi décider de ne pas autoriser d'importer ``*`` "
"pour son paquet. Par exemple, le fichier :file:`sound/effects/__init__.py` "
"peut contenir le code suivant : ::"
#: ../Doc/tutorial/modules.rst:482
msgid ""
"This would mean that ``from sound.effects import *`` would import the three "
"named submodules of the :mod:`sound` package."
msgstr ""
"Cela signifierai que ``from sound.effects import *`` importait les trois "
"sous-modules du paquet :mod:`sound`."
"Cela signifie que ``from sound.effects import *`` importe les trois sous-"
"modules explicitement désignés du paquet :mod:`sound`."
#: ../Doc/tutorial/modules.rst:485
msgid ""
@ -707,13 +708,13 @@ msgid ""
"explicitly loaded by previous :keyword:`import` statements. Consider this "
"code::"
msgstr ""
"Si ``__all__`` n'est pas défini, l'instruction ``from sound.effects import "
"*`` n'importera *pas* tous les sous-modules du paquet :mod:`sound.effects` "
"dans l'espace de nom courant, mais s'assurera seulement que le paquet :mod:"
"`sound.effects` à été importé (que tout le code du fichier :file:`__init__."
"py` à été executé) et importe ensuite n'importe quels noms définis dans le "
"paquet. Cela inclu tous les noms définis (et sous modules chargés "
"explicitement) par :file:`__init__.py`. Elle inclu aussi tous les sous-"
"Si ``__all__`` n'est pas définie, l'instruction ``from sound.effects import "
"*`` n'importe *pas* tous les sous-modules du paquet :mod:`sound.effects` "
"dans l'espace de noms courant mais s'assure seulement que le paquet :mod:"
"`sound.effects` a été importé (i.e. que tout le code du fichier :file:"
"`__init__.py` a été exécuté) et importe ensuite les noms définis dans le "
"paquet. Cela inclut tous les noms définis (et sous-modules chargés "
"explicitement) par :file:`__init__.py`. Sont aussi inclus tous les sous-"
"modules du paquet ayant été chargés explicitement par une instruction :"
"keyword:`import`. Typiquement : ::"
@ -725,9 +726,9 @@ msgid ""
"when ``__all__`` is defined.)"
msgstr ""
"Dans cet exemple, les modules :mod:`echo` et :mod:`surround` sont importés "
"dans l'espace de noms courant lorsque ``from...import`` est exécuté, parce "
"qu'ils sont définis dans le paquet :mod:`sound.effects`. (Cela fonctionne "
"lorsque ``__all__`` est défini.)"
"dans l'espace de noms courant lorsque ``from...import`` est exécuté parce "
"qu'ils sont définis dans le paquet :mod:`sound.effects` (cela fonctionne "
"aussi lorsque ``__all__`` est définie)."
#: ../Doc/tutorial/modules.rst:503
msgid ""
@ -738,7 +739,7 @@ msgstr ""
"Bien que certains modules ont été pensés pour n'exporter que les noms "
"respectant une certaine structure lorsque ``import *`` est utilisé, ``import "
"*`` reste considéré comme une mauvaise pratique dans du code à destination "
"d'un environnement de production.Q"
"d'un environnement de production."
#: ../Doc/tutorial/modules.rst:507
msgid ""
@ -747,10 +748,10 @@ msgid ""
"importing module needs to use submodules with the same name from different "
"packages."
msgstr ""
"Rappelez-vous qu'il n'y a rien de mauvais à utiliser ``from Package import "
"specific_submodule`` ! C'est d'ailleurs la manière recommandée à moins que "
"le module qui fait les imports ai besoin de sous-modules ayant le même nom "
"mais provenant se paquets différents."
"Rappelez-vous que rien ne vous empêche d'utiliser ``from paquet import "
"sous_module_specifique`` ! C'est d'ailleurs la manière recommandée, à moins "
"que le module qui fait les imports ait besoin de sous-modules ayant le même "
"nom mais provenant de paquets différents."
#: ../Doc/tutorial/modules.rst:514
msgid "Intra-package References"
@ -778,9 +779,9 @@ msgid ""
"`surround` module for example, you might use::"
msgstr ""
"Il est aussi possible d'écrire des imports relatifs de la forme ``from "
"module import name``. Ces imports sont préfixés par des points pour indiquer "
"leur origine (paquet courant ou parent). Depuis le module :mod:`surround`, "
"par exemple vous pourriez faire : ::"
"module import name``. Ces imports relatifs sont préfixés par des points pour "
"indiquer leur origine (paquet courant ou parent). Depuis le module :mod:"
"`surround`, par exemple vous pouvez écrire : ::"
#: ../Doc/tutorial/modules.rst:531
msgid ""
@ -791,7 +792,7 @@ msgid ""
msgstr ""
"Notez que les imports relatifs se fient au nom du module actuel. Puisque le "
"nom du module principal est toujours ``\"__main__\"``, les modules utilisés "
"par le module principal d'une application ne peuvent être importées que par "
"par le module principal d'une application ne peuvent être importés que par "
"des imports absolus."
#: ../Doc/tutorial/modules.rst:537
@ -806,9 +807,9 @@ msgid ""
"This variable can be modified; doing so affects future searches for modules "
"and subpackages contained in the package."
msgstr ""
"Les paquets exposent un attribut supplémentaire, :attr:`__path__`, contenant "
"une liste, initialisée avant l'exécution du fichier :file:`__init__.py`, "
"contenant le nom de son dossier dans le système de fichier. Cette liste peut "
"Les paquets possèdent un attribut supplémentaire, :attr:`__path__`, qui est "
"une liste initialisée avant l'exécution du fichier :file:`__init__.py`, "
"contenant le nom de son dossier dans le système de fichiers. Cette liste peut "
"être modifiée, altérant ainsi les futures recherches de modules et sous-"
"paquets contenus dans le paquet."
@ -830,6 +831,6 @@ msgid ""
"execution of a module-level function definition enters the function name in "
"the module's global symbol table."
msgstr ""
"En réalité, la déclaration d'une fonction est elle même une instruction, "
"sont l'exécution enregistre le nom de la fonction dans la table des symboles "
"En réalité, la déclaration d'une fonction est elle-même une instruction ; "
"son exécution enregistre le nom de la fonction dans la table des symboles "
"globaux du module."