diff --git a/glossary.po b/glossary.po index 19e5a9ae..2bb1c644 100644 --- a/glossary.po +++ b/glossary.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-01-04 15:51+0100\n" -"PO-Revision-Date: 2018-04-14 17:16+0200\n" +"PO-Revision-Date: 2018-05-14 22:57+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: \n" "Language: fr\n" @@ -99,8 +99,9 @@ msgstr "" "documentation du module :mod:`abc`). Python contient de nombreuses ABC pour " "les structures de données (dans le module :mod:`collections.abc`), les " "nombres (dans le module :mod:`numbers`), les flux (dans le module :mod:`io`) " -"et les chercheurs / chargeurs d'import (dans le module :mod:`importlib." -"abc`). Vous pouvez créer vos propres ABC avec le module :mod:`abc`." +"et les chercheurs-chargeurs du système d'importation (dans le module :mod:" +"`importlib.abc`). Vous pouvez créer vos propres ABC avec le module :mod:" +"`abc`." #: ../Doc/glossary.rst:41 msgid "argument" @@ -823,15 +824,15 @@ msgstr "Synonyme de :term:`objet fichier`." #: ../Doc/glossary.rst:345 msgid "finder" -msgstr "finder" +msgstr "chercheur" #: ../Doc/glossary.rst:347 msgid "" "An object that tries to find the :term:`loader` for a module that is being " "imported." msgstr "" -"Objet qui essaye de trouver un :term:`loader` pour le module en cours " -"d'import." +"Objet qui essaie de trouver un :term:`chargeur ` pour le module en " +"cours d'importation." #: ../Doc/glossary.rst:350 msgid "" @@ -839,10 +840,10 @@ msgid "" "` for use with :data:`sys.meta_path`, and :term:`path " "entry finders ` for use with :data:`sys.path_hooks`." msgstr "" -"Depuis Python 3.3, il existe deux types de *finder* : :term:`meta path " -"finders ` à utiliser avec :data:`sys.meta_path` ; :term:" -"`path entry finders ` à utiliser avec :data:`sys." -"path_hooks`." +"Depuis Python 3.3, il existe deux types de chercheurs : les :term:" +"`chercheurs dans les méta-chemins ` à utiliser avec :data:" +"`sys.meta_path` ; les :term:`chercheurs d'entrée dans path ` à utiliser avec :data:`sys.path_hooks`." #: ../Doc/glossary.rst:354 msgid "See :pep:`302`, :pep:`420` and :pep:`451` for much more detail." @@ -932,8 +933,8 @@ msgid "" "becomes the default::" msgstr "" "En important le module :mod:`__future__` et en affichant ses variables, vous " -"pouvez voir à quel moment une nouvelle fonctionnalité a été rajoutée dans " -"le langage et quand elle devient le comportement par défaut : ::" +"pouvez voir à quel moment une nouvelle fonctionnalité a été rajoutée dans le " +"langage et quand elle devient le comportement par défaut : ::" #: ../Doc/glossary.rst:390 msgid "garbage collection" @@ -1169,7 +1170,7 @@ msgstr "" #: ../Doc/glossary.rst:488 msgid "import path" -msgstr "chemin d'import" +msgstr "chemin des imports" #: ../Doc/glossary.rst:490 msgid "" @@ -1178,10 +1179,11 @@ msgid "" "list of locations usually comes from :data:`sys.path`, but for subpackages " "it may also come from the parent package's ``__path__`` attribute." msgstr "" -"Liste de :term:`chemins ` dans lesquels le :term:`path based finder` " -"cherche les modules à importer. Typiquement, lors d'un import, cette liste " -"vient de :data:`sys.path` ; pour les sous paquets, elle peut aussi venir de " -"l'attribut ``__path__`` du paquet parent." +"Liste de :term:`entrées ` dans lesquelles le :term:`chercheur " +"basé sur les chemins ` cherche les modules à importer. " +"Typiquement, lors d'une importation, cette liste vient de :data:`sys.path` ; " +"pour les sous-paquets, elle peut aussi venir de l'attribut ``__path__`` du " +"paquet parent." #: ../Doc/glossary.rst:495 msgid "importing" @@ -1202,8 +1204,8 @@ msgid "" "An object that both finds and loads a module; both a :term:`finder` and :" "term:`loader` object." msgstr "" -"Objet qui trouve et charge un module, en même temps un :term:`finder` et un :" -"term:`loader`." +"Objet qui trouve et charge un module, en même temps un :term:`chercheur " +"` et un :term:`chargeur `." #: ../Doc/glossary.rst:503 msgid "interactive" @@ -1499,7 +1501,7 @@ msgstr "" #: ../Doc/glossary.rst:624 msgid "loader" -msgstr "loader" +msgstr "chargeur" #: ../Doc/glossary.rst:626 msgid "" @@ -1509,9 +1511,9 @@ msgid "" "base class`." msgstr "" "Objet qui charge un module. Il doit définir une méthode nommée :meth:" -"`load_module`. Un *loader* est typiquement donné par un :term:`finder`. Voir " -"la :pep:`302` pour plus de détails et :class:`importlib.ABC.Loader` pour sa :" -"term:`classe de base abstraite`." +"`load_module`. Un chargeur est typiquement donné par un :term:`chercheur " +"`. Voir la :pep:`302` pour plus de détails et :class:`importlib.ABC." +"Loader` pour sa :term:`classe de base abstraite`." #: ../Doc/glossary.rst:630 msgid "mapping" @@ -1536,7 +1538,7 @@ msgstr "" #: ../Doc/glossary.rst:638 msgid "meta path finder" -msgstr "meta path finder" +msgstr "chercheur dans les méta-chemins" #: ../Doc/glossary.rst:640 msgid "" @@ -1544,17 +1546,17 @@ msgid "" "finders are related to, but different from :term:`path entry finders `." msgstr "" -"Un :term:`finder` donné par une recherche dans :data:`sys.meta_path`. Les " -"*meta path finders* ressemblent, mais sont différents de :term:`path entry " -"finders `." +"Un :term:`chercheur ` renvoyé par une recherche dans :data:`sys." +"meta_path`. Les chercheurs dans les méta-chemins ressemblent, mais sont " +"différents des :term:`chercheurs d'entrée dans path `." #: ../Doc/glossary.rst:644 msgid "" "See :class:`importlib.abc.MetaPathFinder` for the methods that meta path " "finders implement." msgstr "" -"Voir :class:`importlib.abc.MetaPathFinder` pour les méthodes que les *meta " -"path finders* doivent implémenter." +"Voir :class:`importlib.abc.MetaPathFinder` pour les méthodes que les " +"chercheurs dans les méta-chemins doivent implémenter." #: ../Doc/glossary.rst:646 msgid "metaclass" @@ -1633,7 +1635,7 @@ msgid "" msgstr "" "Objet utilisé pour organiser une portion unitaire de code en Python. Les " "modules ont un espace de noms et peuvent contenir n'importe quels objets " -"Python. Charger des modules est appelé :term:`importer`." +"Python. Charger des modules est appelé :term:`importer `." #: ../Doc/glossary.rst:677 msgid "See also :term:`package`." @@ -1641,16 +1643,16 @@ msgstr "Voir aussi :term:`paquet`." #: ../Doc/glossary.rst:678 msgid "module spec" -msgstr "module spec" +msgstr "spécificateur de module" #: ../Doc/glossary.rst:680 msgid "" "A namespace containing the import-related information used to load a module. " "An instance of :class:`importlib.machinery.ModuleSpec`." msgstr "" -"Espace de noms contenant les informations, relatives à l'import, utilisées " -"pour charger un module. C'est une instance de la classe :class:`importlib." -"machinery.ModuleSpec`." +"Espace de noms contenant les informations, relatives à l'importation, " +"utilisées pour charger un module. C'est une instance de la classe :class:" +"`importlib.machinery.ModuleSpec`." #: ../Doc/glossary.rst:682 msgid "MRO" @@ -1921,19 +1923,20 @@ msgstr "" #: ../Doc/glossary.rst:800 msgid "path entry" -msgstr "chemin" +msgstr "entrée de path" #: ../Doc/glossary.rst:802 msgid "" "A single location on the :term:`import path` which the :term:`path based " "finder` consults to find modules for importing." msgstr "" -"Emplacement dans l':term:`import path` que le :term:`path based finder` " -"consulte pour trouver des modules à importer." +"Emplacement dans le :term:`chemin des imports ` (*import path* " +"en anglais, d'où le *path*) que le :term:`chercheur basé sur les chemins " +"` consulte pour trouver des modules à importer." #: ../Doc/glossary.rst:804 msgid "path entry finder" -msgstr "path entry finder" +msgstr "chercheur d'entrée dans path" #: ../Doc/glossary.rst:806 msgid "" @@ -1941,21 +1944,22 @@ msgid "" "term:`path entry hook`) which knows how to locate modules given a :term:" "`path entry`." msgstr "" -":term:`finder` donné par un appelable sur un :data:`sys.path_hooks` (c'est-à-" -"dire un :term:`path entry hook`) qui sait où trouver des modules lorsqu'on " -"lui donne un :term:`path entry`." +":term:`chercheur ` renvoyé par un appelable sur un :data:`sys." +"path_hooks` (c'est-à-dire un :term:`point d'entrée pour la recherche dans " +"path `) qui sait où trouver des modules lorsqu'on lui donne " +"une :term:`entrée de path `." #: ../Doc/glossary.rst:810 msgid "" "See :class:`importlib.abc.PathEntryFinder` for the methods that path entry " "finders implement." msgstr "" -"Voir :class:`importlib.abc.PathEntryFinder` pour les méthodes qu'un *path " -"entry finder* doit implémenter." +"Voir :class:`importlib.abc.PathEntryFinder` pour les méthodes qu'un " +"chercheur d'entrée dans path doit implémenter." #: ../Doc/glossary.rst:812 msgid "path entry hook" -msgstr "path entry hook" +msgstr "point d'entrée pour la recherche dans path" #: ../Doc/glossary.rst:814 msgid "" @@ -1963,20 +1967,22 @@ msgid "" "entry finder` if it knows how to find modules on a specific :term:`path " "entry`." msgstr "" -"Appelable dans la liste :data:`sys.path_hook` qui donne un :term:`path entry " -"finder` s'il sait où trouver des modules pour un :term:`path entry` donné." +"Appelable dans la liste :data:`sys.path_hook` qui donne un :term:`chercheur " +"d'entrée dans path ` s'il sait où trouver des modules " +"pour une :term:`entrée dans path ` donnée." #: ../Doc/glossary.rst:817 msgid "path based finder" -msgstr "path based finder" +msgstr "chercheur basé sur les chemins" #: ../Doc/glossary.rst:819 msgid "" "One of the default :term:`meta path finders ` which " "searches an :term:`import path` for modules." msgstr "" -"L'un des :term:`meta path finders ` par défaut qui cherche " -"des modules dans un :term:`import path`." +"L'un des :term:`chercheurs dans les méta-chemins ` par " +"défaut qui cherche des modules dans un :term:`chemin des imports `." #: ../Doc/glossary.rst:821 msgid "path-like object" diff --git a/reference/import.po b/reference/import.po index b6ac2608..b8a8f5d2 100644 --- a/reference/import.po +++ b/reference/import.po @@ -8,7 +8,7 @@ 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: 2018-05-09 21:17+0200\n" +"PO-Revision-Date: 2018-05-14 22:33+0200\n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/reference/import.rst:6 msgid "The import system" -msgstr "Le système d'import" +msgstr "Le système d'importation" #: ../Doc/reference/import.rst:10 msgid "" @@ -31,10 +31,10 @@ msgid "" 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." +"L'instruction :keyword:`import` est la façon la plus courante faire appel à " +"ce système d'importation, mais ce n'est pas la seule. Les fonctions telles " +"que :func:`importlib.import_module` et :func:`__import__` peuvent aussi être " +"utilisées pour mettre en œuvre le mécanisme d'importation." #: ../Doc/reference/import.rst:16 msgid "" @@ -65,7 +65,7 @@ msgid "" 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 " +"effets collatéraux puissent se produire, tels que l'importation 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." @@ -79,8 +79,8 @@ msgid "" "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." +"d'importation, la fonction native :func:`__import__` est appelée. D'autres " +"mécanismes d'appel au système d'importation (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." @@ -107,9 +107,9 @@ 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 " +"Le système d'importation 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." +"d'importation (le système d'importation 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`)." @@ -128,7 +128,7 @@ 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 " +"`__import__` pour mettre en œuvre le mécanisme d'import. Reportez-vous à la " "documentation de la bibliothèque :mod:`importlib` pour obtenir davantage de " "détails." @@ -178,7 +178,7 @@ 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." +"qui contient un attribut ``__path__`` est réputé être un paquet." #: ../Doc/reference/import.rst:86 msgid "" @@ -189,7 +189,7 @@ msgid "" "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 " +"du paquet parent par des points (`.`), à l'instar de 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:" @@ -225,7 +225,7 @@ msgid "" "package with three subpackages::" msgstr "" "Par exemple, l'arborescence suivante définit un paquet ``parent`` au niveau " -"le plus haut et sous-paquets ::" +"le plus haut avec trois sous-paquets ::" #: ../Doc/reference/import.rst:121 msgid "" @@ -235,8 +235,8 @@ msgid "" "__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/one/__init__.py``. Les importations postérieures de ``parent.two`` " +"ou ``parent.three`` respectivement exécutent ``parent/two/__init__.py`` ou " "``parent/three/__init__.py`` respectivement." #: ../Doc/reference/import.rst:128 @@ -257,10 +257,10 @@ msgstr "" "` 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." +"réseau ou à tout autre endroit dans lequel Python cherche pendant " +"l'importation. Les paquets-espaces 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 "" @@ -273,9 +273,9 @@ 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." +"de paquets à la tentative suivante d'importation dans le paquet si le chemin " +"de leur paquet parent (ou :data:`sys.path` pour les paquets de plus haut " +"niveau) change." #: ../Doc/reference/import.rst:148 msgid "" @@ -288,11 +288,11 @@ msgid "" 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é." +"trouvés pendant le processus d'importation, où chacun est apporté par une " +"portion différente. Ainsi, ``parent/one`` n'est pas forcément physiquement à " +"côté 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 l'un de ses " +"sous-paquet est importé." #: ../Doc/reference/import.rst:155 msgid "See also :pep:`420` for the namespace package specification." @@ -329,8 +329,8 @@ 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." +"machin`` et enfin ``truc.machin.bidule``. Si n'importe laquelle des " +"importations intermédiaires échoue, une :exc:`ModuleNotFoundError` est levée." #: ../Doc/reference/import.rst:174 msgid "The module cache" @@ -345,9 +345,9 @@ 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 " +"Le premier endroit vérifié pendant la recherche d'une importation 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é." @@ -360,9 +360,9 @@ 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:" +"Pendant l'importation, 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." @@ -379,8 +379,8 @@ msgstr "" "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`." +"nom. La clé peut aussi être assignée à ``None`` de manière à forcer une :exc:" +"`ModuleNotFoundError` lors de la prochaine importation du module." #: ../Doc/reference/import.rst:199 msgid "" @@ -412,12 +412,12 @@ msgid "" "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 ` et les :" -"term:`chargeurs `. 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 `\" (ils renvoient une référence vers eux-mêmes " +"son protocole d'importation pour chercher et charger le module. Ce protocole " +"se compose de deux objets conceptuels : les :term:`chercheurs ` et " +"les :term:`chargeurs `. Le travail du chercheur consiste à trouver, " +"à l'aide de différentes stratégies, le module dont le nom a été fourni. Les " +"objets qui implémentent ces deux interfaces sont connus sous le vocable \":" +"term:`importateurs `\" (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 @@ -432,7 +432,7 @@ 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 " +"`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." @@ -442,8 +442,8 @@ 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." +"Le mécanisme d'importation est extensible, vous pouvez donc ajouter de " +"nouveaux chercheurs pour étendre le domaine de recherche des modules." #: ../Doc/reference/import.rst:232 msgid "" @@ -453,9 +453,9 @@ msgid "" "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." +"un chercheur renvoie un :dfn:`spécificateur de module`, qui contient toutes " +"les informations nécessaires pour importer le module ; celui-ci sera alors " +"utilisé par le mécanisme d'importation pour charger le module." #: ../Doc/reference/import.rst:236 msgid "" @@ -465,7 +465,7 @@ msgid "" 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." +"enregistrer pour étendre le mécanisme d'importation." #: ../Doc/reference/import.rst:240 msgid "" @@ -480,7 +480,7 @@ msgstr "" #: ../Doc/reference/import.rst:246 msgid "Import hooks" -msgstr "Points d'entrées automatiques pour l'import" +msgstr "Points d'entrées automatiques pour l'importation" #: ../Doc/reference/import.rst:256 msgid "" @@ -488,10 +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*." +"Le mécanisme d'importation est conçu pour être extensible ; vous pouvez y " +"insérer des *points d'entrée automatique* (*hooks* en anglais). Il existe " +"deux types de points d'entrée automatique pour l'importation : les *méta-" +"points d'entrée* et les *points d'entrée sur le chemin des imports*." #: ../Doc/reference/import.rst:260 msgid "" @@ -501,12 +501,13 @@ 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." +"Les méta-points d'entrée sont appelés au début du processus d'importation, " +"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 "" @@ -515,10 +516,10 @@ 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 d’import sont appelés pendant le " +"Les points d'entrée sur le chemin des imports 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 " -"d’import sont enregistrés en ajoutant de nouveaux appelables à :data:`sys." +"chemin qui leur correspond est atteint. Les points d'entrée sur le chemin " +"des imports sont enregistrés en ajoutant de nouveaux appelables à :data:`sys." "path_hooks`, comme décrit ci-dessous." #: ../Doc/reference/import.rst:273 @@ -554,12 +555,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 " +"Si un 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." +"simplement propagée à l'appelant, mettant fin au processus d'importation." #: ../Doc/reference/import.rst:294 msgid "" @@ -583,8 +584,9 @@ msgstr "" "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." +"existant qui va être la cible du chargement (plus tard). Le système " +"d'importation ne passe le module cible en paramètre que lors d'un " +"rechargement." #: ../Doc/reference/import.rst:305 msgid "" @@ -598,15 +600,15 @@ msgid "" "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)``." +"d'importation. Par exemple, si nous supposons qu'aucun des modules concernés " +"n'a déjà été mis en cache, importer ``truc.machin.bidule`` effectue une " +"première importation au niveau le plus haut, en appelant ``c_m_c." +"find_spec(\"truc\", None, None)`` pour chaque chercheur dans les méta-" +"chemins (``c_m_c``). Après que ``truc`` a été importé, ``truc.machin`` est " +"importé en parcourant le méta-chemin une deuxième fois, appelant ``c_m_c." +"find_spec(\"truc.machin\", truc.__path__, None)``. Une fois ``truc.machin`` " +"importé, le parcours final appelle ``c_m_c.find_spec(\"truc.machin.bidule\", " +"truc.machin.__path__, None)``." #: ../Doc/reference/import.rst:315 msgid "" @@ -614,9 +616,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``." +"Quelques chercheurs dans les méta-chemins ne gèrent que les importations 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 "" @@ -625,10 +627,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`)." +"Le :data:`sys.meta_path` de Python comprend trois chercheurs par défaut : 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:`chemin des imports " +"` (c'est le :term:`chercheur dans path `)." #: ../Doc/reference/import.rst:324 msgid "" @@ -639,9 +641,9 @@ msgid "" 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()``." +"find_module`, devenue obsolète. Bien qu'elle continue de fonctionner comme " +"avant, le mécanisme d'importation essaie ``find_module()`` uniquement si le " +"chercheur n'implémente pas ``find_spec()``." #: ../Doc/reference/import.rst:333 msgid "Loading" @@ -653,9 +655,10 @@ 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 ::" +"Quand un spécificateur de module est trouvé, le mécanisme d'importation " +"l'utilise (et le chargeur qu'il contient) pour charger le module. Voici à " +"peu près ce qui se passe au sein de l'importation pendant la phase de " +"chargement ::" #: ../Doc/reference/import.rst:370 msgid "Note the following details:" @@ -695,7 +698,7 @@ msgstr "" "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`." +"le module qui a échoué est conservé dans :data:`sys.modules`." #: ../Doc/reference/import.rst:387 msgid "" @@ -704,10 +707,11 @@ msgid "" "code example above), as summarized in a :ref:`later section `." 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 ` que nous abordons ensuite." +"Après que le module est créé mais avant son exécution, le mécanisme " +"d'importation définit les attributs relatifs à l'importation " +"(\"_init_module_attrs\" dans l'exemple de pseudo-code ci-dessus), comme " +"indiqué brièvement dans une :ref:`section ` que nous " +"abordons ensuite." #: ../Doc/reference/import.rst:392 msgid "" @@ -725,7 +729,7 @@ msgid "" "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]_." +"être celui qui est renvoyé à la fin de l'importation [#fnlo]_." #: ../Doc/reference/import.rst:399 msgid "" @@ -733,7 +737,7 @@ 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. " +"Le système d'importation 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`." @@ -749,7 +753,7 @@ msgid "" "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:" +"l'exécution du module. Le mécanisme d'importation 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." @@ -775,7 +779,7 @@ msgid "" "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:" +"`ImportError`, alors que toute autre exception levée durant :meth:" "`~importlib.abc.Loader.exec_module` est propagée." #: ../Doc/reference/import.rst:422 @@ -802,8 +806,8 @@ msgstr "" "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." +"module. Si cette méthode renvoie ``None``, le mécanisme d'importation crée " +"le nouveau module lui-même." #: ../Doc/reference/import.rst:433 msgid "The :meth:`~importlib.abc.Loader.create_module` method of loaders." @@ -826,7 +830,7 @@ 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 " +"Par compatibilité avec les chargeurs existants, le mécanisme d'importation " "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()`` " @@ -853,7 +857,7 @@ msgid "" 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 " +"reload` ne fonctionnera pas correctement). Si le module considéré n'est pas " "trouvé dans :data:`sys.modules`, le chargeur doit créer un nouvel objet " "module et l'ajouter à :data:`sys.modules`." @@ -872,10 +876,9 @@ 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." +"Si le chargement échoue, le chargeur ne doit enlever de :data:`sys.modules` " +"**que** le (ou les) module ayant échoué et seulement si le chargeur lui-même " +"a chargé le module explicitement." #: ../Doc/reference/import.rst:465 msgid "" @@ -891,7 +894,7 @@ msgid "" "``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." +"définie mais ``create_module()`` ne l'est pas." #: ../Doc/reference/import.rst:474 msgid "Submodules" @@ -906,16 +909,25 @@ msgid "" "``spam.foo``, ``spam`` will have an attribute ``foo`` which is bound to the " "submodule. Let's say you have the following directory structure::" msgstr "" +"Quand un sous-module est chargé, quel que soit le mécanisme (par exemple " +"avec les instructions ``import``, ``import-from`` ou avec la fonction native " +"``__import__()``), une liaison est créée dans l'espace de noms du module " +"parent vers l'objet sous-module. Par exemple, si le paquet ``spam`` possède " +"un sous-module ``foo``, après l'importation de ``spam.foo``, ``spam`` " +"possède un attribut ``foo`` qui est lié au sous-module. Supposons que nous " +"ayons l'arborescence suivante ::" #: ../Doc/reference/import.rst:488 msgid "and ``spam/__init__.py`` has the following lines in it::" -msgstr "" +msgstr "et que le contenu de ``spam/__init__.py`` soit ::" #: ../Doc/reference/import.rst:493 msgid "" "then executing the following puts a name binding to ``foo`` and ``bar`` in " "the ``spam`` module::" msgstr "" +"alors exécuter les lignes suivantes crée des liens vers ``foo`` et ``bar`` " +"dans le module ``spam`` ::" #: ../Doc/reference/import.rst:502 msgid "" @@ -925,6 +937,12 @@ msgid "" "foo']`` (as you would after the above import), the latter must appear as the " "``foo`` attribute of the former." msgstr "" +"Connaissant la façon habituelle dont Python effectue les liens, cela peut " +"sembler surprenant. Mais c'est en fait une fonctionnalité fondamentale du " +"système d'importation. Si vous avez quelque part ``sys.modules['spam']`` et " +"``sys.modules['spam.foo']`` (comme dans c'est le cas ci-dessus après " +"l'importation), alors le dernier doit apparaître comme l'attribut ``foo`` du " +"premier." #: ../Doc/reference/import.rst:509 msgid "Module spec" @@ -937,6 +955,11 @@ msgid "" "modules. The purpose of a module's spec is to encapsulate this import-" "related information on a per-module basis." msgstr "" +"Le mécanisme d'importation utilise diverses informations de chaque module " +"pendant l'importation, spécialement avant le chargement. La plupart de ces " +"informations sont communes à tous les modules. Le but d'un spécificateur de " +"module est d'encapsuler ces informations relatives à l'importation au sein " +"de chaque module." #: ../Doc/reference/import.rst:516 msgid "" @@ -946,6 +969,12 @@ msgid "" "machinery to perform the boilerplate operations of loading, whereas without " "a module spec the loader had that responsibility." msgstr "" +"Utiliser un spécificateur pendant l'importation permet de transférer l'état " +"entre les composants du système d'importation, par exemple entre le " +"chercheur qui crée le spécificateur de module et le chargeur qui l'exécute. " +"Surtout, cela permet au mécanisme d'importation d'effectuer toutes les " +"opérations classiques de chargement, alors que c'était le chargeur qui en " +"avait la responsabilité quand il n'y avait pas de spécificateur." #: ../Doc/reference/import.rst:522 msgid "" @@ -953,6 +982,9 @@ msgid "" "object. See :class:`~importlib.machinery.ModuleSpec` for details on the " "contents of the module spec." msgstr "" +"Le spécificateur de module est accessible par l'attribut ``__spec__`` de " +"l'objet module. Lisez :class:`~importlib.machinery.ModuleSpec` pour " +"davantage d'informations sur le contenu du spécificateur de module." #: ../Doc/reference/import.rst:531 msgid "Import-related module attributes" @@ -963,6 +995,9 @@ msgid "" "The import machinery fills in these attributes on each module object during " "loading, based on the module's spec, before the loader executes the module." msgstr "" +"Le mécanisme d'importation renseigne ces attributs pour chaque objet module " +"pendant le chargement, sur la base du spécificateur de module et avant que " +"le chargeur n'exécute le module." #: ../Doc/reference/import.rst:539 msgid "" @@ -970,6 +1005,9 @@ msgid "" "module. This name is used to uniquely identify the module in the import " "system." msgstr "" +"L'attribut ``__name__`` doit contenir le nom complètement qualifié du " +"module. Ce nom est utilisé pour identifier de manière non équivoque le " +"module dans le mécanisme d'importation." #: ../Doc/reference/import.rst:545 msgid "" @@ -978,6 +1016,11 @@ msgid "" "introspection, but can be used for additional loader-specific functionality, " "for example getting data associated with a loader." msgstr "" +"L'attribut ``__loader__`` doit pointer vers l'objet chargeur que le " +"mécanisme d'importation a utilisé pour charger le module. L'utilisation " +"principale concerne l'introspection, mais il peut être utilisé pour d'autres " +"fonctionnalités relatives au chargement. Par exemple, obtenir des données " +"par l'intermédiaire du chargeur." #: ../Doc/reference/import.rst:552 msgid "" @@ -988,6 +1031,13 @@ msgid "" "string for top-level modules, or for submodules, to the parent package's " "name. See :pep:`366` for further details." msgstr "" +"L'attribut ``__package__`` du module doit être défini. Sa valeur doit être " +"une chaîne de caractères, qui peut être la même que son attribut " +"``__name__``. Quand le module est un paquet, la valeur de ``__package__`` " +"doit être définie à la même valeur que son ``__name__``. Quand le module " +"n'est pas un paquet, ``__package__`` doit être la chaîne vide pour les " +"modules de niveau le plus haut, et le nom du paquet parent pour les sous-" +"modules. Voir la :pep:`366` pour plus de détails." #: ../Doc/reference/import.rst:560 msgid "" @@ -995,12 +1045,17 @@ msgid "" "relative imports for main modules, as defined in :pep:`366`. It is expected " "to have the same value as ``__spec__.parent``." msgstr "" +"Cet attribut est utilisé à la place de ``__name__`` pour calculer les " +"importations relatives explicites des modules principaux, comme défini dans " +"la :pep:`366`. Il devrait avoir la même valeur que ``__spec__.parent``." #: ../Doc/reference/import.rst:564 msgid "" "The value of ``__package__`` is expected to be the same as ``__spec__." "parent``." msgstr "" +"La valeur de ``__package__`` devrait être la même que celle de ``__spec__." +"parent``." #: ../Doc/reference/import.rst:570 msgid "" @@ -1010,18 +1065,28 @@ msgid "" "exception is ``__main__``, where ``__spec__`` is :ref:`set to None in some " "cases `." msgstr "" +"L'attribut ``__spec__`` doit contenir un lien vers le spécificateur de " +"module qui a été utilisé lors de l'importation du module. Définir " +"``__spec__`` correctement s'applique aussi pour :ref:`l'initialisation des " +"modules au démarrage de l'interpréteur `. La seule exception " +"concerne ``__main__`` où la valeur de ``__spec__`` est :ref:`None dans " +"certains cas `." #: ../Doc/reference/import.rst:576 msgid "" "When ``__package__`` is not defined, ``__spec__.parent`` is used as a " "fallback." msgstr "" +"Quand ``__package__`` n'est pas défini, ``__spec__.parent`` est utilisé par " +"défaut." #: ../Doc/reference/import.rst:581 msgid "" "``__spec__.parent`` is used as a fallback when ``__package__`` is not " "defined." msgstr "" +"``__spec__.parent`` est utilisé par défaut quand ``__package__`` n'est pas " +"defini." #: ../Doc/reference/import.rst:587 msgid "" @@ -1032,10 +1097,18 @@ msgid "" "details on the semantics of ``__path__`` are given :ref:`below `." msgstr "" +"Si le module est un paquet (classique ou espace de noms), l'attribut " +"``__path__`` de l'objet module doit être défini. La valeur doit être un " +"itérable mais peut être vide si ``__path__`` n'a pas de sens dans le " +"contexte. Si ``__path__`` n'est pas vide, il doit produire des chaînes " +"lorsque l'on itère dessus. Vous trouvez plus de détails sur la sémantique de " +"``__path__`` :ref:`plus loin ci-dessous `." #: ../Doc/reference/import.rst:594 msgid "Non-package modules should not have a ``__path__`` attribute." msgstr "" +"Les modules qui ne sont pas des paquets ne doivent pas avoir d'attribut " +"``__path__``." #: ../Doc/reference/import.rst:599 msgid "" @@ -1043,6 +1116,10 @@ msgid "" "The import system may opt to leave ``__file__`` unset if it has no semantic " "meaning (e.g. a module loaded from a database)." msgstr "" +"``__file__`` est optionnel. S'il est défini, la valeur de cet attribut doit " +"être une chaîne. Le système d'importation peut décider de laisser " +"``__file__`` indéfini si cela ne fait pas sens de le définir (par exemple, " +"lorsqu'on charge un module depuis une base de données)." #: ../Doc/reference/import.rst:603 msgid "" @@ -1052,6 +1129,11 @@ msgid "" "path can simply point to where the compiled file would exist (see :pep:" "`3147`)." msgstr "" +"Si ``__file__`` est défini, il peut être judicieux de définir l'attribut " +"``__cached__`` dont la valeur est le chemin vers une version compilée du " +"code (par exemple, le fichier bytecode). Le fichier n'a pas besoin d'exister " +"pour définir cet attribut : le chemin peut simplement pointer vers l'endroit " +"où le fichier compilé aurait été placé (voir la :pep:`3147`)." #: ../Doc/reference/import.rst:609 msgid "" @@ -1061,6 +1143,11 @@ msgid "" "from a cached module but otherwise does not load from a file, that atypical " "scenario may be appropriate." msgstr "" +"Vous pouvez aussi définir ``__cached__`` quand ``__file__`` n'est pas " +"défini. Cependant, ce scénario semble rare. Au final, c'est le chargeur qui " +"utilise les valeurs de ``__file__`` ou ``__cached__``. Donc, si le chargeur " +"peut charger depuis un module mis en cache mais ne peut pas charger depuis " +"un fichier, ce scénario a du sens." #: ../Doc/reference/import.rst:618 msgid "module.__path__" @@ -1071,6 +1158,8 @@ msgid "" "By definition, if a module has a ``__path__`` attribute, it is a package, " "regardless of its value." msgstr "" +"Par définition, si un module possède un attribut ``__path__``, c'est un " +"paquet, quelle que soit la valeur de cet attribut." #: ../Doc/reference/import.rst:623 msgid "" @@ -1080,6 +1169,11 @@ msgid "" "during import. However, ``__path__`` is typically much more constrained " "than :data:`sys.path`." msgstr "" +"L'attribut ``__path__`` d'un paquet est utilisé pendant l'importation des " +"sous-paquets. Dans le mécanisme d'importation, son fonctionnement ressemble " +"beaucoup à :data:`sys.path`, c'est-à-dire qu'il fournit une liste " +"d'emplacements où rechercher les modules pendant l'importation. Cependant, " +"``__path__`` est beaucoup plus contraint que :data:`sys.path`." #: ../Doc/reference/import.rst:629 msgid "" @@ -1088,6 +1182,10 @@ msgid "" "data:`sys.path_hooks` (described below) are consulted when traversing a " "package's ``__path__``." msgstr "" +"``__path__`` doit être un itérable de chaînes de caractères, mais il peut " +"être vide. Les mêmes règles que pour :data:`sys.path` s'appliquent au " +"``__path__`` d'un paquet et :data:`sys.path_hooks` (dont la description est " +"donnée plus bas) est consulté pendant le parcours de ``__path__`` du paquet." #: ../Doc/reference/import.rst:634 msgid "" @@ -1098,10 +1196,17 @@ msgid "" "``__path__`` manipulation code; the import machinery automatically sets " "``__path__`` correctly for the namespace package." msgstr "" +"Le fichier ``__init__.py`` d'un paquet peut définir ou modifier l'attribut " +"``__path__`` d'un paquet, et c'est ainsi qu'étaient implémentés les paquets-" +"espaces de noms avant la :pep:`420`. Depuis l'adoption de la :pep:`420`, les " +"paquets-espaces de noms n'ont plus besoin d'avoir des fichiers ``__init__." +"py`` qui ne font que de la manipulation de ``__path__`` ; le mécanisme " +"d'importation définit automatiquement ``__path__`` correctement pour un " +"paquet-espace de noms." #: ../Doc/reference/import.rst:642 msgid "Module reprs" -msgstr "" +msgstr "Représentation textuelle d'un module" #: ../Doc/reference/import.rst:644 msgid "" @@ -1109,6 +1214,10 @@ msgid "" "attributes set above, and in the module's spec, you can more explicitly " "control the repr of module objects." msgstr "" +"Par défaut, tous les modules ont une représentation textuelle utilisable. " +"Cependant, en utilisant les attributs définis ci-dessus et dans le " +"spécificateur de module, vous pouvez explicitement mieux contrôler " +"l'affichage des objets modules." #: ../Doc/reference/import.rst:648 msgid "" @@ -1119,10 +1228,17 @@ msgid "" "__file__``, and ``module.__loader__`` as input into the repr, with defaults " "for whatever information is missing." msgstr "" +"Si le module possède un spécificateur (``__spec__``), le mécanisme " +"d'importation essaie de générer une représentation avec celui-ci. S'il " +"échoue ou s'il n'y a pas de spécificateur, le système d'importation " +"construit une représentation par défaut en utilisant toute information " +"disponible sur le module. Il tente d'utiliser ``module.__name__``, ``module." +"__file__`` et ``module.__loader__`` comme entrées pour la représentation, " +"avec des valeurs par défaut lorsque l'information est manquante." #: ../Doc/reference/import.rst:655 msgid "Here are the exact rules used:" -msgstr "" +msgstr "Les règles exactes utilisées sont :" #: ../Doc/reference/import.rst:657 msgid "" @@ -1130,22 +1246,31 @@ msgid "" "used to generate the repr. The \"name\", \"loader\", \"origin\", and " "\"has_location\" attributes are consulted." msgstr "" +"Si le module possède un attribut ``__spec__``, la valeur est utilisée pour " +"générer la représentation. Les attributs \"name\", \"loader\", \"origin\" et " +"\"has_location\" sont consultés." #: ../Doc/reference/import.rst:661 msgid "" "If the module has a ``__file__`` attribute, this is used as part of the " "module's repr." msgstr "" +"Si le module possède un attribut ``__file__``, il est utilisé pour " +"construire la représentation du module." #: ../Doc/reference/import.rst:664 msgid "" "If the module has no ``__file__`` but does have a ``__loader__`` that is not " "``None``, then the loader's repr is used as part of the module's repr." msgstr "" +"Si le module ne possède pas d'attribut ``__file__`` mais possède un " +"``__loader__`` qui n'est pas ``None``, alors la représentation du chargeur " +"est utilisée pour construire la représentation du module." #: ../Doc/reference/import.rst:667 msgid "Otherwise, just use the module's ``__name__`` in the repr." msgstr "" +"Sinon, il utilise juste le ``__name__`` du module dans la représentation." #: ../Doc/reference/import.rst:669 msgid "" @@ -1153,6 +1278,10 @@ msgid "" "been deprecated and the module spec is now used by the import machinery to " "generate a module repr." msgstr "" +"L'utilisation de :meth:`loader.module_repr() ` est devenue obsolète et le spécificateur de module est utilisé " +"dorénavant par le mécanisme d'importation pour générer la représentation " +"textuelle du module." #: ../Doc/reference/import.rst:674 msgid "" @@ -1161,10 +1290,14 @@ msgid "" "method, if defined, before trying either approach described above. However, " "the method is deprecated." msgstr "" +"Par compatibilité descendante avec Python 3.3, la représentation textuelle " +"du module est générée en appelant la méthode :meth:`~importlib.abc.Loader." +"module_repr` du chargeur, si elle est définie, avant même d'essayer " +"l'approche décrite ci-dessus. Cependant, cette méthode est obsolète." #: ../Doc/reference/import.rst:681 msgid "The Path Based Finder" -msgstr "" +msgstr "Le chercheur dans path" #: ../Doc/reference/import.rst:686 msgid "" @@ -1174,6 +1307,12 @@ msgid "" "contains a list of :term:`path entries `. Each path entry names " "a location to search for modules." msgstr "" +"Comme indiqué précédemment, Python est livré par défaut avec plusieurs " +"chercheurs dans les méta-chemins. L'un deux, appelé :term:`chercheur dans " +"path ` (:class:`~importlib.machinery.PathFinder`), " +"recherche dans le :term:`chemin des imports ` qui contient une " +"liste :term:`d'entrées dans path `. Chaque entrée désigne un " +"emplacement où rechercher des modules." #: ../Doc/reference/import.rst:692 msgid "" @@ -1181,6 +1320,10 @@ msgid "" "it traverses the individual path entries, associating each of them with a " "path entry finder that knows how to handle that particular kind of path." msgstr "" +"Le chercheur dans path en tant que tel ne sait pas comment importer quoi que " +"ce soit. Il ne fait que parcourir chaque entrée de \"path\" et associe à " +"chacune d'elle un \"chercheur d'entrée dans path\" qui sait comment gérer le " +"type particulier de chemin considéré." #: ../Doc/reference/import.rst:696 msgid "" @@ -1192,6 +1335,14 @@ msgid "" "also handle loading all of these file types (other than shared libraries) " "from zipfiles." msgstr "" +"L'ensemble par défaut des \"chercheurs d'entrée dans path\" implémente toute " +"la sémantique pour trouver des modules dans le système de fichiers, gérer " +"des fichiers spéciaux tels que le code source Python (fichiers ``.py``), le " +"bytecode Python (fichiers ``.pyc``) et les bibliothèques partagées (par " +"exemple les fichiers ``.so``). Quand le module :mod:`zipimport` de la " +"bibliothèque standard le permet, les \"chercheurs d'entrée dans path\" par " +"défaut savent aussi gérer tous ces types de fichiers (autres que les " +"bibliothèques partagées) encapsulés dans des fichiers zip." #: ../Doc/reference/import.rst:703 msgid "" @@ -1199,6 +1350,9 @@ msgid "" "to URLs, database queries, or any other location that can be specified as a " "string." msgstr "" +"Les chemins ne sont pas limités au système de fichiers. Ils peuvent faire " +"référence à des URL, des requêtes dans des bases de données ou tout autre " +"emplacement qui peut être spécifié dans une chaîne de caractères." #: ../Doc/reference/import.rst:707 msgid "" @@ -1210,6 +1364,15 @@ msgid "" "protocol described below, which was then used to get a loader for the module " "from the web." msgstr "" +"Le chercheur dans path fournit aussi des points d'entrées (ou *hooks*) et " +"des protocoles de manière à pouvoir étendre et personnaliser les types de " +"chemins dans lesquels chercher. Par exemple, si vous voulez pouvoir chercher " +"dans des URL réseau, vous pouvez écrire une fonction \"point d'entrée\" qui " +"implémente la sémantique HTTP pour chercher des modules sur la toile. Ce " +"point d'entrée (qui doit être un *callable*) doit renvoyer un :term:" +"`chercheur d'entrée dans path ` qui gère le protocole " +"décrit plus bas et qui sera utilisé pour obtenir un chargeur de module sur " +"la toile." #: ../Doc/reference/import.rst:715 msgid "" @@ -1221,6 +1384,15 @@ msgid "" "In particular, meta path finders operate at the beginning of the import " "process, as keyed off the :data:`sys.meta_path` traversal." msgstr "" +"Avertissement : cette section et la précédente utilisent toutes les deux le " +"terme *chercheur*, dans un cas :term:`chercheur dans les méta-chemins ` et dans l'autre :term:`chercheur d'entrée dans path `. Ces deux types de chercheurs sont très similaires, gèrent " +"des protocoles similaires et fonctionnent de manière semblable pendant le " +"processus d'importation, mais il est important de garder à l'esprit qu'ils " +"sont subtilement différents. En particulier, les chercheurs dans les méta-" +"chemins opèrent au début du processus d'importation, comme clé de parcours " +"de :data:`sys.meta_path`." #: ../Doc/reference/import.rst:723 msgid "" @@ -1229,10 +1401,14 @@ msgid "" "removed from :data:`sys.meta_path`, none of the path entry finder semantics " "would be invoked." msgstr "" +"Au contraire, les \"chercheurs d'entrée dans path\" sont, dans un sens, un " +"détail d'implémentation du chercheur dans path et, en fait, si le chercheur " +"dans path était enlevé de :data:`sys.meta_path`, aucune des sémantiques des " +"\"chercheurs d'entrée dans path\" ne serait invoquée." #: ../Doc/reference/import.rst:730 msgid "Path entry finders" -msgstr "" +msgstr "Chercheurs d'entrée dans path" #: ../Doc/reference/import.rst:738 msgid "" @@ -1241,6 +1417,12 @@ msgid "" "entry`. Most path entries name locations in the file system, but they need " "not be limited to this." msgstr "" +"Le :term:`chercheur dans path ` (*path based finder* en " +"anglais) est responsable de trouver et charger les modules et les paquets " +"Python dont l'emplacement est spécifié par une chaîne dite :term:`d'entrée " +"dans path `. La plupart de ces entrées désignent des " +"emplacements sur le système de fichiers, mais il n'y a aucune raison de les " +"limiter à ça." #: ../Doc/reference/import.rst:743 msgid "" @@ -1249,6 +1431,12 @@ msgid "" "however it exposes additional hooks that can be used to customize how " "modules are found and loaded from the :term:`import path`." msgstr "" +"En tant que chercheur dans les méta-chemins, un :term:`chercheur dans path " +"` implémente le protocole :meth:`~importlib.abc." +"MetaPathFinder.find_spec` décrit précédemment. Cependant, il autorise des " +"points d'entrée (*hooks* en anglais) supplémentaires qui peuvent être " +"utilisés pour personnaliser la façon dont les modules sont trouvés et " +"chargés depuis le :term:`chemin des imports `." #: ../Doc/reference/import.rst:748 msgid "" @@ -1257,6 +1445,11 @@ msgid "" "``__path__`` attributes on package objects are also used. These provide " "additional ways that the import machinery can be customized." msgstr "" +"Trois variables sont utilisées par le :term:`chercheur dans path ` : :data:`sys.path`, :data:`sys.path_hooks` et :data:`sys." +"path_importer_cache`. L'attribut ``__path__`` des objets paquets est aussi " +"utilisé. Il permet de personnaliser encore davantage le mécanisme " +"d'importation." #: ../Doc/reference/import.rst:753 msgid "" @@ -1270,6 +1463,17 @@ msgid "" "path`; all other data types are ignored. The encoding of bytes entries is " "determined by the individual :term:`path entry finders `." msgstr "" +":data:`sys.path` contient une liste de chaînes de caractères indiquant des " +"emplacements où chercher des modules ou des paquets. Elle est initialisée à " +"partir de la variable d'environnement :data:`PYTHONPATH` et de plusieurs " +"autres valeurs par défaut qui dépendent de l'installation et de " +"l'implémentation. Les entrées de :data:`sys.path` désignent des répertoires " +"du système de fichiers, des fichiers zip et possiblement d'autres \"endroits" +"\" (lisez le module :mod:`site`) tels que des URL ou des requêtes dans des " +"bases de données où Python doit rechercher des modules. :data:`sys.path` ne " +"doit contenir que des chaînes de caractères ou d'octets ; tous les autres " +"types sont ignorés. L'encodage des entrées de chaînes d'octets est déterminé " +"par chaque :term:`chercheur d'entrée dans path `." #: ../Doc/reference/import.rst:764 msgid "" @@ -1282,6 +1486,16 @@ msgid "" "within that package. If the ``path`` argument is ``None``, this indicates a " "top level import and :data:`sys.path` is used." msgstr "" +"Le :term:`chercheur dans path ` est un :term:`chercheur " +"dans les méta-chemins `, donc le mécanisme d'importation " +"commence la recherche dans le :term:`chemin des imports ` par " +"un appel à la méthode :meth:`~importlib.machinery.PathFinder.find_spec` du " +"chercheur dans path, comme décrit précédemment. Quand l'argument ``path`` " +"de :meth:`~importlib.machinery.PathFinder.find_spec` est donné, c'est une " +"liste de chemins à parcourir - typiquement un attribut ``__path__`` pour une " +"importation à l'intérieur d'un paquet. Si l'argument ``path`` est ``None``, " +"cela indique une importation de niveau le plus haut et :data:`sys.path` est " +"utilisée." #: ../Doc/reference/import.rst:773 msgid "" @@ -1298,6 +1512,20 @@ msgid "" "cache entries from :data:`sys.path_importer_cache` forcing the path based " "finder to perform the path entry search again [#fnpic]_." msgstr "" +"Le chercheur dans path itère sur chaque entrée dans le \"path\" et, pour " +"chacune, regarde s'il trouve un :term:`chercheur d'entrée dans path ` (:class:`~importlib.abc.PathEntryFinder`) approprié à cette " +"entrée. Comme cette opération est coûteuse (elle peut faire appel à " +"plusieurs `stat()` pour cela), le chercheur dans path maintient un cache de " +"correspondance entre les entrées et les \"chercheurs d'entrée dans path\". " +"Ce cache est géré par :data:`sys.path_importer_cache` (en dépit de son nom, " +"ce cache stocke les objets chercheurs plutôt que les simples objets :term:" +"`importateurs `). Ainsi, la recherche coûteuse pour une :term:" +"`entrée de path ` spécifique n'a besoin d'être effectuée qu'une " +"seule fois par le :term:`chercheur d'entrée dans path `. " +"Le code de l'utilisateur peut très bien supprimer les entrées du cache :data:" +"`sys.path_importer_cache`, forçant ainsi le chercheur dans path à effectuer " +"une nouvelle fois la recherche sur chaque entrée [#fnpic]_." #: ../Doc/reference/import.rst:786 msgid "" @@ -1314,6 +1542,21 @@ msgid "" "file system encoding, UTF-8, or something else), and if the hook cannot " "decode the argument, it should raise :exc:`ImportError`." msgstr "" +"Si une entrée n'est pas présente dans le cache, le chercheur dans path itère " +"sur chaque *callable* de :data:`sys.path_hooks`. Chaque :term:`point " +"d'entrée sur une entrée de path ` de cette liste est appelé " +"avec un unique argument, l'entrée dans laquelle chercher. L'appelable peut " +"soit renvoyer un :term:`chercheur d'entrée dans path ` " +"apte à prendre en charge l'entrée ou lever une :exc:`ImportError`. Une :exc:" +"`ImportError` est utilisée par le chercheur dans path pour signaler que le " +"point d'entrée n'a pas trouvé de :term:`chercheur d'entrée dans path ` pour cette :term:`entrée `. L'exception est " +"ignorée et l'itération sur le :term:`chemin des imports ` se " +"poursuit. Le point d'entrée doit attendre qu'on lui passe soit une chaîne de " +"caractères soit une chaîne d'octets ; l'encodage des chaînes d'octets est à " +"la main du point d'entrée (par exemple, ce peut être l'encodage du système " +"de fichiers, de l'UTF-8 ou autre chose) et, si le point d'entrée n'arrive " +"pas à décoder l'argument, il doit lever une :exc:`ImportError`." #: ../Doc/reference/import.rst:800 msgid "" @@ -1324,6 +1567,13 @@ msgid "" "entry) and return ``None``, indicating that this :term:`meta path finder` " "could not find the module." msgstr "" +"Si l'itération sur :data:`sys.path_hooks` se termine sans qu'aucun :term:" +"`chercheur d'entrée dans path ` ne soit renvoyé, alors la " +"méthode :meth:`~importlib.machinery.PathFinder.find_spec` du chercheur dans " +"path stocke ``None`` dans le :data:`sys.path_importer_cache` (pour indiquer " +"qu'il n'y a pas de chercheur pour cette entrée) et renvoie ``None``, " +"indiquant que ce :term:`chercheur dans les méta-chemins ` " +"n'a pas trouvé le module." #: ../Doc/reference/import.rst:807 msgid "" @@ -1332,6 +1582,11 @@ msgid "" "used to ask the finder for a module spec, which is then used when loading " "the module." msgstr "" +"Si un :term:`chercheur d'entrée dans path ` *est* renvoyé " +"par un des :term:`points d'entrée ` de :data:`sys." +"path_hooks`, alors le protocole suivant est utilisé pour demander un " +"spécificateur de module au chercheur, spécificateur qui sera utilisé pour " +"charger le module." #: ../Doc/reference/import.rst:812 msgid "" @@ -1344,10 +1599,19 @@ msgid "" "machinery.PathFinder.find_spec` will be the actual current working directory " "and not the empty string." msgstr "" +"Le répertoire de travail courant -- noté sous la forme d'une chaîne de " +"caractères vide -- est géré d'une manière légèrement différente des autres " +"entrées de :data:`sys.path`. D'abord, si le répertoire de travail courant " +"s'avère ne pas exister, aucune valeur n'est stockée dans :data:`sys." +"path_importer_cache`. Ensuite, la valeur pour le répertoire de travail " +"courant est vérifiée à chaque recherche de module. Enfin, le chemin utilisé " +"pour :data:`sys.path_importer_cache` et renvoyée par :meth:`importlib." +"machinery.PathFinder.find_spec` est le nom réel du répertoire de travail " +"courant et non pas la chaîne vide." #: ../Doc/reference/import.rst:822 msgid "Path entry finder protocol" -msgstr "Protocole de recherche des chemins de modules" +msgstr "Protocole des chercheurs d'entrée dans path" #: ../Doc/reference/import.rst:824 msgid "" @@ -1355,6 +1619,10 @@ msgid "" "contribute portions to namespace packages, path entry finders must implement " "the :meth:`~importlib.abc.PathEntryFinder.find_spec` method." msgstr "" +"Afin de gérer les importations de modules, l'initialisation des paquets et " +"d'être capables de contribuer aux portions des paquets-espaces de noms, les " +"chercheurs d'entrée dans path doivent implémenter la méthode :meth:" +"`~importlib.abc.PathEntryFinder.find_spec`." #: ../Doc/reference/import.rst:828 msgid "" @@ -1363,6 +1631,11 @@ msgid "" "module. ``find_spec()`` returns a fully populated spec for the module. This " "spec will always have \"loader\" set (with one exception)." msgstr "" +"La méthode :meth:`~importlib.abc.PathEntryFinder.find_spec` prend deux " +"arguments, le nom complètement qualifié du module en cours d'importation et " +"(optionnellement) le module cible. ``find_spec()`` renvoie un spécificateur " +"de module pleinement peuplé. Ce spécificateur doit avoir son chargeur " +"(attribut \"loader\" ) défini, à une exception près." #: ../Doc/reference/import.rst:833 msgid "" @@ -1370,6 +1643,10 @@ msgid "" "term:`portion`. the path entry finder sets \"loader\" on the spec to " "``None`` and \"submodule_search_locations\" to a list containing the portion." msgstr "" +"Pour indiquer au mécanisme d'importation que le spécificateur représente " +"une :term:`portion ` d'un espace de noms, le chercheur d'entrée " +"dans path définit le chargeur du spécificateur à ``None`` et l'attribut " +"\"submodule_search_locations\" à une liste contenant la portion." #: ../Doc/reference/import.rst:838 msgid "" @@ -1378,6 +1655,10 @@ msgid "" "find_module`, both of which are now deprecated, but will be used if " "``find_spec()`` is not defined." msgstr "" +"La méthode :meth:`~importlib.abc.PathEntryFinder.find_spec` remplace :meth:" +"`~importlib.abc.PathEntryFinder.find_loader` et :meth:`~importlib.abc." +"PathEntryFinder.find_module`, ces deux méthodes étant dorénavant obsolètes " +"mais restant utilisées si ``find_spec()`` n'est pas définie." #: ../Doc/reference/import.rst:844 msgid "" @@ -1386,6 +1667,11 @@ msgid "" "backward compatibility. However, if ``find_spec()`` is implemented on the " "path entry finder, the legacy methods are ignored." msgstr "" +"Les vieux chercheurs d'entrée dans path peuvent implémenter une des deux " +"méthodes obsolètes à la place de ``find_spec()``. Ces méthodes sont " +"toujours prises en compte dans le cadre de la compatibilité descendante. " +"Cependant, si ``find_spec()`` est implémentée par le chercheur d'entrée dans " +"path, les méthodes historiques sont ignorées." #: ../Doc/reference/import.rst:849 msgid "" @@ -1401,6 +1687,18 @@ msgid "" "the loader, the second item of the 2-tuple return value must be a sequence, " "although it can be empty." msgstr "" +"La méthode :meth:`~importlib.abc.PathEntryFinder.find_loader` prend un " +"argument, le nom complètement qualifié du module en cours d'importation. " +"``find_loader()`` renvoie un couple dont le premier élément est le chargeur " +"et le second est une :term:`portion ` d'espace de noms. Quand le " +"premier élément (c'est-à-dire le chargeur) est ``None``, cela signifie que, " +"bien que le chercheur d'entrée dans path n'a pas de chargeur pour le module " +"considéré, il sait que cette entrée contribue à une portion d'espace de noms " +"pour le module considéré. C'est presque toujours le cas quand vous demandez " +"à Python d'importer un paquet-espace de noms qui n'est pas présent " +"physiquement sur le système de fichiers. Quand un chercheur d'entrée dans " +"path renvoie ``None`` pour le chargeur, la valeur du second élément du " +"couple renvoyé doit être une séquence, éventuellement vide." #: ../Doc/reference/import.rst:861 msgid "" @@ -1408,6 +1706,9 @@ msgid "" "ignored and the loader is returned from the path based finder, terminating " "the search through the path entries." msgstr "" +"Si ``find_loader()`` renvoie une valeur de chargeur qui n'est pas ``None``, " +"la portion est ignorée et le chargeur est renvoyé par le chercheur dans " +"path, mettant un terme à la recherche dans les chemins." #: ../Doc/reference/import.rst:865 msgid "" @@ -1418,6 +1719,13 @@ msgid "" "(they are expected to record the appropriate path information from the " "initial call to the path hook)." msgstr "" +"À fin de compatibilité descendante avec d'autres implémentations du " +"protocole d'importation, beaucoup de chercheurs d'entrée dans path gèrent " +"aussi la méthode traditionnelle ``find_module()`` que l'on trouve dans les " +"chercheurs dans les méta-chemins. Cependant, les méthodes ``find_module()`` " +"des chercheurs d'entrée dans path ne sont jamais appelées avec un argument " +"``path`` (il est convenu qu'elles enregistrent les informations relatives au " +"chemin approprié au moment de leur appel initial au point d'entrée)." #: ../Doc/reference/import.rst:872 msgid "" @@ -1427,10 +1735,16 @@ msgid "" "entry finder, the import system will always call ``find_loader()`` in " "preference to ``find_module()``." msgstr "" +"La méthode ``find_module()`` des chercheurs d'entrée dans path est obsolète " +"car elle n'autorise pas le chercheur d'entrée dans path à contribuer aux " +"portions d'espaces de noms des paquets-espaces de noms. Si à la fois " +"``find_loader()`` et ``find_module()`` sont définies pour un chercheur " +"d'entrée dans path, le système d'importation utilise toujours " +"``find_loader()`` plutôt que ``find_module()``." #: ../Doc/reference/import.rst:880 msgid "Replacing the standard import system" -msgstr "" +msgstr "Remplacement du système d'importation standard" #: ../Doc/reference/import.rst:882 msgid "" @@ -1438,6 +1752,9 @@ msgid "" "delete the default contents of :data:`sys.meta_path`, replacing them " "entirely with a custom meta path hook." msgstr "" +"La manière la plus fiable de remplacer tout le système d'importation est de " +"supprimer le contenu par défaut de :data:`sys.meta_path` et de le remplacer " +"complètement par un chercheur dans les méta-chemins sur mesure." #: ../Doc/reference/import.rst:886 msgid "" @@ -1447,6 +1764,11 @@ msgid "" "also be employed at the module level to only alter the behaviour of import " "statements within that module." msgstr "" +"S'il convient juste de modifier le comportement de l'instruction import sans " +"affecter les autres API qui utilisent le système d'importation, alors " +"remplacer la fonction native :func:`__import__` peut être suffisant. Cette " +"technique peut aussi être employée au niveau d'un module pour n'altérer le " +"comportement des importations qu'à l'intérieur de ce module." #: ../Doc/reference/import.rst:892 msgid "" @@ -1457,10 +1779,17 @@ msgid "" "latter indicates that the meta path search should continue, while raising an " "exception terminates it immediately." msgstr "" +"Pour empêcher sélectivement l'importation de certains modules par un point " +"d'entrée placé en tête dans le méta-chemin (plutôt que de désactiver " +"complètement le système d'importation), il suffit de lever une :exc:" +"`ModuleNotFoundError` directement depuis :meth:`~importlib.abc." +"MetaPathFinder.find_spec` au lieu de renvoyer ``None``. En effet, ``None`` " +"indique que la recherche dans le méta-chemin peut continuer alors que la " +"levée de l'exception termine immédiatement la recherche." #: ../Doc/reference/import.rst:901 msgid "Special considerations for __main__" -msgstr "" +msgstr "Cas particulier de __main__" #: ../Doc/reference/import.rst:903 msgid "" @@ -1472,16 +1801,25 @@ msgid "" "initialized depends on the flags and other options with which the " "interpreter is invoked." msgstr "" +"Le module :mod:`__main__` est un cas particulier pour le système " +"d'importation de Python. Comme indiqué par :ref:`ailleurs `, le " +"module ``__main__`` est initialisé directement au démarrage de " +"l'interpréteur, un peu comme :mod:`sys` et :mod:`builtins`. Cependant, au " +"contraire des deux cités précédemment, ce n'est pas vraiment un module " +"natif. Effectivement, la manière dont est initialisé ``__main__`` dépend des " +"drapeaux et options avec lesquels l'interpréteur est lancé." #: ../Doc/reference/import.rst:914 msgid "__main__.__spec__" -msgstr "" +msgstr "__main__.__spec__" #: ../Doc/reference/import.rst:916 msgid "" "Depending on how :mod:`__main__` is initialized, ``__main__.__spec__`` gets " "set appropriately or to ``None``." msgstr "" +"En fonction de la manière dont :mod:`__main__` est initialisé, ``__main__." +"__spec__`` est défini de manière conforme ou mis à ``None``." #: ../Doc/reference/import.rst:919 msgid "" @@ -1490,6 +1828,11 @@ msgid "" "populated when the ``__main__`` module is loaded as part of executing a " "directory, zipfile or other :data:`sys.path` entry." msgstr "" +"Quand Python est démarré avec l'option :option:`-m`, ``__spec__`` est défini " +"à la valeur du spécificateur du module ou paquet correspondant. Python " +"peuple aussi ``__spec__`` quand le module ``__main__`` est chargé en tant " +"que partie de l'exécution d'un répertoire, d'un fichier zip ou d'une entrée " +"de :data:`sys.path`." #: ../Doc/reference/import.rst:924 msgid "" @@ -1497,22 +1840,25 @@ msgid "" "__spec__`` is set to ``None``, as the code used to populate the :mod:" "`__main__` does not correspond directly with an importable module:" msgstr "" +"Dans :ref:`les autres cas `, ``__main__." +"__spec__`` est mis à ``None``, car le code qui peuple :mod:`__main__` ne " +"trouve pas de correspondance directe avec un module que l'on importe :" #: ../Doc/reference/import.rst:928 msgid "interactive prompt" -msgstr "" +msgstr "invite de commande interactive" #: ../Doc/reference/import.rst:929 msgid "-c switch" -msgstr "" +msgstr "option -c de la ligne de commande" #: ../Doc/reference/import.rst:930 msgid "running from stdin" -msgstr "" +msgstr "lecture depuis l'entrée standard" #: ../Doc/reference/import.rst:931 msgid "running directly from a source or bytecode file" -msgstr "" +msgstr "lecture depuis un fichier de code source ou de bytecode" #: ../Doc/reference/import.rst:933 msgid "" @@ -1521,6 +1867,10 @@ msgid "" "the :option:`-m` switch if valid module metadata is desired in :mod:" "`__main__`." msgstr "" +"Notez que ``__main__.__spec__`` vaut toujours ``None`` dans le dernier cas, " +"*même si* le fichier pourrait techniquement être importé directement en tant " +"que module. Utilisez l'option :option:`-m` si vous souhaitez disposer de " +"métadonnées valides du module dans :mod:`__main__`." #: ../Doc/reference/import.rst:938 msgid "" @@ -1530,6 +1880,12 @@ msgid "" "__name__ == \"__main__\":`` checks only execute when the module is used to " "populate the ``__main__`` namespace, and not during normal import." msgstr "" +"Notez aussi que même quand ``__main__`` correspond à un module importable et " +"que ``__main__.__spec__`` est défini en conséquence, ils seront toujours " +"considérés comme des modules *distincts*. Cela est dû au fait que le bloc " +"encadré par ``if __name__ == \"__main__\":`` ne s'exécute que quand le " +"module est utilisé pour peupler l'espace de noms de ``__main__``, et pas " +"durant une importation normale." #: ../Doc/reference/import.rst:946 msgid "Open issues" @@ -1537,7 +1893,7 @@ msgstr "" #: ../Doc/reference/import.rst:948 msgid "XXX It would be really nice to have a diagram." -msgstr "" +msgstr "XXX Ce serait vraiment bien de disposer d'un diagramme." #: ../Doc/reference/import.rst:950 msgid "" @@ -1575,10 +1931,10 @@ 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 `_ originale est toujours disponible, bien que quelques détails ont changé " -"depuis l'écriture de ce document." +"Le mécanisme d'importation a considérablement évolué depuis les débuts de " +"Python. La `spécification des paquets `_ originale est toujours disponible, bien que quelques détails " +"ont changé depuis l'écriture de ce document." #: ../Doc/reference/import.rst:972 msgid "" @@ -1604,8 +1960,8 @@ 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." +"La :pep:`366` décrit l'ajout de l'attribut ``__package__`` pour les " +"importations relatives explicites dans les modules principaux." #: ../Doc/reference/import.rst:982 msgid "" @@ -1613,9 +1969,9 @@ 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__``." +"La :pep:`328` a introduit les importations absolues et les importations " +"relatives 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." @@ -1629,11 +1985,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." +":pep:`451` ajoute l'encapsulation dans les objets spécificateurs de l'état " +"des importations, 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'importation et " +"d'ajouter de nouvelles méthodes aux chercheurs et chargeurs." #: ../Doc/reference/import.rst:995 msgid "Footnotes" @@ -1665,7 +2021,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:" +"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."