"Reference - Import System" Translation

========  ==========================
original  traduction proposée
========  ==========================
finder    chercheur
loader    chargeur
hook      point d'entrée automatique
portion   portion
spec      spécificateur
This commit is contained in:
Christophe Nanteuil 2018-05-09 21:19:02 +02:00
parent c2b58d3161
commit 7bb2777255
1 changed files with 355 additions and 26 deletions

View File

@ -3,23 +3,23 @@
# 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-12-01 07:43+0100\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-05-09 21:17+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/import.rst:6
msgid "The import system"
msgstr ""
msgstr "Le système d'import"
#: ../Doc/reference/import.rst:10
msgid ""
@ -29,6 +29,12 @@ msgid ""
"way. Functions such as :func:`importlib.import_module` and built-in :func:"
"`__import__` can also be used to invoke the import machinery."
msgstr ""
"Le code Python d'un :term:`module` peut accéder à du code d'un autre module "
"par un mécanisme qui consiste à :term:`importer` cet autre module. "
"L'instruction :keyword:`import` est la façon la plus courante d'invoquer ce "
"système d'import, mais ce n'est pas la seule. Les fonctions telles que :func:"
"`importlib.import_module` et :func:`__import__` peuvent aussi être utilisées "
"pour invoquer le mécanisme d'import."
#: ../Doc/reference/import.rst:16
msgid ""
@ -40,6 +46,14 @@ msgid ""
"name binding operation of the :keyword:`import` statement. See the :keyword:"
"`import` statement for the exact details of that name binding operation."
msgstr ""
"L'instruction :keyword:`import` effectue deux opérations ; elle cherche le "
"module dont le nom a été donné puis elle lie le résultat de cette recherche "
"à un nom dans la portée locale. L'opération de recherche de l'instruction :"
"keyword:`import` consiste à appeler la fonction :func:`__import__` avec les "
"arguments adéquats. La valeur renvoyée par :func:`__import__` est utilisée "
"pour effectuer l'opération de liaison avec le nom fourni à l'instruction :"
"keyword:`import`. Reportez-vous à l'instruction :keyword:`import` pour les "
"détails exacts de l'opération de liaison avec le nom."
#: ../Doc/reference/import.rst:25
msgid ""
@ -49,6 +63,12 @@ msgid ""
"(including :data:`sys.modules`), only the :keyword:`import` statement "
"performs a name binding operation."
msgstr ""
"Un appel direct à :func:`__import__` effectue seulement la recherche du "
"module et, s'il est trouvé, l'opération de création du module. Bien que des "
"effets collatéraux puissent se produire, tels que l'import de paquets "
"parents et la mise à jour de divers caches (y compris :data:`sys.modules`), "
"il n'y a que l'instruction :keyword:`import` qui déclenche l'opération de "
"liaison avec le nom."
#: ../Doc/reference/import.rst:31
msgid ""
@ -58,6 +78,11 @@ msgid ""
"subvert :func:`__import__` and use its own solution to implement import "
"semantics."
msgstr ""
"Lors de l'appel à :func:`__import__` dans le déroulement de l'instruction "
"d'import, la fonction native :func:`__import__` est appelée. D'autres "
"mécanismes d'appel au système d'import (tels que :func:`importlib."
"import_module`) peuvent choisir d'ignorer :func:`__import__` et utiliser "
"leur propre solution pour implémenter la sémantique d'importation."
#: ../Doc/reference/import.rst:37
msgid ""
@ -68,6 +93,12 @@ msgid ""
"machinery is invoked. These strategies can be modified and extended by "
"using various hooks described in the sections below."
msgstr ""
"Quand un module est importé pour la première fois, Python recherche le "
"module et, s'il est trouvé, créé un objet module [#fnmo]_ en l'initialisant. "
"Si le module n'est pas trouvé, une :exc:`ModuleNotFoundError` est levée. "
"Python implémente plusieurs stratégies pour rechercher le module d'un nom "
"donné quand le mécanisme d'import est invoqué. Ces stratégies peuvent être "
"modifiées et étendues par divers moyens décrits dans les sections suivantes."
#: ../Doc/reference/import.rst:44
msgid ""
@ -76,10 +107,15 @@ msgid ""
"import system is exposed through :data:`sys.meta_path`. In addition, native "
"namespace package support has been implemented (see :pep:`420`)."
msgstr ""
"Le système d'import a été mis à jour pour implémenter complètement la "
"deuxième partie de la :pep:`302`. Il n'existe plus de mécanisme implicite "
"d'import (le système d'import complet est exposé *via* :data:`sys."
"meta_path`). En complément, la gestion du paquet des noms natifs a été "
"implémenté (voir la :pep:`420`)."
#: ../Doc/reference/import.rst:52
msgid ":mod:`importlib`"
msgstr ""
msgstr ":mod:`importlib`"
#: ../Doc/reference/import.rst:54
msgid ""
@ -89,10 +125,16 @@ msgid ""
"import machinery. Refer to the :mod:`importlib` library documentation for "
"additional detail."
msgstr ""
"Le module :mod:`importlib` fournit une API riche pour interagir avec le "
"système d'import. Par exemple, :func:`importlib.import_module` fournit une "
"API (que nous vous recommandons) plus simple que la fonction native :func:"
"`__import__` pour invoquer le mécanisme d'import. Reportez-vous à la "
"documentation de la bibliothèque :mod:`importlib` pour obtenir davantage de "
"détails."
#: ../Doc/reference/import.rst:63
msgid "Packages"
msgstr "Les paquets"
msgstr "Différents types de paquets"
#: ../Doc/reference/import.rst:68
msgid ""
@ -101,6 +143,11 @@ msgid ""
"else. To help organize modules and provide a naming hierarchy, Python has a "
"concept of :term:`packages <package>`."
msgstr ""
"Python ne connait qu'un seul type d'objet module et tous les modules sont "
"donc de ce type, que le module soit implémenté en Python, en C ou quoi que "
"ce soit d'autre. Pour aider à l'organisation des modules et fournir une "
"hiérarchie des noms, Python développe le concept de :term:`paquets "
"<package>`."
#: ../Doc/reference/import.rst:73
msgid ""
@ -112,6 +159,14 @@ msgid ""
"hierarchically, and packages may themselves contain subpackages, as well as "
"regular modules."
msgstr ""
"Vous pouvez vous représenter les paquets comme des répertoires dans le "
"système de fichiers et les modules comme des fichiers dans ces répertoires. "
"Mais ne prenez pas trop cette analogie au pied de la lettre car les paquets "
"et les modules ne proviennent pas obligatoirement du système de fichiers. "
"Dans le cadre de cette documentation, nous utilisons cette analogie bien "
"pratique des répertoires et des fichiers. Comme les répertoires du système "
"de fichiers, les paquets sont organisés de manière hiérarchique et les "
"paquets peuvent eux-mêmes contenir des sous-paquets ou des modules."
#: ../Doc/reference/import.rst:81
msgid ""
@ -120,6 +175,10 @@ msgid ""
"of module. Specifically, any module that contains a ``__path__`` attribute "
"is considered a package."
msgstr ""
"Il est important de garder à l'esprit que tous les paquets sont des modules "
"mais que tous les modules ne sont pas des paquets. Formulé autrement, les "
"paquets sont juste un certain type de modules. Spécifiquement, tout module "
"qui contient un attribut ``__path__`` est réputé être un paquet."
#: ../Doc/reference/import.rst:86
msgid ""
@ -129,10 +188,16 @@ msgid ""
"`email`, which in turn has a subpackage called :mod:`email.mime` and a "
"module within that subpackage called :mod:`email.mime.text`."
msgstr ""
"Tous les modules ont un nom. Les noms des sous-paquets sont séparés du nom "
"du paquet parent par des points (`.`), comme pour la syntaxe standard "
"d'accès aux attributs en Python. Ainsi, vous pouvez avoir un module nommé :"
"mod:`sys` et un paquet nommé :mod:`email`, qui a son tour possède un sous-"
"paquet nommé :mod:`email.mime` avec un module dans ce sous-paquet nommé :mod:"
"`email.mime.text`."
#: ../Doc/reference/import.rst:94
msgid "Regular packages"
msgstr ""
msgstr "Paquets classiques"
#: ../Doc/reference/import.rst:99
msgid ""
@ -146,12 +211,21 @@ msgid ""
"same Python code that any other module can contain, and Python will add some "
"additional attributes to the module when it is imported."
msgstr ""
"Python définit deux types de paquets, les :term:`paquets classiques <regular "
"package>` et les :term:`paquets espaces de noms <namespace package>`. Les "
"paquets classiques sont les paquets traditionnels tels qu'ils existaient "
"dans Python 3.2 et antérieurs. Un paquet classique est typiquement "
"implémenté sous la forme d'un répertoire contenant un fichier ``__init__."
"py``. Quand un paquet classique est importé, ce fichier ``__init__.py`` est "
"implicitement exécuté."
#: ../Doc/reference/import.rst:109
msgid ""
"For example, the following file system layout defines a top level ``parent`` "
"package with three subpackages::"
msgstr ""
"Par exemple, l'arborescence suivante définit un paquet ``parent`` au niveau "
"le plus haut et sous-paquets ::"
#: ../Doc/reference/import.rst:121
msgid ""
@ -160,10 +234,14 @@ msgid ""
"``parent.three`` will execute ``parent/two/__init__.py`` and ``parent/three/"
"__init__.py`` respectively."
msgstr ""
"Importer ``parent.one`` exécute implicitement ``parent/__init__.py`` et "
"``parent/one/__init__.py``. Les imports postérieurs de ``parent.two`` ou "
"``parent.three`` respectivement exécutent ``parent/two/__init__.py`` ou "
"``parent/three/__init__.py`` respectivement."
#: ../Doc/reference/import.rst:128
msgid "Namespace packages"
msgstr ""
msgstr "Paquets espaces de noms"
#: ../Doc/reference/import.rst:134
msgid ""
@ -175,6 +253,14 @@ msgid ""
"objects on the file system; they may be virtual modules that have no "
"concrete representation."
msgstr ""
"Un paquet-espace de noms est la combinaison de plusieurs :term:`portions "
"<portion>` où chaque portion fournit un sous-paquet au paquet parent. Les "
"portions peuvent être situées à différents endroits du système de fichiers. "
"Les portions peuvent aussi être stockées dans des fichiers zip, sur le "
"réseau ou à tout autre endroit dans lequel Python cherche pendant l'import. "
"Les paquets-espace de noms peuvent correspondre directement à des objets du "
"système de fichiers, ou pas ; ils peuvent être des modules virtuels qui "
"n'ont aucune représentation concrète."
#: ../Doc/reference/import.rst:142
msgid ""
@ -184,6 +270,12 @@ msgid ""
"that package if the path of their parent package (or :data:`sys.path` for a "
"top level package) changes."
msgstr ""
"Les paquets-espaces de noms n'utilisent pas une liste ordinaire pour leur "
"attribut ``__path__``. Ils utilisent en lieu et place un type itérable "
"personnalisé qui effectue automatiquement une nouvelle recherche de portions "
"de paquets à la tentative suivante d'import dans le paquet si le chemin du "
"paquet parent (ou :data:`sys.path` pour les paquets de plus haut niveau) "
"change."
#: ../Doc/reference/import.rst:148
msgid ""
@ -194,14 +286,22 @@ msgid ""
"create a namespace package for the top-level ``parent`` package whenever it "
"or one of its subpackages is imported."
msgstr ""
"Pour les paquets-espaces de noms, il n'existe pas de fichier ``parent/"
"__init__.py``. En fait, il peut y avoir plusieurs répertoires ``parent`` "
"trouvés pendant le processus d'import, où chacun est apporté par une portion "
"différente. Ainsi, ``parent/one`` n'est pas forcément physiquement proche de "
"``parent/two``. Dans ce cas, Python crée un paquet-espace de noms pour le "
"paquet de plus haut niveau ``parent`` dès que lui ou un de ses sous-paquet "
"est importé."
#: ../Doc/reference/import.rst:155
msgid "See also :pep:`420` for the namespace package specification."
msgstr ""
"Voir aussi la :pep:`420` pour les spécifications des paquets-espaces de noms."
#: ../Doc/reference/import.rst:159
msgid "Searching"
msgstr ""
msgstr "Recherche"
#: ../Doc/reference/import.rst:161
msgid ""
@ -212,6 +312,11 @@ msgid ""
"parameters to the :func:`importlib.import_module` or :func:`__import__` "
"functions."
msgstr ""
"Pour commencer la recherche, Python a besoin du :term:`nom qualifié "
"<qualified name>` du module (ou du paquet, mais ici cela ne fait pas de "
"différence) que vous souhaitez importer. Le nom peut être donné en argument "
"à l'instruction :keyword:`import` ou comme paramètre aux fonctions :func:"
"`importlib.import_module` ou :func:`__import__`."
#: ../Doc/reference/import.rst:167
msgid ""
@ -221,10 +326,15 @@ msgid ""
"baz``. If any of the intermediate imports fail, a :exc:`ModuleNotFoundError` "
"is raised."
msgstr ""
"Le nom est utilisé dans plusieurs phases de la recherche et peut être un "
"chemin séparé par des points pour un sous-module, par exemple ``truc.machin."
"bidule``. Dans ce cas, Python essaie d'abord d'importer ``truc`` puis ``truc."
"machin`` et enfin ``truc.machin.bidule``. Si n'importe lequel des imports "
"intermédiaire échoue, une :exc:`ModuleNotFoundError` est levée."
#: ../Doc/reference/import.rst:174
msgid "The module cache"
msgstr ""
msgstr "Cache des modules"
#: ../Doc/reference/import.rst:179
msgid ""
@ -235,6 +345,12 @@ msgid ""
"and ``foo.bar.baz``. Each key will have as its value the corresponding "
"module object."
msgstr ""
"Le premier endroit vérifié pendant la recherche d'un import est :data:`sys."
"modules`. Ce tableau de correspondances est utilisé comme cache de tous les "
"modules déjà importés, y compris les chemins intermédiaires. Ainsi, si "
"``truc.machin.bidule`` a déjà été importé, :data:`sys.modules` contient les "
"entrées correspondantes à ``truc``, ``truc.machin`` et ``truc.machin."
"bidule``. À chaque chemin correspond une clé."
#: ../Doc/reference/import.rst:186
msgid ""
@ -244,6 +360,11 @@ msgid ""
"`ModuleNotFoundError` is raised. If the module name is missing, Python will "
"continue searching for the module."
msgstr ""
"Pendant l'import, le nom de module est cherché dans :data:`sys.modules` et, "
"s'il est trouvé, la valeur associée est le module recherché et le processus "
"est fini. Cependant, si la valeur est ``None``, alors une :exc:"
"`ModuleNotFoundError` est levée. Si le nom du module n'est pas trouvé, "
"Python continue la recherche du module."
#: ../Doc/reference/import.rst:192
msgid ""
@ -254,6 +375,12 @@ msgid ""
"to ``None``, forcing the next import of the module to result in a :exc:"
"`ModuleNotFoundError`."
msgstr ""
":data:`sys.modules` est accessible en lecture-écriture. Supprimer une clé "
"peut ne pas détruire le module associé (car d'autres modules contiennent "
"possiblement des références vers ce module), mais cela invalide l'entrée du "
"cache pour ce nom de module. Python cherche alors un nouveau module pour ce "
"nom. La clé peut aussi être assignée à ``None`` de manière à forcer, lors du "
"prochain import du module, une :exc:`ModuleNotFoundError`."
#: ../Doc/reference/import.rst:199
msgid ""
@ -263,10 +390,15 @@ msgid ""
"reload` will reuse the *same* module object, and simply reinitialise the "
"module contents by rerunning the module's code."
msgstr ""
"Attention cependant : s'il reste une référence à l'objet module et que vous "
"invalidez l'entrée dans le cache de :data:`sys.modules` puis ré-importez le "
"module, les deux objets modules ne seront pas les mêmes. À l'inverse, :func:"
"`importlib.reload` ré-utilise le *même* objet module et ré-initialise "
"simplement le contenu du module en ré-exécutant le code du module."
#: ../Doc/reference/import.rst:207
msgid "Finders and loaders"
msgstr ""
msgstr "Chercheurs et chargeurs"
#: ../Doc/reference/import.rst:214
msgid ""
@ -279,6 +411,14 @@ msgid ""
"they return themselves when they find that they can load the requested "
"module."
msgstr ""
"Si le module n'est pas trouvé dans :data:`sys.modules`, alors Python utilise "
"son protocole d'import pour chercher et charger le module. Ce protocole se "
"compose de deux objets conceptuels : les :term:`chercheurs <finder>` et les :"
"term:`chargeurs <loader>`. Le travail du chercheur consiste à trouver le "
"module dont le nom a été fourni à l'aide de différentes stratégies. Les "
"objets qui implémentent ces interfaces sont connus sous le vocable \":term:"
"`importateurs <importer>`\" (ils renvoient une référence vers eux-mêmes "
"quand ils trouvent un module qui répond aux attentes)."
#: ../Doc/reference/import.rst:222
msgid ""
@ -289,12 +429,21 @@ msgid ""
"system paths or zip files. It can also be extended to search for any "
"locatable resource, such as those identified by URLs."
msgstr ""
"Python inclut plusieurs chercheurs et importateurs par défaut. Le premier "
"sait comment trouver les modules natifs et le deuxième sait comment trouver "
"les modules gelés. Un troisième chercheur recherche les modules dans :term:"
"`import path`. :term:`import path` est une énumération sous forme de liste "
"de chemins ou de fichiers zip. Il peut être étendu pour rechercher aussi "
"dans toute ressource qui dispose d'un identifiant pour la localiser, une URL "
"par exemple."
#: ../Doc/reference/import.rst:229
msgid ""
"The import machinery is extensible, so new finders can be added to extend "
"the range and scope of module searching."
msgstr ""
"Le mécanisme d'import est extensible, vous pouvez donc ajouter de nouveaux "
"chercheurs pour étendre le domaine de recherche des modules."
#: ../Doc/reference/import.rst:232
msgid ""
@ -303,6 +452,10 @@ msgid ""
"related information, which the import machinery then uses when loading the "
"module."
msgstr ""
"Les chercheurs ne chargent pas les modules. S'il trouve le module demandé, "
"un chercheur renvoie un :dfn:`module spec`, information encapsulée pour "
"importer le module, qui est alors utilisé par le mécanisme d'import pour "
"charger le module."
#: ../Doc/reference/import.rst:236
msgid ""
@ -310,6 +463,9 @@ msgid ""
"detail, including how you can create and register new ones to extend the "
"import machinery."
msgstr ""
"Les sections suivantes décrivent plus en détail le protocole utilisé par les "
"chercheurs et les chargeurs, y compris la manière de les créer et les "
"enregistrer pour étendre le mécanisme d'import."
#: ../Doc/reference/import.rst:240
msgid ""
@ -317,10 +473,14 @@ msgid ""
"directly, whereas now they return module specs which *contain* loaders. "
"Loaders are still used during import but have fewer responsibilities."
msgstr ""
"Dans les versions précédentes de Python, les chercheurs renvoyaient "
"directement les :term:`chargeurs <loader>`. Dorénavant, ils renvoient des "
"spécificateurs de modules qui *contiennent* les chargeurs. Les chargeurs "
"sont encore utilisés lors de l'importation mais ont moins de responsabilités."
#: ../Doc/reference/import.rst:246
msgid "Import hooks"
msgstr ""
msgstr "Points d'entrées automatiques pour l'import"
#: ../Doc/reference/import.rst:256
msgid ""
@ -328,6 +488,10 @@ msgid ""
"this are the *import hooks*. There are two types of import hooks: *meta "
"hooks* and *import path hooks*."
msgstr ""
"Le mécanisme d'import est conçu pour être extensible ; vous pouvez y insérer "
"des *points d'entrée automatique* (*hook* en anglais). Il existe deux types "
"de points d'entrée automatique pour l'import : les *méta-points d'entrée* et "
"les *points d'entrée sur les chemins d'import*."
#: ../Doc/reference/import.rst:260
msgid ""
@ -337,6 +501,12 @@ msgid ""
"modules, or even built-in modules. Meta hooks are registered by adding new "
"finder objects to :data:`sys.meta_path`, as described below."
msgstr ""
"Les méta-points d'entrée sont appelés au début du processus d'import, juste "
"après la vérification dans le cache :data:`sys.modules` mais avant tout le "
"reste. Ceci permet aux méta-points d'entrée de surcharger le traitement "
"effectué sur :data:`sys.path`, les modules gelés ou même les modules natifs. "
"L'enregistrement des méta-points d'entrée se fait en ajoutant de nouveaux "
"objets chercheurs à :data:`sys.meta_path`, comme décrit ci-dessous."
#: ../Doc/reference/import.rst:266
msgid ""
@ -345,10 +515,15 @@ msgid ""
"encountered. Import path hooks are registered by adding new callables to :"
"data:`sys.path_hooks` as described below."
msgstr ""
"Les points d'entrée sur les chemins dimport sont appelés pendant le "
"traitement de :data:`sys.path` (ou ``package.__path__``), au moment où le "
"chemin qui leur correspond est atteint. Les points d'entrée sur les chemins "
"dimport sont enregistrés en ajoutant de nouveaux appelables à :data:`sys."
"path_hooks`, comme décrit ci-dessous."
#: ../Doc/reference/import.rst:273
msgid "The meta path"
msgstr ""
msgstr "Méta-chemins"
#: ../Doc/reference/import.rst:279
msgid ""
@ -361,6 +536,15 @@ msgid ""
"meta path finder can use any strategy it wants to determine whether it can "
"handle the named module or not."
msgstr ""
"Quand le module demandé n'est pas trouvé dans :data:`sys.modules`, Python "
"recherche alors dans :data:`sys.meta_path` qui contient une liste d'objets "
"chercheurs dans des méta-chemins. Ces chercheurs sont interrogés dans "
"l'ordre pour voir s'ils savent prendre en charge le module passé en "
"paramètre. Les chercheurs dans les méta-chemins implémentent une méthode :"
"meth:`~importlib.abc.MetaPathFinder.find_spec()` qui prend trois arguments : "
"un nom, un chemin d'import et (optionnellement) un module cible. Un "
"chercheur dans les méta-chemins peut utiliser n'importe quelle stratégie "
"pour déterminer s'il est apte à prendre en charge le module."
#: ../Doc/reference/import.rst:288
msgid ""
@ -370,6 +554,12 @@ msgid ""
"returning a spec, then a :exc:`ModuleNotFoundError` is raised. Any other "
"exceptions raised are simply propagated up, aborting the import process."
msgstr ""
"Si le chercheur dans les méta-chemins sait prendre en charge le module "
"donné, il renvoie un objet spécificateur. S'il ne sait pas, il renvoie "
"``None``. Si le traitement de :data:`sys.meta_path` arrive à la fin de la "
"liste sans qu'aucun chercheur n'a renvoyé un objet spécificateur, alors une :"
"exc:`ModuleNotFoundError` est levée. Toute autre exception levée est "
"simplement propagée à l'appelant, mettant fin au processus d'import."
#: ../Doc/reference/import.rst:294
msgid ""
@ -384,6 +574,17 @@ msgid ""
"existing module object that will be the target of loading later. The import "
"system passes in a target module only during reload."
msgstr ""
"La méthode :meth:`~importlib.abc.MetaPathFinder.find_spec()` des chercheurs "
"dans les méta-chemins est appelée avec deux ou trois arguments. Le premier "
"est le nom complètement qualifié du module à importer, par exemple ``truc."
"machin.bidule``. Le deuxième argument est l'ensemble des chemins dans "
"lesquels chercher. Pour les modules de plus haut niveau, le deuxième "
"argument est ``None`` mais pour les sous-modules ou les paquets, le deuxième "
"argument est la valeur de l'attribut ``__path__`` du paquet parent. Si "
"l'attribut ``__path__`` approprié n'est pas accessible, une :exc:"
"`ModuleNotFoundError` est levée. Le troisième argument est un objet module "
"existant qui va être la cible du chargement (plus tard). Le système d'import "
"ne passe le module cible en paramètre que lors d'un rechargement."
#: ../Doc/reference/import.rst:305
msgid ""
@ -396,6 +597,16 @@ msgid ""
"__path__, None)``. Once ``foo.bar`` has been imported, the final traversal "
"will call ``mpf.find_spec(\"foo.bar.baz\", foo.bar.__path__, None)``."
msgstr ""
"Le méta-chemin peut être parcouru plusieurs fois pour une seule requête "
"d'import. Par exemple, si nous supposons qu'aucun des modules concernés n'a "
"déjà été mis en cache, importer ``truc.machin.bidule`` effectue un premier "
"import au niveau le plus haut, en appelant ``mpf.find_spec(\"truc\", None, "
"None)`` pour chaque chercheur dans les méta-chemins (``mpf``). Après que "
"``truc`` a été importé, ``truc.machin`` est importé en parcourant le méta-"
"chemin une deuxième fois, appelant ``mpf.find_spec(\"truc.machin\", truc."
"__path__, None)``. Une fois ``truc.machin`` importé, le parcours final "
"appelle ``mpf.find_spec(\"truc.machin.bidule\", truc.machin.__path__, "
"None)``."
#: ../Doc/reference/import.rst:315
msgid ""
@ -403,6 +614,9 @@ msgid ""
"always return ``None`` when anything other than ``None`` is passed as the "
"second argument."
msgstr ""
"Quelques chercheurs dans les méta-chemins ne gèrent que les imports de plus "
"haut niveau. Ces importateurs renvoient toujours ``None`` si on leur passe "
"un deuxième argument autre que ``None``."
#: ../Doc/reference/import.rst:319
msgid ""
@ -411,6 +625,10 @@ msgid ""
"modules, and one that knows how to import modules from an :term:`import "
"path` (i.e. the :term:`path based finder`)."
msgstr ""
"Par défaut, le :data:`sys.meta_path` de Python comprend trois chercheurs : "
"un qui sait importer les modules natifs, un qui sait importer les modules "
"gelés et un qui sait importer les modules depuis un :term:`import path` "
"(c'est le :term:`chercheur dans les chemins<path based finder>`)."
#: ../Doc/reference/import.rst:324
msgid ""
@ -419,10 +637,15 @@ msgid ""
"now deprecated. While it will continue to work without change, the import "
"machinery will try it only if the finder does not implement ``find_spec()``."
msgstr ""
"La méthode :meth:`~importlib.abc.MetaPathFinder.find_spec` des chercheurs "
"dans les méta-chemins a remplacé :meth:`~importlib.abc.MetaPathFinder."
"find_module`, devenu obsolète. Bien qu'il continue toujours de fonctionner "
"comme avant, le mécanisme d'import l'essaie uniquement si le chercheur "
"n'implémente pas ``find_spec()``."
#: ../Doc/reference/import.rst:333
msgid "Loading"
msgstr ""
msgstr "Chargement"
#: ../Doc/reference/import.rst:335
msgid ""
@ -430,16 +653,21 @@ msgid ""
"the loader it contains) when loading the module. Here is an approximation "
"of what happens during the loading portion of import::"
msgstr ""
"Quand un spécificateur de module est trouvé, le mécanisme d'import l'utilise "
"(et le chargeur qu'il contient) pour charger le module. Voici à peu près ce "
"qui se passe au sein d'import pendant la phase de chargement ::"
#: ../Doc/reference/import.rst:370
msgid "Note the following details:"
msgstr ""
msgstr "Notez les détails suivants :"
#: ../Doc/reference/import.rst:372
msgid ""
"If there is an existing module object with the given name in :data:`sys."
"modules`, import will have already returned it."
msgstr ""
"S'il existe un objet module dans :data:`sys.modules` avec le même nom, "
"import l'aurait déjà renvoyé."
#: ../Doc/reference/import.rst:375
msgid ""
@ -449,6 +677,11 @@ msgid ""
"prevents unbounded recursion in the worst case and multiple loading in the "
"best."
msgstr ""
"Le module existe dans :data:`sys.modules` avant que le chargeur exécute le "
"code du module. C'est crucial car le code du module peut (directement ou "
"indirectement) s'importer lui-même ; l'ajouter à :data:`sys.modules` avant "
"évite les récursions infinies dans le pire cas et le chargement multiple "
"dans le meilleur des cas."
#: ../Doc/reference/import.rst:381
msgid ""
@ -458,6 +691,11 @@ msgid ""
"effect, must remain in the cache. This contrasts with reloading where even "
"the failing module is left in :data:`sys.modules`."
msgstr ""
"Si le chargement échoue, le module en cause -- et seulement ce module -- est "
"enlevé de :data:`sys.modules`. Tout module déjà dans le cache de :data:`sys."
"modules` et tout module qui a été chargé avec succès par effet de bord doit "
"rester dans le cache. C'est différent dans le cas d'un rechargement où même "
"un module qui échoue est conservé dans :data:`sys.modules`."
#: ../Doc/reference/import.rst:387
msgid ""
@ -466,6 +704,10 @@ msgid ""
"code example above), as summarized in a :ref:`later section <import-mod-"
"attrs>`."
msgstr ""
"Après que le module est créé mais avant son exécution, le mécanisme d'import "
"définit les attributs relatifs à l'import (\"_init_module_attrs\" dans "
"l'exemple de pseudo-code ci-dessus), comme indiqué brièvement dans une :ref:"
"`section <import-mod-attrs>` que nous abordons ensuite."
#: ../Doc/reference/import.rst:392
msgid ""
@ -473,12 +715,17 @@ msgid ""
"namespace gets populated. Execution is entirely delegated to the loader, "
"which gets to decide what gets populated and how."
msgstr ""
"L'exécution du module est le moment clé du chargement dans lequel l'espace "
"de noms du module est peuplé. L'exécution est entièrement déléguée au "
"chargeur qui doit décider ce qui est peuplé et comment."
#: ../Doc/reference/import.rst:396
msgid ""
"The module created during loading and passed to exec_module() may not be the "
"one returned at the end of import [#fnlo]_."
msgstr ""
"Le modulé créé pendant le chargement et passé à exec_module() peut ne pas "
"être celui qui est renvoyé à la fin de l'import [#fnlo]_."
#: ../Doc/reference/import.rst:399
msgid ""
@ -486,10 +733,13 @@ msgid ""
"loaders. These were previously performed by the :meth:`importlib.abc.Loader."
"load_module` method."
msgstr ""
"Le système d'import a pris en charge les responsabilités des chargeurs. "
"Celles-ci étaient auparavant effectuées par la méthode :meth:`importlib.abc."
"Loader.load_module`."
#: ../Doc/reference/import.rst:405
msgid "Loaders"
msgstr ""
msgstr "Chargeurs"
#: ../Doc/reference/import.rst:407
msgid ""
@ -498,10 +748,15 @@ msgid ""
"method with a single argument, the module object to execute. Any value "
"returned from :meth:`~importlib.abc.Loader.exec_module` is ignored."
msgstr ""
"Les chargeurs de modules fournissent la fonction critique du chargement : "
"l'exécution du module. Le mécanisme d'import appelle la méthode :meth:"
"`importlib.abc.Loader.exec_module` avec un unique argument, l'objet module à "
"exécuter. Toute valeur renvoyée par :meth:`~importlib.abc.Loader."
"exec_module` est ignorée."
#: ../Doc/reference/import.rst:412
msgid "Loaders must satisfy the following requirements:"
msgstr ""
msgstr "Les chargeurs doivent satisfaire les conditions suivantes :"
#: ../Doc/reference/import.rst:414
msgid ""
@ -509,6 +764,9 @@ msgid ""
"dynamically loaded extension), the loader should execute the module's code "
"in the module's global name space (``module.__dict__``)."
msgstr ""
"Si le module est un module Python (par opposition aux modules natifs ou aux "
"extensions chargées dynamiquement), le chargeur doit exécuter le code du "
"module dans l'espace des noms globaux du module (``module.__dict__``)."
#: ../Doc/reference/import.rst:418
msgid ""
@ -516,6 +774,9 @@ msgid ""
"`ImportError`, although any other exception raised during :meth:`~importlib."
"abc.Loader.exec_module` will be propagated."
msgstr ""
"Si le chargeur ne peut pas exécuter le module, il doit lever une :exc:"
"`ImportError`, alors que toute autre exception levée durant :meth:"
"`~importlib.abc.Loader.exec_module` est propagée."
#: ../Doc/reference/import.rst:422
msgid ""
@ -523,6 +784,9 @@ msgid ""
"the :meth:`~importlib.abc.MetaPathFinder.find_spec` method would just return "
"a spec with the loader set to ``self``."
msgstr ""
"Souvent, le chercheur et le chargeur sont le même objet ; dans ce cas, la "
"méthode :meth:`~importlib.abc.MetaPathFinder.find_spec` doit juste renvoyer "
"un spécificateur avec le chargeur défini à ``self``."
#: ../Doc/reference/import.rst:426
msgid ""
@ -533,10 +797,17 @@ msgid ""
"the module object. If the method returns ``None``, the import machinery "
"will create the new module itself."
msgstr ""
"Les chargeurs de modules peuvent choisir de créer l'objet module pendant le "
"chargement en implémentant une méthode :meth:`~importlib.abc.Loader."
"create_module`. Elle prend un argument, l'objet spécificateur du module et "
"renvoie le nouvel objet du module à utiliser pendant le chargement. Notez "
"que ``create_module()`` n'a besoin de définir aucun attribut sur l'objet "
"module. Si cette méthode renvoie ``None``, le mécanisme d'import crée le "
"nouveau module lui-même."
#: ../Doc/reference/import.rst:433
msgid "The :meth:`~importlib.abc.Loader.create_module` method of loaders."
msgstr ""
msgstr "La méthode :meth:`~importlib.abc.Loader.create_module` des chargeurs."
#: ../Doc/reference/import.rst:436
msgid ""
@ -544,6 +815,9 @@ msgid ""
"`~importlib.abc.Loader.exec_module` and the import machinery assumed all the "
"boilerplate responsibilities of loading."
msgstr ""
"La méthode :meth:`~importlib.abc.Loader.load_module` a été remplacée par :"
"meth:`~importlib.abc.Loader.exec_module` et le mécanisme d'import assume "
"toutes les responsabilités du chargement."
#: ../Doc/reference/import.rst:441
msgid ""
@ -552,6 +826,11 @@ msgid ""
"also implement ``exec_module()``. However, ``load_module()`` has been "
"deprecated and loaders should implement ``exec_module()`` instead."
msgstr ""
"Par compatibilité avec les chargeurs existants, le mécanisme d'import "
"utilise la méthode ``load_module()`` des chargeurs si elle existe et si le "
"chargeur n'implémente pas ``exec_module()``. Cependant, ``load_module()`` "
"est déclarée obsolète et les chargeurs doivent implémenter ``exec_module()`` "
"à la place."
#: ../Doc/reference/import.rst:446
msgid ""
@ -559,6 +838,10 @@ msgid ""
"functionality described above in addition to executing the module. All the "
"same constraints apply, with some additional clarification:"
msgstr ""
"La méthode ``load_module()`` *doit* implémenter toutes les fonctionnalités "
"de chargement décrites ci-dessus en plus de l'exécution du module. Toutes "
"les contraintes s'appliquent aussi, avec quelques précisions "
"supplémentaires :"
#: ../Doc/reference/import.rst:450
msgid ""
@ -568,12 +851,20 @@ msgid ""
"exist in :data:`sys.modules`, the loader must create a new module object and "
"add it to :data:`sys.modules`."
msgstr ""
"S'il y a un objet module existant avec le même nom dans :data:`sys.modules`, "
"le chargeur doit utiliser le module existant (sinon, :func:`importlib."
"reload` ne fonctionnera pas correctement). Si le module nommé n'est pas "
"trouvé dans :data:`sys.modules`, le chargeur doit créer un nouvel objet "
"module et l'ajouter à :data:`sys.modules`."
#: ../Doc/reference/import.rst:456
msgid ""
"The module *must* exist in :data:`sys.modules` before the loader executes "
"the module code, to prevent unbounded recursion or multiple loading."
msgstr ""
"Le module *doit* exister dans :data:`sys.modules` avant que le chargeur "
"n'exécute le code du module, afin d'éviter les récursions infinies ou le "
"chargement multiple."
#: ../Doc/reference/import.rst:460
msgid ""
@ -581,22 +872,30 @@ msgid ""
"data:`sys.modules`, but it must remove **only** the failing module(s), and "
"only if the loader itself has loaded the module(s) explicitly."
msgstr ""
"Si le chargement échoue, le chargeur doit enlever tous les modules qu'il a "
"ajoutés dans :data:`sys.modules` mais il ne doit enlever **que** les modules "
"ayant échoué et seulement si le chargeur lui-même a chargé le module "
"explicitement."
#: ../Doc/reference/import.rst:465
msgid ""
"A :exc:`DeprecationWarning` is raised when ``exec_module()`` is defined but "
"``create_module()`` is not."
msgstr ""
"Un avertissement :exc:`DeprecationWarning` est levé quand ``exec_module()`` "
"est définie mais ``create_module()`` ne l'est pas."
#: ../Doc/reference/import.rst:469
msgid ""
"An :exc:`ImportError` is raised when ``exec_module()`` is defined but "
"``create_module()`` is not."
msgstr ""
"Une exception :exc:`ImportError` est levée quand ``exec_module()`` est "
"définie mais ``create_module()`` ne l'est pas."
#: ../Doc/reference/import.rst:474
msgid "Submodules"
msgstr ""
msgstr "Sous-modules"
#: ../Doc/reference/import.rst:476
msgid ""
@ -629,7 +928,7 @@ msgstr ""
#: ../Doc/reference/import.rst:509
msgid "Module spec"
msgstr ""
msgstr "Spécificateurs de modules"
#: ../Doc/reference/import.rst:511
msgid ""
@ -657,7 +956,7 @@ msgstr ""
#: ../Doc/reference/import.rst:531
msgid "Import-related module attributes"
msgstr ""
msgstr "Attributs des modules importés"
#: ../Doc/reference/import.rst:533
msgid ""
@ -1048,7 +1347,7 @@ msgstr ""
#: ../Doc/reference/import.rst:822
msgid "Path entry finder protocol"
msgstr ""
msgstr "Protocole de recherche des chemins de modules"
#: ../Doc/reference/import.rst:824
msgid ""
@ -1267,7 +1566,7 @@ msgstr ""
#: ../Doc/reference/import.rst:965
msgid "References"
msgstr ""
msgstr "Références"
#: ../Doc/reference/import.rst:967
msgid ""
@ -1276,12 +1575,18 @@ msgid ""
"packages/>`_ is still available to read, although some details have changed "
"since the writing of that document."
msgstr ""
"Le mécanisme d'import a considérablement évolué depuis les débuts de Python. "
"La `spécification des paquets <https://www.python.org/doc/essays/packages/"
">`_ originale est toujours disponible, bien que quelques détails ont changé "
"depuis l'écriture de ce document."
#: ../Doc/reference/import.rst:972
msgid ""
"The original specification for :data:`sys.meta_path` was :pep:`302`, with "
"subsequent extension in :pep:`420`."
msgstr ""
"La spécification originale de :data:`sys.meta_path` se trouve dans la :pep:"
"`302`. La :pep:`420` contient des extensions significatives."
#: ../Doc/reference/import.rst:975
msgid ""
@ -1289,12 +1594,18 @@ msgid ""
"Python 3.3. :pep:`420` also introduced the :meth:`find_loader` protocol as "
"an alternative to :meth:`find_module`."
msgstr ""
"La :pep:`420` a introduit les :term:`paquets-espaces de noms <namespace "
"package>` pour Python 3.3. :pep:`420` a aussi introduit le protocole :meth:"
"`recherche du chargeur <find_loader>` comme une alternative à :meth:"
"`find_module`."
#: ../Doc/reference/import.rst:979
msgid ""
":pep:`366` describes the addition of the ``__package__`` attribute for "
"explicit relative imports in main modules."
msgstr ""
"La :pep:`366` décrit l'ajout de l'attribut ``__package__`` pour les imports "
"relatifs explicites dans les modules principaux."
#: ../Doc/reference/import.rst:982
msgid ""
@ -1302,10 +1613,13 @@ msgid ""
"proposed ``__name__`` for semantics :pep:`366` would eventually specify for "
"``__package__``."
msgstr ""
"La :pep:`328` a introduit les imports absolus et les imports relatifs "
"explicites. Elle a aussi proposé ``__name__`` pour la sémantique que la :pep:"
"`366` attribuait à ``__package__``."
#: ../Doc/reference/import.rst:986
msgid ":pep:`338` defines executing modules as scripts."
msgstr ""
msgstr ":pep:`338` définit l'exécution de modules en tant que scripts."
#: ../Doc/reference/import.rst:988
msgid ""
@ -1315,6 +1629,11 @@ msgid ""
"of several APIs in the import system and also addition of new methods to "
"finders and loaders."
msgstr ""
":pep:`451` ajoute l'encapsulation dans les objets spec de l'état des imports "
"module par module. Elle reporte aussi la majorité des responsabilités des "
"chargeurs vers le mécanisme d'import. Ces changements permettent de "
"supprimer plusieurs API dans le système d'import et d'ajouter de nouvelles "
"méthodes aux chercheurs et chargeurs."
#: ../Doc/reference/import.rst:995
msgid "Footnotes"
@ -1322,7 +1641,7 @@ msgstr "Notes"
#: ../Doc/reference/import.rst:996
msgid "See :class:`types.ModuleType`."
msgstr ""
msgstr "Voir :class:`types.ModuleType`."
#: ../Doc/reference/import.rst:998
msgid ""
@ -1332,6 +1651,12 @@ msgid ""
"replace itself in :data:`sys.modules`. This is implementation-specific "
"behavior that is not guaranteed to work in other Python implementations."
msgstr ""
"L'implémentation de importlib évite d'utiliser directement la valeur de "
"retour. À la place, elle récupère l'objet module en recherchant le nom du "
"module dans :data:`sys.modules`. L'effet indirect est que le module importé "
"peut remplacer le module de même nom dans :data:`sys.modules`. C'est un "
"comportement spécifique à l'implémentation dont le résultat n'est pas "
"garanti pour les autres implémentations de Python."
#: ../Doc/reference/import.rst:1005
msgid ""
@ -1340,3 +1665,7 @@ msgid ""
"that code be changed to use ``None`` instead. See :ref:`portingpythoncode` "
"for more details."
msgstr ""
"Dans du code historique, il est possible de trouver des instances de :class:"
"`imp.NullImporter` dans :data:`sys.path_importer_cache`. Il est recommandé "
"de modifier ce code afin d'utiliser ``None`` à la place. Lisez :ref:"
"`portingpythoncode` pour plus de détails."