diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst index 695cd05cc3..fa8fc16a5a 100644 --- a/CONTRIBUTING.rst +++ b/CONTRIBUTING.rst @@ -1,134 +1,214 @@ -Guide de contribution à la documention via GitHub. -=================================================== +Guide de contribution à la documention via GitHub +================================================= + +Instructions +------------ Prérequis ---------- +~~~~~~~~~ -- Un compte `Github `_. -- Un client ``git`` `Linux `_ ou `Windows `_. -- Un éditeur de fichier ``.po`` (comme `poedit `_). +- un compte `Github `_ ; +- un client ``git`` `Linux `_ ou `Windows `_ ; +- un éditeur de fichier ``.po`` (comme `Poedit `_). -Instructions : --------------- +Équipez-vous aussi de quelques outils pour vous aider dans +votre traduction (voir `Outils utiles pour la traduction`_). + + +*fork* personnel +~~~~~~~~~~~~~~~~ Pour commencer vous aurez besoin de *forker* le dépôt des sources `python-docs-fr `_ en cliquant sur son bouton -``Fork``. Ceci crée une copie du projet sur votre compte Github : un endroit +``Fork``. Ceci crée une copie du projet sur votre compte Github, c'est un endroit où vous avez le droit de faire des modifications. Étape par étape : .. code-block:: bash - # Clonez votre fork Github avec `git` en utilisant ssh : - git clone git@github.com/VOTRE_NOM_DE_COMPTE_GITHUB/python-docs-fr.git + # Clonez votre fork Github avec `git` en utilisant ssh + git clone git@github.com:VOTRE_NOM_DE_COMPTE_GITHUB/python-docs-fr.git - # *OU* HTTPS : + # ou bien via HTTPS git clone https://github.com/VOTRE_NOM_DE_COMPTE_GITHUB/python-docs-fr.git - # Allez dans le répertoire cloné : + # Allez dans le répertoire cloné cd python-docs-fr/ - # Ajoutez le dépôt officiel (nommé upstream) - # Ceci permet à *git* de savoir quoi/où est *upstream* + # Ajoutez le dépôt officiel (nommé upstream), + # ceci permet à *git* de savoir quoi et où est *upstream* git remote add upstream https://github.com/python/python-docs-fr.git + +Réservation d'un fichier +~~~~~~~~~~~~~~~~~~~~~~~~ + Ensuite, vous devez trouver un fichier sur lequel travailler -(pour vous aiguillez vous pouvez vous rendre à `Que traduire ?`_ et lire -les explications concernant `potodo`_ qui vous permettra de voir ce qui a -déjà été traduit et ce qui ne l'a pas été). +(pour vous aiguiller, lisez la section `Que traduire ?`_). Nous vous conseillons +de choisir, si possible, un fichier traitant d'un sujet que vous maitrisez, cela +vous aidera grandement à produire une traduction de bonne qualité. Une fois que vous avez choisi un fichier sur lequel travailler, veuillez ouvrir un `ticket sur Github `_ en indiquant dans le titre ``Je travaille sur DOSSIER/FICHIER.po`` -(par exemple «Je travaille sur library/csv.po»). +(par exemple « Je travaille sur library/sys.po »). Ceci permet à `potodo`_ de détecter via l'API Github les fichiers ``.po`` réservés dans les tickets et les *pull requests*. -N'hésitez pas non plus à vous équiper de quelques outils pour vous aider dans -votre traduction (voir `Outils utiles pour la traduction`_) - Vous êtes maintenant prêt. Chaque fois que vous commencerez un nouveau fichier, suivez cette procédure : +Pour travailler, nous aurons besoin d'une branche, basée sur une version à jour +(fraîchement récupérée) de la branche upstream/3.8. On met donc à jour notre +version locale. + .. code-block:: bash - # Pour travailler, nous aurons besoin d'une branche, basée sur une version à jour - # (fraîchement récupérée) de la branche upstream/3.8. On met donc à jour notre - # version locale. git fetch upstream - # On créé ensuite une branche. Il est pratique de nommer la branche en fonction du - # fichier sur lequel on travaille. Par exemple, si vous travaillez sur - # « library/sys.po », vous pouvez nommer votre branche « library-sys ». - # Cette nouvelle branche nommée « library-sys » est basée sur « upstream/3.8 ». + +On crée ensuite une branche. Il est pratique de nommer la branche en fonction du +fichier sur lequel on travaille. Par exemple, si vous travaillez sur +« library/sys.po », vous pouvez nommer votre branche « library-sys ». +Cette nouvelle branche nommée « library-sys » est basée sur « upstream/3.8 ». + +.. code-block:: bash + git checkout -b library-sys upstream/3.8 - # Vous pouvez maintenant travailler sur le fichier (typiquement, en utilisant poedit). - # N'oubliez pas de configurer votre nom et votre email dans Poedit. - # (Édition -> Préférences -> Général) - # Vérifiez aussi qu'il est configuré pour passer à la ligne à 79 caractères. - # (Édition -> Préférences -> Avancé -> Passer à la ligne à : 79) - # - # Ici, remplacez « library/sys.po » par le fichier que vous avez choisi précédemment. - # poedit library/sys.po ou lancez simplement poedit puis « Fichier » → « Ouvrir » - - # Si vous n'utilisez pas poedit, vous pouvez utiliser `powrap` (voir la section *outils*) - # qui va reformater correctement le fichier que avez vous avez modifié. - # Exécutez `powrap -m` (reformater tous les fichiers modifiés) - # ou `powrap library/sys.po` (un fichier en particulier) : - powrap -m - - # Pour l'orthographe, une liste blanche de certains termes techniques ou - # de noms propres, comme « Guido », « C99 » ou « sérialisable », est - # stockée dans le fichier « dict » à la racine du projet. Vous pouvez - # bien sûr y ajouter une entrée si nécessaire. - # La commande suivante va lancer les vérifications nécessaires. + +Vous pouvez maintenant travailler sur le fichier. +Si vous utilisez Poedit, n'oubliez pas de configurer votre nom et votre adresse de courriel +(Édition → Préférences → Général). +Vérifiez aussi qu'il est configuré pour passer à la ligne à 79 caractères +(Édition → Préférences → Avancé → Passer à la ligne à 79). + +Ici, remplacez « library/sys.po » par le fichier que vous avez choisi précédemment. + +.. code-block:: bash + + poedit library/sys.po + + +Ou lancez simplement Poedit puis « Fichier » → « Ouvrir ». + + +Traduction +~~~~~~~~~~ + +Vous pouvez dès à présent commencer à traduire le fichier en respectant les `conventions`_ du projet. +Pour vous aider à ne pas faire de fautes d'orthographe, vous pouvez vérifier que tous les mots utilisés sont +bien dans le dictionnaire (ça ne vérifie pas la grammaire, pour cela utilisez `padpo (beta)`_). En cas +de doute, un `glossaire`_ répertorie déjà les traductions retenues pour certains termes techniques ou faux amis +en anglais. + +.. code-block:: bash + + make spell + +Vous pouvez aussi réindenter les fichiers avec : + +.. code-block:: bash + + make wrap + +Et pour faire les deux à la fois, lancez : + +.. code-block:: bash + make verifs - # C'est le moment de git add et git commit - # git add va permettre de déplacer nos modifications dans l'index de Git en - # attendant d'être déplacée dans le dépôt local. +Une fois la traduction finie, il faut compiler la documentation, c'est-à-dire générer les fichiers HTML +affichés par le site, pour les relire. Si la commande précédente s'est exécutée sans erreur, la +compilation ne devrait pas échouer. + +.. code-block:: bash + + make + +Vérifiez alors le rendu de la traduction « en vrai ». Lancez un serveur de +documentation local : + +.. code-block:: bash + + make serve + +La documentation est publiée l'adresse ``_ +(ou tout autre port indiqué par la sortie de la commande précédente). Vous pouvez +recommencer les étapes de cette section autant de fois que nécessaire. + +Poedit donne beaucoup d'avertissements, par exemple pour vous informer que +« la traduction devrait commencer par une majuscule » car c'est le cas pour +la source. Ces avertissements ne sont pas tous fondés. En cas de doute, +*affichez et relisez la page HTML produite* avec ``make serve``. + +*pull request* +~~~~~~~~~~~~~~ + +Une fois que le *make verifs* ne lève pas d'erreur et que vous êtes certains de bien respecter les +`Conventions`_ de traduction, vient le moment d'envoyer votre travail sur le dépôt local. + +``git add`` place nos modifications dans l'index de Git en +attendant d'être propagées dans le dépôt local. + +.. code-block:: bash + git add library/sys.po - # Puis on bascule les modifications dans le dépôt local avec un commit. + +``git commit`` permet de les propager : + +.. code-block:: bash + git commit -m "Traduction de library/sys.po" # Ou un autre message plus inspiré :) - # Poussez ensuite vos modifications sur votre fork Github. - # Le -u n'est utile qu'une fois pour que votre client git se souvienne que cette - # branche est liée à votre fork Github (et donc que vos futurs `git pull` et - # `git push` sachent quoi tirer) +Poussez ensuite vos modifications sur votre *fork* Github avec ``git push``. +Le ``-u`` n'est utile qu'une fois pour que votre client git se souvienne que cette +branche est liée à votre *fork* Github (et donc que vos futurs ``git pull`` et +``git push`` sachent quoi tirer). + +.. code-block:: bash + git push -u origin - # La commande précédente vous affichera un lien pour ouvrir une pull request sur - # Github. Si vous l'avez manqué, allez simplement sur https://github.com/python/python-docs-fr/pulls - # et un joli bouton « Compare & pull request » devrait apparaître au bout de - # quelques secondes vous indiquant que vous pouvez demander une pull request. - - # À partir de là, quelqu'un passera en revue vos modifications, et vous fera des - # suggestions/corrections. Pour les prendre en compte, retournez sur votre branche - # contenant du fichier concerné (au cas où vous auriez commencé quelque chose d'autre - # sur une autre branche) : - git checkout library/sys - git pull # pour rapatrier les modifications que vous auriez accepté +La commande précédente vous affiche un lien pour ouvrir une pull request sur +Github. Si vous l'avez manqué, allez simplement sur https://github.com/python/python-docs-fr/pulls +et un joli bouton « Compare & pull request » devrait apparaître au bout de +quelques secondes vous indiquant que vous pouvez demander une pull request. + +Mettez dans le commentaire de la *pull request* le texte suivant : +« Closes #XXXX » où XXXX est le numéro du ticket GitHub créé pour réserver le fichier traduit. +Cela permet à Github de lier la *pull request* au ticket de réservation. + +À partir de là, quelqu'un passera en revue vos modifications, et vous fera des +suggestions et corrections. Pour les prendre en compte, retournez sur votre branche +contenant le fichier concerné (au cas où vous auriez commencé quelque chose d'autre +sur une autre branche) : + +.. code-block:: bash + + git checkout library-sys + git pull # pour rapatrier les modifications que vous auriez acceptées # sur l'interface web. # Réglez les problèmes, puis commitez à nouveau : git commit -a -m "prise en compte des remarques" git push + Vous avez peut-être remarqué que cela ressemble à un triangle, avec un segment manquant : -- Vous récupérez depuis *upstream* (le dépôt commun public sur Github) -- Vous poussez sur *origin* (votre clone sur Github) +- vous récupérez depuis *upstream* (le dépôt commun public sur Github) ; +- vous poussez sur *origin* (votre clone sur Github). C'est le travail de quelqu'un d'autre d'ajouter le dernier segment, de votre *origin* au *upstream* public, pour « boucler la boucle ». C'est le rôle des personnes qui *fusionnent* les *pull requests* après les avoir relues. Vous avez peut-être aussi remarqué que vous n'avez jamais commité sur une -branche de version (``3.7``, ``3.8``, etc.), seulement récupéré les +branche de version (3.7, 3.8, etc.), seulement récupéré les modifications à partir d'elles. Toutes les traductions sont faites sur la dernière version. @@ -140,57 +220,64 @@ les plus anciennes par l'`équipe de documentation `_. Que traduire ? -~~~~~~~~~~~~~~ +-------------- -Vous pouvez utiliser `potodo`_, un outil fait pour trouver des fichiers ``po`` -à traduire. Une fois installé, utilisez la commande ``potodo`` dans votre clone +Vous pouvez utiliser `potodo`_, un outil fait pour trouver des fichiers *po* +à traduire. Une fois installé, utilisez la commande ``make todo`` dans votre clone local. Vous pouvez choisir n'importe quel fichier non réservé dans la liste -renvoyée par la commande. Cependant, nous vous recommandons de ne **pas** -commencer avec un fichier de ``c-api`` car c'est une partie très technique. -Les anciennes versions de Python sont pour la plupart obsolètes et leurs -journaux de modifications (dans le dossier ``whatsnew``) ne sont pas les pages -les plus consultées. Il y a des fichiers plus prioritaires à traduire. +renvoyée par la commande **à l'exception** des fichiers de : + +- *c-api/* car c'est une partie très technique ; +- *whatsnew/* car les anciennes versions de Python sont pour la plupart obsolètes et leurs journaux de modifications ne sont pas les pages les plus consultées ; +- *distutils/* et *install/* car ces pages seront bientôt obsolètes. Vous pouvez commencer par des tâches faciles comme réviser les entrées -*fuzzy* pour aider à garder la documentation à jour (trouvez les entrées -*fuzzy* l'aide de `make fuzzy`). +*fuzzy* pour aider à garder la documentation à jour (trouvez-les à l'aide +de ``make fuzzy``). Une entrée *fuzzy* correspond à une entrée déjà traduite +mais dont la source en anglais a été remodifiée depuis (correction orthographique, +changement d'un terme, ajout ou suppression d'une phrase…). Elles sont +généralement plus « faciles » à traduire. Vous pouvez également relire des entrées déjà traduites pour vous faire une -idée, et passer ensuite à la traduction de celles qui ne sont pas traduites. -Vous pouvez les trouver à l'aide de `make todo`... +idée, et passer ensuite à la traduction de celles qui ne le sont pas encore. -Vous pouvez aussi « traduire » des liens hypertextes -(par exemple s'il s'agit d'un lien vers un article de Wikipédia qui possède une -traduction). -Modifiez le lien et sa description dans ce cas. -Si aucune traduction de la cible n'existe, ne traduisez pas le titre. -Dans les fichiers, ne traduisez pas le contenu des balises telles que -``:ref :...`` et ``:term :...``. +Conventions +----------- + +Certaines conventions ont été édictées pour homogénéiser la traduction. +Il faut suivre les règles de `style`_ imposées, les `règles rst`_ et +les traductions déjà définies dans le `glossaire`_. + -Si vous devez utiliser des mots anglais, mettez les en *italique* -(entourés par des astérisques). +Style +~~~~~ -Pour les caractères spéciaux, référez vous à la section -`Les caractères spéciaux`_ +Une bonne traduction est une traduction qui transcrit fidèlement l'idée originelle +en français, sans rien ajouter ni enlever au fond, tout en restant claire, concise et +agréable à lire. Les traductions mot-à-mot sont à proscrire et il est permis — même +conseillé — d'intervertir des propositions ou de réarranger des phrases de la +documentation anglaise, si le rythme l'exige. Il faut aussi chercher des +équivalents français aux termes techniques et aux idiotismes rencontrés, et prendre +garde aux anglicismes. Utilisation du futur -~~~~~~~~~~~~~~~~~~~~ +++++++++++++++++++++ Dans la description du comportement de Python (au sens large, c'est-à-dire l'interpréteur lui-même mais aussi toutes les bibliothèques), la version -originale utilise souvent le futur : « if you do this, il will produce -that … ». En français, l'utilisation du présent convient tout à fait et le +originale utilise souvent le futur : « if you do this, it will produce +that… ». En français, l'utilisation du présent convient tout à fait et le présent est souvent plus facile à lire : « si vous faites ceci, il se -produit cela … ». On ne conserve le futur que si la deuxième proposition +produit cela… ». On ne conserve le futur que si la seconde proposition se situe réellement dans le futur (par exemple, on peut penser qu'un processus de compilation n'est pas immédiat) ou pour des raisons de concordance des temps. -Traduction de *should* -~~~~~~~~~~~~~~~~~~~~~~ +Utilisation du conditionnel ++++++++++++++++++++++++++++ La version originale est très polie envers le lecteur ; elle lui intime rarement des obligations, préférant employer « you should ». Cependant, en @@ -198,12 +285,200 @@ français, il est d'usage d'être plus direct pour être correctement compris : « vous devez ». *Vous devriez* est en effet généralement compris comme quelque chose dont l'on peut de temps en temps se passer, alors que c'est très rarement le cas pour les « you should » de cette documentation. +De la même manière, « can » est souvent mieux traduit sans introduire de notion +de possibilité, en particulier quand la phrase est à la voix passive ; la +phrase « these objects can be accessed by… » se traduit mieux par « on accède à +ces objets en… ». + +Utilisation du masculin ++++++++++++++++++++++++ + +Dans un souci de lisibilité et en accord avec la préconisation de +l'Académie française, nous utilisons le masculin pour indiquer un +genre neutre. Par exemple : l'utilisateur ou le lecteur. + +Règles rst +~~~~~~~~~~ + +Prototypes et exemples +++++++++++++++++++++++ + +Il ne faut pas traduire le nom des éléments de la bibliothèque standard (noms +de fonctions, paramètres de ces fonctions, constantes etc.) mais les laisser +tels quel, entourés d'astérisques dans les blocs de texte. +Si la documentation contient des exemples, vous *pouvez* traduire les noms +utilisés, en prenant garde d'être cohérent. Vous pouvez ainsi traduire : + +.. code-block:: python + + def sample_function(): + result = thread.join(timeout=...) + ... + +en + +.. code-block:: python + + def fonction_exemple(): + resultat = thread.join(timeout=...) + ... + +mais pas en + +.. code-block:: python + + def fonction_exemple(): + resultat = fildexécution.attendre(délai=...) + ... + +Liens hypertextes ++++++++++++++++++ -Les caractères spéciaux -------------------------- +Il faut transformer les liens hypertextes qui redirigent vers une page dont il +existe une version française (c'est notamment très souvent le cas pour les +articles de Wikipédia). Modifiez le lien *et* sa description dans ce cas. +Si aucune traduction de la cible n'existe, ne traduisez pas la description. +Par exemple, ```Conway's Game of Life `_`` +doit devenir ```Jeu de la vie `_``. -La touche de composition : -~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Balises ++++++++ + +Ne traduisez pas le contenu des balises comme ``:ref:...`` ou ``:class:...``. +Vous devez cependant traduire les balises ``:term:...``, qui font référence à +un concept ou une primitive défini dans le `glossaire Python `_. +La syntaxe est ``:term:nom_français``. Par exemple, traduisez +``:term:`dictionary``` en ``:term:`dictionaire ```. + +Comme le glossaire est déjà traduit, il y a forcément une correspondance à chaque +terme que vous pouvez rencontrer. + + +Glossaire +~~~~~~~~~ + +Afin d'assurer la cohérence de la traduction, voici quelques +termes fréquents déjà traduits. Une liste blanche de noms propres, comme « Guido », +« C99 » ou de certains anglicismes comme « sérialisable » ou « implémentation», +est stockée dans le fichier « dict » à la racine du projet. Vous pouvez +y ajouter une entrée si cela est nécessaire. +Si vous devez *absolument* utiliser un mot anglais, mettez-le en italique +(entouré par des astérisques). + +Pour trouver facilement comment un terme est déjà traduit dans la +documentation, vous pouvez utiliser `pogrep`_. + +========================== =============================================== +Terme Traduction +========================== =============================================== +-like -compatible +abstract data type type abstrait +argument argument (à ne pas confondre avec *paramètre*) +backslash antislash, *backslash* +backtrace trace d'appels, trace de pile +backport rétroporter +bound lier +bug bogue +built-in natif +bytecode code intermédiaire +callback fonction de rappel +call stack pile d'appels +caught (exception) interceptée +debugging débogage +deep copy copie récursive (préféré), ou copie profonde +double quote guillemet +deprecated obsolète +e.g. p. ex. (on n'utilise pas l'anglicisme « e.g. », + lui-même issu du latin *exempli gratia*). + On sépare les deux mots par une espace + insécable pour éviter les retours à la ligne + malheureux. +et al. et autres, `à accorder + `_ + suivant le contexte +export exportation +expression expression +framework cadriciel +garbage collector ramasse-miettes +getter accesseur +i.e. c.-à-d. (on n'utilise pas l'anglicisme « i.e. », + lui-même issu du latin *id est*) +identifier identifiant +immutable immuable +import importation +index indice (en particulier quand on parle de chaînes + de caractères) +installer installateur +interpreter interpréteur +library bibliothèque +list comprehension liste en compréhension (liste en intension est + valide, mais nous ne l'utilisons pas) +little-endian, big-endian `petit-boutiste, gros-boutiste + `_ +mixin type type de mélange +mutable muable +namespace espace de nommage + (sauf pour le XML où c'est espace de noms) +parameter paramètre +pickle (v.) sérialiser +prompt invite +raise lever +regular expression expression rationnelle, expression régulière +return renvoie, donne (on évite « retourne » qui + pourrait porter à confusion) +setter mutateur +simple quote guillemet simple +socket connecteur ou interface de connexion +statement instruction +subprocess sous-processus +support prendre en charge, implémenter (« supporter » + n'a pas le même sens en français) +specify définir, préciser (plutôt que « spécifier ») +typically normalement, habituellement, comme d'habitude + (plutôt que « typiquement ») +thread fil d'exécution +traceback trace d'appels, trace de pile +tuple n-uplet +underscore tiret bas, *underscore* +whitespace caractère d'espacement +========================== =============================================== + +Ressources de traduction +------------------------ + +- les canaux IRC sur freenode : + + - `#python-docs-fr `_ — communauté python autour de la documentation française, + - `#python-fr `_ — communauté python francophone, + - `#python-doc `_ — communauté python autour de la documentation anglophone ; +- les listes de diffusion relatives à la documentation (courriel) : + + - `de l'AFPy `_, + - `de cpython `_ ; +- des glossaires et dictionnaires : + + - le `glossaire de la documentation Python `_, car il est déjà traduit, + - les `glossaires et dictionnaires de traduc.org `_, en particulier le `grand dictionnaire terminologique `_ de l'Office québécois de la langue française, + - Wikipédia. En consultant un article sur la version anglaise, puis en basculant sur la version francaise pour voir comment le sujet de l'article est traduit ; +- le `guide stylistique pour le français de localisation des produits Sun + `_ donne + beaucoup de conseils pour éviter une traduction trop mot à mot ; +- `Petites leçons de typographie `_, + résumé succint de typographie, utile pour apprendre le bon usage des + majuscules, des espaces, etc. + +L'utilisation de traducteurs automatiques comme `DeepL https://www.deepl.com/` ou semi-automatiques comme +`reverso https://context.reverso.net/traduction/anglais-francais/` est proscrite. +Les traductions générées sont très souvent à retravailler, ils ignorent les règles énoncées sur cette +page et génèrent une documentation au style très « lourd ». + + +Caractères spéciaux et typographie +---------------------------------- + +La touche de composition +~~~~~~~~~~~~~~~~~~~~~~~~ Cette `touche `_, absente par défault des claviers, permet de saisir des @@ -213,26 +488,26 @@ clavier. C'est à l'utilisateur de définir la touche de composition. Avec une touche de composition, vous pouvez utiliser les compositions suivantes : -- :kbd:`Compose < <` donne « -- :kbd:`Compose > >` donne » +- :kbd:`Compose < <` donne ``«`` +- :kbd:`Compose > >` donne ``»`` - :kbd:`Compose SPACE SPACE` donne une espace insécable - :kbd:`Compose . . .` donne ``…`` -Comme vous l'avez noté, presque toutes les compositions sont faciles -à retenir, vous pouvez donc essayer les autres et elles devraient tout +Comme vous l'avez noté, presque toutes les compositions sont intuitives, +vous pouvez donc en essayer d'autres et elles devraient tout simplement fonctionner : - :kbd:`Compose C =` donne ``€`` - :kbd:`Compose 1 2` donne ``½`` - :kbd:`Compose ' E` donne ``É`` -- … … +- etc. Comment définir la touche de composition ? -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Cela dépend de votre système d'exploitation et de votre clavier. -=> Sous Linux/Unix/\*BSD (tel OpenBSD), vous pouvez la configurer à l'aide de +=> Sous Linux, Unix et \*BSD (tel OpenBSD), vous pouvez la configurer à l'aide de l'outil graphique de configuration de votre clavier ou via ``dpkg-reconfigure keyboard-configuration`` (pour `Ubuntu `_ ou Debian @@ -258,19 +533,19 @@ Ensuite, dans votre fichier '~/.xsession', ajoutez : xmodmap $HOME/.Xmodmap Sous X, avec un bureau graphique, tel que Gnome, ou Xfce, il faut aller -modifier dans les paramètres > clavier > Disposition : puis -'Touche composée'. Pour finir, redémarrez votre session. +modifier dans les « Paramètres » → « Clavier » → « Disposition » → +« Touche composée ». Pour finir, redémarrez votre session. => Sous Windows, vous pouvez utiliser `wincompose `_. -Le cas de « --- », « -- », « ... » : -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Le cas de « --- », « -- », « ... » +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -La version anglaise utilise une chose nommée +La version anglaise utilise les `smartquotes `_, -qui fonctionne en anglais, mais cause des problèmes dans d'autres langues. -Nous l'avons donc désactivée dans la version française. +qui fonctionnent en anglais, mais causent des problèmes dans d'autres langues. +Nous les avons donc désactivées (voir #303) dans la version française. Les *smartquotes* sont normalement responsables de la transformation de ``--`` en *en-dash* (``—``), de ``---`` en *em-dash* (``—``), et de @@ -280,15 +555,15 @@ Les *smartquotes* sont normalement responsables de la transformation de | « -- » ou « --- » : faites :kbd:`Compose - - -` | « ... » : faites :kbd:`Compose . . .` -Le cas de « "…" » : -~~~~~~~~~~~~~~~~~~~ +Le cas de « "…" » +~~~~~~~~~~~~~~~~~ Les guillemets français ``«`` et ``»`` ne sont pas identiques aux guillemets anglais ``"``. Cependant, Python utilise les guillemets anglais comme délimiteurs de chaîne de caractères. Il convient donc de traduire les guillemets mais pas les délimiteurs de chaîne. -=> Si vous voyez : +=> Si vous voyez : | « "…" » : faites :kbd:`Compose < <` ou :kbd:`Compose > >` Le cas de « :: » @@ -305,7 +580,45 @@ En français, nous mettons une espace insécable devant nos deux-points, comme : => Traduisez ``mot deux-points deux-points`` par ``mot espace-insécable deux-points deux-points``. -Pour saisir une espace insécable faites : :kbd:`Compose SPACE SPACE` +Pour saisir une espace insécable faites :kbd:`Compose SPACE SPACE` + +Les doubles-espaces +~~~~~~~~~~~~~~~~~~~ + +La documentation originale comporte beaucoup de doubles-espaces. +Cela se fait en anglais, mais pas en français. De toute manière, +ils passent ensuite à une moulinette et le rendu des espaces est délégué +au HTML et au PDF, qui n'en tiennent pas compte. +Nous avons décidé de ne rien changer pour les doubles-espaces +coté traduction : nous ne les retirons pas et ce n'est pas grave +si des traducteurs en retirent par accident. + +Les énumérations +~~~~~~~~~~~~~~~~ + +Chaque paragraphe d'une énumération introduite par un deux-point +doit se terminer par un point-virgule (bien entendu précédé d'une +espace insécable) quelle que soit sa ponctuation interne. Seul le dernier +paragraphe de l'énumération s'achève par un point ou, si la phrase +continue après l'énumération, une virgule. Si l'un des paragraphes est +lui-même une énumération, chacun des sous-paragraphes se termine par +une virgule et le dernier par un point-virgule. + +Par exemple : + +- le premier paragraphe de l'énumération ; +- le deuxième paragraphe, lui-aussi une énumération : + + - premier sous-paragraphe, + - second sous-paragraphe ; + +- le dernier paragraphe. + +Malheureusement Poedit n'aime pas les différences de ponctuation finales +entre un paragraphe et sa traduction ; il faut passer outre ses avertissements. +Vous pouvez aussi rajouter un commentaire dans le fichier *.po* pour avertir +les traducteurs suivants et éviter qu'ils ne « corrigent » par erreur ces +avertissements. Outils utiles pour la traduction -------------------------------- @@ -316,7 +629,7 @@ Potodo | Permet de d'identifier les parties de la documention qu'il reste à traduire. | Installez-le à l'aide de *pip* (``pip install potodo``) dans un environnement ``python3.6`` ou plus. -| `Lien vers le repository `__ +| `Lien vers le dépôt `__ Pogrep ~~~~~~ @@ -324,136 +637,28 @@ Pogrep | Permet de rechercher dans la documentation des termes. Utile si on a un doute sur comment traduire un terme ou chercher la traduction d'un terme dans d'autres fichiers. -| Installez-le à l'aide de *pip* (``pip install pogrep``) dans un - environnement. -| `Lien vers le repository `__ +| Installez-le à l'aide de *pip* (``pip install pogrep``). +| `Lien vers le dépôt `__ Padpo (beta) -~~~~~~~~~~~~~~~ +~~~~~~~~~~~~ | Analyseur de code qui vérifie la grammaire et l'orthographe et la syntaxe du fichier .po. | Installez-le à l'aide de *pip* (``pip install padpo``) dans un environnement ``python3.7`` ou plus. -| `Lien vers le repository `__ +| `Lien vers le dépôt `__ Powrap ~~~~~~ | Formateur de fichier .po. -| Installez-le à l'aide de *pip* (``pip install powrap``) dans un - environnement. -| `Lien vers le repository `__ +| Installez-le à l'aide de *pip* (``pip install powrap``). +| `Lien vers le dépôt `__ -Ressources de traduction -------------------------- -- les canaux IRC sur freenode : - - `#python-docs-fr `_ - Communauté python autour de la documentation française. - - `#python-fr `_ - Communauté python française. - - `#python-doc `_ - Communauté python autour de la documentation anglaise. -- la `liste traductions AFPy `_ ; -- la `liste de diffusion doc-sig - `_ ; -- les `glossaires et dictionnaires de traduc.org - `_, en particulier le - `grand dictionnaire terminologique `_ - de l'Office québécois de la langue française ; -- le `glossaire Python `_, car - il est déjà traduit ; -- le `guide stylistique pour le français de localisation des produits Sun - `_ donne - beaucoup de conseils pour éviter une traduction trop mot à mot ; -- Wikipédia : En allant sur l'article d'un sujet sur la version anglaise - de Wikipédia, puis en basculant sur la version francaise pour voir - comment le sujet est traduit. -- `Petites leçons de typographie `_, - résumé succint de typographie, utile pour apprendre le bon usage des - majuscules, des espaces, etc. - -Glossaire ---------- - -Afin d'assurer la cohérence de nos traductions, voici quelques propositions et -rappels pour les termes fréquents à traduire, n'hésitez pas à ouvrir un ticket -si vous n'êtes pas d'accord. - -Dans un souci de lisibilité et en accord avec la préconisation de l'Académie -française, nous utilisons le masculin pour indiquer un genre neutre. Par -exemple : l'utilisateur ou le lecteur. - -Pour trouver facilement comment un terme est déjà traduit dans notre -documentation, vous pouvez utiliser `pogrep`_. - -========================== =============================================== -Terme Traduction proposée -========================== =============================================== --like -compatible -abstract data type type abstrait -argument argument (à ne pas confondre avec *paramètre*) -backslash antislash, *backslash* -backtrace trace d'appels, trace de pile -bound lier -bug bogue, *bug* -built-in native -callback fonction de rappel -call stack pile d'appels -debugging débogage -deep copy copie récursive (préféré), ou copie profonde -double quote guillemet -deprecated obsolète --like -compatible -e.g. p. ex. (on n'utilise pas l'anglicisme « e.g. », - lui-même issu du latin *exempli gratia*). - On sépare les deux mots par une espace - insécable pour éviter les retours à la ligne - malheureux. -et al. et autres, `à accorder - `_ - suivant le contexte -export exportation -expression expression -garbage collector ramasse-miettes -getter accesseur -i.e. c.-à-d. (on n'utilise pas l'anglicisme « i.e », - lui-même issu du latin *id est*) -identifier identifiant -immutable immuable -import importation -installer installateur -interpreter interpréteur -library bibliothèque -list comprehension liste en compréhension (liste en intension est - valide, mais nous ne l'utilisons pas) -little-endian, big-endian `petit-boutiste, gros-boutiste - `_ -mixin type type de mélange -mutable muable -namespace espace de nommage - (sauf pour le XML où c'est espace de noms) -parameter paramètre -pickle (v.) sérialiser -prompt invite -raise lever -regular expression expression rationnelle, expression régulière -return renvoie, donne (on évite « retourne » qui - pourrait porter à confusion). -setter mutateur -simple quote guillemet simple -socket connecteur ou interface de connexion -statement instruction -subprocess sous-processus -thread fil d'exécution -traceback trace d'appels, trace de pile -underscore tiret bas, *underscore* -whitespace caractère d'espacement -========================== =============================================== - -Simplifier les diffs git ------------------------- +Simplification des diffs git +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Les diffs git sont souvent encombrés de changements inutiles de numéros de ligne, comme : @@ -479,11 +684,15 @@ ce qui suit après vous être assuré que ``~/.local/bin/`` se trouve dans votre git config diff.podiff.textconv podiff +Pas d'inquiétude, cela ne change la façon dont Git affiche les changements que sur +les fichiers de la traduction, sans incidence sur les autres. + + Maintenance ----------- Toutes ces commandes doivent être exécutées à partir de la racine d'un clone -de ``python-docs-fr``, et certains s'attendent à trouver un clone de CPython +de ``python-docs-fr`` et certaines s'attendent à trouver un clone de CPython à jour à proximité, comme : .. code-block:: bash @@ -502,32 +711,16 @@ Ceci évite de télécharger tout l'historique (inutile pour générer la documentation) mais récupère néanmoins toutes les branches. -Fusionner les fichiers *pot* de CPython -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Fusion des fichiers *pot* de CPython +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: bash make merge -Trouver les chaînes de caractères *fuzzy* -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. code-block:: bash - - make fuzzy - - -Lancer un *build* en local -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. code-block:: bash - - make - - -Synchroniser la traduction avec Transifex -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Synchronisation de la traduction avec Transifex +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Vous aurez besoin de ``transifex-client`` et ``powrap``, depuis PyPI. diff --git a/Makefile b/Makefile index b23ce492df..c712f261ba 100644 --- a/Makefile +++ b/Makefile @@ -2,14 +2,13 @@ # # Here is what you can do: # -# - make # Automatically build an html local version -# - make todo # To list remaining tasks +# - make # Automatically build an HTML local version +# - make todo # To list remaining tasks and show current progression # - make verifs # To check for correctness: wrapping, spelling -# - make wrap # To check for wrapping +# - make wrap # To rewrap modified files # - make spell # To check for spelling -# - make merge # To merge pot from upstream +# - make clean # To remove build artifacts # - make fuzzy # To find fuzzy strings -# - make progress # To compute current progression # # Modes are: autobuild-stable, autobuild-dev, and autobuild-html, # documented in gen/src/3.6/Doc/Makefile as we're only delegating the @@ -21,144 +20,169 @@ # from which we generated our po files. We use it here so when we # test build, we're building with the .rst files that generated our # .po files. -CPYTHON_CURRENT_COMMIT := e21aa61e96f8343200e765d119ebe778873a6bf1 - -CPYTHON_PATH := ../cpython/ - +CPYTHON_CURRENT_COMMIT := 045b2523ff395efbbbd9369c7becec8e2236bde9 LANGUAGE := fr -BRANCH := 3.8 - +BRANCH := 3.9 + +EXCLUDED := \ + whatsnew/2.?.po \ + whatsnew/3.[0-8].po \ + c-api/ \ + distutils/ \ + install/ \ + library/2to3.po \ + library/distutils.po \ + library/imp.po \ + library/tkinter.tix.po \ + library/test.po \ + library/aifc.po \ + library/asynchat.po \ + library/asyncore.po \ + library/audioop.po \ + library/cgi.po \ + library/cgitb.po \ + library/chunk.po \ + library/crypt.po \ + library/imghdr.po \ + library/msilib.po \ + library/nntplib.po \ + library/nis.po \ + library/ossaudiodev.po \ + library/pipes.po \ + library/smtpd.po \ + library/sndhdr.po \ + library/spwd.po \ + library/sunau.po \ + library/telnetlib.po \ + library/uu.po \ + library/xdrlib.po # Internal variables UPSTREAM := https://github.com/python/cpython -VENV := $(shell pwd)/venv/ + PYTHON := $(shell which python3) MODE := html POSPELL_TMP_DIR := .pospell/ -WORKTREES := $(VENV)/worktrees/ -WORKTREE := $(WORKTREES)/$(CPYTHON_CURRENT_COMMIT)/ JOBS := auto +SPHINXERRORHANDLING = -W -.PHONY: all -all: setup - mkdir -p $(WORKTREE)/locales/$(LANGUAGE)/LC_MESSAGES/ - cp --parents *.po */*.po $(WORKTREE)/locales/$(LANGUAGE)/LC_MESSAGES/ - $(MAKE) -C $(WORKTREE)/Doc/ VENVDIR=$(WORKTREE)/Doc/venv/ PYTHON=$(PYTHON) \ - SPHINXOPTS='-qW -j$(JOBS) \ - -D locale_dirs=../locales \ - -D language=$(LANGUAGE) \ - -D gettext_compact=0 \ - -D latex_engine=xelatex \ - -D latex_elements.inputenc= \ - -D latex_elements.fontenc=' \ - $(MODE) && echo "Build success, open file://$(WORKTREE)/Doc/build/html/index.html or run 'make serve' to see them." - - -.PHONY: setup -setup: venv - # Setup the main clone - if ! [ -d $(CPYTHON_PATH) ]; then \ - git clone --depth 16 --branch $(BRANCH) $(UPSTREAM) $(CPYTHON_PATH); \ - fi +# Detect OS - # Setup the current worktree - if ! [ -d $(WORKTREE) ]; then \ - rm -fr $(WORKTREES); \ - git -C $(CPYTHON_PATH) worktree prune; \ - mkdir -p $(WORKTREES); \ - if [ -n "$(CPYTHON_CURRENT_COMMIT)" ]; \ - then \ - depth=32; \ - while ! git -C $(CPYTHON_PATH) cat-file -e $(CPYTHON_CURRENT_COMMIT); \ - do \ - depth=$$((depth * 2)); \ - git -C $(CPYTHON_PATH) fetch --depth $$depth $(UPSTREAM) $(BRANCH); \ - done \ - else \ - git -C $(CPYTHON_PATH) fetch --depth 1 $(UPSTREAM); \ - fi; \ - git -C $(CPYTHON_PATH) worktree add $(WORKTREE)/ $(CPYTHON_CURRENT_COMMIT); \ - $(MAKE) -C $(WORKTREE)/Doc/ VENVDIR=$(WORKTREE)/Doc/venv/ PYTHON=$(PYTHON) venv; \ - fi +ifeq '$(findstring ;,$(PATH))' ';' + detected_OS := Windows +else + detected_OS := $(shell uname 2>/dev/null || echo Unknown) + detected_OS := $(patsubst CYGWIN%,Cygwin,$(detected_OS)) + detected_OS := $(patsubst MSYS%,MSYS,$(detected_OS)) + detected_OS := $(patsubst MINGW%,MSYS,$(detected_OS)) +endif +ifeq ($(detected_OS),Darwin) # Mac OS X + CP_CMD := gcp # accessible with `brew install coreutils` or `brew upgrade coreutils` +else + CP_CMD := cp +endif -.PHONY: venv -venv: - @if [ ! -d $(VENV) ]; then $(PYTHON) -m venv --prompt python-docs-fr $(VENV); fi - @$(VENV)/bin/python -m pip install -q -r requirements.txt 2> $(VENV)/pip-install.log - @if grep -q 'pip install --upgrade pip' $(VENV)/pip-install.log; then \ - $(VENV)/bin/pip install -q --upgrade pip; \ +.PHONY: all +all: ensure_prerequisites + git -C venv/cpython checkout $(CPYTHON_CURRENT_COMMIT) || (git -C venv/cpython fetch && git -C venv/cpython checkout $(CPYTHON_CURRENT_COMMIT)) + mkdir -p locales/$(LANGUAGE)/LC_MESSAGES/ + $(CP_CMD) -u --parents *.po */*.po locales/$(LANGUAGE)/LC_MESSAGES/ + $(MAKE) -C venv/cpython/Doc/ \ + JOBS='$(JOBS)' \ + SPHINXOPTS='-D locale_dirs=$(abspath locales) \ + -D language=$(LANGUAGE) \ + -D gettext_compact=0 \ + -D latex_engine=xelatex \ + -D latex_elements.inputenc= \ + -D latex_elements.fontenc=' \ + SPHINXERRORHANDLING=$(SPHINXERRORHANDLING) \ + $(MODE) + @echo "Build success, open file://$(abspath venv/cpython/)/Doc/build/html/index.html or run 'make htmlview' to see them." + + +# We clone cpython/ inside venv/ because venv/ is the only directory +# excluded by cpython' Sphinx configuration. +venv/cpython/.git/HEAD: + git clone https://github.com/python/cpython venv/cpython + + +.PHONY: ensure_prerequisites +ensure_prerequisites: venv/cpython/.git/HEAD + @if ! (blurb help >/dev/null 2>&1 && sphinx-build --version >/dev/null 2>&1); then \ + git -C venv/cpython/ checkout $(BRANCH); \ + echo "You're missing dependencies please install:"; \ + echo ""; \ + echo " python -m pip install -r requirements.txt -r venv/cpython/Doc/requirements.txt"; \ + exit 1; \ fi - -.PHONY: serve -serve: - $(MAKE) -C $(WORKTREE)/Doc/ serve - - -.PHONY: progress -progress: - @python3 -c 'import sys; print("{:.1%}".format(int(sys.argv[1]) / int(sys.argv[2])))' \ - $(shell msgcat *.po */*.po | msgattrib --translated | grep -c '^msgid') \ - $(shell msgcat *.po */*.po | grep -c '^msgid') - +.PHONY: htmlview +htmlview: MODE=htmlview +htmlview: all .PHONY: todo -todo: venv - $(VENV)/bin/potodo +todo: ensure_prerequisites + potodo --api-url 'https://git.afpy.org/api/v1/repos/AFPy/python-docs-fr/issues?state=open&type=issues' --exclude venv .venv $(EXCLUDED) .PHONY: wrap -wrap: venv - $(VENV)/bin/powrap --check --quiet *.po **/*.po +wrap: ensure_prerequisites + @echo "Re wrapping modified files" + powrap -m SRCS = $(shell git diff --name-only $(BRANCH) | grep '.po$$') # foo/bar.po => $(POSPELL_TMP_DIR)/foo/bar.po.out DESTS = $(addprefix $(POSPELL_TMP_DIR)/,$(addsuffix .out,$(SRCS))) .PHONY: spell -spell: venv $(DESTS) +spell: ensure_prerequisites $(DESTS) + +.PHONY: line-length +line-length: + @echo "Searching for long lines..." + @awk '{if (length(gensub(/శ్రీనివాస్/, ".", "g", $$0)) > 80 && length(gensub(/[^ ]/, "", "g")) > 1) {print FILENAME ":" FNR, "line too long:", $$0; ERRORS+=1}} END {if (ERRORS>0) {exit 1}}' *.po */*.po + +.PHONY: sphinx-lint +sphinx-lint: + @echo "Checking all files using sphinx-lint..." + @sphinx-lint --enable all --disable line-too-long *.po */*.po $(POSPELL_TMP_DIR)/%.po.out: %.po dict - @echo "Checking $<..." + @echo "Pospell checking $<..." @mkdir -p $(@D) - @$(VENV)/bin/pospell -p dict -l fr_FR $< && touch $@ + pospell -p dict -l fr_FR $< && touch $@ .PHONY: fuzzy -fuzzy: venv - $(VENV)/bin/potodo -f +fuzzy: ensure_prerequisites + potodo --only-fuzzy --api-url 'https://git.afpy.org/api/v1/repos/AFPy/python-docs-fr/issues?state=open&type=issues' --exclude venv .venv $(EXCLUDED) + +.PHONY: check-headers +check-headers: + @grep -L '^# Copyright (C) [0-9-]*, Python Software Foundation' *.po */*.po | while read -r file;\ + do \ + echo "Please update the po comment in $$file"; \ + done + @grep -L '^"Project-Id-Version: Python 3\\n"$$' *.po */*.po | while read -r file;\ + do \ + echo "Please update the 'Project-Id-Version' header in $$file"; \ + done + @grep -L '^"Language: fr\\n"$$' *.po */*.po | while read -r file;\ + do \ + echo "Please update the 'Language' header in $$file"; \ + done + @grep -L '^"Language-Team: FRENCH \\n"' *.po */*.po | while read -r file;\ + do \ + echo "Please update the 'Language-Team' header in $$file"; \ + done .PHONY: verifs -verifs: wrap spell - -.PHONY: merge -merge: setup - git -C $(CPYTHON_PATH) fetch $(UPSTREAM) - rm -fr $(WORKTREES)/$(BRANCH) - git -C $(CPYTHON_PATH) worktree prune - git -C $(CPYTHON_PATH) worktree add $(WORKTREES)/$(BRANCH) $(word 1,$(shell git -C $(CPYTHON_PATH) remote -v | grep python/cpython))/$(BRANCH) - $(MAKE) -C $(WORKTREES)/$(BRANCH)/Doc/ VENVDIR=$(WORKTREES)/$(BRANCH)/Doc/venv/ PYTHON=$(PYTHON) venv; - (cd $(WORKTREES)/$(BRANCH); $(WORKTREES)/$(BRANCH)/Doc/venv/bin/sphinx-build -Q -b gettext -D gettext_compact=0 Doc pot/) - find $(WORKTREES)/$(BRANCH) -name '*.pot' |\ - while read -r POT;\ - do\ - PO="./$$(echo "$$POT" | sed "s#$(WORKTREES)/$(BRANCH)/pot/##; s#\.pot\$$#.po#")";\ - mkdir -p "$$(dirname "$$PO")";\ - if [ -f "$$PO" ];\ - then\ - case "$$POT" in\ - *whatsnew*) msgmerge --backup=off --force-po --no-fuzzy-matching -U "$$PO" "$$POT" ;;\ - *) msgmerge --backup=off --force-po -U "$$PO" "$$POT" ;;\ - esac\ - else\ - msgcat -o "$$PO" "$$POT";\ - fi\ - done - sed -i 's/^CPYTHON_CURRENT_COMMIT :=.*/CPYTHON_CURRENT_COMMIT := $(shell git -C $(WORKTREES)/$(BRANCH) rev-parse HEAD)/' Makefile - rm -fr $(WORKTREES)/$(BRANCH) - git -C $(CPYTHON_PATH) worktree prune +verifs: spell line-length sphinx-lint check-headers .PHONY: clean clean: - rm -fr venv $(POSPELL_TMP_DIR) + @echo "Cleaning *.mo and $(POSPELL_TMP_DIR)" + rm -fr $(POSPELL_TMP_DIR) locales/$(LANGUAGE)/LC_MESSAGES/ find -name '*.mo' -delete + @echo "Cleaning build directory" + $(MAKE) -C venv/cpython/Doc/ clean diff --git a/README.rst b/README.rst index b6c0c7acb6..cbccfa457d 100644 --- a/README.rst +++ b/README.rst @@ -11,6 +11,24 @@ Traduction française de la documentation Python :width: 45% +Contribuer à la traduction +-------------------------- + +Vous pouvez contribuer : + +- en proposant des *pull requests* Github (solution recommandée) ; +- en envoyant un correctif à la liste `traductions `_. + +Consultez le +`guide `_ +pour apprendre les conventions à respecter. + +Le coordinateur de cette traduction est `Julien Palard (mdk) `_. +Vous pouvez obtenir de l'aide sur le canal ``#python-fr`` sur `freenode +`_ (ne nécessite pas d'inscription) ou poser vos questions sur la +`liste de diffusion `_ des traductions de l'AFPy. + + Accord de contribution à la documentation ----------------------------------------- @@ -34,40 +52,11 @@ En soumettant votre travail à la PSF pour inclusion dans la documentation, vous signifiez votre acceptation de cet accord. -Contribuer à la traduction --------------------------- - -Comment contribuer -~~~~~~~~~~~~~~~~~~ - -Vous pouvez contribuer : - -- en proposant des *pull requests* Github (solution recommandée), -- ou en envoyant un patch à la liste `traductions `_. - -Un guide pour contribuer au projet via Github se trouve dans -`CONTRIBUTING.rst -`_. - - -Où obtenir de l'aide ? -~~~~~~~~~~~~~~~~~~~~~~ - -Le coordinateur de cette traduction est `Julien Palard `_. - -N'hésitez pas à poser vos questions sur le canal ``#python-fr`` sur `freenode -`_ (ne nécessite pas d'inscription) ou sur la -`liste de diffusion des traductions de l'AFPy `_. - - Historique du projet -------------------- -Ce projet a été lancé `vers 2000 -`_ puis -repris `vers 2012 `_ par -l'`AFPy `_. En 2017 ce projet est devenu la -traduction officielle de la documentation Python en français grâce à -la `PEP 545 `_. `Jules Lasne -`_ à publié fin 2019 une `vidéo de -l'histore du repo `_. +- vers 2000 : `lancement du projet `_ ; +- vers 2012 : `reprise `_ par l'`AFPy `_ ; +- 2017 : le projet devient traduction officielle de la documentation Python par la `PEP 545 `_. + +Une `vidéo `_ de `Jules Lasne `_ montre l'évolution du dépôt. diff --git a/TRANSLATORS b/TRANSLATORS index 0996715ac0..e00e030ba9 100644 --- a/TRANSLATORS +++ b/TRANSLATORS @@ -13,3 +13,7 @@ Vivien Lambert Andy Kwok Aya Keddam Antoine Wecxsteen +Youen 'laën' Froger +Sascha Salles +Valériane Venance +Loc Cosnier diff --git a/bugs.po b/bugs.po index 5ef650bee9..667fd2679b 100644 --- a/bugs.po +++ b/bugs.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2019-12-10 16:04+0100\n" "Last-Translator: Antoine Wecxsteen\n" "Language-Team: FRENCH \n" @@ -15,11 +15,11 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.2.3\n" -#: ../Doc/bugs.rst:5 +#: bugs.rst:5 msgid "Dealing with Bugs" msgstr "S'attaquer aux bogues" -#: ../Doc/bugs.rst:7 +#: bugs.rst:7 msgid "" "Python is a mature programming language which has established a reputation " "for stability. In order to maintain this reputation, the developers would " @@ -29,7 +29,7 @@ msgstr "" "Afin de maintenir cette réputation, les développeurs souhaitent connaître " "tout problème que vous pourriez rencontrer dans Python." -#: ../Doc/bugs.rst:11 +#: bugs.rst:11 msgid "" "It can be sometimes faster to fix bugs yourself and contribute patches to " "Python as it streamlines the process and involves less people. Learn how to :" @@ -39,11 +39,11 @@ msgstr "" "les correctifs, ça simplifie le processus et implique moins de monde. " "Apprenez à :ref:`contribuer `." -#: ../Doc/bugs.rst:16 +#: bugs.rst:16 msgid "Documentation bugs" msgstr "Bogues de documentation" -#: ../Doc/bugs.rst:18 +#: bugs.rst:18 msgid "" "If you find a bug in this documentation or would like to propose an " "improvement, please submit a bug report on the :ref:`tracker `_" msgstr "`Outil de suivi des problèmes `_" -#: ../Doc/bugs.rst:33 +#: bugs.rst:33 msgid "" "Overview of the process involved in reporting an improvement on the tracker." msgstr "" "Vue d'ensemble du processus pour proposer une amélioration avec l'outil de " "suivi." -#: ../Doc/bugs.rst:35 +#: bugs.rst:35 msgid "" "`Helping with Documentation `_" @@ -102,83 +102,81 @@ msgstr "" "`Aider avec la documentation `_" -#: ../Doc/bugs.rst:36 +#: bugs.rst:36 msgid "" "Comprehensive guide for individuals that are interested in contributing to " "Python documentation." msgstr "Guide complet pour qui souhaite contribuer à la documentation Python." -#: ../Doc/bugs.rst:41 +#: bugs.rst:41 msgid "Using the Python issue tracker" msgstr "Utilisation du gestionnaire de tickets Python" -#: ../Doc/bugs.rst:43 +#: bugs.rst:43 msgid "" -"Bug reports for Python itself should be submitted via the Python Bug Tracker " -"(https://bugs.python.org/). The bug tracker offers a Web form which allows " -"pertinent information to be entered and submitted to the developers." +"Issue reports for Python itself should be submitted via the GitHub issues " +"tracker (https://github.com/python/cpython/issues). The GitHub issues " +"tracker offers a web form which allows pertinent information to be entered " +"and submitted to the developers." msgstr "" -"Les rapports de bogues pour Python lui-même devraient être soumis via le " -"*Bug Tracker Python* (http://bugs.python.org/). Le gestionnaire de tickets " -"propose un formulaire Web permettant de saisir des informations pertinentes " -"à soumettre aux développeurs." +"Les rapports concernant un problème relatif à Python lui-même doivent être " +"soumis *via* l'outil de suivi des problèmes de GitHub (https://github.com/" +"python/cpython/issues). Le gestionnaire de tickets propose un formulaire Web " +"permettant de saisir des informations pertinentes à soumettre aux " +"développeurs." -#: ../Doc/bugs.rst:47 +#: bugs.rst:48 msgid "" "The first step in filing a report is to determine whether the problem has " "already been reported. The advantage in doing so, aside from saving the " -"developers time, is that you learn what has been done to fix it; it may be " +"developers' time, is that you learn what has been done to fix it; it may be " "that the problem has already been fixed for the next release, or additional " "information is needed (in which case you are welcome to provide it if you " -"can!). To do this, search the bug database using the search box on the top " -"of the page." +"can!). To do this, search the tracker using the search box at the top of the " +"page." msgstr "" "La première étape pour remplir un rapport est de déterminer si le problème a " "déjà été rapporté. L'avantage de cette approche, en plus d'économiser du " -"temps aux développeurs, est d'apprendre ce qui a été fait pour le résoudre ; " +"temps aux développeurs, est d'apprendre ce qui a été fait pour le résoudre ; " "il se peut que le problème soit déjà résolu dans la prochaine version, ou " "que des informations complémentaires soient attendues (auquel cas votre " -"contribution est la bienvenue !). Pour ce faire, cherchez dans la base de " -"données de bogues grâce à la boîte de recherche en haut de la page." +"contribution est la bienvenue !). Pour ce faire, cherchez dans le " +"gestionnaire de tickets grâce à la boîte de recherche en haut de la page." -#: ../Doc/bugs.rst:54 +#: bugs.rst:55 msgid "" -"If the problem you're reporting is not already in the bug tracker, go back " -"to the Python Bug Tracker and log in. If you don't already have a tracker " -"account, select the \"Register\" link or, if you use OpenID, one of the " -"OpenID provider logos in the sidebar. It is not possible to submit a bug " -"report anonymously." +"If the problem you're reporting is not already in the list, log in to " +"GitHub. If you don't already have a GitHub account, create a new account " +"using the \"Sign up\" link. It is not possible to submit a bug report " +"anonymously." msgstr "" -"Si le problème que vous soumettez n'est pas déjà dans le *bug tracker*, " -"revenez au *Python Bug Tracker* et connectez-vous. Si vous n'avez pas déjà " -"un compte pour le *tracker*, cliquez sur le lien « S'enregistrer », ou, si " -"vous utilisez *OpenID*, sur l'un des logos des fournisseurs *OpenID* dans la " -"barre latérale. Il n'est pas possible de soumettre un rapport de bogue de " -"manière anonyme." +"Si le problème que vous soumettez n'est pas déjà dans la liste, connectez-" +"vous à GitHub. Si vous n'avez pas déjà un compte GitHub, créez un nouveau " +"compte en cliquant sur le lien « Sign Up ». Il n'est pas possible de " +"soumettre un rapport de bogue de manière anonyme." -#: ../Doc/bugs.rst:59 +#: bugs.rst:60 msgid "" -"Being now logged in, you can submit a bug. Select the \"Create New\" link " -"in the sidebar to open the bug reporting form." +"Being now logged in, you can submit an issue. Click on the \"New issue\" " +"button in the top bar to report a new issue." msgstr "" -"Une fois identifié, pour pouvez rapporter un bogue. Sélectionnez le lien " -"*Create New* dans la barre latérale pour ouvrir un nouveau formulaire de " -"rapport de bogue." +"Une fois connecté, vous pouvez rapporter un problème. Sélectionnez le bouton " +"*New issue* dans la barre en haut pour ouvrir un nouveau formulaire de " +"rapport." -#: ../Doc/bugs.rst:62 +#: bugs.rst:63 +msgid "The submission form has two fields, \"Title\" and \"Comment\"." +msgstr "Le formulaire de rapport contient deux champs, *Title* et *Comment*." + +#: bugs.rst:65 msgid "" -"The submission form has a number of fields. For the \"Title\" field, enter " -"a *very* short description of the problem; less than ten words is good. In " -"the \"Type\" field, select the type of your problem; also select the " -"\"Component\" and \"Versions\" to which the bug relates." +"For the \"Title\" field, enter a *very* short description of the problem; " +"less than ten words is good." msgstr "" -"Le formulaire de soumission a un certain nombre de champs. Pour le champ " -"« Titre », saisissez une *très* courte description du problème ; moins de " -"dix mots est approprié. Dans le champ « Type », sélectionnez le type de " -"problème ; sélectionnez aussi « Composant » et « Versions » en rapport avec " -"le bogue." +"Dans le champ *Title*, entrez une *très* brève description du problème " +"rencontré ; tâchez de vous limiter à dix mots." -#: ../Doc/bugs.rst:67 +#: bugs.rst:68 msgid "" "In the \"Comment\" field, describe the problem in detail, including what you " "expected to happen and what did happen. Be sure to include whether any " @@ -191,17 +189,17 @@ msgstr "" "plateforme matérielle et logicielle vous utilisiez (en incluant les " "informations de versions)." -#: ../Doc/bugs.rst:72 +#: bugs.rst:73 msgid "" -"Each bug report will be assigned to a developer who will determine what " -"needs to be done to correct the problem. You will receive an update each " -"time action is taken on the bug." +"Each issue report will be reviewed by a developer who will determine what " +"needs to be done to correct the problem. You will receive an update each " +"time an action is taken on the issue." msgstr "" -"Chaque bogue sera attribué à un développeur qui déterminera ce qui est " +"Chaque rapport sera attribué à un développeur qui déterminera ce qui est " "nécessaire d'entreprendre pour corriger le problème. Vous recevrez une " -"notification à chaque action effectuée sur le bogue." +"notification à chaque action concernant le rapport." -#: ../Doc/bugs.rst:81 +#: bugs.rst:82 msgid "" "`How to Report Bugs Effectively `_" @@ -209,7 +207,7 @@ msgstr "" "`Comment signaler des bogues de manière efficace `_ (en anglais)" -#: ../Doc/bugs.rst:80 +#: bugs.rst:81 msgid "" "Article which goes into some detail about how to create a useful bug report. " "This describes what kind of information is useful and why it is useful." @@ -218,7 +216,7 @@ msgstr "" "bogue utile. Il décrit quel genre d'information est utile et pourquoi elle " "est utile." -#: ../Doc/bugs.rst:84 +#: bugs.rst:85 msgid "" "`Bug Report Writing Guidelines `_" @@ -226,7 +224,7 @@ msgstr "" "`Guide pour la rédaction de rapports de bogues `_" -#: ../Doc/bugs.rst:84 +#: bugs.rst:85 msgid "" "Information about writing a good bug report. Some of this is specific to " "the Mozilla project, but describes general good practices." @@ -234,11 +232,11 @@ msgstr "" "Conseils pour écrire un bon rapport de bogue. Certains sont spécifiques au " "projet Mozilla mais présentent des bonnes pratiques générales." -#: ../Doc/bugs.rst:90 +#: bugs.rst:91 msgid "Getting started contributing to Python yourself" msgstr "Commencer à contribuer à Python vous-même" -#: ../Doc/bugs.rst:92 +#: bugs.rst:93 msgid "" "Beyond just reporting bugs that you find, you are also welcome to submit " "patches to fix them. You can find more information on how to get started " @@ -252,3 +250,15 @@ msgstr "" "Developer's Guide`_. Si vous avez des questions, le `core-mentorship mailing " "list`_ est un endroit amical pour obtenir des réponses à toutes les " "questions à propos du processus de corrections de bugs dans Python." + +#~ msgid "" +#~ "The submission form has a number of fields. For the \"Title\" field, " +#~ "enter a *very* short description of the problem; less than ten words is " +#~ "good. In the \"Type\" field, select the type of your problem; also " +#~ "select the \"Component\" and \"Versions\" to which the bug relates." +#~ msgstr "" +#~ "Le formulaire de soumission a un certain nombre de champs. Pour le champ " +#~ "« Titre », saisissez une *très* courte description du problème ; moins de " +#~ "dix mots est approprié. Dans le champ « Type », sélectionnez le type de " +#~ "problème ; sélectionnez aussi « Composant » et « Versions » en rapport " +#~ "avec le bogue." diff --git a/c-api/arg.po b/c-api/arg.po index 2e19840db8..a63a0eae7c 100644 --- a/c-api/arg.po +++ b/c-api/arg.po @@ -5,21 +5,21 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-15 18:54+0100\n" -"PO-Revision-Date: 2018-10-04 12:14+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" +"PO-Revision-Date: 2023-03-23 10:05+0100\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 1.8.11\n" +"X-Generator: Poedit 2.2.1\n" -#: ../Doc/c-api/arg.rst:6 +#: c-api/arg.rst:6 msgid "Parsing arguments and building values" msgstr "Analyse des arguments et construction des valeurs" -#: ../Doc/c-api/arg.rst:8 +#: c-api/arg.rst:8 msgid "" "These functions are useful when creating your own extensions functions and " "methods. Additional information and examples are available in :ref:" @@ -29,7 +29,7 @@ msgstr "" "d'extensions. Des informations supplémentaires et des exemples sont " "disponibles ici: :ref:`extending-index`." -#: ../Doc/c-api/arg.rst:12 +#: c-api/arg.rst:12 msgid "" "The first three of these functions described, :c:func:`PyArg_ParseTuple`, :c:" "func:`PyArg_ParseTupleAndKeywords`, and :c:func:`PyArg_Parse`, all use " @@ -43,11 +43,11 @@ msgstr "" "pour indiquer à la fonction les arguments attendus. Les chaînes de format " "utilise la même syntaxe pour chacune de ces fonctions." -#: ../Doc/c-api/arg.rst:19 +#: c-api/arg.rst:19 msgid "Parsing arguments" msgstr "Analyse des arguments" -#: ../Doc/c-api/arg.rst:21 +#: c-api/arg.rst:21 msgid "" "A format string consists of zero or more \"format units.\" A format unit " "describes one Python object; it is usually a single character or a " @@ -68,11 +68,11 @@ msgstr "" "qui correspond à l'unité de format, et l'entrée entre crochets est le type " "de la variable C (ou des variables) dont l'adresse doit être donnée." -#: ../Doc/c-api/arg.rst:31 +#: c-api/arg.rst:31 msgid "Strings and buffers" msgstr "Chaînes et tampons" -#: ../Doc/c-api/arg.rst:33 +#: c-api/arg.rst:33 msgid "" "These formats allow accessing an object as a contiguous chunk of memory. You " "don't have to provide raw storage for the returned unicode or bytes area." @@ -81,15 +81,19 @@ msgstr "" "mémoire contigüe. Il n'est pas nécessaire d'allouer la mémoire pour " "l'*unicode* ou le *bytes* renvoyé." -#: ../Doc/c-api/arg.rst:37 +#: c-api/arg.rst:37 msgid "" "In general, when a format sets a pointer to a buffer, the buffer is managed " "by the corresponding Python object, and the buffer shares the lifetime of " "this object. You won't have to release any memory yourself. The only " "exceptions are ``es``, ``es#``, ``et`` and ``et#``." msgstr "" +"En général, lorsqu'un format définit un pointeur vers un tampon, le tampon " +"est géré par l'objet Python correspondant et le tampon partage la durée de " +"vie de cet objet. vous n'avez pas à libérer de mémoire. Les seules " +"exceptions sont ``es``, ``es#``, ``et`` et ``et#``." -#: ../Doc/c-api/arg.rst:42 +#: c-api/arg.rst:42 msgid "" "However, when a :c:type:`Py_buffer` structure gets filled, the underlying " "buffer is locked so that the caller can subsequently use the buffer even " @@ -106,19 +110,24 @@ msgstr "" "d'appeler** :c:func:`PyBuffer_Release` après avoir terminé de traiter les " "données (ou après une interruption prématurée du traitement de ces données)." -#: ../Doc/c-api/arg.rst:49 +#: c-api/arg.rst:49 msgid "Unless otherwise stated, buffers are not NUL-terminated." msgstr "Sauf indication contraire, les tampons ne se terminent pas par NUL." -#: ../Doc/c-api/arg.rst:51 +#: c-api/arg.rst:51 msgid "" "Some formats require a read-only :term:`bytes-like object`, and set a " "pointer instead of a buffer structure. They work by checking that the " "object's :c:member:`PyBufferProcs.bf_releasebuffer` field is ``NULL``, which " "disallows mutable objects such as :class:`bytearray`." msgstr "" +"Certains formats requièrent un :term:`objet compatible avec une chaîne " +"d'octets ` en lecture seule, et définissent un pointeur à " +"la place d'une structure tampon. Ils fonctionnent en vérifiant que le champ :" +"c:member:`PyBufferProcs.bf_releasebuffer` de l'objet est *NULL*, ce qui " +"n'autorise pas les objets muables tels que :class:`bytearray`." -#: ../Doc/c-api/arg.rst:58 +#: c-api/arg.rst:58 msgid "" "For all ``#`` variants of formats (``s#``, ``y#``, etc.), the type of the " "length argument (int or :c:type:`Py_ssize_t`) is controlled by defining the " @@ -137,11 +146,11 @@ msgstr "" "`Py_ssize_t` a la place de :c:type:`int`. Il est préférable de toujours " "définir :c:macro:`PY_SSIZE_T_CLEAN`." -#: ../Doc/c-api/arg.rst:85 +#: c-api/arg.rst:85 msgid "``s`` (:class:`str`) [const char \\*]" msgstr "``s`` (:class:`str`) [``const char *``]" -#: ../Doc/c-api/arg.rst:68 +#: c-api/arg.rst:68 msgid "" "Convert a Unicode object to a C pointer to a character string. A pointer to " "an existing string is stored in the character pointer variable whose address " @@ -150,52 +159,78 @@ msgid "" "is raised. Unicode objects are converted to C strings using ``'utf-8'`` " "encoding. If this conversion fails, a :exc:`UnicodeError` is raised." msgstr "" +"Convertit un objet Unicode en un pointeur vers une chaîne de caractères. " +"S'il s'agit d'un pointeur vers une chaîne de caractères déjà existante, il " +"est stocké dans la variable de type pointeur vers un caractère dont vous " +"avez donné l'adresse. Une chaîne de caractères en C se termine par *NULL*. " +"La chaîne de caractères Python ne doit donc pas contenir de caractère dont " +"le code est *null*. Si elle en contient, une exception :exc:`ValueError` est " +"levée. Si la conversion échoue, une :exc:`UnicodeError` est levée." -#: ../Doc/c-api/arg.rst:77 +#: c-api/arg.rst:77 msgid "" "This format does not accept :term:`bytes-like objects `. " "If you want to accept filesystem paths and convert them to C character " "strings, it is preferable to use the ``O&`` format with :c:func:" "`PyUnicode_FSConverter` as *converter*." msgstr "" +"Ce format n'accepte pas les :term:`objets compatibles avec une chaîne " +"d'octets `. Si vous voulez accepter les chemins du " +"système de fichiers et les convertir vers des chaînes de caractères C, il " +"est préférable d'utiliser le format ``O&`` avec :c:func:" +"`PyUnicode_FSConverter` en tant que *converter*." -#: ../Doc/c-api/arg.rst:83 ../Doc/c-api/arg.rst:150 +#: c-api/arg.rst:150 msgid "" "Previously, :exc:`TypeError` was raised when embedded null code points were " "encountered in the Python string." msgstr "" +"Auparavant, une :exc:`TypeError` était levée quand la chaîne de caractères " +"Python contenait des codes NULL." -#: ../Doc/c-api/arg.rst:91 +#: c-api/arg.rst:91 msgid "``s*`` (:class:`str` or :term:`bytes-like object`) [Py_buffer]" msgstr "``s*`` (:class:`str` ou :term:`bytes-like object`) [``Py_buffer``]" -#: ../Doc/c-api/arg.rst:88 +#: c-api/arg.rst:88 msgid "" "This format accepts Unicode objects as well as bytes-like objects. It fills " "a :c:type:`Py_buffer` structure provided by the caller. In this case the " "resulting C string may contain embedded NUL bytes. Unicode objects are " "converted to C strings using ``'utf-8'`` encoding." msgstr "" +"Ce format accepte les objets Unicode et les *bytes-like object*. Cela " +"remplit une structure :c:type:`Py_buffer` qui est fournie par l'appelant. " +"Dans ce cas, la chaîne de caractères C qui en résulte peut contenir des " +"octets NULL. Les objets Unicode sont convertis en chaînes de caractères C en " +"utilisant l'encodage ``'utf-8'``." -#: ../Doc/c-api/arg.rst:98 +#: c-api/arg.rst:98 msgid "" "``s#`` (:class:`str`, read-only :term:`bytes-like object`) [const char \\*, " "int or :c:type:`Py_ssize_t`]" msgstr "" +"``s#`` (:class:`str`, :term:`bytes-like object` en lecture seule) [``const " +"char \\*``, ``int`` ou :c:type:`Py_ssize_t`]" -#: ../Doc/c-api/arg.rst:94 +#: c-api/arg.rst:94 msgid "" "Like ``s*``, except that it doesn't accept mutable objects. The result is " "stored into two C variables, the first one a pointer to a C string, the " "second one its length. The string may contain embedded null bytes. Unicode " "objects are converted to C strings using ``'utf-8'`` encoding." msgstr "" +"La même chose que ``s*``, mais n'accepte pas les objets muables. Le résultat " +"est stocké dans deux variables C, la première est un pointeur vers une " +"chaîne de caractères C, la seconde contient sa taille. La chaîne de " +"caractères peut contenir des octets NULL. Les objets Unicode sont convertis " +"vers des chaînes de caractères C utilisant l'encodage ``'utf-8'``." -#: ../Doc/c-api/arg.rst:102 ../Doc/c-api/arg.rst:566 +#: c-api/arg.rst:566 msgid "``z`` (:class:`str` or ``None``) [const char \\*]" msgstr "``z`` (:class:`str` ou ``None``) [``const char *``]" -#: ../Doc/c-api/arg.rst:101 +#: c-api/arg.rst:101 #, fuzzy msgid "" "Like ``s``, but the Python object may also be ``None``, in which case the C " @@ -204,28 +239,30 @@ msgstr "" "Comme ``s``, mais l'objet Python peut aussi être ``None``, auquel cas le " "pointeur C devient *NULL*." -#: ../Doc/c-api/arg.rst:106 +#: c-api/arg.rst:106 msgid "" "``z*`` (:class:`str`, :term:`bytes-like object` or ``None``) [Py_buffer]" msgstr "" "``z*`` (:class:`str`, :term:`bytes-like object` ou ``None``) [``Py_buffer``]" -#: ../Doc/c-api/arg.rst:105 -#, fuzzy +#: c-api/arg.rst:105 msgid "" "Like ``s*``, but the Python object may also be ``None``, in which case the " "``buf`` member of the :c:type:`Py_buffer` structure is set to ``NULL``." msgstr "" -"Comme ``u``, mais l'objet Python peut aussi être ``None``, auquel cas le " -"pointeur :c:type:`Py_UNICODE` vaut *NULL*." +"Comme ``s*``, mais l'objet Python peut aussi être ``None``, auquel cas le " +"membre ``buf``, dont la structure est :c:type:`Py_buffer` est fixée à *NULL*." -#: ../Doc/c-api/arg.rst:110 +#: c-api/arg.rst:110 +#, fuzzy msgid "" "``z#`` (:class:`str`, read-only :term:`bytes-like object` or ``None``) " -"[const char \\*, int]" +"[const char \\*, int or :c:type:`Py_ssize_t`]" msgstr "" +"``s#`` (:class:`str`, :term:`bytes-like object` en lecture seule) [``const " +"char \\*``, ``int`` ou :c:type:`Py_ssize_t`]" -#: ../Doc/c-api/arg.rst:109 +#: c-api/arg.rst:109 #, fuzzy msgid "" "Like ``s#``, but the Python object may also be ``None``, in which case the C " @@ -234,39 +271,52 @@ msgstr "" "Comme ``s#``, mais l'objet Python peut également être ``None``, dans ce cas " "le pointeur C est définie à *NULL*." -#: ../Doc/c-api/arg.rst:120 +#: c-api/arg.rst:120 msgid "``y`` (read-only :term:`bytes-like object`) [const char \\*]" msgstr "" +"``y`` (lecture seule :term:`objet compatible avec une chaîne d'octets `) [constante char \\*]" -#: ../Doc/c-api/arg.rst:113 +#: c-api/arg.rst:113 msgid "" "This format converts a bytes-like object to a C pointer to a character " "string; it does not accept Unicode objects. The bytes buffer must not " "contain embedded null bytes; if it does, a :exc:`ValueError` exception is " "raised." msgstr "" +"Ce format convertit un *objet compatible avec une chaîne d'octets* en un " +"pointeur C vers une chaîne de caractères ; il n'accepte pas les objets " +"Unicode. Le tampon d'octets ne doit pas contenir d'octets *null* ; si c'est " +"le cas, une exception :exc:`ValueError` est levée." -#: ../Doc/c-api/arg.rst:118 +#: c-api/arg.rst:118 msgid "" "Previously, :exc:`TypeError` was raised when embedded null bytes were " "encountered in the bytes buffer." msgstr "" +"Auparavant, :exc:`TypeError` était levée lorsque des octets *null* étaient " +"rencontrés dans le tampon d'octets." -#: ../Doc/c-api/arg.rst:125 +#: c-api/arg.rst:125 msgid "``y*`` (:term:`bytes-like object`) [Py_buffer]" msgstr "``y*`` (:term:`bytes-like object`) [``Py_buffer``]" -#: ../Doc/c-api/arg.rst:123 +#: c-api/arg.rst:123 msgid "" "This variant on ``s*`` doesn't accept Unicode objects, only bytes-like " "objects. **This is the recommended way to accept binary data.**" msgstr "" -#: ../Doc/c-api/arg.rst:129 -msgid "``y#`` (read-only :term:`bytes-like object`) [const char \\*, int]" +#: c-api/arg.rst:129 +#, fuzzy +msgid "" +"``y#`` (read-only :term:`bytes-like object`) [const char \\*, int or :c:type:" +"`Py_ssize_t`]" msgstr "" +"``s#`` (:class:`str`, :term:`bytes-like object` en lecture seule) [``const " +"char \\*``, ``int`` ou :c:type:`Py_ssize_t`]" -#: ../Doc/c-api/arg.rst:128 +#: c-api/arg.rst:128 msgid "" "This variant on ``s#`` doesn't accept Unicode objects, only bytes-like " "objects." @@ -274,34 +324,44 @@ msgstr "" "Cette variante de ``s#`` n'accepte pas les objets Unicode, uniquement des " "objets assimilés à des octets." -#: ../Doc/c-api/arg.rst:134 +#: c-api/arg.rst:134 msgid "``S`` (:class:`bytes`) [PyBytesObject \\*]" msgstr "``S`` (:class:`bytes`) [``PyBytesObject *``]" -#: ../Doc/c-api/arg.rst:132 +#: c-api/arg.rst:132 +#, fuzzy msgid "" "Requires that the Python object is a :class:`bytes` object, without " "attempting any conversion. Raises :exc:`TypeError` if the object is not a " -"bytes object. The C variable may also be declared as :c:type:`PyObject\\*`." +"bytes object. The C variable may also be declared as :c:type:`PyObject*`." msgstr "" +"Nécessite que l'objet Python soit de type :class:`bytes`, sans avoir tenté " +"de conversion. :exc:`TypeError` est levée si l'objet n'est pas un objet de " +"type *bytes*. La variable C doit aussi être déclarée en tant que :c:type:" +"`PyObject\\*`." -#: ../Doc/c-api/arg.rst:139 +#: c-api/arg.rst:139 msgid "``Y`` (:class:`bytearray`) [PyByteArrayObject \\*]" msgstr "``Y`` (:class:`bytearray`) [``PyByteArrayObject *``]" -#: ../Doc/c-api/arg.rst:137 +#: c-api/arg.rst:137 +#, fuzzy msgid "" "Requires that the Python object is a :class:`bytearray` object, without " "attempting any conversion. Raises :exc:`TypeError` if the object is not a :" "class:`bytearray` object. The C variable may also be declared as :c:type:" -"`PyObject\\*`." +"`PyObject*`." msgstr "" +"Nécessite que l'objet Python soit de type :class:`bytes`, sans avoir tenté " +"de conversion. :exc:`TypeError` est levée si l'objet n'est pas un objet de " +"type *bytes*. La variable C doit aussi être déclarée en tant que :c:type:" +"`PyObject\\*`." -#: ../Doc/c-api/arg.rst:156 +#: c-api/arg.rst:156 msgid "``u`` (:class:`str`) [const Py_UNICODE \\*]" msgstr "``u`` (:class:`str`) [``const Py_UNICODE *``]" -#: ../Doc/c-api/arg.rst:142 +#: c-api/arg.rst:142 msgid "" "Convert a Python Unicode object to a C pointer to a NUL-terminated buffer of " "Unicode characters. You must pass the address of a :c:type:`Py_UNICODE` " @@ -311,30 +371,38 @@ msgid "" "Python string must not contain embedded null code points; if it does, a :exc:" "`ValueError` exception is raised." msgstr "" +"Convertit un objet Python Unicode en un pointeur C vers un tampon de " +"caractères Unicode terminé par *NULL*. Vous devez passer l'adresse d'un " +"pointeur :c:type:`Py_UNICODE`, qui sera rempli avec le pointeur vers un " +"tampon Unicode existant. Veuillez noter que la taille d'un :c:type:" +"`Py_UNICODE` dépend des options de compilation (soit 16, soit 32 bits). La " +"chaîne de caractères Python ne doit pas contenir de code *NULL*. Si elle en " +"contient, une exception :exc:`ValueError` est levée." -#: ../Doc/c-api/arg.rst:157 ../Doc/c-api/arg.rst:166 ../Doc/c-api/arg.rst:174 -#: ../Doc/c-api/arg.rst:182 +#: c-api/arg.rst:174 c-api/arg.rst:182 msgid "" "Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" "func:`PyUnicode_AsWideCharString`." msgstr "" -#: ../Doc/c-api/arg.rst:165 -msgid "``u#`` (:class:`str`) [const Py_UNICODE \\*, int]" +#: c-api/arg.rst:165 +#, fuzzy +msgid "" +"``u#`` (:class:`str`) [const Py_UNICODE \\*, int or :c:type:`Py_ssize_t`]" msgstr "``u#`` (:class:`str`) [``const Py_UNICODE *``, ``int``]" -#: ../Doc/c-api/arg.rst:159 +#: c-api/arg.rst:159 msgid "" "This variant on ``u`` stores into two C variables, the first one a pointer " "to a Unicode data buffer, the second one its length. This variant allows " "null code points." msgstr "" -#: ../Doc/c-api/arg.rst:173 +#: c-api/arg.rst:173 msgid "``Z`` (:class:`str` or ``None``) [const Py_UNICODE \\*]" msgstr "``Z`` (:class:`str` ou ``None``) [``const Py_UNICODE *``]" -#: ../Doc/c-api/arg.rst:168 +#: c-api/arg.rst:168 #, fuzzy msgid "" "Like ``u``, but the Python object may also be ``None``, in which case the :c:" @@ -343,11 +411,14 @@ msgstr "" "Comme ``u``, mais l'objet Python peut aussi être ``None``, auquel cas le " "pointeur :c:type:`Py_UNICODE` vaut *NULL*." -#: ../Doc/c-api/arg.rst:181 -msgid "``Z#`` (:class:`str` or ``None``) [const Py_UNICODE \\*, int]" +#: c-api/arg.rst:181 +#, fuzzy +msgid "" +"``Z#`` (:class:`str` or ``None``) [const Py_UNICODE \\*, int or :c:type:" +"`Py_ssize_t`]" msgstr "``Z#`` (:class:`str` ou ``None``) [``const Py_UNICODE *``, ``int``]" -#: ../Doc/c-api/arg.rst:176 +#: c-api/arg.rst:176 #, fuzzy msgid "" "Like ``u#``, but the Python object may also be ``None``, in which case the :" @@ -356,22 +427,27 @@ msgstr "" "Comme ``u#``, mais l'objet Python peut également être ``None``, auquel cas " "le pointeur :c:type:`Py_UNICODE` vaut *NULL*." -#: ../Doc/c-api/arg.rst:186 +#: c-api/arg.rst:186 msgid "``U`` (:class:`str`) [PyObject \\*]" msgstr "``U`` (:class:`str`) [``PyObject *``]" -#: ../Doc/c-api/arg.rst:184 +#: c-api/arg.rst:184 +#, fuzzy msgid "" "Requires that the Python object is a Unicode object, without attempting any " "conversion. Raises :exc:`TypeError` if the object is not a Unicode object. " -"The C variable may also be declared as :c:type:`PyObject\\*`." +"The C variable may also be declared as :c:type:`PyObject*`." msgstr "" +"Nécessite que l'objet Python soit de type :class:`bytes`, sans avoir tenté " +"de conversion. :exc:`TypeError` est levée si l'objet n'est pas un objet de " +"type *bytes*. La variable C doit aussi être déclarée en tant que :c:type:" +"`PyObject\\*`." -#: ../Doc/c-api/arg.rst:192 +#: c-api/arg.rst:192 msgid "``w*`` (read-write :term:`bytes-like object`) [Py_buffer]" msgstr "``w*`` (lecture-écriture :term:`bytes-like object`) [``Py_buffer``]" -#: ../Doc/c-api/arg.rst:189 +#: c-api/arg.rst:189 msgid "" "This format accepts any object which implements the read-write buffer " "interface. It fills a :c:type:`Py_buffer` structure provided by the caller. " @@ -379,29 +455,28 @@ msgid "" "`PyBuffer_Release` when it is done with the buffer." msgstr "" -#: ../Doc/c-api/arg.rst:209 +#: c-api/arg.rst:209 msgid "``es`` (:class:`str`) [const char \\*encoding, char \\*\\*buffer]" msgstr "" -#: ../Doc/c-api/arg.rst:195 +#: c-api/arg.rst:195 msgid "" "This variant on ``s`` is used for encoding Unicode into a character buffer. " "It only works for encoded data without embedded NUL bytes." msgstr "" -#: ../Doc/c-api/arg.rst:198 +#: c-api/arg.rst:198 msgid "" "This format requires two arguments. The first is only used as input, and " -"must be a :c:type:`const char\\*` which points to the name of an encoding as " -"a NUL-terminated string, or ``NULL``, in which case ``'utf-8'`` encoding is " +"must be a :c:type:`const char*` which points to the name of an encoding as a " +"NUL-terminated string, or ``NULL``, in which case ``'utf-8'`` encoding is " "used. An exception is raised if the named encoding is not known to Python. " -"The second argument must be a :c:type:`char\\*\\*`; the value of the pointer " -"it references will be set to a buffer with the contents of the argument " -"text. The text will be encoded in the encoding specified by the first " -"argument." +"The second argument must be a :c:type:`char**`; the value of the pointer it " +"references will be set to a buffer with the contents of the argument text. " +"The text will be encoded in the encoding specified by the first argument." msgstr "" -#: ../Doc/c-api/arg.rst:206 +#: c-api/arg.rst:206 msgid "" ":c:func:`PyArg_ParseTuple` will allocate a buffer of the needed size, copy " "the encoded data into this buffer and adjust *\\*buffer* to reference the " @@ -409,59 +484,62 @@ msgid "" "`PyMem_Free` to free the allocated buffer after use." msgstr "" -#: ../Doc/c-api/arg.rst:214 +#: c-api/arg.rst:214 msgid "" "``et`` (:class:`str`, :class:`bytes` or :class:`bytearray`) [const char " "\\*encoding, char \\*\\*buffer]" msgstr "" -#: ../Doc/c-api/arg.rst:212 +#: c-api/arg.rst:212 msgid "" "Same as ``es`` except that byte string objects are passed through without " "recoding them. Instead, the implementation assumes that the byte string " "object uses the encoding passed in as parameter." msgstr "" -#: ../Doc/c-api/arg.rst:245 +#: c-api/arg.rst:245 +#, fuzzy msgid "" -"``es#`` (:class:`str`) [const char \\*encoding, char \\*\\*buffer, int " -"\\*buffer_length]" +"``es#`` (:class:`str`) [const char \\*encoding, char \\*\\*buffer, int or :c:" +"type:`Py_ssize_t` \\*buffer_length]" msgstr "" +"``s#`` (:class:`str`, :term:`bytes-like object` en lecture seule) [``const " +"char \\*``, ``int`` ou :c:type:`Py_ssize_t`]" -#: ../Doc/c-api/arg.rst:217 +#: c-api/arg.rst:217 msgid "" "This variant on ``s#`` is used for encoding Unicode into a character buffer. " "Unlike the ``es`` format, this variant allows input data which contains NUL " "characters." msgstr "" -#: ../Doc/c-api/arg.rst:221 +#: c-api/arg.rst:221 msgid "" "It requires three arguments. The first is only used as input, and must be " -"a :c:type:`const char\\*` which points to the name of an encoding as a NUL-" +"a :c:type:`const char*` which points to the name of an encoding as a NUL-" "terminated string, or ``NULL``, in which case ``'utf-8'`` encoding is used. " "An exception is raised if the named encoding is not known to Python. The " -"second argument must be a :c:type:`char\\*\\*`; the value of the pointer it " +"second argument must be a :c:type:`char**`; the value of the pointer it " "references will be set to a buffer with the contents of the argument text. " "The text will be encoded in the encoding specified by the first argument. " "The third argument must be a pointer to an integer; the referenced integer " "will be set to the number of bytes in the output buffer." msgstr "" -#: ../Doc/c-api/arg.rst:231 +#: c-api/arg.rst:231 msgid "There are two modes of operation:" msgstr "Il existe deux modes de fonctionnement :" -#: ../Doc/c-api/arg.rst:233 +#: c-api/arg.rst:233 msgid "" "If *\\*buffer* points a ``NULL`` pointer, the function will allocate a " -"buffer of the needed size, copy the encoded data into this buffer and set *" -"\\*buffer* to reference the newly allocated storage. The caller is " +"buffer of the needed size, copy the encoded data into this buffer and set " +"*\\*buffer* to reference the newly allocated storage. The caller is " "responsible for calling :c:func:`PyMem_Free` to free the allocated buffer " "after usage." msgstr "" -#: ../Doc/c-api/arg.rst:238 +#: c-api/arg.rst:238 msgid "" "If *\\*buffer* points to a non-``NULL`` pointer (an already allocated " "buffer), :c:func:`PyArg_ParseTuple` will use this location as the buffer and " @@ -470,7 +548,7 @@ msgid "" "the buffer is not large enough, a :exc:`ValueError` will be set." msgstr "" -#: ../Doc/c-api/arg.rst:244 +#: c-api/arg.rst:244 msgid "" "In both cases, *\\*buffer_length* is set to the length of the encoded data " "without the trailing NUL byte." @@ -478,28 +556,31 @@ msgstr "" "Dans les deux cas, *\\*buffer_length* est la longueur des données encodées, " "sans l'octet NUL de fin." -#: ../Doc/c-api/arg.rst:250 +#: c-api/arg.rst:250 +#, fuzzy msgid "" "``et#`` (:class:`str`, :class:`bytes` or :class:`bytearray`) [const char " -"\\*encoding, char \\*\\*buffer, int \\*buffer_length]" +"\\*encoding, char \\*\\*buffer, int or :c:type:`Py_ssize_t` \\*buffer_length]" msgstr "" +"``s#`` (:class:`str`, :term:`bytes-like object` en lecture seule) [``const " +"char \\*``, ``int`` ou :c:type:`Py_ssize_t`]" -#: ../Doc/c-api/arg.rst:248 +#: c-api/arg.rst:248 msgid "" "Same as ``es#`` except that byte string objects are passed through without " "recoding them. Instead, the implementation assumes that the byte string " "object uses the encoding passed in as parameter." msgstr "" -#: ../Doc/c-api/arg.rst:253 +#: c-api/arg.rst:253 msgid "Numbers" msgstr "Les nombres" -#: ../Doc/c-api/arg.rst:257 +#: c-api/arg.rst:257 msgid "``b`` (:class:`int`) [unsigned char]" msgstr "``b`` (:class:`int`) [``unsigned char``]" -#: ../Doc/c-api/arg.rst:256 +#: c-api/arg.rst:256 msgid "" "Convert a nonnegative Python integer to an unsigned tiny int, stored in a C :" "c:type:`unsigned char`." @@ -507,11 +588,11 @@ msgstr "" "Convertit un entier Python positif ou nul en un ``unsigned tiny int``, " "stocké dans un :c:type:`unsigned char` C." -#: ../Doc/c-api/arg.rst:261 ../Doc/c-api/arg.rst:600 +#: c-api/arg.rst:600 msgid "``B`` (:class:`int`) [unsigned char]" msgstr "``B`` (:class:`int`) [``unsigned char``]" -#: ../Doc/c-api/arg.rst:260 +#: c-api/arg.rst:260 msgid "" "Convert a Python integer to a tiny int without overflow checking, stored in " "a C :c:type:`unsigned char`." @@ -519,19 +600,19 @@ msgstr "" "Convertit un entier Python en un ``tiny int`` sans vérifier le débordement, " "stocké dans un :c:type:`unsigned char` C." -#: ../Doc/c-api/arg.rst:264 ../Doc/c-api/arg.rst:594 +#: c-api/arg.rst:594 msgid "``h`` (:class:`int`) [short int]" msgstr "``h`` (:class:`int`) [``short int``]" -#: ../Doc/c-api/arg.rst:264 +#: c-api/arg.rst:264 msgid "Convert a Python integer to a C :c:type:`short int`." msgstr "Convertit un entier Python en un :c:type:`short int` C." -#: ../Doc/c-api/arg.rst:268 ../Doc/c-api/arg.rst:603 +#: c-api/arg.rst:603 msgid "``H`` (:class:`int`) [unsigned short int]" msgstr "``H`` (:class:`int`) [``unsigned short int``]" -#: ../Doc/c-api/arg.rst:267 +#: c-api/arg.rst:267 msgid "" "Convert a Python integer to a C :c:type:`unsigned short int`, without " "overflow checking." @@ -539,19 +620,19 @@ msgstr "" "Convertit un entier Python en un :c:type:`unsigned short int` C, sans " "contrôle de débordement." -#: ../Doc/c-api/arg.rst:271 ../Doc/c-api/arg.rst:588 +#: c-api/arg.rst:588 msgid "``i`` (:class:`int`) [int]" msgstr "``i`` (:class:`int`) [``int``]" -#: ../Doc/c-api/arg.rst:271 +#: c-api/arg.rst:271 msgid "Convert a Python integer to a plain C :c:type:`int`." msgstr "Convertit un entier Python en un :c:type:`int` C." -#: ../Doc/c-api/arg.rst:275 ../Doc/c-api/arg.rst:606 +#: c-api/arg.rst:606 msgid "``I`` (:class:`int`) [unsigned int]" msgstr "``I`` (:class:`int`) [``unsigned int``]" -#: ../Doc/c-api/arg.rst:274 +#: c-api/arg.rst:274 msgid "" "Convert a Python integer to a C :c:type:`unsigned int`, without overflow " "checking." @@ -559,19 +640,19 @@ msgstr "" "Convertit un entier Python en un :c:type:`unsigned int` C, sans contrôle de " "le débordement." -#: ../Doc/c-api/arg.rst:278 ../Doc/c-api/arg.rst:597 +#: c-api/arg.rst:597 msgid "``l`` (:class:`int`) [long int]" msgstr "``l`` (:class:`int`) [``long int``]" -#: ../Doc/c-api/arg.rst:278 +#: c-api/arg.rst:278 msgid "Convert a Python integer to a C :c:type:`long int`." msgstr "Convertit un entier Python en un :c:type:`long int`." -#: ../Doc/c-api/arg.rst:282 ../Doc/c-api/arg.rst:609 +#: c-api/arg.rst:609 msgid "``k`` (:class:`int`) [unsigned long]" msgstr "``k`` (:class:`int`) [``unsigned long``]" -#: ../Doc/c-api/arg.rst:281 +#: c-api/arg.rst:281 msgid "" "Convert a Python integer to a C :c:type:`unsigned long` without overflow " "checking." @@ -579,37 +660,41 @@ msgstr "" "Convertit un entier Python en un :c:type:`unsigned long` C sans en vérifier " "le débordement." -#: ../Doc/c-api/arg.rst:285 ../Doc/c-api/arg.rst:612 +#: c-api/arg.rst:612 msgid "``L`` (:class:`int`) [long long]" msgstr "``L`` (:class:`int`) [``long long``]" -#: ../Doc/c-api/arg.rst:285 +#: c-api/arg.rst:285 +#, fuzzy msgid "Convert a Python integer to a C :c:type:`long long`." -msgstr "" +msgstr "Convertit un entier Python en un :c:type:`long int`." -#: ../Doc/c-api/arg.rst:289 ../Doc/c-api/arg.rst:615 +#: c-api/arg.rst:615 msgid "``K`` (:class:`int`) [unsigned long long]" msgstr "``K`` (:class:`int`) [``unsigned long long``]" -#: ../Doc/c-api/arg.rst:288 +#: c-api/arg.rst:288 +#, fuzzy msgid "" "Convert a Python integer to a C :c:type:`unsigned long long` without " "overflow checking." msgstr "" +"Convertit un entier Python en un :c:type:`unsigned long` C sans en vérifier " +"le débordement." -#: ../Doc/c-api/arg.rst:292 ../Doc/c-api/arg.rst:618 +#: c-api/arg.rst:618 msgid "``n`` (:class:`int`) [Py_ssize_t]" msgstr "``n`` (:class:`int`) [``Py_ssize_t``]" -#: ../Doc/c-api/arg.rst:292 +#: c-api/arg.rst:292 msgid "Convert a Python integer to a C :c:type:`Py_ssize_t`." -msgstr "Convertit un entier Python en un :c:type:`short int` C." +msgstr "Convertit un entier Python en un :c:type:`Py_ssize_t`." -#: ../Doc/c-api/arg.rst:299 +#: c-api/arg.rst:299 msgid "``c`` (:class:`bytes` or :class:`bytearray` of length 1) [char]" msgstr "``c`` (:class:`bytes` ou :class:`bytearray` de longueur 1) [``char``]" -#: ../Doc/c-api/arg.rst:295 +#: c-api/arg.rst:295 msgid "" "Convert a Python byte, represented as a :class:`bytes` or :class:`bytearray` " "object of length 1, to a C :c:type:`char`." @@ -617,15 +702,15 @@ msgstr "" "Convertit un *byte* Python, représenté comme un objet :class:`bytes` ou :" "class:`bytearray` de longueur 1, en un :c:type:`char` C." -#: ../Doc/c-api/arg.rst:298 +#: c-api/arg.rst:298 msgid "Allow :class:`bytearray` objects." msgstr "" -#: ../Doc/c-api/arg.rst:303 ../Doc/c-api/arg.rst:626 +#: c-api/arg.rst:626 msgid "``C`` (:class:`str` of length 1) [int]" msgstr "``C`` (:class:`str` de longueur 1) [``int``]" -#: ../Doc/c-api/arg.rst:302 +#: c-api/arg.rst:302 msgid "" "Convert a Python character, represented as a :class:`str` object of length " "1, to a C :c:type:`int`." @@ -633,41 +718,41 @@ msgstr "" "Convertit un caractère Python, représenté comme un objet :class:`str` de " "longueur 1, en un :c:type:`int` C." -#: ../Doc/c-api/arg.rst:306 ../Doc/c-api/arg.rst:632 +#: c-api/arg.rst:632 msgid "``f`` (:class:`float`) [float]" msgstr "``f`` (:class:`float`) [``float``]" -#: ../Doc/c-api/arg.rst:306 +#: c-api/arg.rst:306 msgid "Convert a Python floating point number to a C :c:type:`float`." msgstr "Convertit un nombre flottant Python vers un :c:type:`float`." -#: ../Doc/c-api/arg.rst:309 ../Doc/c-api/arg.rst:629 +#: c-api/arg.rst:629 msgid "``d`` (:class:`float`) [double]" msgstr "``d`` (:class:`float`) [``double``]" -#: ../Doc/c-api/arg.rst:309 +#: c-api/arg.rst:309 msgid "Convert a Python floating point number to a C :c:type:`double`." msgstr "Convertit un nombre flottant Python vers un :c:type:`double` C." -#: ../Doc/c-api/arg.rst:312 +#: c-api/arg.rst:312 msgid "``D`` (:class:`complex`) [Py_complex]" msgstr "``D`` (:class:`complex`) [``Py_complex``]" -#: ../Doc/c-api/arg.rst:312 +#: c-api/arg.rst:312 msgid "Convert a Python complex number to a C :c:type:`Py_complex` structure." msgstr "" "Convertit un nombre complexe Python vers une structure :c:type:`Py_complex` " "C." -#: ../Doc/c-api/arg.rst:315 +#: c-api/arg.rst:315 msgid "Other objects" msgstr "Autres objets" -#: ../Doc/c-api/arg.rst:320 ../Doc/c-api/arg.rst:643 +#: c-api/arg.rst:643 msgid "``O`` (object) [PyObject \\*]" msgstr "``O`` (objet) [``PyObject *``]" -#: ../Doc/c-api/arg.rst:318 +#: c-api/arg.rst:318 #, fuzzy msgid "" "Store a Python object (without any conversion) in a C object pointer. The C " @@ -679,42 +764,42 @@ msgstr "" "référence sur l'objet n'est pas incrémenté. Le pointeur stocké n'est pas " "*NULL*." -#: ../Doc/c-api/arg.rst:327 +#: c-api/arg.rst:327 msgid "``O!`` (object) [*typeobject*, PyObject \\*]" msgstr "``O!`` (objet) [*typeobject*, ``PyObject *``]" -#: ../Doc/c-api/arg.rst:323 +#: c-api/arg.rst:323 msgid "" "Store a Python object in a C object pointer. This is similar to ``O``, but " "takes two C arguments: the first is the address of a Python type object, the " -"second is the address of the C variable (of type :c:type:`PyObject\\*`) into " +"second is the address of the C variable (of type :c:type:`PyObject*`) into " "which the object pointer is stored. If the Python object does not have the " "required type, :exc:`TypeError` is raised." msgstr "" -#: ../Doc/c-api/arg.rst:352 ../Doc/c-api/arg.rst:657 +#: c-api/arg.rst:657 msgid "``O&`` (object) [*converter*, *anything*]" msgstr "``O&`` (objet) [*converter*, *anything*]" -#: ../Doc/c-api/arg.rst:332 +#: c-api/arg.rst:332 msgid "" "Convert a Python object to a C variable through a *converter* function. " "This takes two arguments: the first is a function, the second is the address " -"of a C variable (of arbitrary type), converted to :c:type:`void \\*`. The " +"of a C variable (of arbitrary type), converted to :c:type:`void *`. The " "*converter* function in turn is called as follows::" msgstr "" -#: ../Doc/c-api/arg.rst:339 +#: c-api/arg.rst:339 msgid "" "where *object* is the Python object to be converted and *address* is the :c:" -"type:`void\\*` argument that was passed to the :c:func:`PyArg_Parse\\*` " +"type:`void*` argument that was passed to the :c:func:`PyArg_Parse\\*` " "function. The returned *status* should be ``1`` for a successful conversion " "and ``0`` if the conversion has failed. When the conversion fails, the " "*converter* function should raise an exception and leave the content of " "*address* unmodified." msgstr "" -#: ../Doc/c-api/arg.rst:345 +#: c-api/arg.rst:345 msgid "" "If the *converter* returns ``Py_CLEANUP_SUPPORTED``, it may get called a " "second time if the argument parsing eventually fails, giving the converter a " @@ -723,15 +808,15 @@ msgid "" "value as in the original call." msgstr "" -#: ../Doc/c-api/arg.rst:351 +#: c-api/arg.rst:351 msgid "``Py_CLEANUP_SUPPORTED`` was added." msgstr "``Py_CLEANUP_SUPPORTED`` à été ajouté." -#: ../Doc/c-api/arg.rst:361 +#: c-api/arg.rst:361 msgid "``p`` (:class:`bool`) [int]" msgstr "``p`` (:class:`bool`) [``int``]" -#: ../Doc/c-api/arg.rst:355 +#: c-api/arg.rst:355 msgid "" "Tests the value passed in for truth (a boolean **p**\\ redicate) and " "converts the result to its equivalent C true/false integer value. Sets the " @@ -740,11 +825,11 @@ msgid "" "how Python tests values for truth." msgstr "" -#: ../Doc/c-api/arg.rst:366 ../Doc/c-api/arg.rst:660 +#: c-api/arg.rst:660 msgid "``(items)`` (:class:`tuple`) [*matching-items*]" msgstr "``(items)`` (:class:`tuple`) [*matching-items*]" -#: ../Doc/c-api/arg.rst:364 +#: c-api/arg.rst:364 msgid "" "The object must be a Python sequence whose length is the number of format " "units in *items*. The C arguments must correspond to the individual format " @@ -755,7 +840,7 @@ msgstr "" "chaque unité de format particulière dans *articles*. Les unités de formats " "pour les séquences peuvent être imbriquées." -#: ../Doc/c-api/arg.rst:368 +#: c-api/arg.rst:368 msgid "" "It is possible to pass \"long\" integers (integers whose value exceeds the " "platform's :const:`LONG_MAX`) however no proper range checking is done --- " @@ -764,7 +849,7 @@ msgid "" "downcasts in C --- your mileage may vary)." msgstr "" -#: ../Doc/c-api/arg.rst:374 +#: c-api/arg.rst:374 msgid "" "A few other characters have a meaning in a format string. These may not " "occur inside nested parentheses. They are:" @@ -772,11 +857,11 @@ msgstr "" "Quelques autres caractères ont un sens dans une chaîne de format. On ne doit " "pas les trouvées dans des parenthèses imbriquées. Ce sont :" -#: ../Doc/c-api/arg.rst:382 +#: c-api/arg.rst:382 msgid "``|``" msgstr "``|``" -#: ../Doc/c-api/arg.rst:378 +#: c-api/arg.rst:378 msgid "" "Indicates that the remaining arguments in the Python argument list are " "optional. The C variables corresponding to optional arguments should be " @@ -785,11 +870,11 @@ msgid "" "corresponding C variable(s)." msgstr "" -#: ../Doc/c-api/arg.rst:391 +#: c-api/arg.rst:391 msgid "``$``" msgstr "``$``" -#: ../Doc/c-api/arg.rst:385 +#: c-api/arg.rst:385 msgid "" ":c:func:`PyArg_ParseTupleAndKeywords` only: Indicates that the remaining " "arguments in the Python argument list are keyword-only. Currently, all " @@ -797,22 +882,22 @@ msgid "" "be specified before ``$`` in the format string." msgstr "" -#: ../Doc/c-api/arg.rst:396 +#: c-api/arg.rst:396 msgid "``:``" msgstr "" -#: ../Doc/c-api/arg.rst:394 +#: c-api/arg.rst:394 msgid "" "The list of format units ends here; the string after the colon is used as " "the function name in error messages (the \"associated value\" of the " "exception that :c:func:`PyArg_ParseTuple` raises)." msgstr "" -#: ../Doc/c-api/arg.rst:401 +#: c-api/arg.rst:401 msgid "``;``" msgstr "" -#: ../Doc/c-api/arg.rst:399 +#: c-api/arg.rst:399 msgid "" "The list of format units ends here; the string after the semicolon is used " "as the error message *instead* of the default error message. ``:`` and ``;" @@ -822,7 +907,7 @@ msgstr "" "virgule est utilise comme message d'erreur *au lieu* du message d'erreur par " "défaut. ``:`` et ``;`` sont mutuellement exclusifs." -#: ../Doc/c-api/arg.rst:403 +#: c-api/arg.rst:403 msgid "" "Note that any Python object references which are provided to the caller are " "*borrowed* references; do not decrement their reference count!" @@ -831,7 +916,7 @@ msgstr "" "à l'appelant sont des références *empruntées* ; ne décrémentez pas leur " "compteur de références !" -#: ../Doc/c-api/arg.rst:406 +#: c-api/arg.rst:406 msgid "" "Additional arguments passed to these functions must be addresses of " "variables whose type is determined by the format string; these are used to " @@ -848,7 +933,7 @@ msgstr "" "devraient correspondre à ce qui est spécifié pour l'unité de format " "correspondante." -#: ../Doc/c-api/arg.rst:412 +#: c-api/arg.rst:412 msgid "" "For the conversion to succeed, the *arg* object must match the format and " "the format must be exhausted. On success, the :c:func:`PyArg_Parse\\*` " @@ -859,24 +944,24 @@ msgid "" "untouched." msgstr "" -#: ../Doc/c-api/arg.rst:421 +#: c-api/arg.rst:421 msgid "API Functions" msgstr "Fonction de l'API" -#: ../Doc/c-api/arg.rst:425 +#: c-api/arg.rst:425 msgid "" "Parse the parameters of a function that takes only positional parameters " "into local variables. Returns true on success; on failure, it returns false " "and raises the appropriate exception." msgstr "" -#: ../Doc/c-api/arg.rst:432 +#: c-api/arg.rst:432 msgid "" "Identical to :c:func:`PyArg_ParseTuple`, except that it accepts a va_list " "rather than a variable number of arguments." msgstr "" -#: ../Doc/c-api/arg.rst:438 +#: c-api/arg.rst:438 msgid "" "Parse the parameters of a function that takes both positional and keyword " "parameters into local variables. The *keywords* argument is a ``NULL``-" @@ -885,26 +970,26 @@ msgid "" "success; on failure, it returns false and raises the appropriate exception." msgstr "" -#: ../Doc/c-api/arg.rst:445 +#: c-api/arg.rst:445 msgid "" "Added support for :ref:`positional-only parameters `." msgstr "" -#: ../Doc/c-api/arg.rst:452 +#: c-api/arg.rst:452 msgid "" "Identical to :c:func:`PyArg_ParseTupleAndKeywords`, except that it accepts a " "va_list rather than a variable number of arguments." msgstr "" -#: ../Doc/c-api/arg.rst:458 +#: c-api/arg.rst:458 msgid "" "Ensure that the keys in the keywords argument dictionary are strings. This " "is only needed if :c:func:`PyArg_ParseTupleAndKeywords` is not used, since " "the latter already does this check." msgstr "" -#: ../Doc/c-api/arg.rst:468 +#: c-api/arg.rst:468 msgid "" "Function used to deconstruct the argument lists of \"old-style\" functions " "--- these are functions which use the :const:`METH_OLDARGS` parameter " @@ -915,7 +1000,7 @@ msgid "" "continue to be used for that purpose." msgstr "" -#: ../Doc/c-api/arg.rst:479 +#: c-api/arg.rst:479 msgid "" "A simpler form of parameter retrieval which does not use a format string to " "specify the types of the arguments. Functions which use this method to " @@ -924,32 +1009,31 @@ msgid "" "should be passed as *args*; it must actually be a tuple. The length of the " "tuple must be at least *min* and no more than *max*; *min* and *max* may be " "equal. Additional arguments must be passed to the function, each of which " -"should be a pointer to a :c:type:`PyObject\\*` variable; these will be " -"filled in with the values from *args*; they will contain borrowed " -"references. The variables which correspond to optional parameters not given " -"by *args* will not be filled in; these should be initialized by the caller. " -"This function returns true on success and false if *args* is not a tuple or " -"contains the wrong number of elements; an exception will be set if there was " -"a failure." +"should be a pointer to a :c:type:`PyObject*` variable; these will be filled " +"in with the values from *args*; they will contain borrowed references. The " +"variables which correspond to optional parameters not given by *args* will " +"not be filled in; these should be initialized by the caller. This function " +"returns true on success and false if *args* is not a tuple or contains the " +"wrong number of elements; an exception will be set if there was a failure." msgstr "" -#: ../Doc/c-api/arg.rst:493 +#: c-api/arg.rst:493 msgid "" "This is an example of the use of this function, taken from the sources for " "the :mod:`_weakref` helper module for weak references::" msgstr "" -#: ../Doc/c-api/arg.rst:509 +#: c-api/arg.rst:509 msgid "" "The call to :c:func:`PyArg_UnpackTuple` in this example is entirely " "equivalent to this call to :c:func:`PyArg_ParseTuple`::" msgstr "" -#: ../Doc/c-api/arg.rst:517 +#: c-api/arg.rst:517 msgid "Building values" msgstr "Construction des valeurs" -#: ../Doc/c-api/arg.rst:521 +#: c-api/arg.rst:521 msgid "" "Create a new value based on a format string similar to those accepted by " "the :c:func:`PyArg_Parse\\*` family of functions and a sequence of values. " @@ -957,7 +1041,7 @@ msgid "" "raised if ``NULL`` is returned." msgstr "" -#: ../Doc/c-api/arg.rst:526 +#: c-api/arg.rst:526 msgid "" ":c:func:`Py_BuildValue` does not always build a tuple. It builds a tuple " "only if its format string contains two or more format units. If the format " @@ -966,7 +1050,7 @@ msgid "" "it to return a tuple of size 0 or one, parenthesize the format string." msgstr "" -#: ../Doc/c-api/arg.rst:532 +#: c-api/arg.rst:532 msgid "" "When memory buffers are passed as parameters to supply data to build " "objects, as for the ``s`` and ``s#`` formats, the required data is copied. " @@ -977,7 +1061,7 @@ msgid "" "`Py_BuildValue` returns." msgstr "" -#: ../Doc/c-api/arg.rst:540 +#: c-api/arg.rst:540 msgid "" "In the following description, the quoted form is the format unit; the entry " "in (round) parentheses is the Python object type that the format unit will " @@ -985,177 +1069,191 @@ msgid "" "be passed." msgstr "" -#: ../Doc/c-api/arg.rst:544 +#: c-api/arg.rst:544 msgid "" "The characters space, tab, colon and comma are ignored in format strings " "(but not within format units such as ``s#``). This can be used to make long " "format strings a tad more readable." msgstr "" -#: ../Doc/c-api/arg.rst:550 +#: c-api/arg.rst:550 msgid "``s`` (:class:`str` or ``None``) [const char \\*]" msgstr "``s`` (:class:`str` ou ``None``) [``const char *``]" -#: ../Doc/c-api/arg.rst:549 +#: c-api/arg.rst:549 msgid "" "Convert a null-terminated C string to a Python :class:`str` object using " "``'utf-8'`` encoding. If the C string pointer is ``NULL``, ``None`` is used." msgstr "" -#: ../Doc/c-api/arg.rst:555 -msgid "``s#`` (:class:`str` or ``None``) [const char \\*, int]" +#: c-api/arg.rst:555 +#, fuzzy +msgid "" +"``s#`` (:class:`str` or ``None``) [const char \\*, int or :c:type:" +"`Py_ssize_t`]" msgstr "``s#`` (:class:`str` ou ``None``) [``const char *``, ``int``]" -#: ../Doc/c-api/arg.rst:553 +#: c-api/arg.rst:553 msgid "" "Convert a C string and its length to a Python :class:`str` object using " "``'utf-8'`` encoding. If the C string pointer is ``NULL``, the length is " "ignored and ``None`` is returned." msgstr "" -#: ../Doc/c-api/arg.rst:559 +#: c-api/arg.rst:559 msgid "``y`` (:class:`bytes`) [const char \\*]" msgstr "``y`` (:class:`bytes`) [``const char *``]" -#: ../Doc/c-api/arg.rst:558 +#: c-api/arg.rst:558 msgid "" "This converts a C string to a Python :class:`bytes` object. If the C string " "pointer is ``NULL``, ``None`` is returned." msgstr "" -#: ../Doc/c-api/arg.rst:563 -msgid "``y#`` (:class:`bytes`) [const char \\*, int]" +#: c-api/arg.rst:563 +#, fuzzy +msgid "``y#`` (:class:`bytes`) [const char \\*, int or :c:type:`Py_ssize_t`]" msgstr "``y#`` (:class:`bytes`) [``const char *, int``]" -#: ../Doc/c-api/arg.rst:562 +#: c-api/arg.rst:562 msgid "" "This converts a C string and its lengths to a Python object. If the C " "string pointer is ``NULL``, ``None`` is returned." msgstr "" -#: ../Doc/c-api/arg.rst:566 ../Doc/c-api/arg.rst:582 +#: c-api/arg.rst:582 msgid "Same as ``s``." msgstr "" -#: ../Doc/c-api/arg.rst:569 -msgid "``z#`` (:class:`str` or ``None``) [const char \\*, int]" +#: c-api/arg.rst:569 +#, fuzzy +msgid "" +"``z#`` (:class:`str` or ``None``) [const char \\*, int or :c:type:" +"`Py_ssize_t`]" msgstr "``z#`` (:class:`str` ou ``None``) [``const char *``, ``int``]" -#: ../Doc/c-api/arg.rst:569 ../Doc/c-api/arg.rst:585 +#: c-api/arg.rst:585 msgid "Same as ``s#``." msgstr "" -#: ../Doc/c-api/arg.rst:574 +#: c-api/arg.rst:574 msgid "``u`` (:class:`str`) [const wchar_t \\*]" msgstr "``u`` (:class:`str`) [``const wchar_t *``]" -#: ../Doc/c-api/arg.rst:572 +#: c-api/arg.rst:572 msgid "" "Convert a null-terminated :c:type:`wchar_t` buffer of Unicode (UTF-16 or " "UCS-4) data to a Python Unicode object. If the Unicode buffer pointer is " "``NULL``, ``None`` is returned." msgstr "" -#: ../Doc/c-api/arg.rst:579 -msgid "``u#`` (:class:`str`) [const wchar_t \\*, int]" +#: c-api/arg.rst:579 +#, fuzzy +msgid "``u#`` (:class:`str`) [const wchar_t \\*, int or :c:type:`Py_ssize_t`]" msgstr "``u#`` (:class:`str`) [``const wchar_t *``, ``int``]" -#: ../Doc/c-api/arg.rst:577 +#: c-api/arg.rst:577 msgid "" "Convert a Unicode (UTF-16 or UCS-4) data buffer and its length to a Python " "Unicode object. If the Unicode buffer pointer is ``NULL``, the length is " "ignored and ``None`` is returned." msgstr "" -#: ../Doc/c-api/arg.rst:582 +#: c-api/arg.rst:582 msgid "``U`` (:class:`str` or ``None``) [const char \\*]" msgstr "``U`` (:class:`str` ou ``None``) [``const char *``]" -#: ../Doc/c-api/arg.rst:585 -msgid "``U#`` (:class:`str` or ``None``) [const char \\*, int]" +#: c-api/arg.rst:585 +#, fuzzy +msgid "" +"``U#`` (:class:`str` or ``None``) [const char \\*, int or :c:type:" +"`Py_ssize_t`]" msgstr "``U#`` (:class:`str` ou ``None``) [``const char *``, ``int``]" -#: ../Doc/c-api/arg.rst:588 +#: c-api/arg.rst:588 +#, fuzzy msgid "Convert a plain C :c:type:`int` to a Python integer object." -msgstr "" +msgstr "Convertit un :c:type:`long int` en un *int* Python." -#: ../Doc/c-api/arg.rst:591 +#: c-api/arg.rst:591 msgid "``b`` (:class:`int`) [char]" msgstr "``b`` (:class:`int`) [``char``]" -#: ../Doc/c-api/arg.rst:591 +#: c-api/arg.rst:591 msgid "Convert a plain C :c:type:`char` to a Python integer object." msgstr "" -#: ../Doc/c-api/arg.rst:594 +#: c-api/arg.rst:594 msgid "Convert a plain C :c:type:`short int` to a Python integer object." msgstr "" -#: ../Doc/c-api/arg.rst:597 +#: c-api/arg.rst:597 msgid "Convert a C :c:type:`long int` to a Python integer object." msgstr "Convertit un :c:type:`long int` en un *int* Python." -#: ../Doc/c-api/arg.rst:600 +#: c-api/arg.rst:600 msgid "Convert a C :c:type:`unsigned char` to a Python integer object." msgstr "" -#: ../Doc/c-api/arg.rst:603 +#: c-api/arg.rst:603 msgid "Convert a C :c:type:`unsigned short int` to a Python integer object." msgstr "" -#: ../Doc/c-api/arg.rst:606 +#: c-api/arg.rst:606 +#, fuzzy msgid "Convert a C :c:type:`unsigned int` to a Python integer object." -msgstr "" +msgstr "Convertit un :c:type:`long int` en un *int* Python." -#: ../Doc/c-api/arg.rst:609 +#: c-api/arg.rst:609 msgid "Convert a C :c:type:`unsigned long` to a Python integer object." msgstr "" -#: ../Doc/c-api/arg.rst:612 +#: c-api/arg.rst:612 +#, fuzzy msgid "Convert a C :c:type:`long long` to a Python integer object." -msgstr "" +msgstr "Convertit un :c:type:`long int` en un *int* Python." -#: ../Doc/c-api/arg.rst:615 +#: c-api/arg.rst:615 msgid "Convert a C :c:type:`unsigned long long` to a Python integer object." msgstr "" -#: ../Doc/c-api/arg.rst:618 +#: c-api/arg.rst:618 msgid "Convert a C :c:type:`Py_ssize_t` to a Python integer." msgstr "" -#: ../Doc/c-api/arg.rst:622 +#: c-api/arg.rst:622 msgid "``c`` (:class:`bytes` of length 1) [char]" msgstr "``c`` (:class:`bytes` de taille 1) [``char``]" -#: ../Doc/c-api/arg.rst:621 +#: c-api/arg.rst:621 msgid "" "Convert a C :c:type:`int` representing a byte to a Python :class:`bytes` " "object of length 1." msgstr "" -#: ../Doc/c-api/arg.rst:625 +#: c-api/arg.rst:625 msgid "" "Convert a C :c:type:`int` representing a character to Python :class:`str` " "object of length 1." msgstr "" -#: ../Doc/c-api/arg.rst:629 +#: c-api/arg.rst:629 msgid "Convert a C :c:type:`double` to a Python floating point number." msgstr "" -#: ../Doc/c-api/arg.rst:632 +#: c-api/arg.rst:632 msgid "Convert a C :c:type:`float` to a Python floating point number." msgstr "" -#: ../Doc/c-api/arg.rst:635 +#: c-api/arg.rst:635 msgid "``D`` (:class:`complex`) [Py_complex \\*]" msgstr "``D`` (:class:`complex`) [``Py_complex *``]" -#: ../Doc/c-api/arg.rst:635 +#: c-api/arg.rst:635 msgid "Convert a C :c:type:`Py_complex` structure to a Python complex number." msgstr "" -#: ../Doc/c-api/arg.rst:638 +#: c-api/arg.rst:638 msgid "" "Pass a Python object untouched (except for its reference count, which is " "incremented by one). If the object passed in is a ``NULL`` pointer, it is " @@ -1165,72 +1263,85 @@ msgid "" "raised yet, :exc:`SystemError` is set." msgstr "" -#: ../Doc/c-api/arg.rst:646 +#: c-api/arg.rst:646 msgid "``S`` (object) [PyObject \\*]" msgstr "``S`` (objet) [``PyObject *``]" -#: ../Doc/c-api/arg.rst:646 +#: c-api/arg.rst:646 msgid "Same as ``O``." msgstr "" -#: ../Doc/c-api/arg.rst:651 +#: c-api/arg.rst:651 msgid "``N`` (object) [PyObject \\*]" msgstr "``N`` (objet) [``PyObject *``]" -#: ../Doc/c-api/arg.rst:649 +#: c-api/arg.rst:649 msgid "" "Same as ``O``, except it doesn't increment the reference count on the " "object. Useful when the object is created by a call to an object constructor " "in the argument list." msgstr "" -#: ../Doc/c-api/arg.rst:654 +#: c-api/arg.rst:654 msgid "" "Convert *anything* to a Python object through a *converter* function. The " "function is called with *anything* (which should be compatible with :c:type:" -"`void \\*`) as its argument and should return a \"new\" Python object, or " +"`void*`) as its argument and should return a \"new\" Python object, or " "``NULL`` if an error occurred." msgstr "" -#: ../Doc/c-api/arg.rst:660 +#: c-api/arg.rst:660 msgid "" "Convert a sequence of C values to a Python tuple with the same number of " "items." msgstr "" -#: ../Doc/c-api/arg.rst:663 +#: c-api/arg.rst:663 msgid "``[items]`` (:class:`list`) [*matching-items*]" msgstr "``[items]`` (:class:`list`) [*matching-items*]" -#: ../Doc/c-api/arg.rst:663 +#: c-api/arg.rst:663 msgid "" "Convert a sequence of C values to a Python list with the same number of " "items." msgstr "" -#: ../Doc/c-api/arg.rst:668 +#: c-api/arg.rst:668 msgid "``{items}`` (:class:`dict`) [*matching-items*]" msgstr "``{items}`` (:class:`dict`) [*matching-items*]" -#: ../Doc/c-api/arg.rst:666 +#: c-api/arg.rst:666 msgid "" "Convert a sequence of C values to a Python dictionary. Each pair of " "consecutive C values adds one item to the dictionary, serving as key and " "value, respectively." msgstr "" -#: ../Doc/c-api/arg.rst:670 +#: c-api/arg.rst:670 msgid "" "If there is an error in the format string, the :exc:`SystemError` exception " "is set and ``NULL`` returned." msgstr "" -#: ../Doc/c-api/arg.rst:675 +#: c-api/arg.rst:675 msgid "" "Identical to :c:func:`Py_BuildValue`, except that it accepts a va_list " "rather than a variable number of arguments." msgstr "" +#~ msgid "" +#~ "``z#`` (:class:`str`, read-only :term:`bytes-like object` or ``None``) " +#~ "[const char \\*, int]" +#~ msgstr "" +#~ "``z#`` (:class:`str`, :term:`objet compatible avec une chaîne d'octets " +#~ "` en lecture seule ou ``None``) [constante char \\*, " +#~ "entier]" + +#~ msgid "``y#`` (read-only :term:`bytes-like object`) [const char \\*, int]" +#~ msgstr "" +#~ "``y#`` (lecture seule :term:`objet compatible avec une chaîne d'octets " +#~ "`) [constante char \\*, entier]" + #~ msgid "``s`` (:class:`str` or ``None``) [char \\*]" #~ msgstr "``s`` (:class:`str` ou ``None``) [char \\*]" diff --git a/c-api/buffer.po b/c-api/buffer.po index 5fd6ace00d..f8fed66c4f 100644 --- a/c-api/buffer.po +++ b/c-api/buffer.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-15 18:54+0100\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2018-10-04 12:18+0200\n" "Last-Translator: \n" "Language-Team: FRENCH \n" @@ -15,11 +15,11 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.0.2\n" -#: ../Doc/c-api/buffer.rst:11 +#: c-api/buffer.rst:11 msgid "Buffer Protocol" msgstr "Protocole tampon" -#: ../Doc/c-api/buffer.rst:18 +#: c-api/buffer.rst:18 msgid "" "Certain objects available in Python wrap access to an underlying memory " "array or *buffer*. Such objects include the built-in :class:`bytes` and :" @@ -34,7 +34,7 @@ msgstr "" "bibliothèques tierces peuvent définir leurs propres types à des fins " "spéciales, telles que le traitement d'image ou l'analyse numérique." -#: ../Doc/c-api/buffer.rst:24 +#: c-api/buffer.rst:24 msgid "" "While each of these types have their own semantics, they share the common " "characteristic of being backed by a possibly large memory buffer. It is " @@ -46,7 +46,7 @@ msgstr "" "Il est donc souhaitable, dans certains cas, d'accéder à cette mémoire " "directement sans l'étape intermédiaire de copie." -#: ../Doc/c-api/buffer.rst:29 +#: c-api/buffer.rst:29 msgid "" "Python provides such a facility at the C level in the form of the :ref:" "`buffer protocol `. This protocol has two sides:" @@ -54,7 +54,7 @@ msgstr "" "Python fournit une telle facilité au niveau du C sous la forme de :ref:" "`protocole tampon `. Ce protocole comporte deux aspects :" -#: ../Doc/c-api/buffer.rst:34 +#: c-api/buffer.rst:34 msgid "" "on the producer side, a type can export a \"buffer interface\" which allows " "objects of that type to expose information about their underlying buffer. " @@ -65,7 +65,7 @@ msgstr "" "tampon sous-jacent. Cette interface est décrite dans la section :ref:`buffer-" "structs` ;" -#: ../Doc/c-api/buffer.rst:38 +#: c-api/buffer.rst:38 msgid "" "on the consumer side, several means are available to obtain a pointer to the " "raw underlying data of an object (for example a method parameter)." @@ -74,7 +74,7 @@ msgstr "" "pointeur vers les données sous-jacentes brutes d'un objet (par exemple un " "paramètre de méthode)." -#: ../Doc/c-api/buffer.rst:41 +#: c-api/buffer.rst:41 msgid "" "Simple objects such as :class:`bytes` and :class:`bytearray` expose their " "underlying buffer in byte-oriented form. Other forms are possible; for " @@ -86,7 +86,7 @@ msgstr "" "possibles ; par exemple, les éléments exposés par un :class:`array.array` " "peuvent être des valeurs multi-octets." -#: ../Doc/c-api/buffer.rst:45 +#: c-api/buffer.rst:45 msgid "" "An example consumer of the buffer interface is the :meth:`~io.BufferedIOBase." "write` method of file objects: any object that can export a series of bytes " @@ -107,7 +107,7 @@ msgstr "" "rejeter sélectivement l'exportation de tampons en mode lecture-écriture et " "en mode lecture seule." -#: ../Doc/c-api/buffer.rst:53 +#: c-api/buffer.rst:53 msgid "" "There are two ways for a consumer of the buffer interface to acquire a " "buffer over a target object:" @@ -115,11 +115,11 @@ msgstr "" "Un consommateur de l'interface tampon peut acquérir un tampon sur un objet " "cible de deux manières :" -#: ../Doc/c-api/buffer.rst:56 +#: c-api/buffer.rst:56 msgid "call :c:func:`PyObject_GetBuffer` with the right parameters;" msgstr "appelez :c:func:`PyObject_GetBuffer` avec les paramètres appropriés ;" -#: ../Doc/c-api/buffer.rst:58 +#: c-api/buffer.rst:58 msgid "" "call :c:func:`PyArg_ParseTuple` (or one of its siblings) with one of the " "``y*``, ``w*`` or ``s*`` :ref:`format codes `." @@ -127,7 +127,7 @@ msgstr "" "appelez :c:func:`PyArg_ParseTuple` (ou l'un de ses fonctions sœurs) avec " "l'un des ``y*``, ``w*`` ou ``s*`` :ref:`format codes `." -#: ../Doc/c-api/buffer.rst:61 +#: c-api/buffer.rst:61 msgid "" "In both cases, :c:func:`PyBuffer_Release` must be called when the buffer " "isn't needed anymore. Failure to do so could lead to various issues such as " @@ -137,11 +137,11 @@ msgstr "" "tampon n'est plus nécessaire. Ne pas le faire peut conduire à divers " "problèmes tels que des fuites de ressources." -#: ../Doc/c-api/buffer.rst:69 +#: c-api/buffer.rst:69 msgid "Buffer structure" msgstr "La structure *buffer*" -#: ../Doc/c-api/buffer.rst:71 +#: c-api/buffer.rst:71 msgid "" "Buffer structures (or simply \"buffers\") are useful as a way to expose the " "binary data from another object to the Python programmer. They can also be " @@ -163,7 +163,7 @@ msgstr "" "être utilisé pour transmettre des données structurées dans son format natif " "en mémoire." -#: ../Doc/c-api/buffer.rst:80 +#: c-api/buffer.rst:80 msgid "" "Contrary to most data types exposed by the Python interpreter, buffers are " "not :c:type:`PyObject` pointers but rather simple C structures. This allows " @@ -178,14 +178,14 @@ msgstr "" "(*wrapper* en anglais) pour un tampon, un objet :ref:`memoryview ` peut être créé." -#: ../Doc/c-api/buffer.rst:86 +#: c-api/buffer.rst:86 msgid "" "For short instructions how to write an exporting object, see :ref:`Buffer " "Object Structures `. For obtaining a buffer, see :c:func:" "`PyObject_GetBuffer`." msgstr "" -#: ../Doc/c-api/buffer.rst:94 +#: c-api/buffer.rst:94 msgid "" "A pointer to the start of the logical structure described by the buffer " "fields. This can be any location within the underlying physical memory block " @@ -193,13 +193,13 @@ msgid "" "the value may point to the end of the memory block." msgstr "" -#: ../Doc/c-api/buffer.rst:99 +#: c-api/buffer.rst:99 msgid "" "For :term:`contiguous` arrays, the value points to the beginning of the " "memory block." msgstr "" -#: ../Doc/c-api/buffer.rst:104 +#: c-api/buffer.rst:104 msgid "" "A new reference to the exporting object. The reference is owned by the " "consumer and automatically decremented and set to ``NULL`` by :c:func:" @@ -207,14 +207,14 @@ msgid "" "standard C-API function." msgstr "" -#: ../Doc/c-api/buffer.rst:109 +#: c-api/buffer.rst:109 msgid "" "As a special case, for *temporary* buffers that are wrapped by :c:func:" "`PyMemoryView_FromBuffer` or :c:func:`PyBuffer_FillInfo` this field is " "``NULL``. In general, exporting objects MUST NOT use this scheme." msgstr "" -#: ../Doc/c-api/buffer.rst:116 +#: c-api/buffer.rst:116 msgid "" "``product(shape) * itemsize``. For contiguous arrays, this is the length of " "the underlying memory block. For non-contiguous arrays, it is the length " @@ -222,7 +222,7 @@ msgid "" "representation." msgstr "" -#: ../Doc/c-api/buffer.rst:121 +#: c-api/buffer.rst:121 msgid "" "Accessing ``((char *)buf)[0] up to ((char *)buf)[len-1]`` is only valid if " "the buffer has been obtained by a request that guarantees contiguity. In " @@ -230,19 +230,19 @@ msgid "" "`PyBUF_WRITABLE`." msgstr "" -#: ../Doc/c-api/buffer.rst:127 +#: c-api/buffer.rst:127 msgid "" "An indicator of whether the buffer is read-only. This field is controlled by " "the :c:macro:`PyBUF_WRITABLE` flag." msgstr "" -#: ../Doc/c-api/buffer.rst:132 +#: c-api/buffer.rst:132 msgid "" "Item size in bytes of a single element. Same as the value of :func:`struct." "calcsize` called on non-``NULL`` :c:member:`~Py_buffer.format` values." msgstr "" -#: ../Doc/c-api/buffer.rst:135 +#: c-api/buffer.rst:135 msgid "" "Important exception: If a consumer requests a buffer without the :c:macro:" "`PyBUF_FORMAT` flag, :c:member:`~Py_buffer.format` will be set to " @@ -250,32 +250,32 @@ msgid "" "original format." msgstr "" -#: ../Doc/c-api/buffer.rst:140 +#: c-api/buffer.rst:140 msgid "" "If :c:member:`~Py_buffer.shape` is present, the equality ``product(shape) * " "itemsize == len`` still holds and the consumer can use :c:member:`~Py_buffer." "itemsize` to navigate the buffer." msgstr "" -#: ../Doc/c-api/buffer.rst:144 +#: c-api/buffer.rst:144 msgid "" "If :c:member:`~Py_buffer.shape` is ``NULL`` as a result of a :c:macro:" "`PyBUF_SIMPLE` or a :c:macro:`PyBUF_WRITABLE` request, the consumer must " "disregard :c:member:`~Py_buffer.itemsize` and assume ``itemsize == 1``." msgstr "" -#: ../Doc/c-api/buffer.rst:150 +#: c-api/buffer.rst:150 msgid "" "A *NUL* terminated string in :mod:`struct` module style syntax describing " "the contents of a single item. If this is ``NULL``, ``\"B\"`` (unsigned " "bytes) is assumed." msgstr "" -#: ../Doc/c-api/buffer.rst:154 +#: c-api/buffer.rst:154 msgid "This field is controlled by the :c:macro:`PyBUF_FORMAT` flag." msgstr "" -#: ../Doc/c-api/buffer.rst:158 +#: c-api/buffer.rst:158 msgid "" "The number of dimensions the memory represents as an n-dimensional array. If " "it is ``0``, :c:member:`~Py_buffer.buf` points to a single item representing " @@ -283,14 +283,14 @@ msgid "" "strides` and :c:member:`~Py_buffer.suboffsets` MUST be ``NULL``." msgstr "" -#: ../Doc/c-api/buffer.rst:163 +#: c-api/buffer.rst:163 msgid "" "The macro :c:macro:`PyBUF_MAX_NDIM` limits the maximum number of dimensions " "to 64. Exporters MUST respect this limit, consumers of multi-dimensional " "buffers SHOULD be able to handle up to :c:macro:`PyBUF_MAX_NDIM` dimensions." msgstr "" -#: ../Doc/c-api/buffer.rst:169 +#: c-api/buffer.rst:169 msgid "" "An array of :c:type:`Py_ssize_t` of length :c:member:`~Py_buffer.ndim` " "indicating the shape of the memory as an n-dimensional array. Note that " @@ -298,34 +298,34 @@ msgid "" "`~Py_buffer.len`." msgstr "" -#: ../Doc/c-api/buffer.rst:174 +#: c-api/buffer.rst:174 msgid "" "Shape values are restricted to ``shape[n] >= 0``. The case ``shape[n] == 0`` " "requires special attention. See `complex arrays`_ for further information." msgstr "" -#: ../Doc/c-api/buffer.rst:178 +#: c-api/buffer.rst:178 msgid "The shape array is read-only for the consumer." msgstr "" -#: ../Doc/c-api/buffer.rst:182 +#: c-api/buffer.rst:182 msgid "" "An array of :c:type:`Py_ssize_t` of length :c:member:`~Py_buffer.ndim` " "giving the number of bytes to skip to get to a new element in each dimension." msgstr "" -#: ../Doc/c-api/buffer.rst:186 +#: c-api/buffer.rst:186 msgid "" "Stride values can be any integer. For regular arrays, strides are usually " "positive, but a consumer MUST be able to handle the case ``strides[n] <= " "0``. See `complex arrays`_ for further information." msgstr "" -#: ../Doc/c-api/buffer.rst:190 +#: c-api/buffer.rst:190 msgid "The strides array is read-only for the consumer." msgstr "" -#: ../Doc/c-api/buffer.rst:194 +#: c-api/buffer.rst:194 msgid "" "An array of :c:type:`Py_ssize_t` of length :c:member:`~Py_buffer.ndim`. If " "``suboffsets[n] >= 0``, the values stored along the nth dimension are " @@ -334,24 +334,24 @@ msgid "" "that no de-referencing should occur (striding in a contiguous memory block)." msgstr "" -#: ../Doc/c-api/buffer.rst:201 +#: c-api/buffer.rst:201 msgid "" "If all suboffsets are negative (i.e. no de-referencing is needed), then this " "field must be ``NULL`` (the default value)." msgstr "" -#: ../Doc/c-api/buffer.rst:204 +#: c-api/buffer.rst:204 msgid "" "This type of array representation is used by the Python Imaging Library " "(PIL). See `complex arrays`_ for further information how to access elements " "of such an array." msgstr "" -#: ../Doc/c-api/buffer.rst:208 +#: c-api/buffer.rst:208 msgid "The suboffsets array is read-only for the consumer." msgstr "" -#: ../Doc/c-api/buffer.rst:212 +#: c-api/buffer.rst:212 msgid "" "This is for use internally by the exporting object. For example, this might " "be re-cast as an integer by the exporter and used to store flags about " @@ -359,11 +359,11 @@ msgid "" "the buffer is released. The consumer MUST NOT alter this value." msgstr "" -#: ../Doc/c-api/buffer.rst:221 +#: c-api/buffer.rst:221 msgid "Buffer request types" msgstr "" -#: ../Doc/c-api/buffer.rst:223 +#: c-api/buffer.rst:223 msgid "" "Buffers are usually obtained by sending a buffer request to an exporting " "object via :c:func:`PyObject_GetBuffer`. Since the complexity of the logical " @@ -371,16 +371,16 @@ msgid "" "argument to specify the exact buffer type it can handle." msgstr "" -#: ../Doc/c-api/buffer.rst:228 +#: c-api/buffer.rst:228 msgid "" "All :c:data:`Py_buffer` fields are unambiguously defined by the request type." msgstr "" -#: ../Doc/c-api/buffer.rst:232 +#: c-api/buffer.rst:232 msgid "request-independent fields" msgstr "" -#: ../Doc/c-api/buffer.rst:233 +#: c-api/buffer.rst:233 msgid "" "The following fields are not influenced by *flags* and must always be filled " "in with the correct values: :c:member:`~Py_buffer.obj`, :c:member:" @@ -388,11 +388,11 @@ msgid "" "itemsize`, :c:member:`~Py_buffer.ndim`." msgstr "" -#: ../Doc/c-api/buffer.rst:239 +#: c-api/buffer.rst:239 msgid "readonly, format" msgstr "" -#: ../Doc/c-api/buffer.rst:243 +#: c-api/buffer.rst:243 msgid "" "Controls the :c:member:`~Py_buffer.readonly` field. If set, the exporter " "MUST provide a writable buffer or else report failure. Otherwise, the " @@ -400,13 +400,13 @@ msgid "" "MUST be consistent for all consumers." msgstr "" -#: ../Doc/c-api/buffer.rst:250 +#: c-api/buffer.rst:250 msgid "" "Controls the :c:member:`~Py_buffer.format` field. If set, this field MUST be " "filled in correctly. Otherwise, this field MUST be ``NULL``." msgstr "" -#: ../Doc/c-api/buffer.rst:254 +#: c-api/buffer.rst:254 msgid "" ":c:macro:`PyBUF_WRITABLE` can be \\|'d to any of the flags in the next " "section. Since :c:macro:`PyBUF_SIMPLE` is defined as 0, :c:macro:" @@ -414,154 +414,139 @@ msgid "" "writable buffer." msgstr "" -#: ../Doc/c-api/buffer.rst:258 +#: c-api/buffer.rst:258 msgid "" ":c:macro:`PyBUF_FORMAT` can be \\|'d to any of the flags except :c:macro:" "`PyBUF_SIMPLE`. The latter already implies format ``B`` (unsigned bytes)." msgstr "" -#: ../Doc/c-api/buffer.rst:263 +#: c-api/buffer.rst:263 msgid "shape, strides, suboffsets" msgstr "" -#: ../Doc/c-api/buffer.rst:265 +#: c-api/buffer.rst:265 msgid "" "The flags that control the logical structure of the memory are listed in " "decreasing order of complexity. Note that each flag contains all bits of the " "flags below it." msgstr "" -#: ../Doc/c-api/buffer.rst:272 ../Doc/c-api/buffer.rst:296 -#: ../Doc/c-api/buffer.rst:321 +#: c-api/buffer.rst:296 c-api/buffer.rst:321 msgid "Request" msgstr "" -#: ../Doc/c-api/buffer.rst:272 ../Doc/c-api/buffer.rst:296 -#: ../Doc/c-api/buffer.rst:321 +#: c-api/buffer.rst:296 c-api/buffer.rst:321 msgid "shape" msgstr "" -#: ../Doc/c-api/buffer.rst:272 ../Doc/c-api/buffer.rst:296 -#: ../Doc/c-api/buffer.rst:321 +#: c-api/buffer.rst:296 c-api/buffer.rst:321 msgid "strides" msgstr "" -#: ../Doc/c-api/buffer.rst:272 ../Doc/c-api/buffer.rst:296 -#: ../Doc/c-api/buffer.rst:321 +#: c-api/buffer.rst:296 c-api/buffer.rst:321 msgid "suboffsets" msgstr "" -#: ../Doc/c-api/buffer.rst:274 ../Doc/c-api/buffer.rst:276 -#: ../Doc/c-api/buffer.rst:278 ../Doc/c-api/buffer.rst:298 -#: ../Doc/c-api/buffer.rst:300 ../Doc/c-api/buffer.rst:302 -#: ../Doc/c-api/buffer.rst:304 ../Doc/c-api/buffer.rst:323 -#: ../Doc/c-api/buffer.rst:325 ../Doc/c-api/buffer.rst:327 -#: ../Doc/c-api/buffer.rst:329 ../Doc/c-api/buffer.rst:331 -#: ../Doc/c-api/buffer.rst:333 ../Doc/c-api/buffer.rst:335 -#: ../Doc/c-api/buffer.rst:337 +#: c-api/buffer.rst:276 c-api/buffer.rst:298 c-api/buffer.rst:302 +#: c-api/buffer.rst:323 c-api/buffer.rst:327 c-api/buffer.rst:331 +#: c-api/buffer.rst:335 c-api/buffer.rst:337 msgid "yes" msgstr "oui" -#: ../Doc/c-api/buffer.rst:274 ../Doc/c-api/buffer.rst:323 -#: ../Doc/c-api/buffer.rst:325 +#: c-api/buffer.rst:323 c-api/buffer.rst:325 msgid "if needed" -msgstr "" +msgstr "si nécessaire" -#: ../Doc/c-api/buffer.rst:276 ../Doc/c-api/buffer.rst:278 -#: ../Doc/c-api/buffer.rst:280 ../Doc/c-api/buffer.rst:298 -#: ../Doc/c-api/buffer.rst:300 ../Doc/c-api/buffer.rst:302 -#: ../Doc/c-api/buffer.rst:304 ../Doc/c-api/buffer.rst:327 -#: ../Doc/c-api/buffer.rst:329 ../Doc/c-api/buffer.rst:331 -#: ../Doc/c-api/buffer.rst:333 ../Doc/c-api/buffer.rst:335 -#: ../Doc/c-api/buffer.rst:337 +#: c-api/buffer.rst:278 c-api/buffer.rst:298 c-api/buffer.rst:302 +#: c-api/buffer.rst:327 c-api/buffer.rst:331 c-api/buffer.rst:335 +#: c-api/buffer.rst:337 msgid "NULL" msgstr "" -#: ../Doc/c-api/buffer.rst:287 +#: c-api/buffer.rst:287 msgid "contiguity requests" msgstr "" -#: ../Doc/c-api/buffer.rst:289 +#: c-api/buffer.rst:289 msgid "" "C or Fortran :term:`contiguity ` can be explicitly requested, " "with and without stride information. Without stride information, the buffer " "must be C-contiguous." msgstr "" -#: ../Doc/c-api/buffer.rst:296 ../Doc/c-api/buffer.rst:321 +#: c-api/buffer.rst:321 msgid "contig" msgstr "" -#: ../Doc/c-api/buffer.rst:298 ../Doc/c-api/buffer.rst:304 -#: ../Doc/c-api/buffer.rst:335 ../Doc/c-api/buffer.rst:337 +#: c-api/buffer.rst:304 c-api/buffer.rst:337 msgid "C" msgstr "" -#: ../Doc/c-api/buffer.rst:300 +#: c-api/buffer.rst:300 msgid "F" msgstr "F" -#: ../Doc/c-api/buffer.rst:302 +#: c-api/buffer.rst:302 msgid "C or F" msgstr "" -#: ../Doc/c-api/buffer.rst:309 +#: c-api/buffer.rst:304 +msgid ":c:macro:`PyBUF_ND`" +msgstr "" + +#: c-api/buffer.rst:309 msgid "compound requests" msgstr "" -#: ../Doc/c-api/buffer.rst:311 +#: c-api/buffer.rst:311 msgid "" "All possible requests are fully defined by some combination of the flags in " "the previous section. For convenience, the buffer protocol provides " "frequently used combinations as single flags." msgstr "" -#: ../Doc/c-api/buffer.rst:315 +#: c-api/buffer.rst:315 msgid "" "In the following table *U* stands for undefined contiguity. The consumer " "would have to call :c:func:`PyBuffer_IsContiguous` to determine contiguity." msgstr "" -#: ../Doc/c-api/buffer.rst:321 +#: c-api/buffer.rst:321 msgid "readonly" -msgstr "" +msgstr "lecture seule" -#: ../Doc/c-api/buffer.rst:321 +#: c-api/buffer.rst:321 msgid "format" msgstr "format" -#: ../Doc/c-api/buffer.rst:323 ../Doc/c-api/buffer.rst:325 -#: ../Doc/c-api/buffer.rst:327 ../Doc/c-api/buffer.rst:329 -#: ../Doc/c-api/buffer.rst:331 ../Doc/c-api/buffer.rst:333 +#: c-api/buffer.rst:325 c-api/buffer.rst:329 c-api/buffer.rst:333 msgid "U" msgstr "" -#: ../Doc/c-api/buffer.rst:323 ../Doc/c-api/buffer.rst:327 -#: ../Doc/c-api/buffer.rst:331 ../Doc/c-api/buffer.rst:335 +#: c-api/buffer.rst:327 c-api/buffer.rst:335 msgid "0" msgstr "0" -#: ../Doc/c-api/buffer.rst:325 ../Doc/c-api/buffer.rst:329 -#: ../Doc/c-api/buffer.rst:333 ../Doc/c-api/buffer.rst:337 +#: c-api/buffer.rst:329 c-api/buffer.rst:337 msgid "1 or 0" -msgstr "" +msgstr "0 ou 1" -#: ../Doc/c-api/buffer.rst:342 +#: c-api/buffer.rst:342 msgid "Complex arrays" msgstr "" -#: ../Doc/c-api/buffer.rst:345 +#: c-api/buffer.rst:345 msgid "NumPy-style: shape and strides" msgstr "" -#: ../Doc/c-api/buffer.rst:347 +#: c-api/buffer.rst:347 msgid "" "The logical structure of NumPy-style arrays is defined by :c:member:" "`~Py_buffer.itemsize`, :c:member:`~Py_buffer.ndim`, :c:member:`~Py_buffer." "shape` and :c:member:`~Py_buffer.strides`." msgstr "" -#: ../Doc/c-api/buffer.rst:350 +#: c-api/buffer.rst:350 msgid "" "If ``ndim == 0``, the memory location pointed to by :c:member:`~Py_buffer." "buf` is interpreted as a scalar of size :c:member:`~Py_buffer.itemsize`. In " @@ -569,25 +554,25 @@ msgid "" "strides` are ``NULL``." msgstr "" -#: ../Doc/c-api/buffer.rst:354 +#: c-api/buffer.rst:354 msgid "" "If :c:member:`~Py_buffer.strides` is ``NULL``, the array is interpreted as a " "standard n-dimensional C-array. Otherwise, the consumer must access an n-" "dimensional array as follows:" msgstr "" -#: ../Doc/c-api/buffer.rst:364 +#: c-api/buffer.rst:364 msgid "" "As noted above, :c:member:`~Py_buffer.buf` can point to any location within " "the actual memory block. An exporter can check the validity of a buffer with " "this function:" msgstr "" -#: ../Doc/c-api/buffer.rst:398 +#: c-api/buffer.rst:398 msgid "PIL-style: shape, strides and suboffsets" msgstr "" -#: ../Doc/c-api/buffer.rst:400 +#: c-api/buffer.rst:400 msgid "" "In addition to the regular items, PIL-style arrays can contain pointers that " "must be followed in order to get to the next element in a dimension. For " @@ -598,42 +583,40 @@ msgid "" "x[2][3]`` arrays that can be located anywhere in memory." msgstr "" -#: ../Doc/c-api/buffer.rst:409 +#: c-api/buffer.rst:409 msgid "" "Here is a function that returns a pointer to the element in an N-D array " "pointed to by an N-dimensional index when there are both non-``NULL`` " "strides and suboffsets::" msgstr "" -#: ../Doc/c-api/buffer.rst:428 +#: c-api/buffer.rst:428 msgid "Buffer-related functions" msgstr "Fonctions relatives aux tampons" -#: ../Doc/c-api/buffer.rst:432 +#: c-api/buffer.rst:432 msgid "" "Return ``1`` if *obj* supports the buffer interface otherwise ``0``. When " "``1`` is returned, it doesn't guarantee that :c:func:`PyObject_GetBuffer` " "will succeed. This function always succeeds." msgstr "" -#: ../Doc/c-api/buffer.rst:439 +#: c-api/buffer.rst:439 msgid "" "Send a request to *exporter* to fill in *view* as specified by *flags*. If " "the exporter cannot provide a buffer of the exact type, it MUST raise :c:" -"data:`PyExc_BufferError`, set :c:member:`view->obj` to ``NULL`` and return " -"``-1``." +"data:`PyExc_BufferError`, set ``view->obj`` to ``NULL`` and return ``-1``." msgstr "" -#: ../Doc/c-api/buffer.rst:444 +#: c-api/buffer.rst:444 msgid "" -"On success, fill in *view*, set :c:member:`view->obj` to a new reference to " +"On success, fill in *view*, set ``view->obj`` to a new reference to " "*exporter* and return 0. In the case of chained buffer providers that " -"redirect requests to a single object, :c:member:`view->obj` MAY refer to " -"this object instead of *exporter* (See :ref:`Buffer Object Structures " -"`)." +"redirect requests to a single object, ``view->obj`` MAY refer to this object " +"instead of *exporter* (See :ref:`Buffer Object Structures `)." msgstr "" -#: ../Doc/c-api/buffer.rst:449 +#: c-api/buffer.rst:449 msgid "" "Successful calls to :c:func:`PyObject_GetBuffer` must be paired with calls " "to :c:func:`PyBuffer_Release`, similar to :c:func:`malloc` and :c:func:" @@ -641,26 +624,26 @@ msgid "" "`PyBuffer_Release` must be called exactly once." msgstr "" -#: ../Doc/c-api/buffer.rst:457 +#: c-api/buffer.rst:457 msgid "" -"Release the buffer *view* and decrement the reference count for :c:member:" -"`view->obj`. This function MUST be called when the buffer is no longer being " +"Release the buffer *view* and decrement the reference count for ``view-" +">obj``. This function MUST be called when the buffer is no longer being " "used, otherwise reference leaks may occur." msgstr "" -#: ../Doc/c-api/buffer.rst:461 +#: c-api/buffer.rst:461 msgid "" "It is an error to call this function on a buffer that was not obtained via :" "c:func:`PyObject_GetBuffer`." msgstr "" -#: ../Doc/c-api/buffer.rst:467 +#: c-api/buffer.rst:467 msgid "" "Return the implied :c:data:`~Py_buffer.itemsize` from :c:data:`~Py_buffer." "format`. This function is not yet implemented." msgstr "" -#: ../Doc/c-api/buffer.rst:473 +#: c-api/buffer.rst:473 msgid "" "Return ``1`` if the memory defined by the *view* is C-style (*order* is " "``'C'``) or Fortran-style (*order* is ``'F'``) :term:`contiguous` or either " @@ -668,59 +651,59 @@ msgid "" "succeeds." msgstr "" -#: ../Doc/c-api/buffer.rst:480 +#: c-api/buffer.rst:480 msgid "" "Get the memory area pointed to by the *indices* inside the given *view*. " "*indices* must point to an array of ``view->ndim`` indices." msgstr "" -#: ../Doc/c-api/buffer.rst:486 +#: c-api/buffer.rst:486 msgid "" "Copy contiguous *len* bytes from *buf* to *view*. *fort* can be ``'C'`` or " "``'F'`` (for C-style or Fortran-style ordering). ``0`` is returned on " "success, ``-1`` on error." msgstr "" -#: ../Doc/c-api/buffer.rst:493 +#: c-api/buffer.rst:493 msgid "" "Copy *len* bytes from *src* to its contiguous representation in *buf*. " "*order* can be ``'C'`` or ``'F'`` or ``'A'`` (for C-style or Fortran-style " "ordering or either one). ``0`` is returned on success, ``-1`` on error." msgstr "" -#: ../Doc/c-api/buffer.rst:497 +#: c-api/buffer.rst:497 msgid "This function fails if *len* != *src->len*." msgstr "" -#: ../Doc/c-api/buffer.rst:502 +#: c-api/buffer.rst:502 msgid "" "Fill the *strides* array with byte-strides of a :term:`contiguous` (C-style " "if *order* is ``'C'`` or Fortran-style if *order* is ``'F'``) array of the " "given shape with the given number of bytes per element." msgstr "" -#: ../Doc/c-api/buffer.rst:509 +#: c-api/buffer.rst:509 msgid "" "Handle buffer requests for an exporter that wants to expose *buf* of size " "*len* with writability set according to *readonly*. *buf* is interpreted as " "a sequence of unsigned bytes." msgstr "" -#: ../Doc/c-api/buffer.rst:513 +#: c-api/buffer.rst:513 msgid "" "The *flags* argument indicates the request type. This function always fills " "in *view* as specified by flags, unless *buf* has been designated as read-" "only and :c:macro:`PyBUF_WRITABLE` is set in *flags*." msgstr "" -#: ../Doc/c-api/buffer.rst:517 +#: c-api/buffer.rst:517 msgid "" -"On success, set :c:member:`view->obj` to a new reference to *exporter* and " -"return 0. Otherwise, raise :c:data:`PyExc_BufferError`, set :c:member:`view-" -">obj` to ``NULL`` and return ``-1``;" +"On success, set ``view->obj`` to a new reference to *exporter* and return 0. " +"Otherwise, raise :c:data:`PyExc_BufferError`, set ``view->obj`` to ``NULL`` " +"and return ``-1``;" msgstr "" -#: ../Doc/c-api/buffer.rst:521 +#: c-api/buffer.rst:521 msgid "" "If this function is used as part of a :ref:`getbufferproc `, " "*exporter* MUST be set to the exporting object and *flags* must be passed " diff --git a/c-api/bytearray.po b/c-api/bytearray.po index d804059a48..467059a382 100644 --- a/c-api/bytearray.po +++ b/c-api/bytearray.po @@ -65,13 +65,12 @@ msgstr "" "implémente le :ref:`protocole buffer `." #: ../Doc/c-api/bytearray.rst:50 -#, fuzzy msgid "" "Create a new bytearray object from *string* and its length, *len*. On " "failure, ``NULL`` is returned." msgstr "" "Crée un nouvel objet ``bytearray`` à partir d'un objet *string* et de sa " -"longueur, *len*. En cas d'échec, *NULL* est renvoyé." +"longueur, *len*. En cas d'échec, ``NULL`` est renvoyé." #: ../Doc/c-api/bytearray.rst:56 msgid "" @@ -81,21 +80,19 @@ msgstr "" "avec le résultat." #: ../Doc/c-api/bytearray.rst:61 -#, fuzzy msgid "Return the size of *bytearray* after checking for a ``NULL`` pointer." msgstr "" "Renvoie la taille de *bytearray* après vérification de la présence d'un " -"pointeur *NULL*." +"pointeur ``NULL``." #: ../Doc/c-api/bytearray.rst:66 -#, fuzzy msgid "" "Return the contents of *bytearray* as a char array after checking for a " "``NULL`` pointer. The returned array always has an extra null byte appended." msgstr "" "Renvoie le contenu de *bytearray* sous forme d'un tableau de caractères, en " -"vérifiant que ce n'est pas un pointeur *NULL*. Le tableau renvoyé se termine " -"toujours par un octet *null*." +"vérifiant que ce n'est pas un pointeur ``NULL``. Le tableau renvoyé a " +"toujours un caractère *null* rajouté." #: ../Doc/c-api/bytearray.rst:73 msgid "Resize the internal buffer of *bytearray* to *len*." diff --git a/c-api/bytes.po b/c-api/bytes.po index 769d625a81..aa61904d17 100644 --- a/c-api/bytes.po +++ b/c-api/bytes.po @@ -14,53 +14,64 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/c-api/bytes.rst:6 +#: c-api/bytes.rst:6 msgid "Bytes Objects" msgstr "Objets *bytes*" -#: ../Doc/c-api/bytes.rst:8 +#: c-api/bytes.rst:8 msgid "" "These functions raise :exc:`TypeError` when expecting a bytes parameter and " "are called with a non-bytes parameter." msgstr "" -#: ../Doc/c-api/bytes.rst:16 +#: c-api/bytes.rst:16 +#, fuzzy msgid "This subtype of :c:type:`PyObject` represents a Python bytes object." msgstr "" +"Ce sous-type de :c:type:`PyObject` représente un objet ``bytearray`` Python." -#: ../Doc/c-api/bytes.rst:21 +#: c-api/bytes.rst:21 +#, fuzzy msgid "" "This instance of :c:type:`PyTypeObject` represents the Python bytes type; it " "is the same object as :class:`bytes` in the Python layer." msgstr "" +"Cette instance de :c:type:`PyTypeObject` représente le type Python " +"*bytearray*, c'est le même que :class:`bytearray` côté Python." -#: ../Doc/c-api/bytes.rst:27 +#: c-api/bytes.rst:27 +#, fuzzy msgid "" "Return true if the object *o* is a bytes object or an instance of a subtype " "of the bytes type." msgstr "" +"Renvoie vrai si l'objet *o* est un ``bytearray`` ou une instance d'un sous-" +"type du type ``bytearray``." -#: ../Doc/c-api/bytes.rst:33 +#: c-api/bytes.rst:33 +#, fuzzy msgid "" "Return true if the object *o* is a bytes object, but not an instance of a " "subtype of the bytes type." msgstr "" +"Renvoie vrai si l'objet *o* est un ``bytearray``, mais pas une instance d'un " +"sous-type du type ``bytearray``." -#: ../Doc/c-api/bytes.rst:39 +#: c-api/bytes.rst:39 msgid "" "Return a new bytes object with a copy of the string *v* as value on success, " "and ``NULL`` on failure. The parameter *v* must not be ``NULL``; it will " "not be checked." msgstr "" -#: ../Doc/c-api/bytes.rst:46 +#: c-api/bytes.rst:46 msgid "" "Return a new bytes object with a copy of the string *v* as value and length " "*len* on success, and ``NULL`` on failure. If *v* is ``NULL``, the contents " "of the bytes object are uninitialized." msgstr "" -#: ../Doc/c-api/bytes.rst:53 +#: c-api/bytes.rst:53 msgid "" "Take a C :c:func:`printf`\\ -style *format* string and a variable number of " "arguments, calculate the size of the resulting Python bytes object and " @@ -70,187 +81,187 @@ msgid "" "allowed:" msgstr "" -#: ../Doc/c-api/bytes.rst:68 +#: c-api/bytes.rst:68 msgid "Format Characters" -msgstr "" +msgstr "Caractères de format" -#: ../Doc/c-api/bytes.rst:68 +#: c-api/bytes.rst:68 msgid "Type" msgstr "Type" -#: ../Doc/c-api/bytes.rst:68 +#: c-api/bytes.rst:68 +#, fuzzy msgid "Comment" -msgstr "" +msgstr "Commentaires" -#: ../Doc/c-api/bytes.rst:70 +#: c-api/bytes.rst:70 msgid ":attr:`%%`" -msgstr "" +msgstr ":attr:`%%`" -#: ../Doc/c-api/bytes.rst:70 +#: c-api/bytes.rst:70 msgid "*n/a*" msgstr "" -#: ../Doc/c-api/bytes.rst:70 +#: c-api/bytes.rst:70 msgid "The literal % character." msgstr "" -#: ../Doc/c-api/bytes.rst:72 +#: c-api/bytes.rst:72 msgid ":attr:`%c`" -msgstr "" +msgstr ":attr:`%c`" -#: ../Doc/c-api/bytes.rst:72 ../Doc/c-api/bytes.rst:75 -#: ../Doc/c-api/bytes.rst:93 ../Doc/c-api/bytes.rst:96 +#: c-api/bytes.rst:75 c-api/bytes.rst:96 msgid "int" msgstr "*int*" -#: ../Doc/c-api/bytes.rst:72 +#: c-api/bytes.rst:72 msgid "A single byte, represented as a C int." msgstr "" -#: ../Doc/c-api/bytes.rst:75 +#: c-api/bytes.rst:75 msgid ":attr:`%d`" -msgstr "" +msgstr ":attr:`%d`" -#: ../Doc/c-api/bytes.rst:75 +#: c-api/bytes.rst:75 msgid "Equivalent to ``printf(\"%d\")``. [1]_" msgstr "" -#: ../Doc/c-api/bytes.rst:78 +#: c-api/bytes.rst:78 msgid ":attr:`%u`" -msgstr "" +msgstr ":attr:`%u`" -#: ../Doc/c-api/bytes.rst:78 +#: c-api/bytes.rst:78 msgid "unsigned int" msgstr "``unsigned int``" -#: ../Doc/c-api/bytes.rst:78 +#: c-api/bytes.rst:78 msgid "Equivalent to ``printf(\"%u\")``. [1]_" msgstr "" -#: ../Doc/c-api/bytes.rst:81 +#: c-api/bytes.rst:81 msgid ":attr:`%ld`" -msgstr "" +msgstr ":attr:`%ld`" -#: ../Doc/c-api/bytes.rst:81 +#: c-api/bytes.rst:81 msgid "long" msgstr "" -#: ../Doc/c-api/bytes.rst:81 +#: c-api/bytes.rst:81 msgid "Equivalent to ``printf(\"%ld\")``. [1]_" msgstr "" -#: ../Doc/c-api/bytes.rst:84 +#: c-api/bytes.rst:84 msgid ":attr:`%lu`" -msgstr "" +msgstr ":attr:`%lu`" -#: ../Doc/c-api/bytes.rst:84 +#: c-api/bytes.rst:84 msgid "unsigned long" msgstr "``unsigned long``" -#: ../Doc/c-api/bytes.rst:84 +#: c-api/bytes.rst:84 msgid "Equivalent to ``printf(\"%lu\")``. [1]_" msgstr "" -#: ../Doc/c-api/bytes.rst:87 +#: c-api/bytes.rst:87 msgid ":attr:`%zd`" -msgstr "" +msgstr ":attr:`%zd`" -#: ../Doc/c-api/bytes.rst:87 +#: c-api/bytes.rst:87 msgid "Py_ssize_t" msgstr "" -#: ../Doc/c-api/bytes.rst:87 +#: c-api/bytes.rst:87 msgid "Equivalent to ``printf(\"%zd\")``. [1]_" msgstr "" -#: ../Doc/c-api/bytes.rst:90 +#: c-api/bytes.rst:90 msgid ":attr:`%zu`" -msgstr "" +msgstr ":attr:`%zu`" -#: ../Doc/c-api/bytes.rst:90 +#: c-api/bytes.rst:90 msgid "size_t" msgstr "" -#: ../Doc/c-api/bytes.rst:90 +#: c-api/bytes.rst:90 msgid "Equivalent to ``printf(\"%zu\")``. [1]_" msgstr "" -#: ../Doc/c-api/bytes.rst:93 +#: c-api/bytes.rst:93 msgid ":attr:`%i`" -msgstr "" +msgstr ":attr:`%i`" -#: ../Doc/c-api/bytes.rst:93 +#: c-api/bytes.rst:93 msgid "Equivalent to ``printf(\"%i\")``. [1]_" msgstr "" -#: ../Doc/c-api/bytes.rst:96 +#: c-api/bytes.rst:96 msgid ":attr:`%x`" -msgstr "" +msgstr ":attr:`%x`" -#: ../Doc/c-api/bytes.rst:96 +#: c-api/bytes.rst:96 msgid "Equivalent to ``printf(\"%x\")``. [1]_" msgstr "" -#: ../Doc/c-api/bytes.rst:99 +#: c-api/bytes.rst:99 msgid ":attr:`%s`" -msgstr "" +msgstr ":attr:`%s`" -#: ../Doc/c-api/bytes.rst:99 +#: c-api/bytes.rst:99 msgid "const char\\*" msgstr "" -#: ../Doc/c-api/bytes.rst:99 +#: c-api/bytes.rst:99 msgid "A null-terminated C character array." msgstr "" -#: ../Doc/c-api/bytes.rst:102 +#: c-api/bytes.rst:102 msgid ":attr:`%p`" -msgstr "" +msgstr ":attr:`%p`" -#: ../Doc/c-api/bytes.rst:102 +#: c-api/bytes.rst:102 msgid "const void\\*" msgstr "" -#: ../Doc/c-api/bytes.rst:102 +#: c-api/bytes.rst:102 msgid "" -"The hex representation of a C pointer. Mostly equivalent to ``printf(\"%p" -"\")`` except that it is guaranteed to start with the literal ``0x`` " -"regardless of what the platform's ``printf`` yields." +"The hex representation of a C pointer. Mostly equivalent to " +"``printf(\"%p\")`` except that it is guaranteed to start with the literal " +"``0x`` regardless of what the platform's ``printf`` yields." msgstr "" -#: ../Doc/c-api/bytes.rst:111 +#: c-api/bytes.rst:111 msgid "" "An unrecognized format character causes all the rest of the format string to " "be copied as-is to the result object, and any extra arguments discarded." msgstr "" -#: ../Doc/c-api/bytes.rst:114 +#: c-api/bytes.rst:114 msgid "" "For integer specifiers (d, u, ld, lu, zd, zu, i, x): the 0-conversion flag " "has effect even when a precision is given." msgstr "" -#: ../Doc/c-api/bytes.rst:120 +#: c-api/bytes.rst:120 msgid "" "Identical to :c:func:`PyBytes_FromFormat` except that it takes exactly two " "arguments." msgstr "" -#: ../Doc/c-api/bytes.rst:126 +#: c-api/bytes.rst:126 msgid "" "Return the bytes representation of object *o* that implements the buffer " "protocol." msgstr "" -#: ../Doc/c-api/bytes.rst:132 +#: c-api/bytes.rst:132 msgid "Return the length of the bytes in bytes object *o*." msgstr "" -#: ../Doc/c-api/bytes.rst:137 +#: c-api/bytes.rst:137 msgid "Macro form of :c:func:`PyBytes_Size` but without error checking." msgstr "" -#: ../Doc/c-api/bytes.rst:142 +#: c-api/bytes.rst:142 msgid "" "Return a pointer to the contents of *o*. The pointer refers to the internal " "buffer of *o*, which consists of ``len(o) + 1`` bytes. The last byte in the " @@ -261,24 +272,24 @@ msgid "" "`PyBytes_AsString` returns ``NULL`` and raises :exc:`TypeError`." msgstr "" -#: ../Doc/c-api/bytes.rst:154 +#: c-api/bytes.rst:154 msgid "Macro form of :c:func:`PyBytes_AsString` but without error checking." msgstr "" -#: ../Doc/c-api/bytes.rst:159 +#: c-api/bytes.rst:159 msgid "" "Return the null-terminated contents of the object *obj* through the output " "variables *buffer* and *length*." msgstr "" -#: ../Doc/c-api/bytes.rst:162 +#: c-api/bytes.rst:162 msgid "" "If *length* is ``NULL``, the bytes object may not contain embedded null " "bytes; if it does, the function returns ``-1`` and a :exc:`ValueError` is " "raised." msgstr "" -#: ../Doc/c-api/bytes.rst:166 +#: c-api/bytes.rst:166 msgid "" "The buffer refers to an internal buffer of *obj*, which includes an " "additional null byte at the end (not counted in *length*). The data must " @@ -288,13 +299,13 @@ msgid "" "returns ``-1`` and raises :exc:`TypeError`." msgstr "" -#: ../Doc/c-api/bytes.rst:173 +#: c-api/bytes.rst:173 msgid "" "Previously, :exc:`TypeError` was raised when embedded null bytes were " "encountered in the bytes object." msgstr "" -#: ../Doc/c-api/bytes.rst:180 +#: c-api/bytes.rst:180 msgid "" "Create a new bytes object in *\\*bytes* containing the contents of *newpart* " "appended to *bytes*; the caller will own the new reference. The reference " @@ -303,14 +314,14 @@ msgid "" "of *\\*bytes* will be set to ``NULL``; the appropriate exception will be set." msgstr "" -#: ../Doc/c-api/bytes.rst:189 +#: c-api/bytes.rst:189 msgid "" "Create a new bytes object in *\\*bytes* containing the contents of *newpart* " "appended to *bytes*. This version decrements the reference count of " "*newpart*." msgstr "" -#: ../Doc/c-api/bytes.rst:196 +#: c-api/bytes.rst:196 msgid "" "A way to resize a bytes object even though it is \"immutable\". Only use " "this to build up a brand new bytes object; don't use this if the bytes may " @@ -319,7 +330,7 @@ msgid "" "address of an existing bytes object as an lvalue (it may be written into), " "and the new size desired. On success, *\\*bytes* holds the resized bytes " "object and ``0`` is returned; the address in *\\*bytes* may differ from its " -"input value. If the reallocation fails, the original bytes object at *" -"\\*bytes* is deallocated, *\\*bytes* is set to ``NULL``, :exc:`MemoryError` " +"input value. If the reallocation fails, the original bytes object at " +"*\\*bytes* is deallocated, *\\*bytes* is set to ``NULL``, :exc:`MemoryError` " "is set, and ``-1`` is returned." msgstr "" diff --git a/c-api/capsule.po b/c-api/capsule.po index cb0ed98457..a5811d8ac5 100644 --- a/c-api/capsule.po +++ b/c-api/capsule.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-15 18:54+0100\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,78 +14,78 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/c-api/capsule.rst:6 +#: c-api/capsule.rst:6 msgid "Capsules" msgstr "Capsules" -#: ../Doc/c-api/capsule.rst:10 +#: c-api/capsule.rst:10 msgid "" "Refer to :ref:`using-capsules` for more information on using these objects." msgstr "" "Reportez-vous à :ref:`using-capsules` pour plus d'informations sur " "l'utilisation de ces objets." -#: ../Doc/c-api/capsule.rst:17 +#: c-api/capsule.rst:17 msgid "" "This subtype of :c:type:`PyObject` represents an opaque value, useful for C " -"extension modules who need to pass an opaque value (as a :c:type:`void\\*` " +"extension modules who need to pass an opaque value (as a :c:type:`void*` " "pointer) through Python code to other C code. It is often used to make a C " "function pointer defined in one module available to other modules, so the " "regular import mechanism can be used to access C APIs defined in dynamically " "loaded modules." msgstr "" -#: ../Doc/c-api/capsule.rst:27 +#: c-api/capsule.rst:27 msgid "The type of a destructor callback for a capsule. Defined as::" msgstr "" -#: ../Doc/c-api/capsule.rst:31 +#: c-api/capsule.rst:31 msgid "" "See :c:func:`PyCapsule_New` for the semantics of PyCapsule_Destructor " "callbacks." msgstr "" -#: ../Doc/c-api/capsule.rst:37 +#: c-api/capsule.rst:37 msgid "Return true if its argument is a :c:type:`PyCapsule`." msgstr "" -#: ../Doc/c-api/capsule.rst:42 +#: c-api/capsule.rst:42 msgid "" "Create a :c:type:`PyCapsule` encapsulating the *pointer*. The *pointer* " "argument may not be ``NULL``." msgstr "" -#: ../Doc/c-api/capsule.rst:45 +#: c-api/capsule.rst:45 msgid "On failure, set an exception and return ``NULL``." msgstr "" -#: ../Doc/c-api/capsule.rst:47 +#: c-api/capsule.rst:47 msgid "" "The *name* string may either be ``NULL`` or a pointer to a valid C string. " "If non-``NULL``, this string must outlive the capsule. (Though it is " "permitted to free it inside the *destructor*.)" msgstr "" -#: ../Doc/c-api/capsule.rst:51 +#: c-api/capsule.rst:51 msgid "" "If the *destructor* argument is not ``NULL``, it will be called with the " "capsule as its argument when it is destroyed." msgstr "" -#: ../Doc/c-api/capsule.rst:54 +#: c-api/capsule.rst:54 msgid "" "If this capsule will be stored as an attribute of a module, the *name* " "should be specified as ``modulename.attributename``. This will enable other " "modules to import the capsule using :c:func:`PyCapsule_Import`." msgstr "" -#: ../Doc/c-api/capsule.rst:61 +#: c-api/capsule.rst:61 msgid "" "Retrieve the *pointer* stored in the capsule. On failure, set an exception " "and return ``NULL``." msgstr "" -#: ../Doc/c-api/capsule.rst:64 +#: c-api/capsule.rst:64 msgid "" "The *name* parameter must compare exactly to the name stored in the capsule. " "If the name stored in the capsule is ``NULL``, the *name* passed in must " @@ -93,46 +93,46 @@ msgid "" "capsule names." msgstr "" -#: ../Doc/c-api/capsule.rst:72 +#: c-api/capsule.rst:72 msgid "" "Return the current destructor stored in the capsule. On failure, set an " "exception and return ``NULL``." msgstr "" -#: ../Doc/c-api/capsule.rst:75 +#: c-api/capsule.rst:75 msgid "" "It is legal for a capsule to have a ``NULL`` destructor. This makes a " "``NULL`` return code somewhat ambiguous; use :c:func:`PyCapsule_IsValid` or :" "c:func:`PyErr_Occurred` to disambiguate." msgstr "" -#: ../Doc/c-api/capsule.rst:82 +#: c-api/capsule.rst:82 msgid "" "Return the current context stored in the capsule. On failure, set an " "exception and return ``NULL``." msgstr "" -#: ../Doc/c-api/capsule.rst:85 +#: c-api/capsule.rst:85 msgid "" "It is legal for a capsule to have a ``NULL`` context. This makes a ``NULL`` " "return code somewhat ambiguous; use :c:func:`PyCapsule_IsValid` or :c:func:" "`PyErr_Occurred` to disambiguate." msgstr "" -#: ../Doc/c-api/capsule.rst:92 +#: c-api/capsule.rst:92 msgid "" "Return the current name stored in the capsule. On failure, set an exception " "and return ``NULL``." msgstr "" -#: ../Doc/c-api/capsule.rst:95 +#: c-api/capsule.rst:95 msgid "" "It is legal for a capsule to have a ``NULL`` name. This makes a ``NULL`` " "return code somewhat ambiguous; use :c:func:`PyCapsule_IsValid` or :c:func:" "`PyErr_Occurred` to disambiguate." msgstr "" -#: ../Doc/c-api/capsule.rst:102 +#: c-api/capsule.rst:102 msgid "" "Import a pointer to a C object from a capsule attribute in a module. The " "*name* parameter should specify the full name to the attribute, as in " @@ -142,13 +142,13 @@ msgid "" "import the module conventionally (using :c:func:`PyImport_ImportModule`)." msgstr "" -#: ../Doc/c-api/capsule.rst:109 +#: c-api/capsule.rst:109 msgid "" "Return the capsule's internal *pointer* on success. On failure, set an " "exception and return ``NULL``." msgstr "" -#: ../Doc/c-api/capsule.rst:115 +#: c-api/capsule.rst:115 msgid "" "Determines whether or not *capsule* is a valid capsule. A valid capsule is " "non-``NULL``, passes :c:func:`PyCapsule_CheckExact`, has a non-``NULL`` " @@ -157,41 +157,40 @@ msgid "" "compared.)" msgstr "" -#: ../Doc/c-api/capsule.rst:121 +#: c-api/capsule.rst:121 msgid "" "In other words, if :c:func:`PyCapsule_IsValid` returns a true value, calls " "to any of the accessors (any function starting with :c:func:`PyCapsule_Get`) " "are guaranteed to succeed." msgstr "" -#: ../Doc/c-api/capsule.rst:125 +#: c-api/capsule.rst:125 msgid "" "Return a nonzero value if the object is valid and matches the name passed " "in. Return ``0`` otherwise. This function will not fail." msgstr "" -#: ../Doc/c-api/capsule.rst:131 +#: c-api/capsule.rst:131 msgid "Set the context pointer inside *capsule* to *context*." msgstr "" -#: ../Doc/c-api/capsule.rst:133 ../Doc/c-api/capsule.rst:140 -#: ../Doc/c-api/capsule.rst:149 ../Doc/c-api/capsule.rst:157 +#: c-api/capsule.rst:140 c-api/capsule.rst:157 msgid "" "Return ``0`` on success. Return nonzero and set an exception on failure." msgstr "" -#: ../Doc/c-api/capsule.rst:138 +#: c-api/capsule.rst:138 msgid "Set the destructor inside *capsule* to *destructor*." msgstr "" -#: ../Doc/c-api/capsule.rst:145 +#: c-api/capsule.rst:145 msgid "" "Set the name inside *capsule* to *name*. If non-``NULL``, the name must " "outlive the capsule. If the previous *name* stored in the capsule was not " "``NULL``, no attempt is made to free it." msgstr "" -#: ../Doc/c-api/capsule.rst:154 +#: c-api/capsule.rst:154 msgid "" "Set the void pointer inside *capsule* to *pointer*. The pointer may not be " "``NULL``." diff --git a/c-api/code.po b/c-api/code.po index 26467d30cb..6fa942ebed 100644 --- a/c-api/code.po +++ b/c-api/code.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-15 18:54+0100\n" +"POT-Creation-Date: 2020-02-04 10:00+0100\n" "PO-Revision-Date: 2018-02-15 00:30+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -67,7 +67,7 @@ msgstr "" #: ../Doc/c-api/code.rst:45 msgid "" "Similar to :c:func:`PyCode_New`, but with an extra \"posonlyargcount\" for " -"positonal-only arguments." +"positional-only arguments." msgstr "" #: ../Doc/c-api/code.rst:51 diff --git a/c-api/concrete.po b/c-api/concrete.po index 24b2952380..b303bb5163 100644 --- a/c-api/concrete.po +++ b/c-api/concrete.po @@ -36,7 +36,6 @@ msgstr "" "types d'objets Python." #: ../Doc/c-api/concrete.rst:19 -#, fuzzy msgid "" "While the functions described in this chapter carefully check the type of " "the objects which are passed in, many of them do not check for ``NULL`` " @@ -46,9 +45,9 @@ msgid "" msgstr "" "Tandis que les fonctions décrites dans ce chapitre vérifient avec soin le " "type des objets qui leur sont passés, beaucoup d'entre elles ne vérifient " -"pas que *NULL* est passé au lieu d'un objet valide. Autoriser *NULL* à être " -"passé peut provoquer des violations d'accès à la mémoire et ainsi terminer " -"immédiatement l'interpréteur." +"pas que ``NULL`` est passé au lieu d'un objet valide. Autoriser ``NULL`` à " +"être passé peut provoquer des violations d'accès à la mémoire et ainsi " +"terminer immédiatement l'interpréteur." #: ../Doc/c-api/concrete.rst:28 msgid "Fundamental Objects" diff --git a/c-api/contextvars.po b/c-api/contextvars.po index b5d48cf8de..7ae9025727 100644 --- a/c-api/contextvars.po +++ b/c-api/contextvars.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-15 18:54+0100\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2018-08-03 23:47+0200\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,163 +14,163 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/c-api/contextvars.rst:6 +#: c-api/contextvars.rst:6 msgid "Context Variables Objects" msgstr "" -#: ../Doc/c-api/contextvars.rst:13 +#: c-api/contextvars.rst:13 msgid "" "In Python 3.7.1 the signatures of all context variables C APIs were " "**changed** to use :c:type:`PyObject` pointers instead of :c:type:" "`PyContext`, :c:type:`PyContextVar`, and :c:type:`PyContextToken`, e.g.::" msgstr "" -#: ../Doc/c-api/contextvars.rst:24 +#: c-api/contextvars.rst:24 msgid "See :issue:`34762` for more details." msgstr "" -#: ../Doc/c-api/contextvars.rst:29 +#: c-api/contextvars.rst:29 msgid "" "This section details the public C API for the :mod:`contextvars` module." msgstr "" -#: ../Doc/c-api/contextvars.rst:33 +#: c-api/contextvars.rst:33 msgid "" "The C structure used to represent a :class:`contextvars.Context` object." msgstr "" -#: ../Doc/c-api/contextvars.rst:38 +#: c-api/contextvars.rst:38 msgid "" "The C structure used to represent a :class:`contextvars.ContextVar` object." msgstr "" -#: ../Doc/c-api/contextvars.rst:43 +#: c-api/contextvars.rst:43 msgid "The C structure used to represent a :class:`contextvars.Token` object." msgstr "" -#: ../Doc/c-api/contextvars.rst:47 +#: c-api/contextvars.rst:47 msgid "The type object representing the *context* type." msgstr "" -#: ../Doc/c-api/contextvars.rst:51 +#: c-api/contextvars.rst:51 msgid "The type object representing the *context variable* type." msgstr "" -#: ../Doc/c-api/contextvars.rst:55 +#: c-api/contextvars.rst:55 msgid "The type object representing the *context variable token* type." msgstr "" -#: ../Doc/c-api/contextvars.rst:58 +#: c-api/contextvars.rst:58 msgid "Type-check macros:" msgstr "Macros pour vérifier les types :" -#: ../Doc/c-api/contextvars.rst:62 +#: c-api/contextvars.rst:62 msgid "" "Return true if *o* is of type :c:data:`PyContext_Type`. *o* must not be " "``NULL``. This function always succeeds." msgstr "" -#: ../Doc/c-api/contextvars.rst:67 +#: c-api/contextvars.rst:67 msgid "" "Return true if *o* is of type :c:data:`PyContextVar_Type`. *o* must not be " "``NULL``. This function always succeeds." msgstr "" -#: ../Doc/c-api/contextvars.rst:72 +#: c-api/contextvars.rst:72 msgid "" "Return true if *o* is of type :c:data:`PyContextToken_Type`. *o* must not be " "``NULL``. This function always succeeds." msgstr "" -#: ../Doc/c-api/contextvars.rst:76 +#: c-api/contextvars.rst:76 msgid "Context object management functions:" msgstr "" -#: ../Doc/c-api/contextvars.rst:80 +#: c-api/contextvars.rst:80 msgid "" "Create a new empty context object. Returns ``NULL`` if an error has " "occurred." msgstr "" -#: ../Doc/c-api/contextvars.rst:85 +#: c-api/contextvars.rst:85 msgid "" "Create a shallow copy of the passed *ctx* context object. Returns ``NULL`` " "if an error has occurred." msgstr "" -#: ../Doc/c-api/contextvars.rst:90 +#: c-api/contextvars.rst:90 msgid "" "Create a shallow copy of the current thread context. Returns ``NULL`` if an " "error has occurred." msgstr "" -#: ../Doc/c-api/contextvars.rst:95 +#: c-api/contextvars.rst:95 msgid "" "Set *ctx* as the current context for the current thread. Returns ``0`` on " "success, and ``-1`` on error." msgstr "" -#: ../Doc/c-api/contextvars.rst:100 +#: c-api/contextvars.rst:100 msgid "" "Deactivate the *ctx* context and restore the previous context as the current " "context for the current thread. Returns ``0`` on success, and ``-1`` on " "error." msgstr "" -#: ../Doc/c-api/contextvars.rst:106 +#: c-api/contextvars.rst:106 msgid "" "Clear the context variable free list. Return the total number of freed " "items. This function always succeeds." msgstr "" -#: ../Doc/c-api/contextvars.rst:110 +#: c-api/contextvars.rst:110 msgid "Context variable functions:" msgstr "" -#: ../Doc/c-api/contextvars.rst:114 +#: c-api/contextvars.rst:114 msgid "" "Create a new ``ContextVar`` object. The *name* parameter is used for " -"introspection and debug purposes. The *def* parameter may optionally " -"specify the default value for the context variable. If an error has " +"introspection and debug purposes. The *def* parameter specifies a default " +"value for the context variable, or ``NULL`` for no default. If an error has " "occurred, this function returns ``NULL``." msgstr "" -#: ../Doc/c-api/contextvars.rst:121 +#: c-api/contextvars.rst:121 msgid "" "Get the value of a context variable. Returns ``-1`` if an error has " "occurred during lookup, and ``0`` if no error occurred, whether or not a " "value was found." msgstr "" -#: ../Doc/c-api/contextvars.rst:125 +#: c-api/contextvars.rst:125 msgid "" "If the context variable was found, *value* will be a pointer to it. If the " "context variable was *not* found, *value* will point to:" msgstr "" -#: ../Doc/c-api/contextvars.rst:128 +#: c-api/contextvars.rst:128 msgid "*default_value*, if not ``NULL``;" msgstr "" -#: ../Doc/c-api/contextvars.rst:129 +#: c-api/contextvars.rst:129 msgid "the default value of *var*, if not ``NULL``;" msgstr "" -#: ../Doc/c-api/contextvars.rst:130 +#: c-api/contextvars.rst:130 msgid "``NULL``" msgstr "``NULL``" -#: ../Doc/c-api/contextvars.rst:132 -msgid "If the value was found, the function will create a new reference to it." +#: c-api/contextvars.rst:132 +msgid "Except for ``NULL``, the function returns a new reference." msgstr "" -#: ../Doc/c-api/contextvars.rst:136 +#: c-api/contextvars.rst:136 msgid "" -"Set the value of *var* to *value* in the current context. Returns a pointer " -"to a :c:type:`PyObject` object, or ``NULL`` if an error has occurred." +"Set the value of *var* to *value* in the current context. Returns a new " +"token object for this change, or ``NULL`` if an error has occurred." msgstr "" -#: ../Doc/c-api/contextvars.rst:142 +#: c-api/contextvars.rst:141 msgid "" "Reset the state of the *var* context variable to that it was in before :c:" "func:`PyContextVar_Set` that returned the *token* was called. This function " diff --git a/c-api/conversion.po b/c-api/conversion.po index ca2e075ae9..ed85e667b8 100644 --- a/c-api/conversion.po +++ b/c-api/conversion.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-15 18:54+0100\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,31 +14,31 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/c-api/conversion.rst:6 +#: c-api/conversion.rst:6 msgid "String conversion and formatting" msgstr "Conversion et formatage de chaînes" -#: ../Doc/c-api/conversion.rst:8 +#: c-api/conversion.rst:8 msgid "Functions for number conversion and formatted string output." msgstr "" "Fonctions de conversion pour les nombres et pour la sortie des chaînes " "formatées." -#: ../Doc/c-api/conversion.rst:13 +#: c-api/conversion.rst:13 msgid "" "Output not more than *size* bytes to *str* according to the format string " "*format* and the extra arguments. See the Unix man page :manpage:" -"`snprintf(2)`." +"`snprintf(3)`." msgstr "" -#: ../Doc/c-api/conversion.rst:19 +#: c-api/conversion.rst:19 msgid "" "Output not more than *size* bytes to *str* according to the format string " "*format* and the variable argument list *va*. Unix man page :manpage:" -"`vsnprintf(2)`." +"`vsnprintf(3)`." msgstr "" -#: ../Doc/c-api/conversion.rst:23 +#: c-api/conversion.rst:23 msgid "" ":c:func:`PyOS_snprintf` and :c:func:`PyOS_vsnprintf` wrap the Standard C " "library functions :c:func:`snprintf` and :c:func:`vsnprintf`. Their purpose " @@ -46,54 +46,54 @@ msgid "" "functions do not." msgstr "" -#: ../Doc/c-api/conversion.rst:28 +#: c-api/conversion.rst:28 msgid "" -"The wrappers ensure that *str*[*size*-1] is always ``'\\0'`` upon return. " +"The wrappers ensure that ``str[size-1]`` is always ``'\\0'`` upon return. " "They never write more than *size* bytes (including the trailing ``'\\0'``) " "into str. Both functions require that ``str != NULL``, ``size > 0`` and " "``format != NULL``." msgstr "" -#: ../Doc/c-api/conversion.rst:33 +#: c-api/conversion.rst:33 msgid "" "If the platform doesn't have :c:func:`vsnprintf` and the buffer size needed " "to avoid truncation exceeds *size* by more than 512 bytes, Python aborts " "with a :c:func:`Py_FatalError`." msgstr "" -#: ../Doc/c-api/conversion.rst:37 +#: c-api/conversion.rst:37 msgid "" "The return value (*rv*) for these functions should be interpreted as follows:" msgstr "" -#: ../Doc/c-api/conversion.rst:39 +#: c-api/conversion.rst:39 msgid "" "When ``0 <= rv < size``, the output conversion was successful and *rv* " "characters were written to *str* (excluding the trailing ``'\\0'`` byte at " -"*str*[*rv*])." +"``str[rv]``)." msgstr "" -#: ../Doc/c-api/conversion.rst:43 +#: c-api/conversion.rst:43 msgid "" "When ``rv >= size``, the output conversion was truncated and a buffer with " -"``rv + 1`` bytes would have been needed to succeed. *str*[*size*-1] is " +"``rv + 1`` bytes would have been needed to succeed. ``str[size-1]`` is " "``'\\0'`` in this case." msgstr "" -#: ../Doc/c-api/conversion.rst:47 +#: c-api/conversion.rst:47 msgid "" -"When ``rv < 0``, \"something bad happened.\" *str*[*size*-1] is ``'\\0'`` in " +"When ``rv < 0``, \"something bad happened.\" ``str[size-1]`` is ``'\\0'`` in " "this case too, but the rest of *str* is undefined. The exact cause of the " "error depends on the underlying platform." msgstr "" -#: ../Doc/c-api/conversion.rst:51 +#: c-api/conversion.rst:51 msgid "" "The following functions provide locale-independent string to number " "conversions." msgstr "" -#: ../Doc/c-api/conversion.rst:56 +#: c-api/conversion.rst:56 msgid "" "Convert a string ``s`` to a :c:type:`double`, raising a Python exception on " "failure. The set of accepted strings corresponds to the set of strings " @@ -102,14 +102,14 @@ msgid "" "current locale." msgstr "" -#: ../Doc/c-api/conversion.rst:62 +#: c-api/conversion.rst:62 msgid "" "If ``endptr`` is ``NULL``, convert the whole string. Raise :exc:" "`ValueError` and return ``-1.0`` if the string is not a valid representation " "of a floating-point number." msgstr "" -#: ../Doc/c-api/conversion.rst:66 +#: c-api/conversion.rst:66 msgid "" "If endptr is not ``NULL``, convert as much of the string as possible and set " "``*endptr`` to point to the first unconverted character. If no initial " @@ -118,7 +118,7 @@ msgid "" "ValueError, and return ``-1.0``." msgstr "" -#: ../Doc/c-api/conversion.rst:73 +#: c-api/conversion.rst:73 msgid "" "If ``s`` represents a value that is too large to store in a float (for " "example, ``\"1e500\"`` is such a string on many platforms) then if " @@ -129,50 +129,50 @@ msgid "" "the first character after the converted value." msgstr "" -#: ../Doc/c-api/conversion.rst:81 +#: c-api/conversion.rst:81 msgid "" "If any other error occurs during the conversion (for example an out-of-" "memory error), set the appropriate Python exception and return ``-1.0``." msgstr "" -#: ../Doc/c-api/conversion.rst:90 +#: c-api/conversion.rst:90 msgid "" "Convert a :c:type:`double` *val* to a string using supplied *format_code*, " "*precision*, and *flags*." msgstr "" -#: ../Doc/c-api/conversion.rst:93 +#: c-api/conversion.rst:93 msgid "" "*format_code* must be one of ``'e'``, ``'E'``, ``'f'``, ``'F'``, ``'g'``, " "``'G'`` or ``'r'``. For ``'r'``, the supplied *precision* must be 0 and is " "ignored. The ``'r'`` format code specifies the standard :func:`repr` format." msgstr "" -#: ../Doc/c-api/conversion.rst:98 +#: c-api/conversion.rst:98 msgid "" "*flags* can be zero or more of the values ``Py_DTSF_SIGN``, " "``Py_DTSF_ADD_DOT_0``, or ``Py_DTSF_ALT``, or-ed together:" msgstr "" -#: ../Doc/c-api/conversion.rst:101 +#: c-api/conversion.rst:101 msgid "" "``Py_DTSF_SIGN`` means to always precede the returned string with a sign " "character, even if *val* is non-negative." msgstr "" -#: ../Doc/c-api/conversion.rst:104 +#: c-api/conversion.rst:104 msgid "" "``Py_DTSF_ADD_DOT_0`` means to ensure that the returned string will not look " "like an integer." msgstr "" -#: ../Doc/c-api/conversion.rst:107 +#: c-api/conversion.rst:107 msgid "" "``Py_DTSF_ALT`` means to apply \"alternate\" formatting rules. See the " "documentation for the :c:func:`PyOS_snprintf` ``'#'`` specifier for details." msgstr "" -#: ../Doc/c-api/conversion.rst:111 +#: c-api/conversion.rst:111 msgid "" "If *ptype* is non-``NULL``, then the value it points to will be set to one " "of ``Py_DTST_FINITE``, ``Py_DTST_INFINITE``, or ``Py_DTST_NAN``, signifying " @@ -180,20 +180,20 @@ msgid "" "respectively." msgstr "" -#: ../Doc/c-api/conversion.rst:115 +#: c-api/conversion.rst:115 msgid "" "The return value is a pointer to *buffer* with the converted string or " "``NULL`` if the conversion failed. The caller is responsible for freeing the " "returned string by calling :c:func:`PyMem_Free`." msgstr "" -#: ../Doc/c-api/conversion.rst:124 +#: c-api/conversion.rst:124 msgid "" "Case insensitive comparison of strings. The function works almost " "identically to :c:func:`strcmp` except that it ignores the case." msgstr "" -#: ../Doc/c-api/conversion.rst:130 +#: c-api/conversion.rst:130 msgid "" "Case insensitive comparison of strings. The function works almost " "identically to :c:func:`strncmp` except that it ignores the case." diff --git a/c-api/datetime.po b/c-api/datetime.po index e2f3a12749..29d5bb9f2c 100644 --- a/c-api/datetime.po +++ b/c-api/datetime.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-15 18:54+0100\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2019-05-31 10:15+0200\n" "Last-Translator: Jules Lasne \n" "Language-Team: FRENCH \n" @@ -16,11 +16,11 @@ msgstr "" "X-Generator: Poedit 2.2.3\n" "X-Poedit-Bookmarks: -1,-1,-1,-1,-1,-1,-1,3,-1,-1\n" -#: ../Doc/c-api/datetime.rst:6 +#: c-api/datetime.rst:6 msgid "DateTime Objects" msgstr "Objets DateTime" -#: ../Doc/c-api/datetime.rst:8 +#: c-api/datetime.rst:8 msgid "" "Various date and time objects are supplied by the :mod:`datetime` module. " "Before using any of these functions, the header file :file:`datetime.h` must " @@ -39,11 +39,11 @@ msgstr "" "et place celui-ci dans une variable statique, :c:data:`PyDateTimeAPI`, qui " "est utilisée par les macros suivantes." -#: ../Doc/c-api/datetime.rst:16 +#: c-api/datetime.rst:16 msgid "Macro for access to the UTC singleton:" msgstr "Macro pour accéder au singleton UTC :" -#: ../Doc/c-api/datetime.rst:20 +#: c-api/datetime.rst:20 msgid "" "Returns the time zone singleton representing UTC, the same object as :attr:" "`datetime.timezone.utc`." @@ -51,11 +51,11 @@ msgstr "" "Renvoie le singleton du fuseau horaire UTC, qui est le même objet que :attr:" "`datetime.timezone.utc`." -#: ../Doc/c-api/datetime.rst:26 +#: c-api/datetime.rst:26 msgid "Type-check macros:" msgstr "Macros pour vérifier les types :" -#: ../Doc/c-api/datetime.rst:30 +#: c-api/datetime.rst:30 #, fuzzy msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_DateType` or a subtype " @@ -64,7 +64,7 @@ msgstr "" "Renvoie vrai si *ob* est de type :c:data:`PyDateTime_DateType` ou un sous-" "type de :c:data:`PyDateTime_DateType`. *ob* ne doit pas être *NULL*." -#: ../Doc/c-api/datetime.rst:36 +#: c-api/datetime.rst:36 #, fuzzy msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_DateType`. *ob* must not " @@ -73,7 +73,7 @@ msgstr "" "Renvoie vrai si *ob* est de type :c:data:`PyDateTime_DateType`. *ob* ne doit " "pas être *NULL*." -#: ../Doc/c-api/datetime.rst:42 +#: c-api/datetime.rst:42 #, fuzzy msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_DateTimeType` or a " @@ -82,7 +82,7 @@ msgstr "" "Renvoie vrai si *ob* est de type :c:data:`PyDateTime_DateTimeType` ou un " "sous-type de :c:data:`PyDateTime_DateTimeType`. *ob* ne doit pas être *NULL*." -#: ../Doc/c-api/datetime.rst:48 +#: c-api/datetime.rst:48 #, fuzzy msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_DateTimeType`. *ob* must " @@ -91,7 +91,7 @@ msgstr "" "Renvoie vrai si *ob* est de type :c:data:`PyDateTime_DateTimeType`. *ob* ne " "doit pas être *NULL*." -#: ../Doc/c-api/datetime.rst:54 +#: c-api/datetime.rst:54 #, fuzzy msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_TimeType` or a subtype " @@ -100,7 +100,7 @@ msgstr "" "Renvoie vrai si *ob* est de type :c:data:`PyDateTime_TimeType` ou un sous-" "type de :c:data:`PyDateTime_TimeType`. *ob* ne doit pas être *NULL*." -#: ../Doc/c-api/datetime.rst:60 +#: c-api/datetime.rst:60 #, fuzzy msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_TimeType`. *ob* must not " @@ -109,7 +109,7 @@ msgstr "" "Renvoie vrai si *ob* est de type :c:data:`PyDateTime_TimeType`. *ob* ne doit " "pas être *NULL*." -#: ../Doc/c-api/datetime.rst:66 +#: c-api/datetime.rst:66 #, fuzzy msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_DeltaType` or a subtype " @@ -118,7 +118,7 @@ msgstr "" "Renvoie vrai si *ob* est de type :c:data:`PyDateTime_DeltaType` ou un sous-" "type de :c:data:`PyDateTime_DeltaType`. *ob* ne doit pas être *NULL*." -#: ../Doc/c-api/datetime.rst:72 +#: c-api/datetime.rst:72 #, fuzzy msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_DeltaType`. *ob* must not " @@ -127,7 +127,7 @@ msgstr "" "Renvoie vrai si *ob* est de type :c:data:`PyDateTime_DeltaType`. *ob* ne " "doit pas être *NULL*." -#: ../Doc/c-api/datetime.rst:78 +#: c-api/datetime.rst:78 #, fuzzy msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_TZInfoType` or a subtype " @@ -136,7 +136,7 @@ msgstr "" "Renvoie vrai si *ob* est de type :c:data:`PyDateTime_TZInfoType` ou un sous-" "type de :c:data:`PyDateTime_TZInfoType`. *ob* ne doit pas être *NULL*." -#: ../Doc/c-api/datetime.rst:84 +#: c-api/datetime.rst:84 #, fuzzy msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_TZInfoType`. *ob* must " @@ -145,11 +145,11 @@ msgstr "" "Renvoie vrai si *ob* est de type :c:data:`PyDateTime_TZInfoType`. *ob* ne " "doit pas être *NULL*." -#: ../Doc/c-api/datetime.rst:88 +#: c-api/datetime.rst:88 msgid "Macros to create objects:" msgstr "Macros pour créer des objets :" -#: ../Doc/c-api/datetime.rst:92 +#: c-api/datetime.rst:92 msgid "" "Return a :class:`datetime.date` object with the specified year, month and " "day." @@ -157,7 +157,7 @@ msgstr "" "Renvoie un objet :class:`datetime.date` avec l'année, le mois et le jour " "spécifiés." -#: ../Doc/c-api/datetime.rst:97 +#: c-api/datetime.rst:97 msgid "" "Return a :class:`datetime.datetime` object with the specified year, month, " "day, hour, minute, second and microsecond." @@ -165,7 +165,7 @@ msgstr "" "Renvoie un objet :class:`datetime.datetime` avec l'année, le mois, le jour, " "l'heure, la minute, la seconde et la microseconde spécifiés." -#: ../Doc/c-api/datetime.rst:103 +#: c-api/datetime.rst:103 msgid "" "Return a :class:`datetime.datetime` object with the specified year, month, " "day, hour, minute, second, microsecond and fold." @@ -174,7 +174,7 @@ msgstr "" "l'heure, la minute, la seconde, la microseconde et le pli (*fold* en " "anglais) spécifiés." -#: ../Doc/c-api/datetime.rst:111 +#: c-api/datetime.rst:111 msgid "" "Return a :class:`datetime.time` object with the specified hour, minute, " "second and microsecond." @@ -182,7 +182,7 @@ msgstr "" "Renvoie un objet :class:`datetime.time` avec l'heure, la minute, la seconde " "et la microseconde spécifiées." -#: ../Doc/c-api/datetime.rst:117 +#: c-api/datetime.rst:117 msgid "" "Return a :class:`datetime.time` object with the specified hour, minute, " "second, microsecond and fold." @@ -190,7 +190,7 @@ msgstr "" "Renvoie un objet :class:`datetime.time` avec l'heure, la minute, la seconde, " "la microseconde et le pli (*fold* en anglais) spécifiés." -#: ../Doc/c-api/datetime.rst:125 +#: c-api/datetime.rst:125 msgid "" "Return a :class:`datetime.timedelta` object representing the given number of " "days, seconds and microseconds. Normalization is performed so that the " @@ -202,7 +202,7 @@ msgstr "" "normalisé pour que le nombre de microsecondes et de secondes tombe dans la " "plage documentée pour les objets :class:`datetime.timedelta`." -#: ../Doc/c-api/datetime.rst:132 +#: c-api/datetime.rst:132 msgid "" "Return a :class:`datetime.timezone` object with an unnamed fixed offset " "represented by the *offset* argument." @@ -210,7 +210,7 @@ msgstr "" "Renvoie un objet :class:`datetime.timezone` avec un décalage anonyme fixe " "représenté par l'argument *offset*." -#: ../Doc/c-api/datetime.rst:139 +#: c-api/datetime.rst:139 msgid "" "Return a :class:`datetime.timezone` object with a fixed offset represented " "by the *offset* argument and with tzname *name*." @@ -218,7 +218,7 @@ msgstr "" "Renvoie un objet :class:`datetime.timezone` avec un décalage fixe représenté " "par l'argument *offset* et avec le nom de fuseau horaire *name*." -#: ../Doc/c-api/datetime.rst:145 +#: c-api/datetime.rst:145 #, fuzzy msgid "" "Macros to extract fields from date objects. The argument must be an " @@ -231,19 +231,19 @@ msgstr "" "`PyDateTime_DateTime`). L'argument ne doit pas être *NULL*, et le type n'est " "pas vérifié :" -#: ../Doc/c-api/datetime.rst:152 +#: c-api/datetime.rst:152 msgid "Return the year, as a positive int." msgstr "Renvoie l'année, sous forme d'entier positif." -#: ../Doc/c-api/datetime.rst:157 +#: c-api/datetime.rst:157 msgid "Return the month, as an int from 1 through 12." msgstr "Renvoie le mois, sous forme d'entier allant de 1 à 12." -#: ../Doc/c-api/datetime.rst:162 +#: c-api/datetime.rst:162 msgid "Return the day, as an int from 1 through 31." msgstr "Renvoie le jour, sous forme d'entier allant de 1 à 31." -#: ../Doc/c-api/datetime.rst:165 +#: c-api/datetime.rst:165 #, fuzzy msgid "" "Macros to extract fields from datetime objects. The argument must be an " @@ -254,23 +254,28 @@ msgstr "" "une instance de :c:data:`PyDateTime_DateTime` ou une sous-classe de celle-" "ci. L'argument ne doit pas être *NULL*, et le type n'est pas vérifié :" -#: ../Doc/c-api/datetime.rst:171 ../Doc/c-api/datetime.rst:195 +#: c-api/datetime.rst:202 msgid "Return the hour, as an int from 0 through 23." msgstr "Renvoie l'heure, sous forme d'entier allant de 0 à 23." -#: ../Doc/c-api/datetime.rst:176 ../Doc/c-api/datetime.rst:200 +#: c-api/datetime.rst:207 msgid "Return the minute, as an int from 0 through 59." msgstr "Renvoie la minute, sous forme d'entier allant de 0 à 59." -#: ../Doc/c-api/datetime.rst:181 ../Doc/c-api/datetime.rst:205 +#: c-api/datetime.rst:212 msgid "Return the second, as an int from 0 through 59." msgstr "Renvoie la seconde, sous forme d'entier allant de 0 à 59." -#: ../Doc/c-api/datetime.rst:186 ../Doc/c-api/datetime.rst:210 +#: c-api/datetime.rst:217 msgid "Return the microsecond, as an int from 0 through 999999." msgstr "Renvoie la microseconde, sous forme d'entier allant de 0 à 999999." -#: ../Doc/c-api/datetime.rst:189 +#: c-api/datetime.rst:222 +#, fuzzy +msgid "Return the fold, as an int from 0 through 1." +msgstr "Renvoie le jour, sous forme d'entier allant de 1 à 31." + +#: c-api/datetime.rst:196 #, fuzzy msgid "" "Macros to extract fields from time objects. The argument must be an " @@ -281,7 +286,7 @@ msgstr "" "instance de :c:data:`PyDateTime_Time` ou une sous-classe de celle-ci. " "L'argument ne doit pas être *NULL*, et le type n'est pas vérifié :" -#: ../Doc/c-api/datetime.rst:213 +#: c-api/datetime.rst:227 #, fuzzy msgid "" "Macros to extract fields from time delta objects. The argument must be an " @@ -292,26 +297,26 @@ msgstr "" "être une instance de :c:data:`PyDateTime_Delta` ou une sous-classe de celle-" "ci. L'argument ne doit pas être *NULL*, et le type n'est pas vérifié :" -#: ../Doc/c-api/datetime.rst:219 +#: c-api/datetime.rst:233 msgid "Return the number of days, as an int from -999999999 to 999999999." msgstr "" "Renvoie le nombre de jours, sous forme d'entier allant de -999999999 à " "999999999." -#: ../Doc/c-api/datetime.rst:226 +#: c-api/datetime.rst:240 msgid "Return the number of seconds, as an int from 0 through 86399." msgstr "Renvoie le nombre de secondes sous forme d'entier allant de 0 à 86399." -#: ../Doc/c-api/datetime.rst:233 +#: c-api/datetime.rst:247 msgid "Return the number of microseconds, as an int from 0 through 999999." msgstr "" "Renvoie le nombre de microsecondes, sous forme d'entier allant de 0 à 999999." -#: ../Doc/c-api/datetime.rst:238 +#: c-api/datetime.rst:252 msgid "Macros for the convenience of modules implementing the DB API:" msgstr "Macros de confort pour les modules implémentant l'API DB :" -#: ../Doc/c-api/datetime.rst:242 +#: c-api/datetime.rst:256 msgid "" "Create and return a new :class:`datetime.datetime` object given an argument " "tuple suitable for passing to :meth:`datetime.datetime.fromtimestamp()`." @@ -319,7 +324,7 @@ msgstr "" "Crée et renvoie un nouvel objet :class:`datetime.datetime` à partir d'un n-" "uplet qui peut être passé à :meth:`datetime.datetime.fromtimestamp()`." -#: ../Doc/c-api/datetime.rst:248 +#: c-api/datetime.rst:262 msgid "" "Create and return a new :class:`datetime.date` object given an argument " "tuple suitable for passing to :meth:`datetime.date.fromtimestamp()`." diff --git a/c-api/dict.po b/c-api/dict.po index 29dc4bda4e..b5dfee445e 100644 --- a/c-api/dict.po +++ b/c-api/dict.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-15 18:54+0100\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2018-07-03 11:36+0200\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,120 +14,129 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/c-api/dict.rst:6 +#: c-api/dict.rst:6 msgid "Dictionary Objects" msgstr "Objets dictionnaires" -#: ../Doc/c-api/dict.rst:13 +#: c-api/dict.rst:13 +#, fuzzy msgid "" "This subtype of :c:type:`PyObject` represents a Python dictionary object." msgstr "" +"Ce sous-type de :c:type:`PyObject` représente un objet ``bytearray`` Python." -#: ../Doc/c-api/dict.rst:18 +#: c-api/dict.rst:18 +#, fuzzy msgid "" "This instance of :c:type:`PyTypeObject` represents the Python dictionary " "type. This is the same object as :class:`dict` in the Python layer." msgstr "" +"Cette instance de l'objet :c:type:`PyTypeObject` représente le type nombre à " +"virgule flottante en Python. C'est le même objet que la classe :class:" +"`float` de la couche Python." -#: ../Doc/c-api/dict.rst:24 +#: c-api/dict.rst:24 msgid "" "Return true if *p* is a dict object or an instance of a subtype of the dict " "type." msgstr "" -#: ../Doc/c-api/dict.rst:30 +#: c-api/dict.rst:30 msgid "" "Return true if *p* is a dict object, but not an instance of a subtype of the " "dict type." msgstr "" -#: ../Doc/c-api/dict.rst:36 +#: c-api/dict.rst:36 msgid "Return a new empty dictionary, or ``NULL`` on failure." msgstr "" -#: ../Doc/c-api/dict.rst:41 +#: c-api/dict.rst:41 msgid "" "Return a :class:`types.MappingProxyType` object for a mapping which enforces " "read-only behavior. This is normally used to create a view to prevent " "modification of the dictionary for non-dynamic class types." msgstr "" -#: ../Doc/c-api/dict.rst:48 +#: c-api/dict.rst:48 msgid "Empty an existing dictionary of all key-value pairs." msgstr "" -#: ../Doc/c-api/dict.rst:53 +#: c-api/dict.rst:53 msgid "" "Determine if dictionary *p* contains *key*. If an item in *p* is matches " "*key*, return ``1``, otherwise return ``0``. On error, return ``-1``. This " "is equivalent to the Python expression ``key in p``." msgstr "" -#: ../Doc/c-api/dict.rst:60 +#: c-api/dict.rst:60 msgid "Return a new dictionary that contains the same key-value pairs as *p*." msgstr "" -#: ../Doc/c-api/dict.rst:65 +#: c-api/dict.rst:65 msgid "" -"Insert *value* into the dictionary *p* with a key of *key*. *key* must be :" +"Insert *val* into the dictionary *p* with a key of *key*. *key* must be :" "term:`hashable`; if it isn't, :exc:`TypeError` will be raised. Return ``0`` " -"on success or ``-1`` on failure." +"on success or ``-1`` on failure. This function *does not* steal a reference " +"to *val*." msgstr "" -#: ../Doc/c-api/dict.rst:74 +#: c-api/dict.rst:75 msgid "" -"Insert *value* into the dictionary *p* using *key* as a key. *key* should be " -"a :c:type:`const char\\*`. The key object is created using " -"``PyUnicode_FromString(key)``. Return ``0`` on success or ``-1`` on failure." +"Insert *val* into the dictionary *p* using *key* as a key. *key* should be " +"a :c:type:`const char*`. The key object is created using " +"``PyUnicode_FromString(key)``. Return ``0`` on success or ``-1`` on " +"failure. This function *does not* steal a reference to *val*." msgstr "" -#: ../Doc/c-api/dict.rst:82 +#: c-api/dict.rst:83 msgid "" "Remove the entry in dictionary *p* with key *key*. *key* must be hashable; " -"if it isn't, :exc:`TypeError` is raised. Return ``0`` on success or ``-1`` " -"on failure." +"if it isn't, :exc:`TypeError` is raised. If *key* is not in the dictionary, :" +"exc:`KeyError` is raised. Return ``0`` on success or ``-1`` on failure." msgstr "" -#: ../Doc/c-api/dict.rst:89 +#: c-api/dict.rst:91 msgid "" "Remove the entry in dictionary *p* which has a key specified by the string " -"*key*. Return ``0`` on success or ``-1`` on failure." +"*key*. If *key* is not in the dictionary, :exc:`KeyError` is raised. Return " +"``0`` on success or ``-1`` on failure." msgstr "" -#: ../Doc/c-api/dict.rst:95 +#: c-api/dict.rst:98 msgid "" "Return the object from dictionary *p* which has a key *key*. Return " "``NULL`` if the key *key* is not present, but *without* setting an exception." msgstr "" -#: ../Doc/c-api/dict.rst:98 +#: c-api/dict.rst:101 msgid "" "Note that exceptions which occur while calling :meth:`__hash__` and :meth:" "`__eq__` methods will get suppressed. To get error reporting use :c:func:" "`PyDict_GetItemWithError()` instead." msgstr "" -#: ../Doc/c-api/dict.rst:105 +#: c-api/dict.rst:108 msgid "" "Variant of :c:func:`PyDict_GetItem` that does not suppress exceptions. " "Return ``NULL`` **with** an exception set if an exception occurred. Return " "``NULL`` **without** an exception set if the key wasn't present." msgstr "" -#: ../Doc/c-api/dict.rst:113 +#: c-api/dict.rst:116 msgid "" "This is the same as :c:func:`PyDict_GetItem`, but *key* is specified as a :c:" -"type:`const char\\*`, rather than a :c:type:`PyObject\\*`." +"type:`const char*`, rather than a :c:type:`PyObject*`." msgstr "" -#: ../Doc/c-api/dict.rst:116 +#: c-api/dict.rst:119 msgid "" "Note that exceptions which occur while calling :meth:`__hash__` and :meth:" "`__eq__` methods and creating a temporary string object will get suppressed. " "To get error reporting use :c:func:`PyDict_GetItemWithError()` instead." msgstr "" -#: ../Doc/c-api/dict.rst:124 +#: c-api/dict.rst:127 msgid "" "This is the same as the Python-level :meth:`dict.setdefault`. If present, " "it returns the value corresponding to *key* from the dictionary *p*. If the " @@ -137,54 +146,54 @@ msgid "" "the insertion." msgstr "" -#: ../Doc/c-api/dict.rst:134 +#: c-api/dict.rst:137 msgid "" "Return a :c:type:`PyListObject` containing all the items from the dictionary." msgstr "" -#: ../Doc/c-api/dict.rst:139 +#: c-api/dict.rst:142 msgid "" "Return a :c:type:`PyListObject` containing all the keys from the dictionary." msgstr "" -#: ../Doc/c-api/dict.rst:144 +#: c-api/dict.rst:147 msgid "" "Return a :c:type:`PyListObject` containing all the values from the " "dictionary *p*." msgstr "" -#: ../Doc/c-api/dict.rst:152 +#: c-api/dict.rst:155 msgid "" "Return the number of items in the dictionary. This is equivalent to " "``len(p)`` on a dictionary." msgstr "" -#: ../Doc/c-api/dict.rst:158 +#: c-api/dict.rst:161 msgid "" "Iterate over all key-value pairs in the dictionary *p*. The :c:type:" "`Py_ssize_t` referred to by *ppos* must be initialized to ``0`` prior to the " "first call to this function to start the iteration; the function returns " "true for each pair in the dictionary, and false once all pairs have been " "reported. The parameters *pkey* and *pvalue* should either point to :c:type:" -"`PyObject\\*` variables that will be filled in with each key and value, " +"`PyObject*` variables that will be filled in with each key and value, " "respectively, or may be ``NULL``. Any references returned through them are " "borrowed. *ppos* should not be altered during iteration. Its value " "represents offsets within the internal dictionary structure, and since the " "structure is sparse, the offsets are not consecutive." msgstr "" -#: ../Doc/c-api/dict.rst:169 +#: c-api/dict.rst:172 msgid "For example::" msgstr "Par exemple ::" -#: ../Doc/c-api/dict.rst:179 +#: c-api/dict.rst:182 msgid "" "The dictionary *p* should not be mutated during iteration. It is safe to " "modify the values of the keys as you iterate over the dictionary, but only " "so long as the set of keys does not change. For example::" msgstr "" -#: ../Doc/c-api/dict.rst:204 +#: c-api/dict.rst:207 msgid "" "Iterate over mapping object *b* adding key-value pairs to dictionary *a*. " "*b* may be a dictionary, or any object supporting :c:func:`PyMapping_Keys` " @@ -194,7 +203,7 @@ msgid "" "or ``-1`` if an exception was raised." msgstr "" -#: ../Doc/c-api/dict.rst:214 +#: c-api/dict.rst:217 msgid "" "This is the same as ``PyDict_Merge(a, b, 1)`` in C, and is similar to ``a." "update(b)`` in Python except that :c:func:`PyDict_Update` doesn't fall back " @@ -203,7 +212,7 @@ msgid "" "exception was raised." msgstr "" -#: ../Doc/c-api/dict.rst:223 +#: c-api/dict.rst:226 msgid "" "Update or merge into dictionary *a*, from the key-value pairs in *seq2*. " "*seq2* must be an iterable object producing iterable objects of length 2, " @@ -212,6 +221,6 @@ msgid "" "if an exception was raised. Equivalent Python (except for the return value)::" msgstr "" -#: ../Doc/c-api/dict.rst:238 +#: c-api/dict.rst:241 msgid "Clear the free list. Return the total number of freed items." msgstr "" diff --git a/c-api/exceptions.po b/c-api/exceptions.po index 37f02d30a1..2fc1360a1d 100644 --- a/c-api/exceptions.po +++ b/c-api/exceptions.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-15 18:54+0100\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2018-10-04 12:24+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -15,11 +15,11 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 1.8.11\n" -#: ../Doc/c-api/exceptions.rst:8 +#: c-api/exceptions.rst:8 msgid "Exception Handling" msgstr "Gestion des exceptions" -#: ../Doc/c-api/exceptions.rst:10 +#: c-api/exceptions.rst:10 msgid "" "The functions described in this chapter will let you handle and raise Python " "exceptions. It is important to understand some of the basics of Python " @@ -28,11 +28,11 @@ msgid "" "occurred. Most C API functions don't clear this on success, but will set it " "to indicate the cause of the error on failure. Most C API functions also " "return an error indicator, usually ``NULL`` if they are supposed to return a " -"pointer, or ``-1`` if they return an integer (exception: the :c:func:`PyArg_" -"\\*` functions return ``1`` for success and ``0`` for failure)." +"pointer, or ``-1`` if they return an integer (exception: the :c:func:" +"`PyArg_\\*` functions return ``1`` for success and ``0`` for failure)." msgstr "" -#: ../Doc/c-api/exceptions.rst:20 +#: c-api/exceptions.rst:20 msgid "" "Concretely, the error indicator consists of three object pointers: the " "exception's type, the exception's value, and the traceback object. Any of " @@ -41,7 +41,7 @@ msgid "" "exception type is ``NULL``)." msgstr "" -#: ../Doc/c-api/exceptions.rst:26 +#: c-api/exceptions.rst:26 msgid "" "When a function must fail because some function it called failed, it " "generally doesn't set the error indicator; the function it called already " @@ -54,7 +54,7 @@ msgid "" "Python/C API may not behave as intended and may fail in mysterious ways." msgstr "" -#: ../Doc/c-api/exceptions.rst:37 +#: c-api/exceptions.rst:37 msgid "" "The error indicator is **not** the result of :func:`sys.exc_info()`. The " "former corresponds to an exception that is not yet caught (and is therefore " @@ -62,17 +62,17 @@ msgid "" "(and has therefore stopped propagating)." msgstr "" -#: ../Doc/c-api/exceptions.rst:44 +#: c-api/exceptions.rst:44 msgid "Printing and clearing" msgstr "" -#: ../Doc/c-api/exceptions.rst:49 +#: c-api/exceptions.rst:49 msgid "" "Clear the error indicator. If the error indicator is not set, there is no " "effect." msgstr "" -#: ../Doc/c-api/exceptions.rst:55 +#: c-api/exceptions.rst:55 msgid "" "Print a standard traceback to ``sys.stderr`` and clear the error indicator. " "**Unless** the error is a ``SystemExit``, in that case no traceback is " @@ -80,30 +80,30 @@ msgid "" "the ``SystemExit`` instance." msgstr "" -#: ../Doc/c-api/exceptions.rst:60 +#: c-api/exceptions.rst:60 msgid "" "Call this function **only** when the error indicator is set. Otherwise it " "will cause a fatal error!" msgstr "" -#: ../Doc/c-api/exceptions.rst:63 +#: c-api/exceptions.rst:63 msgid "" "If *set_sys_last_vars* is nonzero, the variables :data:`sys.last_type`, :" "data:`sys.last_value` and :data:`sys.last_traceback` will be set to the " "type, value and traceback of the printed exception, respectively." msgstr "" -#: ../Doc/c-api/exceptions.rst:70 +#: c-api/exceptions.rst:70 msgid "Alias for ``PyErr_PrintEx(1)``." msgstr "" -#: ../Doc/c-api/exceptions.rst:75 +#: c-api/exceptions.rst:75 msgid "" "Call :func:`sys.unraisablehook` using the current exception and *obj* " "argument." msgstr "" -#: ../Doc/c-api/exceptions.rst:78 +#: c-api/exceptions.rst:78 msgid "" "This utility function prints a warning message to ``sys.stderr`` when an " "exception has been set but it is impossible for the interpreter to actually " @@ -111,29 +111,29 @@ msgid "" "an :meth:`__del__` method." msgstr "" -#: ../Doc/c-api/exceptions.rst:83 +#: c-api/exceptions.rst:83 msgid "" "The function is called with a single argument *obj* that identifies the " "context in which the unraisable exception occurred. If possible, the repr of " "*obj* will be printed in the warning message." msgstr "" -#: ../Doc/c-api/exceptions.rst:87 +#: c-api/exceptions.rst:87 msgid "An exception must be set when calling this function." msgstr "" -#: ../Doc/c-api/exceptions.rst:91 +#: c-api/exceptions.rst:91 msgid "Raising exceptions" msgstr "Lever des exceptions" -#: ../Doc/c-api/exceptions.rst:93 +#: c-api/exceptions.rst:93 msgid "" "These functions help you set the current thread's error indicator. For " "convenience, some of these functions will always return a ``NULL`` pointer " "for use in a ``return`` statement." msgstr "" -#: ../Doc/c-api/exceptions.rst:100 +#: c-api/exceptions.rst:100 msgid "" "This is the most common way to set the error indicator. The first argument " "specifies the exception type; it is normally one of the standard exceptions, " @@ -142,13 +142,13 @@ msgid "" "``'utf-8``'." msgstr "" -#: ../Doc/c-api/exceptions.rst:108 +#: c-api/exceptions.rst:108 msgid "" "This function is similar to :c:func:`PyErr_SetString` but lets you specify " "an arbitrary Python object for the \"value\" of the exception." msgstr "" -#: ../Doc/c-api/exceptions.rst:114 +#: c-api/exceptions.rst:114 msgid "" "This function sets the error indicator and returns ``NULL``. *exception* " "should be a Python exception class. The *format* and subsequent parameters " @@ -156,31 +156,31 @@ msgid "" "c:func:`PyUnicode_FromFormat`. *format* is an ASCII-encoded string." msgstr "" -#: ../Doc/c-api/exceptions.rst:123 +#: c-api/exceptions.rst:123 msgid "" "Same as :c:func:`PyErr_Format`, but taking a :c:type:`va_list` argument " "rather than a variable number of arguments." msgstr "" -#: ../Doc/c-api/exceptions.rst:131 +#: c-api/exceptions.rst:131 msgid "This is a shorthand for ``PyErr_SetObject(type, Py_None)``." msgstr "" -#: ../Doc/c-api/exceptions.rst:136 +#: c-api/exceptions.rst:136 msgid "" "This is a shorthand for ``PyErr_SetString(PyExc_TypeError, message)``, where " "*message* indicates that a built-in operation was invoked with an illegal " "argument. It is mostly for internal use." msgstr "" -#: ../Doc/c-api/exceptions.rst:143 +#: c-api/exceptions.rst:143 msgid "" "This is a shorthand for ``PyErr_SetNone(PyExc_MemoryError)``; it returns " "``NULL`` so an object allocation function can write ``return " "PyErr_NoMemory();`` when it runs out of memory." msgstr "" -#: ../Doc/c-api/exceptions.rst:152 +#: c-api/exceptions.rst:152 msgid "" "This is a convenience function to raise an exception when a C library " "function has returned an error and set the C variable :c:data:`errno`. It " @@ -194,7 +194,7 @@ msgid "" "``return PyErr_SetFromErrno(type);`` when the system call returns an error." msgstr "" -#: ../Doc/c-api/exceptions.rst:166 +#: c-api/exceptions.rst:166 msgid "" "Similar to :c:func:`PyErr_SetFromErrno`, with the additional behavior that " "if *filenameObject* is not ``NULL``, it is passed to the constructor of " @@ -202,21 +202,21 @@ msgid "" "is used to define the :attr:`filename` attribute of the exception instance." msgstr "" -#: ../Doc/c-api/exceptions.rst:175 +#: c-api/exceptions.rst:175 msgid "" "Similar to :c:func:`PyErr_SetFromErrnoWithFilenameObject`, but takes a " "second filename object, for raising errors when a function that takes two " "filenames fails." msgstr "" -#: ../Doc/c-api/exceptions.rst:184 +#: c-api/exceptions.rst:184 msgid "" "Similar to :c:func:`PyErr_SetFromErrnoWithFilenameObject`, but the filename " "is given as a C string. *filename* is decoded from the filesystem encoding " "(:func:`os.fsdecode`)." msgstr "" -#: ../Doc/c-api/exceptions.rst:191 +#: c-api/exceptions.rst:191 msgid "" "This is a convenience function to raise :exc:`WindowsError`. If called with " "*ierr* of :c:data:`0`, the error code returned by a call to :c:func:" @@ -229,44 +229,42 @@ msgid "" "returns ``NULL``." msgstr "" -#: ../Doc/c-api/exceptions.rst:200 ../Doc/c-api/exceptions.rst:208 -#: ../Doc/c-api/exceptions.rst:217 ../Doc/c-api/exceptions.rst:225 -#: ../Doc/c-api/exceptions.rst:234 ../Doc/c-api/exceptions.rst:243 +#: c-api/exceptions.rst:208 c-api/exceptions.rst:225 c-api/exceptions.rst:243 msgid ":ref:`Availability `: Windows." msgstr ":ref:`Disponibilité ` : Windows." -#: ../Doc/c-api/exceptions.rst:205 +#: c-api/exceptions.rst:205 msgid "" "Similar to :c:func:`PyErr_SetFromWindowsErr`, with an additional parameter " "specifying the exception type to be raised." msgstr "" -#: ../Doc/c-api/exceptions.rst:213 +#: c-api/exceptions.rst:213 msgid "" "Similar to :c:func:`PyErr_SetFromWindowsErrWithFilenameObject`, but the " "filename is given as a C string. *filename* is decoded from the filesystem " "encoding (:func:`os.fsdecode`)." msgstr "" -#: ../Doc/c-api/exceptions.rst:222 +#: c-api/exceptions.rst:222 msgid "" "Similar to :c:func:`PyErr_SetFromWindowsErrWithFilenameObject`, with an " "additional parameter specifying the exception type to be raised." msgstr "" -#: ../Doc/c-api/exceptions.rst:230 +#: c-api/exceptions.rst:230 msgid "" "Similar to :c:func:`PyErr_SetExcFromWindowsErrWithFilenameObject`, but " "accepts a second filename object." msgstr "" -#: ../Doc/c-api/exceptions.rst:240 +#: c-api/exceptions.rst:240 msgid "" "Similar to :c:func:`PyErr_SetFromWindowsErrWithFilename`, with an additional " "parameter specifying the exception type to be raised." msgstr "" -#: ../Doc/c-api/exceptions.rst:248 +#: c-api/exceptions.rst:248 msgid "" "This is a convenience function to raise :exc:`ImportError`. *msg* will be " "set as the exception's message string. *name* and *path*, both of which can " @@ -274,7 +272,7 @@ msgid "" "``path`` attributes." msgstr "" -#: ../Doc/c-api/exceptions.rst:258 +#: c-api/exceptions.rst:258 msgid "" "Set file, line, and offset information for the current exception. If the " "current exception is not a :exc:`SyntaxError`, then it sets additional " @@ -282,19 +280,19 @@ msgid "" "is a :exc:`SyntaxError`." msgstr "" -#: ../Doc/c-api/exceptions.rst:268 +#: c-api/exceptions.rst:268 msgid "" "Like :c:func:`PyErr_SyntaxLocationObject`, but *filename* is a byte string " "decoded from the filesystem encoding (:func:`os.fsdecode`)." msgstr "" -#: ../Doc/c-api/exceptions.rst:276 +#: c-api/exceptions.rst:276 msgid "" "Like :c:func:`PyErr_SyntaxLocationEx`, but the col_offset parameter is " "omitted." msgstr "" -#: ../Doc/c-api/exceptions.rst:282 +#: c-api/exceptions.rst:282 msgid "" "This is a shorthand for ``PyErr_SetString(PyExc_SystemError, message)``, " "where *message* indicates that an internal operation (e.g. a Python/C API " @@ -302,11 +300,11 @@ msgid "" "use." msgstr "" -#: ../Doc/c-api/exceptions.rst:289 +#: c-api/exceptions.rst:289 msgid "Issuing warnings" msgstr "" -#: ../Doc/c-api/exceptions.rst:291 +#: c-api/exceptions.rst:291 msgid "" "Use these functions to issue warnings from C code. They mirror similar " "functions exported by the Python :mod:`warnings` module. They normally " @@ -322,7 +320,7 @@ msgid "" "return an error value)." msgstr "" -#: ../Doc/c-api/exceptions.rst:306 +#: c-api/exceptions.rst:306 msgid "" "Issue a warning message. The *category* argument is a warning category (see " "below) or ``NULL``; the *message* argument is a UTF-8 encoded string. " @@ -332,7 +330,7 @@ msgid "" "`PyErr_WarnEx`, 2 is the function above that, and so forth." msgstr "" -#: ../Doc/c-api/exceptions.rst:313 +#: c-api/exceptions.rst:313 msgid "" "Warning categories must be subclasses of :c:data:`PyExc_Warning`; :c:data:" "`PyExc_Warning` is a subclass of :c:data:`PyExc_Exception`; the default " @@ -341,20 +339,20 @@ msgid "" "enumerated at :ref:`standardwarningcategories`." msgstr "" -#: ../Doc/c-api/exceptions.rst:319 +#: c-api/exceptions.rst:319 msgid "" "For information about warning control, see the documentation for the :mod:" "`warnings` module and the :option:`-W` option in the command line " "documentation. There is no C API for warning control." msgstr "" -#: ../Doc/c-api/exceptions.rst:325 +#: c-api/exceptions.rst:325 msgid "" "Much like :c:func:`PyErr_SetImportError` but this function allows for " "specifying a subclass of :exc:`ImportError` to raise." msgstr "" -#: ../Doc/c-api/exceptions.rst:333 +#: c-api/exceptions.rst:333 msgid "" "Issue a warning message with explicit control over all warning attributes. " "This is a straightforward wrapper around the Python function :func:`warnings." @@ -362,40 +360,40 @@ msgid "" "arguments may be set to ``NULL`` to get the default effect described there." msgstr "" -#: ../Doc/c-api/exceptions.rst:344 +#: c-api/exceptions.rst:344 msgid "" "Similar to :c:func:`PyErr_WarnExplicitObject` except that *message* and " "*module* are UTF-8 encoded strings, and *filename* is decoded from the " "filesystem encoding (:func:`os.fsdecode`)." msgstr "" -#: ../Doc/c-api/exceptions.rst:351 +#: c-api/exceptions.rst:351 msgid "" "Function similar to :c:func:`PyErr_WarnEx`, but use :c:func:" "`PyUnicode_FromFormat` to format the warning message. *format* is an ASCII-" "encoded string." msgstr "" -#: ../Doc/c-api/exceptions.rst:360 +#: c-api/exceptions.rst:360 msgid "" "Function similar to :c:func:`PyErr_WarnFormat`, but *category* is :exc:" -"`ResourceWarning` and pass *source* to :func:`warnings.WarningMessage`." +"`ResourceWarning` and it passes *source* to :func:`warnings.WarningMessage`." msgstr "" -#: ../Doc/c-api/exceptions.rst:367 +#: c-api/exceptions.rst:367 msgid "Querying the error indicator" msgstr "" -#: ../Doc/c-api/exceptions.rst:371 +#: c-api/exceptions.rst:371 msgid "" "Test whether the error indicator is set. If set, return the exception " -"*type* (the first argument to the last call to one of the :c:func:`PyErr_Set" -"\\*` functions or to :c:func:`PyErr_Restore`). If not set, return " +"*type* (the first argument to the last call to one of the :c:func:" +"`PyErr_Set\\*` functions or to :c:func:`PyErr_Restore`). If not set, return " "``NULL``. You do not own a reference to the return value, so you do not " "need to :c:func:`Py_DECREF` it." msgstr "" -#: ../Doc/c-api/exceptions.rst:379 +#: c-api/exceptions.rst:379 msgid "" "Do not compare the return value to a specific exception; use :c:func:" "`PyErr_ExceptionMatches` instead, shown below. (The comparison could easily " @@ -403,14 +401,14 @@ msgid "" "of a class exception, or it may be a subclass of the expected exception.)" msgstr "" -#: ../Doc/c-api/exceptions.rst:387 +#: c-api/exceptions.rst:387 msgid "" "Equivalent to ``PyErr_GivenExceptionMatches(PyErr_Occurred(), exc)``. This " "should only be called when an exception is actually set; a memory access " "violation will occur if no exception has been raised." msgstr "" -#: ../Doc/c-api/exceptions.rst:394 +#: c-api/exceptions.rst:394 msgid "" "Return true if the *given* exception matches the exception type in *exc*. " "If *exc* is a class object, this also returns true when *given* is an " @@ -418,7 +416,7 @@ msgid "" "tuple (and recursively in subtuples) are searched for a match." msgstr "" -#: ../Doc/c-api/exceptions.rst:402 +#: c-api/exceptions.rst:402 msgid "" "Retrieve the error indicator into three variables whose addresses are " "passed. If the error indicator is not set, set all three variables to " @@ -427,14 +425,14 @@ msgid "" "the type object is not." msgstr "" -#: ../Doc/c-api/exceptions.rst:409 +#: c-api/exceptions.rst:409 msgid "" "This function is normally only used by code that needs to catch exceptions " "or by code that needs to save and restore the error indicator temporarily, e." "g.::" msgstr "" -#: ../Doc/c-api/exceptions.rst:424 +#: c-api/exceptions.rst:424 msgid "" "Set the error indicator from the three objects. If the error indicator is " "already set, it is cleared first. If the objects are ``NULL``, the error " @@ -447,14 +445,14 @@ msgid "" "function. I warned you.)" msgstr "" -#: ../Doc/c-api/exceptions.rst:436 +#: c-api/exceptions.rst:436 msgid "" "This function is normally only used by code that needs to save and restore " "the error indicator temporarily. Use :c:func:`PyErr_Fetch` to save the " "current error indicator." msgstr "" -#: ../Doc/c-api/exceptions.rst:443 +#: c-api/exceptions.rst:443 msgid "" "Under certain circumstances, the values returned by :c:func:`PyErr_Fetch` " "below can be \"unnormalized\", meaning that ``*exc`` is a class object but " @@ -464,14 +462,14 @@ msgid "" "improve performance." msgstr "" -#: ../Doc/c-api/exceptions.rst:451 +#: c-api/exceptions.rst:451 msgid "" "This function *does not* implicitly set the ``__traceback__`` attribute on " "the exception value. If setting the traceback appropriately is desired, the " "following additional snippet is needed::" msgstr "" -#: ../Doc/c-api/exceptions.rst:462 +#: c-api/exceptions.rst:462 msgid "" "Retrieve the exception info, as known from ``sys.exc_info()``. This refers " "to an exception that was *already caught*, not to an exception that was " @@ -479,7 +477,7 @@ msgid "" "may be ``NULL``. Does not modify the exception info state." msgstr "" -#: ../Doc/c-api/exceptions.rst:469 +#: c-api/exceptions.rst:469 msgid "" "This function is not normally used by code that wants to handle exceptions. " "Rather, it can be used when code needs to save and restore the exception " @@ -487,7 +485,7 @@ msgid "" "exception state." msgstr "" -#: ../Doc/c-api/exceptions.rst:479 +#: c-api/exceptions.rst:479 msgid "" "Set the exception info, as known from ``sys.exc_info()``. This refers to an " "exception that was *already caught*, not to an exception that was freshly " @@ -496,7 +494,7 @@ msgid "" "about the three arguments, see :c:func:`PyErr_Restore`." msgstr "" -#: ../Doc/c-api/exceptions.rst:487 +#: c-api/exceptions.rst:487 msgid "" "This function is not normally used by code that wants to handle exceptions. " "Rather, it can be used when code needs to save and restore the exception " @@ -504,11 +502,11 @@ msgid "" "state." msgstr "" -#: ../Doc/c-api/exceptions.rst:496 +#: c-api/exceptions.rst:496 msgid "Signal Handling" msgstr "Traitement des signaux" -#: ../Doc/c-api/exceptions.rst:506 +#: c-api/exceptions.rst:506 msgid "" "This function interacts with Python's signal handling. It checks whether a " "signal has been sent to the processes and if so, invokes the corresponding " @@ -520,27 +518,27 @@ msgid "" "may not be cleared if it was previously set." msgstr "" -#: ../Doc/c-api/exceptions.rst:522 +#: c-api/exceptions.rst:522 msgid "" "Simulate the effect of a :const:`SIGINT` signal arriving. The next time :c:" "func:`PyErr_CheckSignals` is called, the Python signal handler for :const:" "`SIGINT` will be called." msgstr "" -#: ../Doc/c-api/exceptions.rst:526 +#: c-api/exceptions.rst:526 msgid "" "If :const:`SIGINT` isn't handled by Python (it was set to :data:`signal." "SIG_DFL` or :data:`signal.SIG_IGN`), this function does nothing." msgstr "" -#: ../Doc/c-api/exceptions.rst:532 +#: c-api/exceptions.rst:532 msgid "" "This utility function specifies a file descriptor to which the signal number " "is written as a single byte whenever a signal is received. *fd* must be non-" "blocking. It returns the previous such file descriptor." msgstr "" -#: ../Doc/c-api/exceptions.rst:536 +#: c-api/exceptions.rst:536 msgid "" "The value ``-1`` disables the feature; this is the initial state. This is " "equivalent to :func:`signal.set_wakeup_fd` in Python, but without any error " @@ -548,15 +546,15 @@ msgid "" "be called from the main thread." msgstr "" -#: ../Doc/c-api/exceptions.rst:541 +#: c-api/exceptions.rst:541 msgid "On Windows, the function now also supports socket handles." msgstr "" -#: ../Doc/c-api/exceptions.rst:546 +#: c-api/exceptions.rst:546 msgid "Exception Classes" msgstr "" -#: ../Doc/c-api/exceptions.rst:550 +#: c-api/exceptions.rst:550 msgid "" "This utility function creates and returns a new exception class. The *name* " "argument must be the name of the new exception, a C string of the form " @@ -565,7 +563,7 @@ msgid "" "(accessible in C as :c:data:`PyExc_Exception`)." msgstr "" -#: ../Doc/c-api/exceptions.rst:556 +#: c-api/exceptions.rst:556 msgid "" "The :attr:`__module__` attribute of the new class is set to the first part " "(up to the last dot) of the *name* argument, and the class name is set to " @@ -575,31 +573,31 @@ msgid "" "variables and methods." msgstr "" -#: ../Doc/c-api/exceptions.rst:565 +#: c-api/exceptions.rst:565 msgid "" "Same as :c:func:`PyErr_NewException`, except that the new exception class " "can easily be given a docstring: If *doc* is non-``NULL``, it will be used " "as the docstring for the exception class." msgstr "" -#: ../Doc/c-api/exceptions.rst:573 +#: c-api/exceptions.rst:573 msgid "Exception Objects" msgstr "Objets exception" -#: ../Doc/c-api/exceptions.rst:577 +#: c-api/exceptions.rst:577 msgid "" "Return the traceback associated with the exception as a new reference, as " "accessible from Python through :attr:`__traceback__`. If there is no " "traceback associated, this returns ``NULL``." msgstr "" -#: ../Doc/c-api/exceptions.rst:584 +#: c-api/exceptions.rst:584 msgid "" "Set the traceback associated with the exception to *tb*. Use ``Py_None`` to " "clear it." msgstr "" -#: ../Doc/c-api/exceptions.rst:590 +#: c-api/exceptions.rst:590 msgid "" "Return the context (another exception instance during whose handling *ex* " "was raised) associated with the exception as a new reference, as accessible " @@ -607,111 +605,127 @@ msgid "" "this returns ``NULL``." msgstr "" -#: ../Doc/c-api/exceptions.rst:598 +#: c-api/exceptions.rst:598 msgid "" "Set the context associated with the exception to *ctx*. Use ``NULL`` to " "clear it. There is no type check to make sure that *ctx* is an exception " "instance. This steals a reference to *ctx*." msgstr "" -#: ../Doc/c-api/exceptions.rst:605 +#: c-api/exceptions.rst:605 msgid "" "Return the cause (either an exception instance, or :const:`None`, set by " "``raise ... from ...``) associated with the exception as a new reference, as " "accessible from Python through :attr:`__cause__`." msgstr "" -#: ../Doc/c-api/exceptions.rst:612 +#: c-api/exceptions.rst:612 msgid "" "Set the cause associated with the exception to *cause*. Use ``NULL`` to " "clear it. There is no type check to make sure that *cause* is either an " "exception instance or :const:`None`. This steals a reference to *cause*." msgstr "" -#: ../Doc/c-api/exceptions.rst:616 +#: c-api/exceptions.rst:616 msgid "" ":attr:`__suppress_context__` is implicitly set to ``True`` by this function." msgstr "" -#: ../Doc/c-api/exceptions.rst:622 +#: c-api/exceptions.rst:622 msgid "Unicode Exception Objects" msgstr "Objets exception Unicode" -#: ../Doc/c-api/exceptions.rst:624 +#: c-api/exceptions.rst:624 msgid "" "The following functions are used to create and modify Unicode exceptions " "from C." msgstr "" -#: ../Doc/c-api/exceptions.rst:628 +#: c-api/exceptions.rst:628 msgid "" "Create a :class:`UnicodeDecodeError` object with the attributes *encoding*, " "*object*, *length*, *start*, *end* and *reason*. *encoding* and *reason* are " "UTF-8 encoded strings." msgstr "" -#: ../Doc/c-api/exceptions.rst:634 +#: c-api/exceptions.rst:634 msgid "" "Create a :class:`UnicodeEncodeError` object with the attributes *encoding*, " "*object*, *length*, *start*, *end* and *reason*. *encoding* and *reason* are " "UTF-8 encoded strings." msgstr "" -#: ../Doc/c-api/exceptions.rst:640 +#: c-api/exceptions.rst:648 +msgid "3.11" +msgstr "3.11" + +#: c-api/exceptions.rst:640 +msgid "" +"``Py_UNICODE`` is deprecated since Python 3.3. Please migrate to " +"``PyObject_CallFunction(PyExc_UnicodeEncodeError, \"sOnns\", ...)``." +msgstr "" + +#: c-api/exceptions.rst:645 msgid "" "Create a :class:`UnicodeTranslateError` object with the attributes *object*, " "*length*, *start*, *end* and *reason*. *reason* is a UTF-8 encoded string." msgstr "" -#: ../Doc/c-api/exceptions.rst:646 +#: c-api/exceptions.rst:650 +msgid "" +"``Py_UNICODE`` is deprecated since Python 3.3. Please migrate to " +"``PyObject_CallFunction(PyExc_UnicodeTranslateError, \"Onns\", ...)``." +msgstr "" + +#: c-api/exceptions.rst:656 msgid "Return the *encoding* attribute of the given exception object." msgstr "" -#: ../Doc/c-api/exceptions.rst:652 +#: c-api/exceptions.rst:662 msgid "Return the *object* attribute of the given exception object." msgstr "" -#: ../Doc/c-api/exceptions.rst:658 +#: c-api/exceptions.rst:668 msgid "" -"Get the *start* attribute of the given exception object and place it into *" -"\\*start*. *start* must not be ``NULL``. Return ``0`` on success, ``-1`` " +"Get the *start* attribute of the given exception object and place it into " +"*\\*start*. *start* must not be ``NULL``. Return ``0`` on success, ``-1`` " "on failure." msgstr "" -#: ../Doc/c-api/exceptions.rst:666 +#: c-api/exceptions.rst:676 msgid "" "Set the *start* attribute of the given exception object to *start*. Return " "``0`` on success, ``-1`` on failure." msgstr "" -#: ../Doc/c-api/exceptions.rst:673 +#: c-api/exceptions.rst:683 msgid "" -"Get the *end* attribute of the given exception object and place it into *" -"\\*end*. *end* must not be ``NULL``. Return ``0`` on success, ``-1`` on " +"Get the *end* attribute of the given exception object and place it into " +"*\\*end*. *end* must not be ``NULL``. Return ``0`` on success, ``-1`` on " "failure." msgstr "" -#: ../Doc/c-api/exceptions.rst:681 +#: c-api/exceptions.rst:691 msgid "" "Set the *end* attribute of the given exception object to *end*. Return " "``0`` on success, ``-1`` on failure." msgstr "" -#: ../Doc/c-api/exceptions.rst:688 +#: c-api/exceptions.rst:698 msgid "Return the *reason* attribute of the given exception object." msgstr "" -#: ../Doc/c-api/exceptions.rst:694 +#: c-api/exceptions.rst:704 msgid "" "Set the *reason* attribute of the given exception object to *reason*. " "Return ``0`` on success, ``-1`` on failure." msgstr "" -#: ../Doc/c-api/exceptions.rst:699 +#: c-api/exceptions.rst:709 msgid "Recursion Control" msgstr "Contrôle de la récursion" -#: ../Doc/c-api/exceptions.rst:701 +#: c-api/exceptions.rst:711 msgid "" "These two functions provide a way to perform safe recursive calls at the C " "level, both in the core and in extension modules. They are needed if the " @@ -719,38 +733,38 @@ msgid "" "recursion depth automatically)." msgstr "" -#: ../Doc/c-api/exceptions.rst:708 +#: c-api/exceptions.rst:718 msgid "Marks a point where a recursive C-level call is about to be performed." msgstr "" -#: ../Doc/c-api/exceptions.rst:710 +#: c-api/exceptions.rst:720 msgid "" "If :const:`USE_STACKCHECK` is defined, this function checks if the OS stack " "overflowed using :c:func:`PyOS_CheckStack`. In this is the case, it sets a :" "exc:`MemoryError` and returns a nonzero value." msgstr "" -#: ../Doc/c-api/exceptions.rst:714 +#: c-api/exceptions.rst:724 msgid "" "The function then checks if the recursion limit is reached. If this is the " "case, a :exc:`RecursionError` is set and a nonzero value is returned. " "Otherwise, zero is returned." msgstr "" -#: ../Doc/c-api/exceptions.rst:718 +#: c-api/exceptions.rst:728 msgid "" "*where* should be a string such as ``\" in instance check\"`` to be " "concatenated to the :exc:`RecursionError` message caused by the recursion " "depth limit." msgstr "" -#: ../Doc/c-api/exceptions.rst:724 +#: c-api/exceptions.rst:734 msgid "" "Ends a :c:func:`Py_EnterRecursiveCall`. Must be called once for each " "*successful* invocation of :c:func:`Py_EnterRecursiveCall`." msgstr "" -#: ../Doc/c-api/exceptions.rst:727 +#: c-api/exceptions.rst:737 msgid "" "Properly implementing :c:member:`~PyTypeObject.tp_repr` for container types " "requires special recursion handling. In addition to protecting the stack, :" @@ -759,13 +773,13 @@ msgid "" "Effectively, these are the C equivalent to :func:`reprlib.recursive_repr`." msgstr "" -#: ../Doc/c-api/exceptions.rst:735 +#: c-api/exceptions.rst:745 msgid "" "Called at the beginning of the :c:member:`~PyTypeObject.tp_repr` " "implementation to detect cycles." msgstr "" -#: ../Doc/c-api/exceptions.rst:738 +#: c-api/exceptions.rst:748 msgid "" "If the object has already been processed, the function returns a positive " "integer. In that case the :c:member:`~PyTypeObject.tp_repr` implementation " @@ -773,486 +787,483 @@ msgid "" "`dict` objects return ``{...}`` and :class:`list` objects return ``[...]``." msgstr "" -#: ../Doc/c-api/exceptions.rst:744 +#: c-api/exceptions.rst:754 msgid "" "The function will return a negative integer if the recursion limit is " "reached. In that case the :c:member:`~PyTypeObject.tp_repr` implementation " "should typically return ``NULL``." msgstr "" -#: ../Doc/c-api/exceptions.rst:748 +#: c-api/exceptions.rst:758 msgid "" "Otherwise, the function returns zero and the :c:member:`~PyTypeObject." "tp_repr` implementation can continue normally." msgstr "" -#: ../Doc/c-api/exceptions.rst:753 +#: c-api/exceptions.rst:763 msgid "" "Ends a :c:func:`Py_ReprEnter`. Must be called once for each invocation of :" "c:func:`Py_ReprEnter` that returns zero." msgstr "" -#: ../Doc/c-api/exceptions.rst:760 +#: c-api/exceptions.rst:770 msgid "Standard Exceptions" msgstr "Exceptions standards" -#: ../Doc/c-api/exceptions.rst:762 +#: c-api/exceptions.rst:772 msgid "" "All standard Python exceptions are available as global variables whose names " "are ``PyExc_`` followed by the Python exception name. These have the type :" -"c:type:`PyObject\\*`; they are all class objects. For completeness, here " -"are all the variables:" +"c:type:`PyObject*`; they are all class objects. For completeness, here are " +"all the variables:" msgstr "" -#: ../Doc/c-api/exceptions.rst:823 ../Doc/c-api/exceptions.rst:956 -#: ../Doc/c-api/exceptions.rst:1004 +#: c-api/exceptions.rst:966 c-api/exceptions.rst:1011 msgid "C Name" msgstr "Nom C" -#: ../Doc/c-api/exceptions.rst:823 ../Doc/c-api/exceptions.rst:1004 +#: c-api/exceptions.rst:1011 msgid "Python Name" msgstr "Nom Python" -#: ../Doc/c-api/exceptions.rst:823 ../Doc/c-api/exceptions.rst:956 -#: ../Doc/c-api/exceptions.rst:1004 +#: c-api/exceptions.rst:966 c-api/exceptions.rst:1011 msgid "Notes" msgstr "Notes" -#: ../Doc/c-api/exceptions.rst:825 +#: c-api/exceptions.rst:835 msgid ":c:data:`PyExc_BaseException`" msgstr ":c:data:`PyExc_BaseException`" -#: ../Doc/c-api/exceptions.rst:825 +#: c-api/exceptions.rst:835 msgid ":exc:`BaseException`" msgstr ":exc:`BaseException`" -#: ../Doc/c-api/exceptions.rst:825 ../Doc/c-api/exceptions.rst:827 -#: ../Doc/c-api/exceptions.rst:829 ../Doc/c-api/exceptions.rst:875 -#: ../Doc/c-api/exceptions.rst:887 ../Doc/c-api/exceptions.rst:1006 +#: c-api/exceptions.rst:837 c-api/exceptions.rst:885 c-api/exceptions.rst:1013 msgid "\\(1)" msgstr "\\(1)" -#: ../Doc/c-api/exceptions.rst:827 +#: c-api/exceptions.rst:837 msgid ":c:data:`PyExc_Exception`" msgstr ":c:data:`PyExc_Exception`" -#: ../Doc/c-api/exceptions.rst:827 +#: c-api/exceptions.rst:837 msgid ":exc:`Exception`" msgstr ":exc:`Exception`" -#: ../Doc/c-api/exceptions.rst:829 +#: c-api/exceptions.rst:839 msgid ":c:data:`PyExc_ArithmeticError`" msgstr ":c:data:`PyExc_ArithmeticError`" -#: ../Doc/c-api/exceptions.rst:829 +#: c-api/exceptions.rst:839 msgid ":exc:`ArithmeticError`" msgstr ":exc:`ArithmeticError`" -#: ../Doc/c-api/exceptions.rst:831 +#: c-api/exceptions.rst:841 msgid ":c:data:`PyExc_AssertionError`" msgstr ":c:data:`PyExc_AssertionError`" -#: ../Doc/c-api/exceptions.rst:831 +#: c-api/exceptions.rst:841 msgid ":exc:`AssertionError`" msgstr ":exc:`AssertionError`" -#: ../Doc/c-api/exceptions.rst:833 +#: c-api/exceptions.rst:843 msgid ":c:data:`PyExc_AttributeError`" msgstr ":c:data:`PyExc_AttributeError`" -#: ../Doc/c-api/exceptions.rst:833 +#: c-api/exceptions.rst:843 msgid ":exc:`AttributeError`" msgstr ":exc:`AttributeError`" -#: ../Doc/c-api/exceptions.rst:835 +#: c-api/exceptions.rst:845 msgid ":c:data:`PyExc_BlockingIOError`" msgstr ":c:data:`PyExc_BlockingIOError`" -#: ../Doc/c-api/exceptions.rst:835 +#: c-api/exceptions.rst:845 msgid ":exc:`BlockingIOError`" msgstr ":exc:`BlockingIOError`" -#: ../Doc/c-api/exceptions.rst:837 +#: c-api/exceptions.rst:847 msgid ":c:data:`PyExc_BrokenPipeError`" msgstr ":c:data:`PyExc_BrokenPipeError`" -#: ../Doc/c-api/exceptions.rst:837 +#: c-api/exceptions.rst:847 msgid ":exc:`BrokenPipeError`" msgstr ":exc:`BrokenPipeError`" -#: ../Doc/c-api/exceptions.rst:839 +#: c-api/exceptions.rst:849 msgid ":c:data:`PyExc_BufferError`" msgstr ":c:data:`PyExc_BufferError`" -#: ../Doc/c-api/exceptions.rst:839 +#: c-api/exceptions.rst:849 msgid ":exc:`BufferError`" msgstr ":exc:`BufferError`" -#: ../Doc/c-api/exceptions.rst:841 +#: c-api/exceptions.rst:851 msgid ":c:data:`PyExc_ChildProcessError`" msgstr ":c:data:`PyExc_ChildProcessError`" -#: ../Doc/c-api/exceptions.rst:841 +#: c-api/exceptions.rst:851 msgid ":exc:`ChildProcessError`" msgstr ":exc:`ChildProcessError`" -#: ../Doc/c-api/exceptions.rst:843 +#: c-api/exceptions.rst:853 msgid ":c:data:`PyExc_ConnectionAbortedError`" msgstr ":c:data:`PyExc_ConnectionAbortedError`" -#: ../Doc/c-api/exceptions.rst:843 +#: c-api/exceptions.rst:853 msgid ":exc:`ConnectionAbortedError`" msgstr ":exc:`ConnectionAbortedError`" -#: ../Doc/c-api/exceptions.rst:845 +#: c-api/exceptions.rst:855 msgid ":c:data:`PyExc_ConnectionError`" msgstr ":c:data:`PyExc_ConnectionError`" -#: ../Doc/c-api/exceptions.rst:845 +#: c-api/exceptions.rst:855 msgid ":exc:`ConnectionError`" msgstr ":exc:`ConnectionError`" -#: ../Doc/c-api/exceptions.rst:847 +#: c-api/exceptions.rst:857 msgid ":c:data:`PyExc_ConnectionRefusedError`" msgstr ":c:data:`PyExc_ConnectionRefusedError`" -#: ../Doc/c-api/exceptions.rst:847 +#: c-api/exceptions.rst:857 msgid ":exc:`ConnectionRefusedError`" msgstr ":exc:`ConnectionRefusedError`" -#: ../Doc/c-api/exceptions.rst:849 +#: c-api/exceptions.rst:859 msgid ":c:data:`PyExc_ConnectionResetError`" msgstr ":c:data:`PyExc_ConnectionResetError`" -#: ../Doc/c-api/exceptions.rst:849 +#: c-api/exceptions.rst:859 msgid ":exc:`ConnectionResetError`" msgstr ":exc:`ConnectionResetError`" -#: ../Doc/c-api/exceptions.rst:851 +#: c-api/exceptions.rst:861 msgid ":c:data:`PyExc_EOFError`" msgstr ":c:data:`PyExc_EOFError`" -#: ../Doc/c-api/exceptions.rst:851 +#: c-api/exceptions.rst:861 msgid ":exc:`EOFError`" msgstr ":exc:`EOFError`" -#: ../Doc/c-api/exceptions.rst:853 +#: c-api/exceptions.rst:863 msgid ":c:data:`PyExc_FileExistsError`" msgstr ":c:data:`PyExc_FileExistsError`" -#: ../Doc/c-api/exceptions.rst:853 +#: c-api/exceptions.rst:863 msgid ":exc:`FileExistsError`" msgstr ":exc:`FileExistsError`" -#: ../Doc/c-api/exceptions.rst:855 +#: c-api/exceptions.rst:865 msgid ":c:data:`PyExc_FileNotFoundError`" msgstr ":c:data:`PyExc_FloatingPointError`" -#: ../Doc/c-api/exceptions.rst:855 +#: c-api/exceptions.rst:865 msgid ":exc:`FileNotFoundError`" msgstr ":exc:`FileNotFoundError`" -#: ../Doc/c-api/exceptions.rst:857 +#: c-api/exceptions.rst:867 msgid ":c:data:`PyExc_FloatingPointError`" msgstr ":c:data:`PyExc_FloatingPointError`" -#: ../Doc/c-api/exceptions.rst:857 +#: c-api/exceptions.rst:867 msgid ":exc:`FloatingPointError`" msgstr ":exc:`FloatingPointError`" -#: ../Doc/c-api/exceptions.rst:859 +#: c-api/exceptions.rst:869 msgid ":c:data:`PyExc_GeneratorExit`" msgstr ":c:data:`PyExc_GeneratorExit`" -#: ../Doc/c-api/exceptions.rst:859 +#: c-api/exceptions.rst:869 msgid ":exc:`GeneratorExit`" msgstr ":exc:`GeneratorExit`" -#: ../Doc/c-api/exceptions.rst:861 +#: c-api/exceptions.rst:871 msgid ":c:data:`PyExc_ImportError`" msgstr ":c:data:`PyExc_ImportError`" -#: ../Doc/c-api/exceptions.rst:861 +#: c-api/exceptions.rst:871 msgid ":exc:`ImportError`" msgstr ":exc:`ImportError`" -#: ../Doc/c-api/exceptions.rst:863 +#: c-api/exceptions.rst:873 msgid ":c:data:`PyExc_IndentationError`" msgstr ":c:data:`PyExc_IndentationError`" -#: ../Doc/c-api/exceptions.rst:863 +#: c-api/exceptions.rst:873 msgid ":exc:`IndentationError`" msgstr ":exc:`IndentationError`" -#: ../Doc/c-api/exceptions.rst:865 +#: c-api/exceptions.rst:875 msgid ":c:data:`PyExc_IndexError`" msgstr ":c:data:`PyExc_IndexError`" -#: ../Doc/c-api/exceptions.rst:865 +#: c-api/exceptions.rst:875 msgid ":exc:`IndexError`" msgstr ":exc:`IndexError`" -#: ../Doc/c-api/exceptions.rst:867 +#: c-api/exceptions.rst:877 msgid ":c:data:`PyExc_InterruptedError`" msgstr ":c:data:`PyExc_InterruptedError`" -#: ../Doc/c-api/exceptions.rst:867 +#: c-api/exceptions.rst:877 msgid ":exc:`InterruptedError`" msgstr ":exc:`InterruptedError`" -#: ../Doc/c-api/exceptions.rst:869 +#: c-api/exceptions.rst:879 msgid ":c:data:`PyExc_IsADirectoryError`" msgstr ":c:data:`PyExc_IsADirectoryError`" -#: ../Doc/c-api/exceptions.rst:869 +#: c-api/exceptions.rst:879 msgid ":exc:`IsADirectoryError`" msgstr ":exc:`IsADirectoryError`" -#: ../Doc/c-api/exceptions.rst:871 +#: c-api/exceptions.rst:881 msgid ":c:data:`PyExc_KeyError`" msgstr ":c:data:`PyExc_KeyError`" -#: ../Doc/c-api/exceptions.rst:871 +#: c-api/exceptions.rst:881 msgid ":exc:`KeyError`" msgstr ":exc:`KeyError`" -#: ../Doc/c-api/exceptions.rst:873 +#: c-api/exceptions.rst:883 msgid ":c:data:`PyExc_KeyboardInterrupt`" msgstr ":c:data:`PyExc_KeyboardInterrupt`" -#: ../Doc/c-api/exceptions.rst:873 +#: c-api/exceptions.rst:883 msgid ":exc:`KeyboardInterrupt`" msgstr ":exc:`KeyboardInterrupt`" -#: ../Doc/c-api/exceptions.rst:875 +#: c-api/exceptions.rst:885 msgid ":c:data:`PyExc_LookupError`" msgstr ":c:data:`PyExc_LookupError`" -#: ../Doc/c-api/exceptions.rst:875 +#: c-api/exceptions.rst:885 msgid ":exc:`LookupError`" msgstr ":exc:`LookupError`" -#: ../Doc/c-api/exceptions.rst:877 +#: c-api/exceptions.rst:887 msgid ":c:data:`PyExc_MemoryError`" msgstr ":c:data:`PyExc_MemoryError`" -#: ../Doc/c-api/exceptions.rst:877 +#: c-api/exceptions.rst:887 msgid ":exc:`MemoryError`" msgstr ":exc:`MemoryError`" -#: ../Doc/c-api/exceptions.rst:879 +#: c-api/exceptions.rst:889 +#, fuzzy msgid ":c:data:`PyExc_ModuleNotFoundError`" -msgstr "" +msgstr ":c:data:`PyExc_ModuleNotFoundError`." -#: ../Doc/c-api/exceptions.rst:879 +#: c-api/exceptions.rst:889 msgid ":exc:`ModuleNotFoundError`" -msgstr "" +msgstr ":exc:`ModuleNotFoundError`" -#: ../Doc/c-api/exceptions.rst:881 +#: c-api/exceptions.rst:891 msgid ":c:data:`PyExc_NameError`" msgstr ":c:data:`PyExc_NameError`" -#: ../Doc/c-api/exceptions.rst:881 +#: c-api/exceptions.rst:891 msgid ":exc:`NameError`" msgstr ":exc:`NameError`" -#: ../Doc/c-api/exceptions.rst:883 +#: c-api/exceptions.rst:893 msgid ":c:data:`PyExc_NotADirectoryError`" msgstr ":c:data:`PyExc_NotADirectoryError`" -#: ../Doc/c-api/exceptions.rst:883 +#: c-api/exceptions.rst:893 msgid ":exc:`NotADirectoryError`" msgstr ":exc:`NotADirectoryError`" -#: ../Doc/c-api/exceptions.rst:885 +#: c-api/exceptions.rst:895 msgid ":c:data:`PyExc_NotImplementedError`" msgstr ":c:data:`PyExc_NotImplementedError`" -#: ../Doc/c-api/exceptions.rst:885 +#: c-api/exceptions.rst:895 msgid ":exc:`NotImplementedError`" msgstr ":exc:`NotImplementedError`" -#: ../Doc/c-api/exceptions.rst:887 +#: c-api/exceptions.rst:897 msgid ":c:data:`PyExc_OSError`" msgstr ":c:data:`PyExc_OSError`" -#: ../Doc/c-api/exceptions.rst:887 +#: c-api/exceptions.rst:897 msgid ":exc:`OSError`" msgstr ":exc:`OSError`" -#: ../Doc/c-api/exceptions.rst:889 +#: c-api/exceptions.rst:899 msgid ":c:data:`PyExc_OverflowError`" msgstr ":c:data:`PyExc_OverflowError`" -#: ../Doc/c-api/exceptions.rst:889 +#: c-api/exceptions.rst:899 msgid ":exc:`OverflowError`" msgstr ":exc:`OverflowError`" -#: ../Doc/c-api/exceptions.rst:891 +#: c-api/exceptions.rst:901 msgid ":c:data:`PyExc_PermissionError`" msgstr ":c:data:`PyExc_PermissionError`" -#: ../Doc/c-api/exceptions.rst:891 +#: c-api/exceptions.rst:901 msgid ":exc:`PermissionError`" msgstr ":exc:`PermissionError`" -#: ../Doc/c-api/exceptions.rst:893 +#: c-api/exceptions.rst:903 msgid ":c:data:`PyExc_ProcessLookupError`" msgstr ":c:data:`PyExc_ProcessLookupError`" -#: ../Doc/c-api/exceptions.rst:893 +#: c-api/exceptions.rst:903 msgid ":exc:`ProcessLookupError`" msgstr ":exc:`ProcessLookupError`" -#: ../Doc/c-api/exceptions.rst:895 +#: c-api/exceptions.rst:905 msgid ":c:data:`PyExc_RecursionError`" msgstr ":c:data:`PyExc_ReferenceError`" -#: ../Doc/c-api/exceptions.rst:895 +#: c-api/exceptions.rst:905 msgid ":exc:`RecursionError`" -msgstr "" +msgstr ":exc:`RecursionError`" -#: ../Doc/c-api/exceptions.rst:897 +#: c-api/exceptions.rst:907 msgid ":c:data:`PyExc_ReferenceError`" msgstr ":c:data:`PyExc_ReferenceError`" -#: ../Doc/c-api/exceptions.rst:897 +#: c-api/exceptions.rst:907 msgid ":exc:`ReferenceError`" msgstr ":exc:`ReferenceError`" -#: ../Doc/c-api/exceptions.rst:897 +#: c-api/exceptions.rst:907 msgid "\\(2)" msgstr "\\(2)" -#: ../Doc/c-api/exceptions.rst:899 +#: c-api/exceptions.rst:909 msgid ":c:data:`PyExc_RuntimeError`" msgstr ":c:data:`PyExc_RuntimeError`" -#: ../Doc/c-api/exceptions.rst:899 +#: c-api/exceptions.rst:909 msgid ":exc:`RuntimeError`" msgstr ":exc:`RuntimeError`" -#: ../Doc/c-api/exceptions.rst:901 +#: c-api/exceptions.rst:911 msgid ":c:data:`PyExc_StopAsyncIteration`" msgstr ":c:data:`PyExc_StopAsyncIteration`" -#: ../Doc/c-api/exceptions.rst:901 +#: c-api/exceptions.rst:911 msgid ":exc:`StopAsyncIteration`" msgstr ":exc:`StopAsyncIteration`" -#: ../Doc/c-api/exceptions.rst:903 +#: c-api/exceptions.rst:913 msgid ":c:data:`PyExc_StopIteration`" msgstr ":c:data:`PyExc_StopIteration`" -#: ../Doc/c-api/exceptions.rst:903 +#: c-api/exceptions.rst:913 msgid ":exc:`StopIteration`" msgstr ":exc:`StopIteration`" -#: ../Doc/c-api/exceptions.rst:905 +#: c-api/exceptions.rst:915 msgid ":c:data:`PyExc_SyntaxError`" msgstr ":c:data:`PyExc_SyntaxError`" -#: ../Doc/c-api/exceptions.rst:905 +#: c-api/exceptions.rst:915 msgid ":exc:`SyntaxError`" msgstr ":exc:`SyntaxError`" -#: ../Doc/c-api/exceptions.rst:907 +#: c-api/exceptions.rst:917 msgid ":c:data:`PyExc_SystemError`" msgstr ":c:data:`PyExc_SystemError`" -#: ../Doc/c-api/exceptions.rst:907 +#: c-api/exceptions.rst:917 msgid ":exc:`SystemError`" msgstr ":exc:`SystemError`" -#: ../Doc/c-api/exceptions.rst:909 +#: c-api/exceptions.rst:919 msgid ":c:data:`PyExc_SystemExit`" msgstr ":c:data:`PyExc_SystemExit`" -#: ../Doc/c-api/exceptions.rst:909 +#: c-api/exceptions.rst:919 msgid ":exc:`SystemExit`" msgstr ":exc:`SystemExit`" -#: ../Doc/c-api/exceptions.rst:911 +#: c-api/exceptions.rst:921 msgid ":c:data:`PyExc_TabError`" msgstr ":c:data:`PyExc_TabError`" -#: ../Doc/c-api/exceptions.rst:911 +#: c-api/exceptions.rst:921 msgid ":exc:`TabError`" msgstr ":exc:`TabError`" -#: ../Doc/c-api/exceptions.rst:913 +#: c-api/exceptions.rst:923 msgid ":c:data:`PyExc_TimeoutError`" msgstr ":c:data:`PyExc_ImportError`" -#: ../Doc/c-api/exceptions.rst:913 +#: c-api/exceptions.rst:923 msgid ":exc:`TimeoutError`" msgstr ":exc:`TimeoutError`" -#: ../Doc/c-api/exceptions.rst:915 +#: c-api/exceptions.rst:925 msgid ":c:data:`PyExc_TypeError`" msgstr ":c:data:`PyExc_TypeError`" -#: ../Doc/c-api/exceptions.rst:915 +#: c-api/exceptions.rst:925 msgid ":exc:`TypeError`" msgstr ":exc:`TypeError`" -#: ../Doc/c-api/exceptions.rst:917 +#: c-api/exceptions.rst:927 msgid ":c:data:`PyExc_UnboundLocalError`" msgstr ":c:data:`PyExc_UnboundLocalError`" -#: ../Doc/c-api/exceptions.rst:917 +#: c-api/exceptions.rst:927 msgid ":exc:`UnboundLocalError`" msgstr ":exc:`UnboundLocalError`" -#: ../Doc/c-api/exceptions.rst:919 +#: c-api/exceptions.rst:929 msgid ":c:data:`PyExc_UnicodeDecodeError`" msgstr ":c:data:`PyExc_UnicodeDecodeError`" -#: ../Doc/c-api/exceptions.rst:919 +#: c-api/exceptions.rst:929 msgid ":exc:`UnicodeDecodeError`" msgstr ":exc:`UnicodeDecodeError`" -#: ../Doc/c-api/exceptions.rst:921 +#: c-api/exceptions.rst:931 msgid ":c:data:`PyExc_UnicodeEncodeError`" msgstr ":c:data:`PyExc_UnicodeEncodeError`" -#: ../Doc/c-api/exceptions.rst:921 +#: c-api/exceptions.rst:931 msgid ":exc:`UnicodeEncodeError`" msgstr ":exc:`UnicodeEncodeError`" -#: ../Doc/c-api/exceptions.rst:923 +#: c-api/exceptions.rst:933 msgid ":c:data:`PyExc_UnicodeError`" msgstr ":c:data:`PyExc_UnicodeError`" -#: ../Doc/c-api/exceptions.rst:923 +#: c-api/exceptions.rst:933 msgid ":exc:`UnicodeError`" msgstr ":exc:`UnicodeError`" -#: ../Doc/c-api/exceptions.rst:925 +#: c-api/exceptions.rst:935 msgid ":c:data:`PyExc_UnicodeTranslateError`" msgstr ":c:data:`PyExc_UnicodeTranslateError`" -#: ../Doc/c-api/exceptions.rst:925 +#: c-api/exceptions.rst:935 msgid ":exc:`UnicodeTranslateError`" msgstr ":exc:`UnicodeTranslateError`" -#: ../Doc/c-api/exceptions.rst:927 +#: c-api/exceptions.rst:937 msgid ":c:data:`PyExc_ValueError`" msgstr ":c:data:`PyExc_ValueError`" -#: ../Doc/c-api/exceptions.rst:927 +#: c-api/exceptions.rst:937 msgid ":exc:`ValueError`" msgstr ":exc:`ValueError`" -#: ../Doc/c-api/exceptions.rst:929 +#: c-api/exceptions.rst:939 msgid ":c:data:`PyExc_ZeroDivisionError`" msgstr ":c:data:`PyExc_ZeroDivisionError`" -#: ../Doc/c-api/exceptions.rst:929 +#: c-api/exceptions.rst:939 msgid ":exc:`ZeroDivisionError`" msgstr ":exc:`ZeroDivisionError`" -#: ../Doc/c-api/exceptions.rst:932 +#: c-api/exceptions.rst:942 msgid "" ":c:data:`PyExc_BlockingIOError`, :c:data:`PyExc_BrokenPipeError`, :c:data:" "`PyExc_ChildProcessError`, :c:data:`PyExc_ConnectionError`, :c:data:" @@ -1264,160 +1275,159 @@ msgid "" "`PyExc_TimeoutError` were introduced following :pep:`3151`." msgstr "" -#: ../Doc/c-api/exceptions.rst:942 +#: c-api/exceptions.rst:952 msgid ":c:data:`PyExc_StopAsyncIteration` and :c:data:`PyExc_RecursionError`." msgstr ":c:data:`PyExc_StopAsyncIteration` et :c:data:`PyExc_RecursionError`." -#: ../Doc/c-api/exceptions.rst:945 +#: c-api/exceptions.rst:955 msgid ":c:data:`PyExc_ModuleNotFoundError`." msgstr ":c:data:`PyExc_ModuleNotFoundError`." -#: ../Doc/c-api/exceptions.rst:948 +#: c-api/exceptions.rst:958 msgid "These are compatibility aliases to :c:data:`PyExc_OSError`:" msgstr "" -#: ../Doc/c-api/exceptions.rst:958 +#: c-api/exceptions.rst:968 msgid ":c:data:`PyExc_EnvironmentError`" msgstr ":c:data:`PyExc_EnvironmentError`" -#: ../Doc/c-api/exceptions.rst:960 +#: c-api/exceptions.rst:970 msgid ":c:data:`PyExc_IOError`" msgstr ":c:data:`PyExc_IOError`" -#: ../Doc/c-api/exceptions.rst:962 +#: c-api/exceptions.rst:972 msgid ":c:data:`PyExc_WindowsError`" msgstr ":c:data:`PyExc_WindowsError`" -#: ../Doc/c-api/exceptions.rst:962 +#: c-api/exceptions.rst:972 msgid "\\(3)" msgstr "\\(3)" -#: ../Doc/c-api/exceptions.rst:965 +#: c-api/exceptions.rst:975 msgid "These aliases used to be separate exception types." msgstr "" -#: ../Doc/c-api/exceptions.rst:968 ../Doc/c-api/exceptions.rst:1032 +#: c-api/exceptions.rst:1039 msgid "Notes:" msgstr "Notes :" -#: ../Doc/c-api/exceptions.rst:971 +#: c-api/exceptions.rst:981 msgid "This is a base class for other standard exceptions." msgstr "C'est la classe de base pour les autres exceptions standards." -#: ../Doc/c-api/exceptions.rst:974 -msgid "This is the same as :exc:`weakref.ReferenceError`." -msgstr "Identique à :exc:`weakref.ReferenceError`." - -#: ../Doc/c-api/exceptions.rst:977 +#: c-api/exceptions.rst:984 msgid "" "Only defined on Windows; protect code that uses this by testing that the " "preprocessor macro ``MS_WINDOWS`` is defined." msgstr "" -#: ../Doc/c-api/exceptions.rst:983 +#: c-api/exceptions.rst:990 msgid "Standard Warning Categories" msgstr "" -#: ../Doc/c-api/exceptions.rst:985 +#: c-api/exceptions.rst:992 msgid "" "All standard Python warning categories are available as global variables " "whose names are ``PyExc_`` followed by the Python exception name. These have " -"the type :c:type:`PyObject\\*`; they are all class objects. For " -"completeness, here are all the variables:" +"the type :c:type:`PyObject*`; they are all class objects. For completeness, " +"here are all the variables:" msgstr "" -#: ../Doc/c-api/exceptions.rst:1006 +#: c-api/exceptions.rst:1013 msgid ":c:data:`PyExc_Warning`" msgstr ":c:data:`PyExc_Warning`" -#: ../Doc/c-api/exceptions.rst:1006 +#: c-api/exceptions.rst:1013 msgid ":exc:`Warning`" msgstr ":exc:`Warning`" -#: ../Doc/c-api/exceptions.rst:1008 +#: c-api/exceptions.rst:1015 msgid ":c:data:`PyExc_BytesWarning`" msgstr ":c:data:`PyExc_BytesWarning`" -#: ../Doc/c-api/exceptions.rst:1008 +#: c-api/exceptions.rst:1015 msgid ":exc:`BytesWarning`" msgstr ":exc:`BytesWarning`" -#: ../Doc/c-api/exceptions.rst:1010 +#: c-api/exceptions.rst:1017 msgid ":c:data:`PyExc_DeprecationWarning`" msgstr ":c:data:`PyExc_DeprecationWarning`" -#: ../Doc/c-api/exceptions.rst:1010 +#: c-api/exceptions.rst:1017 msgid ":exc:`DeprecationWarning`" msgstr ":exc:`DeprecationWarning`" -#: ../Doc/c-api/exceptions.rst:1012 +#: c-api/exceptions.rst:1019 msgid ":c:data:`PyExc_FutureWarning`" msgstr ":c:data:`PyExc_FutureWarning`" -#: ../Doc/c-api/exceptions.rst:1012 +#: c-api/exceptions.rst:1019 msgid ":exc:`FutureWarning`" msgstr ":exc:`FutureWarning`" -#: ../Doc/c-api/exceptions.rst:1014 +#: c-api/exceptions.rst:1021 msgid ":c:data:`PyExc_ImportWarning`" msgstr ":c:data:`PyExc_ImportWarning`" -#: ../Doc/c-api/exceptions.rst:1014 +#: c-api/exceptions.rst:1021 msgid ":exc:`ImportWarning`" msgstr ":exc:`ImportWarning`" -#: ../Doc/c-api/exceptions.rst:1016 +#: c-api/exceptions.rst:1023 msgid ":c:data:`PyExc_PendingDeprecationWarning`" msgstr ":c:data:`PyExc_PendingDeprecationWarning`" -#: ../Doc/c-api/exceptions.rst:1016 +#: c-api/exceptions.rst:1023 msgid ":exc:`PendingDeprecationWarning`" msgstr ":exc:`PendingDeprecationWarning`" -#: ../Doc/c-api/exceptions.rst:1018 +#: c-api/exceptions.rst:1025 msgid ":c:data:`PyExc_ResourceWarning`" msgstr ":c:data:`PyExc_ResourceWarning`" -#: ../Doc/c-api/exceptions.rst:1018 +#: c-api/exceptions.rst:1025 msgid ":exc:`ResourceWarning`" msgstr ":exc:`ResourceWarning`" -#: ../Doc/c-api/exceptions.rst:1020 +#: c-api/exceptions.rst:1027 msgid ":c:data:`PyExc_RuntimeWarning`" msgstr ":c:data:`PyExc_RuntimeWarning`" -#: ../Doc/c-api/exceptions.rst:1020 +#: c-api/exceptions.rst:1027 msgid ":exc:`RuntimeWarning`" msgstr ":exc:`RuntimeWarning`" -#: ../Doc/c-api/exceptions.rst:1022 +#: c-api/exceptions.rst:1029 msgid ":c:data:`PyExc_SyntaxWarning`" msgstr ":c:data:`PyExc_SyntaxWarning`" -#: ../Doc/c-api/exceptions.rst:1022 +#: c-api/exceptions.rst:1029 msgid ":exc:`SyntaxWarning`" msgstr ":exc:`SyntaxWarning`" -#: ../Doc/c-api/exceptions.rst:1024 +#: c-api/exceptions.rst:1031 msgid ":c:data:`PyExc_UnicodeWarning`" msgstr ":c:data:`PyExc_UnicodeWarning`" -#: ../Doc/c-api/exceptions.rst:1024 +#: c-api/exceptions.rst:1031 msgid ":exc:`UnicodeWarning`" msgstr ":exc:`UnicodeWarning`" -#: ../Doc/c-api/exceptions.rst:1026 +#: c-api/exceptions.rst:1033 msgid ":c:data:`PyExc_UserWarning`" msgstr ":c:data:`PyExc_UserWarning`" -#: ../Doc/c-api/exceptions.rst:1026 +#: c-api/exceptions.rst:1033 msgid ":exc:`UserWarning`" msgstr ":exc:`UserWarning`" -#: ../Doc/c-api/exceptions.rst:1029 +#: c-api/exceptions.rst:1036 msgid ":c:data:`PyExc_ResourceWarning`." msgstr ":c:data:`PyExc_ResourceWarning`." -#: ../Doc/c-api/exceptions.rst:1035 +#: c-api/exceptions.rst:1042 msgid "This is a base class for other standard warning categories." msgstr "C'est la classe de base pour les autres catégories de *warning*." + +#~ msgid "This is the same as :exc:`weakref.ReferenceError`." +#~ msgstr "Identique à :exc:`weakref.ReferenceError`." diff --git a/c-api/file.po b/c-api/file.po index abc3c0304a..b30fe7b4e4 100644 --- a/c-api/file.po +++ b/c-api/file.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-15 18:54+0100\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2018-10-18 09:48+0200\n" "Last-Translator: \n" "Language-Team: FRENCH \n" @@ -15,14 +15,15 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 1.8.11\n" -#: ../Doc/c-api/file.rst:6 +#: c-api/file.rst:6 msgid "File Objects" msgstr "Objets fichiers" -#: ../Doc/c-api/file.rst:10 +#: c-api/file.rst:10 +#, fuzzy msgid "" "These APIs are a minimal emulation of the Python 2 C API for built-in file " -"objects, which used to rely on the buffered I/O (:c:type:`FILE\\*`) support " +"objects, which used to rely on the buffered I/O (:c:type:`FILE*`) support " "from the C standard library. In Python 3, files and streams use the new :" "mod:`io` module, which defines several layers over the low-level unbuffered " "I/O of the operating system. The functions described below are convenience " @@ -41,7 +42,7 @@ msgstr "" "l'interpréteur ; il est conseillé au code tiers d'utiliser les API de :mod:" "`io` à la place." -#: ../Doc/c-api/file.rst:22 +#: c-api/file.rst:22 #, fuzzy msgid "" "Create a Python file object from the file descriptor of an already opened " @@ -59,7 +60,7 @@ msgstr "" "détaillée des arguments, merci de vous référer à la documentation de " "fonction :func:`io.open`." -#: ../Doc/c-api/file.rst:31 +#: c-api/file.rst:31 msgid "" "Since Python streams have their own buffering layer, mixing them with OS-" "level file descriptors can produce various issues (such as unexpected " @@ -70,11 +71,11 @@ msgstr "" "d'exploitation peut produire des erreurs (comme par exemple un ordre des " "données inattendu)." -#: ../Doc/c-api/file.rst:35 +#: c-api/file.rst:35 msgid "Ignore *name* attribute." msgstr "ignore l'attribut *name*" -#: ../Doc/c-api/file.rst:41 +#: c-api/file.rst:41 msgid "" "Return the file descriptor associated with *p* as an :c:type:`int`. If the " "object is an integer, its value is returned. If not, the object's :meth:" @@ -88,7 +89,7 @@ msgstr "" "renvoyer un entier, qui est renvoyé en tant que valeur du descripteur. " "Affecte une exception et renvoie ``-1`` lors d'un échec." -#: ../Doc/c-api/file.rst:52 +#: c-api/file.rst:52 msgid "" "Equivalent to ``p.readline([n])``, this function reads one line from the " "object *p*. *p* may be a file object or any object with a :meth:`~io.IOBase." @@ -111,44 +112,50 @@ msgstr "" "indépendamment de sa taille, mais :exc:`EOFError` est levée si la fin du " "fichier est atteinte immédiatement." -#: ../Doc/c-api/file.rst:65 +#: c-api/file.rst:65 msgid "" "Overrides the normal behavior of :func:`io.open_code` to pass its parameter " "through the provided handler." msgstr "" -#: ../Doc/c-api/file.rst:68 +#: c-api/file.rst:68 msgid "" "The handler is a function of type :c:type:`PyObject *(\\*)(PyObject *path, " "void *userData)`, where *path* is guaranteed to be :c:type:`PyUnicodeObject`." msgstr "" -#: ../Doc/c-api/file.rst:71 +#: c-api/file.rst:71 msgid "" "The *userData* pointer is passed into the hook function. Since hook " "functions may be called from different runtimes, this pointer should not " "refer directly to Python state." msgstr "" -#: ../Doc/c-api/file.rst:75 +#: c-api/file.rst:75 msgid "" "As this hook is intentionally used during import, avoid importing new " "modules during its execution unless they are known to be frozen or available " "in ``sys.modules``." msgstr "" -#: ../Doc/c-api/file.rst:79 +#: c-api/file.rst:79 msgid "" "Once a hook has been set, it cannot be removed or replaced, and later calls " "to :c:func:`PyFile_SetOpenCodeHook` will fail. On failure, the function " "returns -1 and sets an exception if the interpreter has been initialized." msgstr "" -#: ../Doc/c-api/file.rst:83 +#: c-api/file.rst:83 msgid "This function is safe to call before :c:func:`Py_Initialize`." msgstr "" -#: ../Doc/c-api/file.rst:93 +#: c-api/file.rst:86 +msgid "" +"Raises an :ref:`auditing event ` ``setopencodehook`` with no " +"arguments." +msgstr "" + +#: c-api/file.rst:95 msgid "" "Write object *obj* to file object *p*. The only supported flag for *flags* " "is :const:`Py_PRINT_RAW`; if given, the :func:`str` of the object is written " @@ -160,7 +167,7 @@ msgstr "" "l'objet est écrit à la place de l'attribut :func:`repr`. Retourne ``0`` en " "cas de succès ou ``-1`` en cas échec ; l'exception appropriée sera levée." -#: ../Doc/c-api/file.rst:101 +#: c-api/file.rst:103 msgid "" "Write string *s* to file object *p*. Return ``0`` on success or ``-1`` on " "failure; the appropriate exception will be set." diff --git a/c-api/function.po b/c-api/function.po index 9eadc61006..f00fa9a714 100644 --- a/c-api/function.po +++ b/c-api/function.po @@ -20,11 +20,11 @@ msgstr "Objets fonctions" #: ../Doc/c-api/function.rst:10 msgid "There are a few functions specific to Python functions." -msgstr "" +msgstr "Certaines fonctions sont spécifiques aux fonctions Python." #: ../Doc/c-api/function.rst:15 msgid "The C structure used for functions." -msgstr "" +msgstr "La structure C utilisée pour les fonctions." #: ../Doc/c-api/function.rst:22 msgid "" @@ -32,6 +32,8 @@ msgid "" "function type. It is exposed to Python programmers as ``types." "FunctionType``." msgstr "" +"C'est une instance de :c:type:`PyTypeObject` et représente le type fonction " +"en Python. Il est exposé aux développeurs comme ``types.FunctionType``." #: ../Doc/c-api/function.rst:28 msgid "" @@ -45,6 +47,8 @@ msgid "" "*globals* must be a dictionary with the global variables accessible to the " "function." msgstr "" +"Renvoie une nouvelle fonction associée avec l'objet *code*. *globals* doit " +"être un dictionnaire avec les variables globales accessibles à la fonction." #: ../Doc/c-api/function.rst:37 msgid "" @@ -64,11 +68,12 @@ msgstr "" #: ../Doc/c-api/function.rst:54 msgid "Return the code object associated with the function object *op*." -msgstr "" +msgstr "Renvoie l'objet code associé avec l'objet de la fonction *op*." #: ../Doc/c-api/function.rst:59 msgid "Return the globals dictionary associated with the function object *op*." msgstr "" +"Renvoie le dictionnaire global associé avec l'objet de la fonction *op*." #: ../Doc/c-api/function.rst:64 msgid "" @@ -82,38 +87,50 @@ msgid "" "Return the argument default values of the function object *op*. This can be " "a tuple of arguments or ``NULL``." msgstr "" +"Renvoie les valeurs par défaut de l'argument de l'objet de la fonction *op*. " +"Cela peut être un tuple d'arguments ou ``NULL``." #: ../Doc/c-api/function.rst:77 msgid "" "Set the argument default values for the function object *op*. *defaults* " "must be ``Py_None`` or a tuple." msgstr "" +"Définir les valeurs par défaut de l'argument pour l'objet de la fonction " +"*op*. *defaults* doit être ``Py_None`` ou un tuple." #: ../Doc/c-api/function.rst:80 ../Doc/c-api/function.rst:94 #: ../Doc/c-api/function.rst:108 msgid "Raises :exc:`SystemError` and returns ``-1`` on failure." -msgstr "" +msgstr "Lève :exc:`SystemError` et renvoie ``-1`` en cas de d'échec." #: ../Doc/c-api/function.rst:85 msgid "" "Return the closure associated with the function object *op*. This can be " "``NULL`` or a tuple of cell objects." msgstr "" +"Renvoie la fermeture associée avec l'objet de la fonction *op*. Cela peut " +"être ``NULL`` ou un tuple d'objets cellule." #: ../Doc/c-api/function.rst:91 msgid "" "Set the closure associated with the function object *op*. *closure* must be " "``Py_None`` or a tuple of cell objects." msgstr "" +"Définir la fermeture associée avec l'objet de la fonction *op*. *closure* " +"doit être ``Py_None`` ou un tuple d'objets cellule." #: ../Doc/c-api/function.rst:99 msgid "" "Return the annotations of the function object *op*. This can be a mutable " "dictionary or ``NULL``." msgstr "" +"Renvoie les annotations de l'objet de la fonction *op*. Cela peut être un " +"dictionnaire mutable ou ``NULL``." #: ../Doc/c-api/function.rst:105 msgid "" "Set the annotations for the function object *op*. *annotations* must be a " "dictionary or ``Py_None``." msgstr "" +"Définir les annotations pour l'objet de la fonction *op*. *annotations* doit " +"être un dictionnaire ou ``Py_None``." diff --git a/c-api/gcsupport.po b/c-api/gcsupport.po index e7a0c4e32c..55ca3d4b77 100644 --- a/c-api/gcsupport.po +++ b/c-api/gcsupport.po @@ -14,21 +14,21 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/c-api/gcsupport.rst:6 +#: c-api/gcsupport.rst:6 msgid "Supporting Cyclic Garbage Collection" msgstr "" -#: ../Doc/c-api/gcsupport.rst:8 +#: c-api/gcsupport.rst:8 msgid "" "Python's support for detecting and collecting garbage which involves " -"circular references requires support from object types which are \"containers" -"\" for other objects which may also be containers. Types which do not store " -"references to other objects, or which only store references to atomic types " -"(such as numbers or strings), do not need to provide any explicit support " -"for garbage collection." +"circular references requires support from object types which are " +"\"containers\" for other objects which may also be containers. Types which " +"do not store references to other objects, or which only store references to " +"atomic types (such as numbers or strings), do not need to provide any " +"explicit support for garbage collection." msgstr "" -#: ../Doc/c-api/gcsupport.rst:15 +#: c-api/gcsupport.rst:15 msgid "" "To create a container type, the :c:member:`~PyTypeObject.tp_flags` field of " "the type object must include the :const:`Py_TPFLAGS_HAVE_GC` and provide an " @@ -37,49 +37,49 @@ msgid "" "implementation must also be provided." msgstr "" -#: ../Doc/c-api/gcsupport.rst:24 +#: c-api/gcsupport.rst:24 msgid "" "Objects with a type with this flag set must conform with the rules " "documented here. For convenience these objects will be referred to as " "container objects." msgstr "" -#: ../Doc/c-api/gcsupport.rst:28 +#: c-api/gcsupport.rst:28 msgid "Constructors for container types must conform to two rules:" msgstr "" -#: ../Doc/c-api/gcsupport.rst:30 +#: c-api/gcsupport.rst:30 msgid "" "The memory for the object must be allocated using :c:func:`PyObject_GC_New` " "or :c:func:`PyObject_GC_NewVar`." msgstr "" -#: ../Doc/c-api/gcsupport.rst:33 +#: c-api/gcsupport.rst:33 msgid "" "Once all the fields which may contain references to other containers are " "initialized, it must call :c:func:`PyObject_GC_Track`." msgstr "" -#: ../Doc/c-api/gcsupport.rst:39 +#: c-api/gcsupport.rst:39 msgid "" "Analogous to :c:func:`PyObject_New` but for container objects with the :" "const:`Py_TPFLAGS_HAVE_GC` flag set." msgstr "" -#: ../Doc/c-api/gcsupport.rst:45 +#: c-api/gcsupport.rst:45 msgid "" "Analogous to :c:func:`PyObject_NewVar` but for container objects with the :" "const:`Py_TPFLAGS_HAVE_GC` flag set." msgstr "" -#: ../Doc/c-api/gcsupport.rst:51 +#: c-api/gcsupport.rst:51 msgid "" "Resize an object allocated by :c:func:`PyObject_NewVar`. Returns the " "resized object or ``NULL`` on failure. *op* must not be tracked by the " "collector yet." msgstr "" -#: ../Doc/c-api/gcsupport.rst:57 +#: c-api/gcsupport.rst:57 msgid "" "Adds the object *op* to the set of container objects tracked by the " "collector. The collector can run at unexpected times so objects must be " @@ -88,30 +88,30 @@ msgid "" "usually near the end of the constructor." msgstr "" -#: ../Doc/c-api/gcsupport.rst:64 +#: c-api/gcsupport.rst:64 msgid "" "Similarly, the deallocator for the object must conform to a similar pair of " "rules:" msgstr "" -#: ../Doc/c-api/gcsupport.rst:67 +#: c-api/gcsupport.rst:67 msgid "" "Before fields which refer to other containers are invalidated, :c:func:" "`PyObject_GC_UnTrack` must be called." msgstr "" -#: ../Doc/c-api/gcsupport.rst:70 +#: c-api/gcsupport.rst:70 msgid "" "The object's memory must be deallocated using :c:func:`PyObject_GC_Del`." msgstr "" -#: ../Doc/c-api/gcsupport.rst:75 +#: c-api/gcsupport.rst:75 msgid "" "Releases memory allocated to an object using :c:func:`PyObject_GC_New` or :c:" "func:`PyObject_GC_NewVar`." msgstr "" -#: ../Doc/c-api/gcsupport.rst:81 +#: c-api/gcsupport.rst:81 msgid "" "Remove the object *op* from the set of container objects tracked by the " "collector. Note that :c:func:`PyObject_GC_Track` can be called again on " @@ -121,19 +121,19 @@ msgid "" "handler become invalid." msgstr "" -#: ../Doc/c-api/gcsupport.rst:90 +#: c-api/gcsupport.rst:90 msgid "" "The :c:func:`_PyObject_GC_TRACK` and :c:func:`_PyObject_GC_UNTRACK` macros " "have been removed from the public C API." msgstr "" -#: ../Doc/c-api/gcsupport.rst:93 +#: c-api/gcsupport.rst:93 msgid "" "The :c:member:`~PyTypeObject.tp_traverse` handler accepts a function " "parameter of this type:" msgstr "" -#: ../Doc/c-api/gcsupport.rst:98 +#: c-api/gcsupport.rst:98 msgid "" "Type of the visitor function passed to the :c:member:`~PyTypeObject." "tp_traverse` handler. The function should be called with an object to " @@ -143,13 +143,13 @@ msgid "" "users will need to write their own visitor functions." msgstr "" -#: ../Doc/c-api/gcsupport.rst:105 +#: c-api/gcsupport.rst:105 msgid "" "The :c:member:`~PyTypeObject.tp_traverse` handler must have the following " "type:" msgstr "" -#: ../Doc/c-api/gcsupport.rst:110 +#: c-api/gcsupport.rst:110 msgid "" "Traversal function for a container object. Implementations must call the " "*visit* function for each object directly contained by *self*, with the " @@ -159,7 +159,7 @@ msgid "" "returned immediately." msgstr "" -#: ../Doc/c-api/gcsupport.rst:117 +#: c-api/gcsupport.rst:117 msgid "" "To simplify writing :c:member:`~PyTypeObject.tp_traverse` handlers, a :c:" "func:`Py_VISIT` macro is provided. In order to use this macro, the :c:" @@ -167,20 +167,20 @@ msgid "" "exactly *visit* and *arg*:" msgstr "" -#: ../Doc/c-api/gcsupport.rst:124 +#: c-api/gcsupport.rst:124 msgid "" "If *o* is not ``NULL``, call the *visit* callback, with arguments *o* and " "*arg*. If *visit* returns a non-zero value, then return it. Using this " "macro, :c:member:`~PyTypeObject.tp_traverse` handlers look like::" msgstr "" -#: ../Doc/c-api/gcsupport.rst:137 +#: c-api/gcsupport.rst:137 msgid "" "The :c:member:`~PyTypeObject.tp_clear` handler must be of the :c:type:" "`inquiry` type, or ``NULL`` if the object is immutable." msgstr "" -#: ../Doc/c-api/gcsupport.rst:143 +#: c-api/gcsupport.rst:143 msgid "" "Drop references that may have created reference cycles. Immutable objects " "do not have to define this method since they can never directly create " diff --git a/c-api/import.po b/c-api/import.po index c0d77e7e8d..6447cf166f 100644 --- a/c-api/import.po +++ b/c-api/import.po @@ -290,6 +290,11 @@ msgid "" "could play tricks with this to provide a dynamically created collection of " "frozen modules." msgstr "" +"Ce pointeur est initialisé de manière à pointer sur un tableau d'entrées de :" +"c:type:`struct _frozen`, dont tous les membres de la dernière valent " +"``NULL`` ou zéro. Quand un module gelé est importé, il est cherché dans ce " +"tableau. Du code tiers peut jouer avec pour construire dynamiquement une " +"collection de module gelés." #: ../Doc/c-api/import.rst:287 msgid "" diff --git a/c-api/init.po b/c-api/init.po index f8194a1976..b6ce7a8faa 100644 --- a/c-api/init.po +++ b/c-api/init.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-15 23:53+0100\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2018-11-29 18:22+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,19 +14,19 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/c-api/init.rst:8 +#: c-api/init.rst:8 msgid "Initialization, Finalization, and Threads" msgstr "" -#: ../Doc/c-api/init.rst:10 +#: c-api/init.rst:10 msgid "See also :ref:`Python Initialization Configuration `." msgstr "" -#: ../Doc/c-api/init.rst:15 +#: c-api/init.rst:15 msgid "Before Python Initialization" msgstr "" -#: ../Doc/c-api/init.rst:17 +#: c-api/init.rst:17 msgid "" "In an application embedding Python, the :c:func:`Py_Initialize` function " "must be called before using any other Python/C API functions; with the " @@ -34,132 +34,136 @@ msgid "" "`." msgstr "" -#: ../Doc/c-api/init.rst:22 +#: c-api/init.rst:22 msgid "" "The following functions can be safely called before Python is initialized:" msgstr "" -#: ../Doc/c-api/init.rst:24 +#: c-api/init.rst:24 msgid "Configuration functions:" msgstr "" -#: ../Doc/c-api/init.rst:26 +#: c-api/init.rst:26 msgid ":c:func:`PyImport_AppendInittab`" msgstr "" -#: ../Doc/c-api/init.rst:27 +#: c-api/init.rst:27 msgid ":c:func:`PyImport_ExtendInittab`" msgstr "" -#: ../Doc/c-api/init.rst:28 +#: c-api/init.rst:28 msgid ":c:func:`PyInitFrozenExtensions`" msgstr "" -#: ../Doc/c-api/init.rst:29 +#: c-api/init.rst:29 msgid ":c:func:`PyMem_SetAllocator`" msgstr "" -#: ../Doc/c-api/init.rst:30 +#: c-api/init.rst:30 msgid ":c:func:`PyMem_SetupDebugHooks`" msgstr "" -#: ../Doc/c-api/init.rst:31 +#: c-api/init.rst:31 msgid ":c:func:`PyObject_SetArenaAllocator`" msgstr "" -#: ../Doc/c-api/init.rst:32 +#: c-api/init.rst:32 msgid ":c:func:`Py_SetPath`" msgstr "" -#: ../Doc/c-api/init.rst:33 +#: c-api/init.rst:33 msgid ":c:func:`Py_SetProgramName`" msgstr "" -#: ../Doc/c-api/init.rst:34 +#: c-api/init.rst:34 msgid ":c:func:`Py_SetPythonHome`" msgstr "" -#: ../Doc/c-api/init.rst:35 +#: c-api/init.rst:35 msgid ":c:func:`Py_SetStandardStreamEncoding`" msgstr "" -#: ../Doc/c-api/init.rst:36 +#: c-api/init.rst:36 msgid ":c:func:`PySys_AddWarnOption`" msgstr "" -#: ../Doc/c-api/init.rst:37 +#: c-api/init.rst:37 msgid ":c:func:`PySys_AddXOption`" msgstr "" -#: ../Doc/c-api/init.rst:38 +#: c-api/init.rst:38 msgid ":c:func:`PySys_ResetWarnOptions`" msgstr "" -#: ../Doc/c-api/init.rst:40 +#: c-api/init.rst:40 msgid "Informative functions:" msgstr "" -#: ../Doc/c-api/init.rst:42 +#: c-api/init.rst:42 msgid ":c:func:`Py_IsInitialized`" msgstr "" -#: ../Doc/c-api/init.rst:43 +#: c-api/init.rst:43 msgid ":c:func:`PyMem_GetAllocator`" msgstr "" -#: ../Doc/c-api/init.rst:44 +#: c-api/init.rst:44 msgid ":c:func:`PyObject_GetArenaAllocator`" msgstr "" -#: ../Doc/c-api/init.rst:45 +#: c-api/init.rst:45 msgid ":c:func:`Py_GetBuildInfo`" msgstr "" -#: ../Doc/c-api/init.rst:46 +#: c-api/init.rst:46 msgid ":c:func:`Py_GetCompiler`" msgstr "" -#: ../Doc/c-api/init.rst:47 +#: c-api/init.rst:47 msgid ":c:func:`Py_GetCopyright`" msgstr "" -#: ../Doc/c-api/init.rst:48 +#: c-api/init.rst:48 msgid ":c:func:`Py_GetPlatform`" msgstr "" -#: ../Doc/c-api/init.rst:49 +#: c-api/init.rst:49 msgid ":c:func:`Py_GetVersion`" msgstr "" -#: ../Doc/c-api/init.rst:51 +#: c-api/init.rst:51 +#, fuzzy msgid "Utilities:" -msgstr "" +msgstr "Utilitaires" -#: ../Doc/c-api/init.rst:53 +#: c-api/init.rst:53 msgid ":c:func:`Py_DecodeLocale`" msgstr "" -#: ../Doc/c-api/init.rst:55 +#: c-api/init.rst:55 msgid "Memory allocators:" msgstr "" -#: ../Doc/c-api/init.rst:57 +#: c-api/init.rst:57 +#, fuzzy msgid ":c:func:`PyMem_RawMalloc`" -msgstr "" +msgstr ":c:func:`PyMem_RawCalloc`," -#: ../Doc/c-api/init.rst:58 +#: c-api/init.rst:58 +#, fuzzy msgid ":c:func:`PyMem_RawRealloc`" -msgstr "" +msgstr ":c:func:`PyMem_RawCalloc`," -#: ../Doc/c-api/init.rst:59 +#: c-api/init.rst:59 +#, fuzzy msgid ":c:func:`PyMem_RawCalloc`" -msgstr "" +msgstr ":c:func:`PyMem_RawCalloc`," -#: ../Doc/c-api/init.rst:60 +#: c-api/init.rst:60 msgid ":c:func:`PyMem_RawFree`" msgstr "" -#: ../Doc/c-api/init.rst:64 +#: c-api/init.rst:64 msgid "" "The following functions **should not be called** before :c:func:" "`Py_Initialize`: :c:func:`Py_EncodeLocale`, :c:func:`Py_GetPath`, :c:func:" @@ -168,18 +172,18 @@ msgid "" "`Py_GetProgramName` and :c:func:`PyEval_InitThreads`." msgstr "" -#: ../Doc/c-api/init.rst:74 +#: c-api/init.rst:74 msgid "Global configuration variables" msgstr "" -#: ../Doc/c-api/init.rst:76 +#: c-api/init.rst:76 msgid "" "Python has variables for the global configuration to control different " "features and options. By default, these flags are controlled by :ref:" "`command line options `." msgstr "" -#: ../Doc/c-api/init.rst:80 +#: c-api/init.rst:80 msgid "" "When a flag is set by an option, the value of the flag is the number of " "times that the option was set. For example, ``-b`` sets :c:data:" @@ -187,64 +191,64 @@ msgid "" "2." msgstr "" -#: ../Doc/c-api/init.rst:86 +#: c-api/init.rst:86 msgid "" "Issue a warning when comparing :class:`bytes` or :class:`bytearray` with :" "class:`str` or :class:`bytes` with :class:`int`. Issue an error if greater " "or equal to ``2``." msgstr "" -#: ../Doc/c-api/init.rst:90 +#: c-api/init.rst:90 msgid "Set by the :option:`-b` option." msgstr "" -#: ../Doc/c-api/init.rst:94 +#: c-api/init.rst:94 msgid "" "Turn on parser debugging output (for expert only, depending on compilation " "options)." msgstr "" -#: ../Doc/c-api/init.rst:97 +#: c-api/init.rst:97 msgid "" "Set by the :option:`-d` option and the :envvar:`PYTHONDEBUG` environment " "variable." msgstr "" -#: ../Doc/c-api/init.rst:102 +#: c-api/init.rst:102 msgid "" "If set to non-zero, Python won't try to write ``.pyc`` files on the import " "of source modules." msgstr "" -#: ../Doc/c-api/init.rst:105 +#: c-api/init.rst:105 msgid "" "Set by the :option:`-B` option and the :envvar:`PYTHONDONTWRITEBYTECODE` " "environment variable." msgstr "" -#: ../Doc/c-api/init.rst:110 +#: c-api/init.rst:110 msgid "" "Suppress error messages when calculating the module search path in :c:func:" "`Py_GetPath`." msgstr "" -#: ../Doc/c-api/init.rst:113 +#: c-api/init.rst:113 msgid "Private flag used by ``_freeze_importlib`` and ``frozenmain`` programs." msgstr "" -#: ../Doc/c-api/init.rst:117 +#: c-api/init.rst:117 msgid "" "Set to ``1`` if the :envvar:`PYTHONHASHSEED` environment variable is set to " "a non-empty string." msgstr "" -#: ../Doc/c-api/init.rst:120 +#: c-api/init.rst:120 msgid "" "If the flag is non-zero, read the :envvar:`PYTHONHASHSEED` environment " "variable to initialize the secret hash seed." msgstr "" -#: ../Doc/c-api/init.rst:125 +#: c-api/init.rst:125 msgid "" "Ignore all :envvar:`PYTHON*` environment variables, e.g. :envvar:" "`PYTHONPATH` and :envvar:`PYTHONHOME`, that might be set." @@ -252,74 +256,75 @@ msgstr "" "Ignore toutes les variables d'environnement :envvar:`PYTHON*` qui pourraient " "être définies. Par exemple, :envvar:`PYTHONPATH` et :envvar:`PYTHONHOME`." -#: ../Doc/c-api/init.rst:128 +#: c-api/init.rst:128 msgid "Set by the :option:`-E` and :option:`-I` options." msgstr "" -#: ../Doc/c-api/init.rst:132 +#: c-api/init.rst:132 msgid "" "When a script is passed as first argument or the :option:`-c` option is " "used, enter interactive mode after executing the script or the command, even " "when :data:`sys.stdin` does not appear to be a terminal." msgstr "" -#: ../Doc/c-api/init.rst:136 +#: c-api/init.rst:136 msgid "" "Set by the :option:`-i` option and the :envvar:`PYTHONINSPECT` environment " "variable." msgstr "" -#: ../Doc/c-api/init.rst:141 +#: c-api/init.rst:141 msgid "Set by the :option:`-i` option." msgstr "" -#: ../Doc/c-api/init.rst:145 +#: c-api/init.rst:145 msgid "" "Run Python in isolated mode. In isolated mode :data:`sys.path` contains " "neither the script's directory nor the user's site-packages directory." msgstr "" -#: ../Doc/c-api/init.rst:148 +#: c-api/init.rst:148 msgid "Set by the :option:`-I` option." msgstr "" -#: ../Doc/c-api/init.rst:154 +#: c-api/init.rst:154 msgid "" "If the flag is non-zero, use the ``mbcs`` encoding instead of the UTF-8 " "encoding for the filesystem encoding." msgstr "" -#: ../Doc/c-api/init.rst:157 +#: c-api/init.rst:157 msgid "" "Set to ``1`` if the :envvar:`PYTHONLEGACYWINDOWSFSENCODING` environment " "variable is set to a non-empty string." msgstr "" -#: ../Doc/c-api/init.rst:160 +#: c-api/init.rst:160 msgid "See :pep:`529` for more details." msgstr "Voir la :pep:`529` pour plus d'informations." -#: ../Doc/c-api/init.rst:162 ../Doc/c-api/init.rst:174 +#: c-api/init.rst:174 msgid ":ref:`Availability `: Windows." msgstr ":ref:`Disponibilité ` : Windows." -#: ../Doc/c-api/init.rst:166 +#: c-api/init.rst:166 msgid "" "If the flag is non-zero, use :class:`io.FileIO` instead of :class:" "`WindowsConsoleIO` for :mod:`sys` standard streams." msgstr "" -#: ../Doc/c-api/init.rst:169 +#: c-api/init.rst:169 msgid "" "Set to ``1`` if the :envvar:`PYTHONLEGACYWINDOWSSTDIO` environment variable " "is set to a non-empty string." msgstr "" -#: ../Doc/c-api/init.rst:172 +#: c-api/init.rst:172 +#, fuzzy msgid "See :pep:`528` for more details." -msgstr "" +msgstr "Voir la :pep:`529` pour plus d'informations." -#: ../Doc/c-api/init.rst:178 +#: c-api/init.rst:178 msgid "" "Disable the import of the module :mod:`site` and the site-dependent " "manipulations of :data:`sys.path` that it entails. Also disable these " @@ -331,11 +336,11 @@ msgstr "" "mod:`site` est importé explicitement plus tard (appelez :func:`site.main` si " "vous voulez les déclencher)." -#: ../Doc/c-api/init.rst:183 +#: c-api/init.rst:183 msgid "Set by the :option:`-S` option." msgstr "" -#: ../Doc/c-api/init.rst:187 +#: c-api/init.rst:187 msgid "" "Don't add the :data:`user site-packages directory ` to :data:" "`sys.path`." @@ -343,38 +348,38 @@ msgstr "" "N'ajoute pas le répertoire utilisateur :data:`site-packages ` à :data:`sys.path`." -#: ../Doc/c-api/init.rst:190 +#: c-api/init.rst:190 msgid "" "Set by the :option:`-s` and :option:`-I` options, and the :envvar:" "`PYTHONNOUSERSITE` environment variable." msgstr "" -#: ../Doc/c-api/init.rst:195 +#: c-api/init.rst:195 msgid "" "Set by the :option:`-O` option and the :envvar:`PYTHONOPTIMIZE` environment " "variable." msgstr "" -#: ../Doc/c-api/init.rst:200 +#: c-api/init.rst:200 msgid "" "Don't display the copyright and version messages even in interactive mode." msgstr "N'affiche pas le copyright et la version, même en mode interactif." -#: ../Doc/c-api/init.rst:202 +#: c-api/init.rst:202 msgid "Set by the :option:`-q` option." msgstr "" -#: ../Doc/c-api/init.rst:208 +#: c-api/init.rst:208 msgid "Force the stdout and stderr streams to be unbuffered." msgstr "" -#: ../Doc/c-api/init.rst:210 +#: c-api/init.rst:210 msgid "" "Set by the :option:`-u` option and the :envvar:`PYTHONUNBUFFERED` " "environment variable." msgstr "" -#: ../Doc/c-api/init.rst:215 +#: c-api/init.rst:215 msgid "" "Print a message each time a module is initialized, showing the place " "(filename or built-in module) from which it is loaded. If greater or equal " @@ -382,24 +387,24 @@ msgid "" "for a module. Also provides information on module cleanup at exit." msgstr "" -#: ../Doc/c-api/init.rst:220 +#: c-api/init.rst:220 msgid "" "Set by the :option:`-v` option and the :envvar:`PYTHONVERBOSE` environment " "variable." msgstr "" -#: ../Doc/c-api/init.rst:225 +#: c-api/init.rst:225 msgid "Initializing and finalizing the interpreter" msgstr "" -#: ../Doc/c-api/init.rst:243 +#: c-api/init.rst:243 msgid "" "Initialize the Python interpreter. In an application embedding Python, " "this should be called before using any other Python/C API functions; see :" "ref:`Before Python Initialization ` for the few exceptions." msgstr "" -#: ../Doc/c-api/init.rst:247 +#: c-api/init.rst:247 msgid "" "This initializes the table of loaded modules (``sys.modules``), and creates " "the fundamental modules :mod:`builtins`, :mod:`__main__` and :mod:`sys`. It " @@ -409,27 +414,27 @@ msgid "" "There is no return value; it is a fatal error if the initialization fails." msgstr "" -#: ../Doc/c-api/init.rst:256 +#: c-api/init.rst:256 msgid "" "On Windows, changes the console mode from ``O_TEXT`` to ``O_BINARY``, which " "will also affect non-Python uses of the console using the C Runtime." msgstr "" -#: ../Doc/c-api/init.rst:262 +#: c-api/init.rst:262 msgid "" "This function works like :c:func:`Py_Initialize` if *initsigs* is ``1``. If " "*initsigs* is ``0``, it skips initialization registration of signal " "handlers, which might be useful when Python is embedded." msgstr "" -#: ../Doc/c-api/init.rst:269 +#: c-api/init.rst:269 msgid "" "Return true (nonzero) when the Python interpreter has been initialized, " "false (zero) if not. After :c:func:`Py_FinalizeEx` is called, this returns " "false until :c:func:`Py_Initialize` is called again." msgstr "" -#: ../Doc/c-api/init.rst:276 +#: c-api/init.rst:276 msgid "" "Undo all initializations made by :c:func:`Py_Initialize` and subsequent use " "of Python/C API functions, and destroy all sub-interpreters (see :c:func:" @@ -441,7 +446,7 @@ msgid "" "(flushing buffered data), ``-1`` is returned." msgstr "" -#: ../Doc/c-api/init.rst:285 +#: c-api/init.rst:285 msgid "" "This function is provided for a number of reasons. An embedding application " "might want to restart Python without having to restart the application " @@ -452,7 +457,7 @@ msgid "" "Python before exiting from the application." msgstr "" -#: ../Doc/c-api/init.rst:293 +#: c-api/init.rst:293 msgid "" "**Bugs and caveats:** The destruction of modules and objects in modules is " "done in random order; this may cause destructors (:meth:`__del__` methods) " @@ -467,60 +472,60 @@ msgid "" "than once." msgstr "" -#: ../Doc/c-api/init.rst:305 +#: c-api/init.rst:305 msgid "" "Raises an :ref:`auditing event ` ``cpython." "_PySys_ClearAuditHooks`` with no arguments." msgstr "" -#: ../Doc/c-api/init.rst:310 +#: c-api/init.rst:310 msgid "" "This is a backwards-compatible version of :c:func:`Py_FinalizeEx` that " "disregards the return value." msgstr "" -#: ../Doc/c-api/init.rst:315 +#: c-api/init.rst:315 msgid "Process-wide parameters" msgstr "" -#: ../Doc/c-api/init.rst:325 +#: c-api/init.rst:325 msgid "" "This function should be called before :c:func:`Py_Initialize`, if it is " "called at all. It specifies which encoding and error handling to use with " "standard IO, with the same meanings as in :func:`str.encode`." msgstr "" -#: ../Doc/c-api/init.rst:329 +#: c-api/init.rst:329 msgid "" "It overrides :envvar:`PYTHONIOENCODING` values, and allows embedding code to " "control IO encoding when the environment variable does not work." msgstr "" -#: ../Doc/c-api/init.rst:332 +#: c-api/init.rst:332 msgid "" "*encoding* and/or *errors* may be ``NULL`` to use :envvar:`PYTHONIOENCODING` " "and/or default values (depending on other settings)." msgstr "" -#: ../Doc/c-api/init.rst:336 +#: c-api/init.rst:336 msgid "" "Note that :data:`sys.stderr` always uses the \"backslashreplace\" error " "handler, regardless of this (or any other) setting." msgstr "" -#: ../Doc/c-api/init.rst:339 +#: c-api/init.rst:339 msgid "" "If :c:func:`Py_FinalizeEx` is called, this function will need to be called " "again in order to affect subsequent calls to :c:func:`Py_Initialize`." msgstr "" -#: ../Doc/c-api/init.rst:342 +#: c-api/init.rst:342 msgid "" "Returns ``0`` if successful, a nonzero value on error (e.g. calling after " "the interpreter has already been initialized)." msgstr "" -#: ../Doc/c-api/init.rst:355 +#: c-api/init.rst:355 msgid "" "This function should be called before :c:func:`Py_Initialize` is called for " "the first time, if it is called at all. It tells the interpreter the value " @@ -534,22 +539,20 @@ msgid "" "this storage." msgstr "" -#: ../Doc/c-api/init.rst:366 ../Doc/c-api/init.rst:480 -#: ../Doc/c-api/init.rst:586 ../Doc/c-api/init.rst:613 -#: ../Doc/c-api/init.rst:630 +#: c-api/init.rst:480 c-api/init.rst:613 c-api/init.rst:630 msgid "" "Use :c:func:`Py_DecodeLocale` to decode a bytes string to get a :c:type:" "`wchar_*` string." msgstr "" -#: ../Doc/c-api/init.rst:374 +#: c-api/init.rst:374 msgid "" "Return the program name set with :c:func:`Py_SetProgramName`, or the " "default. The returned string points into static storage; the caller should " "not modify its value." msgstr "" -#: ../Doc/c-api/init.rst:381 +#: c-api/init.rst:381 msgid "" "Return the *prefix* for installed platform-independent files. This is " "derived through a number of complicated rules from the program name set " @@ -563,7 +566,7 @@ msgid "" "function." msgstr "" -#: ../Doc/c-api/init.rst:394 +#: c-api/init.rst:394 msgid "" "Return the *exec-prefix* for installed platform-*dependent* files. This is " "derived through a number of complicated rules from the program name set " @@ -577,7 +580,7 @@ msgid "" "on Unix." msgstr "" -#: ../Doc/c-api/init.rst:404 +#: c-api/init.rst:404 msgid "" "Background: The exec-prefix differs from the prefix when platform dependent " "files (such as executables and shared libraries) are installed in a " @@ -586,7 +589,7 @@ msgid "" "independent may be installed in :file:`/usr/local`." msgstr "" -#: ../Doc/c-api/init.rst:410 +#: c-api/init.rst:410 msgid "" "Generally speaking, a platform is a combination of hardware and software " "families, e.g. Sparc machines running the Solaris 2.x operating system are " @@ -600,7 +603,7 @@ msgid "" "independent from the Python version by which they were compiled!)." msgstr "" -#: ../Doc/c-api/init.rst:421 +#: c-api/init.rst:421 msgid "" "System administrators will know how to configure the :program:`mount` or :" "program:`automount` programs to share :file:`/usr/local` between platforms " @@ -608,7 +611,7 @@ msgid "" "platform." msgstr "" -#: ../Doc/c-api/init.rst:433 +#: c-api/init.rst:433 msgid "" "Return the full program name of the Python executable; this is computed as " "a side-effect of deriving the default module search path from the program " @@ -617,7 +620,7 @@ msgid "" "available to Python code as ``sys.executable``." msgstr "" -#: ../Doc/c-api/init.rst:447 +#: c-api/init.rst:447 msgid "" "Return the default module search path; this is computed from the program " "name (set by :c:func:`Py_SetProgramName` above) and some environment " @@ -630,7 +633,7 @@ msgid "" "for loading modules." msgstr "" -#: ../Doc/c-api/init.rst:467 +#: c-api/init.rst:467 msgid "" "Set the default module search path. If this function is called before :c:" "func:`Py_Initialize`, then :c:func:`Py_GetPath` won't attempt to compute a " @@ -641,7 +644,7 @@ msgid "" "``';'`` on Windows." msgstr "" -#: ../Doc/c-api/init.rst:475 +#: c-api/init.rst:475 msgid "" "This also causes :data:`sys.executable` to be set to the program full path " "(see :c:func:`Py_GetProgramFullPath`) and for :data:`sys.prefix` and :data:" @@ -649,25 +652,25 @@ msgid "" "required after calling :c:func:`Py_Initialize`." msgstr "" -#: ../Doc/c-api/init.rst:483 +#: c-api/init.rst:483 msgid "" "The path argument is copied internally, so the caller may free it after the " "call completes." msgstr "" -#: ../Doc/c-api/init.rst:486 +#: c-api/init.rst:486 msgid "" "The program full path is now used for :data:`sys.executable`, instead of the " "program name." msgstr "" -#: ../Doc/c-api/init.rst:493 +#: c-api/init.rst:493 msgid "" "Return the version of this Python interpreter. This is a string that looks " "something like ::" msgstr "" -#: ../Doc/c-api/init.rst:500 +#: c-api/init.rst:500 msgid "" "The first word (up to the first space character) is the current Python " "version; the first three characters are the major and minor version " @@ -676,7 +679,7 @@ msgid "" "as :data:`sys.version`." msgstr "" -#: ../Doc/c-api/init.rst:510 +#: c-api/init.rst:510 msgid "" "Return the platform identifier for the current platform. On Unix, this is " "formed from the \"official\" name of the operating system, converted to " @@ -687,42 +690,42 @@ msgid "" "value is available to Python code as ``sys.platform``." msgstr "" -#: ../Doc/c-api/init.rst:521 +#: c-api/init.rst:521 msgid "" "Return the official copyright string for the current Python version, for " "example" msgstr "" -#: ../Doc/c-api/init.rst:523 +#: c-api/init.rst:523 msgid "``'Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam'``" msgstr "" -#: ../Doc/c-api/init.rst:527 +#: c-api/init.rst:527 msgid "" "The returned string points into static storage; the caller should not modify " "its value. The value is available to Python code as ``sys.copyright``." msgstr "" -#: ../Doc/c-api/init.rst:533 +#: c-api/init.rst:533 msgid "" "Return an indication of the compiler used to build the current Python " "version, in square brackets, for example::" msgstr "" -#: ../Doc/c-api/init.rst:540 ../Doc/c-api/init.rst:554 +#: c-api/init.rst:554 msgid "" "The returned string points into static storage; the caller should not modify " "its value. The value is available to Python code as part of the variable " "``sys.version``." msgstr "" -#: ../Doc/c-api/init.rst:547 +#: c-api/init.rst:547 msgid "" "Return information about the sequence number and build date and time of the " "current Python interpreter instance, for example ::" msgstr "" -#: ../Doc/c-api/init.rst:566 +#: c-api/init.rst:566 msgid "" "Set :data:`sys.argv` based on *argc* and *argv*. These parameters are " "similar to those passed to the program's :c:func:`main` function with the " @@ -733,28 +736,28 @@ msgid "" "fatal condition is signalled using :c:func:`Py_FatalError`." msgstr "" -#: ../Doc/c-api/init.rst:574 +#: c-api/init.rst:574 msgid "" "If *updatepath* is zero, this is all the function does. If *updatepath* is " "non-zero, the function also modifies :data:`sys.path` according to the " "following algorithm:" msgstr "" -#: ../Doc/c-api/init.rst:578 +#: c-api/init.rst:578 msgid "" "If the name of an existing script is passed in ``argv[0]``, the absolute " "path of the directory where the script is located is prepended to :data:`sys." "path`." msgstr "" -#: ../Doc/c-api/init.rst:581 +#: c-api/init.rst:581 msgid "" "Otherwise (that is, if *argc* is ``0`` or ``argv[0]`` doesn't point to an " "existing file name), an empty string is prepended to :data:`sys.path`, which " "is the same as prepending the current working directory (``\".\"``)." msgstr "" -#: ../Doc/c-api/init.rst:590 +#: c-api/init.rst:590 msgid "" "It is recommended that applications embedding the Python interpreter for " "purposes other than executing a single script pass ``0`` as *updatepath*, " @@ -762,32 +765,32 @@ msgid "" "`_." msgstr "" -#: ../Doc/c-api/init.rst:595 +#: c-api/init.rst:595 msgid "" "On versions before 3.1.3, you can achieve the same effect by manually " "popping the first :data:`sys.path` element after having called :c:func:" "`PySys_SetArgv`, for example using::" msgstr "" -#: ../Doc/c-api/init.rst:609 +#: c-api/init.rst:609 msgid "" "This function works like :c:func:`PySys_SetArgvEx` with *updatepath* set to " "``1`` unless the :program:`python` interpreter was started with the :option:" "`-I`." msgstr "" -#: ../Doc/c-api/init.rst:616 +#: c-api/init.rst:616 msgid "The *updatepath* value depends on :option:`-I`." msgstr "" -#: ../Doc/c-api/init.rst:621 +#: c-api/init.rst:621 msgid "" "Set the default \"home\" directory, that is, the location of the standard " "Python libraries. See :envvar:`PYTHONHOME` for the meaning of the argument " "string." msgstr "" -#: ../Doc/c-api/init.rst:625 +#: c-api/init.rst:625 msgid "" "The argument should point to a zero-terminated character string in static " "storage whose contents will not change for the duration of the program's " @@ -795,18 +798,18 @@ msgid "" "this storage." msgstr "" -#: ../Doc/c-api/init.rst:636 +#: c-api/init.rst:636 msgid "" "Return the default \"home\", that is, the value set by a previous call to :c:" "func:`Py_SetPythonHome`, or the value of the :envvar:`PYTHONHOME` " "environment variable if it is set." msgstr "" -#: ../Doc/c-api/init.rst:644 +#: c-api/init.rst:644 msgid "Thread State and the Global Interpreter Lock" msgstr "" -#: ../Doc/c-api/init.rst:651 +#: c-api/init.rst:651 msgid "" "The Python interpreter is not fully thread-safe. In order to support multi-" "threaded Python programs, there's a global lock, called the :term:`global " @@ -818,7 +821,7 @@ msgid "" "once instead of twice." msgstr "" -#: ../Doc/c-api/init.rst:661 +#: c-api/init.rst:661 msgid "" "Therefore, the rule exists that only the thread that has acquired the :term:" "`GIL` may operate on Python objects or call Python/C API functions. In order " @@ -828,7 +831,7 @@ msgid "" "a file, so that other Python threads can run in the meantime." msgstr "" -#: ../Doc/c-api/init.rst:672 +#: c-api/init.rst:672 msgid "" "The Python interpreter keeps some thread-specific bookkeeping information " "inside a data structure called :c:type:`PyThreadState`. There's also one " @@ -836,32 +839,32 @@ msgid "" "retrieved using :c:func:`PyThreadState_Get`." msgstr "" -#: ../Doc/c-api/init.rst:678 +#: c-api/init.rst:678 msgid "Releasing the GIL from extension code" msgstr "" -#: ../Doc/c-api/init.rst:680 +#: c-api/init.rst:680 msgid "" "Most extension code manipulating the :term:`GIL` has the following simple " "structure::" msgstr "" -#: ../Doc/c-api/init.rst:689 +#: c-api/init.rst:689 msgid "This is so common that a pair of macros exists to simplify it::" msgstr "" -#: ../Doc/c-api/init.rst:699 +#: c-api/init.rst:699 msgid "" "The :c:macro:`Py_BEGIN_ALLOW_THREADS` macro opens a new block and declares a " "hidden local variable; the :c:macro:`Py_END_ALLOW_THREADS` macro closes the " "block." msgstr "" -#: ../Doc/c-api/init.rst:703 +#: c-api/init.rst:703 msgid "The block above expands to the following code::" msgstr "" -#: ../Doc/c-api/init.rst:715 +#: c-api/init.rst:715 msgid "" "Here is how these functions work: the global interpreter lock is used to " "protect the pointer to the current thread state. When releasing the lock " @@ -872,7 +875,7 @@ msgid "" "state, the lock must be acquired before storing the thread state pointer." msgstr "" -#: ../Doc/c-api/init.rst:724 +#: c-api/init.rst:724 msgid "" "Calling system I/O functions is the most common use case for releasing the " "GIL, but it can also be useful before calling long-running computations " @@ -882,11 +885,11 @@ msgid "" "compressing or hashing data." msgstr "" -#: ../Doc/c-api/init.rst:735 +#: c-api/init.rst:735 msgid "Non-Python created threads" msgstr "" -#: ../Doc/c-api/init.rst:737 +#: c-api/init.rst:737 msgid "" "When threads are created using the dedicated Python APIs (such as the :mod:" "`threading` module), a thread state is automatically associated to them and " @@ -896,7 +899,7 @@ msgid "" "for them." msgstr "" -#: ../Doc/c-api/init.rst:744 +#: c-api/init.rst:744 msgid "" "If you need to call Python code from these threads (often this will be part " "of a callback API provided by the aforementioned third-party library), you " @@ -907,14 +910,14 @@ msgid "" "finally free the thread state data structure." msgstr "" -#: ../Doc/c-api/init.rst:752 +#: c-api/init.rst:752 msgid "" "The :c:func:`PyGILState_Ensure` and :c:func:`PyGILState_Release` functions " "do all of the above automatically. The typical idiom for calling into " "Python from a C thread is::" msgstr "" -#: ../Doc/c-api/init.rst:766 +#: c-api/init.rst:766 msgid "" "Note that the :c:func:`PyGILState_\\*` functions assume there is only one " "global interpreter (created automatically by :c:func:`Py_Initialize`). " @@ -923,11 +926,11 @@ msgid "" "`PyGILState_\\*` API is unsupported." msgstr "" -#: ../Doc/c-api/init.rst:776 +#: c-api/init.rst:776 msgid "Cautions about fork()" msgstr "" -#: ../Doc/c-api/init.rst:778 +#: c-api/init.rst:778 msgid "" "Another important thing to note about threads is their behaviour in the face " "of the C :c:func:`fork` call. On most systems with :c:func:`fork`, after a " @@ -936,7 +939,7 @@ msgid "" "CPython's runtime." msgstr "" -#: ../Doc/c-api/init.rst:784 +#: c-api/init.rst:784 msgid "" "The fact that only the \"current\" thread remains means any locks held by " "other threads will never be released. Python solves this for :func:`os.fork` " @@ -953,7 +956,7 @@ msgid "" "locks, but is not always able to." msgstr "" -#: ../Doc/c-api/init.rst:799 +#: c-api/init.rst:799 msgid "" "The fact that all other threads go away also means that CPython's runtime " "state there must be cleaned up properly, which :func:`os.fork` does. This " @@ -966,17 +969,18 @@ msgid "" "called immediately after." msgstr "" -#: ../Doc/c-api/init.rst:812 +#: c-api/init.rst:812 +#, fuzzy msgid "High-level API" -msgstr "" +msgstr "Bibliothèques de haut-niveau" -#: ../Doc/c-api/init.rst:814 +#: c-api/init.rst:814 msgid "" "These are the most commonly used types and functions when writing C " "extension code, or when embedding the Python interpreter:" msgstr "" -#: ../Doc/c-api/init.rst:819 +#: c-api/init.rst:819 msgid "" "This data structure represents the state shared by a number of cooperating " "threads. Threads belonging to the same interpreter share their module " @@ -984,7 +988,7 @@ msgid "" "in this structure." msgstr "" -#: ../Doc/c-api/init.rst:824 +#: c-api/init.rst:824 msgid "" "Threads belonging to different interpreters initially share nothing, except " "process state like available memory, open file descriptors and such. The " @@ -992,14 +996,14 @@ msgid "" "which interpreter they belong." msgstr "" -#: ../Doc/c-api/init.rst:832 +#: c-api/init.rst:832 msgid "" "This data structure represents the state of a single thread. The only " -"public data member is :c:type:`PyInterpreterState \\*`:attr:`interp`, which " +"public data member is :attr:`interp` (:c:type:`PyInterpreterState *`), which " "points to this thread's interpreter state." msgstr "" -#: ../Doc/c-api/init.rst:845 +#: c-api/init.rst:845 msgid "" "Initialize and acquire the global interpreter lock. It should be called in " "the main thread before creating a second thread or engaging in any other " @@ -1007,33 +1011,33 @@ msgid "" "before calling :c:func:`PyEval_SaveThread` or :c:func:`PyEval_RestoreThread`." msgstr "" -#: ../Doc/c-api/init.rst:850 +#: c-api/init.rst:850 msgid "This is a no-op when called for a second time." msgstr "" -#: ../Doc/c-api/init.rst:852 +#: c-api/init.rst:852 msgid "" "This function is now called by :c:func:`Py_Initialize()`, so you don't have " "to call it yourself anymore." msgstr "" -#: ../Doc/c-api/init.rst:856 +#: c-api/init.rst:856 msgid "" "This function cannot be called before :c:func:`Py_Initialize()` anymore." msgstr "" -#: ../Doc/c-api/init.rst:864 +#: c-api/init.rst:864 msgid "" "Returns a non-zero value if :c:func:`PyEval_InitThreads` has been called. " "This function can be called without holding the GIL, and therefore can be " "used to avoid calls to the locking API when running single-threaded." msgstr "" -#: ../Doc/c-api/init.rst:868 +#: c-api/init.rst:868 msgid "The :term:`GIL` is now initialized by :c:func:`Py_Initialize()`." msgstr "" -#: ../Doc/c-api/init.rst:874 +#: c-api/init.rst:874 msgid "" "Release the global interpreter lock (if it has been created) and reset the " "thread state to ``NULL``, returning the previous thread state (which is not " @@ -1041,7 +1045,7 @@ msgid "" "acquired it." msgstr "" -#: ../Doc/c-api/init.rst:882 +#: c-api/init.rst:882 msgid "" "Acquire the global interpreter lock (if it has been created) and set the " "thread state to *tstate*, which must not be ``NULL``. If the lock has been " @@ -1049,8 +1053,7 @@ msgid "" "ensues." msgstr "" -#: ../Doc/c-api/init.rst:888 ../Doc/c-api/init.rst:934 -#: ../Doc/c-api/init.rst:1109 ../Doc/c-api/init.rst:1147 +#: c-api/init.rst:934 c-api/init.rst:1147 msgid "" "Calling this function from a thread when the runtime is finalizing will " "terminate the thread, even if the thread was not created by Python. You can " @@ -1059,27 +1062,27 @@ msgid "" "avoid unwanted termination." msgstr "" -#: ../Doc/c-api/init.rst:896 +#: c-api/init.rst:896 msgid "" "Return the current thread state. The global interpreter lock must be held. " "When the current thread state is ``NULL``, this issues a fatal error (so " "that the caller needn't check for ``NULL``)." msgstr "" -#: ../Doc/c-api/init.rst:903 +#: c-api/init.rst:903 msgid "" "Swap the current thread state with the thread state given by the argument " "*tstate*, which may be ``NULL``. The global interpreter lock must be held " "and is not released." msgstr "" -#: ../Doc/c-api/init.rst:908 +#: c-api/init.rst:908 msgid "" "The following functions use thread-local storage, and are not compatible " "with sub-interpreters:" msgstr "" -#: ../Doc/c-api/init.rst:913 +#: c-api/init.rst:913 msgid "" "Ensure that the current thread is ready to call the Python C API regardless " "of the current state of Python, or of the global interpreter lock. This may " @@ -1092,7 +1095,7 @@ msgid "" "is acceptable." msgstr "" -#: ../Doc/c-api/init.rst:923 +#: c-api/init.rst:923 msgid "" "The return value is an opaque \"handle\" to the thread state when :c:func:" "`PyGILState_Ensure` was called, and must be passed to :c:func:" @@ -1102,13 +1105,13 @@ msgid "" "func:`PyGILState_Release`." msgstr "" -#: ../Doc/c-api/init.rst:930 +#: c-api/init.rst:930 msgid "" "When the function returns, the current thread will hold the GIL and be able " "to call arbitrary Python code. Failure is a fatal error." msgstr "" -#: ../Doc/c-api/init.rst:942 +#: c-api/init.rst:942 msgid "" "Release any resources previously acquired. After this call, Python's state " "will be the same as it was prior to the corresponding :c:func:" @@ -1116,13 +1119,13 @@ msgid "" "caller, hence the use of the GILState API)." msgstr "" -#: ../Doc/c-api/init.rst:947 +#: c-api/init.rst:947 msgid "" "Every call to :c:func:`PyGILState_Ensure` must be matched by a call to :c:" "func:`PyGILState_Release` on the same thread." msgstr "" -#: ../Doc/c-api/init.rst:953 +#: c-api/init.rst:953 msgid "" "Get the current thread state for this thread. May return ``NULL`` if no " "GILState API has been used on the current thread. Note that the main thread " @@ -1130,7 +1133,7 @@ msgid "" "made on the main thread. This is mainly a helper/diagnostic function." msgstr "" -#: ../Doc/c-api/init.rst:961 +#: c-api/init.rst:961 msgid "" "Return ``1`` if the current thread is holding the GIL and ``0`` otherwise. " "This function can be called from any thread at any time. Only if it has had " @@ -1141,13 +1144,13 @@ msgid "" "otherwise behave differently." msgstr "" -#: ../Doc/c-api/init.rst:973 +#: c-api/init.rst:973 msgid "" "The following macros are normally used without a trailing semicolon; look " "for example usage in the Python source distribution." msgstr "" -#: ../Doc/c-api/init.rst:979 +#: c-api/init.rst:979 msgid "" "This macro expands to ``{ PyThreadState *_save; _save = PyEval_SaveThread();" "``. Note that it contains an opening brace; it must be matched with a " @@ -1155,7 +1158,7 @@ msgid "" "discussion of this macro." msgstr "" -#: ../Doc/c-api/init.rst:987 +#: c-api/init.rst:987 msgid "" "This macro expands to ``PyEval_RestoreThread(_save); }``. Note that it " "contains a closing brace; it must be matched with an earlier :c:macro:" @@ -1163,104 +1166,105 @@ msgid "" "macro." msgstr "" -#: ../Doc/c-api/init.rst:995 +#: c-api/init.rst:995 msgid "" "This macro expands to ``PyEval_RestoreThread(_save);``: it is equivalent to :" "c:macro:`Py_END_ALLOW_THREADS` without the closing brace." msgstr "" -#: ../Doc/c-api/init.rst:1001 +#: c-api/init.rst:1001 msgid "" "This macro expands to ``_save = PyEval_SaveThread();``: it is equivalent to :" "c:macro:`Py_BEGIN_ALLOW_THREADS` without the opening brace and variable " "declaration." msgstr "" -#: ../Doc/c-api/init.rst:1007 +#: c-api/init.rst:1007 +#, fuzzy msgid "Low-level API" -msgstr "" +msgstr "Bibliothèques de bas-niveau" -#: ../Doc/c-api/init.rst:1009 +#: c-api/init.rst:1009 msgid "" "All of the following functions must be called after :c:func:`Py_Initialize`." msgstr "" -#: ../Doc/c-api/init.rst:1011 +#: c-api/init.rst:1011 msgid ":c:func:`Py_Initialize()` now initializes the :term:`GIL`." msgstr "" -#: ../Doc/c-api/init.rst:1017 +#: c-api/init.rst:1017 msgid "" "Create a new interpreter state object. The global interpreter lock need not " "be held, but may be held if it is necessary to serialize calls to this " "function." msgstr "" -#: ../Doc/c-api/init.rst:1021 +#: c-api/init.rst:1021 msgid "" "Raises an :ref:`auditing event ` ``cpython." "PyInterpreterState_New`` with no arguments." msgstr "" -#: ../Doc/c-api/init.rst:1026 +#: c-api/init.rst:1026 msgid "" "Reset all information in an interpreter state object. The global " "interpreter lock must be held." msgstr "" -#: ../Doc/c-api/init.rst:1029 +#: c-api/init.rst:1029 msgid "" "Raises an :ref:`auditing event ` ``cpython." "PyInterpreterState_Clear`` with no arguments." msgstr "" -#: ../Doc/c-api/init.rst:1034 +#: c-api/init.rst:1034 msgid "" "Destroy an interpreter state object. The global interpreter lock need not " "be held. The interpreter state must have been reset with a previous call " "to :c:func:`PyInterpreterState_Clear`." msgstr "" -#: ../Doc/c-api/init.rst:1041 +#: c-api/init.rst:1041 msgid "" "Create a new thread state object belonging to the given interpreter object. " "The global interpreter lock need not be held, but may be held if it is " "necessary to serialize calls to this function." msgstr "" -#: ../Doc/c-api/init.rst:1048 +#: c-api/init.rst:1048 msgid "" "Reset all information in a thread state object. The global interpreter lock " "must be held." msgstr "" -#: ../Doc/c-api/init.rst:1054 +#: c-api/init.rst:1054 msgid "" "Destroy a thread state object. The global interpreter lock need not be " "held. The thread state must have been reset with a previous call to :c:func:" "`PyThreadState_Clear`." msgstr "" -#: ../Doc/c-api/init.rst:1061 +#: c-api/init.rst:1061 msgid "" "Return the interpreter's unique ID. If there was any error in doing so then " "``-1`` is returned and an error is set." msgstr "" -#: ../Doc/c-api/init.rst:1069 +#: c-api/init.rst:1069 msgid "" "Return a dictionary in which interpreter-specific data may be stored. If " "this function returns ``NULL`` then no exception has been raised and the " "caller should assume no interpreter-specific dict is available." msgstr "" -#: ../Doc/c-api/init.rst:1073 +#: c-api/init.rst:1073 msgid "" "This is not a replacement for :c:func:`PyModule_GetState()`, which " "extensions should use to store interpreter-specific state information." msgstr "" -#: ../Doc/c-api/init.rst:1081 +#: c-api/init.rst:1081 msgid "" "Return a dictionary in which extensions can store thread-specific state " "information. Each extension should use a unique key to use to store state " @@ -1269,7 +1273,7 @@ msgid "" "raised and the caller should assume no current thread state is available." msgstr "" -#: ../Doc/c-api/init.rst:1090 +#: c-api/init.rst:1090 msgid "" "Asynchronously raise an exception in a thread. The *id* argument is the " "thread id of the target thread; *exc* is the exception object to be raised. " @@ -1281,33 +1285,33 @@ msgid "" "raises no exceptions." msgstr "" -#: ../Doc/c-api/init.rst:1098 +#: c-api/init.rst:1098 msgid "" "The type of the *id* parameter changed from :c:type:`long` to :c:type:" "`unsigned long`." msgstr "" -#: ../Doc/c-api/init.rst:1104 +#: c-api/init.rst:1104 msgid "" "Acquire the global interpreter lock and set the current thread state to " "*tstate*, which should not be ``NULL``. The lock must have been created " "earlier. If this thread already has the lock, deadlock ensues." msgstr "" -#: ../Doc/c-api/init.rst:1115 ../Doc/c-api/init.rst:1153 +#: c-api/init.rst:1153 msgid "" "Updated to be consistent with :c:func:`PyEval_RestoreThread`, :c:func:" "`Py_END_ALLOW_THREADS`, and :c:func:`PyGILState_Ensure`, and terminate the " "current thread if called while the interpreter is finalizing." msgstr "" -#: ../Doc/c-api/init.rst:1120 +#: c-api/init.rst:1120 msgid "" ":c:func:`PyEval_RestoreThread` is a higher-level function which is always " "available (even when threads have not been initialized)." msgstr "" -#: ../Doc/c-api/init.rst:1126 +#: c-api/init.rst:1126 msgid "" "Reset the current thread state to ``NULL`` and release the global " "interpreter lock. The lock must have been created earlier and must be held " @@ -1316,41 +1320,41 @@ msgid "" "isn't, a fatal error is reported." msgstr "" -#: ../Doc/c-api/init.rst:1132 +#: c-api/init.rst:1132 msgid "" ":c:func:`PyEval_SaveThread` is a higher-level function which is always " "available (even when threads have not been initialized)." msgstr "" -#: ../Doc/c-api/init.rst:1138 +#: c-api/init.rst:1138 msgid "" "Acquire the global interpreter lock. The lock must have been created " "earlier. If this thread already has the lock, a deadlock ensues." msgstr "" -#: ../Doc/c-api/init.rst:1141 +#: c-api/init.rst:1141 msgid "" "This function does not update the current thread state. Please use :c:func:" "`PyEval_RestoreThread` or :c:func:`PyEval_AcquireThread` instead." msgstr "" -#: ../Doc/c-api/init.rst:1161 +#: c-api/init.rst:1161 msgid "" "Release the global interpreter lock. The lock must have been created " "earlier." msgstr "" -#: ../Doc/c-api/init.rst:1163 +#: c-api/init.rst:1163 msgid "" "This function does not update the current thread state. Please use :c:func:" "`PyEval_SaveThread` or :c:func:`PyEval_ReleaseThread` instead." msgstr "" -#: ../Doc/c-api/init.rst:1172 +#: c-api/init.rst:1172 msgid "Sub-interpreter support" msgstr "" -#: ../Doc/c-api/init.rst:1174 +#: c-api/init.rst:1174 msgid "" "While in most uses, you will only embed a single Python interpreter, there " "are cases where you need to create several independent interpreters in the " @@ -1358,25 +1362,25 @@ msgid "" "to do that." msgstr "" -#: ../Doc/c-api/init.rst:1179 +#: c-api/init.rst:1179 msgid "" "The \"main\" interpreter is the first one created when the runtime " "initializes. It is usually the only Python interpreter in a process. Unlike " "sub-interpreters, the main interpreter has unique process-global " "responsibilities like signal handling. It is also responsible for execution " "during runtime initialization and is usually the active interpreter during " -"runtime finalization. The :c:func:`PyInterpreterState_Main` funtion returns " -"a pointer to its state." +"runtime finalization. The :c:func:`PyInterpreterState_Main` function " +"returns a pointer to its state." msgstr "" -#: ../Doc/c-api/init.rst:1186 +#: c-api/init.rst:1186 msgid "" "You can switch between sub-interpreters using the :c:func:" "`PyThreadState_Swap` function. You can create and destroy them using the " "following functions:" msgstr "" -#: ../Doc/c-api/init.rst:1200 +#: c-api/init.rst:1200 msgid "" "Create a new sub-interpreter. This is an (almost) totally separate " "environment for the execution of Python code. In particular, the new " @@ -1389,7 +1393,7 @@ msgid "" "underlying file descriptors)." msgstr "" -#: ../Doc/c-api/init.rst:1210 +#: c-api/init.rst:1210 msgid "" "The return value points to the first thread state created in the new sub-" "interpreter. This thread state is made in the current thread state. Note " @@ -1403,21 +1407,41 @@ msgid "" "state on entry.)" msgstr "" -#: ../Doc/c-api/init.rst:1225 +#: c-api/init.rst:1225 +msgid "Extension modules are shared between (sub-)interpreters as follows:" +msgstr "" + +#: c-api/init.rst:1227 msgid "" -"Extension modules are shared between (sub-)interpreters as follows: the " -"first time a particular extension is imported, it is initialized normally, " -"and a (shallow) copy of its module's dictionary is squirreled away. When " -"the same extension is imported by another (sub-)interpreter, a new module is " -"initialized and filled with the contents of this copy; the extension's " -"``init`` function is not called. Note that this is different from what " -"happens when an extension is imported after the interpreter has been " -"completely re-initialized by calling :c:func:`Py_FinalizeEx` and :c:func:" -"`Py_Initialize`; in that case, the extension's ``initmodule`` function *is* " -"called again." +"For modules using multi-phase initialization, e.g. :c:func:" +"`PyModule_FromDefAndSpec`, a separate module object is created and " +"initialized for each interpreter. Only C-level static and global variables " +"are shared between these module objects." msgstr "" -#: ../Doc/c-api/init.rst:1242 +#: c-api/init.rst:1233 +msgid "" +"For modules using single-phase initialization, e.g. :c:func:" +"`PyModule_Create`, the first time a particular extension is imported, it is " +"initialized normally, and a (shallow) copy of its module's dictionary is " +"squirreled away. When the same extension is imported by another " +"(sub-)interpreter, a new module is initialized and filled with the contents " +"of this copy; the extension's ``init`` function is not called. Objects in " +"the module's dictionary thus end up shared across (sub-)interpreters, which " +"might cause unwanted behavior (see `Bugs and caveats`_ below)." +msgstr "" + +#: c-api/init.rst:1244 +msgid "" +"Note that this is different from what happens when an extension is imported " +"after the interpreter has been completely re-initialized by calling :c:func:" +"`Py_FinalizeEx` and :c:func:`Py_Initialize`; in that case, the extension's " +"``initmodule`` function *is* called again. As with multi-phase " +"initialization, this means that only C-level static and global variables are " +"shared between these modules." +msgstr "" + +#: c-api/init.rst:1258 msgid "" "Destroy the (sub-)interpreter represented by the given thread state. The " "given thread state must be the current thread state. See the discussion of " @@ -1429,28 +1453,33 @@ msgid "" "point." msgstr "" -#: ../Doc/c-api/init.rst:1252 +#: c-api/init.rst:1268 msgid "Bugs and caveats" msgstr "" -#: ../Doc/c-api/init.rst:1254 +#: c-api/init.rst:1270 msgid "" "Because sub-interpreters (and the main interpreter) are part of the same " "process, the insulation between them isn't perfect --- for example, using " "low-level file operations like :func:`os.close` they can (accidentally or " "maliciously) affect each other's open files. Because of the way extensions " "are shared between (sub-)interpreters, some extensions may not work " -"properly; this is especially likely when the extension makes use of (static) " -"global variables, or when the extension manipulates its module's dictionary " -"after its initialization. It is possible to insert objects created in one " -"sub-interpreter into a namespace of another sub-interpreter; this should be " -"done with great care to avoid sharing user-defined functions, methods, " -"instances or classes between sub-interpreters, since import operations " -"executed by such objects may affect the wrong (sub-)interpreter's dictionary " -"of loaded modules." +"properly; this is especially likely when using single-phase initialization " +"or (static) global variables. It is possible to insert objects created in " +"one sub-interpreter into a namespace of another (sub-)interpreter; this " +"should be avoided if possible." msgstr "" -#: ../Doc/c-api/init.rst:1268 +#: c-api/init.rst:1280 +msgid "" +"Special care should be taken to avoid sharing user-defined functions, " +"methods, instances or classes between sub-interpreters, since import " +"operations executed by such objects may affect the wrong (sub-)interpreter's " +"dictionary of loaded modules. It is equally important to avoid sharing " +"objects from which the above are reachable." +msgstr "" + +#: c-api/init.rst:1286 msgid "" "Also note that combining this functionality with :c:func:`PyGILState_\\*` " "APIs is delicate, because these APIs assume a bijection between Python " @@ -1462,25 +1491,25 @@ msgid "" "created threads will probably be broken when using sub-interpreters." msgstr "" -#: ../Doc/c-api/init.rst:1279 +#: c-api/init.rst:1297 msgid "Asynchronous Notifications" msgstr "" -#: ../Doc/c-api/init.rst:1281 +#: c-api/init.rst:1299 msgid "" "A mechanism is provided to make asynchronous notifications to the main " "interpreter thread. These notifications take the form of a function pointer " "and a void pointer argument." msgstr "" -#: ../Doc/c-api/init.rst:1290 +#: c-api/init.rst:1308 msgid "" "Schedule a function to be called from the main interpreter thread. On " "success, ``0`` is returned and *func* is queued for being called in the main " "thread. On failure, ``-1`` is returned without setting any exception." msgstr "" -#: ../Doc/c-api/init.rst:1294 +#: c-api/init.rst:1312 msgid "" "When successfully queued, *func* will be *eventually* called from the main " "interpreter thread with the argument *arg*. It will be called " @@ -1488,17 +1517,17 @@ msgid "" "these conditions met:" msgstr "" -#: ../Doc/c-api/init.rst:1299 +#: c-api/init.rst:1317 msgid "on a :term:`bytecode` boundary;" msgstr "" -#: ../Doc/c-api/init.rst:1300 +#: c-api/init.rst:1318 msgid "" "with the main thread holding the :term:`global interpreter lock` (*func* can " "therefore use the full C API)." msgstr "" -#: ../Doc/c-api/init.rst:1303 +#: c-api/init.rst:1321 msgid "" "*func* must return ``0`` on success, or ``-1`` on failure with an exception " "set. *func* won't be interrupted to perform another asynchronous " @@ -1506,13 +1535,13 @@ msgid "" "if the global interpreter lock is released." msgstr "" -#: ../Doc/c-api/init.rst:1308 +#: c-api/init.rst:1326 msgid "" "This function doesn't need a current thread state to run, and it doesn't " "need the global interpreter lock." msgstr "" -#: ../Doc/c-api/init.rst:1312 +#: c-api/init.rst:1330 msgid "" "This is a low-level function, only useful for very special cases. There is " "no guarantee that *func* will be called as quick as possible. If the main " @@ -1522,18 +1551,18 @@ msgid "" "`PyGILState API`." msgstr "" -#: ../Doc/c-api/init.rst:1324 +#: c-api/init.rst:1342 msgid "Profiling and Tracing" msgstr "" -#: ../Doc/c-api/init.rst:1329 +#: c-api/init.rst:1347 msgid "" "The Python interpreter provides some low-level support for attaching " "profiling and execution tracing facilities. These are used for profiling, " "debugging, and coverage analysis tools." msgstr "" -#: ../Doc/c-api/init.rst:1333 +#: c-api/init.rst:1351 msgid "" "This C interface allows the profiling or tracing code to avoid the overhead " "of calling through Python-level callable objects, making a direct C function " @@ -1543,7 +1572,7 @@ msgid "" "reported to the Python-level trace functions in previous versions." msgstr "" -#: ../Doc/c-api/init.rst:1343 +#: c-api/init.rst:1361 msgid "" "The type of the trace function registered using :c:func:`PyEval_SetProfile` " "and :c:func:`PyEval_SetTrace`. The first parameter is the object passed to " @@ -1554,66 +1583,64 @@ msgid "" "or :const:`PyTrace_OPCODE`, and *arg* depends on the value of *what*:" msgstr "" -#: ../Doc/c-api/init.rst:1352 +#: c-api/init.rst:1370 msgid "Value of *what*" msgstr "" -#: ../Doc/c-api/init.rst:1352 +#: c-api/init.rst:1370 msgid "Meaning of *arg*" msgstr "" -#: ../Doc/c-api/init.rst:1354 +#: c-api/init.rst:1372 msgid ":const:`PyTrace_CALL`" -msgstr "" +msgstr ":const:`PyTrace_CALL`" -#: ../Doc/c-api/init.rst:1354 ../Doc/c-api/init.rst:1359 -#: ../Doc/c-api/init.rst:1370 +#: c-api/init.rst:1377 c-api/init.rst:1388 msgid "Always :c:data:`Py_None`." msgstr "" -#: ../Doc/c-api/init.rst:1356 +#: c-api/init.rst:1374 msgid ":const:`PyTrace_EXCEPTION`" -msgstr "" +msgstr ":const:`PyTrace_EXCEPTION`" -#: ../Doc/c-api/init.rst:1356 +#: c-api/init.rst:1374 msgid "Exception information as returned by :func:`sys.exc_info`." msgstr "" -#: ../Doc/c-api/init.rst:1359 +#: c-api/init.rst:1377 msgid ":const:`PyTrace_LINE`" -msgstr "" +msgstr ":const:`PyTrace_LINE`" -#: ../Doc/c-api/init.rst:1361 +#: c-api/init.rst:1379 msgid ":const:`PyTrace_RETURN`" -msgstr "" +msgstr ":const:`PyTrace_RETURN`" -#: ../Doc/c-api/init.rst:1361 +#: c-api/init.rst:1379 msgid "" "Value being returned to the caller, or ``NULL`` if caused by an exception." msgstr "" -#: ../Doc/c-api/init.rst:1364 +#: c-api/init.rst:1382 msgid ":const:`PyTrace_C_CALL`" -msgstr "" +msgstr ":const:`PyTrace_C_CALL`" -#: ../Doc/c-api/init.rst:1364 ../Doc/c-api/init.rst:1366 -#: ../Doc/c-api/init.rst:1368 +#: c-api/init.rst:1384 c-api/init.rst:1386 msgid "Function object being called." msgstr "" -#: ../Doc/c-api/init.rst:1366 +#: c-api/init.rst:1384 msgid ":const:`PyTrace_C_EXCEPTION`" -msgstr "" +msgstr ":const:`PyTrace_C_EXCEPTION`" -#: ../Doc/c-api/init.rst:1368 +#: c-api/init.rst:1386 msgid ":const:`PyTrace_C_RETURN`" -msgstr "" +msgstr ":const:`PyTrace_C_RETURN`" -#: ../Doc/c-api/init.rst:1370 +#: c-api/init.rst:1388 msgid ":const:`PyTrace_OPCODE`" -msgstr "" +msgstr ":const:`PyTrace_OPCODE`" -#: ../Doc/c-api/init.rst:1375 +#: c-api/init.rst:1393 msgid "" "The value of the *what* parameter to a :c:type:`Py_tracefunc` function when " "a new call to a function or method is being reported, or a new entry into a " @@ -1622,7 +1649,7 @@ msgid "" "the corresponding frame." msgstr "" -#: ../Doc/c-api/init.rst:1384 +#: c-api/init.rst:1402 msgid "" "The value of the *what* parameter to a :c:type:`Py_tracefunc` function when " "an exception has been raised. The callback function is called with this " @@ -1634,7 +1661,7 @@ msgid "" "profiler." msgstr "" -#: ../Doc/c-api/init.rst:1395 +#: c-api/init.rst:1413 msgid "" "The value passed as the *what* parameter to a :c:type:`Py_tracefunc` " "function (but not a profiling function) when a line-number event is being " @@ -1642,31 +1669,31 @@ msgid "" "*0* on that frame." msgstr "" -#: ../Doc/c-api/init.rst:1402 +#: c-api/init.rst:1420 msgid "" "The value for the *what* parameter to :c:type:`Py_tracefunc` functions when " "a call is about to return." msgstr "" -#: ../Doc/c-api/init.rst:1408 +#: c-api/init.rst:1426 msgid "" "The value for the *what* parameter to :c:type:`Py_tracefunc` functions when " "a C function is about to be called." msgstr "" -#: ../Doc/c-api/init.rst:1414 +#: c-api/init.rst:1432 msgid "" "The value for the *what* parameter to :c:type:`Py_tracefunc` functions when " "a C function has raised an exception." msgstr "" -#: ../Doc/c-api/init.rst:1420 +#: c-api/init.rst:1438 msgid "" "The value for the *what* parameter to :c:type:`Py_tracefunc` functions when " "a C function has returned." msgstr "" -#: ../Doc/c-api/init.rst:1426 +#: c-api/init.rst:1444 msgid "" "The value for the *what* parameter to :c:type:`Py_tracefunc` functions (but " "not profiling functions) when a new opcode is about to be executed. This " @@ -1674,7 +1701,7 @@ msgid "" "attr:`f_trace_opcodes` to *1* on the frame." msgstr "" -#: ../Doc/c-api/init.rst:1434 +#: c-api/init.rst:1452 msgid "" "Set the profiler function to *func*. The *obj* parameter is passed to the " "function as its first parameter, and may be any Python object, or ``NULL``. " @@ -1684,7 +1711,7 @@ msgid "" "`PyTrace_LINE` :const:`PyTrace_OPCODE` and :const:`PyTrace_EXCEPTION`." msgstr "" -#: ../Doc/c-api/init.rst:1444 +#: c-api/init.rst:1462 msgid "" "Set the tracing function to *func*. This is similar to :c:func:" "`PyEval_SetProfile`, except the tracing function does receive line-number " @@ -1695,93 +1722,93 @@ msgid "" "parameter." msgstr "" -#: ../Doc/c-api/init.rst:1454 +#: c-api/init.rst:1472 msgid "Advanced Debugger Support" msgstr "Support avancé du débogueur" -#: ../Doc/c-api/init.rst:1459 +#: c-api/init.rst:1477 msgid "" "These functions are only intended to be used by advanced debugging tools." msgstr "" -#: ../Doc/c-api/init.rst:1464 +#: c-api/init.rst:1482 msgid "" "Return the interpreter state object at the head of the list of all such " "objects." msgstr "" -#: ../Doc/c-api/init.rst:1469 +#: c-api/init.rst:1487 msgid "Return the main interpreter state object." msgstr "" -#: ../Doc/c-api/init.rst:1474 +#: c-api/init.rst:1492 msgid "" "Return the next interpreter state object after *interp* from the list of all " "such objects." msgstr "" -#: ../Doc/c-api/init.rst:1480 +#: c-api/init.rst:1498 msgid "" "Return the pointer to the first :c:type:`PyThreadState` object in the list " "of threads associated with the interpreter *interp*." msgstr "" -#: ../Doc/c-api/init.rst:1486 +#: c-api/init.rst:1504 msgid "" "Return the next thread state object after *tstate* from the list of all such " "objects belonging to the same :c:type:`PyInterpreterState` object." msgstr "" -#: ../Doc/c-api/init.rst:1493 +#: c-api/init.rst:1511 msgid "Thread Local Storage Support" msgstr "" -#: ../Doc/c-api/init.rst:1497 +#: c-api/init.rst:1515 msgid "" "The Python interpreter provides low-level support for thread-local storage " "(TLS) which wraps the underlying native TLS implementation to support the " "Python-level thread local storage API (:class:`threading.local`). The " "CPython C level APIs are similar to those offered by pthreads and Windows: " -"use a thread key and functions to associate a :c:type:`void\\*` value per " +"use a thread key and functions to associate a :c:type:`void*` value per " "thread." msgstr "" -#: ../Doc/c-api/init.rst:1504 +#: c-api/init.rst:1522 msgid "" "The GIL does *not* need to be held when calling these functions; they supply " "their own locking." msgstr "" -#: ../Doc/c-api/init.rst:1507 +#: c-api/init.rst:1525 msgid "" "Note that :file:`Python.h` does not include the declaration of the TLS APIs, " "you need to include :file:`pythread.h` to use thread-local storage." msgstr "" -#: ../Doc/c-api/init.rst:1511 +#: c-api/init.rst:1529 msgid "" "None of these API functions handle memory management on behalf of the :c:" -"type:`void\\*` values. You need to allocate and deallocate them yourself. " -"If the :c:type:`void\\*` values happen to be :c:type:`PyObject\\*`, these " -"functions don't do refcount operations on them either." +"type:`void*` values. You need to allocate and deallocate them yourself. If " +"the :c:type:`void*` values happen to be :c:type:`PyObject*`, these functions " +"don't do refcount operations on them either." msgstr "" -#: ../Doc/c-api/init.rst:1519 +#: c-api/init.rst:1537 msgid "Thread Specific Storage (TSS) API" msgstr "" -#: ../Doc/c-api/init.rst:1521 +#: c-api/init.rst:1539 msgid "" "TSS API is introduced to supersede the use of the existing TLS API within " "the CPython interpreter. This API uses a new type :c:type:`Py_tss_t` " "instead of :c:type:`int` to represent thread keys." msgstr "" -#: ../Doc/c-api/init.rst:1527 +#: c-api/init.rst:1545 msgid "\"A New C-API for Thread-Local Storage in CPython\" (:pep:`539`)" msgstr "" -#: ../Doc/c-api/init.rst:1532 +#: c-api/init.rst:1550 msgid "" "This data structure represents the state of a thread key, the definition of " "which may depend on the underlying TLS implementation, and it has an " @@ -1789,52 +1816,52 @@ msgid "" "public members in this structure." msgstr "" -#: ../Doc/c-api/init.rst:1537 +#: c-api/init.rst:1555 msgid "" "When :ref:`Py_LIMITED_API ` is not defined, static allocation of " "this type by :c:macro:`Py_tss_NEEDS_INIT` is allowed." msgstr "" -#: ../Doc/c-api/init.rst:1543 +#: c-api/init.rst:1561 msgid "" "This macro expands to the initializer for :c:type:`Py_tss_t` variables. Note " "that this macro won't be defined with :ref:`Py_LIMITED_API `." msgstr "" -#: ../Doc/c-api/init.rst:1548 +#: c-api/init.rst:1566 msgid "Dynamic Allocation" msgstr "" -#: ../Doc/c-api/init.rst:1550 +#: c-api/init.rst:1568 msgid "" "Dynamic allocation of the :c:type:`Py_tss_t`, required in extension modules " "built with :ref:`Py_LIMITED_API `, where static allocation of this " "type is not possible due to its implementation being opaque at build time." msgstr "" -#: ../Doc/c-api/init.rst:1557 +#: c-api/init.rst:1575 msgid "" "Return a value which is the same state as a value initialized with :c:macro:" "`Py_tss_NEEDS_INIT`, or ``NULL`` in the case of dynamic allocation failure." msgstr "" -#: ../Doc/c-api/init.rst:1564 +#: c-api/init.rst:1582 msgid "" "Free the given *key* allocated by :c:func:`PyThread_tss_alloc`, after first " "calling :c:func:`PyThread_tss_delete` to ensure any associated thread locals " "have been unassigned. This is a no-op if the *key* argument is `NULL`." msgstr "" -#: ../Doc/c-api/init.rst:1570 +#: c-api/init.rst:1588 msgid "" "A freed key becomes a dangling pointer, you should reset the key to `NULL`." msgstr "" -#: ../Doc/c-api/init.rst:1575 +#: c-api/init.rst:1593 msgid "Methods" msgstr "Méthodes" -#: ../Doc/c-api/init.rst:1577 +#: c-api/init.rst:1595 msgid "" "The parameter *key* of these functions must not be ``NULL``. Moreover, the " "behaviors of :c:func:`PyThread_tss_set` and :c:func:`PyThread_tss_get` are " @@ -1842,13 +1869,13 @@ msgid "" "func:`PyThread_tss_create`." msgstr "" -#: ../Doc/c-api/init.rst:1585 +#: c-api/init.rst:1603 msgid "" "Return a non-zero value if the given :c:type:`Py_tss_t` has been initialized " "by :c:func:`PyThread_tss_create`." msgstr "" -#: ../Doc/c-api/init.rst:1591 +#: c-api/init.rst:1609 msgid "" "Return a zero value on successful initialization of a TSS key. The behavior " "is undefined if the value pointed to by the *key* argument is not " @@ -1857,7 +1884,7 @@ msgid "" "no-op and immediately returns success." msgstr "" -#: ../Doc/c-api/init.rst:1600 +#: c-api/init.rst:1618 msgid "" "Destroy a TSS key to forget the values associated with the key across all " "threads, and change the key's initialization state to uninitialized. A " @@ -1866,31 +1893,31 @@ msgid "" "key -- calling it on an already destroyed key is a no-op." msgstr "" -#: ../Doc/c-api/init.rst:1609 +#: c-api/init.rst:1627 msgid "" -"Return a zero value to indicate successfully associating a :c:type:`void\\*` " +"Return a zero value to indicate successfully associating a :c:type:`void*` " "value with a TSS key in the current thread. Each thread has a distinct " -"mapping of the key to a :c:type:`void\\*` value." +"mapping of the key to a :c:type:`void*` value." msgstr "" -#: ../Doc/c-api/init.rst:1616 +#: c-api/init.rst:1634 msgid "" -"Return the :c:type:`void\\*` value associated with a TSS key in the current " +"Return the :c:type:`void*` value associated with a TSS key in the current " "thread. This returns ``NULL`` if no value is associated with the key in the " "current thread." msgstr "" -#: ../Doc/c-api/init.rst:1624 +#: c-api/init.rst:1642 msgid "Thread Local Storage (TLS) API" msgstr "" -#: ../Doc/c-api/init.rst:1626 +#: c-api/init.rst:1644 msgid "" "This API is superseded by :ref:`Thread Specific Storage (TSS) API `." msgstr "" -#: ../Doc/c-api/init.rst:1631 +#: c-api/init.rst:1649 msgid "" "This version of the API does not support platforms where the native TLS key " "is defined in a way that cannot be safely cast to ``int``. On such " @@ -1899,7 +1926,7 @@ msgid "" "platforms." msgstr "" -#: ../Doc/c-api/init.rst:1636 +#: c-api/init.rst:1654 msgid "" "Due to the compatibility problem noted above, this version of the API should " "not be used in new code." diff --git a/c-api/init_config.po b/c-api/init_config.po index 1342bcb75d..d26bb3c787 100644 --- a/c-api/init_config.po +++ b/c-api/init_config.po @@ -14,411 +14,412 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/c-api/init_config.rst:7 +#: c-api/init_config.rst:7 msgid "Python Initialization Configuration" msgstr "" -#: ../Doc/c-api/init_config.rst:11 +#: c-api/init_config.rst:11 msgid "Structures:" msgstr "" -#: ../Doc/c-api/init_config.rst:13 +#: c-api/init_config.rst:13 msgid ":c:type:`PyConfig`" msgstr "" -#: ../Doc/c-api/init_config.rst:14 +#: c-api/init_config.rst:14 msgid ":c:type:`PyPreConfig`" msgstr "" -#: ../Doc/c-api/init_config.rst:15 +#: c-api/init_config.rst:15 msgid ":c:type:`PyStatus`" msgstr "" -#: ../Doc/c-api/init_config.rst:16 +#: c-api/init_config.rst:16 msgid ":c:type:`PyWideStringList`" msgstr "" -#: ../Doc/c-api/init_config.rst:18 +#: c-api/init_config.rst:18 +#, fuzzy msgid "Functions:" -msgstr "" +msgstr "Fonctions" -#: ../Doc/c-api/init_config.rst:20 +#: c-api/init_config.rst:20 msgid ":c:func:`PyConfig_Clear`" msgstr "" -#: ../Doc/c-api/init_config.rst:21 +#: c-api/init_config.rst:21 msgid ":c:func:`PyConfig_InitIsolatedConfig`" msgstr "" -#: ../Doc/c-api/init_config.rst:22 +#: c-api/init_config.rst:22 msgid ":c:func:`PyConfig_InitPythonConfig`" msgstr "" -#: ../Doc/c-api/init_config.rst:23 +#: c-api/init_config.rst:23 msgid ":c:func:`PyConfig_Read`" msgstr "" -#: ../Doc/c-api/init_config.rst:24 +#: c-api/init_config.rst:24 msgid ":c:func:`PyConfig_SetArgv`" msgstr "" -#: ../Doc/c-api/init_config.rst:25 +#: c-api/init_config.rst:25 msgid ":c:func:`PyConfig_SetBytesArgv`" msgstr "" -#: ../Doc/c-api/init_config.rst:26 +#: c-api/init_config.rst:26 msgid ":c:func:`PyConfig_SetBytesString`" msgstr "" -#: ../Doc/c-api/init_config.rst:27 +#: c-api/init_config.rst:27 msgid ":c:func:`PyConfig_SetString`" msgstr "" -#: ../Doc/c-api/init_config.rst:28 +#: c-api/init_config.rst:28 msgid ":c:func:`PyConfig_SetWideStringList`" msgstr "" -#: ../Doc/c-api/init_config.rst:29 +#: c-api/init_config.rst:29 msgid ":c:func:`PyPreConfig_InitIsolatedConfig`" msgstr "" -#: ../Doc/c-api/init_config.rst:30 +#: c-api/init_config.rst:30 msgid ":c:func:`PyPreConfig_InitPythonConfig`" msgstr "" -#: ../Doc/c-api/init_config.rst:31 +#: c-api/init_config.rst:31 msgid ":c:func:`PyStatus_Error`" msgstr "" -#: ../Doc/c-api/init_config.rst:32 +#: c-api/init_config.rst:32 msgid ":c:func:`PyStatus_Exception`" msgstr "" -#: ../Doc/c-api/init_config.rst:33 +#: c-api/init_config.rst:33 msgid ":c:func:`PyStatus_Exit`" msgstr "" -#: ../Doc/c-api/init_config.rst:34 +#: c-api/init_config.rst:34 msgid ":c:func:`PyStatus_IsError`" msgstr "" -#: ../Doc/c-api/init_config.rst:35 +#: c-api/init_config.rst:35 msgid ":c:func:`PyStatus_IsExit`" msgstr "" -#: ../Doc/c-api/init_config.rst:36 +#: c-api/init_config.rst:36 msgid ":c:func:`PyStatus_NoMemory`" msgstr "" -#: ../Doc/c-api/init_config.rst:37 +#: c-api/init_config.rst:37 msgid ":c:func:`PyStatus_Ok`" msgstr "" -#: ../Doc/c-api/init_config.rst:38 +#: c-api/init_config.rst:38 msgid ":c:func:`PyWideStringList_Append`" msgstr "" -#: ../Doc/c-api/init_config.rst:39 +#: c-api/init_config.rst:39 msgid ":c:func:`PyWideStringList_Insert`" msgstr "" -#: ../Doc/c-api/init_config.rst:40 +#: c-api/init_config.rst:40 msgid ":c:func:`Py_ExitStatusException`" msgstr "" -#: ../Doc/c-api/init_config.rst:41 +#: c-api/init_config.rst:41 msgid ":c:func:`Py_InitializeFromConfig`" msgstr "" -#: ../Doc/c-api/init_config.rst:42 +#: c-api/init_config.rst:42 msgid ":c:func:`Py_PreInitialize`" msgstr "" -#: ../Doc/c-api/init_config.rst:43 +#: c-api/init_config.rst:43 msgid ":c:func:`Py_PreInitializeFromArgs`" msgstr "" -#: ../Doc/c-api/init_config.rst:44 +#: c-api/init_config.rst:44 msgid ":c:func:`Py_PreInitializeFromBytesArgs`" msgstr "" -#: ../Doc/c-api/init_config.rst:45 +#: c-api/init_config.rst:45 msgid ":c:func:`Py_RunMain`" msgstr "" -#: ../Doc/c-api/init_config.rst:47 +#: c-api/init_config.rst:47 msgid "" "The preconfiguration (``PyPreConfig`` type) is stored in ``_PyRuntime." "preconfig`` and the configuration (``PyConfig`` type) is stored in " "``PyInterpreterState.config``." msgstr "" -#: ../Doc/c-api/init_config.rst:51 +#: c-api/init_config.rst:51 msgid "" "See also :ref:`Initialization, Finalization, and Threads `." msgstr "" -#: ../Doc/c-api/init_config.rst:54 +#: c-api/init_config.rst:54 msgid ":pep:`587` \"Python Initialization Configuration\"." msgstr "" -#: ../Doc/c-api/init_config.rst:58 +#: c-api/init_config.rst:58 msgid "PyWideStringList" msgstr "" -#: ../Doc/c-api/init_config.rst:62 +#: c-api/init_config.rst:62 msgid "List of ``wchar_t*`` strings." msgstr "" -#: ../Doc/c-api/init_config.rst:64 +#: c-api/init_config.rst:64 msgid "" "If *length* is non-zero, *items* must be non-``NULL`` and all strings must " "be non-``NULL``." msgstr "" -#: ../Doc/c-api/init_config.rst:67 +#: c-api/init_config.rst:67 +#, fuzzy msgid "Methods:" -msgstr "" +msgstr "Méthodes" -#: ../Doc/c-api/init_config.rst:71 +#: c-api/init_config.rst:71 msgid "Append *item* to *list*." msgstr "" -#: ../Doc/c-api/init_config.rst:73 ../Doc/c-api/init_config.rst:84 +#: c-api/init_config.rst:84 msgid "Python must be preinitialized to call this function." msgstr "" -#: ../Doc/c-api/init_config.rst:77 +#: c-api/init_config.rst:77 msgid "Insert *item* into *list* at *index*." msgstr "" -#: ../Doc/c-api/init_config.rst:79 +#: c-api/init_config.rst:79 msgid "" "If *index* is greater than or equal to *list* length, append *item* to " "*list*." msgstr "" -#: ../Doc/c-api/init_config.rst:82 +#: c-api/init_config.rst:82 msgid "*index* must be greater than or equal to 0." msgstr "" -#: ../Doc/c-api/init_config.rst:86 ../Doc/c-api/init_config.rst:106 -#: ../Doc/c-api/init_config.rst:209 ../Doc/c-api/init_config.rst:416 +#: c-api/init_config.rst:106 c-api/init_config.rst:416 msgid "Structure fields:" msgstr "" -#: ../Doc/c-api/init_config.rst:90 +#: c-api/init_config.rst:90 msgid "List length." msgstr "" -#: ../Doc/c-api/init_config.rst:94 +#: c-api/init_config.rst:94 msgid "List items." msgstr "" -#: ../Doc/c-api/init_config.rst:97 +#: c-api/init_config.rst:97 msgid "PyStatus" msgstr "" -#: ../Doc/c-api/init_config.rst:101 +#: c-api/init_config.rst:101 msgid "" "Structure to store an initialization function status: success, error or exit." msgstr "" -#: ../Doc/c-api/init_config.rst:104 +#: c-api/init_config.rst:104 msgid "For an error, it can store the C function name which created the error." msgstr "" -#: ../Doc/c-api/init_config.rst:110 +#: c-api/init_config.rst:110 msgid "Exit code. Argument passed to ``exit()``." msgstr "" -#: ../Doc/c-api/init_config.rst:114 +#: c-api/init_config.rst:114 msgid "Error message." msgstr "" -#: ../Doc/c-api/init_config.rst:118 +#: c-api/init_config.rst:118 msgid "Name of the function which created an error, can be ``NULL``." msgstr "" -#: ../Doc/c-api/init_config.rst:120 +#: c-api/init_config.rst:120 msgid "Functions to create a status:" msgstr "" -#: ../Doc/c-api/init_config.rst:124 +#: c-api/init_config.rst:124 msgid "Success." msgstr "" -#: ../Doc/c-api/init_config.rst:128 +#: c-api/init_config.rst:128 msgid "Initialization error with a message." msgstr "" -#: ../Doc/c-api/init_config.rst:132 +#: c-api/init_config.rst:132 msgid "Memory allocation failure (out of memory)." msgstr "" -#: ../Doc/c-api/init_config.rst:136 +#: c-api/init_config.rst:136 msgid "Exit Python with the specified exit code." msgstr "" -#: ../Doc/c-api/init_config.rst:138 +#: c-api/init_config.rst:138 msgid "Functions to handle a status:" msgstr "" -#: ../Doc/c-api/init_config.rst:142 +#: c-api/init_config.rst:142 msgid "" "Is the status an error or an exit? If true, the exception must be handled; " "by calling :c:func:`Py_ExitStatusException` for example." msgstr "" -#: ../Doc/c-api/init_config.rst:147 +#: c-api/init_config.rst:147 msgid "Is the result an error?" msgstr "" -#: ../Doc/c-api/init_config.rst:151 +#: c-api/init_config.rst:151 msgid "Is the result an exit?" msgstr "" -#: ../Doc/c-api/init_config.rst:155 +#: c-api/init_config.rst:155 msgid "" "Call ``exit(exitcode)`` if *status* is an exit. Print the error message and " "exit with a non-zero exit code if *status* is an error. Must only be called " "if ``PyStatus_Exception(status)`` is non-zero." msgstr "" -#: ../Doc/c-api/init_config.rst:160 +#: c-api/init_config.rst:160 msgid "" "Internally, Python uses macros which set ``PyStatus.func``, whereas " "functions to create a status set ``func`` to ``NULL``." msgstr "" -#: ../Doc/c-api/init_config.rst:163 +#: c-api/init_config.rst:163 msgid "Example::" msgstr "Exemple ::" -#: ../Doc/c-api/init_config.rst:187 +#: c-api/init_config.rst:187 msgid "PyPreConfig" msgstr "" -#: ../Doc/c-api/init_config.rst:191 +#: c-api/init_config.rst:191 msgid "Structure used to preinitialize Python:" msgstr "" -#: ../Doc/c-api/init_config.rst:193 +#: c-api/init_config.rst:193 msgid "Set the Python memory allocator" msgstr "" -#: ../Doc/c-api/init_config.rst:194 +#: c-api/init_config.rst:194 msgid "Configure the LC_CTYPE locale" msgstr "" -#: ../Doc/c-api/init_config.rst:195 +#: c-api/init_config.rst:195 msgid "Set the UTF-8 mode" msgstr "" -#: ../Doc/c-api/init_config.rst:197 +#: c-api/init_config.rst:197 msgid "Function to initialize a preconfiguration:" msgstr "" -#: ../Doc/c-api/init_config.rst:201 +#: c-api/init_config.rst:201 msgid "" "Initialize the preconfiguration with :ref:`Python Configuration `." msgstr "" -#: ../Doc/c-api/init_config.rst:206 +#: c-api/init_config.rst:206 msgid "" "Initialize the preconfiguration with :ref:`Isolated Configuration `." msgstr "" -#: ../Doc/c-api/init_config.rst:213 +#: c-api/init_config.rst:213 msgid "Name of the memory allocator:" msgstr "" -#: ../Doc/c-api/init_config.rst:215 +#: c-api/init_config.rst:215 msgid "" "``PYMEM_ALLOCATOR_NOT_SET`` (``0``): don't change memory allocators (use " "defaults)" msgstr "" -#: ../Doc/c-api/init_config.rst:217 +#: c-api/init_config.rst:217 msgid "``PYMEM_ALLOCATOR_DEFAULT`` (``1``): default memory allocators" msgstr "" -#: ../Doc/c-api/init_config.rst:218 +#: c-api/init_config.rst:218 msgid "" "``PYMEM_ALLOCATOR_DEBUG`` (``2``): default memory allocators with debug hooks" msgstr "" -#: ../Doc/c-api/init_config.rst:220 +#: c-api/init_config.rst:220 msgid "``PYMEM_ALLOCATOR_MALLOC`` (``3``): force usage of ``malloc()``" msgstr "" -#: ../Doc/c-api/init_config.rst:221 +#: c-api/init_config.rst:221 msgid "" "``PYMEM_ALLOCATOR_MALLOC_DEBUG`` (``4``): force usage of ``malloc()`` with " "debug hooks" msgstr "" -#: ../Doc/c-api/init_config.rst:223 +#: c-api/init_config.rst:223 msgid "" "``PYMEM_ALLOCATOR_PYMALLOC`` (``5``): :ref:`Python pymalloc memory allocator " "`" msgstr "" -#: ../Doc/c-api/init_config.rst:225 +#: c-api/init_config.rst:225 msgid "" "``PYMEM_ALLOCATOR_PYMALLOC_DEBUG`` (``6``): :ref:`Python pymalloc memory " "allocator ` with debug hooks" msgstr "" -#: ../Doc/c-api/init_config.rst:228 +#: c-api/init_config.rst:228 msgid "" "``PYMEM_ALLOCATOR_PYMALLOC`` and ``PYMEM_ALLOCATOR_PYMALLOC_DEBUG`` are not " "supported if Python is configured using ``--without-pymalloc``" msgstr "" -#: ../Doc/c-api/init_config.rst:231 +#: c-api/init_config.rst:231 msgid "See :ref:`Memory Management `." msgstr "" -#: ../Doc/c-api/init_config.rst:235 +#: c-api/init_config.rst:235 msgid "" "Set the LC_CTYPE locale to the user preferred locale? If equals to 0, set :c:" "member:`coerce_c_locale` and :c:member:`coerce_c_locale_warn` to 0." msgstr "" -#: ../Doc/c-api/init_config.rst:240 +#: c-api/init_config.rst:240 msgid "" "If equals to 2, coerce the C locale; if equals to 1, read the LC_CTYPE " "locale to decide if it should be coerced." msgstr "" -#: ../Doc/c-api/init_config.rst:245 +#: c-api/init_config.rst:245 msgid "If non-zero, emit a warning if the C locale is coerced." msgstr "" -#: ../Doc/c-api/init_config.rst:249 +#: c-api/init_config.rst:249 msgid "See :c:member:`PyConfig.dev_mode`." msgstr "" -#: ../Doc/c-api/init_config.rst:253 +#: c-api/init_config.rst:253 msgid "See :c:member:`PyConfig.isolated`." msgstr "" -#: ../Doc/c-api/init_config.rst:257 +#: c-api/init_config.rst:257 msgid "" "If non-zero, disable UTF-8 Mode, set the Python filesystem encoding to " "``mbcs``, set the filesystem error handler to ``replace``." msgstr "" -#: ../Doc/c-api/init_config.rst:260 ../Doc/c-api/init_config.rst:546 +#: c-api/init_config.rst:546 msgid "" "Only available on Windows. ``#ifdef MS_WINDOWS`` macro can be used for " "Windows specific code." msgstr "" -#: ../Doc/c-api/init_config.rst:265 +#: c-api/init_config.rst:265 msgid "" "If non-zero, :c:func:`Py_PreInitializeFromArgs` and :c:func:" "`Py_PreInitializeFromBytesArgs` parse their ``argv`` argument the same way " @@ -426,45 +427,45 @@ msgid "" "Arguments `." msgstr "" -#: ../Doc/c-api/init_config.rst:272 +#: c-api/init_config.rst:272 msgid "See :c:member:`PyConfig.use_environment`." msgstr "" -#: ../Doc/c-api/init_config.rst:276 +#: c-api/init_config.rst:276 msgid "If non-zero, enable the UTF-8 mode." msgstr "" -#: ../Doc/c-api/init_config.rst:279 +#: c-api/init_config.rst:279 msgid "Preinitialization with PyPreConfig" msgstr "" -#: ../Doc/c-api/init_config.rst:281 +#: c-api/init_config.rst:281 msgid "Functions to preinitialize Python:" msgstr "" -#: ../Doc/c-api/init_config.rst:285 +#: c-api/init_config.rst:285 msgid "Preinitialize Python from *preconfig* preconfiguration." msgstr "" -#: ../Doc/c-api/init_config.rst:289 +#: c-api/init_config.rst:289 msgid "" "Preinitialize Python from *preconfig* preconfiguration and command line " "arguments (bytes strings)." msgstr "" -#: ../Doc/c-api/init_config.rst:294 +#: c-api/init_config.rst:294 msgid "" "Preinitialize Python from *preconfig* preconfiguration and command line " "arguments (wide strings)." msgstr "" -#: ../Doc/c-api/init_config.rst:297 ../Doc/c-api/init_config.rst:715 +#: c-api/init_config.rst:715 msgid "" "The caller is responsible to handle exceptions (error or exit) using :c:func:" "`PyStatus_Exception` and :c:func:`Py_ExitStatusException`." msgstr "" -#: ../Doc/c-api/init_config.rst:300 +#: c-api/init_config.rst:300 msgid "" "For :ref:`Python Configuration ` (:c:func:" "`PyPreConfig_InitPythonConfig`), if Python is initialized with command line " @@ -474,7 +475,7 @@ msgid "" "UTF-8 Mode." msgstr "" -#: ../Doc/c-api/init_config.rst:307 +#: c-api/init_config.rst:307 msgid "" "``PyMem_SetAllocator()`` can be called after :c:func:`Py_PreInitialize` and " "before :c:func:`Py_InitializeFromConfig` to install a custom memory " @@ -482,7 +483,7 @@ msgid "" "`PyPreConfig.allocator` is set to ``PYMEM_ALLOCATOR_NOT_SET``." msgstr "" -#: ../Doc/c-api/init_config.rst:312 +#: c-api/init_config.rst:312 msgid "" "Python memory allocation functions like :c:func:`PyMem_RawMalloc` must not " "be used before Python preinitialization, whereas calling directly " @@ -490,76 +491,75 @@ msgid "" "not be called before the preinitialization." msgstr "" -#: ../Doc/c-api/init_config.rst:317 +#: c-api/init_config.rst:317 msgid "Example using the preinitialization to enable the UTF-8 Mode::" msgstr "" -#: ../Doc/c-api/init_config.rst:338 +#: c-api/init_config.rst:338 msgid "PyConfig" msgstr "" -#: ../Doc/c-api/init_config.rst:342 +#: c-api/init_config.rst:342 msgid "Structure containing most parameters to configure Python." msgstr "" -#: ../Doc/c-api/init_config.rst:344 +#: c-api/init_config.rst:344 msgid "Structure methods:" msgstr "" -#: ../Doc/c-api/init_config.rst:348 +#: c-api/init_config.rst:348 msgid "" "Initialize configuration with :ref:`Python Configuration `." msgstr "" -#: ../Doc/c-api/init_config.rst:353 +#: c-api/init_config.rst:353 msgid "" "Initialize configuration with :ref:`Isolated Configuration `." msgstr "" -#: ../Doc/c-api/init_config.rst:358 +#: c-api/init_config.rst:358 msgid "Copy the wide character string *str* into ``*config_str``." msgstr "" -#: ../Doc/c-api/init_config.rst:360 ../Doc/c-api/init_config.rst:366 -#: ../Doc/c-api/init_config.rst:372 ../Doc/c-api/init_config.rst:378 -#: ../Doc/c-api/init_config.rst:384 ../Doc/c-api/init_config.rst:392 +#: c-api/init_config.rst:366 c-api/init_config.rst:378 +#: c-api/init_config.rst:392 msgid "Preinitialize Python if needed." msgstr "" -#: ../Doc/c-api/init_config.rst:364 +#: c-api/init_config.rst:364 msgid "" "Decode *str* using ``Py_DecodeLocale()`` and set the result into " "``*config_str``." msgstr "" -#: ../Doc/c-api/init_config.rst:370 +#: c-api/init_config.rst:370 msgid "Set command line arguments from wide character strings." msgstr "" -#: ../Doc/c-api/init_config.rst:376 +#: c-api/init_config.rst:376 msgid "" "Set command line arguments: decode bytes using :c:func:`Py_DecodeLocale`." msgstr "" -#: ../Doc/c-api/init_config.rst:382 +#: c-api/init_config.rst:382 msgid "Set the list of wide strings *list* to *length* and *items*." msgstr "" -#: ../Doc/c-api/init_config.rst:388 +#: c-api/init_config.rst:388 msgid "Read all Python configuration." msgstr "" -#: ../Doc/c-api/init_config.rst:390 +#: c-api/init_config.rst:390 msgid "Fields which are already initialized are left unchanged." msgstr "" -#: ../Doc/c-api/init_config.rst:396 +#: c-api/init_config.rst:396 msgid "Release configuration memory." msgstr "" -#: ../Doc/c-api/init_config.rst:398 +#: c-api/init_config.rst:398 msgid "" "Most ``PyConfig`` methods preinitialize Python if needed. In that case, the " "Python preinitialization configuration in based on the :c:type:`PyConfig`. " @@ -567,23 +567,23 @@ msgid "" "tuned, they must be set before calling a :c:type:`PyConfig` method:" msgstr "" -#: ../Doc/c-api/init_config.rst:403 +#: c-api/init_config.rst:403 msgid ":c:member:`~PyConfig.dev_mode`" msgstr "" -#: ../Doc/c-api/init_config.rst:404 +#: c-api/init_config.rst:404 msgid ":c:member:`~PyConfig.isolated`" msgstr "" -#: ../Doc/c-api/init_config.rst:405 +#: c-api/init_config.rst:405 msgid ":c:member:`~PyConfig.parse_argv`" msgstr "" -#: ../Doc/c-api/init_config.rst:406 +#: c-api/init_config.rst:406 msgid ":c:member:`~PyConfig.use_environment`" msgstr "" -#: ../Doc/c-api/init_config.rst:408 +#: c-api/init_config.rst:408 msgid "" "Moreover, if :c:func:`PyConfig_SetArgv` or :c:func:`PyConfig_SetBytesArgv` " "is used, this method must be called first, before other methods, since the " @@ -591,13 +591,13 @@ msgid "" "member:`parse_argv` is non-zero)." msgstr "" -#: ../Doc/c-api/init_config.rst:413 +#: c-api/init_config.rst:413 msgid "" "The caller of these methods is responsible to handle exceptions (error or " "exit) using ``PyStatus_Exception()`` and ``Py_ExitStatusException()``." msgstr "" -#: ../Doc/c-api/init_config.rst:420 +#: c-api/init_config.rst:420 msgid "" "Command line arguments, :data:`sys.argv`. See :c:member:`~PyConfig." "parse_argv` to parse :c:member:`~PyConfig.argv` the same way the regular " @@ -606,388 +606,389 @@ msgid "" "exists and is never empty." msgstr "" -#: ../Doc/c-api/init_config.rst:428 +#: c-api/init_config.rst:428 msgid ":data:`sys.base_exec_prefix`." msgstr "" -#: ../Doc/c-api/init_config.rst:432 +#: c-api/init_config.rst:432 msgid "" ":data:`sys._base_executable`: ``__PYVENV_LAUNCHER__`` environment variable " "value, or copy of :c:member:`PyConfig.executable`." msgstr "" -#: ../Doc/c-api/init_config.rst:437 +#: c-api/init_config.rst:437 msgid ":data:`sys.base_prefix`." msgstr "" -#: ../Doc/c-api/init_config.rst:441 +#: c-api/init_config.rst:441 msgid "" "If equals to 0, enable unbuffered mode, making the stdout and stderr streams " "unbuffered." msgstr "" -#: ../Doc/c-api/init_config.rst:444 +#: c-api/init_config.rst:444 msgid "stdin is always opened in buffered mode." msgstr "" -#: ../Doc/c-api/init_config.rst:448 +#: c-api/init_config.rst:448 msgid "" "If equals to 1, issue a warning when comparing :class:`bytes` or :class:" "`bytearray` with :class:`str`, or comparing :class:`bytes` with :class:" "`int`. If equal or greater to 2, raise a :exc:`BytesWarning` exception." msgstr "" -#: ../Doc/c-api/init_config.rst:455 +#: c-api/init_config.rst:455 msgid "" "Control the validation behavior of hash-based ``.pyc`` files (see :pep:" "`552`): :option:`--check-hash-based-pycs` command line option value." msgstr "" -#: ../Doc/c-api/init_config.rst:458 +#: c-api/init_config.rst:458 msgid "Valid values: ``always``, ``never`` and ``default``." msgstr "" -#: ../Doc/c-api/init_config.rst:460 +#: c-api/init_config.rst:460 msgid "The default value is: ``default``." msgstr "" -#: ../Doc/c-api/init_config.rst:464 +#: c-api/init_config.rst:464 msgid "" "If non-zero, configure C standard streams (``stdio``, ``stdout``, " "``stdout``). For example, set their mode to ``O_BINARY`` on Windows." msgstr "" -#: ../Doc/c-api/init_config.rst:469 +#: c-api/init_config.rst:469 msgid "Development mode: see :option:`-X dev <-X>`." msgstr "" -#: ../Doc/c-api/init_config.rst:473 +#: c-api/init_config.rst:473 msgid "If non-zero, dump all objects which are still alive at exit." msgstr "" -#: ../Doc/c-api/init_config.rst:475 +#: c-api/init_config.rst:475 msgid "" "Require a debug build of Python (``Py_REF_DEBUG`` macro must be defined)." msgstr "" -#: ../Doc/c-api/init_config.rst:479 +#: c-api/init_config.rst:479 msgid ":data:`sys.exec_prefix`." msgstr "" -#: ../Doc/c-api/init_config.rst:483 +#: c-api/init_config.rst:483 msgid ":data:`sys.executable`." msgstr "" -#: ../Doc/c-api/init_config.rst:487 +#: c-api/init_config.rst:487 msgid "If non-zero, call :func:`faulthandler.enable` at startup." msgstr "" -#: ../Doc/c-api/init_config.rst:491 +#: c-api/init_config.rst:491 msgid "Filesystem encoding, :func:`sys.getfilesystemencoding`." msgstr "" -#: ../Doc/c-api/init_config.rst:495 +#: c-api/init_config.rst:495 msgid "Filesystem encoding errors, :func:`sys.getfilesystemencodeerrors`." msgstr "" -#: ../Doc/c-api/init_config.rst:500 +#: c-api/init_config.rst:500 msgid "Randomized hash function seed." msgstr "" -#: ../Doc/c-api/init_config.rst:502 +#: c-api/init_config.rst:502 msgid "" "If :c:member:`~PyConfig.use_hash_seed` is zero, a seed is chosen randomly at " "Pythonstartup, and :c:member:`~PyConfig.hash_seed` is ignored." msgstr "" -#: ../Doc/c-api/init_config.rst:507 +#: c-api/init_config.rst:507 msgid "Python home directory." msgstr "" -#: ../Doc/c-api/init_config.rst:509 +#: c-api/init_config.rst:509 msgid "" "Initialized from :envvar:`PYTHONHOME` environment variable value by default." msgstr "" -#: ../Doc/c-api/init_config.rst:514 +#: c-api/init_config.rst:514 msgid "If non-zero, profile import time." msgstr "" -#: ../Doc/c-api/init_config.rst:518 +#: c-api/init_config.rst:518 msgid "Enter interactive mode after executing a script or a command." msgstr "" -#: ../Doc/c-api/init_config.rst:522 +#: c-api/init_config.rst:522 msgid "Install signal handlers?" msgstr "" -#: ../Doc/c-api/init_config.rst:526 +#: c-api/init_config.rst:526 +#, fuzzy msgid "Interactive mode." -msgstr "" +msgstr "Mode interactif" -#: ../Doc/c-api/init_config.rst:530 +#: c-api/init_config.rst:530 msgid "If greater than 0, enable isolated mode:" msgstr "" -#: ../Doc/c-api/init_config.rst:532 +#: c-api/init_config.rst:532 msgid "" ":data:`sys.path` contains neither the script's directory (computed from " "``argv[0]`` or the current directory) nor the user's site-packages directory." msgstr "" -#: ../Doc/c-api/init_config.rst:535 +#: c-api/init_config.rst:535 msgid "" "Python REPL doesn't import :mod:`readline` nor enable default readline " "configuration on interactive prompts." msgstr "" -#: ../Doc/c-api/init_config.rst:537 +#: c-api/init_config.rst:537 msgid "" "Set :c:member:`~PyConfig.use_environment` and :c:member:`~PyConfig." "user_site_directory` to 0." msgstr "" -#: ../Doc/c-api/init_config.rst:542 +#: c-api/init_config.rst:542 msgid "" "If non-zero, use :class:`io.FileIO` instead of :class:`io.WindowsConsoleIO` " "for :data:`sys.stdin`, :data:`sys.stdout` and :data:`sys.stderr`." msgstr "" -#: ../Doc/c-api/init_config.rst:551 +#: c-api/init_config.rst:551 msgid "" "If non-zero, dump statistics on :ref:`Python pymalloc memory allocator " "` at exit." msgstr "" -#: ../Doc/c-api/init_config.rst:554 +#: c-api/init_config.rst:554 msgid "The option is ignored if Python is built using ``--without-pymalloc``." msgstr "" -#: ../Doc/c-api/init_config.rst:558 +#: c-api/init_config.rst:558 msgid "" "Module search paths as a string separated by ``DELIM`` (:data:`os.path." "pathsep`)." msgstr "" -#: ../Doc/c-api/init_config.rst:561 +#: c-api/init_config.rst:561 msgid "" "Initialized from :envvar:`PYTHONPATH` environment variable value by default." msgstr "" -#: ../Doc/c-api/init_config.rst:567 +#: c-api/init_config.rst:567 msgid "" ":data:`sys.path`. If :c:member:`~PyConfig.module_search_paths_set` is equal " "to 0, the :c:member:`~PyConfig.module_search_paths` is overridden by the " "function calculating the :ref:`Path Configuration `." msgstr "" -#: ../Doc/c-api/init_config.rst:574 +#: c-api/init_config.rst:574 msgid "Compilation optimization level:" msgstr "" -#: ../Doc/c-api/init_config.rst:576 +#: c-api/init_config.rst:576 msgid "0: Peephole optimizer (and ``__debug__`` is set to ``True``)" msgstr "" -#: ../Doc/c-api/init_config.rst:577 +#: c-api/init_config.rst:577 msgid "1: Remove assertions, set ``__debug__`` to ``False``" msgstr "" -#: ../Doc/c-api/init_config.rst:578 +#: c-api/init_config.rst:578 msgid "2: Strip docstrings" msgstr "" -#: ../Doc/c-api/init_config.rst:582 +#: c-api/init_config.rst:582 msgid "" "If non-zero, parse :c:member:`~PyConfig.argv` the same way the regular " "Python command line arguments, and strip Python arguments from :c:member:" "`~PyConfig.argv`: see :ref:`Command Line Arguments `." msgstr "" -#: ../Doc/c-api/init_config.rst:589 +#: c-api/init_config.rst:589 msgid "" "If non-zero, turn on parser debugging output (for expert only, depending on " "compilation options)." msgstr "" -#: ../Doc/c-api/init_config.rst:594 +#: c-api/init_config.rst:594 msgid "" "If equal to 0, suppress warnings when calculating the :ref:`Path " "Configuration ` (Unix only, Windows does not log any " "warning). Otherwise, warnings are written into ``stderr``." msgstr "" -#: ../Doc/c-api/init_config.rst:600 +#: c-api/init_config.rst:600 msgid ":data:`sys.prefix`." msgstr "" -#: ../Doc/c-api/init_config.rst:604 +#: c-api/init_config.rst:604 msgid "" "Program name. Used to initialize :c:member:`~PyConfig.executable`, and in " "early error messages." msgstr "" -#: ../Doc/c-api/init_config.rst:609 +#: c-api/init_config.rst:609 msgid ":data:`sys.pycache_prefix`: ``.pyc`` cache prefix." msgstr "" -#: ../Doc/c-api/init_config.rst:611 +#: c-api/init_config.rst:611 msgid "If ``NULL``, :data:`sys.pycache_prefix` is set to ``None``." msgstr "" -#: ../Doc/c-api/init_config.rst:615 +#: c-api/init_config.rst:615 msgid "" "Quiet mode. For example, don't display the copyright and version messages in " "interactive mode." msgstr "" -#: ../Doc/c-api/init_config.rst:620 +#: c-api/init_config.rst:620 msgid "``python3 -c COMMAND`` argument. Used by :c:func:`Py_RunMain`." msgstr "" -#: ../Doc/c-api/init_config.rst:624 +#: c-api/init_config.rst:624 msgid "``python3 FILENAME`` argument. Used by :c:func:`Py_RunMain`." msgstr "" -#: ../Doc/c-api/init_config.rst:628 +#: c-api/init_config.rst:628 msgid "``python3 -m MODULE`` argument. Used by :c:func:`Py_RunMain`." msgstr "" -#: ../Doc/c-api/init_config.rst:632 +#: c-api/init_config.rst:632 msgid "Show allocation counts at exit?" msgstr "" -#: ../Doc/c-api/init_config.rst:634 +#: c-api/init_config.rst:634 msgid "Set to 1 by :option:`-X showalloccount <-X>` command line option." msgstr "" -#: ../Doc/c-api/init_config.rst:636 +#: c-api/init_config.rst:636 msgid "Need a special Python build with ``COUNT_ALLOCS`` macro defined." msgstr "" -#: ../Doc/c-api/init_config.rst:640 +#: c-api/init_config.rst:640 msgid "Show total reference count at exit?" msgstr "" -#: ../Doc/c-api/init_config.rst:642 +#: c-api/init_config.rst:642 msgid "Set to 1 by :option:`-X showrefcount <-X>` command line option." msgstr "" -#: ../Doc/c-api/init_config.rst:644 +#: c-api/init_config.rst:644 msgid "Need a debug build of Python (``Py_REF_DEBUG`` macro must be defined)." msgstr "" -#: ../Doc/c-api/init_config.rst:648 +#: c-api/init_config.rst:648 msgid "Import the :mod:`site` module at startup?" msgstr "" -#: ../Doc/c-api/init_config.rst:652 +#: c-api/init_config.rst:652 msgid "Skip the first line of the source?" msgstr "" -#: ../Doc/c-api/init_config.rst:657 +#: c-api/init_config.rst:657 msgid "" "Encoding and encoding errors of :data:`sys.stdin`, :data:`sys.stdout` and :" "data:`sys.stderr`." msgstr "" -#: ../Doc/c-api/init_config.rst:662 +#: c-api/init_config.rst:662 msgid "If non-zero, call :func:`tracemalloc.start` at startup." msgstr "" -#: ../Doc/c-api/init_config.rst:666 +#: c-api/init_config.rst:666 msgid "If greater than 0, use :ref:`environment variables `." msgstr "" -#: ../Doc/c-api/init_config.rst:670 +#: c-api/init_config.rst:670 msgid "If non-zero, add user site directory to :data:`sys.path`." msgstr "" -#: ../Doc/c-api/init_config.rst:674 +#: c-api/init_config.rst:674 msgid "If non-zero, enable verbose mode." msgstr "" -#: ../Doc/c-api/init_config.rst:678 +#: c-api/init_config.rst:678 msgid "" ":data:`sys.warnoptions`: options of the :mod:`warnings` module to build " "warnings filters: lowest to highest priority." msgstr "" -#: ../Doc/c-api/init_config.rst:681 +#: c-api/init_config.rst:681 msgid "" "The :mod:`warnings` module adds :data:`sys.warnoptions` in the reverse " "order: the last :c:member:`PyConfig.warnoptions` item becomes the first item " "of :data:`warnings.filters` which is checked first (highest priority)." msgstr "" -#: ../Doc/c-api/init_config.rst:688 +#: c-api/init_config.rst:688 msgid "If non-zero, write ``.pyc`` files." msgstr "" -#: ../Doc/c-api/init_config.rst:690 +#: c-api/init_config.rst:690 msgid "" ":data:`sys.dont_write_bytecode` is initialized to the inverted value of :c:" "member:`~PyConfig.write_bytecode`." msgstr "" -#: ../Doc/c-api/init_config.rst:695 +#: c-api/init_config.rst:695 msgid ":data:`sys._xoptions`." msgstr "" -#: ../Doc/c-api/init_config.rst:697 +#: c-api/init_config.rst:697 msgid "" "If ``parse_argv`` is non-zero, ``argv`` arguments are parsed the same way " "the regular Python parses command line arguments, and Python arguments are " "stripped from ``argv``: see :ref:`Command Line Arguments `." msgstr "" -#: ../Doc/c-api/init_config.rst:702 +#: c-api/init_config.rst:702 msgid "" "The ``xoptions`` options are parsed to set other options: see :option:`-X` " "option." msgstr "" -#: ../Doc/c-api/init_config.rst:707 +#: c-api/init_config.rst:707 msgid "Initialization with PyConfig" msgstr "" -#: ../Doc/c-api/init_config.rst:709 +#: c-api/init_config.rst:709 msgid "Function to initialize Python:" msgstr "" -#: ../Doc/c-api/init_config.rst:713 +#: c-api/init_config.rst:713 msgid "Initialize Python from *config* configuration." msgstr "" -#: ../Doc/c-api/init_config.rst:718 +#: c-api/init_config.rst:718 msgid "" "If ``PyImport_FrozenModules``, ``PyImport_AppendInittab()`` or " "``PyImport_ExtendInittab()`` are used, they must be set or called after " "Python preinitialization and before the Python initialization." msgstr "" -#: ../Doc/c-api/init_config.rst:722 +#: c-api/init_config.rst:722 msgid "Example setting the program name::" msgstr "" -#: ../Doc/c-api/init_config.rst:750 +#: c-api/init_config.rst:750 msgid "" "More complete example modifying the default configuration, read the " "configuration, and then override some parameters::" msgstr "" -#: ../Doc/c-api/init_config.rst:801 +#: c-api/init_config.rst:801 msgid "Isolated Configuration" msgstr "" -#: ../Doc/c-api/init_config.rst:803 +#: c-api/init_config.rst:803 msgid "" ":c:func:`PyPreConfig_InitIsolatedConfig` and :c:func:" "`PyConfig_InitIsolatedConfig` functions create a configuration to isolate " "Python from the system. For example, to embed Python into an application." msgstr "" -#: ../Doc/c-api/init_config.rst:808 +#: c-api/init_config.rst:808 msgid "" "This configuration ignores global configuration variables, environments " "variables, command line arguments (:c:member:`PyConfig.argv` is not parsed) " @@ -995,7 +996,7 @@ msgid "" "LC_CTYPE locale are left unchanged. Signal handlers are not installed." msgstr "" -#: ../Doc/c-api/init_config.rst:813 +#: c-api/init_config.rst:813 msgid "" "Configuration files are still used with this configuration. Set the :ref:" "`Path Configuration ` (\"output fields\") to ignore these " @@ -1003,118 +1004,118 @@ msgid "" "configuration." msgstr "" -#: ../Doc/c-api/init_config.rst:822 +#: c-api/init_config.rst:822 msgid "Python Configuration" msgstr "" -#: ../Doc/c-api/init_config.rst:824 +#: c-api/init_config.rst:824 msgid "" ":c:func:`PyPreConfig_InitPythonConfig` and :c:func:" "`PyConfig_InitPythonConfig` functions create a configuration to build a " "customized Python which behaves as the regular Python." msgstr "" -#: ../Doc/c-api/init_config.rst:828 +#: c-api/init_config.rst:828 msgid "" "Environments variables and command line arguments are used to configure " "Python, whereas global configuration variables are ignored." msgstr "" -#: ../Doc/c-api/init_config.rst:831 +#: c-api/init_config.rst:831 msgid "" "This function enables C locale coercion (:pep:`538`) and UTF-8 Mode (:pep:" "`540`) depending on the LC_CTYPE locale, :envvar:`PYTHONUTF8` and :envvar:" "`PYTHONCOERCECLOCALE` environment variables." msgstr "" -#: ../Doc/c-api/init_config.rst:835 +#: c-api/init_config.rst:835 msgid "Example of customized Python always running in isolated mode::" msgstr "" -#: ../Doc/c-api/init_config.rst:874 +#: c-api/init_config.rst:874 msgid "Path Configuration" msgstr "" -#: ../Doc/c-api/init_config.rst:876 +#: c-api/init_config.rst:876 msgid ":c:type:`PyConfig` contains multiple fields for the path configuration:" msgstr "" -#: ../Doc/c-api/init_config.rst:878 +#: c-api/init_config.rst:878 msgid "Path configuration inputs:" msgstr "" -#: ../Doc/c-api/init_config.rst:880 +#: c-api/init_config.rst:880 msgid ":c:member:`PyConfig.home`" msgstr "" -#: ../Doc/c-api/init_config.rst:881 +#: c-api/init_config.rst:881 msgid ":c:member:`PyConfig.pathconfig_warnings`" msgstr "" -#: ../Doc/c-api/init_config.rst:882 +#: c-api/init_config.rst:882 msgid ":c:member:`PyConfig.program_name`" msgstr "" -#: ../Doc/c-api/init_config.rst:883 +#: c-api/init_config.rst:883 msgid ":c:member:`PyConfig.pythonpath_env`" msgstr "" -#: ../Doc/c-api/init_config.rst:884 +#: c-api/init_config.rst:884 msgid "current working directory: to get absolute paths" msgstr "" -#: ../Doc/c-api/init_config.rst:885 +#: c-api/init_config.rst:885 msgid "" "``PATH`` environment variable to get the program full path (from :c:member:" "`PyConfig.program_name`)" msgstr "" -#: ../Doc/c-api/init_config.rst:887 +#: c-api/init_config.rst:887 msgid "``__PYVENV_LAUNCHER__`` environment variable" msgstr "" -#: ../Doc/c-api/init_config.rst:888 +#: c-api/init_config.rst:888 msgid "" -"(Windows only) Application paths in the registry under \"Software\\Python" -"\\PythonCore\\X.Y\\PythonPath\" of HKEY_CURRENT_USER and HKEY_LOCAL_MACHINE " -"(where X.Y is the Python version)." +"(Windows only) Application paths in the registry under " +"\"Software\\Python\\PythonCore\\X.Y\\PythonPath\" of HKEY_CURRENT_USER and " +"HKEY_LOCAL_MACHINE (where X.Y is the Python version)." msgstr "" -#: ../Doc/c-api/init_config.rst:892 +#: c-api/init_config.rst:892 msgid "Path configuration output fields:" msgstr "" -#: ../Doc/c-api/init_config.rst:894 +#: c-api/init_config.rst:894 msgid ":c:member:`PyConfig.base_exec_prefix`" msgstr "" -#: ../Doc/c-api/init_config.rst:895 +#: c-api/init_config.rst:895 msgid ":c:member:`PyConfig.base_executable`" msgstr "" -#: ../Doc/c-api/init_config.rst:896 +#: c-api/init_config.rst:896 msgid ":c:member:`PyConfig.base_prefix`" msgstr "" -#: ../Doc/c-api/init_config.rst:897 +#: c-api/init_config.rst:897 msgid ":c:member:`PyConfig.exec_prefix`" msgstr "" -#: ../Doc/c-api/init_config.rst:898 +#: c-api/init_config.rst:898 msgid ":c:member:`PyConfig.executable`" msgstr "" -#: ../Doc/c-api/init_config.rst:899 +#: c-api/init_config.rst:899 msgid "" ":c:member:`PyConfig.module_search_paths_set`, :c:member:`PyConfig." "module_search_paths`" msgstr "" -#: ../Doc/c-api/init_config.rst:901 +#: c-api/init_config.rst:901 msgid ":c:member:`PyConfig.prefix`" msgstr "" -#: ../Doc/c-api/init_config.rst:903 +#: c-api/init_config.rst:903 msgid "" "If at least one \"output field\" is not set, Python calculates the path " "configuration to fill unset fields. If :c:member:`~PyConfig." @@ -1123,7 +1124,7 @@ msgid "" "module_search_paths_set` is set to 1." msgstr "" -#: ../Doc/c-api/init_config.rst:909 +#: c-api/init_config.rst:909 msgid "" "It is possible to completely ignore the function calculating the default " "path configuration by setting explicitly all path configuration output " @@ -1133,52 +1134,52 @@ msgid "" "well." msgstr "" -#: ../Doc/c-api/init_config.rst:916 +#: c-api/init_config.rst:916 msgid "" "Set :c:member:`~PyConfig.pathconfig_warnings` to 0 to suppress warnings when " "calculating the path configuration (Unix only, Windows does not log any " "warning)." msgstr "" -#: ../Doc/c-api/init_config.rst:919 +#: c-api/init_config.rst:919 msgid "" "If :c:member:`~PyConfig.base_prefix` or :c:member:`~PyConfig." "base_exec_prefix` fields are not set, they inherit their value from :c:" "member:`~PyConfig.prefix` and :c:member:`~PyConfig.exec_prefix` respectively." msgstr "" -#: ../Doc/c-api/init_config.rst:923 +#: c-api/init_config.rst:923 msgid ":c:func:`Py_RunMain` and :c:func:`Py_Main` modify :data:`sys.path`:" msgstr "" -#: ../Doc/c-api/init_config.rst:925 +#: c-api/init_config.rst:925 msgid "" "If :c:member:`~PyConfig.run_filename` is set and is a directory which " "contains a ``__main__.py`` script, prepend :c:member:`~PyConfig." "run_filename` to :data:`sys.path`." msgstr "" -#: ../Doc/c-api/init_config.rst:928 +#: c-api/init_config.rst:928 msgid "If :c:member:`~PyConfig.isolated` is zero:" msgstr "" -#: ../Doc/c-api/init_config.rst:930 +#: c-api/init_config.rst:930 msgid "" "If :c:member:`~PyConfig.run_module` is set, prepend the current directory " "to :data:`sys.path`. Do nothing if the current directory cannot be read." msgstr "" -#: ../Doc/c-api/init_config.rst:932 +#: c-api/init_config.rst:932 msgid "" "If :c:member:`~PyConfig.run_filename` is set, prepend the directory of the " "filename to :data:`sys.path`." msgstr "" -#: ../Doc/c-api/init_config.rst:934 +#: c-api/init_config.rst:934 msgid "Otherwise, prepend an empty string to :data:`sys.path`." msgstr "" -#: ../Doc/c-api/init_config.rst:936 +#: c-api/init_config.rst:936 msgid "" "If :c:member:`~PyConfig.site_import` is non-zero, :data:`sys.path` can be " "modified by the :mod:`site` module. If :c:member:`~PyConfig." @@ -1187,138 +1188,138 @@ msgid "" "data:`sys.path`." msgstr "" -#: ../Doc/c-api/init_config.rst:942 +#: c-api/init_config.rst:942 msgid "The following configuration files are used by the path configuration:" msgstr "" -#: ../Doc/c-api/init_config.rst:944 +#: c-api/init_config.rst:944 msgid "``pyvenv.cfg``" msgstr "" -#: ../Doc/c-api/init_config.rst:945 +#: c-api/init_config.rst:945 msgid "``python._pth`` (Windows only)" msgstr "" -#: ../Doc/c-api/init_config.rst:946 +#: c-api/init_config.rst:946 msgid "``pybuilddir.txt`` (Unix only)" msgstr "" -#: ../Doc/c-api/init_config.rst:948 +#: c-api/init_config.rst:948 msgid "" "The ``__PYVENV_LAUNCHER__`` environment variable is used to set :c:member:" "`PyConfig.base_executable`" msgstr "" -#: ../Doc/c-api/init_config.rst:953 +#: c-api/init_config.rst:953 msgid "Py_RunMain()" msgstr "" -#: ../Doc/c-api/init_config.rst:957 +#: c-api/init_config.rst:957 msgid "" "Execute the command (:c:member:`PyConfig.run_command`), the script (:c:" "member:`PyConfig.run_filename`) or the module (:c:member:`PyConfig." "run_module`) specified on the command line or in the configuration." msgstr "" -#: ../Doc/c-api/init_config.rst:962 +#: c-api/init_config.rst:962 msgid "By default and when if :option:`-i` option is used, run the REPL." msgstr "" -#: ../Doc/c-api/init_config.rst:964 +#: c-api/init_config.rst:964 msgid "" "Finally, finalizes Python and returns an exit status that can be passed to " "the ``exit()`` function." msgstr "" -#: ../Doc/c-api/init_config.rst:967 +#: c-api/init_config.rst:967 msgid "" "See :ref:`Python Configuration ` for an example of " "customized Python always running in isolated mode using :c:func:`Py_RunMain`." msgstr "" -#: ../Doc/c-api/init_config.rst:973 +#: c-api/init_config.rst:973 msgid "Multi-Phase Initialization Private Provisional API" msgstr "" -#: ../Doc/c-api/init_config.rst:975 +#: c-api/init_config.rst:975 msgid "" "This section is a private provisional API introducing multi-phase " "initialization, the core feature of the :pep:`432`:" msgstr "" -#: ../Doc/c-api/init_config.rst:978 +#: c-api/init_config.rst:978 msgid "\"Core\" initialization phase, \"bare minimum Python\":" msgstr "" -#: ../Doc/c-api/init_config.rst:980 +#: c-api/init_config.rst:980 msgid "Builtin types;" msgstr "" -#: ../Doc/c-api/init_config.rst:981 +#: c-api/init_config.rst:981 msgid "Builtin exceptions;" msgstr "" -#: ../Doc/c-api/init_config.rst:982 +#: c-api/init_config.rst:982 msgid "Builtin and frozen modules;" msgstr "" -#: ../Doc/c-api/init_config.rst:983 +#: c-api/init_config.rst:983 msgid "" "The :mod:`sys` module is only partially initialized (ex: :data:`sys.path` " "doesn't exist yet)." msgstr "" -#: ../Doc/c-api/init_config.rst:986 +#: c-api/init_config.rst:986 msgid "\"Main\" initialization phase, Python is fully initialized:" msgstr "" -#: ../Doc/c-api/init_config.rst:988 +#: c-api/init_config.rst:988 msgid "Install and configure :mod:`importlib`;" msgstr "" -#: ../Doc/c-api/init_config.rst:989 +#: c-api/init_config.rst:989 msgid "Apply the :ref:`Path Configuration `;" msgstr "" -#: ../Doc/c-api/init_config.rst:990 +#: c-api/init_config.rst:990 msgid "Install signal handlers;" msgstr "" -#: ../Doc/c-api/init_config.rst:991 +#: c-api/init_config.rst:991 msgid "" "Finish :mod:`sys` module initialization (ex: create :data:`sys.stdout` and :" "data:`sys.path`);" msgstr "" -#: ../Doc/c-api/init_config.rst:993 +#: c-api/init_config.rst:993 msgid "" "Enable optional features like :mod:`faulthandler` and :mod:`tracemalloc`;" msgstr "" -#: ../Doc/c-api/init_config.rst:994 +#: c-api/init_config.rst:994 msgid "Import the :mod:`site` module;" msgstr "" -#: ../Doc/c-api/init_config.rst:995 +#: c-api/init_config.rst:995 msgid "etc." msgstr "" -#: ../Doc/c-api/init_config.rst:997 +#: c-api/init_config.rst:997 msgid "Private provisional API:" msgstr "" -#: ../Doc/c-api/init_config.rst:999 +#: c-api/init_config.rst:999 msgid "" ":c:member:`PyConfig._init_main`: if set to 0, :c:func:" "`Py_InitializeFromConfig` stops at the \"Core\" initialization phase." msgstr "" -#: ../Doc/c-api/init_config.rst:1004 +#: c-api/init_config.rst:1004 msgid "" "Move to the \"Main\" initialization phase, finish the Python initialization." msgstr "" -#: ../Doc/c-api/init_config.rst:1006 +#: c-api/init_config.rst:1006 msgid "" "No module is imported during the \"Core\" phase and the ``importlib`` module " "is not configured: the :ref:`Path Configuration ` is only " @@ -1327,14 +1328,14 @@ msgid "" "maybe install a custom :data:`sys.meta_path` importer or an import hook, etc." msgstr "" -#: ../Doc/c-api/init_config.rst:1012 +#: c-api/init_config.rst:1012 msgid "" "It may become possible to calculatin the :ref:`Path Configuration ` in Python, after the Core phase and before the Main phase, which is " "one of the :pep:`432` motivation." msgstr "" -#: ../Doc/c-api/init_config.rst:1016 +#: c-api/init_config.rst:1016 msgid "" "The \"Core\" phase is not properly defined: what should be and what should " "not be available at this phase is not specified yet. The API is marked as " @@ -1342,7 +1343,7 @@ msgid "" "until a proper public API is designed." msgstr "" -#: ../Doc/c-api/init_config.rst:1021 +#: c-api/init_config.rst:1021 msgid "" "Example running Python code between \"Core\" and \"Main\" initialization " "phases::" diff --git a/c-api/intro.po b/c-api/intro.po index fd38063e01..8d989fc80d 100644 --- a/c-api/intro.po +++ b/c-api/intro.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-15 18:54+0100\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,11 +14,11 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/c-api/intro.rst:8 +#: c-api/intro.rst:8 msgid "Introduction" msgstr "Introduction" -#: ../Doc/c-api/intro.rst:10 +#: c-api/intro.rst:10 msgid "" "The Application Programmer's Interface to Python gives C and C++ programmers " "access to the Python interpreter at a variety of levels. The API is equally " @@ -31,7 +31,7 @@ msgid "" "`embedding` Python in an application." msgstr "" -#: ../Doc/c-api/intro.rst:20 +#: c-api/intro.rst:20 msgid "" "Writing an extension module is a relatively well-understood process, where a " "\"cookbook\" approach works well. There are several tools that automate the " @@ -40,7 +40,7 @@ msgid "" "less straightforward than writing an extension." msgstr "" -#: ../Doc/c-api/intro.rst:26 +#: c-api/intro.rst:26 msgid "" "Many API functions are useful independent of whether you're embedding or " "extending Python; moreover, most applications that embed Python will need " @@ -49,11 +49,11 @@ msgid "" "in a real application." msgstr "" -#: ../Doc/c-api/intro.rst:34 +#: c-api/intro.rst:34 msgid "Coding standards" msgstr "" -#: ../Doc/c-api/intro.rst:36 +#: c-api/intro.rst:36 msgid "" "If you're writing C code for inclusion in CPython, you **must** follow the " "guidelines and standards defined in :PEP:`7`. These guidelines apply " @@ -62,24 +62,24 @@ msgid "" "modules, unless you eventually expect to contribute them to Python." msgstr "" -#: ../Doc/c-api/intro.rst:46 +#: c-api/intro.rst:46 msgid "Include Files" msgstr "" -#: ../Doc/c-api/intro.rst:48 +#: c-api/intro.rst:48 msgid "" "All function, type and macro definitions needed to use the Python/C API are " "included in your code by the following line::" msgstr "" -#: ../Doc/c-api/intro.rst:54 +#: c-api/intro.rst:54 msgid "" "This implies inclusion of the following standard headers: ````, " "````, ````, ````, ```` and ```` (if available)." msgstr "" -#: ../Doc/c-api/intro.rst:60 +#: c-api/intro.rst:60 msgid "" "Since Python may define some pre-processor definitions which affect the " "standard headers on some systems, you *must* include :file:`Python.h` before " @@ -89,13 +89,17 @@ msgstr "" "les têtes standard sur certains systèmes, vous *devez* inclure :file:`Python." "h` avant les en-têtes standards." -#: ../Doc/c-api/intro.rst:64 +#: c-api/intro.rst:64 +#, fuzzy msgid "" "It is recommended to always define ``PY_SSIZE_T_CLEAN`` before including " "``Python.h``. See :ref:`arg-parsing` for a description of this macro." msgstr "" +"Il est recommandé de toujours définir ``PY_SSIZE_T_CLEAN`` avant d'inclure " +"``Python.h``. Lisez :ref:`parsetuple` pour avoir une description de cette " +"macro." -#: ../Doc/c-api/intro.rst:67 +#: c-api/intro.rst:67 msgid "" "All user visible names defined by Python.h (except those defined by the " "included standard headers) have one of the prefixes ``Py`` or ``_Py``. " @@ -104,7 +108,7 @@ msgid "" "names do not have a reserved prefix." msgstr "" -#: ../Doc/c-api/intro.rst:74 +#: c-api/intro.rst:74 msgid "" "User code should never define names that begin with ``Py`` or ``_Py``. This " "confuses the reader, and jeopardizes the portability of the user code to " @@ -112,7 +116,7 @@ msgid "" "of these prefixes." msgstr "" -#: ../Doc/c-api/intro.rst:79 +#: c-api/intro.rst:79 msgid "" "The header files are typically installed with Python. On Unix, these are " "located in the directories :file:`{prefix}/include/pythonversion/` and :file:" @@ -124,7 +128,7 @@ msgid "" "specified to the installer." msgstr "" -#: ../Doc/c-api/intro.rst:88 +#: c-api/intro.rst:88 msgid "" "To include the headers, place both directories (if different) on your " "compiler's search path for includes. Do *not* place the parent directories " @@ -134,18 +138,18 @@ msgid "" "`exec_prefix`." msgstr "" -#: ../Doc/c-api/intro.rst:95 +#: c-api/intro.rst:95 msgid "" "C++ users should note that although the API is defined entirely using C, the " "header files properly declare the entry points to be ``extern \"C\"``. As a " "result, there is no need to do anything special to use the API from C++." msgstr "" -#: ../Doc/c-api/intro.rst:101 +#: c-api/intro.rst:101 msgid "Useful macros" msgstr "" -#: ../Doc/c-api/intro.rst:103 +#: c-api/intro.rst:103 msgid "" "Several useful macros are defined in the Python header files. Many are " "defined closer to where they are useful (e.g. :c:macro:`Py_RETURN_NONE`). " @@ -153,7 +157,7 @@ msgid "" "a complete listing." msgstr "" -#: ../Doc/c-api/intro.rst:110 +#: c-api/intro.rst:110 msgid "" "Use this when you have a code path that you do not expect to be reached. For " "example, in the ``default:`` clause in a ``switch`` statement for which all " @@ -161,79 +165,104 @@ msgid "" "where you might be tempted to put an ``assert(0)`` or ``abort()`` call." msgstr "" -#: ../Doc/c-api/intro.rst:119 +#: c-api/intro.rst:119 +#, fuzzy msgid "Return the absolute value of ``x``." -msgstr "" +msgstr "Renvoie la valeur absolue de *x*." -#: ../Doc/c-api/intro.rst:125 +#: c-api/intro.rst:125 msgid "Return the minimum value between ``x`` and ``y``." msgstr "" -#: ../Doc/c-api/intro.rst:131 +#: c-api/intro.rst:131 msgid "Return the maximum value between ``x`` and ``y``." msgstr "" -#: ../Doc/c-api/intro.rst:137 +#: c-api/intro.rst:137 msgid "" "Convert ``x`` to a C string. E.g. ``Py_STRINGIFY(123)`` returns ``\"123\"``." msgstr "" -#: ../Doc/c-api/intro.rst:144 +#: c-api/intro.rst:144 msgid "Return the size of a structure (``type``) ``member`` in bytes." msgstr "" -#: ../Doc/c-api/intro.rst:150 +#: c-api/intro.rst:150 msgid "" "Argument must be a character or an integer in the range [-128, 127] or [0, " "255]. This macro returns ``c`` cast to an ``unsigned char``." msgstr "" -#: ../Doc/c-api/intro.rst:155 +#: c-api/intro.rst:155 msgid "" "Like ``getenv(s)``, but returns ``NULL`` if :option:`-E` was passed on the " "command line (i.e. if ``Py_IgnoreEnvironmentFlag`` is set)." msgstr "" -#: ../Doc/c-api/intro.rst:160 +#: c-api/intro.rst:160 msgid "" "Use this for unused arguments in a function definition to silence compiler " "warnings. Example: ``int func(int a, int Py_UNUSED(b)) { return a; }``." msgstr "" -#: ../Doc/c-api/intro.rst:167 +#: c-api/intro.rst:167 msgid "" "Use this for deprecated declarations. The macro must be placed before the " "symbol name." msgstr "" -#: ../Doc/c-api/intro.rst:170 +#: c-api/intro.rst:185 c-api/intro.rst:203 msgid "Example::" msgstr "Exemple ::" -#: ../Doc/c-api/intro.rst:174 +#: c-api/intro.rst:174 msgid "MSVC support was added." msgstr "" -#: ../Doc/c-api/intro.rst:181 +#: c-api/intro.rst:179 +msgid "" +"Creates a variable with name ``name`` that can be used in docstrings. If " +"Python is built without docstrings, the value will be empty." +msgstr "" + +#: c-api/intro.rst:182 +msgid "" +"Use :c:macro:`PyDoc_STRVAR` for docstrings to support building Python " +"without docstrings, as specified in :pep:`7`." +msgstr "" + +#: c-api/intro.rst:197 +msgid "" +"Creates a docstring for the given input string or an empty string if " +"docstrings are disabled." +msgstr "" + +#: c-api/intro.rst:200 +msgid "" +"Use :c:macro:`PyDoc_STR` in specifying docstrings to support building Python " +"without docstrings, as specified in :pep:`7`." +msgstr "" + +#: c-api/intro.rst:214 msgid "Objects, Types and Reference Counts" msgstr "" -#: ../Doc/c-api/intro.rst:185 +#: c-api/intro.rst:218 msgid "" "Most Python/C API functions have one or more arguments as well as a return " -"value of type :c:type:`PyObject\\*`. This type is a pointer to an opaque " -"data type representing an arbitrary Python object. Since all Python object " -"types are treated the same way by the Python language in most situations (e." -"g., assignments, scope rules, and argument passing), it is only fitting that " +"value of type :c:type:`PyObject*`. This type is a pointer to an opaque data " +"type representing an arbitrary Python object. Since all Python object types " +"are treated the same way by the Python language in most situations (e.g., " +"assignments, scope rules, and argument passing), it is only fitting that " "they should be represented by a single C type. Almost all Python objects " "live on the heap: you never declare an automatic or static variable of type :" -"c:type:`PyObject`, only pointer variables of type :c:type:`PyObject\\*` can " +"c:type:`PyObject`, only pointer variables of type :c:type:`PyObject*` can " "be declared. The sole exception are the type objects; since these must " "never be deallocated, they are typically static :c:type:`PyTypeObject` " "objects." msgstr "" -#: ../Doc/c-api/intro.rst:196 +#: c-api/intro.rst:229 msgid "" "All Python objects (even Python integers) have a :dfn:`type` and a :dfn:" "`reference count`. An object's type determines what kind of object it is (e." @@ -244,11 +273,11 @@ msgid "" "a Python list." msgstr "" -#: ../Doc/c-api/intro.rst:207 +#: c-api/intro.rst:240 msgid "Reference Counts" -msgstr "" +msgstr "Compteurs de références" -#: ../Doc/c-api/intro.rst:209 +#: c-api/intro.rst:242 msgid "" "The reference count is important because today's computers have a finite " "(and often severely limited) memory size; it counts how many different " @@ -262,7 +291,7 @@ msgid "" "for now, the solution is \"don't do that.\")" msgstr "" -#: ../Doc/c-api/intro.rst:224 +#: c-api/intro.rst:257 msgid "" "Reference counts are always manipulated explicitly. The normal way is to " "use the macro :c:func:`Py_INCREF` to increment an object's reference count " @@ -280,7 +309,7 @@ msgid "" "reference count increment is a simple operation." msgstr "" -#: ../Doc/c-api/intro.rst:238 +#: c-api/intro.rst:271 msgid "" "It is not necessary to increment an object's reference count for every " "local variable that contains a pointer to an object. In theory, the " @@ -297,7 +326,7 @@ msgid "" "to hold a reference to every argument for the duration of the call." msgstr "" -#: ../Doc/c-api/intro.rst:252 +#: c-api/intro.rst:285 msgid "" "However, a common pitfall is to extract an object from a list and hold on to " "it for a while without incrementing its reference count. Some other " @@ -308,7 +337,7 @@ msgid "" "from a :c:func:`Py_DECREF`, so almost any operation is potentially dangerous." msgstr "" -#: ../Doc/c-api/intro.rst:260 +#: c-api/intro.rst:293 msgid "" "A safe approach is to always use the generic operations (functions whose " "name begins with ``PyObject_``, ``PyNumber_``, ``PySequence_`` or " @@ -318,11 +347,11 @@ msgid "" "becomes second nature." msgstr "" -#: ../Doc/c-api/intro.rst:270 +#: c-api/intro.rst:303 msgid "Reference Count Details" msgstr "" -#: ../Doc/c-api/intro.rst:272 +#: c-api/intro.rst:305 msgid "" "The reference count behavior of functions in the Python/C API is best " "explained in terms of *ownership of references*. Ownership pertains to " @@ -339,7 +368,7 @@ msgid "" "reference." msgstr "" -#: ../Doc/c-api/intro.rst:285 +#: c-api/intro.rst:318 msgid "" "Conversely, when a calling function passes in a reference to an object, " "there are two possibilities: the function *steals* a reference to the " @@ -348,7 +377,7 @@ msgid "" "reference, and you are not responsible for it any longer." msgstr "" -#: ../Doc/c-api/intro.rst:295 +#: c-api/intro.rst:328 msgid "" "Few functions steal references; the two notable exceptions are :c:func:" "`PyList_SetItem` and :c:func:`PyTuple_SetItem`, which steal a reference to " @@ -360,7 +389,7 @@ msgid "" "below)::" msgstr "" -#: ../Doc/c-api/intro.rst:310 +#: c-api/intro.rst:343 msgid "" "Here, :c:func:`PyLong_FromLong` returns a new reference which is immediately " "stolen by :c:func:`PyTuple_SetItem`. When you want to keep using an object " @@ -368,7 +397,7 @@ msgid "" "another reference before calling the reference-stealing function." msgstr "" -#: ../Doc/c-api/intro.rst:315 +#: c-api/intro.rst:348 msgid "" "Incidentally, :c:func:`PyTuple_SetItem` is the *only* way to set tuple " "items; :c:func:`PySequence_SetItem` and :c:func:`PyObject_SetItem` refuse to " @@ -376,13 +405,13 @@ msgid "" "func:`PyTuple_SetItem` for tuples that you are creating yourself." msgstr "" -#: ../Doc/c-api/intro.rst:320 +#: c-api/intro.rst:353 msgid "" "Equivalent code for populating a list can be written using :c:func:" "`PyList_New` and :c:func:`PyList_SetItem`." msgstr "" -#: ../Doc/c-api/intro.rst:323 +#: c-api/intro.rst:356 msgid "" "However, in practice, you will rarely use these ways of creating and " "populating a tuple or list. There's a generic function, :c:func:" @@ -391,7 +420,7 @@ msgid "" "be replaced by the following (which also takes care of the error checking)::" msgstr "" -#: ../Doc/c-api/intro.rst:334 +#: c-api/intro.rst:367 msgid "" "It is much more common to use :c:func:`PyObject_SetItem` and friends with " "items whose references you are only borrowing, like arguments that were " @@ -402,7 +431,7 @@ msgid "" "sequence) to a given item::" msgstr "" -#: ../Doc/c-api/intro.rst:364 +#: c-api/intro.rst:397 msgid "" "The situation is slightly different for function return values. While " "passing a reference to most functions does not change your ownership " @@ -415,7 +444,7 @@ msgid "" "becomes the owner of the reference)." msgstr "" -#: ../Doc/c-api/intro.rst:373 +#: c-api/intro.rst:406 msgid "" "It is important to realize that whether you own a reference returned by a " "function depends on which function you call only --- *the plumage* (the type " @@ -426,33 +455,33 @@ msgid "" "the same arguments), you do own a reference to the returned object." msgstr "" -#: ../Doc/c-api/intro.rst:385 +#: c-api/intro.rst:418 msgid "" "Here is an example of how you could write a function that computes the sum " "of the items in a list of integers; once using :c:func:`PyList_GetItem`, " "and once using :c:func:`PySequence_GetItem`. ::" msgstr "" -#: ../Doc/c-api/intro.rst:449 +#: c-api/intro.rst:482 msgid "Types" msgstr "" -#: ../Doc/c-api/intro.rst:451 +#: c-api/intro.rst:484 msgid "" "There are few other data types that play a significant role in the Python/C " "API; most are simple C types such as :c:type:`int`, :c:type:`long`, :c:type:" -"`double` and :c:type:`char\\*`. A few structure types are used to describe " +"`double` and :c:type:`char*`. A few structure types are used to describe " "static tables used to list the functions exported by a module or the data " "attributes of a new object type, and another is used to describe the value " "of a complex number. These will be discussed together with the functions " "that use them." msgstr "" -#: ../Doc/c-api/intro.rst:463 +#: c-api/intro.rst:496 msgid "Exceptions" msgstr "Exceptions" -#: ../Doc/c-api/intro.rst:465 +#: c-api/intro.rst:498 msgid "" "The Python programmer only needs to deal with exceptions if specific error " "handling is required; unhandled exceptions are automatically propagated to " @@ -461,7 +490,7 @@ msgid "" "stack traceback." msgstr "" -#: ../Doc/c-api/intro.rst:473 +#: c-api/intro.rst:506 msgid "" "For C programmers, however, error checking always has to be explicit. All " "functions in the Python/C API can raise exceptions, unless an explicit claim " @@ -476,7 +505,7 @@ msgid "" "explicitly documented." msgstr "" -#: ../Doc/c-api/intro.rst:488 +#: c-api/intro.rst:521 msgid "" "Exception state is maintained in per-thread storage (this is equivalent to " "using global storage in an unthreaded application). A thread can be in one " @@ -489,7 +518,7 @@ msgid "" "clears the exception state." msgstr "" -#: ../Doc/c-api/intro.rst:498 +#: c-api/intro.rst:531 msgid "" "The full exception state consists of three objects (all of which can be " "``NULL``): the exception type, the corresponding exception value, and the " @@ -502,7 +531,7 @@ msgid "" "``sys.exc_info()`` and friends." msgstr "" -#: ../Doc/c-api/intro.rst:510 +#: c-api/intro.rst:543 msgid "" "Note that starting with Python 1.5, the preferred, thread-safe way to access " "the exception state from Python code is to call the function :func:`sys." @@ -516,7 +545,7 @@ msgid "" "referenced by the stack frames in the traceback." msgstr "" -#: ../Doc/c-api/intro.rst:521 +#: c-api/intro.rst:554 msgid "" "As a general principle, a function that calls another function to perform " "some task should check whether the called function raised an exception, and " @@ -527,7 +556,7 @@ msgid "" "of the error." msgstr "" -#: ../Doc/c-api/intro.rst:530 +#: c-api/intro.rst:563 msgid "" "A simple example of detecting exceptions and passing them on is shown in " "the :c:func:`sum_sequence` example above. It so happens that this example " @@ -536,11 +565,11 @@ msgid "" "why you like Python, we show the equivalent Python code::" msgstr "" -#: ../Doc/c-api/intro.rst:545 +#: c-api/intro.rst:578 msgid "Here is the corresponding C code, in all its glory::" msgstr "" -#: ../Doc/c-api/intro.rst:597 +#: c-api/intro.rst:630 msgid "" "This example represents an endorsed use of the ``goto`` statement in C! It " "illustrates the use of :c:func:`PyErr_ExceptionMatches` and :c:func:" @@ -553,11 +582,11 @@ msgid "" "success after the final call made is successful." msgstr "" -#: ../Doc/c-api/intro.rst:611 +#: c-api/intro.rst:644 msgid "Embedding Python" msgstr "Embarquer Python" -#: ../Doc/c-api/intro.rst:613 +#: c-api/intro.rst:646 msgid "" "The one important task that only embedders (as opposed to extension writers) " "of the Python interpreter have to worry about is the initialization, and " @@ -565,7 +594,7 @@ msgid "" "the interpreter can only be used after the interpreter has been initialized." msgstr "" -#: ../Doc/c-api/intro.rst:626 +#: c-api/intro.rst:659 msgid "" "The basic initialization function is :c:func:`Py_Initialize`. This " "initializes the table of loaded modules, and creates the fundamental " @@ -573,7 +602,7 @@ msgid "" "initializes the module search path (``sys.path``)." msgstr "" -#: ../Doc/c-api/intro.rst:633 +#: c-api/intro.rst:666 msgid "" ":c:func:`Py_Initialize` does not set the \"script argument list\" (``sys." "argv``). If this variable is needed by Python code that will be executed " @@ -581,7 +610,7 @@ msgid "" "argv, updatepath)`` after the call to :c:func:`Py_Initialize`." msgstr "" -#: ../Doc/c-api/intro.rst:638 +#: c-api/intro.rst:671 msgid "" "On most systems (in particular, on Unix and Windows, although the details " "are slightly different), :c:func:`Py_Initialize` calculates the module " @@ -593,7 +622,7 @@ msgid "" "on the shell command search path (the environment variable :envvar:`PATH`)." msgstr "" -#: ../Doc/c-api/intro.rst:647 +#: c-api/intro.rst:680 msgid "" "For instance, if the Python executable is found in :file:`/usr/local/bin/" "python`, it will assume that the libraries are in :file:`/usr/local/lib/" @@ -604,7 +633,7 @@ msgid "" "in front of the standard path by setting :envvar:`PYTHONPATH`." msgstr "" -#: ../Doc/c-api/intro.rst:662 +#: c-api/intro.rst:695 msgid "" "The embedding application can steer the search by calling " "``Py_SetProgramName(file)`` *before* calling :c:func:`Py_Initialize`. Note " @@ -615,7 +644,7 @@ msgid "" "func:`Py_GetProgramFullPath` (all defined in :file:`Modules/getpath.c`)." msgstr "" -#: ../Doc/c-api/intro.rst:672 +#: c-api/intro.rst:705 msgid "" "Sometimes, it is desirable to \"uninitialize\" Python. For instance, the " "application may want to start over (make another call to :c:func:" @@ -629,18 +658,18 @@ msgid "" "released." msgstr "" -#: ../Doc/c-api/intro.rst:686 +#: c-api/intro.rst:719 msgid "Debugging Builds" msgstr "" -#: ../Doc/c-api/intro.rst:688 +#: c-api/intro.rst:721 msgid "" "Python can be built with several macros to enable extra checks of the " "interpreter and extension modules. These checks tend to add a large amount " "of overhead to the runtime so they are not enabled by default." msgstr "" -#: ../Doc/c-api/intro.rst:692 +#: c-api/intro.rst:725 msgid "" "A full list of the various types of debugging builds is in the file :file:" "`Misc/SpecialBuilds.txt` in the Python source distribution. Builds are " @@ -650,7 +679,7 @@ msgid "" "section." msgstr "" -#: ../Doc/c-api/intro.rst:698 +#: c-api/intro.rst:731 msgid "" "Compiling the interpreter with the :c:macro:`Py_DEBUG` macro defined " "produces what is generally meant by \"a debug build\" of Python. :c:macro:" @@ -660,61 +689,61 @@ msgid "" "enabled in the Unix build, compiler optimization is disabled." msgstr "" -#: ../Doc/c-api/intro.rst:705 +#: c-api/intro.rst:738 msgid "" "In addition to the reference count debugging described below, the following " "extra checks are performed:" msgstr "" -#: ../Doc/c-api/intro.rst:708 +#: c-api/intro.rst:741 msgid "Extra checks are added to the object allocator." msgstr "" -#: ../Doc/c-api/intro.rst:710 +#: c-api/intro.rst:743 msgid "Extra checks are added to the parser and compiler." msgstr "" -#: ../Doc/c-api/intro.rst:712 +#: c-api/intro.rst:745 msgid "" "Downcasts from wide types to narrow types are checked for loss of " "information." msgstr "" -#: ../Doc/c-api/intro.rst:714 +#: c-api/intro.rst:747 msgid "" "A number of assertions are added to the dictionary and set implementations. " "In addition, the set object acquires a :meth:`test_c_api` method." msgstr "" -#: ../Doc/c-api/intro.rst:717 +#: c-api/intro.rst:750 msgid "Sanity checks of the input arguments are added to frame creation." msgstr "" -#: ../Doc/c-api/intro.rst:719 +#: c-api/intro.rst:752 msgid "" "The storage for ints is initialized with a known invalid pattern to catch " "reference to uninitialized digits." msgstr "" -#: ../Doc/c-api/intro.rst:722 +#: c-api/intro.rst:755 msgid "" "Low-level tracing and extra exception checking are added to the runtime " "virtual machine." msgstr "" -#: ../Doc/c-api/intro.rst:725 +#: c-api/intro.rst:758 msgid "Extra checks are added to the memory arena implementation." msgstr "" -#: ../Doc/c-api/intro.rst:727 +#: c-api/intro.rst:760 msgid "Extra debugging is added to the thread module." msgstr "" -#: ../Doc/c-api/intro.rst:729 +#: c-api/intro.rst:762 msgid "There may be additional checks not mentioned here." msgstr "" -#: ../Doc/c-api/intro.rst:731 +#: c-api/intro.rst:764 msgid "" "Defining :c:macro:`Py_TRACE_REFS` enables reference tracing. When defined, " "a circular doubly linked list of active objects is maintained by adding two " @@ -724,7 +753,7 @@ msgid "" "macro:`Py_DEBUG`." msgstr "" -#: ../Doc/c-api/intro.rst:737 +#: c-api/intro.rst:770 msgid "" "Please refer to :file:`Misc/SpecialBuilds.txt` in the Python source " "distribution for more detailed information." diff --git a/c-api/iter.po b/c-api/iter.po index 8d039f8cc9..1b82e55aa8 100644 --- a/c-api/iter.po +++ b/c-api/iter.po @@ -46,4 +46,4 @@ msgid "" "something like this::" msgstr "" "Pour écrire une boucle itérant un itérateur, le code C devrait ressembler " -"à : ::" +"à ::" diff --git a/c-api/list.po b/c-api/list.po index e00a8c814e..e8343cf6b6 100644 --- a/c-api/list.po +++ b/c-api/list.po @@ -19,14 +19,20 @@ msgid "List Objects" msgstr "" #: ../Doc/c-api/list.rst:13 +#, fuzzy msgid "This subtype of :c:type:`PyObject` represents a Python list object." msgstr "" +"Ce sous-type de :c:type:`PyObject` représente un objet ``bytearray`` Python." #: ../Doc/c-api/list.rst:18 +#, fuzzy msgid "" "This instance of :c:type:`PyTypeObject` represents the Python list type. " "This is the same object as :class:`list` in the Python layer." msgstr "" +"Cette instance de l'objet :c:type:`PyTypeObject` représente le type nombre à " +"virgule flottante en Python. C'est le même objet que la classe :class:" +"`float` de la couche Python." #: ../Doc/c-api/list.rst:24 msgid "" diff --git a/c-api/long.po b/c-api/long.po index 48492bd320..22f86ec134 100644 --- a/c-api/long.po +++ b/c-api/long.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-15 18:54+0100\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,50 +14,62 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/c-api/long.rst:6 +#: c-api/long.rst:6 msgid "Integer Objects" msgstr "Objets *Integer*" -#: ../Doc/c-api/long.rst:11 +#: c-api/long.rst:11 msgid "" "All integers are implemented as \"long\" integer objects of arbitrary size." msgstr "" -#: ../Doc/c-api/long.rst:13 +#: c-api/long.rst:13 msgid "" "On error, most ``PyLong_As*`` APIs return ``(return type)-1`` which cannot " "be distinguished from a number. Use :c:func:`PyErr_Occurred` to " "disambiguate." msgstr "" -#: ../Doc/c-api/long.rst:18 +#: c-api/long.rst:18 +#, fuzzy msgid "This subtype of :c:type:`PyObject` represents a Python integer object." msgstr "" +"Ce sous-type de :c:type:`PyObject` représente un objet ``bytearray`` Python." -#: ../Doc/c-api/long.rst:23 +#: c-api/long.rst:23 +#, fuzzy msgid "" "This instance of :c:type:`PyTypeObject` represents the Python integer type. " "This is the same object as :class:`int` in the Python layer." msgstr "" +"Cette instance de l'objet :c:type:`PyTypeObject` représente le type nombre à " +"virgule flottante en Python. C'est le même objet que la classe :class:" +"`float` de la couche Python." -#: ../Doc/c-api/long.rst:29 +#: c-api/long.rst:29 +#, fuzzy msgid "" "Return true if its argument is a :c:type:`PyLongObject` or a subtype of :c:" "type:`PyLongObject`." msgstr "" +"Renvoie vrai si l'argument est de type :c:type:`PyFloatObject` ou un sous-" +"type de :c:type:`PyFloatObject`." -#: ../Doc/c-api/long.rst:35 +#: c-api/long.rst:35 +#, fuzzy msgid "" "Return true if its argument is a :c:type:`PyLongObject`, but not a subtype " "of :c:type:`PyLongObject`." msgstr "" +"Renvoie vrai si l'argument est de type :c:type:`PyFloatObject`, mais pas un " +"sous-type de :c:type:`PyFloatObject`." -#: ../Doc/c-api/long.rst:41 +#: c-api/long.rst:41 msgid "" "Return a new :c:type:`PyLongObject` object from *v*, or ``NULL`` on failure." msgstr "" -#: ../Doc/c-api/long.rst:43 +#: c-api/long.rst:43 msgid "" "The current implementation keeps an array of integer objects for all " "integers between ``-5`` and ``256``, when you create an int in that range " @@ -66,43 +78,43 @@ msgid "" "in this case is undefined. :-)" msgstr "" -#: ../Doc/c-api/long.rst:52 +#: c-api/long.rst:52 msgid "" "Return a new :c:type:`PyLongObject` object from a C :c:type:`unsigned long`, " "or ``NULL`` on failure." msgstr "" -#: ../Doc/c-api/long.rst:58 +#: c-api/long.rst:58 msgid "" "Return a new :c:type:`PyLongObject` object from a C :c:type:`Py_ssize_t`, or " "``NULL`` on failure." msgstr "" -#: ../Doc/c-api/long.rst:64 +#: c-api/long.rst:64 msgid "" "Return a new :c:type:`PyLongObject` object from a C :c:type:`size_t`, or " "``NULL`` on failure." msgstr "" -#: ../Doc/c-api/long.rst:70 +#: c-api/long.rst:70 msgid "" "Return a new :c:type:`PyLongObject` object from a C :c:type:`long long`, or " "``NULL`` on failure." msgstr "" -#: ../Doc/c-api/long.rst:76 +#: c-api/long.rst:76 msgid "" "Return a new :c:type:`PyLongObject` object from a C :c:type:`unsigned long " "long`, or ``NULL`` on failure." msgstr "" -#: ../Doc/c-api/long.rst:82 +#: c-api/long.rst:82 msgid "" "Return a new :c:type:`PyLongObject` object from the integer part of *v*, or " "``NULL`` on failure." msgstr "" -#: ../Doc/c-api/long.rst:88 +#: c-api/long.rst:88 msgid "" "Return a new :c:type:`PyLongObject` based on the string value in *str*, " "which is interpreted according to the radix in *base*. If *pend* is non-" @@ -115,66 +127,54 @@ msgid "" "are no digits, :exc:`ValueError` will be raised." msgstr "" -#: ../Doc/c-api/long.rst:101 -msgid "" -"Convert a sequence of Unicode digits to a Python integer value. The Unicode " -"string is first encoded to a byte string using :c:func:" -"`PyUnicode_EncodeDecimal` and then converted using :c:func:" -"`PyLong_FromString`." +#: c-api/long.rst:101 +msgid "Convert a sequence of Unicode digits to a Python integer value." msgstr "" -#: ../Doc/c-api/long.rst:107 +#: c-api/long.rst:105 msgid "" "Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" "func:`PyLong_FromUnicodeObject`." msgstr "" -#: ../Doc/c-api/long.rst:112 +#: c-api/long.rst:110 msgid "" "Convert a sequence of Unicode digits in the string *u* to a Python integer " -"value. The Unicode string is first encoded to a byte string using :c:func:" -"`PyUnicode_EncodeDecimal` and then converted using :c:func:" -"`PyLong_FromString`." +"value." msgstr "" -#: ../Doc/c-api/long.rst:122 +#: c-api/long.rst:118 msgid "" "Create a Python integer from the pointer *p*. The pointer value can be " "retrieved from the resulting value using :c:func:`PyLong_AsVoidPtr`." msgstr "" -#: ../Doc/c-api/long.rst:133 ../Doc/c-api/long.rst:152 +#: c-api/long.rst:148 msgid "" "Return a C :c:type:`long` representation of *obj*. If *obj* is not an " "instance of :c:type:`PyLongObject`, first call its :meth:`__index__` or :" "meth:`__int__` method (if present) to convert it to a :c:type:`PyLongObject`." msgstr "" -#: ../Doc/c-api/long.rst:138 ../Doc/c-api/long.rst:181 +#: c-api/long.rst:134 msgid "" "Raise :exc:`OverflowError` if the value of *obj* is out of range for a :c:" "type:`long`." msgstr "" -#: ../Doc/c-api/long.rst:141 ../Doc/c-api/long.rst:162 -#: ../Doc/c-api/long.rst:184 ../Doc/c-api/long.rst:205 -#: ../Doc/c-api/long.rst:228 +#: c-api/long.rst:158 c-api/long.rst:201 c-api/long.rst:224 msgid "Returns ``-1`` on error. Use :c:func:`PyErr_Occurred` to disambiguate." msgstr "" -#: ../Doc/c-api/long.rst:143 ../Doc/c-api/long.rst:164 -#: ../Doc/c-api/long.rst:186 ../Doc/c-api/long.rst:209 -#: ../Doc/c-api/long.rst:294 ../Doc/c-api/long.rst:314 +#: c-api/long.rst:160 c-api/long.rst:205 c-api/long.rst:310 msgid "Use :meth:`__index__` if available." msgstr "" -#: ../Doc/c-api/long.rst:146 ../Doc/c-api/long.rst:167 -#: ../Doc/c-api/long.rst:189 ../Doc/c-api/long.rst:212 -#: ../Doc/c-api/long.rst:297 ../Doc/c-api/long.rst:317 +#: c-api/long.rst:163 c-api/long.rst:208 c-api/long.rst:313 msgid "Using :meth:`__int__` is deprecated." msgstr "" -#: ../Doc/c-api/long.rst:157 +#: c-api/long.rst:153 msgid "" "If the value of *obj* is greater than :const:`LONG_MAX` or less than :const:" "`LONG_MIN`, set *\\*overflow* to ``1`` or ``-1``, respectively, and return " @@ -182,14 +182,20 @@ msgid "" "occurs set *\\*overflow* to ``0`` and return ``-1`` as usual." msgstr "" -#: ../Doc/c-api/long.rst:176 ../Doc/c-api/long.rst:195 +#: c-api/long.rst:191 msgid "" "Return a C :c:type:`long long` representation of *obj*. If *obj* is not an " "instance of :c:type:`PyLongObject`, first call its :meth:`__index__` or :" "meth:`__int__` method (if present) to convert it to a :c:type:`PyLongObject`." msgstr "" -#: ../Doc/c-api/long.rst:200 +#: c-api/long.rst:177 +msgid "" +"Raise :exc:`OverflowError` if the value of *obj* is out of range for a :c:" +"type:`long long`." +msgstr "" + +#: c-api/long.rst:196 msgid "" "If the value of *obj* is greater than :const:`PY_LLONG_MAX` or less than :" "const:`PY_LLONG_MIN`, set *\\*overflow* to ``1`` or ``-1``, respectively, " @@ -197,97 +203,97 @@ msgid "" "exception occurs set *\\*overflow* to ``0`` and return ``-1`` as usual." msgstr "" -#: ../Doc/c-api/long.rst:222 +#: c-api/long.rst:218 msgid "" "Return a C :c:type:`Py_ssize_t` representation of *pylong*. *pylong* must " "be an instance of :c:type:`PyLongObject`." msgstr "" -#: ../Doc/c-api/long.rst:225 +#: c-api/long.rst:221 msgid "" "Raise :exc:`OverflowError` if the value of *pylong* is out of range for a :c:" "type:`Py_ssize_t`." msgstr "" -#: ../Doc/c-api/long.rst:237 +#: c-api/long.rst:233 msgid "" "Return a C :c:type:`unsigned long` representation of *pylong*. *pylong* " "must be an instance of :c:type:`PyLongObject`." msgstr "" -#: ../Doc/c-api/long.rst:240 +#: c-api/long.rst:236 msgid "" "Raise :exc:`OverflowError` if the value of *pylong* is out of range for a :c:" "type:`unsigned long`." msgstr "" -#: ../Doc/c-api/long.rst:243 +#: c-api/long.rst:239 msgid "" "Returns ``(unsigned long)-1`` on error. Use :c:func:`PyErr_Occurred` to " "disambiguate." msgstr "" -#: ../Doc/c-api/long.rst:253 +#: c-api/long.rst:249 msgid "" "Return a C :c:type:`size_t` representation of *pylong*. *pylong* must be an " "instance of :c:type:`PyLongObject`." msgstr "" -#: ../Doc/c-api/long.rst:256 +#: c-api/long.rst:252 msgid "" "Raise :exc:`OverflowError` if the value of *pylong* is out of range for a :c:" "type:`size_t`." msgstr "" -#: ../Doc/c-api/long.rst:259 +#: c-api/long.rst:255 msgid "" "Returns ``(size_t)-1`` on error. Use :c:func:`PyErr_Occurred` to " "disambiguate." msgstr "" -#: ../Doc/c-api/long.rst:268 +#: c-api/long.rst:264 msgid "" "Return a C :c:type:`unsigned long long` representation of *pylong*. " "*pylong* must be an instance of :c:type:`PyLongObject`." msgstr "" -#: ../Doc/c-api/long.rst:271 +#: c-api/long.rst:267 msgid "" "Raise :exc:`OverflowError` if the value of *pylong* is out of range for an :" "c:type:`unsigned long long`." msgstr "" -#: ../Doc/c-api/long.rst:274 +#: c-api/long.rst:270 msgid "" "Returns ``(unsigned long long)-1`` on error. Use :c:func:`PyErr_Occurred` to " "disambiguate." msgstr "" -#: ../Doc/c-api/long.rst:277 +#: c-api/long.rst:273 msgid "" "A negative *pylong* now raises :exc:`OverflowError`, not :exc:`TypeError`." msgstr "" -#: ../Doc/c-api/long.rst:283 +#: c-api/long.rst:279 msgid "" "Return a C :c:type:`unsigned long` representation of *obj*. If *obj* is not " "an instance of :c:type:`PyLongObject`, first call its :meth:`__index__` or :" "meth:`__int__` method (if present) to convert it to a :c:type:`PyLongObject`." msgstr "" -#: ../Doc/c-api/long.rst:288 +#: c-api/long.rst:284 msgid "" "If the value of *obj* is out of range for an :c:type:`unsigned long`, return " "the reduction of that value modulo ``ULONG_MAX + 1``." msgstr "" -#: ../Doc/c-api/long.rst:291 +#: c-api/long.rst:287 msgid "" "Returns ``(unsigned long)-1`` on error. Use :c:func:`PyErr_Occurred` to " "disambiguate." msgstr "" -#: ../Doc/c-api/long.rst:303 +#: c-api/long.rst:299 msgid "" "Return a C :c:type:`unsigned long long` representation of *obj*. If *obj* " "is not an instance of :c:type:`PyLongObject`, first call its :meth:" @@ -295,36 +301,36 @@ msgid "" "type:`PyLongObject`." msgstr "" -#: ../Doc/c-api/long.rst:308 +#: c-api/long.rst:304 msgid "" "If the value of *obj* is out of range for an :c:type:`unsigned long long`, " "return the reduction of that value modulo ``PY_ULLONG_MAX + 1``." msgstr "" -#: ../Doc/c-api/long.rst:311 +#: c-api/long.rst:307 msgid "" "Returns ``(unsigned long long)-1`` on error. Use :c:func:`PyErr_Occurred` " "to disambiguate." msgstr "" -#: ../Doc/c-api/long.rst:323 +#: c-api/long.rst:319 msgid "" "Return a C :c:type:`double` representation of *pylong*. *pylong* must be an " "instance of :c:type:`PyLongObject`." msgstr "" -#: ../Doc/c-api/long.rst:326 +#: c-api/long.rst:322 msgid "" "Raise :exc:`OverflowError` if the value of *pylong* is out of range for a :c:" "type:`double`." msgstr "" -#: ../Doc/c-api/long.rst:329 +#: c-api/long.rst:325 msgid "" "Returns ``-1.0`` on error. Use :c:func:`PyErr_Occurred` to disambiguate." msgstr "" -#: ../Doc/c-api/long.rst:334 +#: c-api/long.rst:330 msgid "" "Convert a Python integer *pylong* to a C :c:type:`void` pointer. If *pylong* " "cannot be converted, an :exc:`OverflowError` will be raised. This is only " @@ -332,7 +338,7 @@ msgid "" "c:func:`PyLong_FromVoidPtr`." msgstr "" -#: ../Doc/c-api/long.rst:339 +#: c-api/long.rst:335 msgid "" "Returns ``NULL`` on error. Use :c:func:`PyErr_Occurred` to disambiguate." msgstr "" diff --git a/c-api/mapping.po b/c-api/mapping.po index 7b6b9c260a..64612d6a49 100644 --- a/c-api/mapping.po +++ b/c-api/mapping.po @@ -5,25 +5,32 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-12-05 23:16+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2020-02-04 10:00+0100\n" +"PO-Revision-Date: 2019-11-17 21:20+0100\n" +"Last-Translator: Aveheuzed \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.4\n" #: ../Doc/c-api/mapping.rst:6 msgid "Mapping Protocol" -msgstr "" +msgstr "Protocole de correspondance" #: ../Doc/c-api/mapping.rst:8 msgid "" "See also :c:func:`PyObject_GetItem`, :c:func:`PyObject_SetItem` and :c:func:" "`PyObject_DelItem`." msgstr "" +"Voir aussi :c:func:`PyObject_GetItem`, :c:func:`PyObject_SetItem` et :c:func:" +"`PyObject_DelItem`." +# - " in general case it is impossible to determine what the type of keys it +# supports." +# → pas correct en VO ! +# - "This function always succeeds." équivaut-il à "jamais d'erreur" ? #: ../Doc/c-api/mapping.rst:14 msgid "" "Return ``1`` if the object provides mapping protocol or supports slicing, " @@ -31,12 +38,19 @@ msgid "" "meth:`__getitem__` method since in general case it is impossible to " "determine what type of keys it supports. This function always succeeds." msgstr "" +"Renvoie ``1`` si l'objet prend en charge le protocole de correspondance ou " +"le découpage en tranches et ``0`` sinon. Notez qu'elle renvoie ``1`` pour " +"les classes Python avec une méthode :meth:`__getitem__` puisque, dans le cas " +"général, il est impossible de déterminer quel type de clef est pris en " +"charge. Cette fonction ne provoque jamais d'erreur." #: ../Doc/c-api/mapping.rst:25 msgid "" "Returns the number of keys in object *o* on success, and ``-1`` on failure. " "This is equivalent to the Python expression ``len(o)``." msgstr "" +"Renvoie le nombre de clefs dans l'objet *o* et ``-1`` en cas d'échec. C'est " +"l'équivalent de l'expression Python ``len(o)``." #: ../Doc/c-api/mapping.rst:31 msgid "" @@ -44,67 +58,96 @@ msgid "" "failure. This is the equivalent of the Python expression ``o[key]``. See " "also :c:func:`PyObject_GetItem`." msgstr "" +"Renvoie les éléments de *o* qui correspondent à la chaîne *key* ou *NULL* en " +"cas d'échec. C'est l'équivalent de l'expression Python ``o[key]``. Voir " +"aussi :c:func:`PyObject_GetItem`." #: ../Doc/c-api/mapping.rst:38 msgid "" "Map the string *key* to the value *v* in object *o*. Returns ``-1`` on " "failure. This is the equivalent of the Python statement ``o[key] = v``. See " -"also :c:func:`PyObject_SetItem`." +"also :c:func:`PyObject_SetItem`. This function *does not* steal a reference " +"to *v*." msgstr "" +"Fait correspondre la chaîne *key* à la valeur *v* dans l'objet *o*. Renvoie " +"``-1`` en cas d'échec. C'est l'équivalent de la commande Python ``o[key] = " +"v``. Voir aussi :c:func:`PyObject_SetItem`. Cette fonction *ne vole pas* de " +"référence à *v*." -#: ../Doc/c-api/mapping.rst:45 +#: ../Doc/c-api/mapping.rst:46 msgid "" "Remove the mapping for the object *key* from the object *o*. Return ``-1`` " "on failure. This is equivalent to the Python statement ``del o[key]``. This " "is an alias of :c:func:`PyObject_DelItem`." msgstr "" +"Supprime la correspondance associée à l'objet *key* dans l'objet *o*. " +"Renvoie ``-1`` en cas d'échec. C'est l'équivalent de la commande Python " +"``del o[key]``. C'est un alias pour :c:func:`PyObject_DelItem`." -#: ../Doc/c-api/mapping.rst:52 +#: ../Doc/c-api/mapping.rst:53 msgid "" "Remove the mapping for the string *key* from the object *o*. Return ``-1`` " "on failure. This is equivalent to the Python statement ``del o[key]``." msgstr "" +"Supprime la correspondance associée à la chaîne *key* dans l'objet *o*. " +"Renvoie ``-1`` en cas d'échec. C'est l'équivalent de la commande Python " +"``del o[key]``." -#: ../Doc/c-api/mapping.rst:58 ../Doc/c-api/mapping.rst:69 +#: ../Doc/c-api/mapping.rst:59 ../Doc/c-api/mapping.rst:70 msgid "" "Return ``1`` if the mapping object has the key *key* and ``0`` otherwise. " "This is equivalent to the Python expression ``key in o``. This function " "always succeeds." msgstr "" +"Renvoie ``1`` si l'objet de correspondance possède une clef *key* et ``0`` " +"sinon. C'est l'équivalent de l'expression Python ``key in o``. Cette " +"fonction ne provoque jamais d'erreur." -#: ../Doc/c-api/mapping.rst:62 +#: ../Doc/c-api/mapping.rst:63 msgid "" "Note that exceptions which occur while calling the :meth:`__getitem__` " "method will get suppressed. To get error reporting use :c:func:" "`PyObject_GetItem()` instead." msgstr "" +"Notez que les exceptions qui surviennent pendant l'appel de la méthode :meth:" +"`__getitem__` seront supprimées. Pour obtenir le rapport d'erreur, utilisez " +"plutôt :c:func:`PyObject_GetItem()`." -#: ../Doc/c-api/mapping.rst:73 +#: ../Doc/c-api/mapping.rst:74 msgid "" "Note that exceptions which occur while calling the :meth:`__getitem__` " "method and creating a temporary string object will get suppressed. To get " "error reporting use :c:func:`PyMapping_GetItemString()` instead." msgstr "" +"Notez que les exceptions qui surviennent en créant une chaîne de caractères " +"temporaire pendant l'appel de la méthode :meth:`__getitem__` seront " +"supprimées. Pour obtenir le rapport d'erreur, utilisez plutôt :c:func:" +"`PyMapping_GetItemString()`." -#: ../Doc/c-api/mapping.rst:80 +#: ../Doc/c-api/mapping.rst:81 msgid "" "On success, return a list of the keys in object *o*. On failure, return " "``NULL``." msgstr "" +"Renvoie la liste des clefs dans l'objet *o*. En cas d'échec, renvoie *NULL*." -#: ../Doc/c-api/mapping.rst:83 ../Doc/c-api/mapping.rst:92 -#: ../Doc/c-api/mapping.rst:101 +#: ../Doc/c-api/mapping.rst:84 ../Doc/c-api/mapping.rst:93 +#: ../Doc/c-api/mapping.rst:102 msgid "Previously, the function returned a list or a tuple." -msgstr "" +msgstr "Auparavant, la fonction renvoyait une liste ou un n-uplet." -#: ../Doc/c-api/mapping.rst:89 +#: ../Doc/c-api/mapping.rst:90 msgid "" "On success, return a list of the values in object *o*. On failure, return " "``NULL``." msgstr "" +"Renvoie la liste des valeurs dans l'objet *o*. En cas d'échec, renvoie " +"*NULL*." -#: ../Doc/c-api/mapping.rst:98 +#: ../Doc/c-api/mapping.rst:99 msgid "" "On success, return a list of the items in object *o*, where each item is a " "tuple containing a key-value pair. On failure, return ``NULL``." msgstr "" +"Renvoie la liste des éléments dans l'objet *o*, où chaque élément est un n-" +"uplet contenant une paire clef-valeur. En cas d'échec, renvoie *NULL*." diff --git a/c-api/marshal.po b/c-api/marshal.po index dd9d9b6162..f348065de4 100644 --- a/c-api/marshal.po +++ b/c-api/marshal.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-15 18:54+0100\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,11 +14,11 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/c-api/marshal.rst:6 +#: c-api/marshal.rst:6 msgid "Data marshalling support" msgstr "" -#: ../Doc/c-api/marshal.rst:8 +#: c-api/marshal.rst:8 msgid "" "These routines allow C code to work with serialized objects using the same " "data format as the :mod:`marshal` module. There are functions to write data " @@ -27,11 +27,11 @@ msgid "" "binary mode." msgstr "" -#: ../Doc/c-api/marshal.rst:14 +#: c-api/marshal.rst:14 msgid "Numeric values are stored with the least significant byte first." msgstr "" -#: ../Doc/c-api/marshal.rst:16 +#: c-api/marshal.rst:16 msgid "" "The module supports two versions of the data format: version 0 is the " "historical version, version 1 shares interned strings in the file, and upon " @@ -39,66 +39,65 @@ msgid "" "``Py_MARSHAL_VERSION`` indicates the current file format (currently 2)." msgstr "" -#: ../Doc/c-api/marshal.rst:24 +#: c-api/marshal.rst:24 msgid "" "Marshal a :c:type:`long` integer, *value*, to *file*. This will only write " "the least-significant 32 bits of *value*; regardless of the size of the " "native :c:type:`long` type. *version* indicates the file format." msgstr "" -#: ../Doc/c-api/marshal.rst:31 +#: c-api/marshal.rst:31 msgid "" "Marshal a Python object, *value*, to *file*. *version* indicates the file " "format." msgstr "" -#: ../Doc/c-api/marshal.rst:37 +#: c-api/marshal.rst:37 msgid "" "Return a bytes object containing the marshalled representation of *value*. " "*version* indicates the file format." msgstr "" -#: ../Doc/c-api/marshal.rst:41 +#: c-api/marshal.rst:41 msgid "The following functions allow marshalled values to be read back in." msgstr "" -#: ../Doc/c-api/marshal.rst:46 +#: c-api/marshal.rst:46 msgid "" -"Return a C :c:type:`long` from the data stream in a :c:type:`FILE\\*` opened " +"Return a C :c:type:`long` from the data stream in a :c:type:`FILE*` opened " "for reading. Only a 32-bit value can be read in using this function, " "regardless of the native size of :c:type:`long`." msgstr "" -#: ../Doc/c-api/marshal.rst:50 ../Doc/c-api/marshal.rst:60 +#: c-api/marshal.rst:60 msgid "" "On error, sets the appropriate exception (:exc:`EOFError`) and returns " "``-1``." msgstr "" -#: ../Doc/c-api/marshal.rst:56 +#: c-api/marshal.rst:56 msgid "" -"Return a C :c:type:`short` from the data stream in a :c:type:`FILE\\*` " -"opened for reading. Only a 16-bit value can be read in using this function, " +"Return a C :c:type:`short` from the data stream in a :c:type:`FILE*` opened " +"for reading. Only a 16-bit value can be read in using this function, " "regardless of the native size of :c:type:`short`." msgstr "" -#: ../Doc/c-api/marshal.rst:66 +#: c-api/marshal.rst:66 msgid "" -"Return a Python object from the data stream in a :c:type:`FILE\\*` opened " -"for reading." +"Return a Python object from the data stream in a :c:type:`FILE*` opened for " +"reading." msgstr "" -#: ../Doc/c-api/marshal.rst:69 ../Doc/c-api/marshal.rst:83 -#: ../Doc/c-api/marshal.rst:92 +#: c-api/marshal.rst:83 c-api/marshal.rst:92 msgid "" "On error, sets the appropriate exception (:exc:`EOFError`, :exc:`ValueError` " "or :exc:`TypeError`) and returns ``NULL``." msgstr "" -#: ../Doc/c-api/marshal.rst:75 +#: c-api/marshal.rst:75 msgid "" -"Return a Python object from the data stream in a :c:type:`FILE\\*` opened " -"for reading. Unlike :c:func:`PyMarshal_ReadObjectFromFile`, this function " +"Return a Python object from the data stream in a :c:type:`FILE*` opened for " +"reading. Unlike :c:func:`PyMarshal_ReadObjectFromFile`, this function " "assumes that no further objects will be read from the file, allowing it to " "aggressively load file data into memory so that the de-serialization can " "operate from data in memory rather than reading a byte at a time from the " @@ -106,7 +105,7 @@ msgid "" "anything else from the file." msgstr "" -#: ../Doc/c-api/marshal.rst:89 +#: c-api/marshal.rst:89 msgid "" "Return a Python object from the data stream in a byte buffer containing " "*len* bytes pointed to by *data*." diff --git a/c-api/memory.po b/c-api/memory.po index 7bb6751ca3..36cbb4a9b4 100644 --- a/c-api/memory.po +++ b/c-api/memory.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-15 18:54+0100\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,15 +14,15 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/c-api/memory.rst:8 +#: c-api/memory.rst:8 msgid "Memory Management" msgstr "" -#: ../Doc/c-api/memory.rst:17 +#: c-api/memory.rst:17 msgid "Overview" msgstr "Aperçu" -#: ../Doc/c-api/memory.rst:19 +#: c-api/memory.rst:19 msgid "" "Memory management in Python involves a private heap containing all Python " "objects and data structures. The management of this private heap is ensured " @@ -31,7 +31,7 @@ msgid "" "aspects, like sharing, segmentation, preallocation or caching." msgstr "" -#: ../Doc/c-api/memory.rst:25 +#: c-api/memory.rst:25 msgid "" "At the lowest level, a raw memory allocator ensures that there is enough " "room in the private heap for storing all Python-related data by interacting " @@ -45,7 +45,7 @@ msgid "" "but ensures that the latter operate within the bounds of the private heap." msgstr "" -#: ../Doc/c-api/memory.rst:36 +#: c-api/memory.rst:36 msgid "" "It is important to understand that the management of the Python heap is " "performed by the interpreter itself and that the user has no control over " @@ -55,7 +55,7 @@ msgid "" "the Python/C API functions listed in this document." msgstr "" -#: ../Doc/c-api/memory.rst:49 +#: c-api/memory.rst:49 msgid "" "To avoid memory corruption, extension writers should never try to operate on " "Python objects with the functions exported by the C library: :c:func:" @@ -67,14 +67,14 @@ msgid "" "in the following example::" msgstr "" -#: ../Doc/c-api/memory.rst:68 +#: c-api/memory.rst:68 msgid "" "In this example, the memory request for the I/O buffer is handled by the C " "library allocator. The Python memory manager is involved only in the " "allocation of the bytes object returned as a result." msgstr "" -#: ../Doc/c-api/memory.rst:72 +#: c-api/memory.rst:72 msgid "" "In most situations, however, it is recommended to allocate memory from the " "Python heap specifically because the latter is under control of the Python " @@ -92,31 +92,31 @@ msgid "" "completely the Python memory manager." msgstr "" -#: ../Doc/c-api/memory.rst:88 +#: c-api/memory.rst:88 msgid "" "The :envvar:`PYTHONMALLOC` environment variable can be used to configure the " "memory allocators used by Python." msgstr "" -#: ../Doc/c-api/memory.rst:91 +#: c-api/memory.rst:91 msgid "" "The :envvar:`PYTHONMALLOCSTATS` environment variable can be used to print " "statistics of the :ref:`pymalloc memory allocator ` every time a " "new pymalloc object arena is created, and on shutdown." msgstr "" -#: ../Doc/c-api/memory.rst:97 +#: c-api/memory.rst:97 msgid "Raw Memory Interface" msgstr "" -#: ../Doc/c-api/memory.rst:99 +#: c-api/memory.rst:99 msgid "" "The following function sets are wrappers to the system allocator. These " "functions are thread-safe, the :term:`GIL ` does " "not need to be held." msgstr "" -#: ../Doc/c-api/memory.rst:103 +#: c-api/memory.rst:103 msgid "" "The :ref:`default raw memory allocator ` uses the " "following functions: :c:func:`malloc`, :c:func:`calloc`, :c:func:`realloc` " @@ -124,63 +124,60 @@ msgid "" "zero bytes." msgstr "" -#: ../Doc/c-api/memory.rst:112 ../Doc/c-api/memory.rst:183 -#: ../Doc/c-api/memory.rst:285 +#: c-api/memory.rst:183 c-api/memory.rst:285 msgid "" -"Allocates *n* bytes and returns a pointer of type :c:type:`void\\*` to the " +"Allocates *n* bytes and returns a pointer of type :c:type:`void*` to the " "allocated memory, or ``NULL`` if the request fails." msgstr "" -#: ../Doc/c-api/memory.rst:115 +#: c-api/memory.rst:115 msgid "" "Requesting zero bytes returns a distinct non-``NULL`` pointer if possible, " "as if ``PyMem_RawMalloc(1)`` had been called instead. The memory will not " "have been initialized in any way." msgstr "" -#: ../Doc/c-api/memory.rst:122 ../Doc/c-api/memory.rst:193 -#: ../Doc/c-api/memory.rst:295 +#: c-api/memory.rst:193 c-api/memory.rst:295 msgid "" "Allocates *nelem* elements each whose size in bytes is *elsize* and returns " -"a pointer of type :c:type:`void\\*` to the allocated memory, or ``NULL`` if " +"a pointer of type :c:type:`void*` to the allocated memory, or ``NULL`` if " "the request fails. The memory is initialized to zeros." msgstr "" -#: ../Doc/c-api/memory.rst:126 +#: c-api/memory.rst:126 msgid "" "Requesting zero elements or elements of size zero bytes returns a distinct " "non-``NULL`` pointer if possible, as if ``PyMem_RawCalloc(1, 1)`` had been " "called instead." msgstr "" -#: ../Doc/c-api/memory.rst:135 ../Doc/c-api/memory.rst:206 -#: ../Doc/c-api/memory.rst:308 +#: c-api/memory.rst:206 c-api/memory.rst:308 msgid "" "Resizes the memory block pointed to by *p* to *n* bytes. The contents will " "be unchanged to the minimum of the old and the new sizes." msgstr "" -#: ../Doc/c-api/memory.rst:138 +#: c-api/memory.rst:138 msgid "" "If *p* is ``NULL``, the call is equivalent to ``PyMem_RawMalloc(n)``; else " "if *n* is equal to zero, the memory block is resized but is not freed, and " "the returned pointer is non-``NULL``." msgstr "" -#: ../Doc/c-api/memory.rst:142 +#: c-api/memory.rst:142 msgid "" "Unless *p* is ``NULL``, it must have been returned by a previous call to :c:" "func:`PyMem_RawMalloc`, :c:func:`PyMem_RawRealloc` or :c:func:" "`PyMem_RawCalloc`." msgstr "" -#: ../Doc/c-api/memory.rst:146 +#: c-api/memory.rst:146 msgid "" "If the request fails, :c:func:`PyMem_RawRealloc` returns ``NULL`` and *p* " "remains a valid pointer to the previous memory area." msgstr "" -#: ../Doc/c-api/memory.rst:152 +#: c-api/memory.rst:152 msgid "" "Frees the memory block pointed to by *p*, which must have been returned by a " "previous call to :c:func:`PyMem_RawMalloc`, :c:func:`PyMem_RawRealloc` or :c:" @@ -188,73 +185,72 @@ msgid "" "called before, undefined behavior occurs." msgstr "" -#: ../Doc/c-api/memory.rst:157 ../Doc/c-api/memory.rst:227 -#: ../Doc/c-api/memory.rst:329 +#: c-api/memory.rst:227 c-api/memory.rst:329 msgid "If *p* is ``NULL``, no operation is performed." msgstr "" -#: ../Doc/c-api/memory.rst:163 +#: c-api/memory.rst:163 msgid "Memory Interface" msgstr "" -#: ../Doc/c-api/memory.rst:165 ../Doc/c-api/memory.rst:271 +#: c-api/memory.rst:271 msgid "" "The following function sets, modeled after the ANSI C standard, but " "specifying behavior when requesting zero bytes, are available for allocating " "and releasing memory from the Python heap." msgstr "" -#: ../Doc/c-api/memory.rst:169 +#: c-api/memory.rst:169 msgid "" "The :ref:`default memory allocator ` uses the :" "ref:`pymalloc memory allocator `." msgstr "" -#: ../Doc/c-api/memory.rst:174 ../Doc/c-api/memory.rst:280 +#: c-api/memory.rst:280 msgid "" "The :term:`GIL ` must be held when using these " "functions." msgstr "" -#: ../Doc/c-api/memory.rst:179 +#: c-api/memory.rst:179 msgid "" "The default allocator is now pymalloc instead of system :c:func:`malloc`." msgstr "" -#: ../Doc/c-api/memory.rst:186 +#: c-api/memory.rst:186 msgid "" "Requesting zero bytes returns a distinct non-``NULL`` pointer if possible, " "as if ``PyMem_Malloc(1)`` had been called instead. The memory will not have " "been initialized in any way." msgstr "" -#: ../Doc/c-api/memory.rst:197 +#: c-api/memory.rst:197 msgid "" "Requesting zero elements or elements of size zero bytes returns a distinct " "non-``NULL`` pointer if possible, as if ``PyMem_Calloc(1, 1)`` had been " "called instead." msgstr "" -#: ../Doc/c-api/memory.rst:209 +#: c-api/memory.rst:209 msgid "" "If *p* is ``NULL``, the call is equivalent to ``PyMem_Malloc(n)``; else if " "*n* is equal to zero, the memory block is resized but is not freed, and the " "returned pointer is non-``NULL``." msgstr "" -#: ../Doc/c-api/memory.rst:213 +#: c-api/memory.rst:213 msgid "" "Unless *p* is ``NULL``, it must have been returned by a previous call to :c:" "func:`PyMem_Malloc`, :c:func:`PyMem_Realloc` or :c:func:`PyMem_Calloc`." msgstr "" -#: ../Doc/c-api/memory.rst:216 +#: c-api/memory.rst:216 msgid "" "If the request fails, :c:func:`PyMem_Realloc` returns ``NULL`` and *p* " "remains a valid pointer to the previous memory area." msgstr "" -#: ../Doc/c-api/memory.rst:222 +#: c-api/memory.rst:222 msgid "" "Frees the memory block pointed to by *p*, which must have been returned by a " "previous call to :c:func:`PyMem_Malloc`, :c:func:`PyMem_Realloc` or :c:func:" @@ -262,38 +258,38 @@ msgid "" "undefined behavior occurs." msgstr "" -#: ../Doc/c-api/memory.rst:229 +#: c-api/memory.rst:229 msgid "" "The following type-oriented macros are provided for convenience. Note that " "*TYPE* refers to any C type." msgstr "" -#: ../Doc/c-api/memory.rst:235 +#: c-api/memory.rst:235 msgid "" "Same as :c:func:`PyMem_Malloc`, but allocates ``(n * sizeof(TYPE))`` bytes " -"of memory. Returns a pointer cast to :c:type:`TYPE\\*`. The memory will " -"not have been initialized in any way." +"of memory. Returns a pointer cast to :c:type:`TYPE*`. The memory will not " +"have been initialized in any way." msgstr "" -#: ../Doc/c-api/memory.rst:242 +#: c-api/memory.rst:242 msgid "" "Same as :c:func:`PyMem_Realloc`, but the memory block is resized to ``(n * " -"sizeof(TYPE))`` bytes. Returns a pointer cast to :c:type:`TYPE\\*`. On " +"sizeof(TYPE))`` bytes. Returns a pointer cast to :c:type:`TYPE*`. On " "return, *p* will be a pointer to the new memory area, or ``NULL`` in the " "event of failure." msgstr "" -#: ../Doc/c-api/memory.rst:247 +#: c-api/memory.rst:247 msgid "" "This is a C preprocessor macro; *p* is always reassigned. Save the original " "value of *p* to avoid losing memory when handling errors." msgstr "" -#: ../Doc/c-api/memory.rst:253 +#: c-api/memory.rst:253 msgid "Same as :c:func:`PyMem_Free`." msgstr "" -#: ../Doc/c-api/memory.rst:255 +#: c-api/memory.rst:255 msgid "" "In addition, the following macro sets are provided for calling the Python " "memory allocator directly, without involving the C API functions listed " @@ -301,75 +297,75 @@ msgid "" "across Python versions and is therefore deprecated in extension modules." msgstr "" -#: ../Doc/c-api/memory.rst:260 +#: c-api/memory.rst:260 msgid "``PyMem_MALLOC(size)``" msgstr "" -#: ../Doc/c-api/memory.rst:261 +#: c-api/memory.rst:261 msgid "``PyMem_NEW(type, size)``" msgstr "" -#: ../Doc/c-api/memory.rst:262 +#: c-api/memory.rst:262 msgid "``PyMem_REALLOC(ptr, size)``" msgstr "" -#: ../Doc/c-api/memory.rst:263 +#: c-api/memory.rst:263 msgid "``PyMem_RESIZE(ptr, type, size)``" msgstr "" -#: ../Doc/c-api/memory.rst:264 +#: c-api/memory.rst:264 msgid "``PyMem_FREE(ptr)``" msgstr "" -#: ../Doc/c-api/memory.rst:265 +#: c-api/memory.rst:265 msgid "``PyMem_DEL(ptr)``" msgstr "" -#: ../Doc/c-api/memory.rst:269 +#: c-api/memory.rst:269 msgid "Object allocators" msgstr "" -#: ../Doc/c-api/memory.rst:275 +#: c-api/memory.rst:275 msgid "" "The :ref:`default object allocator ` uses the :" "ref:`pymalloc memory allocator `." msgstr "" -#: ../Doc/c-api/memory.rst:288 +#: c-api/memory.rst:288 msgid "" "Requesting zero bytes returns a distinct non-``NULL`` pointer if possible, " "as if ``PyObject_Malloc(1)`` had been called instead. The memory will not " "have been initialized in any way." msgstr "" -#: ../Doc/c-api/memory.rst:299 +#: c-api/memory.rst:299 msgid "" "Requesting zero elements or elements of size zero bytes returns a distinct " "non-``NULL`` pointer if possible, as if ``PyObject_Calloc(1, 1)`` had been " "called instead." msgstr "" -#: ../Doc/c-api/memory.rst:311 +#: c-api/memory.rst:311 msgid "" "If *p* is ``NULL``, the call is equivalent to ``PyObject_Malloc(n)``; else " "if *n* is equal to zero, the memory block is resized but is not freed, and " "the returned pointer is non-``NULL``." msgstr "" -#: ../Doc/c-api/memory.rst:315 +#: c-api/memory.rst:315 msgid "" "Unless *p* is ``NULL``, it must have been returned by a previous call to :c:" "func:`PyObject_Malloc`, :c:func:`PyObject_Realloc` or :c:func:" "`PyObject_Calloc`." msgstr "" -#: ../Doc/c-api/memory.rst:318 +#: c-api/memory.rst:318 msgid "" "If the request fails, :c:func:`PyObject_Realloc` returns ``NULL`` and *p* " "remains a valid pointer to the previous memory area." msgstr "" -#: ../Doc/c-api/memory.rst:324 +#: c-api/memory.rst:324 msgid "" "Frees the memory block pointed to by *p*, which must have been returned by a " "previous call to :c:func:`PyObject_Malloc`, :c:func:`PyObject_Realloc` or :c:" @@ -377,291 +373,297 @@ msgid "" "called before, undefined behavior occurs." msgstr "" -#: ../Doc/c-api/memory.rst:335 +#: c-api/memory.rst:335 msgid "Default Memory Allocators" msgstr "" -#: ../Doc/c-api/memory.rst:337 +#: c-api/memory.rst:337 msgid "Default memory allocators:" msgstr "" -#: ../Doc/c-api/memory.rst:340 +#: c-api/memory.rst:340 msgid "Configuration" msgstr "Configuration" -#: ../Doc/c-api/memory.rst:340 +#: c-api/memory.rst:340 msgid "Name" msgstr "Nom" -#: ../Doc/c-api/memory.rst:340 +#: c-api/memory.rst:340 msgid "PyMem_RawMalloc" msgstr "" -#: ../Doc/c-api/memory.rst:340 +#: c-api/memory.rst:340 msgid "PyMem_Malloc" msgstr "" -#: ../Doc/c-api/memory.rst:340 +#: c-api/memory.rst:340 msgid "PyObject_Malloc" msgstr "" -#: ../Doc/c-api/memory.rst:342 +#: c-api/memory.rst:342 msgid "Release build" msgstr "" -#: ../Doc/c-api/memory.rst:342 +#: c-api/memory.rst:342 msgid "``\"pymalloc\"``" msgstr "" -#: ../Doc/c-api/memory.rst:342 ../Doc/c-api/memory.rst:344 +#: c-api/memory.rst:344 msgid "``malloc``" msgstr "" -#: ../Doc/c-api/memory.rst:342 +#: c-api/memory.rst:342 msgid "``pymalloc``" msgstr "" -#: ../Doc/c-api/memory.rst:343 +#: c-api/memory.rst:343 msgid "Debug build" msgstr "" -#: ../Doc/c-api/memory.rst:343 +#: c-api/memory.rst:343 msgid "``\"pymalloc_debug\"``" msgstr "" -#: ../Doc/c-api/memory.rst:343 ../Doc/c-api/memory.rst:345 +#: c-api/memory.rst:345 msgid "``malloc`` + debug" msgstr "" -#: ../Doc/c-api/memory.rst:343 +#: c-api/memory.rst:343 msgid "``pymalloc`` + debug" msgstr "" -#: ../Doc/c-api/memory.rst:344 +#: c-api/memory.rst:344 msgid "Release build, without pymalloc" msgstr "" -#: ../Doc/c-api/memory.rst:344 +#: c-api/memory.rst:344 msgid "``\"malloc\"``" msgstr "" -#: ../Doc/c-api/memory.rst:345 +#: c-api/memory.rst:345 msgid "Debug build, without pymalloc" msgstr "" -#: ../Doc/c-api/memory.rst:345 +#: c-api/memory.rst:345 msgid "``\"malloc_debug\"``" msgstr "" -#: ../Doc/c-api/memory.rst:348 +#: c-api/memory.rst:348 msgid "Legend:" msgstr "" -#: ../Doc/c-api/memory.rst:350 +#: c-api/memory.rst:350 msgid "Name: value for :envvar:`PYTHONMALLOC` environment variable" msgstr "" -#: ../Doc/c-api/memory.rst:351 +#: c-api/memory.rst:351 msgid "" "``malloc``: system allocators from the standard C library, C functions: :c:" "func:`malloc`, :c:func:`calloc`, :c:func:`realloc` and :c:func:`free`" msgstr "" -#: ../Doc/c-api/memory.rst:353 +#: c-api/memory.rst:353 msgid "``pymalloc``: :ref:`pymalloc memory allocator `" msgstr "" -#: ../Doc/c-api/memory.rst:354 +#: c-api/memory.rst:354 msgid "" "\"+ debug\": with debug hooks installed by :c:func:`PyMem_SetupDebugHooks`" msgstr "" -#: ../Doc/c-api/memory.rst:358 +#: c-api/memory.rst:358 msgid "Customize Memory Allocators" msgstr "" -#: ../Doc/c-api/memory.rst:364 +#: c-api/memory.rst:364 msgid "" "Structure used to describe a memory block allocator. The structure has four " "fields:" msgstr "" -#: ../Doc/c-api/memory.rst:368 ../Doc/c-api/memory.rst:513 +#: c-api/memory.rst:513 msgid "Field" -msgstr "" +msgstr "Champ" -#: ../Doc/c-api/memory.rst:368 ../Doc/c-api/memory.rst:513 +#: c-api/memory.rst:513 msgid "Meaning" msgstr "Signification" -#: ../Doc/c-api/memory.rst:370 ../Doc/c-api/memory.rst:515 +#: c-api/memory.rst:515 msgid "``void *ctx``" msgstr "``void *ctx``" -#: ../Doc/c-api/memory.rst:370 ../Doc/c-api/memory.rst:515 +#: c-api/memory.rst:515 msgid "user context passed as first argument" msgstr "" -#: ../Doc/c-api/memory.rst:372 +#: c-api/memory.rst:372 msgid "``void* malloc(void *ctx, size_t size)``" msgstr "``void* malloc(void *ctx, size_t size)``" -#: ../Doc/c-api/memory.rst:372 +#: c-api/memory.rst:372 msgid "allocate a memory block" msgstr "" -#: ../Doc/c-api/memory.rst:374 +#: c-api/memory.rst:374 msgid "``void* calloc(void *ctx, size_t nelem, size_t elsize)``" msgstr "" -#: ../Doc/c-api/memory.rst:374 +#: c-api/memory.rst:374 msgid "allocate a memory block initialized with zeros" msgstr "" -#: ../Doc/c-api/memory.rst:377 +#: c-api/memory.rst:377 msgid "``void* realloc(void *ctx, void *ptr, size_t new_size)``" msgstr "" -#: ../Doc/c-api/memory.rst:377 +#: c-api/memory.rst:377 msgid "allocate or resize a memory block" msgstr "" -#: ../Doc/c-api/memory.rst:379 +#: c-api/memory.rst:379 msgid "``void free(void *ctx, void *ptr)``" msgstr "``void free(void *ctx, void *ptr)``" -#: ../Doc/c-api/memory.rst:379 +#: c-api/memory.rst:379 msgid "free a memory block" msgstr "" -#: ../Doc/c-api/memory.rst:382 +#: c-api/memory.rst:382 msgid "" "The :c:type:`PyMemAllocator` structure was renamed to :c:type:" "`PyMemAllocatorEx` and a new ``calloc`` field was added." msgstr "" -#: ../Doc/c-api/memory.rst:389 +#: c-api/memory.rst:389 msgid "Enum used to identify an allocator domain. Domains:" msgstr "" -#: ../Doc/c-api/memory.rst:393 ../Doc/c-api/memory.rst:402 -#: ../Doc/c-api/memory.rst:411 +#: c-api/memory.rst:402 c-api/memory.rst:411 +#, fuzzy msgid "Functions:" -msgstr "" +msgstr "Fonctions" -#: ../Doc/c-api/memory.rst:395 +#: c-api/memory.rst:395 +#, fuzzy msgid ":c:func:`PyMem_RawMalloc`" -msgstr "" +msgstr ":c:func:`PyMem_RawCalloc`," -#: ../Doc/c-api/memory.rst:396 +#: c-api/memory.rst:396 +#, fuzzy msgid ":c:func:`PyMem_RawRealloc`" -msgstr "" +msgstr ":c:func:`PyMem_RawCalloc`," -#: ../Doc/c-api/memory.rst:397 +#: c-api/memory.rst:397 +#, fuzzy msgid ":c:func:`PyMem_RawCalloc`" -msgstr "" +msgstr ":c:func:`PyMem_RawCalloc`," -#: ../Doc/c-api/memory.rst:398 +#: c-api/memory.rst:398 msgid ":c:func:`PyMem_RawFree`" msgstr "" -#: ../Doc/c-api/memory.rst:404 +#: c-api/memory.rst:404 +#, fuzzy msgid ":c:func:`PyMem_Malloc`," -msgstr "" +msgstr ":c:func:`PyMem_Calloc`," -#: ../Doc/c-api/memory.rst:405 +#: c-api/memory.rst:405 +#, fuzzy msgid ":c:func:`PyMem_Realloc`" -msgstr "" +msgstr ":c:func:`PyMem_Calloc`," -#: ../Doc/c-api/memory.rst:406 +#: c-api/memory.rst:406 +#, fuzzy msgid ":c:func:`PyMem_Calloc`" -msgstr "" +msgstr ":c:func:`PyMem_Calloc`," -#: ../Doc/c-api/memory.rst:407 +#: c-api/memory.rst:407 msgid ":c:func:`PyMem_Free`" msgstr "" -#: ../Doc/c-api/memory.rst:413 +#: c-api/memory.rst:413 msgid ":c:func:`PyObject_Malloc`" msgstr "" -#: ../Doc/c-api/memory.rst:414 +#: c-api/memory.rst:414 msgid ":c:func:`PyObject_Realloc`" msgstr "" -#: ../Doc/c-api/memory.rst:415 +#: c-api/memory.rst:415 msgid ":c:func:`PyObject_Calloc`" msgstr "" -#: ../Doc/c-api/memory.rst:416 +#: c-api/memory.rst:416 msgid ":c:func:`PyObject_Free`" msgstr "" -#: ../Doc/c-api/memory.rst:420 +#: c-api/memory.rst:420 msgid "Get the memory block allocator of the specified domain." msgstr "" -#: ../Doc/c-api/memory.rst:425 +#: c-api/memory.rst:425 msgid "Set the memory block allocator of the specified domain." msgstr "" -#: ../Doc/c-api/memory.rst:427 +#: c-api/memory.rst:427 msgid "" "The new allocator must return a distinct non-``NULL`` pointer when " "requesting zero bytes." msgstr "" -#: ../Doc/c-api/memory.rst:430 +#: c-api/memory.rst:430 msgid "" "For the :c:data:`PYMEM_DOMAIN_RAW` domain, the allocator must be thread-" "safe: the :term:`GIL ` is not held when the " "allocator is called." msgstr "" -#: ../Doc/c-api/memory.rst:434 +#: c-api/memory.rst:434 msgid "" "If the new allocator is not a hook (does not call the previous allocator), " "the :c:func:`PyMem_SetupDebugHooks` function must be called to reinstall the " "debug hooks on top on the new allocator." msgstr "" -#: ../Doc/c-api/memory.rst:441 +#: c-api/memory.rst:441 msgid "Setup hooks to detect bugs in the Python memory allocator functions." msgstr "" -#: ../Doc/c-api/memory.rst:443 +#: c-api/memory.rst:443 msgid "" "Newly allocated memory is filled with the byte ``0xCD`` (``CLEANBYTE``), " "freed memory is filled with the byte ``0xDD`` (``DEADBYTE``). Memory blocks " "are surrounded by \"forbidden bytes\" (``FORBIDDENBYTE``: byte ``0xFD``)." msgstr "" -#: ../Doc/c-api/memory.rst:447 +#: c-api/memory.rst:447 msgid "Runtime checks:" msgstr "" -#: ../Doc/c-api/memory.rst:449 +#: c-api/memory.rst:449 msgid "" "Detect API violations, ex: :c:func:`PyObject_Free` called on a buffer " "allocated by :c:func:`PyMem_Malloc`" msgstr "" -#: ../Doc/c-api/memory.rst:451 +#: c-api/memory.rst:451 msgid "Detect write before the start of the buffer (buffer underflow)" msgstr "" -#: ../Doc/c-api/memory.rst:452 +#: c-api/memory.rst:452 msgid "Detect write after the end of the buffer (buffer overflow)" msgstr "" -#: ../Doc/c-api/memory.rst:453 +#: c-api/memory.rst:453 msgid "" "Check that the :term:`GIL ` is held when allocator " "functions of :c:data:`PYMEM_DOMAIN_OBJ` (ex: :c:func:`PyObject_Malloc`) and :" "c:data:`PYMEM_DOMAIN_MEM` (ex: :c:func:`PyMem_Malloc`) domains are called" msgstr "" -#: ../Doc/c-api/memory.rst:458 +#: c-api/memory.rst:458 msgid "" "On error, the debug hooks use the :mod:`tracemalloc` module to get the " "traceback where a memory block was allocated. The traceback is only " @@ -669,7 +671,7 @@ msgid "" "memory block was traced." msgstr "" -#: ../Doc/c-api/memory.rst:463 +#: c-api/memory.rst:463 msgid "" "These hooks are :ref:`installed by default ` if " "Python is compiled in debug mode. The :envvar:`PYTHONMALLOC` environment " @@ -677,7 +679,7 @@ msgid "" "mode." msgstr "" -#: ../Doc/c-api/memory.rst:468 +#: c-api/memory.rst:468 msgid "" "This function now also works on Python compiled in release mode. On error, " "the debug hooks now use :mod:`tracemalloc` to get the traceback where a " @@ -686,18 +688,18 @@ msgid "" "`PYMEM_DOMAIN_MEM` domains are called." msgstr "" -#: ../Doc/c-api/memory.rst:475 +#: c-api/memory.rst:475 msgid "" "Byte patterns ``0xCB`` (``CLEANBYTE``), ``0xDB`` (``DEADBYTE``) and ``0xFB`` " "(``FORBIDDENBYTE``) have been replaced with ``0xCD``, ``0xDD`` and ``0xFD`` " "to use the same values than Windows CRT debug ``malloc()`` and ``free()``." msgstr "" -#: ../Doc/c-api/memory.rst:485 +#: c-api/memory.rst:485 msgid "The pymalloc allocator" msgstr "" -#: ../Doc/c-api/memory.rst:487 +#: c-api/memory.rst:487 msgid "" "Python has a *pymalloc* allocator optimized for small objects (smaller or " "equal to 512 bytes) with a short lifetime. It uses memory mappings called " @@ -706,83 +708,108 @@ msgid "" "512 bytes." msgstr "" -#: ../Doc/c-api/memory.rst:492 +#: c-api/memory.rst:492 msgid "" "*pymalloc* is the :ref:`default allocator ` of " "the :c:data:`PYMEM_DOMAIN_MEM` (ex: :c:func:`PyMem_Malloc`) and :c:data:" "`PYMEM_DOMAIN_OBJ` (ex: :c:func:`PyObject_Malloc`) domains." msgstr "" -#: ../Doc/c-api/memory.rst:496 +#: c-api/memory.rst:496 msgid "The arena allocator uses the following functions:" msgstr "" -#: ../Doc/c-api/memory.rst:498 +#: c-api/memory.rst:498 msgid ":c:func:`VirtualAlloc` and :c:func:`VirtualFree` on Windows," msgstr "" -#: ../Doc/c-api/memory.rst:499 +#: c-api/memory.rst:499 msgid ":c:func:`mmap` and :c:func:`munmap` if available," msgstr "" -#: ../Doc/c-api/memory.rst:500 +#: c-api/memory.rst:500 msgid ":c:func:`malloc` and :c:func:`free` otherwise." msgstr "" -#: ../Doc/c-api/memory.rst:503 +#: c-api/memory.rst:503 msgid "Customize pymalloc Arena Allocator" msgstr "" -#: ../Doc/c-api/memory.rst:509 +#: c-api/memory.rst:509 msgid "" "Structure used to describe an arena allocator. The structure has three " "fields:" msgstr "" -#: ../Doc/c-api/memory.rst:517 +#: c-api/memory.rst:517 msgid "``void* alloc(void *ctx, size_t size)``" msgstr "``void* alloc(void *ctx, size_t size)``" -#: ../Doc/c-api/memory.rst:517 +#: c-api/memory.rst:517 msgid "allocate an arena of size bytes" msgstr "" -#: ../Doc/c-api/memory.rst:519 -msgid "``void free(void *ctx, size_t size, void *ptr)``" -msgstr "``void free(void *ctx, size_t size, void *ptr)``" +#: c-api/memory.rst:519 +#, fuzzy +msgid "``void free(void *ctx, void *ptr, size_t size)``" +msgstr "``void free(void *ctx, void *ptr)``" -#: ../Doc/c-api/memory.rst:519 +#: c-api/memory.rst:519 msgid "free an arena" msgstr "" -#: ../Doc/c-api/memory.rst:524 +#: c-api/memory.rst:524 msgid "Get the arena allocator." msgstr "" -#: ../Doc/c-api/memory.rst:528 +#: c-api/memory.rst:528 msgid "Set the arena allocator." msgstr "" -#: ../Doc/c-api/memory.rst:532 +#: c-api/memory.rst:532 msgid "tracemalloc C API" msgstr "" -#: ../Doc/c-api/memory.rst:556 +#: c-api/memory.rst:538 +msgid "Track an allocated memory block in the :mod:`tracemalloc` module." +msgstr "" + +#: c-api/memory.rst:540 +msgid "" +"Return ``0`` on success, return ``-1`` on error (failed to allocate memory " +"to store the trace). Return ``-2`` if tracemalloc is disabled." +msgstr "" + +#: c-api/memory.rst:543 +msgid "If memory block is already tracked, update the existing trace." +msgstr "" + +#: c-api/memory.rst:547 +msgid "" +"Untrack an allocated memory block in the :mod:`tracemalloc` module. Do " +"nothing if the block was not tracked." +msgstr "" + +#: c-api/memory.rst:550 +msgid "Return ``-2`` if tracemalloc is disabled, otherwise return ``0``." +msgstr "" + +#: c-api/memory.rst:556 msgid "Examples" msgstr "Exemples" -#: ../Doc/c-api/memory.rst:558 +#: c-api/memory.rst:558 msgid "" "Here is the example from section :ref:`memoryoverview`, rewritten so that " "the I/O buffer is allocated from the Python heap by using the first function " "set::" msgstr "" -#: ../Doc/c-api/memory.rst:571 +#: c-api/memory.rst:571 msgid "The same code using the type-oriented function set::" msgstr "" -#: ../Doc/c-api/memory.rst:583 +#: c-api/memory.rst:583 msgid "" "Note that in the two examples above, the buffer is always manipulated via " "functions belonging to the same set. Indeed, it is required to use the same " @@ -792,15 +819,18 @@ msgid "" "different allocators operating on different heaps. ::" msgstr "" -#: ../Doc/c-api/memory.rst:598 +#: c-api/memory.rst:598 msgid "" "In addition to the functions aimed at handling raw memory blocks from the " "Python heap, objects in Python are allocated and released with :c:func:" "`PyObject_New`, :c:func:`PyObject_NewVar` and :c:func:`PyObject_Del`." msgstr "" -#: ../Doc/c-api/memory.rst:602 +#: c-api/memory.rst:602 msgid "" "These will be explained in the next chapter on defining and implementing new " "object types in C." msgstr "" + +#~ msgid "``void free(void *ctx, size_t size, void *ptr)``" +#~ msgstr "``void free(void *ctx, size_t size, void *ptr)``" diff --git a/c-api/memoryview.po b/c-api/memoryview.po index 697ea8dd21..872ace562d 100644 --- a/c-api/memoryview.po +++ b/c-api/memoryview.po @@ -24,6 +24,9 @@ msgid "" "` as a Python object which can then be passed around like any " "other object." msgstr "" +"Un objet Python :class:`memoryview` expose le :ref:`protocole tampon " +"` du C. Cet objet peut ensuite être passé comme n'importe " +"quel objet." #: ../Doc/c-api/memoryview.rst:18 msgid "" @@ -32,12 +35,18 @@ msgid "" "will be read/write, otherwise it may be either read-only or read/write at " "the discretion of the exporter." msgstr "" +"Crée un objet *memoryview* à partir d'un objet implémentant le protocole " +"tampon. Si *obj* permet d'exporter des tampons modifiables, l'objet " +"*memoryview* crée acceptera la lecture et écriture, sinon l'objet crée est " +"soit en lecture seule ou lecture/écriture, à la discrétion de l'*exporteur*." #: ../Doc/c-api/memoryview.rst:25 msgid "" "Create a memoryview object using *mem* as the underlying buffer. *flags* can " "be one of :c:macro:`PyBUF_READ` or :c:macro:`PyBUF_WRITE`." msgstr "" +"Crée un objet *memoryview* utilisant *mem* comme un tampon sous-jacent. " +"*flags* peut être :c:macro:`PyBUF_READ` ou :c:macro:`PyBUF_WRITE`." #: ../Doc/c-api/memoryview.rst:32 msgid "" @@ -45,6 +54,8 @@ msgid "" "simple byte buffers, :c:func:`PyMemoryView_FromMemory` is the preferred " "function." msgstr "" +"Crée un objet *memoryview* à partir de la structure tampon *view*. Pour de " +"simples tampons d'octets, :c:func:`PyMemoryView_FromMemory` est préférée." #: ../Doc/c-api/memoryview.rst:38 msgid "" @@ -54,12 +65,19 @@ msgid "" "original memory. Otherwise, a copy is made and the memoryview points to a " "new bytes object." msgstr "" +"Crée un objet *memoryview* vers un segment de mémoire :term:`contiguous` " +"(organisé comme en ``'C'`` ou comme en ``'F'`` pour Fortran) à partir d'un " +"objet qui expose le protocole tampon. Si la mémoire est contiguë, l'objet " +"*memoryview* pointe vers la mémoire d'origine. Sinon une copie est faite et " +"la *memoryview* pointe vers un nouvel objet *bytes*." #: ../Doc/c-api/memoryview.rst:47 msgid "" "Return true if the object *obj* is a memoryview object. It is not currently " "allowed to create subclasses of :class:`memoryview`." msgstr "" +"Renvoie vrai si l'objet *obj* est un objet *memoryview*. Il n'est pas permis " +"de créer une sous-classe de :class:`memoryview`." #: ../Doc/c-api/memoryview.rst:53 msgid "" @@ -67,6 +85,10 @@ msgid "" "*mview* **must** be a memoryview instance; this macro doesn't check its " "type, you must do it yourself or you will risk crashes." msgstr "" +"Retourne un pointeur vers la copie privée du tampon de l'*exporteur* de " +"*memoryview*. *mview* **doit** être une instance de *memoryview*; cette " +"macro ne vérifie pas le type, vous devez le faire vous-même sinon vous " +"pourriez subir un crash." #: ../Doc/c-api/memoryview.rst:59 msgid "" @@ -75,3 +97,7 @@ msgid "" "func:`PyMemoryView_FromMemory` or :c:func:`PyMemoryView_FromBuffer`. *mview* " "**must** be a memoryview instance." msgstr "" +"Renvoie soit un pointeur vers l'objet exporté sur lequel est basé la " +"*memoryview* ou ``NULL`` si la *memoryview* a été crée par :c:func:" +"`PyMemoryView_FromMemory` ou :c:func:`PyMemoryView_FromBuffer`. *mview* " +"**doit** être une instance de *memoryview*." diff --git a/c-api/module.po b/c-api/module.po index 3ece407aa1..31f26906f3 100644 --- a/c-api/module.po +++ b/c-api/module.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-15 18:54+0100\n" +"POT-Creation-Date: 2020-05-23 11:38+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -150,7 +150,7 @@ msgstr "" #: ../Doc/c-api/module.rst:155 msgid "" -"Docstring for the module; usually a docstring variable created with :c:func:" +"Docstring for the module; usually a docstring variable created with :c:macro:" "`PyDoc_STRVAR` is used." msgstr "" diff --git a/c-api/object.po b/c-api/object.po index aea1337ccf..d0706750b0 100644 --- a/c-api/object.po +++ b/c-api/object.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-15 18:54+0100\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2019-08-16 22:56+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -15,11 +15,11 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.2\n" -#: ../Doc/c-api/object.rst:6 +#: c-api/object.rst:6 msgid "Object Protocol" msgstr "Protocole Objet" -#: ../Doc/c-api/object.rst:11 +#: c-api/object.rst:11 msgid "" "The ``NotImplemented`` singleton, used to signal that an operation is not " "implemented for the given type combination." @@ -27,7 +27,7 @@ msgstr "" "Le singleton ``NotImplemented``, utilisé pour signaler qu'une opération " "n'est pas implémentée pour la combinaison de types en question." -#: ../Doc/c-api/object.rst:17 +#: c-api/object.rst:17 msgid "" "Properly handle returning :c:data:`Py_NotImplemented` from within a C " "function (that is, increment the reference count of NotImplemented and " @@ -37,7 +37,7 @@ msgstr "" "l'intérieur d'une fonction C (c'est-à-dire, incrémente le compteur de " "référence de `NotImplemented` et le renvoie)." -#: ../Doc/c-api/object.rst:24 +#: c-api/object.rst:24 msgid "" "Print an object *o*, on file *fp*. Returns ``-1`` on error. The flags " "argument is used to enable certain printing options. The only option " @@ -50,7 +50,7 @@ msgstr "" "est fourni, le :func:`str` de l'objet est utilisé pour le rendu à la place " "de :func:`repr`." -#: ../Doc/c-api/object.rst:32 ../Doc/c-api/object.rst:43 +#: c-api/object.rst:43 msgid "" "Returns ``1`` if *o* has the attribute *attr_name*, and ``0`` otherwise. " "This is equivalent to the Python expression ``hasattr(o, attr_name)``. This " @@ -60,14 +60,18 @@ msgstr "" "équivalent à l'expression Python ``hasattr(o, attr_name)``. Cette fonction " "réussit toujours." -#: ../Doc/c-api/object.rst:36 +#: c-api/object.rst:36 +#, fuzzy msgid "" "Note that exceptions which occur while calling :meth:`__getattr__` and :meth:" "`__getattribute__` methods will get suppressed. To get error reporting use :" "c:func:`PyObject_GetAttr()` instead." msgstr "" +"Notez que les exceptions qui surviennent pendant l'appel de la méthode :meth:" +"`__getitem__` seront supprimées. Pour obtenir le rapport d'erreur, utilisez " +"plutôt :c:func:`PyObject_GetItem()`." -#: ../Doc/c-api/object.rst:47 +#: c-api/object.rst:47 msgid "" "Note that exceptions which occur while calling :meth:`__getattr__` and :meth:" "`__getattribute__` methods and creating a temporary string object will get " @@ -75,7 +79,7 @@ msgid "" "instead." msgstr "" -#: ../Doc/c-api/object.rst:55 +#: c-api/object.rst:55 #, fuzzy msgid "" "Retrieve an attribute named *attr_name* from object *o*. Returns the " @@ -86,7 +90,7 @@ msgstr "" "l'attribut en cas de succès, ou *NULL* en cas d'échec. Ceci est équivalent à " "l'expression Python ``o.attr_name``." -#: ../Doc/c-api/object.rst:62 +#: c-api/object.rst:62 #, fuzzy msgid "" "Retrieve an attribute named *attr_name* from object *o*. Returns the " @@ -97,7 +101,7 @@ msgstr "" "l'attribut en cas de succès, ou *NULL* en cas d'échec. Ceci est équivalent à " "l'expression Python ``o.attr_name``." -#: ../Doc/c-api/object.rst:69 +#: c-api/object.rst:69 msgid "" "Generic attribute getter function that is meant to be put into a type " "object's ``tp_getattro`` slot. It looks for a descriptor in the dictionary " @@ -114,7 +118,7 @@ msgstr "" "attributs d'instance, contrairement aux autres descripteurs. Sinon, une :exc:" "`AttributeError` est levée." -#: ../Doc/c-api/object.rst:79 ../Doc/c-api/object.rst:90 +#: c-api/object.rst:90 msgid "" "Set the value of the attribute named *attr_name*, for object *o*, to the " "value *v*. Raise an exception and return ``-1`` on failure; return ``0`` on " @@ -125,7 +129,7 @@ msgstr "" "``0`` en cas de succès. Ceci est équivalent à l'instruction Python ``o." "attr_name = v``." -#: ../Doc/c-api/object.rst:84 +#: c-api/object.rst:84 #, fuzzy msgid "" "If *v* is ``NULL``, the attribute is deleted, however this feature is " @@ -134,7 +138,7 @@ msgstr "" "Si *v* est *NULL*, l'attribut est supprimé. Cette fonctionnalité est " "obsolète,nous vous conseillons d'utiliser :c:func:`PyObject_DelAttr`." -#: ../Doc/c-api/object.rst:95 +#: c-api/object.rst:95 #, fuzzy msgid "" "If *v* is ``NULL``, the attribute is deleted, however this feature is " @@ -143,7 +147,7 @@ msgstr "" "Si *v* est *NULL*, l'attribut est supprimé. Cette fonctionnalité est " "obsolète, nous vous conseillons d'utiliser :c:func:`PyObject_DelAttr`." -#: ../Doc/c-api/object.rst:101 +#: c-api/object.rst:101 msgid "" "Generic attribute setter and deleter function that is meant to be put into a " "type object's :c:member:`~PyTypeObject.tp_setattro` slot. It looks for a " @@ -163,7 +167,7 @@ msgstr "" "attr:`~object.__dict__` de l'objet (si présent). En cas de succès, ``0`` est " "renvoyé, sinon une :exc:`AttributeError` est levée et ``-1`` est renvoyé." -#: ../Doc/c-api/object.rst:113 ../Doc/c-api/object.rst:119 +#: c-api/object.rst:119 msgid "" "Delete attribute named *attr_name*, for object *o*. Returns ``-1`` on " "failure. This is the equivalent of the Python statement ``del o.attr_name``." @@ -172,7 +176,7 @@ msgstr "" "cas d'échec. Ceci est l'équivalent de l'expression Python ``del o." "attr_name``." -#: ../Doc/c-api/object.rst:125 +#: c-api/object.rst:125 msgid "" "A generic implementation for the getter of a ``__dict__`` descriptor. It " "creates the dictionary if necessary." @@ -180,7 +184,7 @@ msgstr "" "Une implémentation générique de l'accesseur d'un descripteur d'un " "``__dict__``. Crée le dictionnaire si nécessaire." -#: ../Doc/c-api/object.rst:133 +#: c-api/object.rst:133 msgid "" "A generic implementation for the setter of a ``__dict__`` descriptor. This " "implementation does not allow the dictionary to be deleted." @@ -188,7 +192,7 @@ msgstr "" "Une implémentation générique du mutateur d'un descripteur de ``__dict__``. " "Cette implémentation n'autorise pas la suppression du dictionnaire." -#: ../Doc/c-api/object.rst:141 +#: c-api/object.rst:141 #, fuzzy msgid "" "Compare the values of *o1* and *o2* using the operation specified by *opid*, " @@ -207,7 +211,7 @@ msgstr "" "*opid*. Renvoie la valeur de la comparaison en cas de succès, ou *NULL* en " "cas d'échec." -#: ../Doc/c-api/object.rst:151 +#: c-api/object.rst:151 msgid "" "Compare the values of *o1* and *o2* using the operation specified by *opid*, " "which must be one of :const:`Py_LT`, :const:`Py_LE`, :const:`Py_EQ`, :const:" @@ -225,7 +229,7 @@ msgstr "" "l'équivalent de l'expression Python ``o1 op o2``, où ``op`` est l'opérateur " "correspondant à *opid*." -#: ../Doc/c-api/object.rst:160 +#: c-api/object.rst:160 msgid "" "If *o1* and *o2* are the same object, :c:func:`PyObject_RichCompareBool` " "will always return ``1`` for :const:`Py_EQ` and ``0`` for :const:`Py_NE`." @@ -233,7 +237,7 @@ msgstr "" "Si *o1* et *o2* sont le même objet, :c:func:`PyObject_RichCompareBool` " "renvoie toujours ``1`` pour :const:`Py_EQ` et ``0`` pour :const:`Py_NE`." -#: ../Doc/c-api/object.rst:167 +#: c-api/object.rst:167 #, fuzzy msgid "" "Compute a string representation of object *o*. Returns the string " @@ -246,7 +250,7 @@ msgstr "" "d'échec. Ceci est l'équivalent de l'expression Python ``repr(o)``. Appelé " "par la fonction native :func:`repr`." -#: ../Doc/c-api/object.rst:171 ../Doc/c-api/object.rst:195 +#: c-api/object.rst:195 msgid "" "This function now includes a debug assertion to help ensure that it does not " "silently discard an active exception." @@ -254,7 +258,7 @@ msgstr "" "Cette fonction inclut maintenant une assertion de débogage afin d'assurer " "qu'elle ne passe pas sous silence une exception active." -#: ../Doc/c-api/object.rst:179 +#: c-api/object.rst:179 msgid "" "As :c:func:`PyObject_Repr`, compute a string representation of object *o*, " "but escape the non-ASCII characters in the string returned by :c:func:" @@ -264,12 +268,12 @@ msgid "" msgstr "" "Comme :c:Func:`PyObject_Repr`, calcule une représentation en chaîne de " "caractères de l'objet *o*, mais échappe les caractères non ASCII dans la " -"chaîne de caractères renvoyée par :c:Func:`PyObject_Repr` avec' ``\\x``, ``" -"\\u`` ou ``\\U``. Cela génère une chaîne de caractères similaire à celle " +"chaîne de caractères renvoyée par :c:Func:`PyObject_Repr` avec' ``\\x``, " +"``\\u`` ou ``\\U``. Cela génère une chaîne de caractères similaire à celle " "renvoyée par :c:func:`PyObject_Repr` en Python 2. Appelée par la fonction " "native :func:`ascii`." -#: ../Doc/c-api/object.rst:190 +#: c-api/object.rst:190 #, fuzzy msgid "" "Compute a string representation of object *o*. Returns the string " @@ -283,7 +287,7 @@ msgstr "" "par la fonction native :func:`str`, et, par conséquent, par la fonction :" "func:`print`." -#: ../Doc/c-api/object.rst:203 +#: c-api/object.rst:203 #, fuzzy msgid "" "Compute a bytes representation of object *o*. ``NULL`` is returned on " @@ -298,7 +302,7 @@ msgstr "" "entier. Contrairement à ``bytes(o)``, une exception *TypeError* est levée " "lorsque *o* est un entier au lieu d'un objet octet initialisé avec des zéros." -#: ../Doc/c-api/object.rst:212 +#: c-api/object.rst:212 msgid "" "Return ``1`` if the class *derived* is identical to or derived from the " "class *cls*, otherwise return ``0``. In case of an error, return ``-1``." @@ -306,7 +310,7 @@ msgstr "" "Renvoie ``1`` si la classe *derived* est identique à ou dérivée de la classe " "*cls*, renvoie ``0`` sinon. En cas d'erreur, renvoie ``-1``." -#: ../Doc/c-api/object.rst:215 ../Doc/c-api/object.rst:234 +#: c-api/object.rst:234 msgid "" "If *cls* is a tuple, the check will be done against every entry in *cls*. " "The result will be ``1`` when at least one of the checks returns ``1``, " @@ -316,7 +320,7 @@ msgstr "" "Le résultat sera ``1`` quand au moins une des vérifications renvoie ``1``, " "sinon ce sera ``0``." -#: ../Doc/c-api/object.rst:219 +#: c-api/object.rst:219 msgid "" "If *cls* has a :meth:`~class.__subclasscheck__` method, it will be called to " "determine the subclass status as described in :pep:`3119`. Otherwise, " @@ -328,7 +332,7 @@ msgstr "" "Sinon, *derived* est une sous-classe de *cls* si c'est une sous-classe " "directe ou indirecte, c'est-à-dire contenue dans ``cls.__mro__``." -#: ../Doc/c-api/object.rst:224 +#: c-api/object.rst:224 msgid "" "Normally only class objects, i.e. instances of :class:`type` or a derived " "class, are considered classes. However, objects can override this by having " @@ -339,7 +343,7 @@ msgstr "" "les objets peuvent surcharger cela en ayant un attribut :attr:`__bases__` " "(qui doit être un tuple de classes de bases)." -#: ../Doc/c-api/object.rst:231 +#: c-api/object.rst:231 msgid "" "Return ``1`` if *inst* is an instance of the class *cls* or a subclass of " "*cls*, or ``0`` if not. On error, returns ``-1`` and sets an exception." @@ -348,7 +352,7 @@ msgstr "" "classe de *cls*, ou ``0`` sinon. En cas d'erreur, renvoie ``-1`` et " "initialise une exception." -#: ../Doc/c-api/object.rst:238 +#: c-api/object.rst:238 msgid "" "If *cls* has a :meth:`~class.__instancecheck__` method, it will be called to " "determine the subclass status as described in :pep:`3119`. Otherwise, " @@ -359,7 +363,7 @@ msgstr "" "Sinon, *inst* est une instance *cls* si sa classe est une sous-classe de " "*cls*." -#: ../Doc/c-api/object.rst:242 +#: c-api/object.rst:242 msgid "" "An instance *inst* can override what is considered its class by having a :" "attr:`__class__` attribute." @@ -367,7 +371,7 @@ msgstr "" "Une instance *inst* peut surcharger ce qui est considéré comme sa classe en " "ayant un attribut :attr:`__class__`." -#: ../Doc/c-api/object.rst:245 +#: c-api/object.rst:245 msgid "" "An object *cls* can override if it is considered a class, and what its base " "classes are, by having a :attr:`__bases__` attribute (which must be a tuple " @@ -377,7 +381,7 @@ msgstr "" "que ses classes de bases sont, en ayant un attribut :attr:`__bases__` (qui " "doit être un tuple des classes de base)." -#: ../Doc/c-api/object.rst:252 +#: c-api/object.rst:252 msgid "" "Determine if the object *o* is callable. Return ``1`` if the object is " "callable and ``0`` otherwise. This function always succeeds." @@ -385,7 +389,7 @@ msgstr "" "Détermine si l'objet *o* est appelable. Renvoie ``1`` si c'est le cas, et " "``0`` sinon. Cette fonction réussit toujours." -#: ../Doc/c-api/object.rst:258 +#: c-api/object.rst:258 msgid "" "Call a callable Python object *callable*, with arguments given by the tuple " "*args*, and named arguments given by the dictionary *kwargs*." @@ -393,7 +397,7 @@ msgstr "" "Appelle un objet Python appelable *callable*, avec des arguments donnés par " "le tuple *args*, et des arguments nommés donnés par le dictionnaire *kwargs*." -#: ../Doc/c-api/object.rst:261 +#: c-api/object.rst:261 #, fuzzy msgid "" "*args* must not be ``NULL``, use an empty tuple if no arguments are needed. " @@ -403,10 +407,8 @@ msgstr "" "argument n'est nécessaire. Si aucun argument nommé n'est nécessaire, " "*kwargs* peut être égal à *NULL*." -#: ../Doc/c-api/object.rst:264 ../Doc/c-api/object.rst:276 -#: ../Doc/c-api/object.rst:288 ../Doc/c-api/object.rst:308 -#: ../Doc/c-api/object.rst:327 ../Doc/c-api/object.rst:341 -#: ../Doc/c-api/object.rst:365 +#: c-api/object.rst:276 c-api/object.rst:308 c-api/object.rst:341 +#: c-api/object.rst:365 #, fuzzy msgid "" "Return the result of the call on success, or raise an exception and return " @@ -415,14 +417,14 @@ msgstr "" "Renvoie le résultat de l'appel en cas de succès, ou lève une exception et " "renvoie *NULL* en cas d'échec." -#: ../Doc/c-api/object.rst:267 +#: c-api/object.rst:267 msgid "" "This is the equivalent of the Python expression: ``callable(*args, " "**kwargs)``." msgstr "" "Ceci est l'équivalent de l'expression Python : ``callable(*args, **kwargs)``." -#: ../Doc/c-api/object.rst:273 +#: c-api/object.rst:273 #, fuzzy msgid "" "Call a callable Python object *callable*, with arguments given by the tuple " @@ -432,11 +434,11 @@ msgstr "" "le tuple *args*. Si aucun argument n'est nécessaire, alors *args* peut être " "égal à *NULL*." -#: ../Doc/c-api/object.rst:279 ../Doc/c-api/object.rst:291 +#: c-api/object.rst:291 msgid "This is the equivalent of the Python expression: ``callable(*args)``." msgstr "Ceci est l'équivalent de l'expression Python : ``callable(*args)``." -#: ../Doc/c-api/object.rst:284 +#: c-api/object.rst:284 #, fuzzy msgid "" "Call a callable Python object *callable*, with a variable number of C " @@ -449,48 +451,48 @@ msgstr "" "c:func:`Py_BuildValue`. Le format peut être *NULL*, indiquant qu'aucun " "argument n'est donné." -#: ../Doc/c-api/object.rst:293 +#: c-api/object.rst:293 msgid "" -"Note that if you only pass :c:type:`PyObject \\*` args, :c:func:" +"Note that if you only pass :c:type:`PyObject *` args, :c:func:" "`PyObject_CallFunctionObjArgs` is a faster alternative." msgstr "" -#: ../Doc/c-api/object.rst:296 +#: c-api/object.rst:296 msgid "The type of *format* was changed from ``char *``." msgstr "" -#: ../Doc/c-api/object.rst:302 +#: c-api/object.rst:302 msgid "" "Call the method named *name* of object *obj* with a variable number of C " "arguments. The C arguments are described by a :c:func:`Py_BuildValue` " "format string that should produce a tuple." msgstr "" -#: ../Doc/c-api/object.rst:306 +#: c-api/object.rst:306 msgid "The format can be ``NULL``, indicating that no arguments are provided." msgstr "" -#: ../Doc/c-api/object.rst:311 +#: c-api/object.rst:311 msgid "" "This is the equivalent of the Python expression: ``obj.name(arg1, " "arg2, ...)``." msgstr "" -#: ../Doc/c-api/object.rst:314 +#: c-api/object.rst:314 msgid "" -"Note that if you only pass :c:type:`PyObject \\*` args, :c:func:" +"Note that if you only pass :c:type:`PyObject *` args, :c:func:" "`PyObject_CallMethodObjArgs` is a faster alternative." msgstr "" -#: ../Doc/c-api/object.rst:317 +#: c-api/object.rst:317 msgid "The types of *name* and *format* were changed from ``char *``." msgstr "" -#: ../Doc/c-api/object.rst:323 +#: c-api/object.rst:323 #, fuzzy msgid "" "Call a callable Python object *callable*, with a variable number of :c:type:" -"`PyObject\\*` arguments. The arguments are provided as a variable number of " +"`PyObject*` arguments. The arguments are provided as a variable number of " "parameters followed by ``NULL``." msgstr "" "Appelle un objet Python appelable, avec un nombre variable d'arguments C. " @@ -498,38 +500,45 @@ msgstr "" "c:func:`Py_BuildValue`. Le format peut être *NULL*, indiquant qu'aucun " "argument n'est donné." -#: ../Doc/c-api/object.rst:330 +#: c-api/object.rst:330 +#, fuzzy msgid "" "This is the equivalent of the Python expression: ``callable(arg1, " "arg2, ...)``." msgstr "" +"Ceci est l'équivalent de l'expression Python : ``callable(*args, **kwargs)``." -#: ../Doc/c-api/object.rst:336 +#: c-api/object.rst:336 +#, fuzzy msgid "" "Calls a method of the Python object *obj*, where the name of the method is " "given as a Python string object in *name*. It is called with a variable " -"number of :c:type:`PyObject\\*` arguments. The arguments are provided as a " +"number of :c:type:`PyObject*` arguments. The arguments are provided as a " "variable number of parameters followed by ``NULL``." msgstr "" +"Appelle un objet Python appelable, avec un nombre variable d'arguments C. " +"Les arguments C sont décrits par une chaîne de caractères de format de type :" +"c:func:`Py_BuildValue`. Le format peut être *NULL*, indiquant qu'aucun " +"argument n'est donné." -#: ../Doc/c-api/object.rst:347 +#: c-api/object.rst:347 msgid "" "Call a callable Python object *callable*, using :c:data:`vectorcall " "` if possible." msgstr "" -#: ../Doc/c-api/object.rst:350 +#: c-api/object.rst:350 msgid "*args* is a C array with the positional arguments." msgstr "" -#: ../Doc/c-api/object.rst:352 +#: c-api/object.rst:352 msgid "" "*nargsf* is the number of positional arguments plus optionally the flag :" "const:`PY_VECTORCALL_ARGUMENTS_OFFSET` (see below). To get actual number of " "arguments, use :c:func:`PyVectorcall_NARGS(nargsf) `." msgstr "" -#: ../Doc/c-api/object.rst:357 +#: c-api/object.rst:357 msgid "" "*kwnames* can be either ``NULL`` (no keyword arguments) or a tuple of " "keyword names. In the latter case, the values of the keyword arguments are " @@ -537,26 +546,26 @@ msgid "" "arguments does not influence *nargsf*." msgstr "" -#: ../Doc/c-api/object.rst:362 +#: c-api/object.rst:362 msgid "" "*kwnames* must contain only objects of type ``str`` (not a subclass), and " "all keys must be unique." msgstr "" -#: ../Doc/c-api/object.rst:368 +#: c-api/object.rst:368 msgid "" "This uses the vectorcall protocol if the callable supports it; otherwise, " "the arguments are converted to use :c:member:`~PyTypeObject.tp_call`." msgstr "" -#: ../Doc/c-api/object.rst:374 ../Doc/c-api/object.rst:416 +#: c-api/object.rst:416 msgid "" "This function is provisional and expected to become public in Python 3.9, " "with a different name and, possibly, changed semantics. If you use the " "function, plan for updating your code for Python 3.9." msgstr "" -#: ../Doc/c-api/object.rst:382 +#: c-api/object.rst:382 msgid "" "If set in a vectorcall *nargsf* argument, the callee is allowed to " "temporarily change ``args[-1]``. In other words, *args* points to argument 1 " @@ -564,7 +573,7 @@ msgid "" "``args[-1]`` before returning." msgstr "" -#: ../Doc/c-api/object.rst:387 +#: c-api/object.rst:387 msgid "" "Whenever they can do so cheaply (without additional allocation), callers are " "encouraged to use :const:`PY_VECTORCALL_ARGUMENTS_OFFSET`. Doing so will " @@ -572,20 +581,20 @@ msgid "" "include a prepended *self* argument) cheaply." msgstr "" -#: ../Doc/c-api/object.rst:396 +#: c-api/object.rst:396 msgid "" "Given a vectorcall *nargsf* argument, return the actual number of arguments. " "Currently equivalent to ``nargsf & ~PY_VECTORCALL_ARGUMENTS_OFFSET``." msgstr "" -#: ../Doc/c-api/object.rst:404 +#: c-api/object.rst:404 msgid "" "Same as :c:func:`_PyObject_Vectorcall` except that the keyword arguments are " "passed as a dictionary in *kwdict*. This may be ``NULL`` if there are no " "keyword arguments." msgstr "" -#: ../Doc/c-api/object.rst:408 +#: c-api/object.rst:408 msgid "" "For callables supporting :c:data:`vectorcall `, the arguments are internally converted to the " @@ -594,19 +603,19 @@ msgid "" "already has a dictionary ready to use." msgstr "" -#: ../Doc/c-api/object.rst:427 +#: c-api/object.rst:427 msgid "" "Compute and return the hash value of an object *o*. On failure, return " "``-1``. This is the equivalent of the Python expression ``hash(o)``." msgstr "" -#: ../Doc/c-api/object.rst:430 +#: c-api/object.rst:430 msgid "" "The return type is now Py_hash_t. This is a signed integer the same size as " "Py_ssize_t." msgstr "" -#: ../Doc/c-api/object.rst:437 +#: c-api/object.rst:437 msgid "" "Set a :exc:`TypeError` indicating that ``type(o)`` is not hashable and " "return ``-1``. This function receives special treatment when stored in a " @@ -614,38 +623,38 @@ msgid "" "that it is not hashable." msgstr "" -#: ../Doc/c-api/object.rst:445 +#: c-api/object.rst:445 msgid "" "Returns ``1`` if the object *o* is considered to be true, and ``0`` " "otherwise. This is equivalent to the Python expression ``not not o``. On " "failure, return ``-1``." msgstr "" -#: ../Doc/c-api/object.rst:452 +#: c-api/object.rst:452 msgid "" "Returns ``0`` if the object *o* is considered to be true, and ``1`` " "otherwise. This is equivalent to the Python expression ``not o``. On " "failure, return ``-1``." msgstr "" -#: ../Doc/c-api/object.rst:461 +#: c-api/object.rst:461 msgid "" "When *o* is non-``NULL``, returns a type object corresponding to the object " "type of object *o*. On failure, raises :exc:`SystemError` and returns " "``NULL``. This is equivalent to the Python expression ``type(o)``. This " "function increments the reference count of the return value. There's really " "no reason to use this function instead of the common expression ``o-" -">ob_type``, which returns a pointer of type :c:type:`PyTypeObject\\*`, " -"except when the incremented reference count is needed." +">ob_type``, which returns a pointer of type :c:type:`PyTypeObject*`, except " +"when the incremented reference count is needed." msgstr "" -#: ../Doc/c-api/object.rst:472 +#: c-api/object.rst:472 msgid "" "Return true if the object *o* is of type *type* or a subtype of *type*. " "Both parameters must be non-``NULL``." msgstr "" -#: ../Doc/c-api/object.rst:481 +#: c-api/object.rst:481 msgid "" "Return the length of object *o*. If the object *o* provides either the " "sequence and mapping protocols, the sequence length is returned. On error, " @@ -653,7 +662,7 @@ msgid "" "``len(o)``." msgstr "" -#: ../Doc/c-api/object.rst:488 +#: c-api/object.rst:488 msgid "" "Return an estimated length for the object *o*. First try to return its " "actual length, then an estimate using :meth:`~object.__length_hint__`, and " @@ -661,7 +670,7 @@ msgid "" "equivalent to the Python expression ``operator.length_hint(o, default)``." msgstr "" -#: ../Doc/c-api/object.rst:498 +#: c-api/object.rst:498 #, fuzzy msgid "" "Return element of *o* corresponding to the object *key* or ``NULL`` on " @@ -671,20 +680,29 @@ msgstr "" "l'attribut en cas de succès, ou *NULL* en cas d'échec. Ceci est équivalent à " "l'expression Python ``o.attr_name``." -#: ../Doc/c-api/object.rst:504 +#: c-api/object.rst:504 +#, fuzzy msgid "" "Map the object *key* to the value *v*. Raise an exception and return ``-1`` " "on failure; return ``0`` on success. This is the equivalent of the Python " -"statement ``o[key] = v``." +"statement ``o[key] = v``. This function *does not* steal a reference to *v*." msgstr "" +"Définit la valeur de l'attribut nommé *attr_name*, pour l'objet *o*, à la " +"valeur *v*. Lève une exception et renvoie ``-1`` en cas d'échec ; renvoie " +"``0`` en cas de succès. Ceci est équivalent à l'instruction Python ``o." +"attr_name = v``." -#: ../Doc/c-api/object.rst:511 +#: c-api/object.rst:512 +#, fuzzy msgid "" "Remove the mapping for the object *key* from the object *o*. Return ``-1`` " "on failure. This is equivalent to the Python statement ``del o[key]``." msgstr "" +"Supprime la correspondance associée à la chaîne *key* dans l'objet *o*. " +"Renvoie ``-1`` en cas d'échec. C'est l'équivalent de la commande Python " +"``del o[key]``." -#: ../Doc/c-api/object.rst:517 +#: c-api/object.rst:518 msgid "" "This is equivalent to the Python expression ``dir(o)``, returning a " "(possibly empty) list of strings appropriate for the object argument, or " @@ -694,7 +712,7 @@ msgid "" "`PyErr_Occurred` will return false." msgstr "" -#: ../Doc/c-api/object.rst:526 +#: c-api/object.rst:527 msgid "" "This is equivalent to the Python expression ``iter(o)``. It returns a new " "iterator for the object argument, or the object itself if the object is " diff --git a/c-api/refcounting.po b/c-api/refcounting.po index 841f702bf5..d06afb2a8f 100644 --- a/c-api/refcounting.po +++ b/c-api/refcounting.po @@ -23,6 +23,8 @@ msgid "" "The macros in this section are used for managing reference counts of Python " "objects." msgstr "" +"Les macros dans cette section permettent de gérer le compteur de références " +"des objets Python." #: ../Doc/c-api/refcounting.rst:16 msgid "" @@ -36,6 +38,8 @@ msgid "" "Increment the reference count for object *o*. The object may be ``NULL``, " "in which case the macro has no effect." msgstr "" +"Incrémente le compteur de références de l'objet *o*. La macro n'a pas " +"d'effet si l'objet est ``NULL``." #: ../Doc/c-api/refcounting.rst:28 msgid "" @@ -57,6 +61,15 @@ msgid "" "update the list data structure, and then call :c:func:`Py_DECREF` for the " "temporary variable." msgstr "" +"La fonction de dés-allocation peut invoquer du code Python arbitraire (par " +"exemple quand une instance d'une classe avec une méthode :meth:`__del__` est " +"supprimée). Le code exécuté a accès à toutes les variables Python globales " +"mais les exceptions lors de l'exécution de ce code ne sont pas propagées. " +"Tous les objets qui peuvent être atteints à partir d'une variable globale " +"doivent être dans un état cohérent avant d'appeler :c:func:`Py_DECREF`. Par " +"exemple le code pour supprimer un élément d'une liste doit copier une " +"référence à l'objet dans une variable temporaire, mettre à jour la liste, et " +"enfin appeler :c:func:`Py_DECREF` avec la variable temporaire." #: ../Doc/c-api/refcounting.rst:47 msgid "" @@ -64,6 +77,10 @@ msgid "" "in which case the macro has no effect; otherwise the effect is the same as " "for :c:func:`Py_DECREF`, and the same warning applies." msgstr "" +"Décrémente le compteur de références de l'objet *o*. L'objet peut être " +"``NULL``, dans ce cas la macro n'a pas d'effet. Dans le cas contraire le " +"comportement est identique à :c:func:`Py_DECREF` et les mêmes avertissements " +"sont de rigueur." #: ../Doc/c-api/refcounting.rst:54 msgid "" @@ -74,12 +91,20 @@ msgid "" "object passed because the macro carefully uses a temporary variable and sets " "the argument to ``NULL`` before decrementing its reference count." msgstr "" +"Décrémente le compteur de références de l'objet *o*. L'objet peut être " +"``NULL``, dans ce cas la macro n'a pas d'effet. Dans le cas contraire le " +"comportement est identique à :c:func:`Py_DECREF`, puis l'argument est mis à " +"``NULL``. L'avertissement au sujet de l'objet passé en argument à :c:func:" +"`Py_DECREF` ne s'applique pas car la macro utilise une variable temporaire " +"et met l'objet à ``NULL`` avant de décrémenter le compteur de références." #: ../Doc/c-api/refcounting.rst:61 msgid "" "It is a good idea to use this macro whenever decrementing the reference " "count of an object that might be traversed during garbage collection." msgstr "" +"Il est recommandé d'utiliser cette macro lorsqu'on décrémente le compteur de " +"référence d'un objet qui peut être parcouru par le ramasse-miette." #: ../Doc/c-api/refcounting.rst:65 msgid "" @@ -95,3 +120,7 @@ msgid "" "core: :c:func:`_Py_Dealloc`, :c:func:`_Py_ForgetReference`, :c:func:" "`_Py_NewReference`, as well as the global variable :c:data:`_Py_RefTotal`." msgstr "" +"Les fonctions ou macros suivantes doivent être uniquement utilisées au sein " +"de l'interpréteur et ne font pas partie de l'API publique : :c:func:" +"`_Py_Dealloc`, :c:func:`_Py_ForgetReference`, :c:func:`_Py_NewReference`, " +"ainsi que la variable globale :c:data:`_Py_RefTotal`." diff --git a/c-api/reflection.po b/c-api/reflection.po index 35fa408108..c6fba04b1f 100644 --- a/c-api/reflection.po +++ b/c-api/reflection.po @@ -14,11 +14,11 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/c-api/reflection.rst:6 +#: c-api/reflection.rst:6 msgid "Reflection" msgstr "Réflexion" -#: ../Doc/c-api/reflection.rst:10 +#: c-api/reflection.rst:10 msgid "" "Return a dictionary of the builtins in the current execution frame, or the " "interpreter of the thread state if no frame is currently executing." @@ -27,7 +27,7 @@ msgstr "" "d'exécution, ou si aucune *frame* n'est exécutée, les fonctions natives du " "*thread* indiqué par le *thread state*." -#: ../Doc/c-api/reflection.rst:16 +#: c-api/reflection.rst:16 #, fuzzy msgid "" "Return a dictionary of the local variables in the current execution frame, " @@ -36,7 +36,7 @@ msgstr "" "Renvoie un dictionnaire des variables locales de la *frame* en cours " "d'exécution, ou *NULL* si aucune *frame* n'est en cours d'exécution." -#: ../Doc/c-api/reflection.rst:22 +#: c-api/reflection.rst:22 #, fuzzy msgid "" "Return a dictionary of the global variables in the current execution frame, " @@ -45,7 +45,7 @@ msgstr "" "Renvoie un dictionnaire des variables globales de la *frame* en cours " "d'exécution ou *NULL* si aucune *frame* n'est en cours d'exécution." -#: ../Doc/c-api/reflection.rst:28 +#: c-api/reflection.rst:28 #, fuzzy msgid "" "Return the current thread state's frame, which is ``NULL`` if no frame is " @@ -54,11 +54,11 @@ msgstr "" "Renvoie la *frame* actuelle selon le *thread state*, qui est *NULL* si " "aucune *frame* n'est en cours d'exécution." -#: ../Doc/c-api/reflection.rst:34 +#: c-api/reflection.rst:34 msgid "Return the line number that *frame* is currently executing." msgstr "Renvoie le numéro de ligne que *frame* est en train d'exécuter" -#: ../Doc/c-api/reflection.rst:39 +#: c-api/reflection.rst:39 msgid "" "Return the name of *func* if it is a function, class or instance object, " "else the name of *func*\\s type." @@ -66,7 +66,7 @@ msgstr "" "Renvoie le nom de *func* s'il s'agit d'une fonction, d'une classe ou d'un " "objet d'instance, sinon le nom du type de *func*" -#: ../Doc/c-api/reflection.rst:45 +#: c-api/reflection.rst:45 msgid "" "Return a description string, depending on the type of *func*. Return values " "include \"()\" for functions and methods, \" constructor\", \" instance\", " @@ -75,6 +75,6 @@ msgid "" msgstr "" "Renvoie une description en chaîne de caractères, en fonction du type de " "*func*. Les valeurs renvoyées peuvent être ``\"()\"`` pour les fonction et " -"les méthodes, ``\\\" constructor\\\"``, ``\\\" instance\\\"``, ``\\\" object" -"\\\"``. Concaténé avec le résultat de :c:func:`PyEval_GetFuncName`, le " +"les méthodes, ``\\\" constructor\\\"``, ``\\\" instance\\\"``, ``\\\" " +"object\\\"``. Concaténé avec le résultat de :c:func:`PyEval_GetFuncName`, le " "résultat sera une description de *func*" diff --git a/c-api/sequence.po b/c-api/sequence.po index 76590307b5..de4fc1dc23 100644 --- a/c-api/sequence.po +++ b/c-api/sequence.po @@ -28,10 +28,13 @@ msgid "" msgstr "" #: ../Doc/c-api/sequence.rst:23 +#, fuzzy msgid "" "Returns the number of objects in sequence *o* on success, and ``-1`` on " "failure. This is equivalent to the Python expression ``len(o)``." msgstr "" +"Renvoie le nombre de clefs dans l'objet *o* et ``-1`` en cas d'échec. C'est " +"l'équivalent de l'expression Python ``len(o)``." #: ../Doc/c-api/sequence.rst:29 msgid "" diff --git a/c-api/set.po b/c-api/set.po index 3a81873621..6631fa55c6 100644 --- a/c-api/set.po +++ b/c-api/set.po @@ -45,16 +45,22 @@ msgid "" msgstr "" #: ../Doc/c-api/set.rst:40 +#, fuzzy msgid "" "This is an instance of :c:type:`PyTypeObject` representing the Python :class:" "`set` type." msgstr "" +"C'est une instance de :c:type:`PyTypeObject` représentant le type Python :" +"class:`code`." #: ../Doc/c-api/set.rst:46 +#, fuzzy msgid "" "This is an instance of :c:type:`PyTypeObject` representing the Python :class:" "`frozenset` type." msgstr "" +"C'est une instance de :c:type:`PyTypeObject` représentant le type Python :" +"class:`code`." #: ../Doc/c-api/set.rst:49 msgid "" diff --git a/c-api/slice.po b/c-api/slice.po index 3f846a15c0..4f81430334 100644 --- a/c-api/slice.po +++ b/c-api/slice.po @@ -15,8 +15,9 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" #: ../Doc/c-api/slice.rst:6 +#, fuzzy msgid "Slice Objects" -msgstr "" +msgstr "Objets tranches" #: ../Doc/c-api/slice.rst:11 msgid "" diff --git a/c-api/stable.po b/c-api/stable.po index 5d7aa39777..68b52fe884 100644 --- a/c-api/stable.po +++ b/c-api/stable.po @@ -14,11 +14,11 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/c-api/stable.rst:7 +#: c-api/stable.rst:7 msgid "Stable Application Binary Interface" msgstr "ABI Stable" -#: ../Doc/c-api/stable.rst:9 +#: c-api/stable.rst:9 msgid "" "Traditionally, the C API of Python will change with every release. Most " "changes will be source-compatible, typically by only adding API, rather than " @@ -30,7 +30,7 @@ msgstr "" "API sont ajoutées, mais ni modifiées ni supprimées (bien que certaines " "interfaces puissent être supprimées, après avoir d'abord été dépréciées)." -#: ../Doc/c-api/stable.rst:14 +#: c-api/stable.rst:14 msgid "" "Unfortunately, the API compatibility does not extend to binary compatibility " "(the ABI). The reason is primarily the evolution of struct definitions, " @@ -51,13 +51,13 @@ msgstr "" "d'extension sont liés à un *pythonXY.dll* spécifique, ils est donc " "nécessaire de les recompiler pour les lier au nouveau DLL." -#: ../Doc/c-api/stable.rst:23 +#: c-api/stable.rst:23 msgid "" "Since Python 3.2, a subset of the API has been declared to guarantee a " -"stable ABI. Extension modules wishing to use this API (called \"limited API" -"\") need to define ``Py_LIMITED_API``. A number of interpreter details then " -"become hidden from the extension module; in return, a module is built that " -"works on any 3.x version (x>=2) without recompilation." +"stable ABI. Extension modules wishing to use this API (called \"limited " +"API\") need to define ``Py_LIMITED_API``. A number of interpreter details " +"then become hidden from the extension module; in return, a module is built " +"that works on any 3.x version (x>=2) without recompilation." msgstr "" "Depuis Python 3.2 il est garanti qu'une certaine partie de l'API gardera une " "ABI stable. Les modules d'extension souhaitant utiliser cette API (Appellée " @@ -66,7 +66,7 @@ msgstr "" "devient compatible avec toutes les versions de Python 3.x (x>=2) sans " "recompilation." -#: ../Doc/c-api/stable.rst:29 +#: c-api/stable.rst:29 msgid "" "In some cases, the stable ABI needs to be extended with new functions. " "Extension modules wishing to use these new APIs need to set " @@ -85,7 +85,7 @@ msgstr "" "ultérieures de Python, mais ne pourront pas se charger (dû à des symboles " "manquants) sur les versions plus anciennes." -#: ../Doc/c-api/stable.rst:36 +#: c-api/stable.rst:36 msgid "" "As of Python 3.2, the set of functions available to the limited API is " "documented in :pep:`384`. In the C API documentation, API elements that are " diff --git a/c-api/structures.po b/c-api/structures.po index 459c8292e5..ada5b73acc 100644 --- a/c-api/structures.po +++ b/c-api/structures.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-15 18:54+0100\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,18 +14,18 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/c-api/structures.rst:6 +#: c-api/structures.rst:6 msgid "Common Object Structures" msgstr "" -#: ../Doc/c-api/structures.rst:8 +#: c-api/structures.rst:8 msgid "" "There are a large number of structures which are used in the definition of " "object types for Python. This section describes these structures and how " "they are used." msgstr "" -#: ../Doc/c-api/structures.rst:12 +#: c-api/structures.rst:12 msgid "" "All Python objects ultimately share a small number of fields at the " "beginning of the object's representation in memory. These are represented " @@ -34,7 +34,7 @@ msgid "" "directly or indirectly, in the definition of all other Python objects." msgstr "" -#: ../Doc/c-api/structures.rst:21 +#: c-api/structures.rst:21 msgid "" "All object types are extensions of this type. This is a type which contains " "the information Python needs to treat a pointer to an object as an object. " @@ -45,7 +45,7 @@ msgid "" "macros :c:macro:`Py_REFCNT` and :c:macro:`Py_TYPE`." msgstr "" -#: ../Doc/c-api/structures.rst:33 +#: c-api/structures.rst:33 msgid "" "This is an extension of :c:type:`PyObject` that adds the :attr:`ob_size` " "field. This is only used for objects that have some notion of *length*. " @@ -54,190 +54,184 @@ msgid "" "and :c:macro:`Py_SIZE`." msgstr "" -#: ../Doc/c-api/structures.rst:42 +#: c-api/structures.rst:42 msgid "" "This is a macro used when declaring new types which represent objects " "without a varying length. The PyObject_HEAD macro expands to::" msgstr "" -#: ../Doc/c-api/structures.rst:47 +#: c-api/structures.rst:47 msgid "See documentation of :c:type:`PyObject` above." msgstr "" -#: ../Doc/c-api/structures.rst:52 +#: c-api/structures.rst:52 msgid "" "This is a macro used when declaring new types which represent objects with a " "length that varies from instance to instance. The PyObject_VAR_HEAD macro " "expands to::" msgstr "" -#: ../Doc/c-api/structures.rst:58 +#: c-api/structures.rst:58 msgid "See documentation of :c:type:`PyVarObject` above." msgstr "" -#: ../Doc/c-api/structures.rst:63 +#: c-api/structures.rst:63 msgid "" "This macro is used to access the :attr:`ob_type` member of a Python object. " "It expands to::" msgstr "" -#: ../Doc/c-api/structures.rst:71 +#: c-api/structures.rst:71 msgid "" "This macro is used to access the :attr:`ob_refcnt` member of a Python " "object. It expands to::" msgstr "" -#: ../Doc/c-api/structures.rst:80 +#: c-api/structures.rst:80 msgid "" "This macro is used to access the :attr:`ob_size` member of a Python object. " "It expands to::" msgstr "" -#: ../Doc/c-api/structures.rst:88 +#: c-api/structures.rst:88 msgid "" "This is a macro which expands to initialization values for a new :c:type:" "`PyObject` type. This macro expands to::" msgstr "" -#: ../Doc/c-api/structures.rst:97 +#: c-api/structures.rst:97 msgid "" "This is a macro which expands to initialization values for a new :c:type:" "`PyVarObject` type, including the :attr:`ob_size` field. This macro expands " "to::" msgstr "" -#: ../Doc/c-api/structures.rst:107 +#: c-api/structures.rst:107 msgid "" "Type of the functions used to implement most Python callables in C. " -"Functions of this type take two :c:type:`PyObject\\*` parameters and return " +"Functions of this type take two :c:type:`PyObject*` parameters and return " "one such value. If the return value is ``NULL``, an exception shall have " "been set. If not ``NULL``, the return value is interpreted as the return " "value of the function as exposed in Python. The function must return a new " "reference." msgstr "" -#: ../Doc/c-api/structures.rst:117 +#: c-api/structures.rst:117 msgid "" "Type of the functions used to implement Python callables in C with " "signature :const:`METH_VARARGS | METH_KEYWORDS`." msgstr "" -#: ../Doc/c-api/structures.rst:123 +#: c-api/structures.rst:123 msgid "" "Type of the functions used to implement Python callables in C with " "signature :const:`METH_FASTCALL`." msgstr "" -#: ../Doc/c-api/structures.rst:129 +#: c-api/structures.rst:129 msgid "" "Type of the functions used to implement Python callables in C with " "signature :const:`METH_FASTCALL | METH_KEYWORDS`." msgstr "" -#: ../Doc/c-api/structures.rst:135 +#: c-api/structures.rst:135 msgid "" "Structure used to describe a method of an extension type. This structure " "has four fields:" msgstr "" -#: ../Doc/c-api/structures.rst:139 ../Doc/c-api/structures.rst:279 -#: ../Doc/c-api/structures.rst:345 +#: c-api/structures.rst:279 c-api/structures.rst:345 msgid "Field" -msgstr "" +msgstr "Champ" -#: ../Doc/c-api/structures.rst:139 ../Doc/c-api/structures.rst:279 -#: ../Doc/c-api/structures.rst:345 +#: c-api/structures.rst:279 c-api/structures.rst:345 msgid "C Type" msgstr "Type C" -#: ../Doc/c-api/structures.rst:139 ../Doc/c-api/structures.rst:279 -#: ../Doc/c-api/structures.rst:345 +#: c-api/structures.rst:279 c-api/structures.rst:345 msgid "Meaning" msgstr "Signification" -#: ../Doc/c-api/structures.rst:141 +#: c-api/structures.rst:141 msgid ":attr:`ml_name`" -msgstr "" +msgstr ":attr:`ml_name`" -#: ../Doc/c-api/structures.rst:141 ../Doc/c-api/structures.rst:149 -#: ../Doc/c-api/structures.rst:281 ../Doc/c-api/structures.rst:294 -#: ../Doc/c-api/structures.rst:310 ../Doc/c-api/structures.rst:347 -#: ../Doc/c-api/structures.rst:355 +#: c-api/structures.rst:149 c-api/structures.rst:294 c-api/structures.rst:347 +#: c-api/structures.rst:355 msgid "const char \\*" msgstr "" -#: ../Doc/c-api/structures.rst:141 +#: c-api/structures.rst:141 msgid "name of the method" msgstr "" -#: ../Doc/c-api/structures.rst:143 +#: c-api/structures.rst:143 msgid ":attr:`ml_meth`" -msgstr "" +msgstr ":attr:`ml_meth`" -#: ../Doc/c-api/structures.rst:143 +#: c-api/structures.rst:143 msgid "PyCFunction" msgstr "PyCFunction" -#: ../Doc/c-api/structures.rst:143 +#: c-api/structures.rst:143 msgid "pointer to the C implementation" msgstr "" -#: ../Doc/c-api/structures.rst:146 +#: c-api/structures.rst:146 msgid ":attr:`ml_flags`" -msgstr "" +msgstr ":attr:`ml_flags`" -#: ../Doc/c-api/structures.rst:146 ../Doc/c-api/structures.rst:283 -#: ../Doc/c-api/structures.rst:290 ../Doc/c-api/structures.rst:306 +#: c-api/structures.rst:283 c-api/structures.rst:306 msgid "int" msgstr "*int*" -#: ../Doc/c-api/structures.rst:146 +#: c-api/structures.rst:146 msgid "flag bits indicating how the call should be constructed" msgstr "" -#: ../Doc/c-api/structures.rst:149 +#: c-api/structures.rst:149 msgid ":attr:`ml_doc`" -msgstr "" +msgstr ":attr:`ml_doc`" -#: ../Doc/c-api/structures.rst:149 ../Doc/c-api/structures.rst:294 +#: c-api/structures.rst:294 msgid "points to the contents of the docstring" msgstr "" -#: ../Doc/c-api/structures.rst:153 +#: c-api/structures.rst:153 msgid "" "The :attr:`ml_meth` is a C function pointer. The functions may be of " -"different types, but they always return :c:type:`PyObject\\*`. If the " +"different types, but they always return :c:type:`PyObject*`. If the " "function is not of the :c:type:`PyCFunction`, the compiler will require a " "cast in the method table. Even though :c:type:`PyCFunction` defines the " -"first parameter as :c:type:`PyObject\\*`, it is common that the method " +"first parameter as :c:type:`PyObject*`, it is common that the method " "implementation uses the specific C type of the *self* object." msgstr "" -#: ../Doc/c-api/structures.rst:160 +#: c-api/structures.rst:160 msgid "" "The :attr:`ml_flags` field is a bitfield which can include the following " "flags. The individual flags indicate either a calling convention or a " "binding convention." msgstr "" -#: ../Doc/c-api/structures.rst:164 +#: c-api/structures.rst:164 msgid "" "There are four basic calling conventions for positional arguments and two of " "them can be combined with :const:`METH_KEYWORDS` to support also keyword " "arguments. So there are a total of 6 calling conventions:" msgstr "" -#: ../Doc/c-api/structures.rst:170 +#: c-api/structures.rst:170 msgid "" "This is the typical calling convention, where the methods have the type :c:" -"type:`PyCFunction`. The function expects two :c:type:`PyObject\\*` values. " -"The first one is the *self* object for methods; for module functions, it is " -"the module object. The second parameter (often called *args*) is a tuple " -"object representing all arguments. This parameter is typically processed " -"using :c:func:`PyArg_ParseTuple` or :c:func:`PyArg_UnpackTuple`." +"type:`PyCFunction`. The function expects two :c:type:`PyObject*` values. The " +"first one is the *self* object for methods; for module functions, it is the " +"module object. The second parameter (often called *args*) is a tuple object " +"representing all arguments. This parameter is typically processed using :c:" +"func:`PyArg_ParseTuple` or :c:func:`PyArg_UnpackTuple`." msgstr "" -#: ../Doc/c-api/structures.rst:180 +#: c-api/structures.rst:180 msgid "" "Methods with these flags must be of type :c:type:`PyCFunctionWithKeywords`. " "The function expects three parameters: *self*, *args*, *kwargs* where " @@ -246,31 +240,31 @@ msgid "" "using :c:func:`PyArg_ParseTupleAndKeywords`." msgstr "" -#: ../Doc/c-api/structures.rst:189 +#: c-api/structures.rst:189 msgid "" "Fast calling convention supporting only positional arguments. The methods " "have the type :c:type:`_PyCFunctionFast`. The first parameter is *self*, the " -"second parameter is a C array of :c:type:`PyObject\\*` values indicating the " +"second parameter is a C array of :c:type:`PyObject*` values indicating the " "arguments and the third parameter is the number of arguments (the length of " "the array)." msgstr "" -#: ../Doc/c-api/structures.rst:195 ../Doc/c-api/structures.rst:210 +#: c-api/structures.rst:210 msgid "This is not part of the :ref:`limited API `." msgstr "" -#: ../Doc/c-api/structures.rst:202 +#: c-api/structures.rst:202 msgid "" "Extension of :const:`METH_FASTCALL` supporting also keyword arguments, with " "methods of type :c:type:`_PyCFunctionFastWithKeywords`. Keyword arguments " "are passed the same way as in the vectorcall protocol: there is an " -"additional fourth :c:type:`PyObject\\*` parameter which is a tuple " +"additional fourth :c:type:`PyObject*` parameter which is a tuple " "representing the names of the keyword arguments or possibly ``NULL`` if " "there are no keywords. The values of the keyword arguments are stored in " "the *args* array, after the positional arguments." msgstr "" -#: ../Doc/c-api/structures.rst:217 +#: c-api/structures.rst:217 msgid "" "Methods without parameters don't need to check whether arguments are given " "if they are listed with the :const:`METH_NOARGS` flag. They need to be of " @@ -279,16 +273,16 @@ msgid "" "the second parameter will be ``NULL``." msgstr "" -#: ../Doc/c-api/structures.rst:226 +#: c-api/structures.rst:226 msgid "" "Methods with a single object argument can be listed with the :const:`METH_O` " "flag, instead of invoking :c:func:`PyArg_ParseTuple` with a ``\"O\"`` " "argument. They have the type :c:type:`PyCFunction`, with the *self* " -"parameter, and a :c:type:`PyObject\\*` parameter representing the single " +"parameter, and a :c:type:`PyObject*` parameter representing the single " "argument." msgstr "" -#: ../Doc/c-api/structures.rst:232 +#: c-api/structures.rst:232 msgid "" "These two constants are not used to indicate the calling convention but the " "binding when use with methods of classes. These may not be used for " @@ -296,27 +290,27 @@ msgid "" "any given method." msgstr "" -#: ../Doc/c-api/structures.rst:242 +#: c-api/structures.rst:242 msgid "" "The method will be passed the type object as the first parameter rather than " "an instance of the type. This is used to create *class methods*, similar to " "what is created when using the :func:`classmethod` built-in function." msgstr "" -#: ../Doc/c-api/structures.rst:252 +#: c-api/structures.rst:252 msgid "" "The method will be passed ``NULL`` as the first parameter rather than an " "instance of the type. This is used to create *static methods*, similar to " "what is created when using the :func:`staticmethod` built-in function." msgstr "" -#: ../Doc/c-api/structures.rst:256 +#: c-api/structures.rst:256 msgid "" "One other constant controls whether a method is loaded in place of another " "definition with the same method name." msgstr "" -#: ../Doc/c-api/structures.rst:262 +#: c-api/structures.rst:262 msgid "" "The method will be loaded in place of existing definitions. Without " "*METH_COEXIST*, the default is to skip repeated definitions. Since slot " @@ -329,190 +323,189 @@ msgid "" "calls." msgstr "" -#: ../Doc/c-api/structures.rst:275 +#: c-api/structures.rst:275 msgid "" "Structure which describes an attribute of a type which corresponds to a C " "struct member. Its fields are:" msgstr "" -#: ../Doc/c-api/structures.rst:281 +#: c-api/structures.rst:281 msgid ":attr:`name`" -msgstr "" +msgstr ":attr:`name`" -#: ../Doc/c-api/structures.rst:281 +#: c-api/structures.rst:281 msgid "name of the member" msgstr "" -#: ../Doc/c-api/structures.rst:283 +#: c-api/structures.rst:283 msgid ":attr:`!type`" -msgstr "" +msgstr ":attr:`!type`" -#: ../Doc/c-api/structures.rst:283 +#: c-api/structures.rst:283 msgid "the type of the member in the C struct" msgstr "" -#: ../Doc/c-api/structures.rst:286 +#: c-api/structures.rst:286 msgid ":attr:`offset`" -msgstr "" +msgstr ":attr:`offset`" -#: ../Doc/c-api/structures.rst:286 ../Doc/c-api/structures.rst:322 +#: c-api/structures.rst:322 msgid "Py_ssize_t" msgstr "" -#: ../Doc/c-api/structures.rst:286 +#: c-api/structures.rst:286 msgid "" "the offset in bytes that the member is located on the type's object struct" msgstr "" -#: ../Doc/c-api/structures.rst:290 +#: c-api/structures.rst:290 msgid ":attr:`flags`" -msgstr "" +msgstr ":attr:`flags`" -#: ../Doc/c-api/structures.rst:290 +#: c-api/structures.rst:290 msgid "flag bits indicating if the field should be read-only or writable" msgstr "" -#: ../Doc/c-api/structures.rst:294 +#: c-api/structures.rst:294 msgid ":attr:`doc`" -msgstr "" +msgstr ":attr:`doc`" -#: ../Doc/c-api/structures.rst:298 +#: c-api/structures.rst:298 msgid "" ":attr:`!type` can be one of many ``T_`` macros corresponding to various C " "types. When the member is accessed in Python, it will be converted to the " "equivalent Python type." msgstr "" -#: ../Doc/c-api/structures.rst:303 +#: c-api/structures.rst:303 msgid "Macro name" msgstr "" -#: ../Doc/c-api/structures.rst:303 +#: c-api/structures.rst:303 msgid "C type" msgstr "Type C" -#: ../Doc/c-api/structures.rst:305 +#: c-api/structures.rst:305 msgid "T_SHORT" msgstr "" -#: ../Doc/c-api/structures.rst:305 +#: c-api/structures.rst:305 msgid "short" msgstr "" -#: ../Doc/c-api/structures.rst:306 +#: c-api/structures.rst:306 msgid "T_INT" msgstr "" -#: ../Doc/c-api/structures.rst:307 +#: c-api/structures.rst:307 msgid "T_LONG" msgstr "" -#: ../Doc/c-api/structures.rst:307 +#: c-api/structures.rst:307 msgid "long" msgstr "" -#: ../Doc/c-api/structures.rst:308 +#: c-api/structures.rst:308 msgid "T_FLOAT" msgstr "" -#: ../Doc/c-api/structures.rst:308 +#: c-api/structures.rst:308 msgid "float" msgstr "*float*" -#: ../Doc/c-api/structures.rst:309 +#: c-api/structures.rst:309 msgid "T_DOUBLE" msgstr "" -#: ../Doc/c-api/structures.rst:309 +#: c-api/structures.rst:309 msgid "double" msgstr "double" -#: ../Doc/c-api/structures.rst:310 +#: c-api/structures.rst:310 msgid "T_STRING" msgstr "" -#: ../Doc/c-api/structures.rst:311 +#: c-api/structures.rst:311 msgid "T_OBJECT" msgstr "" -#: ../Doc/c-api/structures.rst:311 ../Doc/c-api/structures.rst:312 +#: c-api/structures.rst:312 msgid "PyObject \\*" msgstr "PyObject \\*" -#: ../Doc/c-api/structures.rst:312 +#: c-api/structures.rst:312 msgid "T_OBJECT_EX" msgstr "" -#: ../Doc/c-api/structures.rst:313 +#: c-api/structures.rst:313 msgid "T_CHAR" msgstr "" -#: ../Doc/c-api/structures.rst:313 ../Doc/c-api/structures.rst:314 -#: ../Doc/c-api/structures.rst:319 +#: c-api/structures.rst:314 c-api/structures.rst:319 msgid "char" msgstr "char" -#: ../Doc/c-api/structures.rst:314 +#: c-api/structures.rst:314 msgid "T_BYTE" msgstr "" -#: ../Doc/c-api/structures.rst:315 +#: c-api/structures.rst:315 msgid "T_UBYTE" msgstr "" -#: ../Doc/c-api/structures.rst:315 +#: c-api/structures.rst:315 msgid "unsigned char" msgstr "``unsigned char``" -#: ../Doc/c-api/structures.rst:316 +#: c-api/structures.rst:316 msgid "T_UINT" msgstr "" -#: ../Doc/c-api/structures.rst:316 +#: c-api/structures.rst:316 msgid "unsigned int" msgstr "``unsigned int``" -#: ../Doc/c-api/structures.rst:317 +#: c-api/structures.rst:317 msgid "T_USHORT" msgstr "" -#: ../Doc/c-api/structures.rst:317 +#: c-api/structures.rst:317 msgid "unsigned short" msgstr "``unsigned short``" -#: ../Doc/c-api/structures.rst:318 +#: c-api/structures.rst:318 msgid "T_ULONG" msgstr "" -#: ../Doc/c-api/structures.rst:318 +#: c-api/structures.rst:318 msgid "unsigned long" msgstr "``unsigned long``" -#: ../Doc/c-api/structures.rst:319 +#: c-api/structures.rst:319 msgid "T_BOOL" msgstr "" -#: ../Doc/c-api/structures.rst:320 +#: c-api/structures.rst:320 msgid "T_LONGLONG" msgstr "" -#: ../Doc/c-api/structures.rst:320 +#: c-api/structures.rst:320 msgid "long long" msgstr "" -#: ../Doc/c-api/structures.rst:321 +#: c-api/structures.rst:321 msgid "T_ULONGLONG" msgstr "" -#: ../Doc/c-api/structures.rst:321 +#: c-api/structures.rst:321 msgid "unsigned long long" msgstr "``unsigned long long``" -#: ../Doc/c-api/structures.rst:322 +#: c-api/structures.rst:322 msgid "T_PYSSIZET" msgstr "" -#: ../Doc/c-api/structures.rst:325 +#: c-api/structures.rst:325 msgid "" ":c:macro:`T_OBJECT` and :c:macro:`T_OBJECT_EX` differ in that :c:macro:" "`T_OBJECT` returns ``None`` if the member is ``NULL`` and :c:macro:" @@ -522,7 +515,7 @@ msgid "" "than :c:macro:`T_OBJECT`." msgstr "" -#: ../Doc/c-api/structures.rst:332 +#: c-api/structures.rst:332 msgid "" ":attr:`flags` can be ``0`` for write and read access or :c:macro:`READONLY` " "for read-only access. Using :c:macro:`T_STRING` for :attr:`type` implies :c:" @@ -531,87 +524,86 @@ msgid "" "are set to ``NULL``)." msgstr "" -#: ../Doc/c-api/structures.rst:341 +#: c-api/structures.rst:341 msgid "" "Structure to define property-like access for a type. See also description of " "the :c:member:`PyTypeObject.tp_getset` slot." msgstr "" -#: ../Doc/c-api/structures.rst:347 +#: c-api/structures.rst:347 msgid "name" -msgstr "" +msgstr "nom" -#: ../Doc/c-api/structures.rst:347 +#: c-api/structures.rst:347 msgid "attribute name" msgstr "" -#: ../Doc/c-api/structures.rst:349 +#: c-api/structures.rst:349 msgid "get" msgstr "" -#: ../Doc/c-api/structures.rst:349 +#: c-api/structures.rst:349 msgid "getter" msgstr "" -#: ../Doc/c-api/structures.rst:349 +#: c-api/structures.rst:349 msgid "C Function to get the attribute" msgstr "" -#: ../Doc/c-api/structures.rst:351 +#: c-api/structures.rst:351 msgid "set" msgstr "" -#: ../Doc/c-api/structures.rst:351 +#: c-api/structures.rst:351 msgid "setter" msgstr "" -#: ../Doc/c-api/structures.rst:351 +#: c-api/structures.rst:351 msgid "" "optional C function to set or delete the attribute, if omitted the attribute " "is readonly" msgstr "" -#: ../Doc/c-api/structures.rst:355 +#: c-api/structures.rst:355 msgid "doc" msgstr "" -#: ../Doc/c-api/structures.rst:355 +#: c-api/structures.rst:355 msgid "optional docstring" msgstr "" -#: ../Doc/c-api/structures.rst:357 +#: c-api/structures.rst:357 msgid "closure" msgstr "" -#: ../Doc/c-api/structures.rst:357 +#: c-api/structures.rst:357 msgid "void \\*" msgstr "" -#: ../Doc/c-api/structures.rst:357 +#: c-api/structures.rst:357 msgid "" "optional function pointer, providing additional data for getter and setter" msgstr "" -#: ../Doc/c-api/structures.rst:362 +#: c-api/structures.rst:362 msgid "" -"The ``get`` function takes one :c:type:`PyObject\\*` parameter (the " -"instance) and a function pointer (the associated ``closure``)::" +"The ``get`` function takes one :c:type:`PyObject*` parameter (the instance) " +"and a function pointer (the associated ``closure``)::" msgstr "" -#: ../Doc/c-api/structures.rst:367 +#: c-api/structures.rst:367 msgid "" "It should return a new reference on success or ``NULL`` with a set exception " "on failure." msgstr "" -#: ../Doc/c-api/structures.rst:370 +#: c-api/structures.rst:370 msgid "" -"``set`` functions take two :c:type:`PyObject\\*` parameters (the instance " -"and the value to be set) and a function pointer (the associated " -"``closure``)::" +"``set`` functions take two :c:type:`PyObject*` parameters (the instance and " +"the value to be set) and a function pointer (the associated ``closure``)::" msgstr "" -#: ../Doc/c-api/structures.rst:375 +#: c-api/structures.rst:375 msgid "" "In case the attribute should be deleted the second parameter is ``NULL``. " "Should return ``0`` on success or ``-1`` with a set exception on failure." diff --git a/c-api/sys.po b/c-api/sys.po index 0dc5e73b85..dfcc67a7d5 100644 --- a/c-api/sys.po +++ b/c-api/sys.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-12-05 23:16+0100\n" +"POT-Creation-Date: 2020-02-04 10:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -373,10 +373,22 @@ msgid "" msgstr "" #: ../Doc/c-api/sys.rst:323 +msgid "" +"Note that ``#`` format characters should always be treated as " +"``Py_ssize_t``, regardless of whether ``PY_SSIZE_T_CLEAN`` was defined." +msgstr "" + +#: ../Doc/c-api/sys.rst:326 msgid ":func:`sys.audit` performs the same function from Python code." msgstr "" -#: ../Doc/c-api/sys.rst:330 +#: ../Doc/c-api/sys.rst:332 +msgid "" +"Require ``Py_ssize_t`` for ``#`` format characters. Previously, an " +"unavoidable deprecation warning was raised." +msgstr "" + +#: ../Doc/c-api/sys.rst:338 msgid "" "Append the callable *hook* to the list of active auditing hooks. Return zero " "for success and non-zero on failure. If the runtime has been initialized, " @@ -384,14 +396,14 @@ msgid "" "all interpreters created by the runtime." msgstr "" -#: ../Doc/c-api/sys.rst:336 +#: ../Doc/c-api/sys.rst:344 msgid "" "The *userData* pointer is passed into the hook function. Since hook " "functions may be called from different runtimes, this pointer should not " "refer directly to Python state." msgstr "" -#: ../Doc/c-api/sys.rst:340 +#: ../Doc/c-api/sys.rst:348 msgid "" "This function is safe to call before :c:func:`Py_Initialize`. When called " "after runtime initialization, existing audit hooks are notified and may " @@ -399,7 +411,7 @@ msgid "" "`Exception` (other errors will not be silenced)." msgstr "" -#: ../Doc/c-api/sys.rst:345 +#: ../Doc/c-api/sys.rst:353 msgid "" "The hook function is of type :c:type:`int (*)(const char *event, PyObject " "*args, void *userData)`, where *args* is guaranteed to be a :c:type:" @@ -407,7 +419,7 @@ msgid "" "Python interpreter that raised the event." msgstr "" -#: ../Doc/c-api/sys.rst:350 +#: ../Doc/c-api/sys.rst:358 msgid "" "See :pep:`578` for a detailed description of auditing. Functions in the " "runtime and standard library that raise events are listed in the :ref:`audit " @@ -419,8 +431,10 @@ msgid "" "Raises an :ref:`auditing event ` ``sys.addaudithook`` with no " "arguments." msgstr "" +"Déclenche un :ref:`événement d'audit ` ``sys.addaudithook`` sans " +"arguments." -#: ../Doc/c-api/sys.rst:357 +#: ../Doc/c-api/sys.rst:365 msgid "" "If the interpreter is initialized, this function raises a auditing event " "``sys.addaudithook`` with no arguments. If any existing hooks raise an " @@ -429,11 +443,11 @@ msgid "" "hook has been added unless they control all existing hooks." msgstr "" -#: ../Doc/c-api/sys.rst:369 +#: ../Doc/c-api/sys.rst:377 msgid "Process Control" msgstr "" -#: ../Doc/c-api/sys.rst:376 +#: ../Doc/c-api/sys.rst:384 msgid "" "Print a fatal error message and kill the process. No cleanup is performed. " "This function should only be invoked when a condition is detected that would " @@ -443,18 +457,18 @@ msgid "" "file:`core` file." msgstr "" -#: ../Doc/c-api/sys.rst:390 +#: ../Doc/c-api/sys.rst:398 msgid "" "Exit the current process. This calls :c:func:`Py_FinalizeEx` and then calls " "the standard C library function ``exit(status)``. If :c:func:" "`Py_FinalizeEx` indicates an error, the exit status is set to 120." msgstr "" -#: ../Doc/c-api/sys.rst:394 +#: ../Doc/c-api/sys.rst:402 msgid "Errors from finalization no longer ignored." msgstr "" -#: ../Doc/c-api/sys.rst:404 +#: ../Doc/c-api/sys.rst:412 msgid "" "Register a cleanup function to be called by :c:func:`Py_FinalizeEx`. The " "cleanup function will be called with no arguments and should return no " diff --git a/c-api/tuple.po b/c-api/tuple.po index 5120efe465..b1df2628f2 100644 --- a/c-api/tuple.po +++ b/c-api/tuple.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-15 18:54+0100\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,37 +14,42 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/c-api/tuple.rst:6 +#: c-api/tuple.rst:6 msgid "Tuple Objects" msgstr "" -#: ../Doc/c-api/tuple.rst:13 +#: c-api/tuple.rst:13 +#, fuzzy msgid "This subtype of :c:type:`PyObject` represents a Python tuple object." msgstr "" +"Ce sous-type de :c:type:`PyObject` représente un objet ``bytearray`` Python." -#: ../Doc/c-api/tuple.rst:18 +#: c-api/tuple.rst:18 +#, fuzzy msgid "" "This instance of :c:type:`PyTypeObject` represents the Python tuple type; it " "is the same object as :class:`tuple` in the Python layer." msgstr "" +"Cette instance de :c:type:`PyTypeObject` représente le type Python " +"*bytearray*, c'est le même que :class:`bytearray` côté Python." -#: ../Doc/c-api/tuple.rst:24 +#: c-api/tuple.rst:24 msgid "" "Return true if *p* is a tuple object or an instance of a subtype of the " "tuple type." msgstr "" -#: ../Doc/c-api/tuple.rst:30 +#: c-api/tuple.rst:30 msgid "" "Return true if *p* is a tuple object, but not an instance of a subtype of " "the tuple type." msgstr "" -#: ../Doc/c-api/tuple.rst:36 +#: c-api/tuple.rst:36 msgid "Return a new tuple object of size *len*, or ``NULL`` on failure." msgstr "" -#: ../Doc/c-api/tuple.rst:41 +#: c-api/tuple.rst:41 msgid "" "Return a new tuple object of size *n*, or ``NULL`` on failure. The tuple " "values are initialized to the subsequent *n* C arguments pointing to Python " @@ -52,61 +57,61 @@ msgid "" "``Py_BuildValue(\"(OO)\", a, b)``." msgstr "" -#: ../Doc/c-api/tuple.rst:48 +#: c-api/tuple.rst:48 msgid "Take a pointer to a tuple object, and return the size of that tuple." msgstr "" -#: ../Doc/c-api/tuple.rst:53 +#: c-api/tuple.rst:53 msgid "" "Return the size of the tuple *p*, which must be non-``NULL`` and point to a " "tuple; no error checking is performed." msgstr "" -#: ../Doc/c-api/tuple.rst:59 +#: c-api/tuple.rst:59 msgid "" "Return the object at position *pos* in the tuple pointed to by *p*. If " "*pos* is out of bounds, return ``NULL`` and set an :exc:`IndexError` " "exception." msgstr "" -#: ../Doc/c-api/tuple.rst:65 +#: c-api/tuple.rst:65 msgid "Like :c:func:`PyTuple_GetItem`, but does no checking of its arguments." msgstr "" -#: ../Doc/c-api/tuple.rst:70 +#: c-api/tuple.rst:70 msgid "" "Return the slice of the tuple pointed to by *p* between *low* and *high*, or " "``NULL`` on failure. This is the equivalent of the Python expression " "``p[low:high]``. Indexing from the end of the list is not supported." msgstr "" -#: ../Doc/c-api/tuple.rst:77 +#: c-api/tuple.rst:77 msgid "" "Insert a reference to object *o* at position *pos* of the tuple pointed to " "by *p*. Return ``0`` on success. If *pos* is out of bounds, return ``-1`` " "and set an :exc:`IndexError` exception." msgstr "" -#: ../Doc/c-api/tuple.rst:83 +#: c-api/tuple.rst:83 msgid "" "This function \"steals\" a reference to *o* and discards a reference to an " "item already in the tuple at the affected position." msgstr "" -#: ../Doc/c-api/tuple.rst:89 +#: c-api/tuple.rst:89 msgid "" "Like :c:func:`PyTuple_SetItem`, but does no error checking, and should " "*only* be used to fill in brand new tuples." msgstr "" -#: ../Doc/c-api/tuple.rst:94 +#: c-api/tuple.rst:94 msgid "" "This macro \"steals\" a reference to *o*, and, unlike :c:func:" "`PyTuple_SetItem`, does *not* discard a reference to any item that is being " "replaced; any reference in the tuple at position *pos* will be leaked." msgstr "" -#: ../Doc/c-api/tuple.rst:102 +#: c-api/tuple.rst:102 msgid "" "Can be used to resize a tuple. *newsize* will be the new length of the " "tuple. Because tuples are *supposed* to be immutable, this should only be " @@ -121,15 +126,15 @@ msgid "" "`SystemError`." msgstr "" -#: ../Doc/c-api/tuple.rst:116 +#: c-api/tuple.rst:116 msgid "Clear the free list. Return the total number of freed items." msgstr "" -#: ../Doc/c-api/tuple.rst:120 +#: c-api/tuple.rst:120 msgid "Struct Sequence Objects" msgstr "" -#: ../Doc/c-api/tuple.rst:122 +#: c-api/tuple.rst:122 msgid "" "Struct sequence objects are the C equivalent of :func:`~collections." "namedtuple` objects, i.e. a sequence whose items can also be accessed " @@ -137,133 +142,132 @@ msgid "" "specific struct sequence type." msgstr "" -#: ../Doc/c-api/tuple.rst:129 +#: c-api/tuple.rst:129 msgid "" "Create a new struct sequence type from the data in *desc*, described below. " "Instances of the resulting type can be created with :c:func:" "`PyStructSequence_New`." msgstr "" -#: ../Doc/c-api/tuple.rst:135 +#: c-api/tuple.rst:135 msgid "Initializes a struct sequence type *type* from *desc* in place." msgstr "" -#: ../Doc/c-api/tuple.rst:140 +#: c-api/tuple.rst:140 msgid "" "The same as ``PyStructSequence_InitType``, but returns ``0`` on success and " "``-1`` on failure." msgstr "" -#: ../Doc/c-api/tuple.rst:148 +#: c-api/tuple.rst:148 msgid "Contains the meta information of a struct sequence type to create." msgstr "" -#: ../Doc/c-api/tuple.rst:151 ../Doc/c-api/tuple.rst:174 +#: c-api/tuple.rst:174 msgid "Field" -msgstr "" +msgstr "Champ" -#: ../Doc/c-api/tuple.rst:151 ../Doc/c-api/tuple.rst:174 +#: c-api/tuple.rst:174 msgid "C Type" msgstr "Type C" -#: ../Doc/c-api/tuple.rst:151 ../Doc/c-api/tuple.rst:174 +#: c-api/tuple.rst:174 msgid "Meaning" msgstr "Signification" -#: ../Doc/c-api/tuple.rst:153 ../Doc/c-api/tuple.rst:176 +#: c-api/tuple.rst:176 msgid "``name``" msgstr "``name``" -#: ../Doc/c-api/tuple.rst:153 ../Doc/c-api/tuple.rst:155 -#: ../Doc/c-api/tuple.rst:176 ../Doc/c-api/tuple.rst:181 +#: c-api/tuple.rst:155 c-api/tuple.rst:181 msgid "``const char *``" msgstr "" -#: ../Doc/c-api/tuple.rst:153 +#: c-api/tuple.rst:153 msgid "name of the struct sequence type" msgstr "" -#: ../Doc/c-api/tuple.rst:155 ../Doc/c-api/tuple.rst:181 +#: c-api/tuple.rst:181 msgid "``doc``" msgstr "" -#: ../Doc/c-api/tuple.rst:155 +#: c-api/tuple.rst:155 msgid "pointer to docstring for the type or ``NULL`` to omit" msgstr "" -#: ../Doc/c-api/tuple.rst:158 +#: c-api/tuple.rst:158 msgid "``fields``" msgstr "" -#: ../Doc/c-api/tuple.rst:158 +#: c-api/tuple.rst:158 msgid "``PyStructSequence_Field *``" msgstr "``PyStructSequence_Field *``" -#: ../Doc/c-api/tuple.rst:158 +#: c-api/tuple.rst:158 msgid "pointer to ``NULL``-terminated array with field names of the new type" msgstr "" -#: ../Doc/c-api/tuple.rst:161 +#: c-api/tuple.rst:161 msgid "``n_in_sequence``" msgstr "``n_in_sequence``" -#: ../Doc/c-api/tuple.rst:161 +#: c-api/tuple.rst:161 msgid "``int``" msgstr "``int``" -#: ../Doc/c-api/tuple.rst:161 +#: c-api/tuple.rst:161 msgid "number of fields visible to the Python side (if used as tuple)" msgstr "" -#: ../Doc/c-api/tuple.rst:168 +#: c-api/tuple.rst:168 msgid "" "Describes a field of a struct sequence. As a struct sequence is modeled as a " -"tuple, all fields are typed as :c:type:`PyObject\\*`. The index in the :" -"attr:`fields` array of the :c:type:`PyStructSequence_Desc` determines which " -"field of the struct sequence is described." +"tuple, all fields are typed as :c:type:`PyObject*`. The index in the :attr:" +"`fields` array of the :c:type:`PyStructSequence_Desc` determines which field " +"of the struct sequence is described." msgstr "" -#: ../Doc/c-api/tuple.rst:176 +#: c-api/tuple.rst:176 msgid "" "name for the field or ``NULL`` to end the list of named fields, set to :c:" "data:`PyStructSequence_UnnamedField` to leave unnamed" msgstr "" -#: ../Doc/c-api/tuple.rst:181 +#: c-api/tuple.rst:181 msgid "field docstring or ``NULL`` to omit" msgstr "" -#: ../Doc/c-api/tuple.rst:187 +#: c-api/tuple.rst:187 msgid "Special value for a field name to leave it unnamed." msgstr "" -#: ../Doc/c-api/tuple.rst:192 +#: c-api/tuple.rst:192 msgid "" "Creates an instance of *type*, which must have been created with :c:func:" "`PyStructSequence_NewType`." msgstr "" -#: ../Doc/c-api/tuple.rst:198 +#: c-api/tuple.rst:198 msgid "" "Return the object at position *pos* in the struct sequence pointed to by " "*p*. No bounds checking is performed." msgstr "" -#: ../Doc/c-api/tuple.rst:204 +#: c-api/tuple.rst:204 msgid "Macro equivalent of :c:func:`PyStructSequence_GetItem`." msgstr "" -#: ../Doc/c-api/tuple.rst:209 +#: c-api/tuple.rst:209 msgid "" "Sets the field at index *pos* of the struct sequence *p* to value *o*. " "Like :c:func:`PyTuple_SET_ITEM`, this should only be used to fill in brand " "new instances." msgstr "" -#: ../Doc/c-api/tuple.rst:215 ../Doc/c-api/tuple.rst:224 +#: c-api/tuple.rst:224 msgid "This function \"steals\" a reference to *o*." msgstr "" -#: ../Doc/c-api/tuple.rst:220 +#: c-api/tuple.rst:220 msgid "Macro equivalent of :c:func:`PyStructSequence_SetItem`." msgstr "" diff --git a/c-api/type.po b/c-api/type.po index efa6c70159..c2ee30c0f7 100644 --- a/c-api/type.po +++ b/c-api/type.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-15 18:54+0100\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2018-02-15 00:33+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,37 +14,37 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/c-api/type.rst:6 +#: c-api/type.rst:6 msgid "Type Objects" msgstr "Objets type" -#: ../Doc/c-api/type.rst:13 +#: c-api/type.rst:13 msgid "The C structure of the objects used to describe built-in types." msgstr "" -#: ../Doc/c-api/type.rst:18 +#: c-api/type.rst:18 msgid "" "This is the type object for type objects; it is the same object as :class:" "`type` in the Python layer." msgstr "" -#: ../Doc/c-api/type.rst:24 +#: c-api/type.rst:24 msgid "" "Return true if the object *o* is a type object, including instances of types " "derived from the standard type object. Return false in all other cases." msgstr "" -#: ../Doc/c-api/type.rst:30 +#: c-api/type.rst:30 msgid "" "Return true if the object *o* is a type object, but not a subtype of the " "standard type object. Return false in all other cases." msgstr "" -#: ../Doc/c-api/type.rst:36 +#: c-api/type.rst:36 msgid "Clear the internal lookup cache. Return the current version tag." msgstr "" -#: ../Doc/c-api/type.rst:40 +#: c-api/type.rst:40 msgid "" "Return the :c:member:`~PyTypeObject.tp_flags` member of *type*. This " "function is primarily meant for use with `Py_LIMITED_API`; the individual " @@ -52,55 +52,55 @@ msgid "" "c:member:`~PyTypeObject.tp_flags` itself is not part of the limited API." msgstr "" -#: ../Doc/c-api/type.rst:47 +#: c-api/type.rst:47 msgid "The return type is now ``unsigned long`` rather than ``long``." msgstr "" -#: ../Doc/c-api/type.rst:53 +#: c-api/type.rst:53 msgid "" "Invalidate the internal lookup cache for the type and all of its subtypes. " "This function must be called after any manual modification of the attributes " "or base classes of the type." msgstr "" -#: ../Doc/c-api/type.rst:60 +#: c-api/type.rst:60 msgid "" "Return true if the type object *o* sets the feature *feature*. Type " "features are denoted by single bit flags." msgstr "" -#: ../Doc/c-api/type.rst:66 +#: c-api/type.rst:66 msgid "" "Return true if the type object includes support for the cycle detector; this " "tests the type flag :const:`Py_TPFLAGS_HAVE_GC`." msgstr "" -#: ../Doc/c-api/type.rst:72 +#: c-api/type.rst:72 msgid "Return true if *a* is a subtype of *b*." msgstr "" -#: ../Doc/c-api/type.rst:74 +#: c-api/type.rst:74 msgid "" "This function only checks for actual subtypes, which means that :meth:" "`~class.__subclasscheck__` is not called on *b*. Call :c:func:" "`PyObject_IsSubclass` to do the same check that :func:`issubclass` would do." msgstr "" -#: ../Doc/c-api/type.rst:82 +#: c-api/type.rst:82 msgid "" "Generic handler for the :c:member:`~PyTypeObject.tp_alloc` slot of a type " "object. Use Python's default memory allocation mechanism to allocate a new " "instance and initialize all its contents to ``NULL``." msgstr "" -#: ../Doc/c-api/type.rst:88 +#: c-api/type.rst:88 msgid "" "Generic handler for the :c:member:`~PyTypeObject.tp_new` slot of a type " "object. Create a new instance using the type's :c:member:`~PyTypeObject." "tp_alloc` slot." msgstr "" -#: ../Doc/c-api/type.rst:93 +#: c-api/type.rst:93 msgid "" "Finalize a type object. This should be called on all type objects to finish " "their initialization. This function is responsible for adding inherited " @@ -108,7 +108,7 @@ msgid "" "and sets an exception on error." msgstr "" -#: ../Doc/c-api/type.rst:100 +#: c-api/type.rst:100 msgid "" "Return the function pointer stored in the given slot. If the result is " "``NULL``, this indicates that either the slot is ``NULL``, or that the " @@ -116,92 +116,93 @@ msgid "" "result pointer into the appropriate function type." msgstr "" -#: ../Doc/c-api/type.rst:106 +#: c-api/type.rst:106 msgid "" "See :c:member:`PyType_Slot.slot` for possible values of the *slot* argument." msgstr "" -#: ../Doc/c-api/type.rst:108 +#: c-api/type.rst:108 msgid "An exception is raised if *type* is not a heap type." msgstr "" -#: ../Doc/c-api/type.rst:114 +#: c-api/type.rst:114 msgid "Creating Heap-Allocated Types" msgstr "" -#: ../Doc/c-api/type.rst:116 +#: c-api/type.rst:116 msgid "" "The following functions and structs are used to create :ref:`heap types " "`." msgstr "" -#: ../Doc/c-api/type.rst:121 +#: c-api/type.rst:121 msgid "" "Creates and returns a heap type object from the *spec* (:const:" "`Py_TPFLAGS_HEAPTYPE`)." msgstr "" -#: ../Doc/c-api/type.rst:124 +#: c-api/type.rst:124 msgid "" "If *bases* is a tuple, the created heap type contains all types contained in " "it as base types." msgstr "" -#: ../Doc/c-api/type.rst:127 +#: c-api/type.rst:127 msgid "" -"If *bases* is ``NULL``, the *Py_tp_base* slot is used instead. If that also " -"is ``NULL``, the new type derives from :class:`object`." +"If *bases* is ``NULL``, the *Py_tp_bases* slot is used instead. If that also " +"is ``NULL``, the *Py_tp_base* slot is used instead. If that also is " +"``NULL``, the new type derives from :class:`object`." msgstr "" -#: ../Doc/c-api/type.rst:130 +#: c-api/type.rst:131 msgid "This function calls :c:func:`PyType_Ready` on the new type." msgstr "" -#: ../Doc/c-api/type.rst:136 +#: c-api/type.rst:137 msgid "Equivalent to ``PyType_FromSpecWithBases(spec, NULL)``." msgstr "" -#: ../Doc/c-api/type.rst:140 +#: c-api/type.rst:141 msgid "Structure defining a type's behavior." msgstr "" -#: ../Doc/c-api/type.rst:144 +#: c-api/type.rst:145 msgid "Name of the type, used to set :c:member:`PyTypeObject.tp_name`." msgstr "" -#: ../Doc/c-api/type.rst:149 +#: c-api/type.rst:150 msgid "" "Size of the instance in bytes, used to set :c:member:`PyTypeObject." "tp_basicsize` and :c:member:`PyTypeObject.tp_itemsize`." msgstr "" -#: ../Doc/c-api/type.rst:155 +#: c-api/type.rst:156 msgid "Type flags, used to set :c:member:`PyTypeObject.tp_flags`." msgstr "" -#: ../Doc/c-api/type.rst:157 +#: c-api/type.rst:158 msgid "" "If the ``Py_TPFLAGS_HEAPTYPE`` flag is not set, :c:func:" "`PyType_FromSpecWithBases` sets it automatically." msgstr "" -#: ../Doc/c-api/type.rst:162 +#: c-api/type.rst:163 msgid "" "Array of :c:type:`PyType_Slot` structures. Terminated by the special slot " "value ``{0, NULL}``." msgstr "" -#: ../Doc/c-api/type.rst:167 +#: c-api/type.rst:168 msgid "" "Structure defining optional functionality of a type, containing a slot ID " "and a value pointer." msgstr "" -#: ../Doc/c-api/type.rst:172 +#: c-api/type.rst:173 msgid "A slot ID." msgstr "" -#: ../Doc/c-api/type.rst:174 +#: c-api/type.rst:175 msgid "" "Slot IDs are named like the field names of the structures :c:type:" "`PyTypeObject`, :c:type:`PyNumberMethods`, :c:type:`PySequenceMethods`, :c:" @@ -209,77 +210,77 @@ msgid "" "prefix. For example, use:" msgstr "" -#: ../Doc/c-api/type.rst:180 +#: c-api/type.rst:181 msgid "``Py_tp_dealloc`` to set :c:member:`PyTypeObject.tp_dealloc`" msgstr "" -#: ../Doc/c-api/type.rst:181 +#: c-api/type.rst:182 msgid "``Py_nb_add`` to set :c:member:`PyNumberMethods.nb_add`" msgstr "" -#: ../Doc/c-api/type.rst:182 +#: c-api/type.rst:183 msgid "``Py_sq_length`` to set :c:member:`PySequenceMethods.sq_length`" msgstr "" -#: ../Doc/c-api/type.rst:184 +#: c-api/type.rst:185 msgid "" "The following fields cannot be set using :c:type:`PyType_Spec` and :c:type:" "`PyType_Slot`:" msgstr "" -#: ../Doc/c-api/type.rst:186 +#: c-api/type.rst:187 msgid ":c:member:`~PyTypeObject.tp_dict`" msgstr "" -#: ../Doc/c-api/type.rst:187 +#: c-api/type.rst:188 msgid ":c:member:`~PyTypeObject.tp_mro`" msgstr "" -#: ../Doc/c-api/type.rst:188 +#: c-api/type.rst:189 msgid ":c:member:`~PyTypeObject.tp_cache`" msgstr "" -#: ../Doc/c-api/type.rst:189 +#: c-api/type.rst:190 msgid ":c:member:`~PyTypeObject.tp_subclasses`" msgstr "" -#: ../Doc/c-api/type.rst:190 +#: c-api/type.rst:191 msgid ":c:member:`~PyTypeObject.tp_weaklist`" msgstr "" -#: ../Doc/c-api/type.rst:191 +#: c-api/type.rst:192 msgid ":c:member:`~PyTypeObject.tp_print`" msgstr "" -#: ../Doc/c-api/type.rst:192 +#: c-api/type.rst:193 msgid ":c:member:`~PyTypeObject.tp_weaklistoffset`" msgstr "" -#: ../Doc/c-api/type.rst:193 +#: c-api/type.rst:194 msgid ":c:member:`~PyTypeObject.tp_dictoffset`" msgstr "" -#: ../Doc/c-api/type.rst:194 +#: c-api/type.rst:195 msgid ":c:member:`~PyBufferProcs.bf_getbuffer`" msgstr "" -#: ../Doc/c-api/type.rst:195 +#: c-api/type.rst:196 msgid ":c:member:`~PyBufferProcs.bf_releasebuffer`" msgstr "" -#: ../Doc/c-api/type.rst:197 +#: c-api/type.rst:198 msgid "" -"Setting :c:data:`Py_tp_bases` may be problematic on some platforms. To avoid " -"issues, use the *bases* argument of :py:func:`PyType_FromSpecWithBases` " -"instead." +"Setting :c:data:`Py_tp_bases` or :c:data:`Py_tp_base` may be problematic on " +"some platforms. To avoid issues, use the *bases* argument of :py:func:" +"`PyType_FromSpecWithBases` instead." msgstr "" -#: ../Doc/c-api/type.rst:203 +#: c-api/type.rst:205 msgid "" "The desired value of the slot. In most cases, this is a pointer to a " "function." msgstr "" -#: ../Doc/c-api/type.rst:206 +#: c-api/type.rst:208 msgid "May not be ``NULL``." msgstr "" diff --git a/c-api/typeobj.po b/c-api/typeobj.po index a1305f37d3..df0e38f03a 100644 --- a/c-api/typeobj.po +++ b/c-api/typeobj.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-15 18:54+0100\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,22 +14,22 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/c-api/typeobj.rst:6 +#: c-api/typeobj.rst:6 msgid "Type Objects" msgstr "Objets type" -#: ../Doc/c-api/typeobj.rst:8 +#: c-api/typeobj.rst:8 msgid "" "Perhaps one of the most important structures of the Python object system is " "the structure that defines a new type: the :c:type:`PyTypeObject` " -"structure. Type objects can be handled using any of the :c:func:`PyObject_" -"\\*` or :c:func:`PyType_\\*` functions, but do not offer much that's " -"interesting to most Python applications. These objects are fundamental to " -"how objects behave, so they are very important to the interpreter itself and " -"to any extension module that implements new types." +"structure. Type objects can be handled using any of the :c:func:" +"`PyObject_\\*` or :c:func:`PyType_\\*` functions, but do not offer much " +"that's interesting to most Python applications. These objects are " +"fundamental to how objects behave, so they are very important to the " +"interpreter itself and to any extension module that implements new types." msgstr "" -#: ../Doc/c-api/typeobj.rst:16 +#: c-api/typeobj.rst:16 msgid "" "Type objects are fairly large compared to most of the standard types. The " "reason for the size is that each type object stores a large number of " @@ -39,550 +39,519 @@ msgid "" "they occur in the structure." msgstr "" -#: ../Doc/c-api/typeobj.rst:23 +#: c-api/typeobj.rst:23 msgid "" "In addition to the following quick reference, the :ref:`typedef-examples` " "section provides at-a-glance insight into the meaning and use of :c:type:" "`PyTypeObject`." msgstr "" -#: ../Doc/c-api/typeobj.rst:29 +#: c-api/typeobj.rst:29 msgid "Quick Reference" msgstr "" -#: ../Doc/c-api/typeobj.rst:34 +#: c-api/typeobj.rst:34 msgid "\"tp slots\"" msgstr "" -#: ../Doc/c-api/typeobj.rst:40 +#: c-api/typeobj.rst:40 msgid "PyTypeObject Slot [#slots]_" msgstr "" -#: ../Doc/c-api/typeobj.rst:40 ../Doc/c-api/typeobj.rst:200 +#: c-api/typeobj.rst:200 msgid ":ref:`Type `" msgstr "" -#: ../Doc/c-api/typeobj.rst:40 +#: c-api/typeobj.rst:40 msgid "special methods/attrs" msgstr "" -#: ../Doc/c-api/typeobj.rst:40 +#: c-api/typeobj.rst:40 msgid "Info [#cols]_" msgstr "" -#: ../Doc/c-api/typeobj.rst:42 +#: c-api/typeobj.rst:42 msgid "O" msgstr "O" -#: ../Doc/c-api/typeobj.rst:42 +#: c-api/typeobj.rst:42 msgid "T" msgstr "T" -#: ../Doc/c-api/typeobj.rst:42 +#: c-api/typeobj.rst:42 msgid "D" msgstr "D" -#: ../Doc/c-api/typeobj.rst:42 +#: c-api/typeobj.rst:42 msgid "I" msgstr "" -#: ../Doc/c-api/typeobj.rst:44 +#: c-api/typeobj.rst:44 msgid " :c:member:`~PyTypeObject.tp_name`" msgstr "" -#: ../Doc/c-api/typeobj.rst:44 ../Doc/c-api/typeobj.rst:86 -#: ../Doc/c-api/typeobj.rst:0 +#: c-api/typeobj.rst:86 c-api/typeobj.rst:0 msgid "const char *" msgstr "" -#: ../Doc/c-api/typeobj.rst:44 +#: c-api/typeobj.rst:44 msgid "__name__" msgstr "__name__" -#: ../Doc/c-api/typeobj.rst:44 ../Doc/c-api/typeobj.rst:46 -#: ../Doc/c-api/typeobj.rst:48 ../Doc/c-api/typeobj.rst:50 -#: ../Doc/c-api/typeobj.rst:62 ../Doc/c-api/typeobj.rst:70 -#: ../Doc/c-api/typeobj.rst:72 ../Doc/c-api/typeobj.rst:74 -#: ../Doc/c-api/typeobj.rst:76 ../Doc/c-api/typeobj.rst:79 -#: ../Doc/c-api/typeobj.rst:84 ../Doc/c-api/typeobj.rst:86 -#: ../Doc/c-api/typeobj.rst:88 ../Doc/c-api/typeobj.rst:90 -#: ../Doc/c-api/typeobj.rst:92 ../Doc/c-api/typeobj.rst:99 -#: ../Doc/c-api/typeobj.rst:101 ../Doc/c-api/typeobj.rst:103 -#: ../Doc/c-api/typeobj.rst:105 ../Doc/c-api/typeobj.rst:107 -#: ../Doc/c-api/typeobj.rst:109 ../Doc/c-api/typeobj.rst:111 -#: ../Doc/c-api/typeobj.rst:115 ../Doc/c-api/typeobj.rst:117 -#: ../Doc/c-api/typeobj.rst:120 ../Doc/c-api/typeobj.rst:122 -#: ../Doc/c-api/typeobj.rst:124 ../Doc/c-api/typeobj.rst:126 -#: ../Doc/c-api/typeobj.rst:128 ../Doc/c-api/typeobj.rst:130 -#: ../Doc/c-api/typeobj.rst:146 +#: c-api/typeobj.rst:46 c-api/typeobj.rst:50 c-api/typeobj.rst:70 +#: c-api/typeobj.rst:74 c-api/typeobj.rst:79 c-api/typeobj.rst:86 +#: c-api/typeobj.rst:90 c-api/typeobj.rst:99 c-api/typeobj.rst:103 +#: c-api/typeobj.rst:107 c-api/typeobj.rst:111 c-api/typeobj.rst:117 +#: c-api/typeobj.rst:122 c-api/typeobj.rst:126 c-api/typeobj.rst:130 +#: c-api/typeobj.rst:146 msgid "X" msgstr "" -#: ../Doc/c-api/typeobj.rst:46 +#: c-api/typeobj.rst:46 msgid ":c:member:`~PyTypeObject.tp_basicsize`" msgstr "" -#: ../Doc/c-api/typeobj.rst:46 ../Doc/c-api/typeobj.rst:48 -#: ../Doc/c-api/typeobj.rst:52 ../Doc/c-api/typeobj.rst:99 -#: ../Doc/c-api/typeobj.rst:120 ../Doc/c-api/typeobj.rst:0 -#: ../Doc/c-api/typeobj.rst:413 +#: c-api/typeobj.rst:48 c-api/typeobj.rst:99 c-api/typeobj.rst:0 +#: c-api/typeobj.rst:413 msgid "Py_ssize_t" msgstr "" -#: ../Doc/c-api/typeobj.rst:48 +#: c-api/typeobj.rst:48 msgid ":c:member:`~PyTypeObject.tp_itemsize`" msgstr "" -#: ../Doc/c-api/typeobj.rst:50 +#: c-api/typeobj.rst:50 msgid ":c:member:`~PyTypeObject.tp_dealloc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:50 ../Doc/c-api/typeobj.rst:142 -#: ../Doc/c-api/typeobj.rst:146 ../Doc/c-api/typeobj.rst:343 +#: c-api/typeobj.rst:142 c-api/typeobj.rst:343 msgid ":c:type:`destructor`" msgstr "" -#: ../Doc/c-api/typeobj.rst:52 +#: c-api/typeobj.rst:52 msgid ":c:member:`~PyTypeObject.tp_vectorcall_offset`" msgstr "" -#: ../Doc/c-api/typeobj.rst:52 ../Doc/c-api/typeobj.rst:84 -#: ../Doc/c-api/typeobj.rst:99 ../Doc/c-api/typeobj.rst:113 -#: ../Doc/c-api/typeobj.rst:120 ../Doc/c-api/typeobj.rst:124 -#: ../Doc/c-api/typeobj.rst:126 ../Doc/c-api/typeobj.rst:128 +#: c-api/typeobj.rst:84 c-api/typeobj.rst:113 c-api/typeobj.rst:124 +#: c-api/typeobj.rst:128 msgid "?" msgstr "" -#: ../Doc/c-api/typeobj.rst:54 +#: c-api/typeobj.rst:54 msgid "(:c:member:`~PyTypeObject.tp_getattr`)" msgstr "" -#: ../Doc/c-api/typeobj.rst:54 ../Doc/c-api/typeobj.rst:367 +#: c-api/typeobj.rst:367 msgid ":c:type:`getattrfunc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:54 ../Doc/c-api/typeobj.rst:76 +#: c-api/typeobj.rst:76 msgid "__getattribute__, __getattr__" msgstr "" -#: ../Doc/c-api/typeobj.rst:54 ../Doc/c-api/typeobj.rst:57 -#: ../Doc/c-api/typeobj.rst:70 ../Doc/c-api/typeobj.rst:76 -#: ../Doc/c-api/typeobj.rst:79 ../Doc/c-api/typeobj.rst:88 -#: ../Doc/c-api/typeobj.rst:90 ../Doc/c-api/typeobj.rst:92 +#: c-api/typeobj.rst:57 c-api/typeobj.rst:76 c-api/typeobj.rst:88 +#: c-api/typeobj.rst:92 msgid "G" msgstr "" -#: ../Doc/c-api/typeobj.rst:57 +#: c-api/typeobj.rst:57 msgid "(:c:member:`~PyTypeObject.tp_setattr`)" msgstr "" -#: ../Doc/c-api/typeobj.rst:57 ../Doc/c-api/typeobj.rst:372 +#: c-api/typeobj.rst:372 msgid ":c:type:`setattrfunc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:57 ../Doc/c-api/typeobj.rst:79 +#: c-api/typeobj.rst:79 msgid "__setattr__, __delattr__" msgstr "" -#: ../Doc/c-api/typeobj.rst:60 +#: c-api/typeobj.rst:60 msgid ":c:member:`~PyTypeObject.tp_as_async`" msgstr "" -#: ../Doc/c-api/typeobj.rst:60 +#: c-api/typeobj.rst:60 msgid ":c:type:`PyAsyncMethods` *" msgstr "" -#: ../Doc/c-api/typeobj.rst:60 ../Doc/c-api/typeobj.rst:64 -#: ../Doc/c-api/typeobj.rst:66 ../Doc/c-api/typeobj.rst:68 +#: c-api/typeobj.rst:64 c-api/typeobj.rst:68 msgid ":ref:`sub-slots`" -msgstr "" +msgstr ":ref:`sub-slots`" -#: ../Doc/c-api/typeobj.rst:60 ../Doc/c-api/typeobj.rst:64 -#: ../Doc/c-api/typeobj.rst:66 ../Doc/c-api/typeobj.rst:68 -#: ../Doc/c-api/typeobj.rst:82 +#: c-api/typeobj.rst:64 c-api/typeobj.rst:68 c-api/typeobj.rst:82 msgid "%" msgstr "%" -#: ../Doc/c-api/typeobj.rst:62 +#: c-api/typeobj.rst:62 msgid ":c:member:`~PyTypeObject.tp_repr`" msgstr "" -#: ../Doc/c-api/typeobj.rst:62 ../Doc/c-api/typeobj.rst:74 -#: ../Doc/c-api/typeobj.rst:365 +#: c-api/typeobj.rst:74 c-api/typeobj.rst:365 msgid ":c:type:`reprfunc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:62 +#: c-api/typeobj.rst:62 msgid "__repr__" msgstr "" -#: ../Doc/c-api/typeobj.rst:64 +#: c-api/typeobj.rst:64 msgid ":c:member:`~PyTypeObject.tp_as_number`" msgstr "" -#: ../Doc/c-api/typeobj.rst:64 +#: c-api/typeobj.rst:64 msgid ":c:type:`PyNumberMethods` *" msgstr "" -#: ../Doc/c-api/typeobj.rst:66 +#: c-api/typeobj.rst:66 msgid ":c:member:`~PyTypeObject.tp_as_sequence`" msgstr "" -#: ../Doc/c-api/typeobj.rst:66 +#: c-api/typeobj.rst:66 msgid ":c:type:`PySequenceMethods` *" msgstr "" -#: ../Doc/c-api/typeobj.rst:68 +#: c-api/typeobj.rst:68 msgid ":c:member:`~PyTypeObject.tp_as_mapping`" msgstr "" -#: ../Doc/c-api/typeobj.rst:68 +#: c-api/typeobj.rst:68 msgid ":c:type:`PyMappingMethods` *" msgstr "" -#: ../Doc/c-api/typeobj.rst:70 +#: c-api/typeobj.rst:70 msgid ":c:member:`~PyTypeObject.tp_hash`" msgstr "" -#: ../Doc/c-api/typeobj.rst:70 ../Doc/c-api/typeobj.rst:401 +#: c-api/typeobj.rst:401 msgid ":c:type:`hashfunc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:70 +#: c-api/typeobj.rst:70 msgid "__hash__" msgstr "" -#: ../Doc/c-api/typeobj.rst:72 +#: c-api/typeobj.rst:72 msgid ":c:member:`~PyTypeObject.tp_call`" msgstr "" -#: ../Doc/c-api/typeobj.rst:72 ../Doc/c-api/typeobj.rst:234 -#: ../Doc/c-api/typeobj.rst:237 ../Doc/c-api/typeobj.rst:437 +#: c-api/typeobj.rst:234 c-api/typeobj.rst:437 msgid ":c:type:`ternaryfunc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:72 +#: c-api/typeobj.rst:72 msgid "__call__" msgstr "" -#: ../Doc/c-api/typeobj.rst:74 +#: c-api/typeobj.rst:74 msgid ":c:member:`~PyTypeObject.tp_str`" msgstr "" -#: ../Doc/c-api/typeobj.rst:74 +#: c-api/typeobj.rst:74 msgid "__str__" msgstr "" -#: ../Doc/c-api/typeobj.rst:76 +#: c-api/typeobj.rst:76 msgid ":c:member:`~PyTypeObject.tp_getattro`" msgstr "" -#: ../Doc/c-api/typeobj.rst:76 ../Doc/c-api/typeobj.rst:378 +#: c-api/typeobj.rst:378 msgid ":c:type:`getattrofunc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:79 +#: c-api/typeobj.rst:79 msgid ":c:member:`~PyTypeObject.tp_setattro`" msgstr "" -#: ../Doc/c-api/typeobj.rst:79 ../Doc/c-api/typeobj.rst:383 +#: c-api/typeobj.rst:383 msgid ":c:type:`setattrofunc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:82 +#: c-api/typeobj.rst:82 msgid ":c:member:`~PyTypeObject.tp_as_buffer`" msgstr "" -#: ../Doc/c-api/typeobj.rst:82 +#: c-api/typeobj.rst:82 msgid ":c:type:`PyBufferProcs` *" msgstr "" -#: ../Doc/c-api/typeobj.rst:84 +#: c-api/typeobj.rst:84 msgid ":c:member:`~PyTypeObject.tp_flags`" msgstr "" -#: ../Doc/c-api/typeobj.rst:84 +#: c-api/typeobj.rst:84 msgid "unsigned long" msgstr "``unsigned long``" -#: ../Doc/c-api/typeobj.rst:86 +#: c-api/typeobj.rst:86 msgid ":c:member:`~PyTypeObject.tp_doc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:86 +#: c-api/typeobj.rst:86 msgid "__doc__" msgstr "__doc__" -#: ../Doc/c-api/typeobj.rst:88 +#: c-api/typeobj.rst:88 msgid ":c:member:`~PyTypeObject.tp_traverse`" msgstr "" -#: ../Doc/c-api/typeobj.rst:88 ../Doc/c-api/typeobj.rst:347 +#: c-api/typeobj.rst:347 msgid ":c:type:`traverseproc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:90 +#: c-api/typeobj.rst:90 msgid ":c:member:`~PyTypeObject.tp_clear`" msgstr "" -#: ../Doc/c-api/typeobj.rst:90 ../Doc/c-api/typeobj.rst:130 -#: ../Doc/c-api/typeobj.rst:245 ../Doc/c-api/typeobj.rst:426 +#: c-api/typeobj.rst:130 c-api/typeobj.rst:426 msgid ":c:type:`inquiry`" msgstr "" -#: ../Doc/c-api/typeobj.rst:92 +#: c-api/typeobj.rst:92 msgid ":c:member:`~PyTypeObject.tp_richcompare`" msgstr "" -#: ../Doc/c-api/typeobj.rst:92 ../Doc/c-api/typeobj.rst:403 +#: c-api/typeobj.rst:403 msgid ":c:type:`richcmpfunc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:92 +#: c-api/typeobj.rst:92 msgid "__lt__, __le__, __eq__, __ne__, __gt__, __ge__" msgstr "" -#: ../Doc/c-api/typeobj.rst:99 +#: c-api/typeobj.rst:99 msgid ":c:member:`~PyTypeObject.tp_weaklistoffset`" msgstr "" -#: ../Doc/c-api/typeobj.rst:101 +#: c-api/typeobj.rst:101 msgid ":c:member:`~PyTypeObject.tp_iter`" msgstr "" -#: ../Doc/c-api/typeobj.rst:101 ../Doc/c-api/typeobj.rst:409 +#: c-api/typeobj.rst:409 msgid ":c:type:`getiterfunc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:101 +#: c-api/typeobj.rst:101 msgid "__iter__" msgstr "" -#: ../Doc/c-api/typeobj.rst:103 +#: c-api/typeobj.rst:103 msgid ":c:member:`~PyTypeObject.tp_iternext`" msgstr "" -#: ../Doc/c-api/typeobj.rst:103 ../Doc/c-api/typeobj.rst:411 +#: c-api/typeobj.rst:411 msgid ":c:type:`iternextfunc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:103 +#: c-api/typeobj.rst:103 msgid "__next__" msgstr "" -#: ../Doc/c-api/typeobj.rst:105 +#: c-api/typeobj.rst:105 msgid ":c:member:`~PyTypeObject.tp_methods`" msgstr "" -#: ../Doc/c-api/typeobj.rst:105 +#: c-api/typeobj.rst:105 msgid ":c:type:`PyMethodDef` []" msgstr "" -#: ../Doc/c-api/typeobj.rst:107 +#: c-api/typeobj.rst:107 msgid ":c:member:`~PyTypeObject.tp_members`" msgstr "" -#: ../Doc/c-api/typeobj.rst:107 +#: c-api/typeobj.rst:107 msgid ":c:type:`PyMemberDef` []" msgstr "" -#: ../Doc/c-api/typeobj.rst:109 +#: c-api/typeobj.rst:109 msgid ":c:member:`~PyTypeObject.tp_getset`" msgstr "" -#: ../Doc/c-api/typeobj.rst:109 +#: c-api/typeobj.rst:109 msgid ":c:type:`PyGetSetDef` []" msgstr "" -#: ../Doc/c-api/typeobj.rst:111 +#: c-api/typeobj.rst:111 msgid ":c:member:`~PyTypeObject.tp_base`" msgstr "" -#: ../Doc/c-api/typeobj.rst:111 ../Doc/c-api/typeobj.rst:0 +#: c-api/typeobj.rst:0 msgid ":c:type:`PyTypeObject` *" msgstr "" -#: ../Doc/c-api/typeobj.rst:111 +#: c-api/typeobj.rst:111 msgid "__base__" msgstr "" -#: ../Doc/c-api/typeobj.rst:113 +#: c-api/typeobj.rst:113 msgid ":c:member:`~PyTypeObject.tp_dict`" msgstr "" -#: ../Doc/c-api/typeobj.rst:113 ../Doc/c-api/typeobj.rst:132 -#: ../Doc/c-api/typeobj.rst:134 ../Doc/c-api/typeobj.rst:136 -#: ../Doc/c-api/typeobj.rst:138 ../Doc/c-api/typeobj.rst:140 -#: ../Doc/c-api/typeobj.rst:338 ../Doc/c-api/typeobj.rst:0 -#: ../Doc/c-api/typeobj.rst:353 ../Doc/c-api/typeobj.rst:365 -#: ../Doc/c-api/typeobj.rst:367 ../Doc/c-api/typeobj.rst:378 -#: ../Doc/c-api/typeobj.rst:389 ../Doc/c-api/typeobj.rst:401 -#: ../Doc/c-api/typeobj.rst:403 ../Doc/c-api/typeobj.rst:409 -#: ../Doc/c-api/typeobj.rst:411 ../Doc/c-api/typeobj.rst:413 -#: ../Doc/c-api/typeobj.rst:428 ../Doc/c-api/typeobj.rst:432 -#: ../Doc/c-api/typeobj.rst:437 ../Doc/c-api/typeobj.rst:443 +#: c-api/typeobj.rst:132 c-api/typeobj.rst:136 c-api/typeobj.rst:140 +#: c-api/typeobj.rst:0 c-api/typeobj.rst:365 c-api/typeobj.rst:378 +#: c-api/typeobj.rst:401 c-api/typeobj.rst:409 c-api/typeobj.rst:413 +#: c-api/typeobj.rst:432 c-api/typeobj.rst:443 msgid ":c:type:`PyObject` *" msgstr "" -#: ../Doc/c-api/typeobj.rst:113 +#: c-api/typeobj.rst:113 msgid "__dict__" msgstr "" -#: ../Doc/c-api/typeobj.rst:115 +#: c-api/typeobj.rst:115 msgid ":c:member:`~PyTypeObject.tp_descr_get`" msgstr "" -#: ../Doc/c-api/typeobj.rst:115 ../Doc/c-api/typeobj.rst:389 +#: c-api/typeobj.rst:389 msgid ":c:type:`descrgetfunc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:115 +#: c-api/typeobj.rst:115 msgid "__get__" msgstr "" -#: ../Doc/c-api/typeobj.rst:117 +#: c-api/typeobj.rst:117 msgid ":c:member:`~PyTypeObject.tp_descr_set`" msgstr "" -#: ../Doc/c-api/typeobj.rst:117 ../Doc/c-api/typeobj.rst:395 +#: c-api/typeobj.rst:395 msgid ":c:type:`descrsetfunc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:117 +#: c-api/typeobj.rst:117 msgid "__set__, __delete__" msgstr "" -#: ../Doc/c-api/typeobj.rst:120 +#: c-api/typeobj.rst:120 msgid ":c:member:`~PyTypeObject.tp_dictoffset`" msgstr "" -#: ../Doc/c-api/typeobj.rst:122 +#: c-api/typeobj.rst:122 msgid ":c:member:`~PyTypeObject.tp_init`" msgstr "" -#: ../Doc/c-api/typeobj.rst:122 ../Doc/c-api/typeobj.rst:359 +#: c-api/typeobj.rst:359 msgid ":c:type:`initproc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:122 +#: c-api/typeobj.rst:122 msgid "__init__" msgstr "" -#: ../Doc/c-api/typeobj.rst:124 +#: c-api/typeobj.rst:124 msgid ":c:member:`~PyTypeObject.tp_alloc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:124 ../Doc/c-api/typeobj.rst:338 +#: c-api/typeobj.rst:338 msgid ":c:type:`allocfunc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:126 +#: c-api/typeobj.rst:126 msgid ":c:member:`~PyTypeObject.tp_new`" msgstr "" -#: ../Doc/c-api/typeobj.rst:126 ../Doc/c-api/typeobj.rst:353 +#: c-api/typeobj.rst:353 msgid ":c:type:`newfunc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:126 +#: c-api/typeobj.rst:126 msgid "__new__" msgstr "" -#: ../Doc/c-api/typeobj.rst:128 +#: c-api/typeobj.rst:128 msgid ":c:member:`~PyTypeObject.tp_free`" msgstr "" -#: ../Doc/c-api/typeobj.rst:128 ../Doc/c-api/typeobj.rst:345 +#: c-api/typeobj.rst:345 msgid ":c:type:`freefunc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:130 +#: c-api/typeobj.rst:130 msgid ":c:member:`~PyTypeObject.tp_is_gc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:132 +#: c-api/typeobj.rst:132 msgid "<:c:member:`~PyTypeObject.tp_bases`>" msgstr "" -#: ../Doc/c-api/typeobj.rst:132 +#: c-api/typeobj.rst:132 msgid "__bases__" msgstr "" -#: ../Doc/c-api/typeobj.rst:132 ../Doc/c-api/typeobj.rst:134 +#: c-api/typeobj.rst:134 msgid "~" msgstr "" -#: ../Doc/c-api/typeobj.rst:134 +#: c-api/typeobj.rst:134 msgid "<:c:member:`~PyTypeObject.tp_mro`>" msgstr "" -#: ../Doc/c-api/typeobj.rst:134 +#: c-api/typeobj.rst:134 msgid "__mro__" msgstr "" -#: ../Doc/c-api/typeobj.rst:136 +#: c-api/typeobj.rst:136 msgid "[:c:member:`~PyTypeObject.tp_cache`]" msgstr "" -#: ../Doc/c-api/typeobj.rst:138 +#: c-api/typeobj.rst:138 msgid "[:c:member:`~PyTypeObject.tp_subclasses`]" msgstr "" -#: ../Doc/c-api/typeobj.rst:138 +#: c-api/typeobj.rst:138 msgid "__subclasses__" msgstr "" -#: ../Doc/c-api/typeobj.rst:140 +#: c-api/typeobj.rst:140 msgid "[:c:member:`~PyTypeObject.tp_weaklist`]" msgstr "" -#: ../Doc/c-api/typeobj.rst:142 +#: c-api/typeobj.rst:142 msgid "(:c:member:`~PyTypeObject.tp_del`)" msgstr "" -#: ../Doc/c-api/typeobj.rst:144 +#: c-api/typeobj.rst:144 msgid "[:c:member:`~PyTypeObject.tp_version_tag`]" msgstr "" -#: ../Doc/c-api/typeobj.rst:144 +#: c-api/typeobj.rst:144 msgid "unsigned int" msgstr "``unsigned int``" -#: ../Doc/c-api/typeobj.rst:146 +#: c-api/typeobj.rst:146 msgid ":c:member:`~PyTypeObject.tp_finalize`" msgstr "" -#: ../Doc/c-api/typeobj.rst:146 +#: c-api/typeobj.rst:146 msgid "__del__" msgstr "" -#: ../Doc/c-api/typeobj.rst:149 +#: c-api/typeobj.rst:149 msgid "" "If :const:`COUNT_ALLOCS` is defined then the following (internal-only) " "fields exist as well:" msgstr "" -#: ../Doc/c-api/typeobj.rst:152 +#: c-api/typeobj.rst:152 msgid ":c:member:`~PyTypeObject.tp_allocs`" msgstr "" -#: ../Doc/c-api/typeobj.rst:153 +#: c-api/typeobj.rst:153 msgid ":c:member:`~PyTypeObject.tp_frees`" msgstr "" -#: ../Doc/c-api/typeobj.rst:154 +#: c-api/typeobj.rst:154 msgid ":c:member:`~PyTypeObject.tp_maxalloc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:155 +#: c-api/typeobj.rst:155 msgid ":c:member:`~PyTypeObject.tp_prev`" msgstr "" -#: ../Doc/c-api/typeobj.rst:156 +#: c-api/typeobj.rst:156 msgid ":c:member:`~PyTypeObject.tp_next`" msgstr "" -#: ../Doc/c-api/typeobj.rst:159 +#: c-api/typeobj.rst:159 msgid "" "A slot name in parentheses indicates it is (effectively) deprecated. Names " "in angle brackets should be treated as read-only. Names in square brackets " @@ -590,558 +559,536 @@ msgid "" "(must be non-``NULL``)." msgstr "" -#: ../Doc/c-api/typeobj.rst:163 +#: c-api/typeobj.rst:163 msgid "Columns:" msgstr "" -#: ../Doc/c-api/typeobj.rst:165 +#: c-api/typeobj.rst:165 msgid "**\"O\"**: set on :c:type:`PyBaseObject_Type`" msgstr "" -#: ../Doc/c-api/typeobj.rst:167 +#: c-api/typeobj.rst:167 msgid "**\"T\"**: set on :c:type:`PyType_Type`" msgstr "" -#: ../Doc/c-api/typeobj.rst:169 +#: c-api/typeobj.rst:169 msgid "**\"D\"**: default (if slot is set to ``NULL``)" msgstr "" -#: ../Doc/c-api/typeobj.rst:179 +#: c-api/typeobj.rst:179 msgid "**\"I\"**: inheritance" msgstr "" -#: ../Doc/c-api/typeobj.rst:188 +#: c-api/typeobj.rst:188 msgid "" "Note that some slots are effectively inherited through the normal attribute " "lookup chain." msgstr "" -#: ../Doc/c-api/typeobj.rst:194 +#: c-api/typeobj.rst:194 msgid "sub-slots" msgstr "" -#: ../Doc/c-api/typeobj.rst:200 +#: c-api/typeobj.rst:200 msgid "Slot" msgstr "" -#: ../Doc/c-api/typeobj.rst:200 +#: c-api/typeobj.rst:200 +#, fuzzy msgid "special methods" -msgstr "" +msgstr "méthode spéciale" -#: ../Doc/c-api/typeobj.rst:203 +#: c-api/typeobj.rst:203 msgid ":c:member:`~PyAsyncMethods.am_await`" msgstr "" -#: ../Doc/c-api/typeobj.rst:203 ../Doc/c-api/typeobj.rst:205 -#: ../Doc/c-api/typeobj.rst:207 ../Doc/c-api/typeobj.rst:239 -#: ../Doc/c-api/typeobj.rst:241 ../Doc/c-api/typeobj.rst:243 -#: ../Doc/c-api/typeobj.rst:247 ../Doc/c-api/typeobj.rst:274 -#: ../Doc/c-api/typeobj.rst:278 ../Doc/c-api/typeobj.rst:288 -#: ../Doc/c-api/typeobj.rst:428 +#: c-api/typeobj.rst:205 c-api/typeobj.rst:239 c-api/typeobj.rst:243 +#: c-api/typeobj.rst:274 c-api/typeobj.rst:288 c-api/typeobj.rst:428 msgid ":c:type:`unaryfunc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:203 +#: c-api/typeobj.rst:203 msgid "__await__" msgstr "" -#: ../Doc/c-api/typeobj.rst:205 +#: c-api/typeobj.rst:205 msgid ":c:member:`~PyAsyncMethods.am_aiter`" msgstr "" -#: ../Doc/c-api/typeobj.rst:205 +#: c-api/typeobj.rst:205 msgid "__aiter__" msgstr "" -#: ../Doc/c-api/typeobj.rst:207 +#: c-api/typeobj.rst:207 msgid ":c:member:`~PyAsyncMethods.am_anext`" msgstr "" -#: ../Doc/c-api/typeobj.rst:207 +#: c-api/typeobj.rst:207 msgid "__anext__" msgstr "" -#: ../Doc/c-api/typeobj.rst:211 +#: c-api/typeobj.rst:211 msgid ":c:member:`~PyNumberMethods.nb_add`" msgstr "" -#: ../Doc/c-api/typeobj.rst:211 ../Doc/c-api/typeobj.rst:214 -#: ../Doc/c-api/typeobj.rst:216 ../Doc/c-api/typeobj.rst:219 -#: ../Doc/c-api/typeobj.rst:221 ../Doc/c-api/typeobj.rst:224 -#: ../Doc/c-api/typeobj.rst:226 ../Doc/c-api/typeobj.rst:229 -#: ../Doc/c-api/typeobj.rst:231 ../Doc/c-api/typeobj.rst:249 -#: ../Doc/c-api/typeobj.rst:252 ../Doc/c-api/typeobj.rst:254 -#: ../Doc/c-api/typeobj.rst:257 ../Doc/c-api/typeobj.rst:259 -#: ../Doc/c-api/typeobj.rst:262 ../Doc/c-api/typeobj.rst:264 -#: ../Doc/c-api/typeobj.rst:267 ../Doc/c-api/typeobj.rst:269 -#: ../Doc/c-api/typeobj.rst:272 ../Doc/c-api/typeobj.rst:280 -#: ../Doc/c-api/typeobj.rst:282 ../Doc/c-api/typeobj.rst:284 -#: ../Doc/c-api/typeobj.rst:286 ../Doc/c-api/typeobj.rst:290 -#: ../Doc/c-api/typeobj.rst:293 ../Doc/c-api/typeobj.rst:299 -#: ../Doc/c-api/typeobj.rst:308 ../Doc/c-api/typeobj.rst:319 -#: ../Doc/c-api/typeobj.rst:432 +#: c-api/typeobj.rst:214 c-api/typeobj.rst:219 c-api/typeobj.rst:224 +#: c-api/typeobj.rst:229 c-api/typeobj.rst:249 c-api/typeobj.rst:254 +#: c-api/typeobj.rst:259 c-api/typeobj.rst:264 c-api/typeobj.rst:269 +#: c-api/typeobj.rst:280 c-api/typeobj.rst:284 c-api/typeobj.rst:290 +#: c-api/typeobj.rst:299 c-api/typeobj.rst:319 c-api/typeobj.rst:432 msgid ":c:type:`binaryfunc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:211 +#: c-api/typeobj.rst:211 msgid "__add__ __radd__" msgstr "" -#: ../Doc/c-api/typeobj.rst:214 +#: c-api/typeobj.rst:214 msgid ":c:member:`~PyNumberMethods.nb_inplace_add`" msgstr "" -#: ../Doc/c-api/typeobj.rst:214 ../Doc/c-api/typeobj.rst:319 +#: c-api/typeobj.rst:319 msgid "__iadd__" msgstr "" -#: ../Doc/c-api/typeobj.rst:216 +#: c-api/typeobj.rst:216 msgid ":c:member:`~PyNumberMethods.nb_subtract`" msgstr "" -#: ../Doc/c-api/typeobj.rst:216 +#: c-api/typeobj.rst:216 msgid "__sub__ __rsub__" msgstr "" -#: ../Doc/c-api/typeobj.rst:219 +#: c-api/typeobj.rst:219 msgid ":c:member:`~PyNumberMethods.nb_inplace_subtract`" msgstr "" -#: ../Doc/c-api/typeobj.rst:219 +#: c-api/typeobj.rst:219 msgid "__sub__" msgstr "" -#: ../Doc/c-api/typeobj.rst:221 +#: c-api/typeobj.rst:221 msgid ":c:member:`~PyNumberMethods.nb_multiply`" msgstr "" -#: ../Doc/c-api/typeobj.rst:221 +#: c-api/typeobj.rst:221 msgid "__mul__ __rmul__" msgstr "" -#: ../Doc/c-api/typeobj.rst:224 +#: c-api/typeobj.rst:224 msgid ":c:member:`~PyNumberMethods.nb_inplace_multiply`" msgstr "" -#: ../Doc/c-api/typeobj.rst:224 ../Doc/c-api/typeobj.rst:310 +#: c-api/typeobj.rst:310 msgid "__mul__" msgstr "" -#: ../Doc/c-api/typeobj.rst:226 +#: c-api/typeobj.rst:226 msgid ":c:member:`~PyNumberMethods.nb_remainder`" msgstr "" -#: ../Doc/c-api/typeobj.rst:226 +#: c-api/typeobj.rst:226 msgid "__mod__ __rmod__" msgstr "" -#: ../Doc/c-api/typeobj.rst:229 +#: c-api/typeobj.rst:229 msgid ":c:member:`~PyNumberMethods.nb_inplace_remainder`" msgstr "" -#: ../Doc/c-api/typeobj.rst:229 +#: c-api/typeobj.rst:229 msgid "__mod__" msgstr "" -#: ../Doc/c-api/typeobj.rst:231 +#: c-api/typeobj.rst:231 msgid ":c:member:`~PyNumberMethods.nb_divmod`" msgstr "" -#: ../Doc/c-api/typeobj.rst:231 +#: c-api/typeobj.rst:231 msgid "__divmod__ __rdivmod__" msgstr "" -#: ../Doc/c-api/typeobj.rst:234 +#: c-api/typeobj.rst:234 msgid ":c:member:`~PyNumberMethods.nb_power`" msgstr "" -#: ../Doc/c-api/typeobj.rst:234 +#: c-api/typeobj.rst:234 msgid "__pow__ __rpow__" msgstr "" -#: ../Doc/c-api/typeobj.rst:237 +#: c-api/typeobj.rst:237 msgid ":c:member:`~PyNumberMethods.nb_inplace_power`" msgstr "" -#: ../Doc/c-api/typeobj.rst:237 +#: c-api/typeobj.rst:237 msgid "__pow__" msgstr "" -#: ../Doc/c-api/typeobj.rst:239 +#: c-api/typeobj.rst:239 msgid ":c:member:`~PyNumberMethods.nb_negative`" msgstr "" -#: ../Doc/c-api/typeobj.rst:239 +#: c-api/typeobj.rst:239 msgid "__neg__" msgstr "" -#: ../Doc/c-api/typeobj.rst:241 +#: c-api/typeobj.rst:241 msgid ":c:member:`~PyNumberMethods.nb_positive`" msgstr "" -#: ../Doc/c-api/typeobj.rst:241 +#: c-api/typeobj.rst:241 msgid "__pos__" msgstr "" -#: ../Doc/c-api/typeobj.rst:243 +#: c-api/typeobj.rst:243 msgid ":c:member:`~PyNumberMethods.nb_absolute`" msgstr "" -#: ../Doc/c-api/typeobj.rst:243 +#: c-api/typeobj.rst:243 msgid "__abs__" msgstr "" -#: ../Doc/c-api/typeobj.rst:245 +#: c-api/typeobj.rst:245 msgid ":c:member:`~PyNumberMethods.nb_bool`" msgstr "" -#: ../Doc/c-api/typeobj.rst:245 +#: c-api/typeobj.rst:245 msgid "__bool__" msgstr "" -#: ../Doc/c-api/typeobj.rst:247 +#: c-api/typeobj.rst:247 msgid ":c:member:`~PyNumberMethods.nb_invert`" msgstr "" -#: ../Doc/c-api/typeobj.rst:247 +#: c-api/typeobj.rst:247 msgid "__invert__" msgstr "" -#: ../Doc/c-api/typeobj.rst:249 +#: c-api/typeobj.rst:249 msgid ":c:member:`~PyNumberMethods.nb_lshift`" msgstr "" -#: ../Doc/c-api/typeobj.rst:249 +#: c-api/typeobj.rst:249 msgid "__lshift__ __rlshift__" msgstr "" -#: ../Doc/c-api/typeobj.rst:252 +#: c-api/typeobj.rst:252 msgid ":c:member:`~PyNumberMethods.nb_inplace_lshift`" msgstr "" -#: ../Doc/c-api/typeobj.rst:252 +#: c-api/typeobj.rst:252 msgid "__lshift__" msgstr "" -#: ../Doc/c-api/typeobj.rst:254 +#: c-api/typeobj.rst:254 msgid ":c:member:`~PyNumberMethods.nb_rshift`" msgstr "" -#: ../Doc/c-api/typeobj.rst:254 +#: c-api/typeobj.rst:254 msgid "__rshift__ __rrshift__" msgstr "" -#: ../Doc/c-api/typeobj.rst:257 +#: c-api/typeobj.rst:257 msgid ":c:member:`~PyNumberMethods.nb_inplace_rshift`" msgstr "" -#: ../Doc/c-api/typeobj.rst:257 +#: c-api/typeobj.rst:257 msgid "__rshift__" msgstr "" -#: ../Doc/c-api/typeobj.rst:259 +#: c-api/typeobj.rst:259 msgid ":c:member:`~PyNumberMethods.nb_and`" msgstr "" -#: ../Doc/c-api/typeobj.rst:259 +#: c-api/typeobj.rst:259 msgid "__and__ __rand__" msgstr "" -#: ../Doc/c-api/typeobj.rst:262 +#: c-api/typeobj.rst:262 msgid ":c:member:`~PyNumberMethods.nb_inplace_and`" msgstr "" -#: ../Doc/c-api/typeobj.rst:262 +#: c-api/typeobj.rst:262 msgid "__and__" msgstr "" -#: ../Doc/c-api/typeobj.rst:264 +#: c-api/typeobj.rst:264 msgid ":c:member:`~PyNumberMethods.nb_xor`" msgstr "" -#: ../Doc/c-api/typeobj.rst:264 +#: c-api/typeobj.rst:264 msgid "__xor__ __rxor__" msgstr "" -#: ../Doc/c-api/typeobj.rst:267 +#: c-api/typeobj.rst:267 msgid ":c:member:`~PyNumberMethods.nb_inplace_xor`" msgstr "" -#: ../Doc/c-api/typeobj.rst:267 +#: c-api/typeobj.rst:267 msgid "__xor__" msgstr "" -#: ../Doc/c-api/typeobj.rst:269 +#: c-api/typeobj.rst:269 msgid ":c:member:`~PyNumberMethods.nb_or`" msgstr "" -#: ../Doc/c-api/typeobj.rst:269 +#: c-api/typeobj.rst:269 msgid "__or__ __ror__" msgstr "" -#: ../Doc/c-api/typeobj.rst:272 +#: c-api/typeobj.rst:272 msgid ":c:member:`~PyNumberMethods.nb_inplace_or`" msgstr "" -#: ../Doc/c-api/typeobj.rst:272 +#: c-api/typeobj.rst:272 msgid "__or__" msgstr "" -#: ../Doc/c-api/typeobj.rst:274 +#: c-api/typeobj.rst:274 msgid ":c:member:`~PyNumberMethods.nb_int`" msgstr "" -#: ../Doc/c-api/typeobj.rst:274 +#: c-api/typeobj.rst:274 msgid "__int__" msgstr "" -#: ../Doc/c-api/typeobj.rst:276 +#: c-api/typeobj.rst:276 msgid ":c:member:`~PyNumberMethods.nb_reserved`" msgstr "" -#: ../Doc/c-api/typeobj.rst:276 ../Doc/c-api/typeobj.rst:343 -#: ../Doc/c-api/typeobj.rst:345 ../Doc/c-api/typeobj.rst:0 -#: ../Doc/c-api/typeobj.rst:426 +#: c-api/typeobj.rst:343 c-api/typeobj.rst:0 c-api/typeobj.rst:426 msgid "void *" msgstr "" -#: ../Doc/c-api/typeobj.rst:278 +#: c-api/typeobj.rst:278 msgid ":c:member:`~PyNumberMethods.nb_float`" msgstr "" -#: ../Doc/c-api/typeobj.rst:278 +#: c-api/typeobj.rst:278 msgid "__float__" msgstr "" -#: ../Doc/c-api/typeobj.rst:280 +#: c-api/typeobj.rst:280 msgid ":c:member:`~PyNumberMethods.nb_floor_divide`" msgstr "" -#: ../Doc/c-api/typeobj.rst:280 ../Doc/c-api/typeobj.rst:282 +#: c-api/typeobj.rst:282 msgid "__floordiv__" msgstr "" -#: ../Doc/c-api/typeobj.rst:282 +#: c-api/typeobj.rst:282 msgid ":c:member:`~PyNumberMethods.nb_inplace_floor_divide`" msgstr "" -#: ../Doc/c-api/typeobj.rst:284 +#: c-api/typeobj.rst:284 msgid ":c:member:`~PyNumberMethods.nb_true_divide`" msgstr "" -#: ../Doc/c-api/typeobj.rst:284 ../Doc/c-api/typeobj.rst:286 +#: c-api/typeobj.rst:286 msgid "__truediv__" msgstr "" -#: ../Doc/c-api/typeobj.rst:286 +#: c-api/typeobj.rst:286 msgid ":c:member:`~PyNumberMethods.nb_inplace_true_divide`" msgstr "" -#: ../Doc/c-api/typeobj.rst:288 +#: c-api/typeobj.rst:288 msgid ":c:member:`~PyNumberMethods.nb_index`" msgstr "" -#: ../Doc/c-api/typeobj.rst:288 +#: c-api/typeobj.rst:288 msgid "__index__" msgstr "" -#: ../Doc/c-api/typeobj.rst:290 +#: c-api/typeobj.rst:290 msgid ":c:member:`~PyNumberMethods.nb_matrix_multiply`" msgstr "" -#: ../Doc/c-api/typeobj.rst:290 +#: c-api/typeobj.rst:290 msgid "__matmul__ __rmatmul__" msgstr "" -#: ../Doc/c-api/typeobj.rst:293 +#: c-api/typeobj.rst:293 msgid ":c:member:`~PyNumberMethods.nb_inplace_matrix_multiply`" msgstr "" -#: ../Doc/c-api/typeobj.rst:293 +#: c-api/typeobj.rst:293 msgid "__matmul__" msgstr "" -#: ../Doc/c-api/typeobj.rst:297 +#: c-api/typeobj.rst:297 msgid ":c:member:`~PyMappingMethods.mp_length`" msgstr "" -#: ../Doc/c-api/typeobj.rst:297 ../Doc/c-api/typeobj.rst:306 -#: ../Doc/c-api/typeobj.rst:413 +#: c-api/typeobj.rst:306 c-api/typeobj.rst:413 msgid ":c:type:`lenfunc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:297 ../Doc/c-api/typeobj.rst:306 +#: c-api/typeobj.rst:306 msgid "__len__" msgstr "" -#: ../Doc/c-api/typeobj.rst:299 +#: c-api/typeobj.rst:299 msgid ":c:member:`~PyMappingMethods.mp_subscript`" msgstr "" -#: ../Doc/c-api/typeobj.rst:299 ../Doc/c-api/typeobj.rst:312 +#: c-api/typeobj.rst:312 msgid "__getitem__" msgstr "" -#: ../Doc/c-api/typeobj.rst:301 +#: c-api/typeobj.rst:301 msgid ":c:member:`~PyMappingMethods.mp_ass_subscript`" msgstr "" -#: ../Doc/c-api/typeobj.rst:301 ../Doc/c-api/typeobj.rst:458 +#: c-api/typeobj.rst:458 msgid ":c:type:`objobjargproc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:301 +#: c-api/typeobj.rst:301 msgid "__setitem__, __delitem__" msgstr "" -#: ../Doc/c-api/typeobj.rst:306 +#: c-api/typeobj.rst:306 msgid ":c:member:`~PySequenceMethods.sq_length`" msgstr "" -#: ../Doc/c-api/typeobj.rst:308 +#: c-api/typeobj.rst:308 msgid ":c:member:`~PySequenceMethods.sq_concat`" msgstr "" -#: ../Doc/c-api/typeobj.rst:308 +#: c-api/typeobj.rst:308 msgid "__add__" msgstr "" -#: ../Doc/c-api/typeobj.rst:310 +#: c-api/typeobj.rst:310 msgid ":c:member:`~PySequenceMethods.sq_repeat`" msgstr "" -#: ../Doc/c-api/typeobj.rst:310 ../Doc/c-api/typeobj.rst:312 -#: ../Doc/c-api/typeobj.rst:321 ../Doc/c-api/typeobj.rst:443 +#: c-api/typeobj.rst:312 c-api/typeobj.rst:443 msgid ":c:type:`ssizeargfunc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:312 +#: c-api/typeobj.rst:312 msgid ":c:member:`~PySequenceMethods.sq_item`" msgstr "" -#: ../Doc/c-api/typeobj.rst:314 +#: c-api/typeobj.rst:314 msgid ":c:member:`~PySequenceMethods.sq_ass_item`" msgstr "" -#: ../Doc/c-api/typeobj.rst:314 ../Doc/c-api/typeobj.rst:448 +#: c-api/typeobj.rst:448 msgid ":c:type:`ssizeobjargproc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:314 +#: c-api/typeobj.rst:314 msgid "__setitem__ __delitem__" msgstr "" -#: ../Doc/c-api/typeobj.rst:317 +#: c-api/typeobj.rst:317 msgid ":c:member:`~PySequenceMethods.sq_contains`" msgstr "" -#: ../Doc/c-api/typeobj.rst:317 ../Doc/c-api/typeobj.rst:453 +#: c-api/typeobj.rst:453 msgid ":c:type:`objobjproc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:317 +#: c-api/typeobj.rst:317 msgid "__contains__" msgstr "" -#: ../Doc/c-api/typeobj.rst:319 +#: c-api/typeobj.rst:319 msgid ":c:member:`~PySequenceMethods.sq_inplace_concat`" msgstr "" -#: ../Doc/c-api/typeobj.rst:321 +#: c-api/typeobj.rst:321 msgid ":c:member:`~PySequenceMethods.sq_inplace_repeat`" msgstr "" -#: ../Doc/c-api/typeobj.rst:321 +#: c-api/typeobj.rst:321 msgid "__imul__" msgstr "" -#: ../Doc/c-api/typeobj.rst:325 +#: c-api/typeobj.rst:325 msgid ":c:member:`~PyBufferProcs.bf_getbuffer`" msgstr "" -#: ../Doc/c-api/typeobj.rst:325 +#: c-api/typeobj.rst:325 msgid ":c:func:`getbufferproc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:327 +#: c-api/typeobj.rst:327 msgid ":c:member:`~PyBufferProcs.bf_releasebuffer`" msgstr "" -#: ../Doc/c-api/typeobj.rst:327 +#: c-api/typeobj.rst:327 msgid ":c:func:`releasebufferproc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:333 +#: c-api/typeobj.rst:333 msgid "slot typedefs" msgstr "" -#: ../Doc/c-api/typeobj.rst:336 +#: c-api/typeobj.rst:336 msgid "typedef" msgstr "" -#: ../Doc/c-api/typeobj.rst:336 +#: c-api/typeobj.rst:336 msgid "Parameter Types" msgstr "" -#: ../Doc/c-api/typeobj.rst:336 +#: c-api/typeobj.rst:336 msgid "Return Type" msgstr "" -#: ../Doc/c-api/typeobj.rst:343 ../Doc/c-api/typeobj.rst:345 -#: ../Doc/c-api/typeobj.rst:421 +#: c-api/typeobj.rst:345 c-api/typeobj.rst:421 msgid "void" msgstr "" -#: ../Doc/c-api/typeobj.rst:0 +#: c-api/typeobj.rst:0 msgid ":c:type:`visitproc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:347 ../Doc/c-api/typeobj.rst:359 -#: ../Doc/c-api/typeobj.rst:372 ../Doc/c-api/typeobj.rst:383 -#: ../Doc/c-api/typeobj.rst:395 ../Doc/c-api/typeobj.rst:0 -#: ../Doc/c-api/typeobj.rst:415 ../Doc/c-api/typeobj.rst:426 -#: ../Doc/c-api/typeobj.rst:448 ../Doc/c-api/typeobj.rst:453 -#: ../Doc/c-api/typeobj.rst:458 +#: c-api/typeobj.rst:359 c-api/typeobj.rst:383 c-api/typeobj.rst:0 +#: c-api/typeobj.rst:426 c-api/typeobj.rst:453 c-api/typeobj.rst:458 msgid "int" msgstr "*int*" -#: ../Doc/c-api/typeobj.rst:401 +#: c-api/typeobj.rst:401 msgid "Py_hash_t" msgstr "" -#: ../Doc/c-api/typeobj.rst:415 +#: c-api/typeobj.rst:415 msgid ":c:type:`getbufferproc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:0 +#: c-api/typeobj.rst:0 msgid ":c:type:`Py_buffer` *" msgstr "" -#: ../Doc/c-api/typeobj.rst:421 +#: c-api/typeobj.rst:421 msgid ":c:type:`releasebufferproc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:465 +#: c-api/typeobj.rst:465 msgid "See :ref:`slot-typedefs` below for more detail." msgstr "" -#: ../Doc/c-api/typeobj.rst:469 +#: c-api/typeobj.rst:469 msgid "PyTypeObject Definition" msgstr "" -#: ../Doc/c-api/typeobj.rst:471 +#: c-api/typeobj.rst:471 msgid "" "The structure definition for :c:type:`PyTypeObject` can be found in :file:" "`Include/object.h`. For convenience of reference, this repeats the " "definition found there:" msgstr "" -#: ../Doc/c-api/typeobj.rst:481 +#: c-api/typeobj.rst:481 #, fuzzy msgid "PyObject Slots" msgstr "Objets type" -#: ../Doc/c-api/typeobj.rst:483 +#: c-api/typeobj.rst:483 msgid "" "The type object structure extends the :c:type:`PyVarObject` structure. The :" "attr:`ob_size` field is used for dynamic types (created by :func:" @@ -1151,7 +1098,7 @@ msgid "" "the :attr:`ob_size` field." msgstr "" -#: ../Doc/c-api/typeobj.rst:493 +#: c-api/typeobj.rst:493 msgid "" "These fields are only present when the macro ``Py_TRACE_REFS`` is defined. " "Their initialization to ``NULL`` is taken care of by the " @@ -1163,43 +1110,24 @@ msgid "" "end of a run when the environment variable :envvar:`PYTHONDUMPREFS` is set." msgstr "" -#: ../Doc/c-api/typeobj.rst:502 ../Doc/c-api/typeobj.rst:515 -#: ../Doc/c-api/typeobj.rst:538 ../Doc/c-api/typeobj.rst:551 -#: ../Doc/c-api/typeobj.rst:593 ../Doc/c-api/typeobj.rst:636 -#: ../Doc/c-api/typeobj.rst:682 ../Doc/c-api/typeobj.rst:738 -#: ../Doc/c-api/typeobj.rst:757 ../Doc/c-api/typeobj.rst:774 -#: ../Doc/c-api/typeobj.rst:792 ../Doc/c-api/typeobj.rst:816 -#: ../Doc/c-api/typeobj.rst:833 ../Doc/c-api/typeobj.rst:845 -#: ../Doc/c-api/typeobj.rst:857 ../Doc/c-api/typeobj.rst:890 -#: ../Doc/c-api/typeobj.rst:908 ../Doc/c-api/typeobj.rst:928 -#: ../Doc/c-api/typeobj.rst:949 ../Doc/c-api/typeobj.rst:975 -#: ../Doc/c-api/typeobj.rst:994 ../Doc/c-api/typeobj.rst:1010 -#: ../Doc/c-api/typeobj.rst:1047 ../Doc/c-api/typeobj.rst:1058 -#: ../Doc/c-api/typeobj.rst:1068 ../Doc/c-api/typeobj.rst:1078 -#: ../Doc/c-api/typeobj.rst:1092 ../Doc/c-api/typeobj.rst:1111 -#: ../Doc/c-api/typeobj.rst:1134 ../Doc/c-api/typeobj.rst:1179 -#: ../Doc/c-api/typeobj.rst:1203 ../Doc/c-api/typeobj.rst:1245 -#: ../Doc/c-api/typeobj.rst:1306 ../Doc/c-api/typeobj.rst:1365 -#: ../Doc/c-api/typeobj.rst:1395 ../Doc/c-api/typeobj.rst:1427 -#: ../Doc/c-api/typeobj.rst:1450 ../Doc/c-api/typeobj.rst:1463 -#: ../Doc/c-api/typeobj.rst:1478 ../Doc/c-api/typeobj.rst:1492 -#: ../Doc/c-api/typeobj.rst:1522 ../Doc/c-api/typeobj.rst:1542 -#: ../Doc/c-api/typeobj.rst:1568 ../Doc/c-api/typeobj.rst:1586 -#: ../Doc/c-api/typeobj.rst:1626 ../Doc/c-api/typeobj.rst:1677 -#: ../Doc/c-api/typeobj.rst:1694 ../Doc/c-api/typeobj.rst:1732 -#: ../Doc/c-api/typeobj.rst:1753 ../Doc/c-api/typeobj.rst:1785 -#: ../Doc/c-api/typeobj.rst:1802 ../Doc/c-api/typeobj.rst:1813 -#: ../Doc/c-api/typeobj.rst:1823 ../Doc/c-api/typeobj.rst:1832 -#: ../Doc/c-api/typeobj.rst:1842 ../Doc/c-api/typeobj.rst:1856 -#: ../Doc/c-api/typeobj.rst:1894 +#: c-api/typeobj.rst:515 c-api/typeobj.rst:551 c-api/typeobj.rst:636 +#: c-api/typeobj.rst:738 c-api/typeobj.rst:774 c-api/typeobj.rst:816 +#: c-api/typeobj.rst:845 c-api/typeobj.rst:890 c-api/typeobj.rst:928 +#: c-api/typeobj.rst:975 c-api/typeobj.rst:1010 c-api/typeobj.rst:1058 +#: c-api/typeobj.rst:1078 c-api/typeobj.rst:1111 c-api/typeobj.rst:1179 +#: c-api/typeobj.rst:1257 c-api/typeobj.rst:1377 c-api/typeobj.rst:1439 +#: c-api/typeobj.rst:1475 c-api/typeobj.rst:1504 c-api/typeobj.rst:1554 +#: c-api/typeobj.rst:1598 c-api/typeobj.rst:1689 c-api/typeobj.rst:1744 +#: c-api/typeobj.rst:1797 c-api/typeobj.rst:1825 c-api/typeobj.rst:1844 +#: c-api/typeobj.rst:1868 c-api/typeobj.rst:1906 msgid "**Inheritance:**" msgstr "" -#: ../Doc/c-api/typeobj.rst:504 +#: c-api/typeobj.rst:504 msgid "These fields are not inherited by subtypes." msgstr "" -#: ../Doc/c-api/typeobj.rst:509 +#: c-api/typeobj.rst:509 msgid "" "This is the type object's reference count, initialized to ``1`` by the " "``PyObject_HEAD_INIT`` macro. Note that for statically allocated type " @@ -1208,12 +1136,11 @@ msgid "" "objects, the instances *do* count as references." msgstr "" -#: ../Doc/c-api/typeobj.rst:517 ../Doc/c-api/typeobj.rst:553 -#: ../Doc/c-api/typeobj.rst:595 +#: c-api/typeobj.rst:553 c-api/typeobj.rst:595 msgid "This field is not inherited by subtypes." msgstr "" -#: ../Doc/c-api/typeobj.rst:522 +#: c-api/typeobj.rst:522 msgid "" "This is the type's type, in other words its metatype. It is initialized by " "the argument to the ``PyObject_HEAD_INIT`` macro, and its value should " @@ -1225,7 +1152,7 @@ msgid "" "doing anything else. This is typically done like this::" msgstr "" -#: ../Doc/c-api/typeobj.rst:533 +#: c-api/typeobj.rst:533 msgid "" "This should be done before any instances of the type are created. :c:func:" "`PyType_Ready` checks if :attr:`ob_type` is ``NULL``, and if so, initializes " @@ -1233,32 +1160,28 @@ msgid "" "will not change this field if it is non-zero." msgstr "" -#: ../Doc/c-api/typeobj.rst:540 ../Doc/c-api/typeobj.rst:684 -#: ../Doc/c-api/typeobj.rst:818 ../Doc/c-api/typeobj.rst:910 -#: ../Doc/c-api/typeobj.rst:930 ../Doc/c-api/typeobj.rst:1429 -#: ../Doc/c-api/typeobj.rst:1452 ../Doc/c-api/typeobj.rst:1570 -#: ../Doc/c-api/typeobj.rst:1588 ../Doc/c-api/typeobj.rst:1679 -#: ../Doc/c-api/typeobj.rst:1787 ../Doc/c-api/typeobj.rst:1896 +#: c-api/typeobj.rst:684 c-api/typeobj.rst:910 c-api/typeobj.rst:1441 +#: c-api/typeobj.rst:1582 c-api/typeobj.rst:1691 c-api/typeobj.rst:1908 msgid "This field is inherited by subtypes." msgstr "" -#: ../Doc/c-api/typeobj.rst:544 +#: c-api/typeobj.rst:544 msgid "PyVarObject Slots" msgstr "" -#: ../Doc/c-api/typeobj.rst:548 +#: c-api/typeobj.rst:548 msgid "" "For statically allocated type objects, this should be initialized to zero. " "For dynamically allocated type objects, this field has a special internal " "meaning." msgstr "" -#: ../Doc/c-api/typeobj.rst:557 +#: c-api/typeobj.rst:557 #, fuzzy msgid "PyTypeObject Slots" msgstr "Objets type" -#: ../Doc/c-api/typeobj.rst:559 +#: c-api/typeobj.rst:559 msgid "" "Each slot has a section describing inheritance. If :c:func:`PyType_Ready` " "may set a value when the field is set to ``NULL`` then there will also be a " @@ -1266,7 +1189,7 @@ msgid "" "`PyBaseObject_Type` and :c:type:`PyType_Type` effectively act as defaults.)" msgstr "" -#: ../Doc/c-api/typeobj.rst:566 +#: c-api/typeobj.rst:566 msgid "" "Pointer to a NUL-terminated string containing the name of the type. For " "types that are accessible as module globals, the string should be the full " @@ -1278,14 +1201,14 @@ msgid "" "tp_name` initializer ``\"P.Q.M.T\"``." msgstr "" -#: ../Doc/c-api/typeobj.rst:574 +#: c-api/typeobj.rst:574 msgid "" "For dynamically allocated type objects, this should just be the type name, " "and the module name explicitly stored in the type dict as the value for key " "``'__module__'``." msgstr "" -#: ../Doc/c-api/typeobj.rst:578 +#: c-api/typeobj.rst:578 msgid "" "For statically allocated type objects, the tp_name field should contain a " "dot. Everything before the last dot is made accessible as the :attr:" @@ -1293,7 +1216,7 @@ msgid "" "as the :attr:`~definition.__name__` attribute." msgstr "" -#: ../Doc/c-api/typeobj.rst:583 +#: c-api/typeobj.rst:583 msgid "" "If no dot is present, the entire :c:member:`~PyTypeObject.tp_name` field is " "made accessible as the :attr:`~definition.__name__` attribute, and the :attr:" @@ -1303,19 +1226,19 @@ msgid "" "created with pydoc." msgstr "" -#: ../Doc/c-api/typeobj.rst:589 +#: c-api/typeobj.rst:589 msgid "" "This field must not be ``NULL``. It is the only required field in :c:func:" "`PyTypeObject` (other than potentially :c:member:`~PyTypeObject." "tp_itemsize`)." msgstr "" -#: ../Doc/c-api/typeobj.rst:601 +#: c-api/typeobj.rst:601 msgid "" "These fields allow calculating the size in bytes of instances of the type." msgstr "" -#: ../Doc/c-api/typeobj.rst:603 +#: c-api/typeobj.rst:603 msgid "" "There are two kinds of types: types with fixed-length instances have a zero :" "c:member:`~PyTypeObject.tp_itemsize` field, types with variable-length " @@ -1324,7 +1247,7 @@ msgid "" "in :c:member:`~PyTypeObject.tp_basicsize`." msgstr "" -#: ../Doc/c-api/typeobj.rst:608 +#: c-api/typeobj.rst:608 msgid "" "For a type with variable-length instances, the instances must have an :attr:" "`ob_size` field, and the instance size is :c:member:`~PyTypeObject." @@ -1338,7 +1261,7 @@ msgid "" "instances, yet those instances have a meaningful :attr:`ob_size` field)." msgstr "" -#: ../Doc/c-api/typeobj.rst:619 +#: c-api/typeobj.rst:619 msgid "" "The basic size includes the fields in the instance declared by the macro :c:" "macro:`PyObject_HEAD` or :c:macro:`PyObject_VAR_HEAD` (whichever is used to " @@ -1350,7 +1273,7 @@ msgid "" "size." msgstr "" -#: ../Doc/c-api/typeobj.rst:627 +#: c-api/typeobj.rst:627 msgid "" "A note about alignment: if the variable items require a particular " "alignment, this should be taken care of by the value of :c:member:" @@ -1361,12 +1284,12 @@ msgid "" "alignment requirement for ``double``)." msgstr "" -#: ../Doc/c-api/typeobj.rst:634 +#: c-api/typeobj.rst:634 msgid "" "For any type with variable-length instances, this field must not be ``NULL``." msgstr "" -#: ../Doc/c-api/typeobj.rst:638 +#: c-api/typeobj.rst:638 msgid "" "These fields are inherited separately by subtypes. If the base type has a " "non-zero :c:member:`~PyTypeObject.tp_itemsize`, it is generally not safe to " @@ -1374,7 +1297,7 @@ msgid "" "subtype (though this depends on the implementation of the base type)." msgstr "" -#: ../Doc/c-api/typeobj.rst:646 +#: c-api/typeobj.rst:646 msgid "" "A pointer to the instance destructor function. This function must be " "defined unless the type guarantees that its instances will never be " @@ -1382,7 +1305,7 @@ msgid "" "The function signature is::" msgstr "" -#: ../Doc/c-api/typeobj.rst:652 +#: c-api/typeobj.rst:652 msgid "" "The destructor function is called by the :c:func:`Py_DECREF` and :c:func:" "`Py_XDECREF` macros when the new reference count is zero. At this point, " @@ -1400,7 +1323,7 @@ msgid "" "allocated using :c:func:`PyObject_GC_New` or :c:func:`PyObject_GC_NewVar`." msgstr "" -#: ../Doc/c-api/typeobj.rst:667 +#: c-api/typeobj.rst:667 msgid "" "Finally, if the type is heap allocated (:const:`Py_TPFLAGS_HEAPTYPE`), the " "deallocator should decrement the reference count for its type object after " @@ -1408,14 +1331,14 @@ msgid "" "recommended way to achieve this is:" msgstr "" -#: ../Doc/c-api/typeobj.rst:689 +#: c-api/typeobj.rst:689 msgid "" "An optional offset to a per-instance function that implements calling the " "object using the *vectorcall* protocol, a more efficient alternative of the " "simpler :c:member:`~PyTypeObject.tp_call`." msgstr "" -#: ../Doc/c-api/typeobj.rst:693 +#: c-api/typeobj.rst:693 msgid "" "This field is only used if the flag :const:`_Py_TPFLAGS_HAVE_VECTORCALL` is " "set. If so, this must be a positive integer containing the offset in the " @@ -1423,14 +1346,14 @@ msgid "" "for :c:func:`_PyObject_Vectorcall`::" msgstr "" -#: ../Doc/c-api/typeobj.rst:700 +#: c-api/typeobj.rst:700 msgid "" "The *vectorcallfunc* pointer may be zero, in which case the instance behaves " "as if :const:`_Py_TPFLAGS_HAVE_VECTORCALL` was not set: calling the instance " "falls back to :c:member:`~PyTypeObject.tp_call`." msgstr "" -#: ../Doc/c-api/typeobj.rst:704 +#: c-api/typeobj.rst:704 msgid "" "Any class that sets ``_Py_TPFLAGS_HAVE_VECTORCALL`` must also set :c:member:" "`~PyTypeObject.tp_call` and make sure its behaviour is consistent with the " @@ -1438,13 +1361,13 @@ msgid "" "``PyVectorcall_Call``:" msgstr "" -#: ../Doc/c-api/typeobj.rst:711 +#: c-api/typeobj.rst:711 msgid "" "Call *callable*'s *vectorcallfunc* with positional and keyword arguments " "given in a tuple and dict, respectively." msgstr "" -#: ../Doc/c-api/typeobj.rst:714 +#: c-api/typeobj.rst:714 msgid "" "This function is intended to be used in the ``tp_call`` slot. It does not " "fall back to ``tp_call`` and it currently does not check the " @@ -1452,7 +1375,7 @@ msgid "" "func:`PyObject_Call ` functions instead." msgstr "" -#: ../Doc/c-api/typeobj.rst:722 +#: c-api/typeobj.rst:722 msgid "" "It is not recommended for :ref:`heap types ` to implement the " "vectorcall protocol. When a user sets ``__call__`` in Python code, only " @@ -1460,20 +1383,20 @@ msgid "" "function." msgstr "" -#: ../Doc/c-api/typeobj.rst:729 +#: c-api/typeobj.rst:729 msgid "" "The semantics of the ``tp_vectorcall_offset`` slot are provisional and " "expected to be finalized in Python 3.9. If you use vectorcall, plan for " "updating your code for Python 3.9." msgstr "" -#: ../Doc/c-api/typeobj.rst:735 +#: c-api/typeobj.rst:735 msgid "" "This slot was used for print formatting in Python 2.x. In Python 3.0 to 3.7, " "it was reserved and named ``tp_print``." msgstr "" -#: ../Doc/c-api/typeobj.rst:740 +#: c-api/typeobj.rst:740 msgid "" "This field is inherited by subtypes together with :c:member:`~PyTypeObject." "tp_call`: a subtype inherits :c:member:`~PyTypeObject.tp_vectorcall_offset` " @@ -1481,17 +1404,17 @@ msgid "" "``NULL``." msgstr "" -#: ../Doc/c-api/typeobj.rst:745 +#: c-api/typeobj.rst:745 msgid "" "Note that `heap types`_ (including subclasses defined in Python) do not " "inherit the :const:`_Py_TPFLAGS_HAVE_VECTORCALL` flag." msgstr "" -#: ../Doc/c-api/typeobj.rst:751 +#: c-api/typeobj.rst:751 msgid "An optional pointer to the get-attribute-string function." msgstr "" -#: ../Doc/c-api/typeobj.rst:753 +#: c-api/typeobj.rst:753 msgid "" "This field is deprecated. When it is defined, it should point to a function " "that acts the same as the :c:member:`~PyTypeObject.tp_getattro` function, " @@ -1499,11 +1422,11 @@ msgid "" "attribute name." msgstr "" -#: ../Doc/c-api/typeobj.rst:759 ../Doc/c-api/typeobj.rst:951 +#: c-api/typeobj.rst:951 msgid "Group: :attr:`tp_getattr`, :attr:`tp_getattro`" msgstr "" -#: ../Doc/c-api/typeobj.rst:761 +#: c-api/typeobj.rst:761 msgid "" "This field is inherited by subtypes together with :c:member:`~PyTypeObject." "tp_getattro`: a subtype inherits both :c:member:`~PyTypeObject.tp_getattr` " @@ -1512,12 +1435,12 @@ msgid "" "tp_getattro` are both ``NULL``." msgstr "" -#: ../Doc/c-api/typeobj.rst:768 ../Doc/c-api/typeobj.rst:964 +#: c-api/typeobj.rst:964 msgid "" "An optional pointer to the function for setting and deleting attributes." msgstr "" -#: ../Doc/c-api/typeobj.rst:770 +#: c-api/typeobj.rst:770 msgid "" "This field is deprecated. When it is defined, it should point to a function " "that acts the same as the :c:member:`~PyTypeObject.tp_setattro` function, " @@ -1525,11 +1448,11 @@ msgid "" "attribute name." msgstr "" -#: ../Doc/c-api/typeobj.rst:776 ../Doc/c-api/typeobj.rst:977 +#: c-api/typeobj.rst:977 msgid "Group: :attr:`tp_setattr`, :attr:`tp_setattro`" msgstr "" -#: ../Doc/c-api/typeobj.rst:778 +#: c-api/typeobj.rst:778 msgid "" "This field is inherited by subtypes together with :c:member:`~PyTypeObject." "tp_setattro`: a subtype inherits both :c:member:`~PyTypeObject.tp_setattr` " @@ -1538,34 +1461,34 @@ msgid "" "tp_setattro` are both ``NULL``." msgstr "" -#: ../Doc/c-api/typeobj.rst:785 +#: c-api/typeobj.rst:785 msgid "" "Pointer to an additional structure that contains fields relevant only to " "objects which implement :term:`awaitable` and :term:`asynchronous iterator` " "protocols at the C-level. See :ref:`async-structs` for details." msgstr "" -#: ../Doc/c-api/typeobj.rst:789 +#: c-api/typeobj.rst:789 msgid "Formerly known as ``tp_compare`` and ``tp_reserved``." msgstr "" -#: ../Doc/c-api/typeobj.rst:794 +#: c-api/typeobj.rst:794 msgid "" "The :c:member:`~PyTypeObject.tp_as_async` field is not inherited, but the " "contained fields are inherited individually." msgstr "" -#: ../Doc/c-api/typeobj.rst:802 +#: c-api/typeobj.rst:802 msgid "" "An optional pointer to a function that implements the built-in function :" "func:`repr`." msgstr "" -#: ../Doc/c-api/typeobj.rst:805 +#: c-api/typeobj.rst:805 msgid "The signature is the same as for :c:func:`PyObject_Repr`::" msgstr "" -#: ../Doc/c-api/typeobj.rst:809 +#: c-api/typeobj.rst:809 msgid "" "The function must return a string or a Unicode object. Ideally, this " "function should return a string that, when passed to :func:`eval`, given a " @@ -1574,87 +1497,83 @@ msgid "" "``'>'`` from which both the type and the value of the object can be deduced." msgstr "" -#: ../Doc/c-api/typeobj.rst:820 ../Doc/c-api/typeobj.rst:932 -#: ../Doc/c-api/typeobj.rst:957 ../Doc/c-api/typeobj.rst:983 -#: ../Doc/c-api/typeobj.rst:1025 ../Doc/c-api/typeobj.rst:1374 -#: ../Doc/c-api/typeobj.rst:1526 ../Doc/c-api/typeobj.rst:1547 -#: ../Doc/c-api/typeobj.rst:1645 ../Doc/c-api/typeobj.rst:1681 -#: ../Doc/c-api/typeobj.rst:1699 ../Doc/c-api/typeobj.rst:1737 -#: ../Doc/c-api/typeobj.rst:1758 ../Doc/c-api/typeobj.rst:1789 +#: c-api/typeobj.rst:932 c-api/typeobj.rst:983 c-api/typeobj.rst:1386 +#: c-api/typeobj.rst:1559 c-api/typeobj.rst:1693 c-api/typeobj.rst:1749 +#: c-api/typeobj.rst:1801 msgid "**Default:**" msgstr "" -#: ../Doc/c-api/typeobj.rst:822 +#: c-api/typeobj.rst:822 msgid "" "When this field is not set, a string of the form ``<%s object at %p>`` is " "returned, where ``%s`` is replaced by the type name, and ``%p`` by the " "object's memory address." msgstr "" -#: ../Doc/c-api/typeobj.rst:829 +#: c-api/typeobj.rst:829 msgid "" "Pointer to an additional structure that contains fields relevant only to " "objects which implement the number protocol. These fields are documented " "in :ref:`number-structs`." msgstr "" -#: ../Doc/c-api/typeobj.rst:835 +#: c-api/typeobj.rst:835 msgid "" "The :c:member:`~PyTypeObject.tp_as_number` field is not inherited, but the " "contained fields are inherited individually." msgstr "" -#: ../Doc/c-api/typeobj.rst:841 +#: c-api/typeobj.rst:841 msgid "" "Pointer to an additional structure that contains fields relevant only to " "objects which implement the sequence protocol. These fields are documented " "in :ref:`sequence-structs`." msgstr "" -#: ../Doc/c-api/typeobj.rst:847 +#: c-api/typeobj.rst:847 msgid "" "The :c:member:`~PyTypeObject.tp_as_sequence` field is not inherited, but the " "contained fields are inherited individually." msgstr "" -#: ../Doc/c-api/typeobj.rst:853 +#: c-api/typeobj.rst:853 msgid "" "Pointer to an additional structure that contains fields relevant only to " "objects which implement the mapping protocol. These fields are documented " "in :ref:`mapping-structs`." msgstr "" -#: ../Doc/c-api/typeobj.rst:859 +#: c-api/typeobj.rst:859 msgid "" "The :c:member:`~PyTypeObject.tp_as_mapping` field is not inherited, but the " "contained fields are inherited individually." msgstr "" -#: ../Doc/c-api/typeobj.rst:867 +#: c-api/typeobj.rst:867 msgid "" "An optional pointer to a function that implements the built-in function :" "func:`hash`." msgstr "" -#: ../Doc/c-api/typeobj.rst:870 +#: c-api/typeobj.rst:870 msgid "The signature is the same as for :c:func:`PyObject_Hash`::" msgstr "" -#: ../Doc/c-api/typeobj.rst:874 +#: c-api/typeobj.rst:874 msgid "" "The value ``-1`` should not be returned as a normal return value; when an " "error occurs during the computation of the hash value, the function should " "set an exception and return ``-1``." msgstr "" -#: ../Doc/c-api/typeobj.rst:878 +#: c-api/typeobj.rst:878 msgid "" "When this field is not set (*and* :attr:`tp_richcompare` is not set), an " "attempt to take the hash of the object raises :exc:`TypeError`. This is the " "same as setting it to :c:func:`PyObject_HashNotImplemented`." msgstr "" -#: ../Doc/c-api/typeobj.rst:882 +#: c-api/typeobj.rst:882 msgid "" "This field can be set explicitly to :c:func:`PyObject_HashNotImplemented` to " "block inheritance of the hash method from a parent type. This is interpreted " @@ -1665,11 +1584,11 @@ msgid "" "`PyObject_HashNotImplemented`." msgstr "" -#: ../Doc/c-api/typeobj.rst:892 ../Doc/c-api/typeobj.rst:1367 +#: c-api/typeobj.rst:1379 msgid "Group: :attr:`tp_hash`, :attr:`tp_richcompare`" msgstr "" -#: ../Doc/c-api/typeobj.rst:894 +#: c-api/typeobj.rst:894 msgid "" "This field is inherited by subtypes together with :c:member:`~PyTypeObject." "tp_richcompare`: a subtype inherits both of :c:member:`~PyTypeObject." @@ -1678,14 +1597,14 @@ msgid "" "are both ``NULL``." msgstr "" -#: ../Doc/c-api/typeobj.rst:902 +#: c-api/typeobj.rst:902 msgid "" "An optional pointer to a function that implements calling the object. This " "should be ``NULL`` if the object is not callable. The signature is the same " "as for :c:func:`PyObject_Call`::" msgstr "" -#: ../Doc/c-api/typeobj.rst:915 +#: c-api/typeobj.rst:915 msgid "" "An optional pointer to a function that implements the built-in operation :" "func:`str`. (Note that :class:`str` is a type now, and :func:`str` calls " @@ -1694,11 +1613,11 @@ msgid "" "this handler.)" msgstr "" -#: ../Doc/c-api/typeobj.rst:920 +#: c-api/typeobj.rst:920 msgid "The signature is the same as for :c:func:`PyObject_Str`::" msgstr "" -#: ../Doc/c-api/typeobj.rst:924 +#: c-api/typeobj.rst:924 msgid "" "The function must return a string or a Unicode object. It should be a " "\"friendly\" string representation of the object, as this is the " @@ -1706,28 +1625,28 @@ msgid "" "function." msgstr "" -#: ../Doc/c-api/typeobj.rst:934 +#: c-api/typeobj.rst:934 msgid "" "When this field is not set, :c:func:`PyObject_Repr` is called to return a " "string representation." msgstr "" -#: ../Doc/c-api/typeobj.rst:940 +#: c-api/typeobj.rst:940 msgid "An optional pointer to the get-attribute function." msgstr "" -#: ../Doc/c-api/typeobj.rst:942 +#: c-api/typeobj.rst:942 msgid "The signature is the same as for :c:func:`PyObject_GetAttr`::" msgstr "" -#: ../Doc/c-api/typeobj.rst:946 +#: c-api/typeobj.rst:946 msgid "" "It is usually convenient to set this field to :c:func:" "`PyObject_GenericGetAttr`, which implements the normal way of looking for " "object attributes." msgstr "" -#: ../Doc/c-api/typeobj.rst:953 +#: c-api/typeobj.rst:953 msgid "" "This field is inherited by subtypes together with :c:member:`~PyTypeObject." "tp_getattr`: a subtype inherits both :c:member:`~PyTypeObject.tp_getattr` " @@ -1736,15 +1655,15 @@ msgid "" "tp_getattro` are both ``NULL``." msgstr "" -#: ../Doc/c-api/typeobj.rst:959 +#: c-api/typeobj.rst:959 msgid ":c:type:`PyBaseObject_Type` uses :c:func:`PyObject_GenericGetAttr`." msgstr "" -#: ../Doc/c-api/typeobj.rst:966 +#: c-api/typeobj.rst:966 msgid "The signature is the same as for :c:func:`PyObject_SetAttr`::" msgstr "" -#: ../Doc/c-api/typeobj.rst:970 +#: c-api/typeobj.rst:970 msgid "" "In addition, setting *value* to ``NULL`` to delete an attribute must be " "supported. It is usually convenient to set this field to :c:func:" @@ -1752,7 +1671,7 @@ msgid "" "attributes." msgstr "" -#: ../Doc/c-api/typeobj.rst:979 +#: c-api/typeobj.rst:979 msgid "" "This field is inherited by subtypes together with :c:member:`~PyTypeObject." "tp_setattr`: a subtype inherits both :c:member:`~PyTypeObject.tp_setattr` " @@ -1761,24 +1680,24 @@ msgid "" "tp_setattro` are both ``NULL``." msgstr "" -#: ../Doc/c-api/typeobj.rst:985 +#: c-api/typeobj.rst:985 msgid ":c:type:`PyBaseObject_Type` uses :c:func:`PyObject_GenericSetAttr`." msgstr "" -#: ../Doc/c-api/typeobj.rst:990 +#: c-api/typeobj.rst:990 msgid "" "Pointer to an additional structure that contains fields relevant only to " "objects which implement the buffer interface. These fields are documented " "in :ref:`buffer-structs`." msgstr "" -#: ../Doc/c-api/typeobj.rst:996 +#: c-api/typeobj.rst:996 msgid "" "The :c:member:`~PyTypeObject.tp_as_buffer` field is not inherited, but the " "contained fields are inherited individually." msgstr "" -#: ../Doc/c-api/typeobj.rst:1002 +#: c-api/typeobj.rst:1002 msgid "" "This field is a bit mask of various flags. Some flags indicate variant " "semantics for certain situations; others are used to indicate that certain " @@ -1790,7 +1709,7 @@ msgid "" "accessed and must be considered to have a zero or ``NULL`` value instead." msgstr "" -#: ../Doc/c-api/typeobj.rst:1012 +#: c-api/typeobj.rst:1012 msgid "" "Inheritance of this field is complicated. Most flag bits are inherited " "individually, i.e. if the base type has a flag bit set, the subtype inherits " @@ -1805,17 +1724,17 @@ msgid "" "the subtype exist and have ``NULL`` values." msgstr "" -#: ../Doc/c-api/typeobj.rst:1027 +#: c-api/typeobj.rst:1027 msgid "" ":c:type:`PyBaseObject_Type` uses ``Py_TPFLAGS_DEFAULT | " "Py_TPFLAGS_BASETYPE``." msgstr "" -#: ../Doc/c-api/typeobj.rst:1030 +#: c-api/typeobj.rst:1030 msgid "**Bit Masks:**" msgstr "" -#: ../Doc/c-api/typeobj.rst:1032 +#: c-api/typeobj.rst:1032 msgid "" "The following bit masks are currently defined; these can be ORed together " "using the ``|`` operator to form the value of the :c:member:`~PyTypeObject." @@ -1824,7 +1743,7 @@ msgid "" "zero." msgstr "" -#: ../Doc/c-api/typeobj.rst:1039 +#: c-api/typeobj.rst:1039 msgid "" "This bit is set when the type object itself is allocated on the heap, for " "example, types created dynamically using :c:func:`PyType_FromSpec`. In this " @@ -1835,32 +1754,30 @@ msgid "" "gets INCREF'ed or DECREF'ed)." msgstr "" -#: ../Doc/c-api/typeobj.rst:1049 ../Doc/c-api/typeobj.rst:1060 -#: ../Doc/c-api/typeobj.rst:1070 ../Doc/c-api/typeobj.rst:1080 -#: ../Doc/c-api/typeobj.rst:1113 +#: c-api/typeobj.rst:1060 c-api/typeobj.rst:1080 c-api/typeobj.rst:1113 msgid "???" msgstr "" -#: ../Doc/c-api/typeobj.rst:1054 +#: c-api/typeobj.rst:1054 msgid "" "This bit is set when the type can be used as the base type of another type. " "If this bit is clear, the type cannot be subtyped (similar to a \"final\" " "class in Java)." msgstr "" -#: ../Doc/c-api/typeobj.rst:1065 +#: c-api/typeobj.rst:1065 msgid "" "This bit is set when the type object has been fully initialized by :c:func:" "`PyType_Ready`." msgstr "" -#: ../Doc/c-api/typeobj.rst:1075 +#: c-api/typeobj.rst:1075 msgid "" "This bit is set while :c:func:`PyType_Ready` is in the process of " "initializing the type object." msgstr "" -#: ../Doc/c-api/typeobj.rst:1085 +#: c-api/typeobj.rst:1085 msgid "" "This bit is set when the object supports garbage collection. If this bit is " "set, instances must be created using :c:func:`PyObject_GC_New` and destroyed " @@ -1870,13 +1787,12 @@ msgid "" "tp_clear` are present in the type object." msgstr "" -#: ../Doc/c-api/typeobj.rst:1094 ../Doc/c-api/typeobj.rst:1247 -#: ../Doc/c-api/typeobj.rst:1308 +#: c-api/typeobj.rst:1259 c-api/typeobj.rst:1320 msgid "" "Group: :const:`Py_TPFLAGS_HAVE_GC`, :attr:`tp_traverse`, :attr:`tp_clear`" msgstr "" -#: ../Doc/c-api/typeobj.rst:1096 +#: c-api/typeobj.rst:1096 msgid "" "The :const:`Py_TPFLAGS_HAVE_GC` flag bit is inherited together with the :" "attr:`tp_traverse` and :attr:`tp_clear` fields, i.e. if the :const:" @@ -1885,7 +1801,7 @@ msgid "" "``NULL`` values." msgstr "" -#: ../Doc/c-api/typeobj.rst:1106 +#: c-api/typeobj.rst:1106 msgid "" "This is a bitmask of all the bits that pertain to the existence of certain " "fields in the type object and its extension structures. Currently, it " @@ -1893,40 +1809,40 @@ msgid "" "const:`Py_TPFLAGS_HAVE_VERSION_TAG`." msgstr "" -#: ../Doc/c-api/typeobj.rst:1118 +#: c-api/typeobj.rst:1118 msgid "This bit indicates that objects behave like unbound methods." msgstr "" -#: ../Doc/c-api/typeobj.rst:1120 +#: c-api/typeobj.rst:1120 msgid "If this flag is set for ``type(meth)``, then:" msgstr "" -#: ../Doc/c-api/typeobj.rst:1122 +#: c-api/typeobj.rst:1122 msgid "" "``meth.__get__(obj, cls)(*args, **kwds)`` (with ``obj`` not None) must be " "equivalent to ``meth(obj, *args, **kwds)``." msgstr "" -#: ../Doc/c-api/typeobj.rst:1125 +#: c-api/typeobj.rst:1125 msgid "" "``meth.__get__(None, cls)(*args, **kwds)`` must be equivalent to " "``meth(*args, **kwds)``." msgstr "" -#: ../Doc/c-api/typeobj.rst:1128 +#: c-api/typeobj.rst:1128 msgid "" "This flag enables an optimization for typical method calls like ``obj." "meth()``: it avoids creating a temporary \"bound method\" object for ``obj." "meth``." msgstr "" -#: ../Doc/c-api/typeobj.rst:1136 +#: c-api/typeobj.rst:1136 msgid "" "This flag is never inherited by heap types. For extension types, it is " "inherited whenever :c:member:`~PyTypeObject.tp_descr_get` is inherited." msgstr "" -#: ../Doc/c-api/typeobj.rst:1153 +#: c-api/typeobj.rst:1153 msgid "" "These flags are used by functions such as :c:func:`PyLong_Check` to quickly " "determine if a type is a subclass of a built-in type; such specific checks " @@ -1936,25 +1852,25 @@ msgid "" "behave differently depending on what kind of check is used." msgstr "" -#: ../Doc/c-api/typeobj.rst:1164 +#: c-api/typeobj.rst:1164 msgid "" "This bit is set when the :c:member:`~PyTypeObject.tp_finalize` slot is " "present in the type structure." msgstr "" -#: ../Doc/c-api/typeobj.rst:1169 +#: c-api/typeobj.rst:1169 msgid "" "This flag isn't necessary anymore, as the interpreter assumes the :c:member:" "`~PyTypeObject.tp_finalize` slot is always present in the type structure." msgstr "" -#: ../Doc/c-api/typeobj.rst:1176 +#: c-api/typeobj.rst:1176 msgid "" "This bit is set when the class implements the vectorcall protocol. See :c:" "member:`~PyTypeObject.tp_vectorcall_offset` for details." msgstr "" -#: ../Doc/c-api/typeobj.rst:1181 +#: c-api/typeobj.rst:1181 msgid "" "This bit is set on *static* subtypes if ``tp_flags`` is not overridden: a " "subtype inherits ``_Py_TPFLAGS_HAVE_VECTORCALL`` from its base type when the " @@ -1962,52 +1878,52 @@ msgid "" "``Py_TPFLAGS_HEAPTYPE`` is not set." msgstr "" -#: ../Doc/c-api/typeobj.rst:1186 +#: c-api/typeobj.rst:1186 msgid "`Heap types`_ do not inherit ``_Py_TPFLAGS_HAVE_VECTORCALL``." msgstr "" -#: ../Doc/c-api/typeobj.rst:1190 +#: c-api/typeobj.rst:1190 msgid "" "This flag is provisional and expected to become public in Python 3.9, with a " "different name and, possibly, changed semantics. If you use vectorcall, plan " "for updating your code for Python 3.9." msgstr "" -#: ../Doc/c-api/typeobj.rst:1199 +#: c-api/typeobj.rst:1199 msgid "" "An optional pointer to a NUL-terminated C string giving the docstring for " "this type object. This is exposed as the :attr:`__doc__` attribute on the " "type and instances of the type." msgstr "" -#: ../Doc/c-api/typeobj.rst:1205 +#: c-api/typeobj.rst:1205 msgid "This field is *not* inherited by subtypes." msgstr "" -#: ../Doc/c-api/typeobj.rst:1210 +#: c-api/typeobj.rst:1210 msgid "" "An optional pointer to a traversal function for the garbage collector. This " "is only used if the :const:`Py_TPFLAGS_HAVE_GC` flag bit is set. The " "signature is::" msgstr "" -#: ../Doc/c-api/typeobj.rst:1215 ../Doc/c-api/typeobj.rst:1303 +#: c-api/typeobj.rst:1315 msgid "" "More information about Python's garbage collection scheme can be found in " "section :ref:`supporting-cycle-detection`." msgstr "" -#: ../Doc/c-api/typeobj.rst:1218 +#: c-api/typeobj.rst:1218 msgid "" "The :c:member:`~PyTypeObject.tp_traverse` pointer is used by the garbage " "collector to detect reference cycles. A typical implementation of a :c:" "member:`~PyTypeObject.tp_traverse` function simply calls :c:func:`Py_VISIT` " -"on each of the instance's members that are Python objects. For example, " -"this is function :c:func:`local_traverse` from the :mod:`_thread` extension " -"module::" +"on each of the instance's members that are Python objects that the instance " +"owns. For example, this is function :c:func:`local_traverse` from the :mod:" +"`_thread` extension module::" msgstr "" -#: ../Doc/c-api/typeobj.rst:1233 +#: c-api/typeobj.rst:1233 msgid "" "Note that :c:func:`Py_VISIT` is called only on those members that can " "participate in reference cycles. Although there is also a ``self->key`` " @@ -2015,21 +1931,34 @@ msgid "" "part of a reference cycle." msgstr "" -#: ../Doc/c-api/typeobj.rst:1237 +#: c-api/typeobj.rst:1237 msgid "" "On the other hand, even if you know a member can never be part of a cycle, " "as a debugging aid you may want to visit it anyway just so the :mod:`gc` " "module's :func:`~gc.get_referents` function will include it." msgstr "" -#: ../Doc/c-api/typeobj.rst:1241 +#: c-api/typeobj.rst:1242 +msgid "" +"When implementing :c:member:`~PyTypeObject.tp_traverse`, only the members " +"that the instance *owns* (by having strong references to them) must be " +"visited. For instance, if an object supports weak references via the :c:" +"member:`~PyTypeObject.tp_weaklist` slot, the pointer supporting the linked " +"list (what *tp_weaklist* points to) must **not** be visited as the instance " +"does not directly own the weak references to itself (the weakreference list " +"is there to support the weak reference machinery, but the instance has no " +"strong reference to the elements inside it, as they are allowed to be " +"removed even if the instance is still alive)." +msgstr "" + +#: c-api/typeobj.rst:1253 msgid "" "Note that :c:func:`Py_VISIT` requires the *visit* and *arg* parameters to :c:" "func:`local_traverse` to have these specific names; don't name them just " "anything." msgstr "" -#: ../Doc/c-api/typeobj.rst:1249 +#: c-api/typeobj.rst:1261 msgid "" "This field is inherited by subtypes together with :c:member:`~PyTypeObject." "tp_clear` and the :const:`Py_TPFLAGS_HAVE_GC` flag bit: the flag bit, :c:" @@ -2037,14 +1966,14 @@ msgid "" "are all inherited from the base type if they are all zero in the subtype." msgstr "" -#: ../Doc/c-api/typeobj.rst:1257 +#: c-api/typeobj.rst:1269 msgid "" "An optional pointer to a clear function for the garbage collector. This is " "only used if the :const:`Py_TPFLAGS_HAVE_GC` flag bit is set. The signature " "is::" msgstr "" -#: ../Doc/c-api/typeobj.rst:1262 +#: c-api/typeobj.rst:1274 msgid "" "The :c:member:`~PyTypeObject.tp_clear` member function is used to break " "reference cycles in cyclic garbage detected by the garbage collector. Taken " @@ -2059,7 +1988,7 @@ msgid "" "good reason to avoid implementing :c:member:`~PyTypeObject.tp_clear`." msgstr "" -#: ../Doc/c-api/typeobj.rst:1272 +#: c-api/typeobj.rst:1284 msgid "" "Implementations of :c:member:`~PyTypeObject.tp_clear` should drop the " "instance's references to those of its members that may be Python objects, " @@ -2067,7 +1996,7 @@ msgid "" "example::" msgstr "" -#: ../Doc/c-api/typeobj.rst:1286 +#: c-api/typeobj.rst:1298 msgid "" "The :c:func:`Py_CLEAR` macro should be used, because clearing references is " "delicate: the reference to the contained object must not be decremented " @@ -2082,7 +2011,7 @@ msgid "" "in a safe order." msgstr "" -#: ../Doc/c-api/typeobj.rst:1297 +#: c-api/typeobj.rst:1309 msgid "" "Because the goal of :c:member:`~PyTypeObject.tp_clear` functions is to break " "reference cycles, it's not necessary to clear contained objects like Python " @@ -2092,7 +2021,7 @@ msgid "" "invoke :c:member:`~PyTypeObject.tp_clear`." msgstr "" -#: ../Doc/c-api/typeobj.rst:1310 +#: c-api/typeobj.rst:1322 msgid "" "This field is inherited by subtypes together with :c:member:`~PyTypeObject." "tp_traverse` and the :const:`Py_TPFLAGS_HAVE_GC` flag bit: the flag bit, :c:" @@ -2100,18 +2029,18 @@ msgid "" "are all inherited from the base type if they are all zero in the subtype." msgstr "" -#: ../Doc/c-api/typeobj.rst:1318 +#: c-api/typeobj.rst:1330 msgid "" "An optional pointer to the rich comparison function, whose signature is::" msgstr "" -#: ../Doc/c-api/typeobj.rst:1322 +#: c-api/typeobj.rst:1334 msgid "" "The first parameter is guaranteed to be an instance of the type that is " "defined by :c:type:`PyTypeObject`." msgstr "" -#: ../Doc/c-api/typeobj.rst:1325 +#: c-api/typeobj.rst:1337 msgid "" "The function should return the result of the comparison (usually ``Py_True`` " "or ``Py_False``). If the comparison is undefined, it must return " @@ -2119,74 +2048,74 @@ msgid "" "set an exception condition." msgstr "" -#: ../Doc/c-api/typeobj.rst:1330 +#: c-api/typeobj.rst:1342 msgid "" "The following constants are defined to be used as the third argument for :c:" "member:`~PyTypeObject.tp_richcompare` and for :c:func:`PyObject_RichCompare`:" msgstr "" -#: ../Doc/c-api/typeobj.rst:1334 +#: c-api/typeobj.rst:1346 msgid "Constant" msgstr "Constante" -#: ../Doc/c-api/typeobj.rst:1334 +#: c-api/typeobj.rst:1346 msgid "Comparison" msgstr "Comparaison" -#: ../Doc/c-api/typeobj.rst:1336 +#: c-api/typeobj.rst:1348 msgid ":const:`Py_LT`" -msgstr "" +msgstr ":const:`Py_LT`" -#: ../Doc/c-api/typeobj.rst:1336 +#: c-api/typeobj.rst:1348 msgid "``<``" msgstr "``<``" -#: ../Doc/c-api/typeobj.rst:1338 +#: c-api/typeobj.rst:1350 msgid ":const:`Py_LE`" -msgstr "" +msgstr ":const:`Py_LE`" -#: ../Doc/c-api/typeobj.rst:1338 +#: c-api/typeobj.rst:1350 msgid "``<=``" msgstr "``<=``" -#: ../Doc/c-api/typeobj.rst:1340 +#: c-api/typeobj.rst:1352 msgid ":const:`Py_EQ`" -msgstr "" +msgstr ":const:`Py_EQ`" -#: ../Doc/c-api/typeobj.rst:1340 +#: c-api/typeobj.rst:1352 msgid "``==``" msgstr "``==``" -#: ../Doc/c-api/typeobj.rst:1342 +#: c-api/typeobj.rst:1354 msgid ":const:`Py_NE`" -msgstr "" +msgstr ":const:`Py_NE`" -#: ../Doc/c-api/typeobj.rst:1342 +#: c-api/typeobj.rst:1354 msgid "``!=``" msgstr "``!=``" -#: ../Doc/c-api/typeobj.rst:1344 +#: c-api/typeobj.rst:1356 msgid ":const:`Py_GT`" -msgstr "" +msgstr ":const:`Py_GT`" -#: ../Doc/c-api/typeobj.rst:1344 +#: c-api/typeobj.rst:1356 msgid "``>``" msgstr "``>``" -#: ../Doc/c-api/typeobj.rst:1346 +#: c-api/typeobj.rst:1358 msgid ":const:`Py_GE`" -msgstr "" +msgstr ":const:`Py_GE`" -#: ../Doc/c-api/typeobj.rst:1346 +#: c-api/typeobj.rst:1358 msgid "``>=``" msgstr "``>=``" -#: ../Doc/c-api/typeobj.rst:1349 +#: c-api/typeobj.rst:1361 msgid "" "The following macro is defined to ease writing rich comparison functions:" msgstr "" -#: ../Doc/c-api/typeobj.rst:1353 +#: c-api/typeobj.rst:1365 msgid "" "Return ``Py_True`` or ``Py_False`` from the function, depending on the " "result of a comparison. VAL_A and VAL_B must be orderable by C comparison " @@ -2194,15 +2123,15 @@ msgid "" "specifies the requested operation, as for :c:func:`PyObject_RichCompare`." msgstr "" -#: ../Doc/c-api/typeobj.rst:1359 +#: c-api/typeobj.rst:1371 msgid "The return value's reference count is properly incremented." msgstr "" -#: ../Doc/c-api/typeobj.rst:1361 +#: c-api/typeobj.rst:1373 msgid "On error, sets an exception and returns ``NULL`` from the function." msgstr "" -#: ../Doc/c-api/typeobj.rst:1369 +#: c-api/typeobj.rst:1381 msgid "" "This field is inherited by subtypes together with :c:member:`~PyTypeObject." "tp_hash`: a subtype inherits :c:member:`~PyTypeObject.tp_richcompare` and :c:" @@ -2210,7 +2139,7 @@ msgid "" "tp_richcompare` and :c:member:`~PyTypeObject.tp_hash` are both ``NULL``." msgstr "" -#: ../Doc/c-api/typeobj.rst:1376 +#: c-api/typeobj.rst:1388 msgid "" ":c:type:`PyBaseObject_Type` provides a :attr:`tp_richcompare` " "implementation, which may be inherited. However, if only :attr:`tp_hash` is " @@ -2218,23 +2147,23 @@ msgid "" "will not be able to participate in any comparisons." msgstr "" -#: ../Doc/c-api/typeobj.rst:1385 +#: c-api/typeobj.rst:1397 msgid "" "If the instances of this type are weakly referenceable, this field is " "greater than zero and contains the offset in the instance structure of the " "weak reference list head (ignoring the GC header, if present); this offset " "is used by :c:func:`PyObject_ClearWeakRefs` and the :c:func:`PyWeakref_\\*` " "functions. The instance structure needs to include a field of type :c:type:" -"`PyObject\\*` which is initialized to ``NULL``." +"`PyObject*` which is initialized to ``NULL``." msgstr "" -#: ../Doc/c-api/typeobj.rst:1392 +#: c-api/typeobj.rst:1404 msgid "" "Do not confuse this field with :c:member:`~PyTypeObject.tp_weaklist`; that " "is the list head for weak references to the type object itself." msgstr "" -#: ../Doc/c-api/typeobj.rst:1397 +#: c-api/typeobj.rst:1409 msgid "" "This field is inherited by subtypes, but see the rules listed below. A " "subtype may override this offset; this means that the subtype uses a " @@ -2243,7 +2172,7 @@ msgid "" "not be a problem." msgstr "" -#: ../Doc/c-api/typeobj.rst:1402 +#: c-api/typeobj.rst:1414 msgid "" "When a type defined by a class statement has no :attr:`~object.__slots__` " "declaration, and none of its base types are weakly referenceable, the type " @@ -2252,7 +2181,7 @@ msgid "" "tp_weaklistoffset` of that slot's offset." msgstr "" -#: ../Doc/c-api/typeobj.rst:1407 +#: c-api/typeobj.rst:1419 msgid "" "When a type's :attr:`__slots__` declaration contains a slot named :attr:" "`__weakref__`, that slot becomes the weak reference list head for instances " @@ -2260,31 +2189,31 @@ msgid "" "`~PyTypeObject.tp_weaklistoffset`." msgstr "" -#: ../Doc/c-api/typeobj.rst:1412 +#: c-api/typeobj.rst:1424 msgid "" "When a type's :attr:`__slots__` declaration does not contain a slot named :" "attr:`__weakref__`, the type inherits its :c:member:`~PyTypeObject." "tp_weaklistoffset` from its base type." msgstr "" -#: ../Doc/c-api/typeobj.rst:1419 +#: c-api/typeobj.rst:1431 msgid "" "An optional pointer to a function that returns an iterator for the object. " "Its presence normally signals that the instances of this type are iterable " "(although sequences may be iterable without this function)." msgstr "" -#: ../Doc/c-api/typeobj.rst:1423 +#: c-api/typeobj.rst:1435 msgid "This function has the same signature as :c:func:`PyObject_GetIter`::" msgstr "" -#: ../Doc/c-api/typeobj.rst:1434 +#: c-api/typeobj.rst:1446 msgid "" "An optional pointer to a function that returns the next item in an iterator. " "The signature is::" msgstr "" -#: ../Doc/c-api/typeobj.rst:1439 +#: c-api/typeobj.rst:1451 msgid "" "When the iterator is exhausted, it must return ``NULL``; a :exc:" "`StopIteration` exception may or may not be set. When another error occurs, " @@ -2292,74 +2221,74 @@ msgid "" "this type are iterators." msgstr "" -#: ../Doc/c-api/typeobj.rst:1444 +#: c-api/typeobj.rst:1456 msgid "" "Iterator types should also define the :c:member:`~PyTypeObject.tp_iter` " "function, and that function should return the iterator instance itself (not " "a new iterator instance)." msgstr "" -#: ../Doc/c-api/typeobj.rst:1448 +#: c-api/typeobj.rst:1460 msgid "This function has the same signature as :c:func:`PyIter_Next`." msgstr "" -#: ../Doc/c-api/typeobj.rst:1457 +#: c-api/typeobj.rst:1469 msgid "" "An optional pointer to a static ``NULL``-terminated array of :c:type:" "`PyMethodDef` structures, declaring regular methods of this type." msgstr "" -#: ../Doc/c-api/typeobj.rst:1460 +#: c-api/typeobj.rst:1472 msgid "" "For each entry in the array, an entry is added to the type's dictionary " "(see :c:member:`~PyTypeObject.tp_dict` below) containing a method descriptor." msgstr "" -#: ../Doc/c-api/typeobj.rst:1465 +#: c-api/typeobj.rst:1477 msgid "" "This field is not inherited by subtypes (methods are inherited through a " "different mechanism)." msgstr "" -#: ../Doc/c-api/typeobj.rst:1471 +#: c-api/typeobj.rst:1483 msgid "" "An optional pointer to a static ``NULL``-terminated array of :c:type:" "`PyMemberDef` structures, declaring regular data members (fields or slots) " "of instances of this type." msgstr "" -#: ../Doc/c-api/typeobj.rst:1475 +#: c-api/typeobj.rst:1487 msgid "" "For each entry in the array, an entry is added to the type's dictionary " "(see :c:member:`~PyTypeObject.tp_dict` below) containing a member descriptor." msgstr "" -#: ../Doc/c-api/typeobj.rst:1480 +#: c-api/typeobj.rst:1492 msgid "" "This field is not inherited by subtypes (members are inherited through a " "different mechanism)." msgstr "" -#: ../Doc/c-api/typeobj.rst:1486 +#: c-api/typeobj.rst:1498 msgid "" "An optional pointer to a static ``NULL``-terminated array of :c:type:" "`PyGetSetDef` structures, declaring computed attributes of instances of this " "type." msgstr "" -#: ../Doc/c-api/typeobj.rst:1489 +#: c-api/typeobj.rst:1501 msgid "" "For each entry in the array, an entry is added to the type's dictionary " "(see :c:member:`~PyTypeObject.tp_dict` below) containing a getset descriptor." msgstr "" -#: ../Doc/c-api/typeobj.rst:1494 +#: c-api/typeobj.rst:1506 msgid "" "This field is not inherited by subtypes (computed attributes are inherited " "through a different mechanism)." msgstr "" -#: ../Doc/c-api/typeobj.rst:1500 +#: c-api/typeobj.rst:1512 msgid "" "An optional pointer to a base type from which type properties are " "inherited. At this level, only single inheritance is supported; multiple " @@ -2367,7 +2296,7 @@ msgid "" "metatype." msgstr "" -#: ../Doc/c-api/typeobj.rst:1508 +#: c-api/typeobj.rst:1520 msgid "" "Slot initialization is subject to the rules of initializing globals. C99 " "requires the initializers to be \"address constants\". Function designators " @@ -2375,7 +2304,7 @@ msgid "" "valid C99 address constants." msgstr "" -#: ../Doc/c-api/typeobj.rst:1513 +#: c-api/typeobj.rst:1525 msgid "" "However, the unary '&' operator applied to a non-static variable like :c:" "func:`PyBaseObject_Type` is not required to produce an address constant. " @@ -2383,27 +2312,27 @@ msgid "" "strictly standard conforming in this particular behavior." msgstr "" -#: ../Doc/c-api/typeobj.rst:1519 +#: c-api/typeobj.rst:1531 msgid "" "Consequently, :c:member:`~PyTypeObject.tp_base` should be set in the " "extension module's init function." msgstr "" -#: ../Doc/c-api/typeobj.rst:1524 +#: c-api/typeobj.rst:1536 msgid "This field is not inherited by subtypes (obviously)." msgstr "" -#: ../Doc/c-api/typeobj.rst:1528 +#: c-api/typeobj.rst:1540 msgid "" "This field defaults to ``&PyBaseObject_Type`` (which to Python programmers " "is known as the type :class:`object`)." msgstr "" -#: ../Doc/c-api/typeobj.rst:1534 +#: c-api/typeobj.rst:1546 msgid "The type's dictionary is stored here by :c:func:`PyType_Ready`." msgstr "" -#: ../Doc/c-api/typeobj.rst:1536 +#: c-api/typeobj.rst:1548 msgid "" "This field should normally be initialized to ``NULL`` before PyType_Ready is " "called; it may also be initialized to a dictionary containing initial " @@ -2412,45 +2341,43 @@ msgid "" "they don't correspond to overloaded operations (like :meth:`__add__`)." msgstr "" -#: ../Doc/c-api/typeobj.rst:1544 +#: c-api/typeobj.rst:1556 msgid "" "This field is not inherited by subtypes (though the attributes defined in " "here are inherited through a different mechanism)." msgstr "" -#: ../Doc/c-api/typeobj.rst:1549 +#: c-api/typeobj.rst:1561 msgid "" "If this field is ``NULL``, :c:func:`PyType_Ready` will assign a new " "dictionary to it." msgstr "" -#: ../Doc/c-api/typeobj.rst:1554 +#: c-api/typeobj.rst:1566 msgid "" "It is not safe to use :c:func:`PyDict_SetItem` on or otherwise modify :c:" "member:`~PyTypeObject.tp_dict` with the dictionary C-API." msgstr "" -#: ../Doc/c-api/typeobj.rst:1560 +#: c-api/typeobj.rst:1572 msgid "An optional pointer to a \"descriptor get\" function." msgstr "" -#: ../Doc/c-api/typeobj.rst:1562 ../Doc/c-api/typeobj.rst:1578 -#: ../Doc/c-api/typeobj.rst:1660 ../Doc/c-api/typeobj.rst:1690 -#: ../Doc/c-api/typeobj.rst:1714 +#: c-api/typeobj.rst:1590 c-api/typeobj.rst:1702 c-api/typeobj.rst:1726 msgid "The function signature is::" msgstr "" -#: ../Doc/c-api/typeobj.rst:1575 +#: c-api/typeobj.rst:1587 msgid "" "An optional pointer to a function for setting and deleting a descriptor's " "value." msgstr "" -#: ../Doc/c-api/typeobj.rst:1582 +#: c-api/typeobj.rst:1594 msgid "The *value* argument is set to ``NULL`` to delete the value." msgstr "" -#: ../Doc/c-api/typeobj.rst:1593 +#: c-api/typeobj.rst:1605 msgid "" "If the instances of this type have a dictionary containing instance " "variables, this field is non-zero and contains the offset in the instances " @@ -2458,13 +2385,13 @@ msgid "" "func:`PyObject_GenericGetAttr`." msgstr "" -#: ../Doc/c-api/typeobj.rst:1598 +#: c-api/typeobj.rst:1610 msgid "" "Do not confuse this field with :c:member:`~PyTypeObject.tp_dict`; that is " "the dictionary for attributes of the type object itself." msgstr "" -#: ../Doc/c-api/typeobj.rst:1601 +#: c-api/typeobj.rst:1613 msgid "" "If the value of this field is greater than zero, it specifies the offset " "from the start of the instance structure. If the value is less than zero, " @@ -2480,13 +2407,13 @@ msgid "" "the very end of the structure." msgstr "" -#: ../Doc/c-api/typeobj.rst:1613 +#: c-api/typeobj.rst:1625 msgid "" "The real dictionary offset in an instance can be computed from a negative :c:" "member:`~PyTypeObject.tp_dictoffset` as follows::" msgstr "" -#: ../Doc/c-api/typeobj.rst:1620 +#: c-api/typeobj.rst:1632 msgid "" "where :c:member:`~PyTypeObject.tp_basicsize`, :c:member:`~PyTypeObject." "tp_itemsize` and :c:member:`~PyTypeObject.tp_dictoffset` are taken from the " @@ -2496,7 +2423,7 @@ msgid "" "it is done for you by :c:func:`_PyObject_GetDictPtr`.)" msgstr "" -#: ../Doc/c-api/typeobj.rst:1628 +#: c-api/typeobj.rst:1640 msgid "" "This field is inherited by subtypes, but see the rules listed below. A " "subtype may override this offset; this means that the subtype instances " @@ -2505,7 +2432,7 @@ msgid "" "should not be a problem." msgstr "" -#: ../Doc/c-api/typeobj.rst:1633 +#: c-api/typeobj.rst:1645 msgid "" "When a type defined by a class statement has no :attr:`~object.__slots__` " "declaration, and none of its base types has an instance variable dictionary, " @@ -2513,14 +2440,14 @@ msgid "" "`~PyTypeObject.tp_dictoffset` is set to that slot's offset." msgstr "" -#: ../Doc/c-api/typeobj.rst:1638 +#: c-api/typeobj.rst:1650 msgid "" "When a type defined by a class statement has a :attr:`__slots__` " "declaration, the type inherits its :c:member:`~PyTypeObject.tp_dictoffset` " "from its base type." msgstr "" -#: ../Doc/c-api/typeobj.rst:1641 +#: c-api/typeobj.rst:1653 msgid "" "(Adding a slot named :attr:`~object.__dict__` to the :attr:`__slots__` " "declaration does not have the expected effect, it just causes confusion. " @@ -2528,17 +2455,17 @@ msgid "" "though.)" msgstr "" -#: ../Doc/c-api/typeobj.rst:1647 +#: c-api/typeobj.rst:1659 msgid "" "This slot has no default. For static types, if the field is ``NULL`` then " "no :attr:`__dict__` gets created for instances." msgstr "" -#: ../Doc/c-api/typeobj.rst:1653 +#: c-api/typeobj.rst:1665 msgid "An optional pointer to an instance initialization function." msgstr "" -#: ../Doc/c-api/typeobj.rst:1655 +#: c-api/typeobj.rst:1667 msgid "" "This function corresponds to the :meth:`__init__` method of classes. Like :" "meth:`__init__`, it is possible to create an instance without calling :meth:" @@ -2546,14 +2473,14 @@ msgid "" "meth:`__init__` method again." msgstr "" -#: ../Doc/c-api/typeobj.rst:1664 +#: c-api/typeobj.rst:1676 msgid "" "The self argument is the instance to be initialized; the *args* and *kwds* " "arguments represent positional and keyword arguments of the call to :meth:" "`__init__`." msgstr "" -#: ../Doc/c-api/typeobj.rst:1668 +#: c-api/typeobj.rst:1680 msgid "" "The :c:member:`~PyTypeObject.tp_init` function, if not ``NULL``, is called " "when an instance is created normally by calling its type, after the type's :" @@ -2565,42 +2492,42 @@ msgid "" "subtype's :c:member:`~PyTypeObject.tp_init` is called." msgstr "" -#: ../Doc/c-api/typeobj.rst:1675 +#: c-api/typeobj.rst:1687 msgid "Returns ``0`` on success, ``-1`` and sets an exception on error." msgstr "" -#: ../Doc/c-api/typeobj.rst:1683 +#: c-api/typeobj.rst:1695 msgid "For static types this field does not have a default." msgstr "" -#: ../Doc/c-api/typeobj.rst:1688 +#: c-api/typeobj.rst:1700 msgid "An optional pointer to an instance allocation function." msgstr "" -#: ../Doc/c-api/typeobj.rst:1696 +#: c-api/typeobj.rst:1708 msgid "" "This field is inherited by static subtypes, but not by dynamic subtypes " "(subtypes created by a class statement)." msgstr "" -#: ../Doc/c-api/typeobj.rst:1701 +#: c-api/typeobj.rst:1713 msgid "" "For dynamic subtypes, this field is always set to :c:func:" "`PyType_GenericAlloc`, to force a standard heap allocation strategy." msgstr "" -#: ../Doc/c-api/typeobj.rst:1705 +#: c-api/typeobj.rst:1717 msgid "" "For static subtypes, :c:type:`PyBaseObject_Type` uses :c:func:" "`PyType_GenericAlloc`. That is the recommended value for all statically " "defined types." msgstr "" -#: ../Doc/c-api/typeobj.rst:1712 +#: c-api/typeobj.rst:1724 msgid "An optional pointer to an instance creation function." msgstr "" -#: ../Doc/c-api/typeobj.rst:1718 +#: c-api/typeobj.rst:1730 msgid "" "The subtype argument is the type of the object being created; the *args* and " "*kwds* arguments represent positional and keyword arguments of the call to " @@ -2609,7 +2536,7 @@ msgid "" "(but not an unrelated type)." msgstr "" -#: ../Doc/c-api/typeobj.rst:1724 +#: c-api/typeobj.rst:1736 msgid "" "The :c:member:`~PyTypeObject.tp_new` function should call ``subtype-" ">tp_alloc(subtype, nitems)`` to allocate space for the object, and then do " @@ -2621,14 +2548,14 @@ msgid "" "be deferred to :c:member:`~PyTypeObject.tp_init`." msgstr "" -#: ../Doc/c-api/typeobj.rst:1734 +#: c-api/typeobj.rst:1746 msgid "" "This field is inherited by subtypes, except it is not inherited by static " "types whose :c:member:`~PyTypeObject.tp_base` is ``NULL`` or " "``&PyBaseObject_Type``." msgstr "" -#: ../Doc/c-api/typeobj.rst:1739 +#: c-api/typeobj.rst:1751 msgid "" "For static types this field has no default. This means if the slot is " "defined as ``NULL``, the type cannot be called to create new instances; " @@ -2636,39 +2563,39 @@ msgid "" "function." msgstr "" -#: ../Doc/c-api/typeobj.rst:1747 +#: c-api/typeobj.rst:1759 msgid "" "An optional pointer to an instance deallocation function. Its signature is::" msgstr "" -#: ../Doc/c-api/typeobj.rst:1751 +#: c-api/typeobj.rst:1763 msgid "" "An initializer that is compatible with this signature is :c:func:" "`PyObject_Free`." msgstr "" -#: ../Doc/c-api/typeobj.rst:1755 +#: c-api/typeobj.rst:1767 msgid "" "This field is inherited by static subtypes, but not by dynamic subtypes " "(subtypes created by a class statement)" msgstr "" -#: ../Doc/c-api/typeobj.rst:1760 +#: c-api/typeobj.rst:1772 msgid "" "In dynamic subtypes, this field is set to a deallocator suitable to match :c:" "func:`PyType_GenericAlloc` and the value of the :const:`Py_TPFLAGS_HAVE_GC` " "flag bit." msgstr "" -#: ../Doc/c-api/typeobj.rst:1764 +#: c-api/typeobj.rst:1776 msgid "For static subtypes, :c:type:`PyBaseObject_Type` uses PyObject_Del." msgstr "" -#: ../Doc/c-api/typeobj.rst:1769 +#: c-api/typeobj.rst:1781 msgid "An optional pointer to a function called by the garbage collector." msgstr "" -#: ../Doc/c-api/typeobj.rst:1771 +#: c-api/typeobj.rst:1783 msgid "" "The garbage collector needs to know whether a particular object is " "collectible or not. Normally, it is sufficient to look at the object's " @@ -2680,76 +2607,74 @@ msgid "" "instance. The signature is::" msgstr "" -#: ../Doc/c-api/typeobj.rst:1781 +#: c-api/typeobj.rst:1793 msgid "" "(The only example of this are types themselves. The metatype, :c:data:" "`PyType_Type`, defines this function to distinguish between statically and " "dynamically allocated types.)" msgstr "" -#: ../Doc/c-api/typeobj.rst:1791 +#: c-api/typeobj.rst:1803 msgid "" "This slot has no default. If this field is ``NULL``, :const:" "`Py_TPFLAGS_HAVE_GC` is used as the functional equivalent." msgstr "" -#: ../Doc/c-api/typeobj.rst:1797 +#: c-api/typeobj.rst:1809 msgid "Tuple of base types." msgstr "" -#: ../Doc/c-api/typeobj.rst:1799 +#: c-api/typeobj.rst:1811 msgid "" "This is set for types created by a class statement. It should be ``NULL`` " "for statically defined types." msgstr "" -#: ../Doc/c-api/typeobj.rst:1804 ../Doc/c-api/typeobj.rst:1825 -#: ../Doc/c-api/typeobj.rst:1834 ../Doc/c-api/typeobj.rst:1844 -#: ../Doc/c-api/typeobj.rst:1858 +#: c-api/typeobj.rst:1837 c-api/typeobj.rst:1856 c-api/typeobj.rst:1870 msgid "This field is not inherited." msgstr "" -#: ../Doc/c-api/typeobj.rst:1809 +#: c-api/typeobj.rst:1821 msgid "" "Tuple containing the expanded set of base types, starting with the type " "itself and ending with :class:`object`, in Method Resolution Order." msgstr "" -#: ../Doc/c-api/typeobj.rst:1815 +#: c-api/typeobj.rst:1827 msgid "" "This field is not inherited; it is calculated fresh by :c:func:" "`PyType_Ready`." msgstr "" -#: ../Doc/c-api/typeobj.rst:1821 +#: c-api/typeobj.rst:1833 msgid "Unused. Internal use only." msgstr "" -#: ../Doc/c-api/typeobj.rst:1830 +#: c-api/typeobj.rst:1842 msgid "List of weak references to subclasses. Internal use only." msgstr "" -#: ../Doc/c-api/typeobj.rst:1839 +#: c-api/typeobj.rst:1851 msgid "" "Weak reference list head, for weak references to this type object. Not " "inherited. Internal use only." msgstr "" -#: ../Doc/c-api/typeobj.rst:1849 +#: c-api/typeobj.rst:1861 msgid "" "This field is deprecated. Use :c:member:`~PyTypeObject.tp_finalize` instead." msgstr "" -#: ../Doc/c-api/typeobj.rst:1854 +#: c-api/typeobj.rst:1866 msgid "Used to index into the method cache. Internal use only." msgstr "" -#: ../Doc/c-api/typeobj.rst:1863 +#: c-api/typeobj.rst:1875 msgid "" "An optional pointer to an instance finalization function. Its signature is::" msgstr "" -#: ../Doc/c-api/typeobj.rst:1867 +#: c-api/typeobj.rst:1879 msgid "" "If :c:member:`~PyTypeObject.tp_finalize` is set, the interpreter calls it " "once when finalizing an instance. It is called either from the garbage " @@ -2759,24 +2684,24 @@ msgid "" "object in a sane state." msgstr "" -#: ../Doc/c-api/typeobj.rst:1874 +#: c-api/typeobj.rst:1886 msgid "" ":c:member:`~PyTypeObject.tp_finalize` should not mutate the current " "exception status; therefore, a recommended way to write a non-trivial " "finalizer is::" msgstr "" -#: ../Doc/c-api/typeobj.rst:1891 +#: c-api/typeobj.rst:1903 msgid "" "For this field to be taken into account (even through inheritance), you must " "also set the :const:`Py_TPFLAGS_HAVE_FINALIZE` flags bit." msgstr "" -#: ../Doc/c-api/typeobj.rst:1900 +#: c-api/typeobj.rst:1912 msgid "\"Safe object finalization\" (:pep:`442`)" msgstr "" -#: ../Doc/c-api/typeobj.rst:1903 +#: c-api/typeobj.rst:1915 msgid "" "The remaining fields are only defined if the feature test macro :const:" "`COUNT_ALLOCS` is defined, and are for internal use only. They are " @@ -2784,31 +2709,31 @@ msgid "" "subtypes." msgstr "" -#: ../Doc/c-api/typeobj.rst:1910 +#: c-api/typeobj.rst:1922 msgid "Number of allocations." msgstr "" -#: ../Doc/c-api/typeobj.rst:1914 +#: c-api/typeobj.rst:1926 msgid "Number of frees." msgstr "" -#: ../Doc/c-api/typeobj.rst:1918 +#: c-api/typeobj.rst:1930 msgid "Maximum simultaneously allocated objects." msgstr "" -#: ../Doc/c-api/typeobj.rst:1922 +#: c-api/typeobj.rst:1934 msgid "" "Pointer to the previous type object with a non-zero :c:member:`~PyTypeObject." "tp_allocs` field." msgstr "" -#: ../Doc/c-api/typeobj.rst:1926 +#: c-api/typeobj.rst:1938 msgid "" "Pointer to the next type object with a non-zero :c:member:`~PyTypeObject." "tp_allocs` field." msgstr "" -#: ../Doc/c-api/typeobj.rst:1928 +#: c-api/typeobj.rst:1940 msgid "" "Also, note that, in a garbage collected Python, :c:member:`~PyTypeObject." "tp_dealloc` may be called from any Python thread, not just the thread which " @@ -2821,77 +2746,77 @@ msgid "" "which called tp_dealloc will not violate any assumptions of the library." msgstr "" -#: ../Doc/c-api/typeobj.rst:1942 +#: c-api/typeobj.rst:1954 msgid "Heap Types" msgstr "" -#: ../Doc/c-api/typeobj.rst:1944 +#: c-api/typeobj.rst:1956 msgid "" "Traditionally, types defined in C code are *static*, that is, a static :c:" "type:`PyTypeObject` structure is defined directly in code and initialized " "using :c:func:`PyType_Ready`." msgstr "" -#: ../Doc/c-api/typeobj.rst:1948 +#: c-api/typeobj.rst:1960 msgid "" "This results in types that are limited relative to types defined in Python:" msgstr "" -#: ../Doc/c-api/typeobj.rst:1950 +#: c-api/typeobj.rst:1962 msgid "" "Static types are limited to one base, i.e. they cannot use multiple " "inheritance." msgstr "" -#: ../Doc/c-api/typeobj.rst:1952 +#: c-api/typeobj.rst:1964 msgid "" "Static type objects (but not necessarily their instances) are immutable. It " "is not possible to add or modify the type object's attributes from Python." msgstr "" -#: ../Doc/c-api/typeobj.rst:1954 +#: c-api/typeobj.rst:1966 msgid "" "Static type objects are shared across :ref:`sub-interpreters `, so they should not include any subinterpreter-" "specific state." msgstr "" -#: ../Doc/c-api/typeobj.rst:1958 +#: c-api/typeobj.rst:1970 msgid "" "Also, since :c:type:`PyTypeObject` is not part of the :ref:`stable ABI " "`, any extension modules using static types must be compiled for a " "specific Python minor version." msgstr "" -#: ../Doc/c-api/typeobj.rst:1962 +#: c-api/typeobj.rst:1974 msgid "" "An alternative to static types is *heap-allocated types*, or *heap types* " "for short, which correspond closely to classes created by Python's ``class`` " "statement." msgstr "" -#: ../Doc/c-api/typeobj.rst:1966 +#: c-api/typeobj.rst:1978 msgid "" "This is done by filling a :c:type:`PyType_Spec` structure and calling :c:" "func:`PyType_FromSpecWithBases`." msgstr "" -#: ../Doc/c-api/typeobj.rst:1973 +#: c-api/typeobj.rst:1985 msgid "Number Object Structures" msgstr "" -#: ../Doc/c-api/typeobj.rst:1980 +#: c-api/typeobj.rst:1992 msgid "" "This structure holds pointers to the functions which an object uses to " "implement the number protocol. Each function is used by the function of " "similar name documented in the :ref:`number` section." msgstr "" -#: ../Doc/c-api/typeobj.rst:1986 ../Doc/c-api/typeobj.rst:2310 +#: c-api/typeobj.rst:2322 msgid "Here is the structure definition::" msgstr "" -#: ../Doc/c-api/typeobj.rst:2033 +#: c-api/typeobj.rst:2045 msgid "" "Binary and ternary functions must check the type of all their operands, and " "implement the necessary conversions (at least one of the operands is an " @@ -2901,30 +2826,30 @@ msgid "" "and set an exception." msgstr "" -#: ../Doc/c-api/typeobj.rst:2042 +#: c-api/typeobj.rst:2054 msgid "" "The :c:data:`nb_reserved` field should always be ``NULL``. It was " "previously called :c:data:`nb_long`, and was renamed in Python 3.0.1." msgstr "" -#: ../Doc/c-api/typeobj.rst:2087 +#: c-api/typeobj.rst:2099 msgid "Mapping Object Structures" msgstr "" -#: ../Doc/c-api/typeobj.rst:2094 +#: c-api/typeobj.rst:2106 msgid "" "This structure holds pointers to the functions which an object uses to " "implement the mapping protocol. It has three members:" msgstr "" -#: ../Doc/c-api/typeobj.rst:2099 +#: c-api/typeobj.rst:2111 msgid "" "This function is used by :c:func:`PyMapping_Size` and :c:func:" "`PyObject_Size`, and has the same signature. This slot may be set to " "``NULL`` if the object has no defined length." msgstr "" -#: ../Doc/c-api/typeobj.rst:2105 +#: c-api/typeobj.rst:2117 msgid "" "This function is used by :c:func:`PyObject_GetItem` and :c:func:" "`PySequence_GetSlice`, and has the same signature as :c:func:`!" @@ -2932,7 +2857,7 @@ msgid "" "`PyMapping_Check` function to return ``1``, it can be ``NULL`` otherwise." msgstr "" -#: ../Doc/c-api/typeobj.rst:2113 +#: c-api/typeobj.rst:2125 msgid "" "This function is used by :c:func:`PyObject_SetItem`, :c:func:" "`PyObject_DelItem`, :c:func:`PyObject_SetSlice` and :c:func:" @@ -2942,17 +2867,17 @@ msgid "" "deletion." msgstr "" -#: ../Doc/c-api/typeobj.rst:2124 +#: c-api/typeobj.rst:2136 msgid "Sequence Object Structures" msgstr "" -#: ../Doc/c-api/typeobj.rst:2131 +#: c-api/typeobj.rst:2143 msgid "" "This structure holds pointers to the functions which an object uses to " "implement the sequence protocol." msgstr "" -#: ../Doc/c-api/typeobj.rst:2136 +#: c-api/typeobj.rst:2148 msgid "" "This function is used by :c:func:`PySequence_Size` and :c:func:" "`PyObject_Size`, and has the same signature. It is also used for handling " @@ -2960,21 +2885,21 @@ msgid "" "member:`~PySequenceMethods.sq_ass_item` slots." msgstr "" -#: ../Doc/c-api/typeobj.rst:2143 +#: c-api/typeobj.rst:2155 msgid "" "This function is used by :c:func:`PySequence_Concat` and has the same " "signature. It is also used by the ``+`` operator, after trying the numeric " "addition via the :c:member:`~PyNumberMethods.nb_add` slot." msgstr "" -#: ../Doc/c-api/typeobj.rst:2149 +#: c-api/typeobj.rst:2161 msgid "" "This function is used by :c:func:`PySequence_Repeat` and has the same " "signature. It is also used by the ``*`` operator, after trying numeric " "multiplication via the :c:member:`~PyNumberMethods.nb_multiply` slot." msgstr "" -#: ../Doc/c-api/typeobj.rst:2155 +#: c-api/typeobj.rst:2167 msgid "" "This function is used by :c:func:`PySequence_GetItem` and has the same " "signature. It is also used by :c:func:`PyObject_GetItem`, after trying the " @@ -2983,7 +2908,7 @@ msgid "" "``1``, it can be ``NULL`` otherwise." msgstr "" -#: ../Doc/c-api/typeobj.rst:2161 +#: c-api/typeobj.rst:2173 msgid "" "Negative indexes are handled as follows: if the :attr:`sq_length` slot is " "filled, it is called and the sequence length is used to compute a positive " @@ -2991,7 +2916,7 @@ msgid "" "the index is passed as is to the function." msgstr "" -#: ../Doc/c-api/typeobj.rst:2168 +#: c-api/typeobj.rst:2180 msgid "" "This function is used by :c:func:`PySequence_SetItem` and has the same " "signature. It is also used by :c:func:`PyObject_SetItem` and :c:func:" @@ -3000,14 +2925,14 @@ msgid "" "``NULL`` if the object does not support item assignment and deletion." msgstr "" -#: ../Doc/c-api/typeobj.rst:2177 +#: c-api/typeobj.rst:2189 msgid "" "This function may be used by :c:func:`PySequence_Contains` and has the same " "signature. This slot may be left to ``NULL``, in this case :c:func:`!" "PySequence_Contains` simply traverses the sequence until it finds a match." msgstr "" -#: ../Doc/c-api/typeobj.rst:2184 +#: c-api/typeobj.rst:2196 msgid "" "This function is used by :c:func:`PySequence_InPlaceConcat` and has the same " "signature. It should modify its first operand, and return it. This slot " @@ -3017,7 +2942,7 @@ msgid "" "c:member:`~PyNumberMethods.nb_inplace_add` slot." msgstr "" -#: ../Doc/c-api/typeobj.rst:2193 +#: c-api/typeobj.rst:2205 msgid "" "This function is used by :c:func:`PySequence_InPlaceRepeat` and has the same " "signature. It should modify its first operand, and return it. This slot " @@ -3027,72 +2952,70 @@ msgid "" "via the :c:member:`~PyNumberMethods.nb_inplace_multiply` slot." msgstr "" -#: ../Doc/c-api/typeobj.rst:2204 +#: c-api/typeobj.rst:2216 msgid "Buffer Object Structures" msgstr "" -#: ../Doc/c-api/typeobj.rst:2212 +#: c-api/typeobj.rst:2224 msgid "" "This structure holds pointers to the functions required by the :ref:`Buffer " "protocol `. The protocol defines how an exporter object can " "expose its internal data to consumer objects." msgstr "" -#: ../Doc/c-api/typeobj.rst:2218 ../Doc/c-api/typeobj.rst:2267 -#: ../Doc/c-api/typeobj.rst:2320 ../Doc/c-api/typeobj.rst:2331 -#: ../Doc/c-api/typeobj.rst:2342 +#: c-api/typeobj.rst:2279 c-api/typeobj.rst:2343 c-api/typeobj.rst:2354 msgid "The signature of this function is::" msgstr "" -#: ../Doc/c-api/typeobj.rst:2222 +#: c-api/typeobj.rst:2234 msgid "" "Handle a request to *exporter* to fill in *view* as specified by *flags*. " "Except for point (3), an implementation of this function MUST take these " "steps:" msgstr "" -#: ../Doc/c-api/typeobj.rst:2226 +#: c-api/typeobj.rst:2238 msgid "" "Check if the request can be met. If not, raise :c:data:`PyExc_BufferError`, " "set :c:data:`view->obj` to ``NULL`` and return ``-1``." msgstr "" -#: ../Doc/c-api/typeobj.rst:2229 +#: c-api/typeobj.rst:2241 msgid "Fill in the requested fields." msgstr "" -#: ../Doc/c-api/typeobj.rst:2231 +#: c-api/typeobj.rst:2243 msgid "Increment an internal counter for the number of exports." msgstr "" -#: ../Doc/c-api/typeobj.rst:2233 +#: c-api/typeobj.rst:2245 msgid "" "Set :c:data:`view->obj` to *exporter* and increment :c:data:`view->obj`." msgstr "" -#: ../Doc/c-api/typeobj.rst:2235 +#: c-api/typeobj.rst:2247 msgid "Return ``0``." msgstr "" -#: ../Doc/c-api/typeobj.rst:2237 +#: c-api/typeobj.rst:2249 msgid "" "If *exporter* is part of a chain or tree of buffer providers, two main " "schemes can be used:" msgstr "" -#: ../Doc/c-api/typeobj.rst:2240 +#: c-api/typeobj.rst:2252 msgid "" "Re-export: Each member of the tree acts as the exporting object and sets :c:" "data:`view->obj` to a new reference to itself." msgstr "" -#: ../Doc/c-api/typeobj.rst:2243 +#: c-api/typeobj.rst:2255 msgid "" "Redirect: The buffer request is redirected to the root object of the tree. " "Here, :c:data:`view->obj` will be a new reference to the root object." msgstr "" -#: ../Doc/c-api/typeobj.rst:2247 +#: c-api/typeobj.rst:2259 msgid "" "The individual fields of *view* are described in section :ref:`Buffer " "structure `, the rules how an exporter must react to " @@ -3100,7 +3023,7 @@ msgid "" "types>`." msgstr "" -#: ../Doc/c-api/typeobj.rst:2252 +#: c-api/typeobj.rst:2264 msgid "" "All memory pointed to in the :c:type:`Py_buffer` structure belongs to the " "exporter and must remain valid until there are no consumers left. :c:member:" @@ -3109,19 +3032,19 @@ msgid "" "internal` are read-only for the consumer." msgstr "" -#: ../Doc/c-api/typeobj.rst:2259 +#: c-api/typeobj.rst:2271 msgid "" ":c:func:`PyBuffer_FillInfo` provides an easy way of exposing a simple bytes " "buffer while dealing correctly with all request types." msgstr "" -#: ../Doc/c-api/typeobj.rst:2262 +#: c-api/typeobj.rst:2274 msgid "" ":c:func:`PyObject_GetBuffer` is the interface for the consumer that wraps " "this function." msgstr "" -#: ../Doc/c-api/typeobj.rst:2271 +#: c-api/typeobj.rst:2283 msgid "" "Handle a request to release the resources of the buffer. If no resources " "need to be released, :c:member:`PyBufferProcs.bf_releasebuffer` may be " @@ -3129,15 +3052,15 @@ msgid "" "these optional steps:" msgstr "" -#: ../Doc/c-api/typeobj.rst:2276 +#: c-api/typeobj.rst:2288 msgid "Decrement an internal counter for the number of exports." msgstr "" -#: ../Doc/c-api/typeobj.rst:2278 +#: c-api/typeobj.rst:2290 msgid "If the counter is ``0``, free all memory associated with *view*." msgstr "" -#: ../Doc/c-api/typeobj.rst:2280 +#: c-api/typeobj.rst:2292 msgid "" "The exporter MUST use the :c:member:`~Py_buffer.internal` field to keep " "track of buffer-specific resources. This field is guaranteed to remain " @@ -3145,62 +3068,62 @@ msgid "" "*view* argument." msgstr "" -#: ../Doc/c-api/typeobj.rst:2286 +#: c-api/typeobj.rst:2298 msgid "" "This function MUST NOT decrement :c:data:`view->obj`, since that is done " "automatically in :c:func:`PyBuffer_Release` (this scheme is useful for " "breaking reference cycles)." msgstr "" -#: ../Doc/c-api/typeobj.rst:2291 +#: c-api/typeobj.rst:2303 msgid "" ":c:func:`PyBuffer_Release` is the interface for the consumer that wraps this " "function." msgstr "" -#: ../Doc/c-api/typeobj.rst:2299 +#: c-api/typeobj.rst:2311 msgid "Async Object Structures" msgstr "" -#: ../Doc/c-api/typeobj.rst:2307 +#: c-api/typeobj.rst:2319 msgid "" "This structure holds pointers to the functions required to implement :term:" "`awaitable` and :term:`asynchronous iterator` objects." msgstr "" -#: ../Doc/c-api/typeobj.rst:2324 +#: c-api/typeobj.rst:2336 msgid "" "The returned object must be an iterator, i.e. :c:func:`PyIter_Check` must " "return ``1`` for it." msgstr "" -#: ../Doc/c-api/typeobj.rst:2327 +#: c-api/typeobj.rst:2339 msgid "" "This slot may be set to ``NULL`` if an object is not an :term:`awaitable`." msgstr "" -#: ../Doc/c-api/typeobj.rst:2335 +#: c-api/typeobj.rst:2347 msgid "" "Must return an :term:`awaitable` object. See :meth:`__anext__` for details." msgstr "" -#: ../Doc/c-api/typeobj.rst:2337 +#: c-api/typeobj.rst:2349 msgid "" "This slot may be set to ``NULL`` if an object does not implement " "asynchronous iteration protocol." msgstr "" -#: ../Doc/c-api/typeobj.rst:2346 +#: c-api/typeobj.rst:2358 msgid "" "Must return an :term:`awaitable` object. See :meth:`__anext__` for details. " "This slot may be set to ``NULL``." msgstr "" -#: ../Doc/c-api/typeobj.rst:2353 +#: c-api/typeobj.rst:2365 msgid "Slot Type typedefs" msgstr "" -#: ../Doc/c-api/typeobj.rst:2357 +#: c-api/typeobj.rst:2369 msgid "" "The purpose of this function is to separate memory allocation from memory " "initialization. It should return a pointer to a block of memory of adequate " @@ -3214,86 +3137,86 @@ msgid "" "member:`~PyTypeObject.tp_basicsize`." msgstr "" -#: ../Doc/c-api/typeobj.rst:2367 +#: c-api/typeobj.rst:2379 msgid "" "This function should not do any other instance initialization, not even to " "allocate additional memory; that should be done by :c:member:`~PyTypeObject." "tp_new`." msgstr "" -#: ../Doc/c-api/typeobj.rst:2374 +#: c-api/typeobj.rst:2386 msgid "See :c:member:`~PyTypeObject.tp_vectorcall_offset`." msgstr "" -#: ../Doc/c-api/typeobj.rst:2376 +#: c-api/typeobj.rst:2388 msgid "" "Arguments to ``vectorcallfunc`` are the same as for :c:func:" "`_PyObject_Vectorcall`." msgstr "" -#: ../Doc/c-api/typeobj.rst:2382 +#: c-api/typeobj.rst:2394 msgid "See :c:member:`~PyTypeObject.tp_free`." msgstr "" -#: ../Doc/c-api/typeobj.rst:2386 +#: c-api/typeobj.rst:2398 msgid "See :c:member:`~PyTypeObject.tp_new`." msgstr "" -#: ../Doc/c-api/typeobj.rst:2390 +#: c-api/typeobj.rst:2402 msgid "See :c:member:`~PyTypeObject.tp_init`." msgstr "" -#: ../Doc/c-api/typeobj.rst:2394 +#: c-api/typeobj.rst:2406 msgid "See :c:member:`~PyTypeObject.tp_repr`." msgstr "" -#: ../Doc/c-api/typeobj.rst:2398 ../Doc/c-api/typeobj.rst:2407 +#: c-api/typeobj.rst:2419 msgid "Return the value of the named attribute for the object." msgstr "" -#: ../Doc/c-api/typeobj.rst:2402 ../Doc/c-api/typeobj.rst:2413 +#: c-api/typeobj.rst:2425 msgid "" "Set the value of the named attribute for the object. The value argument is " "set to ``NULL`` to delete the attribute." msgstr "" -#: ../Doc/c-api/typeobj.rst:2409 +#: c-api/typeobj.rst:2421 msgid "See :c:member:`~PyTypeObject.tp_getattro`." msgstr "" -#: ../Doc/c-api/typeobj.rst:2416 +#: c-api/typeobj.rst:2428 msgid "See :c:member:`~PyTypeObject.tp_setattro`." msgstr "" -#: ../Doc/c-api/typeobj.rst:2420 +#: c-api/typeobj.rst:2432 msgid "See :c:member:`~PyTypeObject.tp_descrget`." msgstr "" -#: ../Doc/c-api/typeobj.rst:2424 +#: c-api/typeobj.rst:2436 msgid "See :c:member:`~PyTypeObject.tp_descrset`." msgstr "" -#: ../Doc/c-api/typeobj.rst:2428 +#: c-api/typeobj.rst:2440 msgid "See :c:member:`~PyTypeObject.tp_hash`." msgstr "" -#: ../Doc/c-api/typeobj.rst:2432 +#: c-api/typeobj.rst:2444 msgid "See :c:member:`~PyTypeObject.tp_richcompare`." msgstr "" -#: ../Doc/c-api/typeobj.rst:2436 +#: c-api/typeobj.rst:2448 msgid "See :c:member:`~PyTypeObject.tp_iter`." msgstr "" -#: ../Doc/c-api/typeobj.rst:2440 +#: c-api/typeobj.rst:2452 msgid "See :c:member:`~PyTypeObject.tp_iternext`." msgstr "" -#: ../Doc/c-api/typeobj.rst:2466 +#: c-api/typeobj.rst:2478 msgid "Examples" msgstr "Exemples" -#: ../Doc/c-api/typeobj.rst:2468 +#: c-api/typeobj.rst:2480 msgid "" "The following are simple examples of Python type definitions. They include " "common usage you may encounter. Some demonstrate tricky corner cases. For " @@ -3301,30 +3224,30 @@ msgid "" "and :ref:`new-types-topics`." msgstr "" -#: ../Doc/c-api/typeobj.rst:2473 +#: c-api/typeobj.rst:2485 msgid "A basic static type::" msgstr "" -#: ../Doc/c-api/typeobj.rst:2490 +#: c-api/typeobj.rst:2502 msgid "" "You may also find older code (especially in the CPython code base) with a " "more verbose initializer::" msgstr "" -#: ../Doc/c-api/typeobj.rst:2534 +#: c-api/typeobj.rst:2546 msgid "A type that supports weakrefs, instance dicts, and hashing::" msgstr "" -#: ../Doc/c-api/typeobj.rst:2561 +#: c-api/typeobj.rst:2573 msgid "" "A str subclass that cannot be subclassed and cannot be called to create " "instances (e.g. uses a separate factory func)::" msgstr "" -#: ../Doc/c-api/typeobj.rst:2580 +#: c-api/typeobj.rst:2592 msgid "The simplest static type (with fixed-length instances)::" msgstr "" -#: ../Doc/c-api/typeobj.rst:2591 +#: c-api/typeobj.rst:2603 msgid "The simplest static type (with variable-length instances)::" msgstr "" diff --git a/c-api/unicode.po b/c-api/unicode.po index a21f6455aa..8e1bb2b6be 100644 --- a/c-api/unicode.po +++ b/c-api/unicode.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-15 18:54+0100\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2018-10-04 12:27+0200\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,15 +14,15 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/c-api/unicode.rst:6 +#: c-api/unicode.rst:6 msgid "Unicode Objects and Codecs" -msgstr "" +msgstr "Objets Unicode et Codecs" -#: ../Doc/c-api/unicode.rst:12 +#: c-api/unicode.rst:12 msgid "Unicode Objects" -msgstr "" +msgstr "Objets Unicode" -#: ../Doc/c-api/unicode.rst:14 +#: c-api/unicode.rst:14 msgid "" "Since the implementation of :pep:`393` in Python 3.3, Unicode objects " "internally use a variety of representations, in order to allow handling the " @@ -31,29 +31,40 @@ msgid "" "65536; otherwise, code points must be below 1114112 (which is the full " "Unicode range)." msgstr "" +"Depuis l'implémentation de :pep:`393` dans Python 3.3, les objets Unicode " +"utilisent une variété de représentations internes, pour permettre de gérer " +"l'intervalle complet des caractères Unicode en restant efficace en termes de " +"mémoire. Il y a des cas spéciaux pour les chaînes où tous les points de code " +"sont inférieurs à 128, 256, ou 65536 ; sinon, les points de code doivent " +"être inférieurs à 1114112 (qui est l'intervalle Unicode complet)." -#: ../Doc/c-api/unicode.rst:20 +#: c-api/unicode.rst:20 msgid "" ":c:type:`Py_UNICODE*` and UTF-8 representations are created on demand and " "cached in the Unicode object. The :c:type:`Py_UNICODE*` representation is " -"deprecated and inefficient; it should be avoided in performance- or memory-" -"sensitive situations." +"deprecated and inefficient." msgstr "" -#: ../Doc/c-api/unicode.rst:25 +#: c-api/unicode.rst:24 msgid "" "Due to the transition between the old APIs and the new APIs, Unicode objects " "can internally be in two states depending on how they were created:" msgstr "" +"En raison de la transition des anciennes APIs vers les nouvelles APIs, les " +"objets Unicode peuvent être dans deux états internes selon comment ils ont " +"été créés :" -#: ../Doc/c-api/unicode.rst:28 +#: c-api/unicode.rst:27 msgid "" "\"canonical\" Unicode objects are all objects created by a non-deprecated " "Unicode API. They use the most efficient representation allowed by the " "implementation." msgstr "" +"Les objets Unicode « canoniques » sont tous les objets créés par une API " +"Unicode non-dépréciée. Ils utilisent la représentation la plus efficace " +"permise par l'implémentation." -#: ../Doc/c-api/unicode.rst:32 +#: c-api/unicode.rst:31 msgid "" "\"legacy\" Unicode objects have been created through one of the deprecated " "APIs (typically :c:func:`PyUnicode_FromUnicode`) and only bear the :c:type:" @@ -61,86 +72,108 @@ msgid "" "`PyUnicode_READY` on them before calling any other API." msgstr "" -#: ../Doc/c-api/unicode.rst:39 -msgid "Unicode Type" +#: c-api/unicode.rst:37 +msgid "" +"The \"legacy\" Unicode object will be removed in Python 3.12 with deprecated " +"APIs. All Unicode objects will be \"canonical\" since then. See :pep:`623` " +"for more information." msgstr "" +"Les objets Unicode « historiques » vont être supprimés de Python 3.12 avec " +"les APIs dépréciées. Tous les objets Unicode vont être « canoniques » à " +"partir de là. Voir :pep:`623` pour plus d'information." + +#: c-api/unicode.rst:43 +msgid "Unicode Type" +msgstr "Type Unicode" -#: ../Doc/c-api/unicode.rst:41 +#: c-api/unicode.rst:45 msgid "" "These are the basic Unicode object types used for the Unicode implementation " "in Python:" msgstr "" +"Voici les types d'objets Unicode utilisés pour l'implémentation Unicode en " +"Python :" -#: ../Doc/c-api/unicode.rst:48 +#: c-api/unicode.rst:52 msgid "" "These types are typedefs for unsigned integer types wide enough to contain " "characters of 32 bits, 16 bits and 8 bits, respectively. When dealing with " "single Unicode characters, use :c:type:`Py_UCS4`." msgstr "" +"Voici les *typedefs* pour les types entiers non signés suffisamment large " +"pour contenir des caractères de 32 bits, 16 bits et 8 bits, respectivement. " +"Pour traiter des caractères uniques, utilisez :c:type:`Py_UCS4`." -#: ../Doc/c-api/unicode.rst:57 +#: c-api/unicode.rst:61 msgid "" "This is a typedef of :c:type:`wchar_t`, which is a 16-bit type or 32-bit " "type depending on the platform." msgstr "" -#: ../Doc/c-api/unicode.rst:60 +#: c-api/unicode.rst:64 msgid "" "In previous versions, this was a 16-bit type or a 32-bit type depending on " "whether you selected a \"narrow\" or \"wide\" Unicode version of Python at " "build time." msgstr "" +"Dans les versions précédentes, ceci était un type 16-bit ou un type 32-bit " +"selon que vous choisissiez une version Unicode *narrow* ou *wide* de Python " +"à la compilation." -#: ../Doc/c-api/unicode.rst:70 +#: c-api/unicode.rst:74 msgid "" "These subtypes of :c:type:`PyObject` represent a Python Unicode object. In " "almost all cases, they shouldn't be used directly, since all API functions " "that deal with Unicode objects take and return :c:type:`PyObject` pointers." msgstr "" -#: ../Doc/c-api/unicode.rst:79 +#: c-api/unicode.rst:83 msgid "" "This instance of :c:type:`PyTypeObject` represents the Python Unicode type. " "It is exposed to Python code as ``str``." msgstr "" -#: ../Doc/c-api/unicode.rst:83 +#: c-api/unicode.rst:87 msgid "" "The following APIs are really C macros and can be used to do fast checks and " "to access internal read-only data of Unicode objects:" msgstr "" -#: ../Doc/c-api/unicode.rst:88 +#: c-api/unicode.rst:92 msgid "" "Return true if the object *o* is a Unicode object or an instance of a " "Unicode subtype." msgstr "" -#: ../Doc/c-api/unicode.rst:94 +#: c-api/unicode.rst:98 msgid "" "Return true if the object *o* is a Unicode object, but not an instance of a " "subtype." msgstr "" -#: ../Doc/c-api/unicode.rst:100 +#: c-api/unicode.rst:104 msgid "" "Ensure the string object *o* is in the \"canonical\" representation. This " "is required before using any of the access macros described below." msgstr "" -#: ../Doc/c-api/unicode.rst:105 +#: c-api/unicode.rst:109 msgid "" "Returns ``0`` on success and ``-1`` with an exception set on failure, which " "in particular happens if memory allocation fails." msgstr "" -#: ../Doc/c-api/unicode.rst:113 +#: c-api/unicode.rst:115 +msgid "This API will be removed with :c:func:`PyUnicode_FromUnicode`." +msgstr "" + +#: c-api/unicode.rst:120 msgid "" "Return the length of the Unicode string, in code points. *o* has to be a " "Unicode object in the \"canonical\" representation (not checked)." msgstr "" -#: ../Doc/c-api/unicode.rst:123 +#: c-api/unicode.rst:130 msgid "" "Return a pointer to the canonical representation cast to UCS1, UCS2 or UCS4 " "integer types for direct character access. No checks are performed if the " @@ -149,24 +182,28 @@ msgid "" "`PyUnicode_READY` has been called before accessing this." msgstr "" -#: ../Doc/c-api/unicode.rst:137 +#: c-api/unicode.rst:144 msgid "Return values of the :c:func:`PyUnicode_KIND` macro." msgstr "" -#: ../Doc/c-api/unicode.rst:144 +#: c-api/unicode.rst:149 +msgid "``PyUnicode_WCHAR_KIND`` is deprecated." +msgstr "" + +#: c-api/unicode.rst:154 msgid "" "Return one of the PyUnicode kind constants (see above) that indicate how " "many bytes per character this Unicode object uses to store its data. *o* " "has to be a Unicode object in the \"canonical\" representation (not checked)." msgstr "" -#: ../Doc/c-api/unicode.rst:155 +#: c-api/unicode.rst:165 msgid "" "Return a void pointer to the raw Unicode buffer. *o* has to be a Unicode " "object in the \"canonical\" representation (not checked)." msgstr "" -#: ../Doc/c-api/unicode.rst:164 +#: c-api/unicode.rst:174 msgid "" "Write into a canonical representation *data* (as obtained with :c:func:" "`PyUnicode_DATA`). This macro does not do any sanity checks and is intended " @@ -176,50 +213,50 @@ msgid "" "written to that location." msgstr "" -#: ../Doc/c-api/unicode.rst:176 +#: c-api/unicode.rst:186 msgid "" "Read a code point from a canonical representation *data* (as obtained with :" "c:func:`PyUnicode_DATA`). No checks or ready calls are performed." msgstr "" -#: ../Doc/c-api/unicode.rst:184 +#: c-api/unicode.rst:194 msgid "" -"Read a character from a Unicode object *o*, which must be in the \"canonical" -"\" representation. This is less efficient than :c:func:`PyUnicode_READ` if " -"you do multiple consecutive reads." +"Read a character from a Unicode object *o*, which must be in the " +"\"canonical\" representation. This is less efficient than :c:func:" +"`PyUnicode_READ` if you do multiple consecutive reads." msgstr "" -#: ../Doc/c-api/unicode.rst:193 +#: c-api/unicode.rst:203 msgid "" "Return the maximum code point that is suitable for creating another string " "based on *o*, which must be in the \"canonical\" representation. This is " "always an approximation but more efficient than iterating over the string." msgstr "" -#: ../Doc/c-api/unicode.rst:202 +#: c-api/unicode.rst:212 msgid "Clear the free list. Return the total number of freed items." msgstr "" -#: ../Doc/c-api/unicode.rst:207 +#: c-api/unicode.rst:217 msgid "" "Return the size of the deprecated :c:type:`Py_UNICODE` representation, in " "code units (this includes surrogate pairs as 2 units). *o* has to be a " "Unicode object (not checked)." msgstr "" -#: ../Doc/c-api/unicode.rst:213 ../Doc/c-api/unicode.rst:223 +#: c-api/unicode.rst:233 c-api/unicode.rst:767 msgid "" "Part of the old-style Unicode API, please migrate to using :c:func:" "`PyUnicode_GET_LENGTH`." msgstr "" -#: ../Doc/c-api/unicode.rst:218 +#: c-api/unicode.rst:228 msgid "" "Return the size of the deprecated :c:type:`Py_UNICODE` representation in " "bytes. *o* has to be a Unicode object (not checked)." msgstr "" -#: ../Doc/c-api/unicode.rst:229 +#: c-api/unicode.rst:239 msgid "" "Return a pointer to a :c:type:`Py_UNICODE` representation of the object. " "The returned buffer is always terminated with an extra null code point. It " @@ -229,7 +266,7 @@ msgid "" "object (not checked)." msgstr "" -#: ../Doc/c-api/unicode.rst:236 +#: c-api/unicode.rst:246 msgid "" "This macro is now inefficient -- because in many cases the :c:type:" "`Py_UNICODE` representation does not exist and needs to be created -- and " @@ -238,71 +275,71 @@ msgid "" "`PyUnicode_WRITE` or :c:func:`PyUnicode_READ`." msgstr "" -#: ../Doc/c-api/unicode.rst:245 +#: c-api/unicode.rst:255 msgid "" "Part of the old-style Unicode API, please migrate to using the :c:func:" "`PyUnicode_nBYTE_DATA` family of macros." msgstr "" -#: ../Doc/c-api/unicode.rst:249 +#: c-api/unicode.rst:259 msgid "Unicode Character Properties" msgstr "" -#: ../Doc/c-api/unicode.rst:251 +#: c-api/unicode.rst:261 msgid "" "Unicode provides many different character properties. The most often needed " "ones are available through these macros which are mapped to C functions " "depending on the Python configuration." msgstr "" -#: ../Doc/c-api/unicode.rst:258 +#: c-api/unicode.rst:268 msgid "" "Return ``1`` or ``0`` depending on whether *ch* is a whitespace character." msgstr "" -#: ../Doc/c-api/unicode.rst:263 +#: c-api/unicode.rst:273 msgid "" "Return ``1`` or ``0`` depending on whether *ch* is a lowercase character." msgstr "" -#: ../Doc/c-api/unicode.rst:268 +#: c-api/unicode.rst:278 msgid "" "Return ``1`` or ``0`` depending on whether *ch* is an uppercase character." msgstr "" -#: ../Doc/c-api/unicode.rst:273 +#: c-api/unicode.rst:283 msgid "" "Return ``1`` or ``0`` depending on whether *ch* is a titlecase character." msgstr "" -#: ../Doc/c-api/unicode.rst:278 +#: c-api/unicode.rst:288 msgid "" "Return ``1`` or ``0`` depending on whether *ch* is a linebreak character." msgstr "" -#: ../Doc/c-api/unicode.rst:283 +#: c-api/unicode.rst:293 msgid "Return ``1`` or ``0`` depending on whether *ch* is a decimal character." msgstr "" -#: ../Doc/c-api/unicode.rst:288 +#: c-api/unicode.rst:298 msgid "Return ``1`` or ``0`` depending on whether *ch* is a digit character." msgstr "" -#: ../Doc/c-api/unicode.rst:293 +#: c-api/unicode.rst:303 msgid "Return ``1`` or ``0`` depending on whether *ch* is a numeric character." msgstr "" -#: ../Doc/c-api/unicode.rst:298 +#: c-api/unicode.rst:308 msgid "" "Return ``1`` or ``0`` depending on whether *ch* is an alphabetic character." msgstr "" -#: ../Doc/c-api/unicode.rst:303 +#: c-api/unicode.rst:313 msgid "" "Return ``1`` or ``0`` depending on whether *ch* is an alphanumeric character." msgstr "" -#: ../Doc/c-api/unicode.rst:308 +#: c-api/unicode.rst:318 msgid "" "Return ``1`` or ``0`` depending on whether *ch* is a printable character. " "Nonprintable characters are those characters defined in the Unicode " @@ -313,92 +350,91 @@ msgid "" "to :data:`sys.stdout` or :data:`sys.stderr`.)" msgstr "" -#: ../Doc/c-api/unicode.rst:317 +#: c-api/unicode.rst:327 msgid "These APIs can be used for fast direct character conversions:" msgstr "" -#: ../Doc/c-api/unicode.rst:322 +#: c-api/unicode.rst:332 msgid "Return the character *ch* converted to lower case." msgstr "" -#: ../Doc/c-api/unicode.rst:324 ../Doc/c-api/unicode.rst:332 -#: ../Doc/c-api/unicode.rst:340 +#: c-api/unicode.rst:342 c-api/unicode.rst:350 msgid "This function uses simple case mappings." msgstr "" -#: ../Doc/c-api/unicode.rst:330 +#: c-api/unicode.rst:340 msgid "Return the character *ch* converted to upper case." msgstr "" -#: ../Doc/c-api/unicode.rst:338 +#: c-api/unicode.rst:348 msgid "Return the character *ch* converted to title case." msgstr "" -#: ../Doc/c-api/unicode.rst:346 +#: c-api/unicode.rst:356 msgid "" "Return the character *ch* converted to a decimal positive integer. Return " "``-1`` if this is not possible. This macro does not raise exceptions." msgstr "" -#: ../Doc/c-api/unicode.rst:352 +#: c-api/unicode.rst:362 msgid "" "Return the character *ch* converted to a single digit integer. Return ``-1`` " "if this is not possible. This macro does not raise exceptions." msgstr "" -#: ../Doc/c-api/unicode.rst:358 +#: c-api/unicode.rst:368 msgid "" "Return the character *ch* converted to a double. Return ``-1.0`` if this is " "not possible. This macro does not raise exceptions." msgstr "" -#: ../Doc/c-api/unicode.rst:362 +#: c-api/unicode.rst:372 msgid "These APIs can be used to work with surrogates:" msgstr "" -#: ../Doc/c-api/unicode.rst:366 +#: c-api/unicode.rst:376 msgid "Check if *ch* is a surrogate (``0xD800 <= ch <= 0xDFFF``)." msgstr "" -#: ../Doc/c-api/unicode.rst:370 +#: c-api/unicode.rst:380 msgid "Check if *ch* is a high surrogate (``0xD800 <= ch <= 0xDBFF``)." msgstr "" -#: ../Doc/c-api/unicode.rst:374 +#: c-api/unicode.rst:384 msgid "Check if *ch* is a low surrogate (``0xDC00 <= ch <= 0xDFFF``)." msgstr "" -#: ../Doc/c-api/unicode.rst:378 +#: c-api/unicode.rst:388 msgid "" "Join two surrogate characters and return a single Py_UCS4 value. *high* and " "*low* are respectively the leading and trailing surrogates in a surrogate " "pair." msgstr "" -#: ../Doc/c-api/unicode.rst:384 +#: c-api/unicode.rst:394 msgid "Creating and accessing Unicode strings" msgstr "" -#: ../Doc/c-api/unicode.rst:386 +#: c-api/unicode.rst:396 msgid "" "To create Unicode objects and access their basic sequence properties, use " "these APIs:" msgstr "" -#: ../Doc/c-api/unicode.rst:391 +#: c-api/unicode.rst:401 msgid "" "Create a new Unicode object. *maxchar* should be the true maximum code " "point to be placed in the string. As an approximation, it can be rounded up " "to the nearest value in the sequence 127, 255, 65535, 1114111." msgstr "" -#: ../Doc/c-api/unicode.rst:395 +#: c-api/unicode.rst:405 msgid "" "This is the recommended way to allocate a new Unicode object. Objects " "created using this function are not resizable." msgstr "" -#: ../Doc/c-api/unicode.rst:404 +#: c-api/unicode.rst:414 msgid "" "Create a new Unicode object with the given *kind* (possible values are :c:" "macro:`PyUnicode_1BYTE_KIND` etc., as returned by :c:func:" @@ -406,7 +442,7 @@ msgid "" "1, 2 or 4 bytes per character, as given by the kind." msgstr "" -#: ../Doc/c-api/unicode.rst:414 +#: c-api/unicode.rst:424 msgid "" "Create a Unicode object from the char buffer *u*. The bytes will be " "interpreted as being UTF-8 encoded. The buffer is copied into the new " @@ -414,19 +450,20 @@ msgid "" "object, i.e. modification of the data is not allowed." msgstr "" -#: ../Doc/c-api/unicode.rst:419 +#: c-api/unicode.rst:429 msgid "" "If *u* is ``NULL``, this function behaves like :c:func:" "`PyUnicode_FromUnicode` with the buffer set to ``NULL``. This usage is " -"deprecated in favor of :c:func:`PyUnicode_New`." +"deprecated in favor of :c:func:`PyUnicode_New`, and will be removed in " +"Python 3.12." msgstr "" -#: ../Doc/c-api/unicode.rst:426 +#: c-api/unicode.rst:436 msgid "" "Create a Unicode object from a UTF-8 encoded null-terminated char buffer *u*." msgstr "" -#: ../Doc/c-api/unicode.rst:432 +#: c-api/unicode.rst:442 msgid "" "Take a C :c:func:`printf`\\ -style *format* string and a variable number of " "arguments, calculate the size of the resulting Python Unicode string and " @@ -435,262 +472,261 @@ msgid "" "*format* ASCII-encoded string. The following format characters are allowed:" msgstr "" -#: ../Doc/c-api/unicode.rst:447 +#: c-api/unicode.rst:457 msgid "Format Characters" -msgstr "" +msgstr "Caractères de format" -#: ../Doc/c-api/unicode.rst:447 +#: c-api/unicode.rst:457 msgid "Type" msgstr "Type" -#: ../Doc/c-api/unicode.rst:447 +#: c-api/unicode.rst:457 +#, fuzzy msgid "Comment" -msgstr "" +msgstr "Commentaires" -#: ../Doc/c-api/unicode.rst:449 +#: c-api/unicode.rst:459 msgid ":attr:`%%`" -msgstr "" +msgstr ":attr:`%%`" -#: ../Doc/c-api/unicode.rst:449 +#: c-api/unicode.rst:459 msgid "*n/a*" msgstr "" -#: ../Doc/c-api/unicode.rst:449 +#: c-api/unicode.rst:459 msgid "The literal % character." msgstr "" -#: ../Doc/c-api/unicode.rst:451 +#: c-api/unicode.rst:461 msgid ":attr:`%c`" -msgstr "" +msgstr ":attr:`%c`" -#: ../Doc/c-api/unicode.rst:451 ../Doc/c-api/unicode.rst:454 -#: ../Doc/c-api/unicode.rst:487 ../Doc/c-api/unicode.rst:490 +#: c-api/unicode.rst:464 c-api/unicode.rst:500 msgid "int" msgstr "*int*" -#: ../Doc/c-api/unicode.rst:451 +#: c-api/unicode.rst:461 msgid "A single character, represented as a C int." msgstr "" -#: ../Doc/c-api/unicode.rst:454 +#: c-api/unicode.rst:464 msgid ":attr:`%d`" -msgstr "" +msgstr ":attr:`%d`" -#: ../Doc/c-api/unicode.rst:454 +#: c-api/unicode.rst:464 msgid "Equivalent to ``printf(\"%d\")``. [1]_" msgstr "" -#: ../Doc/c-api/unicode.rst:457 +#: c-api/unicode.rst:467 msgid ":attr:`%u`" -msgstr "" +msgstr ":attr:`%u`" -#: ../Doc/c-api/unicode.rst:457 +#: c-api/unicode.rst:467 msgid "unsigned int" msgstr "``unsigned int``" -#: ../Doc/c-api/unicode.rst:457 +#: c-api/unicode.rst:467 msgid "Equivalent to ``printf(\"%u\")``. [1]_" msgstr "" -#: ../Doc/c-api/unicode.rst:460 +#: c-api/unicode.rst:470 msgid ":attr:`%ld`" -msgstr "" +msgstr ":attr:`%ld`" -#: ../Doc/c-api/unicode.rst:460 ../Doc/c-api/unicode.rst:463 +#: c-api/unicode.rst:473 msgid "long" msgstr "" -#: ../Doc/c-api/unicode.rst:460 +#: c-api/unicode.rst:470 msgid "Equivalent to ``printf(\"%ld\")``. [1]_" msgstr "" -#: ../Doc/c-api/unicode.rst:463 +#: c-api/unicode.rst:473 msgid ":attr:`%li`" -msgstr "" +msgstr ":attr:`%li`" -#: ../Doc/c-api/unicode.rst:463 +#: c-api/unicode.rst:473 msgid "Equivalent to ``printf(\"%li\")``. [1]_" msgstr "" -#: ../Doc/c-api/unicode.rst:466 +#: c-api/unicode.rst:476 msgid ":attr:`%lu`" -msgstr "" +msgstr ":attr:`%lu`" -#: ../Doc/c-api/unicode.rst:466 +#: c-api/unicode.rst:476 msgid "unsigned long" msgstr "``unsigned long``" -#: ../Doc/c-api/unicode.rst:466 +#: c-api/unicode.rst:476 msgid "Equivalent to ``printf(\"%lu\")``. [1]_" msgstr "" -#: ../Doc/c-api/unicode.rst:469 +#: c-api/unicode.rst:479 msgid ":attr:`%lld`" -msgstr "" +msgstr ":attr:`%lld`" -#: ../Doc/c-api/unicode.rst:469 ../Doc/c-api/unicode.rst:472 +#: c-api/unicode.rst:482 msgid "long long" msgstr "" -#: ../Doc/c-api/unicode.rst:469 +#: c-api/unicode.rst:479 msgid "Equivalent to ``printf(\"%lld\")``. [1]_" msgstr "" -#: ../Doc/c-api/unicode.rst:472 +#: c-api/unicode.rst:482 msgid ":attr:`%lli`" -msgstr "" +msgstr ":attr:`%lli`" -#: ../Doc/c-api/unicode.rst:472 +#: c-api/unicode.rst:482 msgid "Equivalent to ``printf(\"%lli\")``. [1]_" msgstr "" -#: ../Doc/c-api/unicode.rst:475 +#: c-api/unicode.rst:485 msgid ":attr:`%llu`" -msgstr "" +msgstr ":attr:`%llu`" -#: ../Doc/c-api/unicode.rst:475 +#: c-api/unicode.rst:485 msgid "unsigned long long" msgstr "``unsigned long long``" -#: ../Doc/c-api/unicode.rst:475 +#: c-api/unicode.rst:485 msgid "Equivalent to ``printf(\"%llu\")``. [1]_" msgstr "" -#: ../Doc/c-api/unicode.rst:478 +#: c-api/unicode.rst:488 msgid ":attr:`%zd`" -msgstr "" +msgstr ":attr:`%zd`" -#: ../Doc/c-api/unicode.rst:478 ../Doc/c-api/unicode.rst:481 +#: c-api/unicode.rst:491 msgid "Py_ssize_t" msgstr "" -#: ../Doc/c-api/unicode.rst:478 +#: c-api/unicode.rst:488 msgid "Equivalent to ``printf(\"%zd\")``. [1]_" msgstr "" -#: ../Doc/c-api/unicode.rst:481 +#: c-api/unicode.rst:491 msgid ":attr:`%zi`" -msgstr "" +msgstr ":attr:`%zi`" -#: ../Doc/c-api/unicode.rst:481 +#: c-api/unicode.rst:491 msgid "Equivalent to ``printf(\"%zi\")``. [1]_" msgstr "" -#: ../Doc/c-api/unicode.rst:484 +#: c-api/unicode.rst:494 msgid ":attr:`%zu`" -msgstr "" +msgstr ":attr:`%zu`" -#: ../Doc/c-api/unicode.rst:484 +#: c-api/unicode.rst:494 msgid "size_t" msgstr "" -#: ../Doc/c-api/unicode.rst:484 +#: c-api/unicode.rst:494 msgid "Equivalent to ``printf(\"%zu\")``. [1]_" msgstr "" -#: ../Doc/c-api/unicode.rst:487 +#: c-api/unicode.rst:497 msgid ":attr:`%i`" -msgstr "" +msgstr ":attr:`%i`" -#: ../Doc/c-api/unicode.rst:487 +#: c-api/unicode.rst:497 msgid "Equivalent to ``printf(\"%i\")``. [1]_" msgstr "" -#: ../Doc/c-api/unicode.rst:490 +#: c-api/unicode.rst:500 msgid ":attr:`%x`" -msgstr "" +msgstr ":attr:`%x`" -#: ../Doc/c-api/unicode.rst:490 +#: c-api/unicode.rst:500 msgid "Equivalent to ``printf(\"%x\")``. [1]_" msgstr "" -#: ../Doc/c-api/unicode.rst:493 +#: c-api/unicode.rst:503 msgid ":attr:`%s`" -msgstr "" +msgstr ":attr:`%s`" -#: ../Doc/c-api/unicode.rst:493 +#: c-api/unicode.rst:503 msgid "const char\\*" msgstr "" -#: ../Doc/c-api/unicode.rst:493 +#: c-api/unicode.rst:503 msgid "A null-terminated C character array." msgstr "" -#: ../Doc/c-api/unicode.rst:496 +#: c-api/unicode.rst:506 msgid ":attr:`%p`" -msgstr "" +msgstr ":attr:`%p`" -#: ../Doc/c-api/unicode.rst:496 +#: c-api/unicode.rst:506 msgid "const void\\*" msgstr "" -#: ../Doc/c-api/unicode.rst:496 +#: c-api/unicode.rst:506 msgid "" -"The hex representation of a C pointer. Mostly equivalent to ``printf(\"%p" -"\")`` except that it is guaranteed to start with the literal ``0x`` " -"regardless of what the platform's ``printf`` yields." +"The hex representation of a C pointer. Mostly equivalent to " +"``printf(\"%p\")`` except that it is guaranteed to start with the literal " +"``0x`` regardless of what the platform's ``printf`` yields." msgstr "" -#: ../Doc/c-api/unicode.rst:504 +#: c-api/unicode.rst:514 msgid ":attr:`%A`" -msgstr "" +msgstr ":attr:`%A`" -#: ../Doc/c-api/unicode.rst:504 ../Doc/c-api/unicode.rst:507 -#: ../Doc/c-api/unicode.rst:516 ../Doc/c-api/unicode.rst:519 +#: c-api/unicode.rst:517 c-api/unicode.rst:529 msgid "PyObject\\*" msgstr "PyObject\\*" -#: ../Doc/c-api/unicode.rst:504 +#: c-api/unicode.rst:514 msgid "The result of calling :func:`ascii`." msgstr "" -#: ../Doc/c-api/unicode.rst:507 +#: c-api/unicode.rst:517 msgid ":attr:`%U`" -msgstr "" +msgstr ":attr:`%U`" -#: ../Doc/c-api/unicode.rst:507 +#: c-api/unicode.rst:517 #, fuzzy msgid "A Unicode object." msgstr "Un objet Unicode." -#: ../Doc/c-api/unicode.rst:509 +#: c-api/unicode.rst:519 msgid ":attr:`%V`" -msgstr "" +msgstr ":attr:`%V`" -#: ../Doc/c-api/unicode.rst:509 +#: c-api/unicode.rst:519 msgid "PyObject\\*, const char\\*" msgstr "" -#: ../Doc/c-api/unicode.rst:509 +#: c-api/unicode.rst:519 msgid "" "A Unicode object (which may be ``NULL``) and a null-terminated C character " "array as a second parameter (which will be used, if the first parameter is " "``NULL``)." msgstr "" -#: ../Doc/c-api/unicode.rst:516 +#: c-api/unicode.rst:526 msgid ":attr:`%S`" -msgstr "" +msgstr ":attr:`%S`" -#: ../Doc/c-api/unicode.rst:516 +#: c-api/unicode.rst:526 msgid "The result of calling :c:func:`PyObject_Str`." msgstr "" -#: ../Doc/c-api/unicode.rst:519 +#: c-api/unicode.rst:529 msgid ":attr:`%R`" -msgstr "" +msgstr ":attr:`%R`" -#: ../Doc/c-api/unicode.rst:519 +#: c-api/unicode.rst:529 msgid "The result of calling :c:func:`PyObject_Repr`." msgstr "" -#: ../Doc/c-api/unicode.rst:523 +#: c-api/unicode.rst:533 msgid "" "An unrecognized format character causes all the rest of the format string to " "be copied as-is to the result string, and any extra arguments discarded." msgstr "" -#: ../Doc/c-api/unicode.rst:527 +#: c-api/unicode.rst:537 msgid "" "The width formatter unit is number of characters rather than bytes. The " "precision formatter unit is number of bytes for ``\"%s\"`` and ``\"%V\"`` " @@ -699,37 +735,37 @@ msgid "" "``PyObject*`` argument is not ``NULL``)." msgstr "" -#: ../Doc/c-api/unicode.rst:533 +#: c-api/unicode.rst:543 msgid "" "For integer specifiers (d, u, ld, li, lu, lld, lli, llu, zd, zi, zu, i, x): " "the 0-conversion flag has effect even when a precision is given." msgstr "" -#: ../Doc/c-api/unicode.rst:536 +#: c-api/unicode.rst:546 msgid "Support for ``\"%lld\"`` and ``\"%llu\"`` added." msgstr "" -#: ../Doc/c-api/unicode.rst:539 +#: c-api/unicode.rst:549 msgid "Support for ``\"%li\"``, ``\"%lli\"`` and ``\"%zi\"`` added." msgstr "" -#: ../Doc/c-api/unicode.rst:542 +#: c-api/unicode.rst:552 msgid "" -"Support width and precision formatter for ``\"%s\"``, ``\"%A\"``, ``\"%U" -"\"``, ``\"%V\"``, ``\"%S\"``, ``\"%R\"`` added." +"Support width and precision formatter for ``\"%s\"``, ``\"%A\"``, " +"``\"%U\"``, ``\"%V\"``, ``\"%S\"``, ``\"%R\"`` added." msgstr "" -#: ../Doc/c-api/unicode.rst:549 +#: c-api/unicode.rst:559 msgid "" "Identical to :c:func:`PyUnicode_FromFormat` except that it takes exactly two " "arguments." msgstr "" -#: ../Doc/c-api/unicode.rst:556 +#: c-api/unicode.rst:566 msgid "Decode an encoded object *obj* to a Unicode object." msgstr "" -#: ../Doc/c-api/unicode.rst:558 +#: c-api/unicode.rst:568 msgid "" ":class:`bytes`, :class:`bytearray` and other :term:`bytes-like objects " "` are decoded according to the given *encoding* and using " @@ -737,23 +773,23 @@ msgid "" "interface use the default values (see :ref:`builtincodecs` for details)." msgstr "" -#: ../Doc/c-api/unicode.rst:564 +#: c-api/unicode.rst:574 msgid "" "All other objects, including Unicode objects, cause a :exc:`TypeError` to be " "set." msgstr "" -#: ../Doc/c-api/unicode.rst:567 +#: c-api/unicode.rst:577 msgid "" "The API returns ``NULL`` if there was an error. The caller is responsible " "for decref'ing the returned objects." msgstr "" -#: ../Doc/c-api/unicode.rst:573 +#: c-api/unicode.rst:583 msgid "Return the length of the Unicode object, in code points." msgstr "" -#: ../Doc/c-api/unicode.rst:584 +#: c-api/unicode.rst:594 msgid "" "Copy characters from one Unicode object into another. This function " "performs character conversion when necessary and falls back to :c:func:" @@ -761,52 +797,52 @@ msgid "" "otherwise returns the number of copied characters." msgstr "" -#: ../Doc/c-api/unicode.rst:595 +#: c-api/unicode.rst:605 msgid "" -"Fill a string with a character: write *fill_char* into ``unicode[start:start" -"+length]``." +"Fill a string with a character: write *fill_char* into ``unicode[start:" +"start+length]``." msgstr "" -#: ../Doc/c-api/unicode.rst:598 +#: c-api/unicode.rst:608 msgid "" "Fail if *fill_char* is bigger than the string maximum character, or if the " "string has more than 1 reference." msgstr "" -#: ../Doc/c-api/unicode.rst:601 +#: c-api/unicode.rst:611 msgid "" "Return the number of written character, or return ``-1`` and raise an " "exception on error." msgstr "" -#: ../Doc/c-api/unicode.rst:610 +#: c-api/unicode.rst:620 msgid "" "Write a character to a string. The string must have been created through :c:" "func:`PyUnicode_New`. Since Unicode strings are supposed to be immutable, " "the string must not be shared, or have been hashed yet." msgstr "" -#: ../Doc/c-api/unicode.rst:614 +#: c-api/unicode.rst:624 msgid "" "This function checks that *unicode* is a Unicode object, that the index is " "not out of bounds, and that the object can be modified safely (i.e. that it " "its reference count is one)." msgstr "" -#: ../Doc/c-api/unicode.rst:623 +#: c-api/unicode.rst:633 msgid "" "Read a character from a string. This function checks that *unicode* is a " "Unicode object and the index is not out of bounds, in contrast to the macro " "version :c:func:`PyUnicode_READ_CHAR`." msgstr "" -#: ../Doc/c-api/unicode.rst:633 +#: c-api/unicode.rst:643 msgid "" "Return a substring of *str*, from character index *start* (included) to " "character index *end* (excluded). Negative indices are not supported." msgstr "" -#: ../Doc/c-api/unicode.rst:642 +#: c-api/unicode.rst:652 msgid "" "Copy the string *u* into a UCS4 buffer, including a null character, if " "*copy_null* is set. Returns ``NULL`` and sets an exception on error (in " @@ -814,7 +850,7 @@ msgid "" "*u*). *buffer* is returned on success." msgstr "" -#: ../Doc/c-api/unicode.rst:652 +#: c-api/unicode.rst:662 msgid "" "Copy the string *u* into a new UCS4 buffer that is allocated using :c:func:" "`PyMem_Malloc`. If this fails, ``NULL`` is returned with a :exc:" @@ -822,11 +858,11 @@ msgid "" "appended." msgstr "" -#: ../Doc/c-api/unicode.rst:661 +#: c-api/unicode.rst:671 msgid "Deprecated Py_UNICODE APIs" msgstr "" -#: ../Doc/c-api/unicode.rst:665 +#: c-api/unicode.rst:675 msgid "" "These API functions are deprecated with the implementation of :pep:`393`. " "Extension modules can continue using them, as they will not be removed in " @@ -834,7 +870,7 @@ msgid "" "and memory hits." msgstr "" -#: ../Doc/c-api/unicode.rst:672 +#: c-api/unicode.rst:682 msgid "" "Create a Unicode object from the Py_UNICODE buffer *u* of the given size. " "*u* may be ``NULL`` which causes the contents to be undefined. It is the " @@ -842,27 +878,28 @@ msgid "" "the new object." msgstr "" -#: ../Doc/c-api/unicode.rst:677 +#: c-api/unicode.rst:687 msgid "" "If the buffer is not ``NULL``, the return value might be a shared object. " "Therefore, modification of the resulting Unicode object is only allowed when " "*u* is ``NULL``." msgstr "" -#: ../Doc/c-api/unicode.rst:681 +#: c-api/unicode.rst:691 msgid "" "If the buffer is ``NULL``, :c:func:`PyUnicode_READY` must be called once the " "string content has been filled before using any of the access macros such " "as :c:func:`PyUnicode_KIND`." msgstr "" -#: ../Doc/c-api/unicode.rst:685 +#: c-api/unicode.rst:698 msgid "" -"Please migrate to using :c:func:`PyUnicode_FromKindAndData`, :c:func:" -"`PyUnicode_FromWideChar` or :c:func:`PyUnicode_New`." +"Part of the old-style Unicode API, please migrate to using :c:func:" +"`PyUnicode_FromKindAndData`, :c:func:`PyUnicode_FromWideChar`, or :c:func:" +"`PyUnicode_New`." msgstr "" -#: ../Doc/c-api/unicode.rst:691 +#: c-api/unicode.rst:703 msgid "" "Return a read-only pointer to the Unicode object's internal :c:type:" "`Py_UNICODE` buffer, or ``NULL`` on error. This will create the :c:type:" @@ -873,20 +910,27 @@ msgid "" "functions." msgstr "" -#: ../Doc/c-api/unicode.rst:699 +#: c-api/unicode.rst:743 msgid "" -"Please migrate to using :c:func:`PyUnicode_AsUCS4`, :c:func:" -"`PyUnicode_AsWideChar`, :c:func:`PyUnicode_ReadChar` or similar new APIs." +"Part of the old-style Unicode API, please migrate to using :c:func:" +"`PyUnicode_AsUCS4`, :c:func:`PyUnicode_AsWideChar`, :c:func:" +"`PyUnicode_ReadChar` or similar new APIs." msgstr "" -#: ../Doc/c-api/unicode.rst:706 +#: c-api/unicode.rst:721 msgid "" "Create a Unicode object by replacing all decimal digits in :c:type:" "`Py_UNICODE` buffer of the given *size* by ASCII digits 0--9 according to " "their decimal value. Return ``NULL`` if an exception occurs." msgstr "" -#: ../Doc/c-api/unicode.rst:713 +#: c-api/unicode.rst:727 +msgid "" +"Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" +"func:`Py_UNICODE_TODECIMAL`." +msgstr "" + +#: c-api/unicode.rst:732 msgid "" "Like :c:func:`PyUnicode_AsUnicode`, but also saves the :c:func:`Py_UNICODE` " "array length (excluding the extra null terminator) in *size*. Note that the " @@ -895,7 +939,7 @@ msgid "" "functions." msgstr "" -#: ../Doc/c-api/unicode.rst:724 +#: c-api/unicode.rst:748 msgid "" "Create a copy of a Unicode string ending with a null code point. Return " "``NULL`` and raise a :exc:`MemoryError` exception on memory allocation " @@ -905,68 +949,64 @@ msgid "" "truncated when used in most C functions." msgstr "" -#: ../Doc/c-api/unicode.rst:733 +#: c-api/unicode.rst:757 msgid "" "Please migrate to using :c:func:`PyUnicode_AsUCS4Copy` or similar new APIs." msgstr "" -#: ../Doc/c-api/unicode.rst:738 +#: c-api/unicode.rst:762 msgid "" "Return the size of the deprecated :c:type:`Py_UNICODE` representation, in " "code units (this includes surrogate pairs as 2 units)." msgstr "" -#: ../Doc/c-api/unicode.rst:741 -msgid "Please migrate to using :c:func:`PyUnicode_GetLength`." -msgstr "" - -#: ../Doc/c-api/unicode.rst:746 +#: c-api/unicode.rst:772 msgid "" "Copy an instance of a Unicode subtype to a new true Unicode object if " "necessary. If *obj* is already a true Unicode object (not a subtype), return " "the reference with incremented refcount." msgstr "" -#: ../Doc/c-api/unicode.rst:750 +#: c-api/unicode.rst:776 msgid "" "Objects other than Unicode or its subtypes will cause a :exc:`TypeError`." msgstr "" -#: ../Doc/c-api/unicode.rst:754 +#: c-api/unicode.rst:780 msgid "Locale Encoding" msgstr "" -#: ../Doc/c-api/unicode.rst:756 +#: c-api/unicode.rst:782 msgid "" "The current locale encoding can be used to decode text from the operating " "system." msgstr "" -#: ../Doc/c-api/unicode.rst:763 +#: c-api/unicode.rst:789 msgid "" "Decode a string from UTF-8 on Android and VxWorks, or from the current " -"locale encoding on other platforms. The supported error handlers are ``" -"\"strict\"`` and ``\"surrogateescape\"`` (:pep:`383`). The decoder uses ``" -"\"strict\"`` error handler if *errors* is ``NULL``. *str* must end with a " +"locale encoding on other platforms. The supported error handlers are " +"``\"strict\"`` and ``\"surrogateescape\"`` (:pep:`383`). The decoder uses " +"``\"strict\"`` error handler if *errors* is ``NULL``. *str* must end with a " "null character but cannot contain embedded null characters." msgstr "" -#: ../Doc/c-api/unicode.rst:770 +#: c-api/unicode.rst:796 msgid "" "Use :c:func:`PyUnicode_DecodeFSDefaultAndSize` to decode a string from :c:" "data:`Py_FileSystemDefaultEncoding` (the locale encoding read at Python " "startup)." msgstr "" -#: ../Doc/c-api/unicode.rst:774 ../Doc/c-api/unicode.rst:810 +#: c-api/unicode.rst:836 msgid "This function ignores the Python UTF-8 mode." msgstr "" -#: ../Doc/c-api/unicode.rst:778 ../Doc/c-api/unicode.rst:882 +#: c-api/unicode.rst:908 msgid "The :c:func:`Py_DecodeLocale` function." msgstr "" -#: ../Doc/c-api/unicode.rst:782 +#: c-api/unicode.rst:808 msgid "" "The function now also uses the current locale encoding for the " "``surrogateescape`` error handler, except on Android. Previously, :c:func:" @@ -974,32 +1014,32 @@ msgid "" "locale encoding was used for ``strict``." msgstr "" -#: ../Doc/c-api/unicode.rst:791 +#: c-api/unicode.rst:817 msgid "" "Similar to :c:func:`PyUnicode_DecodeLocaleAndSize`, but compute the string " "length using :c:func:`strlen`." msgstr "" -#: ../Doc/c-api/unicode.rst:799 +#: c-api/unicode.rst:825 msgid "" "Encode a Unicode object to UTF-8 on Android and VxWorks, or to the current " -"locale encoding on other platforms. The supported error handlers are ``" -"\"strict\"`` and ``\"surrogateescape\"`` (:pep:`383`). The encoder uses ``" -"\"strict\"`` error handler if *errors* is ``NULL``. Return a :class:`bytes` " -"object. *unicode* cannot contain embedded null characters." +"locale encoding on other platforms. The supported error handlers are " +"``\"strict\"`` and ``\"surrogateescape\"`` (:pep:`383`). The encoder uses " +"``\"strict\"`` error handler if *errors* is ``NULL``. Return a :class:" +"`bytes` object. *unicode* cannot contain embedded null characters." msgstr "" -#: ../Doc/c-api/unicode.rst:806 +#: c-api/unicode.rst:832 msgid "" "Use :c:func:`PyUnicode_EncodeFSDefault` to encode a string to :c:data:" "`Py_FileSystemDefaultEncoding` (the locale encoding read at Python startup)." msgstr "" -#: ../Doc/c-api/unicode.rst:814 ../Doc/c-api/unicode.rst:918 +#: c-api/unicode.rst:944 msgid "The :c:func:`Py_EncodeLocale` function." msgstr "" -#: ../Doc/c-api/unicode.rst:818 +#: c-api/unicode.rst:844 msgid "" "The function now also uses the current locale encoding for the " "``surrogateescape`` error handler, except on Android. Previously, :c:func:" @@ -1007,11 +1047,11 @@ msgid "" "locale encoding was used for ``strict``." msgstr "" -#: ../Doc/c-api/unicode.rst:827 +#: c-api/unicode.rst:853 msgid "File System Encoding" msgstr "" -#: ../Doc/c-api/unicode.rst:829 +#: c-api/unicode.rst:855 msgid "" "To encode and decode file names and other environment strings, :c:data:" "`Py_FileSystemDefaultEncoding` should be used as the encoding, and :c:data:" @@ -1021,7 +1061,7 @@ msgid "" "`PyUnicode_FSConverter` as the conversion function:" msgstr "" -#: ../Doc/c-api/unicode.rst:838 +#: c-api/unicode.rst:864 msgid "" "ParseTuple converter: encode :class:`str` objects -- obtained directly or " "through the :class:`os.PathLike` interface -- to :class:`bytes` using :c:" @@ -1030,18 +1070,18 @@ msgid "" "is no longer used." msgstr "" -#: ../Doc/c-api/unicode.rst:846 ../Doc/c-api/unicode.rst:863 +#: c-api/unicode.rst:889 msgid "Accepts a :term:`path-like object`." msgstr "Accepte un :term:`path-like object`." -#: ../Doc/c-api/unicode.rst:849 +#: c-api/unicode.rst:875 msgid "" "To decode file names to :class:`str` during argument parsing, the ``\"O&\"`` " "converter should be used, passing :c:func:`PyUnicode_FSDecoder` as the " "conversion function:" msgstr "" -#: ../Doc/c-api/unicode.rst:855 +#: c-api/unicode.rst:881 msgid "" "ParseTuple converter: decode :class:`bytes` objects -- obtained either " "directly or indirectly through the :class:`os.PathLike` interface -- to :" @@ -1050,20 +1090,19 @@ msgid "" "which must be released when it is no longer used." msgstr "" -#: ../Doc/c-api/unicode.rst:869 +#: c-api/unicode.rst:895 msgid "" "Decode a string using :c:data:`Py_FileSystemDefaultEncoding` and the :c:data:" "`Py_FileSystemDefaultEncodeErrors` error handler." msgstr "" -#: ../Doc/c-api/unicode.rst:872 ../Doc/c-api/unicode.rst:893 -#: ../Doc/c-api/unicode.rst:909 +#: c-api/unicode.rst:919 c-api/unicode.rst:935 msgid "" "If :c:data:`Py_FileSystemDefaultEncoding` is not set, fall back to the " "locale encoding." msgstr "" -#: ../Doc/c-api/unicode.rst:875 +#: c-api/unicode.rst:901 msgid "" ":c:data:`Py_FileSystemDefaultEncoding` is initialized at startup from the " "locale encoding and cannot be modified later. If you need to decode a string " @@ -1071,23 +1110,22 @@ msgid "" "`PyUnicode_DecodeLocaleAndSize`." msgstr "" -#: ../Doc/c-api/unicode.rst:884 ../Doc/c-api/unicode.rst:898 -#: ../Doc/c-api/unicode.rst:922 +#: c-api/unicode.rst:924 c-api/unicode.rst:948 msgid "Use :c:data:`Py_FileSystemDefaultEncodeErrors` error handler." msgstr "" -#: ../Doc/c-api/unicode.rst:890 +#: c-api/unicode.rst:916 msgid "" "Decode a null-terminated string using :c:data:`Py_FileSystemDefaultEncoding` " "and the :c:data:`Py_FileSystemDefaultEncodeErrors` error handler." msgstr "" -#: ../Doc/c-api/unicode.rst:896 +#: c-api/unicode.rst:922 msgid "" "Use :c:func:`PyUnicode_DecodeFSDefaultAndSize` if you know the string length." msgstr "" -#: ../Doc/c-api/unicode.rst:904 +#: c-api/unicode.rst:930 msgid "" "Encode a Unicode object to :c:data:`Py_FileSystemDefaultEncoding` with the :" "c:data:`Py_FileSystemDefaultEncodeErrors` error handler, and return :class:" @@ -1095,29 +1133,29 @@ msgid "" "bytes." msgstr "" -#: ../Doc/c-api/unicode.rst:912 +#: c-api/unicode.rst:938 msgid "" ":c:data:`Py_FileSystemDefaultEncoding` is initialized at startup from the " "locale encoding and cannot be modified later. If you need to encode a string " "to the current locale encoding, use :c:func:`PyUnicode_EncodeLocale`." msgstr "" -#: ../Doc/c-api/unicode.rst:926 +#: c-api/unicode.rst:952 msgid "wchar_t Support" msgstr "" -#: ../Doc/c-api/unicode.rst:928 +#: c-api/unicode.rst:954 msgid ":c:type:`wchar_t` support for platforms which support it:" msgstr "" -#: ../Doc/c-api/unicode.rst:932 +#: c-api/unicode.rst:958 msgid "" "Create a Unicode object from the :c:type:`wchar_t` buffer *w* of the given " "*size*. Passing ``-1`` as the *size* indicates that the function must itself " "compute the length, using wcslen. Return ``NULL`` on failure." msgstr "" -#: ../Doc/c-api/unicode.rst:940 +#: c-api/unicode.rst:966 msgid "" "Copy the Unicode object contents into the :c:type:`wchar_t` buffer *w*. At " "most *size* :c:type:`wchar_t` characters are copied (excluding a possibly " @@ -1130,7 +1168,7 @@ msgid "" "would cause the string to be truncated when used with most C functions." msgstr "" -#: ../Doc/c-api/unicode.rst:953 +#: c-api/unicode.rst:979 msgid "" "Convert the Unicode object to a wide character string. The output string " "always ends with a null character. If *size* is not ``NULL``, write the " @@ -1141,38 +1179,38 @@ msgid "" "`wchar_t*` string contains null characters a :exc:`ValueError` is raised." msgstr "" -#: ../Doc/c-api/unicode.rst:961 +#: c-api/unicode.rst:987 msgid "" "Returns a buffer allocated by :c:func:`PyMem_Alloc` (use :c:func:" -"`PyMem_Free` to free it) on success. On error, returns ``NULL`` and *" -"\\*size* is undefined. Raises a :exc:`MemoryError` if memory allocation is " +"`PyMem_Free` to free it) on success. On error, returns ``NULL`` and " +"*\\*size* is undefined. Raises a :exc:`MemoryError` if memory allocation is " "failed." msgstr "" -#: ../Doc/c-api/unicode.rst:968 +#: c-api/unicode.rst:994 msgid "" "Raises a :exc:`ValueError` if *size* is ``NULL`` and the :c:type:`wchar_t*` " "string contains null characters." msgstr "" -#: ../Doc/c-api/unicode.rst:976 +#: c-api/unicode.rst:1002 msgid "Built-in Codecs" msgstr "" -#: ../Doc/c-api/unicode.rst:978 +#: c-api/unicode.rst:1004 msgid "" "Python provides a set of built-in codecs which are written in C for speed. " "All of these codecs are directly usable via the following functions." msgstr "" -#: ../Doc/c-api/unicode.rst:981 +#: c-api/unicode.rst:1007 msgid "" "Many of the following APIs take two arguments encoding and errors, and they " "have the same semantics as the ones of the built-in :func:`str` string " "object constructor." msgstr "" -#: ../Doc/c-api/unicode.rst:985 +#: c-api/unicode.rst:1011 msgid "" "Setting encoding to ``NULL`` causes the default encoding to be used which is " "ASCII. The file system calls should use :c:func:`PyUnicode_FSConverter` for " @@ -1183,28 +1221,28 @@ msgid "" "setlocale)." msgstr "" -#: ../Doc/c-api/unicode.rst:993 +#: c-api/unicode.rst:1019 msgid "" "Error handling is set by errors which may also be set to ``NULL`` meaning to " "use the default handling defined for the codec. Default error handling for " "all built-in codecs is \"strict\" (:exc:`ValueError` is raised)." msgstr "" -#: ../Doc/c-api/unicode.rst:997 +#: c-api/unicode.rst:1023 msgid "" "The codecs all use a similar interface. Only deviation from the following " "generic ones are documented for simplicity." msgstr "" -#: ../Doc/c-api/unicode.rst:1002 +#: c-api/unicode.rst:1028 msgid "Generic Codecs" msgstr "" -#: ../Doc/c-api/unicode.rst:1004 +#: c-api/unicode.rst:1030 msgid "These are the generic codec APIs:" msgstr "" -#: ../Doc/c-api/unicode.rst:1010 +#: c-api/unicode.rst:1036 msgid "" "Create a Unicode object by decoding *size* bytes of the encoded string *s*. " "*encoding* and *errors* have the same meaning as the parameters of the same " @@ -1213,7 +1251,7 @@ msgid "" "raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1020 +#: c-api/unicode.rst:1046 msgid "" "Encode a Unicode object and return the result as Python bytes object. " "*encoding* and *errors* have the same meaning as the parameters of the same " @@ -1222,7 +1260,7 @@ msgid "" "was raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1030 +#: c-api/unicode.rst:1056 msgid "" "Encode the :c:type:`Py_UNICODE` buffer *s* of the given *size* and return a " "Python bytes object. *encoding* and *errors* have the same meaning as the " @@ -1231,27 +1269,27 @@ msgid "" "``NULL`` if an exception was raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1038 ../Doc/c-api/unicode.rst:1295 +#: c-api/unicode.rst:1321 msgid "" "Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" "func:`PyUnicode_AsEncodedString`." msgstr "" -#: ../Doc/c-api/unicode.rst:1042 +#: c-api/unicode.rst:1068 msgid "UTF-8 Codecs" msgstr "" -#: ../Doc/c-api/unicode.rst:1044 +#: c-api/unicode.rst:1070 msgid "These are the UTF-8 codec APIs:" msgstr "" -#: ../Doc/c-api/unicode.rst:1049 +#: c-api/unicode.rst:1075 msgid "" "Create a Unicode object by decoding *size* bytes of the UTF-8 encoded string " "*s*. Return ``NULL`` if an exception was raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1056 +#: c-api/unicode.rst:1082 msgid "" "If *consumed* is ``NULL``, behave like :c:func:`PyUnicode_DecodeUTF8`. If " "*consumed* is not ``NULL``, trailing incomplete UTF-8 byte sequences will " @@ -1259,14 +1297,14 @@ msgid "" "of bytes that have been decoded will be stored in *consumed*." msgstr "" -#: ../Doc/c-api/unicode.rst:1064 +#: c-api/unicode.rst:1090 msgid "" "Encode a Unicode object using UTF-8 and return the result as Python bytes " "object. Error handling is \"strict\". Return ``NULL`` if an exception was " "raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1071 +#: c-api/unicode.rst:1097 msgid "" "Return a pointer to the UTF-8 encoding of the Unicode object, and store the " "size of the encoded representation (in bytes) in *size*. The *size* " @@ -1275,63 +1313,63 @@ msgid "" "regardless of whether there are any other null code points." msgstr "" -#: ../Doc/c-api/unicode.rst:1077 +#: c-api/unicode.rst:1103 msgid "" "In the case of an error, ``NULL`` is returned with an exception set and no " "*size* is stored." msgstr "" -#: ../Doc/c-api/unicode.rst:1080 +#: c-api/unicode.rst:1106 msgid "" "This caches the UTF-8 representation of the string in the Unicode object, " "and subsequent calls will return a pointer to the same buffer. The caller " "is not responsible for deallocating the buffer." msgstr "" -#: ../Doc/c-api/unicode.rst:1086 ../Doc/c-api/unicode.rst:1096 +#: c-api/unicode.rst:1122 msgid "The return type is now ``const char *`` rather of ``char *``." msgstr "" -#: ../Doc/c-api/unicode.rst:1092 +#: c-api/unicode.rst:1118 msgid "As :c:func:`PyUnicode_AsUTF8AndSize`, but does not store the size." msgstr "" -#: ../Doc/c-api/unicode.rst:1102 +#: c-api/unicode.rst:1128 msgid "" "Encode the :c:type:`Py_UNICODE` buffer *s* of the given *size* using UTF-8 " "and return a Python bytes object. Return ``NULL`` if an exception was " "raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1109 +#: c-api/unicode.rst:1135 msgid "" "Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" "func:`PyUnicode_AsUTF8String`, :c:func:`PyUnicode_AsUTF8AndSize` or :c:func:" "`PyUnicode_AsEncodedString`." msgstr "" -#: ../Doc/c-api/unicode.rst:1113 +#: c-api/unicode.rst:1139 msgid "UTF-32 Codecs" msgstr "" -#: ../Doc/c-api/unicode.rst:1115 +#: c-api/unicode.rst:1141 msgid "These are the UTF-32 codec APIs:" msgstr "" -#: ../Doc/c-api/unicode.rst:1121 +#: c-api/unicode.rst:1147 msgid "" "Decode *size* bytes from a UTF-32 encoded buffer string and return the " "corresponding Unicode object. *errors* (if non-``NULL``) defines the error " "handling. It defaults to \"strict\"." msgstr "" -#: ../Doc/c-api/unicode.rst:1125 ../Doc/c-api/unicode.rst:1198 +#: c-api/unicode.rst:1224 msgid "" "If *byteorder* is non-``NULL``, the decoder starts decoding using the given " "byte order::" msgstr "" -#: ../Doc/c-api/unicode.rst:1132 +#: c-api/unicode.rst:1158 msgid "" "If ``*byteorder`` is zero, and the first four bytes of the input data are a " "byte order mark (BOM), the decoder switches to this byte order and the BOM " @@ -1339,22 +1377,21 @@ msgid "" "``-1`` or ``1``, any byte order mark is copied to the output." msgstr "" -#: ../Doc/c-api/unicode.rst:1137 ../Doc/c-api/unicode.rst:1211 +#: c-api/unicode.rst:1237 msgid "" "After completion, *\\*byteorder* is set to the current byte order at the end " "of input data." msgstr "" -#: ../Doc/c-api/unicode.rst:1140 ../Doc/c-api/unicode.rst:1214 +#: c-api/unicode.rst:1240 msgid "If *byteorder* is ``NULL``, the codec starts in native order mode." msgstr "" -#: ../Doc/c-api/unicode.rst:1142 ../Doc/c-api/unicode.rst:1178 -#: ../Doc/c-api/unicode.rst:1216 ../Doc/c-api/unicode.rst:1253 +#: c-api/unicode.rst:1204 c-api/unicode.rst:1279 msgid "Return ``NULL`` if an exception was raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1148 +#: c-api/unicode.rst:1174 msgid "" "If *consumed* is ``NULL``, behave like :c:func:`PyUnicode_DecodeUTF32`. If " "*consumed* is not ``NULL``, :c:func:`PyUnicode_DecodeUTF32Stateful` will not " @@ -1363,53 +1400,53 @@ msgid "" "number of bytes that have been decoded will be stored in *consumed*." msgstr "" -#: ../Doc/c-api/unicode.rst:1157 +#: c-api/unicode.rst:1183 msgid "" "Return a Python byte string using the UTF-32 encoding in native byte order. " "The string always starts with a BOM mark. Error handling is \"strict\". " "Return ``NULL`` if an exception was raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1165 +#: c-api/unicode.rst:1191 msgid "" "Return a Python bytes object holding the UTF-32 encoded value of the Unicode " "data in *s*. Output is written according to the following byte order::" msgstr "" -#: ../Doc/c-api/unicode.rst:1172 ../Doc/c-api/unicode.rst:1246 +#: c-api/unicode.rst:1272 msgid "" "If byteorder is ``0``, the output string will always start with the Unicode " "BOM mark (U+FEFF). In the other two modes, no BOM mark is prepended." msgstr "" -#: ../Doc/c-api/unicode.rst:1175 +#: c-api/unicode.rst:1201 msgid "" "If ``Py_UNICODE_WIDE`` is not defined, surrogate pairs will be output as a " "single code point." msgstr "" -#: ../Doc/c-api/unicode.rst:1182 +#: c-api/unicode.rst:1208 msgid "" "Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" "func:`PyUnicode_AsUTF32String` or :c:func:`PyUnicode_AsEncodedString`." msgstr "" -#: ../Doc/c-api/unicode.rst:1186 +#: c-api/unicode.rst:1212 msgid "UTF-16 Codecs" msgstr "" -#: ../Doc/c-api/unicode.rst:1188 +#: c-api/unicode.rst:1214 msgid "These are the UTF-16 codec APIs:" msgstr "" -#: ../Doc/c-api/unicode.rst:1194 +#: c-api/unicode.rst:1220 msgid "" "Decode *size* bytes from a UTF-16 encoded buffer string and return the " "corresponding Unicode object. *errors* (if non-``NULL``) defines the error " "handling. It defaults to \"strict\"." msgstr "" -#: ../Doc/c-api/unicode.rst:1205 +#: c-api/unicode.rst:1231 msgid "" "If ``*byteorder`` is zero, and the first two bytes of the input data are a " "byte order mark (BOM), the decoder switches to this byte order and the BOM " @@ -1418,7 +1455,7 @@ msgid "" "result in either a ``\\ufeff`` or a ``\\ufffe`` character)." msgstr "" -#: ../Doc/c-api/unicode.rst:1222 +#: c-api/unicode.rst:1248 msgid "" "If *consumed* is ``NULL``, behave like :c:func:`PyUnicode_DecodeUTF16`. If " "*consumed* is not ``NULL``, :c:func:`PyUnicode_DecodeUTF16Stateful` will not " @@ -1428,47 +1465,47 @@ msgid "" "*consumed*." msgstr "" -#: ../Doc/c-api/unicode.rst:1231 +#: c-api/unicode.rst:1257 msgid "" "Return a Python byte string using the UTF-16 encoding in native byte order. " "The string always starts with a BOM mark. Error handling is \"strict\". " "Return ``NULL`` if an exception was raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1239 +#: c-api/unicode.rst:1265 msgid "" "Return a Python bytes object holding the UTF-16 encoded value of the Unicode " "data in *s*. Output is written according to the following byte order::" msgstr "" -#: ../Doc/c-api/unicode.rst:1249 +#: c-api/unicode.rst:1275 msgid "" "If ``Py_UNICODE_WIDE`` is defined, a single :c:type:`Py_UNICODE` value may " "get represented as a surrogate pair. If it is not defined, each :c:type:" "`Py_UNICODE` values is interpreted as a UCS-2 character." msgstr "" -#: ../Doc/c-api/unicode.rst:1257 +#: c-api/unicode.rst:1283 msgid "" "Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" "func:`PyUnicode_AsUTF16String` or :c:func:`PyUnicode_AsEncodedString`." msgstr "" -#: ../Doc/c-api/unicode.rst:1261 +#: c-api/unicode.rst:1287 msgid "UTF-7 Codecs" msgstr "" -#: ../Doc/c-api/unicode.rst:1263 +#: c-api/unicode.rst:1289 msgid "These are the UTF-7 codec APIs:" msgstr "" -#: ../Doc/c-api/unicode.rst:1268 +#: c-api/unicode.rst:1294 msgid "" "Create a Unicode object by decoding *size* bytes of the UTF-7 encoded string " "*s*. Return ``NULL`` if an exception was raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1275 +#: c-api/unicode.rst:1301 msgid "" "If *consumed* is ``NULL``, behave like :c:func:`PyUnicode_DecodeUTF7`. If " "*consumed* is not ``NULL``, trailing incomplete UTF-7 base-64 sections will " @@ -1476,14 +1513,14 @@ msgid "" "of bytes that have been decoded will be stored in *consumed*." msgstr "" -#: ../Doc/c-api/unicode.rst:1284 +#: c-api/unicode.rst:1310 msgid "" "Encode the :c:type:`Py_UNICODE` buffer of the given size using UTF-7 and " "return a Python bytes object. Return ``NULL`` if an exception was raised by " "the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1288 +#: c-api/unicode.rst:1314 msgid "" "If *base64SetO* is nonzero, \"Set O\" (punctuation that has no otherwise " "special meaning) will be encoded in base-64. If *base64WhiteSpace* is " @@ -1491,152 +1528,152 @@ msgid "" "the Python \"utf-7\" codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1299 +#: c-api/unicode.rst:1325 msgid "Unicode-Escape Codecs" msgstr "" -#: ../Doc/c-api/unicode.rst:1301 +#: c-api/unicode.rst:1327 msgid "These are the \"Unicode Escape\" codec APIs:" msgstr "" -#: ../Doc/c-api/unicode.rst:1307 +#: c-api/unicode.rst:1333 msgid "" "Create a Unicode object by decoding *size* bytes of the Unicode-Escape " "encoded string *s*. Return ``NULL`` if an exception was raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1313 +#: c-api/unicode.rst:1339 msgid "" "Encode a Unicode object using Unicode-Escape and return the result as a " "bytes object. Error handling is \"strict\". Return ``NULL`` if an " "exception was raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1320 +#: c-api/unicode.rst:1346 msgid "" "Encode the :c:type:`Py_UNICODE` buffer of the given *size* using Unicode-" "Escape and return a bytes object. Return ``NULL`` if an exception was " "raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1325 +#: c-api/unicode.rst:1351 msgid "" "Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" "func:`PyUnicode_AsUnicodeEscapeString`." msgstr "" -#: ../Doc/c-api/unicode.rst:1329 +#: c-api/unicode.rst:1355 msgid "Raw-Unicode-Escape Codecs" msgstr "" -#: ../Doc/c-api/unicode.rst:1331 +#: c-api/unicode.rst:1357 msgid "These are the \"Raw Unicode Escape\" codec APIs:" msgstr "" -#: ../Doc/c-api/unicode.rst:1337 +#: c-api/unicode.rst:1363 msgid "" "Create a Unicode object by decoding *size* bytes of the Raw-Unicode-Escape " "encoded string *s*. Return ``NULL`` if an exception was raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1343 +#: c-api/unicode.rst:1369 msgid "" "Encode a Unicode object using Raw-Unicode-Escape and return the result as a " "bytes object. Error handling is \"strict\". Return ``NULL`` if an " "exception was raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1351 +#: c-api/unicode.rst:1377 msgid "" "Encode the :c:type:`Py_UNICODE` buffer of the given *size* using Raw-Unicode-" "Escape and return a bytes object. Return ``NULL`` if an exception was " "raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1357 +#: c-api/unicode.rst:1383 msgid "" "Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" "func:`PyUnicode_AsRawUnicodeEscapeString` or :c:func:" "`PyUnicode_AsEncodedString`." msgstr "" -#: ../Doc/c-api/unicode.rst:1361 +#: c-api/unicode.rst:1387 msgid "Latin-1 Codecs" msgstr "" -#: ../Doc/c-api/unicode.rst:1363 +#: c-api/unicode.rst:1389 msgid "" "These are the Latin-1 codec APIs: Latin-1 corresponds to the first 256 " "Unicode ordinals and only these are accepted by the codecs during encoding." msgstr "" -#: ../Doc/c-api/unicode.rst:1369 +#: c-api/unicode.rst:1395 msgid "" "Create a Unicode object by decoding *size* bytes of the Latin-1 encoded " "string *s*. Return ``NULL`` if an exception was raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1375 +#: c-api/unicode.rst:1401 msgid "" "Encode a Unicode object using Latin-1 and return the result as Python bytes " "object. Error handling is \"strict\". Return ``NULL`` if an exception was " "raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1382 +#: c-api/unicode.rst:1408 msgid "" "Encode the :c:type:`Py_UNICODE` buffer of the given *size* using Latin-1 and " "return a Python bytes object. Return ``NULL`` if an exception was raised by " "the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1389 +#: c-api/unicode.rst:1415 msgid "" "Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" "func:`PyUnicode_AsLatin1String` or :c:func:`PyUnicode_AsEncodedString`." msgstr "" -#: ../Doc/c-api/unicode.rst:1393 +#: c-api/unicode.rst:1419 msgid "ASCII Codecs" msgstr "" -#: ../Doc/c-api/unicode.rst:1395 +#: c-api/unicode.rst:1421 msgid "" "These are the ASCII codec APIs. Only 7-bit ASCII data is accepted. All " "other codes generate errors." msgstr "" -#: ../Doc/c-api/unicode.rst:1401 +#: c-api/unicode.rst:1427 msgid "" "Create a Unicode object by decoding *size* bytes of the ASCII encoded string " "*s*. Return ``NULL`` if an exception was raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1407 +#: c-api/unicode.rst:1433 msgid "" "Encode a Unicode object using ASCII and return the result as Python bytes " "object. Error handling is \"strict\". Return ``NULL`` if an exception was " "raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1414 +#: c-api/unicode.rst:1440 msgid "" "Encode the :c:type:`Py_UNICODE` buffer of the given *size* using ASCII and " "return a Python bytes object. Return ``NULL`` if an exception was raised by " "the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1421 +#: c-api/unicode.rst:1447 msgid "" "Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" "func:`PyUnicode_AsASCIIString` or :c:func:`PyUnicode_AsEncodedString`." msgstr "" -#: ../Doc/c-api/unicode.rst:1425 +#: c-api/unicode.rst:1451 msgid "Character Map Codecs" msgstr "" -#: ../Doc/c-api/unicode.rst:1427 +#: c-api/unicode.rst:1453 msgid "" "This codec is special in that it can be used to implement many different " "codecs (and this is in fact what was done to obtain most of the standard " @@ -1646,18 +1683,18 @@ msgid "" "well." msgstr "" -#: ../Doc/c-api/unicode.rst:1433 +#: c-api/unicode.rst:1459 msgid "These are the mapping codec APIs:" msgstr "" -#: ../Doc/c-api/unicode.rst:1438 +#: c-api/unicode.rst:1464 msgid "" "Create a Unicode object by decoding *size* bytes of the encoded string *s* " "using the given *mapping* object. Return ``NULL`` if an exception was " "raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1442 +#: c-api/unicode.rst:1468 msgid "" "If *mapping* is ``NULL``, Latin-1 decoding will be applied. Else *mapping* " "must map bytes ordinals (integers in the range from 0 to 255) to Unicode " @@ -1667,14 +1704,14 @@ msgid "" "treated as undefined mappings and cause an error." msgstr "" -#: ../Doc/c-api/unicode.rst:1453 +#: c-api/unicode.rst:1479 msgid "" "Encode a Unicode object using the given *mapping* object and return the " "result as a bytes object. Error handling is \"strict\". Return ``NULL`` if " "an exception was raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1457 +#: c-api/unicode.rst:1483 msgid "" "The *mapping* object must map Unicode ordinal integers to bytes objects, " "integers in the range from 0 to 255 or ``None``. Unmapped character " @@ -1682,57 +1719,68 @@ msgid "" "``None`` are treated as \"undefined mapping\" and cause an error." msgstr "" -#: ../Doc/c-api/unicode.rst:1466 +#: c-api/unicode.rst:1492 msgid "" "Encode the :c:type:`Py_UNICODE` buffer of the given *size* using the given " "*mapping* object and return the result as a bytes object. Return ``NULL`` " "if an exception was raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1473 +#: c-api/unicode.rst:1499 msgid "" "Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" "func:`PyUnicode_AsCharmapString` or :c:func:`PyUnicode_AsEncodedString`." msgstr "" -#: ../Doc/c-api/unicode.rst:1476 +#: c-api/unicode.rst:1502 msgid "The following codec API is special in that maps Unicode to Unicode." msgstr "" -#: ../Doc/c-api/unicode.rst:1481 +#: c-api/unicode.rst:1506 msgid "" -"Translate a Unicode object using the given *mapping* object and return the " -"resulting Unicode object. Return ``NULL`` if an exception was raised by the " -"codec." +"Translate a string by applying a character mapping table to it and return " +"the resulting Unicode object. Return ``NULL`` if an exception was raised by " +"the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1485 +#: c-api/unicode.rst:1510 msgid "" -"The *mapping* object must map Unicode ordinal integers to Unicode strings, " -"integers (which are then interpreted as Unicode ordinals) or ``None`` " -"(causing deletion of the character). Unmapped character ordinals (ones " +"The mapping table must map Unicode ordinal integers to Unicode ordinal " +"integers or ``None`` (causing deletion of the character)." +msgstr "" + +#: c-api/unicode.rst:1513 +msgid "" +"Mapping tables need only provide the :meth:`__getitem__` interface; " +"dictionaries and sequences work well. Unmapped character ordinals (ones " "which cause a :exc:`LookupError`) are left untouched and are copied as-is." msgstr "" -#: ../Doc/c-api/unicode.rst:1494 +#: c-api/unicode.rst:1517 +msgid "" +"*errors* has the usual meaning for codecs. It may be ``NULL`` which " +"indicates to use the default error handling." +msgstr "" + +#: c-api/unicode.rst:1524 msgid "" "Translate a :c:type:`Py_UNICODE` buffer of the given *size* by applying a " "character *mapping* table to it and return the resulting Unicode object. " "Return ``NULL`` when an exception was raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1501 +#: c-api/unicode.rst:1531 msgid "" "Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" "func:`PyUnicode_Translate`. or :ref:`generic codec based API `" msgstr "" -#: ../Doc/c-api/unicode.rst:1505 +#: c-api/unicode.rst:1535 msgid "MBCS codecs for Windows" msgstr "" -#: ../Doc/c-api/unicode.rst:1507 +#: c-api/unicode.rst:1537 msgid "" "These are the MBCS codec APIs. They are currently only available on Windows " "and use the Win32 MBCS converters to implement the conversions. Note that " @@ -1740,13 +1788,13 @@ msgid "" "is defined by the user settings on the machine running the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1514 +#: c-api/unicode.rst:1544 msgid "" "Create a Unicode object by decoding *size* bytes of the MBCS encoded string " "*s*. Return ``NULL`` if an exception was raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1521 +#: c-api/unicode.rst:1551 msgid "" "If *consumed* is ``NULL``, behave like :c:func:`PyUnicode_DecodeMBCS`. If " "*consumed* is not ``NULL``, :c:func:`PyUnicode_DecodeMBCSStateful` will not " @@ -1754,58 +1802,58 @@ msgid "" "will be stored in *consumed*." msgstr "" -#: ../Doc/c-api/unicode.rst:1529 +#: c-api/unicode.rst:1559 msgid "" "Encode a Unicode object using MBCS and return the result as Python bytes " "object. Error handling is \"strict\". Return ``NULL`` if an exception was " "raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1536 +#: c-api/unicode.rst:1566 msgid "" "Encode the Unicode object using the specified code page and return a Python " "bytes object. Return ``NULL`` if an exception was raised by the codec. Use :" "c:data:`CP_ACP` code page to get the MBCS encoder." msgstr "" -#: ../Doc/c-api/unicode.rst:1545 +#: c-api/unicode.rst:1575 msgid "" "Encode the :c:type:`Py_UNICODE` buffer of the given *size* using MBCS and " "return a Python bytes object. Return ``NULL`` if an exception was raised by " "the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1552 +#: c-api/unicode.rst:1582 msgid "" "Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" "func:`PyUnicode_AsMBCSString`, :c:func:`PyUnicode_EncodeCodePage` or :c:func:" "`PyUnicode_AsEncodedString`." msgstr "" -#: ../Doc/c-api/unicode.rst:1556 +#: c-api/unicode.rst:1586 msgid "Methods & Slots" msgstr "" -#: ../Doc/c-api/unicode.rst:1562 +#: c-api/unicode.rst:1592 msgid "Methods and Slot Functions" msgstr "" -#: ../Doc/c-api/unicode.rst:1564 +#: c-api/unicode.rst:1594 msgid "" "The following APIs are capable of handling Unicode objects and strings on " "input (we refer to them as strings in the descriptions) and return Unicode " "objects or integers as appropriate." msgstr "" -#: ../Doc/c-api/unicode.rst:1568 +#: c-api/unicode.rst:1598 msgid "They all return ``NULL`` or ``-1`` if an exception occurs." msgstr "" -#: ../Doc/c-api/unicode.rst:1573 +#: c-api/unicode.rst:1603 msgid "Concat two strings giving a new Unicode string." msgstr "" -#: ../Doc/c-api/unicode.rst:1578 +#: c-api/unicode.rst:1608 msgid "" "Split a string giving a list of Unicode strings. If *sep* is ``NULL``, " "splitting will be done at all whitespace substrings. Otherwise, splits " @@ -1814,52 +1862,27 @@ msgid "" "list." msgstr "" -#: ../Doc/c-api/unicode.rst:1586 +#: c-api/unicode.rst:1616 msgid "" "Split a Unicode string at line breaks, returning a list of Unicode strings. " "CRLF is considered to be one line break. If *keepend* is ``0``, the Line " "break characters are not included in the resulting strings." msgstr "" -#: ../Doc/c-api/unicode.rst:1594 -msgid "" -"Translate a string by applying a character mapping table to it and return " -"the resulting Unicode object." -msgstr "" - -#: ../Doc/c-api/unicode.rst:1597 -msgid "" -"The mapping table must map Unicode ordinal integers to Unicode ordinal " -"integers or ``None`` (causing deletion of the character)." -msgstr "" - -#: ../Doc/c-api/unicode.rst:1600 -msgid "" -"Mapping tables need only provide the :meth:`__getitem__` interface; " -"dictionaries and sequences work well. Unmapped character ordinals (ones " -"which cause a :exc:`LookupError`) are left untouched and are copied as-is." -msgstr "" - -#: ../Doc/c-api/unicode.rst:1604 -msgid "" -"*errors* has the usual meaning for codecs. It may be ``NULL`` which " -"indicates to use the default error handling." -msgstr "" - -#: ../Doc/c-api/unicode.rst:1610 +#: c-api/unicode.rst:1623 msgid "" "Join a sequence of strings using the given *separator* and return the " "resulting Unicode string." msgstr "" -#: ../Doc/c-api/unicode.rst:1617 +#: c-api/unicode.rst:1630 msgid "" "Return ``1`` if *substr* matches ``str[start:end]`` at the given tail end " "(*direction* == ``-1`` means to do a prefix match, *direction* == ``1`` a " "suffix match), ``0`` otherwise. Return ``-1`` if an error occurred." msgstr "" -#: ../Doc/c-api/unicode.rst:1625 +#: c-api/unicode.rst:1638 msgid "" "Return the first position of *substr* in ``str[start:end]`` using the given " "*direction* (*direction* == ``1`` means to do a forward search, *direction* " @@ -1868,7 +1891,7 @@ msgid "" "indicates that an error occurred and an exception has been set." msgstr "" -#: ../Doc/c-api/unicode.rst:1635 +#: c-api/unicode.rst:1648 msgid "" "Return the first position of the character *ch* in ``str[start:end]`` using " "the given *direction* (*direction* == ``1`` means to do a forward search, " @@ -1877,36 +1900,36 @@ msgid "" "``-2`` indicates that an error occurred and an exception has been set." msgstr "" -#: ../Doc/c-api/unicode.rst:1643 +#: c-api/unicode.rst:1656 msgid "*start* and *end* are now adjusted to behave like ``str[start:end]``." msgstr "" -#: ../Doc/c-api/unicode.rst:1650 +#: c-api/unicode.rst:1663 msgid "" "Return the number of non-overlapping occurrences of *substr* in ``str[start:" "end]``. Return ``-1`` if an error occurred." msgstr "" -#: ../Doc/c-api/unicode.rst:1657 +#: c-api/unicode.rst:1670 msgid "" "Replace at most *maxcount* occurrences of *substr* in *str* with *replstr* " "and return the resulting Unicode object. *maxcount* == ``-1`` means replace " "all occurrences." msgstr "" -#: ../Doc/c-api/unicode.rst:1664 +#: c-api/unicode.rst:1677 msgid "" "Compare two strings and return ``-1``, ``0``, ``1`` for less than, equal, " "and greater than, respectively." msgstr "" -#: ../Doc/c-api/unicode.rst:1667 +#: c-api/unicode.rst:1680 msgid "" "This function returns ``-1`` upon failure, so one should call :c:func:" "`PyErr_Occurred` to check for errors." msgstr "" -#: ../Doc/c-api/unicode.rst:1673 +#: c-api/unicode.rst:1686 msgid "" "Compare a Unicode object, *uni*, with *string* and return ``-1``, ``0``, " "``1`` for less than, equal, and greater than, respectively. It is best to " @@ -1914,56 +1937,56 @@ msgid "" "string as ISO-8859-1 if it contains non-ASCII characters." msgstr "" -#: ../Doc/c-api/unicode.rst:1678 +#: c-api/unicode.rst:1691 msgid "This function does not raise exceptions." msgstr "" -#: ../Doc/c-api/unicode.rst:1683 +#: c-api/unicode.rst:1696 msgid "Rich compare two Unicode strings and return one of the following:" msgstr "" -#: ../Doc/c-api/unicode.rst:1685 +#: c-api/unicode.rst:1698 msgid "``NULL`` in case an exception was raised" msgstr "" -#: ../Doc/c-api/unicode.rst:1686 +#: c-api/unicode.rst:1699 msgid ":const:`Py_True` or :const:`Py_False` for successful comparisons" msgstr "" -#: ../Doc/c-api/unicode.rst:1687 +#: c-api/unicode.rst:1700 msgid ":const:`Py_NotImplemented` in case the type combination is unknown" msgstr "" -#: ../Doc/c-api/unicode.rst:1689 +#: c-api/unicode.rst:1702 msgid "" "Possible values for *op* are :const:`Py_GT`, :const:`Py_GE`, :const:" "`Py_EQ`, :const:`Py_NE`, :const:`Py_LT`, and :const:`Py_LE`." msgstr "" -#: ../Doc/c-api/unicode.rst:1695 +#: c-api/unicode.rst:1708 msgid "" "Return a new string object from *format* and *args*; this is analogous to " "``format % args``." msgstr "" -#: ../Doc/c-api/unicode.rst:1701 +#: c-api/unicode.rst:1714 msgid "" "Check whether *element* is contained in *container* and return true or false " "accordingly." msgstr "" -#: ../Doc/c-api/unicode.rst:1704 +#: c-api/unicode.rst:1717 msgid "" "*element* has to coerce to a one element Unicode string. ``-1`` is returned " "if there was an error." msgstr "" -#: ../Doc/c-api/unicode.rst:1710 +#: c-api/unicode.rst:1723 msgid "" "Intern the argument *\\*string* in place. The argument must be the address " "of a pointer variable pointing to a Python Unicode string object. If there " -"is an existing interned string that is the same as *\\*string*, it sets *" -"\\*string* to it (decrementing the reference count of the old string object " +"is an existing interned string that is the same as *\\*string*, it sets " +"*\\*string* to it (decrementing the reference count of the old string object " "and incrementing the reference count of the interned string object), " "otherwise it leaves *\\*string* alone and interns it (incrementing its " "reference count). (Clarification: even though there is a lot of talk about " @@ -1971,7 +1994,7 @@ msgid "" "the object after the call if and only if you owned it before the call.)" msgstr "" -#: ../Doc/c-api/unicode.rst:1723 +#: c-api/unicode.rst:1736 msgid "" "A combination of :c:func:`PyUnicode_FromString` and :c:func:" "`PyUnicode_InternInPlace`, returning either a new Unicode string object that " diff --git a/c-api/veryhigh.po b/c-api/veryhigh.po index 9e789fa264..c6c8d45002 100644 --- a/c-api/veryhigh.po +++ b/c-api/veryhigh.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-15 18:54+0100\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,18 +14,18 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/c-api/veryhigh.rst:8 +#: c-api/veryhigh.rst:8 msgid "The Very High Level Layer" msgstr "" -#: ../Doc/c-api/veryhigh.rst:10 +#: c-api/veryhigh.rst:10 msgid "" "The functions in this chapter will let you execute Python source code given " "in a file or a buffer, but they will not let you interact in a more detailed " "way with the interpreter." msgstr "" -#: ../Doc/c-api/veryhigh.rst:14 +#: c-api/veryhigh.rst:14 msgid "" "Several of these functions accept a start symbol from the grammar as a " "parameter. The available start symbols are :const:`Py_eval_input`, :const:" @@ -33,19 +33,19 @@ msgid "" "following the functions which accept them as parameters." msgstr "" -#: ../Doc/c-api/veryhigh.rst:19 +#: c-api/veryhigh.rst:19 msgid "" -"Note also that several of these functions take :c:type:`FILE\\*` " -"parameters. One particular issue which needs to be handled carefully is " -"that the :c:type:`FILE` structure for different C libraries can be different " -"and incompatible. Under Windows (at least), it is possible for dynamically " +"Note also that several of these functions take :c:type:`FILE*` parameters. " +"One particular issue which needs to be handled carefully is that the :c:type:" +"`FILE` structure for different C libraries can be different and " +"incompatible. Under Windows (at least), it is possible for dynamically " "linked extensions to actually use different libraries, so care should be " -"taken that :c:type:`FILE\\*` parameters are only passed to these functions " -"if it is certain that they were created by the same library that the Python " +"taken that :c:type:`FILE*` parameters are only passed to these functions if " +"it is certain that they were created by the same library that the Python " "runtime is using." msgstr "" -#: ../Doc/c-api/veryhigh.rst:30 +#: c-api/veryhigh.rst:30 msgid "" "The main program for the standard interpreter. This is made available for " "programs which embed Python. The *argc* and *argv* parameters should be " @@ -58,36 +58,36 @@ msgid "" "the parameter list does not represent a valid Python command line." msgstr "" -#: ../Doc/c-api/veryhigh.rst:40 +#: c-api/veryhigh.rst:40 msgid "" "Note that if an otherwise unhandled :exc:`SystemExit` is raised, this " "function will not return ``1``, but exit the process, as long as " "``Py_InspectFlag`` is not set." msgstr "" -#: ../Doc/c-api/veryhigh.rst:47 +#: c-api/veryhigh.rst:47 msgid "Similar to :c:func:`Py_Main` but *argv* is an array of bytes strings." msgstr "" -#: ../Doc/c-api/veryhigh.rst:54 +#: c-api/veryhigh.rst:54 msgid "" "This is a simplified interface to :c:func:`PyRun_AnyFileExFlags` below, " "leaving *closeit* set to ``0`` and *flags* set to ``NULL``." msgstr "" -#: ../Doc/c-api/veryhigh.rst:60 +#: c-api/veryhigh.rst:60 msgid "" "This is a simplified interface to :c:func:`PyRun_AnyFileExFlags` below, " "leaving the *closeit* argument set to ``0``." msgstr "" -#: ../Doc/c-api/veryhigh.rst:66 +#: c-api/veryhigh.rst:66 msgid "" "This is a simplified interface to :c:func:`PyRun_AnyFileExFlags` below, " "leaving the *flags* argument set to ``NULL``." msgstr "" -#: ../Doc/c-api/veryhigh.rst:72 +#: c-api/veryhigh.rst:72 msgid "" "If *fp* refers to a file associated with an interactive device (console or " "terminal input or Unix pseudo-terminal), return the value of :c:func:" @@ -97,13 +97,13 @@ msgid "" "uses ``\"???\"`` as the filename." msgstr "" -#: ../Doc/c-api/veryhigh.rst:82 +#: c-api/veryhigh.rst:82 msgid "" "This is a simplified interface to :c:func:`PyRun_SimpleStringFlags` below, " "leaving the :c:type:`PyCompilerFlags`\\* argument set to ``NULL``." msgstr "" -#: ../Doc/c-api/veryhigh.rst:88 +#: c-api/veryhigh.rst:88 msgid "" "Executes the Python source code from *command* in the :mod:`__main__` module " "according to the *flags* argument. If :mod:`__main__` does not already " @@ -112,26 +112,26 @@ msgid "" "information. For the meaning of *flags*, see below." msgstr "" -#: ../Doc/c-api/veryhigh.rst:94 +#: c-api/veryhigh.rst:94 msgid "" "Note that if an otherwise unhandled :exc:`SystemExit` is raised, this " "function will not return ``-1``, but exit the process, as long as " "``Py_InspectFlag`` is not set." msgstr "" -#: ../Doc/c-api/veryhigh.rst:101 +#: c-api/veryhigh.rst:101 msgid "" "This is a simplified interface to :c:func:`PyRun_SimpleFileExFlags` below, " "leaving *closeit* set to ``0`` and *flags* set to ``NULL``." msgstr "" -#: ../Doc/c-api/veryhigh.rst:107 +#: c-api/veryhigh.rst:107 msgid "" "This is a simplified interface to :c:func:`PyRun_SimpleFileExFlags` below, " "leaving *flags* set to ``NULL``." msgstr "" -#: ../Doc/c-api/veryhigh.rst:113 +#: c-api/veryhigh.rst:113 msgid "" "Similar to :c:func:`PyRun_SimpleStringFlags`, but the Python source code is " "read from *fp* instead of an in-memory string. *filename* should be the name " @@ -140,20 +140,20 @@ msgid "" "PyRun_SimpleFileExFlags returns." msgstr "" -#: ../Doc/c-api/veryhigh.rst:120 +#: c-api/veryhigh.rst:120 msgid "" -"On Windows, *fp* should be opened as binary mode (e.g. ``fopen(filename, \"rb" -"\")``. Otherwise, Python may not handle script file with LF line ending " +"On Windows, *fp* should be opened as binary mode (e.g. ``fopen(filename, " +"\"rb\")``. Otherwise, Python may not handle script file with LF line ending " "correctly." msgstr "" -#: ../Doc/c-api/veryhigh.rst:126 +#: c-api/veryhigh.rst:126 msgid "" "This is a simplified interface to :c:func:`PyRun_InteractiveOneFlags` below, " "leaving *flags* set to ``NULL``." msgstr "" -#: ../Doc/c-api/veryhigh.rst:132 +#: c-api/veryhigh.rst:132 msgid "" "Read and execute a single statement from a file associated with an " "interactive device according to the *flags* argument. The user will be " @@ -161,7 +161,7 @@ msgid "" "filesystem encoding (:func:`sys.getfilesystemencoding`)." msgstr "" -#: ../Doc/c-api/veryhigh.rst:137 +#: c-api/veryhigh.rst:137 msgid "" "Returns ``0`` when the input was executed successfully, ``-1`` if there was " "an exception, or an error code from the :file:`errcode.h` include file " @@ -170,13 +170,13 @@ msgid "" "specifically if needed.)" msgstr "" -#: ../Doc/c-api/veryhigh.rst:146 +#: c-api/veryhigh.rst:146 msgid "" "This is a simplified interface to :c:func:`PyRun_InteractiveLoopFlags` " "below, leaving *flags* set to ``NULL``." msgstr "" -#: ../Doc/c-api/veryhigh.rst:152 +#: c-api/veryhigh.rst:152 msgid "" "Read and execute statements from a file associated with an interactive " "device until EOF is reached. The user will be prompted using ``sys.ps1`` " @@ -185,7 +185,7 @@ msgid "" "upon failure." msgstr "" -#: ../Doc/c-api/veryhigh.rst:161 +#: c-api/veryhigh.rst:161 msgid "" "Can be set to point to a function with the prototype ``int func(void)``. " "The function will be called when Python's interpreter prompt is about to " @@ -195,7 +195,7 @@ msgid "" "the Python source code." msgstr "" -#: ../Doc/c-api/veryhigh.rst:172 +#: c-api/veryhigh.rst:172 msgid "" "Can be set to point to a function with the prototype ``char *func(FILE " "*stdin, FILE *stdout, char *prompt)``, overriding the default function used " @@ -206,34 +206,34 @@ msgid "" "line-editing and tab-completion features." msgstr "" -#: ../Doc/c-api/veryhigh.rst:181 +#: c-api/veryhigh.rst:181 msgid "" "The result must be a string allocated by :c:func:`PyMem_RawMalloc` or :c:" "func:`PyMem_RawRealloc`, or ``NULL`` if an error occurred." msgstr "" -#: ../Doc/c-api/veryhigh.rst:184 +#: c-api/veryhigh.rst:184 msgid "" "The result must be allocated by :c:func:`PyMem_RawMalloc` or :c:func:" "`PyMem_RawRealloc`, instead of being allocated by :c:func:`PyMem_Malloc` or :" "c:func:`PyMem_Realloc`." msgstr "" -#: ../Doc/c-api/veryhigh.rst:192 +#: c-api/veryhigh.rst:192 msgid "" "This is a simplified interface to :c:func:" "`PyParser_SimpleParseStringFlagsFilename` below, leaving *filename* set to " "``NULL`` and *flags* set to ``0``." msgstr "" -#: ../Doc/c-api/veryhigh.rst:199 +#: c-api/veryhigh.rst:199 msgid "" "This is a simplified interface to :c:func:" "`PyParser_SimpleParseStringFlagsFilename` below, leaving *filename* set to " "``NULL``." msgstr "" -#: ../Doc/c-api/veryhigh.rst:206 +#: c-api/veryhigh.rst:206 msgid "" "Parse Python source code from *str* using the start token *start* according " "to the *flags* argument. The result can be used to create a code object " @@ -242,25 +242,25 @@ msgid "" "(:func:`sys.getfilesystemencoding`)." msgstr "" -#: ../Doc/c-api/veryhigh.rst:215 +#: c-api/veryhigh.rst:215 msgid "" "This is a simplified interface to :c:func:`PyParser_SimpleParseFileFlags` " "below, leaving *flags* set to ``0``." msgstr "" -#: ../Doc/c-api/veryhigh.rst:221 +#: c-api/veryhigh.rst:221 msgid "" "Similar to :c:func:`PyParser_SimpleParseStringFlagsFilename`, but the Python " "source code is read from *fp* instead of an in-memory string." msgstr "" -#: ../Doc/c-api/veryhigh.rst:227 +#: c-api/veryhigh.rst:227 msgid "" "This is a simplified interface to :c:func:`PyRun_StringFlags` below, leaving " "*flags* set to ``NULL``." msgstr "" -#: ../Doc/c-api/veryhigh.rst:233 +#: c-api/veryhigh.rst:233 msgid "" "Execute Python source code from *str* in the context specified by the " "objects *globals* and *locals* with the compiler flags specified by " @@ -269,31 +269,31 @@ msgid "" "token that should be used to parse the source code." msgstr "" -#: ../Doc/c-api/veryhigh.rst:239 +#: c-api/veryhigh.rst:239 msgid "" "Returns the result of executing the code as a Python object, or ``NULL`` if " "an exception was raised." msgstr "" -#: ../Doc/c-api/veryhigh.rst:245 +#: c-api/veryhigh.rst:245 msgid "" "This is a simplified interface to :c:func:`PyRun_FileExFlags` below, leaving " "*closeit* set to ``0`` and *flags* set to ``NULL``." msgstr "" -#: ../Doc/c-api/veryhigh.rst:251 +#: c-api/veryhigh.rst:251 msgid "" "This is a simplified interface to :c:func:`PyRun_FileExFlags` below, leaving " "*flags* set to ``NULL``." msgstr "" -#: ../Doc/c-api/veryhigh.rst:257 +#: c-api/veryhigh.rst:257 msgid "" "This is a simplified interface to :c:func:`PyRun_FileExFlags` below, leaving " "*closeit* set to ``0``." msgstr "" -#: ../Doc/c-api/veryhigh.rst:263 +#: c-api/veryhigh.rst:263 msgid "" "Similar to :c:func:`PyRun_StringFlags`, but the Python source code is read " "from *fp* instead of an in-memory string. *filename* should be the name of " @@ -302,19 +302,19 @@ msgid "" "func:`PyRun_FileExFlags` returns." msgstr "" -#: ../Doc/c-api/veryhigh.rst:272 +#: c-api/veryhigh.rst:272 msgid "" "This is a simplified interface to :c:func:`Py_CompileStringFlags` below, " "leaving *flags* set to ``NULL``." msgstr "" -#: ../Doc/c-api/veryhigh.rst:278 +#: c-api/veryhigh.rst:278 msgid "" "This is a simplified interface to :c:func:`Py_CompileStringExFlags` below, " "with *optimize* set to ``-1``." msgstr "" -#: ../Doc/c-api/veryhigh.rst:284 +#: c-api/veryhigh.rst:284 msgid "" "Parse and compile the Python source code in *str*, returning the resulting " "code object. The start token is given by *start*; this can be used to " @@ -325,7 +325,7 @@ msgid "" "returns ``NULL`` if the code cannot be parsed or compiled." msgstr "" -#: ../Doc/c-api/veryhigh.rst:292 +#: c-api/veryhigh.rst:292 msgid "" "The integer *optimize* specifies the optimization level of the compiler; a " "value of ``-1`` selects the optimization level of the interpreter as given " @@ -334,20 +334,20 @@ msgid "" "or ``2`` (docstrings are removed too)." msgstr "" -#: ../Doc/c-api/veryhigh.rst:303 +#: c-api/veryhigh.rst:303 msgid "" "Like :c:func:`Py_CompileStringObject`, but *filename* is a byte string " "decoded from the filesystem encoding (:func:`os.fsdecode`)." msgstr "" -#: ../Doc/c-api/veryhigh.rst:310 +#: c-api/veryhigh.rst:310 msgid "" "This is a simplified interface to :c:func:`PyEval_EvalCodeEx`, with just the " "code object, and global and local variables. The other arguments are set to " "``NULL``." msgstr "" -#: ../Doc/c-api/veryhigh.rst:317 +#: c-api/veryhigh.rst:317 msgid "" "Evaluate a precompiled code object, given a particular environment for its " "evaluation. This environment consists of a dictionary of global variables, " @@ -356,19 +356,22 @@ msgid "" "only_parameter>` arguments and a closure tuple of cells." msgstr "" -#: ../Doc/c-api/veryhigh.rst:326 +#: c-api/veryhigh.rst:326 +#, fuzzy msgid "" "The C structure of the objects used to describe frame objects. The fields of " "this type are subject to change at any time." msgstr "" +"La structure C utilisée pour décrire les objets *Code*. Les attributs de " +"cette structure sont sujets à changer à tout moment." -#: ../Doc/c-api/veryhigh.rst:332 +#: c-api/veryhigh.rst:332 msgid "" "Evaluate an execution frame. This is a simplified interface to :c:func:" "`PyEval_EvalFrameEx`, for backward compatibility." msgstr "" -#: ../Doc/c-api/veryhigh.rst:338 +#: c-api/veryhigh.rst:338 msgid "" "This is the main, unvarnished function of Python interpretation. The code " "object associated with the execution frame *f* is executed, interpreting " @@ -378,7 +381,7 @@ msgid "" "of generator objects." msgstr "" -#: ../Doc/c-api/veryhigh.rst:345 +#: c-api/veryhigh.rst:345 msgid "" "This function now includes a debug assertion to help ensure that it does not " "silently discard an active exception." @@ -386,33 +389,33 @@ msgstr "" "Cette fonction inclut maintenant une assertion de débogage afin d'assurer " "qu'elle ne passe pas sous silence une exception active." -#: ../Doc/c-api/veryhigh.rst:352 +#: c-api/veryhigh.rst:352 msgid "" "This function changes the flags of the current evaluation frame, and returns " "true on success, false on failure." msgstr "" -#: ../Doc/c-api/veryhigh.rst:360 +#: c-api/veryhigh.rst:360 msgid "" "The start symbol from the Python grammar for isolated expressions; for use " "with :c:func:`Py_CompileString`." msgstr "" -#: ../Doc/c-api/veryhigh.rst:368 +#: c-api/veryhigh.rst:368 msgid "" "The start symbol from the Python grammar for sequences of statements as read " "from a file or other source; for use with :c:func:`Py_CompileString`. This " "is the symbol to use when compiling arbitrarily long Python source code." msgstr "" -#: ../Doc/c-api/veryhigh.rst:377 +#: c-api/veryhigh.rst:377 msgid "" "The start symbol from the Python grammar for a single statement; for use " "with :c:func:`Py_CompileString`. This is the symbol used for the interactive " "interpreter loop." msgstr "" -#: ../Doc/c-api/veryhigh.rst:384 +#: c-api/veryhigh.rst:384 msgid "" "This is the structure used to hold compiler flags. In cases where code is " "only being compiled, it is passed as ``int flags``, and in cases where code " @@ -420,34 +423,34 @@ msgid "" "case, ``from __future__ import`` can modify *flags*." msgstr "" -#: ../Doc/c-api/veryhigh.rst:389 +#: c-api/veryhigh.rst:389 msgid "" "Whenever ``PyCompilerFlags *flags`` is ``NULL``, :attr:`cf_flags` is treated " "as equal to ``0``, and any modification due to ``from __future__ import`` is " "discarded." msgstr "" -#: ../Doc/c-api/veryhigh.rst:395 +#: c-api/veryhigh.rst:395 msgid "Compiler flags." msgstr "" -#: ../Doc/c-api/veryhigh.rst:399 +#: c-api/veryhigh.rst:399 msgid "" "*cf_feature_version* is the minor Python version. It should be initialized " "to ``PY_MINOR_VERSION``." msgstr "" -#: ../Doc/c-api/veryhigh.rst:402 +#: c-api/veryhigh.rst:402 msgid "" "The field is ignored by default, it is used if and only if ``PyCF_ONLY_AST`` " "flag is set in *cf_flags*." msgstr "" -#: ../Doc/c-api/veryhigh.rst:405 +#: c-api/veryhigh.rst:405 msgid "Added *cf_feature_version* field." msgstr "" -#: ../Doc/c-api/veryhigh.rst:411 +#: c-api/veryhigh.rst:411 msgid "" "This bit can be set in *flags* to cause division operator ``/`` to be " "interpreted as \"true division\" according to :pep:`238`." diff --git a/copyright.po b/copyright.po index 37a05e2187..9346c00daa 100644 --- a/copyright.po +++ b/copyright.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-01-03 16:57+0100\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2019-01-03 16:59+0100\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -14,24 +14,25 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/copyright.rst:3 +#: copyright.rst:3 msgid "Copyright" msgstr "Copyright" -#: ../Doc/copyright.rst:5 +#: copyright.rst:5 msgid "Python and this documentation is:" msgstr "Python et cette documentation sont :" -#: ../Doc/copyright.rst:7 -msgid "Copyright © 2001-2019 Python Software Foundation. All rights reserved." +#: copyright.rst:7 +#, fuzzy +msgid "Copyright © 2001-2023 Python Software Foundation. All rights reserved." msgstr "" "Copyright © 2001-2019 Python Software Foundation. Tous droits réservés." -#: ../Doc/copyright.rst:9 +#: copyright.rst:9 msgid "Copyright © 2000 BeOpen.com. All rights reserved." msgstr "Copyright © 2000 *BeOpen.com*. Tous droits réservés." -#: ../Doc/copyright.rst:11 +#: copyright.rst:11 msgid "" "Copyright © 1995-2000 Corporation for National Research Initiatives. All " "rights reserved." @@ -39,13 +40,13 @@ msgstr "" "Copyright © 1995-2000 *Corporation for National Research Initiatives*. Tous " "droits réservés." -#: ../Doc/copyright.rst:14 +#: copyright.rst:14 msgid "" "Copyright © 1991-1995 Stichting Mathematisch Centrum. All rights reserved." msgstr "" "Copyright © 1991-1995 *Stichting Mathematisch Centrum*. Tous droits réservés." -#: ../Doc/copyright.rst:18 +#: copyright.rst:18 msgid "" "See :ref:`history-and-license` for complete license and permissions " "information." diff --git a/dict b/dict index 293f02eeb1..a9bbba8190 100644 --- a/dict +++ b/dict @@ -1,5 +1,7 @@ #python-fr +-1 -ième +-uplet -uplets 017f 212a @@ -11,20 +13,25 @@ base32 base64 base85 batch +boguer c++ c- -c- c/c++ +C14N +C89 c99 +chacha20 cadriciel cadriciels catucci cobjects composabilité concourance +contravariante +contravariantes +configurateurs contribués coroutine -coroutine coroutines cpython curryfication @@ -44,13 +51,17 @@ déserialise déserialiser déserialiseur déserialiseurs +désérialiseur +désérialiseurs déserialisées déserialisés +désérialisés désérialise désérialiser désérialisé désérialisées encodable +ethnomathématiques farrugia finaliseur frederik @@ -67,6 +78,7 @@ indiçage indo-arabes ininterruptible interchangés +intralignes ios ipv4 itérateur @@ -79,17 +91,20 @@ journalisé journalisée journalisés jr. +kolams kuchling l'allocateur l'indiçage l'itérateur lexicographiquement lorsqu'aucune +lorsqu'aucun mar mar. marc-andré mersenne mertz +Monty muabilité muable muables @@ -120,6 +135,7 @@ pydb pylint pythonwin qu +re recompilation reedy relationelle @@ -138,6 +154,7 @@ résolveurs réusinage réusinages réusiné +réutilisabilité serwy shell slot @@ -145,7 +162,6 @@ smalltalk sqlite surprenamment sérialisable -sérialisable sérialisables sérialiser sérialiseur @@ -154,16 +170,20 @@ sérialisée sérialisées sérialisés tk -tk tokenisation tokenisé tokenisés tty uplets +utf-8 +utf-16 +utf-32 von w3c +world wxwidgets x11 +x86 zope émoji ı diff --git a/distributing/index.po b/distributing/index.po index c58a0cd160..13470f2ec2 100644 --- a/distributing/index.po +++ b/distributing/index.po @@ -5,28 +5,29 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-15 18:54+0100\n" -"PO-Revision-Date: 2019-05-23 20:39+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" +"PO-Revision-Date: 2020-02-04 09:33+0100\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.4\n" -#: ../Doc/distributing/index.rst:5 +#: distributing/index.rst:5 msgid "Distributing Python Modules" msgstr "Distribuer des modules Python" -#: ../Doc/distributing/index.rst:0 +#: distributing/index.rst:0 msgid "Email" msgstr "Email" -#: ../Doc/distributing/index.rst:7 +#: distributing/index.rst:7 msgid "distutils-sig@python.org" msgstr "distutils-sig@python.org" -#: ../Doc/distributing/index.rst:10 +#: distributing/index.rst:10 msgid "" "As a popular open source development project, Python has an active " "supporting community of contributors and users that also make their software " @@ -37,7 +38,7 @@ msgstr "" "logiciels disponibles, sous licence libre, pour les autres développeurs " "Python." -#: ../Doc/distributing/index.rst:14 +#: distributing/index.rst:14 msgid "" "This allows Python users to share and collaborate effectively, benefiting " "from the solutions others have already created to common (and sometimes even " @@ -49,7 +50,7 @@ msgstr "" "résoudre les problèmes communs (ou même, parfois, rares !), aussi que de " "partager leurs propres solutions à tous." -#: ../Doc/distributing/index.rst:19 +#: distributing/index.rst:19 msgid "" "This guide covers the distribution part of the process. For a guide to " "installing other Python projects, refer to the :ref:`installation guide " @@ -59,7 +60,7 @@ msgstr "" "l'installation d'autres projets Python, voir :ref:`installation guide " "`." -#: ../Doc/distributing/index.rst:25 +#: distributing/index.rst:25 msgid "" "For corporate and other institutional users, be aware that many " "organisations have their own policies around using and contributing to open " @@ -67,15 +68,15 @@ msgid "" "the distribution and installation tools provided with Python." msgstr "" "Pour les entreprises et autres institutions, gardez en tête que certaines " -"organisations ont leur propres règles sur l'utilisation et la contribution " +"organisations ont leurs propres règles sur l'utilisation et la contribution " "au logiciel libre. Prenez ces règles en compte lorsque vous utilisez les " "outils de distribution et d'installation fournis par Python." -#: ../Doc/distributing/index.rst:32 +#: distributing/index.rst:32 msgid "Key terms" msgstr "Vocabulaire" -#: ../Doc/distributing/index.rst:34 +#: distributing/index.rst:34 msgid "" "the `Python Packaging Index `__ is a public repository of " "open source licensed packages made available for use by other Python users" @@ -84,8 +85,7 @@ msgstr "" "paquets sous licence libre rendus disponibles par d'autres utilisateurs " "Python" -#: ../Doc/distributing/index.rst:37 -#, fuzzy +#: distributing/index.rst:37 msgid "" "the `Python Packaging Authority `__ are the group of " "developers and documentation authors responsible for the maintenance and " @@ -99,9 +99,9 @@ msgstr "" "de l'évolution des outils standards de création de paquets, des métadonnées, " "et des formats de fichiers standards. Ils maintiennent quelques outils, " "documentation, et gestionnaires de ticket, aussi bien sur `GitHub `__ que sur `BitBucket `__." +"github.com/pypa>`__ que sur `Bitbucket `__." -#: ../Doc/distributing/index.rst:44 +#: distributing/index.rst:44 msgid "" ":mod:`distutils` is the original build and distribution system first added " "to the Python standard library in 1998. While direct use of :mod:`distutils` " @@ -118,7 +118,7 @@ msgstr "" "d'autres formes, tel que la liste de diffusion utilisée pour coordonner le " "développement et les standards de la création de paquet." -#: ../Doc/distributing/index.rst:51 +#: distributing/index.rst:51 msgid "" "`setuptools`_ is a (largely) drop-in replacement for :mod:`distutils` first " "published in 2004. Its most notable addition over the unmodified :mod:" @@ -134,7 +134,7 @@ msgstr "" "régulièrement mise à jour que :mod:`distutils` et gère mieux les standards " "de création de paquets actuels, pour un large choix de version de Python." -#: ../Doc/distributing/index.rst:57 +#: distributing/index.rst:57 msgid "" "`wheel`_ (in this context) is a project that adds the ``bdist_wheel`` " "command to :mod:`distutils`/`setuptools`_. This produces a cross platform " @@ -149,11 +149,11 @@ msgstr "" "incluant des extensions binaires, d'être installées sur un système sans " "avoir à les compiler localement." -#: ../Doc/distributing/index.rst:68 +#: distributing/index.rst:68 msgid "Open source licensing and collaboration" msgstr "Licence libre et collaboration" -#: ../Doc/distributing/index.rst:70 +#: distributing/index.rst:70 msgid "" "In most parts of the world, software is automatically covered by copyright. " "This means that other developers require explicit permission to copy, use, " @@ -164,7 +164,7 @@ msgstr "" "besoin d'une autorisation explicite pour copier, utiliser, modifier, et " "redistribuer le logiciel." -#: ../Doc/distributing/index.rst:74 +#: distributing/index.rst:74 msgid "" "Open source licensing is a way of explicitly granting such permission in a " "relatively consistent way, allowing developers to share and collaborate " @@ -179,7 +179,7 @@ msgstr "" "de dépenser plus de temps concentrés sur des problèmes relativement uniques " "à leur cas spécifiques." -#: ../Doc/distributing/index.rst:80 +#: distributing/index.rst:80 msgid "" "The distribution tools provided with Python are designed to make it " "reasonably straightforward for developers to make their own contributions " @@ -189,7 +189,7 @@ msgstr "" "vie des développeurs relativement simple lorsqu'ils souhaitent contribuer, " "s'il le désirent, à ces ressources communes." -#: ../Doc/distributing/index.rst:84 +#: distributing/index.rst:84 msgid "" "The same distribution tools can also be used to distribute software within " "an organisation, regardless of whether that software is published as open " @@ -199,11 +199,11 @@ msgstr "" "du logiciel à l'intérieur d'une organisation, que ce soit du logiciel libre " "ou non." -#: ../Doc/distributing/index.rst:90 +#: distributing/index.rst:90 msgid "Installing the tools" msgstr "Installer les outils" -#: ../Doc/distributing/index.rst:92 +#: distributing/index.rst:92 msgid "" "The standard library does not include build tools that support modern Python " "packaging standards, as the core development team has found that it is " @@ -216,7 +216,7 @@ msgstr "" "fonctionnent de manière cohérente, même avec de plus vieilles versions de " "Python." -#: ../Doc/distributing/index.rst:97 +#: distributing/index.rst:97 msgid "" "The currently recommended build and distribution tools can be installed by " "invoking the ``pip`` module at the command line::" @@ -225,7 +225,7 @@ msgstr "" "recommandées peuvent être installées en invoquant le module ``pip`` dans une " "invite de commande ::" -#: ../Doc/distributing/index.rst:104 +#: distributing/index.rst:104 msgid "" "For POSIX users (including Mac OS X and Linux users), these instructions " "assume the use of a :term:`virtual environment`." @@ -234,7 +234,7 @@ msgstr "" "utilisateurs de Linux), ces instructions supposent l'utilisation d'un :term:" "`environnement virtuel`." -#: ../Doc/distributing/index.rst:107 +#: distributing/index.rst:107 msgid "" "For Windows users, these instructions assume that the option to adjust the " "system PATH environment variable was selected when installing Python." @@ -243,7 +243,7 @@ msgstr "" "proposant de modifier la variable d'environnement PATH à été cochée lors de " "l'installation de Python." -#: ../Doc/distributing/index.rst:111 +#: distributing/index.rst:111 msgid "" "The Python Packaging User Guide includes more details on the `currently " "recommended tools`_." @@ -251,11 +251,11 @@ msgstr "" "Le *Python Packaging User Guide* contient plus de détails sur les `(en) " "outils actuellement recommandés `_." -#: ../Doc/distributing/index.rst:123 +#: distributing/index.rst:123 msgid "Reading the Python Packaging User Guide" msgstr "Consultez le *Python Packaging User Guide*" -#: ../Doc/distributing/index.rst:125 +#: distributing/index.rst:125 msgid "" "The Python Packaging User Guide covers the various key steps and elements " "involved in creating and publishing a project:" @@ -263,58 +263,61 @@ msgstr "" "Le *Python Packaging User Guide* couvre les différentes étapes et les " "éléments clés de la création et publication d'un projet :" -#: ../Doc/distributing/index.rst:128 +#: distributing/index.rst:128 msgid "`Project structure`_" msgstr "`(en) Structure d'un projet `_" -#: ../Doc/distributing/index.rst:129 +#: distributing/index.rst:129 msgid "`Building and packaging the project`_" msgstr "" "`(en) Construire et empaqueter le projet `_" -#: ../Doc/distributing/index.rst:130 +#: distributing/index.rst:130 msgid "`Uploading the project to the Python Packaging Index`_" msgstr "" "`(en) Téléverser le projet sur le Python Packaging Index `_" -#: ../Doc/distributing/index.rst:141 +#: distributing/index.rst:131 +msgid "`The .pypirc file`_" +msgstr "`(en) Le fichier .pypirc `_." + +#: distributing/index.rst:144 msgid "How do I...?" msgstr "Comment puis-je ...?" -#: ../Doc/distributing/index.rst:143 +#: distributing/index.rst:146 msgid "These are quick answers or links for some common tasks." msgstr "" "Ce sont des réponses rapides ou des liens pour certaines tâches courantes." -#: ../Doc/distributing/index.rst:146 +#: distributing/index.rst:149 msgid "... choose a name for my project?" msgstr "... choisir un nom pour mon projet ?" -#: ../Doc/distributing/index.rst:148 +#: distributing/index.rst:151 msgid "This isn't an easy topic, but here are a few tips:" msgstr "Ce n'est pas un sujet facile, mais voici quelques conseils :" -#: ../Doc/distributing/index.rst:150 +#: distributing/index.rst:153 msgid "check the Python Packaging Index to see if the name is already in use" msgstr "vérifiez dans le *Python Packaging Index* si le nom est déjà utilisé" -#: ../Doc/distributing/index.rst:151 -#, fuzzy +#: distributing/index.rst:154 msgid "" "check popular hosting sites like GitHub, Bitbucket, etc to see if there is " "already a project with that name" msgstr "" "vérifiez sur quelques sites d'hébergement populaires tels que GitHub, " -"BitBucket, etc pour voir s'il y existe déjà un projet avec ce nom" +"Bitbucket, etc pour voir s'il y existe déjà un projet avec ce nom" -#: ../Doc/distributing/index.rst:153 +#: distributing/index.rst:156 msgid "check what comes up in a web search for the name you're considering" msgstr "" "vérifiez ce qui sort en recherchant sur le web le nom que vous envisagez" -#: ../Doc/distributing/index.rst:154 +#: distributing/index.rst:157 msgid "" "avoid particularly common words, especially ones with multiple meanings, as " "they can make it difficult for users to find your software when searching " @@ -324,11 +327,11 @@ msgstr "" "significations, car pour vos utilisateurs, cela complique la recherche de " "votre logiciel" -#: ../Doc/distributing/index.rst:160 +#: distributing/index.rst:163 msgid "... create and distribute binary extensions?" msgstr "... créer et distribuer des extensions binaires ?" -#: ../Doc/distributing/index.rst:162 +#: distributing/index.rst:165 msgid "" "This is actually quite a complex topic, with a variety of alternatives " "available depending on exactly what you're aiming to achieve. See the Python " @@ -338,7 +341,7 @@ msgstr "" "disponibles dont le choix dépend de votre objectif exact. Voir le *Python " "Packaging User Guide* pour plus d'informations et de recommandations." -#: ../Doc/distributing/index.rst:168 +#: distributing/index.rst:171 msgid "" "`Python Packaging User Guide: Binary Extensions `__" diff --git a/distutils/_setuptools_disclaimer.po b/distutils/_setuptools_disclaimer.po index 0524218d44..5ca7c7b21a 100644 --- a/distutils/_setuptools_disclaimer.po +++ b/distutils/_setuptools_disclaimer.po @@ -6,13 +6,14 @@ msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: 2019-09-04 11:42+0200\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2020-02-04 21:21+0100\n" +"Last-Translator: ZepmanBC \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.4\n" #: ../Doc/distutils/_setuptools_disclaimer.rst:3 msgid "" @@ -20,3 +21,7 @@ msgid "" "documentation at https://setuptools.readthedocs.io/en/latest/setuptools.html " "independently covers all of the relevant information currently included here." msgstr "" +"Cette page est conservée uniquement jusqu'à ce que la documentation " +"``setuptool`` sur https://setuptools.readthedocs.io/en/latest/setuptools." +"html couvre de manière indépendante toutes les informations pertinentes " +"actuellement incluses ici." diff --git a/distutils/apiref.po b/distutils/apiref.po index 7fbdf8cb44..a623273a0a 100644 --- a/distutils/apiref.po +++ b/distutils/apiref.po @@ -5,44 +5,52 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-09 17:54+0200\n" -"PO-Revision-Date: 2019-12-11 10:54+0100\n" -"Last-Translator: Jules Lasne \n" +"POT-Creation-Date: 2020-05-23 11:38+0200\n" +"PO-Revision-Date: 2020-05-09 12:00+0200\n" +"Last-Translator: ZepmanBC \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2.1\n" +"X-Generator: Poedit 2.0.6\n" -#: ../Doc/distutils/apiref.rst:5 +#: distutils/apiref.rst:5 msgid "API Reference" msgstr "Référence de l'API" -#: ../Doc/distutils/apiref.rst:11 +#: distutils/apiref.rst:11 msgid "`New and changed setup.py arguments in setuptools`_" -msgstr "" +msgstr "`Arguments nouveaux et modifiés de setup.py dans setuptools`_" -#: ../Doc/distutils/apiref.rst:10 +#: distutils/apiref.rst:10 msgid "" "The ``setuptools`` project adds new capabilities to the ``setup`` function " "and other APIs, makes the API consistent across different Python versions, " "and is hence recommended over using ``distutils`` directly." msgstr "" +"Le projet ``setuptools`` ajoute de nouvelles capacités à la fonction " +"``setup`` et à d'autres API, il rend l'API cohérente entre les différentes " +"versions de Python ; il est donc recommandé de l'utiliser plutôt que " +"d'utiliser directement les ``distutils``." -#: ../Doc/distutils/_setuptools_disclaimer.rst:3 +#: distutils/_setuptools_disclaimer.rst:3 msgid "" "This document is being retained solely until the ``setuptools`` " "documentation at https://setuptools.readthedocs.io/en/latest/setuptools.html " "independently covers all of the relevant information currently included here." msgstr "" +"Cette page est conservée uniquement jusqu'à ce que la documentation " +"``setuptool`` sur https://setuptools.readthedocs.io/en/latest/setuptools." +"html couvre de manière indépendante toutes les informations pertinentes " +"actuellement incluses ici." -#: ../Doc/distutils/apiref.rst:19 +#: distutils/apiref.rst:19 msgid ":mod:`distutils.core` --- Core Distutils functionality" msgstr "" -":mod:`distutils.core` --- Fonctionnalités principales du module Distutils" +":mod:`distutils.core` — Fonctionnalités principales du module Distutils" -#: ../Doc/distutils/apiref.rst:25 +#: distutils/apiref.rst:25 msgid "" "The :mod:`distutils.core` module is the only module that needs to be " "installed to use the Distutils. It provides the :func:`setup` (which is " @@ -54,7 +62,7 @@ msgstr "" "appelé par le script *setup.py*). Il fournit indirectement les classes :" "class:`distutils.dist.Distribution` et :class:`distutils.cmd.Command`." -#: ../Doc/distutils/apiref.rst:33 +#: distutils/apiref.rst:33 msgid "" "The basic do-everything function that does most everything you could ever " "ask for from a Distutils method." @@ -62,7 +70,7 @@ msgstr "" "La fonction de base à tout faire qui fait presque tout ce dont vous pourriez " "attendre d'une méthode Distutils." -#: ../Doc/distutils/apiref.rst:36 +#: distutils/apiref.rst:36 msgid "" "The setup function takes a large number of arguments. These are laid out in " "the following table." @@ -70,82 +78,77 @@ msgstr "" "La fonction ``setup`` prend un grand nombre d'arguments. Ils sont présentés " "dans le tableau suivant." -#: ../Doc/distutils/apiref.rst:42 ../Doc/distutils/apiref.rst:185 +#: distutils/apiref.rst:185 msgid "argument name" msgstr "nom de l'argument" -#: ../Doc/distutils/apiref.rst:42 ../Doc/distutils/apiref.rst:143 -#: ../Doc/distutils/apiref.rst:185 +#: distutils/apiref.rst:143 distutils/apiref.rst:185 msgid "value" msgstr "valeur" -#: ../Doc/distutils/apiref.rst:42 ../Doc/distutils/apiref.rst:185 +#: distutils/apiref.rst:185 msgid "type" msgstr "type" -#: ../Doc/distutils/apiref.rst:44 ../Doc/distutils/apiref.rst:187 +#: distutils/apiref.rst:187 msgid "*name*" msgstr "*name*" -#: ../Doc/distutils/apiref.rst:44 +#: distutils/apiref.rst:44 msgid "The name of the package" msgstr "Le nom du paquet" -#: ../Doc/distutils/apiref.rst:44 ../Doc/distutils/apiref.rst:46 -#: ../Doc/distutils/apiref.rst:50 ../Doc/distutils/apiref.rst:53 -#: ../Doc/distutils/apiref.rst:56 ../Doc/distutils/apiref.rst:58 -#: ../Doc/distutils/apiref.rst:61 ../Doc/distutils/apiref.rst:68 -#: ../Doc/distutils/apiref.rst:72 ../Doc/distutils/apiref.rst:75 -#: ../Doc/distutils/apiref.rst:96 ../Doc/distutils/apiref.rst:106 -#: ../Doc/distutils/apiref.rst:187 ../Doc/distutils/apiref.rst:278 +#: distutils/apiref.rst:46 distutils/apiref.rst:53 distutils/apiref.rst:58 +#: distutils/apiref.rst:68 distutils/apiref.rst:75 distutils/apiref.rst:106 +#: distutils/apiref.rst:278 msgid "a string" msgstr "une chaîne de caractères" -#: ../Doc/distutils/apiref.rst:46 +#: distutils/apiref.rst:46 msgid "*version*" msgstr "*version*" -#: ../Doc/distutils/apiref.rst:46 +#: distutils/apiref.rst:46 msgid "The version number of the package; see :mod:`distutils.version`" msgstr "Le numéro de version du paquet, voir :mod:`distutils.version`" -#: ../Doc/distutils/apiref.rst:50 +#: distutils/apiref.rst:50 msgid "*description*" msgstr "*description*" -#: ../Doc/distutils/apiref.rst:50 +#: distutils/apiref.rst:50 msgid "A single line describing the package" msgstr "Une ligne unique décrivant le paquet" -#: ../Doc/distutils/apiref.rst:53 +#: distutils/apiref.rst:53 msgid "*long_description*" msgstr "*long_description*" -#: ../Doc/distutils/apiref.rst:53 +#: distutils/apiref.rst:53 msgid "Longer description of the package" msgstr "Une description plus longue du paquet" -#: ../Doc/distutils/apiref.rst:56 +#: distutils/apiref.rst:56 msgid "*author*" msgstr "*author*" -#: ../Doc/distutils/apiref.rst:56 +#: distutils/apiref.rst:56 msgid "The name of the package author" msgstr "Le nom de l'auteur du paquet" -#: ../Doc/distutils/apiref.rst:58 +#: distutils/apiref.rst:58 msgid "*author_email*" msgstr "*author_email*" -#: ../Doc/distutils/apiref.rst:58 +#: distutils/apiref.rst:58 msgid "The email address of the package author" msgstr "L'adresse e-mail de l'auteur du paquet" -#: ../Doc/distutils/apiref.rst:61 +#: distutils/apiref.rst:61 msgid "*maintainer*" msgstr "*maintainer*" -#: ../Doc/distutils/apiref.rst:61 +#: distutils/apiref.rst:61 msgid "" "The name of the current maintainer, if different from the author. Note that " "if the maintainer is provided, distutils will use it as the author in :file:" @@ -155,87 +158,82 @@ msgstr "" "si *maintainer* est fourni, *distutils* l'utilise à la place de *author* " "dans :file:`PKG-INFO`." -#: ../Doc/distutils/apiref.rst:68 +#: distutils/apiref.rst:68 msgid "*maintainer_email*" msgstr "*maintainer_email*" -#: ../Doc/distutils/apiref.rst:68 +#: distutils/apiref.rst:68 msgid "" "The email address of the current maintainer, if different from the author" msgstr "Le courriel de l'actuel mainteneur, si différent de l'auteur" -#: ../Doc/distutils/apiref.rst:72 +#: distutils/apiref.rst:72 msgid "*url*" msgstr "*url*" -#: ../Doc/distutils/apiref.rst:72 +#: distutils/apiref.rst:72 msgid "A URL for the package (homepage)" msgstr "Une URL pour le paquet (page d'accueil)" -#: ../Doc/distutils/apiref.rst:75 +#: distutils/apiref.rst:75 msgid "*download_url*" msgstr "*download_url*" -#: ../Doc/distutils/apiref.rst:75 +#: distutils/apiref.rst:75 msgid "A URL to download the package" msgstr "Une URL pour télécharger le paquet" -#: ../Doc/distutils/apiref.rst:77 +#: distutils/apiref.rst:77 msgid "*packages*" msgstr "*packages*" -#: ../Doc/distutils/apiref.rst:77 +#: distutils/apiref.rst:77 msgid "A list of Python packages that distutils will manipulate" msgstr "Une liste des paquets Python que *distutils* va manipuler" -#: ../Doc/distutils/apiref.rst:77 ../Doc/distutils/apiref.rst:80 -#: ../Doc/distutils/apiref.rst:83 ../Doc/distutils/apiref.rst:100 -#: ../Doc/distutils/apiref.rst:193 ../Doc/distutils/apiref.rst:207 -#: ../Doc/distutils/apiref.rst:223 ../Doc/distutils/apiref.rst:226 -#: ../Doc/distutils/apiref.rst:230 ../Doc/distutils/apiref.rst:234 -#: ../Doc/distutils/apiref.rst:240 ../Doc/distutils/apiref.rst:247 -#: ../Doc/distutils/apiref.rst:258 ../Doc/distutils/apiref.rst:267 -#: ../Doc/distutils/apiref.rst:275 +#: distutils/apiref.rst:80 distutils/apiref.rst:100 distutils/apiref.rst:207 +#: distutils/apiref.rst:226 distutils/apiref.rst:234 distutils/apiref.rst:247 +#: distutils/apiref.rst:267 distutils/apiref.rst:275 msgid "a list of strings" msgstr "une liste de chaînes de caractères" -#: ../Doc/distutils/apiref.rst:80 +#: distutils/apiref.rst:80 msgid "*py_modules*" msgstr "*py_modules*" -#: ../Doc/distutils/apiref.rst:80 +#: distutils/apiref.rst:80 msgid "A list of Python modules that distutils will manipulate" msgstr "Une liste de modules Python que *distutils* va manipuler" -#: ../Doc/distutils/apiref.rst:83 +#: distutils/apiref.rst:83 msgid "*scripts*" msgstr "*scripts*" -#: ../Doc/distutils/apiref.rst:83 +#: distutils/apiref.rst:83 msgid "A list of standalone script files to be built and installed" msgstr "Une liste de scripts autonomes à construire et à installer" -#: ../Doc/distutils/apiref.rst:87 +#: distutils/apiref.rst:87 msgid "*ext_modules*" msgstr "*ext_modules*" -#: ../Doc/distutils/apiref.rst:87 +#: distutils/apiref.rst:87 msgid "A list of Python extensions to be built" msgstr "Une liste des extensions Python à construire" -#: ../Doc/distutils/apiref.rst:87 +#: distutils/apiref.rst:87 msgid "a list of instances of :class:`distutils.core.Extension`" msgstr "une liste d'instances de :class:`distutils.core.Extension`" -#: ../Doc/distutils/apiref.rst:90 +#: distutils/apiref.rst:90 msgid "*classifiers*" msgstr "*classifiers*" -#: ../Doc/distutils/apiref.rst:90 +#: distutils/apiref.rst:90 msgid "A list of categories for the package" msgstr "Une liste de catégories pour le paquet" -#: ../Doc/distutils/apiref.rst:90 +#: distutils/apiref.rst:90 msgid "" "a list of strings; valid classifiers are listed on `PyPI `_." @@ -243,103 +241,102 @@ msgstr "" "une liste des chaînes de caractères, les classificateurs valides sont listés " "sur `PyPI `_." -#: ../Doc/distutils/apiref.rst:93 +#: distutils/apiref.rst:93 msgid "*distclass*" msgstr "*distclass*" -#: ../Doc/distutils/apiref.rst:93 +#: distutils/apiref.rst:93 msgid "the :class:`Distribution` class to use" msgstr "la classe :class:`Distribution` à utiliser" -#: ../Doc/distutils/apiref.rst:93 +#: distutils/apiref.rst:93 msgid "a subclass of :class:`distutils.core.Distribution`" msgstr "une sous classe de :class:`distutils.core.Distribution`" -#: ../Doc/distutils/apiref.rst:96 +#: distutils/apiref.rst:96 msgid "*script_name*" msgstr "*script_name*" -#: ../Doc/distutils/apiref.rst:96 +#: distutils/apiref.rst:96 msgid "The name of the setup.py script - defaults to ``sys.argv[0]``" msgstr "Le nom du script *setup.py* . Initialisé par ``sys.argv[0]``" -#: ../Doc/distutils/apiref.rst:100 +#: distutils/apiref.rst:100 msgid "*script_args*" msgstr "*script_args*" -#: ../Doc/distutils/apiref.rst:100 +#: distutils/apiref.rst:100 msgid "Arguments to supply to the setup script" msgstr "Arguments à fournir au script d'installation" -#: ../Doc/distutils/apiref.rst:103 +#: distutils/apiref.rst:103 msgid "*options*" msgstr "*options*" -#: ../Doc/distutils/apiref.rst:103 +#: distutils/apiref.rst:103 msgid "default options for the setup script" msgstr "options par défaut pour le script d'installation" -#: ../Doc/distutils/apiref.rst:103 ../Doc/distutils/apiref.rst:113 -#: ../Doc/distutils/apiref.rst:119 +#: distutils/apiref.rst:113 distutils/apiref.rst:119 msgid "a dictionary" msgstr "un dictionnaire" -#: ../Doc/distutils/apiref.rst:106 +#: distutils/apiref.rst:106 msgid "*license*" msgstr "*license*" -#: ../Doc/distutils/apiref.rst:106 +#: distutils/apiref.rst:106 msgid "The license for the package" msgstr "La licence pour le paquet" -#: ../Doc/distutils/apiref.rst:108 +#: distutils/apiref.rst:108 msgid "*keywords*" msgstr "*keywords*" -#: ../Doc/distutils/apiref.rst:108 +#: distutils/apiref.rst:108 msgid "Descriptive meta-data, see :pep:`314`" msgstr "Méta-données descriptives, voir :pep:`314`" -#: ../Doc/distutils/apiref.rst:108 ../Doc/distutils/apiref.rst:111 +#: distutils/apiref.rst:111 msgid "a list of strings or a comma-separated string" msgstr "" "Une liste de chaînes de caractères ou une chaîne de caractère dont les " "éléments sont séparés par des virgules." -#: ../Doc/distutils/apiref.rst:111 +#: distutils/apiref.rst:111 msgid "*platforms*" msgstr "*platforms*" -#: ../Doc/distutils/apiref.rst:113 +#: distutils/apiref.rst:113 msgid "*cmdclass*" msgstr "*cmdclass*" -#: ../Doc/distutils/apiref.rst:113 +#: distutils/apiref.rst:113 msgid "A mapping of command names to :class:`Command` subclasses" msgstr "" "Un dictionnaire des noms de commandes et des sous-classes :class:`Command`" -#: ../Doc/distutils/apiref.rst:116 +#: distutils/apiref.rst:116 msgid "*data_files*" msgstr "*data_files*" -#: ../Doc/distutils/apiref.rst:116 +#: distutils/apiref.rst:116 msgid "A list of data files to install" msgstr "Une liste de fichiers de données à installer" -#: ../Doc/distutils/apiref.rst:116 +#: distutils/apiref.rst:116 msgid "a list" msgstr "une liste" -#: ../Doc/distutils/apiref.rst:119 +#: distutils/apiref.rst:119 msgid "*package_dir*" msgstr "*package_dir*" -#: ../Doc/distutils/apiref.rst:119 +#: distutils/apiref.rst:119 msgid "A mapping of package to directory names" msgstr "Un dictionnaire des paquets et des noms de dossiers" -#: ../Doc/distutils/apiref.rst:127 +#: distutils/apiref.rst:127 msgid "" "Run a setup script in a somewhat controlled environment, and return the :" "class:`distutils.dist.Distribution` instance that drives things. This is " @@ -354,7 +351,7 @@ msgstr "" "*script* à la fonction :func:`setup`), ou le contenu des fichiers de " "configuration ou de la ligne de commande." -#: ../Doc/distutils/apiref.rst:133 +#: distutils/apiref.rst:133 msgid "" "*script_name* is a file that will be read and run with :func:`exec`. ``sys." "argv[0]`` will be replaced with *script* for the duration of the call. " @@ -366,21 +363,20 @@ msgstr "" "est une liste de chaînes de caractères; si fourni, ``sys.argv[1:]`` sera " "remplacé par *script_args* pour la durée de l'appel." -#: ../Doc/distutils/apiref.rst:138 +#: distutils/apiref.rst:138 msgid "" "*stop_after* tells :func:`setup` when to stop processing; possible values:" msgstr "*stop_after* dit à :func:`setup` quand s'arrêter; valeurs possibles:" -#: ../Doc/distutils/apiref.rst:143 ../Doc/distutils/apiref.rst:562 -#: ../Doc/distutils/apiref.rst:1583 +#: distutils/apiref.rst:562 distutils/apiref.rst:1583 msgid "description" msgstr "description" -#: ../Doc/distutils/apiref.rst:145 +#: distutils/apiref.rst:145 msgid "*init*" msgstr "*init*" -#: ../Doc/distutils/apiref.rst:145 +#: distutils/apiref.rst:145 msgid "" "Stop after the :class:`Distribution` instance has been created and " "populated with the keyword arguments to :func:`setup`" @@ -388,11 +384,11 @@ msgstr "" "S'arrête une fois que l'instance :class:`Distribution` a été créée et " "renseignée avec les arguments-clés de :func:`setup`" -#: ../Doc/distutils/apiref.rst:149 +#: distutils/apiref.rst:149 msgid "*config*" msgstr "*config*" -#: ../Doc/distutils/apiref.rst:149 +#: distutils/apiref.rst:149 msgid "" "Stop after config files have been parsed (and their data stored in the :" "class:`Distribution` instance)" @@ -400,24 +396,24 @@ msgstr "" "S'arrête une fois que les fichiers de configuration ont été parcouru (et que " "leurs données ont été stockées dans l'instance :class:`Distribution`)" -#: ../Doc/distutils/apiref.rst:153 +#: distutils/apiref.rst:153 msgid "*commandline*" msgstr "*commandline*" -#: ../Doc/distutils/apiref.rst:153 +#: distutils/apiref.rst:153 msgid "" "Stop after the command-line (``sys.argv[1:]`` or *script_args*) have been " "parsed (and the data stored in the :class:`Distribution` instance.)" msgstr "" "S'arrête une fois que la ligne de commande (``sys.argv[1:]`` ou " -"*script_args*) a été parcouru (et les données stockées dans l'instance :" -"class:`Distribution`)" +"*script_args*) a été parcourue (et les données stockées dans l'instance :" +"class:`Distribution`)." -#: ../Doc/distutils/apiref.rst:158 +#: distutils/apiref.rst:158 msgid "*run*" msgstr "*run*" -#: ../Doc/distutils/apiref.rst:158 +#: distutils/apiref.rst:158 msgid "" "Stop after all commands have been run (the same as if :func:`setup` had " "been called in the usual way). This is the default value." @@ -425,7 +421,7 @@ msgstr "" "S'arrête une fois que toutes les commandes ont été exécutées (comme si :func:" "`setup` fût appelé de la manière habituelle). Ceci est la valeur par défaut." -#: ../Doc/distutils/apiref.rst:164 +#: distutils/apiref.rst:164 msgid "" "In addition, the :mod:`distutils.core` module exposed a number of classes " "that live elsewhere." @@ -433,20 +429,20 @@ msgstr "" "De plus, le module :mod:`distutils.core` a exposé un nombre de classe qui " "existent ailleurs." -#: ../Doc/distutils/apiref.rst:167 +#: distutils/apiref.rst:167 msgid ":class:`~distutils.extension.Extension` from :mod:`distutils.extension`" msgstr "" ":class:`~distutils.extension.Extension` du module :mod:`distutils.extension`" -#: ../Doc/distutils/apiref.rst:169 +#: distutils/apiref.rst:169 msgid ":class:`~distutils.cmd.Command` from :mod:`distutils.cmd`" msgstr ":class:`~distutils.cmd.Command` du module :mod:`distutils.cmd`" -#: ../Doc/distutils/apiref.rst:171 +#: distutils/apiref.rst:171 msgid ":class:`~distutils.dist.Distribution` from :mod:`distutils.dist`" msgstr ":class:`~distutils.dist.Distribution` du module :mod:`distutils.dist`" -#: ../Doc/distutils/apiref.rst:173 +#: distutils/apiref.rst:173 msgid "" "A short description of each of these follows, but see the relevant module " "for the full reference." @@ -454,7 +450,7 @@ msgstr "" "Une courte description de chacune d'elle suit, mais consultez le module " "concerné pour une référence complète." -#: ../Doc/distutils/apiref.rst:179 +#: distutils/apiref.rst:179 msgid "" "The Extension class describes a single C or C++ extension module in a setup " "script. It accepts the following keyword arguments in its constructor:" @@ -463,20 +459,20 @@ msgstr "" "script d'installation. Elle accepte dans son constructeur les arguments " "nommés suivants:" -#: ../Doc/distutils/apiref.rst:187 +#: distutils/apiref.rst:187 msgid "" "the full name of the extension, including any packages --- ie. *not* a " "filename or pathname, but Python dotted name" msgstr "" -"Le nom complet de l'extension, incluant n'importe quel paquet --- c-à-d " +"Le nom complet de l'extension, incluant n'importe quel paquet — c.-à-d. " "*pas* un nom de fichier ou de chemin mais un nom Python séparé par des " "points." -#: ../Doc/distutils/apiref.rst:193 +#: distutils/apiref.rst:193 msgid "*sources*" msgstr "*sources*" -#: ../Doc/distutils/apiref.rst:193 +#: distutils/apiref.rst:193 msgid "" "list of source filenames, relative to the distribution root (where the setup " "script lives), in Unix form (slash-separated) for portability. Source files " @@ -491,11 +487,11 @@ msgstr "" "spécifiques à la plateforme ou tout autre reconnu par la commande :command:" "`build_ext` comme source d'une extension Python." -#: ../Doc/distutils/apiref.rst:207 +#: distutils/apiref.rst:207 msgid "*include_dirs*" msgstr "*include_dirs*" -#: ../Doc/distutils/apiref.rst:207 +#: distutils/apiref.rst:207 msgid "" "list of directories to search for C/C++ header files (in Unix form for " "portability)" @@ -503,11 +499,11 @@ msgstr "" "Liste des répertoires où chercher les fichiers d'entêtes C/C++ (en format " "Unix dans un souci de portabilité)." -#: ../Doc/distutils/apiref.rst:211 +#: distutils/apiref.rst:211 msgid "*define_macros*" msgstr "*define_macros*" -#: ../Doc/distutils/apiref.rst:211 +#: distutils/apiref.rst:211 msgid "" "list of macros to define; each macro is defined using a 2-tuple ``(name, " "value)``, where *value* is either the string to define it to or ``None`` to " @@ -520,43 +516,43 @@ msgstr "" "valeur particulière (équivalent à ``#define TRUC`` dans la source ou à :" "option:`!-DTRUC` dans la ligne de commande du compilateur C Unix." -#: ../Doc/distutils/apiref.rst:211 +#: distutils/apiref.rst:211 msgid "a list of tuples" msgstr "une liste de tuples" -#: ../Doc/distutils/apiref.rst:223 +#: distutils/apiref.rst:223 msgid "*undef_macros*" msgstr "*undef_macros*" -#: ../Doc/distutils/apiref.rst:223 +#: distutils/apiref.rst:223 msgid "list of macros to undefine explicitly" msgstr "Liste de macros à ignorer explicitement." -#: ../Doc/distutils/apiref.rst:226 +#: distutils/apiref.rst:226 msgid "*library_dirs*" msgstr "*library_dirs*" -#: ../Doc/distutils/apiref.rst:226 +#: distutils/apiref.rst:226 msgid "list of directories to search for C/C++ libraries at link time" msgstr "" "Liste de répertoires à parcourir pour chercher les bibliothèques C/C++ lors " "de la phase d'édition de liens." -#: ../Doc/distutils/apiref.rst:230 +#: distutils/apiref.rst:230 msgid "*libraries*" msgstr "*libraries*" -#: ../Doc/distutils/apiref.rst:230 +#: distutils/apiref.rst:230 msgid "list of library names (not filenames or paths) to link against" msgstr "" "Liste de noms de bibliothèques à lier à la compilation. Pas de noms de " "fichiers ou de chemin." -#: ../Doc/distutils/apiref.rst:234 +#: distutils/apiref.rst:234 msgid "*runtime_library_dirs*" msgstr "*runtime_library_dirs*" -#: ../Doc/distutils/apiref.rst:234 +#: distutils/apiref.rst:234 msgid "" "list of directories to search for C/C++ libraries at run time (for shared " "extensions, this is when the extension is loaded)" @@ -565,11 +561,11 @@ msgstr "" "phase d'exécution. Pour les extensions partagées, c'est à ce moment que " "l'extension est chargée. " -#: ../Doc/distutils/apiref.rst:240 +#: distutils/apiref.rst:240 msgid "*extra_objects*" msgstr "*extra_objects*" -#: ../Doc/distutils/apiref.rst:240 +#: distutils/apiref.rst:240 msgid "" "list of extra files to link with (eg. object files not implied by 'sources', " "static library that must be explicitly specified, binary resource files, " @@ -579,11 +575,11 @@ msgstr "" "non explicités dans les 'sources', bibliothèque statique qui doit être " "explicitement spécifiée, fichiers de ressources binaires, etc. )." -#: ../Doc/distutils/apiref.rst:247 +#: distutils/apiref.rst:247 msgid "*extra_compile_args*" msgstr "*extra_compile_args*" -#: ../Doc/distutils/apiref.rst:247 +#: distutils/apiref.rst:247 msgid "" "any extra platform- and compiler-specific information to use when compiling " "the source files in 'sources'. For platforms and compilers where a command " @@ -596,11 +592,11 @@ msgstr "" "commande a du sens, il s'agit généralement d'une liste d'arguments de ligne " "de commande, mais pour d'autres plates-formes, cela peut être n'importe quoi." -#: ../Doc/distutils/apiref.rst:258 +#: distutils/apiref.rst:258 msgid "*extra_link_args*" msgstr "*extra_link_args*" -#: ../Doc/distutils/apiref.rst:258 +#: distutils/apiref.rst:258 msgid "" "any extra platform- and compiler-specific information to use when linking " "object files together to create the extension (or to create a new static " @@ -611,11 +607,11 @@ msgstr "" "l'extension (ou pour créer un nouvel interpréteur Python statique). " "Interprétation similaire à celle de *extra_compile_args*." -#: ../Doc/distutils/apiref.rst:267 +#: distutils/apiref.rst:267 msgid "*export_symbols*" msgstr "*export_symbols*" -#: ../Doc/distutils/apiref.rst:267 +#: distutils/apiref.rst:267 msgid "" "list of symbols to be exported from a shared extension. Not used on all " "platforms, and not generally necessary for Python extensions, which " @@ -624,21 +620,21 @@ msgstr "" "Liste des symboles à exporter à partir d'une extension partagée. N'est pas " "utilisé sur toutes les plates-formes et n'est généralement pas nécessaire " "pour les extensions Python, qui exportent généralement exactement un " -"symbole : ``init + nom_de_l'extension``." +"symbole : ``init + nom_de_l'extension``." -#: ../Doc/distutils/apiref.rst:275 +#: distutils/apiref.rst:275 msgid "*depends*" msgstr "*depends*" -#: ../Doc/distutils/apiref.rst:275 +#: distutils/apiref.rst:275 msgid "list of files that the extension depends on" msgstr "Liste des fichiers dont dépend l'extension." -#: ../Doc/distutils/apiref.rst:278 +#: distutils/apiref.rst:278 msgid "*language*" msgstr "*language*" -#: ../Doc/distutils/apiref.rst:278 +#: distutils/apiref.rst:278 msgid "" "extension language (i.e. ``'c'``, ``'c++'``, ``'objc'``). Will be detected " "from the source extensions if not provided." @@ -646,11 +642,11 @@ msgstr "" "Langage de l'extension (par exemple ``'c'``, ``'c++'``, ``'objc'``). Il sera " "détecté selon l'extension de la source s'il n'est pas précisé." -#: ../Doc/distutils/apiref.rst:284 +#: distutils/apiref.rst:284 msgid "*optional*" msgstr "*optional*" -#: ../Doc/distutils/apiref.rst:284 +#: distutils/apiref.rst:284 msgid "" "specifies that a build failure in the extension should not abort the build " "process, but simply skip the extension." @@ -658,17 +654,19 @@ msgstr "" "Spécifie qu'un échec de compilation dans l'extension ne doit pas interrompre " "le processus de compilation, mais simplement ignorer l'extension." -#: ../Doc/distutils/apiref.rst:284 +#: distutils/apiref.rst:284 msgid "a boolean" msgstr "un booléen" -#: ../Doc/distutils/apiref.rst:292 +#: distutils/apiref.rst:292 msgid "" "On Unix, C extensions are no longer linked to libpython except on Android " "and Cygwin." msgstr "" +"Sur Unix, les extensions C ne sont plus liées à *libpython* sauf sur Android " +"et Cygwin." -#: ../Doc/distutils/apiref.rst:298 +#: distutils/apiref.rst:298 msgid "" "A :class:`Distribution` describes how to build, install and package up a " "Python software package." @@ -676,7 +674,7 @@ msgstr "" "Une classe :class:`Distribution` décrit comment compiler, installer et " "empaqueter un paquet logiciel Python." -#: ../Doc/distutils/apiref.rst:301 +#: distutils/apiref.rst:301 msgid "" "See the :func:`setup` function for a list of keyword arguments accepted by " "the Distribution constructor. :func:`setup` creates a Distribution instance." @@ -685,7 +683,7 @@ msgstr "" "acceptés par le constructeur *Distribution*. :func:`setup` crée une instance " "de Distribution." -#: ../Doc/distutils/apiref.rst:304 +#: distutils/apiref.rst:304 msgid "" ":class:`~distutils.core.Distribution` now warns if ``classifiers``, " "``keywords`` and ``platforms`` fields are not specified as a list or a " @@ -695,7 +693,7 @@ msgstr "" "``classifiers``, ``keywords`` et ``platforms`` ne sont pas spécifiés comme " "une liste ou une chaîne de caractères." -#: ../Doc/distutils/apiref.rst:311 +#: distutils/apiref.rst:311 msgid "" "A :class:`Command` class (or rather, an instance of one of its subclasses) " "implement a single distutils command." @@ -703,11 +701,11 @@ msgstr "" "Une classe :class:`Command` (ou plutôt une instance d'une de ses sous-" "classes) implémente une commande *distutils* unique." -#: ../Doc/distutils/apiref.rst:316 +#: distutils/apiref.rst:316 msgid ":mod:`distutils.ccompiler` --- CCompiler base class" msgstr ":mod:`distutils.ccompiler` — Classe de base CCompiler" -#: ../Doc/distutils/apiref.rst:322 +#: distutils/apiref.rst:322 msgid "" "This module provides the abstract base class for the :class:`CCompiler` " "classes. A :class:`CCompiler` instance can be used for all the compile and " @@ -719,14 +717,14 @@ msgstr "" "`CCompiler`. Une instance de :class:`CCompiler` peut être utilisée pour " "toutes les étapes de compilation et de liaison nécessaires à la compilation " "d'un projet unique. Des méthodes sont fournies pour définir des options pour " -"le compilateur --- définitions de macros, inclusion des répertoires, des " +"le compilateur — définitions de macros, inclusion des répertoires, des " "chemins de liens, des bibliothèques, etc." -#: ../Doc/distutils/apiref.rst:328 +#: distutils/apiref.rst:328 msgid "This module provides the following functions." msgstr "Ce module fournit les fonctions suivantes." -#: ../Doc/distutils/apiref.rst:333 +#: distutils/apiref.rst:333 msgid "" "Generate linker options for searching library directories and linking with " "specific libraries. *libraries* and *library_dirs* are, respectively, lists " @@ -742,7 +740,7 @@ msgstr "" "avec certains compilateurs (en fonction des deux chaînes de format " "transmises)." -#: ../Doc/distutils/apiref.rst:342 +#: distutils/apiref.rst:342 msgid "" "Generate C pre-processor options (:option:`!-D`, :option:`!-U`, :option:`!-" "I`) as used by at least two types of compilers: the typical Unix compiler " @@ -754,7 +752,7 @@ msgid "" "suitable for either Unix compilers or Visual C++." msgstr "" "Génère les options du préprocesseur C (:option:`!-D`, :option:`!-U`, :option:" -"`!-I`) utilisées par au moins deux types de compilateurs : les compilateurs " +"`!-I`) utilisées par au moins deux types de compilateurs : les compilateurs " "type Unix et Visual C++. *macros* est une liste de couples où ``(name,)`` " "est traité comme *non définie* (:option:`!-U`); ``(name, value)`` est traité " "comme *définie* (:option:`!-D`). *include_dirs* est la liste de noms de " @@ -762,12 +760,12 @@ msgstr "" "`!-I`). Renvoie une liste d'options de ligne de commande pour les " "compilateurs Unix ou Visual C+++." -#: ../Doc/distutils/apiref.rst:354 +#: distutils/apiref.rst:354 msgid "Determine the default compiler to use for the given platform." msgstr "" "Détermine le compilateur par défaut a utiliser par une plateforme donnée." -#: ../Doc/distutils/apiref.rst:356 +#: distutils/apiref.rst:356 msgid "" "*osname* should be one of the standard Python OS names (i.e. the ones " "returned by ``os.name``) and *platform* the common value returned by ``sys." @@ -777,7 +775,7 @@ msgstr "" "noms renvoyés par ``os.name``) et *platform* la valeur commune renvoyés par " "``sys.platform`` pour la plate-forme en question." -#: ../Doc/distutils/apiref.rst:360 +#: distutils/apiref.rst:360 msgid "" "The default values are ``os.name`` and ``sys.platform`` in case the " "parameters are not given." @@ -785,7 +783,7 @@ msgstr "" "Les valeurs par défaut sont ``os.name`` et ``sys.platform`` si les " "paramètres ne sont pas fournis." -#: ../Doc/distutils/apiref.rst:366 +#: distutils/apiref.rst:366 msgid "" "Factory function to generate an instance of some CCompiler subclass for the " "supplied platform/compiler combination. *plat* defaults to ``os.name`` (eg. " @@ -808,7 +806,7 @@ msgstr "" "Microsoft sous Unix. Si vous fournissez une valeur pour *compiler*, *plat* " "est ignoré." -#: ../Doc/distutils/apiref.rst:382 +#: distutils/apiref.rst:382 msgid "" "Print list of available compilers (used by the :option:`!--help-compiler` " "options to :command:`build`, :command:`build_ext`, :command:`build_clib`)." @@ -817,7 +815,7 @@ msgstr "" "`!--help-compiler` pour les commandes :command:`build`, :command:" "`build_ext`, :command:`build_clib`)." -#: ../Doc/distutils/apiref.rst:388 +#: distutils/apiref.rst:388 msgid "" "The abstract base class :class:`CCompiler` defines the interface that must " "be implemented by real compiler classes. The class also has some utility " @@ -828,7 +826,7 @@ msgstr "" "possède également quelques méthodes utilitaires utilisées par plusieurs " "classes de compilateurs." -#: ../Doc/distutils/apiref.rst:392 +#: distutils/apiref.rst:392 msgid "" "The basic idea behind a compiler abstraction class is that each instance can " "be used for all the compile/link steps in building a single project. Thus, " @@ -847,7 +845,7 @@ msgstr "" "dont chaque fichier est traité, la plupart de ces attributs peuvent être " "modifiés en fonction de chaque compilation ou de chaque lien." -#: ../Doc/distutils/apiref.rst:400 +#: distutils/apiref.rst:400 msgid "" "The constructor for each subclass creates an instance of the Compiler " "object. Flags are *verbose* (show verbose output), *dry_run* (don't actually " @@ -866,7 +864,7 @@ msgstr "" "ou une de ses sous-classes. Utilisez plutôt la fonction génératrice :func:" "`distutils.CCompiler.new_compiler`." -#: ../Doc/distutils/apiref.rst:407 +#: distutils/apiref.rst:407 msgid "" "The following methods allow you to manually alter compiler options for the " "instance of the Compiler class." @@ -874,7 +872,7 @@ msgstr "" "Les méthodes suivantes vous permettent de modifier manuellement les options " "du compilateur de l'instance de la classe *Compiler*." -#: ../Doc/distutils/apiref.rst:413 +#: distutils/apiref.rst:413 msgid "" "Add *dir* to the list of directories that will be searched for header files. " "The compiler is instructed to search directories in the order in which they " @@ -885,7 +883,7 @@ msgstr "" "dans l'ordre dans lequel ils sont fournis par des appels successifs à :meth:" "`add_include_dir`." -#: ../Doc/distutils/apiref.rst:420 +#: distutils/apiref.rst:420 msgid "" "Set the list of directories that will be searched to *dirs* (a list of " "strings). Overrides any preceding calls to :meth:`add_include_dir`; " @@ -900,7 +898,7 @@ msgstr "" "pas la liste des répertoires d'inclusion standard que le compilateur peut " "rechercher par défaut." -#: ../Doc/distutils/apiref.rst:429 +#: distutils/apiref.rst:429 msgid "" "Add *libname* to the list of libraries that will be included in all links " "driven by this compiler object. Note that *libname* should \\*not\\* be the " @@ -911,10 +909,10 @@ msgstr "" "Ajoute *libname* à la liste des bibliothèques qui seront incluses dans tous " "les liens gérés par l'objet compilateur. Notez que *libname* ne *doit pas " "être* le nom d'un fichier contenant une bibliothèque, mais le nom de la " -"bibliothèque elle-même : le nom du fichier sera déduit par l'éditeur de " +"bibliothèque elle-même : le nom du fichier sera déduit par l'éditeur de " "liens, le compilateur ou la classe de compilation (selon la plate-forme)." -#: ../Doc/distutils/apiref.rst:435 +#: distutils/apiref.rst:435 msgid "" "The linker will be instructed to link against libraries in the order they " "were supplied to :meth:`add_library` and/or :meth:`set_libraries`. It is " @@ -927,7 +925,7 @@ msgstr "" "bibliothèques ; l'éditeur de liens est chargé de créer des liens avec les " "bibliothèques autant de fois que les noms sont mentionnées." -#: ../Doc/distutils/apiref.rst:443 +#: distutils/apiref.rst:443 msgid "" "Set the list of libraries to be included in all links driven by this " "compiler object to *libnames* (a list of strings). This does not affect any " @@ -938,7 +936,7 @@ msgstr "" "caractères). Ceci n'affecte pas les bibliothèques système standard que " "l'éditeur de liens peut inclure par défaut." -#: ../Doc/distutils/apiref.rst:450 +#: distutils/apiref.rst:450 msgid "" "Add *dir* to the list of directories that will be searched for libraries " "specified to :meth:`add_library` and :meth:`set_libraries`. The linker will " @@ -951,7 +949,7 @@ msgstr "" "dans lequel elles sont fournies à :meth:`add_library_dir` et/ou :meth:" "`set_library_dirs`." -#: ../Doc/distutils/apiref.rst:458 +#: distutils/apiref.rst:458 msgid "" "Set the list of library search directories to *dirs* (a list of strings). " "This does not affect any standard library search path that the linker may " @@ -962,7 +960,7 @@ msgstr "" "chemin de recherche standard de la bibliothèque que l'éditeur de liens peut " "rechercher par défaut." -#: ../Doc/distutils/apiref.rst:465 +#: distutils/apiref.rst:465 msgid "" "Add *dir* to the list of directories that will be searched for shared " "libraries at runtime." @@ -970,7 +968,7 @@ msgstr "" "Ajoute *dir* à la liste des répertoires qui seront recherchés par les " "bibliothèques partagées au moment de l'exécution." -#: ../Doc/distutils/apiref.rst:471 +#: distutils/apiref.rst:471 msgid "" "Set the list of directories to search for shared libraries at runtime to " "*dirs* (a list of strings). This does not affect any standard search path " @@ -981,7 +979,7 @@ msgstr "" "caractères). Ceci n'affecte aucun chemin de recherche standard que " "l'éditeur de liens d'exécution peut rechercher par défaut." -#: ../Doc/distutils/apiref.rst:478 +#: distutils/apiref.rst:478 msgid "" "Define a preprocessor macro for all compilations driven by this compiler " "object. The optional parameter *value* should be a string; if it is not " @@ -993,7 +991,7 @@ msgstr "" "de caractères ; s'il n'est pas fourni, alors la macro sera définie sans " "valeur explicite et le résultat exact dépendra du compilateur utilisé." -#: ../Doc/distutils/apiref.rst:488 +#: distutils/apiref.rst:488 msgid "" "Undefine a preprocessor macro for all compilations driven by this compiler " "object. If the same macro is defined by :meth:`define_macro` and undefined " @@ -1009,7 +1007,7 @@ msgstr "" "multiples). Si la macro est redéfinie/désactivée par compilation (c'est-à-" "dire dans l'appel à :meth:`compile`), alors cet appel prévaut." -#: ../Doc/distutils/apiref.rst:498 +#: distutils/apiref.rst:498 msgid "" "Add *object* to the list of object files (or analogues, such as explicitly " "named library files or the output of \"resource compilers\") to be included " @@ -1020,7 +1018,7 @@ msgstr "" "\"compilateurs de ressources\") à inclure dans chaque lien qui est géré par " "ce compilateur d'objets." -#: ../Doc/distutils/apiref.rst:505 +#: distutils/apiref.rst:505 msgid "" "Set the list of object files (or analogues) to be included in every link to " "*objects*. This does not affect any standard object files that the linker " @@ -1031,7 +1029,7 @@ msgstr "" "standard que l'éditeur de liens peut inclure par défaut (comme les " "bibliothèques système)." -#: ../Doc/distutils/apiref.rst:509 +#: distutils/apiref.rst:509 msgid "" "The following methods implement methods for autodetection of compiler " "options, providing some functionality similar to GNU :program:`autoconf`." @@ -1040,7 +1038,7 @@ msgstr "" "du compilateur. Elles offrent des fonctionnalités similaires à celles du " "programme GNU :program:`autoconf`." -#: ../Doc/distutils/apiref.rst:515 +#: distutils/apiref.rst:515 msgid "" "Detect the language of a given file, or list of files. Uses the instance " "attributes :attr:`language_map` (a dictionary), and :attr:`language_order` " @@ -1050,7 +1048,7 @@ msgstr "" "les attributs d'instance :attr:`language_map` (un dictionnaire) et :attr:" "`language_order` (une liste) pour faire le travail." -#: ../Doc/distutils/apiref.rst:522 +#: distutils/apiref.rst:522 msgid "" "Search the specified list of directories for a static or shared library file " "*lib* and return the full path to that file. If *debug* is true, look for a " @@ -1063,7 +1061,7 @@ msgstr "" "la plate-forme actuelle). Renvoie ``None`` si *lib* n'a pas été trouvé dans " "l'un des répertoires spécifiés." -#: ../Doc/distutils/apiref.rst:530 +#: distutils/apiref.rst:530 msgid "" "Return a boolean indicating whether *funcname* is supported on the current " "platform. The optional arguments can be used to augment the compilation " @@ -1076,7 +1074,7 @@ msgstr "" "répertoires de fichiers, des bibliothèques, des répertoires de bibliothèques " "supplémentaires" -#: ../Doc/distutils/apiref.rst:538 +#: distutils/apiref.rst:538 msgid "" "Return the compiler option to add *dir* to the list of directories searched " "for libraries." @@ -1084,7 +1082,7 @@ msgstr "" "Renvoie l'option de compilation pour ajouter *dir* à la liste des " "répertoires recherchés pour les bibliothèques." -#: ../Doc/distutils/apiref.rst:544 +#: distutils/apiref.rst:544 msgid "" "Return the compiler option to add *lib* to the list of libraries linked into " "the shared library or executable." @@ -1092,7 +1090,7 @@ msgstr "" "Renvoie l'option de compilation pour ajouter *lib* à la liste des " "bibliothèques liées à la bibliothèque partagée ou à l'exécutable." -#: ../Doc/distutils/apiref.rst:550 +#: distutils/apiref.rst:550 msgid "" "Return the compiler option to add *dir* to the list of directories searched " "for runtime libraries." @@ -1100,7 +1098,7 @@ msgstr "" "Renvoie l'option de compilation pour ajouter *dir* à la liste des " "répertoires recherchés par les bibliothèques d'exécution." -#: ../Doc/distutils/apiref.rst:556 +#: distutils/apiref.rst:556 msgid "" "Define the executables (and options for them) that will be run to perform " "the various stages of compilation. The exact set of executables that may be " @@ -1113,45 +1111,45 @@ msgstr "" "compilateur (via l'attribut de classe *executables*), mais la plupart " "utilisent :" -#: ../Doc/distutils/apiref.rst:562 +#: distutils/apiref.rst:562 msgid "attribute" msgstr "attribut" -#: ../Doc/distutils/apiref.rst:564 +#: distutils/apiref.rst:564 msgid "*compiler*" msgstr "*compiler*" -#: ../Doc/distutils/apiref.rst:564 +#: distutils/apiref.rst:564 msgid "the C/C++ compiler" msgstr "Le compilateur C/C++." -#: ../Doc/distutils/apiref.rst:566 +#: distutils/apiref.rst:566 msgid "*linker_so*" msgstr "*linker_so*" -#: ../Doc/distutils/apiref.rst:566 +#: distutils/apiref.rst:566 msgid "linker used to create shared objects and libraries" msgstr "" "L'éditeur de liens utilisé pour la création d'objets ou de bibliothèques " "partagées." -#: ../Doc/distutils/apiref.rst:569 +#: distutils/apiref.rst:569 msgid "*linker_exe*" msgstr "*linker_exe*" -#: ../Doc/distutils/apiref.rst:569 +#: distutils/apiref.rst:569 msgid "linker used to create binary executables" msgstr "L'éditeur de lien utilisé pour créer des exécutables binaires." -#: ../Doc/distutils/apiref.rst:571 +#: distutils/apiref.rst:571 msgid "*archiver*" msgstr "*archiver*" -#: ../Doc/distutils/apiref.rst:571 +#: distutils/apiref.rst:571 msgid "static library creator" msgstr "Créateur de bibliothèque statique." -#: ../Doc/distutils/apiref.rst:574 +#: distutils/apiref.rst:574 msgid "" "On platforms with a command-line (Unix, DOS/Windows), each of these is a " "string that will be split into executable name and (optional) list of " @@ -1167,13 +1165,13 @@ msgstr "" "guillemets et les antislashs permettent de les ignorer. Voir :func:" "`distutils.util.split_quoted`." -#: ../Doc/distutils/apiref.rst:580 +#: distutils/apiref.rst:580 msgid "The following methods invoke stages in the build process." msgstr "" "Les méthodes suivantes permettent d'exécuter des étapes lors de processus de " "construction." -#: ../Doc/distutils/apiref.rst:585 +#: distutils/apiref.rst:585 msgid "" "Compile one or more source files. Generates object files (e.g. transforms " "a :file:`.c` file to a :file:`.o` file.)" @@ -1181,7 +1179,7 @@ msgstr "" "Compile un ou plusieurs fichiers source. Génère des fichiers objets (par " "exemple, transforme un fichier :file:`.c` en fichier :file:`.o`)." -#: ../Doc/distutils/apiref.rst:588 +#: distutils/apiref.rst:588 msgid "" "*sources* must be a list of filenames, most likely C/C++ files, but in " "reality anything that can be handled by a particular compiler and compiler " @@ -1198,7 +1196,7 @@ msgstr "" "les cas, tous les fichiers source ne seront pas forcément compilés, mais " "tous les noms de fichiers objet correspondants seront renvoyés." -#: ../Doc/distutils/apiref.rst:595 +#: distutils/apiref.rst:595 msgid "" "If *output_dir* is given, object files will be put under it, while retaining " "their original path component. That is, :file:`foo/bar.c` normally compiles " @@ -1211,7 +1209,7 @@ msgstr "" "implémentation Unix) ; si *output_dir* a la valeur *build*, alors il " "compilera en :file:`build/truc/machin.o`." -#: ../Doc/distutils/apiref.rst:600 +#: distutils/apiref.rst:600 msgid "" "*macros*, if given, must be a list of macro definitions. A macro definition " "is either a ``(name, value)`` 2-tuple or a ``(name,)`` 1-tuple. The former " @@ -1226,7 +1224,7 @@ msgstr "" "singleton désactive la macro. Les définitions, redéfinitions ou " "désactivations ultérieures priment." -#: ../Doc/distutils/apiref.rst:606 +#: distutils/apiref.rst:606 msgid "" "*include_dirs*, if given, must be a list of strings, the directories to add " "to the default include file search path for this compilation only." @@ -1235,7 +1233,7 @@ msgstr "" "répertoires à ajouter au chemin de recherche par défaut pour cette " "compilation uniquement." -#: ../Doc/distutils/apiref.rst:609 +#: distutils/apiref.rst:609 msgid "" "*debug* is a boolean; if true, the compiler will be instructed to output " "debug symbols in (or alongside) the object file(s)." @@ -1244,7 +1242,7 @@ msgstr "" "d'afficher les symboles de débogage dans (ou à côté) du ou des fichiers " "objets." -#: ../Doc/distutils/apiref.rst:612 +#: distutils/apiref.rst:612 msgid "" "*extra_preargs* and *extra_postargs* are implementation-dependent. On " "platforms that have the notion of a command-line (e.g. Unix, DOS/Windows), " @@ -1262,7 +1260,7 @@ msgstr "" "la documentation de la classe d'implémentation. Ces paramètres sont exposés " "pour permettre de sortir du cadre de la classe abstraite en cas de nécessité." -#: ../Doc/distutils/apiref.rst:619 +#: distutils/apiref.rst:619 msgid "" "*depends*, if given, is a list of filenames that all targets depend on. If " "a source file is older than any file in depends, then the source file will " @@ -1274,11 +1272,11 @@ msgstr "" "alors le fichier source sera recompilé. Cela permet un suivi des " "dépendances à un niveau macro. " -#: ../Doc/distutils/apiref.rst:624 +#: distutils/apiref.rst:624 msgid "Raises :exc:`CompileError` on failure." msgstr "Lève :exc:`CompileError` en cas d'échec." -#: ../Doc/distutils/apiref.rst:629 +#: distutils/apiref.rst:629 msgid "" "Link a bunch of stuff together to create a static library file. The \"bunch " "of stuff\" consists of the list of object files supplied as *objects*, the " @@ -1293,7 +1291,7 @@ msgstr "" "à :meth:`add_library` et/ou :meth:`set_libraries` et les bibliothèques " "fournies à *libraries* (le cas échéant)." -#: ../Doc/distutils/apiref.rst:635 +#: distutils/apiref.rst:635 msgid "" "*output_libname* should be a library name, not a filename; the filename will " "be inferred from the library name. *output_dir* is the directory where the " @@ -1303,7 +1301,7 @@ msgstr "" "le nom de fichier sera déduit du nom de bibliothèque. *output_dir* est le " "répertoire dans lequel le fichier bibliothèque sera placé." -#: ../Doc/distutils/apiref.rst:641 +#: distutils/apiref.rst:641 msgid "" "*debug* is a boolean; if true, debugging information will be included in the " "library (note that on most platforms, it is the compile step where this " @@ -1312,9 +1310,9 @@ msgstr "" "*debug* est un booléen ; si sa valeur est *vraie*, les informations de " "débogage seront incluses dans la bibliothèque (notez que sur la plupart des " "plateformes, c'est à l'étape de compilation que ce paramètre est pris en " -"compte : le paramètre *debug* est inclus ici pour assurer une cohérence)." +"compte : le paramètre *debug* est inclus ici pour assurer une cohérence)." -#: ../Doc/distutils/apiref.rst:645 ../Doc/distutils/apiref.rst:687 +#: distutils/apiref.rst:687 msgid "" "*target_lang* is the target language for which the given objects are being " "compiled. This allows specific linkage time treatment of certain languages." @@ -1323,11 +1321,11 @@ msgstr "" "compilés. Cela permet un traitement spécifique du temps de liaison dans " "certains langages." -#: ../Doc/distutils/apiref.rst:648 +#: distutils/apiref.rst:648 msgid "Raises :exc:`LibError` on failure." msgstr "Lève :exc:`LibError` en cas d'échec." -#: ../Doc/distutils/apiref.rst:653 +#: distutils/apiref.rst:653 msgid "" "Link a bunch of stuff together to create an executable or shared library " "file." @@ -1335,7 +1333,7 @@ msgstr "" "Relie un ensemble d'éléments pour créer un fichier exécutable ou une " "bibliothèque partagée." -#: ../Doc/distutils/apiref.rst:655 +#: distutils/apiref.rst:655 msgid "" "The \"bunch of stuff\" consists of the list of object files supplied as " "*objects*. *output_filename* should be a filename. If *output_dir* is " @@ -1347,7 +1345,7 @@ msgstr "" "*output_dir* est fourni, *output_filename* lui est relatif (c'est-à-dire que " "*output_filename* peut être un chemin vers un fichier )." -#: ../Doc/distutils/apiref.rst:660 +#: distutils/apiref.rst:660 msgid "" "*libraries* is a list of libraries to link against. These are library " "names, not filenames, since they're translated into filenames in a platform-" @@ -1364,15 +1362,15 @@ msgstr "" "inclure un chemin, ce qui signifie que l'éditeur de liens cherchera dans ce " "chemin spécifique plutôt que de rechercher tous les emplacements standard." -#: ../Doc/distutils/apiref.rst:667 +#: distutils/apiref.rst:667 msgid "" "*library_dirs*, if supplied, should be a list of directories to search for " "libraries that were specified as bare library names (ie. no directory " "component). These are on top of the system default and those supplied to :" "meth:`add_library_dir` and/or :meth:`set_library_dirs`. " "*runtime_library_dirs* is a list of directories that will be embedded into " -"the shared library and used to search for other shared libraries that \\*it" -"\\* depends on at run-time. (This may only be relevant on Unix.)" +"the shared library and used to search for other shared libraries that " +"\\*it\\* depends on at run-time. (This may only be relevant on Unix.)" msgstr "" "*library_dirs*, s'il est fourni, doit être une liste de répertoires à " "rechercher pour les bibliothèques qui ont été spécifiées comme des " @@ -1384,7 +1382,7 @@ msgstr "" "elle dépend à l'exécution. (Ceci est probablement valable uniquement sous " "UNIX.)" -#: ../Doc/distutils/apiref.rst:675 +#: distutils/apiref.rst:675 msgid "" "*export_symbols* is a list of symbols that the shared library will export. " "(This appears to be relevant only on Windows.)" @@ -1392,7 +1390,7 @@ msgstr "" "*export_symbols* est une liste de symboles que la bibliothèque partagée va " "exporter. (Ceci est probablement valable uniquement sous Window.)" -#: ../Doc/distutils/apiref.rst:678 +#: distutils/apiref.rst:678 msgid "" "*debug* is as for :meth:`compile` and :meth:`create_static_lib`, with the " "slight distinction that it actually matters on most platforms (as opposed " @@ -1404,7 +1402,7 @@ msgstr "" "(par opposition à :meth:`create_static_lib` qui inclut une option *debug* " "pour se conformer à l'interface)." -#: ../Doc/distutils/apiref.rst:683 +#: distutils/apiref.rst:683 msgid "" "*extra_preargs* and *extra_postargs* are as for :meth:`compile` (except of " "course that they supply command-line arguments for the particular linker " @@ -1414,11 +1412,11 @@ msgstr "" "(sauf bien sûr qu'ils fournissent des arguments à la ligne de commande pour " "l'éditeur de liens spécifique utilisé)." -#: ../Doc/distutils/apiref.rst:690 +#: distutils/apiref.rst:690 msgid "Raises :exc:`LinkError` on failure." msgstr "Lève :exc:`LinkError` en cas d'échec." -#: ../Doc/distutils/apiref.rst:695 +#: distutils/apiref.rst:695 msgid "" "Link an executable. *output_progname* is the name of the file executable, " "while *objects* are a list of object filenames to link in. Other arguments " @@ -1428,7 +1426,7 @@ msgstr "" "tandis que *objects* est une liste de noms de fichiers objets à lier. Les " "autres arguments sont les mêmes que pour la méthode :meth:`link`." -#: ../Doc/distutils/apiref.rst:702 +#: distutils/apiref.rst:702 msgid "" "Link a shared library. *output_libname* is the name of the output library, " "while *objects* is a list of object filenames to link in. Other arguments " @@ -1439,7 +1437,7 @@ msgstr "" "fichiers d'objets à lier. Les autres arguments sont les mêmes que pour la " "méthode :meth:`link`." -#: ../Doc/distutils/apiref.rst:709 +#: distutils/apiref.rst:709 msgid "" "Link a shared object. *output_filename* is the name of the shared object " "that will be created, while *objects* is a list of object filenames to link " @@ -1449,7 +1447,7 @@ msgstr "" "sera créé, tandis que *objects* est une liste de noms de fichiers d'objets à " "lier. Les autres arguments sont les mêmes que pour la méthode :meth:`link`." -#: ../Doc/distutils/apiref.rst:716 +#: distutils/apiref.rst:716 msgid "" "Preprocess a single C/C++ source file, named in *source*. Output will be " "written to file named *output_file*, or *stdout* if *output_file* not " @@ -1466,11 +1464,11 @@ msgstr "" "*include_dirs* est une liste de noms de répertoires qui seront ajoutés à la " "liste par défaut, de la même manière que :meth:`add_include_dir`." -#: ../Doc/distutils/apiref.rst:723 +#: distutils/apiref.rst:723 msgid "Raises :exc:`PreprocessError` on failure." msgstr "Lève :exc:`PreprocessError` en cas d'échec." -#: ../Doc/distutils/apiref.rst:725 +#: distutils/apiref.rst:725 msgid "" "The following utility methods are defined by the :class:`CCompiler` class, " "for use by the various concrete subclasses." @@ -1478,7 +1476,7 @@ msgstr "" "Les méthodes utilitaires suivantes sont définies par la classe :class:" "`CCompiler`, à l'usage des différentes sous-classes concrètes." -#: ../Doc/distutils/apiref.rst:731 +#: distutils/apiref.rst:731 msgid "" "Returns the filename of the executable for the given *basename*. Typically " "for non-Windows platforms this is the same as the basename, while Windows " @@ -1488,7 +1486,7 @@ msgstr "" "Généralement, pour les plates-formes non Windows, c'est le même nom que le " "nom de base, tandis que sur Windows l'extension :file:`.exe` sera ajouté." -#: ../Doc/distutils/apiref.rst:738 +#: distutils/apiref.rst:738 msgid "" "Returns the filename for the given library name on the current platform. On " "Unix a library with *lib_type* of ``'static'`` will typically be of the " @@ -1500,7 +1498,7 @@ msgstr "" "``static`` sera généralement de la forme :file:`liblibname.a`, tandis qu'un " "*lib_type* de type ``dynamic`` sera de la forme :file:`liblibname.so`." -#: ../Doc/distutils/apiref.rst:746 +#: distutils/apiref.rst:746 msgid "" "Returns the name of the object files for the given source files. " "*source_filenames* should be a list of filenames." @@ -1508,13 +1506,13 @@ msgstr "" "Renvoie le nom des fichiers objets pour les fichiers sources donnés. " "*source_filenames* doit être une liste de noms de fichiers." -#: ../Doc/distutils/apiref.rst:752 +#: distutils/apiref.rst:752 msgid "" "Returns the name of a shared object file for the given file name *basename*." msgstr "" "Renvoie le nom d'un fichier objet partagé pour le nom de fichier *basename*." -#: ../Doc/distutils/apiref.rst:757 +#: distutils/apiref.rst:757 msgid "" "Invokes :func:`distutils.util.execute`. This method invokes a Python " "function *func* with the given arguments *args*, after logging and taking " @@ -1524,7 +1522,7 @@ msgstr "" "Python *func* avec les arguments *args* , après journalisation et prise en " "compte de l'option *dry_run*." -#: ../Doc/distutils/apiref.rst:764 +#: distutils/apiref.rst:764 msgid "" "Invokes :func:`distutils.util.spawn`. This invokes an external process to " "run the given command." @@ -1532,7 +1530,7 @@ msgstr "" "Invoque :func:`distutils.util.spawn`. Invoque un processus externe pour " "exécuter la commande donnée." -#: ../Doc/distutils/apiref.rst:770 +#: distutils/apiref.rst:770 msgid "" "Invokes :func:`distutils.dir_util.mkpath`. This creates a directory and any " "missing ancestor directories." @@ -1540,20 +1538,20 @@ msgstr "" "Invoque :func:`distutils.dir_util.mkpath`. Crée un répertoire et tous les " "répertoires parents manquants." -#: ../Doc/distutils/apiref.rst:776 +#: distutils/apiref.rst:776 msgid "Invokes :meth:`distutils.file_util.move_file`. Renames *src* to *dst*." msgstr "Invoque :meth:`distutils.file_util.move_file`. Renomme *src* en *dst*." -#: ../Doc/distutils/apiref.rst:781 +#: distutils/apiref.rst:781 msgid "Write a message using :func:`distutils.log.debug`." msgstr "Écrit un message en utilisant :func:`distutils.log.debug`." -#: ../Doc/distutils/apiref.rst:786 +#: distutils/apiref.rst:786 msgid "Write a warning message *msg* to standard error." msgstr "" "Écris un message d'avertissement *msg* dans la sortie d'erreur standard." -#: ../Doc/distutils/apiref.rst:791 +#: distutils/apiref.rst:791 msgid "" "If the *debug* flag is set on this :class:`CCompiler` instance, print *msg* " "to standard output, otherwise do nothing." @@ -1561,11 +1559,11 @@ msgstr "" "Si l'option *debug* est activée pour cette instance de :class:`CCompiler`, " "affiche *msg* sur la sortie standard, sinon rien ne s'affiche." -#: ../Doc/distutils/apiref.rst:803 +#: distutils/apiref.rst:803 msgid ":mod:`distutils.unixccompiler` --- Unix C Compiler" msgstr ":mod:`distutils.unixccompiler` — Compilateur C Unix" -#: ../Doc/distutils/apiref.rst:809 +#: distutils/apiref.rst:809 msgid "" "This module provides the :class:`UnixCCompiler` class, a subclass of :class:" "`CCompiler` that handles the typical Unix-style command-line C compiler:" @@ -1574,30 +1572,30 @@ msgstr "" "classe :class:`CCompiler` qui gère les compilateurs C ayant une interface en " "ligne de commande conforme au standard Unix :" -#: ../Doc/distutils/apiref.rst:812 +#: distutils/apiref.rst:812 msgid "macros defined with :option:`!-Dname[=value]`" msgstr "macros définies avec l'option :option:`!-Dname[=value]`." -#: ../Doc/distutils/apiref.rst:814 +#: distutils/apiref.rst:814 msgid "macros undefined with :option:`!-Uname`" msgstr "macros désaffectées avec :option:`!-Uname`." -#: ../Doc/distutils/apiref.rst:816 +#: distutils/apiref.rst:816 msgid "include search directories specified with :option:`!-Idir`" msgstr "" "inclut les répertoires de recherche spécifiés avec l'option :option:`!-Idir`." -#: ../Doc/distutils/apiref.rst:818 +#: distutils/apiref.rst:818 msgid "libraries specified with :option:`!-llib`" msgstr "bibliothèques spécifiées avec l'option :option:`!-llib`" -#: ../Doc/distutils/apiref.rst:820 +#: distutils/apiref.rst:820 msgid "library search directories specified with :option:`!-Ldir`" msgstr "" "répertoires de recherche des bibliothèques définis avec l'option :option:`!-" "Ldir`." -#: ../Doc/distutils/apiref.rst:822 +#: distutils/apiref.rst:822 msgid "" "compile handled by :program:`cc` (or similar) executable with :option:`!-c` " "option: compiles :file:`.c` to :file:`.o`" @@ -1605,7 +1603,7 @@ msgstr "" "compilation gérée par :program:`cc` (ou similaire) exécutable avec l'option :" "option:`!-c` compile :file:`.c` vers :file:`.o`." -#: ../Doc/distutils/apiref.rst:825 +#: distutils/apiref.rst:825 msgid "" "link static library handled by :program:`ar` command (possibly with :program:" "`ranlib`)" @@ -1614,17 +1612,17 @@ msgstr "" "ligne de commande :program:`ar` (éventuellement avec le programme :program:" "`ranlib`)." -#: ../Doc/distutils/apiref.rst:828 +#: distutils/apiref.rst:828 msgid "link shared library handled by :program:`cc` :option:`!-shared`" msgstr "" "édition de liens pour une bibliothèque gérée par :program:`cc` :option:`!-" "shared`." -#: ../Doc/distutils/apiref.rst:832 +#: distutils/apiref.rst:832 msgid ":mod:`distutils.msvccompiler` --- Microsoft Compiler" msgstr ":mod:`distutils.msvccompiler` — Compilateur Microsoft" -#: ../Doc/distutils/apiref.rst:839 +#: distutils/apiref.rst:839 msgid "" "This module provides :class:`MSVCCompiler`, an implementation of the " "abstract :class:`CCompiler` class for Microsoft Visual Studio. Typically, " @@ -1639,7 +1637,7 @@ msgstr "" "le compilateur était Visual Studio 6. Pour Python 2.4 et 2.5, le compilateur " "est Visual Studio .NET 2003." -#: ../Doc/distutils/apiref.rst:845 +#: distutils/apiref.rst:845 msgid "" ":class:`MSVCCompiler` will normally choose the right compiler, linker etc. " "on its own. To override this choice, the environment variables " @@ -1659,11 +1657,11 @@ msgstr "" "choisi explicitement de remplacer le compilateur utilisé par :class:" "`MSVCCompiler`." -#: ../Doc/distutils/apiref.rst:855 +#: distutils/apiref.rst:855 msgid ":mod:`distutils.bcppcompiler` --- Borland Compiler" msgstr ":mod:`distutils.bcppcompiler` — Compilateur Borland" -#: ../Doc/distutils/apiref.rst:860 +#: distutils/apiref.rst:860 msgid "" "This module provides :class:`BorlandCCompiler`, a subclass of the abstract :" "class:`CCompiler` class for the Borland C++ compiler." @@ -1671,11 +1669,11 @@ msgstr "" "Ce module fournit :class:`BorlandCCompiler`, une sous-classe de la classe " "abstraite :class:`CCompiler` classe pour le compilateur Borland C++." -#: ../Doc/distutils/apiref.rst:865 +#: distutils/apiref.rst:865 msgid ":mod:`distutils.cygwincompiler` --- Cygwin Compiler" msgstr ":mod:`distutils.cygwincompiler` — Compilateur Cygwin" -#: ../Doc/distutils/apiref.rst:870 +#: distutils/apiref.rst:870 msgid "" "This module provides the :class:`CygwinCCompiler` class, a subclass of :" "class:`UnixCCompiler` that handles the Cygwin port of the GNU C compiler to " @@ -1687,11 +1685,11 @@ msgstr "" "GNU C sur Windows. Il contient également la classe Mingw32CCompiler qui " "gère le portage *mingw32* de GCC (comme *cygwin* en mode *no-cygwin*)." -#: ../Doc/distutils/apiref.rst:877 +#: distutils/apiref.rst:877 msgid ":mod:`distutils.archive_util` --- Archiving utilities" msgstr ":mod:`distutils.archive_util` — Utilitaires d'archivage" -#: ../Doc/distutils/apiref.rst:883 +#: distutils/apiref.rst:883 msgid "" "This module provides a few functions for creating archive files, such as " "tarballs or zipfiles." @@ -1699,7 +1697,7 @@ msgstr "" "Ce module fournit quelques fonctions pour créer des fichiers d'archive, tels " "que des archives aux formats *tarballs* ou *zipfiles*." -#: ../Doc/distutils/apiref.rst:889 +#: distutils/apiref.rst:889 msgid "" "Create an archive file (eg. ``zip`` or ``tar``). *base_name* is the name " "of the file to create, minus any format-specific extension; *format* is the " @@ -1713,7 +1711,7 @@ msgid "" msgstr "" "Crée un fichier d'archive (par exemple ``zip`` ou ``tar``). *base_name* est " "le nom du fichier à créer, sans extension spécifique indiquant le format. " -"*format* est le format d'archive : un parmi ``zip``, ``tar``, ``gztar``, " +"*format* est le format d'archive : un parmi ``zip``, ``tar``, ``gztar``, " "``bztar``, ``xztar``, ``xztar``, ou ``ztar``. *root_dir* est un répertoire " "qui sera le répertoire racine de l'archive ; c'est-à-dire que le programme " "se positionne dans *root_dir* avant de créer l'archive. *base_dir* est le " @@ -1722,11 +1720,11 @@ msgstr "" "*root_dir* et *base_dir* sont tous deux par défaut dans le répertoire " "courant. Renvoie le nom du fichier archive." -#: ../Doc/distutils/apiref.rst:899 +#: distutils/apiref.rst:899 msgid "Added support for the ``xztar`` format." msgstr "Ajout du support des fichiers ``xztar``." -#: ../Doc/distutils/apiref.rst:905 +#: distutils/apiref.rst:905 msgid "" "'Create an (optional compressed) archive as a tar file from all files in and " "under *base_dir*. *compress* must be ``'gzip'`` (the default), ``'bzip2'``, " @@ -1746,11 +1744,11 @@ msgstr "" "nommé :file:`base_dir.tar`, avec l'extension de compression appropriée (``." "gz``, ``.bz2``, ``.xz`` ou ``.Z``). Renvoie le nom du fichier de sortie." -#: ../Doc/distutils/apiref.rst:914 +#: distutils/apiref.rst:914 msgid "Added support for the ``xz`` compression." msgstr "Ajout du support de la compression ``xz``." -#: ../Doc/distutils/apiref.rst:920 +#: distutils/apiref.rst:920 msgid "" "Create a zip file from all files in and under *base_dir*. The output zip " "file will be named *base_name* + :file:`.zip`. Uses either the :mod:" @@ -1766,11 +1764,11 @@ msgstr "" "défaut). Si aucun des deux outils n'est disponible, lève :exc:" "`DistutilsExecError`. Renvoie le nom du fichier zip de sortie." -#: ../Doc/distutils/apiref.rst:928 +#: distutils/apiref.rst:928 msgid ":mod:`distutils.dep_util` --- Dependency checking" msgstr ":mod:`distutils.dep_util` — Vérification des dépendances" -#: ../Doc/distutils/apiref.rst:934 +#: distutils/apiref.rst:934 msgid "" "This module provides functions for performing simple, timestamp-based " "dependency of files and groups of files; also, functions based entirely on " @@ -1781,7 +1779,7 @@ msgstr "" "fichiers, ainsi que des fonctionnalités entièrement basées sur ces analyses " "de dépendance par rapport aux horodatages." -#: ../Doc/distutils/apiref.rst:941 +#: distutils/apiref.rst:941 msgid "" "Return true if *source* exists and is more recently modified than *target*, " "or if *source* exists and *target* doesn't. Return false if both exist and " @@ -1793,7 +1791,7 @@ msgstr "" "valeur *false* si les deux existent et que *target* est aussi ou plus récent " "que *source*. Lève :exc:`DistutilsFileError` si *source* n'existe pas." -#: ../Doc/distutils/apiref.rst:949 +#: distutils/apiref.rst:949 msgid "" "Walk two filename lists in parallel, testing if each source is newer than " "its corresponding target. Return a pair of lists (*sources*, *targets*) " @@ -1805,7 +1803,7 @@ msgstr "" "paire de listes (*sources*, *cibles*) où la source est plus récente que la " "cible, selon la sémantique de :func:`newer`." -#: ../Doc/distutils/apiref.rst:958 +#: distutils/apiref.rst:958 msgid "" "Return true if *target* is out-of-date with respect to any file listed in " "*sources*. In other words, if *target* exists and is newer than every file " @@ -1826,16 +1824,16 @@ msgstr "" "est de lever une exception :exc:`OSError` à l'intérieur de :func:`os.stat` ; " "si *missing* vaut ``'ignore'``,tout fichier source manquant est ignoré. Si " "*missing* vaut ``'newer'``, tout fichier source manquant indique que " -"*target* n'est plus à jour (ce qui est utile en mode *dry-run* : cela permet " +"*target* n'est plus à jour (ce qui est utile en mode *dry-run* : cela permet " "d'exécuter des commandes qui ne fonctionneraient pas parce que des entrées " "sont manquantes sans les exécuter réellement)." -#: ../Doc/distutils/apiref.rst:971 +#: distutils/apiref.rst:971 msgid ":mod:`distutils.dir_util` --- Directory tree operations" msgstr "" -":mod:`distutils.dir_util` --- Opérations sur l'arborescence des répertoires" +":mod:`distutils.dir_util` — Opérations sur l'arborescence des répertoires" -#: ../Doc/distutils/apiref.rst:977 +#: distutils/apiref.rst:977 msgid "" "This module provides functions for operating on directories and trees of " "directories." @@ -1843,7 +1841,7 @@ msgstr "" "Ce module fournit des fonctions pour travailler sur des répertoires et des " "arborescences de répertoires." -#: ../Doc/distutils/apiref.rst:983 +#: distutils/apiref.rst:983 msgid "" "Create a directory and any missing ancestor directories. If the directory " "already exists (or if *name* is the empty string, which means the current " @@ -1862,7 +1860,7 @@ msgstr "" "chaque *mkdir* vers *stdout*. Renvoie la liste des répertoires réellement " "créés." -#: ../Doc/distutils/apiref.rst:994 +#: distutils/apiref.rst:994 msgid "" "Create all the empty directories under *base_dir* needed to put *files* " "there. *base_dir* is just the name of a directory which doesn't necessarily " @@ -1878,7 +1876,7 @@ msgstr "" "est créée si elle n'existe pas déjà. Les options *mode*, *verbose* et " "*dry_run* sont les mêmes que pour :func:`mkpath`." -#: ../Doc/distutils/apiref.rst:1004 +#: distutils/apiref.rst:1004 msgid "" "Copy an entire directory tree *src* to a new location *dst*. Both *src* and " "*dst* must be directory names. If *src* is not a directory, raise :exc:" @@ -1898,11 +1896,11 @@ msgstr "" "est copié dans *dst*, et les répertoires sous *src* sont récursivement " "copiés dans *dst*. Renvoie la liste des fichiers qui ont été copiés ou qui " "auraient pu l'être, en utilisant leur nom de sortie. La valeur renvoyée " -"n'est pas affectée par *update* ou *dry_run* : c'est tout simplement la " +"n'est pas affectée par *update* ou *dry_run* : c'est tout simplement la " "liste de tous les fichiers sous *src*, avec les noms modifiés pour être sous " "*dst*." -#: ../Doc/distutils/apiref.rst:1014 +#: distutils/apiref.rst:1014 msgid "" "*preserve_mode* and *preserve_times* are the same as for :func:`distutils." "file_util.copy_file`; note that they only apply to regular files, not to " @@ -1919,7 +1917,7 @@ msgstr "" "lien sera copiée. *update* et *verbose* sont les mêmes que pour :func:" "`copy_file`." -#: ../Doc/distutils/apiref.rst:1022 +#: distutils/apiref.rst:1022 msgid "" "Files in *src* that begin with :file:`.nfs` are skipped (more information on " "these files is available in answer D2 of the `NFS FAQ page `_)." -#: ../Doc/distutils/apiref.rst:1026 +#: distutils/apiref.rst:1026 msgid "NFS files are ignored." msgstr "Les fichiers NFS sont ignorés." -#: ../Doc/distutils/apiref.rst:1031 +#: distutils/apiref.rst:1031 msgid "" "Recursively remove *directory* and all files and directories underneath it. " "Any errors are ignored (apart from being reported to ``sys.stdout`` if " @@ -1943,11 +1941,11 @@ msgstr "" "dessous. Toutes les erreurs sont ignorées (sauf si *verbose* est vrai, elles " "sont affichées sur ``sys.stdout``)." -#: ../Doc/distutils/apiref.rst:1037 +#: distutils/apiref.rst:1037 msgid ":mod:`distutils.file_util` --- Single file operations" msgstr ":mod:`distutils.file_util` — Traitements mono-fichier" -#: ../Doc/distutils/apiref.rst:1043 +#: distutils/apiref.rst:1043 msgid "" "This module contains some utility functions for operating on individual " "files." @@ -1955,7 +1953,7 @@ msgstr "" "Ce module contient quelques fonctions de service pour travailler sur des " "fichiers individuels." -#: ../Doc/distutils/apiref.rst:1048 +#: distutils/apiref.rst:1048 msgid "" "Copy file *src* to *dst*. If *dst* is a directory, then *src* is copied " "there with the same name; otherwise, it must be a filename. (If the file " @@ -1975,7 +1973,7 @@ msgstr "" "*update* est vrai, *src* ne peut être copié que si *dst* n'existe pas, ou si " "*dst* existe mais est plus ancien que *src*." -#: ../Doc/distutils/apiref.rst:1057 +#: distutils/apiref.rst:1057 msgid "" "*link* allows you to make hard links (using :func:`os.link`) or symbolic " "links (using :func:`os.symlink`) instead of copying: set it to ``'hard'`` or " @@ -1985,24 +1983,24 @@ msgid "" "to copy file contents." msgstr "" "*link* permets de créer des liens physiques (en utilisant :func:`os.link`) " -"ou symboliques (en utilisant :func:`os.symlink`) au lieu de les copier : " +"ou symboliques (en utilisant :func:`os.symlink`) au lieu de les copier : " "paramétrez la valeur a ``'hard'`` ou ``'sym'`` ; si elle vaut ``None`` (par " "défaut), les fichiers sont copiés. Ne définissez pas *link* sur les systèmes " -"qui ne les gèrent pas : :func:`copy_file` ne vérifie pas si des liens " +"qui ne les gèrent pas : :func:`copy_file` ne vérifie pas si des liens " "symboliques ou physiques sont disponibles. La fonction :func:" "`_copy_file_contents` est utilisée pour copier le contenu des fichiers." -#: ../Doc/distutils/apiref.rst:1064 +#: distutils/apiref.rst:1064 msgid "" "Return a tuple ``(dest_name, copied)``: *dest_name* is the actual name of " "the output file, and *copied* is true if the file was copied (or would have " "been copied, if *dry_run* true)." msgstr "" -"Renvoie un couple ``(dest_name, copied)`` : *dest_name* est le nom réel du " +"Renvoie un couple ``(dest_name, copied)`` : *dest_name* est le nom réel du " "fichier de sortie, et *copied* est vrai si le fichier a été copié (ou aurait " "été copié, si *dry_run* est vrai)." -#: ../Doc/distutils/apiref.rst:1078 +#: distutils/apiref.rst:1078 msgid "" "Move file *src* to *dst*. If *dst* is a directory, the file will be moved " "into it with the same name; otherwise, *src* is just renamed to *dst*. " @@ -2012,7 +2010,7 @@ msgstr "" "y est déplacé avec le même nom ; sinon, *src* est simplement renommé *dst*. " "Renvoie le nouveau nom complet du fichier." -#: ../Doc/distutils/apiref.rst:1084 +#: distutils/apiref.rst:1084 msgid "" "Handles cross-device moves on Unix using :func:`copy_file`. What about " "other systems?" @@ -2020,7 +2018,7 @@ msgstr "" "Gère les déplacements inter-périphériques sous Unix en utilisant :func:" "`copy_file`. Qu'en est-il sur les autres systèmes ?" -#: ../Doc/distutils/apiref.rst:1090 +#: distutils/apiref.rst:1090 msgid "" "Create a file called *filename* and write *contents* (a sequence of strings " "without line terminators) to it." @@ -2028,11 +2026,11 @@ msgstr "" "Crée un fichier appelé *filename* et y écrit *contents* (une séquence de " "chaînes sans terminaison de ligne)." -#: ../Doc/distutils/apiref.rst:1095 +#: distutils/apiref.rst:1095 msgid ":mod:`distutils.util` --- Miscellaneous other utility functions" msgstr ":mod:`distutils.util` — Autres fonctions de service" -#: ../Doc/distutils/apiref.rst:1101 +#: distutils/apiref.rst:1101 msgid "" "This module contains other assorted bits and pieces that don't fit into any " "other utility module." @@ -2040,7 +2038,7 @@ msgstr "" "Ce module contient d'autres éléments qui ne correspondent à aucun autre " "module de service." -#: ../Doc/distutils/apiref.rst:1107 +#: distutils/apiref.rst:1107 msgid "" "Return a string that identifies the current platform. This is used mainly " "to distinguish platform-specific build directories and platform-specific " @@ -2057,29 +2055,29 @@ msgstr "" "l'information exacte dépend de l'OS, par exemple, sous Linux, la version " "noyau ne joue pas un grand rôle." -#: ../Doc/distutils/apiref.rst:1114 +#: distutils/apiref.rst:1114 msgid "Examples of returned values:" msgstr "Exemples de valeurs renvoyées :" -#: ../Doc/distutils/apiref.rst:1116 +#: distutils/apiref.rst:1116 msgid "``linux-i586``" msgstr "``linux-i586``" -#: ../Doc/distutils/apiref.rst:1117 +#: distutils/apiref.rst:1117 msgid "``linux-alpha``" msgstr "``linux-alpha``" -#: ../Doc/distutils/apiref.rst:1118 +#: distutils/apiref.rst:1118 msgid "``solaris-2.6-sun4u``" msgstr "``solaris-2.6-sun4u``" -#: ../Doc/distutils/apiref.rst:1120 +#: distutils/apiref.rst:1120 msgid "For non-POSIX platforms, currently just returns ``sys.platform``." msgstr "" "Pour les plates-formes qui ne sont pas POSIX, renvoie simplement ``sys." "platform``." -#: ../Doc/distutils/apiref.rst:1122 +#: distutils/apiref.rst:1122 msgid "" "For Mac OS X systems the OS version reflects the minimal version on which " "binaries will run (that is, the value of ``MACOSX_DEPLOYMENT_TARGET`` during " @@ -2090,7 +2088,7 @@ msgstr "" "(c'est-à-dire la valeur de ``MACOSX_DEPLOYMENT_TARGET`` pendant la " "compilation de Python), et non la version du système actuel." -#: ../Doc/distutils/apiref.rst:1126 +#: distutils/apiref.rst:1126 msgid "" "For universal binary builds on Mac OS X the architecture value reflects the " "universal binary status instead of the architecture of the current " @@ -2111,27 +2109,27 @@ msgstr "" "voies (*ppc*, *i386*, *x86_64*) et ``intel`` est utilisée pour une " "compilation universelle avec les architectures *i386* et *x86_64*" -#: ../Doc/distutils/apiref.rst:1135 +#: distutils/apiref.rst:1135 msgid "Examples of returned values on Mac OS X:" msgstr "Exemples de valeurs renvoyées sous Mac OS X :" -#: ../Doc/distutils/apiref.rst:1137 +#: distutils/apiref.rst:1137 msgid "``macosx-10.3-ppc``" msgstr "``macosx-10.3-ppc``" -#: ../Doc/distutils/apiref.rst:1139 +#: distutils/apiref.rst:1139 msgid "``macosx-10.3-fat``" msgstr "``macosx-10.3-fat``" -#: ../Doc/distutils/apiref.rst:1141 +#: distutils/apiref.rst:1141 msgid "``macosx-10.5-universal``" msgstr "``macosx-10.5-universal``" -#: ../Doc/distutils/apiref.rst:1143 +#: distutils/apiref.rst:1143 msgid "``macosx-10.6-intel``" msgstr "``macosx-10.6-intel``" -#: ../Doc/distutils/apiref.rst:1148 +#: distutils/apiref.rst:1148 msgid "" "Return 'pathname' as a name that will work on the native filesystem, i.e. " "split it on '/' and put it back together again using the current directory " @@ -2149,7 +2147,7 @@ msgstr "" "systèmes non UNIX si *pathname* commence ou se termine par une barre oblique " "(*slash* en anglais)." -#: ../Doc/distutils/apiref.rst:1158 +#: distutils/apiref.rst:1158 msgid "" "Return *pathname* with *new_root* prepended. If *pathname* is relative, " "this is equivalent to ``os.path.join(new_root,pathname)`` Otherwise, it " @@ -2161,7 +2159,7 @@ msgstr "" "faut rendre *pathname* relatif et joindre les deux, ce qui est dangereux " "sous DOS/Windows." -#: ../Doc/distutils/apiref.rst:1165 +#: distutils/apiref.rst:1165 msgid "" "Ensure that 'os.environ' has all the environment variables we guarantee that " "users can use in config files, command-line options, etc. Currently this " @@ -2171,12 +2169,12 @@ msgstr "" "utilisables dans les fichiers de configuration, les options en ligne de " "commande, etc. À l'heure actuelle, cela comprend :" -#: ../Doc/distutils/apiref.rst:1169 +#: distutils/apiref.rst:1169 msgid ":envvar:`HOME` - user's home directory (Unix only)" msgstr "" ":envvar:`HOME`. Répertoire d’accueil de l'utilisateur (Unix uniquement)" -#: ../Doc/distutils/apiref.rst:1170 +#: distutils/apiref.rst:1170 msgid "" ":envvar:`PLAT` - description of the current platform, including hardware and " "OS (see :func:`get_platform`)" @@ -2184,7 +2182,7 @@ msgstr "" ":envvar:`PLAT`. Description de la plate-forme actuelle, y compris le " "matériel et le l'OS (voir :func:`get_platform`)" -#: ../Doc/distutils/apiref.rst:1176 +#: distutils/apiref.rst:1176 msgid "" "Perform shell/Perl-style variable substitution on *s*. Every occurrence of " "``$`` followed by a name is considered a variable, and variable is " @@ -2199,11 +2197,11 @@ msgstr "" "variable est remplacée par la valeur trouvée dans le dictionnaire " "*local_vars*, ou dans ``os.environ`` si elle ne se trouve pas dans " "*local_vars*. *os.environ* est d'abord vérifié/étendu pour garantir qu'elle " -"contient certaines valeurs : voir :func:`check_environ`. Lève :exc:" +"contient certaines valeurs : voir :func:`check_environ`. Lève :exc:" "`ValueError` pour toute variable non trouvée dans *local_vars* ou ``os." "environ``." -#: ../Doc/distutils/apiref.rst:1183 +#: distutils/apiref.rst:1183 msgid "" "Note that this is not a fully-fledged string interpolation function. A valid " "``$variable`` can consist only of upper and lower case letters, numbers and " @@ -2214,7 +2212,7 @@ msgstr "" "majuscules et minuscules, de chiffres et d'un tiret bas. Aucune syntaxe de " "type {} ou () pour indiquer des variables n'est disponible." -#: ../Doc/distutils/apiref.rst:1190 +#: distutils/apiref.rst:1190 msgid "" "Split a string up according to Unix shell-like rules for quotes and " "backslashes. In short: words are delimited by spaces, as long as those " @@ -2225,7 +2223,7 @@ msgid "" "any quoted string. Returns a list of words." msgstr "" "Sépare une chaîne de caractères selon les règles de type shell Unix pour les " -"guillemets et les barres obliques inverses. En bref : les mots sont " +"guillemets et les barres obliques inverses. En bref : les mots sont " "délimités par des espaces, tant que ces espaces ne sont pas échappées par " "une barre oblique inversée, ou à l'intérieur d'une chaîne guillemets. Les " "guillemets simples et doubles sont équivalents, et les caractères entre " @@ -2235,7 +2233,7 @@ msgstr "" "sont supprimés de toute chaîne de caractères entre guillemets. Renvoie une " "liste de mots." -#: ../Doc/distutils/apiref.rst:1203 +#: distutils/apiref.rst:1203 msgid "" "Perform some action that affects the outside world (for instance, writing to " "the filesystem). Such actions are special because they are disabled by the " @@ -2250,14 +2248,14 @@ msgstr "" "devez simplement fournir la fonction à appeler avec un couple d'argument lui " "correspondant et un message facultatif à afficher." -#: ../Doc/distutils/apiref.rst:1212 +#: distutils/apiref.rst:1212 msgid "Convert a string representation of truth to true (1) or false (0)." msgstr "" "Convertit une chaîne de caractères représentant une valeur booléenne en " "``1`` (si elle est évaluée comme vraie) ou ``0`` (si elle est évaluée comme " "fausse)." -#: ../Doc/distutils/apiref.rst:1214 +#: distutils/apiref.rst:1214 msgid "" "True values are ``y``, ``yes``, ``t``, ``true``, ``on`` and ``1``; false " "values are ``n``, ``no``, ``f``, ``false``, ``off`` and ``0``. Raises :exc:" @@ -2267,7 +2265,7 @@ msgstr "" "``1``. Les valeurs *fausses* sont ``n``, ``no``, ``f``, ``false``, ``off`` " "et ``0``. Lève :exc:`ValueError` si *val* est autre chose." -#: ../Doc/distutils/apiref.rst:1221 +#: distutils/apiref.rst:1221 msgid "" "Byte-compile a collection of Python source files to :file:`.pyc` files in a :" "file:`__pycache__` subdirectory (see :pep:`3147` and :pep:`488`). *py_files* " @@ -2281,25 +2279,25 @@ msgstr "" "pas par :file:`.py` sont ignorés en silence. *optimize* doit être l'un des " "éléments suivants :" -#: ../Doc/distutils/apiref.rst:1226 +#: distutils/apiref.rst:1226 msgid "``0`` - don't optimize" msgstr "``0``: ne pas optimiser" -#: ../Doc/distutils/apiref.rst:1227 +#: distutils/apiref.rst:1227 msgid "``1`` - normal optimization (like ``python -O``)" msgstr "``1``: optimisation normale (comme ``python -O``)" -#: ../Doc/distutils/apiref.rst:1228 +#: distutils/apiref.rst:1228 msgid "``2`` - extra optimization (like ``python -OO``)" msgstr "``2``: optimisation supplémentaire (comme ``python -OO``)" -#: ../Doc/distutils/apiref.rst:1230 +#: distutils/apiref.rst:1230 msgid "If *force* is true, all files are recompiled regardless of timestamps." msgstr "" "Si *force* est vrai, tous les fichiers sont recompilés indépendamment des " "horodatages." -#: ../Doc/distutils/apiref.rst:1232 +#: distutils/apiref.rst:1232 msgid "" "The source filename encoded in each :term:`bytecode` file defaults to the " "filenames listed in *py_files*; you can modify these with *prefix* and " @@ -2314,9 +2312,9 @@ msgstr "" "*prefix* est une chaîne de caractères qui sera supprimée de chaque nom de " "fichier source, et *base_dir* est un nom de répertoire qui sera préfixé au " "nom (après que le *prefixe* soit supprimé). Vous pouvez choisir de fournir " -"l'un ou l'autre (ou les deux) paramètres : *prefixe* et *base_dir*." +"l'un ou l'autre (ou les deux) paramètres : *prefixe* et *base_dir*." -#: ../Doc/distutils/apiref.rst:1239 +#: distutils/apiref.rst:1239 msgid "" "If *dry_run* is true, doesn't actually do anything that would affect the " "filesystem." @@ -2324,7 +2322,7 @@ msgstr "" "Si *dry_run* est vrai, ne fait rien qui puisse affecter le système de " "fichiers." -#: ../Doc/distutils/apiref.rst:1242 +#: distutils/apiref.rst:1242 msgid "" "Byte-compilation is either done directly in this interpreter process with " "the standard :mod:`py_compile` module, or indirectly by writing a temporary " @@ -2341,7 +2339,7 @@ msgstr "" "script généré en mode indirect ; à moins que vous ne sachiez ce que vous " "faites, laissez le paramètre à ``None`` (Aucun)." -#: ../Doc/distutils/apiref.rst:1249 +#: distutils/apiref.rst:1249 msgid "" "Create ``.pyc`` files with an :func:`import magic tag ` in " "their name, in a :file:`__pycache__` subdirectory instead of files without " @@ -2351,11 +2349,11 @@ msgstr "" "` dans leur nom, dans le sous répertoire :file:`__pycache__` " "plutôt que dans le répertoire courant, sans tag." -#: ../Doc/distutils/apiref.rst:1254 +#: distutils/apiref.rst:1254 msgid "Create ``.pyc`` files according to :pep:`488`." msgstr "Crée des fichiers ``.pyc`` selon la :pep:`488`." -#: ../Doc/distutils/apiref.rst:1260 +#: distutils/apiref.rst:1260 msgid "" "Return a version of *header* escaped for inclusion in an :rfc:`822` header, " "by ensuring there are 8 spaces space after each newline. Note that it does " @@ -2366,11 +2364,11 @@ msgstr "" "nouvelle ligne. Notez qu'il ne fait aucune autre modification de la chaîne " "de caractères." -#: ../Doc/distutils/apiref.rst:1270 +#: distutils/apiref.rst:1270 msgid ":mod:`distutils.dist` --- The Distribution class" msgstr ":mod:`distutils.dist` — La classe Distribution" -#: ../Doc/distutils/apiref.rst:1277 +#: distutils/apiref.rst:1277 msgid "" "This module provides the :class:`~distutils.core.Distribution` class, which " "represents the module distribution being built/installed/distributed." @@ -2379,11 +2377,11 @@ msgstr "" "représente le module *distribution* en cours de construction/installation/" "distribution." -#: ../Doc/distutils/apiref.rst:1282 +#: distutils/apiref.rst:1282 msgid ":mod:`distutils.extension` --- The Extension class" msgstr ":mod:`distutils.extension` — La classe Extension" -#: ../Doc/distutils/apiref.rst:1289 +#: distutils/apiref.rst:1289 msgid "" "This module provides the :class:`Extension` class, used to describe C/C++ " "extension modules in setup scripts." @@ -2391,19 +2389,19 @@ msgstr "" "Ce module fournit la classe :class:`Extension`, utilisée pour décrire les " "modules d'extension C/C++ dans les scripts de configuration." -#: ../Doc/distutils/apiref.rst:1297 +#: distutils/apiref.rst:1297 msgid ":mod:`distutils.debug` --- Distutils debug mode" msgstr ":mod:`distutils.debug` — Mode de débogage du module *Distutils*" -#: ../Doc/distutils/apiref.rst:1303 +#: distutils/apiref.rst:1303 msgid "This module provides the DEBUG flag." msgstr "Ce module fournit l'option *DEBUG*." -#: ../Doc/distutils/apiref.rst:1307 +#: distutils/apiref.rst:1307 msgid ":mod:`distutils.errors` --- Distutils exceptions" msgstr ":mod:`distutils.errors` — Exceptions du module *Distutils*" -#: ../Doc/distutils/apiref.rst:1313 +#: distutils/apiref.rst:1313 msgid "" "Provides exceptions used by the Distutils modules. Note that Distutils " "modules may raise standard exceptions; in particular, SystemExit is usually " @@ -2413,10 +2411,10 @@ msgstr "" "Fournit les exceptions utilisées par les modules de *Distutils*. Notez que " "les modules *Distutils* peuvent soulever des exceptions standard ; en " "particulier, ``SystemExit`` est généralement levée pour les erreurs qui sont " -"manifestement de la responsabilité de l'utilisateur final (ex : mauvais " +"manifestement de la responsabilité de l'utilisateur final (ex : mauvais " "argument en ligne de commande)." -#: ../Doc/distutils/apiref.rst:1317 +#: distutils/apiref.rst:1317 msgid "" "This module is safe to use in ``from ... import *`` mode; it only exports " "symbols whose names start with ``Distutils`` and end with ``Error``." @@ -2425,13 +2423,13 @@ msgstr "" "n'exporte que des symboles dont le nom commence par ``Distutils`` et se " "termine par ``Error``." -#: ../Doc/distutils/apiref.rst:1322 +#: distutils/apiref.rst:1322 msgid "" ":mod:`distutils.fancy_getopt` --- Wrapper around the standard getopt module" msgstr "" -":mod:`distutils.fancy_getopt` --- Encapsulation du module *getopt* standard" +":mod:`distutils.fancy_getopt` — Encapsulation du module *getopt* standard" -#: ../Doc/distutils/apiref.rst:1328 +#: distutils/apiref.rst:1328 msgid "" "This module provides a wrapper around the standard :mod:`getopt` module " "that provides the following additional features:" @@ -2439,11 +2437,11 @@ msgstr "" "Ce module est une encapsulation du module standard :mod:`getopt` qui apporte " "les fonctionnalités supplémentaires suivantes :" -#: ../Doc/distutils/apiref.rst:1331 +#: distutils/apiref.rst:1331 msgid "short and long options are tied together" msgstr "Les options *short* et *long* sont liées entre elles." -#: ../Doc/distutils/apiref.rst:1333 +#: distutils/apiref.rst:1333 msgid "" "options have help strings, so :func:`fancy_getopt` could potentially create " "a complete usage summary" @@ -2451,21 +2449,21 @@ msgstr "" "Les options ont des pages d'aide, donc :func:`fancy_getopt` pourrait " "potentiellement créer un résumé d'utilisation complet" -#: ../Doc/distutils/apiref.rst:1336 +#: distutils/apiref.rst:1336 msgid "options set attributes of a passed-in object" msgstr "Les options définissent les attributs à partir d'un objet fourni." -#: ../Doc/distutils/apiref.rst:1338 +#: distutils/apiref.rst:1338 msgid "" "boolean options can have \"negative aliases\" --- eg. if :option:`!--quiet` " "is the \"negative alias\" of :option:`!--verbose`, then :option:`!--quiet` " "on the command line sets *verbose* to false." msgstr "" -"Les options booléennes peuvent avoir des \"alias négatifs\" --- par exemple " +"Les options booléennes peuvent avoir des \"alias négatifs\" — par exemple " "l'option :option:`!-quiet` est *l'alias négatif* de :option:`!--verbose`, " "l'option :option:`!-quiet` sur la ligne de commande met *verbose* à faux." -#: ../Doc/distutils/apiref.rst:1344 +#: distutils/apiref.rst:1344 msgid "" "Wrapper function. *options* is a list of ``(long_option, short_option, " "help_string)`` 3-tuples as described in the constructor for :class:" @@ -2484,13 +2482,13 @@ msgstr "" "classe :class:`FancyGetopt`). *args* est la liste des arguments. Utilise " "``sys.argv[1 :]`` si ``None`` est passé à *args*." -#: ../Doc/distutils/apiref.rst:1355 +#: distutils/apiref.rst:1355 msgid "Wraps *text* to less than *width* wide." msgstr "" "Ajoute des retours à la ligne à *texte* de manière à ce que la largeur soit " "inférieure à *largeur*." -#: ../Doc/distutils/apiref.rst:1360 +#: distutils/apiref.rst:1360 msgid "" "The option_table is a list of 3-tuples: ``(long_option, short_option, " "help_string)``" @@ -2498,7 +2496,7 @@ msgstr "" "La liste *option_table* est constituée de triplets : ``(long_option, " "short_option, help_string*)``" -#: ../Doc/distutils/apiref.rst:1363 +#: distutils/apiref.rst:1363 msgid "" "If an option takes an argument, its *long_option* should have ``'='`` " "appended; *short_option* should just be a single character, no ``':'`` in " @@ -2511,17 +2509,17 @@ msgstr "" "*short_option* correspondante. Tous les triplets d'options doivent avoir des " "options longues." -#: ../Doc/distutils/apiref.rst:1368 +#: distutils/apiref.rst:1368 msgid "The :class:`FancyGetopt` class provides the following methods:" msgstr "La classe :class:`FancyGetopt` fournit les méthodes suivantes :" -#: ../Doc/distutils/apiref.rst:1373 +#: distutils/apiref.rst:1373 msgid "Parse command-line options in args. Store as attributes on *object*." msgstr "" "Analyse les options de ligne de commande des arguments. Les stocke en tant " "qu'attributs de *objet*." -#: ../Doc/distutils/apiref.rst:1375 +#: distutils/apiref.rst:1375 msgid "" "If *args* is ``None`` or not supplied, uses ``sys.argv[1:]``. If *object* " "is ``None`` or not supplied, creates a new :class:`OptionDummy` instance, " @@ -2538,7 +2536,7 @@ msgstr "" "les deux cas, Les arguments *args* renvoyés sont une copie modifiée de la " "liste *args* transmise, qui est n'est pas modifiée." -#: ../Doc/distutils/apiref.rst:1387 +#: distutils/apiref.rst:1387 msgid "" "Returns the list of ``(option, value)`` tuples processed by the previous run " "of :meth:`getopt` Raises :exc:`RuntimeError` if :meth:`getopt` hasn't been " @@ -2548,7 +2546,7 @@ msgstr "" "précédente de :meth:`getopt`. Déclenche :exc:`RuntimeError` si :meth:" "`getopt` n'a pas encore été appelée." -#: ../Doc/distutils/apiref.rst:1394 +#: distutils/apiref.rst:1394 msgid "" "Generate help text (a list of strings, one per suggested line of output) " "from the option table for this :class:`FancyGetopt` object." @@ -2557,15 +2555,15 @@ msgstr "" "suggérée) de la liste d'options pour l'objet de la classe :class:" "`FancyGetopt`." -#: ../Doc/distutils/apiref.rst:1397 +#: distutils/apiref.rst:1397 msgid "If supplied, prints the supplied *header* at the top of the help." msgstr "S'il est fourni, affiche l'en-tête *header* en haut de l'aide." -#: ../Doc/distutils/apiref.rst:1401 +#: distutils/apiref.rst:1401 msgid ":mod:`distutils.filelist` --- The FileList class" msgstr ":mod:`distutils.filelist` — La classe *FileList* liste des fichiers" -#: ../Doc/distutils/apiref.rst:1408 +#: distutils/apiref.rst:1408 msgid "" "This module provides the :class:`FileList` class, used for poking about the " "filesystem and building lists of files." @@ -2573,17 +2571,16 @@ msgstr "" "Ce module fournit la classe :class:`FileList`, utilisée pour parcourir le " "système de fichiers et construire des listes de fichiers." -#: ../Doc/distutils/apiref.rst:1413 -#, fuzzy +#: distutils/apiref.rst:1413 msgid ":mod:`distutils.log` --- Simple :pep:`282`-style logging" msgstr "" -":mod:`distutils.log` --- Journalisation basée sur le style de la PEP 282" +":mod:`distutils.log` — Journalisation basée sur le style de la :pep:`282`" -#: ../Doc/distutils/apiref.rst:1420 +#: distutils/apiref.rst:1420 msgid ":mod:`distutils.spawn` --- Spawn a sub-process" msgstr ":mod:`distutils.spawn` — Crée un sous-processus" -#: ../Doc/distutils/apiref.rst:1426 +#: distutils/apiref.rst:1426 msgid "" "This module provides the :func:`spawn` function, a front-end to various " "platform-specific functions for launching another program in a sub-process. " @@ -2595,12 +2592,11 @@ msgstr "" "un sous-processus. Inclut également :func:`find_executable` pour rechercher " "le chemin d'accès pour un nom d'exécutable donné." -#: ../Doc/distutils/apiref.rst:1433 +#: distutils/apiref.rst:1433 msgid ":mod:`distutils.sysconfig` --- System configuration information" -msgstr "" -":mod:`distutils.sysconfig` --- Informations de configuration du système" +msgstr ":mod:`distutils.sysconfig` — Informations de configuration du système" -#: ../Doc/distutils/apiref.rst:1442 +#: distutils/apiref.rst:1442 msgid "" "The :mod:`distutils.sysconfig` module provides access to Python's low-level " "configuration information. The specific configuration variables available " @@ -2622,7 +2618,7 @@ msgstr "" "de Python commençant par 2.2, et :file:`config.h` pour les versions " "antérieures de Python." -#: ../Doc/distutils/apiref.rst:1451 +#: distutils/apiref.rst:1451 msgid "" "Some additional functions are provided which perform some useful " "manipulations for other parts of the :mod:`distutils` package." @@ -2630,15 +2626,15 @@ msgstr "" "Quelques fonctions supplémentaires sont fournies pour effectuer des " "manipulations utiles pour d'autres parties du paquet :mod:`distutils`." -#: ../Doc/distutils/apiref.rst:1457 +#: distutils/apiref.rst:1457 msgid "The result of ``os.path.normpath(sys.prefix)``." msgstr "Le résultat de ``os.path.normpath(sys.prefix)``." -#: ../Doc/distutils/apiref.rst:1462 +#: distutils/apiref.rst:1462 msgid "The result of ``os.path.normpath(sys.exec_prefix)``." msgstr "Le résultat de ``os.path.normpath(sys.exec_prefix)``." -#: ../Doc/distutils/apiref.rst:1467 +#: distutils/apiref.rst:1467 msgid "" "Return the value of a single variable. This is equivalent to " "``get_config_vars().get(name)``." @@ -2646,7 +2642,7 @@ msgstr "" "Retourne la valeur d'une seule variable. C'est l'équivalent de " "``get_config_vars().get(name)``." -#: ../Doc/distutils/apiref.rst:1473 +#: distutils/apiref.rst:1473 msgid "" "Return a set of variable definitions. If there are no arguments, this " "returns a dictionary mapping names of configuration variables to values. If " @@ -2661,7 +2657,7 @@ msgstr "" "donnant les valeurs correspondantes. Si un nom donné n'a pas de valeur " "correspondante, la valeur ``None`` sera utilisée pour cette variable." -#: ../Doc/distutils/apiref.rst:1482 +#: distutils/apiref.rst:1482 msgid "" "Return the full path name of the configuration header. For Unix, this will " "be the header generated by the :program:`configure` script; for other " @@ -2673,7 +2669,7 @@ msgstr "" "les autres plates-formes, l'en-tête provient directement de la distribution " "source Python. Le fichier est un fichier texte spécifique à la plate-forme." -#: ../Doc/distutils/apiref.rst:1490 +#: distutils/apiref.rst:1490 msgid "" "Return the full path name of the :file:`Makefile` used to build Python. For " "Unix, this will be a file generated by the :program:`configure` script; the " @@ -2686,7 +2682,7 @@ msgstr "" "existe, il s'agit d'un fichier texte spécifique à la plate-forme. Cette " "fonction n'est utile que sur les plates-formes POSIX." -#: ../Doc/distutils/apiref.rst:1498 +#: distutils/apiref.rst:1498 msgid "" "Return the directory for either the general or platform-dependent C include " "files. If *plat_specific* is true, the platform-dependent include directory " @@ -2703,7 +2699,7 @@ msgstr "" "`PREFIX`, soit comme préfixe d'exécution au lieu de :const:`EXEC_PREFIX` si " "*plat_specific* est vrai." -#: ../Doc/distutils/apiref.rst:1508 +#: distutils/apiref.rst:1508 msgid "" "Return the directory for either the general or platform-dependent library " "installation. If *plat_specific* is true, the platform-dependent include " @@ -2724,7 +2720,7 @@ msgstr "" "bibliothèque standard est renvoyé plutôt que le répertoire d'installation " "des extensions tierces." -#: ../Doc/distutils/apiref.rst:1517 +#: distutils/apiref.rst:1517 msgid "" "The following function is only intended for use within the :mod:`distutils` " "package." @@ -2732,7 +2728,7 @@ msgstr "" "La fonction suivante est uniquement destinée à être utilisée dans le paquet :" "mod:`distutils`." -#: ../Doc/distutils/apiref.rst:1523 +#: distutils/apiref.rst:1523 msgid "" "Do any platform-specific customization of a :class:`distutils.ccompiler." "CCompiler` instance." @@ -2740,7 +2736,7 @@ msgstr "" "Exécute toute personnalisation spécifique à la plate-forme d'une instance :" "class:`distutils.ccompiler.CCompiler`." -#: ../Doc/distutils/apiref.rst:1526 +#: distutils/apiref.rst:1526 msgid "" "This function is only needed on Unix at this time, but should be called " "consistently to support forward-compatibility. It inserts the information " @@ -2756,7 +2752,7 @@ msgstr "" "liens sélectionnés, ainsi que l'extension utilisée par l'éditeur de liens " "pour les objets partagés." -#: ../Doc/distutils/apiref.rst:1532 +#: distutils/apiref.rst:1532 msgid "" "This function is even more special-purpose, and should only be used from " "Python's own build procedures." @@ -2764,7 +2760,7 @@ msgstr "" "Cette fonction est encore plus spéciale, et ne devrait être utilisée que " "dans les procédures de compilation de Python." -#: ../Doc/distutils/apiref.rst:1538 +#: distutils/apiref.rst:1538 msgid "" "Inform the :mod:`distutils.sysconfig` module that it is being used as part " "of the build process for Python. This changes a lot of relative locations " @@ -2776,11 +2772,11 @@ msgstr "" "relatifs pour les fichiers, ce qui les place dans la zone de compilation " "plutôt que dans un interpréteur Python installé." -#: ../Doc/distutils/apiref.rst:1545 +#: distutils/apiref.rst:1545 msgid ":mod:`distutils.text_file` --- The TextFile class" msgstr ":mod:`distutils.text_file` — La classe TextFile" -#: ../Doc/distutils/apiref.rst:1551 +#: distutils/apiref.rst:1551 msgid "" "This module provides the :class:`TextFile` class, which gives an interface " "to text files that (optionally) takes care of stripping comments, ignoring " @@ -2790,7 +2786,7 @@ msgstr "" "fichiers texte qui s'occupe (optionnellement) de supprimer les commentaires, " "d'ignorer les lignes vides et de joindre les lignes avec des antislash." -#: ../Doc/distutils/apiref.rst:1558 +#: distutils/apiref.rst:1558 msgid "" "This class provides a file-like object that takes care of all the things " "you commonly want to do when processing a text file that has some line-by-" @@ -2801,14 +2797,14 @@ msgid "" msgstr "" "Cette classe fournit un objet de type fichier qui se charge de tout ce que " "vous voulez généralement faire lors du traitement d'un fichier texte ayant " -"une syntaxe ligne par ligne : Suppression des commentaires (tant que ``#`` " +"une syntaxe ligne par ligne : Suppression des commentaires (tant que ``#`` " "est votre caractère de commentaire), passer les lignes vides, joindre des " "lignes adjacentes en échappant la nouvelle ligne (les lignes se terminant " "par une antislash), supprime les espace blancs avant et après le texte etc. " "Toutes ces fonctions sont optionnelles et peuvent être commandées " "indépendamment." -#: ../Doc/distutils/apiref.rst:1565 +#: distutils/apiref.rst:1565 msgid "" "The class provides a :meth:`warn` method so you can generate warning " "messages that report physical line number, even if the logical line in " @@ -2820,7 +2816,7 @@ msgstr "" "logique en question couvre plusieurs lignes physiques. Fournit également :" "meth:`unreadline` pour implémenter un système prospectif ligne par ligne." -#: ../Doc/distutils/apiref.rst:1570 +#: distutils/apiref.rst:1570 msgid "" ":class:`TextFile` instances are create with either *filename*, *file*, or " "both. :exc:`RuntimeError` is raised if both are ``None``. *filename* should " @@ -2839,7 +2835,7 @@ msgstr "" "Si *file* n'est pas fourni, :class:`TextFile` crée son propre fichier en " "utilisant la fonction :func:`open`." -#: ../Doc/distutils/apiref.rst:1578 +#: distutils/apiref.rst:1578 msgid "" "The options are all boolean, and affect the values returned by :meth:" "`readline`" @@ -2847,51 +2843,49 @@ msgstr "" "Les options sont toutes booléennes et affectent les valeurs renvoyées par :" "meth:`readline`." -#: ../Doc/distutils/apiref.rst:1583 +#: distutils/apiref.rst:1583 msgid "option name" msgstr "Nom des options" -#: ../Doc/distutils/apiref.rst:1583 +#: distutils/apiref.rst:1583 msgid "default" msgstr "default" -#: ../Doc/distutils/apiref.rst:1585 +#: distutils/apiref.rst:1585 msgid "*strip_comments*" msgstr "*strip_comments*" -#: ../Doc/distutils/apiref.rst:1585 +#: distutils/apiref.rst:1585 msgid "" "strip from ``'#'`` to end-of-line, as well as any whitespace leading up to " "the ``'#'``\\ ---unless it is escaped by a backslash" msgstr "" "Supprime les caractères à partir de ``'#'`` jusqu'à la fin de la ligne, " -"ainsi que tout espace blanc menant au premier ``'#'`` --- à moins qu'il ne " +"ainsi que tout espace blanc menant au premier ``'#'`` — à moins qu'il ne " "soit échappé par une antislash" -#: ../Doc/distutils/apiref.rst:1585 ../Doc/distutils/apiref.rst:1594 -#: ../Doc/distutils/apiref.rst:1599 +#: distutils/apiref.rst:1594 distutils/apiref.rst:1599 msgid "true" msgstr "*true*" -#: ../Doc/distutils/apiref.rst:1591 +#: distutils/apiref.rst:1591 msgid "*lstrip_ws*" msgstr "*lstrip_ws*" -#: ../Doc/distutils/apiref.rst:1591 +#: distutils/apiref.rst:1591 msgid "strip leading whitespace from each line before returning it" msgstr "" "Efface les espaces blancs en début de chaque ligne avant de la renvoyer." -#: ../Doc/distutils/apiref.rst:1591 ../Doc/distutils/apiref.rst:1609 -#: ../Doc/distutils/apiref.rst:1620 +#: distutils/apiref.rst:1609 distutils/apiref.rst:1620 msgid "false" msgstr "*false*" -#: ../Doc/distutils/apiref.rst:1594 +#: distutils/apiref.rst:1594 msgid "*rstrip_ws*" msgstr "*rstrip_ws*" -#: ../Doc/distutils/apiref.rst:1594 +#: distutils/apiref.rst:1594 msgid "" "strip trailing whitespace (including line terminator!) from each line before " "returning it." @@ -2899,11 +2893,11 @@ msgstr "" "Efface les espaces blancs de fin de ligne (y compris le terminateur de " "ligne !) de chaque ligne avant de la renvoyer." -#: ../Doc/distutils/apiref.rst:1599 +#: distutils/apiref.rst:1599 msgid "*skip_blanks*" msgstr "*skip_blanks*" -#: ../Doc/distutils/apiref.rst:1599 +#: distutils/apiref.rst:1599 msgid "" "skip lines that are empty \\*after\\* stripping comments and whitespace. " "(If both lstrip_ws and rstrip_ws are false, then some lines may consist of " @@ -2912,14 +2906,14 @@ msgid "" msgstr "" "Ignore les lignes qui sont vides \\*après\\* la suppression des commentaires " "et des espaces. (Si *lstrip_ws* et *rstrip_ws* sont tous les deux faux, " -"alors certaines lignes peuvent être composées uniquement d'espaces : elles " +"alors certaines lignes peuvent être composées uniquement d'espaces : elles " "ne seront pas ignorées, même si *skip_blanks* est vrai." -#: ../Doc/distutils/apiref.rst:1609 +#: distutils/apiref.rst:1609 msgid "*join_lines*" msgstr "*join_lines*" -#: ../Doc/distutils/apiref.rst:1609 +#: distutils/apiref.rst:1609 msgid "" "if a backslash is the last non-newline character on a line after stripping " "comments and whitespace, join the following line to it to form one logical " @@ -2932,11 +2926,11 @@ msgstr "" "antislash, alors N+1 lignes physiques seront liées pour former une seul " "ligne logique." -#: ../Doc/distutils/apiref.rst:1620 +#: distutils/apiref.rst:1620 msgid "*collapse_join*" msgstr "*collapse_join*" -#: ../Doc/distutils/apiref.rst:1620 +#: distutils/apiref.rst:1620 msgid "" "strip leading whitespace from lines that are joined to their predecessor; " "only matters if ``(join_lines and not lstrip_ws)``" @@ -2944,7 +2938,7 @@ msgstr "" "Supprime les espaces blancs des lignes qui sont jointes à leur prédécesseur. " "n'est utile que que si ``(join_lines and not lstrip_ws)``." -#: ../Doc/distutils/apiref.rst:1627 +#: distutils/apiref.rst:1627 msgid "" "Note that since *rstrip_ws* can strip the trailing newline, the semantics " "of :meth:`readline` must differ from those of the built-in file object's :" @@ -2959,7 +2953,7 @@ msgstr "" "juste une ligne blanche (ou une ligne entièrement blanche), si *rstrip_ws* " "est vrai mais pas si *skip_blanks* est faux." -#: ../Doc/distutils/apiref.rst:1636 +#: distutils/apiref.rst:1636 msgid "" "Open a new file *filename*. This overrides any *file* or *filename* " "constructor arguments." @@ -2967,7 +2961,7 @@ msgstr "" "Ouvre un nouveau fichier *filename*. Remplace tous les arguments du " "constructeur *file* ou *filename*." -#: ../Doc/distutils/apiref.rst:1642 +#: distutils/apiref.rst:1642 msgid "" "Close the current file and forget everything we know about it (including the " "filename and the current line number)." @@ -2975,7 +2969,7 @@ msgstr "" "Ferme le fichier courant et oublie toutes les informations connues à son " "sujet (y compris le nom du fichier et le numéro de la ligne courante)." -#: ../Doc/distutils/apiref.rst:1648 +#: distutils/apiref.rst:1648 msgid "" "Print (to stderr) a warning message tied to the current logical line in the " "current file. If the current logical line in the file spans multiple " @@ -2992,7 +2986,7 @@ msgstr "" "liste ou d'un couple pour indiquer une plage de lignes physiques, ou d'un " "entier pour une seule ligne physique." -#: ../Doc/distutils/apiref.rst:1658 +#: distutils/apiref.rst:1658 msgid "" "Read and return a single logical line from the current file (or from an " "internal buffer if lines have previously been \"unread\" with :meth:" @@ -3013,7 +3007,7 @@ msgstr "" "puisque la chaîne vide peut se produire si *rstrip_ws* est vrai mais pas si " "*strip_blanks* est faux." -#: ../Doc/distutils/apiref.rst:1669 +#: distutils/apiref.rst:1669 msgid "" "Read and return the list of all logical lines remaining in the current file. " "This updates the current line number to the last line of the file." @@ -3022,7 +3016,7 @@ msgstr "" "fichier courant. Met à jour le numéro de la ligne courante à la dernière " "ligne du fichier." -#: ../Doc/distutils/apiref.rst:1675 +#: distutils/apiref.rst:1675 msgid "" "Push *line* (a string) onto an internal buffer that will be checked by " "future :meth:`readline` calls. Handy for implementing a parser with line-at-" @@ -3041,21 +3035,21 @@ msgstr "" "appel à :meth:`readline`, les lignes sont renvoyées dans l'ordre de la plus " "récente première à la plus ancienne." -#: ../Doc/distutils/apiref.rst:1684 +#: distutils/apiref.rst:1684 msgid ":mod:`distutils.version` --- Version number classes" msgstr ":mod:`distutils.version` — Classes de numéros de version" -#: ../Doc/distutils/apiref.rst:1699 +#: distutils/apiref.rst:1699 msgid ":mod:`distutils.cmd` --- Abstract base class for Distutils commands" msgstr "" -":mod:`distutils.cmd` --- Classe de base abstraite pour les commandes " +":mod:`distutils.cmd` — Classe de base abstraite pour les commandes " "*Distutils*" -#: ../Doc/distutils/apiref.rst:1706 +#: distutils/apiref.rst:1706 msgid "This module supplies the abstract base class :class:`Command`." msgstr "Ce module fournit la classe de base abstraite :class:`Command`." -#: ../Doc/distutils/apiref.rst:1711 +#: distutils/apiref.rst:1711 msgid "" "Abstract base class for defining command classes, the \"worker bees\" of the " "Distutils. A useful analogy for command classes is to think of them as " @@ -3079,12 +3073,12 @@ msgstr "" "commande. La distinction entre les deux est nécessaire parce que les " "valeurs des options peuvent venir de l'extérieur (ligne de commande, fichier " "de configuration, ....), et toutes les options dépendantes d'autres options " -"doivent être calculées après que ces options externes aient été traitées --- " +"doivent être calculées après que ces options externes aient été traitées — " "ce qui explique :meth:`finalize_options`. Le corps de la sous-routine, où " "s'effectue tout le travail est basé sur les valeurs de ses options, est la " "méthode :meth:`run`, qui doit être implémentée par chaque classe de commande." -#: ../Doc/distutils/apiref.rst:1724 +#: distutils/apiref.rst:1724 msgid "" "The class constructor takes a single argument *dist*, a :class:`~distutils." "core.Distribution` instance." @@ -3092,16 +3086,16 @@ msgstr "" "Le constructeur prend un seul argument, *dist*, une instance de :class:" "`~distutils.core.Distribution`." -#: ../Doc/distutils/apiref.rst:1729 +#: distutils/apiref.rst:1729 msgid "Creating a new Distutils command" msgstr "Créer une nouvelle commande *Distutils*" -#: ../Doc/distutils/apiref.rst:1731 +#: distutils/apiref.rst:1731 msgid "This section outlines the steps to create a new Distutils command." msgstr "" "Cette section décrit les étapes pour créer une nouvelle commande *Distutils*." -#: ../Doc/distutils/apiref.rst:1733 +#: distutils/apiref.rst:1733 msgid "" "A new command lives in a module in the :mod:`distutils.command` package. " "There is a sample template in that directory called :file:" @@ -3124,13 +3118,13 @@ msgstr "" "peel_banana.py`, puis l'éditer pour qu'il implémente la classe :class:" "`peel_banana`, une sous-classe de la classe :class:`distutils.cmd.Command`." -#: ../Doc/distutils/apiref.rst:1743 +#: distutils/apiref.rst:1743 msgid "Subclasses of :class:`Command` must define the following methods." msgstr "" "Les sous-classes de la classe :class:`Command` doivent définir les méthodes " "suivantes." -#: ../Doc/distutils/apiref.rst:1747 +#: distutils/apiref.rst:1747 msgid "" "Set default values for all the options that this command supports. Note " "that these defaults may be overridden by other commands, by the setup " @@ -3147,7 +3141,7 @@ msgstr "" "méthodes suivantes :meth:`initialize_options` ne font que des assignations " "de type ``self.truc = None``." -#: ../Doc/distutils/apiref.rst:1756 +#: distutils/apiref.rst:1756 msgid "" "Set final values for all the options that this command supports. This is " "always called as late as possible, ie. after any option assignments from " @@ -3165,7 +3159,7 @@ msgstr "" "toujours la même valeur qui lui a été attribué par :meth:" "`initialize_options`." -#: ../Doc/distutils/apiref.rst:1766 +#: distutils/apiref.rst:1766 msgid "" "A command's raison d'etre: carry out the action it exists to perform, " "controlled by the options initialized in :meth:`initialize_options`, " @@ -3173,14 +3167,14 @@ msgid "" "files, and finalized in :meth:`finalize_options`. All terminal output and " "filesystem interaction should be done by :meth:`run`." msgstr "" -"La raison d'être d'une commande : exécuter l'action programmée en étant " +"La raison d'être d'une commande : exécuter l'action programmée en étant " "contrôlée par les options initialisées dans :meth:`initialize_options`, " "personnalisées par d'autres commandes, par le script de configuration, par " "la ligne de commande et les fichiers de configuration, puis finalisée dans :" "meth:`finalize_options`. Toutes les interactions avec le système de fichiers " "et la sortie du terminal doivent être effectuées par :meth:`run`." -#: ../Doc/distutils/apiref.rst:1775 +#: distutils/apiref.rst:1775 msgid "" "*sub_commands* formalizes the notion of a \"family\" of commands, e.g. " "``install`` as the parent with sub-commands ``install_lib``, " @@ -3200,11 +3194,11 @@ msgstr "" "``(command_name, predicate)``, avec *command_name* le nom de la commande et " "*predicate* une fonction, une chaîne ou ``None``. *predicate* est une " "méthode de la commande parent qui détermine si la commande correspondante " -"est applicable dans la situation actuelle. Par exemple : ``install_headers`` " +"est applicable dans la situation actuelle. Par exemple : ``install_headers`` " "n'est applicable que s'il existe des fichiers d'en-tête C à installer. Si " "*predicate* est ``None``, cette commande est toujours effectuée." -#: ../Doc/distutils/apiref.rst:1786 +#: distutils/apiref.rst:1786 msgid "" "*sub_commands* is usually defined at the *end* of a class, because " "predicates can be methods of the class, so they must already have been " @@ -3214,39 +3208,39 @@ msgstr "" "prédicats peuvent être des méthodes de la classe, ils doivent donc déjà " "avoir été définis. L'exemple canonique est la commande :command:`install`." -#: ../Doc/distutils/apiref.rst:1792 +#: distutils/apiref.rst:1792 msgid ":mod:`distutils.command` --- Individual Distutils commands" msgstr ":mod:`distutils.command` — Commandes *Distutils* individuelles" -#: ../Doc/distutils/apiref.rst:1803 +#: distutils/apiref.rst:1803 msgid ":mod:`distutils.command.bdist` --- Build a binary installer" msgstr ":mod:`distutils.command.bdist` — Construit un installateur binaire" -#: ../Doc/distutils/apiref.rst:1813 +#: distutils/apiref.rst:1813 msgid "" ":mod:`distutils.command.bdist_packager` --- Abstract base class for packagers" msgstr "" -":mod:`distutils.command.bdist_packager` --- Classe de base abstraite pour " +":mod:`distutils.command.bdist_packager` — Classe de base abstraite pour " "empaqueteurs" -#: ../Doc/distutils/apiref.rst:1823 +#: distutils/apiref.rst:1823 msgid ":mod:`distutils.command.bdist_dumb` --- Build a \"dumb\" installer" msgstr "" -":mod:`distutils.command.bdist_dumb` --- Construit un installateur passif " +":mod:`distutils.command.bdist_dumb` — Construit un installateur passif " "(*dumb*)" -#: ../Doc/distutils/apiref.rst:1833 +#: distutils/apiref.rst:1833 msgid "" ":mod:`distutils.command.bdist_msi` --- Build a Microsoft Installer binary " "package" msgstr "" -":mod:`distutils.command.bdist_msi` --- Construit un installateur Microsoft" +":mod:`distutils.command.bdist_msi` — Construit un installateur Microsoft" -#: ../Doc/distutils/apiref.rst:1840 +#: distutils/apiref.rst:1840 msgid "Builds a `Windows Installer`_ (.msi) binary package." msgstr "Construit un installateur `Windows Installeur`_ (*.msi*)" -#: ../Doc/distutils/apiref.rst:1844 +#: distutils/apiref.rst:1844 msgid "" "In most cases, the ``bdist_msi`` installer is a better choice than the " "``bdist_wininst`` installer, because it provides better support for Win64 " @@ -3258,54 +3252,54 @@ msgstr "" "*Win64*, et permet en plus aux administrateurs d'effectuer des installations " "non interactives ainsi que des installations via des stratégies de groupe." -#: ../Doc/distutils/apiref.rst:1851 +#: distutils/apiref.rst:1851 msgid "" ":mod:`distutils.command.bdist_rpm` --- Build a binary distribution as a " "Redhat RPM and SRPM" msgstr "" -":mod:`distutils.command.bdist_rpm` --- Construit une distribution binaire au " +":mod:`distutils.command.bdist_rpm` — Construit une distribution binaire au " "format Redhat RPM et SRPM" -#: ../Doc/distutils/apiref.rst:1861 +#: distutils/apiref.rst:1861 msgid ":mod:`distutils.command.bdist_wininst` --- Build a Windows installer" msgstr "" -":mod:`distutils.command.bdist_wininst` --- Construit un installateur Windows" +":mod:`distutils.command.bdist_wininst` — Construit un installateur Windows" -#: ../Doc/distutils/apiref.rst:1866 +#: distutils/apiref.rst:1866 msgid "Use bdist_wheel (wheel packages) instead." -msgstr "" +msgstr "Utilisez *bdist_wheel* (paquet au format *wheel*) à la place." -#: ../Doc/distutils/apiref.rst:1874 +#: distutils/apiref.rst:1874 msgid ":mod:`distutils.command.sdist` --- Build a source distribution" msgstr ":mod:`distutils.command.sdist` — Construit une distribution source" -#: ../Doc/distutils/apiref.rst:1884 +#: distutils/apiref.rst:1884 msgid ":mod:`distutils.command.build` --- Build all files of a package" msgstr "" -":mod:`distutils.command.build` --- Construit tous les fichiers d'un paquet" +":mod:`distutils.command.build` — Construit tous les fichiers d'un paquet" -#: ../Doc/distutils/apiref.rst:1894 +#: distutils/apiref.rst:1894 msgid "" ":mod:`distutils.command.build_clib` --- Build any C libraries in a package" msgstr "" -":mod:`distutils.command.build_clib` --- Construit toutes les bibliothèques C " +":mod:`distutils.command.build_clib` — Construit toutes les bibliothèques C " "d'un paquet" -#: ../Doc/distutils/apiref.rst:1904 +#: distutils/apiref.rst:1904 msgid "" ":mod:`distutils.command.build_ext` --- Build any extensions in a package" msgstr "" -":mod:`distutils.command.build_ext` --- Construit toutes les extensions d'un " +":mod:`distutils.command.build_ext` — Construit toutes les extensions d'un " "paquet" -#: ../Doc/distutils/apiref.rst:1914 +#: distutils/apiref.rst:1914 msgid "" ":mod:`distutils.command.build_py` --- Build the .py/.pyc files of a package" msgstr "" -":mod:`distutils.command.build_py` --- Construit les fichiers *.py/.pyc* d'un " +":mod:`distutils.command.build_py` — Construit les fichiers *.py/.pyc* d'un " "paquet" -#: ../Doc/distutils/apiref.rst:1924 +#: distutils/apiref.rst:1924 msgid "" "Alternative implementation of build_py which also runs the 2to3 conversion " "library on each .py file that is going to be installed. To use this in a " @@ -3317,27 +3311,27 @@ msgstr "" "installé. Pour l'utiliser dans un fichier *setup.py* pour une distribution " "conçue pour fonctionner avec *Python 2.x* et *3.x*, ajouter ::" -#: ../Doc/distutils/apiref.rst:1934 +#: distutils/apiref.rst:1934 msgid "to your setup.py, and later::" msgstr "à votre *setup.py* et, plus tard ::" -#: ../Doc/distutils/apiref.rst:1938 +#: distutils/apiref.rst:1938 msgid "to the invocation of setup()." msgstr "à l'appel de *setup()*." -#: ../Doc/distutils/apiref.rst:1942 +#: distutils/apiref.rst:1942 msgid "" ":mod:`distutils.command.build_scripts` --- Build the scripts of a package" msgstr "" -":mod:`distutils.command.build_scripts` --- Construit les scripts d'un paquet" +":mod:`distutils.command.build_scripts` — Construit les scripts d'un paquet" -#: ../Doc/distutils/apiref.rst:1952 +#: distutils/apiref.rst:1952 msgid ":mod:`distutils.command.clean` --- Clean a package build area" msgstr "" -":mod:`distutils.command.clean` --- Nettoie un dossier de compilation d'un " +":mod:`distutils.command.clean` — Nettoie un dossier de compilation d'un " "paquet" -#: ../Doc/distutils/apiref.rst:1957 +#: distutils/apiref.rst:1957 msgid "" "This command removes the temporary files created by :command:`build` and its " "subcommands, like intermediary compiled object files. With the ``--all`` " @@ -3348,7 +3342,7 @@ msgstr "" "intermédiaires. Avec l'option ``--all``, le répertoire de compilation sera " "supprimé." -#: ../Doc/distutils/apiref.rst:1961 +#: distutils/apiref.rst:1961 msgid "" "Extension modules built :ref:`in place ` will " "not be cleaned, as they are not in the build directory." @@ -3357,54 +3351,54 @@ msgstr "" "inplace>` ne seront pas effacés, car ils ne sont pas dans le répertoire " "*build*." -#: ../Doc/distutils/apiref.rst:1966 +#: distutils/apiref.rst:1966 msgid ":mod:`distutils.command.config` --- Perform package configuration" msgstr "" -":mod:`distutils.command.config` --- Effectue la configuration d'un paquet" +":mod:`distutils.command.config` — Effectue la configuration d'un paquet" -#: ../Doc/distutils/apiref.rst:1976 +#: distutils/apiref.rst:1976 msgid ":mod:`distutils.command.install` --- Install a package" msgstr ":mod:`distutils.command.install` — Installe un paquet" -#: ../Doc/distutils/apiref.rst:1986 +#: distutils/apiref.rst:1986 msgid "" ":mod:`distutils.command.install_data` --- Install data files from a package" msgstr "" -":mod:`distutils.command.install_data` --- Installe les fichiers de données " +":mod:`distutils.command.install_data` — Installe les fichiers de données " "d'un paquet" -#: ../Doc/distutils/apiref.rst:1996 +#: distutils/apiref.rst:1996 msgid "" ":mod:`distutils.command.install_headers` --- Install C/C++ header files from " "a package" msgstr "" -":mod:`distutils.command.install_headers` --- Installe les fichiers d'en-tête " -"C/C++ d'un paquet" +":mod:`distutils.command.install_headers` — Installe les fichiers d'en-tête C/" +"C++ d'un paquet" -#: ../Doc/distutils/apiref.rst:2006 +#: distutils/apiref.rst:2006 msgid "" ":mod:`distutils.command.install_lib` --- Install library files from a package" msgstr "" -":mod:`distutils.command.install_lib` --- Installe les fichiers de " -"bibliothèque à partir d'un paquet" +":mod:`distutils.command.install_lib` — Installe les fichiers de bibliothèque " +"à partir d'un paquet" -#: ../Doc/distutils/apiref.rst:2016 +#: distutils/apiref.rst:2016 msgid "" ":mod:`distutils.command.install_scripts` --- Install script files from a " "package" msgstr "" -":mod:`distutils.command.install_scripts` --- Installe les fichiers de script " +":mod:`distutils.command.install_scripts` — Installe les fichiers de script " "d'un paquet" -#: ../Doc/distutils/apiref.rst:2026 +#: distutils/apiref.rst:2026 msgid "" ":mod:`distutils.command.register` --- Register a module with the Python " "Package Index" msgstr "" -":mod:`distutils.command.register` --- Enregistre un module dans l'Index des " +":mod:`distutils.command.register` — Enregistre un module dans l'Index des " "paquets Python (*Python Package Index* ou *PyPI* en anglais)" -#: ../Doc/distutils/apiref.rst:2032 +#: distutils/apiref.rst:2032 msgid "" "The ``register`` command registers the package with the Python Package " "Index. This is described in more detail in :pep:`301`." @@ -3412,12 +3406,11 @@ msgstr "" "La commande ``register`` enregistre le paquet dans l'index des paquets " "Python. Plus de détails à ce sujet dans la :pep:`301`." -#: ../Doc/distutils/apiref.rst:2039 +#: distutils/apiref.rst:2039 msgid ":mod:`distutils.command.check` --- Check the meta-data of a package" -msgstr "" -":mod:`distutils.command.check` --- Vérifie les méta-données d'un paquet" +msgstr ":mod:`distutils.command.check` — Vérifie les méta-données d'un paquet" -#: ../Doc/distutils/apiref.rst:2045 +#: distutils/apiref.rst:2045 msgid "" "The ``check`` command performs some tests on the meta-data of a package. For " "example, it verifies that all required meta-data are provided as the " diff --git a/distutils/builtdist.po b/distutils/builtdist.po index d8a7334667..d9a43d3310 100644 --- a/distutils/builtdist.po +++ b/distutils/builtdist.po @@ -5,28 +5,32 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: 2019-06-08 15:19+0200\n" -"Last-Translator: Jules Lasne \n" +"POT-Creation-Date: 2020-05-23 11:38+0200\n" +"PO-Revision-Date: 2020-02-04 21:19+0100\n" +"Last-Translator: ZepmanBC \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.0.6\n" +"X-Generator: Poedit 2.2.4\n" -#: ../Doc/distutils/builtdist.rst:5 +#: distutils/builtdist.rst:5 msgid "Creating Built Distributions" msgstr "Créer une distribution compilée" -#: ../Doc/distutils/_setuptools_disclaimer.rst:3 +#: distutils/_setuptools_disclaimer.rst:3 msgid "" "This document is being retained solely until the ``setuptools`` " "documentation at https://setuptools.readthedocs.io/en/latest/setuptools.html " "independently covers all of the relevant information currently included here." msgstr "" +"Cette page est conservée uniquement jusqu'à ce que la documentation " +"``setuptool`` sur https://setuptools.readthedocs.io/en/latest/setuptools." +"html couvre de manière indépendante toutes les informations pertinentes " +"actuellement incluses ici." -#: ../Doc/distutils/builtdist.rst:9 +#: distutils/builtdist.rst:9 msgid "" "A \"built distribution\" is what you're probably used to thinking of either " "as a \"binary package\" or an \"installer\" (depending on your background). " @@ -35,14 +39,14 @@ msgid "" "word is already spoken for in Python. (And \"installer\" is a term specific " "to the world of mainstream desktop systems.)" msgstr "" -"Une \"distribution compilée\" vous fait surement penser à un \"paquet binaire" -"\" ou à un \"installateur\" (tout dépend de votre environnement). Ce n'est " -"cependant pas forcément un binaire, il peut ne contenir que des sources " -"Python et / ou du *byte-code* ; et nous n'appelons pas ça un *package* parce " -"que ce mot est déjà utilisé dans Python (et \"installateur\" est un terme " -"spécifique au monde des systèmes de bureau)." - -#: ../Doc/distutils/builtdist.rst:16 +"Une \"distribution compilée\" vous fait surement penser à un \"paquet " +"binaire\" ou à un \"installateur\" (tout dépend de votre environnement). Ce " +"n'est cependant pas forcément un binaire, il peut ne contenir que des " +"sources Python et / ou du *byte-code* ; et nous n'appelons pas ça un " +"*package* parce que ce mot est déjà utilisé dans Python (et \"installateur\" " +"est un terme spécifique au monde des systèmes de bureau)." + +#: distutils/builtdist.rst:16 msgid "" "A built distribution is how you make life as easy as possible for installers " "of your module distribution: for users of RPM-based Linux systems, it's a " @@ -66,7 +70,7 @@ msgstr "" "distributions source --- pendant que d'autres, appelés *packagers* " "s'occupent de transformer les sources en paquets pour chaque plateforme." -#: ../Doc/distutils/builtdist.rst:26 +#: distutils/builtdist.rst:26 msgid "" "Of course, the module developer could be their own packager; or the packager " "could be a volunteer \"out there\" somewhere who has access to a platform " @@ -84,7 +88,7 @@ msgstr "" "ils sont, les *packagers* utilisent ``setup.py`` et la famille de commandes :" "command:`bdist` afin de générer une distribution compilée." -#: ../Doc/distutils/builtdist.rst:34 +#: distutils/builtdist.rst:34 msgid "" "As a simple example, if I run the following command in the Distutils source " "tree::" @@ -92,7 +96,7 @@ msgstr "" "Pour prendre un exemple simple, si je lance la commande suivante dans les " "sources de Distutils ::" -#: ../Doc/distutils/builtdist.rst:39 +#: distutils/builtdist.rst:39 msgid "" "then the Distutils builds my module distribution (the Distutils itself in " "this case), does a \"fake\" installation (also in the :file:`build` " @@ -110,7 +114,7 @@ msgstr "" "considéré comme \"bête\" car il doit être décompressé à un endroit précis " "pour fonctionner)." -#: ../Doc/distutils/builtdist.rst:46 +#: distutils/builtdist.rst:46 msgid "" "Thus, the above command on a Unix system creates :file:`Distutils-1.0.{plat}." "tar.gz`; unpacking this tarball from the right place installs the Distutils " @@ -129,7 +133,7 @@ msgstr "" "`bdist_dumb` ; la valeur par défaut est de créer une distribution \"bête\" " "relative à :file:`{prefix}`)." -#: ../Doc/distutils/builtdist.rst:54 +#: distutils/builtdist.rst:54 msgid "" "Obviously, for pure Python distributions, this isn't any simpler than just " "running ``python setup.py install``\\ ---but for non-pure distributions, " @@ -148,7 +152,7 @@ msgstr "" "est bien plus pratique pour les utilisateurs, même si votre module n'inclut " "aucune extension." -#: ../Doc/distutils/builtdist.rst:62 +#: distutils/builtdist.rst:62 msgid "" "The :command:`bdist` command has a :option:`!--formats` option, similar to " "the :command:`sdist` command, which you can use to select the types of built " @@ -156,9 +160,9 @@ msgid "" msgstr "" "La commande :command:`bdist` a l'option :option:`!--formats`, similaire à la " "commande :command:`sdist`, que vous pouvez utiliser pour sélectionner le " -"type de distribution compilée à générer : par exemple, ::" +"type de distribution compilée à générer : par exemple, ::" -#: ../Doc/distutils/builtdist.rst:68 +#: distutils/builtdist.rst:68 msgid "" "would, when run on a Unix system, create :file:`Distutils-1.0.{plat}.zip`\\ " "---again, this archive would be unpacked from the root directory to install " @@ -168,151 +172,151 @@ msgstr "" "{plat}.zip`\\ ---à nouveau, cette archive devra être décompressé depuis la " "racine pour installer Distutils." -#: ../Doc/distutils/builtdist.rst:72 +#: distutils/builtdist.rst:72 msgid "The available formats for built distributions are:" msgstr "Les formats disponibles pour les distributions compilées sont :" -#: ../Doc/distutils/builtdist.rst:75 +#: distutils/builtdist.rst:75 msgid "Format" msgstr "Format" -#: ../Doc/distutils/builtdist.rst:75 +#: distutils/builtdist.rst:75 msgid "Description" msgstr "Description" -#: ../Doc/distutils/builtdist.rst:75 +#: distutils/builtdist.rst:75 msgid "Notes" msgstr "Notes" -#: ../Doc/distutils/builtdist.rst:77 +#: distutils/builtdist.rst:77 msgid "``gztar``" msgstr "``gztar``" -#: ../Doc/distutils/builtdist.rst:77 +#: distutils/builtdist.rst:77 msgid "gzipped tar file (:file:`.tar.gz`)" msgstr "fichier *tar* *gzippé* (:file:`.tar.gz`)" -#: ../Doc/distutils/builtdist.rst:77 +#: distutils/builtdist.rst:77 msgid "\\(1)" msgstr "\\(1)" -#: ../Doc/distutils/builtdist.rst:80 +#: distutils/builtdist.rst:80 msgid "``bztar``" msgstr "``bztar``" -#: ../Doc/distutils/builtdist.rst:80 +#: distutils/builtdist.rst:80 msgid "bzipped tar file (:file:`.tar.bz2`)" msgstr "fichier *tar* de type *bzipped* (:file:`.tar.bz2`)" -#: ../Doc/distutils/builtdist.rst:83 +#: distutils/builtdist.rst:83 msgid "``xztar``" msgstr "``xztar``" -#: ../Doc/distutils/builtdist.rst:83 +#: distutils/builtdist.rst:83 msgid "xzipped tar file (:file:`.tar.xz`)" msgstr "fichier *tar* de type *xzipped* (:file:`.tar.xz`)" -#: ../Doc/distutils/builtdist.rst:86 +#: distutils/builtdist.rst:86 msgid "``ztar``" msgstr "``ztar``" -#: ../Doc/distutils/builtdist.rst:86 +#: distutils/builtdist.rst:86 msgid "compressed tar file (:file:`.tar.Z`)" msgstr "fichier *tar* compressé par *compress* (:file:`.tar.Z`)" -#: ../Doc/distutils/builtdist.rst:86 +#: distutils/builtdist.rst:86 msgid "\\(3)" msgstr "\\(3)" -#: ../Doc/distutils/builtdist.rst:89 +#: distutils/builtdist.rst:89 msgid "``tar``" msgstr "``tar``" -#: ../Doc/distutils/builtdist.rst:89 +#: distutils/builtdist.rst:89 msgid "tar file (:file:`.tar`)" msgstr "fichier *tar* (:file:`.tar`)" -#: ../Doc/distutils/builtdist.rst:91 +#: distutils/builtdist.rst:91 msgid "``zip``" msgstr "``zip``" -#: ../Doc/distutils/builtdist.rst:91 +#: distutils/builtdist.rst:91 msgid "zip file (:file:`.zip`)" msgstr "fichier *zip* (:file:`.zip`)" -#: ../Doc/distutils/builtdist.rst:91 +#: distutils/builtdist.rst:91 msgid "(2),(4)" msgstr "(2),(4)" -#: ../Doc/distutils/builtdist.rst:93 +#: distutils/builtdist.rst:93 msgid "``rpm``" msgstr "``rpm``" -#: ../Doc/distutils/builtdist.rst:93 +#: distutils/builtdist.rst:93 msgid "RPM" msgstr "RPM" -#: ../Doc/distutils/builtdist.rst:93 +#: distutils/builtdist.rst:93 msgid "\\(5)" msgstr "\\(5)" -#: ../Doc/distutils/builtdist.rst:95 +#: distutils/builtdist.rst:95 msgid "``pkgtool``" msgstr "``pkgtool``" -#: ../Doc/distutils/builtdist.rst:95 +#: distutils/builtdist.rst:95 msgid "Solaris :program:`pkgtool`" msgstr "Solaris :program:`pkgtool`" -#: ../Doc/distutils/builtdist.rst:97 +#: distutils/builtdist.rst:97 msgid "``sdux``" msgstr "``sdux``" -#: ../Doc/distutils/builtdist.rst:97 +#: distutils/builtdist.rst:97 msgid "HP-UX :program:`swinstall`" msgstr "HP-UX :program:`swinstall`" -#: ../Doc/distutils/builtdist.rst:99 +#: distutils/builtdist.rst:99 msgid "``wininst``" msgstr "``wininst``" -#: ../Doc/distutils/builtdist.rst:99 +#: distutils/builtdist.rst:99 msgid "self-extracting ZIP file for Windows" msgstr "fichier zip auto-extracteur Windows" -#: ../Doc/distutils/builtdist.rst:99 +#: distutils/builtdist.rst:99 msgid "\\(4)" msgstr "\\(4)" -#: ../Doc/distutils/builtdist.rst:102 +#: distutils/builtdist.rst:102 msgid "``msi``" msgstr "``msi``" -#: ../Doc/distutils/builtdist.rst:102 +#: distutils/builtdist.rst:102 msgid "Microsoft Installer." msgstr "Installateur Microsoft." -#: ../Doc/distutils/builtdist.rst:105 +#: distutils/builtdist.rst:105 msgid "Added support for the ``xztar`` format." msgstr "Ajout du support des fichiers ``xztar``." -#: ../Doc/distutils/builtdist.rst:109 +#: distutils/builtdist.rst:109 msgid "Notes:" msgstr "Notes :" -#: ../Doc/distutils/builtdist.rst:112 +#: distutils/builtdist.rst:112 msgid "default on Unix" msgstr "par défaut sur Unix" -#: ../Doc/distutils/builtdist.rst:115 +#: distutils/builtdist.rst:115 msgid "default on Windows" msgstr "par défaut sur Windows" -#: ../Doc/distutils/builtdist.rst:118 +#: distutils/builtdist.rst:118 msgid "requires external :program:`compress` utility." msgstr "nécessite un programme externe :program:`compress`." -#: ../Doc/distutils/builtdist.rst:121 +#: distutils/builtdist.rst:121 msgid "" "requires either external :program:`zip` utility or :mod:`zipfile` module " "(part of the standard Python library since Python 1.6)" @@ -320,7 +324,7 @@ msgstr "" "nécessite soit un utilitaire :program:`zip` extérieur ou le module :mod:" "`zipfile` (inclut dans la bibliothèque standard depuis Python 1.6)" -#: ../Doc/distutils/builtdist.rst:125 +#: distutils/builtdist.rst:125 msgid "" "requires external :program:`rpm` utility, version 3.0.4 or better (use ``rpm " "--version`` to find out which version you have)" @@ -328,16 +332,16 @@ msgstr "" "nécessite un programme externe :program:`rpm`, version 3.0.4 ou mieux " "(utilisez ``rpm --version`` pour connaître quelle version vous avez)" -#: ../Doc/distutils/builtdist.rst:128 +#: distutils/builtdist.rst:128 msgid "" "You don't have to use the :command:`bdist` command with the :option:`!--" "formats` option; you can also use the command that directly implements the " -"format you're interested in. Some of these :command:`bdist` \"sub-commands" -"\" actually generate several similar formats; for instance, the :command:" -"`bdist_dumb` command generates all the \"dumb\" archive formats (``tar``, " -"``gztar``, ``bztar``, ``xztar``, ``ztar``, and ``zip``), and :command:" -"`bdist_rpm` generates both binary and source RPMs. The :command:`bdist` sub-" -"commands, and the formats generated by each, are:" +"format you're interested in. Some of these :command:`bdist` \"sub-" +"commands\" actually generate several similar formats; for instance, the :" +"command:`bdist_dumb` command generates all the \"dumb\" archive formats " +"(``tar``, ``gztar``, ``bztar``, ``xztar``, ``ztar``, and ``zip``), and :" +"command:`bdist_rpm` generates both binary and source RPMs. The :command:" +"`bdist` sub-commands, and the formats generated by each, are:" msgstr "" "Vous ne devez pas utiliser la commande :command:`bdist` avec l'option :" "option:`!--formats` ; Vous pouvez également utiliser la commande qui " @@ -349,52 +353,51 @@ msgstr "" "Les sous-commandes :command:`bdist`, et les formats générés par chacun, " "sont :" -#: ../Doc/distutils/builtdist.rst:138 +#: distutils/builtdist.rst:138 msgid "Command" msgstr "Commande" -#: ../Doc/distutils/builtdist.rst:138 +#: distutils/builtdist.rst:138 msgid "Formats" msgstr "Formats" -#: ../Doc/distutils/builtdist.rst:140 +#: distutils/builtdist.rst:140 msgid ":command:`bdist_dumb`" msgstr ":command:`bdist_dumb`" -#: ../Doc/distutils/builtdist.rst:140 +#: distutils/builtdist.rst:140 msgid "tar, gztar, bztar, xztar, ztar, zip" msgstr "tar, gztar, bztar, xztar, ztar, zip" -#: ../Doc/distutils/builtdist.rst:142 +#: distutils/builtdist.rst:142 msgid ":command:`bdist_rpm`" msgstr ":command:`bdist_rpm`" -#: ../Doc/distutils/builtdist.rst:142 +#: distutils/builtdist.rst:142 msgid "rpm, srpm" msgstr "rpm, srpm" -#: ../Doc/distutils/builtdist.rst:144 +#: distutils/builtdist.rst:144 msgid ":command:`bdist_wininst`" msgstr ":command:`bdist_wininst`" -#: ../Doc/distutils/builtdist.rst:144 +#: distutils/builtdist.rst:144 msgid "wininst" msgstr "wininst" -#: ../Doc/distutils/builtdist.rst:146 +#: distutils/builtdist.rst:146 msgid ":command:`bdist_msi`" msgstr ":command:`bdist_msi`" -#: ../Doc/distutils/builtdist.rst:146 +#: distutils/builtdist.rst:146 msgid "msi" msgstr "msi" -#: ../Doc/distutils/builtdist.rst:150 ../Doc/distutils/builtdist.rst:305 -#: ../Doc/distutils/builtdist.rst:470 +#: distutils/builtdist.rst:305 distutils/builtdist.rst:470 msgid "bdist_wininst is deprecated since Python 3.8." -msgstr "" +msgstr "`bdist_wininst` est obsolète depuis Python 3.8." -#: ../Doc/distutils/builtdist.rst:152 +#: distutils/builtdist.rst:152 msgid "" "The following sections give details on the individual :command:`bdist_\\*` " "commands." @@ -402,11 +405,11 @@ msgstr "" "Le chapitre suivant donne des détails individuel sur les commandes :command:" "`bdist_\\*`." -#: ../Doc/distutils/builtdist.rst:168 +#: distutils/builtdist.rst:168 msgid "Creating RPM packages" msgstr "Créer un paquet RPM" -#: ../Doc/distutils/builtdist.rst:170 +#: distutils/builtdist.rst:170 msgid "" "The RPM format is used by many popular Linux distributions, including Red " "Hat, SuSE, and Mandrake. If one of these (or any of the other RPM-based " @@ -424,7 +427,7 @@ msgstr "" "entre les distributions Linux, vous pourrez aussi créer des RPM qui " "fonctionneront sur des distributions RPM différentes." -#: ../Doc/distutils/builtdist.rst:177 +#: distutils/builtdist.rst:177 msgid "" "The usual way to create an RPM of your module distribution is to run the :" "command:`bdist_rpm` command::" @@ -432,11 +435,11 @@ msgstr "" "La manière habituelle de créer un RPM de votre module est d'utiliser la " "commande :command:`bdist_rpm` ::" -#: ../Doc/distutils/builtdist.rst:182 +#: distutils/builtdist.rst:182 msgid "or the :command:`bdist` command with the :option:`!--format` option::" msgstr "ou la commande :command:`bdist` avec l'option :option:`!--format` ::" -#: ../Doc/distutils/builtdist.rst:186 +#: distutils/builtdist.rst:186 msgid "" "The former allows you to specify RPM-specific options; the latter allows " "you to easily specify multiple formats in one run. If you need to do both, " @@ -448,7 +451,7 @@ msgstr "" "avez besoin d'utiliser les deux, vous pouvez explicitement spécifier " "plusieurs commandes :command:`bdist_\\*` et leurs options ::" -#: ../Doc/distutils/builtdist.rst:193 +#: distutils/builtdist.rst:193 msgid "" "Creating RPM packages is driven by a :file:`.spec` file, much as using the " "Distutils is driven by the setup script. To make your life easier, the :" @@ -465,43 +468,43 @@ msgstr "" "Beaucoup d'options du fichier :file:`.spec` sont dérivées des options du " "script de préparation suivant :" -#: ../Doc/distutils/builtdist.rst:201 ../Doc/distutils/builtdist.rst:225 +#: distutils/builtdist.rst:225 msgid "RPM :file:`.spec` file option or section" msgstr "Option de fichier RPM :file:`.spec`" -#: ../Doc/distutils/builtdist.rst:201 +#: distutils/builtdist.rst:201 msgid "Distutils setup script option" msgstr "Options du script de préparation Distutils" -#: ../Doc/distutils/builtdist.rst:203 +#: distutils/builtdist.rst:203 msgid "Name" msgstr "Nom" -#: ../Doc/distutils/builtdist.rst:203 +#: distutils/builtdist.rst:203 msgid "``name``" msgstr "``name``" -#: ../Doc/distutils/builtdist.rst:205 +#: distutils/builtdist.rst:205 msgid "Summary (in preamble)" msgstr "*Summary* (dans le préambule)" -#: ../Doc/distutils/builtdist.rst:205 +#: distutils/builtdist.rst:205 msgid "``description``" msgstr "``description``" -#: ../Doc/distutils/builtdist.rst:207 +#: distutils/builtdist.rst:207 msgid "Version" msgstr "Version" -#: ../Doc/distutils/builtdist.rst:207 +#: distutils/builtdist.rst:207 msgid "``version``" msgstr "``version``" -#: ../Doc/distutils/builtdist.rst:209 ../Doc/distutils/builtdist.rst:232 +#: distutils/builtdist.rst:232 msgid "Vendor" msgstr "Vendor" -#: ../Doc/distutils/builtdist.rst:209 +#: distutils/builtdist.rst:209 msgid "" "``author`` and ``author_email``, or --- & ``maintainer`` and " "``maintainer_email``" @@ -509,31 +512,31 @@ msgstr "" "``author`` et ``author_email``, ou --- & ``maintainer`` et " "``maintainer_email``" -#: ../Doc/distutils/builtdist.rst:213 +#: distutils/builtdist.rst:213 msgid "Copyright" msgstr "Copyright" -#: ../Doc/distutils/builtdist.rst:213 +#: distutils/builtdist.rst:213 msgid "``license``" msgstr "``license``" -#: ../Doc/distutils/builtdist.rst:215 +#: distutils/builtdist.rst:215 msgid "Url" msgstr "Url" -#: ../Doc/distutils/builtdist.rst:215 +#: distutils/builtdist.rst:215 msgid "``url``" msgstr "``url``" -#: ../Doc/distutils/builtdist.rst:217 +#: distutils/builtdist.rst:217 msgid "%description (section)" msgstr "%description (section)" -#: ../Doc/distutils/builtdist.rst:217 +#: distutils/builtdist.rst:217 msgid "``long_description``" msgstr "``long_description``" -#: ../Doc/distutils/builtdist.rst:220 +#: distutils/builtdist.rst:220 msgid "" "Additionally, there are many options in :file:`.spec` files that don't have " "corresponding options in the setup script. Most of these are handled " @@ -543,118 +546,116 @@ msgstr "" "aucun équivalent dans le script de préparation. La plupart de celles ci sont " "gérées par les options de la commande :command:`bdist_rpm` suivant :" -#: ../Doc/distutils/builtdist.rst:225 +#: distutils/builtdist.rst:225 msgid ":command:`bdist_rpm` option" msgstr "Option de :command:`bdist_rpm`" -#: ../Doc/distutils/builtdist.rst:225 +#: distutils/builtdist.rst:225 msgid "default value" msgstr "valeur par défaut" -#: ../Doc/distutils/builtdist.rst:228 +#: distutils/builtdist.rst:228 msgid "Release" msgstr "Version" -#: ../Doc/distutils/builtdist.rst:228 +#: distutils/builtdist.rst:228 msgid "``release``" msgstr "``release``" -#: ../Doc/distutils/builtdist.rst:228 +#: distutils/builtdist.rst:228 msgid "\"1\"" msgstr "\"1\"" -#: ../Doc/distutils/builtdist.rst:230 +#: distutils/builtdist.rst:230 msgid "Group" msgstr "Group" -#: ../Doc/distutils/builtdist.rst:230 +#: distutils/builtdist.rst:230 msgid "``group``" msgstr "``group``" -#: ../Doc/distutils/builtdist.rst:230 +#: distutils/builtdist.rst:230 msgid "\"Development/Libraries\"" msgstr "\"Développement/Bibliothèques\"" -#: ../Doc/distutils/builtdist.rst:232 +#: distutils/builtdist.rst:232 msgid "``vendor``" msgstr "``vendor``" -#: ../Doc/distutils/builtdist.rst:232 +#: distutils/builtdist.rst:232 msgid "(see above)" msgstr "(voir au-dessus)" -#: ../Doc/distutils/builtdist.rst:234 +#: distutils/builtdist.rst:234 msgid "Packager" msgstr "Packager" -#: ../Doc/distutils/builtdist.rst:234 +#: distutils/builtdist.rst:234 msgid "``packager``" msgstr "``packager``" -#: ../Doc/distutils/builtdist.rst:234 ../Doc/distutils/builtdist.rst:236 -#: ../Doc/distutils/builtdist.rst:238 ../Doc/distutils/builtdist.rst:240 -#: ../Doc/distutils/builtdist.rst:242 ../Doc/distutils/builtdist.rst:244 -#: ../Doc/distutils/builtdist.rst:246 ../Doc/distutils/builtdist.rst:248 +#: distutils/builtdist.rst:236 distutils/builtdist.rst:240 +#: distutils/builtdist.rst:244 distutils/builtdist.rst:248 msgid "(none)" msgstr "(none)" -#: ../Doc/distutils/builtdist.rst:236 +#: distutils/builtdist.rst:236 msgid "Provides" msgstr "Provides" -#: ../Doc/distutils/builtdist.rst:236 +#: distutils/builtdist.rst:236 msgid "``provides``" msgstr "``provides``" -#: ../Doc/distutils/builtdist.rst:238 +#: distutils/builtdist.rst:238 msgid "Requires" msgstr "Requires" -#: ../Doc/distutils/builtdist.rst:238 +#: distutils/builtdist.rst:238 msgid "``requires``" msgstr "``requires``" -#: ../Doc/distutils/builtdist.rst:240 +#: distutils/builtdist.rst:240 msgid "Conflicts" msgstr "Conflicts" -#: ../Doc/distutils/builtdist.rst:240 +#: distutils/builtdist.rst:240 msgid "``conflicts``" msgstr "``conflicts``" -#: ../Doc/distutils/builtdist.rst:242 +#: distutils/builtdist.rst:242 msgid "Obsoletes" msgstr "Obsoletes" -#: ../Doc/distutils/builtdist.rst:242 +#: distutils/builtdist.rst:242 msgid "``obsoletes``" msgstr "``obsoletes``" -#: ../Doc/distutils/builtdist.rst:244 +#: distutils/builtdist.rst:244 msgid "Distribution" msgstr "Distribution" -#: ../Doc/distutils/builtdist.rst:244 +#: distutils/builtdist.rst:244 msgid "``distribution_name``" msgstr "``distribution_name``" -#: ../Doc/distutils/builtdist.rst:246 +#: distutils/builtdist.rst:246 msgid "BuildRequires" msgstr "BuildRequires" -#: ../Doc/distutils/builtdist.rst:246 +#: distutils/builtdist.rst:246 msgid "``build_requires``" msgstr "``build_requires``" -#: ../Doc/distutils/builtdist.rst:248 +#: distutils/builtdist.rst:248 msgid "Icon" msgstr "Icon" -#: ../Doc/distutils/builtdist.rst:248 +#: distutils/builtdist.rst:248 msgid "``icon``" msgstr "``icon``" -#: ../Doc/distutils/builtdist.rst:251 +#: distutils/builtdist.rst:251 msgid "" "Obviously, supplying even a few of these options on the command-line would " "be tedious and error-prone, so it's usually best to put them in the setup " @@ -674,7 +675,7 @@ msgstr "" "pydistutils.cfg`). Si vous voulez temporairement désactiver ce fichier, vous " "pouvez passer l'option :option:`!--no-user-cfg` à :file:`setup.py`." -#: ../Doc/distutils/builtdist.rst:259 +#: distutils/builtdist.rst:259 msgid "" "There are three steps to building a binary RPM package, all of which are " "handled automatically by the Distutils:" @@ -682,7 +683,7 @@ msgstr "" "La création de binaire RPM se fait en trois étapes, chacune gérée " "automatiquement par Distutils :" -#: ../Doc/distutils/builtdist.rst:262 +#: distutils/builtdist.rst:262 msgid "" "create a :file:`.spec` file, which describes the package (analogous to the " "Distutils setup script; in fact, much of the information in the setup " @@ -692,11 +693,11 @@ msgstr "" "préparation Distutils, en réalité la plupart des informations du script de " "préparation se retrouve dans le fichier :file:`.spec`)" -#: ../Doc/distutils/builtdist.rst:266 +#: distutils/builtdist.rst:266 msgid "create the source RPM" msgstr "crée un RPM source" -#: ../Doc/distutils/builtdist.rst:268 +#: distutils/builtdist.rst:268 msgid "" "create the \"binary\" RPM (which may or may not contain binary code, " "depending on whether your module distribution contains Python extensions)" @@ -704,7 +705,7 @@ msgstr "" "crée le RPM \"binaire\" (qui peut ou non contenir des binaires, tout dépend " "de si votre module contiens des extensions)" -#: ../Doc/distutils/builtdist.rst:271 +#: distutils/builtdist.rst:271 msgid "" "Normally, RPM bundles the last two steps together; when you use the " "Distutils, all three steps are typically bundled together." @@ -712,7 +713,7 @@ msgstr "" "Normalement, RPM réunit les deux dernières étapes ensemble ; quand vous " "utilisez Distutils, les trois étapes sont regroupées." -#: ../Doc/distutils/builtdist.rst:274 +#: distutils/builtdist.rst:274 msgid "" "If you wish, you can separate these three steps. You can use the :option:" "`!--spec-only` option to make :command:`bdist_rpm` just create the :file:`." @@ -731,11 +732,11 @@ msgstr "" "fichier :file:`.spec` se retrouve profondément enfoui dans l'arborescence, " "dans un dossier temporaire créé par la commande :command:`bdist_rpm`.)" -#: ../Doc/distutils/builtdist.rst:302 +#: distutils/builtdist.rst:302 msgid "Creating Windows Installers" msgstr "Créer un installateur Windows" -#: ../Doc/distutils/builtdist.rst:307 +#: distutils/builtdist.rst:307 msgid "" "Executable installers are the natural format for binary distributions on " "Windows. They display a nice graphical user interface, display some " @@ -749,7 +750,7 @@ msgstr "" "dans le script de préparation, laisse l'utilisateur choisir quelques options " "et démarrer ou annuler l'installation." -#: ../Doc/distutils/builtdist.rst:313 +#: distutils/builtdist.rst:313 msgid "" "Since the metadata is taken from the setup script, creating Windows " "installers is usually as easy as running::" @@ -757,24 +758,24 @@ msgstr "" "Étant donné que les métadonnées sont tirées du script de préparation, créer " "un installateur Windows est généralement facile, il suffit de lancer ::" -#: ../Doc/distutils/builtdist.rst:318 +#: distutils/builtdist.rst:318 msgid "or the :command:`bdist` command with the :option:`!--formats` option::" msgstr "ou la commande :command:`bdist` avec l'option :option:`!--formats` ::" -#: ../Doc/distutils/builtdist.rst:322 -#, fuzzy +#: distutils/builtdist.rst:322 msgid "" "If you have a pure module distribution (only containing pure Python modules " "and packages), the resulting installer will be version independent and have " "a name like :file:`foo-1.0.win32.exe`. Note that creating ``wininst`` binary " "distributions in only supported on Windows systems." msgstr "" -"Si vous avez un module pur (contenant seulement des modules et des packages " -"en Python pur), l'installateur final ne sera lié a aucune version de Python " -"et aura un nom du type :file:`foo-1.0.win32.exe`. Ces installateurs peuvent " -"même être créés sur les plateformes Unix ou Mac OS X." +"Si vous avez une distribution de modules purs (contenant seulement des " +"modules et des packages en Python pur), l'installateur produit n'est lié à " +"aucune version de Python et a un nom du type :file:`foo-1.0.win32.exe`. " +"Notez que la création de distributions binaires ``wininst`` n'est prise en " +"charge que sur les systèmes Windows." -#: ../Doc/distutils/builtdist.rst:327 +#: distutils/builtdist.rst:327 msgid "" "If you have a non-pure distribution, the extensions can only be created on a " "Windows platform, and will be Python version dependent. The installer " @@ -788,7 +789,7 @@ msgstr "" "py2.0.exe`. Vous devrez créer un installateur pour chaque version de Python " "que vous voulez supporter." -#: ../Doc/distutils/builtdist.rst:333 +#: distutils/builtdist.rst:333 msgid "" "The installer will try to compile pure modules into :term:`bytecode` after " "installation on the target system in normal and optimizing mode. If you " @@ -802,7 +803,7 @@ msgstr "" "`bdist_wininst` avec l'option :option:`!--no-target-compile` et/ou l'option :" "option:`!--no-target-optimize`." -#: ../Doc/distutils/builtdist.rst:339 +#: distutils/builtdist.rst:339 msgid "" "By default the installer will display the cool \"Python Powered\" logo when " "it is run, but you can also supply your own 152x261 bitmap which must be a " @@ -812,7 +813,7 @@ msgstr "" "vous pouvez aussi donnez votre propre bitmap de 152x261 qui doit être un " "fichier :file:`.bmp` Windows avec l'option :option:`!--bitmap`." -#: ../Doc/distutils/builtdist.rst:343 +#: distutils/builtdist.rst:343 msgid "" "The installer will also display a large title on the desktop background " "window when it is run, which is constructed from the name of your " @@ -824,7 +825,7 @@ msgstr "" "version. Cela peut être changé avec un autre texte avec l'option :option:`!--" "title`." -#: ../Doc/distutils/builtdist.rst:348 +#: distutils/builtdist.rst:348 msgid "" "The installer file will be written to the \"distribution directory\" --- " "normally :file:`dist/`, but customizable with the :option:`!--dist-dir` " @@ -834,11 +835,11 @@ msgstr "" "(\"*distribution directory*\") --- normalement :file:`dist/`, mais " "personnalisable avec l'option :option:`!--dist-dir`." -#: ../Doc/distutils/builtdist.rst:354 +#: distutils/builtdist.rst:354 msgid "Cross-compiling on Windows" msgstr "Compiler pour toute les plateformes Windows" -#: ../Doc/distutils/builtdist.rst:356 +#: distutils/builtdist.rst:356 msgid "" "Starting with Python 2.6, distutils is capable of cross-compiling between " "Windows platforms. In practice, this means that with the correct tools " @@ -850,7 +851,7 @@ msgstr "" "installés, vous pouvez utiliser une version 32 bits de Windows pour créer " "une extension 64 bits et vice-versa." -#: ../Doc/distutils/builtdist.rst:361 +#: distutils/builtdist.rst:361 msgid "" "To build for an alternate platform, specify the :option:`!--plat-name` " "option to the build command. Valid values are currently 'win32', and 'win-" @@ -861,7 +862,7 @@ msgstr "" "actuellement **'win32'**, et **'win-amd64'**. Par exemple, sur une version " "*32bit* de Windows, vous pourriez exécuter ::" -#: ../Doc/distutils/builtdist.rst:367 +#: distutils/builtdist.rst:367 msgid "" "to build a 64bit version of your extension. The Windows Installers also " "support this option, so the command::" @@ -869,7 +870,7 @@ msgstr "" "pour construire une version 64 bits de votre module. L'installateur Windows " "supporte aussi cette option, donc la commande ::" -#: ../Doc/distutils/builtdist.rst:372 +#: distutils/builtdist.rst:372 msgid "" "would create a 64bit installation executable on your 32bit version of " "Windows." @@ -877,7 +878,7 @@ msgstr "" "créera un installateur exécutable 64 bits depuis votre version 32 bits de " "Windows." -#: ../Doc/distutils/builtdist.rst:374 +#: distutils/builtdist.rst:374 msgid "" "To cross-compile, you must download the Python source code and cross-compile " "Python itself for the platform you are targeting - it is not possible from a " @@ -897,7 +898,7 @@ msgstr "" "l'arborescence des sources de Python et construire la version *x64* du " "projet *pythoncore* avant de pouvoir compiler son extension." -#: ../Doc/distutils/builtdist.rst:383 +#: distutils/builtdist.rst:383 msgid "" "Note that by default, Visual Studio 2008 does not install 64bit compilers or " "tools. You may need to reexecute the Visual Studio setup process and select " @@ -910,11 +911,11 @@ msgstr "" "> [Ajouter/Supprimer]* est un bon moyen de vérifier ou modifier votre " "installation existante.)" -#: ../Doc/distutils/builtdist.rst:391 +#: distutils/builtdist.rst:391 msgid "The Postinstallation script" msgstr "Le script de post-installation" -#: ../Doc/distutils/builtdist.rst:393 +#: distutils/builtdist.rst:393 msgid "" "Starting with Python 2.3, a postinstallation script can be specified with " "the :option:`!--install-script` option. The basename of the script must be " @@ -925,7 +926,7 @@ msgstr "" "l'option :option:`!--install-script`. Le nom du script doit être spécifié et " "présent dans l'argument \"scripts\" de la fonction ``setup``." -#: ../Doc/distutils/builtdist.rst:398 +#: distutils/builtdist.rst:398 msgid "" "This script will be run at installation time on the target system after all " "the files have been copied, with ``argv[1]`` set to :option:`!-install`, and " @@ -938,7 +939,7 @@ msgstr "" "que les fichiers soient supprimés avec la valeur de ``argv[1]`` à :option:`!-" "remove`." -#: ../Doc/distutils/builtdist.rst:403 +#: distutils/builtdist.rst:403 msgid "" "The installation script runs embedded in the windows installer, every output " "(``sys.stdout``, ``sys.stderr``) is redirected into a buffer and will be " @@ -948,7 +949,7 @@ msgstr "" "chaque sortie (``sys.stdout``, ``sys.stderr``) est redirigé dans le tampon " "et sera affiché dans le GUI après que les scripts soient finis." -#: ../Doc/distutils/builtdist.rst:407 +#: distutils/builtdist.rst:407 msgid "" "Some functions especially useful in this context are available as additional " "built-in functions in the installation script." @@ -956,7 +957,7 @@ msgstr "" "Certaines fonctions spécialement utiles dans ce contexte sont disponibles " "comme fonctions natives additionnelles dans le script d'installation." -#: ../Doc/distutils/builtdist.rst:414 +#: distutils/builtdist.rst:414 msgid "" "These functions should be called when a directory or file is created by the " "postinstall script at installation time. It will register *path* with the " @@ -969,7 +970,7 @@ msgstr "" "lors de la des-installation de la distribution. pour être sûr, les " "répertoires sont uniquement retirés s'ils sont vides." -#: ../Doc/distutils/builtdist.rst:422 +#: distutils/builtdist.rst:422 msgid "" "This function can be used to retrieve special folder locations on Windows " "like the Start Menu or the Desktop. It returns the full path to the folder. " @@ -980,11 +981,11 @@ msgstr "" "renvoie le chemin complet pour le fichier. *csidl_string* doit être unes des " "chaines suivantes ::" -#: ../Doc/distutils/builtdist.rst:442 +#: distutils/builtdist.rst:442 msgid "If the folder cannot be retrieved, :exc:`OSError` is raised." msgstr "Si le fichier ne peut être extrait, :exc:`OSError` est obtenu.." -#: ../Doc/distutils/builtdist.rst:444 +#: distutils/builtdist.rst:444 msgid "" "Which folders are available depends on the exact Windows version, and " "probably also the configuration. For details refer to Microsoft's " @@ -994,7 +995,7 @@ msgstr "" "probablement aussi de la configuration. pour des détails se référer à la " "documentation Microsoft de la fonction :c:func:`SHGetSpecialFolderPath`." -#: ../Doc/distutils/builtdist.rst:451 +#: distutils/builtdist.rst:451 msgid "" "This function creates a shortcut. *target* is the path to the program to be " "started by the shortcut. *description* is the description of the shortcut. " @@ -1014,11 +1015,11 @@ msgstr "" "l’icône dans le fichier *cheminIcone*. Encore, pour les détails consulter la " "documentation Microsoft pour l'interface :class:`ILienShell`." -#: ../Doc/distutils/builtdist.rst:462 +#: distutils/builtdist.rst:462 msgid "Vista User Access Control (UAC)" msgstr "Contrôle d'accès utilisateur Vista (UAC)" -#: ../Doc/distutils/builtdist.rst:464 +#: distutils/builtdist.rst:464 msgid "" "Starting with Python 2.6, bdist_wininst supports a :option:`!--user-access-" "control` option. The default is 'none' (meaning no UAC handling is done), " diff --git a/distutils/commandref.po b/distutils/commandref.po index c0a50924c3..8c02e749dd 100644 --- a/distutils/commandref.po +++ b/distutils/commandref.po @@ -5,14 +5,15 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: 2018-10-04 15:27+0200\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2020-05-23 11:38+0200\n" +"PO-Revision-Date: 2020-02-04 20:09+0100\n" +"Last-Translator: ZepmanBC \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.4\n" #: ../Doc/distutils/commandref.rst:5 msgid "Command Reference" @@ -24,6 +25,10 @@ msgid "" "documentation at https://setuptools.readthedocs.io/en/latest/setuptools.html " "independently covers all of the relevant information currently included here." msgstr "" +"Cette page est conservée uniquement jusqu'à ce que la documentation " +"``setuptool`` sur https://setuptools.readthedocs.io/en/latest/setuptools." +"html couvre de manière indépendante toutes les informations pertinentes " +"actuellement incluses ici." #: ../Doc/distutils/commandref.rst:24 msgid "Installing modules: the :command:`install` command family" diff --git a/distutils/configfile.po b/distutils/configfile.po index 0c59b4c024..334b1c4fc9 100644 --- a/distutils/configfile.po +++ b/distutils/configfile.po @@ -5,14 +5,15 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2020-05-23 11:38+0200\n" +"PO-Revision-Date: 2020-02-04 21:19+0100\n" +"Last-Translator: ZepmanBC \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.4\n" #: ../Doc/distutils/configfile.rst:5 msgid "Writing the Setup Configuration File" @@ -24,6 +25,10 @@ msgid "" "documentation at https://setuptools.readthedocs.io/en/latest/setuptools.html " "independently covers all of the relevant information currently included here." msgstr "" +"Cette page est conservée uniquement jusqu'à ce que la documentation " +"``setuptool`` sur https://setuptools.readthedocs.io/en/latest/setuptools." +"html couvre de manière indépendante toutes les informations pertinentes " +"actuellement incluses ici." #: ../Doc/distutils/configfile.rst:9 msgid "" diff --git a/distutils/examples.po b/distutils/examples.po index fa87b74ae7..2e560c7794 100644 --- a/distutils/examples.po +++ b/distutils/examples.po @@ -5,14 +5,15 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-09 17:54+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2020-05-23 11:38+0200\n" +"PO-Revision-Date: 2020-02-04 21:20+0100\n" +"Last-Translator: ZepmanBC \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.4\n" #: ../Doc/distutils/examples.rst:5 #, fuzzy @@ -25,6 +26,10 @@ msgid "" "documentation at https://setuptools.readthedocs.io/en/latest/setuptools.html " "independently covers all of the relevant information currently included here." msgstr "" +"Cette page est conservée uniquement jusqu'à ce que la documentation " +"``setuptool`` sur https://setuptools.readthedocs.io/en/latest/setuptools." +"html couvre de manière indépendante toutes les informations pertinentes " +"actuellement incluses ici." #: ../Doc/distutils/examples.rst:9 msgid "" diff --git a/distutils/extending.po b/distutils/extending.po index a324fec4cc..fe5eaaa32b 100644 --- a/distutils/extending.po +++ b/distutils/extending.po @@ -5,15 +5,15 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: 2018-11-30 14:00+0100\n" -"Last-Translator: Jules Lasne \n" +"POT-Creation-Date: 2020-05-23 11:38+0200\n" +"PO-Revision-Date: 2020-02-04 21:20+0100\n" +"Last-Translator: ZepmanBC \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2\n" +"X-Generator: Poedit 2.2.4\n" #: ../Doc/distutils/extending.rst:5 msgid "Extending Distutils" @@ -25,6 +25,10 @@ msgid "" "documentation at https://setuptools.readthedocs.io/en/latest/setuptools.html " "independently covers all of the relevant information currently included here." msgstr "" +"Cette page est conservée uniquement jusqu'à ce que la documentation " +"``setuptool`` sur https://setuptools.readthedocs.io/en/latest/setuptools." +"html couvre de manière indépendante toutes les informations pertinentes " +"actuellement incluses ici." #: ../Doc/distutils/extending.rst:9 msgid "" diff --git a/distutils/index.po b/distutils/index.po index 3414c310eb..caef672127 100644 --- a/distutils/index.po +++ b/distutils/index.po @@ -5,14 +5,15 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: 2018-07-04 11:20+0200\n" -"Last-Translator: Julien Palard \n" +"POT-Creation-Date: 2020-05-23 11:38+0200\n" +"PO-Revision-Date: 2020-02-04 21:20+0100\n" +"Last-Translator: ZepmanBC \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.4\n" #: ../Doc/distutils/index.rst:5 msgid "Distributing Python Modules (Legacy version)" @@ -48,6 +49,10 @@ msgid "" "documentation at https://setuptools.readthedocs.io/en/latest/setuptools.html " "independently covers all of the relevant information currently included here." msgstr "" +"Cette page est conservée uniquement jusqu'à ce que la documentation " +"``setuptool`` sur https://setuptools.readthedocs.io/en/latest/setuptools." +"html couvre de manière indépendante toutes les informations pertinentes " +"actuellement incluses ici." #: ../Doc/distutils/index.rst:19 msgid "" @@ -65,7 +70,6 @@ msgstr "" "d'informations." #: ../Doc/distutils/index.rst:25 -#, fuzzy msgid "" "This document describes the Python Distribution Utilities (\"Distutils\") " "from the module developer's point of view, describing the underlying " @@ -73,7 +77,7 @@ msgid "" "make Python modules and extensions readily available to a wider audience." msgstr "" "Ce document décrit les outils de distribution de Python (\"Distutils\") du " -"point de vue d'un développeur de modules. Il décrit comment utiliser " -"`Distutils` pour rendre des modules et extensions Python disponible à une " -"large audience, simplement, avec un faible surcoût sur les mécaniques de " -"construction, déploiement et installation." +"point de vue d'un développeur de modules. Il décrit les capacités sous-" +"jacentes sur lesquelles ``setuptools`` s'appuie pour permettre aux " +"développeurs Python de créer des modules Python et des extensions " +"disponibles à une large audience." diff --git a/distutils/introduction.po b/distutils/introduction.po index 78315f0cc8..3ebd83b55d 100644 --- a/distutils/introduction.po +++ b/distutils/introduction.po @@ -3,69 +3,82 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3\n" +"Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2020-05-23 11:38+0200\n" +"PO-Revision-Date: 2020-03-23 14:58+0100\n" +"Last-Translator: Eric Régnier \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.6\n" -#: ../Doc/distutils/introduction.rst:5 +#: distutils/introduction.rst:5 msgid "An Introduction to Distutils" -msgstr "" +msgstr "Introduction à Distutils" -#: ../Doc/distutils/_setuptools_disclaimer.rst:3 +#: distutils/_setuptools_disclaimer.rst:3 msgid "" "This document is being retained solely until the ``setuptools`` " "documentation at https://setuptools.readthedocs.io/en/latest/setuptools.html " "independently covers all of the relevant information currently included here." msgstr "" +"Cette page est conservée uniquement jusqu'à ce que la documentation " +"``setuptool`` sur https://setuptools.readthedocs.io/en/latest/setuptools." +"html couvre de manière indépendante toutes les informations pertinentes " +"actuellement incluses ici." -#: ../Doc/distutils/introduction.rst:9 +#: distutils/introduction.rst:9 msgid "" "This document covers using the Distutils to distribute your Python modules, " "concentrating on the role of developer/distributor: if you're looking for " "information on installing Python modules, you should refer to the :ref:" "`install-index` chapter." msgstr "" +"Ce document traite de l'utilisation de Distutils pour distribuer des modules " +"Python, en se concentrant sur le rôle de développeur/distributeur : si vous " +"cherchez des informations sur l'installation de modules Python, vous devriez " +"vous référer au chapitre :ref:`install-index`." -#: ../Doc/distutils/introduction.rst:18 +#: distutils/introduction.rst:18 msgid "Concepts & Terminology" msgstr "Concepts et Terminologie" -#: ../Doc/distutils/introduction.rst:20 +#: distutils/introduction.rst:20 msgid "" "Using the Distutils is quite simple, both for module developers and for " "users/administrators installing third-party modules. As a developer, your " "responsibilities (apart from writing solid, well-documented and well-tested " "code, of course!) are:" msgstr "" +"Utiliser Distuils est assez simple, à la fois pour les développeurs de " +"module et pour les utilisateurs/administrateurs qui installent des modules " +"tiers. En tant que développeur, vos responsabilités (en plus d'écrire du " +"code solide, bien documenté et bien testé, bien entendu !) sont :" -#: ../Doc/distutils/introduction.rst:25 +#: distutils/introduction.rst:25 msgid "write a setup script (:file:`setup.py` by convention)" -msgstr "" +msgstr "écrire un script d'installation (:file:`setup.py` par convention) ;" -#: ../Doc/distutils/introduction.rst:27 +#: distutils/introduction.rst:27 msgid "(optional) write a setup configuration file" -msgstr "" +msgstr "(optionnel) écrire un fichier de configuration pour l'installation ;" -#: ../Doc/distutils/introduction.rst:29 +#: distutils/introduction.rst:29 msgid "create a source distribution" -msgstr "" +msgstr "créer une distribution source ;" -#: ../Doc/distutils/introduction.rst:31 +#: distutils/introduction.rst:31 msgid "(optional) create one or more built (binary) distributions" -msgstr "" +msgstr "(optionnel) créer une ou plusieurs distributions compilées (binaires)." -#: ../Doc/distutils/introduction.rst:33 +#: distutils/introduction.rst:33 msgid "Each of these tasks is covered in this document." -msgstr "" +msgstr "Chacune de ces tâches est couverte dans ce document." -#: ../Doc/distutils/introduction.rst:35 +#: distutils/introduction.rst:35 msgid "" "Not all module developers have access to a multitude of platforms, so it's " "not always feasible to expect them to create a multitude of built " @@ -77,12 +90,22 @@ msgid "" "module distributions in the most natural way for their platform, without " "having to run a single setup script or compile a line of code." msgstr "" - -#: ../Doc/distutils/introduction.rst:49 +"Tous les développeurs de modules n'ont pas accès à une multitude de " +"plateformes, donc on ne peut pas exiger d'eux qu'ils créent une multitude de " +"distributions compilées. On s'attend à ce que certains intermédiaires, " +"appelés *packagers*, prennent en charge ce besoin. Les packagers vont " +"prendre les sources des distributions publiées par les développeurs de " +"modules, les construire sur on ou plusieurs plateformes, et publier les " +"distributions compilées résultantes. Ainsi, les utilisateurs sur les " +"plateformes les plus populaires vont pouvoir installer la plupart des " +"modules Python de la façon la plus naturelle qui soit pour leur plateforme, " +"sans avoir à exécuter de script ou à compiler du code." + +#: distutils/introduction.rst:49 msgid "A Simple Example" msgstr "Un exemple simple" -#: ../Doc/distutils/introduction.rst:51 +#: distutils/introduction.rst:51 msgid "" "The setup script is usually quite simple, although since it's written in " "Python, there are no arbitrary limits to what you can do with it, though you " @@ -91,78 +114,113 @@ msgid "" "script may be run multiple times in the course of building and installing " "your module distribution." msgstr "" +"Le script d'installation est habituellement assez simple, même s'il n'y a " +"pas de limite à ce qu'il peut faire (il est écrit en Python, n'est-ce " +"pas ?). Veillez d'ailleurs à ne pas surcharger ce script avec des opérations " +"coûteuses car, contrairement aux scripts de configuration façon Autoconf, le " +"script d'installation peut être amené à être exécuté plusieurs fois au cours " +"de la compilation et de l'installation du module. " -#: ../Doc/distutils/introduction.rst:58 +#: distutils/introduction.rst:58 msgid "" "If all you want to do is distribute a module called :mod:`foo`, contained in " "a file :file:`foo.py`, then your setup script can be as simple as this::" msgstr "" +"Si tout ce que vous voulez est de distribuer un module appelé :mod:`foo`, " +"contenu dans un fichier :file:`foo.py`, alors votre script d'installation " +"peut se résumer à :" -#: ../Doc/distutils/introduction.rst:67 +#: distutils/introduction.rst:67 msgid "Some observations:" -msgstr "" +msgstr "Quelques observations :" -#: ../Doc/distutils/introduction.rst:69 +#: distutils/introduction.rst:69 msgid "" "most information that you supply to the Distutils is supplied as keyword " "arguments to the :func:`setup` function" msgstr "" +"la plupart des informations que vous fournissez à Distutils sont fournies en " +"tant que qu'arguments nommés à la fonction :func:`setup`;" -#: ../Doc/distutils/introduction.rst:72 +#: distutils/introduction.rst:72 msgid "" "those keyword arguments fall into two categories: package metadata (name, " "version number) and information about what's in the package (a list of pure " "Python modules, in this case)" msgstr "" +"ces arguments nommés tombent dans deux catégories : métadonnées du paquet " +"(nom, numéro de version) et des informations sur le contenu du paquet paquet " +"(une liste de purs modules Python, dans ce cas) ; " -#: ../Doc/distutils/introduction.rst:76 +#: distutils/introduction.rst:76 msgid "" "modules are specified by module name, not filename (the same will hold true " "for packages and extensions)" msgstr "" +"les modules sont listés par nom de module, plutôt que par nom de fichier (le " +"cas est similaire pour les paquets et extensions) ;" -#: ../Doc/distutils/introduction.rst:79 +#: distutils/introduction.rst:79 msgid "" "it's recommended that you supply a little more metadata, in particular your " "name, email address and a URL for the project (see section :ref:`setup-" "script` for an example)" msgstr "" +"il est recommandé de fournir un minimum de métadonnées, en particulier votre " +"nom, une adresse de courriel et une URL pour le projet (voir section :ref:" +"`setup-script` pour un exemple)." -#: ../Doc/distutils/introduction.rst:83 +#: distutils/introduction.rst:83 msgid "" "To create a source distribution for this module, you would create a setup " "script, :file:`setup.py`, containing the above code, and run this command " "from a terminal::" msgstr "" +"Pour créer une distribution source pour ce module, il faut créer un script " +"d'installation, :file:`setup.py`, contenant le code ci-dessus, et exécuter " +"cette commande depuis un terminal :" -#: ../Doc/distutils/introduction.rst:89 +#: distutils/introduction.rst:89 msgid "" "For Windows, open a command prompt window (:menuselection:`Start --> " "Accessories`) and change the command to::" msgstr "" +"Pour Windows, ouvrez une invite de commande (:menuselection:`Démarrer --> " +"Accessoires`) et changez la commande en :" -#: ../Doc/distutils/introduction.rst:94 +#: distutils/introduction.rst:94 msgid "" ":command:`sdist` will create an archive file (e.g., tarball on Unix, ZIP " "file on Windows) containing your setup script :file:`setup.py`, and your " "module :file:`foo.py`. The archive file will be named :file:`foo-1.0.tar.gz` " "(or :file:`.zip`), and will unpack into a directory :file:`foo-1.0`." msgstr "" +":command:`sdist` va créer un fichier d'archive (p. ex. une archive *tar* sur " +"Unix, un fichier ZIP sous Windows) contenant votre script d'installation :" +"file:`setup.py`, et votre module :file:`foo.py`. Le fichier d'archive va " +"être nommé :file:`foo-1.0.tar.gz` (ou :file:`.zip`), et va se décompresser " +"dans un répertoire :file:`foo-1.0`." -#: ../Doc/distutils/introduction.rst:99 +#: distutils/introduction.rst:99 msgid "" "If an end-user wishes to install your :mod:`foo` module, all they have to do " "is download :file:`foo-1.0.tar.gz` (or :file:`.zip`), unpack it, and---from " "the :file:`foo-1.0` directory---run ::" msgstr "" +"Si un utilisateur final souhaite installer votre module :mod:`foo`, tout ce " +"qu'il aura à faire est de télécharger le fichier :file:`foo-1.0.tar.gz` (ou :" +"file:`.zip`), le décompresser et ---depuis le répertoire :file:`foo-1.0`--- " +"exécuter :" -#: ../Doc/distutils/introduction.rst:105 +#: distutils/introduction.rst:105 msgid "" "which will ultimately copy :file:`foo.py` to the appropriate directory for " "third-party modules in their Python installation." msgstr "" +"ce qui va finalement copier :file:`foo.py` dans le répertoire approprié pour " +"un module tiers dans son installation Python." -#: ../Doc/distutils/introduction.rst:108 +#: distutils/introduction.rst:108 msgid "" "This simple example demonstrates some fundamental concepts of the Distutils. " "First, both developers and installers have the same basic user interface, i." @@ -171,8 +229,15 @@ msgid "" "while :command:`install` is more often for installers (although most " "developers will want to install their own code occasionally)." msgstr "" +"Ce simple exemple démontre des concepts fondamentaux de Distutils, " +"Premièrement, les développeurs et installeurs ont la même interface " +"utilisateur basique, p. ex. le script d'installation. La différence est " +"quelle *commande* Distutils ils utilisent : la commande :command:`sdist` est " +"quasiment exclusivement pour les développeurs de modules Python, tandis que :" +"command:`install` est plus souvent pour les installeurs (bien que la plupart " +"des développeurs vont vouloir installer leur code occasionnellement)." -#: ../Doc/distutils/introduction.rst:115 +#: distutils/introduction.rst:115 msgid "" "If you want to make things really easy for your users, you can create one or " "more built distributions for them. For instance, if you are running on a " @@ -181,73 +246,101 @@ msgid "" "distribution for this platform) with the :command:`bdist_wininst` command. " "For example::" msgstr "" +"Si vous voulez rendre les choses vraiment faciles pour vos utilisateurs, " +"vous pouvez créer on ou plusieurs distributions compilées pour eux. En " +"l’occurrence, si vous tournez sous une machine Windows, et que vous voulez " +"rendre les choses faciles pour les autres utilisateurs Windows, vous pouvez " +"créer un installateur exécutable (le mode de distribution le plus approprié " +"pour cette plateforme) avec la commande :command:`bdist_wininst`. Par " +"exemple :" -#: ../Doc/distutils/introduction.rst:123 +#: distutils/introduction.rst:123 msgid "" "will create an executable installer, :file:`foo-1.0.win32.exe`, in the " "current directory." msgstr "" +"va créer une installeur exécutable, :file:`foo-1.0.win32.exe`, dans le " +"répertoire courant." -#: ../Doc/distutils/introduction.rst:126 +#: distutils/introduction.rst:126 msgid "" "Other useful built distribution formats are RPM, implemented by the :command:" "`bdist_rpm` command, Solaris :program:`pkgtool` (:command:`bdist_pkgtool`), " "and HP-UX :program:`swinstall` (:command:`bdist_sdux`). For example, the " "following command will create an RPM file called :file:`foo-1.0.noarch.rpm`::" msgstr "" +"D'autres formats de distributions compilés utiles sont RPM, implémenté par " +"la commande :command:`bdist_rpm`, Solaris :program:`pkgtool` (:command:" +"`bdist_pkgtool`), et HP-UX :program:`swinstall` (:command:`bdist_sdux`). Par " +"exemple, la commande suivante va créer un fichier RPM appelé :file:`foo-1.0." +"noarch.rpm`::" -#: ../Doc/distutils/introduction.rst:134 +#: distutils/introduction.rst:134 msgid "" "(The :command:`bdist_rpm` command uses the :command:`rpm` executable, " "therefore this has to be run on an RPM-based system such as Red Hat Linux, " "SuSE Linux, or Mandrake Linux.)" msgstr "" +"(La commande :command:`bdist_rpm` utilise l'exécutable :command:`rpm`, " +"cependant cela doit être exécuté sur un système basé sur RPM tel que Red Hat " +"Linux, SuSE Linux, or Mandrake Linux.)" -#: ../Doc/distutils/introduction.rst:138 +#: distutils/introduction.rst:138 msgid "" "You can find out what distribution formats are available at any time by " "running ::" msgstr "" +"Vous pouvez trouver quelles sont les formats de distribution disponibles à " +"n'importe quel moment en exécutant :" -#: ../Doc/distutils/introduction.rst:147 +#: distutils/introduction.rst:147 msgid "General Python terminology" -msgstr "" +msgstr "Terminologie Python générale" -#: ../Doc/distutils/introduction.rst:149 +#: distutils/introduction.rst:149 msgid "" "If you're reading this document, you probably have a good idea of what " "modules, extensions, and so forth are. Nevertheless, just to be sure that " "everyone is operating from a common starting point, we offer the following " "glossary of common Python terms:" msgstr "" +"Si vous lisez ce document, vous avez probablement une bonne idée de ce que " +"sont les modules, extensions, etc. Néanmoins, juste pour être sur que tout " +"le monde opère depuis un point d'entrée commun, nous reprécisons le " +"glossaire suivant des termes Python communs :" -#: ../Doc/distutils/introduction.rst:157 +#: distutils/introduction.rst:157 msgid "module" msgstr "module" -#: ../Doc/distutils/introduction.rst:155 +#: distutils/introduction.rst:155 msgid "" "the basic unit of code reusability in Python: a block of code imported by " "some other code. Three types of modules concern us here: pure Python " "modules, extension modules, and packages." msgstr "" +"unité de base de la réutilisabilité en Python : un bloc de code importé par " +"un autre code. Trois types de modules nous concernent ici : les purs modules " +"Python, les modules d'extension, et les packages." -#: ../Doc/distutils/introduction.rst:162 +#: distutils/introduction.rst:162 msgid "pure Python module" -msgstr "" +msgstr "pur module Python" -#: ../Doc/distutils/introduction.rst:160 +#: distutils/introduction.rst:160 msgid "" "a module written in Python and contained in a single :file:`.py` file (and " "possibly associated :file:`.pyc` files). Sometimes referred to as a \"pure " "module.\"" msgstr "" +"un module écrit en Python et contenu dans un seul fichier :file:`.py` (et " +"possiblement un fichier :file:`.pyc` associé). Parfois appelé \"pur module.\"" -#: ../Doc/distutils/introduction.rst:170 +#: distutils/introduction.rst:170 msgid "extension module" msgstr "module d'extension" -#: ../Doc/distutils/introduction.rst:165 +#: distutils/introduction.rst:165 msgid "" "a module written in the low-level language of the Python implementation: C/C+" "+ for Python, Java for Jython. Typically contained in a single dynamically " @@ -257,23 +350,33 @@ msgid "" "(Note that currently, the Distutils only handles C/C++ extensions for " "Python.)" msgstr "" +"un module écrit dans un langage de bas niveau de l'implémentation Python: C/" +"C++ pour Python, Java pour Jython. Typiquement contenu dans un unique " +"fichier pré-compilé chargeable, p. ex. un fichier objet partagé (:file:`." +"so`) pour des extensions Python sous Unix, un fichier DLL (étant donné " +"l'extension :file:`.pyd`) pour les extensions Python sous Windows, ou un " +"fichier de classe Java pour les extensions Jython (notez qu'actuellement, " +"Distutils gère seulement les extensions Python C/C++)." -#: ../Doc/distutils/introduction.rst:175 +#: distutils/introduction.rst:175 msgid "package" msgstr "paquet" -#: ../Doc/distutils/introduction.rst:173 +#: distutils/introduction.rst:173 msgid "" "a module that contains other modules; typically contained in a directory in " "the filesystem and distinguished from other directories by the presence of a " "file :file:`__init__.py`." msgstr "" +"un module qui contient d'autres modules ; très souvent contenu dans un " +"répertoire du système de fichier et qui se distingue des autres répertoires " +"par la présence d'un fichier :file:`__init__.py`." -#: ../Doc/distutils/introduction.rst:185 +#: distutils/introduction.rst:185 msgid "root package" msgstr "paquet racine" -#: ../Doc/distutils/introduction.rst:178 +#: distutils/introduction.rst:178 msgid "" "the root of the hierarchy of packages. (This isn't really a package, since " "it doesn't have an :file:`__init__.py` file. But we have to call it " @@ -283,22 +386,32 @@ msgid "" "package can be found in many directories: in fact, every directory listed in " "``sys.path`` contributes modules to the root package." msgstr "" +"la racine de la hiérarchie de paquets. (Ce n'est pas vraiment un paquet, " +"puisqu'il n'a pas un fichier :file:`__init__.py`. Mais nous devons bien le " +"nommer.) La grande majorité de la bibliothèque standard est dans le package " +"racine, comme le sont certains petits, des packages tiers autonomes qui " +"n'appartiennent pas à une un module plus grand. Contrairement aux packages " +"réguliers, les modules dans le package racine peuvent être trouvés dans " +"plusieurs répertoires : en effet, tous les répertoires listés ``sys.path`` " +"contribuent à faire partie du package racine." -#: ../Doc/distutils/introduction.rst:190 +#: distutils/introduction.rst:190 msgid "Distutils-specific terminology" -msgstr "" +msgstr "Terminologie spécifique à Distutils" -#: ../Doc/distutils/introduction.rst:192 +#: distutils/introduction.rst:192 msgid "" "The following terms apply more specifically to the domain of distributing " "Python modules using the Distutils:" msgstr "" +"Les termes suivant s'appliquent plus spécifiquement au domaine de la " +"distribution de modules Python en utilisant les Distutils :" -#: ../Doc/distutils/introduction.rst:201 +#: distutils/introduction.rst:201 msgid "module distribution" -msgstr "" +msgstr "module de distribution" -#: ../Doc/distutils/introduction.rst:196 +#: distutils/introduction.rst:196 msgid "" "a collection of Python modules distributed together as a single downloadable " "resource and meant to be installed *en masse*. Examples of some well-known " @@ -306,34 +419,47 @@ msgid "" "called a *package*, except that term is already taken in the Python context: " "a single module distribution may contain zero, one, or many Python packages.)" msgstr "" +"une collection de modules Python distribués ensemble, comme une unique " +"ressource téléchargeable et ayant pour but d'être installé *en bloc*. Des " +"exemples de modules distribués bien connus sont *NumPy*, *SciPy*, *Pillow*, " +"ou *mxBase*. (On pourrait les appeler des *packages*, malgré que le terme " +"soit déjà pris dans le contexte Python : une distribution de module simple " +"pourrait contenir zéro, on ou plusieurs packages Python" -#: ../Doc/distutils/introduction.rst:205 +#: distutils/introduction.rst:205 msgid "pure module distribution" -msgstr "" +msgstr "distribution de modules purs" -#: ../Doc/distutils/introduction.rst:204 +#: distutils/introduction.rst:204 msgid "" "a module distribution that contains only pure Python modules and packages. " "Sometimes referred to as a \"pure distribution.\"" msgstr "" +"une distribution de module qui contient seulement des modules purs et " +"packages Python. Parfois appelée « distribution pure »." -#: ../Doc/distutils/introduction.rst:209 +#: distutils/introduction.rst:209 msgid "non-pure module distribution" -msgstr "" +msgstr "distribution de module non pur" -#: ../Doc/distutils/introduction.rst:208 +#: distutils/introduction.rst:208 msgid "" "a module distribution that contains at least one extension module. " "Sometimes referred to as a \"non-pure distribution.\"" msgstr "" +"une distribution de module qui contient au moins un module d'extension. " +"Parfois appelée « distribution non-pure »." -#: ../Doc/distutils/introduction.rst:213 +#: distutils/introduction.rst:213 msgid "distribution root" -msgstr "" +msgstr "distribution racine" -#: ../Doc/distutils/introduction.rst:212 +#: distutils/introduction.rst:212 msgid "" "the top-level directory of your source tree (or source distribution); the " "directory where :file:`setup.py` exists. Generally :file:`setup.py` will " "be run from this directory." msgstr "" +"le répertoire de plus haut niveau de votre arborescence (ou distribution " +"source) ; le répertoire ou :file:`setup.py` existe. Généralement :file:" +"`setup.py` est exécuté depuis ce répertoire." diff --git a/distutils/setupscript.po b/distutils/setupscript.po index 149743e1bb..652af7e1c4 100644 --- a/distutils/setupscript.po +++ b/distutils/setupscript.po @@ -5,18 +5,19 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2020-05-23 11:38+0200\n" +"PO-Revision-Date: 2020-04-16 22:30+0200\n" +"Last-Translator: Philippe GALVAN\n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.3\n" #: ../Doc/distutils/setupscript.rst:5 msgid "Writing the Setup Script" -msgstr "" +msgstr "Rédaction du script ``setup.py``" #: ../Doc/distutils/_setuptools_disclaimer.rst:3 msgid "" @@ -24,6 +25,10 @@ msgid "" "documentation at https://setuptools.readthedocs.io/en/latest/setuptools.html " "independently covers all of the relevant information currently included here." msgstr "" +"Ce document est conservé uniquement jusqu'à ce que la documentation de " +"``setuptools``, présente à l'adresse https://setuptools.readthedocs.io/en/" +"latest/setuptools.html, couvre indépendamment toutes les informations " +"pertinentes actuellement incluses ici." #: ../Doc/distutils/setupscript.rst:9 msgid "" @@ -36,6 +41,15 @@ msgid "" "Distutils by the module developer is supplied as keyword arguments to :func:" "`setup`." msgstr "" +"Le script ``setup.py`` est au centre de toute opération de construction, de " +"distribution et d'installation des modules utilisant les *Distutils*. " +"L'objectif principal du script ``setup.py`` est de décrire le module aux " +"*Distutils*, de telle sorte que les diverses commandes qui agissent sur " +"votre module fassent les bonnes choses. Comme nous avons vu dans la section :" +"ref:`distutils-simple-example` au-dessus, le script ``setup.py`` consiste " +"principalement à un appel à :func:`setup`, et la plupart des informations " +"fournies aux *Distutils* par le développeur du module sont fournies en tant " +"qu'arguments nommés à :func:`setup.py`." #: ../Doc/distutils/setupscript.rst:17 msgid "" @@ -46,6 +60,14 @@ msgid "" "install other module distributions. The Distutils' own setup script, shown " "here, is used to install the package into Python 1.5.2.) ::" msgstr "" +"Voici un exemple un peu plus concret, que nous allons suivre pour les " +"quelques sections suivantes : le propre script ``setup.py`` des *Distutils* " +"(gardez toujours à l'esprit qu'en dépit de l'inclusion des *Distutils* dans " +"python 1.6 et ses versions successives, ils ont aussi une existence à part " +"entière de telle sorte que les utilisateurs de Python 1.5.2 puissent les " +"utiliser pour installer d'autres modules. Le propre script ``setup.py`` des " +"*Distutils* montré ici est utilisé pour installer le paquet dans Python " +"1.5.2). ::" #: ../Doc/distutils/setupscript.rst:37 msgid "" @@ -57,6 +79,14 @@ msgid "" "module would be tedious to generate and difficult to maintain. For more " "information on the additional meta-data, see section :ref:`meta-data`." msgstr "" +"Il y a seulement deux différences entre cet exemple et l'exemple trivial de " +"la distribution d'un unique fichier présenté dans la partie :ref:`distutils-" +"simple-example` : plus de métadonnées, et la définition de modules purement " +"Python par paquet, plutôt que par module. C'est important car les " +"*Distutils* sont composés de quelques douzaines de modules séparés (pour le " +"moment) en deux paquets ; une liste explicite de chaque module serait " +"pénible à générer et difficile à maintenir. Pour plus d'information sur les " +"métadonnées supplémentaires, voir la partie :ref:`meta-data`." #: ../Doc/distutils/setupscript.rst:45 msgid "" @@ -68,6 +98,15 @@ msgid "" "systems, which of course is one of the major goals of the Distutils. In " "this spirit, all pathnames in this document are slash-separated." msgstr "" +"À noter que chaque chemin d'accès fourni au script ``setup.py`` doit être " +"écrit selon la convention Unix. Autrement dit, séparé par des barres " +"obliques (slash). Les *Distutils* prendront soin de convertir cette " +"représentation indépendante de la plateforme en une représentation adaptée à " +"votre plateforme actuelle avant d'effectivement utiliser le chemin d'accès. " +"Cela rend votre script ``setup.py`` portable d'un système d'exploitation à " +"l'autre, ce qui évidemment est l'un des buts majeurs des *Distutils*. Dans " +"cet esprit, tous les chemins d'accès dans ce document sont séparés par des " +"barres obliques (slash)." #: ../Doc/distutils/setupscript.rst:53 msgid "" @@ -76,10 +115,15 @@ msgid "" "or :func:`os.listdir` to specify files, you should be careful to write " "portable code instead of hardcoding path separators::" msgstr "" +"Cela, évidemment, s'applique uniquement aux chemins d'accès passés aux " +"fonctions de *Distutils*. Si vous, par exemple, vous utilisez les fonctions " +"standards de Python telles que :func:`glob.glob` or :func:`os.listdir` pour " +"définir des fichiers, vous devez prendre soin d'écrire du code portable au " +"lieu de coder en dur les séparateurs de chemin ::" #: ../Doc/distutils/setupscript.rst:65 msgid "Listing whole packages" -msgstr "" +msgstr "Lister l'ensemble des paquets" #: ../Doc/distutils/setupscript.rst:67 msgid "" @@ -96,6 +140,19 @@ msgid "" "break this promise, the Distutils will issue a warning but still process the " "broken package anyway." msgstr "" +"L'option ``packages`` dit aux *Distutils* de traiter (construire, " +"distribuer, installer, etc.) tous les modules en Python pur trouvés dans " +"chaque paquet mentionné dans la liste ``packages``. À cette fin, évidemment, " +"il faut une correspondance entre les noms des paquets et des répertoires " +"dans le système de fichiers. La correspondance par défaut est la plus " +"évidente. À savoir : le paquet :mod:`distutils` se trouve dans le " +"répertoire :file:`distutils` situé à la racine de la distribution. Ainsi, " +"quand vous écrivez ``packages = ['foo']`` dans votre script ``setup.py``, " +"vous vous engagez à ce que les *Distutils* trouvent un fichier ``foo/" +"__init__.py`` (qui peut s'épeler différemment sur votre système, mais vous " +"voyez l'idée) à un emplacement relatif au répertoire où se trouve le script " +"``setup.py``. Si ce n'est pas le cas, les *Distutils* lèvent un " +"avertissement mais traitent tout de même le paquet défectueux." #: ../Doc/distutils/setupscript.rst:79 msgid "" @@ -106,6 +163,14 @@ msgid "" "in any package at all) are in :file:`lib`, modules in the :mod:`foo` package " "are in :file:`lib/foo`, and so forth. Then you would put ::" msgstr "" +"Si vous utilisez une convention différente pour arranger votre répertoire de " +"sources, ce n'est pas un problème : vous avez seulement à fournir l'option " +"``package_dir`` pour prévenir les *Distutils* de l'usage de cette " +"convention. Par exemple, supposons que vous gardez toutes les sources Python " +"sous :file:`lib`, de telle sorte que les modules dans le « paquet " +"racine » (c'est-à-dire dans aucun paquet du tout) sont dans :file:`lib`, les " +"modules dans le paquet :mod:`foo` sont dans :file:`lib/foo`, et ainsi de " +"suite. Alors, vous pouvez mettre ::" #: ../Doc/distutils/setupscript.rst:88 msgid "" @@ -115,6 +180,11 @@ msgid "" "``packages = ['foo']``, you are promising that the file :file:`lib/foo/" "__init__.py` exists." msgstr "" +"dans votre script ``setup.py``. Les clés de ce dictionnaire sont les noms " +"des paquets, et un nom de paquet vide fait office de paquet racine. Les " +"valeurs sont des noms de répertoires relatifs à la racine de votre " +"distribution. Dans ce cas, lorsque vous dites ``packages = ['foo']``, vous " +"vous engagez à ce que le fichier :file:`lib/foo/__init__.py` existe." #: ../Doc/distutils/setupscript.rst:93 msgid "" @@ -122,6 +192,9 @@ msgid "" "`lib`, the :mod:`foo.bar` package in :file:`lib/bar`, etc. This would be " "written in the setup script as ::" msgstr "" +"Une autre convention possible est de mettre le paquet :mod:`foo` directement " +"dans :file:`lib`, le paquet :mod:`foo.bar` dans :file:`lib/bar`, etc. Cela " +"s'écrirait ainsi dans le script ``setup.py`` : ::" #: ../Doc/distutils/setupscript.rst:99 msgid "" @@ -137,7 +210,7 @@ msgstr "" #: ../Doc/distutils/setupscript.rst:112 msgid "Listing individual modules" -msgstr "" +msgstr "Lister chaque module indépendamment" #: ../Doc/distutils/setupscript.rst:114 msgid "" @@ -147,6 +220,11 @@ msgid "" "shown in section :ref:`distutils-simple-example`; here is a slightly more " "involved example::" msgstr "" +"Pour un petit projet, vous pouvez préférer lister tous les modules plutôt " +"que les paquets — surtout le cas d'un module seul qui va dans le « paquet " +"racine » (à savoir, aucun paquet du tout). Le cas le plus simple a été " +"montré dans la partie :ref:`distutils-simple-example` ; voici un exemple " +"plus concret ::" #: ../Doc/distutils/setupscript.rst:121 msgid "" @@ -157,10 +235,16 @@ msgid "" "you can override the package/directory correspondence using the " "``package_dir`` option." msgstr "" +"Deux modules sont décrits, l'un dans le paquet « racine », l'autre dans le " +"paquet :mod:`pkg`. Encore une fois, la structure paquet/répertoire par " +"défaut implique que ces deux modules peuvent être trouvés dans :file:`mod1." +"py` et :file:`pkg/mod2.py`, et que :file:`pkg/__init__.py` existe aussi. Là " +"aussi, vous pouvez redéfinir la correspondance paquet/répertoire en " +"utilisant l'option ``package_dir``." #: ../Doc/distutils/setupscript.rst:131 msgid "Describing extension modules" -msgstr "" +msgstr "Description des modules d'extension" #: ../Doc/distutils/setupscript.rst:133 msgid "" @@ -171,6 +255,13 @@ msgid "" "have to specify the extension name, source file(s), and any compile/link " "requirements (include directories, libraries to link with, etc.)." msgstr "" +"Tout comme écrire des modules d'extension Python est un peu plus compliqué " +"que d’écrire des modules purement en Python, les décrire aux *Distutils* est " +"un peu plus compliqué. Contrairement aux modules purs, il ne suffit pas de " +"simplement lister les modules ou les paquets et d'attendre que les " +"*Distutils* trouvent par eux-mêmes les bons fichiers ; vous devez définir le " +"nom de l'extension, du ou des fichiers de sources, et les prérequis de " +"compilation/lien (répertoires à inclure, bibliothèques à lier, etc.)." #: ../Doc/distutils/setupscript.rst:142 msgid "" @@ -182,6 +273,13 @@ msgid "" "instructions to the compiler/linker are needed, describing this extension is " "quite simple::" msgstr "" +"Tout ceci est fait à l'aide d'un autre argument nommé passé à :func:`setup`, " +"l'option ``ext_modules``. ``ext_modules`` est simplement une liste de " +"classes :class:`~distutils.core.Extension`, chacune décrivant une seule " +"extension de module. Supposons que votre distribution inclut une seule " +"extension appelée :mod:`foo` et implémentée par :file:`foo.c`. Si aucune " +"instruction supplémentaire au compilateur/lieur n'est requise, décrire cette " +"extension est assez simple ::" #: ../Doc/distutils/setupscript.rst:152 msgid "" @@ -189,6 +287,9 @@ msgid "" "along with :func:`setup`. Thus, the setup script for a module distribution " "that contains only this one extension and nothing else might be::" msgstr "" +"La classe :class:`Extension` peut être importée depuis :mod:`distutils.core` " +"en même temps que :func:`setup`. Ainsi, le script ``setup.py`` pour un " +"module qui ne contient que cette seule extension et rien d'autre peut être ::" #: ../Doc/distutils/setupscript.rst:162 msgid "" @@ -197,10 +298,14 @@ msgid "" "deal of flexibility in describing Python extensions, which is explained in " "the following sections." msgstr "" +"La classe :class:`Extension` (en réalité, la machinerie sous-jacente " +"construisant les extensions implémentées par la commande :command:" +"`build_ext`) permet une grande flexibilité dans la description des " +"extensions Python, ce qui est expliqué dans les parties suivantes." #: ../Doc/distutils/setupscript.rst:169 msgid "Extension names and packages" -msgstr "" +msgstr "Nom des extensions et paquets" #: ../Doc/distutils/setupscript.rst:171 msgid "" @@ -208,10 +313,12 @@ msgid "" "always the name of the extension, including any package names. For " "example, ::" msgstr "" +"Le premier argument du constructeur :class:`~distutils.core.Extension` est " +"toujours le nom de l'extension, incluant tout nom de paquet. Par exemple ::" #: ../Doc/distutils/setupscript.rst:176 msgid "describes an extension that lives in the root package, while ::" -msgstr "" +msgstr "décrit une extension qui se situe dans le paquet racine, tandis que ::" #: ../Doc/distutils/setupscript.rst:180 msgid "" @@ -220,6 +327,11 @@ msgid "" "is where in the filesystem (and therefore where in Python's namespace " "hierarchy) the resulting extension lives." msgstr "" +"décrit la même extension dans le paquet :mod:`pkg`. Les fichiers sources et " +"le code objet résultant sont identiques dans les deux cas ; la seule " +"différence est où, dans le système de fichier (et conséquemment dans la " +"hiérarchie de l'espace de nommage de Python), l'extension résultante se " +"situe." #: ../Doc/distutils/setupscript.rst:185 msgid "" @@ -227,16 +339,21 @@ msgid "" "same base package), use the ``ext_package`` keyword argument to :func:" "`setup`. For example, ::" msgstr "" +"Si vous avez un certain nombre d'extensions toutes dans le même paquet (ou " +"toutes sous le même paquet de base), utilisez l'argument nommé " +"``ext_package`` de :func:`setup`. Par exemple ::" #: ../Doc/distutils/setupscript.rst:195 msgid "" "will compile :file:`foo.c` to the extension :mod:`pkg.foo`, and :file:`bar." "c` to :mod:`pkg.subpkg.bar`." msgstr "" +"compile :file:`foo.c` en l’extension :mod:`pkg.foo`, et :file:`bar.c` en :" +"mod:`pkg.subpkg.bar`." #: ../Doc/distutils/setupscript.rst:200 msgid "Extension source files" -msgstr "" +msgstr "Fichiers sources d'extension" #: ../Doc/distutils/setupscript.rst:202 msgid "" @@ -247,6 +364,12 @@ msgid "" "files: :file:`.cc` and :file:`.cpp` seem to be recognized by both Unix and " "Windows compilers.)" msgstr "" +"Le second argument du constructeur d'\\ :class:`~distutils.core.Extension` " +"est une liste de fichiers sources. Puisque les *Distutils* ne gèrent que les " +"extensions en C, C++ et Objective-C, ce sont normalement des fichiers " +"sources en C/C++/Objective-C (assurez vous d'utiliser les extensions " +"appropriées pour détecter les fichiers sources en C++ : :file:`.cc` et :file:" +"`.cpp` semblent être reconnus tant par les compilateurs Unix que Windows)." #: ../Doc/distutils/setupscript.rst:209 msgid "" @@ -255,16 +378,22 @@ msgid "" "will run SWIG on the interface file and compile the resulting C/C++ file " "into your extension." msgstr "" +"Néanmoins, vous pouvez également inclure des fichiers d'interface SWIG (:" +"file:`.i`) dans la liste ; la commande :command:`build_ext` sait comment " +"gérer les extensions SWIG : il lancera SWIG sur un fichier d'interface et " +"compilera le fichier en C/C++ en une extension." #: ../Doc/distutils/setupscript.rst:216 msgid "" "This warning notwithstanding, options to SWIG can be currently passed like " "this::" msgstr "" +"Malgré cet avertissement, les options peuvent être actuellement passées à " +"SWIG de la façon suivante ::" #: ../Doc/distutils/setupscript.rst:225 msgid "Or on the commandline like this::" -msgstr "" +msgstr "Ou en ligne de commande de cette façon ::" #: ../Doc/distutils/setupscript.rst:229 msgid "" @@ -274,10 +403,16 @@ msgid "" "rc`) files for Visual C++. These will be compiled to binary resource (:file:" "`.res`) files and linked into the executable." msgstr "" +"Sur certaines plateformes, vous pouvez inclure des fichiers autres que des " +"sources qui seront traités par le compilateur et inclus dans votre " +"extension. Pour l'instant, cela concerne seulement les fichiers de messages " +"texte Windows (:file:`.mc`) et les fichiers de définition de ressource pour " +"Visual C++ (:file:`.rc`). Ils seront compilés en fichiers de ressources " +"binaires (:file:`.res`) et liés à l'exécutable." #: ../Doc/distutils/setupscript.rst:237 msgid "Preprocessor options" -msgstr "" +msgstr "Options de préprocesseur" #: ../Doc/distutils/setupscript.rst:239 msgid "" @@ -285,12 +420,19 @@ msgid "" "you need to specify include directories to search or preprocessor macros to " "define/undefine: ``include_dirs``, ``define_macros``, and ``undef_macros``." msgstr "" +"Trois arguments optionnels de :class:`~distutils.core.Extension` aident si " +"vous avez besoin de préciser les dossiers d’en-têtes à chercher ou les " +"macros de préprocesseurs à charger ou ignorer : ``include_dirs``, " +"``define_macros``, et ``undef_macros``." #: ../Doc/distutils/setupscript.rst:243 msgid "" "For example, if your extension requires header files in the :file:`include` " "directory under your distribution root, use the ``include_dirs`` option::" msgstr "" +"Par exemple, si votre extension nécessite des fichiers d'en-tête dans le " +"répertoire :file:`include` à la racine de votre distribution, utilisez " +"l'option ``include_dirs`` ::" #: ../Doc/distutils/setupscript.rst:248 msgid "" @@ -298,12 +440,17 @@ msgid "" "will only be built on Unix systems with X11R6 installed to :file:`/usr`, you " "can get away with ::" msgstr "" +"Ici, vous pouvez définir le chemin absolu des répertoires ; si vous savez " +"que votre extension sera compilée sur un système Unix avec ``X11R6`` " +"installé dans :file:`/usr`, vous pouvez vous en sortir avec ::" #: ../Doc/distutils/setupscript.rst:254 msgid "" "You should avoid this sort of non-portable usage if you plan to distribute " "your code: it's probably better to write C code like ::" msgstr "" +"Il convient d'éviter ce type d'utilisation non portable si vous envisagez de " +"distribuer votre code : Il est probablement mieux d'écrire du code C comme ::" #: ../Doc/distutils/setupscript.rst:259 msgid "" @@ -317,6 +464,17 @@ msgid "" "in this case---is always included in the search path when building Python " "extensions, the best approach is to write C code like ::" msgstr "" +"Si vous avez besoin d'inclure des fichiers d'en-tête provenant d'autres " +"extensions Python, vous pouvez profiter du fait que les fichiers d'en-têtes " +"sont installés de façon cohérente par la commande :command:`install_headers` " +"des *Distutils*. Par exemple, les fichiers d'en-têtes de *Numerical Python* " +"(NumPy) sont installés (dans le cas d'une installation Unix standard) dans :" +"file:`/usr/local/include/python1.5/Numerical` — l'emplacement exact diffère " +"selon votre plateforme et votre installation de Python. Vu que le " +"répertoire :file:`include` de Python —\\ :file:`/usr/local/include/" +"python1.5` dans ce cas-ci — est toujours inclus dans le chemin de recherche " +"quand vous construisez des extensions Python, la meilleure approche est " +"d'écrire du code C comme ::" #: ../Doc/distutils/setupscript.rst:271 msgid "" @@ -324,6 +482,10 @@ msgid "" "header search path, though, you can find that directory using the Distutils :" "mod:`distutils.sysconfig` module::" msgstr "" +"Si vous devez mettre le répertoire :file:`include` de :file:`Numerical` " +"directement dans l'en-tête du chemin de recherche, cependant, vous pouvez " +"trouver ce répertoire en utilisant le module :mod:`distutils.sysconfig` des " +"*Distutils* ::" #: ../Doc/distutils/setupscript.rst:281 msgid "" @@ -331,6 +493,9 @@ msgid "" "installation, regardless of platform---it's probably easier to just write " "your C code in the sensible way." msgstr "" +"Même si c'est assez portable — ça marche sur la plupart des installations de " +"Python, indépendamment de la plateforme — il est probablement plus facile " +"d'écrire un code C un peu plus réfléchi." #: ../Doc/distutils/setupscript.rst:285 msgid "" @@ -342,6 +507,14 @@ msgid "" "your C source: with most compilers, this sets ``FOO`` to the string ``1``.) " "``undef_macros`` is just a list of macros to undefine." msgstr "" +"Vous pouvez définir ou ignorer des macros de pré-processeur avec les options " +"``define_macros`` et ``undef_macros``. ``define_macros`` prend une liste de " +"paires ``(nom, valeur)``, où ``nom`` est le nom de la macro à définir (une " +"chaîne de caractères) et ``valeur`` est sa valeur ; soit une chaîne de " +"caractères, soit ``None`` (définir une macro ``FOO`` à ``None`` est " +"équivalent à un simple ``#define FOO`` dans votre source en C ; pour la " +"majorité des compilateurs, cela définit la valeur de ``FOO`` à la chaîne de " +"caractère ``1``). ``undef_macros`` est juste une liste de macros à supprimer." #: ../Doc/distutils/setupscript.rst:293 msgid "For example::" @@ -349,11 +522,11 @@ msgstr "Par exemple ::" #: ../Doc/distutils/setupscript.rst:300 msgid "is the equivalent of having this at the top of every C source file::" -msgstr "" +msgstr "est équivalent à avoir ceci au début de chaque fichier source en C ::" #: ../Doc/distutils/setupscript.rst:309 msgid "Library options" -msgstr "" +msgstr "Options des bibliothèques" #: ../Doc/distutils/setupscript.rst:311 msgid "" @@ -364,24 +537,37 @@ msgid "" "time, and ``runtime_library_dirs`` is a list of directories to search for " "shared (dynamically loaded) libraries at run-time." msgstr "" +"Vous pouvez aussi définir les bibliothèques à lier quand vous construisez " +"votre extension, ainsi que le répertoire de recherche pour ces " +"bibliothèques. L'option ``libraries`` est une liste de bibliothèques à lier, " +"``library_dirs`` est une liste de répertoires dans lesquels chercher des " +"bibliothèques au moment de la liaison, et ``runtime_library_dirs`` est une " +"liste de répertoires pour la recherche des bibliothèques partagées (chargées " +"dynamiquement) à l'exécution." #: ../Doc/distutils/setupscript.rst:317 msgid "" "For example, if you need to link against libraries known to be in the " "standard library search path on target systems ::" msgstr "" +"Par exemple, pour lier des bibliothèques que l'on sait dans le chemin des " +"bibliothèques standards des systèmes cibles ::" #: ../Doc/distutils/setupscript.rst:323 msgid "" "If you need to link with libraries in a non-standard location, you'll have " "to include the location in ``library_dirs``::" msgstr "" +"Pour lier une bibliothèque se trouvant à un emplacement non standard, vous " +"devez inclure son emplacement dans ``library_dirs`` ::" #: ../Doc/distutils/setupscript.rst:330 msgid "" "(Again, this sort of non-portable construct should be avoided if you intend " "to distribute your code.)" msgstr "" +"Là aussi, ce genre de construction non portable doit être évité si vous avez " +"l'intention de distribuer votre code." #: ../Doc/distutils/setupscript.rst:337 msgid "Other options" @@ -391,6 +577,8 @@ msgstr "Autres options" msgid "" "There are still some other options which can be used to handle special cases." msgstr "" +"Il y a encore d'autres options qui peuvent être utilisées pour gérer des cas " +"spéciaux." #: ../Doc/distutils/setupscript.rst:341 msgid "" @@ -398,6 +586,9 @@ msgid "" "extension will not abort the build process, but instead simply not install " "the failing extension." msgstr "" +"L'option ``optional`` est un booléen ; s'il est vrai, un échec de la " +"construction dans l'extension n'annule pas le processus de construction, " +"mais à la place, l'extension en échec ne sera pas installée." #: ../Doc/distutils/setupscript.rst:345 msgid "" @@ -405,6 +596,9 @@ msgid "" "linker. These files must not have extensions, as the default extension for " "the compiler is used." msgstr "" +"L'option ``extra_objects`` est une liste d'objets fichiers à passer à " +"l'éditeur de liens. Ces fichiers ne doivent pas avoir d'extensions car " +"l'extension par défaut du compilateur est utilisée." #: ../Doc/distutils/setupscript.rst:349 msgid "" @@ -412,6 +606,9 @@ msgid "" "additional command line options for the respective compiler and linker " "command lines." msgstr "" +"``extra_compile_args`` et ``extra_link_args`` peuvent être utilisées pour " +"définir des options additionnelles en ligne de commande propres aux lignes " +"de commandes respectives du compilateur et de l'éditeur de liens." #: ../Doc/distutils/setupscript.rst:353 msgid "" @@ -420,6 +617,10 @@ msgid "" "when building compiled extensions: Distutils will automatically add " "``initmodule`` to the list of exported symbols." msgstr "" +"``export_symbols`` est seulement utile sur Windows. Elle peut contenir une " +"liste de symboles (fonctions ou variables) à exporter. Cette option n'est " +"pas requise pour la construction d'extensions compilées : *Distutils* ajoute " +"automatiquement ``initmodule`` à la liste des symboles exportés." #: ../Doc/distutils/setupscript.rst:358 msgid "" @@ -428,32 +629,40 @@ msgid "" "sources to rebuild extension if any on this files has been modified since " "the previous build." msgstr "" +"L'option ``depends`` est une liste de fichiers dont les extensions dépendent " +"(par exemple les fichiers d'en-têtes). La commande ``build`` appelle le " +"compilateur sur les sources pour reconstruire l'extension si un de ces " +"fichiers a été modifié depuis la dernière construction." #: ../Doc/distutils/setupscript.rst:364 msgid "Relationships between Distributions and Packages" -msgstr "" +msgstr "Relations entre distributions et paquets" #: ../Doc/distutils/setupscript.rst:366 msgid "A distribution may relate to packages in three specific ways:" msgstr "" +"Une distribution peut se rapporter à des paquets de trois manières " +"spécifiques :" #: ../Doc/distutils/setupscript.rst:368 msgid "It can require packages or modules." -msgstr "" +msgstr "elle peut nécessiter des paquets ou des modules ;" #: ../Doc/distutils/setupscript.rst:370 msgid "It can provide packages or modules." -msgstr "" +msgstr "elle peut fournir des paquets ou des modules ;" #: ../Doc/distutils/setupscript.rst:372 msgid "It can obsolete packages or modules." -msgstr "" +msgstr "elle peut rendre obsolète des paquets ou des modules." #: ../Doc/distutils/setupscript.rst:374 msgid "" "These relationships can be specified using keyword arguments to the :func:" "`distutils.core.setup` function." msgstr "" +"Ces relations peuvent être définies en utilisant des paramètres nommés dans " +"la fonction :func:`distutils.core.setup`." #: ../Doc/distutils/setupscript.rst:377 msgid "" @@ -462,6 +671,10 @@ msgid "" "be a list of strings. Each string specifies a package that is required, and " "optionally what versions are sufficient." msgstr "" +"Les dépendances à d'autres modules et paquets Python peuvent être définies " +"en fournissant le paramètre nommé ``requires`` à :func:`setup`. La valeur " +"doit être une liste de chaînes de caractères. Chaque chaîne de caractères " +"définit un paquet requis et, en option, les versions minimales." #: ../Doc/distutils/setupscript.rst:382 msgid "" @@ -469,6 +682,9 @@ msgid "" "should consist entirely of the module or package name. Examples include " "``'mymodule'`` and ``'xml.parsers.expat'``." msgstr "" +"S'il n'est pas nécessaire de préciser la version d'un module ou d'un paquet, " +"la chaîne de caractères contient simplement les noms de modules ou de " +"paquets. Par exemple ``mymodule`` et ``'xml.parsers.expat'``." #: ../Doc/distutils/setupscript.rst:386 msgid "" @@ -476,6 +692,10 @@ msgid "" "in parentheses. Each qualifier may consist of a comparison operator and a " "version number. The accepted comparison operators are::" msgstr "" +"Si des versions spécifiques sont requises, une suite de qualificatifs peut " +"être fournie entre parenthèses. Chaque qualificatif peut contenir un " +"opérateur de comparaison et un numéro de version. Les opérateurs de " +"comparaison acceptés sont ::" #: ../Doc/distutils/setupscript.rst:393 msgid "" @@ -483,14 +703,18 @@ msgid "" "optional whitespace). In this case, all of the qualifiers must be matched; " "a logical AND is used to combine the evaluations." msgstr "" +"Ils peuvent être combinés en utilisant plusieurs qualificatifs séparés par " +"des virgules (et de façon optionnelle, des espaces). Dans ce cas, tous les " +"qualificatifs doivent être respectés ; un ET logique est utilisé pour " +"combiner les évaluations." #: ../Doc/distutils/setupscript.rst:397 msgid "Let's look at a bunch of examples:" -msgstr "" +msgstr "Jetons un œil à quelques exemples :" #: ../Doc/distutils/setupscript.rst:400 msgid "Requires Expression" -msgstr "" +msgstr "Valeur de ``requires``" #: ../Doc/distutils/setupscript.rst:400 ../Doc/distutils/setupscript.rst:418 msgid "Explanation" @@ -498,20 +722,22 @@ msgstr "Explication" #: ../Doc/distutils/setupscript.rst:402 msgid "``==1.0``" -msgstr "" +msgstr "``==1.0``" #: ../Doc/distutils/setupscript.rst:402 msgid "Only version ``1.0`` is compatible" -msgstr "" +msgstr "Seule la version ``1.0`` est compatible." #: ../Doc/distutils/setupscript.rst:404 msgid "``>1.0, !=1.5.1, <2.0``" -msgstr "" +msgstr "``>1.0, !=1.5.1, <2.0``" #: ../Doc/distutils/setupscript.rst:404 msgid "" "Any version after ``1.0`` and before ``2.0`` is compatible, except ``1.5.1``" msgstr "" +"Toute version après ``1.0`` et avant ``2.0`` est compatible, à l'exception " +"de ``1.5.1``." #: ../Doc/distutils/setupscript.rst:408 msgid "" @@ -522,30 +748,39 @@ msgid "" "optionally identifies the version. If the version is not specified, it is " "assumed to match that of the distribution." msgstr "" +"Maintenant que nous pouvons définir des dépendances, nous devons également " +"être en mesure de définir ce que d'autres distributions peuvent attendre de " +"notre part. Cela est réalisé en utilisant l'argument nommé *provides* dans :" +"func:`setup`. La valeur de cet argument est une liste de chaînes de " +"caractères, chacune d'entre elles étant un module Python ou un paquet et, de " +"façon optionnelle, identifie une version. Si la version n'est pas définie, " +"il est supposé qu'elle correspond à celle de la distribution." #: ../Doc/distutils/setupscript.rst:415 msgid "Some examples:" -msgstr "Quelques exemples :" +msgstr "Quelques exemples :" #: ../Doc/distutils/setupscript.rst:418 msgid "Provides Expression" -msgstr "" +msgstr "Valeur de ``provides``" #: ../Doc/distutils/setupscript.rst:420 msgid "``mypkg``" -msgstr "" +msgstr "``mypkg``" #: ../Doc/distutils/setupscript.rst:420 msgid "Provide ``mypkg``, using the distribution version" -msgstr "" +msgstr "Fournit ``mypkg`` en utilisant la version de la distribution." #: ../Doc/distutils/setupscript.rst:423 msgid "``mypkg (1.1)``" -msgstr "" +msgstr "``mypkg (1.1)``" #: ../Doc/distutils/setupscript.rst:423 msgid "Provide ``mypkg`` version 1.1, regardless of the distribution version" msgstr "" +"Fournit ``mypkg`` en version 1.1, indépendamment de la version de la " +"distribution." #: ../Doc/distutils/setupscript.rst:427 msgid "" @@ -556,6 +791,13 @@ msgid "" "more version qualifiers. Version qualifiers are given in parentheses after " "the module or package name." msgstr "" +"On peut déclarer d'autres paquets obsolètes dans un paquet en utilisant " +"l'argument nommé *obsoletes*. La valeur pour celui-ci est similaire à celui " +"de l'argument nommé *requires* : une liste de chaînes de caractères donnant " +"les spécifications du module ou du paquet. Chaque spécification est " +"constituée d'un nom de module ou de paquet qui peut être suivi au choix par " +"un ou plusieurs qualificateurs de versions. Les qualificateurs de versions " +"sont donnés entre parenthèses après le nom de module ou de paquet." #: ../Doc/distutils/setupscript.rst:434 msgid "" @@ -563,16 +805,23 @@ msgid "" "the distribution being described. If no qualifiers are given, all versions " "of the named module or package are understood to be obsoleted." msgstr "" +"Les versions identifiées par les qualificateurs sont celles qui sont rendues " +"obsolètes par la distribution décrite. Si aucun qualificateur n'est donné, " +"toutes les versions du module ou du paquet nommé sont considérées comme " +"obsolètes." #: ../Doc/distutils/setupscript.rst:441 msgid "Installing Scripts" -msgstr "" +msgstr "Installation des scripts" #: ../Doc/distutils/setupscript.rst:443 msgid "" "So far we have been dealing with pure and non-pure Python modules, which are " "usually not run by themselves but imported by scripts." msgstr "" +"Jusqu'à présent nous avons interagi avec des modules Python purs ou non, qui " +"ne sont habituellement pas lancés par eux-mêmes mais importés par des " +"scripts." #: ../Doc/distutils/setupscript.rst:446 msgid "" @@ -585,22 +834,35 @@ msgid "" "`!--executable` (or :option:`!-e`) option will allow the interpreter path to " "be explicitly overridden." msgstr "" +"Les scripts sont des fichiers contenant du code source Python prévus pour " +"être lancés en ligne de commande. Les scripts n'ont pas besoin des " +"*Distutils* pour faire quoi que ce soit de très compliqué. La seule " +"fonctionnalité astucieuse est que la première ligne du script commence par " +"``#!`` et contient le mot « python », les *Distutils* ajusteront la première " +"ligne pour faire référence à l'emplacement actuel de l'interpréteur. Par " +"défaut, elle est remplacée par l'emplacement de l'interpréteur en fonction. " +"L'option :option:`!--executable` (ou :option:`!-e`) permet de définir " +"explicitement le chemin vers l'interpréteur." #: ../Doc/distutils/setupscript.rst:454 msgid "" "The ``scripts`` option simply is a list of files to be handled in this way. " "From the PyXML setup script::" msgstr "" +"L'option ``scripts`` est simplement une liste de fichiers à utiliser de " +"cette façon. Dans le script ``setup.py`` de PyML ::" #: ../Doc/distutils/setupscript.rst:461 msgid "" "All the scripts will also be added to the ``MANIFEST`` file if no template " "is provided. See :ref:`manifest`." msgstr "" +"Tous les scripts seront aussi ajoutés au fichier ``MANIFEST`` si aucun " +"modèle n'est fourni. Voir :ref:`manifest`." #: ../Doc/distutils/setupscript.rst:469 msgid "Installing Package Data" -msgstr "" +msgstr "Installation de paquets de données" #: ../Doc/distutils/setupscript.rst:471 msgid "" @@ -609,6 +871,11 @@ msgid "" "text files containing documentation that might be of interest to programmers " "using the package. These files are called :dfn:`package data`." msgstr "" +"Souvent, des fichiers additionnels doivent être installés dans le paquet. " +"Ces fichiers sont souvent de la donnée qui est intimement liée à " +"l'implémentation du paquet, ou des fichiers textes contenant de la " +"documentation intéressant le programmeur utilisant le paquet. Ces fichiers " +"sont appelés :dfn:`paquets de données `." #: ../Doc/distutils/setupscript.rst:476 msgid "" @@ -620,32 +887,47 @@ msgid "" "appropriate); that is, the files are expected to be part of the package in " "the source directories. They may contain glob patterns as well." msgstr "" +"Les paquets de données peuvent être ajoutés en utilisant l'argument nommé " +"``package_data`` dans la fonction :func:`setup`. La valeur doit être un " +"tableau de correspondances entre le nom du paquet et une liste de chemins " +"relatifs à copier dans le paquet. Les chemins sont interprétés relativement " +"au répertoire contenant le paquet (l'information du mappage ``package_dir`` " +"est utilisée le cas échéant) ; ceci étant, il convient que les fichiers " +"fassent partie du répertoire source du paquet. Ils peuvent également " +"contenir des motifs `glob`." #: ../Doc/distutils/setupscript.rst:484 msgid "" "The path names may contain directory portions; any necessary directories " "will be created in the installation." msgstr "" +"Les chemins d'accès peuvent contenir une hiérarchie de répertoires ; tout " +"répertoire nécessaire sera créé dans cette installation." #: ../Doc/distutils/setupscript.rst:487 msgid "" "For example, if a package should contain a subdirectory with several data " "files, the files can be arranged like this in the source tree::" msgstr "" +"Par exemple, si un paquet doit inclure un sous-répertoire avec plusieurs " +"fichiers de donnée, les fichiers peuvent être organisés dans l'arborescence " +"de la façon suivante ::" #: ../Doc/distutils/setupscript.rst:500 msgid "The corresponding call to :func:`setup` might be::" -msgstr "" +msgstr "L'appel correspondant à :func:`setup` peut s'écrire ::" #: ../Doc/distutils/setupscript.rst:509 msgid "" "All the files that match ``package_data`` will be added to the ``MANIFEST`` " "file if no template is provided. See :ref:`manifest`." msgstr "" +"Tous les fichiers correspondant à ``package_data`` seront ajoutés au fichier " +"``MANIFEST`` si aucun modèle n'est fourni. Voir :ref:`manifest`." #: ../Doc/distutils/setupscript.rst:517 msgid "Installing Additional Files" -msgstr "" +msgstr "Installation de fichiers additionnels" #: ../Doc/distutils/setupscript.rst:519 msgid "" @@ -653,18 +935,26 @@ msgid "" "the module distribution: configuration files, message catalogs, data files, " "anything which doesn't fit in the previous categories." msgstr "" +"L'option ``data_files`` peut être utilisée pour définir des fichiers " +"additionnels requis pour la distribution du module : fichiers de " +"configuration, catalogues de messages, fichiers de donnée, tout ce qui ne " +"rentre pas dans les catégories précédentes." #: ../Doc/distutils/setupscript.rst:523 msgid "" "``data_files`` specifies a sequence of (*directory*, *files*) pairs in the " "following way::" msgstr "" +"``data_files`` définit une séquence de paires (*répertoires*, *fichiers*) de " +"la façon suivante ::" #: ../Doc/distutils/setupscript.rst:531 msgid "" "Each (*directory*, *files*) pair in the sequence specifies the installation " "directory and the files to install there." msgstr "" +"Chaque paire (*répertoire*, *fichier*) dans la séquence définit le " +"répertoire d'installation et les fichiers à y installer." #: ../Doc/distutils/setupscript.rst:534 msgid "" @@ -673,6 +963,10 @@ msgid "" "specify the directory where the data files will be installed, but you cannot " "rename the data files themselves." msgstr "" +"Chaque nom de fichier dans *fichiers* est interprété relativement au script :" +"file:`setup.py` à la racine du paquet de la distribution source. Notez que " +"vous pouvez définir un répertoire où les fichiers de donnée seront " +"installés, mais vous ne pouvez pas renommer les fichiers de donnée eux-mêmes." #: ../Doc/distutils/setupscript.rst:539 msgid "" @@ -684,6 +978,15 @@ msgid "" "*files* is used to determine the final location of the installed file; only " "the name of the file is used." msgstr "" +"Le *répertoire* doit être un chemin relatif. Il est interprété relativement " +"au préfixe d'installation (le ``sys.prefix`` de Python pour les " +"installations ``système`` ; ``site.USER_BASE`` pour les installations " +"``utilisateur``). *Distutils* permet à *répertoire* d'être un chemin " +"d'installation absolu, mais cela est déconseillé dans la mesure où c'est " +"incompatible avec la mise au format `wheel` du paquet. Aucune information de " +"répertoire provenant de *fichiers* n'est utilisée pour déterminer " +"l’emplacement final d'installation du fichier ; seul le nom du fichier est " +"utilisé." #: ../Doc/distutils/setupscript.rst:547 msgid "" @@ -693,26 +996,36 @@ msgid "" "files directly in the target directory, an empty string should be given as " "the directory." msgstr "" +"Vous pouvez définir les options ``data_files`` comme une simple succession " +"de fichiers sans définir de répertoire cible, mais cela n'est pas " +"recommandé, et la commande :command:`install` affichera un message d'alerte " +"dans ce cas. Pour installer des fichiers de donnée directement dans le " +"répertoire cible, une chaîne de caractère vide doit être donnée en tant que " +"répertoire." #: ../Doc/distutils/setupscript.rst:553 msgid "" "All the files that match ``data_files`` will be added to the ``MANIFEST`` " "file if no template is provided. See :ref:`manifest`." msgstr "" +"Tous les fichiers correspondant à ``data_files`` seront ajoutés au fichier " +"``MANIFEST`` si aucun modèle n'est fourni. Voir :ref:`manifest`." #: ../Doc/distutils/setupscript.rst:561 msgid "Additional meta-data" -msgstr "" +msgstr "Métadonnées additionnelles" #: ../Doc/distutils/setupscript.rst:563 msgid "" "The setup script may include additional meta-data beyond the name and " "version. This information includes:" msgstr "" +"Le script ``setup.py`` peut inclure des métadonnées additionnelles en plus " +"du nom et de la version. Cela inclut les informations suivantes :" #: ../Doc/distutils/setupscript.rst:567 msgid "Meta-Data" -msgstr "" +msgstr "Métadonnées" #: ../Doc/distutils/setupscript.rst:567 msgid "Description" @@ -732,13 +1045,13 @@ msgstr "``name``" #: ../Doc/distutils/setupscript.rst:569 msgid "name of the package" -msgstr "" +msgstr "nom du paquet" #: ../Doc/distutils/setupscript.rst:569 ../Doc/distutils/setupscript.rst:571 #: ../Doc/distutils/setupscript.rst:573 ../Doc/distutils/setupscript.rst:578 #: ../Doc/distutils/setupscript.rst:585 ../Doc/distutils/setupscript.rst:601 msgid "short string" -msgstr "" +msgstr "courte chaîne de caractères" #: ../Doc/distutils/setupscript.rst:569 ../Doc/distutils/setupscript.rst:583 msgid "\\(1)" @@ -750,7 +1063,7 @@ msgstr "``version``" #: ../Doc/distutils/setupscript.rst:571 msgid "version of this release" -msgstr "" +msgstr "version de la publication" #: ../Doc/distutils/setupscript.rst:571 msgid "(1)(2)" @@ -758,11 +1071,11 @@ msgstr "(1)(2)" #: ../Doc/distutils/setupscript.rst:573 msgid "``author``" -msgstr "" +msgstr "``author``" #: ../Doc/distutils/setupscript.rst:573 msgid "package author's name" -msgstr "" +msgstr "nom de l'auteur du paquet" #: ../Doc/distutils/setupscript.rst:573 ../Doc/distutils/setupscript.rst:575 #: ../Doc/distutils/setupscript.rst:578 ../Doc/distutils/setupscript.rst:580 @@ -771,31 +1084,31 @@ msgstr "\\(3)" #: ../Doc/distutils/setupscript.rst:575 msgid "``author_email``" -msgstr "" +msgstr "``author_email``" #: ../Doc/distutils/setupscript.rst:575 msgid "email address of the package author" -msgstr "" +msgstr "adresse courriel de l'auteur du paquet" #: ../Doc/distutils/setupscript.rst:575 ../Doc/distutils/setupscript.rst:580 msgid "email address" -msgstr "" +msgstr "adresse de courriel" #: ../Doc/distutils/setupscript.rst:578 msgid "``maintainer``" -msgstr "" +msgstr "``maintainer``" #: ../Doc/distutils/setupscript.rst:578 msgid "package maintainer's name" -msgstr "" +msgstr "nom du mainteneur du paquet" #: ../Doc/distutils/setupscript.rst:580 msgid "``maintainer_email``" -msgstr "" +msgstr "``maintainer_email``" #: ../Doc/distutils/setupscript.rst:580 msgid "email address of the package maintainer" -msgstr "" +msgstr "adresse du courriel du mainteneur du paquet" #: ../Doc/distutils/setupscript.rst:583 msgid "``url``" @@ -803,11 +1116,11 @@ msgstr "``url``" #: ../Doc/distutils/setupscript.rst:583 msgid "home page for the package" -msgstr "" +msgstr "page d’accueil du paquet" #: ../Doc/distutils/setupscript.rst:583 ../Doc/distutils/setupscript.rst:592 msgid "URL" -msgstr "" +msgstr "URL" #: ../Doc/distutils/setupscript.rst:585 msgid "``description``" @@ -815,7 +1128,7 @@ msgstr "``description``" #: ../Doc/distutils/setupscript.rst:585 msgid "short, summary description of the package" -msgstr "" +msgstr "bref résumé décrivant le paquet" #: ../Doc/distutils/setupscript.rst:589 msgid "``long_description``" @@ -823,11 +1136,11 @@ msgstr "``long_description``" #: ../Doc/distutils/setupscript.rst:589 msgid "longer description of the package" -msgstr "" +msgstr "description plus complète du paquet" #: ../Doc/distutils/setupscript.rst:589 msgid "long string" -msgstr "" +msgstr "longue chaîne de caractères" #: ../Doc/distutils/setupscript.rst:589 msgid "\\(4)" @@ -835,24 +1148,24 @@ msgstr "\\(4)" #: ../Doc/distutils/setupscript.rst:592 msgid "``download_url``" -msgstr "" +msgstr "``download_url``" #: ../Doc/distutils/setupscript.rst:592 msgid "location where the package may be downloaded" -msgstr "" +msgstr "endroit où le paquet peut être téléchargé" #: ../Doc/distutils/setupscript.rst:595 msgid "``classifiers``" -msgstr "" +msgstr "``classifiers``" #: ../Doc/distutils/setupscript.rst:595 msgid "a list of classifiers" -msgstr "" +msgstr "une liste de classificateurs" #: ../Doc/distutils/setupscript.rst:595 ../Doc/distutils/setupscript.rst:597 #: ../Doc/distutils/setupscript.rst:599 msgid "list of strings" -msgstr "" +msgstr "liste de chaînes de caractères" #: ../Doc/distutils/setupscript.rst:595 msgid "(6)(7)" @@ -860,23 +1173,23 @@ msgstr "(6)(7)" #: ../Doc/distutils/setupscript.rst:597 msgid "``platforms``" -msgstr "" +msgstr "``platforms``" #: ../Doc/distutils/setupscript.rst:597 msgid "a list of platforms" -msgstr "" +msgstr "une liste de plateformes" #: ../Doc/distutils/setupscript.rst:597 ../Doc/distutils/setupscript.rst:599 msgid "(6)(8)" -msgstr "" +msgstr "(6)(8)" #: ../Doc/distutils/setupscript.rst:599 msgid "``keywords``" -msgstr "" +msgstr "``keywords``" #: ../Doc/distutils/setupscript.rst:599 msgid "a list of keywords" -msgstr "" +msgstr "une liste de mots-clés" #: ../Doc/distutils/setupscript.rst:601 msgid "``license``" @@ -884,7 +1197,7 @@ msgstr "``license``" #: ../Doc/distutils/setupscript.rst:601 msgid "license for the package" -msgstr "" +msgstr "licence du paquet" #: ../Doc/distutils/setupscript.rst:601 msgid "\\(5)" @@ -896,24 +1209,30 @@ msgstr "Notes :" #: ../Doc/distutils/setupscript.rst:607 msgid "These fields are required." -msgstr "" +msgstr "Ces champs sont requis." #: ../Doc/distutils/setupscript.rst:610 msgid "" "It is recommended that versions take the form *major.minor[.patch[.sub]]*." msgstr "" +"Il est recommandé que les versions prennent la forme *majeure.mineure[." +"correctif[.sous-correctif]]*." #: ../Doc/distutils/setupscript.rst:613 msgid "" "Either the author or the maintainer must be identified. If maintainer is " "provided, distutils lists it as the author in :file:`PKG-INFO`." msgstr "" +"L'auteur ou un mainteneur doit être identifié. Si un mainteneur est fourni, " +"*distutils* l'indique en tant qu'auteur dans le fichier :file:`PKG-INFO`." #: ../Doc/distutils/setupscript.rst:617 msgid "" "The ``long_description`` field is used by PyPI when you publish a package, " "to build its project page." msgstr "" +"Le champ ``long_description`` est utilisé par PyPI quand vous publiez un " +"paquet pour construire sa page de projet." #: ../Doc/distutils/setupscript.rst:621 msgid "" @@ -922,15 +1241,22 @@ msgid "" "See the ``Classifier`` field. Notice that there's a ``licence`` distribution " "option which is deprecated but still acts as an alias for ``license``." msgstr "" +"Le champ ``license`` est un texte indiquant la licence du paquet quand la " +"licence n'est pas indiquée dans les classificateurs de type « Licence » " +"Trove. Voir le champ ``Classifier``. À noter qu'il y a une option de " +"distribution ``licence`` qui est obsolète mais agit toujours comme un alias " +"pour ``license``." #: ../Doc/distutils/setupscript.rst:628 msgid "This field must be a list." -msgstr "" +msgstr "Ce champ doit être une liste." #: ../Doc/distutils/setupscript.rst:631 msgid "" "The valid classifiers are listed on `PyPI `_." msgstr "" +"Les classificateurs valides sont listés sur `PyPI `_." #: ../Doc/distutils/setupscript.rst:635 msgid "" @@ -938,32 +1264,38 @@ msgid "" "pass a comma-separated string ``'foo, bar'``, it will be converted to " "``['foo', 'bar']``, Otherwise, it will be converted to a list of one string." msgstr "" +"Pour préserver la rétrocompatibilité, ce champ accepte aussi une chaîne de " +"caractères. Si vous passez une chaine de caractères séparée par des virgules " +"``'truc, machin'``, elle sera convertie en ``['truc', 'machin']``, " +"Autrement, elle sera convertie en une liste d'une chaîne de caractères." #: ../Doc/distutils/setupscript.rst:641 msgid "'short string'" -msgstr "'chaîne courte'" +msgstr "'courte chaîne de caractères'" #: ../Doc/distutils/setupscript.rst:641 msgid "A single line of text, not more than 200 characters." -msgstr "" +msgstr "Une simple ligne de texte ne dépassant par 200 caractères." #: ../Doc/distutils/setupscript.rst:645 msgid "'long string'" -msgstr "'chaîne longue'" +msgstr "'longue chaîne de caractères'" #: ../Doc/distutils/setupscript.rst:644 msgid "" "Multiple lines of plain text in reStructuredText format (see http://docutils." "sourceforge.net/)." msgstr "" +"De multiples lignes de texte au format ReStructuredText (voir http://" +"docutils.sourceforge.net/)." #: ../Doc/distutils/setupscript.rst:648 msgid "'list of strings'" -msgstr "'liste de chaînes'" +msgstr "'liste de chaînes de caractères'" #: ../Doc/distutils/setupscript.rst:648 msgid "See below." -msgstr "" +msgstr "Voir ci-dessous." #: ../Doc/distutils/setupscript.rst:650 msgid "" @@ -979,42 +1311,59 @@ msgid "" "which only fix bugs) and \"pr1,pr2,...,prN\" (for final pre-release release " "testing). Some examples:" msgstr "" +"Encoder les informations de version est un art en soi. Les paquets Python " +"adhèrent généralement au format de version *majeure.mineure[.correctif]" +"[sous]*. Le numéro majeur 0 est utilisé pour les publications " +"expérimentales, initiales d'un logiciel. Il est incrémenté pour les " +"publications qui représentent des étapes majeures pour le paquet. Le nombre " +"mineur est incrémenté quand d'importantes nouvelles fonctionnalités sont " +"ajoutées au paquet. Le numéro de correctif s'incrémente lors de la " +"publication d'une correction de bogue est faite. Celles-ci sont \"*a1,a2,...," +"aN*\" (pour les publications alpha, où les fonctionnalités et l'API peut " +"changer), \"*b1,b2,...,bN*\" (pour les publications *beta*, qui corrigent " +"seulement les bogues) et \"*pr1,pr2,...,prN*\" (pour les ultimes pré-" +"publication et publications de test). Quelques exemples :" #: ../Doc/distutils/setupscript.rst:662 msgid "0.1.0" -msgstr "" +msgstr "0.1.0" #: ../Doc/distutils/setupscript.rst:662 msgid "the first, experimental release of a package" -msgstr "" +msgstr "la première, publication expérimentale du paquet" #: ../Doc/distutils/setupscript.rst:665 msgid "1.0.1a2" -msgstr "" +msgstr "1.0.1a2" #: ../Doc/distutils/setupscript.rst:665 msgid "the second alpha release of the first patch version of 1.0" -msgstr "" +msgstr "la seconde publication alpha du premier correctif de la version 1.0" #: ../Doc/distutils/setupscript.rst:667 msgid "``classifiers`` must be specified in a list::" -msgstr "" +msgstr "les ``classifiers`` doivent être définis dans une liste ::" #: ../Doc/distutils/setupscript.rst:688 msgid "" ":class:`~distutils.core.setup` now warns when ``classifiers``, ``keywords`` " "or ``platforms`` fields are not specified as a list or a string." msgstr "" +":class:`~distutils.core.setup` alerte maintenant lorsque les champs " +"``classifiers``, ``keywords`` ou ``platforms`` ne sont pas définis en tant " +"que liste ou chaîne de caractères." #: ../Doc/distutils/setupscript.rst:695 msgid "Debugging the setup script" -msgstr "" +msgstr "Débogage du script ``setup.py``" #: ../Doc/distutils/setupscript.rst:697 msgid "" "Sometimes things go wrong, and the setup script doesn't do what the " "developer wants." msgstr "" +"Parfois les choses tournent mal et le script ``setup.py`` ne fait pas ce que " +"le développeur veut." #: ../Doc/distutils/setupscript.rst:700 msgid "" @@ -1026,6 +1375,14 @@ msgid "" "or the Python installation is broken because they don't read all the way " "down to the bottom and see that it's a permission problem." msgstr "" +"*Distutils* intercepte toute exception lors de l'exécution du script ``setup." +"py`` et affiche un message d'erreur simple avant d'arrêter le script. L'idée " +"est de ne pas embrouiller les administrateurs qui ne savent pas grand-chose " +"de Python et qui essayent d'installer un paquet. S'ils reçoivent une grosse " +"et longue trace d'appels provenant des entrailles de *Distutils*, ils " +"peuvent penser que le paquet ou que l'installation de Python est corrompue " +"car, ils ne lisent pas tout jusqu'en bas alors que c'est un problème de " +"droits." #: ../Doc/distutils/setupscript.rst:708 msgid "" @@ -1036,6 +1393,13 @@ msgid "" "traceback when an exception occurs, and print the whole command line when an " "external program (like a C compiler) fails." msgstr "" +"D'un autre côté, cela n'aide pas le développeur à trouver la cause du " +"problème. À cette fin, la variable d'environnement :envvar:`DISTUTILS_DEBUG` " +"peut être assignée à n'importe quoi sauf une chaîne de caractères vide, et " +"*distutils* affichera maintenant une information détaillée à propos de ce " +"qu'il fait, déversera la trace d'appels complète lors d'une exception, et " +"affichera la ligne de commande complète quand un programme externe (comme un " +"compilateur C) échoue." #~ msgid "\\(6)" #~ msgstr "\\(6)" diff --git a/distutils/sourcedist.po b/distutils/sourcedist.po index 81898aba62..8e70b8e716 100644 --- a/distutils/sourcedist.po +++ b/distutils/sourcedist.po @@ -5,15 +5,15 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: 2018-09-29 17:53+0200\n" -"Last-Translator: Julien Palard \n" +"POT-Creation-Date: 2020-05-23 11:38+0200\n" +"PO-Revision-Date: 2020-02-04 21:21+0100\n" +"Last-Translator: ZepmanBC \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.0.2\n" +"X-Generator: Poedit 2.2.4\n" #: ../Doc/distutils/sourcedist.rst:5 msgid "Creating a Source Distribution" @@ -25,6 +25,10 @@ msgid "" "documentation at https://setuptools.readthedocs.io/en/latest/setuptools.html " "independently covers all of the relevant information currently included here." msgstr "" +"Cette page est conservée uniquement jusqu'à ce que la documentation " +"``setuptool`` sur https://setuptools.readthedocs.io/en/latest/setuptools." +"html couvre de manière indépendante toutes les informations pertinentes " +"actuellement incluses ici." #: ../Doc/distutils/sourcedist.rst:9 msgid "" diff --git a/extending/building.po b/extending/building.po index 48cadb8159..f2999dc0fe 100644 --- a/extending/building.po +++ b/extending/building.po @@ -110,7 +110,7 @@ msgstr "" #: ../Doc/extending/building.rst:73 msgid "With this :file:`setup.py`, and a file :file:`demo.c`, running ::" -msgstr "Avec ce :file:`setup.py` et un fichier :file:`demo.c`, lancer ::" +msgstr "Avec ce :file:`setup.py` et un fichier :file:`demo.c`, lancer ::" #: ../Doc/extending/building.rst:77 msgid "" @@ -186,7 +186,7 @@ msgstr "" "paquets. En ce qui concerne l'extension, sont définis quelques macros " "préprocesseur, dossiers pour les en-têtes et bibliothèques. En fonction du " "compilateur, *distutils* peut donner ces informations de manière différente. " -"Par exemple, sur Unix, ça peut ressembler aux commandes : ::" +"Par exemple, sur Unix, ça peut ressembler aux commandes ::" #: ../Doc/extending/building.rst:139 msgid "" @@ -213,14 +213,14 @@ msgid "" "End-users will typically want to install the module, they do so by running ::" msgstr "" "Typiquement, les utilisateurs vont vouloir installer le module, ils le font " -"en exécutant ::" +"en exécutant ::" #: ../Doc/extending/building.rst:154 msgid "" "Module maintainers should produce source packages; to do so, they run ::" msgstr "" "Les mainteneurs de modules voudront produire des paquets source, pour ce " -"faire ils exécuteront ::" +"faire ils exécuteront ::" #: ../Doc/extending/building.rst:158 msgid "" diff --git a/extending/embedding.po b/extending/embedding.po index abd6d19279..f6a5722772 100644 --- a/extending/embedding.po +++ b/extending/embedding.po @@ -6,14 +6,14 @@ msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-11-15 18:54+0100\n" -"PO-Revision-Date: 2018-10-04 16:18+0200\n" -"Last-Translator: Julien Palard \n" +"PO-Revision-Date: 2019-12-25 17:24+0100\n" +"Last-Translator: Antoine \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 1.8.11\n" +"X-Generator: Poedit 2.0.6\n" #: ../Doc/extending/embedding.rst:8 msgid "Embedding Python in Another Application" @@ -31,13 +31,13 @@ msgid "" "writing some scripts in Python. You can also use it yourself if some of the " "functionality can be written in Python more easily." msgstr "" -"Les chapitres précédents couvraient l'extension de Python, c'est à dire, " +"Les chapitres précédents couvraient l'extension de Python, c'est-à-dire, " "comment enrichir une fonctionnalité de Python en y attachant une " -"bibliothèque de fonctions C. C'est aussi possible dans l'autre sens: " +"bibliothèque de fonctions C. C'est aussi possible dans l'autre sens : " "enrichir vos applications C/C++ en y intégrant Python. Intégrer Python vous " "permet d'implémenter certaines fonctionnalités de vos applications en Python " "plutôt qu'en C ou C++. C'est utile dans de nombreux cas, un exemple serait " -"de permettre aux utilisateurs d'adapter une application à leur besoins en y " +"de permettre aux utilisateurs d'adapter une application à leurs besoins en y " "écrivant des scripts Python. Vous pouvez aussi l'utiliser vous même si " "certaines fonctionnalités peuvent être rédigées plus facilement en Python." @@ -79,9 +79,9 @@ msgid "" "level operations described in the previous chapters to construct and use " "Python objects." msgstr "" -"Il existe différents moyens d'appeler l'interpréteur: vous pouvez donner une " -"chaîne contenant des instructions Python à :c:func:`PyRun_SimpleString`, ou " -"vous pouvez donner un pointeur de fichier *stdio* et un nom de fichier " +"Il existe différents moyens d'appeler l'interpréteur : vous pouvez donner " +"une chaîne contenant des instructions Python à :c:func:`PyRun_SimpleString`, " +"ou vous pouvez donner un pointeur de fichier *stdio* et un nom de fichier " "(juste pour nommer les messages d'erreur) à :c:func:`PyRunSimpleFile`. Vous " "pouvez aussi appeler les API de bas niveau décrites dans les chapitres " "précédents pour construire et utiliser des objets Python." @@ -142,7 +142,7 @@ msgstr "" #: ../Doc/extending/embedding.rst:93 msgid "Beyond Very High Level Embedding: An overview" -msgstr "Au delà de l'intégration de haut niveau: survol" +msgstr "Au-delà de l'intégration de haut niveau : survol" #: ../Doc/extending/embedding.rst:95 msgid "" @@ -168,7 +168,7 @@ msgstr "" "Il est à souligner qu'étendre ou intégrer Python revient à la louche au " "même, en dépit de la différence d'intention. La plupart des sujets parcourus " "dans les chapitres précédents sont toujours valides. Pour le prouver, " -"regardez ce qu'un code d'extension de Python vers C fait réellement :" +"regardez ce qu'un code d'extension de Python vers C fait réellement :" #: ../Doc/extending/embedding.rst:105 msgid "Convert data values from Python to C," @@ -184,7 +184,7 @@ msgstr "Convertir les résultats de l'appel à la fonction C pour Python." #: ../Doc/extending/embedding.rst:111 msgid "When embedding Python, the interface code does:" -msgstr "Lors de l'intégration de Python, le code de l'interface fait :" +msgstr "Lors de l'intégration de Python, le code de l'interface fait :" #: ../Doc/extending/embedding.rst:113 msgid "Convert data values from C to Python," @@ -210,7 +210,7 @@ msgid "" "you call a C routine, when embedding, you call a Python routine." msgstr "" "Tel que vous le voyez, les conversions sont simplement inversées pour " -"s'adapter au différentes directions de transfert inter-langage. La seule " +"s'adapter aux différentes directions de transfert inter-langage. La seule " "différence est la fonction que vous appelez entre les deux conversions de " "données. Lors de l'extension, vous appelez une fonction C, lors de " "l'intégration vous appelez une fonction Python." @@ -246,7 +246,7 @@ msgstr "" #: ../Doc/extending/embedding.rst:141 msgid "The code to run a function defined in a Python script is:" -msgstr "Le code pour appeler une fonction définie dans un script Python est :" +msgstr "Le code pour appeler une fonction définie dans un script Python est :" #: ../Doc/extending/embedding.rst:146 msgid "" @@ -260,11 +260,11 @@ msgstr "" "fonction dont le nom est dans ``argv[2]``. Ses arguments entiers sont les " "autres valeurs de ``argv``. Si vous :ref:`compilez et liez ` ce " "programme (appelons l'exécutable :program:`call`), et l'appelez pour " -"exécuter un script Python, tel que :" +"exécuter un script Python, tel que :" #: ../Doc/extending/embedding.rst:161 msgid "then the result should be:" -msgstr "alors, le résultat sera:" +msgstr "alors, le résultat sera :" #: ../Doc/extending/embedding.rst:169 msgid "" @@ -275,7 +275,7 @@ msgstr "" "Bien que le programme soit plutôt gros pour ses fonctionnalités, la plupart " "du code n'est que conversion de données entre Python et C, aussi que pour " "rapporter les erreurs. La partie intéressante, qui concerne l'intégration de " -"Python débute par ::" +"Python débute par ::" #: ../Doc/extending/embedding.rst:178 msgid "" @@ -286,8 +286,8 @@ msgid "" msgstr "" "Après avoir initialisé l'interpréteur, le script est chargé en utilisant :c:" "func:`PyImport_Import`. Cette fonction prend une chaîne Python pour " -"argument, elle même construite en utilisant la fonction de conversion :c:" -"func:`PyUnicode_FromString`." +"argument, elle-même construite en utilisant la fonction de conversion :c:" +"func:`PyUnicode_FromString`. ::" #: ../Doc/extending/embedding.rst:191 msgid "" @@ -304,13 +304,12 @@ msgstr "" "d'arguments. L'appel à la fonction Python est alors effectué avec ::" #: ../Doc/extending/embedding.rst:199 -#, fuzzy msgid "" "Upon return of the function, ``pValue`` is either ``NULL`` or it contains a " "reference to the return value of the function. Be sure to release the " "reference after examining the value." msgstr "" -"Après l'exécution de la fonction, ``pValue`` est soit *NULL*, soit une " +"Après l'exécution de la fonction, ``pValue`` est soit ``NULL``, soit une " "référence sur la valeur donnée par la fonction. Assurez-vous de libérer la " "référence après avoir utilisé la valeur." @@ -363,7 +362,7 @@ msgid "" "In a real application, the methods will expose an API of the application to " "Python." msgstr "" -"Dans un cas réel, les méthodes exposeraient une API de l'application a " +"Dans un cas réel, les méthodes exposeraient une API de l'application à " "Python." #: ../Doc/extending/embedding.rst:271 @@ -408,10 +407,10 @@ msgid "" "available). This script has several options, of which the following will be " "directly useful to you:" msgstr "" -"Pour trouver les bonnes option de compilateur et *linker*, vous pouvez " +"Pour trouver les bonnes options de compilateur et *linker*, vous pouvez " "exécuter le script :file:`python(X.Y)-config` généré durant l'installation " "(un script :file:`python3-config` peut aussi être disponible). Ce script a " -"quelques options, celles-ci vous seront utiles :" +"quelques options, celles-ci vous seront utiles :" #: ../Doc/extending/embedding.rst:296 msgid "" @@ -419,7 +418,7 @@ msgid "" "compiling:" msgstr "" "``pythonX.Y-config --cflags`` vous donnera les options recommandées pour " -"compiler:" +"compiler :" #: ../Doc/extending/embedding.rst:304 msgid "" @@ -427,7 +426,7 @@ msgid "" "linking:" msgstr "" "``pythonX.Y-config --ldflags`` vous donnera les drapeaux recommandés lors de " -"l'édition de lien:" +"l'édition de lien :" #: ../Doc/extending/embedding.rst:313 msgid "" diff --git a/extending/extending.po b/extending/extending.po index 7f9bf749c1..6e5938451b 100644 --- a/extending/extending.po +++ b/extending/extending.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-15 18:54+0100\n" +"POT-Creation-Date: 2020-05-23 11:38+0200\n" "PO-Revision-Date: 2019-10-30 00:03+0100\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -15,11 +15,11 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.2.3\n" -#: ../Doc/extending/extending.rst:8 +#: extending/extending.rst:8 msgid "Extending Python with C or C++" msgstr "Étendre Python en C ou C++" -#: ../Doc/extending/extending.rst:10 +#: extending/extending.rst:10 msgid "" "It is quite easy to add new built-in modules to Python, if you know how to " "program in C. Such :dfn:`extension modules` can do two things that can't be " @@ -32,7 +32,7 @@ msgstr "" "peuvent définir de nouveaux types natifs, et peuvent appeler des fonctions " "de bibliothèques C ou appels systèmes." -#: ../Doc/extending/extending.rst:15 +#: extending/extending.rst:15 msgid "" "To support extensions, the Python API (Application Programmers Interface) " "defines a set of functions, macros and variables that provide access to most " @@ -44,7 +44,7 @@ msgstr "" "plupart des aspects du système d'exécution de Python. L'API Python est " "incorporée dans un fichier source C en incluant l'en-tête ``\"Python.h\"``." -#: ../Doc/extending/extending.rst:20 +#: extending/extending.rst:20 msgid "" "The compilation of an extension module depends on its intended use as well " "as on your system setup; details are given in later chapters." @@ -53,7 +53,7 @@ msgstr "" "configuration du système, plus de détails peuvent être trouvés dans les " "chapitres suivants." -#: ../Doc/extending/extending.rst:25 +#: extending/extending.rst:25 msgid "" "The C extension interface is specific to CPython, and extension modules do " "not work on other Python implementations. In many cases, it is possible to " @@ -77,11 +77,11 @@ msgstr "" "implémentations de Python que l'écriture et la compilation d'une d'extension " "C." -#: ../Doc/extending/extending.rst:40 +#: extending/extending.rst:40 msgid "A Simple Example" msgstr "Un exemple simple" -#: ../Doc/extending/extending.rst:42 +#: extending/extending.rst:42 msgid "" "Let's create an extension module called ``spam`` (the favorite food of Monty " "Python fans...) and let's say we want to create a Python interface to the C " @@ -96,7 +96,7 @@ msgstr "" "un entier. Nous voulons que cette fonction soit appelable à partir de Python " "comme suit :" -#: ../Doc/extending/extending.rst:53 +#: extending/extending.rst:53 msgid "" "Begin by creating a file :file:`spammodule.c`. (Historically, if a module " "is called ``spam``, the C file containing its implementation is called :file:" @@ -108,11 +108,11 @@ msgstr "" "appelé :file:`spammodule.c`. Si le nom du module est très long, comme " "``spammify``, le nom du module peut être juste :file:`spammify.c`.)" -#: ../Doc/extending/extending.rst:58 +#: extending/extending.rst:58 msgid "The first two lines of our file can be::" msgstr "Les deux premières lignes de notre fichier peuvent être ::" -#: ../Doc/extending/extending.rst:63 +#: extending/extending.rst:63 msgid "" "which pulls in the Python API (you can add a comment describing the purpose " "of the module and a copyright notice if you like)." @@ -120,7 +120,7 @@ msgstr "" "qui récupère l'API Python (vous pouvez ajouter un commentaire décrivant le " "but du module et un avis de droit d'auteur si vous le souhaitez)." -#: ../Doc/extending/extending.rst:68 +#: extending/extending.rst:68 msgid "" "Since Python may define some pre-processor definitions which affect the " "standard headers on some systems, you *must* include :file:`Python.h` before " @@ -130,7 +130,7 @@ msgstr "" "les têtes standard sur certains systèmes, vous *devez* inclure :file:`Python." "h` avant les en-têtes standards." -#: ../Doc/extending/extending.rst:72 +#: extending/extending.rst:72 msgid "" "It is recommended to always define ``PY_SSIZE_T_CLEAN`` before including " "``Python.h``. See :ref:`parsetuple` for a description of this macro." @@ -139,25 +139,25 @@ msgstr "" "``Python.h``. Lisez :ref:`parsetuple` pour avoir une description de cette " "macro." -#: ../Doc/extending/extending.rst:75 +#: extending/extending.rst:75 msgid "" "All user-visible symbols defined by :file:`Python.h` have a prefix of ``Py`` " "or ``PY``, except those defined in standard header files. For convenience, " -"and since they are used extensively by the Python interpreter, ``\"Python.h" -"\"`` includes a few standard header files: ````, ````, " +"and since they are used extensively by the Python interpreter, ``\"Python." +"h\"`` includes a few standard header files: ````, ````, " "````, and ````. If the latter header file does not exist " "on your system, it declares the functions :c:func:`malloc`, :c:func:`free` " "and :c:func:`realloc` directly." msgstr "" "Tous les symboles exposés par :file:`Python.h` sont préfixés de ``Py`` ou " "``PY``, sauf ceux qui sont définis dans les en-têtes standard. Pour le " -"confort, et comme ils sont largement utilisés par l'interpréteur Python, ``" -"\"Python.h\"`` inclut lui même quelques d'en-têtes standard : ````, " -"````, ```` et ````. Si ce dernier n'existe pas " -"sur votre système, il déclare les fonctions :c:func:`malloc`, :c:func:`free` " -"et :c:func:`realloc` directement." +"confort, et comme ils sont largement utilisés par l'interpréteur Python, " +"``\"Python.h\"`` inclut lui même quelques d'en-têtes standard : ````, ````, ```` et ````. Si ce dernier " +"n'existe pas sur votre système, il déclare les fonctions :c:func:`malloc`, :" +"c:func:`free` et :c:func:`realloc` directement." -#: ../Doc/extending/extending.rst:83 +#: extending/extending.rst:83 msgid "" "The next thing we add to our module file is the C function that will be " "called when the Python expression ``spam.system(string)`` is evaluated " @@ -168,7 +168,7 @@ msgstr "" "system(chaîne)`` sera évaluée (nous verrons bientôt comment elle finit par " "être appelée) ::" -#: ../Doc/extending/extending.rst:99 +#: extending/extending.rst:99 msgid "" "There is a straightforward translation from the argument list in Python (for " "example, the single expression ``\"ls -l\"``) to the arguments passed to the " @@ -180,7 +180,7 @@ msgstr "" "La fonction C a toujours deux arguments, appelés par convention *self* et " "*args*." -#: ../Doc/extending/extending.rst:104 +#: extending/extending.rst:104 msgid "" "The *self* argument points to the module object for module-level functions; " "for a method it would point to the object instance." @@ -188,7 +188,7 @@ msgstr "" "Pour les fonctions au niveau du module, l'argument *self* pointe sur l'objet " "module, pour une méthode, il pointe sur l'instance de l'objet." -#: ../Doc/extending/extending.rst:107 +#: extending/extending.rst:107 msgid "" "The *args* argument will be a pointer to a Python tuple object containing " "the arguments. Each item of the tuple corresponds to an argument in the " @@ -209,8 +209,7 @@ msgstr "" "ainsi que les types de variables C dans lequel stocker les valeurs " "converties. Nous en verront plus, plus tard." -#: ../Doc/extending/extending.rst:116 -#, fuzzy +#: extending/extending.rst:116 msgid "" ":c:func:`PyArg_ParseTuple` returns true (nonzero) if all arguments have the " "right type and its components have been stored in the variables whose " @@ -221,16 +220,16 @@ msgid "" msgstr "" ":c:func:`PyArg_ParseTuple` renvoie vrai (pas zéro) si tous les arguments ont " "le bon type et que ses composants ont été stockés dans les variables dont " -"les adresses données. Il renvoie faux (zéro) si une liste d'arguments " -"invalide a été passée. Dans ce dernier cas, elle lève également une " -"exception appropriée de sorte que la fonction d'appel puisse renvoyer *NULL* " -"immédiatement (comme nous l'avons vu dans l'exemple)." +"les adresses ont été données en entrée. Il renvoie faux (zéro) si une liste " +"d'arguments invalide a été passée. Dans ce dernier cas, elle lève également " +"une exception appropriée de sorte que la fonction d'appel puisse renvoyer " +"``NULL`` immédiatement (comme nous l'avons vu dans l'exemple)." -#: ../Doc/extending/extending.rst:126 +#: extending/extending.rst:126 msgid "Intermezzo: Errors and Exceptions" msgstr "Intermezzo: Les erreurs et exceptions" -#: ../Doc/extending/extending.rst:128 +#: extending/extending.rst:128 #, fuzzy msgid "" "An important convention throughout the Python interpreter is the following: " @@ -258,7 +257,7 @@ msgstr "" "Reference*). Il est important de les connaître pour comprendre comment les " "erreurs sont propagées." -#: ../Doc/extending/extending.rst:139 +#: extending/extending.rst:139 msgid "" "The Python API defines a number of functions to set various types of " "exceptions." @@ -266,7 +265,7 @@ msgstr "" "L'API Python définit un certain nombre de fonctions pour créer différents " "types d'exceptions." -#: ../Doc/extending/extending.rst:141 +#: extending/extending.rst:141 msgid "" "The most common one is :c:func:`PyErr_SetString`. Its arguments are an " "exception object and a C string. The exception object is usually a " @@ -280,7 +279,7 @@ msgstr "" "cause de l'erreur et est convertie en une chaîne Python puis stockée en tant " "que \"valeur associée\" à l'exception." -#: ../Doc/extending/extending.rst:147 +#: extending/extending.rst:147 msgid "" "Another useful function is :c:func:`PyErr_SetFromErrno`, which only takes an " "exception argument and constructs the associated value by inspection of the " @@ -295,8 +294,7 @@ msgstr "" "arguments: l'exception et sa valeur associée. Vous ne devez pas appliquer :c:" "func:`Py_INCREF` aux objets transmis à ces fonctions." -#: ../Doc/extending/extending.rst:154 -#, fuzzy +#: extending/extending.rst:154 msgid "" "You can test non-destructively whether an exception has been set with :c:" "func:`PyErr_Occurred`. This returns the current exception object, or " @@ -306,12 +304,12 @@ msgid "" msgstr "" "Vous pouvez tester de manière non destructive si une exception a été levée " "avec :c:func:`PyErr_Occurred`. Cela renvoie l'objet exception actuel, ou " -"*NULL* si aucune exception n'a eu lieu. Cependant, vous ne devriez pas avoir " -"besoin d'appeler :c:func:`PyErr_Occurred` pour voir si une erreur est " +"``NULL`` si aucune exception n'a eu lieu. Cependant, vous ne devriez pas " +"avoir besoin d'appeler :c:func:`PyErr_Occurred` pour voir si une erreur est " "survenue durant l'appel d'une fonction, puisque vous devriez être en mesure " -"de le déterminer à partir de la valeur de retour." +"de le déterminer à partir de la valeur renvoyée." -#: ../Doc/extending/extending.rst:160 +#: extending/extending.rst:160 #, fuzzy msgid "" "When a function *f* that calls another function *g* detects that the latter " @@ -337,7 +335,7 @@ msgstr "" "d'exécution et essaie de trouver un gestionnaire d'exception spécifié par le " "développeur Python." -#: ../Doc/extending/extending.rst:170 +#: extending/extending.rst:170 msgid "" "(There are situations where a module can actually give a more detailed error " "message by calling another :c:func:`PyErr_\\*` function, and in such cases " @@ -352,7 +350,7 @@ msgstr "" "sur la cause de l'erreur: la plupart des opérations peuvent échouer pour " "tout un tas de raisons)." -#: ../Doc/extending/extending.rst:176 +#: extending/extending.rst:176 msgid "" "To ignore an exception set by a function call that failed, the exception " "condition must be cleared explicitly by calling :c:func:`PyErr_Clear`. The " @@ -367,7 +365,7 @@ msgstr "" "l'interpréteur, mais souhaite la gérer lui-même (peut-être en essayant " "quelque chose d'autre, ou en prétendant que rien n'a mal tourné)." -#: ../Doc/extending/extending.rst:182 +#: extending/extending.rst:182 msgid "" "Every failing :c:func:`malloc` call must be turned into an exception --- the " "direct caller of :c:func:`malloc` (or :c:func:`realloc`) must call :c:func:" @@ -382,7 +380,7 @@ msgstr "" "`PyLong_FromLong`) le font déjà, donc cette note ne concerne que ceux qui " "appellent :c:func:`malloc` directement." -#: ../Doc/extending/extending.rst:188 +#: extending/extending.rst:188 msgid "" "Also note that, with the important exception of :c:func:`PyArg_ParseTuple` " "and friends, functions that return an integer status usually return a " @@ -394,7 +392,7 @@ msgstr "" "donnent généralement une valeur positive ou zéro en cas de succès et ``-1`` " "en cas d'échec, comme les appels du système Unix." -#: ../Doc/extending/extending.rst:192 +#: extending/extending.rst:192 msgid "" "Finally, be careful to clean up garbage (by making :c:func:`Py_XDECREF` or :" "c:func:`Py_DECREF` calls for objects you have already created) when you " @@ -404,7 +402,7 @@ msgstr "" "de nettoyage (en appelant :c:func:`Py_XDECREF` ou :c:func:`Py_DECREF` avec " "les objets que vous auriez déjà créés) !" -#: ../Doc/extending/extending.rst:196 +#: extending/extending.rst:196 msgid "" "The choice of which exception to raise is entirely yours. There are " "predeclared C objects corresponding to all built-in Python exceptions, such " @@ -428,7 +426,7 @@ msgstr "" "satisfaire d'autres conditions, :c:data:`PyExc_ValueError` sera plus " "appropriée." -#: ../Doc/extending/extending.rst:206 +#: extending/extending.rst:206 msgid "" "You can also define a new exception that is unique to your module. For this, " "you usually declare a static object variable at the beginning of your file::" @@ -436,7 +434,7 @@ msgstr "" "Vous pouvez également créer une exception spécifique à votre module. Pour " "cela, déclarez simplement une variable statique au début de votre fichier ::" -#: ../Doc/extending/extending.rst:211 +#: extending/extending.rst:211 msgid "" "and initialize it in your module's initialization function (:c:func:" "`PyInit_spam`) with an exception object::" @@ -444,20 +442,19 @@ msgstr "" "et initialisez-la dans la fonction d'initialisation de votre module (:c:func:" "`PyInit_spam`) avec un objet exception ::" -#: ../Doc/extending/extending.rst:235 -#, fuzzy +#: extending/extending.rst:235 msgid "" "Note that the Python name for the exception object is :exc:`spam.error`. " "The :c:func:`PyErr_NewException` function may create a class with the base " "class being :exc:`Exception` (unless another class is passed in instead of " "``NULL``), described in :ref:`bltin-exceptions`." msgstr "" -"Notez que le nom de exception, côté Python, est :exc:`spam.error`. La " +"Notez que le nom de l'exception en Python est :exc:`spam.error`. La " "fonction :c:func:`PyErr_NewException` peut créer une classe héritant de :exc:" "`Exception` (à moins qu'une autre classe ne lui soit fournie à la place de " -"*NULL*), voir :ref:`bltin-exceptions`." +"``NULL``), voir :ref:`bltin-exceptions`." -#: ../Doc/extending/extending.rst:240 +#: extending/extending.rst:240 msgid "" "Note also that the :c:data:`SpamError` variable retains a reference to the " "newly created exception class; this is intentional! Since the exception " @@ -475,7 +472,7 @@ msgstr "" "défaillant, le C code qui lève l'exception peut engendrer un rejet central " "ou des effets secondaires inattendus." -#: ../Doc/extending/extending.rst:247 +#: extending/extending.rst:247 msgid "" "We discuss the use of ``PyMODINIT_FUNC`` as a function return type later in " "this sample." @@ -483,7 +480,7 @@ msgstr "" "Nous traiterons de l'utilisation de ``PyMODINIT_FUNC`` comme un type de " "retour de fonction plus tard dans cette section." -#: ../Doc/extending/extending.rst:250 +#: extending/extending.rst:250 msgid "" "The :exc:`spam.error` exception can be raised in your extension module using " "a call to :c:func:`PyErr_SetString` as shown below::" @@ -491,11 +488,11 @@ msgstr "" "L'exception :exc:`spam.error` peut être levée dans votre module d'extension " "en appelant :c:func:`PyErr_SetString` comme montré ci-dessous ::" -#: ../Doc/extending/extending.rst:273 +#: extending/extending.rst:273 msgid "Back to the Example" msgstr "Retour vers l'exemple" -#: ../Doc/extending/extending.rst:275 +#: extending/extending.rst:275 msgid "" "Going back to our example function, you should now be able to understand " "this statement::" @@ -503,8 +500,7 @@ msgstr "" "En revenant vers notre fonction exemple, vous devriez maintenant être " "capable de comprendre cette affirmation ::" -#: ../Doc/extending/extending.rst:281 -#, fuzzy +#: extending/extending.rst:281 msgid "" "It returns ``NULL`` (the error indicator for functions returning object " "pointers) if an error is detected in the argument list, relying on the " @@ -514,16 +510,16 @@ msgid "" "which it points (so in Standard C, the variable :c:data:`command` should " "properly be declared as ``const char *command``)." msgstr "" -"Elle renvoie *NULL* (l'indicateur d'erreur pour les fonctions renvoyant des " -"pointeurs d'objet) si une erreur est détectée dans la liste des arguments,se " -"fiant à l'exception définie par :c:func:`PyArg_ParseTuple`. Autrement,la " -"valeur chaîne de l'argument a été copiée dans la variable locale :c:data:" -"`command`. Il s'agit d'une attribution de pointeur et vous n'êtes pas " -"supposés modifier la chaîne qui vers laquelle il pointe (donc en C Standard, " -"la variable :c:data:`command` doit être clairement déclarée comme ``const " -"char *command``)." +"Elle renvoie ``NULL`` (l'indicateur d'erreur pour les fonctions renvoyant " +"des pointeurs d'objet) si une erreur est détectée dans la liste des " +"arguments, se fiant à l'exception définie par :c:func:`PyArg_ParseTuple`. " +"Autrement, la valeur chaîne de l'argument a été copiée dans la variable " +"locale :c:data:`command`. Il s'agit d'une attribution de pointeur et vous " +"n'êtes pas supposés modifier la chaîne vers laquelle il pointe (donc en C " +"Standard, la variable :c:data:`command` doit être clairement déclarée comme " +"``const char *command``)." -#: ../Doc/extending/extending.rst:289 +#: extending/extending.rst:289 msgid "" "The next statement is a call to the Unix function :c:func:`system`, passing " "it the string we just got from :c:func:`PyArg_ParseTuple`::" @@ -532,7 +528,7 @@ msgstr "" "en lui passant la chaîne que nous venons d'obtenir à partir de :c:func:" "`PyArg_ParseTuple` ::" -#: ../Doc/extending/extending.rst:294 +#: extending/extending.rst:294 msgid "" "Our :func:`spam.system` function must return the value of :c:data:`sts` as a " "Python object. This is done using the function :c:func:`PyLong_FromLong`. ::" @@ -541,7 +537,7 @@ msgstr "" "comme un objet Python. Cela est effectué par l'utilisation de la fonction :c:" "func:`PyLong_FromLong`. ::" -#: ../Doc/extending/extending.rst:299 +#: extending/extending.rst:299 msgid "" "In this case, it will return an integer object. (Yes, even integers are " "objects on the heap in Python!)" @@ -549,7 +545,7 @@ msgstr "" "Dans ce cas, elle renverra un objet entier. (Oui, même les entiers sont des " "objets dans le tas en Python!)" -#: ../Doc/extending/extending.rst:302 +#: extending/extending.rst:302 msgid "" "If you have a C function that returns no useful argument (a function " "returning :c:type:`void`), the corresponding Python function must return " @@ -561,32 +557,31 @@ msgstr "" "renvoyer ``None``. Vous aurez besoin de cette locution pour cela (qui est " "implémentée par la macro :c:macro:`Py_RETURN_NONE`) ::" -#: ../Doc/extending/extending.rst:310 -#, fuzzy +#: extending/extending.rst:310 msgid "" ":c:data:`Py_None` is the C name for the special Python object ``None``. It " "is a genuine Python object rather than a ``NULL`` pointer, which means " "\"error\" in most contexts, as we have seen." msgstr "" -":c:data:`Py_None` est le nom C pour l'objet spécial Python ``None``. C'est " -"un authentique objet Python plutôt qu'un pointeur *NULL*, qui signifie " -"qu'une erreur est survenue, dans la plupart des situations, comme nous " -"l'avons vu." +":c:data:`Py_None` est la dénomination en C pour l'objet spécial Python " +"``None``. C'est un authentique objet Python plutôt qu'un pointeur ``NULL``, " +"qui signifie qu'une erreur est survenue, dans la plupart des situations, " +"comme nous l'avons vu." -#: ../Doc/extending/extending.rst:318 +#: extending/extending.rst:318 msgid "The Module's Method Table and Initialization Function" msgstr "La fonction d'initialisation et le tableau des méthodes du module" -#: ../Doc/extending/extending.rst:320 +#: extending/extending.rst:320 msgid "" "I promised to show how :c:func:`spam_system` is called from Python programs. " "First, we need to list its name and address in a \"method table\"::" msgstr "" "Nous avons promis de montrer comment :c:func:`spam_system` est appelée " "depuis les programmes Python. D'abord, nous avons besoin d'avoir son nom et " -"son adresse dans un « tableau des méthodes » ::" +"son adresse dans un « tableau des méthodes » ::" -#: ../Doc/extending/extending.rst:331 +#: extending/extending.rst:331 msgid "" "Note the third entry (``METH_VARARGS``). This is a flag telling the " "interpreter the calling convention to be used for the C function. It should " @@ -600,7 +595,7 @@ msgstr "" "METH_KEYWORDS`` ; la valeur ``0`` indique qu'une variante obsolète de :c:" "func:`PyArg_ParseTuple` est utilisée." -#: ../Doc/extending/extending.rst:336 +#: extending/extending.rst:336 msgid "" "When using only ``METH_VARARGS``, the function should expect the Python-" "level parameters to be passed in as a tuple acceptable for parsing via :c:" @@ -611,7 +606,7 @@ msgstr "" "*via* :c:func:`PyArg_ParseTuple` ; des informations supplémentaires sont " "fournies plus bas." -#: ../Doc/extending/extending.rst:340 +#: extending/extending.rst:340 msgid "" "The :const:`METH_KEYWORDS` bit may be set in the third field if keyword " "arguments should be passed to the function. In this case, the C function " @@ -625,29 +620,37 @@ msgstr "" "dictionnaire des mots-clés. Utilisez :c:func:`PyArg_ParseTupleAndKeywords` " "pour analyser les arguments d'une telle fonction." -#: ../Doc/extending/extending.rst:346 +#: extending/extending.rst:346 msgid "" "The method table must be referenced in the module definition structure::" msgstr "" "Le tableau des méthodes doit être référencé dans la structure de définition " "du module ::" -#: ../Doc/extending/extending.rst:357 +#: extending/extending.rst:357 msgid "" "This structure, in turn, must be passed to the interpreter in the module's " "initialization function. The initialization function must be named :c:func:" "`PyInit_name`, where *name* is the name of the module, and should be the " "only non-\\ ``static`` item defined in the module file::" msgstr "" +"Cette structure, à son tour, doit être transmise à l'interpréteur dans la " +"fonction d'initialisation du module. La fonction d'initialisation doit être " +"nommée :c:func:`PyInit_name`, où *nom* est le nom du module, et doit être le " +"seul élément non ``static`` défini dans le fichier du module ::" -#: ../Doc/extending/extending.rst:368 +#: extending/extending.rst:368 msgid "" "Note that PyMODINIT_FUNC declares the function as ``PyObject *`` return " "type, declares any special linkage declarations required by the platform, " "and for C++ declares the function as ``extern \"C\"``." msgstr "" +"Notez que *PyMODINIT_FUNC* déclare la fonction comme renvoyant un objet de " +"type ``PyObject *``, et déclare également toute déclaration de liaison " +"spéciale requise par la plate-forme, et pour le C++ déclare la fonction " +"comme un C ``extern``." -#: ../Doc/extending/extending.rst:372 +#: extending/extending.rst:372 msgid "" "When the Python program imports module :mod:`spam` for the first time, :c:" "func:`PyInit_spam` is called. (See below for comments about embedding " @@ -660,16 +663,32 @@ msgid "" "The init function must return the module object to its caller, so that it " "then gets inserted into ``sys.modules``." msgstr "" +"Lorsque le programme Python importe le module :mod:`spam` pour la première " +"fois, :c:func:`PyInit_spam` est appelé. (Voir ci-dessous pour les " +"commentaires sur l'intégration en Python.) Il appelle :c:func:" +"`PyModule_Create`, qui renvoie un objet module, et insère des objets " +"fonction intégrés dans le module nouvellement créé en se basant sur la table " +"(un tableau de structures :c:type:`PyMethodDef`) trouvée dans la définition " +"du module. :c:func:`PyModule_Create` renvoie un pointeur vers l'objet module " +"qu'il crée. Il peut s'interrompre avec une erreur fatale pour certaines " +"erreurs, ou renvoyer ``NULL`` si le module n'a pas pu être initialisé de " +"manière satisfaisante. La fonction `*init* doit renvoyer l'objet module à " +"son appelant, afin qu'il soit ensuite inséré dans ``sys.modules``." -#: ../Doc/extending/extending.rst:383 +#: extending/extending.rst:383 msgid "" "When embedding Python, the :c:func:`PyInit_spam` function is not called " "automatically unless there's an entry in the :c:data:`PyImport_Inittab` " "table. To add the module to the initialization table, use :c:func:" "`PyImport_AppendInittab`, optionally followed by an import of the module::" msgstr "" +"Lors de l'intégration de Python, la fonction :c:func:`PyInit_spam` n'est pas " +"appelée automatiquement, sauf s'il y a une entrée dans la table :c:data:" +"`PyImport_Inittab`. Pour ajouter le module à la table d'initialisation, " +"utilisez :c:func:`PyImport_AppendInittab`, suivi éventuellement d'une " +"importation du module ::" -#: ../Doc/extending/extending.rst:419 +#: extending/extending.rst:427 msgid "" "Removing entries from ``sys.modules`` or importing compiled modules into " "multiple interpreters within a process (or following a :c:func:`fork` " @@ -677,27 +696,41 @@ msgid "" "extension modules. Extension module authors should exercise caution when " "initializing internal data structures." msgstr "" +"Supprimer des entrées de ``sys.modules`` ou importer des modules compilés " +"dans plusieurs interpréteurs au sein d'un processus (ou suivre un :c:func:" +"`fork` sans l'intervention d'un :c:func:`exec`) peut créer des problèmes " +"pour certains modules d'extension. Les auteurs de modules d'extension " +"doivent faire preuve de prudence lorsqu'ils initialisent des structures de " +"données internes." -#: ../Doc/extending/extending.rst:425 +#: extending/extending.rst:433 msgid "" "A more substantial example module is included in the Python source " "distribution as :file:`Modules/xxmodule.c`. This file may be used as a " "template or simply read as an example." msgstr "" +"Un exemple de module plus substantiel est inclus dans la distribution des " +"sources Python sous le nom :file:`Modules/xxmodule.c`. Ce fichier peut être " +"utilisé comme modèle ou simplement lu comme exemple." -#: ../Doc/extending/extending.rst:431 +#: extending/extending.rst:439 msgid "" "Unlike our ``spam`` example, ``xxmodule`` uses *multi-phase initialization* " "(new in Python 3.5), where a PyModuleDef structure is returned from " "``PyInit_spam``, and creation of the module is left to the import machinery. " "For details on multi-phase initialization, see :PEP:`489`." msgstr "" +"Contrairement à notre exemple de ``spam``, ``xxmodule`` utilise une " +"*initialisation multi-phase* (nouveau en Python 3.5), où une structure " +"*PyModuleDef* est renvoyée à partir de ``PyInit_spam``, et la création du " +"module est laissée au mécanisme d'importation. Pour plus de détails sur " +"l'initialisation multi-phase, voir :PEP:`489`." -#: ../Doc/extending/extending.rst:440 +#: extending/extending.rst:448 msgid "Compilation and Linkage" -msgstr "" +msgstr "Compilation et liaison" -#: ../Doc/extending/extending.rst:442 +#: extending/extending.rst:450 msgid "" "There are two more things to do before you can use your new extension: " "compiling and linking it with the Python system. If you use dynamic " @@ -707,7 +740,7 @@ msgid "" "Windows (chapter :ref:`building-on-windows`) for more information about this." msgstr "" -#: ../Doc/extending/extending.rst:449 +#: extending/extending.rst:457 msgid "" "If you can't use dynamic loading, or if you want to make your module a " "permanent part of the Python interpreter, you will have to change the " @@ -717,7 +750,7 @@ msgid "" "line to the file :file:`Modules/Setup.local` describing your file:" msgstr "" -#: ../Doc/extending/extending.rst:460 +#: extending/extending.rst:468 msgid "" "and rebuild the interpreter by running :program:`make` in the toplevel " "directory. You can also run :program:`make` in the :file:`Modules/` " @@ -726,17 +759,17 @@ msgid "" "the :file:`Setup` file.)" msgstr "" -#: ../Doc/extending/extending.rst:466 +#: extending/extending.rst:474 msgid "" "If your module requires additional libraries to link with, these can be " "listed on the line in the configuration file as well, for instance:" msgstr "" -#: ../Doc/extending/extending.rst:477 +#: extending/extending.rst:485 msgid "Calling Python Functions from C" -msgstr "" +msgstr "Appeler des fonctions Python en C" -#: ../Doc/extending/extending.rst:479 +#: extending/extending.rst:487 msgid "" "So far we have concentrated on making C functions callable from Python. The " "reverse is also useful: calling Python functions from C. This is especially " @@ -747,7 +780,7 @@ msgid "" "uses are also imaginable." msgstr "" -#: ../Doc/extending/extending.rst:487 +#: extending/extending.rst:495 msgid "" "Fortunately, the Python interpreter is easily called recursively, and there " "is a standard interface to call a Python function. (I won't dwell on how to " @@ -756,7 +789,7 @@ msgid "" "line option in :file:`Modules/main.c` from the Python source code.)" msgstr "" -#: ../Doc/extending/extending.rst:493 +#: extending/extending.rst:501 msgid "" "Calling a Python function is easy. First, the Python program must somehow " "pass you the Python function object. You should provide a function (or some " @@ -766,23 +799,32 @@ msgid "" "function might be part of a module definition::" msgstr "" -#: ../Doc/extending/extending.rst:523 +#: extending/extending.rst:531 msgid "" "This function must be registered with the interpreter using the :const:" "`METH_VARARGS` flag; this is described in section :ref:`methodtable`. The :" "c:func:`PyArg_ParseTuple` function and its arguments are documented in " "section :ref:`parsetuple`." msgstr "" +"Cette fonction doit être déclarée en utilisant le drapeau :const:" +"`METH_VARARGS` ; ceci est décrit dans la section :ref:`methodtable`. La " +"fonction :c:func:`PyArg_ParseTuple` et ses arguments sont documentés dans la " +"section :ref:`parsetuple`." -#: ../Doc/extending/extending.rst:528 +#: extending/extending.rst:536 msgid "" "The macros :c:func:`Py_XINCREF` and :c:func:`Py_XDECREF` increment/decrement " "the reference count of an object and are safe in the presence of ``NULL`` " "pointers (but note that *temp* will not be ``NULL`` in this context). More " "info on them in section :ref:`refcounts`." msgstr "" +"Les macros :c:func:`Py_XINCREF` et :c:func:`Py_XDECREF` incrémentent/" +"décrémentent le compteur des références d'un objet et sont sûres quant à la " +"présence de pointeurs ``NULL`` (mais notez que *temp* ne sera pas ``NULL`` " +"dans ce contexte). Plus d'informations à ce sujet dans la section :ref:" +"`refcounts`." -#: ../Doc/extending/extending.rst:535 +#: extending/extending.rst:543 msgid "" "Later, when it is time to call the function, you call the C function :c:func:" "`PyObject_CallObject`. This function has two arguments, both pointers to " @@ -794,7 +836,7 @@ msgid "" "or more format codes between parentheses. For example::" msgstr "" -#: ../Doc/extending/extending.rst:555 +#: extending/extending.rst:563 msgid "" ":c:func:`PyObject_CallObject` returns a Python object pointer: this is the " "return value of the Python function. :c:func:`PyObject_CallObject` is " @@ -803,7 +845,7 @@ msgid "" "`Py_DECREF`\\ -ed immediately after the :c:func:`PyObject_CallObject` call." msgstr "" -#: ../Doc/extending/extending.rst:562 +#: extending/extending.rst:570 msgid "" "The return value of :c:func:`PyObject_CallObject` is \"new\": either it is a " "brand new object, or it is an existing object whose reference count has been " @@ -812,7 +854,7 @@ msgid "" "not interested in its value." msgstr "" -#: ../Doc/extending/extending.rst:568 +#: extending/extending.rst:576 msgid "" "Before you do this, however, it is important to check that the return value " "isn't ``NULL``. If it is, the Python function terminated by raising an " @@ -822,8 +864,17 @@ msgid "" "handle the exception. If this is not possible or desirable, the exception " "should be cleared by calling :c:func:`PyErr_Clear`. For example::" msgstr "" +"Mais avant de le faire, il est important de vérifier que la valeur renvoyée " +"n'est pas ``NULL``. Si c'est le cas, la fonction Python s'est terminée par " +"la levée d'une exception. Si le code C qui a appelé :c:func:" +"`PyObject_CallObject` est appelé depuis Python, il devrait maintenant " +"renvoyer une indication d'erreur à son appelant Python, afin que " +"l'interpréteur puisse afficher la pile d'appels, ou que le code Python " +"appelant puisse gérer l'exception. Si cela n'est pas possible ou " +"souhaitable, l'exception doit être effacée en appelant :c:func:" +"`PyErr_Clear`. Par exemple ::" -#: ../Doc/extending/extending.rst:581 +#: extending/extending.rst:589 msgid "" "Depending on the desired interface to the Python callback function, you may " "also have to provide an argument list to :c:func:`PyObject_CallObject`. In " @@ -834,8 +885,18 @@ msgid "" "simplest way to do this is to call :c:func:`Py_BuildValue`. For example, if " "you want to pass an integral event code, you might use the following code::" msgstr "" +"Selon l'interface souhaitée pour la fonction de rappel Python, vous devrez " +"peut-être aussi fournir une liste d'arguments à :c:func:" +"`PyObject_CallObject`. Dans certains cas, la liste d'arguments est également " +"fournie par le programme Python, par l'intermédiaire de la même interface " +"qui a spécifié la fonction de rappel. Elle peut alors être sauvegardée et " +"utilisée de la même manière que l'objet fonction. Dans d'autres cas, vous " +"pouvez avoir à construire un nouveau n-uplet à passer comme liste " +"d'arguments. La façon la plus simple de faire cela est d'appeler :c:func:" +"`Py_BuildValue`. Par exemple, si vous voulez passer un code d'événement " +"intégral, vous pouvez utiliser le code suivant ::" -#: ../Doc/extending/extending.rst:600 +#: extending/extending.rst:608 msgid "" "Note the placement of ``Py_DECREF(arglist)`` immediately after the call, " "before the error check! Also note that strictly speaking this code is not " @@ -843,22 +904,26 @@ msgid "" "checked." msgstr "" -#: ../Doc/extending/extending.rst:604 +#: extending/extending.rst:612 msgid "" "You may also call a function with keyword arguments by using :c:func:" "`PyObject_Call`, which supports arguments and keyword arguments. As in the " "above example, we use :c:func:`Py_BuildValue` to construct the dictionary. ::" msgstr "" +"Vous pouvez également appeler une fonction avec des arguments nommés en " +"utilisant :c:func:`PyObject_Call`, qui accepte les arguments et les " +"arguments nommés. Comme dans l'exemple ci-dessus, nous utilisons :c:func:" +"`Py_BuildValue` pour construire le dictionnaire. ::" -#: ../Doc/extending/extending.rst:622 +#: extending/extending.rst:630 msgid "Extracting Parameters in Extension Functions" -msgstr "" +msgstr "Extraire des paramètres dans des fonctions d'extension" -#: ../Doc/extending/extending.rst:626 +#: extending/extending.rst:634 msgid "The :c:func:`PyArg_ParseTuple` function is declared as follows::" -msgstr "" +msgstr "La fonction :c:func:`PyArg_ParseTuple` est déclarée ainsi ::" -#: ../Doc/extending/extending.rst:630 +#: extending/extending.rst:638 msgid "" "The *arg* argument must be a tuple object containing an argument list passed " "from Python to a C function. The *format* argument must be a format string, " @@ -867,7 +932,7 @@ msgid "" "whose type is determined by the format string." msgstr "" -#: ../Doc/extending/extending.rst:636 +#: extending/extending.rst:644 msgid "" "Note that while :c:func:`PyArg_ParseTuple` checks that the Python arguments " "have the required types, it cannot check the validity of the addresses of C " @@ -875,7 +940,7 @@ msgid "" "probably crash or at least overwrite random bits in memory. So be careful!" msgstr "" -#: ../Doc/extending/extending.rst:641 +#: extending/extending.rst:649 msgid "" "Note that any Python object references which are provided to the caller are " "*borrowed* references; do not decrement their reference count!" @@ -884,20 +949,21 @@ msgstr "" "à l'appelant sont des références *empruntées* ; ne décrémentez pas leur " "compteur de références !" -#: ../Doc/extending/extending.rst:644 +#: extending/extending.rst:652 msgid "Some example calls::" -msgstr "" +msgstr "Quelques exemples d'appels ::" -#: ../Doc/extending/extending.rst:714 +#: extending/extending.rst:722 msgid "Keyword Parameters for Extension Functions" -msgstr "" +msgstr "Paramètres nommés pour des fonctions d'extension" -#: ../Doc/extending/extending.rst:718 +#: extending/extending.rst:726 msgid "" "The :c:func:`PyArg_ParseTupleAndKeywords` function is declared as follows::" msgstr "" +"La fonction :c:func:`PyArg_ParseTupleAndKeywords` est déclarée ainsi ::" -#: ../Doc/extending/extending.rst:723 +#: extending/extending.rst:731 msgid "" "The *arg* and *format* parameters are identical to those of the :c:func:" "`PyArg_ParseTuple` function. The *kwdict* parameter is the dictionary of " @@ -908,39 +974,59 @@ msgid "" "`PyArg_ParseTupleAndKeywords` returns true, otherwise it returns false and " "raises an appropriate exception." msgstr "" +"Les paramètres *arg* et *format* sont identiques à ceux de la fonction :c:" +"func:`PyArg_ParseTuple`. Le paramètre *kwdict* est le dictionnaire de mots-" +"clés reçu comme troisième paramètre du *runtime* Python. Le paramètre " +"*kwlist* est une liste de chaînes de caractères terminée par ``NULL`` qui " +"identifie les paramètres ; les noms sont mis en correspondance, de gauche à " +"droite, avec les informations de type de *format*. En cas de succès du " +"processus, :c:func:`PyArg_ParseTupleAndKeywords` renvoie vrai, sinon il " +"renvoie faux et lève une exception appropriée." -#: ../Doc/extending/extending.rst:733 +#: extending/extending.rst:741 msgid "" "Nested tuples cannot be parsed when using keyword arguments! Keyword " "parameters passed in which are not present in the *kwlist* will cause :exc:" "`TypeError` to be raised." msgstr "" +"Les n-uplets imbriqués ne peuvent pas être traités lorsqu'on utilise des " +"arguments de type mot-clé ! Ceux-ci doivent apparaître dans dans *kwlist*, " +"dans le cas contraire une exception :exc:`TypeError` est levée." -#: ../Doc/extending/extending.rst:739 +#: extending/extending.rst:747 msgid "" "Here is an example module which uses keywords, based on an example by Geoff " "Philbrick (philbrick@hks.com)::" msgstr "" +"Voici un exemple de module qui utilise des mots-clés, basé sur un exemple de " +"*Geoff Philbrick* (philbrick@hks.com) ::" -#: ../Doc/extending/extending.rst:794 +#: extending/extending.rst:802 msgid "Building Arbitrary Values" -msgstr "" +msgstr "Créer des valeurs arbitraires" -#: ../Doc/extending/extending.rst:796 +#: extending/extending.rst:804 msgid "" "This function is the counterpart to :c:func:`PyArg_ParseTuple`. It is " "declared as follows::" msgstr "" +"Cette fonction est le complément de :c:func:`PyArg_ParseTuple`. Elle est " +"déclarée comme suit ::" -#: ../Doc/extending/extending.rst:801 +#: extending/extending.rst:809 msgid "" "It recognizes a set of format units similar to the ones recognized by :c:" "func:`PyArg_ParseTuple`, but the arguments (which are input to the function, " "not output) must not be pointers, just values. It returns a new Python " "object, suitable for returning from a C function called from Python." msgstr "" +"Il reconnaît un ensemble d'unités de format similaires à celles reconnues " +"par :c:func:`PyArg_ParseTuple`, mais les arguments (qui sont les données en " +"entrée de fonction, et non de la sortie) ne doivent pas être des pointeurs, " +"mais juste des valeurs. Il renvoie un nouvel objet Python, adapté pour être " +"renvoyé par une fonction C appelée depuis Python." -#: ../Doc/extending/extending.rst:806 +#: extending/extending.rst:814 msgid "" "One difference with :c:func:`PyArg_ParseTuple`: while the latter requires " "its first argument to be a tuple (since Python argument lists are always " @@ -952,16 +1038,17 @@ msgid "" "parenthesize the format string." msgstr "" -#: ../Doc/extending/extending.rst:814 +#: extending/extending.rst:822 msgid "" "Examples (to the left the call, to the right the resulting Python value):" msgstr "" +"Exemples (à gauche l'appel, à droite la valeur résultante, en Python) :" -#: ../Doc/extending/extending.rst:840 +#: extending/extending.rst:848 msgid "Reference Counts" -msgstr "" +msgstr "Compteurs de références" -#: ../Doc/extending/extending.rst:842 +#: extending/extending.rst:850 msgid "" "In languages like C or C++, the programmer is responsible for dynamic " "allocation and deallocation of memory on the heap. In C, this is done using " @@ -969,8 +1056,14 @@ msgid "" "``new`` and ``delete`` are used with essentially the same meaning and we'll " "restrict the following discussion to the C case." msgstr "" +"Dans les langages comme le C ou le C++, le développeur est responsable de " +"l'allocation dynamique et de la dés-allocation de la mémoire sur le tas. En " +"C, cela se fait à l'aide des fonctions :c:func:`malloc` et :c:func:`free`. " +"En C++, les opérateurs ``new`` et ``delete`` sont utilisés avec " +"essentiellement la même signification et nous limiterons la discussion " +"suivante au cas du C." -#: ../Doc/extending/extending.rst:848 +#: extending/extending.rst:856 msgid "" "Every block of memory allocated with :c:func:`malloc` should eventually be " "returned to the pool of available memory by exactly one call to :c:func:" @@ -985,7 +1078,7 @@ msgid "" "crashes." msgstr "" -#: ../Doc/extending/extending.rst:859 +#: extending/extending.rst:867 msgid "" "Common causes of memory leaks are unusual paths through the code. For " "instance, a function may allocate a block of memory, do some calculation, " @@ -1002,7 +1095,7 @@ msgid "" "of errors." msgstr "" -#: ../Doc/extending/extending.rst:872 +#: extending/extending.rst:880 msgid "" "Since Python makes heavy use of :c:func:`malloc` and :c:func:`free`, it " "needs a strategy to avoid memory leaks as well as the use of freed memory. " @@ -1012,8 +1105,16 @@ msgid "" "reference to it is deleted. When the counter reaches zero, the last " "reference to the object has been deleted and the object is freed." msgstr "" +"Comme Python fait un usage intensif de :c:func:`malloc` et de :c:func:" +"`free`, il a besoin d'une stratégie pour éviter les fuites de mémoire ainsi " +"que l'utilisation de la mémoire libérée. La méthode choisie est appelée :dfn:" +"`reference counting`. Le principe est simple : chaque objet contient un " +"compteur, qui est incrémenté lorsqu'une référence à l'objet est stockée " +"quelque part, et qui est décrémenté lorsqu'une référence à celui-ci est " +"supprimée. Lorsque le compteur atteint zéro, la dernière référence à l'objet " +"a été supprimée et l'objet est libéré." -#: ../Doc/extending/extending.rst:880 +#: extending/extending.rst:888 msgid "" "An alternative strategy is called :dfn:`automatic garbage collection`. " "(Sometimes, reference counting is also referred to as a garbage collection " @@ -1028,8 +1129,21 @@ msgid "" "garbage collector will be available for C. Until then, we'll have to live " "with reference counts." msgstr "" - -#: ../Doc/extending/extending.rst:892 +"Une stratégie alternative est appelée :dfn:`automatic garbage collection` " +"(ramasse-miettes). Parfois, le comptage des références est également appelé " +"stratégie de ramasse-miettes, d'où l'utilisation du terme \"automatique\" " +"pour distinguer les deux. Le grand avantage du ramasse-miettes est que " +"l'utilisateur n'a pas besoin d'appeler :c:func:`free` explicitement. (Un " +"autre avantage important est l'amélioration de la vitesse ou de " +"l'utilisation de la mémoire, ce n'est cependant pas un fait avéré). " +"L'inconvénient est que pour C, il n'y a pas de ramasse-miettes portable " +"proprement-dit, alors que le comptage des références peut être implémenté de " +"façon portable (tant que les fonctions :c:func:`malloc` et :c:func:`free` " +"soient disponibles, ce que la norme C garantit). Peut-être qu'un jour un " +"ramasse-miettes suffisamment portable sera disponible pour C. D'ici là, nous " +"devrons utiliser les compteurs des références." + +#: extending/extending.rst:900 msgid "" "While Python uses the traditional reference counting implementation, it also " "offers a cycle detector that works to detect reference cycles. This allows " @@ -1042,8 +1156,20 @@ msgid "" "in a reference cycle, or referenced from the objects in the cycle, even " "though there are no further references to the cycle itself." msgstr "" - -#: ../Doc/extending/extending.rst:903 +"Bien que Python utilise l'implémentation traditionnelle de comptage de " +"référence, il contient également un détecteur de cycles qui fonctionne pour " +"détecter les cycles de référence. Cela permet aux applications d'empêcher la " +"création de références circulaires directes ou indirectes ; ceci sont les " +"faiblesses du ramasse-miettes mis en œuvre en utilisant uniquement le " +"comptage de référence. Les cycles de référence sont constitués d'objets qui " +"contiennent des références (éventuellement indirectes) à eux-mêmes, de sorte " +"que chaque objet du cycle a un comptage de référence qui n'est pas nul. Les " +"implémentations typiques de comptage de référence ne sont pas capables de " +"récupérer la mémoire appartenant à des objets dans un cycle de référence, ou " +"référencés à partir des objets dans le cycle, même s'il n'y a pas d'autres " +"références au cycle lui-même." + +#: extending/extending.rst:911 msgid "" "The cycle detector is able to detect garbage cycles and can reclaim them. " "The :mod:`gc` module exposes a way to run the detector (the :func:`~gc." @@ -1055,11 +1181,11 @@ msgid "" "detector is disabled in this way, the :mod:`gc` module will not be available." msgstr "" -#: ../Doc/extending/extending.rst:917 +#: extending/extending.rst:925 msgid "Reference Counting in Python" -msgstr "" +msgstr "Comptage de références en Python" -#: ../Doc/extending/extending.rst:919 +#: extending/extending.rst:927 msgid "" "There are two macros, ``Py_INCREF(x)`` and ``Py_DECREF(x)``, which handle " "the incrementing and decrementing of the reference count. :c:func:" @@ -1069,8 +1195,15 @@ msgid "" "this purpose (and others), every object also contains a pointer to its type " "object." msgstr "" +"Il existe deux macros, ``Py_INCREF(x)`` et ``Py_DECREF(x)``, qui gèrent " +"l'incrémentation et la décrémentation du comptage de référence. :c:func:" +"`Py_DECREF` libère également l'objet lorsque le comptage atteint zéro. Pour " +"plus de flexibilité, il n'appelle pas :c:func:`free` directement — plutôt, " +"il fait un appel à travers un pointeur de fonction dans l'objet :dfn:`type " +"objet` de l'objet. À cette fin (et pour d'autres), chaque objet contient " +"également un pointeur vers son objet type." -#: ../Doc/extending/extending.rst:926 +#: extending/extending.rst:934 msgid "" "The big question now remains: when to use ``Py_INCREF(x)`` and " "``Py_DECREF(x)``? Let's first introduce some terms. Nobody \"owns\" an " @@ -1082,8 +1215,18 @@ msgid "" "on, store it, or call :c:func:`Py_DECREF`. Forgetting to dispose of an owned " "reference creates a memory leak." msgstr "" +"La grande question demeure maintenant : quand utiliser ``Py_INCREF(x)`` et " +"``Py_DECREF(x)`` ? Commençons par définir quelques termes. Personne ne " +"possède un objet, mais vous pouvez en :dfn:`avoir une référence`. Le " +"comptage de références d'un objet est maintenant défini comme étant le " +"nombre de références à cet objet. Le propriétaire d'une référence est " +"responsable d'appeler :c:func:`Py_DECREF` lorsque la référence n'est plus " +"nécessaire. La propriété d'une référence peut être transférée. Il y a trois " +"façons de disposer d'une référence : la transmettre, la stocker, ou appeler :" +"c:func:`Py_DECREF`. Oublier de se débarrasser d'une référence crée une fuite " +"de mémoire." -#: ../Doc/extending/extending.rst:935 +#: extending/extending.rst:943 msgid "" "It is also possible to :dfn:`borrow` [#]_ a reference to an object. The " "borrower of a reference should not call :c:func:`Py_DECREF`. The borrower " @@ -1092,7 +1235,7 @@ msgid "" "risks using freed memory and should be avoided completely [#]_." msgstr "" -#: ../Doc/extending/extending.rst:941 +#: extending/extending.rst:949 msgid "" "The advantage of borrowing over owning a reference is that you don't need to " "take care of disposing of the reference on all possible paths through the " @@ -1102,8 +1245,16 @@ msgid "" "code a borrowed reference can be used after the owner from which it was " "borrowed has in fact disposed of it." msgstr "" +"L'avantage d'emprunter, plutôt qu'être propriétaire d'une référence est que " +"vous n'avez pas à vous soucier de disposer de la référence sur tous les " +"chemins possibles dans le code — en d'autres termes, avec une référence " +"empruntée, vous ne courez pas le risque de fuites lors d'une sortie " +"prématurée. L'inconvénient de l'emprunt par rapport à la possession est " +"qu'il existe certaines situations subtiles où, dans un code apparemment " +"correct, une référence empruntée peut être utilisée après que le " +"propriétaire auquel elle a été empruntée l'a en fait éliminée." -#: ../Doc/extending/extending.rst:949 +#: extending/extending.rst:957 msgid "" "A borrowed reference can be changed into an owned reference by calling :c:" "func:`Py_INCREF`. This does not affect the status of the owner from which " @@ -1112,18 +1263,22 @@ msgid "" "properly, as well as the previous owner)." msgstr "" -#: ../Doc/extending/extending.rst:959 +#: extending/extending.rst:967 msgid "Ownership Rules" -msgstr "" +msgstr "Règles concernant la propriété de références" -#: ../Doc/extending/extending.rst:961 +#: extending/extending.rst:969 msgid "" "Whenever an object reference is passed into or out of a function, it is part " "of the function's interface specification whether ownership is transferred " "with the reference or not." msgstr "" +"Chaque fois qu'une référence d'objet est passée à l'intérieur ou à " +"l'extérieur d'une fonction, elle fait partie de la spécification de " +"l'interface de la fonction, peu importe que la propriété soit transférée " +"avec la référence ou non." -#: ../Doc/extending/extending.rst:965 +#: extending/extending.rst:973 msgid "" "Most functions that return a reference to an object pass on ownership with " "the reference. In particular, all functions whose function it is to create " @@ -1134,7 +1289,7 @@ msgid "" "reference to a cached item." msgstr "" -#: ../Doc/extending/extending.rst:973 +#: extending/extending.rst:981 msgid "" "Many functions that extract objects from other objects also transfer " "ownership with the reference, for instance :c:func:" @@ -1145,14 +1300,14 @@ msgid "" "list or dictionary." msgstr "" -#: ../Doc/extending/extending.rst:980 +#: extending/extending.rst:988 msgid "" "The function :c:func:`PyImport_AddModule` also returns a borrowed reference, " "even though it may actually create the object it returns: this is possible " "because an owned reference to the object is stored in ``sys.modules``." msgstr "" -#: ../Doc/extending/extending.rst:984 +#: extending/extending.rst:992 msgid "" "When you pass an object reference into another function, in general, the " "function borrows the reference from you --- if it needs to store it, it will " @@ -1163,7 +1318,7 @@ msgid "" "don't take over ownership --- they are \"normal.\")" msgstr "" -#: ../Doc/extending/extending.rst:992 +#: extending/extending.rst:1000 msgid "" "When a C function is called from Python, it borrows references to its " "arguments from the caller. The caller owns a reference to the object, so " @@ -1172,40 +1327,50 @@ msgid "" "turned into an owned reference by calling :c:func:`Py_INCREF`." msgstr "" -#: ../Doc/extending/extending.rst:998 +#: extending/extending.rst:1006 msgid "" "The object reference returned from a C function that is called from Python " "must be an owned reference --- ownership is transferred from the function to " "its caller." msgstr "" -#: ../Doc/extending/extending.rst:1006 +#: extending/extending.rst:1014 msgid "Thin Ice" -msgstr "" +msgstr "Terrain dangereux" -#: ../Doc/extending/extending.rst:1008 +#: extending/extending.rst:1016 msgid "" "There are a few situations where seemingly harmless use of a borrowed " "reference can lead to problems. These all have to do with implicit " "invocations of the interpreter, which can cause the owner of a reference to " "dispose of it." msgstr "" +"Il existe quelques situations où l'utilisation apparemment inoffensive d'une " +"référence empruntée peut entraîner des problèmes. Tous ces problèmes sont en " +"lien avec des invocations implicites de l’interpréteur, et peuvent amener le " +"propriétaire d'une référence à s'en défaire." -#: ../Doc/extending/extending.rst:1012 +#: extending/extending.rst:1020 msgid "" "The first and most important case to know about is using :c:func:`Py_DECREF` " "on an unrelated object while borrowing a reference to a list item. For " "instance::" msgstr "" +"Le premier cas, et le plus important à connaître, est celui de l'application " +"de :c:func:`Py_DECREF` à un objet non relié, tout en empruntant une " +"référence à un élément de liste. Par exemple ::" -#: ../Doc/extending/extending.rst:1024 +#: extending/extending.rst:1032 msgid "" "This function first borrows a reference to ``list[0]``, then replaces " "``list[1]`` with the value ``0``, and finally prints the borrowed reference. " "Looks harmless, right? But it's not!" msgstr "" +"Cette fonction emprunte d'abord une référence à ``list[0]``, puis remplace " +"``list[1]`` par la valeur ``0``, et enfin affiche la référence empruntée. " +"Ça a l'air inoffensif, n'est-ce pas ? Mais ce n'est pas le cas !" -#: ../Doc/extending/extending.rst:1028 +#: extending/extending.rst:1036 msgid "" "Let's follow the control flow into :c:func:`PyList_SetItem`. The list owns " "references to all its items, so when item 1 is replaced, it has to dispose " @@ -1214,8 +1379,15 @@ msgid "" "defined a :meth:`__del__` method. If this class instance has a reference " "count of 1, disposing of it will call its :meth:`__del__` method." msgstr "" +"Suivons le flux de contrôle dans :c:func:`PyList_SetItem`. La liste possède " +"des références à tous ses éléments, donc quand l'élément 1 est remplacé, " +"elle doit se débarrasser de l'élément 1 original. Supposons maintenant que " +"l'élément 1 original était une instance d'une classe définie par " +"l'utilisateur, et supposons en outre que la classe définisse une méthode :" +"meth:`__del__`. Si l'instance de cette classe a un nombre des références de " +"1, sa destruction appellera sa méthode :meth:`__del__`." -#: ../Doc/extending/extending.rst:1035 +#: extending/extending.rst:1043 msgid "" "Since it is written in Python, the :meth:`__del__` method can execute " "arbitrary Python code. Could it perhaps do something to invalidate the " @@ -1225,21 +1397,28 @@ msgid "" "this was the last reference to that object, it would free the memory " "associated with it, thereby invalidating ``item``." msgstr "" +"Comme elle est écrite en Python, la méthode :meth:`__del__` peut exécuter du " +"code Python arbitraire. Pourrait-elle faire quelque chose pour invalider la " +"référence à ``item`` dans :c:func:`bug` ? Bien sûr ! En supposant que la " +"liste passée dans :c:func:`bug` est accessible à la méthode :meth:`__del__`, " +"elle pourrait exécuter une instruction à l'effet de ``del list[0]``, et en " +"supposant que ce soit la dernière référence à cet objet, elle libérerait la " +"mémoire qui lui est associée, invalidant ainsi ``item``." -#: ../Doc/extending/extending.rst:1043 +#: extending/extending.rst:1051 msgid "" "The solution, once you know the source of the problem, is easy: temporarily " "increment the reference count. The correct version of the function reads::" msgstr "" -#: ../Doc/extending/extending.rst:1057 +#: extending/extending.rst:1065 msgid "" "This is a true story. An older version of Python contained variants of this " "bug and someone spent a considerable amount of time in a C debugger to " "figure out why his :meth:`__del__` methods would fail..." msgstr "" -#: ../Doc/extending/extending.rst:1061 +#: extending/extending.rst:1069 msgid "" "The second case of problems with a borrowed reference is a variant involving " "threads. Normally, multiple threads in the Python interpreter can't get in " @@ -1251,12 +1430,22 @@ msgid "" "complete. Obviously, the following function has the same problem as the " "previous one::" msgstr "" - -#: ../Doc/extending/extending.rst:1084 +"Le deuxième cas de problèmes liés à une référence empruntée est une variante " +"impliquant des fils de discussion. Normalement, plusieurs threads dans " +"l'interpréteur Python ne peuvent pas se gêner mutuellement, car il existe un " +"verrou global protégeant tout l'espace objet de Python. Cependant, il est " +"possible de libérer temporairement ce verrou en utilisant la macro :c:macro:" +"`Py_BEGIN_ALLOW_THREADS`, et de le ré-acquérir en utilisant :c:macro:" +"`Py_END_ALLOW_THREADS`. Ceci est un procédé courant pour bloquer les appels " +"d'entrées/sorties, afin de permettre aux autres threads d'utiliser le " +"processeur en attendant que les E/S soient terminées. Évidemment, la " +"fonction suivante a le même problème que la précédente ::" + +#: extending/extending.rst:1092 msgid "NULL Pointers" -msgstr "" +msgstr "Pointeurs ``NULL``" -#: ../Doc/extending/extending.rst:1086 +#: extending/extending.rst:1094 msgid "" "In general, functions that take object references as arguments do not expect " "you to pass them ``NULL`` pointers, and will dump core (or cause later core " @@ -1267,22 +1456,38 @@ msgid "" "``NULL``, there would be a lot of redundant tests and the code would run " "more slowly." msgstr "" +"En général, les fonctions qui prennent des références d'objets comme " +"arguments ne sont pas conçues pour recevoir des pointeurs ``NULL``, et si " +"vous en donnez comme arguments, elles causeront une erreur de segmentation " +"(ou provoqueront des *core dump* ultérieurs). Les fonctions qui renvoient " +"des références d'objets renvoient généralement ``NULL`` uniquement pour " +"indiquer qu'une exception s'est produite. La raison pour laquelle les " +"arguments ``NULL`` ne sont pas testés est que les fonctions passent souvent " +"les objets qu'elles reçoivent à d'autres fonctions, si chaque fonction " +"devait tester pour ``NULL``, il y aurait beaucoup de tests redondants et le " +"code s'exécuterait plus lentement." -#: ../Doc/extending/extending.rst:1094 +#: extending/extending.rst:1102 msgid "" "It is better to test for ``NULL`` only at the \"source:\" when a pointer " "that may be ``NULL`` is received, for example, from :c:func:`malloc` or from " "a function that may raise an exception." msgstr "" +"Il est préférable de tester la présence de ``NULL`` uniquement au début : " +"lorsqu'un pointeur qui peut être ``NULL`` est reçu, par exemple, de :c:func:" +"`malloc` ou d'une fonction qui peut lever une exception." -#: ../Doc/extending/extending.rst:1098 +#: extending/extending.rst:1106 msgid "" "The macros :c:func:`Py_INCREF` and :c:func:`Py_DECREF` do not check for " "``NULL`` pointers --- however, their variants :c:func:`Py_XINCREF` and :c:" "func:`Py_XDECREF` do." msgstr "" +"Les macros :c:func:`Py_INCREF` et :c:func:`Py_DECREF` ne vérifient pas les " +"pointeurs ``NULL``. Cependant, leurs variantes :c:func:`Py_XINCREF` et :c:" +"func:`Py_XDECREF` le font." -#: ../Doc/extending/extending.rst:1102 +#: extending/extending.rst:1110 msgid "" "The macros for checking for a particular object type (``Pytype_Check()``) " "don't check for ``NULL`` pointers --- again, there is much code that calls " @@ -1291,24 +1496,29 @@ msgid "" "variants with ``NULL`` checking." msgstr "" -#: ../Doc/extending/extending.rst:1108 +#: extending/extending.rst:1116 msgid "" "The C function calling mechanism guarantees that the argument list passed to " "C functions (``args`` in the examples) is never ``NULL`` --- in fact it " "guarantees that it is always a tuple [#]_." msgstr "" +"Le mécanisme d'appel de fonctions C garantit que la liste d'arguments passée " +"aux fonctions C (``args`` dans les exemples) n'est jamais ``NULL``. En fait, " +"il garantit qu'il s'agit toujours d'un n-uplet [#]_." -#: ../Doc/extending/extending.rst:1112 +#: extending/extending.rst:1120 msgid "" "It is a severe error to ever let a ``NULL`` pointer \"escape\" to the Python " "user." msgstr "" +"C'est une grave erreur de laisser un pointeur ``NULL`` \"échapper\" à " +"l'utilisateur Python." -#: ../Doc/extending/extending.rst:1123 +#: extending/extending.rst:1131 msgid "Writing Extensions in C++" -msgstr "" +msgstr "Écrire des extensions en C++" -#: ../Doc/extending/extending.rst:1125 +#: extending/extending.rst:1133 msgid "" "It is possible to write extension modules in C++. Some restrictions apply. " "If the main program (the Python interpreter) is compiled and linked by the C " @@ -1320,12 +1530,23 @@ msgid "" "`` --- they use this form already if the symbol ``__cplusplus`` is defined " "(all recent C++ compilers define this symbol)." msgstr "" - -#: ../Doc/extending/extending.rst:1139 +"C'est possible d'écrire des modules d'extension en C++, mais sous certaines " +"conditions. Si le programme principal (l'interpréteur Python) est compilé et " +"lié par le compilateur C, les objets globaux ou statiques avec les " +"constructeurs ne peuvent pas être utilisés. Ceci n'est pas un problème si le " +"programme principal est relié par le compilateur C++. Les fonctions qui " +"seront appelées par l'interpréteur Python (en particulier, les fonctions " +"d'initialisation des modules) doivent être déclarées en utilisant ``extern " +"\"C\"``. Il n'est pas nécessaire d'inclure les fichiers d'en-tête Python " +"dans le ``extern \"C\" {…}``, car ils utilisent déjà ce format si le symbole " +"``__cplusplus`` est défini (tous les compilateurs C++ récents définissent ce " +"symbole)." + +#: extending/extending.rst:1147 msgid "Providing a C API for an Extension Module" -msgstr "" +msgstr "Fournir une API en langage C pour un module d'extension" -#: ../Doc/extending/extending.rst:1144 +#: extending/extending.rst:1152 msgid "" "Many extension modules just provide new functions and types to be used from " "Python, but sometimes the code in an extension module can be useful for " @@ -1335,8 +1556,17 @@ msgid "" "create and manipulate lists, this new collection type should have a set of C " "functions for direct manipulation from other extension modules." msgstr "" +"De nombreux modules d'extension fournissent simplement de nouvelles " +"fonctions et de nouveaux types à utiliser à partir de Python, mais parfois " +"le code d'un module d'extension peut être utile pour d'autres modules " +"d'extension. Par exemple, un module d'extension peut mettre en œuvre un type " +"\"collection\" qui fonctionne comme des listes sans ordre. Tout comme le " +"type de liste Python standard possède une API C qui permet aux modules " +"d'extension de créer et de manipuler des listes, ce nouveau type de " +"collection devrait posséder un ensemble de fonctions C pour une manipulation " +"directe à partir d'autres modules d'extension." -#: ../Doc/extending/extending.rst:1152 +#: extending/extending.rst:1160 msgid "" "At first sight this seems easy: just write the functions (without declaring " "them ``static``, of course), provide an appropriate header file, and " @@ -1351,8 +1581,22 @@ msgid "" "if symbols are globally visible, the module whose functions one wishes to " "call might not have been loaded yet!" msgstr "" - -#: ../Doc/extending/extending.rst:1164 +"À première vue, cela semble facile : il suffit d'écrire les fonctions (sans " +"les déclarer \"statiques\", bien sûr), de fournir un fichier d'en-tête " +"approprié et de documenter l'API C. Et en fait, cela fonctionnerait si tous " +"les modules d'extension étaient toujours liés statiquement avec " +"l'interpréteur Python. Cependant, lorsque les modules sont utilisés comme " +"des bibliothèques partagées, les symboles définis dans un module peuvent ne " +"pas être visibles par un autre module. Les détails de la visibilité " +"dépendent du système d'exploitation ; certains systèmes utilisent un espace " +"de noms global pour l'interpréteur Python et tous les modules d'extension " +"(Windows, par exemple), tandis que d'autres exigent une liste explicite des " +"symboles importés au moment de la liaison des modules (AIX en est un " +"exemple), ou offrent un choix de stratégies différentes (la plupart des " +"*Unix*). Et même si les symboles sont globalement visibles, le module dont " +"on souhaite appeler les fonctions n'est peut-être pas encore chargé !" + +#: extending/extending.rst:1172 msgid "" "Portability therefore requires not to make any assumptions about symbol " "visibility. This means that all symbols in extension modules should be " @@ -1361,8 +1605,16 @@ msgid "" "section :ref:`methodtable`). And it means that symbols that *should* be " "accessible from other extension modules must be exported in a different way." msgstr "" +"La portabilité exige donc de ne faire aucune supposition sur la visibilité " +"des symboles. Cela signifie que tous les symboles des modules d'extension " +"doivent être déclarés ``static``, à l'exception de la fonction " +"d'initialisation du module, afin d'éviter les conflits de noms avec les " +"autres modules d'extension (comme discuté dans la section :ref:" +"`methodtable`). Et cela signifie que les symboles qui *devraient* être " +"accessibles à partir d'autres modules d'extension doivent être exportés " +"d'une manière différente." -#: ../Doc/extending/extending.rst:1171 +#: extending/extending.rst:1179 msgid "" "Python provides a special mechanism to pass C-level information (pointers) " "from one extension module to another one: Capsules. A Capsule is a Python " @@ -1374,7 +1626,7 @@ msgid "" "the Capsule." msgstr "" -#: ../Doc/extending/extending.rst:1179 +#: extending/extending.rst:1187 msgid "" "There are many ways in which Capsules can be used to export the C API of an " "extension module. Each function could get its own Capsule, or all C API " @@ -1383,8 +1635,15 @@ msgid "" "distributed in different ways between the module providing the code and the " "client modules." msgstr "" +"Il existe de nombreuses façons d'utiliser les Capsules pour exporter l'API C " +"d'un module d'extension. Chaque fonction peut obtenir sa propre Capsule, ou " +"tous les pointeurs de l'API C peuvent être stockés dans un tableau dont " +"l'adresse est inscrite dans une Capsule. Et les différentes tâches de " +"stockage et de récupération des pointeurs peuvent être réparties de " +"différentes manières entre le module fournissant le code et les modules " +"clients." -#: ../Doc/extending/extending.rst:1185 +#: extending/extending.rst:1193 msgid "" "Whichever method you choose, it's important to name your Capsules properly. " "The function :c:func:`PyCapsule_New` takes a name parameter (:c:type:`const " @@ -1394,13 +1653,13 @@ msgid "" "from another." msgstr "" -#: ../Doc/extending/extending.rst:1192 +#: extending/extending.rst:1200 msgid "" "In particular, Capsules used to expose C APIs should be given a name " "following this convention::" msgstr "" -#: ../Doc/extending/extending.rst:1197 +#: extending/extending.rst:1205 msgid "" "The convenience function :c:func:`PyCapsule_Import` makes it easy to load a " "C API provided via a Capsule, but only if the Capsule's name matches this " @@ -1408,7 +1667,7 @@ msgid "" "the Capsule they load contains the correct C API." msgstr "" -#: ../Doc/extending/extending.rst:1202 +#: extending/extending.rst:1210 msgid "" "The following example demonstrates an approach that puts most of the burden " "on the writer of the exporting module, which is appropriate for commonly " @@ -1418,8 +1677,16 @@ msgid "" "takes care of importing the module and retrieving its C API pointers; client " "modules only have to call this macro before accessing the C API." msgstr "" +"L'exemple suivant montre une approche qui fait peser la plus grande partie " +"de la charge sur le rédacteur du module d'exportation, ce qui est approprié " +"pour les modules de bibliothèque couramment utilisés. Il stocke tous les " +"pointeurs de l'API C (un seul dans l'exemple !) dans un tableau de " +"pointeurs :c:type:`void` qui devient la valeur d'une Capsule. Le fichier " +"d'en-tête correspondant au module fournit une macro qui se charge d'importer " +"le module et de récupérer ses pointeurs d'API C. Les modules clients n'ont " +"qu'à appeler cette macro avant d'accéder à l'API C." -#: ../Doc/extending/extending.rst:1210 +#: extending/extending.rst:1218 msgid "" "The exporting module is a modification of the :mod:`spam` module from " "section :ref:`extending-simpleexample`. The function :func:`spam.system` " @@ -1428,60 +1695,82 @@ msgid "" "complicated in reality (such as adding \"spam\" to every command). This " "function :c:func:`PySpam_System` is also exported to other extension modules." msgstr "" +"Le module d'exportation est une modification du module :mod:`spam` de la " +"section :ref:`extending-simpleexample`. La fonction :func:`spam.system` " +"n'appelle pas directement la fonction de la bibliothèque C :c:func:`system`, " +"mais une fonction :c:func:`PySpam_System`, qui ferait bien sûr quelque chose " +"de plus compliqué en réalité (comme ajouter du *spam* à chaque commande). " +"Cette fonction :c:func:`PySpam_System` est également exportée vers d'autres " +"modules d'extension." -#: ../Doc/extending/extending.rst:1217 +#: extending/extending.rst:1225 msgid "" "The function :c:func:`PySpam_System` is a plain C function, declared " "``static`` like everything else::" msgstr "" -#: ../Doc/extending/extending.rst:1226 +#: extending/extending.rst:1234 msgid "The function :c:func:`spam_system` is modified in a trivial way::" -msgstr "" +msgstr "La fonction :c:func:`spam_system` est modifiée de manière simple ::" -#: ../Doc/extending/extending.rst:1240 +#: extending/extending.rst:1248 msgid "In the beginning of the module, right after the line ::" -msgstr "" +msgstr "Au début du module, immédiatement après la ligne ::" -#: ../Doc/extending/extending.rst:1244 +#: extending/extending.rst:1252 msgid "two more lines must be added::" -msgstr "" +msgstr "on doit ajouter deux lignes supplémentaires ::" -#: ../Doc/extending/extending.rst:1249 +#: extending/extending.rst:1257 msgid "" "The ``#define`` is used to tell the header file that it is being included in " "the exporting module, not a client module. Finally, the module's " "initialization function must take care of initializing the C API pointer " "array::" msgstr "" +"L'indicateur ``#define`` est utilisé pour indiquer au fichier d'en-tête " +"qu'il est inclus dans le module d'exportation, et non dans un module client. " +"Enfin, la fonction d'initialisation du module doit prendre en charge " +"l'initialisation du tableau de pointeurs de l'API C ::" -#: ../Doc/extending/extending.rst:1279 +#: extending/extending.rst:1287 msgid "" "Note that ``PySpam_API`` is declared ``static``; otherwise the pointer array " "would disappear when :func:`PyInit_spam` terminates!" msgstr "" +"Notez que ``PySpam_API`` est déclaré ``static`` ; sinon le tableau de " +"pointeurs disparaîtrait lorsque :func:`PyInit_spam`` se finit !" -#: ../Doc/extending/extending.rst:1282 +#: extending/extending.rst:1290 msgid "" "The bulk of the work is in the header file :file:`spammodule.h`, which looks " "like this::" msgstr "" +"L'essentiel du travail se trouve dans le fichier d'en-tête :file:`spammodule." +"h`, qui ressemble à ceci ::" -#: ../Doc/extending/extending.rst:1333 +#: extending/extending.rst:1341 msgid "" "All that a client module must do in order to have access to the function :c:" "func:`PySpam_System` is to call the function (or rather macro) :c:func:" "`import_spam` in its initialization function::" msgstr "" +"Tout ce qu'un module client doit faire pour avoir accès à la fonction :c:" +"func:`PySpam_System` est d'appeler la fonction (ou plutôt la macro) :c:func:" +"`import_spam` dans sa fonction d'initialisation ::" -#: ../Doc/extending/extending.rst:1351 +#: extending/extending.rst:1359 msgid "" "The main disadvantage of this approach is that the file :file:`spammodule.h` " "is rather complicated. However, the basic structure is the same for each " "function that is exported, so it has to be learned only once." msgstr "" +"Le principal inconvénient de cette approche est que le fichier :file:" +"`spammodule.h` est assez compliqué. Cependant, la structure de base est la " +"même pour chaque fonction exportée, ce qui fait qu'elle ne doit être apprise " +"qu'une seule fois." -#: ../Doc/extending/extending.rst:1355 +#: extending/extending.rst:1363 msgid "" "Finally it should be mentioned that Capsules offer additional functionality, " "which is especially useful for memory allocation and deallocation of the " @@ -1490,32 +1779,49 @@ msgid "" "Capsules (files :file:`Include/pycapsule.h` and :file:`Objects/pycapsule.c` " "in the Python source code distribution)." msgstr "" +"Enfin, il convient de mentionner que Capsules offrent des fonctionnalités " +"supplémentaires, qui sont particulièrement utiles pour l'allocation de la " +"mémoire et la dés-allocation du pointeur stocké dans un objet Capsule. Les " +"détails sont décrits dans le manuel de référence de l'API Python/C dans la " +"section :ref:`capsules` et dans l'implémentation des Capsules (fichiers :" +"file:`Include/pycapsule.h` et :file:`Objects/pycapsule.c` dans la " +"distribution du code source Python)." -#: ../Doc/extending/extending.rst:1363 +#: extending/extending.rst:1371 msgid "Footnotes" msgstr "Notes" -#: ../Doc/extending/extending.rst:1364 +#: extending/extending.rst:1372 msgid "" "An interface for this function already exists in the standard module :mod:" "`os` --- it was chosen as a simple and straightforward example." msgstr "" +"Une interface pour cette fonction existe déjà dans le module standard :mod:" +"`os`, elle a été choisie comme un exemple simple et direct." -#: ../Doc/extending/extending.rst:1367 +#: extending/extending.rst:1375 msgid "" "The metaphor of \"borrowing\" a reference is not completely correct: the " "owner still has a copy of the reference." msgstr "" +"L'expression « emprunter une référence » n'est pas tout à fait correcte, car " +"le propriétaire a toujours une copie de la référence." -#: ../Doc/extending/extending.rst:1370 +#: extending/extending.rst:1378 msgid "" "Checking that the reference count is at least 1 **does not work** --- the " "reference count itself could be in freed memory and may thus be reused for " "another object!" msgstr "" +"Vérifier que le comptage de référence est d'au moins 1 **ne fonctionne " +"pas**, le compte de référence lui-même pourrait être en mémoire libérée et " +"peut donc être réutilisé pour un autre objet !" -#: ../Doc/extending/extending.rst:1374 +#: extending/extending.rst:1382 msgid "" "These guarantees don't hold when you use the \"old\" style calling " "convention --- this is still found in much existing code." msgstr "" +"Ces garanties ne sont pas valables lorsqu'on emploie les conventions de " +"nommage anciennes, qu'on retrouve encore assez souvent dans beaucoup de code " +"existant." diff --git a/extending/newtypes.po b/extending/newtypes.po index 1abecbff52..345c257fd0 100644 --- a/extending/newtypes.po +++ b/extending/newtypes.po @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/extending/newtypes.rst:7 msgid "Defining Extension Types: Assorted Topics" -msgstr "" +msgstr "Définir les types d'extension : divers sujets" #: ../Doc/extending/newtypes.rst:11 msgid "" @@ -68,16 +68,21 @@ msgid "" "Here you can put a string (or its address) that you want returned when the " "Python script references ``obj.__doc__`` to retrieve the doc string." msgstr "" +"Ici vous pouvez mettre une chaîne (ou son adresse) que vous voulez renvoyer " +"lorsque le script Python référence ``obj.__doc__`` pour récupérer le " +"*docstring*." #: ../Doc/extending/newtypes.rst:49 msgid "" "Now we come to the basic type methods -- the ones most extension types will " "implement." msgstr "" +"Nous en arrivons maintenant aux méthodes de type basiques -- celles que la " +"plupart des types d'extension mettront en œuvre." #: ../Doc/extending/newtypes.rst:54 msgid "Finalization and De-allocation" -msgstr "" +msgstr "Finalisation et de-allocation" #: ../Doc/extending/newtypes.rst:66 msgid "" @@ -125,11 +130,11 @@ msgstr "" #: ../Doc/extending/newtypes.rst:136 msgid ":pep:`442` explains the new finalization scheme." -msgstr "" +msgstr ":pep:`442` explique le nouveau schéma de finalisation." #: ../Doc/extending/newtypes.rst:143 msgid "Object Presentation" -msgstr "" +msgstr "Présentation de l'objet" #: ../Doc/extending/newtypes.rst:145 msgid "" @@ -165,11 +170,11 @@ msgstr "" #: ../Doc/extending/newtypes.rst:176 msgid "Here is a simple example::" -msgstr "" +msgstr "Voici un exemple simple ::" #: ../Doc/extending/newtypes.rst:188 msgid "Attribute Management" -msgstr "" +msgstr "Gestion des attributs" #: ../Doc/extending/newtypes.rst:190 msgid "" @@ -203,7 +208,7 @@ msgstr "" #: ../Doc/extending/newtypes.rst:219 msgid "Generic Attribute Management" -msgstr "" +msgstr "Gestion des attributs génériques" #: ../Doc/extending/newtypes.rst:221 msgid "" @@ -216,6 +221,8 @@ msgid "" "The name of the attributes must be known when :c:func:`PyType_Ready` is " "called." msgstr "" +"Le nom des attributs doivent être déjà connus lorsqu'on lance :c:func:" +"`PyType_Ready`." #: ../Doc/extending/newtypes.rst:227 msgid "" @@ -244,6 +251,7 @@ msgstr "" #: ../Doc/extending/newtypes.rst:241 msgid "The tables are declared as three fields of the type object::" msgstr "" +"Les tables sont déclarées sous la forme de trois champs de type objet ::" #: ../Doc/extending/newtypes.rst:247 msgid "" @@ -295,35 +303,35 @@ msgstr "Signification" #: ../Doc/extending/newtypes.rst:288 msgid ":const:`READONLY`" -msgstr "" +msgstr ":const:`READONLY`" #: ../Doc/extending/newtypes.rst:288 msgid "Never writable." -msgstr "" +msgstr "Jamais disponible en écriture." #: ../Doc/extending/newtypes.rst:290 msgid ":const:`READ_RESTRICTED`" -msgstr "" +msgstr ":const:`READ_RESTRICTED`" #: ../Doc/extending/newtypes.rst:290 msgid "Not readable in restricted mode." -msgstr "" +msgstr "Non disponible en lecture, dans le mode restreint." #: ../Doc/extending/newtypes.rst:292 msgid ":const:`WRITE_RESTRICTED`" -msgstr "" +msgstr ":const:`WRITE_RESTRICTED`" #: ../Doc/extending/newtypes.rst:292 msgid "Not writable in restricted mode." -msgstr "" +msgstr "Non disponible en écriture dans le mode restreint." #: ../Doc/extending/newtypes.rst:294 msgid ":const:`RESTRICTED`" -msgstr "" +msgstr ":const:`RESTRICTED`" #: ../Doc/extending/newtypes.rst:294 msgid "Not readable or writable in restricted mode." -msgstr "" +msgstr "Non disponible en lecture ou écriture, en mode restreint." #: ../Doc/extending/newtypes.rst:303 msgid "" @@ -334,6 +342,13 @@ msgid "" "the descriptor from the class object, and get the doc string using its :attr:" "`__doc__` attribute." msgstr "" +"Un avantage intéressant de l'utilisation de la table :c:member:" +"`~PyTypeObject.tp_members` pour construire les descripteurs qui sont " +"utilisés à l'exécution, est que à tout attribut défini de cette façon on " +"peut associer un *docstring*, en écrivant simplement le texte dans la table. " +"Une application peut utiliser l'API d'introspection pour récupérer le " +"descripteur de l'objet de classe, et utiliser son attribut :attr:`__doc__` " +"pour renvoyer le *docstring*." #: ../Doc/extending/newtypes.rst:309 msgid "" @@ -343,7 +358,7 @@ msgstr "" #: ../Doc/extending/newtypes.rst:323 msgid "Type-specific Attribute Management" -msgstr "" +msgstr "Gestion des attributs de type spécifiques" #: ../Doc/extending/newtypes.rst:325 msgid "" @@ -365,7 +380,7 @@ msgstr "" #: ../Doc/extending/newtypes.rst:337 msgid "Here is an example::" -msgstr "Voici un exemple : ::" +msgstr "Voici un exemple ::" #: ../Doc/extending/newtypes.rst:353 msgid "" @@ -379,7 +394,7 @@ msgstr "" #: ../Doc/extending/newtypes.rst:367 msgid "Object Comparison" -msgstr "" +msgstr "Comparaison des objets" #: ../Doc/extending/newtypes.rst:373 msgid "" @@ -408,7 +423,7 @@ msgstr "" #: ../Doc/extending/newtypes.rst:416 msgid "Abstract Protocol Support" -msgstr "" +msgstr "Support pour le protocole abstrait" #: ../Doc/extending/newtypes.rst:418 msgid "" @@ -466,7 +481,7 @@ msgstr "" #: ../Doc/extending/newtypes.rst:472 msgid "This function takes three arguments:" -msgstr "" +msgstr "Cette fonction prend trois arguments :" #: ../Doc/extending/newtypes.rst:474 msgid "" @@ -491,7 +506,7 @@ msgstr "" #: ../Doc/extending/newtypes.rst:486 msgid "Here is a toy ``tp_call`` implementation::" -msgstr "" +msgstr "Ceci est une implémentation ``tp_call`` très simple ::" #: ../Doc/extending/newtypes.rst:512 msgid "" @@ -510,6 +525,10 @@ msgid "" "tp_iter` handler, which must return an :term:`iterator` object. Here the " "same guidelines apply as for Python classes:" msgstr "" +"Tout objet :term:`iterable` doit implémenter le gestionnaire :c:member:" +"`~PyTypeObject.tp_iter`, qui doit renvoyer un objet de type :term:" +"`iterator`. Ici, les mêmes directives s'appliquent de la même façon que " +"pour les classes *Python* :" #: ../Doc/extending/newtypes.rst:523 msgid "" @@ -517,6 +536,9 @@ msgid "" "independent iterators, a new iterator should be created and returned by each " "call to :c:member:`~PyTypeObject.tp_iter`." msgstr "" +"Pour les collections (telles que les listes et les n-uplets) qui peuvent " +"implémenter plusieurs itérateurs indépendants, un nouvel itérateur doit être " +"créé et renvoyé par chaque appel de type :c:member:`~PyTypeObject.tp_iter`." #: ../Doc/extending/newtypes.rst:526 msgid "" @@ -543,7 +565,7 @@ msgstr "" #: ../Doc/extending/newtypes.rst:547 msgid "Weak Reference Support" -msgstr "" +msgstr "Prise en charge de la référence faible" #: ../Doc/extending/newtypes.rst:549 msgid "" @@ -551,16 +573,22 @@ msgid "" "type to participate in the weak reference mechanism without incurring the " "overhead on performance-critical objects (such as numbers)." msgstr "" +"L'un des objectifs de l'implémentation de la référence faible de *Python* " +"est de permettre à tout type d'objet de participer au mécanisme de référence " +"faible sans avoir à supporter le surcoût de la performance critique des " +"certains objets, tels que les nombres." #: ../Doc/extending/newtypes.rst:554 msgid "Documentation for the :mod:`weakref` module." -msgstr "" +msgstr "Documentation pour le module :mod:`weakref`." #: ../Doc/extending/newtypes.rst:556 msgid "" "For an object to be weakly referencable, the extension type must do two " "things:" msgstr "" +"Pour qu'un objet soit faiblement référençable, le type d'extension doit " +"faire deux choses :" #: ../Doc/extending/newtypes.rst:558 msgid "" @@ -569,6 +597,10 @@ msgid "" "``NULL`` (which is automatic when using the default :c:member:`~PyTypeObject." "tp_alloc`)." msgstr "" +"Inclure un champ :c:type:`PyObject\\*` dans la structure d'objet C dédiée au " +"mécanisme de référence faible. Le constructeur de l'objet doit le laisser à " +"la valeur ``NULL`` (ce qui est automatique lorsque l'on utilise le champ par " +"défaut :c:member:`~PyTypeObject.tp_alloc`)." #: ../Doc/extending/newtypes.rst:563 msgid "" @@ -576,16 +608,23 @@ msgid "" "offset of the aforementioned field in the C object structure, so that the " "interpreter knows how to access and modify that field." msgstr "" +"Définissez le membre de type :c:member:`~PyTypeObject.tp_weaklistoffset` à " +"la valeur de décalage (*offset*) du champ susmentionné dans la structure de " +"l'objet *C*, afin que l'interpréteur sache comment accéder à ce champ et le " +"modifier." #: ../Doc/extending/newtypes.rst:567 msgid "" "Concretely, here is how a trivial object structure would be augmented with " "the required field::" msgstr "" +"Concrètement, voici comment une structure d'objet simple serait complétée " +"par le champ requis ::" #: ../Doc/extending/newtypes.rst:575 msgid "And the corresponding member in the statically-declared type object::" msgstr "" +"Et le membre correspondant dans l'objet de type déclaré statiquement ::" #: ../Doc/extending/newtypes.rst:583 msgid "" @@ -593,10 +632,13 @@ msgid "" "references (by calling :c:func:`PyObject_ClearWeakRefs`) if the field is non-" "``NULL``::" msgstr "" +"Le seul ajout supplémentaire est que ``tp_dealloc`` doit effacer toute " +"référence faible (en appelant :c:func:`PyObject_ClearWeakRefs`) si le champ " +"est non ``NULL`` ::" #: ../Doc/extending/newtypes.rst:599 msgid "More Suggestions" -msgstr "" +msgstr "Plus de suggestions" #: ../Doc/extending/newtypes.rst:601 msgid "" @@ -606,6 +648,12 @@ msgid "" "want (for example, ``tp_richcompare``). You will find examples of the " "function you want to implement." msgstr "" +"Pour savoir comment mettre en œuvre une méthode spécifique pour votre " +"nouveau type de données, téléchargez le code source :term:`CPython`. Allez " +"dans le répertoire :file:`Objects`, puis cherchez dans les fichiers sources " +"*C* la fonction ``tp_`` plus la fonction que vous voulez (par exemple, " +"``tp_richcompare``). Vous trouverez des exemples de la fonction que vous " +"voulez implémenter." #: ../Doc/extending/newtypes.rst:607 msgid "" @@ -613,23 +661,27 @@ msgid "" "you are implementing, use the :c:func:`PyObject_TypeCheck` function. A " "sample of its use might be something like the following::" msgstr "" +"Lorsque vous avez besoin de vérifier qu'un objet est une instance concrète " +"du type que vous implémentez, utilisez la fonction :c:func:" +"`PyObject_TypeCheck`. Voici un exemple de son utilisation ::" #: ../Doc/extending/newtypes.rst:618 msgid "Download CPython source releases." -msgstr "" +msgstr "Télécharger les versions sources de *CPython*." #: ../Doc/extending/newtypes.rst:618 msgid "https://www.python.org/downloads/source/" -msgstr "" +msgstr "https://www.python.org/downloads/source/" #: ../Doc/extending/newtypes.rst:620 msgid "" "The CPython project on GitHub, where the CPython source code is developed." msgstr "" +"Le projet *CPython* sur *GitHub*, où se trouve le code source *CPython*." #: ../Doc/extending/newtypes.rst:621 msgid "https://github.com/python/cpython" -msgstr "" +msgstr "https://github.com/python/cpython" #~ msgid "Footnotes" #~ msgstr "Notes" diff --git a/extending/newtypes_tutorial.po b/extending/newtypes_tutorial.po index c50d27d1ce..53b4ad7dec 100644 --- a/extending/newtypes_tutorial.po +++ b/extending/newtypes_tutorial.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-15 18:54+0100\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2018-06-17 10:15+0200\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,11 +14,11 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/extending/newtypes_tutorial.rst:7 +#: extending/newtypes_tutorial.rst:7 msgid "Defining Extension Types: Tutorial" -msgstr "" +msgstr "Tutoriel : définir des types dans des extensions" -#: ../Doc/extending/newtypes_tutorial.rst:14 +#: extending/newtypes_tutorial.rst:14 msgid "" "Python allows the writer of a C extension module to define new types that " "can be manipulated from Python code, much like the built-in :class:`str` " @@ -26,12 +26,17 @@ msgid "" "pattern, but there are some details that you need to understand before you " "can get started. This document is a gentle introduction to the topic." msgstr "" +"Python permet à l'auteur d'un module d'extension C de définir de nouveaux " +"types qui peuvent être manipulés depuis du code Python, à la manière des " +"types natifs :class:`str` et :class:`list`. Les implémentations de tous les " +"types d'extension ont des similarités, mais quelques subtilités doivent être " +"abordées avant de commencer." -#: ../Doc/extending/newtypes_tutorial.rst:24 +#: extending/newtypes_tutorial.rst:24 msgid "The Basics" -msgstr "" +msgstr "Les bases" -#: ../Doc/extending/newtypes_tutorial.rst:26 +#: extending/newtypes_tutorial.rst:26 msgid "" "The :term:`CPython` runtime sees all Python objects as variables of type :c:" "type:`PyObject\\*`, which serves as a \"base type\" for all Python objects. " @@ -43,57 +48,76 @@ msgid "" "functions are called \"type methods\"." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:35 +#: extending/newtypes_tutorial.rst:35 msgid "" "So, if you want to define a new extension type, you need to create a new " "type object." msgstr "" +"Donc, pour définir un nouveau type dans une extension, vous devez créer un " +"nouvel objet type." -#: ../Doc/extending/newtypes_tutorial.rst:38 +#: extending/newtypes_tutorial.rst:38 msgid "" "This sort of thing can only be explained by example, so here's a minimal, " "but complete, module that defines a new type named :class:`Custom` inside a " "C extension module :mod:`custom`:" msgstr "" +"Ce genre de chose ne s'explique correctement qu'avec des exemples, voici " +"donc un module minimaliste mais suffisant qui définit un nouveau type nommé :" +"class:`Custom` dans le module d'extension :mod:`custom` :" -#: ../Doc/extending/newtypes_tutorial.rst:43 +#: extending/newtypes_tutorial.rst:43 msgid "" "What we're showing here is the traditional way of defining *static* " "extension types. It should be adequate for most uses. The C API also " "allows defining heap-allocated extension types using the :c:func:" "`PyType_FromSpec` function, which isn't covered in this tutorial." msgstr "" +"Ce qui est montré ici est la manière traditionnelle de définir des types " +"d'extension *statiques*, et cela convient dans la majorité des cas. L'API C " +"permet aussi de définir des types alloués sur le tas, via la fonction :c:" +"func:`PyType_FromSpec`, mais ce n'est pas couvert par ce tutoriel." -#: ../Doc/extending/newtypes_tutorial.rst:50 +#: extending/newtypes_tutorial.rst:50 msgid "" "Now that's quite a bit to take in at once, but hopefully bits will seem " "familiar from the previous chapter. This file defines three things:" msgstr "" +"C'est un peu long, mais vous devez déjà reconnaître quelques morceaux " +"expliqués au chapitre précédent. Ce fichier définit trois choses :" -#: ../Doc/extending/newtypes_tutorial.rst:53 +#: extending/newtypes_tutorial.rst:53 msgid "" "What a :class:`Custom` **object** contains: this is the ``CustomObject`` " "struct, which is allocated once for each :class:`Custom` instance." msgstr "" +"Ce qu'un **objet** :class:`Custom` contient : c'est la structure " +"``CustomObject``, qui est allouée une fois pour chaque instance de :class:" +"`Custom`." -#: ../Doc/extending/newtypes_tutorial.rst:55 +#: extending/newtypes_tutorial.rst:55 msgid "" "How the :class:`Custom` **type** behaves: this is the ``CustomType`` struct, " "which defines a set of flags and function pointers that the interpreter " "inspects when specific operations are requested." msgstr "" +"Comment le **type** :class:`Custom` se comporte : c'est la structure " +"``CustomType``, qui définit l'ensemble des options et pointeurs de fonction " +"utilisés par l'interpréteur." -#: ../Doc/extending/newtypes_tutorial.rst:58 +#: extending/newtypes_tutorial.rst:58 msgid "" "How to initialize the :mod:`custom` module: this is the ``PyInit_custom`` " "function and the associated ``custommodule`` struct." msgstr "" +"Comment initialiser le module :mod:`custom` : c'est la fonction " +"``PyInit_custom`` et la structure associée ``custommodule``." -#: ../Doc/extending/newtypes_tutorial.rst:61 +#: extending/newtypes_tutorial.rst:61 msgid "The first bit is::" -msgstr "" +msgstr "Commençons par ::" -#: ../Doc/extending/newtypes_tutorial.rst:67 +#: extending/newtypes_tutorial.rst:67 msgid "" "This is what a Custom object will contain. ``PyObject_HEAD`` is mandatory " "at the start of each object struct and defines a field called ``ob_base`` of " @@ -103,55 +127,74 @@ msgid "" "abstract away the layout and to enable additional fields in debug builds." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:75 +#: extending/newtypes_tutorial.rst:75 msgid "" "There is no semicolon above after the :c:macro:`PyObject_HEAD` macro. Be " "wary of adding one by accident: some compilers will complain." msgstr "" +"Il n'y a pas de point-virgule après la macro :c:macro:`PyObject_HEAD`. " +"Attention à ne pas l'ajouter par accident : certains compilateurs pourraient " +"s'en plaindre." -#: ../Doc/extending/newtypes_tutorial.rst:78 +#: extending/newtypes_tutorial.rst:78 msgid "" "Of course, objects generally store additional data besides the standard " "``PyObject_HEAD`` boilerplate; for example, here is the definition for " "standard Python floats::" msgstr "" +"Bien sûr, les objets ajoutent généralement des données supplémentaires après " +"l'entête standard ``PyObject_HEAD``. Par exemple voici la définition du type " +"standard Python ``float`` ::" -#: ../Doc/extending/newtypes_tutorial.rst:87 +#: extending/newtypes_tutorial.rst:87 msgid "The second bit is the definition of the type object. ::" -msgstr "" +msgstr "La deuxième partie est la définition de l'objet type ::" -#: ../Doc/extending/newtypes_tutorial.rst:100 +#: extending/newtypes_tutorial.rst:100 msgid "" "We recommend using C99-style designated initializers as above, to avoid " "listing all the :c:type:`PyTypeObject` fields that you don't care about and " "also to avoid caring about the fields' declaration order." msgstr "" +"Nous recommandons d'utiliser la syntaxe d'initialisation nommée (C99) pour " +"remplir la structure, comme ci-dessus, afin d'éviter d'avoir à lister les " +"champs de :c:type:`PyTypeObject` dont vous n'avez pas besoin, et de ne pas " +"vous soucier de leur ordre." -#: ../Doc/extending/newtypes_tutorial.rst:104 +#: extending/newtypes_tutorial.rst:104 msgid "" "The actual definition of :c:type:`PyTypeObject` in :file:`object.h` has many " "more :ref:`fields ` than the definition above. The remaining " "fields will be filled with zeros by the C compiler, and it's common practice " "to not specify them explicitly unless you need them." msgstr "" +"La définition de :c:type:`PyTypeObject` dans :file:`object.h` contient en " +"fait bien plus de :ref:`champs ` que la définition ci-dessus. " +"Les champs restants sont mis à zéro par le compilateur C, et c'est une " +"pratique répandue de ne pas spécifier les champs dont vous n'avez pas besoin." -#: ../Doc/extending/newtypes_tutorial.rst:109 +#: extending/newtypes_tutorial.rst:109 msgid "We're going to pick it apart, one field at a time::" -msgstr "" +msgstr "Regardons les champs de cette structure, un par un ::" -#: ../Doc/extending/newtypes_tutorial.rst:113 +#: extending/newtypes_tutorial.rst:113 msgid "" "This line is mandatory boilerplate to initialize the ``ob_base`` field " "mentioned above. ::" msgstr "" +"Cette ligne, obligatoire, initialise le champ ``ob_base`` mentionné " +"précédemment." -#: ../Doc/extending/newtypes_tutorial.rst:118 +#: extending/newtypes_tutorial.rst:118 msgid "" "The name of our type. This will appear in the default textual " "representation of our objects and in some error messages, for example:" msgstr "" +"C'est le nom de notre type. Il apparaît dans la représentation textuelle par " +"défaut de nos objets, ainsi que dans quelques messages d'erreur, par " +"exemple :" -#: ../Doc/extending/newtypes_tutorial.rst:128 +#: extending/newtypes_tutorial.rst:128 msgid "" "Note that the name is a dotted name that includes both the module name and " "the name of the type within the module. The module in this case is :mod:" @@ -159,15 +202,24 @@ msgid "" "`custom.Custom`. Using the real dotted import path is important to make your " "type compatible with the :mod:`pydoc` and :mod:`pickle` modules. ::" msgstr "" +"Notez que le nom comporte un point : il inclut le nom du module et le nom du " +"type. Dans ce cas le module est :mod:`custom`, et le type est :class:" +"`Custom`, donc nous donnons comme nom :class:`custom.Custom`. Nommer " +"correctement son type, avec le point, est important pour le rendre " +"compatible avec :mod:`pydoc` et :mod:`pickle`. ::" -#: ../Doc/extending/newtypes_tutorial.rst:137 +#: extending/newtypes_tutorial.rst:137 msgid "" "This is so that Python knows how much memory to allocate when creating new :" "class:`Custom` instances. :c:member:`~PyTypeObject.tp_itemsize` is only " "used for variable-sized objects and should otherwise be zero." msgstr "" +"C'est pour que Python sache combien de mémoire allouer à la création d'une " +"nouvelle instance de :class:`Custom`. :c:member:`~PyTypeObject.tp_itemsize` " +"n'est utilisé que pour les objets de taille variable, sinon il doit rester à " +"zéro." -#: ../Doc/extending/newtypes_tutorial.rst:143 +#: extending/newtypes_tutorial.rst:143 msgid "" "If you want your type to be subclassable from Python, and your type has the " "same :c:member:`~PyTypeObject.tp_basicsize` as its base type, you may have " @@ -180,24 +232,42 @@ msgid "" "type will be :class:`object`, or else you will be adding data members to " "your base type, and therefore increasing its size." msgstr "" - -#: ../Doc/extending/newtypes_tutorial.rst:153 +"Si vous voulez qu'une classe en Python puisse hériter de votre type, et que " +"votre type a le même :c:member:`~PyTypeObject.tp_basicsize` que son parent, " +"vous rencontrerez des problèmes avec l'héritage multiple. Une sous-classe " +"Python de votre type devra lister votre type en premier dans son :attr:" +"`~class.__bases__`, sans quoi elle ne sera pas capable d'appeler la méthode :" +"meth:`__new__` de votre type sans erreur. Vous pouvez éviter ce problème en " +"vous assurant que votre type a un :c:member:`~PyTypeObject.tp_basicsize` " +"plus grand que son parent. La plupart du temps ce sera vrai (soit son parent " +"sera :class:`object`, soit vous ajouterez des attributs à votre type, " +"augmentant ainsi sa taille)." + +#: extending/newtypes_tutorial.rst:153 msgid "We set the class flags to :const:`Py_TPFLAGS_DEFAULT`. ::" msgstr "" +"On utilise la constante :const:`Py_TPFLAGS_DEFAULT` comme seule option de " +"type. ::" -#: ../Doc/extending/newtypes_tutorial.rst:157 +#: extending/newtypes_tutorial.rst:157 msgid "" "All types should include this constant in their flags. It enables all of " "the members defined until at least Python 3.3. If you need further members, " "you will need to OR the corresponding flags." msgstr "" +"Chaque type doit inclure cette constante dans ses options : elle active tous " +"les membres définis jusqu'à au moins Python 3.3. Si vous avez besoin de plus " +"de membres, vous pouvez la combiner à d'autres constantes avec un *ou* " +"binaire." -#: ../Doc/extending/newtypes_tutorial.rst:161 +#: extending/newtypes_tutorial.rst:161 msgid "" "We provide a doc string for the type in :c:member:`~PyTypeObject.tp_doc`. ::" msgstr "" +"On fournit une *docstring* pour ce type via le membre :c:member:" +"`~PyTypeObject.tp_doc`. ::" -#: ../Doc/extending/newtypes_tutorial.rst:165 +#: extending/newtypes_tutorial.rst:165 msgid "" "To enable object creation, we have to provide a :c:member:`~PyTypeObject." "tp_new` handler. This is the equivalent of the Python method :meth:" @@ -205,54 +275,68 @@ msgid "" "use the default implementation provided by the API function :c:func:" "`PyType_GenericNew`. ::" msgstr "" +"Pour permettre la création d'une instance, nous devons fournir un *handler* :" +"c:member:`~PyTypeObject.tp_new`, qui est l'équivalent de la méthode Python :" +"meth:`__new__`, mais elle a besoin d'être spécifiée explicitement. Dans ce " +"cas, on se contente de l'implémentation par défaut fournie par la fonction :" +"c:func:`PyType_GenericNew` de l'API." -#: ../Doc/extending/newtypes_tutorial.rst:172 +#: extending/newtypes_tutorial.rst:172 msgid "" "Everything else in the file should be familiar, except for some code in :c:" "func:`PyInit_custom`::" msgstr "" +"Le reste du fichier doit vous être familier, en dehors du code de :c:func:" +"`PyInit_custom` ::" -#: ../Doc/extending/newtypes_tutorial.rst:178 +#: extending/newtypes_tutorial.rst:178 msgid "" "This initializes the :class:`Custom` type, filling in a number of members to " "the appropriate default values, including :attr:`ob_type` that we initially " "set to ``NULL``. ::" msgstr "" +"Il initialise le type :class:`Custom`, en assignant quelques membres à leurs " +"valeurs par défaut, tel que :attr:`ob_type` qui valait initialement " +"``NULL``. ::" -#: ../Doc/extending/newtypes_tutorial.rst:189 +#: extending/newtypes_tutorial.rst:189 msgid "" "This adds the type to the module dictionary. This allows us to create :" "class:`Custom` instances by calling the :class:`Custom` class:" msgstr "" +"Ici on ajoute le type au dictionnaire du module. Cela permet de créer une " +"instance de :class:`Custom` en appelant la classe :class:`Custom` :" -#: ../Doc/extending/newtypes_tutorial.rst:197 +#: extending/newtypes_tutorial.rst:197 msgid "" "That's it! All that remains is to build it; put the above code in a file " "called :file:`custom.c` and:" msgstr "" +"C'est tout ! Il ne reste plus qu'à compiler, placez le code ci-dessus dans " +"un fichier :file:`custom.c` et :" -#: ../Doc/extending/newtypes_tutorial.rst:206 +#: extending/newtypes_tutorial.rst:206 msgid "in a file called :file:`setup.py`; then typing" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:212 +#: extending/newtypes_tutorial.rst:212 msgid "" "at a shell should produce a file :file:`custom.so` in a subdirectory; move " "to that directory and fire up Python --- you should be able to ``import " "custom`` and play around with Custom objects." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:216 +#: extending/newtypes_tutorial.rst:216 msgid "That wasn't so hard, was it?" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:218 +#: extending/newtypes_tutorial.rst:218 msgid "" "Of course, the current Custom type is pretty uninteresting. It has no data " "and doesn't do anything. It can't even be subclassed." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:222 +#: extending/newtypes_tutorial.rst:222 msgid "" "While this documentation showcases the standard :mod:`distutils` module for " "building C extensions, it is recommended in real-world use cases to use the " @@ -262,32 +346,32 @@ msgid "" "packages/>`_." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:230 +#: extending/newtypes_tutorial.rst:230 msgid "Adding data and methods to the Basic example" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:232 +#: extending/newtypes_tutorial.rst:232 msgid "" "Let's extend the basic example to add some data and methods. Let's also " "make the type usable as a base class. We'll create a new module, :mod:" "`custom2` that adds these capabilities:" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:239 +#: extending/newtypes_tutorial.rst:239 msgid "This version of the module has a number of changes." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:241 +#: extending/newtypes_tutorial.rst:241 msgid "We've added an extra include::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:245 +#: extending/newtypes_tutorial.rst:245 msgid "" "This include provides declarations that we use to handle attributes, as " "described a bit later." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:248 +#: extending/newtypes_tutorial.rst:248 msgid "" "The :class:`Custom` type now has three data attributes in its C struct, " "*first*, *last*, and *number*. The *first* and *last* variables are Python " @@ -295,21 +379,21 @@ msgid "" "integer." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:252 +#: extending/newtypes_tutorial.rst:252 msgid "The object structure is updated accordingly::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:261 +#: extending/newtypes_tutorial.rst:261 msgid "" "Because we now have data to manage, we have to be more careful about object " "allocation and deallocation. At a minimum, we need a deallocation method::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:272 +#: extending/newtypes_tutorial.rst:272 msgid "which is assigned to the :c:member:`~PyTypeObject.tp_dealloc` member::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:276 +#: extending/newtypes_tutorial.rst:276 msgid "" "This method first clears the reference counts of the two Python attributes. :" "c:func:`Py_XDECREF` correctly handles the case where its argument is " @@ -320,7 +404,7 @@ msgid "" "instance of a subclass." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:285 +#: extending/newtypes_tutorial.rst:285 msgid "" "The explicit cast to ``destructor`` above is needed because we defined " "``Custom_dealloc`` to take a ``CustomObject *`` argument, but the " @@ -329,17 +413,17 @@ msgid "" "oriented polymorphism, in C!" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:291 +#: extending/newtypes_tutorial.rst:291 msgid "" "We want to make sure that the first and last names are initialized to empty " "strings, so we provide a ``tp_new`` implementation::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:315 +#: extending/newtypes_tutorial.rst:315 msgid "and install it in the :c:member:`~PyTypeObject.tp_new` member::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:319 +#: extending/newtypes_tutorial.rst:319 msgid "" "The ``tp_new`` handler is responsible for creating (as opposed to " "initializing) objects of the type. It is exposed in Python as the :meth:" @@ -350,7 +434,7 @@ msgid "" "attributes to non-``NULL`` default values." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:327 +#: extending/newtypes_tutorial.rst:327 msgid "" "``tp_new`` is passed the type being instantiated (not necessarily " "``CustomType``, if a subclass is instantiated) and any arguments passed when " @@ -360,25 +444,25 @@ msgid "" "k.a. ``tp_init`` in C or ``__init__`` in Python) methods." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:335 +#: extending/newtypes_tutorial.rst:335 msgid "" "``tp_new`` shouldn't call ``tp_init`` explicitly, as the interpreter will do " "it itself." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:338 +#: extending/newtypes_tutorial.rst:338 msgid "" "The ``tp_new`` implementation calls the :c:member:`~PyTypeObject.tp_alloc` " "slot to allocate memory::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:343 +#: extending/newtypes_tutorial.rst:343 msgid "" "Since memory allocation may fail, we must check the :c:member:`~PyTypeObject." "tp_alloc` result against ``NULL`` before proceeding." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:347 +#: extending/newtypes_tutorial.rst:347 msgid "" "We didn't fill the :c:member:`~PyTypeObject.tp_alloc` slot ourselves. " "Rather :c:func:`PyType_Ready` fills it for us by inheriting it from our base " @@ -386,7 +470,7 @@ msgid "" "allocation strategy." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:353 +#: extending/newtypes_tutorial.rst:353 msgid "" "If you are creating a co-operative :c:member:`~PyTypeObject.tp_new` (one " "that calls a base type's :c:member:`~PyTypeObject.tp_new` or :meth:" @@ -399,17 +483,17 @@ msgid "" "subclasses without getting a :exc:`TypeError`.)" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:363 +#: extending/newtypes_tutorial.rst:363 msgid "" "We also define an initialization function which accepts arguments to provide " "initial values for our instance::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:392 +#: extending/newtypes_tutorial.rst:392 msgid "by filling the :c:member:`~PyTypeObject.tp_init` slot. ::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:396 +#: extending/newtypes_tutorial.rst:396 msgid "" "The :c:member:`~PyTypeObject.tp_init` slot is exposed in Python as the :meth:" "`__init__` method. It is used to initialize an object after it's created. " @@ -417,7 +501,7 @@ msgid "" "return either ``0`` on success or ``-1`` on error." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:401 +#: extending/newtypes_tutorial.rst:401 msgid "" "Unlike the ``tp_new`` handler, there is no guarantee that ``tp_init`` is " "called at all (for example, the :mod:`pickle` module by default doesn't " @@ -428,59 +512,59 @@ msgid "" "``first`` member like this::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:415 +#: extending/newtypes_tutorial.rst:415 msgid "" "But this would be risky. Our type doesn't restrict the type of the " "``first`` member, so it could be any kind of object. It could have a " "destructor that causes code to be executed that tries to access the " "``first`` member; or that destructor could release the :term:`Global " -"interpreter Lock` and let arbitrary code run in other threads that accesses " -"and modifies our object." +"interpreter Lock ` and let arbitrary code run in other threads that " +"accesses and modifies our object." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:422 +#: extending/newtypes_tutorial.rst:422 msgid "" "To be paranoid and protect ourselves against this possibility, we almost " "always reassign members before decrementing their reference counts. When " "don't we have to do this?" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:426 +#: extending/newtypes_tutorial.rst:426 msgid "when we absolutely know that the reference count is greater than 1;" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:428 +#: extending/newtypes_tutorial.rst:428 msgid "" "when we know that deallocation of the object [#]_ will neither release the :" "term:`GIL` nor cause any calls back into our type's code;" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:431 +#: extending/newtypes_tutorial.rst:431 msgid "" "when decrementing a reference count in a :c:member:`~PyTypeObject." "tp_dealloc` handler on a type which doesn't support cyclic garbage " "collection [#]_." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:434 +#: extending/newtypes_tutorial.rst:434 msgid "" "We want to expose our instance variables as attributes. There are a number " "of ways to do that. The simplest way is to define member definitions::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:447 +#: extending/newtypes_tutorial.rst:447 msgid "" "and put the definitions in the :c:member:`~PyTypeObject.tp_members` slot::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:451 +#: extending/newtypes_tutorial.rst:451 msgid "" "Each member definition has a member name, type, offset, access flags and " "documentation string. See the :ref:`Generic-Attribute-Management` section " "below for details." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:455 +#: extending/newtypes_tutorial.rst:455 msgid "" "A disadvantage of this approach is that it doesn't provide a way to restrict " "the types of objects that can be assigned to the Python attributes. We " @@ -491,13 +575,13 @@ msgid "" "deleted." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:462 +#: extending/newtypes_tutorial.rst:462 msgid "" "We define a single method, :meth:`Custom.name()`, that outputs the objects " "name as the concatenation of the first and last names. ::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:479 +#: extending/newtypes_tutorial.rst:479 msgid "" "The method is implemented as a C function that takes a :class:`Custom` (or :" "class:`Custom` subclass) instance as the first argument. Methods always " @@ -507,7 +591,7 @@ msgid "" "method is equivalent to the Python method:" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:491 +#: extending/newtypes_tutorial.rst:491 msgid "" "Note that we have to check for the possibility that our :attr:`first` and :" "attr:`last` members are ``NULL``. This is because they can be deleted, in " @@ -516,23 +600,23 @@ msgid "" "We'll see how to do that in the next section." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:497 +#: extending/newtypes_tutorial.rst:497 msgid "" "Now that we've defined the method, we need to create an array of method " "definitions::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:507 +#: extending/newtypes_tutorial.rst:507 msgid "" "(note that we used the :const:`METH_NOARGS` flag to indicate that the method " "is expecting no arguments other than *self*)" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:510 +#: extending/newtypes_tutorial.rst:510 msgid "and assign it to the :c:member:`~PyTypeObject.tp_methods` slot::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:514 +#: extending/newtypes_tutorial.rst:514 msgid "" "Finally, we'll make our type usable as a base class for subclassing. We've " "written our methods carefully so far so that they don't make any assumptions " @@ -540,22 +624,22 @@ msgid "" "to add the :const:`Py_TPFLAGS_BASETYPE` to our class flag definition::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:521 +#: extending/newtypes_tutorial.rst:521 msgid "" "We rename :c:func:`PyInit_custom` to :c:func:`PyInit_custom2`, update the " "module name in the :c:type:`PyModuleDef` struct, and update the full class " "name in the :c:type:`PyTypeObject` struct." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:525 +#: extending/newtypes_tutorial.rst:525 msgid "Finally, we update our :file:`setup.py` file to build the new module:" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:538 +#: extending/newtypes_tutorial.rst:538 msgid "Providing finer control over data attributes" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:540 +#: extending/newtypes_tutorial.rst:540 msgid "" "In this section, we'll provide finer control over how the :attr:`first` and :" "attr:`last` attributes are set in the :class:`Custom` example. In the " @@ -564,14 +648,14 @@ msgid "" "make sure that these attributes always contain strings." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:549 +#: extending/newtypes_tutorial.rst:549 msgid "" "To provide greater control, over the :attr:`first` and :attr:`last` " "attributes, we'll use custom getter and setter functions. Here are the " "functions for getting and setting the :attr:`first` attribute::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:580 +#: extending/newtypes_tutorial.rst:580 msgid "" "The getter function is passed a :class:`Custom` object and a \"closure\", " "which is a void pointer. In this case, the closure is ignored. (The " @@ -581,7 +665,7 @@ msgid "" "data in the closure.)" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:586 +#: extending/newtypes_tutorial.rst:586 msgid "" "The setter function is passed the :class:`Custom` object, the new value, and " "the closure. The new value may be ``NULL``, in which case the attribute is " @@ -589,32 +673,32 @@ msgid "" "or if its new value is not a string." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:591 +#: extending/newtypes_tutorial.rst:591 msgid "We create an array of :c:type:`PyGetSetDef` structures::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:601 +#: extending/newtypes_tutorial.rst:601 msgid "and register it in the :c:member:`~PyTypeObject.tp_getset` slot::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:605 +#: extending/newtypes_tutorial.rst:605 msgid "" "The last item in a :c:type:`PyGetSetDef` structure is the \"closure\" " "mentioned above. In this case, we aren't using a closure, so we just pass " "``NULL``." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:608 +#: extending/newtypes_tutorial.rst:608 msgid "We also remove the member definitions for these attributes::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:616 +#: extending/newtypes_tutorial.rst:616 msgid "" "We also need to update the :c:member:`~PyTypeObject.tp_init` handler to only " "allow strings [#]_ to be passed::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:645 +#: extending/newtypes_tutorial.rst:645 msgid "" "With these changes, we can assure that the ``first`` and ``last`` members " "are never ``NULL`` so we can remove checks for ``NULL`` values in almost all " @@ -624,25 +708,25 @@ msgid "" "possibility that the initialization of these members failed in ``tp_new``." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:652 +#: extending/newtypes_tutorial.rst:652 msgid "" "We also rename the module initialization function and module name in the " "initialization function, as we did before, and we add an extra definition to " "the :file:`setup.py` file." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:658 +#: extending/newtypes_tutorial.rst:658 msgid "Supporting cyclic garbage collection" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:660 +#: extending/newtypes_tutorial.rst:660 msgid "" "Python has a :term:`cyclic garbage collector (GC) ` that " "can identify unneeded objects even when their reference counts are not zero. " "This can happen when objects are involved in cycles. For example, consider:" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:670 +#: extending/newtypes_tutorial.rst:670 msgid "" "In this example, we create a list that contains itself. When we delete it, " "it still has a reference from itself. Its reference count doesn't drop to " @@ -650,7 +734,7 @@ msgid "" "out that the list is garbage and free it." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:675 +#: extending/newtypes_tutorial.rst:675 msgid "" "In the second version of the :class:`Custom` example, we allowed any kind of " "object to be stored in the :attr:`first` or :attr:`last` attributes [#]_. " @@ -659,7 +743,7 @@ msgid "" "reasons, :class:`Custom` objects can participate in cycles:" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:689 +#: extending/newtypes_tutorial.rst:689 msgid "" "To allow a :class:`Custom` instance participating in a reference cycle to be " "properly detected and collected by the cyclic GC, our :class:`Custom` type " @@ -667,13 +751,13 @@ msgid "" "slots:" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:696 +#: extending/newtypes_tutorial.rst:696 msgid "" "First, the traversal method lets the cyclic GC know about subobjects that " "could participate in cycles::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:716 +#: extending/newtypes_tutorial.rst:716 msgid "" "For each subobject that can participate in cycles, we need to call the :c:" "func:`visit` function, which is passed to the traversal method. The :c:func:" @@ -682,26 +766,26 @@ msgid "" "be returned if it is non-zero." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:722 +#: extending/newtypes_tutorial.rst:722 msgid "" "Python provides a :c:func:`Py_VISIT` macro that automates calling visit " "functions. With :c:func:`Py_VISIT`, we can minimize the amount of " "boilerplate in ``Custom_traverse``::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:735 +#: extending/newtypes_tutorial.rst:735 msgid "" "The :c:member:`~PyTypeObject.tp_traverse` implementation must name its " "arguments exactly *visit* and *arg* in order to use :c:func:`Py_VISIT`." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:738 +#: extending/newtypes_tutorial.rst:738 msgid "" "Second, we need to provide a method for clearing any subobjects that can " "participate in cycles::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:749 +#: extending/newtypes_tutorial.rst:749 msgid "" "Notice the use of the :c:func:`Py_CLEAR` macro. It is the recommended and " "safe way to clear data attributes of arbitrary types while decrementing " @@ -711,18 +795,18 @@ msgid "" "again (*especially* if there is a reference cycle)." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:757 +#: extending/newtypes_tutorial.rst:757 msgid "You could emulate :c:func:`Py_CLEAR` by writing::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:764 +#: extending/newtypes_tutorial.rst:764 msgid "" "Nevertheless, it is much easier and less error-prone to always use :c:func:" "`Py_CLEAR` when deleting an attribute. Don't try to micro-optimize at the " "expense of robustness!" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:768 +#: extending/newtypes_tutorial.rst:768 msgid "" "The deallocator ``Custom_dealloc`` may call arbitrary code when clearing " "attributes. It means the circular GC can be triggered inside the function. " @@ -732,12 +816,12 @@ msgid "" "`PyObject_GC_UnTrack` and ``Custom_clear``::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:783 +#: extending/newtypes_tutorial.rst:783 msgid "" "Finally, we add the :const:`Py_TPFLAGS_HAVE_GC` flag to the class flags::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:787 +#: extending/newtypes_tutorial.rst:787 msgid "" "That's pretty much it. If we had written custom :c:member:`~PyTypeObject." "tp_alloc` or :c:member:`~PyTypeObject.tp_free` handlers, we'd need to modify " @@ -745,11 +829,11 @@ msgid "" "automatically provided." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:793 +#: extending/newtypes_tutorial.rst:793 msgid "Subclassing other types" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:795 +#: extending/newtypes_tutorial.rst:795 msgid "" "It is possible to create new extension types that are derived from existing " "types. It is easiest to inherit from the built in types, since an extension " @@ -757,7 +841,7 @@ msgid "" "share these :c:type:`PyTypeObject` structures between extension modules." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:800 +#: extending/newtypes_tutorial.rst:800 msgid "" "In this example we will create a :class:`SubList` type that inherits from " "the built-in :class:`list` type. The new type will be completely compatible " @@ -765,34 +849,34 @@ msgid "" "that increases an internal counter:" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:820 +#: extending/newtypes_tutorial.rst:820 msgid "" "As you can see, the source code closely resembles the :class:`Custom` " "examples in previous sections. We will break down the main differences " "between them. ::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:828 +#: extending/newtypes_tutorial.rst:828 msgid "" "The primary difference for derived type objects is that the base type's " "object structure must be the first value. The base type will already " "include the :c:func:`PyObject_HEAD` at the beginning of its structure." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:832 +#: extending/newtypes_tutorial.rst:832 msgid "" "When a Python object is a :class:`SubList` instance, its ``PyObject *`` " "pointer can be safely cast to both ``PyListObject *`` and ``SubListObject " "*``::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:844 +#: extending/newtypes_tutorial.rst:844 msgid "" "We see above how to call through to the :attr:`__init__` method of the base " "type." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:847 +#: extending/newtypes_tutorial.rst:847 msgid "" "This pattern is important when writing a type with custom :c:member:" "`~PyTypeObject.tp_new` and :c:member:`~PyTypeObject.tp_dealloc` members. " @@ -801,7 +885,7 @@ msgid "" "the base class handle it by calling its own :c:member:`~PyTypeObject.tp_new`." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:853 +#: extending/newtypes_tutorial.rst:853 msgid "" "The :c:type:`PyTypeObject` struct supports a :c:member:`~PyTypeObject." "tp_base` specifying the type's concrete base class. Due to cross-platform " @@ -810,7 +894,7 @@ msgid "" "function::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:881 +#: extending/newtypes_tutorial.rst:881 msgid "" "Before calling :c:func:`PyType_Ready`, the type structure must have the :c:" "member:`~PyTypeObject.tp_base` slot filled in. When we are deriving an " @@ -819,29 +903,29 @@ msgid "" "from the base type will be inherited." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:887 +#: extending/newtypes_tutorial.rst:887 msgid "" "After that, calling :c:func:`PyType_Ready` and adding the type object to the " "module is the same as with the basic :class:`Custom` examples." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:892 +#: extending/newtypes_tutorial.rst:892 msgid "Footnotes" msgstr "Notes" -#: ../Doc/extending/newtypes_tutorial.rst:893 +#: extending/newtypes_tutorial.rst:893 msgid "" "This is true when we know that the object is a basic type, like a string or " "a float." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:896 +#: extending/newtypes_tutorial.rst:896 msgid "" "We relied on this in the :c:member:`~PyTypeObject.tp_dealloc` handler in " "this example, because our type doesn't support garbage collection." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:899 +#: extending/newtypes_tutorial.rst:899 msgid "" "We now know that the first and last members are strings, so perhaps we could " "be less careful about decrementing their reference counts, however, we " @@ -851,7 +935,7 @@ msgid "" "objects." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:905 +#: extending/newtypes_tutorial.rst:905 msgid "" "Also, even with our attributes restricted to strings instances, the user " "could pass arbitrary :class:`str` subclasses and therefore still create " diff --git a/faq/design.po b/faq/design.po index 12bbe30027..20a3a5e401 100644 --- a/faq/design.po +++ b/faq/design.po @@ -5,30 +5,30 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-09 17:54+0200\n" -"PO-Revision-Date: 2019-10-31 14:49+0100\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" +"PO-Revision-Date: 2020-04-27 22:52+0200\n" "Last-Translator: Loc Cosnier \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2.1\n" +"X-Generator: Poedit 2.2.3\n" -#: ../Doc/faq/design.rst:3 +#: faq/design.rst:3 msgid "Design and History FAQ" msgstr "FAQ histoire et design" -#: ../Doc/faq/design.rst:6 +#: faq/design.rst:6 msgid "Contents" msgstr "Sommaire" -#: ../Doc/faq/design.rst:11 +#: faq/design.rst:11 msgid "Why does Python use indentation for grouping of statements?" msgstr "" "Pourquoi Python utilise-t-il l'indentation pour grouper les instructions ?" -#: ../Doc/faq/design.rst:13 +#: faq/design.rst:13 msgid "" "Guido van Rossum believes that using indentation for grouping is extremely " "elegant and contributes a lot to the clarity of the average Python program. " @@ -39,7 +39,7 @@ msgstr "" "du programme Python. La plupart des gens finissent par aimer cette " "particularité au bout d'un moment." -#: ../Doc/faq/design.rst:17 +#: faq/design.rst:17 msgid "" "Since there are no begin/end brackets there cannot be a disagreement between " "grouping perceived by the parser and the human reader. Occasionally C " @@ -50,7 +50,7 @@ msgstr "" "humain. Parfois les programmeurs C pourront trouver un morceau de code comme " "celui-ci ::" -#: ../Doc/faq/design.rst:26 +#: faq/design.rst:26 msgid "" "Only the ``x++`` statement is executed if the condition is true, but the " "indentation leads you to believe otherwise. Even experienced C programmers " @@ -62,7 +62,7 @@ msgstr "" "développeurs C expérimentés resteront pendant un moment à se demander " "pourquoi ``y`` est décrémenté même si ``x > y``." -#: ../Doc/faq/design.rst:31 +#: faq/design.rst:31 msgid "" "Because there are no begin/end brackets, Python is much less prone to coding-" "style conflicts. In C there are many different ways to place the braces. If " @@ -76,7 +76,7 @@ msgstr "" "vous pourriez vous sentir perturbé en lisant (ou en devant écrire) avec un " "autre style." -#: ../Doc/faq/design.rst:36 +#: faq/design.rst:36 msgid "" "Many coding styles place begin/end brackets on a line by themselves. This " "makes programs considerably longer and wastes valuable screen space, making " @@ -96,35 +96,35 @@ msgstr "" "présence de types de haut-niveau en sont également responsables -- mais la " "syntaxe basée sur l'indentation aide sûrement." -#: ../Doc/faq/design.rst:46 +#: faq/design.rst:46 msgid "Why am I getting strange results with simple arithmetic operations?" msgstr "" "Pourquoi ai-je d'étranges résultats suite à de simples opérations " "arithmétiques ?" -#: ../Doc/faq/design.rst:48 +#: faq/design.rst:48 msgid "See the next question." msgstr "Voir la question suivante." -#: ../Doc/faq/design.rst:52 +#: faq/design.rst:52 msgid "Why are floating-point calculations so inaccurate?" msgstr "Pourquoi les calculs à virgules flottantes sont si imprécis ?" -#: ../Doc/faq/design.rst:54 +#: faq/design.rst:54 msgid "Users are often surprised by results like this::" msgstr "Les gens sont très souvent surpris par des résultats comme celui-ci ::" -#: ../Doc/faq/design.rst:59 +#: faq/design.rst:59 msgid "" "and think it is a bug in Python. It's not. This has little to do with " "Python, and much more to do with how the underlying platform handles " "floating-point numbers." msgstr "" -"et pensent que c'est un *bug* dans Python. Ça ne l'est pas. Ceci n'a " +"et pensent que c'est un bogue dans Python. Ça ne l'est pas. Ceci n'a " "d'ailleurs que peu à voir avec Python, mais avec la manière dont la " "plateforme sous-jacente gère les nombres à virgule flottante." -#: ../Doc/faq/design.rst:63 +#: faq/design.rst:63 msgid "" "The :class:`float` type in CPython uses a C ``double`` for storage. A :" "class:`float` object's value is stored in binary floating-point with a fixed " @@ -142,7 +142,7 @@ msgstr "" "opérations sur les nombres à virgule flottante, Python se comporte comme " "beaucoup de langages populaires dont C et Java." -#: ../Doc/faq/design.rst:70 +#: faq/design.rst:70 msgid "" "Many numbers that can be written easily in decimal notation cannot be " "expressed exactly in binary floating-point. For example, after::" @@ -151,7 +151,7 @@ msgstr "" "peuvent pas s'exprimer de manière exacte en binaire à virgule flottante. Par " "exemple, après ::" -#: ../Doc/faq/design.rst:75 +#: faq/design.rst:75 msgid "" "the value stored for ``x`` is a (very good) approximation to the decimal " "value ``1.2``, but is not exactly equal to it. On a typical machine, the " @@ -161,11 +161,11 @@ msgstr "" "décimale ``1.2``, mais cette valeur n'est pas exacte. Sur une machine " "typique, la valeur stockée est en fait ::" -#: ../Doc/faq/design.rst:81 +#: faq/design.rst:81 msgid "which is exactly::" msgstr "qui est, exactement ::" -#: ../Doc/faq/design.rst:85 +#: faq/design.rst:85 msgid "" "The typical precision of 53 bits provides Python floats with 15--16 decimal " "digits of accuracy." @@ -173,7 +173,7 @@ msgstr "" "La précision typique de 53 bits des *floats* Python permet une précision de " "15--16 décimales." -#: ../Doc/faq/design.rst:88 +#: faq/design.rst:88 msgid "" "For a fuller explanation, please see the :ref:`floating point arithmetic " "` chapter in the Python tutorial." @@ -181,15 +181,15 @@ msgstr "" "Veuillez vous référer au chapitre sur :ref:`floating point arithmetic ` du tutoriel python pour de plus amples informations." -#: ../Doc/faq/design.rst:93 +#: faq/design.rst:93 msgid "Why are Python strings immutable?" msgstr "Pourquoi les chaînes de caractères Python sont-elles immuables ?" -#: ../Doc/faq/design.rst:95 +#: faq/design.rst:95 msgid "There are several advantages." msgstr "Il y a plusieurs avantages." -#: ../Doc/faq/design.rst:97 +#: faq/design.rst:97 msgid "" "One is performance: knowing that a string is immutable means we can allocate " "space for it at creation time, and the storage requirements are fixed and " @@ -201,7 +201,7 @@ msgstr "" "cette chaîne est fixe et figée. C'est aussi l'une des raisons pour " "lesquelles on fait la distinction entre les *tuples* et les listes." -#: ../Doc/faq/design.rst:102 +#: faq/design.rst:102 msgid "" "Another advantage is that strings in Python are considered as \"elemental\" " "as numbers. No amount of activity will change the value 8 to anything else, " @@ -213,13 +213,13 @@ msgstr "" "nombre 8 en autre chose, et en Python, aucun processus changera la chaîne de " "caractère \"huit\" en autre chose." -#: ../Doc/faq/design.rst:110 +#: faq/design.rst:110 msgid "Why must 'self' be used explicitly in method definitions and calls?" msgstr "" "Pourquoi \"self\" doit-il être explicitement utilisé dans les définitions et " "les appels de méthode ?" -#: ../Doc/faq/design.rst:112 +#: faq/design.rst:112 msgid "" "The idea was borrowed from Modula-3. It turns out to be very useful, for a " "variety of reasons." @@ -227,7 +227,7 @@ msgstr "" "L'idée a été empruntée à Modula-3. Il s'avère être très utile, pour diverses " "raisons." -#: ../Doc/faq/design.rst:115 +#: faq/design.rst:115 msgid "" "First, it's more obvious that you are using a method or instance attribute " "instead of a local variable. Reading ``self.x`` or ``self.meth()`` makes it " @@ -251,7 +251,7 @@ msgstr "" "programmation C++ et Java préfixent les attributs d'instance par ``m_``. " "Cette syntaxe explicite est ainsi utile également pour ces langages." -#: ../Doc/faq/design.rst:125 +#: faq/design.rst:125 msgid "" "Second, it means that no special syntax is necessary if you want to " "explicitly reference or call the method from a particular class. In C++, if " @@ -272,7 +272,7 @@ msgstr "" "étendre la méthode du même nom de la classe de base, devant ainsi appeler la " "méthode de la classe de base d'une certaine manière." -#: ../Doc/faq/design.rst:134 +#: faq/design.rst:134 msgid "" "Finally, for instance variables it solves a syntactic problem with " "assignment: since local variables in Python are (by definition!) those " @@ -305,15 +305,15 @@ msgstr "" "locales et les variables d'instance vivent dans deux différents espaces de " "nommage, et vous devez dire à Python quel espace de nommage utiliser." -#: ../Doc/faq/design.rst:150 +#: faq/design.rst:152 msgid "Why can't I use an assignment in an expression?" msgstr "Pourquoi ne puis-je pas utiliser d'assignation dans une expression ?" -#: ../Doc/faq/design.rst:152 +#: faq/design.rst:154 msgid "Starting in Python 3.8, you can!" msgstr "Depuis Python 3.8, c'est possible !" -#: ../Doc/faq/design.rst:154 +#: faq/design.rst:156 msgid "" "Assignment expressions using the walrus operator `:=` assign a variable in " "an expression::" @@ -321,11 +321,11 @@ msgstr "" "Les expressions d'affectation qui utilisent l'opérateur morse `:=` affectent " "une variable dans une expression ::" -#: ../Doc/faq/design.rst:160 +#: faq/design.rst:162 msgid "See :pep:`572` for more information." msgstr "Voir la :pep:`572` pour plus d'informations." -#: ../Doc/faq/design.rst:165 +#: faq/design.rst:167 msgid "" "Why does Python use methods for some functionality (e.g. list.index()) but " "functions for other (e.g. len(list))?" @@ -333,11 +333,11 @@ msgstr "" "Pourquoi Python utilise des méthodes pour certaines fonctionnalités (ex : " "``list.index()``) mais des fonctions pour d'autres (ex : ``len(list)``) ?" -#: ../Doc/faq/design.rst:167 +#: faq/design.rst:169 msgid "As Guido said:" msgstr "Comme l'a dit Guido :" -#: ../Doc/faq/design.rst:169 +#: faq/design.rst:171 msgid "" "(a) For some operations, prefix notation just reads better than postfix -- " "prefix (and infix!) operations have a long tradition in mathematics which " @@ -352,7 +352,7 @@ msgstr "" "laquelle nous réécrivons une formule comme x*(a+b) en x*a + x*b à la " "lourdeur de faire la même chose avec une notation orientée objet brute." -#: ../Doc/faq/design.rst:176 +#: faq/design.rst:178 msgid "" "(b) When I read code that says len(x) I *know* that it is asking for the " "length of something. This tells me two things: the result is an integer, and " @@ -373,18 +373,18 @@ msgstr "" "``key()``, ou quand un objet qui n'est pas un fichier implémente une méthode " "``write()``." -#: ../Doc/faq/design.rst:203 +#: faq/design.rst:205 msgid "https://mail.python.org/pipermail/python-3000/2006-November/004643.html" msgstr "" "https://mail.python.org/pipermail/python-3000/2006-November/004643.html" -#: ../Doc/faq/design.rst:189 +#: faq/design.rst:191 msgid "Why is join() a string method instead of a list or tuple method?" msgstr "" "Pourquoi ``join()`` est une méthode de chaîne plutôt qu'une de liste ou de " "tuple ?" -#: ../Doc/faq/design.rst:191 +#: faq/design.rst:193 msgid "" "Strings became much more like other standard types starting in Python 1.6, " "when methods were added which give the same functionality that has always " @@ -399,15 +399,15 @@ msgstr "" "largement acceptées, mais celle qui semble rendre certains programmeurs " "inconfortables est ::" -#: ../Doc/faq/design.rst:199 +#: faq/design.rst:201 msgid "which gives the result::" msgstr "qui donne le résultat ::" -#: ../Doc/faq/design.rst:203 +#: faq/design.rst:205 msgid "There are two common arguments against this usage." msgstr "Il y a deux arguments fréquents contre cet usage." -#: ../Doc/faq/design.rst:205 +#: faq/design.rst:207 msgid "" "The first runs along the lines of: \"It looks really ugly using a method of " "a string literal (string constant)\", to which the answer is that it might, " @@ -421,7 +421,7 @@ msgstr "" "fixe. Si la méthode est autorisée sur des noms liés à des chaînes, il n'y a " "pas de raison logique à les rendre indisponibles sur des chaînes littérales." -#: ../Doc/faq/design.rst:211 +#: faq/design.rst:213 msgid "" "The second objection is typically cast as: \"I am really telling a sequence " "to join its members together with a string constant\". Sadly, you aren't. " @@ -432,9 +432,9 @@ msgstr "" "train de dire à une séquence de joindre ses membres avec une constante de " "chaîne\". Malheureusement, vous ne l'êtes pas. Pour quelque raison, il " "semble être bien moins difficile d'avoir :meth:`~str.split` en tant que " -"méthode de chaîne, puisque dans ce cas il est facile de voir que ::" +"méthode de chaîne, puisque dans ce cas il est facile de voir que ::" -#: ../Doc/faq/design.rst:218 +#: faq/design.rst:220 msgid "" "is an instruction to a string literal to return the substrings delimited by " "the given separator (or, by default, arbitrary runs of white space)." @@ -443,7 +443,7 @@ msgstr "" "délimitées par le séparateur fournit (ou, par défaut, les espaces, ou " "groupes d'espaces)." -#: ../Doc/faq/design.rst:221 +#: faq/design.rst:223 msgid "" ":meth:`~str.join` is a string method because in using it you are telling the " "separator string to iterate over a sequence of strings and insert itself " @@ -459,11 +459,11 @@ msgstr "" "même. Des méthodes similaires existent pour des objets ``bytes`` et " "``bytearray``." -#: ../Doc/faq/design.rst:229 +#: faq/design.rst:231 msgid "How fast are exceptions?" msgstr "À quel point les exceptions sont-elles rapides ?" -#: ../Doc/faq/design.rst:231 +#: faq/design.rst:233 msgid "" "A try/except block is extremely efficient if no exceptions are raised. " "Actually catching an exception is expensive. In versions of Python prior to " @@ -474,7 +474,7 @@ msgstr "" "coûteux. Dans les versions de précédant Python 2.0, il était courant " "d'utiliser cette pratique ::" -#: ../Doc/faq/design.rst:241 +#: faq/design.rst:243 msgid "" "This only made sense when you expected the dict to have the key almost all " "the time. If that wasn't the case, you coded it like this::" @@ -483,7 +483,7 @@ msgstr "" "clé presque tout le temps. Si ce n'était pas le cas, vous l'auriez codé " "comme suit ::" -#: ../Doc/faq/design.rst:249 +#: faq/design.rst:251 msgid "" "For this specific case, you could also use ``value = dict.setdefault(key, " "getvalue(key))``, but only if the ``getvalue()`` call is cheap enough " @@ -493,13 +493,13 @@ msgstr "" "getvalue(key))``, mais seulement si l'appel à ``getvalue()`` est " "suffisamment peu coûteux car il est évalué dans tous les cas." -#: ../Doc/faq/design.rst:255 +#: faq/design.rst:257 msgid "Why isn't there a switch or case statement in Python?" msgstr "" "Pourquoi n'y a-t-il pas une instruction *switch* ou une structure similaire " "à *switch / case* en Python ?" -#: ../Doc/faq/design.rst:257 +#: faq/design.rst:259 msgid "" "You can do this easily enough with a sequence of ``if... elif... elif... " "else``. There have been some proposals for switch statement syntax, but " @@ -511,7 +511,7 @@ msgstr "" "l'instruction ``switch``, mais il n'y a pas (encore) de consensus sur le cas " "des intervalles. Voir la :pep:`275` pour tous les détails et l'état actuel." -#: ../Doc/faq/design.rst:262 +#: faq/design.rst:264 msgid "" "For cases where you need to choose from a very large number of " "possibilities, you can create a dictionary mapping case values to functions " @@ -521,7 +521,7 @@ msgstr "" "possibilités, vous pouvez créer un dictionnaire faisant correspondre des " "valeurs à des fonctions à appeler. Par exemple ::" -#: ../Doc/faq/design.rst:276 +#: faq/design.rst:278 msgid "" "For calling methods on objects, you can simplify yet further by using the :" "func:`getattr` built-in to retrieve methods with a particular name::" @@ -530,7 +530,7 @@ msgstr "" "en utilisant la fonction native :func:`getattr` pour récupérer les méthodes " "avec un nom donné ::" -#: ../Doc/faq/design.rst:288 +#: faq/design.rst:290 msgid "" "It's suggested that you use a prefix for the method names, such as " "``visit_`` in this example. Without such a prefix, if values are coming " @@ -542,7 +542,7 @@ msgstr "" "proviennent d'une source non fiable, un attaquant serait en mesure d'appeler " "n'importe quelle méthode sur votre objet." -#: ../Doc/faq/design.rst:294 +#: faq/design.rst:296 msgid "" "Can't you emulate threads in the interpreter instead of relying on an OS-" "specific thread implementation?" @@ -550,7 +550,7 @@ msgstr "" "Est-il possible d'émuler des fils d'exécution dans l'interpréteur plutôt que " "se baser sur les implémentations spécifique aux OS ?" -#: ../Doc/faq/design.rst:296 +#: faq/design.rst:298 msgid "" "Answer 1: Unfortunately, the interpreter pushes at least one C stack frame " "for each Python stack frame. Also, extensions can call back into Python at " @@ -563,7 +563,7 @@ msgstr "" "conséquent, une implémentation complète des fils d'exécution nécessiterai un " "support complet en C." -#: ../Doc/faq/design.rst:301 +#: faq/design.rst:303 msgid "" "Answer 2: Fortunately, there is `Stackless Python `_, which has a completely redesigned " @@ -573,12 +573,12 @@ msgstr "" "stackless-dev/stackless/wiki>`_, qui a complètement ré-architecturé la " "boucle principale de l'interpréteur afin de ne pas utiliser la pile C." -#: ../Doc/faq/design.rst:306 +#: faq/design.rst:308 msgid "Why can't lambda expressions contain statements?" msgstr "" "Pourquoi les expressions lambda ne peuvent pas contenir d'instructions ?" -#: ../Doc/faq/design.rst:308 +#: faq/design.rst:310 msgid "" "Python lambda expressions cannot contain statements because Python's " "syntactic framework can't handle statements nested inside expressions. " @@ -594,7 +594,7 @@ msgstr "" "Python sont seulement une notation concise si vous êtes trop paresseux pour " "définir une fonction." -#: ../Doc/faq/design.rst:314 +#: faq/design.rst:316 msgid "" "Functions are already first class objects in Python, and can be declared in " "a local scope. Therefore the only advantage of using a lambda instead of a " @@ -610,12 +610,12 @@ msgstr "" "variable locale à laquelle est affecté l'objet fonction (qui est exactement " "le même type d'objet qui donne une expression lambda) !" -#: ../Doc/faq/design.rst:322 +#: faq/design.rst:324 msgid "Can Python be compiled to machine code, C or some other language?" msgstr "" "Python peut-il être compilé en code machine, en C ou dans un autre langage ?" -#: ../Doc/faq/design.rst:324 +#: faq/design.rst:326 msgid "" "`Cython `_ compiles a modified version of Python with " "optional annotations into C extensions. `Nuitka `_ " @@ -629,11 +629,11 @@ msgstr "" "langage Python entièrement. Pour compiler en Java, vous pouvez regarder `VOC " "`_." -#: ../Doc/faq/design.rst:332 +#: faq/design.rst:334 msgid "How does Python manage memory?" msgstr "Comment Python gère la mémoire ?" -#: ../Doc/faq/design.rst:334 +#: faq/design.rst:336 msgid "" "The details of Python memory management depend on the implementation. The " "standard implementation of Python, :term:`CPython`, uses reference counting " @@ -652,7 +652,7 @@ msgstr "" "module :mod:`gc` fournit des fonctions pour lancer le ramasse-miettes, " "d'obtenir des statistiques de débogage et ajuster ses paramètres." -#: ../Doc/faq/design.rst:342 +#: faq/design.rst:344 msgid "" "Other implementations (such as `Jython `_ or `PyPy " "`_), however, can rely on a different mechanism such as " @@ -666,7 +666,7 @@ msgstr "" "subtils problèmes de portabilité si votre code Python dépend du comportement " "de l'implémentation du compteur de références." -#: ../Doc/faq/design.rst:348 +#: faq/design.rst:350 msgid "" "In some Python implementations, the following code (which is fine in " "CPython) will probably run out of file descriptors::" @@ -675,7 +675,7 @@ msgstr "" "parfaitement avec *CPython*) aurait probablement manqué de descripteurs de " "fichiers ::" -#: ../Doc/faq/design.rst:355 +#: faq/design.rst:357 msgid "" "Indeed, using CPython's reference counting and destructor scheme, each new " "assignment to *f* closes the previous file. With a traditional GC, however, " @@ -688,7 +688,7 @@ msgstr "" "(et fermés) à intervalles variables et possiblement avec de longs " "intervalles." -#: ../Doc/faq/design.rst:360 +#: faq/design.rst:362 msgid "" "If you want to write code that will work with any Python implementation, you " "should explicitly close the file or use the :keyword:`with` statement; this " @@ -699,12 +699,12 @@ msgstr "" "utiliser l'instruction :keyword:`with` ; ceci fonctionnera indépendamment du " "système de gestion de la mémoire ::" -#: ../Doc/faq/design.rst:370 +#: faq/design.rst:372 msgid "Why doesn't CPython use a more traditional garbage collection scheme?" msgstr "" "Pourquoi CPython n'utilise-il pas un ramasse-miette plus traditionnel ?" -#: ../Doc/faq/design.rst:372 +#: faq/design.rst:374 msgid "" "For one thing, this is not a C standard feature and hence it's not portable. " "(Yes, we know about the Boehm GC library. It has bits of assembler code for " @@ -719,7 +719,7 @@ msgstr "" "transparent, c'est loin d'être le cas, des correctifs sont nécessaires afin " "que Python fonctionne correctement avec.)" -#: ../Doc/faq/design.rst:378 +#: faq/design.rst:380 msgid "" "Traditional GC also becomes a problem when Python is embedded into other " "applications. While in a standalone Python it's fine to replace the " @@ -737,12 +737,12 @@ msgstr "" "fonctionne avec n'importe quelle implémentation correcte de ``malloc()`` et " "``free()``." -#: ../Doc/faq/design.rst:387 +#: faq/design.rst:389 msgid "Why isn't all memory freed when CPython exits?" msgstr "" "Pourquoi toute la mémoire n'est pas libérée lorsque *CPython* s'arrête ?" -#: ../Doc/faq/design.rst:389 +#: faq/design.rst:391 msgid "" "Objects referenced from the global namespaces of Python modules are not " "always deallocated when Python exits. This may happen if there are circular " @@ -759,7 +759,7 @@ msgstr "" "cependant, agressif sur le nettoyage de la mémoire en quittant et cherche à " "détruire chaque objet." -#: ../Doc/faq/design.rst:396 +#: faq/design.rst:398 msgid "" "If you want to force Python to delete certain things on deallocation use " "the :mod:`atexit` module to run a function that will force those deletions." @@ -768,12 +768,12 @@ msgstr "" "utilisez le module :mod:`texit` pour exécuter une fonction qui va forcer ces " "destructions." -#: ../Doc/faq/design.rst:401 +#: faq/design.rst:403 msgid "Why are there separate tuple and list data types?" msgstr "" "Pourquoi les *tuples* et les *list* sont deux types de données séparés ?" -#: ../Doc/faq/design.rst:403 +#: faq/design.rst:405 msgid "" "Lists and tuples, while similar in many respects, are generally used in " "fundamentally different ways. Tuples can be thought of as being similar to " @@ -790,7 +790,7 @@ msgstr "" "un repère cartésien est correctement représenté comme un *tuple* de deux ou " "trois nombres." -#: ../Doc/faq/design.rst:410 +#: faq/design.rst:412 msgid "" "Lists, on the other hand, are more like arrays in other languages. They " "tend to hold a varying number of objects all of which have the same type and " @@ -807,7 +807,7 @@ msgstr "" "problème que vous ajoutiez un ou deux fichiers supplémentaire dans le " "dossier." -#: ../Doc/faq/design.rst:417 +#: faq/design.rst:419 msgid "" "Tuples are immutable, meaning that once a tuple has been created, you can't " "replace any of its elements with a new value. Lists are mutable, meaning " @@ -822,11 +822,11 @@ msgstr "" "utilisés comme clés de dictionnaires, et donc de ``tuple`` et ``list`` seul " "des *tuples* peuvent être utilisés comme clés." -#: ../Doc/faq/design.rst:424 +#: faq/design.rst:426 msgid "How are lists implemented in CPython?" msgstr "Comment les listes sont-elles implémentées dans CPython ?" -#: ../Doc/faq/design.rst:426 +#: faq/design.rst:428 msgid "" "CPython's lists are really variable-length arrays, not Lisp-style linked " "lists. The implementation uses a contiguous array of references to other " @@ -834,12 +834,12 @@ msgid "" "head structure." msgstr "" "Les listes en CPython sont de vrais tableaux de longueur variable " -"contrairement à des listes orientées *Lisp* (i.e des listes chaînées). " +"contrairement à des listes orientées *Lisp* (c.-à-d. des listes chaînées). " "L'implémentation utilise un tableau contigu de références à d'autres objets. " "Elle conserve également un pointeur vers ce tableau et la longueur du " "tableau dans une structure de tête de liste." -#: ../Doc/faq/design.rst:430 +#: faq/design.rst:432 msgid "" "This makes indexing a list ``a[i]`` an operation whose cost is independent " "of the size of the list or the value of the index." @@ -847,7 +847,7 @@ msgstr "" "Cela rend l'indexation d'une liste ``a[i]`` une opération dont le coût est " "indépendant de la taille de la liste ou de la valeur de l'indice." -#: ../Doc/faq/design.rst:433 +#: faq/design.rst:435 msgid "" "When items are appended or inserted, the array of references is resized. " "Some cleverness is applied to improve the performance of appending items " @@ -860,11 +860,11 @@ msgstr "" "être étendu, un certain espace supplémentaire est alloué de sorte que pour " "la prochaine fois, ceci ne nécessite plus un redimensionnement effectif." -#: ../Doc/faq/design.rst:440 +#: faq/design.rst:442 msgid "How are dictionaries implemented in CPython?" msgstr "Comment les dictionnaires sont-ils implémentés dans CPython ?" -#: ../Doc/faq/design.rst:442 +#: faq/design.rst:444 msgid "" "CPython's dictionaries are implemented as resizable hash tables. Compared " "to B-trees, this gives better performance for lookup (the most common " @@ -876,7 +876,7 @@ msgstr "" "performances pour la recherche (l'opération la plus courante de loin) dans " "la plupart des circonstances, et leur implémentation est plus simple." -#: ../Doc/faq/design.rst:446 +#: faq/design.rst:448 msgid "" "Dictionaries work by computing a hash code for each key stored in the " "dictionary using the :func:`hash` built-in function. The hash code varies " @@ -901,11 +901,11 @@ msgstr "" "temps pour récupérer une clé est constant -- O(1), en notation grand O de " "Landau." -#: ../Doc/faq/design.rst:457 +#: faq/design.rst:459 msgid "Why must dictionary keys be immutable?" msgstr "Pourquoi les clés du dictionnaire sont immuables ?" -#: ../Doc/faq/design.rst:459 +#: faq/design.rst:461 msgid "" "The hash table implementation of dictionaries uses a hash value calculated " "from the key value to find the key. If the key were a mutable object, its " @@ -928,7 +928,7 @@ msgstr "" "chercher l'ancienne valeur, elle serait également introuvable car la valeur " "de l'objet trouvé dans cet emplacement de hachage serait différente." -#: ../Doc/faq/design.rst:468 +#: faq/design.rst:470 msgid "" "If you want a dictionary indexed with a list, simply convert the list to a " "tuple first; the function ``tuple(L)`` creates a tuple with the same entries " @@ -940,11 +940,11 @@ msgstr "" "*tuple* avec les mêmes entrées que la liste ``L``. Les *tuples* sont " "immuables et peuvent donc être utilisés comme clés du dictionnaire." -#: ../Doc/faq/design.rst:472 +#: faq/design.rst:474 msgid "Some unacceptable solutions that have been proposed:" msgstr "Certaines solutions insatisfaisantes qui ont été proposées :" -#: ../Doc/faq/design.rst:474 +#: faq/design.rst:476 msgid "" "Hash lists by their address (object ID). This doesn't work because if you " "construct a new list with the same value it won't be found; e.g.::" @@ -953,7 +953,7 @@ msgstr "" "fonctionne pas parce que si vous créez une nouvelle liste avec la même " "valeur, elle ne sera pas retrouvée; par exemple ::" -#: ../Doc/faq/design.rst:480 +#: faq/design.rst:482 msgid "" "would raise a :exc:`KeyError` exception because the id of the ``[1, 2]`` " "used in the second line differs from that in the first line. In other " @@ -965,7 +965,7 @@ msgstr "" "termes, les clés de dictionnaire doivent être comparées à l'aide du " "comparateur ``==`` et non à l'aide du mot clé :keyword:`is`." -#: ../Doc/faq/design.rst:484 +#: faq/design.rst:486 msgid "" "Make a copy when using a list as a key. This doesn't work because the list, " "being a mutable object, could contain a reference to itself, and then the " @@ -976,7 +976,7 @@ msgstr "" "une référence à elle-même ou avoir une boucle infinie au niveau du code " "copié." -#: ../Doc/faq/design.rst:488 +#: faq/design.rst:490 msgid "" "Allow lists as keys but tell the user not to modify them. This would allow " "a class of hard-to-track bugs in programs when you forgot or modified a list " @@ -989,7 +989,7 @@ msgstr "" "accident. Cela casse également un impératif important des dictionnaires : " "chaque valeur de ``d.keys()`` est utilisable comme clé du dictionnaire." -#: ../Doc/faq/design.rst:493 +#: faq/design.rst:495 msgid "" "Mark lists as read-only once they are used as a dictionary key. The problem " "is that it's not just the top-level object that could change its value; you " @@ -1007,7 +1007,7 @@ msgstr "" "encore une fois, les objets se faisant référence pourraient provoquer une " "boucle infinie." -#: ../Doc/faq/design.rst:499 +#: faq/design.rst:501 msgid "" "There is a trick to get around this if you need to, but use it at your own " "risk: You can wrap a mutable structure inside a class instance which has " @@ -1022,9 +1022,9 @@ msgstr "" "`__eq__` et :meth:`__hash__`. Vous devez ensuite vous assurer que la valeur " "de hachage pour tous ces objets *wrapper* qui résident dans un dictionnaire " "(ou une autre structure basée sur le hachage), restent fixes pendant que " -"l'objet est dans le dictionnaire (ou une autre structure). ::" +"l'objet est dans le dictionnaire (ou une autre structure). ::" -#: ../Doc/faq/design.rst:523 +#: faq/design.rst:525 msgid "" "Note that the hash computation is complicated by the possibility that some " "members of the list may be unhashable and also by the possibility of " @@ -1034,7 +1034,7 @@ msgstr "" "certains membres de la liste peuvent être impossible à hacher et aussi par " "la possibilité de débordement arithmétique." -#: ../Doc/faq/design.rst:527 +#: faq/design.rst:529 msgid "" "Furthermore it must always be the case that if ``o1 == o2`` (ie ``o1." "__eq__(o2) is True``) then ``hash(o1) == hash(o2)`` (ie, ``o1.__hash__() == " @@ -1048,7 +1048,7 @@ msgstr "" "ne remplissez pas ces conditions, les dictionnaires et autres structures " "basées sur le hachage se comporteront mal." -#: ../Doc/faq/design.rst:532 +#: faq/design.rst:534 msgid "" "In the case of ListWrapper, whenever the wrapper object is in a dictionary " "the wrapped list must not change to avoid anomalies. Don't do this unless " @@ -1061,11 +1061,11 @@ msgstr "" "conséquences de ne pas satisfaire entièrement ces conditions. Vous avez été " "prévenus." -#: ../Doc/faq/design.rst:539 +#: faq/design.rst:541 msgid "Why doesn't list.sort() return the sorted list?" msgstr "Pourquoi ``list.sort()`` ne renvoie pas la liste triée ?" -#: ../Doc/faq/design.rst:541 +#: faq/design.rst:543 msgid "" "In situations where performance matters, making a copy of the list just to " "sort it would be wasteful. Therefore, :meth:`list.sort` sorts the list in " @@ -1081,7 +1081,7 @@ msgstr "" "accidentellement une liste lorsque vous avez besoin d’une copie triée, mais " "vous devrez également garder sous la main la version non triée." -#: ../Doc/faq/design.rst:547 +#: faq/design.rst:549 msgid "" "If you want to return a new list, use the built-in :func:`sorted` function " "instead. This function creates a new list from a provided iterable, sorts " @@ -1093,13 +1093,13 @@ msgstr "" "itérable fourni, la trie et la retourne. Par exemple, voici comment itérer " "sur les clefs d’un dictionnaire dans l’ordre trié ::" -#: ../Doc/faq/design.rst:557 +#: faq/design.rst:559 msgid "How do you specify and enforce an interface spec in Python?" msgstr "" "Comment spécifiez-vous et appliquez-vous une spécification d’interface en " "Python ?" -#: ../Doc/faq/design.rst:559 +#: faq/design.rst:561 msgid "" "An interface specification for a module as provided by languages such as C++ " "and Java describes the prototypes for the methods and functions of the " @@ -1111,7 +1111,7 @@ msgstr "" "module. Beaucoup estiment que la vérification au moment de la compilation " "des spécifications d'interface aide à la construction de grands programmes." -#: ../Doc/faq/design.rst:564 +#: faq/design.rst:566 msgid "" "Python 2.6 adds an :mod:`abc` module that lets you define Abstract Base " "Classes (ABCs). You can then use :func:`isinstance` and :func:`issubclass` " @@ -1128,18 +1128,15 @@ msgstr "" "Iterable`, :class:`~collections.abc.Container` et :class:`collections.abc." "MutableMapping`." -#: ../Doc/faq/design.rst:571 +#: faq/design.rst:573 msgid "" "For Python, many of the advantages of interface specifications can be " -"obtained by an appropriate test discipline for components. There is also a " -"tool, PyChecker, which can be used to find problems due to subclassing." +"obtained by an appropriate test discipline for components." msgstr "" "Pour Python, la plupart des avantages des spécifications d'interface peuvent " -"être obtenus par une discipline de test appropriée pour les composants. Il " -"existe aussi un outil, PyChecker, qui peut être utilisé pour trouver des " -"problèmes d'héritage." +"être obtenus par une discipline de test appropriée pour les composants." -#: ../Doc/faq/design.rst:575 +#: faq/design.rst:576 msgid "" "A good test suite for a module can both provide a regression test and serve " "as a module interface specification and a set of examples. Many Python " @@ -1160,7 +1157,7 @@ msgstr "" "test tiers peuvent être utilisés pour construire des suites de tests " "exhaustives qui éprouvent chaque ligne de code dans un module." -#: ../Doc/faq/design.rst:583 +#: faq/design.rst:584 msgid "" "An appropriate testing discipline can help build large complex applications " "in Python as well as having interface specifications would. In fact, it can " @@ -1180,7 +1177,7 @@ msgstr "" "réellement le faire correctement, mais il est trivial de vérifier cette " "propriété dans une suite de tests." -#: ../Doc/faq/design.rst:591 +#: faq/design.rst:592 msgid "" "Writing test suites is very helpful, and you might want to design your code " "with an eye to making it easily tested. One increasingly popular technique, " @@ -1195,24 +1192,41 @@ msgstr "" "le code réel. Bien sûr, Python vous permet d'être laxiste et de ne pas " "écrire de test du tout." -#: ../Doc/faq/design.rst:599 +#: faq/design.rst:600 msgid "Why is there no goto?" msgstr "Pourquoi n'y a-t-il pas de ``goto`` en Python ?" -#: ../Doc/faq/design.rst:601 +#: faq/design.rst:602 msgid "" -"You can use exceptions to provide a \"structured goto\" that even works " +"In the 1970s people realized that unrestricted goto could lead to messy " +"\"spaghetti\" code that was hard to understand and revise. In a high-level " +"language, it is also unneeded as long as there are ways to branch (in " +"Python, with ``if`` statements and ``or``, ``and``, and ``if-else`` " +"expressions) and loop (with ``while`` and ``for`` statements, possibly " +"containing ``continue`` and ``break``)." +msgstr "" +"Dans les années 1970, les gens se sont aperçus que le foisonnement de *goto* " +"conduisait à du code « spaghetti » difficile à comprendre et à modifier. " +"Dans les langages de haut niveau, c'est d'autant moins nécessaire qu'il " +"existe différentes manières de créer des branches (en Python, les " +"instructions ``if`` et les expressions ``or``, ``and`` et ``if-else``) et de " +"boucler (avec les instructions ``while`` et ``for``, qui peuvent contenir " +"des ``continue`` et ``break``)." + +#: faq/design.rst:609 +msgid "" +"One can also use exceptions to provide a \"structured goto\" that works even " "across function calls. Many feel that exceptions can conveniently emulate " "all reasonable uses of the \"go\" or \"goto\" constructs of C, Fortran, and " "other languages. For example::" msgstr "" -"Vous pouvez utiliser les exceptions afin de mettre en place un \"``goto`` " -"structuré\" qui fonctionne même avec les appels de fonctions. Beaucoup de " -"personnes estiment que les exceptions peuvent émuler idéalement tout " -"utilisation raisonnable des constructions ``go`` ou ``goto`` en C, en " -"Fortran ou autres langages de programmation. Par exemple ::" +"Vous pouvez utiliser les exceptions afin de mettre en place un « *goto* " +"structuré » qui fonctionne même à travers les appels de fonctions. Beaucoup " +"de personnes estiment que les exceptions sont une façon commode d'émuler " +"l'utilisation raisonnable des constructions *go* ou *goto* du C, du Fortran " +"ou d'autres langages de programmation. Par exemple ::" -#: ../Doc/faq/design.rst:616 +#: faq/design.rst:625 msgid "" "This doesn't allow you to jump into the middle of a loop, but that's usually " "considered an abuse of goto anyway. Use sparingly." @@ -1221,13 +1235,13 @@ msgstr "" "tous les cas cela est généralement considéré comme un abus de ``goto``. À " "Utiliser avec parcimonie." -#: ../Doc/faq/design.rst:621 +#: faq/design.rst:630 msgid "Why can't raw strings (r-strings) end with a backslash?" msgstr "" "Pourquoi les chaînes de caractères brutes (r-strings) ne peuvent-elles pas " "se terminer par un *backslash* ?" -#: ../Doc/faq/design.rst:623 +#: faq/design.rst:632 msgid "" "More precisely, they can't end with an odd number of backslashes: the " "unpaired backslash at the end escapes the closing quote character, leaving " @@ -1237,7 +1251,7 @@ msgstr "" "*backslashes* : le *backslash* non appairé à la fin échappe le caractère de " "guillemet final, laissant une chaîne non terminée." -#: ../Doc/faq/design.rst:627 +#: faq/design.rst:636 msgid "" "Raw strings were designed to ease creating input for processors (chiefly " "regular expression engines) that want to do their own backslash escape " @@ -1255,29 +1269,29 @@ msgstr "" "chaîne en l'échappant avec un *antislash*. Ces règles fonctionnent bien " "lorsque les chaînes brutes sont utilisées pour leur but premier." -#: ../Doc/faq/design.rst:634 +#: faq/design.rst:643 msgid "" "If you're trying to build Windows pathnames, note that all Windows system " "calls accept forward slashes too::" msgstr "" "Si vous essayez de construire des chemins d'accès Windows, notez que tous " -"les appels système Windows acceptent également les *slashes* \"classiques" -"\" ::" +"les appels système Windows acceptent également les *slashes* " +"\"classiques\" ::" -#: ../Doc/faq/design.rst:639 +#: faq/design.rst:648 msgid "" "If you're trying to build a pathname for a DOS command, try e.g. one of ::" msgstr "" "Si vous essayez de construire un chemin d'accès pour une commande DOS, " -"essayez par exemple l'un de ceux-là ::" +"essayez par exemple l'un de ceux-là ::" -#: ../Doc/faq/design.rst:647 +#: faq/design.rst:656 msgid "Why doesn't Python have a \"with\" statement for attribute assignments?" msgstr "" "Pourquoi la déclaration ``with`` pour les assignations d'attributs n'existe " "pas en Python ?" -#: ../Doc/faq/design.rst:649 +#: faq/design.rst:658 msgid "" "Python has a 'with' statement that wraps the execution of a block, calling " "code on the entrance and exit from the block. Some language have a " @@ -1287,11 +1301,11 @@ msgstr "" "appelant le code sur l'entrée et la sortie du bloc. Certains langages " "possèdent une construction qui ressemble à ceci ::" -#: ../Doc/faq/design.rst:657 +#: faq/design.rst:666 msgid "In Python, such a construct would be ambiguous." msgstr "En Python, une telle construction serait ambiguë." -#: ../Doc/faq/design.rst:659 +#: faq/design.rst:668 msgid "" "Other languages, such as Object Pascal, Delphi, and C++, use static types, " "so it's possible to know, in an unambiguous way, what member is being " @@ -1304,7 +1318,7 @@ msgstr "" "statique --le compilateur connaît *toujours* la portée de toutes les " "variables au moment de la compilation." -#: ../Doc/faq/design.rst:664 +#: faq/design.rst:673 msgid "" "Python uses dynamic types. It is impossible to know in advance which " "attribute will be referenced at runtime. Member attributes may be added or " @@ -1318,11 +1332,11 @@ msgstr "" "impossible de savoir, d'une simple lecture, quel attribut est référencé : " "s'il est local, global ou un attribut membre?" -#: ../Doc/faq/design.rst:670 +#: faq/design.rst:679 msgid "For instance, take the following incomplete snippet::" msgstr "Prenons par exemple l'extrait incomplet suivant ::" -#: ../Doc/faq/design.rst:676 +#: faq/design.rst:685 msgid "" "The snippet assumes that \"a\" must have a member attribute called \"x\". " "However, there is nothing in Python that tells the interpreter this. What " @@ -1336,7 +1350,7 @@ msgstr "" "\"x\" existe, sera-t-elle utilisée dans le bloc ``with`` ? Comme vous " "voyez, la nature dynamique du Python rend ces choix beaucoup plus difficiles." -#: ../Doc/faq/design.rst:682 +#: faq/design.rst:691 msgid "" "The primary benefit of \"with\" and similar language features (reduction of " "code volume) can, however, easily be achieved in Python by assignment. " @@ -1346,11 +1360,11 @@ msgstr "" "similaires (réduction du volume de code) peut, cependant, être facilement " "réalisé en Python par assignation. Au lieu de ::" -#: ../Doc/faq/design.rst:689 +#: faq/design.rst:698 msgid "write this::" msgstr "écrivez ceci ::" -#: ../Doc/faq/design.rst:696 +#: faq/design.rst:705 msgid "" "This also has the side-effect of increasing execution speed because name " "bindings are resolved at run-time in Python, and the second version only " @@ -1360,13 +1374,13 @@ msgstr "" "car les liaisons de noms sont résolues au moment de l'exécution en Python, " "et la deuxième version n'a besoin d'exécuter la résolution qu'une seule fois." -#: ../Doc/faq/design.rst:702 +#: faq/design.rst:711 msgid "Why are colons required for the if/while/def/class statements?" msgstr "" "Pourquoi les deux-points sont-ils nécessaires pour les déclarations ``if/" "while/def/class`` ?" -#: ../Doc/faq/design.rst:704 +#: faq/design.rst:713 msgid "" "The colon is required primarily to enhance readability (one of the results " "of the experimental ABC language). Consider this::" @@ -1374,11 +1388,11 @@ msgstr "" "Le deux-points est principalement nécessaires pour améliorer la lisibilité " "(l'un des résultats du langage expérimental ABC). Considérez ceci ::" -#: ../Doc/faq/design.rst:710 +#: faq/design.rst:719 msgid "versus ::" -msgstr "versus ::" +msgstr "versus ::" -#: ../Doc/faq/design.rst:715 +#: faq/design.rst:724 msgid "" "Notice how the second one is slightly easier to read. Notice further how a " "colon sets off the example in this FAQ answer; it's a standard usage in " @@ -1388,7 +1402,7 @@ msgstr "" "aussi comment un deux-points introduit l'exemple dans cette réponse à la " "FAQ ; c'est un usage standard en anglais." -#: ../Doc/faq/design.rst:718 +#: faq/design.rst:727 msgid "" "Another minor reason is that the colon makes it easier for editors with " "syntax highlighting; they can look for colons to decide when indentation " @@ -1400,12 +1414,12 @@ msgstr "" "pour décider quand l'indentation doit être augmentée au lieu d'avoir à faire " "une analyse plus élaborée du texte du programme." -#: ../Doc/faq/design.rst:724 +#: faq/design.rst:733 msgid "Why does Python allow commas at the end of lists and tuples?" msgstr "" "Pourquoi Python permet-il les virgules à la fin des listes et des tuples ?" -#: ../Doc/faq/design.rst:726 +#: faq/design.rst:735 msgid "" "Python lets you add a trailing comma at the end of lists, tuples, and " "dictionaries::" @@ -1413,11 +1427,11 @@ msgstr "" "Python vous permet d'ajouter une virgule à la fin des listes, des tuples et " "des dictionnaires ::" -#: ../Doc/faq/design.rst:737 +#: faq/design.rst:746 msgid "There are several reasons to allow this." msgstr "Il y a plusieurs raisons d'accepter cela." -#: ../Doc/faq/design.rst:739 +#: faq/design.rst:748 msgid "" "When you have a literal value for a list, tuple, or dictionary spread across " "multiple lines, it's easier to add more elements because you don't have to " @@ -1430,7 +1444,7 @@ msgstr "" "virgule à la ligne précédente. Les lignes peuvent aussi être réorganisées " "sans créer une erreur de syntaxe." -#: ../Doc/faq/design.rst:744 +#: faq/design.rst:753 msgid "" "Accidentally omitting the comma can lead to errors that are hard to " "diagnose. For example::" @@ -1438,7 +1452,7 @@ msgstr "" "L'omission accidentelle de la virgule peut entraîner des erreurs difficiles " "à diagnostiquer, par exemple ::" -#: ../Doc/faq/design.rst:754 +#: faq/design.rst:763 msgid "" "This list looks like it has four elements, but it actually contains three: " "\"fee\", \"fiefoo\" and \"fum\". Always adding the comma avoids this source " @@ -1448,7 +1462,7 @@ msgstr "" "trois : \"*fee*\", \"*fiefoo*\" et \"*fum*\". Toujours ajouter la virgule " "permet d'éviter cette source d'erreur." -#: ../Doc/faq/design.rst:757 +#: faq/design.rst:766 msgid "" "Allowing the trailing comma may also make programmatic code generation " "easier." diff --git a/faq/extending.po b/faq/extending.po index 78115fcd97..f60850d33b 100644 --- a/faq/extending.po +++ b/faq/extending.po @@ -5,28 +5,29 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-15 18:54+0100\n" -"PO-Revision-Date: 2018-02-15 00:37+0100\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2020-05-23 11:38+0200\n" +"PO-Revision-Date: 2020-03-03 19:27+0100\n" +"Last-Translator: ZepmanBC \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.3\n" -#: ../Doc/faq/extending.rst:3 +#: faq/extending.rst:3 msgid "Extending/Embedding FAQ" msgstr "FAQ extension/intégration" -#: ../Doc/faq/extending.rst:6 +#: faq/extending.rst:6 msgid "Contents" msgstr "Sommaire" -#: ../Doc/faq/extending.rst:16 +#: faq/extending.rst:16 msgid "Can I create my own functions in C?" msgstr "Puis-je créer mes propres fonctions en C ?" -#: ../Doc/faq/extending.rst:18 +#: faq/extending.rst:18 msgid "" "Yes, you can create built-in modules containing functions, variables, " "exceptions and even new types in C. This is explained in the document :ref:" @@ -36,22 +37,22 @@ msgstr "" "variables, des exceptions et même de nouveaux types en C. Ceci est expliqué " "dans le document :ref:`extending-index`." -#: ../Doc/faq/extending.rst:22 +#: faq/extending.rst:22 msgid "Most intermediate or advanced Python books will also cover this topic." msgstr "" "La plupart des livres Python intermédiaires ou avancés couvrent également ce " "sujet." -#: ../Doc/faq/extending.rst:26 +#: faq/extending.rst:26 msgid "Can I create my own functions in C++?" msgstr "Puis-je créer mes propres fonctions en C++ ?" -#: ../Doc/faq/extending.rst:28 +#: faq/extending.rst:28 msgid "" -"Yes, using the C compatibility features found in C++. Place ``extern \"C" -"\" { ... }`` around the Python include files and put ``extern \"C\"`` before " -"each function that is going to be called by the Python interpreter. Global " -"or static C++ objects with constructors are probably not a good idea." +"Yes, using the C compatibility features found in C++. Place ``extern " +"\"C\" { ... }`` around the Python include files and put ``extern \"C\"`` " +"before each function that is going to be called by the Python interpreter. " +"Global or static C++ objects with constructors are probably not a good idea." msgstr "" "Oui, en utilisant les fonctionnalités de compatibilité C existantes en C++. " "Placez ``extern \"C\" { ... }`` autour des fichiers Python inclus et mettez " @@ -59,11 +60,11 @@ msgstr "" "l'interpréteur Python. Les objets C++ globaux ou statiques avec les " "constructeurs ne sont probablement pas une bonne idée." -#: ../Doc/faq/extending.rst:37 +#: faq/extending.rst:37 msgid "Writing C is hard; are there any alternatives?" msgstr "Écrire directement en C est difficile ; existe-t-il des alternatives ?" -#: ../Doc/faq/extending.rst:39 +#: faq/extending.rst:39 msgid "" "There are a number of alternatives to writing your own C extensions, " "depending on what you're trying to do." @@ -71,7 +72,7 @@ msgstr "" "Il y a un certain nombre de solutions existantes qui vous permettent " "d'écrire vos propres extensions C, selon ce que vous essayez de faire." -#: ../Doc/faq/extending.rst:44 +#: faq/extending.rst:44 msgid "" "`Cython `_ and its relative `Pyrex `_ are compilers that accept a " @@ -85,7 +86,7 @@ msgstr "" "correspondant. Cython et Pyrex permettent d'écrire une extension sans avoir " "à connaître l'API C de Python." -#: ../Doc/faq/extending.rst:50 +#: faq/extending.rst:50 msgid "" "If you need to interface to some C or C++ library for which no Python " "extension currently exists, you can try wrapping the library's data types " @@ -104,12 +105,12 @@ msgstr "" "`Weave `_ sont également des alternatives " "pour encapsuler des bibliothèques C++." -#: ../Doc/faq/extending.rst:61 +#: faq/extending.rst:61 msgid "How can I execute arbitrary Python statements from C?" msgstr "" "Comment puis-je exécuter des instructions quelconques Python à partir de C ?" -#: ../Doc/faq/extending.rst:63 +#: faq/extending.rst:63 msgid "" "The highest-level function to do this is :c:func:`PyRun_SimpleString` which " "takes a single string argument to be executed in the context of the module " @@ -126,12 +127,12 @@ msgstr "" "`PyRun_String` ; voir le code source pour :c:func:`PyRun_SimpleString` dans " "``Python/pythonrun.c``." -#: ../Doc/faq/extending.rst:72 +#: faq/extending.rst:72 msgid "How can I evaluate an arbitrary Python expression from C?" msgstr "" "Comment puis-je évaluer une expression quelconque de Python à partir de C ?" -#: ../Doc/faq/extending.rst:74 +#: faq/extending.rst:74 msgid "" "Call the function :c:func:`PyRun_String` from the previous question with the " "start symbol :c:data:`Py_eval_input`; it parses an expression, evaluates it " @@ -141,11 +142,11 @@ msgstr "" "symbole de départ :c:data:`Py_eval_input` ; il analyse une expression, " "l'évalue et renvoie sa valeur." -#: ../Doc/faq/extending.rst:80 +#: faq/extending.rst:80 msgid "How do I extract C values from a Python object?" msgstr "Comment puis-je extraire des donnés en C d'un objet Python ?" -#: ../Doc/faq/extending.rst:82 +#: faq/extending.rst:82 msgid "" "That depends on the object's type. If it's a tuple, :c:func:`PyTuple_Size` " "returns its length and :c:func:`PyTuple_GetItem` returns the item at a " @@ -157,7 +158,7 @@ msgstr "" "spécifié. Les listes ont des fonctions similaires, :c:func:`PyListSize` et :" "c:func:`PyList_GetItem`." -#: ../Doc/faq/extending.rst:87 +#: faq/extending.rst:87 msgid "" "For bytes, :c:func:`PyBytes_Size` returns its length and :c:func:" "`PyBytes_AsStringAndSize` provides a pointer to its value and its length. " @@ -169,18 +170,17 @@ msgstr "" "Notez que les objets bytes en Python peuvent contenir des valeurs nulles, " "c'est pourquoi il ne faut pas utiliser la fonction C :c:func:`strlen`." -#: ../Doc/faq/extending.rst:92 -#, fuzzy +#: faq/extending.rst:92 msgid "" "To test the type of an object, first make sure it isn't ``NULL``, and then " "use :c:func:`PyBytes_Check`, :c:func:`PyTuple_Check`, :c:func:" "`PyList_Check`, etc." msgstr "" -"Pour tester le type d'un objet, assurez-vous d'abord qu'il n'est pas *NULL*, " -"puis utilisez :c:func:`PyBytes_Check`, :c:func:`PyTuple_Check`, :c:func:" -"`PyList_Check`, etc." +"Pour tester le type d'un objet, assurez-vous d'abord qu'il ne soit pas " +"``NULL``, puis utilisez :c:func:`PyBytes_Check`, :c:func:`PyTuple_Check`, :c:" +"func:`PyList_Check`, etc." -#: ../Doc/faq/extending.rst:95 +#: faq/extending.rst:95 msgid "" "There is also a high-level API to Python objects which is provided by the so-" "called 'abstract' interface -- read ``Include/abstract.h`` for further " @@ -197,20 +197,20 @@ msgstr "" "tels que les nombres (:c:func:`PyNumber_Index` et autres) et les " "correspondances dans les APIs PyMapping." -#: ../Doc/faq/extending.rst:104 +#: faq/extending.rst:104 msgid "How do I use Py_BuildValue() to create a tuple of arbitrary length?" msgstr "" "Comment utiliser Py_BuildValue() pour créer un tuple de longueur définie ?" -#: ../Doc/faq/extending.rst:106 +#: faq/extending.rst:106 msgid "You can't. Use :c:func:`PyTuple_Pack` instead." msgstr "Vous ne pouvez pas. Utilisez :c:func:`PyTuple_Pack` à la place." -#: ../Doc/faq/extending.rst:110 +#: faq/extending.rst:110 msgid "How do I call an object's method from C?" msgstr "Comment puis-je appeler la méthode d'un objet à partir de C ?" -#: ../Doc/faq/extending.rst:112 +#: faq/extending.rst:112 msgid "" "The :c:func:`PyObject_CallMethod` function can be used to call an arbitrary " "method of an object. The parameters are the object, the name of the method " @@ -222,7 +222,7 @@ msgstr "" "appeler, une chaîne de caractères comme celle utilisée pour :c:func:" "`Py_BuildValue` et les valeurs des arguments ::" -#: ../Doc/faq/extending.rst:121 +#: faq/extending.rst:121 msgid "" "This works for any object that has methods -- whether built-in or user-" "defined. You are responsible for eventually :c:func:`Py_DECREF`\\ 'ing the " @@ -232,7 +232,7 @@ msgstr "" "intégrées ou définies par l'utilisateur. Vous êtes responsable de « :c:func:" "`Py_DECREF`\\ *er* » la valeur de retour à la fin." -#: ../Doc/faq/extending.rst:124 +#: faq/extending.rst:124 msgid "" "To call, e.g., a file object's \"seek\" method with arguments 10, 0 " "(assuming the file object pointer is \"f\")::" @@ -240,7 +240,7 @@ msgstr "" "Pour appeler, p. ex., la méthode *seek* d'un objet *file* avec les arguments " "10, 0 (en supposant que le pointeur de l'objet fichier est *f*) ::" -#: ../Doc/faq/extending.rst:135 +#: faq/extending.rst:135 msgid "" "Note that since :c:func:`PyObject_CallObject` *always* wants a tuple for the " "argument list, to call a function without arguments, pass \"()\" for the " @@ -252,7 +252,7 @@ msgstr "" "\"()\" pour être conforme au type et, pour appeler une fonction avec un " "paramètre, entourez-le de parenthèses, p. ex. \"(i)\"." -#: ../Doc/faq/extending.rst:142 +#: faq/extending.rst:142 msgid "" "How do I catch the output from PyErr_Print() (or anything that prints to " "stdout/stderr)?" @@ -260,7 +260,7 @@ msgstr "" "Comment puis-je récupérer la sortie de ``PyErr_Print()`` (ou tout ce qui " "s'affiche sur *stdout*/*stderr*) ?" -#: ../Doc/faq/extending.rst:144 +#: faq/extending.rst:144 msgid "" "In Python code, define an object that supports the ``write()`` method. " "Assign this object to :data:`sys.stdout` and :data:`sys.stderr`. Call " @@ -273,25 +273,25 @@ msgstr "" "remontée des erreurs fonctionne. Ensuite, la sortie sera dirigée vers " "l'endroit où votre méthode ``write()`` écrit." -#: ../Doc/faq/extending.rst:149 +#: faq/extending.rst:149 msgid "The easiest way to do this is to use the :class:`io.StringIO` class:" msgstr "" "La façon la plus simple consiste à utiliser la classe :class:`io.StringIO` :" -#: ../Doc/faq/extending.rst:161 +#: faq/extending.rst:161 msgid "A custom object to do the same would look like this:" msgstr "" "Le code d'un objet à la fonctionnalité similaire ressemblerait à ceci :" -#: ../Doc/faq/extending.rst:182 +#: faq/extending.rst:182 msgid "How do I access a module written in Python from C?" msgstr "Comment accéder à un module écrit en Python à partir de C ?" -#: ../Doc/faq/extending.rst:184 +#: faq/extending.rst:184 msgid "You can get a pointer to the module object as follows::" msgstr "Vous pouvez obtenir un pointeur sur l'objet module comme suit ::" -#: ../Doc/faq/extending.rst:188 +#: faq/extending.rst:188 msgid "" "If the module hasn't been imported yet (i.e. it is not yet present in :data:" "`sys.modules`), this initializes the module; otherwise it simply returns the " @@ -306,7 +306,7 @@ msgstr "" "seulement qu'il a été initialisé et qu'il est stocké dans :data:`sys." "modules`." -#: ../Doc/faq/extending.rst:194 +#: faq/extending.rst:194 msgid "" "You can then access the module's attributes (i.e. any name defined in the " "module) as follows::" @@ -314,7 +314,7 @@ msgstr "" "Vous pouvez alors accéder aux attributs du module (c.-à-d. à tout nom défini " "dans le module) comme suit ::" -#: ../Doc/faq/extending.rst:199 +#: faq/extending.rst:199 msgid "" "Calling :c:func:`PyObject_SetAttrString` to assign to variables in the " "module also works." @@ -322,11 +322,11 @@ msgstr "" "Appeler :c:func:`PyObject_SetAttrString` pour assigner des valeurs aux " "variables du module fonctionne également." -#: ../Doc/faq/extending.rst:204 +#: faq/extending.rst:204 msgid "How do I interface to C++ objects from Python?" msgstr "Comment s'interfacer avec les objets C++ depuis Python ?" -#: ../Doc/faq/extending.rst:206 +#: faq/extending.rst:206 msgid "" "Depending on your requirements, there are many approaches. To do this " "manually, begin by reading :ref:`the \"Extending and Embedding\" document " @@ -336,23 +336,23 @@ msgid "" "work for C++ objects." msgstr "" "Selon vos besoins, de nombreuses approches sont possibles. Pour le faire " -"manuellement, commencez par lire :ref:`le document \"Extension et intégration" -"\" `. Sachez que pour le système d'exécution Python, il n'y " -"a pas beaucoup de différence entre C et C++ — donc la méthode pour " -"construire un nouveau type Python à partir d'une structure C (pointeur) " +"manuellement, commencez par lire :ref:`le document \"Extension et " +"intégration\" `. Sachez que pour le système d'exécution " +"Python, il n'y a pas beaucoup de différence entre C et C++ — donc la méthode " +"pour construire un nouveau type Python à partir d'une structure C (pointeur) " "fonctionne également avec des objets en C++." -#: ../Doc/faq/extending.rst:212 +#: faq/extending.rst:212 msgid "For C++ libraries, see :ref:`c-wrapper-software`." msgstr "Pour les bibliothèques C++, voir :ref:`c-wrapper-software`." -#: ../Doc/faq/extending.rst:216 +#: faq/extending.rst:216 msgid "I added a module using the Setup file and the make fails; why?" msgstr "" "J'ai ajouté un module en utilisant le fichier *Setup* et la compilation " "échoue ; pourquoi ?" -#: ../Doc/faq/extending.rst:218 +#: faq/extending.rst:218 msgid "" "Setup must end in a newline, if there is no newline there, the build process " "fails. (Fixing this requires some ugly shell script hackery, and this bug " @@ -363,11 +363,11 @@ msgstr "" "en bidouillant un script shell, et ce bogue est si mineur qu'il ne mérite " "pas qu'on s'y attarde)." -#: ../Doc/faq/extending.rst:224 +#: faq/extending.rst:224 msgid "How do I debug an extension?" msgstr "Comment déboguer une extension ?" -#: ../Doc/faq/extending.rst:226 +#: faq/extending.rst:226 msgid "" "When using GDB with dynamically loaded extensions, you can't set a " "breakpoint in your extension until your extension is loaded." @@ -376,16 +376,16 @@ msgstr "" "ne pouvez pas placer de point d'arrêt dans votre extension tant que celle-ci " "n'est pas chargée." -#: ../Doc/faq/extending.rst:229 +#: faq/extending.rst:229 msgid "In your ``.gdbinit`` file (or interactively), add the command:" msgstr "" "Dans votre fichier ``.gdbinit`` (ou manuellement), ajoutez la commande :" -#: ../Doc/faq/extending.rst:235 +#: faq/extending.rst:235 msgid "Then, when you run GDB:" msgstr "Ensuite, lorsque vous exécutez GDB :" -#: ../Doc/faq/extending.rst:247 +#: faq/extending.rst:247 msgid "" "I want to compile a Python module on my Linux system, but some files are " "missing. Why?" @@ -393,7 +393,7 @@ msgstr "" "Je veux compiler un module Python sur mon système Linux, mais il manque " "certains fichiers. Pourquoi ?" -#: ../Doc/faq/extending.rst:249 +#: faq/extending.rst:249 msgid "" "Most packaged versions of Python don't include the :file:`/usr/lib/python2." "{x}/config/` directory, which contains various files required for compiling " @@ -403,23 +403,23 @@ msgstr "" "répertoire :file:`/usr/lib/python2.{x}/config/`, qui contient les différents " "fichiers nécessaires à la compilation des extensions Python." -#: ../Doc/faq/extending.rst:253 +#: faq/extending.rst:253 msgid "For Red Hat, install the python-devel RPM to get the necessary files." msgstr "" "Pour Red Hat, installez le RPM *python-devel* pour obtenir les fichiers " "nécessaires." -#: ../Doc/faq/extending.rst:255 +#: faq/extending.rst:255 msgid "For Debian, run ``apt-get install python-dev``." msgstr "Pour Debian, exécutez ``apt-get install python-dev``." -#: ../Doc/faq/extending.rst:259 +#: faq/extending.rst:259 msgid "How do I tell \"incomplete input\" from \"invalid input\"?" msgstr "" "Comment distinguer une « entrée incomplète » (*incomplete input*) d'une " "« entrée invalide » (*invalid input*) ?" -#: ../Doc/faq/extending.rst:261 +#: faq/extending.rst:261 msgid "" "Sometimes you want to emulate the Python interactive interpreter's behavior, " "where it gives you a continuation prompt when the input is incomplete (e.g. " @@ -433,7 +433,7 @@ msgstr "" "vous n'avez pas fermé vos parenthèses ou triple guillemets) mais il vous " "renvoie immédiatement une erreur syntaxique quand la saisie est incorrecte." -#: ../Doc/faq/extending.rst:267 +#: faq/extending.rst:267 msgid "" "In Python you can use the :mod:`codeop` module, which approximates the " "parser's behavior sufficiently. IDLE uses this, for example." @@ -441,7 +441,7 @@ msgstr "" "En Python, vous pouvez utiliser le module :mod:`codeop`, qui se rapproche " "assez du comportement de l'analyseur. Par exemple, IDLE l'utilise." -#: ../Doc/faq/extending.rst:270 +#: faq/extending.rst:270 msgid "" "The easiest way to do it in C is to call :c:func:`PyRun_InteractiveLoop` " "(perhaps in a separate thread) and let the Python interpreter handle the " @@ -456,7 +456,7 @@ msgstr "" "fonction d'entrée personnalisée. Voir ``Modules/readline.c`` et ``Parser/" "myreadline.c`` pour plus de conseils." -#: ../Doc/faq/extending.rst:276 +#: faq/extending.rst:276 msgid "" "However sometimes you have to run the embedded Python interpreter in the " "same thread as your rest application and you can't allow the :c:func:" @@ -473,34 +473,34 @@ msgstr "" "incomplète. Voici un exemple de code, non testé, inspiré d'un code écrit par " "Alex Farber ::" -#: ../Doc/faq/extending.rst:310 +#: faq/extending.rst:310 msgid "" "Another solution is trying to compile the received string with :c:func:" "`Py_CompileString`. If it compiles without errors, try to execute the " "returned code object by calling :c:func:`PyEval_EvalCode`. Otherwise save " "the input for later. If the compilation fails, find out if it's an error or " "just more input is required - by extracting the message string from the " -"exception tuple and comparing it to the string \"unexpected EOF while parsing" -"\". Here is a complete example using the GNU readline library (you may want " -"to ignore **SIGINT** while calling readline())::" +"exception tuple and comparing it to the string \"unexpected EOF while " +"parsing\". Here is a complete example using the GNU readline library (you " +"may want to ignore **SIGINT** while calling readline())::" msgstr "" "Une autre solution est d'essayer de compiler la chaîne reçue avec :c:func:" "`Py_CompileString`. Si cela se compile sans erreur, essayez d'exécuter " "l'objet code renvoyé en appelant :c:func:`PyEval_EvalCode`. Sinon, " "enregistrez l'entrée pour plus tard. Si la compilation échoue, vérifiez s'il " "s'agit d'une erreur ou s'il faut juste plus de données — en extrayant la " -"chaîne de message du tuple d'exception et en la comparant à la chaîne *" -"\"unexpected EOF while parsing\"*. Voici un exemple complet d'utilisation de " -"la bibliothèque *readline* de GNU (il vous est possible d'ignorer **SIGINT** " -"lors de l'appel à ``readline()``) ::" +"chaîne de message du tuple d'exception et en la comparant à la chaîne " +"*\"unexpected EOF while parsing\"*. Voici un exemple complet d'utilisation " +"de la bibliothèque *readline* de GNU (il vous est possible d'ignorer " +"**SIGINT** lors de l'appel à ``readline()``) ::" -#: ../Doc/faq/extending.rst:432 +#: faq/extending.rst:432 msgid "How do I find undefined g++ symbols __builtin_new or __pure_virtual?" msgstr "" "Comment puis-je trouver les symboles g++ indéfinis ``__builtin_new`` ou " "``__pure_virtual`` ?" -#: ../Doc/faq/extending.rst:434 +#: faq/extending.rst:434 msgid "" "To dynamically load g++ extension modules, you must recompile Python, relink " "it using g++ (change LINKCC in the Python Modules Makefile), and link your " @@ -512,7 +512,7 @@ msgstr "" "de votre module d'extension avec g++ (par exemple, ``g++ -shared -o mymodule." "so mymodule.o``)." -#: ../Doc/faq/extending.rst:440 +#: faq/extending.rst:440 msgid "" "Can I create an object class with some methods implemented in C and others " "in Python (e.g. through inheritance)?" @@ -520,7 +520,7 @@ msgstr "" "Puis-je créer une classe d'objets avec certaines méthodes implémentées en C " "et d'autres en Python (p. ex. en utilisant l'héritage) ?" -#: ../Doc/faq/extending.rst:442 +#: faq/extending.rst:442 msgid "" "Yes, you can inherit from built-in classes such as :class:`int`, :class:" "`list`, :class:`dict`, etc." @@ -528,7 +528,7 @@ msgstr "" "Oui, vous pouvez hériter de classes intégrées telles que :class:`int`, :" "class:`list`, :class:`dict`, etc." -#: ../Doc/faq/extending.rst:445 +#: faq/extending.rst:445 msgid "" "The Boost Python Library (BPL, http://www.boost.org/libs/python/doc/index." "html) provides a way of doing this from C++ (i.e. you can inherit from an " diff --git a/faq/general.po b/faq/general.po index 947f513817..90da9e6bb0 100644 --- a/faq/general.po +++ b/faq/general.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-04-10 09:35+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2019-10-20 23:42+0200\n" "Last-Translator: Jules Lasne \n" "Language-Team: FRENCH \n" @@ -15,45 +15,49 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.2.1\n" -#: ../Doc/faq/general.rst:5 +#: faq/general.rst:5 msgid "General Python FAQ" msgstr "FAQ générale sur Python" -#: ../Doc/faq/general.rst:8 +#: faq/general.rst:8 msgid "Contents" msgstr "Sommaire" -#: ../Doc/faq/general.rst:13 +#: faq/general.rst:13 msgid "General Information" msgstr "Informations générales" -#: ../Doc/faq/general.rst:16 +#: faq/general.rst:16 msgid "What is Python?" msgstr "Qu'est-ce que Python ?" -#: ../Doc/faq/general.rst:18 +#: faq/general.rst:18 msgid "" "Python is an interpreted, interactive, object-oriented programming " "language. It incorporates modules, exceptions, dynamic typing, very high " -"level dynamic data types, and classes. Python combines remarkable power " -"with very clear syntax. It has interfaces to many system calls and " -"libraries, as well as to various window systems, and is extensible in C or C+" -"+. It is also usable as an extension language for applications that need a " -"programmable interface. Finally, Python is portable: it runs on many Unix " -"variants, on the Mac, and on Windows 2000 and later." -msgstr "" -"Python est un langage de programmation interprété, interactif, orienté " -"objet. Il incorpore des modules, des exceptions, un typage dynamique et des " -"classes. Python combine une puissance incroyable et une syntaxe très claire. " -"Il dispose de liens avec de nombreuses interfaces de programmation pour " -"systèmes d'exploitation et bibliothèques, ainsi que divers systèmes " -"d'interfaces graphiques, et il peut être étendu grâce au C ou C++. Il est " -"aussi utilisable comme langage d'extension (script) pour les logiciels qui " -"nécessitent une interface de programmation. Enfin, Python est portable : il " -"fonctionne sur multiples variantes Unix, sur Mac, ainsi que sur Windows 2000 " -"et versions supérieures." - -#: ../Doc/faq/general.rst:27 +"level dynamic data types, and classes. It supports multiple programming " +"paradigms beyond object-oriented programming, such as procedural and " +"functional programming. Python combines remarkable power with very clear " +"syntax. It has interfaces to many system calls and libraries, as well as to " +"various window systems, and is extensible in C or C++. It is also usable as " +"an extension language for applications that need a programmable interface. " +"Finally, Python is portable: it runs on many Unix variants including Linux " +"and macOS, and on Windows." +msgstr "" +"Python est un langage de programmation interprété, interactif et orienté " +"objet. Il intègre des modules, des exceptions, un typage dynamique, des " +"types de données dynamiques de très haut niveau et des classes. Il gère de " +"multiples paradigmes de programmation au-delà de la programmation orientée " +"objet, tels que la programmation procédurale et fonctionnelle. Python " +"combine une puissance remarquable avec une syntaxe très claire. Il possède " +"des interfaces avec de nombreux appels système et bibliothèques, ainsi " +"qu'avec divers systèmes d'interfaces graphiques, et il peut être étendu avec " +"du C ou du C++. Il est également utilisable comme langage d'extension pour " +"les applications qui nécessitent une interface de programmation. Enfin, " +"Python est portable : il fonctionne sur de nombreuses variantes d'Unix, y " +"compris Linux et macOS, et sur Windows." + +#: faq/general.rst:28 msgid "" "To find out more, start with :ref:`tutorial-index`. The `Beginner's Guide " "to Python `_ links to other " @@ -64,11 +68,11 @@ msgstr "" "renvoie vers d'autres tutoriels et ressources d'initiation pour apprendre " "Python." -#: ../Doc/faq/general.rst:33 +#: faq/general.rst:34 msgid "What is the Python Software Foundation?" msgstr "Qu'est ce que la Python Software Foundation ?" -#: ../Doc/faq/general.rst:35 +#: faq/general.rst:36 msgid "" "The Python Software Foundation is an independent non-profit organization " "that holds the copyright on Python versions 2.1 and newer. The PSF's " @@ -83,7 +87,7 @@ msgstr "" "promouvoir son utilisation. Le page d'accueil de la PSF se trouve à " "l'adresse suivante : https://www.python.org/psf/." -#: ../Doc/faq/general.rst:41 +#: faq/general.rst:42 msgid "" "Donations to the PSF are tax-exempt in the US. If you use Python and find " "it helpful, please contribute via `the PSF donation page `_." -#: ../Doc/faq/general.rst:47 +#: faq/general.rst:48 msgid "Are there copyright restrictions on the use of Python?" msgstr "" "Existe-il des restrictions liées à la propriété intellectuelle quant à " "l'utilisation de Python ?" -#: ../Doc/faq/general.rst:49 +#: faq/general.rst:50 msgid "" "You can do anything you want with the source, as long as you leave the " "copyrights in and display those copyrights in any documentation about Python " @@ -118,7 +122,7 @@ msgstr "" "souhaiterions avoir connaissance de tous les projets commerciaux utilisant " "Python." -#: ../Doc/faq/general.rst:56 +#: faq/general.rst:57 msgid "" "See `the PSF license page `_ to find " "further explanations and a link to the full text of the license." @@ -127,7 +131,7 @@ msgstr "" "license/>`_ pour trouver davantage d'informations et un lien vers la version " "intégrale de la licence d'utilisation." -#: ../Doc/faq/general.rst:59 +#: faq/general.rst:60 msgid "" "The Python logo is trademarked, and in certain cases permission is required " "to use it. Consult `the Trademark Usage Policy `__ pour " "plus d'informations." -#: ../Doc/faq/general.rst:65 +#: faq/general.rst:66 msgid "Why was Python created in the first place?" msgstr "Pourquoi Python a été créé ?" -#: ../Doc/faq/general.rst:67 +#: faq/general.rst:68 msgid "" "Here's a *very* brief summary of what started it all, written by Guido van " "Rossum:" @@ -150,7 +154,7 @@ msgstr "" "Voici un *très* bref résumé de comment tout a commencé, écrit par Guido van " "Rossum (puis traduit en français) :" -#: ../Doc/faq/general.rst:70 +#: faq/general.rst:71 msgid "" "I had extensive experience with implementing an interpreted language in the " "ABC group at CWI, and from working with this group I had learned a lot about " @@ -165,7 +169,7 @@ msgstr "" "groupement et l'inclusion de types de très haut niveau (bien que dans les " "détails ils soient tous différents dans Python)." -#: ../Doc/faq/general.rst:77 +#: faq/general.rst:78 msgid "" "I had a number of gripes about the ABC language, but also liked many of its " "features. It was impossible to extend the ABC language (or its " @@ -184,7 +188,7 @@ msgstr "" "à l'origine de la syntaxe et de la sémantique utilisée pour les exceptions, " "et quelques autres fonctionnalités en Python." -#: ../Doc/faq/general.rst:85 +#: faq/general.rst:86 msgid "" "I was working in the Amoeba distributed operating system group at CWI. We " "needed a better way to do system administration than by writing either C " @@ -202,7 +206,7 @@ msgstr "" "de l'importance des exceptions en tant que fonctionnalité d'un langage de " "programmation." -#: ../Doc/faq/general.rst:92 +#: faq/general.rst:93 msgid "" "It occurred to me that a scripting language with a syntax like ABC but with " "access to the Amoeba system calls would fill the need. I realized that it " @@ -215,7 +219,7 @@ msgstr "" "j'ai décidé que j'avais besoin d'un langage qui serait généralement " "extensible." -#: ../Doc/faq/general.rst:97 +#: faq/general.rst:98 msgid "" "During the 1989 Christmas holidays, I had a lot of time on my hand, so I " "decided to give it a try. During the next year, while still mostly working " @@ -229,7 +233,7 @@ msgstr "" "projet Amoeba avec un succès croissant, et les retours de mes collègues " "m'ont permis d'ajouter beaucoup des premières améliorations." -#: ../Doc/faq/general.rst:103 +#: faq/general.rst:104 msgid "" "In February 1991, after just over a year of development, I decided to post " "to USENET. The rest is in the ``Misc/HISTORY`` file." @@ -238,11 +242,11 @@ msgstr "" "décidé de le poster sur USENET. Le reste se trouve dans le fichier « Misc/" "HISTORY »." -#: ../Doc/faq/general.rst:108 +#: faq/general.rst:109 msgid "What is Python good for?" msgstr "Pour quoi Python est-il fait ?" -#: ../Doc/faq/general.rst:110 +#: faq/general.rst:111 msgid "" "Python is a high-level general-purpose programming language that can be " "applied to many different classes of problems." @@ -250,7 +254,7 @@ msgstr "" "Python est un langage de programmation haut niveau généraliste qui peut être " "utilisé pour pallier à différents problèmes." -#: ../Doc/faq/general.rst:113 +#: faq/general.rst:114 msgid "" "The language comes with a large standard library that covers areas such as " "string processing (regular expressions, Unicode, calculating differences " @@ -274,11 +278,11 @@ msgstr "" "Python `_ pour trouver les paquets qui pourraient vous " "intéresser." -#: ../Doc/faq/general.rst:125 +#: faq/general.rst:126 msgid "How does the Python version numbering scheme work?" msgstr "Comment fonctionne le numérotage des versions de Python ?" -#: ../Doc/faq/general.rst:127 +#: faq/general.rst:128 msgid "" "Python versions are numbered A.B.C or A.B. A is the major version number -- " "it is only incremented for really major changes in the language. B is the " @@ -292,7 +296,7 @@ msgstr "" "lors de changements de moindre importance. C est un micro-niveau -- elle est " "augmentée à chaque sortie de correctifs de bogue." -#: ../Doc/faq/general.rst:133 +#: faq/general.rst:134 msgid "" "Not all releases are bugfix releases. In the run-up to a new major release, " "a series of development releases are made, denoted as alpha, beta, or " @@ -312,7 +316,7 @@ msgstr "" "modules, les *release candidate* sont figées, elles ne font aucun changement " "à l'exception de ceux nécessaires pour corriger des bogues critiques." -#: ../Doc/faq/general.rst:141 +#: faq/general.rst:142 msgid "" "Alpha, beta and release candidate versions have an additional suffix. The " "suffix for an alpha version is \"aN\" for some small number N, the suffix " @@ -329,7 +333,7 @@ msgstr "" "précèdent les versions *2.0.bN*, qui elles-mêmes précèdent 2.0cN, et *celles-" "ci* précèdent la version 2.0." -#: ../Doc/faq/general.rst:148 +#: faq/general.rst:149 msgid "" "You may also find version numbers with a \"+\" suffix, e.g. \"2.2+\". These " "are unreleased versions, built directly from the CPython development " @@ -343,7 +347,7 @@ msgstr "" "finale d'une version mineure, la version est augmentée à la prochaine " "version mineure, qui devient la version *a0*, c'est-à-dire *2.4a0*." -#: ../Doc/faq/general.rst:153 +#: faq/general.rst:154 msgid "" "See also the documentation for :data:`sys.version`, :data:`sys.hexversion`, " "and :data:`sys.version_info`." @@ -351,11 +355,11 @@ msgstr "" "Voir aussi la documentation pour for :data:`sys.version`, :data:`sys." "hexversion`, et :data:`sys.version_info`." -#: ../Doc/faq/general.rst:158 +#: faq/general.rst:159 msgid "How do I obtain a copy of the Python source?" msgstr "Comment obtenir une copie du code source de Python ?" -#: ../Doc/faq/general.rst:160 +#: faq/general.rst:161 msgid "" "The latest Python source distribution is always available from python.org, " "at https://www.python.org/downloads/. The latest development sources can be " @@ -366,7 +370,7 @@ msgstr "" "dernière version en développement peut être obtenue à https://github.com/" "python/cpython/." -#: ../Doc/faq/general.rst:164 +#: faq/general.rst:165 msgid "" "The source distribution is a gzipped tar file containing the complete C " "source, Sphinx-formatted documentation, Python library modules, example " @@ -379,7 +383,7 @@ msgstr "" "utiles distribuables librement. Le code source sera compilé et prêt à " "fonctionner immédiatement sur la plupart des plateformes UNIX." -#: ../Doc/faq/general.rst:169 +#: faq/general.rst:170 msgid "" "Consult the `Getting Started section of the Python Developer's Guide " "`__ for more information on getting the " @@ -389,11 +393,11 @@ msgstr "" "devguide.python.org/setup/>`__ pour plus d'informations sur comment obtenir " "le code source et le compiler." -#: ../Doc/faq/general.rst:175 +#: faq/general.rst:176 msgid "How do I get documentation on Python?" msgstr "Comment obtenir la documentation de Python ?" -#: ../Doc/faq/general.rst:179 +#: faq/general.rst:180 msgid "" "The standard documentation for the current stable version of Python is " "available at https://docs.python.org/3/. PDF, plain text, and downloadable " @@ -403,7 +407,7 @@ msgstr "" "https://docs.python.org/3/. Des versions aux formats PDF, texte et HTML " "sont aussi disponibles à https://docs.python.org/3/download.html." -#: ../Doc/faq/general.rst:183 +#: faq/general.rst:184 msgid "" "The documentation is written in reStructuredText and processed by `the " "Sphinx documentation tool `__. The reStructuredText " @@ -414,11 +418,11 @@ msgstr "" "*reStructuredText* pour la documentation constitue une partie des sources de " "Python." -#: ../Doc/faq/general.rst:189 +#: faq/general.rst:190 msgid "I've never programmed before. Is there a Python tutorial?" msgstr "Je n'ai jamais programmé avant. Existe t-il un tutoriel Python ?" -#: ../Doc/faq/general.rst:191 +#: faq/general.rst:192 msgid "" "There are numerous tutorials and books available. The standard " "documentation includes :ref:`tutorial-index`." @@ -426,7 +430,7 @@ msgstr "" "Il y a de nombreux tutoriels et livres disponibles. La documentation " "standard inclut :ref:`tutorial-index`." -#: ../Doc/faq/general.rst:194 +#: faq/general.rst:195 msgid "" "Consult `the Beginner's Guide `_ to find information for beginning Python programmers, " @@ -436,11 +440,11 @@ msgstr "" "BeginnersGuide>`_ afin de trouver des informations pour les développeurs " "Python débutants, incluant une liste de tutoriels." -#: ../Doc/faq/general.rst:199 +#: faq/general.rst:200 msgid "Is there a newsgroup or mailing list devoted to Python?" msgstr "Y a-t-il un forum ou une liste de diffusion dédié à Python ?" -#: ../Doc/faq/general.rst:201 +#: faq/general.rst:202 msgid "" "There is a newsgroup, :newsgroup:`comp.lang.python`, and a mailing list, " "`python-list `_. The " @@ -457,7 +461,7 @@ msgstr "" "des centaines de messages chaque jour, et les lecteurs du réseau Usenet sont " "souvent plus capables de faire face à ce volume." -#: ../Doc/faq/general.rst:208 +#: faq/general.rst:209 msgid "" "Announcements of new software releases and events can be found in comp.lang." "python.announce, a low-traffic moderated list that receives about five " @@ -470,7 +474,7 @@ msgstr "" "des annonces Python `_." -#: ../Doc/faq/general.rst:213 +#: faq/general.rst:214 msgid "" "More info about other mailing lists and newsgroups can be found at https://" "www.python.org/community/lists/." @@ -478,11 +482,11 @@ msgstr "" "Plus d'informations à propos des autres listes de diffusion et forums " "peuvent être trouvées à https://www.python.org/community/lists/." -#: ../Doc/faq/general.rst:218 +#: faq/general.rst:219 msgid "How do I get a beta test version of Python?" msgstr "Comment obtenir une version bêta test de Python ?" -#: ../Doc/faq/general.rst:220 +#: faq/general.rst:221 msgid "" "Alpha and beta releases are available from https://www.python.org/" "downloads/. All releases are announced on the comp.lang.python and comp." @@ -495,7 +499,7 @@ msgstr "" "de Python à https://www.python.org/; un flux RSS d'actualités y est aussi " "disponible." -#: ../Doc/faq/general.rst:225 +#: faq/general.rst:226 msgid "" "You can also access the development version of Python through Git. See `The " "Python Developer's Guide `_ for details." @@ -504,11 +508,11 @@ msgstr "" "`Le Guide du Développeur Python `_ pour plus " "de détails." -#: ../Doc/faq/general.rst:230 +#: faq/general.rst:231 msgid "How do I submit bug reports and patches for Python?" msgstr "Comment soumettre un rapport de bogues ou un correctif pour Python ?" -#: ../Doc/faq/general.rst:232 +#: faq/general.rst:233 msgid "" "To report a bug or submit a patch, please use the Roundup installation at " "https://bugs.python.org/." @@ -516,7 +520,7 @@ msgstr "" "Pour reporter un bogue ou soumettre un correctif, merci d'utiliser https://" "bugs.python.org/." -#: ../Doc/faq/general.rst:235 +#: faq/general.rst:236 msgid "" "You must have a Roundup account to report bugs; this makes it possible for " "us to contact you if we have follow-up questions. It will also enable " @@ -533,7 +537,7 @@ msgstr "" "réinitialisation de mot de passe de Roundup `_." -#: ../Doc/faq/general.rst:241 +#: faq/general.rst:242 msgid "" "For more information on how Python is developed, consult `the Python " "Developer's Guide `_." @@ -541,19 +545,19 @@ msgstr "" "Pour davantage d'informations sur comment Python est développé, consultez " "`le Guide du Développeur Python `_." -#: ../Doc/faq/general.rst:246 +#: faq/general.rst:247 msgid "Are there any published articles about Python that I can reference?" msgstr "" "Existe-t-il des articles publiés au sujet de Python auxquels je peux me " "référer ?" -#: ../Doc/faq/general.rst:248 +#: faq/general.rst:249 msgid "It's probably best to cite your favorite book about Python." msgstr "" "C'est probablement mieux de vous référer à votre livre favori à propos de " "Python." -#: ../Doc/faq/general.rst:250 +#: faq/general.rst:251 msgid "" "The very first article about Python was written in 1991 and is now quite " "outdated." @@ -561,7 +565,7 @@ msgstr "" "Le tout premier article à propos de Python a été écrit en 1991 et est " "maintenant obsolète." -#: ../Doc/faq/general.rst:253 +#: faq/general.rst:254 msgid "" "Guido van Rossum and Jelke de Boer, \"Interactively Testing Remote Servers " "Using the Python Programming Language\", CWI Quarterly, Volume 4, Issue 4 " @@ -571,11 +575,11 @@ msgstr "" "Using the Python Programming Language* », CWI Quarterly, Volume 4, Issue 4 " "(December 1991), Amsterdam, pp 283--303." -#: ../Doc/faq/general.rst:259 +#: faq/general.rst:260 msgid "Are there any books on Python?" msgstr "Y a-t-il des livres au sujet de Python ?" -#: ../Doc/faq/general.rst:261 +#: faq/general.rst:262 msgid "" "Yes, there are many, and more are being published. See the python.org wiki " "at https://wiki.python.org/moin/PythonBooks for a list." @@ -583,7 +587,7 @@ msgstr "" "Oui, il y en a beaucoup, et d'autres sont en cours de publication. Voir le " "wiki python à https://wiki.python.org/moin/PythonBooks pour avoir une liste." -#: ../Doc/faq/general.rst:264 +#: faq/general.rst:265 msgid "" "You can also search online bookstores for \"Python\" and filter out the " "Monty Python references; or perhaps search for \"Python\" and \"language\"." @@ -592,11 +596,11 @@ msgstr "" "terme « Python » et éliminer les références concernant les Monty Python, ou " "peut-être faire une recherche avec les termes « langage » et « Python »." -#: ../Doc/faq/general.rst:269 +#: faq/general.rst:270 msgid "Where in the world is www.python.org located?" msgstr "Où www.python.org est-il localisé dans le monde ?" -#: ../Doc/faq/general.rst:271 +#: faq/general.rst:272 msgid "" "The Python project's infrastructure is located all over the world and is " "managed by the Python Infrastructure Team. Details `here `__." -#: ../Doc/faq/general.rst:276 +#: faq/general.rst:277 msgid "Why is it called Python?" msgstr "Pourquoi le nom Python ?" -#: ../Doc/faq/general.rst:278 +#: faq/general.rst:279 msgid "" "When he began implementing Python, Guido van Rossum was also reading the " "published scripts from `\"Monty Python's Flying Circus\" `_. There are two production-ready " @@ -684,19 +688,19 @@ msgstr "" "maintenu après le 1er janvier 2020 `_." -#: ../Doc/faq/general.rst:315 +#: faq/general.rst:316 msgid "How many people are using Python?" msgstr "Combien de personnes utilisent Python ?" -#: ../Doc/faq/general.rst:317 +#: faq/general.rst:318 msgid "" -"There are probably tens of thousands of users, though it's difficult to " -"obtain an exact count." +"There are probably millions of users, though it's difficult to obtain an " +"exact count." msgstr "" -"Il y a probablement des dizaines de milliers d'utilisateurs, cependant c'est " -"difficile d'obtenir un nombre exact." +"Il y a probablement des millions d'utilisateurs, bien qu'il soit difficile " +"d'en déterminer le nombre exact." -#: ../Doc/faq/general.rst:320 +#: faq/general.rst:321 msgid "" "Python is available for free download, so there are no sales figures, and " "it's available from many different sites and packaged with many Linux " @@ -707,7 +711,7 @@ msgstr "" "il est inclus avec de beaucoup de distributions Linux, donc les statistiques " "de téléchargement ne donnent pas la totalité non plus." -#: ../Doc/faq/general.rst:324 +#: faq/general.rst:325 msgid "" "The comp.lang.python newsgroup is very active, but not all Python users post " "to the group or even read it." @@ -715,11 +719,11 @@ msgstr "" "Le forum *comp.lang.python* est très actif, mais tous les utilisateurs de " "Python ne laissent pas de messages dessus ou même ne le lisent pas." -#: ../Doc/faq/general.rst:329 +#: faq/general.rst:330 msgid "Have any significant projects been done in Python?" msgstr "Y a-t-il un nombre de projets significatif réalisés en Python ?" -#: ../Doc/faq/general.rst:331 +#: faq/general.rst:332 msgid "" "See https://www.python.org/about/success for a list of projects that use " "Python. Consulting the proceedings for `past Python conferences `_ and `the Zope application server `_." @@ -775,12 +779,12 @@ msgstr "" "Le nouveau développement est discuté sur `la liste de diffusion python-dev " "`_." -#: ../Doc/faq/general.rst:358 +#: faq/general.rst:359 msgid "Is it reasonable to propose incompatible changes to Python?" msgstr "" "Est-il raisonnable de proposer des changements incompatibles dans Python ?" -#: ../Doc/faq/general.rst:360 +#: faq/general.rst:361 msgid "" "In general, no. There are already millions of lines of Python code around " "the world, so any change in the language that invalidates more than a very " @@ -797,7 +801,7 @@ msgstr "" "documentations, beaucoup de livres ont été écrits au sujet de Python, et " "nous ne voulons pas les rendre invalides soudainement." -#: ../Doc/faq/general.rst:367 +#: faq/general.rst:368 msgid "" "Providing a gradual upgrade path is necessary if a feature has to be " "changed. :pep:`5` describes the procedure followed for introducing backward-" @@ -806,17 +810,17 @@ msgstr "" "En fournissant un rythme de mise à jour progressif qui est obligatoire si " "une fonctionnalité doit être changée." -#: ../Doc/faq/general.rst:373 +#: faq/general.rst:374 msgid "Is Python a good language for beginning programmers?" msgstr "" "Existe-t-il un meilleur langage de programmation pour les programmeurs " "débutants ?" -#: ../Doc/faq/general.rst:375 +#: faq/general.rst:376 msgid "Yes." msgstr "Oui." -#: ../Doc/faq/general.rst:377 +#: faq/general.rst:378 msgid "" "It is still common to start students with a procedural and statically typed " "language such as Pascal, C, or a subset of C++ or Java. Students may be " @@ -840,7 +844,7 @@ msgstr "" "peuvent même probablement travailler avec des objets définis dans leurs " "premiers cours." -#: ../Doc/faq/general.rst:387 +#: faq/general.rst:388 msgid "" "For a student who has never programmed before, using a statically typed " "language seems unnatural. It presents additional complexity that the " @@ -860,7 +864,7 @@ msgstr "" "terme, ce n'est pas nécessairement la meilleure idée pour s'adresser aux " "étudiants durant leur tout premier cours." -#: ../Doc/faq/general.rst:395 +#: faq/general.rst:396 msgid "" "Many other aspects of Python make it a good first language. Like Java, " "Python has a large standard library so that students can be assigned " @@ -883,7 +887,7 @@ msgstr "" "réutilisation de code. Les modules tiers tels que PyGame sont aussi très " "utiles pour étendre les compétences des étudiants." -#: ../Doc/faq/general.rst:404 +#: faq/general.rst:405 msgid "" "Python's interactive interpreter enables students to test language features " "while they're programming. They can keep a window with the interpreter " @@ -897,7 +901,7 @@ msgstr "" "souvenir des méthodes pour une liste, ils peuvent faire quelque chose comme " "ça ::" -#: ../Doc/faq/general.rst:433 +#: faq/general.rst:434 msgid "" "With the interpreter, documentation is never far from the student as they " "are programming." @@ -905,7 +909,7 @@ msgstr "" "Avec l'interpréteur, la documentation n'est jamais loin des étudiants quand " "ils travaillent." -#: ../Doc/faq/general.rst:436 +#: faq/general.rst:437 msgid "" "There are also good IDEs for Python. IDLE is a cross-platform IDE for " "Python that is written in Python using Tkinter. PythonWin is a Windows-" @@ -925,7 +929,7 @@ msgstr "" "`_ pour une liste complète des " "environnements de développement intégrés." -#: ../Doc/faq/general.rst:444 +#: faq/general.rst:445 msgid "" "If you want to discuss Python's use in education, you may be interested in " "joining `the edu-sig mailing list \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.0.6\n" +"X-Generator: Poedit 2.2.3\n" #: ../Doc/faq/library.rst:5 msgid "Library and Extension FAQ" @@ -1167,7 +1167,7 @@ msgstr "``choice(S)`` sélectionne au hasard un élément d'une séquence donné #: ../Doc/faq/library.rst:836 msgid "``shuffle(L)`` shuffles a list in-place, i.e. permutes it randomly" msgstr "" -"``shuffle(L)`` mélange une liste en-place, c-à-d lui applique une " +"``shuffle(L)`` mélange une liste en-place, c.-à-d. lui applique une " "permutation aléatoire" #: ../Doc/faq/library.rst:838 diff --git a/faq/programming.po b/faq/programming.po index eb45b87a9d..855b0b5464 100644 --- a/faq/programming.po +++ b/faq/programming.po @@ -5,41 +5,41 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-09 17:54+0200\n" -"PO-Revision-Date: 2019-12-12 22:21+0100\n" -"Last-Translator: Andy Kwok \n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" +"PO-Revision-Date: 2020-05-30 17:14+0900\n" +"Last-Translator: Samuel Giffard \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.0.6\n" +"X-Generator: Poedit 2.3.1\n" -#: ../Doc/faq/programming.rst:5 +#: faq/programming.rst:5 msgid "Programming FAQ" msgstr "FAQ de programmation" -#: ../Doc/faq/programming.rst:8 +#: faq/programming.rst:8 msgid "Contents" msgstr "Sommaire" -#: ../Doc/faq/programming.rst:12 +#: faq/programming.rst:12 msgid "General Questions" msgstr "Questions générales" -#: ../Doc/faq/programming.rst:15 +#: faq/programming.rst:15 msgid "" "Is there a source code level debugger with breakpoints, single-stepping, " "etc.?" msgstr "" -"Existe-t'il un débogueur de code source avec points d'arrêts, exécution pas-" +"Existe-t-il un débogueur de code source avec points d'arrêts, exécution pas-" "à-pas, etc. ?" -#: ../Doc/faq/programming.rst:17 ../Doc/faq/programming.rst:63 +#: faq/programming.rst:57 msgid "Yes." msgstr "Oui." -#: ../Doc/faq/programming.rst:19 +#: faq/programming.rst:19 msgid "" "Several debuggers for Python are described below, and the built-in function :" "func:`breakpoint` allows you to drop into any of them." @@ -47,7 +47,7 @@ msgstr "" "Plusieurs débogueurs sont décrits ci-dessous et la fonction native :func:" "`breakpoint` permet d'utiliser n'importe lequel d'entre eux." -#: ../Doc/faq/programming.rst:22 +#: faq/programming.rst:22 msgid "" "The pdb module is a simple but adequate console-mode debugger for Python. It " "is part of the standard Python library, and is :mod:`documented in the " @@ -59,7 +59,7 @@ msgstr "" "documentation se trouve dans le :mod:`manuel de référence `. Vous " "pouvez vous inspirer du code de ``pdb`` pour écrire votre propre débogueur." -#: ../Doc/faq/programming.rst:27 +#: faq/programming.rst:27 msgid "" "The IDLE interactive development environment, which is part of the standard " "Python distribution (normally available as Tools/scripts/idle), includes a " @@ -69,41 +69,24 @@ msgstr "" "distribution standard de Python (normalement disponible dans ``Tools/scripts/" "idle``) contient un débogueur graphique." -#: ../Doc/faq/programming.rst:31 +#: faq/programming.rst:31 msgid "" "PythonWin is a Python IDE that includes a GUI debugger based on pdb. The " -"Pythonwin debugger colors breakpoints and has quite a few cool features such " -"as debugging non-Pythonwin programs. Pythonwin is available as part of the " -"`Python for Windows Extensions `__ project and as a part of the ActivePython distribution (see https://www." -"activestate.com/activepython\\ )." +"PythonWin debugger colors breakpoints and has quite a few cool features such " +"as debugging non-PythonWin programs. PythonWin is available as part of " +"`pywin32 `_ project and as a part of " +"the `ActivePython `_ " +"distribution." msgstr "" "*PythonWin* est un environnement de développement intégré (EDI) Python qui " "embarque un débogueur graphique basé sur ``pdb``. Le débogueur *PythonWin* " "colore les points d'arrêts et possède quelques fonctionnalités sympathiques, " "comme la possibilité de déboguer des programmes développés sans " -"*PythonWin*. *PythonWin* est disponible dans le projet `Extensions Python " -"pour Windows `__ et fait partie " -"de la distribution ActivePython (voir https://www.activestate.com/" -"activepython\\ )." +"*PythonWin*. *PythonWin* est disponible dans le projet `pywin32 `_ et fait partie de la distribution " +"`ActivePython `_." -#: ../Doc/faq/programming.rst:38 -msgid "" -"`Boa Constructor `_ is an IDE and " -"GUI builder that uses wxWidgets. It offers visual frame creation and " -"manipulation, an object inspector, many views on the source like object " -"browsers, inheritance hierarchies, doc string generated html documentation, " -"an advanced debugger, integrated help, and Zope support." -msgstr "" -"`Boa Constructor `_ est un EDI et " -"un constructeur d'interface homme-machine basé sur *wxWidgets*. Il propose " -"la création et la manipulation de fenêtres, un inspecteur d'objets, de " -"nombreuses façons de visualiser des sources comme un navigateur d'objets, " -"les hiérarchies d'héritage, la documentation html générée par les " -"docstrings, un débogueur avancé, une aide intégrée et la prise en charge de " -"Zope." - -#: ../Doc/faq/programming.rst:44 +#: faq/programming.rst:38 msgid "" "`Eric `_ is an IDE built on PyQt and " "the Scintilla editing component." @@ -111,19 +94,24 @@ msgstr "" "`Eric `_ est un EDI basé sur PyQt et " "l'outil d'édition Scintilla." -#: ../Doc/faq/programming.rst:47 +#: faq/programming.rst:41 +msgid "" +"`trepan3k `_ is a gdb-like " +"debugger." +msgstr "" +"`trepan3k `_ est un débogueur " +"semblable à GDB." + +#: faq/programming.rst:43 msgid "" -"Pydb is a version of the standard Python debugger pdb, modified for use with " -"DDD (Data Display Debugger), a popular graphical debugger front end. Pydb " -"can be found at http://bashdb.sourceforge.net/pydb/ and DDD can be found at " -"https://www.gnu.org/software/ddd." +"`Visual Studio Code `_ is an IDE with " +"debugging tools that integrates with version-control software." msgstr "" -"Pydb est une version du débogueur standard Python pdb, modifié pour être " -"utilisé avec DDD (Data Display Debugger), un célèbre débogueur graphique. " -"Pydb est disponible sur http://bashdb.sourceforge.net/pydb/ et DDD est " -"disponible sur https://www.gnu.org/software/ddd." +"`Visual Studio Code `_ est un EDI qui " +"contient des outils de débogage. Il sait interagir avec les outils de " +"gestion de versions." -#: ../Doc/faq/programming.rst:52 +#: faq/programming.rst:46 msgid "" "There are a number of commercial Python IDEs that include graphical " "debuggers. They include:" @@ -131,55 +119,31 @@ msgstr "" "Il existe de nombreux EDI Python propriétaires qui embarquent un débogueur " "graphique. Notamment :" -#: ../Doc/faq/programming.rst:55 -msgid "Wing IDE (https://wingware.com/)" -msgstr "Wing IDE (https://wingware.com/)" +#: faq/programming.rst:49 +msgid "`Wing IDE `_" +msgstr "`Wing IDE `_ ;" -#: ../Doc/faq/programming.rst:56 -msgid "Komodo IDE (https://komodoide.com/)" -msgstr "Komodo IDE (https://komodoide.com/)" +#: faq/programming.rst:50 +msgid "`Komodo IDE `_" +msgstr "`Komodo IDE `_ ;" -#: ../Doc/faq/programming.rst:57 -msgid "PyCharm (https://www.jetbrains.com/pycharm/)" -msgstr "PyCharm (https://www.jetbrains.com/pycharm/)" +#: faq/programming.rst:51 +msgid "`PyCharm `_" +msgstr "`PyCharm `_ ;" -#: ../Doc/faq/programming.rst:61 -msgid "Is there a tool to help find bugs or perform static analysis?" +#: faq/programming.rst:55 +msgid "Are there tools to help find bugs or perform static analysis?" msgstr "" -"Existe-t'il des outils pour aider à trouver des bogues ou faire de l'analyse " -"statique de code ?" +"Existe-t-il des outils pour aider à trouver des bogues ou faire de l'analyse " +"statique de code ?" -#: ../Doc/faq/programming.rst:65 +#: faq/programming.rst:59 msgid "" -"PyChecker is a static analysis tool that finds bugs in Python source code " -"and warns about code complexity and style. You can get PyChecker from " -"http://pychecker.sourceforge.net/." +"`Pylint `_ and `Pyflakes `_ do basic checking that will help you catch bugs sooner." msgstr "" -"*PyChecker* est un outil d'analyse statique qui trouve les bogues dans le " -"code source Python et émet des avertissements relatifs à la complexité et au " -"style du code. *PyChecker* est disponible sur http://pychecker.sourceforge." -"net/." -#: ../Doc/faq/programming.rst:69 -msgid "" -"`Pylint `_ is another tool that checks if a module " -"satisfies a coding standard, and also makes it possible to write plug-ins to " -"add a custom feature. In addition to the bug checking that PyChecker " -"performs, Pylint offers some additional features such as checking line " -"length, whether variable names are well-formed according to your coding " -"standard, whether declared interfaces are fully implemented, and more. " -"https://docs.pylint.org/ provides a full list of Pylint's features." -msgstr "" -"Pylint `_ est un autre outil qui vérifie si un " -"module satisfait aux normes de développement, et qui permet en plus d'écrire " -"des greffons pour ajouter des fonctionnalités personnalisées. En plus de la " -"vérification des bogues effectuée par PyChecker, Pylint effectue quelques " -"vérifications supplémentaires comme la longueur des lignes, les conventions " -"de nommage des variables, que les interfaces déclarées sont implémentées en " -"totalité, et plus encore. https://docs.pylint.org/ fournit la liste complète " -"des fonctionnalités de Pylint." - -#: ../Doc/faq/programming.rst:77 +#: faq/programming.rst:63 msgid "" "Static type checkers such as `Mypy `_, `Pyre `_, and `Pytype `_ can " @@ -190,11 +154,11 @@ msgstr "" "pytype>`_ peuvent vérifier les indications de type dans du code source " "Python." -#: ../Doc/faq/programming.rst:84 +#: faq/programming.rst:70 msgid "How can I create a stand-alone binary from a Python script?" msgstr "Comment créer un binaire autonome à partir d'un script Python ?" -#: ../Doc/faq/programming.rst:86 +#: faq/programming.rst:72 msgid "" "You don't need the ability to compile Python to C code if all you want is a " "stand-alone program that users can download and run without having to " @@ -209,7 +173,7 @@ msgstr "" "requis par un programme et lient ces modules avec un binaire Python pour " "produire un seul exécutable." -#: ../Doc/faq/programming.rst:92 +#: faq/programming.rst:78 msgid "" "One is to use the freeze tool, which is included in the Python source tree " "as ``Tools/freeze``. It converts Python byte code to C arrays; a C compiler " @@ -222,7 +186,7 @@ msgstr "" "vos modules dans un nouveau programme, qui est ensuite lié aux modules " "standards Python." -#: ../Doc/faq/programming.rst:97 +#: faq/programming.rst:83 msgid "" "It works by scanning your source recursively for import statements (in both " "forms) and looking for the modules in the standard Python path as well as in " @@ -245,34 +209,38 @@ msgstr "" "généré et le lie au reste de l'interpréteur Python pour former un binaire " "autonome qui fait exactement la même chose que le script." -#: ../Doc/faq/programming.rst:106 +#: faq/programming.rst:92 +#, fuzzy msgid "" "Obviously, freeze requires a C compiler. There are several other utilities " -"which don't. One is Thomas Heller's py2exe (Windows only) at" +"which don't:" msgstr "" "Bien évidemment, freeze nécessite un compilateur C. Il existe d'autres " "outils qui peuvent s'en passer. Un de ceux-ci est py2exe de Thomas Heller " "(pour Windows uniquement) disponible sur" -#: ../Doc/faq/programming.rst:109 -msgid "http://www.py2exe.org/" -msgstr "http://www.py2exe.org/" +#: faq/programming.rst:95 +msgid "`py2exe `_ for Windows binaries" +msgstr "" + +#: faq/programming.rst:96 +msgid "" +"`py2app `_ for Mac OS X binaries" +msgstr "" -#: ../Doc/faq/programming.rst:111 +#: faq/programming.rst:97 msgid "" -"Another tool is Anthony Tuininga's `cx_Freeze `_." +"`cx_Freeze `_ for cross-" +"platform binaries" msgstr "" -"Un autre de ces outils est `cx_Freeze `_ d'Anthony Tuininga." -#: ../Doc/faq/programming.rst:115 +#: faq/programming.rst:102 msgid "Are there coding standards or a style guide for Python programs?" msgstr "" -"Existe-t'il des normes de développement ou un guide de style pour écrire des " +"Existe-t-il des normes de développement ou un guide de style pour écrire des " "programmes Python ?" -#: ../Doc/faq/programming.rst:117 +#: faq/programming.rst:104 msgid "" "Yes. The coding style required for standard library modules is documented " "as :pep:`8`." @@ -280,16 +248,16 @@ msgstr "" "Oui. Le style de développement que les modules de la bibliothèque standard " "doivent obligatoirement respecter est documenté dans la :pep:`8`." -#: ../Doc/faq/programming.rst:122 +#: faq/programming.rst:109 msgid "Core Language" msgstr "Fondamentaux" -#: ../Doc/faq/programming.rst:125 +#: faq/programming.rst:112 msgid "Why am I getting an UnboundLocalError when the variable has a value?" msgstr "" "Pourquoi une UnboundLocalError est levée alors qu'une variable a une valeur ?" -#: ../Doc/faq/programming.rst:127 +#: faq/programming.rst:114 msgid "" "It can be a surprise to get the UnboundLocalError in previously working code " "when it is modified by adding an assignment statement somewhere in the body " @@ -299,19 +267,19 @@ msgstr "" "jusqu'à présent correct, quand celui-ci est modifié en ajoutant une " "instruction d'affectation quelque part dans le corps d'une fonction." -#: ../Doc/faq/programming.rst:131 +#: faq/programming.rst:118 msgid "This code:" msgstr "Le code suivant :" -#: ../Doc/faq/programming.rst:139 +#: faq/programming.rst:126 msgid "works, but this code:" msgstr "fonctionne, mais le suivant :" -#: ../Doc/faq/programming.rst:146 +#: faq/programming.rst:133 msgid "results in an UnboundLocalError:" msgstr "lève une UnboundLocalError :" -#: ../Doc/faq/programming.rst:153 +#: faq/programming.rst:140 msgid "" "This is because when you make an assignment to a variable in a scope, that " "variable becomes local to that scope and shadows any similarly named " @@ -327,7 +295,7 @@ msgstr "" "nouvelle variable. Par conséquent, quand le ``print(x)`` essaye d'afficher " "la variable non initialisée, une erreur se produit." -#: ../Doc/faq/programming.rst:160 +#: faq/programming.rst:147 msgid "" "In the example above you can access the outer scope variable by declaring it " "global:" @@ -335,7 +303,7 @@ msgstr "" "Dans l'exemple ci-dessus, la variable du contexte appelant reste accessible " "en la déclarant globale :" -#: ../Doc/faq/programming.rst:171 +#: faq/programming.rst:158 msgid "" "This explicit declaration is required in order to remind you that (unlike " "the superficially analogous situation with class and instance variables) you " @@ -346,7 +314,7 @@ msgstr "" "d'instance), c'est la valeur de la variable du contexte appelant qui est " "modifiée :" -#: ../Doc/faq/programming.rst:178 +#: faq/programming.rst:165 msgid "" "You can do a similar thing in a nested scope using the :keyword:`nonlocal` " "keyword:" @@ -354,12 +322,12 @@ msgstr "" "Une alternative dans un contexte imbriqué consiste à utiliser le mot-clé :" "keyword:`nonlocal` :" -#: ../Doc/faq/programming.rst:195 +#: faq/programming.rst:182 msgid "What are the rules for local and global variables in Python?" msgstr "" "Quelles sont les règles pour les variables locales et globales en Python ?" -#: ../Doc/faq/programming.rst:197 +#: faq/programming.rst:184 msgid "" "In Python, variables that are only referenced inside a function are " "implicitly global. If a variable is assigned a value anywhere within the " @@ -371,7 +339,7 @@ msgstr "" "valeur lui est affectée, elle est considérée locale (sauf si elle est " "explicitement déclarée globale)." -#: ../Doc/faq/programming.rst:201 +#: faq/programming.rst:188 msgid "" "Though a bit surprising at first, a moment's consideration explains this. " "On one hand, requiring :keyword:`global` for assigned variables provides a " @@ -390,7 +358,7 @@ msgstr "" "importé. Le codé serait alors truffé de déclarations ``global``, ce qui " "nuirait à leur raison d'être : identifier les effets de bords." -#: ../Doc/faq/programming.rst:211 +#: faq/programming.rst:198 msgid "" "Why do lambdas defined in a loop with different values all return the same " "result?" @@ -398,7 +366,7 @@ msgstr "" "Pourquoi des expressions lambda définies dans une boucle avec des valeurs " "différentes retournent-elles le même résultat ?" -#: ../Doc/faq/programming.rst:213 +#: faq/programming.rst:200 msgid "" "Assume you use a for loop to define a few different lambdas (or even plain " "functions), e.g.::" @@ -406,7 +374,7 @@ msgstr "" "Supposons que l'on utilise une boucle itérative pour définir des expressions " "lambda (voire même des fonctions) différentes, par exemple ::" -#: ../Doc/faq/programming.rst:220 +#: faq/programming.rst:207 msgid "" "This gives you a list that contains 5 lambdas that calculate ``x**2``. You " "might expect that, when called, they would return, respectively, ``0``, " @@ -415,9 +383,9 @@ msgid "" msgstr "" "Le code précédent crée une liste de 5 expressions lambda qui calculent " "chacune ``x**2``. En les exécutant, on pourrait s'attendre à obtenir ``0``, " -"``1``, ``4``, ``9`` et ``16``. Elles renvoient en réalité toutes ``16`` :" +"``1``, ``4``, ``9`` et ``16``. Elles renvoient en réalité toutes ``16`` ::" -#: ../Doc/faq/programming.rst:230 +#: faq/programming.rst:217 msgid "" "This happens because ``x`` is not local to the lambdas, but is defined in " "the outer scope, and it is accessed when the lambda is called --- not when " @@ -427,21 +395,21 @@ msgid "" msgstr "" "Ceci s'explique par le fait que ``x`` n'est pas une variable locale aux " "expressions, mais est définie dans le contexte appelant. Elle est lue à " -"l'appel de l'expression lambda – et non au moment où cette expression est " +"l'appel de l'expression lambda – et non au moment où cette expression est " "définie. À la fin de la boucle, ``x`` vaut ``4``, donc toutes les fonctions " -"renvoient ``4*2``, i.e. ``16``. Ceci se vérifie également en changeant la " -"valeur de ``x`` et en constatant que les résultats sont modifiés :" +"renvoient ``4*2``, c.-à-d. ``16``. Ceci se vérifie également en changeant la " +"valeur de ``x`` et en constatant que les résultats sont modifiés ::" -#: ../Doc/faq/programming.rst:240 +#: faq/programming.rst:227 msgid "" "In order to avoid this, you need to save the values in variables local to " "the lambdas, so that they don't rely on the value of the global ``x``::" msgstr "" "Pour éviter ce phénomène, les valeurs doivent être stockées dans des " "variables locales aux expressions lambda pour que celles-ci ne se basent " -"plus sur la variable globale ``x`` :" +"plus sur la variable globale ``x`` ::" -#: ../Doc/faq/programming.rst:247 +#: faq/programming.rst:234 msgid "" "Here, ``n=x`` creates a new variable ``n`` local to the lambda and computed " "when the lambda is defined so that it has the same value that ``x`` had at " @@ -454,9 +422,9 @@ msgstr "" "``n`` a la même valeur que ``x`` à ce moment. La valeur de ``n`` est donc " "``0`` dans la première lambda, ``1`` dans la deuxième, ``2`` dans la " "troisième et ainsi de suite. Chaque expression lambda renvoie donc le " -"résultat correct :" +"résultat correct ::" -#: ../Doc/faq/programming.rst:258 +#: faq/programming.rst:245 msgid "" "Note that this behaviour is not peculiar to lambdas, but applies to regular " "functions too." @@ -464,11 +432,11 @@ msgstr "" "Ce comportement n'est pas propre aux expressions lambda, mais s'applique " "aussi aux fonctions normales." -#: ../Doc/faq/programming.rst:263 +#: faq/programming.rst:250 msgid "How do I share global variables across modules?" msgstr "Comment partager des variables globales entre modules ?" -#: ../Doc/faq/programming.rst:265 +#: faq/programming.rst:252 msgid "" "The canonical way to share information across modules within a single " "program is to create a special module (often called config or cfg). Just " @@ -484,19 +452,19 @@ msgstr "" "de chaque module, tout changement dans l'instance est propagé partout. Par " "exemple :" -#: ../Doc/faq/programming.rst:271 +#: faq/programming.rst:258 msgid "config.py::" -msgstr "*config.py* ::" +msgstr "*config.py* ::" -#: ../Doc/faq/programming.rst:275 +#: faq/programming.rst:262 msgid "mod.py::" -msgstr "*mod.py* ::" +msgstr "*mod.py* ::" -#: ../Doc/faq/programming.rst:280 +#: faq/programming.rst:267 msgid "main.py::" -msgstr "*main.py* ::" +msgstr "*main.py* ::" -#: ../Doc/faq/programming.rst:286 +#: faq/programming.rst:273 msgid "" "Note that using a module is also the basis for implementing the Singleton " "design pattern, for the same reason." @@ -504,12 +472,12 @@ msgstr "" "Pour les mêmes raisons, l'utilisation d'un module est aussi à la base de " "l'implémentation du patron de conception singleton." -#: ../Doc/faq/programming.rst:291 +#: faq/programming.rst:278 msgid "What are the \"best practices\" for using import in a module?" msgstr "" "Quelles sont les « bonnes pratiques » pour utiliser import dans un module ?" -#: ../Doc/faq/programming.rst:293 +#: faq/programming.rst:280 msgid "" "In general, don't use ``from modulename import *``. Doing so clutters the " "importer's namespace, and makes it much harder for linters to detect " @@ -519,7 +487,7 @@ msgstr "" "encombre l'espace de nommage de l'importateur et rend la détection de noms " "non-définis beaucoup plus ardue pour les analyseurs de code." -#: ../Doc/faq/programming.rst:297 +#: faq/programming.rst:284 msgid "" "Import modules at the top of a file. Doing so makes it clear what other " "modules your code requires and avoids questions of whether the module name " @@ -532,17 +500,17 @@ msgstr "" "rend l'ajout et la suppression d'une importation de module plus aisé, mais " "importer plusieurs modules sur une même ligne prend moins d'espace." -#: ../Doc/faq/programming.rst:302 +#: faq/programming.rst:289 msgid "It's good practice if you import modules in the following order:" msgstr "Il est recommandé d'importer les modules dans l'ordre suivant :" -#: ../Doc/faq/programming.rst:304 +#: faq/programming.rst:291 msgid "standard library modules -- e.g. ``sys``, ``os``, ``getopt``, ``re``" msgstr "" "les modules de la bibliothèque standard — e.g. ``sys``, ``os``, ``getopt``, " "``re``" -#: ../Doc/faq/programming.rst:305 +#: faq/programming.rst:292 msgid "" "third-party library modules (anything installed in Python's site-packages " "directory) -- e.g. mx.DateTime, ZODB, PIL.Image, etc." @@ -550,11 +518,11 @@ msgstr "" "les modules externes (tout ce qui est installé dans le dossier *site-" "packages* de Python) — e.g. *mx.DateTime, ZODB, PIL.Image*, etc." -#: ../Doc/faq/programming.rst:307 +#: faq/programming.rst:294 msgid "locally-developed modules" msgstr "les modules développés en local" -#: ../Doc/faq/programming.rst:309 +#: faq/programming.rst:296 msgid "" "It is sometimes necessary to move imports to a function or class to avoid " "problems with circular imports. Gordon McMillan says:" @@ -563,7 +531,7 @@ msgstr "" "une classe pour éviter les problèmes d'importations circulaires. Comme le " "souligne Gordon McMillan :" -#: ../Doc/faq/programming.rst:312 +#: faq/programming.rst:299 msgid "" "Circular imports are fine where both modules use the \"import \" " "form of import. They fail when the 2nd module wants to grab a name out of " @@ -578,7 +546,7 @@ msgstr "" "fichier. Les noms du premier module ne sont en effet pas encore disponibles " "car le premier module est occupé à importer le second." -#: ../Doc/faq/programming.rst:318 +#: faq/programming.rst:305 msgid "" "In this case, if the second module is only used in one function, then the " "import can easily be moved into that function. By the time the import is " @@ -590,7 +558,7 @@ msgstr "" "où l'importation sera appelée, le premier module aura fini de s'initialiser " "et le second pourra faire son importation." -#: ../Doc/faq/programming.rst:323 +#: faq/programming.rst:310 msgid "" "It may also be necessary to move imports out of the top level of code if " "some of the modules are platform-specific. In that case, it may not even be " @@ -605,7 +573,7 @@ msgstr "" "recommandé d'importer les modules adéquats dans le code spécifique à la " "machine." -#: ../Doc/faq/programming.rst:328 +#: faq/programming.rst:315 msgid "" "Only move imports into a local scope, such as inside a function definition, " "if it's necessary to solve a problem such as avoiding a circular import or " @@ -631,19 +599,19 @@ msgstr "" "dictionnaire. Même si le nom du module est sorti du contexte courant, le " "module est probablement disponible dans :data:`sys.modules`." -#: ../Doc/faq/programming.rst:341 +#: faq/programming.rst:328 msgid "Why are default values shared between objects?" msgstr "Pourquoi les arguments par défaut sont-ils partagés entre les objets ?" -#: ../Doc/faq/programming.rst:343 +#: faq/programming.rst:330 msgid "" "This type of bug commonly bites neophyte programmers. Consider this " "function::" msgstr "" "C'est un problème que rencontrent souvent les programmeurs débutants. " -"Examinons la fonction suivante ::" +"Examinons la fonction suivante ::" -#: ../Doc/faq/programming.rst:350 +#: faq/programming.rst:337 msgid "" "The first time you call this function, ``mydict`` contains a single item. " "The second time, ``mydict`` contains two items because when ``foo()`` begins " @@ -653,7 +621,7 @@ msgstr "" "élément. Au second appel, ``mydict`` contient deux éléments car quand " "``foo()`` commence son exécution, ``mydict`` contient déjà un élément." -#: ../Doc/faq/programming.rst:354 +#: faq/programming.rst:341 msgid "" "It is often expected that a function call creates new objects for default " "values. This is not what happens. Default values are created exactly once, " @@ -661,13 +629,13 @@ msgid "" "dictionary in this example, subsequent calls to the function will refer to " "this changed object." msgstr "" -"On est souvent amené à croire qu'un appel de fonction créé des nouveau " +"On est souvent amené à croire qu'un appel de fonction créé des nouveaux " "objets pour les valeurs par défaut. Ce n'est pas le cas. Les valeurs par " "défaut ne sont créées qu'une et une seule fois, au moment où la fonction est " "définie. Si l'objet est modifié, comme le dictionnaire dans cet exemple, les " "appels suivants à cette fonction font référence à l'objet ainsi modifié." -#: ../Doc/faq/programming.rst:359 +#: faq/programming.rst:346 msgid "" "By definition, immutable objects such as numbers, strings, tuples, and " "``None``, are safe from change. Changes to mutable objects such as " @@ -678,7 +646,7 @@ msgstr "" "sur des objets muables comme les dictionnaires, les listes et les instances " "de classe peuvent porter à confusion." -#: ../Doc/faq/programming.rst:363 +#: faq/programming.rst:350 msgid "" "Because of this feature, it is good programming practice to not use mutable " "objects as default values. Instead, use ``None`` as the default value and " @@ -689,13 +657,13 @@ msgstr "" "muables comme valeurs par défaut. Il vaut mieux utiliser ``None`` comme " "valeur par défaut et, à l'intérieur de la fonction, vérifier si le paramètre " "est à ``None`` et créer une nouvelle liste, dictionnaire ou autre, le cas " -"échéant. Par exemple, il ne faut pas écrire ::" +"échéant. Par exemple, il ne faut pas écrire ::" -#: ../Doc/faq/programming.rst:371 +#: faq/programming.rst:358 msgid "but::" -msgstr "mais plutôt ::" +msgstr "mais plutôt ::" -#: ../Doc/faq/programming.rst:377 +#: faq/programming.rst:364 msgid "" "This feature can be useful. When you have a function that's time-consuming " "to compute, a common technique is to cache the parameters and the resulting " @@ -707,9 +675,9 @@ msgstr "" "paramètres et la valeur de retour de chacun des appels d'une fonction " "coûteuse à exécuter, et de renvoyer la valeur stockée en cache si le même " "appel est ré-effectué. C'est la technique dite de « mémoïsation », qui " -"s'implémente de la manière suivante ::" +"s'implémente de la manière suivante ::" -#: ../Doc/faq/programming.rst:392 +#: faq/programming.rst:379 msgid "" "You could use a global variable containing a dictionary instead of the " "default value; it's a matter of taste." @@ -717,13 +685,13 @@ msgstr "" "Il est possible d'utiliser une variable globale contenant un dictionnaire à " "la place de la valeur par défaut ; ce n'est qu'une question de goût." -#: ../Doc/faq/programming.rst:397 +#: faq/programming.rst:384 msgid "" "How can I pass optional or keyword parameters from one function to another?" msgstr "" "Comment passer des paramètres optionnels ou nommés d'une fonction à l'autre ?" -#: ../Doc/faq/programming.rst:399 +#: faq/programming.rst:386 msgid "" "Collect the arguments using the ``*`` and ``**`` specifiers in the " "function's parameter list; this gives you the positional arguments as a " @@ -734,13 +702,13 @@ msgstr "" "dans la liste des paramètres de la fonction ; ceci donne les arguments " "positionnels sous la forme d'un n-uplet et les arguments nommés sous forme " "de dictionnaire. Ces arguments peuvent être passés à une autre fonction en " -"utilisant ``*`` et ``**`` ::" +"utilisant ``*`` et ``**`` ::" -#: ../Doc/faq/programming.rst:418 +#: faq/programming.rst:405 msgid "What is the difference between arguments and parameters?" msgstr "Quelle est la différence entre les arguments et les paramètres ?" -#: ../Doc/faq/programming.rst:420 +#: faq/programming.rst:407 msgid "" ":term:`Parameters ` are defined by the names that appear in a " "function definition, whereas :term:`arguments ` are the values " @@ -752,40 +720,40 @@ msgstr "" "définition de fonction, alors que les :term:`arguments ` sont les " "valeurs qui sont réellement passées à une fonction lors de l'appel de celle-" "ci. Les paramètres définissent les types des arguments qu'une fonction " -"accepte. Ainsi, avec la définition de fonction suivante ::" +"accepte. Ainsi, avec la définition de fonction suivante ::" -#: ../Doc/faq/programming.rst:428 +#: faq/programming.rst:415 msgid "" "*foo*, *bar* and *kwargs* are parameters of ``func``. However, when calling " "``func``, for example::" msgstr "" "*foo*, *bar* et *kwargs* sont des paramètres de ``func``. Mais à l'appel de " -"``func`` avec, par exemple ::" +"``func`` avec, par exemple ::" -#: ../Doc/faq/programming.rst:433 +#: faq/programming.rst:420 msgid "the values ``42``, ``314``, and ``somevar`` are arguments." msgstr "les valeurs ``42``, ``314``, et ``somevar`` sont des arguments." -#: ../Doc/faq/programming.rst:437 +#: faq/programming.rst:424 msgid "Why did changing list 'y' also change list 'x'?" msgstr "Pourquoi modifier la liste 'y' modifie aussi la liste 'x' ?" -#: ../Doc/faq/programming.rst:439 +#: faq/programming.rst:426 msgid "If you wrote code like::" msgstr "Si vous avez écrit du code comme ::" -#: ../Doc/faq/programming.rst:449 +#: faq/programming.rst:436 msgid "" "you might be wondering why appending an element to ``y`` changed ``x`` too." msgstr "" "vous vous demandez peut-être pourquoi l'ajout d'un élément à ``y`` a aussi " "changé ``x``." -#: ../Doc/faq/programming.rst:451 +#: faq/programming.rst:438 msgid "There are two factors that produce this result:" msgstr "Il y a deux raisons qui conduisent à ce comportement :" -#: ../Doc/faq/programming.rst:453 +#: faq/programming.rst:440 msgid "" "Variables are simply names that refer to objects. Doing ``y = x`` doesn't " "create a copy of the list -- it creates a new variable ``y`` that refers to " @@ -797,14 +765,14 @@ msgstr "" "variable ``y`` qui pointe sur le même objet que ``x``. Ceci signifie qu'il " "n'existe qu'un seul objet (la liste) auquel ``x`` et ``y`` font référence." -#: ../Doc/faq/programming.rst:457 +#: faq/programming.rst:444 msgid "" "Lists are :term:`mutable`, which means that you can change their content." msgstr "" "Les listes sont des :term:`muable`, ce qui signifie que leur contenu peut " "être modifié." -#: ../Doc/faq/programming.rst:459 +#: faq/programming.rst:446 msgid "" "After the call to :meth:`~list.append`, the content of the mutable object " "has changed from ``[]`` to ``[10]``. Since both the variables refer to the " @@ -815,11 +783,11 @@ msgstr "" "objet, il est possible d'accéder à la valeur modifiée ``[10]`` avec chacun " "des noms." -#: ../Doc/faq/programming.rst:463 +#: faq/programming.rst:450 msgid "If we instead assign an immutable object to ``x``::" -msgstr "Si au contraire, on affecte un objet immuable à ``x`` ::" +msgstr "Si au contraire, on affecte un objet immuable à ``x`` ::" -#: ../Doc/faq/programming.rst:473 +#: faq/programming.rst:460 msgid "" "we can see that in this case ``x`` and ``y`` are not equal anymore. This is " "because integers are :term:`immutable`, and when we do ``x = x + 1`` we are " @@ -838,7 +806,7 @@ msgstr "" "(``x`` fait désormais référence à ``6`` mais ``y`` fait toujours référence à " "``5``)." -#: ../Doc/faq/programming.rst:481 +#: faq/programming.rst:468 msgid "" "Some operations (for example ``y.append(10)`` and ``y.sort()``) mutate the " "object, whereas superficially similar operations (for example ``y = y + " @@ -858,7 +826,7 @@ msgstr "" "obtenir une copie triée de ``y`` donne ``None``, ce qui conduit très souvent " "le programme à générer une erreur facile à diagnostiquer." -#: ../Doc/faq/programming.rst:490 +#: faq/programming.rst:477 msgid "" "However, there is one class of operations where the same operation sometimes " "has different behaviors with different types: the augmented assignment " @@ -868,17 +836,17 @@ msgid "" "1`` create new objects)." msgstr "" "Il existe cependant une classe d'opérations qui se comporte différemment " -"selon le type : les opérateurs d'affectation incrémentaux. Par exemple, ``" -"+=`` modifie les listes mais pas les n-uplets ni les entiers (``a_list += " +"selon le type : les opérateurs d'affectation incrémentaux. Par exemple, " +"``+=`` modifie les listes mais pas les n-uplets ni les entiers (``a_list += " "[1, 2, 3]`` équivaut à ``a_list.extend([1, 2, 3])`` et modifie ``a_list``, " "alors que ``some_tuple += (1, 2, 3)`` et ``some_int += 1`` créent de " "nouveaux objets)." -#: ../Doc/faq/programming.rst:497 +#: faq/programming.rst:484 msgid "In other words:" msgstr "En d'autres termes :" -#: ../Doc/faq/programming.rst:499 +#: faq/programming.rst:486 msgid "" "If we have a mutable object (:class:`list`, :class:`dict`, :class:`set`, " "etc.), we can use some specific operations to mutate it and all the " @@ -888,7 +856,7 @@ msgstr "" "class:`list`, :class:`dict`, :class:`set`, etc.) et toutes les variables qui " "y font référence verront le changement." -#: ../Doc/faq/programming.rst:502 +#: faq/programming.rst:489 msgid "" "If we have an immutable object (:class:`str`, :class:`int`, :class:`tuple`, " "etc.), all the variables that refer to it will always see the same value, " @@ -900,7 +868,7 @@ msgstr "" "opérations qui transforment cette valeur en une nouvelle valeur renvoient " "toujours un nouvel objet." -#: ../Doc/faq/programming.rst:507 +#: faq/programming.rst:494 msgid "" "If you want to know if two variables refer to the same object or not, you " "can use the :keyword:`is` operator, or the built-in function :func:`id`." @@ -908,13 +876,13 @@ msgstr "" "L'opérateur :keyword:`is` ou la fonction native :func:`id` permettent de " "savoir si deux variables font référence au même objet." -#: ../Doc/faq/programming.rst:512 +#: faq/programming.rst:499 msgid "How do I write a function with output parameters (call by reference)?" msgstr "" "Comment écrire une fonction qui modifie ses paramètres ? (passage par " "référence)" -#: ../Doc/faq/programming.rst:514 +#: faq/programming.rst:501 msgid "" "Remember that arguments are passed by assignment in Python. Since " "assignment just creates references to objects, there's no alias between an " @@ -922,20 +890,20 @@ msgid "" "You can achieve the desired effect in a number of ways." msgstr "" "En Python, les arguments sont passés comme des affectations de variables. Vu " -"qu'une affectation crée des références à des objets, il n'y pas de lien " +"qu'une affectation crée des références à des objets, il n'y a pas de lien " "entre un argument dans l'appel de la fonction et sa définition, et donc pas " -"de passage par référence en soi. Il y a cependant plusieurs façon d'en " +"de passage par référence en soi. Il y a cependant plusieurs façons d'en " "émuler un." -#: ../Doc/faq/programming.rst:519 +#: faq/programming.rst:506 msgid "By returning a tuple of the results::" -msgstr "En renvoyant un n-uplet de résultats ::" +msgstr "En renvoyant un n-uplet de résultats ::" -#: ../Doc/faq/programming.rst:530 +#: faq/programming.rst:517 msgid "This is almost always the clearest solution." msgstr "C'est presque toujours la meilleure solution." -#: ../Doc/faq/programming.rst:532 +#: faq/programming.rst:519 msgid "" "By using global variables. This isn't thread-safe, and is not recommended." msgstr "" @@ -943,33 +911,33 @@ msgstr "" "des contextes à plusieurs fils d'exécution (elle n'est pas *thread-safe*), " "et n'est donc pas recommandée." -#: ../Doc/faq/programming.rst:534 +#: faq/programming.rst:521 msgid "By passing a mutable (changeable in-place) object::" msgstr "En passant un objet muable (modifiable sur place) ::" -#: ../Doc/faq/programming.rst:544 +#: faq/programming.rst:532 msgid "By passing in a dictionary that gets mutated::" msgstr "En passant un dictionnaire, qui sera modifié ::" -#: ../Doc/faq/programming.rst:554 +#: faq/programming.rst:543 msgid "Or bundle up values in a class instance::" msgstr "Ou regrouper les valeurs dans une instance de classe ::" -#: ../Doc/faq/programming.rst:570 +#: faq/programming.rst:560 msgid "There's almost never a good reason to get this complicated." msgstr "Faire quelque chose d'aussi compliqué est rarement une bonne idée." -#: ../Doc/faq/programming.rst:572 +#: faq/programming.rst:562 msgid "Your best choice is to return a tuple containing the multiple results." msgstr "" "La meilleure option reste de renvoyer un n-uplet contenant les différents " "résultats." -#: ../Doc/faq/programming.rst:576 +#: faq/programming.rst:566 msgid "How do you make a higher order function in Python?" msgstr "Comment construire une fonction d'ordre supérieur en Python ?" -#: ../Doc/faq/programming.rst:578 +#: faq/programming.rst:568 msgid "" "You have two choices: you can use nested scopes or you can use callable " "objects. For example, suppose you wanted to define ``linear(a,b)`` which " @@ -981,19 +949,19 @@ msgstr "" "``linear(a, b)`` qui renvoie une fonction ``f(x)`` qui calcule la valeur " "``a*x+b``. En utilisant les portées imbriquées ::" -#: ../Doc/faq/programming.rst:587 +#: faq/programming.rst:577 msgid "Or using a callable object::" msgstr "Ou en utilisant un objet appelable ::" -#: ../Doc/faq/programming.rst:597 +#: faq/programming.rst:587 msgid "In both cases, ::" -msgstr "Dans les deux cas, ::" +msgstr "Dans les deux cas ::" -#: ../Doc/faq/programming.rst:601 +#: faq/programming.rst:591 msgid "gives a callable object where ``taxes(10e6) == 0.3 * 10e6 + 2``." msgstr "donne un objet appelable où ``taxes(10e6) == 0.3 * 10e6 + 2``." -#: ../Doc/faq/programming.rst:603 +#: faq/programming.rst:593 msgid "" "The callable object approach has the disadvantage that it is a bit slower " "and results in slightly longer code. However, note that a collection of " @@ -1004,11 +972,11 @@ msgstr "" "collection d'objet appelables peuvent partager leurs signatures par " "héritage ::" -#: ../Doc/faq/programming.rst:612 +#: faq/programming.rst:602 msgid "Object can encapsulate state for several methods::" msgstr "Les objets peuvent encapsuler un état pour plusieurs méthodes ::" -#: ../Doc/faq/programming.rst:630 +#: faq/programming.rst:620 msgid "" "Here ``inc()``, ``dec()`` and ``reset()`` act like functions which share the " "same counting variable." @@ -1016,11 +984,11 @@ msgstr "" "Ici ``inc()``, ``dec()`` et ``reset()`` agissent comme des fonctions " "partageant une même variable compteur." -#: ../Doc/faq/programming.rst:635 +#: faq/programming.rst:625 msgid "How do I copy an object in Python?" -msgstr "Comment copier un objet en Python?" +msgstr "Comment copier un objet en Python ?" -#: ../Doc/faq/programming.rst:637 +#: faq/programming.rst:627 msgid "" "In general, try :func:`copy.copy` or :func:`copy.deepcopy` for the general " "case. Not all objects can be copied, but most can." @@ -1028,7 +996,7 @@ msgstr "" "En général, essayez :func:`copy.copy` ou :func:`copy.deepcopy`. Tous les " "objets ne peuvent pas être copiés, mais la plupart le peuvent." -#: ../Doc/faq/programming.rst:640 +#: faq/programming.rst:630 msgid "" "Some objects can be copied more easily. Dictionaries have a :meth:`~dict." "copy` method::" @@ -1036,15 +1004,15 @@ msgstr "" "Certains objets peuvent être copiés plus facilement que d'autres. Les " "dictionnaires ont une méthode :meth:`~dict.copy` ::" -#: ../Doc/faq/programming.rst:645 +#: faq/programming.rst:635 msgid "Sequences can be copied by slicing::" msgstr "Les séquences peuvent être copiées via la syntaxe des tranches ::" -#: ../Doc/faq/programming.rst:651 +#: faq/programming.rst:641 msgid "How can I find the methods or attributes of an object?" msgstr "Comment récupérer les méthodes ou les attributs d'un objet ?" -#: ../Doc/faq/programming.rst:653 +#: faq/programming.rst:643 msgid "" "For an instance x of a user-defined class, ``dir(x)`` returns an " "alphabetized list of the names containing the instance attributes and " @@ -1054,12 +1022,11 @@ msgstr "" "renvoie une liste alphabétique des noms contenants les attributs de " "l'instance, et les attributs et méthodes définies par sa classe." -#: ../Doc/faq/programming.rst:659 +#: faq/programming.rst:649 msgid "How can my code discover the name of an object?" msgstr "Comment un code peut-il obtenir le nom d'un objet ?" -#: ../Doc/faq/programming.rst:661 -#, fuzzy +#: faq/programming.rst:651 msgid "" "Generally speaking, it can't, because objects don't really have names. " "Essentially, assignment always binds a name to a value; the same is true of " @@ -1068,11 +1035,11 @@ msgid "" msgstr "" "C'est impossible en général, parce qu'un objet n'a pas de nom à proprement " "parler. Schématiquement, l'affectation fait correspondre un nom à une " -"valeur ; c'est vrai aussi pour les instructions ``def`` et ``class``, à la " +"valeur ; c'est vrai aussi pour les instructions ``def`` et ``class``, à la " "différence près que, dans ce cas, la valeur est un appelable. Par exemple, " "dans le code suivant ::" -#: ../Doc/faq/programming.rst:677 +#: faq/programming.rst:667 msgid "" "Arguably the class has a name: even though it is bound to two names and " "invoked through the name B the created instance is still reported as an " @@ -1085,7 +1052,7 @@ msgstr "" "dire si le nom de l'instance est a ou b, les deux noms étant attachés à la " "même valeur." -#: ../Doc/faq/programming.rst:682 +#: faq/programming.rst:672 msgid "" "Generally speaking it should not be necessary for your code to \"know the " "names\" of particular values. Unless you are deliberately writing " @@ -1097,7 +1064,7 @@ msgstr "" "train d'écrire un programme introspectif, c'est souvent l'indication qu'un " "changement d'approche serait bénéfique." -#: ../Doc/faq/programming.rst:687 +#: faq/programming.rst:677 msgid "" "In comp.lang.python, Fredrik Lundh once gave an excellent analogy in answer " "to this question:" @@ -1105,7 +1072,7 @@ msgstr "" "Sur *comp.lang.python*, Fredrik Lundh a donné un jour une excellente " "analogie pour répondre à cette question :" -#: ../Doc/faq/programming.rst:690 +#: faq/programming.rst:680 msgid "" "The same way as you get the name of that cat you found on your porch: the " "cat (object) itself cannot tell you its name, and it doesn't really care -- " @@ -1115,9 +1082,9 @@ msgstr "" "C'est pareil que trouver le nom du chat qui traîne devant votre porte : le " "chat (objet) ne peut pas vous dire lui-même son nom, et il s'en moque un peu " "­– alors le meilleur moyen de savoir comment il s'appelle est de demander à " -"tous vos voisins (espaces de nommage) si c'est leur chat (objet)…." +"tous vos voisins (espaces de nommage) si c'est leur chat (objet)…" -#: ../Doc/faq/programming.rst:695 +#: faq/programming.rst:685 msgid "" "....and don't be surprised if you'll find that it's known by many names, or " "no name at all!" @@ -1125,16 +1092,16 @@ msgstr "" "…et ne soyez pas surpris si vous découvrez qu'il est connu sous plusieurs " "noms, ou s'il n'a pas de nom du tout !" -#: ../Doc/faq/programming.rst:700 +#: faq/programming.rst:690 msgid "What's up with the comma operator's precedence?" msgstr "Qu'en est-il de la précédence de l'opérateur virgule ?" -#: ../Doc/faq/programming.rst:702 +#: faq/programming.rst:692 msgid "Comma is not an operator in Python. Consider this session::" msgstr "" "La virgule n'est pas un opérateur en Python. Observez le code suivant ::" -#: ../Doc/faq/programming.rst:707 +#: faq/programming.rst:697 msgid "" "Since the comma is not an operator, but a separator between expressions the " "above is evaluated as if you had entered::" @@ -1143,11 +1110,11 @@ msgstr "" "expressions, l'expression ci-dessus est évaluée de la même façon que si vous " "aviez écrit ::" -#: ../Doc/faq/programming.rst:712 +#: faq/programming.rst:702 msgid "not::" msgstr "et non ::" -#: ../Doc/faq/programming.rst:716 +#: faq/programming.rst:706 msgid "" "The same is true of the various assignment operators (``=``, ``+=`` etc). " "They are not truly operators but syntactic delimiters in assignment " @@ -1157,23 +1124,23 @@ msgstr "" "ne sont pas vraiment des opérateurs mais plutôt des délimiteurs syntaxiques " "dans les instructions d'affectation." -#: ../Doc/faq/programming.rst:721 +#: faq/programming.rst:711 msgid "Is there an equivalent of C's \"?:\" ternary operator?" msgstr "Existe-t-il un équivalent à l'opérateur ternaire \"?:\" du C ?" -#: ../Doc/faq/programming.rst:723 +#: faq/programming.rst:713 msgid "Yes, there is. The syntax is as follows::" msgstr "Oui. Sa syntaxe est la suivante ::" -#: ../Doc/faq/programming.rst:730 +#: faq/programming.rst:720 msgid "" "Before this syntax was introduced in Python 2.5, a common idiom was to use " "logical operators::" msgstr "" "Avant l'introduction de cette syntaxe dans Python 2.5, il était courant " -"d'utiliser les opérateurs de logique ::" +"d'utiliser les opérateurs de logique ::" -#: ../Doc/faq/programming.rst:735 +#: faq/programming.rst:725 msgid "" "However, this idiom is unsafe, as it can give wrong results when *on_true* " "has a false boolean value. Therefore, it is always better to use the ``... " @@ -1183,13 +1150,13 @@ msgstr "" "la valeur booléenne fausse. Il faut donc toujours utiliser la forme ``... " "if ... else ...``." -#: ../Doc/faq/programming.rst:741 +#: faq/programming.rst:731 msgid "Is it possible to write obfuscated one-liners in Python?" msgstr "" "Est-il possible d'écrire des programmes obscurcis (*obfuscated*) d'une ligne " "en Python ?" -#: ../Doc/faq/programming.rst:743 +#: faq/programming.rst:733 msgid "" "Yes. Usually this is done by nesting :keyword:`lambda` within :keyword:`!" "lambda`. See the following three examples, due to Ulf Bartelt::" @@ -1198,18 +1165,17 @@ msgstr "" "keyword:`!lambda`. Par exemple les trois morceaux de code suivants, créés " "par Ulf Bartelt ::" -#: ../Doc/faq/programming.rst:770 +#: faq/programming.rst:760 msgid "Don't try this at home, kids!" msgstr "Les enfants, ne faites pas ça chez vous !" -#: ../Doc/faq/programming.rst:776 +#: faq/programming.rst:766 msgid "What does the slash(/) in the parameter list of a function mean?" msgstr "" "Que signifie la barre oblique (/) dans la liste des paramètres d'une " "fonction ?" -#: ../Doc/faq/programming.rst:778 -#, fuzzy +#: faq/programming.rst:768 msgid "" "A slash in the argument list of a function denotes that the parameters prior " "to it are positional-only. Positional-only parameters are the ones without " @@ -1223,30 +1189,29 @@ msgstr "" "uniquement positionnels ne peuvent pas être référencés par leur nom depuis " "l'extérieur. Lors de l'appel d'une fonction qui accepte des paramètres " "uniquement positionnels, les arguments sont affectés aux paramètres en " -"fonction de leur position. Par exemple, la fonction :func:`pow` n'accepte " +"fonction de leur position. Par exemple, la fonction :func:`divmod` n'accepte " "que des paramètres uniquement positionnels. Sa documentation est la " -"suivante ::" +"suivante ::" -#: ../Doc/faq/programming.rst:791 -#, fuzzy +#: faq/programming.rst:781 msgid "" "The slash at the end of the parameter list means that both parameters are " "positional-only. Thus, calling :func:`divmod` with keyword arguments would " "lead to an error::" msgstr "" "La barre oblique à la fin de la liste des paramètres signifie que les trois " -"paramètres sont uniquement positionnels. Et donc, appeler :func:`pow` avec " -"des arguments nommés provoque une erreur ::" +"paramètres sont uniquement positionnels. Et donc, appeler :func:`divmod` " +"avec des arguments nommés provoque une erreur ::" -#: ../Doc/faq/programming.rst:802 +#: faq/programming.rst:792 msgid "Numbers and strings" msgstr "Nombres et chaînes de caractères" -#: ../Doc/faq/programming.rst:805 +#: faq/programming.rst:795 msgid "How do I specify hexadecimal and octal integers?" msgstr "Comment écrire des entiers hexadécimaux ou octaux ?" -#: ../Doc/faq/programming.rst:807 +#: faq/programming.rst:797 msgid "" "To specify an octal digit, precede the octal value with a zero, and then a " "lower or uppercase \"o\". For example, to set the variable \"a\" to the " @@ -1256,7 +1221,7 @@ msgstr "" "puis un \"o\" majuscule ou minuscule. Par exemple pour affecter la valeur " "octale \"10\" (8 en décimal) à la variable \"a\", tapez ::" -#: ../Doc/faq/programming.rst:815 +#: faq/programming.rst:805 msgid "" "Hexadecimal is just as easy. Simply precede the hexadecimal number with a " "zero, and then a lower or uppercase \"x\". Hexadecimal digits can be " @@ -1264,22 +1229,22 @@ msgid "" msgstr "" "L'hexadécimal est tout aussi simple, faites précéder le nombre hexadécimal " "par un zéro, puis un \"x\" majuscule ou minuscule. Les nombres hexadécimaux " -"peuvent être écrit en majuscules ou en minuscules. Par exemple, dans " +"peuvent être écrits en majuscules ou en minuscules. Par exemple, dans " "l'interpréteur Python ::" -#: ../Doc/faq/programming.rst:828 +#: faq/programming.rst:818 msgid "Why does -22 // 10 return -3?" msgstr "Pourquoi ``-22 // 10`` donne-t-il ``-3`` ?" -#: ../Doc/faq/programming.rst:830 +#: faq/programming.rst:820 msgid "" "It's primarily driven by the desire that ``i % j`` have the same sign as " "``j``. If you want that, and also want::" msgstr "" "Cela est principalement dû à la volonté que ``i % j`` ait le même signe que " -"j. Si vous voulez en plus que ::" +"j. Si vous voulez en plus que ::" -#: ../Doc/faq/programming.rst:835 +#: faq/programming.rst:825 msgid "" "then integer division has to return the floor. C also requires that " "identity to hold, and then compilers that truncate ``i // j`` need to make " @@ -1289,7 +1254,7 @@ msgstr "" "également que cette égalité soit vérifiée, et donc les compilateurs qui " "tronquent ``i // j`` ont besoin que ``i % j`` ait le même signe que ``i``." -#: ../Doc/faq/programming.rst:839 +#: faq/programming.rst:829 msgid "" "There are few real use cases for ``i % j`` when ``j`` is negative. When " "``j`` is positive, there are many, and in virtually all of them it's more " @@ -1300,14 +1265,14 @@ msgstr "" "Il y a peu de cas d'utilisation réels pour ``i % j`` quand ``j`` est " "négatif. Quand ``j`` est positif, il y en a beaucoup, et dans pratiquement " "tous, il est plus utile que ``i % j`` soit ``>=0``. Si l'horloge affiche " -"10h maintenant, qu'affichait-elle il y a 200 heures ? ``-190 % 12 == 2`` est " -"utile ; ``-190 % 12 == -10`` est un bogue en puissance." +"10 h maintenant, qu'affichait-elle il y a 200 heures ? ``-190 % 12 == 2`` " +"est utile ; ``-190 % 12 == -10`` est un bogue en puissance." -#: ../Doc/faq/programming.rst:847 +#: faq/programming.rst:837 msgid "How do I convert a string to a number?" msgstr "Comment convertir une chaîne de caractères en nombre ?" -#: ../Doc/faq/programming.rst:849 +#: faq/programming.rst:839 msgid "" "For integers, use the built-in :func:`int` type constructor, e.g. " "``int('144') == 144``. Similarly, :func:`float` converts to floating-point, " @@ -1317,7 +1282,7 @@ msgstr "" "``int('144') == 144``. De façon similaire, :func:`float` donne la valeur " "flottante, par exemple ``float('144') == 144.0``." -#: ../Doc/faq/programming.rst:853 +#: faq/programming.rst:843 msgid "" "By default, these interpret the number as decimal, so that ``int('0144') == " "144`` and ``int('0x144')`` raises :exc:`ValueError`. ``int(string, base)`` " @@ -1333,7 +1298,7 @@ msgstr "" "donnée est 0, le nombre est interprété selon les règles Python : un préfixe " "``0o`` indique de l'octal et ``0x`` indique de l'hexadécimal." -#: ../Doc/faq/programming.rst:859 +#: faq/programming.rst:849 msgid "" "Do not use the built-in function :func:`eval` if all you need is to convert " "strings to numbers. :func:`eval` will be significantly slower and it " @@ -1349,22 +1314,22 @@ msgstr "" "pourrait passer ``__import__('os').system(\"rm -rf $HOME\")`` ce qui " "effacerait votre répertoire personnel." -#: ../Doc/faq/programming.rst:866 +#: faq/programming.rst:856 msgid "" ":func:`eval` also has the effect of interpreting numbers as Python " "expressions, so that e.g. ``eval('09')`` gives a syntax error because Python " "does not allow leading '0' in a decimal number (except '0')." msgstr "" -":func:`eval` a aussi pour effet d'interpréter les nombres comme comme des " +":func:`eval` a aussi pour effet d'interpréter les nombres comme des " "expressions Python. Ainsi ``eval('09')`` produit une erreur de syntaxe, " "parce que Python ne permet pas les '0' en tête d'un nombre décimal (à " "l'exception du nombre '0')." -#: ../Doc/faq/programming.rst:872 +#: faq/programming.rst:862 msgid "How do I convert a number to a string?" msgstr "Comment convertir un nombre en chaîne de caractères ?" -#: ../Doc/faq/programming.rst:874 +#: faq/programming.rst:864 msgid "" "To convert, e.g., the number 144 to the string '144', use the built-in type " "constructor :func:`str`. If you want a hexadecimal or octal representation, " @@ -1378,14 +1343,14 @@ msgstr "" "représentation hexadécimale ou octale, il faut utiliser les fonctions " "natives :func:`hex` ou :func:`oct`. Pour des représentations non-" "conventionnelles, se référer aux sections :ref:`f-strings` et :ref:" -"`formatstrings`, e.g. ``\"{:04d}\".format(144)`` produit ``'0144'`` et ``" -"\"{:.3f}\".format(1.0/3.0)`` produit ``'0.333'``." +"`formatstrings`, e.g. ``\"{:04d}\".format(144)`` produit ``'0144'`` et " +"``\"{:.3f}\".format(1.0/3.0)`` produit ``'0.333'``." -#: ../Doc/faq/programming.rst:883 +#: faq/programming.rst:873 msgid "How do I modify a string in place?" msgstr "Comment modifier une chaîne de caractères « sur place » ?" -#: ../Doc/faq/programming.rst:885 +#: faq/programming.rst:875 msgid "" "You can't, because strings are immutable. In most situations, you should " "simply construct a new string from the various parts you want to assemble it " @@ -1397,19 +1362,19 @@ msgstr "" "plupart des cas, il faut tout simplement construire une nouvelle chaîne à " "partir des morceaux de l'ancienne. Si toutefois vous avez besoin d'un objet " "capable de modifier de la donnée Unicode « sur place », essayez d'utiliser " -"un objet :class:`io.StringIO` ou le module :mod:`array` ::" +"un objet :class:`io.StringIO` ou le module :mod:`array` ::" -#: ../Doc/faq/programming.rst:915 +#: faq/programming.rst:905 msgid "How do I use strings to call functions/methods?" msgstr "" "Comment utiliser des chaînes de caractères pour appeler des fonctions/" -"méthodes?" +"méthodes ?" -#: ../Doc/faq/programming.rst:917 +#: faq/programming.rst:907 msgid "There are various techniques." msgstr "Il y a plusieurs façons de faire." -#: ../Doc/faq/programming.rst:919 +#: faq/programming.rst:909 msgid "" "The best is to use a dictionary that maps strings to functions. The primary " "advantage of this technique is that the strings do not need to match the " @@ -1419,14 +1384,14 @@ msgstr "" "La meilleure est d'utiliser un dictionnaire qui fait correspondre les " "chaînes de caractères à des fonctions. Le principal avantage de cette " "technique est que les chaînes n'ont pas besoin d'être égales aux noms de " -"fonctions. C'est aussi la façon principale d'imiter la construction \"case" -"\" ::" +"fonctions. C'est aussi la façon principale d'imiter la construction " +"\"case\" ::" -#: ../Doc/faq/programming.rst:934 +#: faq/programming.rst:924 msgid "Use the built-in function :func:`getattr`::" msgstr "Utiliser la fonction :func:`getattr` ::" -#: ../Doc/faq/programming.rst:939 +#: faq/programming.rst:929 msgid "" "Note that :func:`getattr` works on any object, including classes, class " "instances, modules, and so on." @@ -1434,19 +1399,19 @@ msgstr "" "Notez que :func:`getattr` marche sur n'importe quel objet, ceci inclut les " "classes, les instances de classes, les modules et ainsi de suite." -#: ../Doc/faq/programming.rst:942 +#: faq/programming.rst:932 msgid "This is used in several places in the standard library, like this::" msgstr "" "Ceci est utilisé à plusieurs reprises dans la bibliothèque standard, de " "cette façon ::" -#: ../Doc/faq/programming.rst:955 +#: faq/programming.rst:945 msgid "Use :func:`locals` or :func:`eval` to resolve the function name::" msgstr "" "Utilisez :func:`locals` ou :func:`eval` pour résoudre le nom de la " "fonction ::" -#: ../Doc/faq/programming.rst:968 +#: faq/programming.rst:958 msgid "" "Note: Using :func:`eval` is slow and dangerous. If you don't have absolute " "control over the contents of the string, someone could pass a string that " @@ -1457,7 +1422,7 @@ msgstr "" "pourrait passer une chaîne de caractères pouvant appeler n'importe quelle " "fonction." -#: ../Doc/faq/programming.rst:973 +#: faq/programming.rst:963 msgid "" "Is there an equivalent to Perl's chomp() for removing trailing newlines from " "strings?" @@ -1465,7 +1430,7 @@ msgstr "" "Existe-t-il un équivalent à la fonction ``chomp()`` de Perl, pour retirer " "les caractères de fin de ligne d'une chaîne de caractères ?" -#: ../Doc/faq/programming.rst:975 +#: faq/programming.rst:965 msgid "" "You can use ``S.rstrip(\"\\r\\n\")`` to remove all occurrences of any line " "terminator from the end of the string ``S`` without removing other trailing " @@ -1477,9 +1442,9 @@ msgstr "" "occurrences de tout marqueur de fin de ligne à la fin d'une chaîne de " "caractère ``S``, sans en enlever aucune espace. Si la chaîne ``S`` " "représente plus d'une ligne, avec plusieurs lignes vides, les marqueurs de " -"fin de de ligne de chaque ligne vide seront retirés ::" +"fin de ligne de chaque ligne vide seront retirés ::" -#: ../Doc/faq/programming.rst:987 +#: faq/programming.rst:977 msgid "" "Since this is typically only desired when reading text one line at a time, " "using ``S.rstrip()`` this way works well." @@ -1487,15 +1452,15 @@ msgstr "" "Vu que cela ne sert presque qu'à lire un texte ligne à ligne, utiliser ``S." "rstrip()`` de cette manière fonctionne correctement." -#: ../Doc/faq/programming.rst:992 +#: faq/programming.rst:982 msgid "Is there a scanf() or sscanf() equivalent?" msgstr "Existe-t-il un équivalent à ``scanf()`` ou ``sscanf()`` ?" -#: ../Doc/faq/programming.rst:994 +#: faq/programming.rst:984 msgid "Not as such." msgstr "Pas exactement." -#: ../Doc/faq/programming.rst:996 +#: faq/programming.rst:986 msgid "" "For simple input parsing, the easiest approach is usually to split the line " "into whitespace-delimited words using the :meth:`~str.split` method of " @@ -1512,7 +1477,7 @@ msgstr "" "paramètre optionnel \"sep\" qui est utile si la ligne utilise autre chose " "que des espaces comme séparateurs." -#: ../Doc/faq/programming.rst:1002 +#: faq/programming.rst:992 msgid "" "For more complicated input parsing, regular expressions are more powerful " "than C's :c:func:`sscanf` and better suited for the task." @@ -1521,24 +1486,24 @@ msgstr "" "puissantes que la fonction :c:func:`sscanf` de C et mieux adaptées à la " "tâche." -#: ../Doc/faq/programming.rst:1007 +#: faq/programming.rst:997 msgid "What does 'UnicodeDecodeError' or 'UnicodeEncodeError' error mean?" msgstr "" "Que signifient les erreurs ``UnicodeDecodeError`` ou ``UnicodeEncodeError`` ?" -#: ../Doc/faq/programming.rst:1009 +#: faq/programming.rst:999 msgid "See the :ref:`unicode-howto`." msgstr "Voir :ref:`unicode-howto`." -#: ../Doc/faq/programming.rst:1013 +#: faq/programming.rst:1003 msgid "Performance" msgstr "Performances" -#: ../Doc/faq/programming.rst:1016 +#: faq/programming.rst:1006 msgid "My program is too slow. How do I speed it up?" msgstr "Mon programme est trop lent. Comment l'accélérer ?" -#: ../Doc/faq/programming.rst:1018 +#: faq/programming.rst:1008 msgid "" "That's a tough one, in general. First, here are a list of things to " "remember before diving further:" @@ -1546,15 +1511,15 @@ msgstr "" "Question difficile en général. Il faut garder en tête les points suivants " "avant d'aller plus loin :" -#: ../Doc/faq/programming.rst:1021 +#: faq/programming.rst:1011 msgid "" "Performance characteristics vary across Python implementations. This FAQ " -"focusses on :term:`CPython`." +"focuses on :term:`CPython`." msgstr "" "Les performances varient en fonction des implémentations de Python. Cette " "FAQ ne traite que de :term:`CPython`." -#: ../Doc/faq/programming.rst:1023 +#: faq/programming.rst:1013 msgid "" "Behaviour can vary across operating systems, especially when talking about I/" "O or multi-threading." @@ -1563,7 +1528,7 @@ msgstr "" "tout particulièrement quand il s'agit d'entrée/sortie ou de fils d'exécution " "multiples." -#: ../Doc/faq/programming.rst:1025 +#: faq/programming.rst:1015 msgid "" "You should always find the hot spots in your program *before* attempting to " "optimize any code (see the :mod:`profile` module)." @@ -1572,7 +1537,7 @@ msgstr "" "programme *avant* d'essayer d'optimiser du code (voir le module :mod:" "`profile`)." -#: ../Doc/faq/programming.rst:1027 +#: faq/programming.rst:1017 msgid "" "Writing benchmark scripts will allow you to iterate quickly when searching " "for improvements (see the :mod:`timeit` module)." @@ -1580,7 +1545,7 @@ msgstr "" "Écrire des scripts d'évaluation de performances permet de progresser " "rapidement dans la recherche d'améliorations (voir le module :mod:`timeit`)." -#: ../Doc/faq/programming.rst:1029 +#: faq/programming.rst:1019 msgid "" "It is highly recommended to have good code coverage (through unit testing or " "any other technique) before potentially introducing regressions hidden in " @@ -1590,7 +1555,7 @@ msgstr "" "des tests unitaires ou autre) avant d'ajouter des erreurs dans des " "optimisations sophistiquées." -#: ../Doc/faq/programming.rst:1033 +#: faq/programming.rst:1023 msgid "" "That being said, there are many tricks to speed up Python code. Here are " "some general principles which go a long way towards reaching acceptable " @@ -1600,7 +1565,7 @@ msgstr "" "Voici quelques principes généraux qui peuvent aider à atteindre des niveaux " "de performance satisfaisants :" -#: ../Doc/faq/programming.rst:1037 +#: faq/programming.rst:1027 msgid "" "Making your algorithms faster (or changing to faster ones) can yield much " "larger benefits than trying to sprinkle micro-optimization tricks all over " @@ -1610,7 +1575,7 @@ msgstr "" "produire de bien meilleurs résultats que d'optimiser ça et là de petites " "portions du code." -#: ../Doc/faq/programming.rst:1041 +#: faq/programming.rst:1031 msgid "" "Use the right data structures. Study documentation for the :ref:`bltin-" "types` and the :mod:`collections` module." @@ -1618,7 +1583,7 @@ msgstr "" "Utiliser les structures de données adaptées. Se référer à la documentation " "des :ref:`bltin-types` et du module :mod:`collections`." -#: ../Doc/faq/programming.rst:1044 +#: faq/programming.rst:1034 msgid "" "When the standard library provides a primitive for doing something, it is " "likely (although not guaranteed) to be faster than any alternative you may " @@ -1637,7 +1602,7 @@ msgstr "" "référer à la section :ref:`sortinghowto` pour des exemples d'utilisation " "courante)." -#: ../Doc/faq/programming.rst:1052 +#: faq/programming.rst:1042 msgid "" "Abstractions tend to create indirections and force the interpreter to work " "more. If the levels of indirection outweigh the amount of useful work done, " @@ -1646,12 +1611,12 @@ msgid "" "detrimental to readability)." msgstr "" "Les abstractions ont tendance à créer des indirections et obligent " -"l'interpréteur à faire plus d'efforts. Si le niveau d'indirection dépasse le " -"quantité de travail effectif, le programme sera ralentit. Il faut toujours " +"l'interpréteur à faire plus d'efforts. Si le niveau d'indirection dépasse la " +"quantité de travail effectif, le programme sera ralenti. Il faut toujours " "éviter trop d'indirections, en particulier sous la forme de fonctions ou " "méthodes trop petites (qui nuisent aussi souvent à la clarté du code)." -#: ../Doc/faq/programming.rst:1058 +#: faq/programming.rst:1048 msgid "" "If you have reached the limit of what pure Python can allow, there are tools " "to take you further away. For example, `Cython `_ can " @@ -1672,7 +1637,7 @@ msgstr "" "vous pouvez aussi :ref:`écrire un module d'extension en C` " "vous-même." -#: ../Doc/faq/programming.rst:1068 +#: faq/programming.rst:1058 msgid "" "The wiki page devoted to `performance tips `_." @@ -1680,13 +1645,13 @@ msgstr "" "La page wiki dédiée aux `astuces de performance `_." -#: ../Doc/faq/programming.rst:1074 +#: faq/programming.rst:1064 msgid "What is the most efficient way to concatenate many strings together?" msgstr "" "Quelle est la manière la plus efficace de concaténer un grand nombre de " "chaînes de caractères ?" -#: ../Doc/faq/programming.rst:1076 +#: faq/programming.rst:1066 msgid "" ":class:`str` and :class:`bytes` objects are immutable, therefore " "concatenating many strings together is inefficient as each concatenation " @@ -1699,22 +1664,22 @@ msgstr "" "général, la complexité est quadratique par rapport à la taille totale de la " "chaîne." -#: ../Doc/faq/programming.rst:1081 +#: faq/programming.rst:1071 msgid "" "To accumulate many :class:`str` objects, the recommended idiom is to place " "them into a list and call :meth:`str.join` at the end::" msgstr "" "Pour mettre bout-à-bout un grand nombre d'objets :class:`str`, la technique " "recommandée consiste à toutes les mettre dans une liste et appeler la " -"méthode :meth:`str.join` à la fin ::" +"méthode :meth:`str.join` à la fin ::" -#: ../Doc/faq/programming.rst:1089 +#: faq/programming.rst:1079 msgid "(another reasonably efficient idiom is to use :class:`io.StringIO`)" msgstr "" "(une autre technique relativement efficace consiste à utiliser :class:`io." "StringIO`)" -#: ../Doc/faq/programming.rst:1091 +#: faq/programming.rst:1081 msgid "" "To accumulate many :class:`bytes` objects, the recommended idiom is to " "extend a :class:`bytearray` object using in-place concatenation (the ``+=`` " @@ -1722,17 +1687,17 @@ msgid "" msgstr "" "Pour concaténer un grand nombre d'objets :class:`bytes`, la technique " "recommandée consiste à étendre un objet :class:`bytearray` en utilisant la " -"concaténation en-place (l'opérateur ``+=``) ::" +"concaténation en-place (l'opérateur ``+=``) ::" -#: ../Doc/faq/programming.rst:1100 +#: faq/programming.rst:1090 msgid "Sequences (Tuples/Lists)" msgstr "Séquences (n-uplets / listes)" -#: ../Doc/faq/programming.rst:1103 +#: faq/programming.rst:1093 msgid "How do I convert between tuples and lists?" msgstr "Comment convertir les listes en n-uplets et inversement ?" -#: ../Doc/faq/programming.rst:1105 +#: faq/programming.rst:1095 msgid "" "The type constructor ``tuple(seq)`` converts any sequence (actually, any " "iterable) into a tuple with the same items in the same order." @@ -1741,7 +1706,7 @@ msgstr "" "précisément, tout itérable) en un n-uplet avec les mêmes éléments dans le " "même ordre." -#: ../Doc/faq/programming.rst:1108 +#: faq/programming.rst:1098 msgid "" "For example, ``tuple([1, 2, 3])`` yields ``(1, 2, 3)`` and ``tuple('abc')`` " "yields ``('a', 'b', 'c')``. If the argument is a tuple, it does not make a " @@ -1754,7 +1719,7 @@ msgstr "" "fonction économique à appeler quand vous ne savez pas si votre objet est " "déjà un n-uplet." -#: ../Doc/faq/programming.rst:1113 +#: faq/programming.rst:1103 msgid "" "The type constructor ``list(seq)`` converts any sequence or iterable into a " "list with the same items in the same order. For example, ``list((1, 2, " @@ -1767,11 +1732,11 @@ msgstr "" "``['a','b','c']``. Si l'argument est une liste, il renvoie une copie, de la " "même façon que ``seq[:]``." -#: ../Doc/faq/programming.rst:1120 +#: faq/programming.rst:1110 msgid "What's a negative index?" msgstr "Qu'est-ce qu'un index négatif ?" -#: ../Doc/faq/programming.rst:1122 +#: faq/programming.rst:1112 msgid "" "Python sequences are indexed with positive numbers and negative numbers. " "For positive numbers 0 is the first index 1 is the second index and so " @@ -1785,7 +1750,7 @@ msgstr "" "dernier index, ``-2`` est le pénultième (avant-dernier), et ainsi de suite. " "On peut aussi dire que ``seq[-n]`` est équivalent à ``seq[len(seq)-n]``." -#: ../Doc/faq/programming.rst:1127 +#: faq/programming.rst:1117 msgid "" "Using negative indices can be very convenient. For example ``S[:-1]`` is " "all of the string except for its last character, which is useful for " @@ -1796,18 +1761,15 @@ msgstr "" "caractère, ce qui est pratique pour retirer un caractère de fin de ligne à " "la fin d'une chaîne." -#: ../Doc/faq/programming.rst:1133 +#: faq/programming.rst:1123 msgid "How do I iterate over a sequence in reverse order?" msgstr "Comment itérer à rebours sur une séquence ?" -#: ../Doc/faq/programming.rst:1135 -msgid "" -"Use the :func:`reversed` built-in function, which is new in Python 2.4::" -msgstr "" -"Utilisez la fonction native :func:`reversed`, qui a été introduite en Python " -"2.4 ::" +#: faq/programming.rst:1125 +msgid "Use the :func:`reversed` built-in function::" +msgstr "Utilisez la fonction native :func:`reversed` ::" -#: ../Doc/faq/programming.rst:1140 +#: faq/programming.rst:1130 msgid "" "This won't touch your original sequence, but build a new copy with reversed " "order to iterate over." @@ -1815,25 +1777,21 @@ msgstr "" "Cela ne modifie pas la séquence initiale, mais construit à la place une " "copie en ordre inverse pour itérer dessus." -#: ../Doc/faq/programming.rst:1143 -msgid "With Python 2.3, you can use an extended slice syntax::" -msgstr "Avec Python 2.3 vous pouvez utiliser la syntaxe étendue de tranches ::" - -#: ../Doc/faq/programming.rst:1150 +#: faq/programming.rst:1135 msgid "How do you remove duplicates from a list?" msgstr "Comment retirer les doublons d'une liste ?" -#: ../Doc/faq/programming.rst:1152 +#: faq/programming.rst:1137 msgid "See the Python Cookbook for a long discussion of many ways to do this:" msgstr "" "Lisez le « livre de recettes » Python pour trouver une longue discussion sur " "les nombreuses approches possibles :" -#: ../Doc/faq/programming.rst:1154 +#: faq/programming.rst:1139 msgid "https://code.activestate.com/recipes/52560/" msgstr "https://code.activestate.com/recipes/52560/" -#: ../Doc/faq/programming.rst:1156 +#: faq/programming.rst:1141 msgid "" "If you don't mind reordering the list, sort it and then scan from the end of " "the list, deleting duplicates as you go::" @@ -1842,16 +1800,16 @@ msgstr "" "celle-ci, puis parcourez-la d'un bout à l'autre, en supprimant les doublons " "trouvés en chemin ::" -#: ../Doc/faq/programming.rst:1168 +#: faq/programming.rst:1153 msgid "" "If all elements of the list may be used as set keys (i.e. they are all :term:" "`hashable`) this is often faster ::" msgstr "" "Si tous les éléments de la liste peuvent être utilisés comme des clés de " "dictionnaire (c'est à dire, qu'elles sont toutes :term:`hachables " -"`) ceci est souvent plus rapide ::" +"`) ceci est souvent plus rapide ::" -#: ../Doc/faq/programming.rst:1173 +#: faq/programming.rst:1158 msgid "" "This converts the list into a set, thereby removing duplicates, and then " "back into a list." @@ -1859,15 +1817,35 @@ msgstr "" "Ceci convertit la liste en un ensemble, ce qui supprime automatiquement les " "doublons, puis la transforme à nouveau en liste." -#: ../Doc/faq/programming.rst:1178 +#: faq/programming.rst:1163 +msgid "How do you remove multiple items from a list" +msgstr "Comment retirer les doublons d'une liste" + +#: faq/programming.rst:1165 +msgid "" +"As with removing duplicates, explicitly iterating in reverse with a delete " +"condition is one possibility. However, it is easier and faster to use slice " +"replacement with an implicit or explicit forward iteration. Here are three " +"variations.::" +msgstr "" +"Comme pour supprimer les doublons, il est possible d’itérer explicitement à " +"l’envers avec une condition de suppression. Cependant, il est plus facile et " +"plus rapide d’utiliser le remplacement des tranches par une itération avant, " +"implicite ou explicite. Voici trois variantes. ::" + +#: faq/programming.rst:1174 +msgid "The list comprehension may be fastest." +msgstr "La liste en compréhension est peut-être la plus rapide ::" + +#: faq/programming.rst:1178 msgid "How do you make an array in Python?" msgstr "Comment construire un tableau en Python ?" -#: ../Doc/faq/programming.rst:1180 +#: faq/programming.rst:1180 msgid "Use a list::" msgstr "Utilisez une liste ::" -#: ../Doc/faq/programming.rst:1184 +#: faq/programming.rst:1184 msgid "" "Lists are equivalent to C or Pascal arrays in their time complexity; the " "primary difference is that a Python list can contain objects of many " @@ -1877,7 +1855,7 @@ msgstr "" "principale différence est qu'une liste Python peut contenir des objets de " "différents types." -#: ../Doc/faq/programming.rst:1187 +#: faq/programming.rst:1187 msgid "" "The ``array`` module also provides methods for creating arrays of fixed " "types with compact representations, but they are slower to index than " @@ -1890,14 +1868,14 @@ msgstr "" "fournissent différentes structures de type tableaux, avec des " "caractéristiques différentes." -#: ../Doc/faq/programming.rst:1192 +#: faq/programming.rst:1192 msgid "" "To get Lisp-style linked lists, you can emulate cons cells using tuples::" msgstr "" "Pour obtenir des listes chaînées à la sauce Lisp, vous pouvez émuler les " "*cons cells* en utilisant des n-uplets ::" -#: ../Doc/faq/programming.rst:1196 +#: faq/programming.rst:1196 msgid "" "If mutability is desired, you could use lists instead of tuples. Here the " "analogue of lisp car is ``lisp_list[0]`` and the analogue of cdr is " @@ -1910,27 +1888,27 @@ msgstr "" "ceci que si vous êtes réellement sûr d'en avoir besoin, cette méthode est en " "général bien plus lente que les listes Python." -#: ../Doc/faq/programming.rst:1205 +#: faq/programming.rst:1205 msgid "How do I create a multidimensional list?" msgstr "Comment créer une liste à plusieurs dimensions ?" -#: ../Doc/faq/programming.rst:1207 +#: faq/programming.rst:1207 msgid "You probably tried to make a multidimensional array like this::" msgstr "" "Vous avez probablement essayé de créer une liste à plusieurs dimensions de " "cette façon ::" -#: ../Doc/faq/programming.rst:1211 +#: faq/programming.rst:1211 msgid "This looks correct if you print it:" msgstr "Elle semble correcte si on l'affiche :" -#: ../Doc/faq/programming.rst:1222 +#: faq/programming.rst:1222 msgid "But when you assign a value, it shows up in multiple places:" msgstr "" "Mais quand vous affectez une valeur, celle-ci apparaît à plusieurs " "endroits ::" -#: ../Doc/faq/programming.rst:1234 +#: faq/programming.rst:1234 msgid "" "The reason is that replicating a list with ``*`` doesn't create copies, it " "only creates references to the existing objects. The ``*3`` creates a list " @@ -1943,7 +1921,7 @@ msgstr "" "dans une colonne apparaîtra donc dans toutes les colonnes, ce qui n'est très " "probablement pas ce que vous souhaitiez." -#: ../Doc/faq/programming.rst:1239 +#: faq/programming.rst:1239 msgid "" "The suggested approach is to create a list of the desired length first and " "then fill in each element with a newly created list::" @@ -1951,16 +1929,16 @@ msgstr "" "L'approche suggérée est d'abord de créer une liste de la longueur désirée, " "puis de remplir tous les éléments avec une nouvelle chaîne ::" -#: ../Doc/faq/programming.rst:1246 +#: faq/programming.rst:1246 msgid "" "This generates a list containing 3 different lists of length two. You can " "also use a list comprehension::" msgstr "" "Cela génère une liste contenant elle-même trois listes distinctes, de " "longueur deux. Vous pouvez aussi utiliser la syntaxe des listes en " -"compréhension ::" +"compréhension ::" -#: ../Doc/faq/programming.rst:1252 +#: faq/programming.rst:1252 msgid "" "Or, you can use an extension that provides a matrix datatype; `NumPy `_ is the best known." @@ -1968,22 +1946,22 @@ msgstr "" "Vous pouvez aussi utiliser une extension qui fournit un type matriciel " "natif ; `NumPy `_ est la plus répandue." -#: ../Doc/faq/programming.rst:1257 +#: faq/programming.rst:1257 msgid "How do I apply a method to a sequence of objects?" msgstr "Comment appliquer une méthode à une séquence d'objets ?" -#: ../Doc/faq/programming.rst:1259 +#: faq/programming.rst:1259 msgid "Use a list comprehension::" msgstr "Utilisez une liste en compréhension ::" -#: ../Doc/faq/programming.rst:1266 +#: faq/programming.rst:1266 msgid "" "Why does a_tuple[i] += ['item'] raise an exception when the addition works?" msgstr "" -"Pourquoi ``a_tuple[i] += ['item']`` lève-t'il une exception alors que " +"Pourquoi ``a_tuple[i] += ['item']`` lève-t-il une exception alors que " "l'addition fonctionne ?" -#: ../Doc/faq/programming.rst:1268 +#: faq/programming.rst:1268 msgid "" "This is because of a combination of the fact that augmented assignment " "operators are *assignment* operators, and the difference between mutable and " @@ -1993,21 +1971,21 @@ msgstr "" "d'affectation incrémentaux sont des opérateurs d'*affectation* et à la " "différence entre les objets muables et immuables en Python." -#: ../Doc/faq/programming.rst:1272 +#: faq/programming.rst:1272 msgid "" "This discussion applies in general when augmented assignment operators are " "applied to elements of a tuple that point to mutable objects, but we'll use " "a ``list`` and ``+=`` as our exemplar." msgstr "" "Cette discussion est valable, en général, quand des opérateurs d'affectation " -"incrémentale sont appliqués aux élément d'un n-uplet qui pointe sur des " +"incrémentale sont appliqués aux éléments d'un n-uplet qui pointe sur des " "objets muables, mais on prendra ``list`` et ``+=`` comme exemple." -#: ../Doc/faq/programming.rst:1276 +#: faq/programming.rst:1276 msgid "If you wrote::" msgstr "Si vous écrivez ::" -#: ../Doc/faq/programming.rst:1284 +#: faq/programming.rst:1284 msgid "" "The reason for the exception should be immediately clear: ``1`` is added to " "the object ``a_tuple[0]`` points to (``1``), producing the result object, " @@ -2021,15 +1999,15 @@ msgstr "" "l'élément ``0`` du n-uplet, on obtient une erreur car il est impossible de " "modifier la cible sur laquelle pointe un élément d'un n-uplet." -#: ../Doc/faq/programming.rst:1290 +#: faq/programming.rst:1290 msgid "" "Under the covers, what this augmented assignment statement is doing is " "approximately this::" msgstr "" "Sous le capot, une instruction d'affectation incrémentale fait à peu près " -"ceci :" +"ceci ::" -#: ../Doc/faq/programming.rst:1299 +#: faq/programming.rst:1299 msgid "" "It is the assignment part of the operation that produces the error, since a " "tuple is immutable." @@ -2037,19 +2015,19 @@ msgstr "" "C'est la partie de l'affectation de l'opération qui génère l'erreur, vu " "qu'un n-uplet est immuable." -#: ../Doc/faq/programming.rst:1302 +#: faq/programming.rst:1302 msgid "When you write something like::" -msgstr "Quand vous écrivez un code du style :" +msgstr "Quand vous écrivez un code du style ::" -#: ../Doc/faq/programming.rst:1310 +#: faq/programming.rst:1310 msgid "" "The exception is a bit more surprising, and even more surprising is the fact " "that even though there was an error, the append worked::" msgstr "" "L'exception est un peu plus surprenante et, chose encore plus étrange, " -"malgré l'erreur, l'ajout a fonctionné ::" +"malgré l'erreur, l'ajout a fonctionné ::" -#: ../Doc/faq/programming.rst:1316 +#: faq/programming.rst:1316 msgid "" "To see why this happens, you need to know that (a) if an object implements " "an ``__iadd__`` magic method, it gets called when the ``+=`` augmented " @@ -2064,13 +2042,13 @@ msgstr "" "utilisée dans l'instruction d'affectation ; et que, deuxièmement, pour les " "listes, ``__iadd__`` équivaut à appeler ``extend`` sur la liste et à " "renvoyer celle-ci. C'est pour cette raison que l'on dit que pour les listes, " -"``+=`` est un \"raccourci\" pour ``list.extend``::" +"``+=`` est un \"raccourci\" pour ``list.extend`` ::" -#: ../Doc/faq/programming.rst:1328 +#: faq/programming.rst:1328 msgid "This is equivalent to::" msgstr "C’est équivalent à ::" -#: ../Doc/faq/programming.rst:1333 +#: faq/programming.rst:1333 msgid "" "The object pointed to by a_list has been mutated, and the pointer to the " "mutated object is assigned back to ``a_list``. The end result of the " @@ -2082,13 +2060,13 @@ msgstr "" "change rien, puisque c'est un pointeur vers le même objet que sur lequel " "pointait ``a_list``, mais l'affectation a tout de même lieu." -#: ../Doc/faq/programming.rst:1338 +#: faq/programming.rst:1338 msgid "Thus, in our tuple example what is happening is equivalent to::" msgstr "" "Donc, dans notre exemple avec un n-uplet, il se passe quelque chose " -"équivalent à ::" +"équivalent à ::" -#: ../Doc/faq/programming.rst:1346 +#: faq/programming.rst:1346 msgid "" "The ``__iadd__`` succeeds, and thus the list is extended, but even though " "``result`` points to the same object that ``a_tuple[0]`` already points to, " @@ -2099,15 +2077,15 @@ msgstr "" "``result`` pointe sur le même objet que ``a_tuple[0]``, l'affectation finale " "échoue car les n-uplets ne sont pas muables." -#: ../Doc/faq/programming.rst:1352 +#: faq/programming.rst:1352 msgid "" "I want to do a complicated sort: can you do a Schwartzian Transform in " "Python?" msgstr "" "Je souhaite faire un classement compliqué : peut on faire une transformation " -"de Schwartz en Python ?" +"de Schwartz en Python ?" -#: ../Doc/faq/programming.rst:1354 +#: faq/programming.rst:1354 msgid "" "The technique, attributed to Randal Schwartz of the Perl community, sorts " "the elements of a list by a metric which maps each element to its \"sort " @@ -2117,13 +2095,13 @@ msgstr "" "Cette technique, attribuée à Randal Schwartz de la communauté Perl, ordonne " "les éléments d'une liste à l'aide une transformation qui fait correspondre " "chaque élément à sa \"valeur de tri\". En Python, ceci est géré par " -"l'argument ``key`` de la méthode :meth:`list.sort` ::" +"l'argument ``key`` de la méthode :meth:`list.sort` ::" -#: ../Doc/faq/programming.rst:1363 +#: faq/programming.rst:1363 msgid "How can I sort one list by values from another list?" msgstr "Comment ordonner une liste en fonction des valeurs d'une autre liste ?" -#: ../Doc/faq/programming.rst:1365 +#: faq/programming.rst:1365 msgid "" "Merge them into an iterator of tuples, sort the resulting list, and then " "pick out the element you want. ::" @@ -2131,11 +2109,11 @@ msgstr "" "Fusionnez-les dans un itérateur de n-uplets, ordonnez la liste obtenue, puis " "choisissez l'élément que vous voulez ::" -#: ../Doc/faq/programming.rst:1379 +#: faq/programming.rst:1379 msgid "An alternative for the last step is::" msgstr "Vous pouvez remplacer la dernière étape par ::" -#: ../Doc/faq/programming.rst:1384 +#: faq/programming.rst:1384 msgid "" "If you find this more legible, you might prefer to use this instead of the " "final list comprehension. However, it is almost twice as slow for long " @@ -2155,15 +2133,15 @@ msgstr "" "supplémentaire à un attribut et, enfin, parce que tous ces appels de " "fonctions réduisent la vitesse d'exécution." -#: ../Doc/faq/programming.rst:1394 +#: faq/programming.rst:1394 msgid "Objects" msgstr "Objets" -#: ../Doc/faq/programming.rst:1397 +#: faq/programming.rst:1397 msgid "What is a class?" -msgstr "Qu'est-ce qu'une classe?" +msgstr "Qu'est-ce qu'une classe ?" -#: ../Doc/faq/programming.rst:1399 +#: faq/programming.rst:1399 msgid "" "A class is the particular object type created by executing a class " "statement. Class objects are used as templates to create instance objects, " @@ -2175,7 +2153,7 @@ msgstr "" "créer des objets, qui incarnent à la fois les données (attributs) et le code " "(méthodes) spécifiques à un type de données." -#: ../Doc/faq/programming.rst:1403 +#: faq/programming.rst:1403 msgid "" "A class can be based on one or more other classes, called its base " "class(es). It then inherits the attributes and methods of its base classes. " @@ -2193,11 +2171,11 @@ msgstr "" "``MaildirMailbox``, ``OutlookMailbox`` qui gèrent les plusieurs formats " "spécifiques de boîtes aux lettres." -#: ../Doc/faq/programming.rst:1412 +#: faq/programming.rst:1412 msgid "What is a method?" msgstr "Qu'est-ce qu'une méthode ?" -#: ../Doc/faq/programming.rst:1414 +#: faq/programming.rst:1414 msgid "" "A method is a function on some object ``x`` that you normally call as ``x." "name(arguments...)``. Methods are defined as functions inside the class " @@ -2207,11 +2185,11 @@ msgstr "" "générale sous la forme ``x.name(arguments…)``. Les méthodes sont définies " "comme des fonctions à l'intérieur de la définition de classe ::" -#: ../Doc/faq/programming.rst:1424 +#: faq/programming.rst:1424 msgid "What is self?" msgstr "Qu'est-ce que self ?" -#: ../Doc/faq/programming.rst:1426 +#: faq/programming.rst:1426 msgid "" "Self is merely a conventional name for the first argument of a method. A " "method defined as ``meth(self, a, b, c)`` should be called as ``x.meth(a, b, " @@ -2224,11 +2202,11 @@ msgstr "" "est définie ; tout se passe comme si la méthode était appelée comme " "``meth(x, a, b, c)``." -#: ../Doc/faq/programming.rst:1431 +#: faq/programming.rst:1431 msgid "See also :ref:`why-self`." msgstr "Voir aussi :ref:`why-self`." -#: ../Doc/faq/programming.rst:1435 +#: faq/programming.rst:1435 msgid "" "How do I check if an object is an instance of a given class or of a subclass " "of it?" @@ -2236,7 +2214,7 @@ msgstr "" "Comment vérifier si un objet est une instance d'une classe donnée ou d'une " "sous-classe de celle-ci ?" -#: ../Doc/faq/programming.rst:1437 +#: faq/programming.rst:1437 msgid "" "Use the built-in function ``isinstance(obj, cls)``. You can check if an " "object is an instance of any of a number of classes by providing a tuple " @@ -2251,7 +2229,7 @@ msgstr "" "l'un des types natifs de Python, par exemple ``isinstance(obj, str)`` ou " "``isinstance(obj, (int, float, complex))``." -#: ../Doc/faq/programming.rst:1443 +#: faq/programming.rst:1443 msgid "" "Note that most programs do not use :func:`isinstance` on user-defined " "classes very often. If you are developing the classes yourself, a more " @@ -2267,19 +2245,19 @@ msgstr "" "plutôt que de vérifier la classe de l'objet et de faire un traitement ad-" "hoc. Par exemple, si vous avez une fonction qui fait quelque chose ::" -#: ../Doc/faq/programming.rst:1457 +#: faq/programming.rst:1457 msgid "" "A better approach is to define a ``search()`` method on all the classes and " "just call it::" msgstr "" "Une meilleure approche est de définir une méthode ``search()`` dans toutes " -"les classes et qu'il suffit d'appeler de la manière suivante ::" +"les classes et qu'il suffit d'appeler de la manière suivante ::" -#: ../Doc/faq/programming.rst:1472 +#: faq/programming.rst:1472 msgid "What is delegation?" msgstr "Qu'est-ce que la délégation ?" -#: ../Doc/faq/programming.rst:1474 +#: faq/programming.rst:1474 msgid "" "Delegation is an object oriented technique (also called a design pattern). " "Let's say you have an object ``x`` and want to change the behaviour of just " @@ -2294,7 +2272,7 @@ msgstr "" "dans l'évolution et qui délègue toute autre méthode à la méthode " "correspondante de ``x``." -#: ../Doc/faq/programming.rst:1480 +#: faq/programming.rst:1480 msgid "" "Python programmers can easily implement delegation. For example, the " "following class implements a class that behaves like a file but converts all " @@ -2304,23 +2282,24 @@ msgstr "" "Par exemple, la classe suivante implémente une classe qui se comporte comme " "un fichier, mais convertit toutes les données écrites en majuscules ::" -#: ../Doc/faq/programming.rst:1495 +#: faq/programming.rst:1495 msgid "" "Here the ``UpperOut`` class redefines the ``write()`` method to convert the " -"argument string to uppercase before calling the underlying ``self.__outfile." +"argument string to uppercase before calling the underlying ``self._outfile." "write()`` method. All other methods are delegated to the underlying ``self." -"__outfile`` object. The delegation is accomplished via the ``__getattr__`` " +"_outfile`` object. The delegation is accomplished via the ``__getattr__`` " "method; consult :ref:`the language reference ` for more " "information about controlling attribute access." msgstr "" "Ici, la classe ``UpperOut`` redéfinit la méthode ``write()`` pour convertir " -"la chaîne d'argument en majuscules avant d'appeler la méthode sous-jacentes " -"``self.__outfile.write()``. Toutes les autres méthodes sont déléguées à " -"l'objet sous-jacent ``self.__outfile``. La délégation se fait par la méthode " -"``__getattr__``, consulter :ref:`the language reference ` " -"pour plus d'informations sur le contrôle d'accès d'attribut." +"la chaîne de caractères donnée en argument en majuscules avant d'appeler la " +"méthode sous-jacente ``self._outfile.write()``. Toutes les autres méthodes " +"sont déléguées à l'objet sous-jacent ``self._outfile``. La délégation se " +"fait par la méthode ``__getattr__``, consulter :ref:`the language reference " +"` pour plus d'informations sur la personnalisation de " +"l’accès aux attributs." -#: ../Doc/faq/programming.rst:1502 +#: faq/programming.rst:1502 msgid "" "Note that for more general cases delegation can get trickier. When " "attributes must be set as well as retrieved, the class must define a :meth:" @@ -2334,16 +2313,16 @@ msgstr "" "et il doit le faire avec soin. La mise en œuvre basique de la méthode :meth:" "`__setattr__` est à peu près équivalent à ce qui suit ::" -#: ../Doc/faq/programming.rst:1513 +#: faq/programming.rst:1513 msgid "" "Most :meth:`__setattr__` implementations must modify ``self.__dict__`` to " "store local state for self without causing an infinite recursion." msgstr "" "La plupart des implémentations de :meth:`__setattr__` doivent modifier " -"``self.__dict__`` pour stocker l'état locale de self sans provoquer une " +"``self.__dict__`` pour stocker l'état local de self sans provoquer une " "récursion infinie." -#: ../Doc/faq/programming.rst:1518 +#: faq/programming.rst:1518 msgid "" "How do I call a method defined in a base class from a derived class that " "overrides it?" @@ -2351,11 +2330,11 @@ msgstr "" "Comment appeler une méthode définie dans une classe de base depuis une " "classe dérivée qui la surcharge ?" -#: ../Doc/faq/programming.rst:1520 +#: faq/programming.rst:1520 msgid "Use the built-in :func:`super` function::" msgstr "Utilisez la fonction native :func:`super` ::" -#: ../Doc/faq/programming.rst:1526 +#: faq/programming.rst:1526 msgid "" "For version prior to 3.0, you may be using classic classes: For a class " "definition such as ``class Derived(Base): ...`` you can call method " @@ -2370,13 +2349,13 @@ msgstr "" "arguments...)``. Ici, ``Base.meth`` est une méthode non liée, il faut donc " "fournir l'argument ``self``." -#: ../Doc/faq/programming.rst:1534 +#: faq/programming.rst:1534 msgid "How can I organize my code to make it easier to change the base class?" msgstr "" "Comment organiser un code pour permettre de changer la classe de base plus " "facilement ?" -#: ../Doc/faq/programming.rst:1536 +#: faq/programming.rst:1536 msgid "" "You could define an alias for the base class, assign the real base class to " "it before your class definition, and use the alias throughout your class. " @@ -2392,13 +2371,13 @@ msgstr "" "vous voulez déterminer dynamiquement (par exemple en fonction de la " "disponibilité des ressources) la classe de base à utiliser. Exemple ::" -#: ../Doc/faq/programming.rst:1551 +#: faq/programming.rst:1551 msgid "How do I create static class data and static class methods?" msgstr "" "Comment créer des données statiques de classe et des méthodes statiques de " "classe ?" -#: ../Doc/faq/programming.rst:1553 +#: faq/programming.rst:1553 msgid "" "Both static data and static methods (in the sense of C++ or Java) are " "supported in Python." @@ -2406,7 +2385,7 @@ msgstr "" "Les données statiques et les méthodes statiques (au sens C++ ou Java) sont " "prises en charge en Python." -#: ../Doc/faq/programming.rst:1556 +#: faq/programming.rst:1556 msgid "" "For static data, simply define a class attribute. To assign a new value to " "the attribute, you have to explicitly use the class name in the assignment::" @@ -2415,7 +2394,7 @@ msgstr "" "attribuer une nouvelle valeur à l'attribut, vous devez explicitement " "utiliser le nom de classe dans l'affectation ::" -#: ../Doc/faq/programming.rst:1568 +#: faq/programming.rst:1568 msgid "" "``c.count`` also refers to ``C.count`` for any ``c`` such that " "``isinstance(c, C)`` holds, unless overridden by ``c`` itself or by some " @@ -2426,7 +2405,7 @@ msgstr "" "une classe sur le chemin de recherche de classe de base de ``c.__class__`` " "jusqu'à ``C``." -#: ../Doc/faq/programming.rst:1572 +#: faq/programming.rst:1572 msgid "" "Caution: within a method of C, an assignment like ``self.count = 42`` " "creates a new and unrelated instance named \"count\" in ``self``'s own " @@ -2439,11 +2418,11 @@ msgstr "" "de classe doit toujours spécifier la classe, que l'on soit à l'intérieur " "d'une méthode ou non ::" -#: ../Doc/faq/programming.rst:1579 +#: faq/programming.rst:1579 msgid "Static methods are possible::" msgstr "Il est possible d'utiliser des méthodes statiques ::" -#: ../Doc/faq/programming.rst:1587 +#: faq/programming.rst:1587 msgid "" "However, a far more straightforward way to get the effect of a static method " "is via a simple module-level function::" @@ -2451,7 +2430,7 @@ msgstr "" "Cependant, d'une manière beaucoup plus simple pour obtenir l'effet d'une " "méthode statique se fait par une simple fonction au niveau du module ::" -#: ../Doc/faq/programming.rst:1593 +#: faq/programming.rst:1593 msgid "" "If your code is structured so as to define one class (or tightly related " "class hierarchy) per module, this supplies the desired encapsulation." @@ -2460,11 +2439,11 @@ msgstr "" "hiérarchie des classes connexes) par module, ceci fournira l'encapsulation " "souhaitée." -#: ../Doc/faq/programming.rst:1598 +#: faq/programming.rst:1598 msgid "How can I overload constructors (or methods) in Python?" msgstr "Comment surcharger les constructeurs (ou méthodes) en Python ?" -#: ../Doc/faq/programming.rst:1600 +#: faq/programming.rst:1600 msgid "" "This answer actually applies to all methods, but the question usually comes " "up first in the context of constructors." @@ -2472,11 +2451,11 @@ msgstr "" "Cette réponse s'applique en fait à toutes les méthodes, mais la question se " "pose généralement dans le contexte des constructeurs." -#: ../Doc/faq/programming.rst:1603 +#: faq/programming.rst:1603 msgid "In C++ you'd write" -msgstr "In C++, on écrirait" +msgstr "En C++, on écrirait" -#: ../Doc/faq/programming.rst:1612 +#: faq/programming.rst:1612 msgid "" "In Python you have to write a single constructor that catches all cases " "using default arguments. For example::" @@ -2484,29 +2463,29 @@ msgstr "" "En Python, vous devez écrire un constructeur unique qui considère tous les " "cas en utilisant des arguments par défaut. Par exemple ::" -#: ../Doc/faq/programming.rst:1622 +#: faq/programming.rst:1622 msgid "This is not entirely equivalent, but close enough in practice." msgstr "" "Ce n'est pas tout à fait équivalent, mais suffisamment proche dans la " "pratique." -#: ../Doc/faq/programming.rst:1624 +#: faq/programming.rst:1624 msgid "You could also try a variable-length argument list, e.g. ::" msgstr "" "Vous pouvez aussi utiliser une liste d'arguments de longueur variable, par " -"exemple ::" +"exemple ::" -#: ../Doc/faq/programming.rst:1629 +#: faq/programming.rst:1629 msgid "The same approach works for all method definitions." msgstr "La même approche fonctionne pour toutes les définitions de méthode." -#: ../Doc/faq/programming.rst:1633 +#: faq/programming.rst:1633 msgid "I try to use __spam and I get an error about _SomeClassName__spam." msgstr "" "J'essaie d'utiliser ``__spam`` et j'obtiens une erreur à propos de " "``_SomeClassName__spam``." -#: ../Doc/faq/programming.rst:1635 +#: faq/programming.rst:1635 msgid "" "Variable names with double leading underscores are \"mangled\" to provide a " "simple but effective way to define class private variables. Any identifier " @@ -2522,7 +2501,7 @@ msgstr "" "remplacé par ``_classname__spam``, où ``classname`` est le nom de la classe " "en cours sans les éventuels tirets bas du début." -#: ../Doc/faq/programming.rst:1641 +#: faq/programming.rst:1641 msgid "" "This doesn't guarantee privacy: an outside user can still deliberately " "access the \"_classname__spam\" attribute, and private values are visible in " @@ -2534,17 +2513,17 @@ msgstr "" "privées sont visibles dans l'objet ``__dict__``. De nombreux programmeurs " "Python ne prennent jamais la peine d'utiliser des noms de variable privés." -#: ../Doc/faq/programming.rst:1648 +#: faq/programming.rst:1648 msgid "My class defines __del__ but it is not called when I delete the object." msgstr "" "Ma classe définit ``__del__`` mais elle n'est pas appelée lorsque je " "supprime l'objet." -#: ../Doc/faq/programming.rst:1650 +#: faq/programming.rst:1650 msgid "There are several possible reasons for this." msgstr "Il y a plusieurs explications possibles." -#: ../Doc/faq/programming.rst:1652 +#: faq/programming.rst:1652 msgid "" "The del statement does not necessarily call :meth:`__del__` -- it simply " "decrements the object's reference count, and if this reaches zero :meth:" @@ -2554,7 +2533,7 @@ msgstr "" "simplement le compteur de références de l'objet et, si celui-ci arrive à " "zéro, :meth:`__del__` est appelée." -#: ../Doc/faq/programming.rst:1656 +#: faq/programming.rst:1656 msgid "" "If your data structures contain circular links (e.g. a tree where each child " "has a parent reference and each parent has a list of children) the reference " @@ -2580,7 +2559,7 @@ msgstr "" "miettes avec la fonction :func:`gc.collect`, mais il existe certains cas où " "les objets ne seront jamais nettoyés." -#: ../Doc/faq/programming.rst:1667 +#: faq/programming.rst:1667 msgid "" "Despite the cycle collector, it's still a good idea to define an explicit " "``close()`` method on objects to be called whenever you're done with them. " @@ -2594,10 +2573,10 @@ msgstr "" "quand leur cycle de vie s'achève. Cette méthode ``close()`` peut alors " "supprimer les attributs qui référencent des sous-objets. Il vaut mieux ne " "pas appeler la méthode :meth:`__del__` directement, mais la méthode :meth:" -"`__del__`devrait appeler la méthode ``close()`` et ``close()`` doit pouvoir " +"`__del__` devrait appeler la méthode ``close()`` et ``close()`` doit pouvoir " "être appelée plusieurs fois sur le même objet." -#: ../Doc/faq/programming.rst:1674 +#: faq/programming.rst:1674 msgid "" "Another way to avoid cyclical references is to use the :mod:`weakref` " "module, which allows you to point to objects without incrementing their " @@ -2610,7 +2589,7 @@ msgstr "" "d'arbres devraient utiliser des références faibles entre pères et fils (si " "nécessaire !)." -#: ../Doc/faq/programming.rst:1687 +#: faq/programming.rst:1687 msgid "" "Finally, if your :meth:`__del__` method raises an exception, a warning " "message is printed to :data:`sys.stderr`." @@ -2618,11 +2597,11 @@ msgstr "" "Enfin, si la méthode :meth:`__del__` lève une exception, un message " "d'avertissement s'affiche dans :data:`sys.stderr`." -#: ../Doc/faq/programming.rst:1692 +#: faq/programming.rst:1692 msgid "How do I get a list of all instances of a given class?" msgstr "Comment obtenir toutes les instances d'une classe ?" -#: ../Doc/faq/programming.rst:1694 +#: faq/programming.rst:1694 msgid "" "Python does not keep track of all instances of a class (or of a built-in " "type). You can program the class's constructor to keep track of all " @@ -2633,13 +2612,13 @@ msgstr "" "constructeur de la classe de façon à tenir un tel registre, en maintenant " "une liste de références faibles vers chaque instance." -#: ../Doc/faq/programming.rst:1700 +#: faq/programming.rst:1700 msgid "Why does the result of ``id()`` appear to be not unique?" msgstr "" "Pourquoi le résultat de ``id()`` peut-il être le même pour deux objets " "différents ?" -#: ../Doc/faq/programming.rst:1702 +#: faq/programming.rst:1702 msgid "" "The :func:`id` builtin returns an integer that is guaranteed to be unique " "during the lifetime of the object. Since in CPython, this is the object's " @@ -2653,7 +2632,7 @@ msgstr "" "à une adresse mémoire identique à celle d'un objet venant d'être supprimé. " "Comme l'illustre le code suivant :" -#: ../Doc/faq/programming.rst:1713 +#: faq/programming.rst:1713 msgid "" "The two ids belong to different integer objects that are created before, and " "deleted immediately after execution of the ``id()`` call. To be sure that " @@ -2665,15 +2644,15 @@ msgstr "" "objets dont on veut examiner les identifiants sont toujours en vie, créons " "une nouvelle référence à l'objet :" -#: ../Doc/faq/programming.rst:1726 +#: faq/programming.rst:1726 msgid "Modules" msgstr "Modules" -#: ../Doc/faq/programming.rst:1729 +#: faq/programming.rst:1729 msgid "How do I create a .pyc file?" msgstr "Comment créer des fichiers ``.pyc`` ?" -#: ../Doc/faq/programming.rst:1731 +#: faq/programming.rst:1731 msgid "" "When a module is imported for the first time (or when the source file has " "changed since the current compiled file was created) a ``.pyc`` file " @@ -2691,7 +2670,7 @@ msgstr "" "centrale qui dépend du binaire ``python`` qui l'a créé (voir la :pep:`3147` " "pour de plus amples précisions)." -#: ../Doc/faq/programming.rst:1739 +#: faq/programming.rst:1739 msgid "" "One reason that a ``.pyc`` file may not be created is a permissions problem " "with the directory containing the source file, meaning that the " @@ -2706,7 +2685,7 @@ msgstr "" "utilisateur, mais que le code est exécuté en tant qu'un autre utilisateur, " "par exemple pour tester un serveur Web." -#: ../Doc/faq/programming.rst:1744 +#: faq/programming.rst:1744 msgid "" "Unless the :envvar:`PYTHONDONTWRITEBYTECODE` environment variable is set, " "creation of a .pyc file is automatic if you're importing a module and Python " @@ -2720,7 +2699,7 @@ msgstr "" "sous-répertoire, à moins que la variable d'environnement :envvar:" "`PYTHONDONTWRITEBYTECODE` soit définie." -#: ../Doc/faq/programming.rst:1749 +#: faq/programming.rst:1749 msgid "" "Running Python on a top level script is not considered an import and no ``." "pyc`` will be created. For example, if you have a top-level module ``foo." @@ -2736,7 +2715,7 @@ msgstr "" "console), un fichier ``.pyc`` est créé pour ``xyz`` mais pas pour ``foo`` " "car ``foo.py`` n'est pas importé." -#: ../Doc/faq/programming.rst:1756 +#: faq/programming.rst:1756 msgid "" "If you need to create a ``.pyc`` file for ``foo`` -- that is, to create a ``." "pyc`` file for a module that is not imported -- you can, using the :mod:" @@ -2746,16 +2725,16 @@ msgstr "" "``.pyc`` pour un module qui n'est pas importé — il existe les modules :mod:" "`py_compile` et :mod:`compileall`." -#: ../Doc/faq/programming.rst:1760 +#: faq/programming.rst:1760 msgid "" "The :mod:`py_compile` module can manually compile any module. One way is to " "use the ``compile()`` function in that module interactively::" msgstr "" "Le module :mod:`py_compile` peut compiler n'importe quel module " "manuellement. Il est ainsi possible d'appeler la fonction ``compile()`` de " -"manière interactive :" +"manière interactive ::" -#: ../Doc/faq/programming.rst:1766 +#: faq/programming.rst:1766 msgid "" "This will write the ``.pyc`` to a ``__pycache__`` subdirectory in the same " "location as ``foo.py`` (or you can override that with the optional parameter " @@ -2765,7 +2744,7 @@ msgstr "" "de ``foo.py`` (le paramètre optionnel ``cfile`` permet de changer ce " "comportement)." -#: ../Doc/faq/programming.rst:1770 +#: faq/programming.rst:1770 msgid "" "You can also automatically compile all files in a directory or directories " "using the :mod:`compileall` module. You can do it from the shell prompt by " @@ -2775,13 +2754,13 @@ msgstr "" "Tous les fichiers d'un ou plusieurs dossiers peuvent aussi être compilés " "avec le module :mod:`compileall`. C'est possible depuis l'invite de commande " "en exécutant ``compileall.py`` avec le chemin du dossier contenant les " -"fichiers Python à compiler ::" +"fichiers Python à compiler ::" -#: ../Doc/faq/programming.rst:1779 +#: faq/programming.rst:1779 msgid "How do I find the current module name?" msgstr "Comment obtenir le nom du module actuel ?" -#: ../Doc/faq/programming.rst:1781 +#: faq/programming.rst:1781 msgid "" "A module can find out its own module name by looking at the predefined " "global variable ``__name__``. If this has the value ``'__main__'``, the " @@ -2794,64 +2773,64 @@ msgstr "" "programme est exécuté comme un script. Beaucoup de modules qui doivent " "normalement être importés pour pouvoir être utilisés fournissent aussi une " "interface en ligne de commande ou un test automatique. Ils n'exécutent cette " -"portion du code qu'après avoir vérifié la valeur de ``__name__``::" +"portion du code qu'après avoir vérifié la valeur de ``__name__`` ::" -#: ../Doc/faq/programming.rst:1796 +#: faq/programming.rst:1796 msgid "How can I have modules that mutually import each other?" msgstr "Comment avoir des modules qui s'importent mutuellement ?" -#: ../Doc/faq/programming.rst:1798 +#: faq/programming.rst:1798 msgid "Suppose you have the following modules:" msgstr "Considérons les modules suivants :" -#: ../Doc/faq/programming.rst:1800 +#: faq/programming.rst:1800 msgid "foo.py::" -msgstr "*foo.py* ::" +msgstr "*foo.py* ::" -#: ../Doc/faq/programming.rst:1805 +#: faq/programming.rst:1805 msgid "bar.py::" -msgstr "*bar.py* ::" +msgstr "*bar.py* ::" -#: ../Doc/faq/programming.rst:1810 +#: faq/programming.rst:1810 msgid "The problem is that the interpreter will perform the following steps:" msgstr "Le problème réside dans les étapes que l'interpréteur va réaliser :" -#: ../Doc/faq/programming.rst:1812 +#: faq/programming.rst:1812 msgid "main imports foo" msgstr "*main* importe *foo*" -#: ../Doc/faq/programming.rst:1813 +#: faq/programming.rst:1813 msgid "Empty globals for foo are created" msgstr "Les variables globales (vides) de *foo* sont créées" -#: ../Doc/faq/programming.rst:1814 +#: faq/programming.rst:1814 msgid "foo is compiled and starts executing" msgstr "*foo* est compilé et commence à s'exécuter" -#: ../Doc/faq/programming.rst:1815 +#: faq/programming.rst:1815 msgid "foo imports bar" msgstr "*foo* importe *bar*" -#: ../Doc/faq/programming.rst:1816 +#: faq/programming.rst:1816 msgid "Empty globals for bar are created" msgstr "Les variables globales (vides) de *bar* sont créées" -#: ../Doc/faq/programming.rst:1817 +#: faq/programming.rst:1817 msgid "bar is compiled and starts executing" msgstr "*bar* est compilé et commence à s'exécuter" -#: ../Doc/faq/programming.rst:1818 +#: faq/programming.rst:1818 msgid "" "bar imports foo (which is a no-op since there already is a module named foo)" msgstr "" "*bar* importe *foo* (en réalité, rien ne passe car il y a déjà un module " "appelé *foo*)" -#: ../Doc/faq/programming.rst:1819 +#: faq/programming.rst:1819 msgid "bar.foo_var = foo.foo_var" msgstr "bar.foo_var = foo.foo_var" -#: ../Doc/faq/programming.rst:1821 +#: faq/programming.rst:1821 msgid "" "The last step fails, because Python isn't done with interpreting ``foo`` yet " "and the global symbol dictionary for ``foo`` is still empty." @@ -2859,7 +2838,7 @@ msgstr "" "La dernière étape échoue car Python n'a pas fini d'interpréter ``foo`` et le " "dictionnaire global des symboles de ``foo`` est encore vide." -#: ../Doc/faq/programming.rst:1824 +#: faq/programming.rst:1824 msgid "" "The same thing happens when you use ``import foo``, and then try to access " "``foo.foo_var`` in global code." @@ -2867,11 +2846,11 @@ msgstr "" "Le même phénomène arrive quand on utilise ``import foo``, et qu'on essaye " "ensuite d'accéder à ``foo.foo_var`` dans le code global." -#: ../Doc/faq/programming.rst:1827 +#: faq/programming.rst:1827 msgid "There are (at least) three possible workarounds for this problem." msgstr "Il y a (au moins) trois façons de contourner ce problème." -#: ../Doc/faq/programming.rst:1829 +#: faq/programming.rst:1829 msgid "" "Guido van Rossum recommends avoiding all uses of ``from import ..." "``, and placing all code inside functions. Initializations of global " @@ -2885,14 +2864,14 @@ msgstr "" "des fonctions natives. Ceci implique que tout ce qui est fourni par un " "module soit référencé par ``.``." -#: ../Doc/faq/programming.rst:1834 +#: faq/programming.rst:1834 msgid "" "Jim Roskind suggests performing steps in the following order in each module:" msgstr "" "Jim Roskind recommande d'effectuer les étapes suivantes dans cet ordre dans " "chaque module :" -#: ../Doc/faq/programming.rst:1836 +#: faq/programming.rst:1836 msgid "" "exports (globals, functions, and classes that don't need imported base " "classes)" @@ -2900,18 +2879,18 @@ msgstr "" "les exportations (variables globales, fonctions et les classes qui ne " "nécessitent d'importer des classes de base)" -#: ../Doc/faq/programming.rst:1838 +#: faq/programming.rst:1838 msgid "``import`` statements" msgstr "les instructions ``import``" -#: ../Doc/faq/programming.rst:1839 +#: faq/programming.rst:1839 msgid "" "active code (including globals that are initialized from imported values)." msgstr "" "le code (avec les variables globales qui sont initialisées à partir de " "valeurs importées)." -#: ../Doc/faq/programming.rst:1841 +#: faq/programming.rst:1841 msgid "" "van Rossum doesn't like this approach much because the imports appear in a " "strange place, but it does work." @@ -2919,7 +2898,7 @@ msgstr "" "van Rossum désapprouve cette approche car les importations se trouvent à un " "endroit bizarre, mais cela fonctionne." -#: ../Doc/faq/programming.rst:1844 +#: faq/programming.rst:1844 msgid "" "Matthias Urlichs recommends restructuring your code so that the recursive " "import is not necessary in the first place." @@ -2927,24 +2906,24 @@ msgstr "" "Matthias Urlichs conseille de restructurer le code pour éviter les " "importations récursives." -#: ../Doc/faq/programming.rst:1847 +#: faq/programming.rst:1847 msgid "These solutions are not mutually exclusive." msgstr "Ces solutions peuvent être combinées." -#: ../Doc/faq/programming.rst:1851 +#: faq/programming.rst:1851 msgid "__import__('x.y.z') returns ; how do I get z?" msgstr "" "``__import__('x.y.z')`` renvoie ```` ; comment accéder à ``z`` ?" -#: ../Doc/faq/programming.rst:1853 +#: faq/programming.rst:1853 msgid "" "Consider using the convenience function :func:`~importlib.import_module` " "from :mod:`importlib` instead::" msgstr "" "Utilisez plutôt la fonction :func:`~importlib.import_module` de :mod:" -"`importlib` ::" +"`importlib` ::" -#: ../Doc/faq/programming.rst:1860 +#: faq/programming.rst:1860 msgid "" "When I edit an imported module and reimport it, the changes don't show up. " "Why does this happen?" @@ -2952,7 +2931,7 @@ msgstr "" "Quand j'édite un module et que je le réimporte, je ne vois pas les " "changements. Pourquoi ?" -#: ../Doc/faq/programming.rst:1862 +#: faq/programming.rst:1862 msgid "" "For reasons of efficiency as well as consistency, Python only reads the " "module file on the first time a module is imported. If it didn't, in a " @@ -2965,9 +2944,9 @@ msgstr "" "le cas, dans un programme composé d'un très grand nombre de modules qui " "importent tous le même module de base, ce module de base serait analysé et " "ré-analysé un très grand nombre de fois. Pour forcer la relecture d'un " -"module, il faut faire ::" +"module, il faut faire ::" -#: ../Doc/faq/programming.rst:1872 +#: faq/programming.rst:1872 msgid "" "Warning: this technique is not 100% fool-proof. In particular, modules " "containing statements like ::" @@ -2975,7 +2954,7 @@ msgstr "" "Attention, cette technique ne marche pas systématiquement. En particulier, " "les modules qui contiennent des instructions comme ::" -#: ../Doc/faq/programming.rst:1877 +#: faq/programming.rst:1877 msgid "" "will continue to work with the old version of the imported objects. If the " "module contains class definitions, existing class instances will *not* be " @@ -2983,11 +2962,11 @@ msgid "" "paradoxical behaviour::" msgstr "" "continuent de fonctionner avec l'ancienne version des objets importés. Si le " -"module contient une définition de classe, le instances déjà existantes de " +"module contient une définition de classe, les instances déjà existantes de " "celle-ci ne sont *pas* mises à jour avec la nouvelle définition de la " -"classe. Ceci peut conduire au comportement paradoxal suivant :" +"classe. Ceci peut conduire au comportement paradoxal suivant ::" -#: ../Doc/faq/programming.rst:1890 +#: faq/programming.rst:1890 msgid "" "The nature of the problem is made clear if you print out the \"identity\" of " "the class objects::" @@ -2995,6 +2974,78 @@ msgstr "" "La nature du problème apparaît clairement en affichant « l'identité » des " "objets de la classe ::" +#~ msgid "" +#~ "`Boa Constructor `_ is an IDE " +#~ "and GUI builder that uses wxWidgets. It offers visual frame creation and " +#~ "manipulation, an object inspector, many views on the source like object " +#~ "browsers, inheritance hierarchies, doc string generated html " +#~ "documentation, an advanced debugger, integrated help, and Zope support." +#~ msgstr "" +#~ "`Boa Constructor `_ est un EDI " +#~ "et un constructeur d'interface homme-machine basé sur *wxWidgets*. Il " +#~ "propose la création et la manipulation de fenêtres, un inspecteur " +#~ "d'objets, de nombreuses façons de visualiser des sources comme un " +#~ "navigateur d'objets, les hiérarchies d'héritage, la documentation html " +#~ "générée par les docstrings, un débogueur avancé, une aide intégrée et la " +#~ "prise en charge de Zope." + +#~ msgid "" +#~ "Pydb is a version of the standard Python debugger pdb, modified for use " +#~ "with DDD (Data Display Debugger), a popular graphical debugger front " +#~ "end. Pydb can be found at http://bashdb.sourceforge.net/pydb/ and DDD " +#~ "can be found at https://www.gnu.org/software/ddd." +#~ msgstr "" +#~ "Pydb est une version du débogueur standard Python pdb, modifié pour être " +#~ "utilisé avec DDD (Data Display Debugger), un célèbre débogueur " +#~ "graphique. Pydb est disponible sur http://bashdb.sourceforge.net/pydb/ " +#~ "et DDD est disponible sur https://www.gnu.org/software/ddd." + +#~ msgid "Komodo IDE (https://komodoide.com/)" +#~ msgstr "Komodo IDE (https://komodoide.com/)" + +#~ msgid "" +#~ "PyChecker is a static analysis tool that finds bugs in Python source code " +#~ "and warns about code complexity and style. You can get PyChecker from " +#~ "http://pychecker.sourceforge.net/." +#~ msgstr "" +#~ "*PyChecker* est un outil d'analyse statique qui trouve les bogues dans le " +#~ "code source Python et émet des avertissements relatifs à la complexité et " +#~ "au style du code. *PyChecker* est disponible sur http://pychecker." +#~ "sourceforge.net/." + +#~ msgid "" +#~ "`Pylint `_ is another tool that checks if a " +#~ "module satisfies a coding standard, and also makes it possible to write " +#~ "plug-ins to add a custom feature. In addition to the bug checking that " +#~ "PyChecker performs, Pylint offers some additional features such as " +#~ "checking line length, whether variable names are well-formed according to " +#~ "your coding standard, whether declared interfaces are fully implemented, " +#~ "and more. https://docs.pylint.org/ provides a full list of Pylint's " +#~ "features." +#~ msgstr "" +#~ "Pylint `_ est un autre outil qui vérifie si un " +#~ "module satisfait aux normes de développement, et qui permet en plus " +#~ "d'écrire des greffons pour ajouter des fonctionnalités personnalisées. " +#~ "En plus de la vérification des bogues effectuée par PyChecker, Pylint " +#~ "effectue quelques vérifications supplémentaires comme la longueur des " +#~ "lignes, les conventions de nommage des variables, que les interfaces " +#~ "déclarées sont implémentées en totalité, et plus encore. https://docs." +#~ "pylint.org/ fournit la liste complète des fonctionnalités de Pylint." + +#~ msgid "http://www.py2exe.org/" +#~ msgstr "http://www.py2exe.org/" + +#~ msgid "" +#~ "Another tool is Anthony Tuininga's `cx_Freeze `_." +#~ msgstr "" +#~ "Un autre de ces outils est `cx_Freeze `_ d'Anthony Tuininga." + +#~ msgid "With Python 2.3, you can use an extended slice syntax::" +#~ msgstr "" +#~ "Avec Python 2.3 vous pouvez utiliser la syntaxe étendue de tranches ::" + #~ msgid "" #~ "Note that as of this writing this is only documentational and no valid " #~ "syntax in Python, although there is :pep:`570`, which proposes a syntax " diff --git a/faq/windows.po b/faq/windows.po index 9f906b21b8..0d4a059843 100644 --- a/faq/windows.po +++ b/faq/windows.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-04-10 09:35+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2019-12-11 11:09+0100\n" "Last-Translator: Zepmanbc \n" "Language-Team: FRENCH \n" @@ -15,19 +15,19 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.2.3\n" -#: ../Doc/faq/windows.rst:9 +#: faq/windows.rst:9 msgid "Python on Windows FAQ" msgstr "FAQ : Python et Windows" -#: ../Doc/faq/windows.rst:12 +#: faq/windows.rst:12 msgid "Contents" msgstr "Sommaire" -#: ../Doc/faq/windows.rst:22 +#: faq/windows.rst:22 msgid "How do I run a Python program under Windows?" msgstr "Comment exécuter un programme Python sous Windows ?" -#: ../Doc/faq/windows.rst:24 +#: faq/windows.rst:24 msgid "" "This is not necessarily a straightforward question. If you are already " "familiar with running programs from the Windows command line then everything " @@ -37,7 +37,7 @@ msgstr "" "le lancement de programmes depuis la ligne de commande de Windows alors tout " "semblera évident ; sinon, vous pourriez avoir besoin d'être un peu guidé." -#: ../Doc/faq/windows.rst:28 +#: faq/windows.rst:28 msgid "" "Unless you use some sort of integrated development environment, you will end " "up *typing* Windows commands into what is variously referred to as a \"DOS " @@ -54,7 +54,7 @@ msgstr "" "lancé une telle fenêtre parce que vous verrez une invite de commande " "Windows, qui en en général ressemble à ça :" -#: ../Doc/faq/windows.rst:39 +#: faq/windows.rst:39 msgid "" "The letter may be different, and there might be other things after it, so " "you might just as easily see something like:" @@ -62,7 +62,7 @@ msgstr "" "La lettre peut être différente, et il peut y avoir d'autres choses à la " "suite, alors il se peut que ça ressemble également à ça :" -#: ../Doc/faq/windows.rst:46 +#: faq/windows.rst:46 msgid "" "depending on how your computer has been set up and what else you have " "recently done with it. Once you have started such a window, you are well on " @@ -72,7 +72,7 @@ msgstr "" "fait avec. Une fois que vous avez ouvert cette fenêtre, vous êtes bien " "partis pour pouvoir lancer des programmes Python." -#: ../Doc/faq/windows.rst:50 +#: faq/windows.rst:50 msgid "" "You need to realize that your Python scripts have to be processed by another " "program called the Python *interpreter*. The interpreter reads your script, " @@ -85,7 +85,7 @@ msgstr "" "programme. Alors, comment faire pour donner votre code Python à " "l'interpréteur ?" -#: ../Doc/faq/windows.rst:55 +#: faq/windows.rst:55 msgid "" "First, you need to make sure that your command window recognises the word " "\"py\" as an instruction to start the interpreter. If you have opened a " @@ -97,11 +97,11 @@ msgstr "" "l'interpréteur. Si vous avez ouvert une invite de commande, entrez la " "commande ``py``, puis appuyez sur entrée :" -#: ../Doc/faq/windows.rst:64 +#: faq/windows.rst:64 msgid "You should then see something like:" msgstr "Vous devez voir quelque chose comme ça :" -#: ../Doc/faq/windows.rst:72 +#: faq/windows.rst:72 msgid "" "You have started the interpreter in \"interactive mode\". That means you can " "enter Python statements or expressions interactively and have them executed " @@ -114,7 +114,7 @@ msgstr "" "puissantes fonctionnalités de Python. Vous pouvez le vérifier en entrant " "quelques commandes de votre choix et en regardant le résultat :" -#: ../Doc/faq/windows.rst:84 +#: faq/windows.rst:84 msgid "" "Many people use the interactive mode as a convenient yet highly programmable " "calculator. When you want to end your interactive Python session, call the :" @@ -129,7 +129,7 @@ msgstr "" "un :kbd:`Z`, puis appuyez sur la touche \":kbd:`Enter`\" pour revenir à " "votre invite de commande Windows." -#: ../Doc/faq/windows.rst:90 +#: faq/windows.rst:90 msgid "" "You may also find that you have a Start-menu entry such as :menuselection:" "`Start --> Programs --> Python 3.x --> Python (command line)` that results " @@ -146,7 +146,7 @@ msgstr "" "Windows exécute une commande \"python\" dans la fenêtre et ferme celle-ci " "lorsque vous fermez l'interpréteur." -#: ../Doc/faq/windows.rst:97 +#: faq/windows.rst:97 msgid "" "Now that we know the ``py`` command is recognized, you can give your Python " "script to it. You'll have to give either an absolute or a relative path to " @@ -161,7 +161,7 @@ msgstr "" "ouvert dans votre répertoire d’accueil, alors vous voyez quelque chose " "comme ::" -#: ../Doc/faq/windows.rst:106 +#: faq/windows.rst:106 msgid "" "So now you'll ask the ``py`` command to give your script to Python by typing " "``py`` followed by your script path::" @@ -169,11 +169,11 @@ msgstr "" "Alors maintenant, vous demanderez à la commande ``py`` de donner votre " "script à Python en tapant ``py`` suivi de votre chemin de script ::" -#: ../Doc/faq/windows.rst:114 +#: faq/windows.rst:114 msgid "How do I make Python scripts executable?" msgstr "Comment rendre des scripts Python exécutables ?" -#: ../Doc/faq/windows.rst:116 +#: faq/windows.rst:116 msgid "" "On Windows, the standard Python installer already associates the .py " "extension with a file type (Python.File) and gives that file type an open " @@ -191,11 +191,11 @@ msgstr "" "*foo* sans l’extension, vous devez ajouter *.py* au paramètre " "d’environnement PATHEXT." -#: ../Doc/faq/windows.rst:124 +#: faq/windows.rst:124 msgid "Why does Python sometimes take so long to start?" msgstr "Pourquoi Python met-il du temps à démarrer ?" -#: ../Doc/faq/windows.rst:126 +#: faq/windows.rst:126 msgid "" "Usually Python starts very quickly on Windows, but occasionally there are " "bug reports that Python suddenly begins to take a long time to start up. " @@ -207,7 +207,7 @@ msgstr "" "de temps pour démarrer. C'est d'autant plus intrigant que Python fonctionne " "correctement avec d'autres Windows configurés de façon similaire." -#: ../Doc/faq/windows.rst:131 +#: faq/windows.rst:131 msgid "" "The problem may be caused by a misconfiguration of virus checking software " "on the problem machine. Some virus scanners have been known to introduce " @@ -224,29 +224,22 @@ msgstr "" "*McAfee* est particulièrement problématique lorsqu'il est paramétré pour " "surveiller toutes les lectures du système de fichiers." -#: ../Doc/faq/windows.rst:141 +#: faq/windows.rst:141 msgid "How do I make an executable from a Python script?" msgstr "Comment construire un exécutable depuis un script Python ?" -#: ../Doc/faq/windows.rst:143 +#: faq/windows.rst:143 msgid "" -"See `cx_Freeze `_ for a " -"distutils extension that allows you to create console and GUI executables " -"from Python code. `py2exe `_, the most popular " -"extension for building Python 2.x-based executables, does not yet support " -"Python 3 but a version that does is in development." +"See `cx_Freeze `_ and `py2exe " +"`_, both are distutils extensions that allow you to " +"create console and GUI executables from Python code." msgstr "" -"Regardez `cx_Freeze `_ pour " -"une extension *distutils* qui permet de créer des exécutables console et IUG " -"à partir de code Python. `py2exe `_ est l'extension " -"la plus populaire pour construire des exécutables basés sur Python 2.x mais " -"l'implémentation en Python 3 est en cours de développement." -#: ../Doc/faq/windows.rst:151 +#: faq/windows.rst:149 msgid "Is a ``*.pyd`` file the same as a DLL?" msgstr "Est-ce qu'un fichier ``*.pyd`` est la même chose qu'une DLL ?" -#: ../Doc/faq/windows.rst:153 +#: faq/windows.rst:151 msgid "" "Yes, .pyd files are dll's, but there are a few differences. If you have a " "DLL named ``foo.pyd``, then it must have a function ``PyInit_foo()``. You " @@ -263,7 +256,7 @@ msgstr "" "l'initialiser. Ne liez pas votre *.exe* avec *foo.lib* car dans ce cas " "Windows aura besoin de la DLL." -#: ../Doc/faq/windows.rst:160 +#: faq/windows.rst:158 msgid "" "Note that the search path for foo.pyd is PYTHONPATH, not the same as the " "path that Windows uses to search for foo.dll. Also, foo.pyd need not be " @@ -282,11 +275,11 @@ msgstr "" "``__declspec(dllexport)``. Dans un *.pyd* la liaison est définie dans une " "liste de fonctions disponibles." -#: ../Doc/faq/windows.rst:169 +#: faq/windows.rst:167 msgid "How can I embed Python into a Windows application?" msgstr "Comment puis-je intégrer Python dans une application Windows ?" -#: ../Doc/faq/windows.rst:171 +#: faq/windows.rst:169 msgid "" "Embedding the Python interpreter in a Windows app can be summarized as " "follows:" @@ -294,7 +287,7 @@ msgstr "" "L'intégration de l'interpréteur Python dans une application Windows peut se " "résumer comme suit :" -#: ../Doc/faq/windows.rst:173 +#: faq/windows.rst:171 msgid "" "Do _not_ build Python into your .exe file directly. On Windows, Python must " "be a DLL to handle importing modules that are themselves DLL's. (This is " @@ -309,7 +302,7 @@ msgstr "" "est généralement placé dans ``C:\\Windows\\System``. *NN* étant la version " "Python, par exemple « 33 » pour Python 3.3." -#: ../Doc/faq/windows.rst:179 +#: faq/windows.rst:177 msgid "" "You can link to Python in two different ways. Load-time linking means " "linking against :file:`python{NN}.lib`, while run-time linking means linking " @@ -324,7 +317,7 @@ msgstr "" "lib* » correspondant à :file:`python{NN}.dll`. Il définit simplement des " "liens symboliques pour l'éditeur de liens.)" -#: ../Doc/faq/windows.rst:185 +#: faq/windows.rst:183 msgid "" "Run-time linking greatly simplifies link options; everything happens at run " "time. Your code must load :file:`python{NN}.dll` using the Windows " @@ -343,7 +336,7 @@ msgstr "" "peuvent rendre l'utilisation de ces pointeurs transparente à tout code C qui " "appelle des routines dans l'API C de Python." -#: ../Doc/faq/windows.rst:192 +#: faq/windows.rst:190 msgid "" "Borland note: convert :file:`python{NN}.lib` to OMF format using Coff2Omf." "exe first." @@ -351,7 +344,7 @@ msgstr "" "Note Borland : convertir :file:`python{NN}.lib` au format OMF en utilisant " "*Coff2Omf.exe* en premier." -#: ../Doc/faq/windows.rst:197 +#: faq/windows.rst:195 msgid "" "If you use SWIG, it is easy to create a Python \"extension module\" that " "will make the app's data and methods available to Python. SWIG will handle " @@ -366,7 +359,7 @@ msgstr "" "n'avez **pas** besoin de créer un fichier DLL, et cela simplifie également " "la liaison." -#: ../Doc/faq/windows.rst:203 +#: faq/windows.rst:201 msgid "" "SWIG will create an init function (a C function) whose name depends on the " "name of the extension module. For example, if the name of the module is " @@ -381,7 +374,7 @@ msgstr "" "appelée *initleoc()*. Ceci initialise une classe auxiliaire invisible " "utilisée par la classe *shadow*." -#: ../Doc/faq/windows.rst:209 +#: faq/windows.rst:207 msgid "" "The reason you can link the C code in step 2 into your .exe file is that " "calling the initialization function is equivalent to importing the module " @@ -391,7 +384,7 @@ msgstr "" "*fichier.exe* est que l'appel de la fonction d'initialisation équivaut à " "importer le module dans Python ! (C'est le deuxième fait clé non documenté.)" -#: ../Doc/faq/windows.rst:213 +#: faq/windows.rst:211 msgid "" "In short, you can use the following code to initialize the Python " "interpreter with your extension module." @@ -399,7 +392,7 @@ msgstr "" "En bref, vous pouvez utiliser le code suivant pour initialiser " "l'interpréteur Python avec votre module d'extension." -#: ../Doc/faq/windows.rst:224 +#: faq/windows.rst:222 msgid "" "There are two problems with Python's C API which will become apparent if you " "use a compiler other than MSVC, the compiler used to build pythonNN.dll." @@ -408,7 +401,7 @@ msgstr "" "utilisez un compilateur autre que MSVC, le compilateur utilisé pour " "construire *pythonNN.dll*." -#: ../Doc/faq/windows.rst:227 +#: faq/windows.rst:225 msgid "" "Problem 1: The so-called \"Very High Level\" functions that take FILE * " "arguments will not work in a multi-compiler environment because each " @@ -421,7 +414,7 @@ msgstr "" "structure de FILE. Du point de vue de l'implémentation, il s'agit de " "fonctions de très bas niveau." -#: ../Doc/faq/windows.rst:232 +#: faq/windows.rst:230 msgid "" "Problem 2: SWIG generates the following code when generating wrappers to " "void functions:" @@ -429,7 +422,7 @@ msgstr "" "Problème 2 : SWIG génère le code suivant lors de la génération " "*d'encapsuleurs* pour annuler les fonctions :" -#: ../Doc/faq/windows.rst:241 +#: faq/windows.rst:239 msgid "" "Alas, Py_None is a macro that expands to a reference to a complex data " "structure called _Py_NoneStruct inside pythonNN.dll. Again, this code will " @@ -440,7 +433,7 @@ msgstr "" "une fois, ce code échouera dans un environnement multi-compilateur. " "Remplacez ce code par :" -#: ../Doc/faq/windows.rst:249 +#: faq/windows.rst:247 msgid "" "It may be possible to use SWIG's ``%typemap`` command to make the change " "automatically, though I have not been able to get this to work (I'm a " @@ -450,7 +443,7 @@ msgstr "" "le changement automatiquement, bien que je n'ai pas réussi à le faire " "fonctionner (je suis un débutant complet avec SWIG)." -#: ../Doc/faq/windows.rst:253 +#: faq/windows.rst:251 msgid "" "Using a Python shell script to put up a Python interpreter window from " "inside your Windows app is not a good idea; the resulting window will be " @@ -471,13 +464,13 @@ msgstr "" "dont vous avez besoin est un objet Python (défini dans votre module " "d'extension) qui contient les méthodes *read()* et *write()*." -#: ../Doc/faq/windows.rst:262 +#: faq/windows.rst:260 msgid "How do I keep editors from inserting tabs into my Python source?" msgstr "" "Comment empêcher mon éditeur d'utiliser des tabulations dans mes fichiers " "Python ?" -#: ../Doc/faq/windows.rst:264 +#: faq/windows.rst:262 msgid "" "The FAQ does not recommend using tabs, and the Python style guide, :pep:`8`, " "recommends 4 spaces for distributed Python code; this is also the Emacs " @@ -488,7 +481,7 @@ msgstr "" "dans les codes Python. C'est aussi le comportement par défaut d'Emacs avec " "Python." -#: ../Doc/faq/windows.rst:268 +#: faq/windows.rst:266 msgid "" "Under any editor, mixing tabs and spaces is a bad idea. MSVC is no " "different in this respect, and is easily configured to use spaces: Take :" @@ -502,7 +495,7 @@ msgstr "" "Tabs` et pour le type de fichier par défaut, vous devez mettre *Tab size* et " "*Indent size* à 4, puis sélectionner *Insert spaces*." -#: ../Doc/faq/windows.rst:273 +#: faq/windows.rst:271 msgid "" "Python raises :exc:`IndentationError` or :exc:`TabError` if mixed tabs and " "spaces are causing problems in leading whitespace. You may also run the :mod:" @@ -512,23 +505,37 @@ msgstr "" "tabulation et d’indentation pose problème en début de ligne. Vous pouvez " "aussi utiliser le module :mod:`tabnanny` pour détecter ces erreurs." -#: ../Doc/faq/windows.rst:280 +#: faq/windows.rst:278 msgid "How do I check for a keypress without blocking?" msgstr "" "Comment puis-je vérifier de manière non bloquante qu'une touche a été " "pressée ?" -#: ../Doc/faq/windows.rst:282 +#: faq/windows.rst:280 msgid "" -"Use the msvcrt module. This is a standard Windows-specific extension " +"Use the :mod:`msvcrt` module. This is a standard Windows-specific extension " "module. It defines a function ``kbhit()`` which checks whether a keyboard " "hit is present, and ``getch()`` which gets one character without echoing it." msgstr "" -"Utilisez le module ``msvcrt``. C'est une extension standard spécifique à " +"Utilisez le module :mod:`msvcrt`. C'est une extension standard spécifique à " "Windows, qui définit une fonction ``kbhit()`` qui vérifie si une pression de " -"touche s'est produite, et ``getch()`` qui récupère le caractère sans " +"touche s'est produite, et ``getch()`` qui récupère le caractère sans " "l'afficher." +#~ msgid "" +#~ "See `cx_Freeze `_ for a " +#~ "distutils extension that allows you to create console and GUI executables " +#~ "from Python code. `py2exe `_, the most popular " +#~ "extension for building Python 2.x-based executables, does not yet support " +#~ "Python 3 but a version that does is in development." +#~ msgstr "" +#~ "Regardez `cx_Freeze `_ " +#~ "pour une extension *distutils* qui permet de créer des exécutables " +#~ "console et IUG à partir de code Python. `py2exe `_ est l'extension la plus populaire pour construire des exécutables " +#~ "basés sur Python 2.x mais l'implémentation en Python 3 est en cours de " +#~ "développement." + #, fuzzy #~ msgid "How do I emulate os.kill() in Windows?" #~ msgstr "Comment émuler ``os.kill()`` sur Windows ?" diff --git a/glossary.po b/glossary.po index d87048793e..a138a694dd 100644 --- a/glossary.po +++ b/glossary.po @@ -5,25 +5,25 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-09 17:54+0200\n" -"PO-Revision-Date: 2019-12-11 10:46+0100\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" +"PO-Revision-Date: 2020-02-04 21:12+0100\n" "Last-Translator: Grenoya \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2.1\n" +"X-Generator: Poedit 2.0.6\n" -#: ../Doc/glossary.rst:5 +#: glossary.rst:5 msgid "Glossary" msgstr "Glossaire" -#: ../Doc/glossary.rst:10 +#: glossary.rst:10 msgid "``>>>``" msgstr "``>>>``" -#: ../Doc/glossary.rst:12 +#: glossary.rst:12 msgid "" "The default Python prompt of the interactive shell. Often seen for code " "examples which can be executed interactively in the interpreter." @@ -32,15 +32,15 @@ msgstr "" "la voit souvent dans des exemples de code qui peuvent être exécutés " "interactivement dans l'interpréteur." -#: ../Doc/glossary.rst:14 +#: glossary.rst:14 msgid "``...``" msgstr "``...``" -#: ../Doc/glossary.rst:16 +#: glossary.rst:16 msgid "Can refer to:" -msgstr "Peut faire référence à :" +msgstr "Peut faire référence à :" -#: ../Doc/glossary.rst:18 +#: glossary.rst:18 msgid "" "The default Python prompt of the interactive shell when entering the code " "for an indented code block, when within a pair of matching left and right " @@ -52,15 +52,15 @@ msgstr "" "par paires (parenthèses, crochets, accolades, triple guillemets), ou après " "un avoir spécifié un décorateur." -#: ../Doc/glossary.rst:23 +#: glossary.rst:23 msgid "The :const:`Ellipsis` built-in constant." msgstr "La constante :const:`Ellipsis`." -#: ../Doc/glossary.rst:24 +#: glossary.rst:24 msgid "2to3" msgstr "*2to3*" -#: ../Doc/glossary.rst:26 +#: glossary.rst:26 msgid "" "A tool that tries to convert Python 2.x code to Python 3.x code by handling " "most of the incompatibilities which can be detected by parsing the source " @@ -70,21 +70,21 @@ msgstr "" "x en gérant la plupart des incompatibilités qui peuvent être détectées en " "analysant la source et parcourant son arbre syntaxique." -#: ../Doc/glossary.rst:30 +#: glossary.rst:30 msgid "" "2to3 is available in the standard library as :mod:`lib2to3`; a standalone " "entry point is provided as :file:`Tools/scripts/2to3`. See :ref:`2to3-" "reference`." msgstr "" "*2to3* est disponible dans la bibliothèque standard sous le nom de :mod:" -"`lib2to3`; un point d’entrée indépendant est fourni via :file:`Tools/" +"`lib2to3` ; un point d’entrée indépendant est fourni via :file:`Tools/" "scripts/2to3`. Cf. :ref:`2to3-reference`." -#: ../Doc/glossary.rst:33 +#: glossary.rst:33 msgid "abstract base class" msgstr "classe de base abstraite" -#: ../Doc/glossary.rst:35 +#: glossary.rst:35 msgid "" "Abstract base classes complement :term:`duck-typing` by providing a way to " "define interfaces when other techniques like :func:`hasattr` would be clumsy " @@ -111,20 +111,20 @@ msgstr "" "`importlib.abc`). Vous pouvez créer vos propres ABC avec le module :mod:" "`abc`." -#: ../Doc/glossary.rst:46 +#: glossary.rst:46 msgid "annotation" msgstr "annotation" -#: ../Doc/glossary.rst:48 +#: glossary.rst:48 msgid "" "A label associated with a variable, a class attribute or a function " "parameter or return value, used by convention as a :term:`type hint`." msgstr "" "Étiquette associée à une variable, un attribut de classe, un paramètre de " -"fonction ou une valeur de retour. Elle est utilisé par convention comme :" +"fonction ou une valeur de retour. Elle est utilisée par convention comme :" "term:`type hint`." -#: ../Doc/glossary.rst:52 +#: glossary.rst:52 msgid "" "Annotations of local variables cannot be accessed at runtime, but " "annotations of global variables, class attributes, and functions are stored " @@ -136,7 +136,7 @@ msgstr "" "classe et de fonctions sont stockées dans l'attribut spécial :attr:" "`__annotations__` des modules, classes et fonctions, respectivement." -#: ../Doc/glossary.rst:58 +#: glossary.rst:58 msgid "" "See :term:`variable annotation`, :term:`function annotation`, :pep:`484` " "and :pep:`526`, which describe this functionality." @@ -144,11 +144,11 @@ msgstr "" "Voir :term:`variable annotation`, :term:`function annotation`, :pep:`484` " "et :pep:`526`, qui décrivent cette fonctionnalité." -#: ../Doc/glossary.rst:60 +#: glossary.rst:60 msgid "argument" msgstr "argument" -#: ../Doc/glossary.rst:62 +#: glossary.rst:62 msgid "" "A value passed to a :term:`function` (or :term:`method`) when calling the " "function. There are two kinds of argument:" @@ -156,7 +156,7 @@ msgstr "" "Valeur, donnée à une :term:`fonction` ou à une :term:`méthode` lors de son " "appel. Il existe deux types d'arguments :" -#: ../Doc/glossary.rst:65 +#: glossary.rst:65 msgid "" ":dfn:`keyword argument`: an argument preceded by an identifier (e.g. " "``name=``) in a function call or passed as a value in a dictionary preceded " @@ -168,19 +168,19 @@ msgstr "" "fonction. Par exemple, ``3`` et ``5`` sont tous les deux des arguments " "nommés dans l'appel à :func:`complex` ici ::" -#: ../Doc/glossary.rst:73 +#: glossary.rst:73 msgid "" ":dfn:`positional argument`: an argument that is not a keyword argument. " "Positional arguments can appear at the beginning of an argument list and/or " "be passed as elements of an :term:`iterable` preceded by ``*``. For example, " "``3`` and ``5`` are both positional arguments in the following calls::" msgstr "" -":dfn:`argument positionnel` : Un argument qui n'est pas nommé. Les arguments " +":dfn:`argument positionnel` : un argument qui n'est pas nommé. Les arguments " "positionnels apparaissent au début de la liste des arguments, ou donnés sous " "forme d'un :term:`itérable` précédé par ``*``. Par exemple, ``3`` et ``5`` " "sont tous les deux des arguments positionnels dans les appels suivants ::" -#: ../Doc/glossary.rst:82 +#: glossary.rst:82 msgid "" "Arguments are assigned to the named local variables in a function body. See " "the :ref:`calls` section for the rules governing this assignment. " @@ -193,21 +193,21 @@ msgstr "" "argument, et c'est la valeur résultante de l'expression qui sera affectée à " "la variable locale." -#: ../Doc/glossary.rst:87 +#: glossary.rst:87 msgid "" "See also the :term:`parameter` glossary entry, the FAQ question on :ref:`the " "difference between arguments and parameters `, " "and :pep:`362`." msgstr "" -"Voir aussi :term:`parameter` dans le glossaire, la question :ref:" -"`Différence entre argument et paramètre ` de la " -"FAQ et la :pep:`362`." +"Voir aussi :term:`parameter` dans le glossaire, la question :ref:`Différence " +"entre argument et paramètre ` de la FAQ et la :" +"pep:`362`." -#: ../Doc/glossary.rst:90 +#: glossary.rst:90 msgid "asynchronous context manager" msgstr "gestionnaire de contexte asynchrone" -#: ../Doc/glossary.rst:92 +#: glossary.rst:92 msgid "" "An object which controls the environment seen in an :keyword:`async with` " "statement by defining :meth:`__aenter__` and :meth:`__aexit__` methods. " @@ -217,11 +217,11 @@ msgstr "" "à l'intérieur d'une instruction :keyword:`with` en définissant les méthodes :" "meth:`__aenter__` et :meth:`__aexit__`. A été Introduit par la :pep:`492`." -#: ../Doc/glossary.rst:95 +#: glossary.rst:95 msgid "asynchronous generator" msgstr "générateur asynchrone" -#: ../Doc/glossary.rst:97 +#: glossary.rst:97 msgid "" "A function which returns an :term:`asynchronous generator iterator`. It " "looks like a coroutine function defined with :keyword:`async def` except " @@ -233,7 +233,7 @@ msgstr "" "contient une ou des expressions :keyword:`yield` produisant ainsi uns série " "de valeurs utilisables dans une boucle :keyword:`async for`." -#: ../Doc/glossary.rst:102 +#: glossary.rst:102 msgid "" "Usually refers to an asynchronous generator function, but may refer to an " "*asynchronous generator iterator* in some contexts. In cases where the " @@ -244,7 +244,7 @@ msgstr "" "contextes. Dans les cas où le sens voulu n'est pas clair, utiliser " "l'ensemble des termes lève l’ambiguïté." -#: ../Doc/glossary.rst:106 +#: glossary.rst:106 msgid "" "An asynchronous generator function may contain :keyword:`await` expressions " "as well as :keyword:`async for`, and :keyword:`async with` statements." @@ -252,15 +252,15 @@ msgstr "" "Un générateur asynchrone peut contenir des expressions :keyword:`await` " "ainsi que des instructions :keyword:`async for`, et :keyword:`async with`." -#: ../Doc/glossary.rst:109 +#: glossary.rst:109 msgid "asynchronous generator iterator" msgstr "itérateur de générateur asynchrone" -#: ../Doc/glossary.rst:111 +#: glossary.rst:111 msgid "An object created by a :term:`asynchronous generator` function." msgstr "Objet créé par une fonction :term:`asynchronous generator`." -#: ../Doc/glossary.rst:113 +#: glossary.rst:113 msgid "" "This is an :term:`asynchronous iterator` which when called using the :meth:" "`__anext__` method returns an awaitable object which will execute the body " @@ -271,7 +271,7 @@ msgstr "" "méthode :meth:`__anext__` renvoie un objet *awaitable* qui exécute le corps " "de la fonction du générateur asynchrone jusqu'au prochain :keyword:`yield`." -#: ../Doc/glossary.rst:118 +#: glossary.rst:118 msgid "" "Each :keyword:`yield` temporarily suspends processing, remembering the " "location execution state (including local variables and pending try-" @@ -283,14 +283,14 @@ msgstr "" "mémoire l'endroit et l'état de l'exécution (ce qui inclut les variables " "locales et les *try* en cours). Lorsque l'exécution de l'itérateur de " "générateur asynchrone reprend avec un nouvel *awaitable* renvoyé par :meth:" -"`__anext__`, elle repart de là où elle s'était arrêtée. Voir la :pep:`492` " +"`__anext__`, elle repart de là où elle s'était arrêtée. Voir la :pep:`492` " "et la :pep:`525`." -#: ../Doc/glossary.rst:123 +#: glossary.rst:123 msgid "asynchronous iterable" msgstr "itérable asynchrone" -#: ../Doc/glossary.rst:125 +#: glossary.rst:125 msgid "" "An object, that can be used in an :keyword:`async for` statement. Must " "return an :term:`asynchronous iterator` from its :meth:`__aiter__` method. " @@ -300,11 +300,11 @@ msgstr "" "méthode :meth:`__aiter__` doit renvoyer un :term:`asynchronous iterator`. A " "été introduit par la :pep:`492`." -#: ../Doc/glossary.rst:128 +#: glossary.rst:128 msgid "asynchronous iterator" msgstr "itérateur asynchrone" -#: ../Doc/glossary.rst:130 +#: glossary.rst:130 msgid "" "An object that implements the :meth:`__aiter__` and :meth:`__anext__` " "methods. ``__anext__`` must return an :term:`awaitable` object. :keyword:" @@ -319,11 +319,11 @@ msgstr "" "`StopAsyncIteration` pour signifier la fin de l'itération. A été introduit " "par la :pep:`492`." -#: ../Doc/glossary.rst:135 +#: glossary.rst:135 msgid "attribute" msgstr "attribut" -#: ../Doc/glossary.rst:137 +#: glossary.rst:137 msgid "" "A value associated with an object which is referenced by name using dotted " "expressions. For example, if an object *o* has an attribute *a* it would be " @@ -333,38 +333,38 @@ msgstr "" "utilisant des points. Par exemple, si un objet *o* possède un attribut *a*, " "il sera référencé par *o.a*." -#: ../Doc/glossary.rst:140 +#: glossary.rst:140 msgid "awaitable" msgstr "*awaitable*" -#: ../Doc/glossary.rst:142 +#: glossary.rst:142 msgid "" "An object that can be used in an :keyword:`await` expression. Can be a :" "term:`coroutine` or an object with an :meth:`__await__` method. See also :" "pep:`492`." msgstr "" -"Objet pouvant être utilisé dans une expression :keyword:`await`. Peut être " -"une :term:`coroutine` ou un objet avec une méthode :meth:`__await__`. Voir " -"aussi la :pep:`492`." +"Objet pouvant être utilisé dans une expression :keyword:`await`. Ce peut " +"être une :term:`coroutine` ou un objet avec une méthode :meth:`__await__`. " +"Voir aussi la :pep:`492`." -#: ../Doc/glossary.rst:145 +#: glossary.rst:145 msgid "BDFL" msgstr "*BDFL*" -#: ../Doc/glossary.rst:147 +#: glossary.rst:147 msgid "" "Benevolent Dictator For Life, a.k.a. `Guido van Rossum `_, Python's creator." msgstr "" -"Dictateur bienveillant à vie (*Benevolent Dictator For Life* en anglais). " +"Dictateur bienveillant à vie (*Benevolent Dictator For Life* en anglais). " "Pseudonyme de `Guido van Rossum `_, le " "créateur de Python." -#: ../Doc/glossary.rst:149 +#: glossary.rst:149 msgid "binary file" msgstr "fichier binaire" -#: ../Doc/glossary.rst:151 +#: glossary.rst:151 msgid "" "A :term:`file object` able to read and write :term:`bytes-like objects " "`. Examples of binary files are files opened in binary " @@ -378,7 +378,7 @@ msgstr "" "`sys.stdin.buffer`, :data:`sys.stdout.buffer`, les instances de :class:`io." "BytesIO` ou de :class:`gzip.GzipFile`." -#: ../Doc/glossary.rst:158 +#: glossary.rst:158 msgid "" "See also :term:`text file` for a file object able to read and write :class:" "`str` objects." @@ -386,11 +386,11 @@ msgstr "" "Consultez :term:`fichier texte`, un objet fichier capable de lire et " "d'écrire des objets :class:`str`." -#: ../Doc/glossary.rst:160 +#: glossary.rst:160 msgid "bytes-like object" msgstr "objet octet-compatible" -#: ../Doc/glossary.rst:162 +#: glossary.rst:162 msgid "" "An object that supports the :ref:`bufferobjects` and can export a C-:term:" "`contiguous` buffer. This includes all :class:`bytes`, :class:`bytearray`, " @@ -406,7 +406,7 @@ msgstr "" "utilisés pour diverses opérations sur des données binaires, comme la " "compression, la sauvegarde dans un fichier binaire ou l'envoi sur le réseau." -#: ../Doc/glossary.rst:169 +#: glossary.rst:169 msgid "" "Some operations need the binary data to be mutable. The documentation often " "refers to these as \"read-write bytes-like objects\". Example mutable " @@ -418,16 +418,16 @@ msgstr "" "Certaines opérations nécessitent de travailler sur des données binaires " "variables. La documentation parle de ceux-ci comme des *read-write bytes-" "like objects*. Par exemple, :class:`bytearray` ou une :class:`memoryview` " -"d'un :class:`bytearray` en font partie. D'autres opérations nécessitent de " -"travailler sur des données binaires stockées dans des objets immuables (*" -"\"read-only bytes-like objects\"*), par exemples :class:`bytes` ou :class:" +"d'un :class:`bytearray` en font partie. D'autres opérations nécessitent de " +"travailler sur des données binaires stockées dans des objets immuables " +"(*\"read-only bytes-like objects\"*), par exemples :class:`bytes` ou :class:" "`memoryview` d'un objet :class:`byte`." -#: ../Doc/glossary.rst:177 +#: glossary.rst:177 msgid "bytecode" msgstr "code intermédiaire (*bytecode*)" -#: ../Doc/glossary.rst:179 +#: glossary.rst:179 msgid "" "Python source code is compiled into bytecode, the internal representation of " "a Python program in the CPython interpreter. The bytecode is also cached in " @@ -448,7 +448,7 @@ msgstr "" "intermédiaire n'a pas vocation à fonctionner sur différentes machines " "virtuelles Python ou à être stable entre différentes versions de Python." -#: ../Doc/glossary.rst:189 +#: glossary.rst:189 msgid "" "A list of bytecode instructions can be found in the documentation for :ref:" "`the dis module `." @@ -456,11 +456,23 @@ msgstr "" "La documentation du :ref:`module dis ` fournit une liste des " "instructions du code intermédiaire." -#: ../Doc/glossary.rst:191 +#: glossary.rst:191 +msgid "callback" +msgstr "*callback*" + +#: glossary.rst:193 +msgid "" +"A subroutine function which is passed as an argument to be executed at some " +"point in the future." +msgstr "" +"Une fonction (classique, par opposition à une coroutine) passée en argument " +"pour être exécutée plus tard." + +#: glossary.rst:195 msgid "class" msgstr "classe" -#: ../Doc/glossary.rst:193 +#: glossary.rst:197 msgid "" "A template for creating user-defined objects. Class definitions normally " "contain method definitions which operate on instances of the class." @@ -469,11 +481,11 @@ msgstr "" "classe (*class*) contient normalement des définitions de méthodes qui " "agissent sur les instances de la classe." -#: ../Doc/glossary.rst:196 +#: glossary.rst:200 msgid "class variable" msgstr "variable de classe" -#: ../Doc/glossary.rst:198 +#: glossary.rst:202 msgid "" "A variable defined in a class and intended to be modified only at class " "level (i.e., not in an instance of the class)." @@ -481,11 +493,11 @@ msgstr "" "Une variable définie dans une classe et destinée à être modifiée uniquement " "au niveau de la classe (c'est-à-dire, pas dans une instance de la classe)." -#: ../Doc/glossary.rst:200 +#: glossary.rst:204 msgid "coercion" msgstr "coercition" -#: ../Doc/glossary.rst:202 +#: glossary.rst:206 msgid "" "The implicit conversion of an instance of one type to another during an " "operation which involves two arguments of the same type. For example, " @@ -500,18 +512,18 @@ msgstr "" "opération dont les deux opérandes doivent être de même type. Par exemple " "``int(3.15)`` convertit explicitement le nombre à virgule flottante en " "nombre entier ``3``. Mais dans l'opération ``3 + 4.5``, les deux opérandes " -"sont d'un type différent (Un entier et un nombre à virgule flottante), alors " -"qu'elles doivent avoir le même type pour être additionnées (sinon une " -"exception :exc:`TypeError` serait levée). Sans coercition, toutes les " -"opérandes, même de types compatibles, devraient être converties (on parle " -"aussi de *cast*) explicitement par le développeur, par exemple : ``float(3) " +"sont d'un type différent (un entier et un nombre à virgule flottante), alors " +"qu'ils doivent avoir le même type pour être additionnés (sinon une " +"exception :exc:`TypeError` serait levée). Sans coercition, tous les " +"opérandes, même de types compatibles, devraient être convertis (on parle " +"aussi de *cast*) explicitement par le développeur, par exemple : ``float(3) " "+ 4.5`` au lieu du simple ``3 + 4.5``." -#: ../Doc/glossary.rst:210 +#: glossary.rst:214 msgid "complex number" msgstr "nombre complexe" -#: ../Doc/glossary.rst:212 +#: glossary.rst:216 msgid "" "An extension of the familiar real number system in which all numbers are " "expressed as a sum of a real part and an imaginary part. Imaginary numbers " @@ -528,17 +540,17 @@ msgstr "" "imaginaire. Les nombres imaginaires sont les nombres réels multipliés par " "l'unité imaginaire (la racine carrée de ``-1``, souvent écrite ``i`` en " "mathématiques ou ``j`` par les ingénieurs). Python comprend nativement les " -"nombres complexes, écrits avec cette dernière notation : la partie " +"nombres complexes, écrits avec cette dernière notation : la partie " "imaginaire est écrite avec un suffixe ``j``, exemple, ``3+1j``. Pour " "utiliser les équivalents complexes de :mod:`math`, utilisez :mod:`cmath`. " "Les nombres complexes sont un concept assez avancé en mathématiques. Si vous " "ne connaissez pas ce concept, vous pouvez tranquillement les ignorer." -#: ../Doc/glossary.rst:222 +#: glossary.rst:226 msgid "context manager" msgstr "gestionnaire de contexte" -#: ../Doc/glossary.rst:224 +#: glossary.rst:228 msgid "" "An object which controls the environment seen in a :keyword:`with` statement " "by defining :meth:`__enter__` and :meth:`__exit__` methods. See :pep:`343`." @@ -547,11 +559,11 @@ msgstr "" "définissant les méthodes :meth:`__enter__` et :meth:`__exit__`. Consultez " "la :pep:`343`." -#: ../Doc/glossary.rst:227 +#: glossary.rst:231 msgid "context variable" msgstr "variable de contexte" -#: ../Doc/glossary.rst:229 +#: glossary.rst:233 msgid "" "A variable which can have different values depending on its context. This is " "similar to Thread-Local Storage in which each execution thread may have a " @@ -569,11 +581,11 @@ msgstr "" "trace des variables dans les tâches asynchrones concourantes. Voir :mod:" "`contextvars`." -#: ../Doc/glossary.rst:236 +#: glossary.rst:240 msgid "contiguous" msgstr "contigu" -#: ../Doc/glossary.rst:240 +#: glossary.rst:244 msgid "" "A buffer is considered contiguous exactly if it is either *C-contiguous* or " "*Fortran contiguous*. Zero-dimensional buffers are C and Fortran " @@ -593,28 +605,28 @@ msgstr "" "leur adresse mémoire. À l'inverse, dans les tableaux Fortran-contigu, c’est " "le premier indice qui doit varier le plus rapidement." -#: ../Doc/glossary.rst:248 +#: glossary.rst:252 msgid "coroutine" msgstr "coroutine" -#: ../Doc/glossary.rst:250 +#: glossary.rst:254 msgid "" "Coroutines are a more generalized form of subroutines. Subroutines are " "entered at one point and exited at another point. Coroutines can be " "entered, exited, and resumed at many different points. They can be " "implemented with the :keyword:`async def` statement. See also :pep:`492`." msgstr "" -"Les coroutines sont une forme généralisées des fonctions. On entre dans une " +"Les coroutines sont une forme généralisée des fonctions. On entre dans une " "fonction en un point et on en sort en un autre point. On peut entrer, sortir " "et reprendre l'exécution d'une coroutine en plusieurs points. Elles peuvent " "être implémentées en utilisant l'instruction :keyword:`async def`. Voir " "aussi la :pep:`492`." -#: ../Doc/glossary.rst:255 +#: glossary.rst:259 msgid "coroutine function" msgstr "fonction coroutine" -#: ../Doc/glossary.rst:257 +#: glossary.rst:261 msgid "" "A function which returns a :term:`coroutine` object. A coroutine function " "may be defined with the :keyword:`async def` statement, and may contain :" @@ -626,11 +638,11 @@ msgstr "" "mots clés :keyword:`await`, :keyword:`async for` ainsi que :keyword:`async " "with`. A été introduit par la :pep:`492`." -#: ../Doc/glossary.rst:262 +#: glossary.rst:266 msgid "CPython" msgstr "CPython" -#: ../Doc/glossary.rst:264 +#: glossary.rst:268 msgid "" "The canonical implementation of the Python programming language, as " "distributed on `python.org `_. The term \"CPython\" " @@ -642,11 +654,11 @@ msgstr "" "est utilisé dans certains contextes lorsqu'il est nécessaire de distinguer " "cette implémentation des autres comme *Jython* ou *IronPython*." -#: ../Doc/glossary.rst:268 +#: glossary.rst:272 msgid "decorator" msgstr "décorateur" -#: ../Doc/glossary.rst:270 +#: glossary.rst:274 msgid "" "A function returning another function, usually applied as a function " "transformation using the ``@wrapper`` syntax. Common examples for " @@ -654,10 +666,10 @@ msgid "" msgstr "" "Fonction dont la valeur de retour est une autre fonction. Un décorateur est " "habituellement utilisé pour transformer une fonction via la syntaxe " -"``@wrapper``, dont les exemples typiques sont : :func:`classmethod` et :func:" +"``@wrapper``, dont les exemples typiques sont : :func:`classmethod` et :func:" "`staticmethod`." -#: ../Doc/glossary.rst:274 +#: glossary.rst:278 msgid "" "The decorator syntax is merely syntactic sugar, the following two function " "definitions are semantically equivalent::" @@ -665,7 +677,7 @@ msgstr "" "La syntaxe des décorateurs est simplement du sucre syntaxique, les " "définitions des deux fonctions suivantes sont sémantiquement équivalentes ::" -#: ../Doc/glossary.rst:285 +#: glossary.rst:289 msgid "" "The same concept exists for classes, but is less commonly used there. See " "the documentation for :ref:`function definitions ` and :ref:`class " @@ -675,11 +687,11 @@ msgstr "" "Consultez la documentation :ref:`définitions de fonctions ` et :" "ref:`définitions de classes ` pour en savoir plus sur les décorateurs." -#: ../Doc/glossary.rst:288 +#: glossary.rst:292 msgid "descriptor" msgstr "descripteur" -#: ../Doc/glossary.rst:290 +#: glossary.rst:294 msgid "" "Any object which defines the methods :meth:`__get__`, :meth:`__set__`, or :" "meth:`__delete__`. When a class attribute is a descriptor, its special " @@ -694,27 +706,27 @@ msgstr "" "N'importe quel objet définissant les méthodes :meth:`__get__`, :meth:" "`__set__`, ou :meth:`__delete__`. Lorsque l'attribut d'une classe est un " "descripteur, son comportement spécial est déclenché lors de la recherche des " -"attributs. Normalement, lorsque vous écrivez *a.b* pour obtenir, affecter " -"ou effacer un attribut, Python recherche l'objet nommé *b* dans le " -"dictionnaire de la classe de *a*. Mais si *b* est un descripteur, c'est la " -"méthode de ce descripteur qui est alors appelée. Comprendre les descripteurs " -"est requis pour avoir une compréhension approfondie de Python, ils sont la " -"base de nombre de ses caractéristiques notamment les fonctions, méthodes, " +"attributs. Normalement, lorsque vous écrivez *a.b* pour obtenir, affecter ou " +"effacer un attribut, Python recherche l'objet nommé *b* dans le dictionnaire " +"de la classe de *a*. Mais si *b* est un descripteur, c'est la méthode de ce " +"descripteur qui est alors appelée. Comprendre les descripteurs est requis " +"pour avoir une compréhension approfondie de Python, ils sont la base de " +"nombre de ses caractéristiques notamment les fonctions, méthodes, " "propriétés, méthodes de classes, méthodes statiques et les références aux " "classes parentes." -#: ../Doc/glossary.rst:300 +#: glossary.rst:304 msgid "" "For more information about descriptors' methods, see :ref:`descriptors`." msgstr "" "Pour plus d'informations sur les méthodes des descripteurs, consultez :ref:" "`descriptors`." -#: ../Doc/glossary.rst:301 +#: glossary.rst:305 msgid "dictionary" msgstr "dictionnaire" -#: ../Doc/glossary.rst:303 +#: glossary.rst:307 msgid "" "An associative array, where arbitrary keys are mapped to values. The keys " "can be any object with :meth:`__hash__` and :meth:`__eq__` methods. Called a " @@ -724,11 +736,27 @@ msgstr "" "n'importe quel objet possédant les méthodes :meth:`__hash__` et :meth:" "`__eq__`. En Perl, les dictionnaires sont appelés \"*hash*\"." -#: ../Doc/glossary.rst:306 +#: glossary.rst:310 +msgid "dictionary comprehension" +msgstr "dictionnaire en compréhension (ou dictionnaire en intension)" + +#: glossary.rst:312 +msgid "" +"A compact way to process all or part of the elements in an iterable and " +"return a dictionary with the results. ``results = {n: n ** 2 for n in " +"range(10)}`` generates a dictionary containing key ``n`` mapped to value ``n " +"** 2``. See :ref:`comprehensions`." +msgstr "" +"Écriture concise pour traiter tout ou partie des éléments d'un itérable et " +"renvoyer un dictionnaire contenant les résultats. ``results = {n: n ** 2 for " +"n in range(10)}`` génère un dictionnaire contenant des clés ``n`` liées à " +"leurs valeurs ``n ** 2``. Voir :ref:`compréhensions `." + +#: glossary.rst:316 msgid "dictionary view" msgstr "vue de dictionnaire" -#: ../Doc/glossary.rst:308 +#: glossary.rst:318 msgid "" "The objects returned from :meth:`dict.keys`, :meth:`dict.values`, and :meth:" "`dict.items` are called dictionary views. They provide a dynamic view on the " @@ -742,11 +770,11 @@ msgstr "" "change. Pour transformer une vue en vraie liste, utilisez " "``list(dictview)``. Voir :ref:`dict-views`." -#: ../Doc/glossary.rst:314 +#: glossary.rst:324 msgid "docstring" msgstr "*docstring* (chaîne de documentation)" -#: ../Doc/glossary.rst:316 +#: glossary.rst:326 msgid "" "A string literal which appears as the first expression in a class, function " "or module. While ignored when the suite is executed, it is recognized by " @@ -755,16 +783,16 @@ msgid "" "the canonical place for documentation of the object." msgstr "" "Première chaîne littérale qui apparaît dans l'expression d'une classe, " -"fonction, ou module. Bien qu'ignorée à l'exécution, elles est reconnue par " -"le compilateur et placée dans l'attribut :attr:`__doc__` de la classe, de la " +"fonction, ou module. Bien qu'ignorée à l'exécution, elle est reconnue par le " +"compilateur et placée dans l'attribut :attr:`__doc__` de la classe, de la " "fonction ou du module. Comme cette chaîne est disponible par introspection, " "c'est l'endroit idéal pour documenter l'objet." -#: ../Doc/glossary.rst:322 +#: glossary.rst:332 msgid "duck-typing" msgstr "*duck-typing*" -#: ../Doc/glossary.rst:324 +#: glossary.rst:334 msgid "" "A programming style which does not look at an object's type to determine if " "it has the right interface; instead, the method or attribute is simply " @@ -788,11 +816,11 @@ msgstr "" "*duck-typing* utilise plutôt :func:`hasattr` ou la programmation :term:" "`EAFP`." -#: ../Doc/glossary.rst:333 +#: glossary.rst:343 msgid "EAFP" msgstr "EAFP" -#: ../Doc/glossary.rst:335 +#: glossary.rst:345 msgid "" "Easier to ask for forgiveness than permission. This common Python coding " "style assumes the existence of valid keys or attributes and catches " @@ -809,11 +837,11 @@ msgstr "" "keyword:`except`. Cette technique de programmation contraste avec le style :" "term:`LBYL` utilisé couramment dans les langages tels que C." -#: ../Doc/glossary.rst:341 +#: glossary.rst:351 msgid "expression" msgstr "expression" -#: ../Doc/glossary.rst:343 +#: glossary.rst:353 msgid "" "A piece of syntax which can be evaluated to some value. In other words, an " "expression is an accumulation of expression elements like literals, names, " @@ -833,11 +861,11 @@ msgstr "" "expressions, tel que :keyword:`while`. Les affectations sont également des " "instructions et non des expressions." -#: ../Doc/glossary.rst:350 +#: glossary.rst:360 msgid "extension module" msgstr "module d'extension" -#: ../Doc/glossary.rst:352 +#: glossary.rst:362 msgid "" "A module written in C or C++, using Python's C API to interact with the core " "and with user code." @@ -845,11 +873,11 @@ msgstr "" "Module écrit en C ou C++, utilisant l'API C de Python pour interagir avec " "Python et le code de l'utilisateur." -#: ../Doc/glossary.rst:354 +#: glossary.rst:364 msgid "f-string" msgstr "f-string" -#: ../Doc/glossary.rst:356 +#: glossary.rst:366 msgid "" "String literals prefixed with ``'f'`` or ``'F'`` are commonly called \"f-" "strings\" which is short for :ref:`formatted string literals `. " @@ -859,11 +887,11 @@ msgstr "" "raccourci pour :ref:`formatted string literals `. Voir la :pep:" "`498`." -#: ../Doc/glossary.rst:359 +#: glossary.rst:369 msgid "file object" msgstr "objet fichier" -#: ../Doc/glossary.rst:361 +#: glossary.rst:371 msgid "" "An object exposing a file-oriented API (with methods such as :meth:`read()` " "or :meth:`write()`) to an underlying resource. Depending on the way it was " @@ -876,11 +904,11 @@ msgstr "" "méthodes :meth:`read()` ou :meth:`write()`). En fonction de la manière dont " "il a été créé, un objet fichier peut interfacer l'accès à un fichier sur le " "disque ou à un autre type de stockage ou de communication (typiquement " -"l'entrée standard, la sortie standard, un tampon en mémoire, une socket " -"réseau, ...). Les objets fichiers sont aussi appelés :dfn:`file-like-" -"objects` ou :dfn:`streams`." +"l'entrée standard, la sortie standard, un tampon en mémoire, un connecteur " +"réseau…). Les objets fichiers sont aussi appelés :dfn:`file-like-objects` " +"ou :dfn:`streams`." -#: ../Doc/glossary.rst:369 +#: glossary.rst:379 msgid "" "There are actually three categories of file objects: raw :term:`binary files " "`, buffered :term:`binary files ` and :term:`text " @@ -888,26 +916,26 @@ msgid "" "The canonical way to create a file object is by using the :func:`open` " "function." msgstr "" -"Il existe en réalité trois catégories de fichiers objets : les :term:" +"Il existe en réalité trois catégories de fichiers objets : les :term:" "`fichiers binaires ` bruts, les :term:`fichiers binaires " "` avec tampon (*buffer*) et les :term:`fichiers textes " "`. Leurs interfaces sont définies dans le module :mod:`io`. " "Le moyen le plus simple et direct de créer un objet fichier est d'utiliser " "la fonction :func:`open`." -#: ../Doc/glossary.rst:374 +#: glossary.rst:384 msgid "file-like object" msgstr "objet fichier-compatible" -#: ../Doc/glossary.rst:376 +#: glossary.rst:386 msgid "A synonym for :term:`file object`." msgstr "Synonyme de :term:`objet fichier`." -#: ../Doc/glossary.rst:377 +#: glossary.rst:387 msgid "finder" msgstr "chercheur" -#: ../Doc/glossary.rst:379 +#: glossary.rst:389 msgid "" "An object that tries to find the :term:`loader` for a module that is being " "imported." @@ -915,26 +943,26 @@ msgstr "" "Objet qui essaie de trouver un :term:`chargeur ` pour le module en " "cours d'importation." -#: ../Doc/glossary.rst:382 +#: glossary.rst:392 msgid "" "Since Python 3.3, there are two types of finder: :term:`meta path finders " "` 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 chercheurs : les :term:" +"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:386 +#: glossary.rst:396 msgid "See :pep:`302`, :pep:`420` and :pep:`451` for much more detail." msgstr "Voir les :pep:`302`, :pep:`420` et :pep:`451` pour plus de détails." -#: ../Doc/glossary.rst:387 +#: glossary.rst:397 msgid "floor division" msgstr "division entière" -#: ../Doc/glossary.rst:389 +#: glossary.rst:399 msgid "" "Mathematical division that rounds down to nearest integer. The floor " "division operator is ``//``. For example, the expression ``11 // 4`` " @@ -948,11 +976,11 @@ msgstr "" "4`` vaut ``-3`` car l'arrondi se fait à l'entier inférieur. Voir la :pep:" "`328`." -#: ../Doc/glossary.rst:394 +#: glossary.rst:404 msgid "function" msgstr "fonction" -#: ../Doc/glossary.rst:396 +#: glossary.rst:406 msgid "" "A series of statements which returns some value to a caller. It can also be " "passed zero or more :term:`arguments ` which may be used in the " @@ -964,15 +992,15 @@ msgstr "" "corps de la fonction. Voir aussi :term:`paramètre`, :term:`méthode` et :ref:" "`function`." -#: ../Doc/glossary.rst:400 +#: glossary.rst:410 msgid "function annotation" msgstr "annotation de fonction" -#: ../Doc/glossary.rst:402 +#: glossary.rst:412 msgid "An :term:`annotation` of a function parameter or return value." msgstr ":term:`annotation` d'un paramètre de fonction ou valeur de retour." -#: ../Doc/glossary.rst:404 +#: glossary.rst:414 msgid "" "Function annotations are usually used for :term:`type hints `: " "for example, this function is expected to take two :class:`int` arguments " @@ -983,13 +1011,13 @@ msgstr "" "prendre deux arguments :class:`int` et devrait également avoir une valeur de " "retour de type :class:`int` ::" -#: ../Doc/glossary.rst:412 +#: glossary.rst:422 msgid "Function annotation syntax is explained in section :ref:`function`." msgstr "" "L'annotation syntaxique de la fonction est expliquée dans la section :ref:" "`function`." -#: ../Doc/glossary.rst:414 +#: glossary.rst:424 msgid "" "See :term:`variable annotation` and :pep:`484`, which describe this " "functionality." @@ -997,11 +1025,11 @@ msgstr "" "Voir :term:`variable annotation` et :pep:`484`, qui décrivent cette " "fonctionnalité." -#: ../Doc/glossary.rst:416 +#: glossary.rst:426 msgid "__future__" msgstr "__future__" -#: ../Doc/glossary.rst:418 +#: glossary.rst:428 msgid "" "A pseudo-module which programmers can use to enable new language features " "which are not compatible with the current interpreter." @@ -1010,7 +1038,7 @@ msgstr "" "nouvelles fonctionnalités du langage qui ne sont pas compatibles avec " "l'interpréteur utilisé." -#: ../Doc/glossary.rst:421 +#: glossary.rst:431 msgid "" "By importing the :mod:`__future__` module and evaluating its variables, you " "can see when a new feature was first added to the language and when it " @@ -1020,11 +1048,11 @@ msgstr "" "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:428 +#: glossary.rst:438 msgid "garbage collection" msgstr "ramasse-miettes" -#: ../Doc/glossary.rst:430 +#: glossary.rst:440 msgid "" "The process of freeing memory when it is not used anymore. Python performs " "garbage collection via reference counting and a cyclic garbage collector " @@ -1037,11 +1065,11 @@ msgstr "" "et casser les références circulaires. Le ramasse-miettes peut être contrôlé " "en utilisant le module :mod:`gc`." -#: ../Doc/glossary.rst:436 +#: glossary.rst:446 msgid "generator" msgstr "générateur" -#: ../Doc/glossary.rst:438 +#: glossary.rst:448 msgid "" "A function which returns a :term:`generator iterator`. It looks like a " "normal function except that it contains :keyword:`yield` expressions for " @@ -1053,7 +1081,7 @@ msgstr "" "expressions :keyword:`yield` produisant une série de valeurs utilisable dans " "une boucle *for* ou récupérées une à une via la fonction :func:`next`." -#: ../Doc/glossary.rst:443 +#: glossary.rst:453 msgid "" "Usually refers to a generator function, but may refer to a *generator " "iterator* in some contexts. In cases where the intended meaning isn't " @@ -1064,15 +1092,15 @@ msgstr "" "cas où le sens voulu n'est pas clair, utiliser les termes complets lève " "l’ambigüité." -#: ../Doc/glossary.rst:446 +#: glossary.rst:456 msgid "generator iterator" msgstr "itérateur de générateur" -#: ../Doc/glossary.rst:448 +#: glossary.rst:458 msgid "An object created by a :term:`generator` function." msgstr "Objet créé par une fonction :term:`générateur`." -#: ../Doc/glossary.rst:450 +#: glossary.rst:460 msgid "" "Each :keyword:`yield` temporarily suspends processing, remembering the " "location execution state (including local variables and pending try-" @@ -1085,11 +1113,11 @@ msgstr "" "il en était (contrairement à une fonction qui prendrait un nouveau départ à " "chaque invocation)." -#: ../Doc/glossary.rst:457 +#: glossary.rst:467 msgid "generator expression" msgstr "expression génératrice" -#: ../Doc/glossary.rst:459 +#: glossary.rst:469 msgid "" "An expression that returns an iterator. It looks like a normal expression " "followed by a :keyword:`!for` clause defining a loop variable, range, and an " @@ -1101,11 +1129,11 @@ msgstr "" "intervalle et une clause :keyword:`!if` optionnelle. Toute cette expression " "génère des valeurs pour la fonction qui l'entoure ::" -#: ../Doc/glossary.rst:466 +#: glossary.rst:476 msgid "generic function" msgstr "fonction générique" -#: ../Doc/glossary.rst:468 +#: glossary.rst:478 msgid "" "A function composed of multiple functions implementing the same operation " "for different types. Which implementation should be used during a call is " @@ -1115,7 +1143,7 @@ msgstr "" "pour différents types. L'implémentation à utiliser est déterminée lors de " "l'appel par l'algorithme de répartition." -#: ../Doc/glossary.rst:472 +#: glossary.rst:482 msgid "" "See also the :term:`single dispatch` glossary entry, the :func:`functools." "singledispatch` decorator, and :pep:`443`." @@ -1123,19 +1151,19 @@ msgstr "" "Voir aussi :term:`single dispatch`, le décorateur :func:`functools." "singledispatch` et la :pep:`443`." -#: ../Doc/glossary.rst:475 +#: glossary.rst:485 msgid "GIL" msgstr "GIL" -#: ../Doc/glossary.rst:477 +#: glossary.rst:487 msgid "See :term:`global interpreter lock`." msgstr "Voir :term:`global interpreter lock`." -#: ../Doc/glossary.rst:478 +#: glossary.rst:488 msgid "global interpreter lock" msgstr "verrou global de l'interpréteur" -#: ../Doc/glossary.rst:480 +#: glossary.rst:490 msgid "" "The mechanism used by the :term:`CPython` interpreter to assure that only " "one thread executes Python :term:`bytecode` at a time. This simplifies the " @@ -1155,7 +1183,7 @@ msgstr "" "au détriment malheureusement de beaucoup du parallélisme possible sur les " "machines ayant plusieurs processeurs." -#: ../Doc/glossary.rst:489 +#: glossary.rst:499 msgid "" "However, some extension modules, either standard or third-party, are " "designed so as to release the GIL when doing computationally-intensive tasks " @@ -1167,7 +1195,7 @@ msgstr "" "compression ou le hachage. De la même manière, le GIL est toujours libéré " "lors des entrées / sorties." -#: ../Doc/glossary.rst:494 +#: glossary.rst:504 msgid "" "Past efforts to create a \"free-threaded\" interpreter (one which locks " "shared data at a much finer granularity) have not been successful because " @@ -1181,11 +1209,11 @@ msgstr "" "corriger ce problème de performance induit mènerait à une implémentation " "beaucoup plus compliquée et donc plus coûteuse à maintenir." -#: ../Doc/glossary.rst:500 +#: glossary.rst:510 msgid "hash-based pyc" msgstr "*pyc* utilisant le hachage" -#: ../Doc/glossary.rst:502 +#: glossary.rst:512 msgid "" "A bytecode cache file that uses the hash rather than the last-modified time " "of the corresponding source file to determine its validity. See :ref:`pyc-" @@ -1196,11 +1224,11 @@ msgstr "" "source correspondant pour déterminer sa validité. Voir :ref:`pyc-" "invalidation`." -#: ../Doc/glossary.rst:505 +#: glossary.rst:515 msgid "hashable" msgstr "hachable" -#: ../Doc/glossary.rst:507 +#: glossary.rst:517 msgid "" "An object is *hashable* if it has a hash value which never changes during " "its lifetime (it needs a :meth:`__hash__` method), and can be compared to " @@ -1213,7 +1241,7 @@ msgstr "" "hachables dont la comparaison par ``__eq__`` est vraie doivent avoir la même " "empreinte." -#: ../Doc/glossary.rst:512 +#: glossary.rst:522 msgid "" "Hashability makes an object usable as a dictionary key and a set member, " "because these data structures use the hash value internally." @@ -1222,7 +1250,7 @@ msgstr "" "en tant que membre d'un ensemble (type *set*), car ces structures de données " "utilisent ce *hash*." -#: ../Doc/glossary.rst:515 +#: glossary.rst:525 msgid "" "Most of Python's immutable built-in objects are hashable; mutable containers " "(such as lists or dictionaries) are not; immutable containers (such as " @@ -1239,11 +1267,11 @@ msgstr "" "considérées différentes (sauf avec elles-mêmes) et leur valeur de hachage " "est calculée à partir de leur :func:`id`." -#: ../Doc/glossary.rst:522 +#: glossary.rst:532 msgid "IDLE" msgstr "IDLE" -#: ../Doc/glossary.rst:524 +#: glossary.rst:534 msgid "" "An Integrated Development Environment for Python. IDLE is a basic editor " "and interpreter environment which ships with the standard distribution of " @@ -1252,11 +1280,11 @@ msgstr "" "Environnement de développement intégré pour Python. IDLE est un éditeur " "basique et un interpréteur livré avec la distribution standard de Python." -#: ../Doc/glossary.rst:527 +#: glossary.rst:537 msgid "immutable" msgstr "immuable" -#: ../Doc/glossary.rst:529 +#: glossary.rst:539 msgid "" "An object with a fixed value. Immutable objects include numbers, strings " "and tuples. Such an object cannot be altered. A new object has to be " @@ -1270,11 +1298,11 @@ msgstr "" "quand une valeur de *hash* constante est requise, typiquement en clé de " "dictionnaire." -#: ../Doc/glossary.rst:534 +#: glossary.rst:544 msgid "import path" msgstr "chemin des importations" -#: ../Doc/glossary.rst:536 +#: glossary.rst:546 msgid "" "A list of locations (or :term:`path entries `) that are searched " "by the :term:`path based finder` for modules to import. During import, this " @@ -1283,25 +1311,25 @@ msgid "" msgstr "" "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` ; " +"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:541 +#: glossary.rst:551 msgid "importing" msgstr "importer" -#: ../Doc/glossary.rst:543 +#: glossary.rst:553 msgid "" "The process by which Python code in one module is made available to Python " "code in another module." msgstr "Processus rendant le code Python d'un module disponible dans un autre." -#: ../Doc/glossary.rst:545 +#: glossary.rst:555 msgid "importer" msgstr "importateur" -#: ../Doc/glossary.rst:547 +#: glossary.rst:557 msgid "" "An object that both finds and loads a module; both a :term:`finder` and :" "term:`loader` object." @@ -1309,11 +1337,11 @@ msgstr "" "Objet qui trouve et charge un module, en même temps un :term:`chercheur " "` et un :term:`chargeur `." -#: ../Doc/glossary.rst:549 +#: glossary.rst:559 msgid "interactive" msgstr "interactif" -#: ../Doc/glossary.rst:551 +#: glossary.rst:561 msgid "" "Python has an interactive interpreter which means you can enter statements " "and expressions at the interpreter prompt, immediately execute them and see " @@ -1328,11 +1356,11 @@ msgstr "" "de votre ordinateur). C'est un moyen puissant pour tester de nouvelles idées " "ou étudier de nouveaux modules (souvenez-vous de ``help(x)``)." -#: ../Doc/glossary.rst:557 +#: glossary.rst:567 msgid "interpreted" msgstr "interprété" -#: ../Doc/glossary.rst:559 +#: glossary.rst:569 msgid "" "Python is an interpreted language, as opposed to a compiled one, though the " "distinction can be blurry because of the presence of the bytecode compiler. " @@ -1349,11 +1377,11 @@ msgstr "" "développement / débogage plus court que les langages compilés. Cependant, " "ils s'exécutent généralement plus lentement. Voir aussi :term:`interactif`." -#: ../Doc/glossary.rst:566 +#: glossary.rst:576 msgid "interpreter shutdown" msgstr "arrêt de l'interpréteur" -#: ../Doc/glossary.rst:568 +#: glossary.rst:578 msgid "" "When asked to shut down, the Python interpreter enters a special phase where " "it gradually releases all allocated resources, such as modules and various " @@ -1369,11 +1397,12 @@ msgstr "" "modules ou quelques structures de données internes. Il fait aussi quelques " "appels au :term:`ramasse-miettes`. Cela peut déclencher l'exécution de code " "dans des destructeurs ou des fonctions de rappels de *weakrefs*. Le code " -"exécuté lors de l'arrêt peut rencontrer quelques exception puisque les " -"ressources auxquelles il fait appel pourraient ne plus fonctionner, " -"(typiquement les modules des bibliothèques ou le mécanisme de *warning*)." +"exécuté lors de l'arrêt peut rencontrer des exceptions puisque les " +"ressources auxquelles il fait appel sont susceptibles de ne plus " +"fonctionner, (typiquement les modules des bibliothèques ou le mécanisme de " +"*warning*)." -#: ../Doc/glossary.rst:577 +#: glossary.rst:587 msgid "" "The main reason for interpreter shutdown is that the ``__main__`` module or " "the script being run has finished executing." @@ -1381,18 +1410,19 @@ msgstr "" "La principale raison d'arrêt de l'interpréteur est que le module " "``__main__`` ou le script en cours d'exécution a terminé de s'exécuter." -#: ../Doc/glossary.rst:579 +#: glossary.rst:589 msgid "iterable" msgstr "itérable" -#: ../Doc/glossary.rst:581 +#: glossary.rst:591 +#, fuzzy msgid "" "An object capable of returning its members one at a time. Examples of " "iterables include all sequence types (such as :class:`list`, :class:`str`, " "and :class:`tuple`) and some non-sequence types like :class:`dict`, :term:" "`file objects `, and objects of any classes you define with an :" "meth:`__iter__` method or with a :meth:`__getitem__` method that implements :" -"term:`Sequence` semantics." +"term:`Sequence ` semantics." msgstr "" "Objet capable de renvoyer ses éléments un à un. Par exemple, tous les types " "séquence (comme :class:`list`, :class:`str`, et :class:`tuple`), quelques " @@ -1400,7 +1430,7 @@ msgstr "" "tout objet d'une classe ayant une méthode :meth:`__iter__` ou :meth:" "`__getitem__` qui implémente la sémantique d'une :term:`Sequence`." -#: ../Doc/glossary.rst:588 +#: glossary.rst:598 msgid "" "Iterables can be used in a :keyword:`for` loop and in many other places " "where a sequence is needed (:func:`zip`, :func:`map`, ...). When an " @@ -1414,20 +1444,20 @@ msgid "" msgstr "" "Les itérables peuvent être utilisés dans des boucles :keyword:`for` et à " "beaucoup d'autres endroits où une séquence est requise (:func:`zip`, :func:" -"`map`, ...). Lorsqu'un itérable est passé comme argument à la fonction " -"native :func:`iter`, celle-ci fournit en retour un itérateur sur cet " -"itérable. Cet itérateur n'est valable que pour une seule passe sur le jeu de " -"valeurs. Lors de l'utilisation d'itérables, il n'est habituellement pas " -"nécessaire d'appeler :func:`iter` ou de s'occuper soi-même des objets " -"itérateurs. L'instruction ``for`` le fait automatiquement pour vous, créant " -"une variable temporaire anonyme pour garder l'itérateur durant la boucle. " -"Voir aussi :term:`itérateur`, :term:`séquence` et :term:`générateur`." - -#: ../Doc/glossary.rst:598 +"`map`…). Lorsqu'un itérable est passé comme argument à la fonction native :" +"func:`iter`, celle-ci fournit en retour un itérateur sur cet itérable. Cet " +"itérateur n'est valable que pour une seule passe sur le jeu de valeurs. Lors " +"de l'utilisation d'itérables, il n'est habituellement pas nécessaire " +"d'appeler :func:`iter` ou de s'occuper soi-même des objets itérateurs. " +"L'instruction ``for`` le fait automatiquement pour vous, créant une variable " +"temporaire anonyme pour garder l'itérateur durant la boucle. Voir aussi :" +"term:`itérateur`, :term:`séquence` et :term:`générateur`." + +#: glossary.rst:608 msgid "iterator" msgstr "itérateur" -#: ../Doc/glossary.rst:600 +#: glossary.rst:610 msgid "" "An object representing a stream of data. Repeated calls to the iterator's :" "meth:`~iterator.__next__` method (or passing it to the built-in function :" @@ -1451,7 +1481,7 @@ msgstr "" "point, l'itérateur est épuisé et tous les appels suivants à sa méthode :meth:" "`__next__` lèveront encore une exception :exc:`StopIteration`. Les " "itérateurs doivent avoir une méthode :meth:`__iter__` qui renvoie l'objet " -"itérateur lui même, de façon à ce que chaque itérateur soit aussi itérable " +"itérateur lui-même, de façon à ce que chaque itérateur soit aussi itérable " "et puisse être utilisé dans la plupart des endroits où d'autres itérables " "sont attendus. Une exception notable est un code qui tente plusieurs " "itérations complètes. Un objet conteneur, (tel que :class:`list`) produit un " @@ -1460,15 +1490,15 @@ msgstr "" "itérateur donnerait simplement le même objet itérateur épuisé utilisé dans " "son itération précédente, le faisant ressembler à un conteneur vide." -#: ../Doc/glossary.rst:615 +#: glossary.rst:625 msgid "More information can be found in :ref:`typeiter`." msgstr "Vous trouverez davantage d'informations dans :ref:`typeiter`." -#: ../Doc/glossary.rst:616 +#: glossary.rst:626 msgid "key function" msgstr "fonction clé" -#: ../Doc/glossary.rst:618 +#: glossary.rst:628 msgid "" "A key function or collation function is a callable that returns a value used " "for sorting or ordering. For example, :func:`locale.strxfrm` is used to " @@ -1479,7 +1509,7 @@ msgstr "" "utilisée pour générer une clé de classement prenant en compte les " "conventions de classement spécifiques aux paramètres régionaux courants." -#: ../Doc/glossary.rst:623 +#: glossary.rst:633 msgid "" "A number of tools in Python accept key functions to control how elements are " "ordered or grouped. They include :func:`min`, :func:`max`, :func:`sorted`, :" @@ -1492,7 +1522,7 @@ msgstr "" "merge`, :func:`heapq.nsmallest`, :func:`heapq.nlargest` et :func:`itertools." "groupby`." -#: ../Doc/glossary.rst:629 +#: glossary.rst:639 msgid "" "There are several ways to create a key function. For example. the :meth:" "`str.lower` method can serve as a key function for case insensitive sorts. " @@ -1508,24 +1538,24 @@ msgstr "" "recherches insensibles à la casse. Aussi, il est possible de créer des " "fonctions clés avec des expressions :keyword:`lambda`, comme ``lambda r: " "(r[0], r[2])``. Vous noterez que le module :mod:`operator` propose des " -"constructeurs de fonctions clefs : :func:`~operator.attrgetter`, :func:" +"constructeurs de fonctions clefs : :func:`~operator.attrgetter`, :func:" "`~operator.itemgetter` et :func:`~operator.methodcaller`. Voir :ref:`Comment " "Trier ` pour des exemples de création et d'utilisation de " "fonctions clefs." -#: ../Doc/glossary.rst:637 +#: glossary.rst:647 msgid "keyword argument" msgstr "argument nommé" -#: ../Doc/glossary.rst:639 ../Doc/glossary.rst:914 +#: glossary.rst:926 msgid "See :term:`argument`." msgstr "Voir :term:`argument`." -#: ../Doc/glossary.rst:640 +#: glossary.rst:650 msgid "lambda" msgstr "lambda" -#: ../Doc/glossary.rst:642 +#: glossary.rst:652 msgid "" "An anonymous inline function consisting of a single :term:`expression` which " "is evaluated when the function is called. The syntax to create a lambda " @@ -1533,14 +1563,14 @@ msgid "" msgstr "" "Fonction anonyme sous la forme d'une :term:`expression` et ne contenant " "qu'une seule expression, exécutée lorsque la fonction est appelée. La " -"syntaxe pour créer des fonctions lambda est: ``lambda [parameters]: " +"syntaxe pour créer des fonctions lambda est : ``lambda [parameters]: " "expression``" -#: ../Doc/glossary.rst:645 +#: glossary.rst:655 msgid "LBYL" msgstr "LBYL" -#: ../Doc/glossary.rst:647 +#: glossary.rst:657 msgid "" "Look before you leap. This coding style explicitly tests for pre-conditions " "before making calls or lookups. This style contrasts with the :term:`EAFP` " @@ -1552,7 +1582,7 @@ msgstr "" "appels ou des accès. Ce style contraste avec le style :term:`EAFP` et se " "caractérise par la présence de beaucoup d'instructions :keyword:`if`." -#: ../Doc/glossary.rst:652 +#: glossary.rst:662 msgid "" "In a multi-threaded environment, the LBYL approach can risk introducing a " "race condition between \"the looking\" and \"the leaping\". For example, " @@ -1568,11 +1598,11 @@ msgstr "" "l'accès. Ce problème peut être résolu avec des verrous (*locks*) ou avec " "l'approche EAFP." -#: ../Doc/glossary.rst:657 +#: glossary.rst:667 msgid "list" msgstr "*list*" -#: ../Doc/glossary.rst:659 +#: glossary.rst:669 msgid "" "A built-in Python :term:`sequence`. Despite its name it is more akin to an " "array in other languages than to a linked list since access to elements is " @@ -1582,11 +1612,11 @@ msgstr "" "``list`` ressemble plus à un tableau (*array* dans la plupart des langages) " "qu'à une liste chaînée puisque les accès se font en O(1)." -#: ../Doc/glossary.rst:662 +#: glossary.rst:672 msgid "list comprehension" msgstr "liste en compréhension (ou liste en intension)" -#: ../Doc/glossary.rst:664 +#: glossary.rst:674 msgid "" "A compact way to process all or part of the elements in a sequence and " "return a list with the results. ``result = ['{:#04x}'.format(x) for x in " @@ -1598,14 +1628,14 @@ msgstr "" "et renvoyer une liste contenant les résultats. ``result = ['{:#04x}'." "format(x) for x in range(256) if x % 2 == 0]`` génère la liste composée des " "nombres pairs de 0 à 255 écrits sous formes de chaînes de caractères et en " -"hexadécimal (``0x``...). La clause :keyword:`if` est optionnelle. Si elle " -"est omise, tous les éléments du ``range(256)`` seront utilisés." +"hexadécimal (``0x…``). La clause :keyword:`if` est optionnelle. Si elle est " +"omise, tous les éléments du ``range(256)`` seront utilisés." -#: ../Doc/glossary.rst:670 +#: glossary.rst:680 msgid "loader" msgstr "chargeur" -#: ../Doc/glossary.rst:672 +#: glossary.rst:682 msgid "" "An object that loads a module. It must define a method named :meth:" "`load_module`. A loader is typically returned by a :term:`finder`. See :pep:" @@ -1617,19 +1647,19 @@ msgstr "" "`. Voir la :pep:`302` pour plus de détails et :class:`importlib.ABC." "Loader` pour sa :term:`classe de base abstraite`." -#: ../Doc/glossary.rst:676 +#: glossary.rst:686 msgid "magic method" msgstr "méthode magique" -#: ../Doc/glossary.rst:680 +#: glossary.rst:690 msgid "An informal synonym for :term:`special method`." msgstr "Un synonyme informel de :term:`special method`." -#: ../Doc/glossary.rst:681 +#: glossary.rst:691 msgid "mapping" msgstr "tableau de correspondances" -#: ../Doc/glossary.rst:683 +#: glossary.rst:693 msgid "" "A container object that supports arbitrary key lookups and implements the " "methods specified in the :class:`~collections.abc.Mapping` or :class:" @@ -1646,11 +1676,11 @@ msgstr "" "`dict`, :class:`collections.defaultdict`, :class:`collections.OrderedDict` " "et :class:`collections.Counter`." -#: ../Doc/glossary.rst:689 +#: glossary.rst:699 msgid "meta path finder" msgstr "chercheur dans les méta-chemins" -#: ../Doc/glossary.rst:691 +#: glossary.rst:701 msgid "" "A :term:`finder` returned by a search of :data:`sys.meta_path`. Meta path " "finders are related to, but different from :term:`path entry finders `." -#: ../Doc/glossary.rst:695 +#: glossary.rst:705 msgid "" "See :class:`importlib.abc.MetaPathFinder` for the methods that meta path " "finders implement." @@ -1668,11 +1698,11 @@ msgstr "" "Voir :class:`importlib.abc.MetaPathFinder` pour les méthodes que les " "chercheurs dans les méta-chemins doivent implémenter." -#: ../Doc/glossary.rst:697 +#: glossary.rst:707 msgid "metaclass" msgstr "métaclasse" -#: ../Doc/glossary.rst:699 +#: glossary.rst:709 msgid "" "The class of a class. Class definitions create a class name, a class " "dictionary, and a list of base classes. The metaclass is responsible for " @@ -1689,22 +1719,22 @@ msgstr "" "pour rôle de réunir ces trois paramètres pour construire la classe. La " "plupart des langages orientés objet fournissent une implémentation par " "défaut. La particularité de Python est la possibilité de créer des " -"métaclasses personnalisées. La plupart des utilisateurs n'aura jamais besoin " -"de cet outil, mais lorsque le besoin survient, les métaclasses offrent des " -"solutions élégantes et puissantes. Elles sont utilisées pour journaliser les " -"accès à des propriétés, rendre sûr les environnements *multi-threads*, " -"suivre la création d'objets, implémenter des singletons et bien d'autres " -"tâches." - -#: ../Doc/glossary.rst:709 +"métaclasses personnalisées. La plupart des utilisateurs n'auront jamais " +"besoin de cet outil, mais lorsque le besoin survient, les métaclasses " +"offrent des solutions élégantes et puissantes. Elles sont utilisées pour " +"journaliser les accès à des propriétés, rendre sûrs les environnements " +"*multi-threads*, suivre la création d'objets, implémenter des singletons et " +"bien d'autres tâches." + +#: glossary.rst:719 msgid "More information can be found in :ref:`metaclasses`." -msgstr "Plus d'informations sont disponibles dans : :ref:`metaclasses`." +msgstr "Plus d'informations sont disponibles dans : :ref:`metaclasses`." -#: ../Doc/glossary.rst:710 +#: glossary.rst:720 msgid "method" msgstr "méthode" -#: ../Doc/glossary.rst:712 +#: glossary.rst:722 msgid "" "A function which is defined inside a class body. If called as an attribute " "of an instance of that class, the method will get the instance object as its " @@ -1716,11 +1746,11 @@ msgstr "" "premier :term:`argument` (qui, par convention, est habituellement nommé " "``self``). Voir :term:`function` et :term:`nested scope`." -#: ../Doc/glossary.rst:716 +#: glossary.rst:726 msgid "method resolution order" msgstr "ordre de résolution des méthodes" -#: ../Doc/glossary.rst:718 +#: glossary.rst:728 msgid "" "Method Resolution Order is the order in which base classes are searched for " "a member during lookup. See `The Python 2.3 Method Resolution Order `_ pour plus de détails sur l'algorithme utilisé par " "l'interpréteur Python depuis la version 2.3." -#: ../Doc/glossary.rst:722 +#: glossary.rst:732 msgid "module" msgstr "module" -#: ../Doc/glossary.rst:724 +#: glossary.rst:734 msgid "" "An object that serves as an organizational unit of Python code. Modules " "have a namespace containing arbitrary Python objects. Modules are loaded " @@ -1748,15 +1778,15 @@ msgstr "" "modules ont un espace de nommage et peuvent contenir n'importe quels objets " "Python. Charger des modules est appelé :term:`importer `." -#: ../Doc/glossary.rst:728 +#: glossary.rst:738 msgid "See also :term:`package`." msgstr "Voir aussi :term:`paquet`." -#: ../Doc/glossary.rst:729 +#: glossary.rst:739 msgid "module spec" msgstr "spécificateur de module" -#: ../Doc/glossary.rst:731 +#: glossary.rst:741 msgid "" "A namespace containing the import-related information used to load a module. " "An instance of :class:`importlib.machinery.ModuleSpec`." @@ -1765,19 +1795,19 @@ msgstr "" "utilisées pour charger un module. C'est une instance de la classe :class:" "`importlib.machinery.ModuleSpec`." -#: ../Doc/glossary.rst:733 +#: glossary.rst:743 msgid "MRO" msgstr "MRO" -#: ../Doc/glossary.rst:735 +#: glossary.rst:745 msgid "See :term:`method resolution order`." msgstr "Voir :term:`ordre de résolution des méthodes`." -#: ../Doc/glossary.rst:736 +#: glossary.rst:746 msgid "mutable" msgstr "muable" -#: ../Doc/glossary.rst:738 +#: glossary.rst:748 msgid "" "Mutable objects can change their value but keep their :func:`id`. See also :" "term:`immutable`." @@ -1785,11 +1815,11 @@ msgstr "" "Un objet muable peut changer de valeur tout en gardant le même :func:`id`. " "Voir aussi :term:`immuable`." -#: ../Doc/glossary.rst:740 +#: glossary.rst:750 msgid "named tuple" msgstr "n-uplet nommé" -#: ../Doc/glossary.rst:742 +#: glossary.rst:752 msgid "" "The term \"named tuple\" applies to any type or class that inherits from " "tuple and whose indexable elements are also accessible using named " @@ -1800,7 +1830,7 @@ msgstr "" "accessibles en utilisant des attributs nommés. Les types et classes peuvent " "avoir aussi d'autres caractéristiques." -#: ../Doc/glossary.rst:746 +#: glossary.rst:756 msgid "" "Several built-in types are named tuples, including the values returned by :" "func:`time.localtime` and :func:`os.stat`. Another example is :data:`sys." @@ -1810,7 +1840,7 @@ msgstr "" "retournées par :func:`time.localtime` et :func:`os.stat`. Un autre exemple " "est :data:`sys.float_info` ::" -#: ../Doc/glossary.rst:757 +#: glossary.rst:767 msgid "" "Some named tuples are built-in types (such as the above examples). " "Alternatively, a named tuple can be created from a regular class definition " @@ -1827,11 +1857,11 @@ msgstr "" "méthodes supplémentaires qui ne seront pas trouvées dans celles écrites à la " "main ni dans les n-uplets nommés natifs." -#: ../Doc/glossary.rst:764 +#: glossary.rst:774 msgid "namespace" msgstr "espace de nommage" -#: ../Doc/glossary.rst:766 +#: glossary.rst:776 msgid "" "The place where a variable is stored. Namespaces are implemented as " "dictionaries. There are the local, global and built-in namespaces as well " @@ -1855,11 +1885,11 @@ msgstr "" "implémentées respectivement dans les modules :mod:`random` et :mod:" "`itertools`." -#: ../Doc/glossary.rst:776 +#: glossary.rst:786 msgid "namespace package" msgstr "paquet-espace de nommage" -#: ../Doc/glossary.rst:778 +#: glossary.rst:788 msgid "" "A :pep:`420` :term:`package` which serves only as a container for " "subpackages. Namespace packages may have no physical representation, and " @@ -1871,15 +1901,15 @@ msgstr "" "aucune représentation physique et, plus spécifiquement, ne sont pas comme " "un :term:`paquet classique` puisqu'ils n'ont pas de fichier ``__init__.py``." -#: ../Doc/glossary.rst:783 +#: glossary.rst:793 msgid "See also :term:`module`." msgstr "Voir aussi :term:`module`." -#: ../Doc/glossary.rst:784 +#: glossary.rst:794 msgid "nested scope" msgstr "portée imbriquée" -#: ../Doc/glossary.rst:786 +#: glossary.rst:796 msgid "" "The ability to refer to a variable in an enclosing definition. For " "instance, a function defined inside another function can refer to variables " @@ -1897,11 +1927,11 @@ msgstr "" "dans l'espace de nommage global, le mot clef :keyword:`nonlocal` permet " "d'écrire dans l'espace de nommage dans lequel est déclarée la variable." -#: ../Doc/glossary.rst:793 +#: glossary.rst:803 msgid "new-style class" msgstr "nouvelle classe" -#: ../Doc/glossary.rst:795 +#: glossary.rst:805 msgid "" "Old name for the flavor of classes now used for all class objects. In " "earlier Python versions, only new-style classes could use Python's newer, " @@ -1914,11 +1944,11 @@ msgstr "" "__slots__`, les descripteurs, les propriétés, :meth:`__getattribute__`, les " "méthodes de classe et les méthodes statiques." -#: ../Doc/glossary.rst:799 +#: glossary.rst:809 msgid "object" msgstr "objet" -#: ../Doc/glossary.rst:801 +#: glossary.rst:811 msgid "" "Any data with state (attributes or value) and defined behavior (methods). " "Also the ultimate base class of any :term:`new-style class`." @@ -1928,11 +1958,11 @@ msgstr "" "l'ancêtre commun à absolument toutes les :term:`nouvelles classes `." -#: ../Doc/glossary.rst:804 +#: glossary.rst:814 msgid "package" msgstr "paquet" -#: ../Doc/glossary.rst:806 +#: glossary.rst:816 msgid "" "A Python :term:`module` which can contain submodules or recursively, " "subpackages. Technically, a package is a Python module with an ``__path__`` " @@ -1942,15 +1972,15 @@ msgstr "" "paquets. Techniquement, un paquet est un module qui possède un attribut " "``__path__``." -#: ../Doc/glossary.rst:810 +#: glossary.rst:820 msgid "See also :term:`regular package` and :term:`namespace package`." msgstr "Voir aussi :term:`paquet classique` et :term:`namespace package`." -#: ../Doc/glossary.rst:811 +#: glossary.rst:821 msgid "parameter" msgstr "paramètre" -#: ../Doc/glossary.rst:813 +#: glossary.rst:823 msgid "" "A named entity in a :term:`function` (or method) definition that specifies " "an :term:`argument` (or in some cases, arguments) that the function can " @@ -1958,32 +1988,33 @@ msgid "" msgstr "" "Entité nommée dans la définition d'une :term:`fonction` (ou méthode), " "décrivant un :term:`argument` (ou dans certains cas des arguments) que la " -"fonction accepte. Il existe cinq sortes de paramètres :" +"fonction accepte. Il existe cinq sortes de paramètres :" -#: ../Doc/glossary.rst:817 +#: glossary.rst:827 msgid "" ":dfn:`positional-or-keyword`: specifies an argument that can be passed " "either :term:`positionally ` or as a :term:`keyword argument " "`. This is the default kind of parameter, for example *foo* and " "*bar* in the following::" msgstr "" -":dfn:`positional-or-keyword`: l'argument peut être passé soit par sa :term:" +":dfn:`positional-or-keyword` : l'argument peut être passé soit par sa :term:" "`position `, soit en tant que :term:`argument nommé `. " "C'est le type de paramètre par défaut. Par exemple, *foo* et *bar* dans " "l'exemple suivant ::" -#: ../Doc/glossary.rst:826 +#: glossary.rst:836 msgid "" ":dfn:`positional-only`: specifies an argument that can be supplied only by " -"position. Python has no syntax for defining positional-only parameters. " -"However, some built-in functions have positional-only parameters (e.g. :func:" -"`abs`)." +"position. Positional-only parameters can be defined by including a ``/`` " +"character in the parameter list of the function definition after them, for " +"example *posonly1* and *posonly2* in the following::" msgstr "" -":dfn:`positional-only`: l'argument ne peut être donné que par sa position. " -"Python n'a pas de syntaxe pour déclarer de tels paramètres, cependant des " -"fonctions natives, comme :func:`abs`, en utilisent." +":dfn:`positional-only` : définit un argument qui ne peut être fourni que par " +"position. Les paramètres *positional-only* peuvent être définis en insérant " +"un caractère \"/\" dans la liste de paramètres de la définition de fonction " +"après eux. Par exemple : *posonly1* et *posonly2* dans le code suivant ::" -#: ../Doc/glossary.rst:833 +#: glossary.rst:845 msgid "" ":dfn:`keyword-only`: specifies an argument that can be supplied only by " "keyword. Keyword-only parameters can be defined by including a single var-" @@ -1991,13 +2022,13 @@ msgid "" "definition before them, for example *kw_only1* and *kw_only2* in the " "following::" msgstr "" -":dfn:`keyword-only`: l'argument ne peut être fourni que nommé. Les " +":dfn:`keyword-only` : l'argument ne peut être fourni que nommé. Les " "paramètres *keyword-only* peuvent être définis en utilisant un seul " "paramètre *var-positional*, ou en ajoutant une étoile (``*``) seule dans la " "liste des paramètres avant eux. Par exemple, *kw_only1* et *kw_only2* dans " "le code suivant ::" -#: ../Doc/glossary.rst:841 +#: glossary.rst:853 msgid "" ":dfn:`var-positional`: specifies that an arbitrary sequence of positional " "arguments can be provided (in addition to any positional arguments already " @@ -2005,24 +2036,24 @@ msgid "" "prepending the parameter name with ``*``, for example *args* in the " "following::" msgstr "" -":dfn:`var-positional`: une séquence d'arguments positionnels peut être " +":dfn:`var-positional` : une séquence d'arguments positionnels peut être " "fournie (en plus de tous les arguments positionnels déjà acceptés par " "d'autres paramètres). Un tel paramètre peut être défini en préfixant son nom " "par une ``*``. Par exemple *args* ci-après ::" -#: ../Doc/glossary.rst:849 +#: glossary.rst:861 msgid "" ":dfn:`var-keyword`: specifies that arbitrarily many keyword arguments can be " "provided (in addition to any keyword arguments already accepted by other " "parameters). Such a parameter can be defined by prepending the parameter " "name with ``**``, for example *kwargs* in the example above." msgstr "" -":dfn:`var-keyword`: une quantité arbitraire d'arguments peut être passée, " +":dfn:`var-keyword` : une quantité arbitraire d'arguments peut être passée, " "chacun étant nommé (en plus de tous les arguments nommés déjà acceptés par " "d'autres paramètres). Un tel paramètre est défini en préfixant le nom du " "paramètre par ``**``. Par exemple, *kwargs* ci-dessus." -#: ../Doc/glossary.rst:855 +#: glossary.rst:867 msgid "" "Parameters can specify both optional and required arguments, as well as " "default values for some optional arguments." @@ -2030,7 +2061,7 @@ msgstr "" "Les paramètres peuvent spécifier des arguments obligatoires ou optionnels, " "ainsi que des valeurs par défaut pour les arguments optionnels." -#: ../Doc/glossary.rst:858 +#: glossary.rst:870 msgid "" "See also the :term:`argument` glossary entry, the FAQ question on :ref:`the " "difference between arguments and parameters `, " @@ -2042,11 +2073,11 @@ msgstr "" "parameter>` dans la FAQ, la classe :class:`inspect.Parameter`, la section :" "ref:`function` et la :pep:`362`." -#: ../Doc/glossary.rst:862 +#: glossary.rst:874 msgid "path entry" msgstr "entrée de chemin" -#: ../Doc/glossary.rst:864 +#: glossary.rst:876 msgid "" "A single location on the :term:`import path` which the :term:`path based " "finder` consults to find modules for importing." @@ -2055,11 +2086,11 @@ msgstr "" "path* en anglais, d'où le *path*) que le :term:`chercheur basé sur les " "chemins ` consulte pour trouver des modules à importer." -#: ../Doc/glossary.rst:866 +#: glossary.rst:878 msgid "path entry finder" msgstr "chercheur de chemins" -#: ../Doc/glossary.rst:868 +#: glossary.rst:880 msgid "" "A :term:`finder` returned by a callable on :data:`sys.path_hooks` (i.e. a :" "term:`path entry hook`) which knows how to locate modules given a :term:" @@ -2070,7 +2101,7 @@ msgstr "" "path `) qui sait où trouver des modules lorsqu'on lui donne " "une :term:`entrée de path `." -#: ../Doc/glossary.rst:872 +#: glossary.rst:884 msgid "" "See :class:`importlib.abc.PathEntryFinder` for the methods that path entry " "finders implement." @@ -2078,11 +2109,11 @@ msgstr "" "Voir :class:`importlib.abc.PathEntryFinder` pour les méthodes qu'un " "chercheur d'entrée dans *path* doit implémenter." -#: ../Doc/glossary.rst:874 +#: glossary.rst:886 msgid "path entry hook" msgstr "point d'entrée pour la recherche dans *path*" -#: ../Doc/glossary.rst:876 +#: glossary.rst:888 msgid "" "A callable on the :data:`sys.path_hook` list which returns a :term:`path " "entry finder` if it knows how to find modules on a specific :term:`path " @@ -2092,11 +2123,11 @@ msgstr "" "d'entrée dans path ` s'il sait où trouver des modules " "pour une :term:`entrée dans path ` donnée." -#: ../Doc/glossary.rst:879 +#: glossary.rst:891 msgid "path based finder" msgstr "chercheur basé sur les chemins" -#: ../Doc/glossary.rst:881 +#: glossary.rst:893 msgid "" "One of the default :term:`meta path finders ` which " "searches an :term:`import path` for modules." @@ -2105,11 +2136,11 @@ msgstr "" "défaut qui cherche des modules dans un :term:`chemin des importations " "`." -#: ../Doc/glossary.rst:883 +#: glossary.rst:895 msgid "path-like object" msgstr "objet simili-chemin" -#: ../Doc/glossary.rst:885 +#: glossary.rst:897 msgid "" "An object representing a file system path. A path-like object is either a :" "class:`str` or :class:`bytes` object representing a path, or an object " @@ -2129,11 +2160,11 @@ msgstr "" "peuvent être utilisées, respectivement, pour garantir un résultat de type :" "class:`str` ou :class:`bytes` à la place. A été Introduit par la :pep:`519`." -#: ../Doc/glossary.rst:893 +#: glossary.rst:905 msgid "PEP" msgstr "PEP" -#: ../Doc/glossary.rst:895 +#: glossary.rst:907 msgid "" "Python Enhancement Proposal. A PEP is a design document providing " "information to the Python community, or describing a new feature for Python " @@ -2146,7 +2177,7 @@ msgstr "" "ou son environnement. Les PEP doivent fournir une spécification technique " "concise et une justification des fonctionnalités proposées." -#: ../Doc/glossary.rst:901 +#: glossary.rst:913 msgid "" "PEPs are intended to be the primary mechanisms for proposing major new " "features, for collecting community input on an issue, and for documenting " @@ -2161,15 +2192,15 @@ msgstr "" "l’établissement d’un consensus au sein de la communauté et de documenter les " "opinions contradictoires." -#: ../Doc/glossary.rst:907 +#: glossary.rst:919 msgid "See :pep:`1`." msgstr "Voir :pep:`1`." -#: ../Doc/glossary.rst:908 +#: glossary.rst:920 msgid "portion" msgstr "portion" -#: ../Doc/glossary.rst:910 +#: glossary.rst:922 msgid "" "A set of files in a single directory (possibly stored in a zip file) that " "contribute to a namespace package, as defined in :pep:`420`." @@ -2178,15 +2209,15 @@ msgstr "" "fichier zip) qui contribue à l'espace de nommage d'un paquet, tel que défini " "dans la :pep:`420`." -#: ../Doc/glossary.rst:912 +#: glossary.rst:924 msgid "positional argument" msgstr "argument positionnel" -#: ../Doc/glossary.rst:915 +#: glossary.rst:927 msgid "provisional API" msgstr "API provisoire" -#: ../Doc/glossary.rst:917 +#: glossary.rst:929 msgid "" "A provisional API is one which has been deliberately excluded from the " "standard library's backwards compatibility guarantees. While major changes " @@ -2199,24 +2230,24 @@ msgstr "" "Une API provisoire est une API qui n'offre aucune garantie de " "rétrocompatibilité (la bibliothèque standard exige la rétrocompatibilité). " "Bien que des changements majeurs d'une telle interface ne soient pas " -"attendus, tant qu'elle est étiquetée provisoire, des changement cassant la " +"attendus, tant qu'elle est étiquetée provisoire, des changements cassant la " "rétrocompatibilité (y compris sa suppression complète) peuvent survenir si " "les développeurs principaux le jugent nécessaire. Ces modifications ne " "surviendront que si de sérieux problèmes sont découverts et qu'ils n'avaient " "pas été identifiés avant l'ajout de l'API." -#: ../Doc/glossary.rst:926 +#: glossary.rst:938 msgid "" "Even for provisional APIs, backwards incompatible changes are seen as a " "\"solution of last resort\" - every attempt will still be made to find a " "backwards compatible resolution to any identified problems." msgstr "" -"Même pour les API provisoires, les changement cassant la rétrocompatibilité " -"sont considérées comme des \"solutions de dernier recours\". Tout ce qui est " -"possible sera fait pour tenter de résoudre les problème en conservant la " +"Même pour les API provisoires, les changements cassant la rétrocompatibilité " +"sont considérés comme des \"solutions de dernier recours\". Tout ce qui est " +"possible sera fait pour tenter de résoudre les problèmes en conservant la " "rétrocompatibilité." -#: ../Doc/glossary.rst:930 +#: glossary.rst:942 msgid "" "This process allows the standard library to continue to evolve over time, " "without locking in problematic design errors for extended periods of time. " @@ -2226,19 +2257,19 @@ msgstr "" "le temps, sans se bloquer longtemps sur des erreurs d'architecture. Voir la :" "pep:`411` pour plus de détails." -#: ../Doc/glossary.rst:933 +#: glossary.rst:945 msgid "provisional package" msgstr "paquet provisoire" -#: ../Doc/glossary.rst:935 +#: glossary.rst:947 msgid "See :term:`provisional API`." msgstr "Voir :term:`provisional API`." -#: ../Doc/glossary.rst:936 +#: glossary.rst:948 msgid "Python 3000" msgstr "Python 3000" -#: ../Doc/glossary.rst:938 +#: glossary.rst:950 msgid "" "Nickname for the Python 3.x release line (coined long ago when the release " "of version 3 was something in the distant future.) This is also abbreviated " @@ -2247,11 +2278,11 @@ msgstr "" "Surnom donné à la série des Python 3.x (très vieux surnom donné à l'époque " "où Python 3 représentait un futur lointain). Aussi abrégé *Py3k*." -#: ../Doc/glossary.rst:941 +#: glossary.rst:953 msgid "Pythonic" msgstr "*Pythonique*" -#: ../Doc/glossary.rst:943 +#: glossary.rst:955 msgid "" "An idea or piece of code which closely follows the most common idioms of the " "Python language, rather than implementing code using concepts common to " @@ -2267,16 +2298,16 @@ msgstr "" "les gens qui ne sont pas habitués à Python utilisent parfois un compteur " "numérique à la place ::" -#: ../Doc/glossary.rst:953 +#: glossary.rst:965 msgid "As opposed to the cleaner, Pythonic method::" msgstr "" "Plutôt qu'utiliser la méthode, plus propre et élégante, donc *Pythonique* ::" -#: ../Doc/glossary.rst:957 +#: glossary.rst:969 msgid "qualified name" msgstr "nom qualifié" -#: ../Doc/glossary.rst:959 +#: glossary.rst:971 msgid "" "A dotted name showing the \"path\" from a module's global scope to a class, " "function or method defined in that module, as defined in :pep:`3155`. For " @@ -2288,7 +2319,7 @@ msgstr "" "module, tel que défini dans la :pep:`3155`. Pour les fonctions et classes de " "premier niveau, le nom qualifié est le même que le nom de l'objet ::" -#: ../Doc/glossary.rst:976 +#: glossary.rst:988 msgid "" "When used to refer to modules, the *fully qualified name* means the entire " "dotted path to the module, including any parent packages, e.g. ``email.mime." @@ -2297,13 +2328,13 @@ msgstr "" "Lorsqu'il est utilisé pour nommer des modules, le *nom qualifié complet* " "(*fully qualified name - FQN* en anglais) signifie le chemin complet (séparé " "par des points) vers le module, incluant tous les paquets parents. Par " -"exemple : ``email.mime.text`` ::" +"exemple : ``email.mime.text`` ::" -#: ../Doc/glossary.rst:983 +#: glossary.rst:995 msgid "reference count" msgstr "nombre de références" -#: ../Doc/glossary.rst:985 +#: glossary.rst:997 msgid "" "The number of references to an object. When the reference count of an " "object drops to zero, it is deallocated. Reference counting is generally " @@ -2319,11 +2350,11 @@ msgstr "" "func:`~sys.getrefcount` que les développeurs peuvent utiliser pour obtenir " "le nombre de références à un objet donné." -#: ../Doc/glossary.rst:991 +#: glossary.rst:1003 msgid "regular package" msgstr "paquet classique" -#: ../Doc/glossary.rst:993 +#: glossary.rst:1005 msgid "" "A traditional :term:`package`, such as a directory containing an ``__init__." "py`` file." @@ -2331,15 +2362,15 @@ msgstr "" ":term:`paquet` traditionnel, tel qu'un dossier contenant un fichier " "``__init__.py``." -#: ../Doc/glossary.rst:996 +#: glossary.rst:1008 msgid "See also :term:`namespace package`." msgstr "Voir aussi :term:`paquet-espace de nommage `." -#: ../Doc/glossary.rst:997 +#: glossary.rst:1009 msgid "__slots__" msgstr "``__slots__``" -#: ../Doc/glossary.rst:999 +#: glossary.rst:1011 msgid "" "A declaration inside a class that saves memory by pre-declaring space for " "instance attributes and eliminating instance dictionaries. Though popular, " @@ -2354,11 +2385,11 @@ msgstr "" "nombre d'instances dans une application devient un sujet critique pour la " "mémoire." -#: ../Doc/glossary.rst:1004 +#: glossary.rst:1016 msgid "sequence" msgstr "séquence" -#: ../Doc/glossary.rst:1006 +#: glossary.rst:1018 msgid "" "An :term:`iterable` which supports efficient element access using integer " "indices via the :meth:`__getitem__` special method and defines a :meth:" @@ -2371,19 +2402,20 @@ msgstr "" ":term:`itérable` qui offre un accès efficace à ses éléments par un indice " "sous forme de nombre entier via la méthode spéciale :meth:`__getitem__` et " "qui définit une méthode :meth:`__len__` donnant sa taille. Voici quelques " -"séquences natives : :class:`list`, :class:`str`, :class:`tuple`, et :class:" +"séquences natives : :class:`list`, :class:`str`, :class:`tuple`, et :class:" "`bytes`. Notez que :class:`dict` possède aussi une méthode :meth:" "`__getitem__` et une méthode :meth:`__len__`, mais il est considéré comme un " "*mapping* plutôt qu'une séquence, car ses accès se font par une clé " "arbitraire :term:`immuable` plutôt qu'un nombre entier." -#: ../Doc/glossary.rst:1015 +#: glossary.rst:1027 +#, fuzzy msgid "" "The :class:`collections.abc.Sequence` abstract base class defines a much " "richer interface that goes beyond just :meth:`__getitem__` and :meth:" "`__len__`, adding :meth:`count`, :meth:`index`, :meth:`__contains__`, and :" "meth:`__reversed__`. Types that implement this expanded interface can be " -"registered explicitly using :func:`~abc.register`." +"registered explicitly using :func:`~abc.ABCMeta.register`." msgstr "" "La classe abstraite de base :class:`collections.abc.Sequence` définit une " "interface plus riche qui va au-delà des simples :meth:`__getitem__` et :meth:" @@ -2391,11 +2423,27 @@ msgstr "" "et :meth:`__reversed__`. Les types qui implémentent cette interface étendue " "peuvent s'enregistrer explicitement en utilisant :func:`~abc.register`." -#: ../Doc/glossary.rst:1022 +#: glossary.rst:1034 +msgid "set comprehension" +msgstr "ensemble en compréhension (ou ensemble en intension)" + +#: glossary.rst:1036 +msgid "" +"A compact way to process all or part of the elements in an iterable and " +"return a set with the results. ``results = {c for c in 'abracadabra' if c " +"not in 'abc'}`` generates the set of strings ``{'r', 'd'}``. See :ref:" +"`comprehensions`." +msgstr "" +"Une façon compacte de traiter tout ou partie des éléments d'un itérable et " +"de renvoyer un *set* avec les résultats. ``results = {c for c in " +"'abracadabra' if c not in 'abc'}`` génère l'ensemble contenant les lettres " +"« r » et « d » ``{'r', 'd'}``. Voir :ref:`comprehensions`." + +#: glossary.rst:1040 msgid "single dispatch" msgstr "distribution simple" -#: ../Doc/glossary.rst:1024 +#: glossary.rst:1042 msgid "" "A form of :term:`generic function` dispatch where the implementation is " "chosen based on the type of a single argument." @@ -2404,11 +2452,11 @@ msgstr "" "générique>`, où l'implémentation est choisie en fonction du type d'un seul " "argument." -#: ../Doc/glossary.rst:1026 +#: glossary.rst:1044 msgid "slice" msgstr "tranche" -#: ../Doc/glossary.rst:1028 +#: glossary.rst:1046 msgid "" "An object usually containing a portion of a :term:`sequence`. A slice is " "created using the subscript notation, ``[]`` with colons between numbers " @@ -2421,11 +2469,11 @@ msgstr "" "``variable_name[1:3:5]``. Cette notation utilise des objets :class:`slice` " "en interne." -#: ../Doc/glossary.rst:1032 +#: glossary.rst:1050 msgid "special method" msgstr "méthode spéciale" -#: ../Doc/glossary.rst:1036 +#: glossary.rst:1054 msgid "" "A method that is called implicitly by Python to execute a certain operation " "on a type, such as addition. Such methods have names starting and ending " @@ -2437,11 +2485,11 @@ msgstr "" "ont des noms commençant et terminant par des doubles tirets bas. Les " "méthodes spéciales sont documentées dans :ref:`specialnames`." -#: ../Doc/glossary.rst:1040 +#: glossary.rst:1058 msgid "statement" msgstr "instruction" -#: ../Doc/glossary.rst:1042 +#: glossary.rst:1060 msgid "" "A statement is part of a suite (a \"block\" of code). A statement is either " "an :term:`expression` or one of several constructs with a keyword, such as :" @@ -2452,21 +2500,21 @@ msgstr "" "constructions basées sur un mot-clé, comme :keyword:`if`, :keyword:`while` " "ou :keyword:`for`." -#: ../Doc/glossary.rst:1045 +#: glossary.rst:1063 msgid "text encoding" msgstr "encodage de texte" -#: ../Doc/glossary.rst:1047 +#: glossary.rst:1065 msgid "A codec which encodes Unicode strings to bytes." msgstr "" "Codec (codeur-décodeur) qui convertit des chaînes de caractères Unicode en " "octets (classe *bytes*)." -#: ../Doc/glossary.rst:1048 +#: glossary.rst:1066 msgid "text file" msgstr "fichier texte" -#: ../Doc/glossary.rst:1050 +#: glossary.rst:1068 msgid "" "A :term:`file object` able to read and write :class:`str` objects. Often, a " "text file actually accesses a byte-oriented datastream and handles the :term:" @@ -2481,7 +2529,7 @@ msgstr "" "ou ``'w'``), :data:`sys.stdin`, :data:`sys.stdout` et les instances de :" "class:`io.StringIO`." -#: ../Doc/glossary.rst:1057 +#: glossary.rst:1075 msgid "" "See also :term:`binary file` for a file object able to read and write :term:" "`bytes-like objects `." @@ -2489,11 +2537,11 @@ msgstr "" "Voir aussi :term:`binary file` pour un objet fichier capable de lire et " "d'écrire :term:`bytes-like objects `." -#: ../Doc/glossary.rst:1059 +#: glossary.rst:1077 msgid "triple-quoted string" msgstr "chaîne entre triple guillemets" -#: ../Doc/glossary.rst:1061 +#: glossary.rst:1079 msgid "" "A string which is bound by three instances of either a quotation mark (\") " "or an apostrophe ('). While they don't provide any functionality not " @@ -2508,15 +2556,15 @@ msgstr "" "qui ne soit pas disponible avec une chaîne entre guillemets, elle est utile " "pour de nombreuses raisons. Elle vous autorise à insérer des guillemets " "simples et doubles dans une chaîne sans avoir à les protéger et elle peut " -"s'étendre sur plusieurs lignes sans avoir à terminer chaque ligne par un ``" -"\\``. Elle est ainsi particulièrement utile pour les chaînes de " +"s'étendre sur plusieurs lignes sans avoir à terminer chaque ligne par un " +"``\\``. Elle est ainsi particulièrement utile pour les chaînes de " "documentation (*docstrings*)." -#: ../Doc/glossary.rst:1068 +#: glossary.rst:1086 msgid "type" msgstr "type" -#: ../Doc/glossary.rst:1070 +#: glossary.rst:1088 msgid "" "The type of a Python object determines what kind of object it is; every " "object has a type. An object's type is accessible as its :attr:`~instance." @@ -2526,15 +2574,15 @@ msgstr "" "objets ont un type. Le type d'un objet peut être obtenu via son attribut :" "attr:`~instance.__class__` ou via ``type(obj)``." -#: ../Doc/glossary.rst:1074 +#: glossary.rst:1092 msgid "type alias" msgstr "alias de type" -#: ../Doc/glossary.rst:1076 +#: glossary.rst:1094 msgid "A synonym for a type, created by assigning the type to an identifier." msgstr "Synonyme d'un type, créé en affectant le type à un identifiant." -#: ../Doc/glossary.rst:1078 +#: glossary.rst:1096 msgid "" "Type aliases are useful for simplifying :term:`type hints `. For " "example::" @@ -2542,19 +2590,19 @@ msgstr "" "Les alias de types sont utiles pour simplifier les :term:`indications de " "types `. Par exemple ::" -#: ../Doc/glossary.rst:1087 +#: glossary.rst:1105 msgid "could be made more readable like this::" -msgstr "pourrait être rendu plus lisible comme ceci ::" +msgstr "pourrait être rendu plus lisible comme ceci ::" -#: ../Doc/glossary.rst:1096 ../Doc/glossary.rst:1110 +#: glossary.rst:1128 msgid "See :mod:`typing` and :pep:`484`, which describe this functionality." msgstr "Voir :mod:`typing` et :pep:`484`, qui décrivent cette fonctionnalité." -#: ../Doc/glossary.rst:1097 +#: glossary.rst:1115 msgid "type hint" msgstr "indication de type" -#: ../Doc/glossary.rst:1099 +#: glossary.rst:1117 msgid "" "An :term:`annotation` that specifies the expected type for a variable, a " "class attribute, or a function parameter or return value." @@ -2562,18 +2610,18 @@ msgstr "" "Le :term:`annotation` qui spécifie le type attendu pour une variable, un " "attribut de classe, un paramètre de fonction ou une valeur de retour." -#: ../Doc/glossary.rst:1102 +#: glossary.rst:1120 msgid "" "Type hints are optional and are not enforced by Python but they are useful " "to static type analysis tools, and aid IDEs with code completion and " "refactoring." msgstr "" -"Les indications de type sont facultatifs et ne sont pas indispensables à " -"l'interpréteur Python, mais ils sont utiles aux outils d'analyse de type " +"Les indications de type sont facultatives et ne sont pas indispensables à " +"l'interpréteur Python, mais elles sont utiles aux outils d'analyse de type " "statique et aident les IDE à compléter et à réusiner (*code refactoring* en " "anglais) le code." -#: ../Doc/glossary.rst:1106 +#: glossary.rst:1124 msgid "" "Type hints of global variables, class attributes, and functions, but not " "local variables, can be accessed using :func:`typing.get_type_hints`." @@ -2582,11 +2630,11 @@ msgstr "" "fonctions, mais pas de variables locales, peuvent être consultés en " "utilisant :func:`typing.get_type_hints`." -#: ../Doc/glossary.rst:1111 +#: glossary.rst:1129 msgid "universal newlines" msgstr "retours à la ligne universels" -#: ../Doc/glossary.rst:1113 +#: glossary.rst:1131 msgid "" "A manner of interpreting text streams in which all of the following are " "recognized as ending a line: the Unix end-of-line convention ``'\\n'``, the " @@ -2595,42 +2643,42 @@ msgid "" "splitlines` for an additional use." msgstr "" "Une manière d'interpréter des flux de texte dans lesquels sont reconnues " -"toutes les fins de ligne suivantes : la convention Unix ``'\\n'``, la " +"toutes les fins de ligne suivantes : la convention Unix ``'\\n'``, la " "convention Windows ``'\\r\\n'`` et l'ancienne convention Macintosh " "``'\\r'``. Voir la :pep:`278` et la :pep:`3116`, ainsi que la fonction :func:" "`bytes.splitlines` pour d'autres usages." -#: ../Doc/glossary.rst:1118 +#: glossary.rst:1136 msgid "variable annotation" msgstr "annotation de variable" -#: ../Doc/glossary.rst:1120 +#: glossary.rst:1138 msgid "An :term:`annotation` of a variable or a class attribute." msgstr ":term:`annotation` d'une variable ou d'un attribut de classe." -#: ../Doc/glossary.rst:1122 +#: glossary.rst:1140 msgid "" "When annotating a variable or a class attribute, assignment is optional::" msgstr "" "Lorsque vous annotez une variable ou un attribut de classe, l'affectation " -"est facultative ::" +"est facultative ::" -#: ../Doc/glossary.rst:1127 +#: glossary.rst:1145 msgid "" "Variable annotations are usually used for :term:`type hints `: " "for example this variable is expected to take :class:`int` values::" msgstr "" "Les annotations de variables sont généralement utilisées pour des :term:" "`indications de types ` : par exemple, cette variable devrait " -"prendre des valeurs de type :class:`int` ::" +"prendre des valeurs de type :class:`int` ::" -#: ../Doc/glossary.rst:1133 +#: glossary.rst:1151 msgid "Variable annotation syntax is explained in section :ref:`annassign`." msgstr "" "La syntaxe d'annotation de la variable est expliquée dans la section :ref:" "`annassign`." -#: ../Doc/glossary.rst:1135 +#: glossary.rst:1153 msgid "" "See :term:`function annotation`, :pep:`484` and :pep:`526`, which describe " "this functionality." @@ -2638,11 +2686,11 @@ msgstr "" "Reportez-vous à :term:`function annotation`, à la :pep:`484` et à la :pep:" "`526` qui décrivent cette fonctionnalité." -#: ../Doc/glossary.rst:1137 +#: glossary.rst:1155 msgid "virtual environment" msgstr "environnement virtuel" -#: ../Doc/glossary.rst:1139 +#: glossary.rst:1157 msgid "" "A cooperatively isolated runtime environment that allows Python users and " "applications to install and upgrade Python distribution packages without " @@ -2654,15 +2702,15 @@ msgstr "" "des paquets sans interférer avec d'autres applications Python fonctionnant " "sur le même système." -#: ../Doc/glossary.rst:1144 +#: glossary.rst:1162 msgid "See also :mod:`venv`." msgstr "Voir aussi :mod:`venv`." -#: ../Doc/glossary.rst:1145 +#: glossary.rst:1163 msgid "virtual machine" msgstr "machine virtuelle" -#: ../Doc/glossary.rst:1147 +#: glossary.rst:1165 msgid "" "A computer defined entirely in software. Python's virtual machine executes " "the :term:`bytecode` emitted by the bytecode compiler." @@ -2671,11 +2719,11 @@ msgstr "" "(*virtual machine*) de Python exécute le :term:`bytecode` produit par le " "compilateur de *bytecode*." -#: ../Doc/glossary.rst:1149 +#: glossary.rst:1167 msgid "Zen of Python" msgstr "Le zen de Python" -#: ../Doc/glossary.rst:1151 +#: glossary.rst:1169 msgid "" "Listing of Python design principles and philosophies that are helpful in " "understanding and using the language. The listing can be found by typing " @@ -2685,6 +2733,16 @@ msgstr "" "langage. Cette liste peut être obtenue en tapant \"``import this``\" dans " "une invite Python interactive." +#~ msgid "" +#~ ":dfn:`positional-only`: specifies an argument that can be supplied only " +#~ "by position. Python has no syntax for defining positional-only " +#~ "parameters. However, some built-in functions have positional-only " +#~ "parameters (e.g. :func:`abs`)." +#~ msgstr "" +#~ ":dfn:`positional-only` : l'argument ne peut être donné que par sa " +#~ "position. Python n'a pas de syntaxe pour déclarer de tels paramètres, " +#~ "cependant des fonctions natives, comme :func:`abs`, en utilisent." + #~ msgid "" #~ "Any tuple-like class whose indexable elements are also accessible using " #~ "named attributes (for example, :func:`time.localtime` returns a tuple-" @@ -2726,10 +2784,10 @@ msgstr "" #~ "de retour (NdT : la traduction canonique du terme anglais *annotation* " #~ "est \"décoration\", notamment dans le cas des arbres syntaxiques, ce qui " #~ "est le cas ici. Cependant, Python ayant déjà utilisé le terme *decorator* " -#~ "dans une autre acception, nous traduisons *annotation* par \"annotation" -#~ "\"). Sa syntaxe est documentée dans la section :ref:`function`. Vous " -#~ "pouvez accéder aux annotations d'une fonction *via* l'attribut spécial :" -#~ "attr:`__annotations__`." +#~ "dans une autre acception, nous traduisons *annotation* par " +#~ "\"annotation\"). Sa syntaxe est documentée dans la section :ref:" +#~ "`function`. Vous pouvez accéder aux annotations d'une fonction *via* " +#~ "l'attribut spécial :attr:`__annotations__`." #~ msgid "" #~ "Python itself does not assign any particular meaning to function " diff --git a/howto/argparse.po b/howto/argparse.po index 19334a3fde..c9815736f1 100644 --- a/howto/argparse.po +++ b/howto/argparse.po @@ -15,19 +15,19 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.2.1\n" -#: ../Doc/howto/argparse.rst:3 +#: howto/argparse.rst:3 msgid "Argparse Tutorial" msgstr "Tutoriel *argparse*" -#: ../Doc/howto/argparse.rst:0 +#: howto/argparse.rst:0 msgid "author" msgstr "auteur" -#: ../Doc/howto/argparse.rst:5 +#: howto/argparse.rst:5 msgid "Tshepang Lekhonkhobe" msgstr "Tshepang Lekhonkhobe" -#: ../Doc/howto/argparse.rst:9 +#: howto/argparse.rst:9 msgid "" "This tutorial is intended to be a gentle introduction to :mod:`argparse`, " "the recommended command-line parsing module in the Python standard library." @@ -36,7 +36,7 @@ msgstr "" "`argparse`, le module d'analyse de ligne de commande recommandé dans la " "bibliothèque standard de Python." -#: ../Doc/howto/argparse.rst:14 +#: howto/argparse.rst:14 msgid "" "There are two other modules that fulfill the same task, namely :mod:`getopt` " "(an equivalent for :c:func:`getopt` from the C language) and the deprecated :" @@ -48,11 +48,11 @@ msgstr "" "obsolète. Il faut noter que :mod:`argparse` est basé sur :mod:`optparse` et " "donc s'utilise de manière très similaire." -#: ../Doc/howto/argparse.rst:22 +#: howto/argparse.rst:22 msgid "Concepts" msgstr "Concepts" -#: ../Doc/howto/argparse.rst:24 +#: howto/argparse.rst:24 msgid "" "Let's show the sort of functionality that we are going to explore in this " "introductory tutorial by making use of the :command:`ls` command:" @@ -60,11 +60,11 @@ msgstr "" "Commençons par l'utilisation de la commande :command:`ls` pour voir le type " "de fonctionnalité que nous allons étudier dans ce tutoriel d'introduction :" -#: ../Doc/howto/argparse.rst:46 +#: howto/argparse.rst:46 msgid "A few concepts we can learn from the four commands:" msgstr "Quelques concepts que l'on peut apprendre avec les quatre commandes :" -#: ../Doc/howto/argparse.rst:48 +#: howto/argparse.rst:48 msgid "" "The :command:`ls` command is useful when run without any options at all. It " "defaults to displaying the contents of the current directory." @@ -72,7 +72,7 @@ msgstr "" "La commande :command:`ls` est utile quand elle est exécutée sans aucun " "paramètre. Elle affiche par défaut le contenu du dossier courant." -#: ../Doc/howto/argparse.rst:51 +#: howto/argparse.rst:51 msgid "" "If we want beyond what it provides by default, we tell it a bit more. In " "this case, we want it to display a different directory, ``pypy``. What we " @@ -92,7 +92,7 @@ msgstr "" "est ``cp SRC DEST``. Le premier argument est *ce que vous voulez copier* et " "le second est *où vous voulez le copier*." -#: ../Doc/howto/argparse.rst:60 +#: howto/argparse.rst:60 msgid "" "Now, say we want to change behaviour of the program. In our example, we " "display more info for each file instead of just showing the file names. The " @@ -102,7 +102,7 @@ msgstr "" "agit. Dans notre exemple, on affiche plus d'information pour chaque ficher " "que simplement leur nom. Dans ce cas, ``-l`` est un argument facultatif." -#: ../Doc/howto/argparse.rst:64 +#: howto/argparse.rst:64 msgid "" "That's a snippet of the help text. It's very useful in that you can come " "across a program you have never used before, and can figure out how it works " @@ -112,25 +112,23 @@ msgstr "" "sur un programme que l'on à jamais utilisé auparavant car on peut comprendre " "son fonctionnement simplement en lisant l'aide associée." -#: ../Doc/howto/argparse.rst:70 +#: howto/argparse.rst:70 msgid "The basics" msgstr "Les bases" -#: ../Doc/howto/argparse.rst:72 +#: howto/argparse.rst:72 msgid "Let us start with a very simple example which does (almost) nothing::" msgstr "Commençons par un exemple très simple qui ne fait (quasiment) rien ::" -#: ../Doc/howto/argparse.rst:78 ../Doc/howto/argparse.rst:186 -#: ../Doc/howto/argparse.rst:207 +#: howto/argparse.rst:186 howto/argparse.rst:207 msgid "Following is a result of running the code:" msgstr "Ce qui suit est le résultat de l'exécution du code :" -#: ../Doc/howto/argparse.rst:95 ../Doc/howto/argparse.rst:252 -#: ../Doc/howto/argparse.rst:296 +#: howto/argparse.rst:252 howto/argparse.rst:296 msgid "Here is what is happening:" msgstr "Voilà ce qu'il se passe :" -#: ../Doc/howto/argparse.rst:97 +#: howto/argparse.rst:97 msgid "" "Running the script without any options results in nothing displayed to " "stdout. Not so useful." @@ -138,7 +136,7 @@ msgstr "" "Exécuter le script sans aucun paramètre a pour effet de ne rien afficher sur " "la sortie d'erreur. Ce n'est pas très utile." -#: ../Doc/howto/argparse.rst:100 +#: howto/argparse.rst:100 msgid "" "The second one starts to display the usefulness of the :mod:`argparse` " "module. We have done almost nothing, but already we get a nice help message." @@ -146,7 +144,7 @@ msgstr "" "Le deuxième commence à montrer l'intérêt du module :mod:`argparse`. On n'a " "quasiment rien fait mais on a déjà un beau message d'aide." -#: ../Doc/howto/argparse.rst:103 +#: howto/argparse.rst:103 msgid "" "The ``--help`` option, which can also be shortened to ``-h``, is the only " "option we get for free (i.e. no need to specify it). Specifying anything " @@ -158,23 +156,23 @@ msgstr "" "que ce soit d'autre entraîne une erreur. Mais même dans ce cas, on reçoit " "aussi un message utile, toujours gratuitement." -#: ../Doc/howto/argparse.rst:110 +#: howto/argparse.rst:110 msgid "Introducing Positional arguments" msgstr "Introduction aux arguments positionnels" -#: ../Doc/howto/argparse.rst:112 +#: howto/argparse.rst:112 msgid "An example::" msgstr "Un exemple ::" -#: ../Doc/howto/argparse.rst:120 +#: howto/argparse.rst:120 msgid "And running the code:" msgstr "On exécute le code :" -#: ../Doc/howto/argparse.rst:138 +#: howto/argparse.rst:138 msgid "Here is what's happening:" msgstr "Voilà ce qu'il se passe :" -#: ../Doc/howto/argparse.rst:140 +#: howto/argparse.rst:140 msgid "" "We've added the :meth:`add_argument` method, which is what we use to specify " "which command-line options the program is willing to accept. In this case, " @@ -184,12 +182,12 @@ msgstr "" "quels paramètre de lignes de commandes le programme peut accepter. Dans le " "cas présent, je l'ai appelé ``echo`` pour que cela corresponde à sa fonction." -#: ../Doc/howto/argparse.rst:144 +#: howto/argparse.rst:144 msgid "Calling our program now requires us to specify an option." msgstr "" "Utiliser le programme nécessite maintenant que l'on précise un paramètre." -#: ../Doc/howto/argparse.rst:146 +#: howto/argparse.rst:146 msgid "" "The :meth:`parse_args` method actually returns some data from the options " "specified, in this case, ``echo``." @@ -197,7 +195,7 @@ msgstr "" "La méthode :meth:`parse_args` renvoie en réalité certaines données des " "paramètres précisés, dans le cas présent : ``echo``." -#: ../Doc/howto/argparse.rst:149 +#: howto/argparse.rst:149 msgid "" "The variable is some form of 'magic' that :mod:`argparse` performs for free " "(i.e. no need to specify which variable that value is stored in). You will " @@ -209,7 +207,7 @@ msgstr "" "est stockée). Vous aurez aussi remarqué que le nom est le même que " "l'argument en chaîne de caractères donné à la méthode : ``echo``." -#: ../Doc/howto/argparse.rst:154 +#: howto/argparse.rst:154 msgid "" "Note however that, although the help display looks nice and all, it " "currently is not as helpful as it can be. For example we see that we got " @@ -223,16 +221,16 @@ msgstr "" "autrement qu'en le devinant ou en lisant le code source. Donc, rendons-le un " "peu plus utile ::" -#: ../Doc/howto/argparse.rst:165 +#: howto/argparse.rst:165 msgid "And we get:" msgstr "Et on obtient :" -#: ../Doc/howto/argparse.rst:178 +#: howto/argparse.rst:178 msgid "Now, how about doing something even more useful::" msgstr "" -"À présent, que diriez-vous de faire quelque chose d'encore plus utile  ::" +"À présent, que diriez-vous de faire quelque chose d'encore plus utile ::" -#: ../Doc/howto/argparse.rst:196 +#: howto/argparse.rst:196 msgid "" "That didn't go so well. That's because :mod:`argparse` treats the options we " "give it as strings, unless we tell it otherwise. So, let's tell :mod:" @@ -243,7 +241,7 @@ msgstr "" "ne lui indique de faire autrement. Donc, disons à :mod:`argparse` de traiter " "cette entrée comme un entier ::" -#: ../Doc/howto/argparse.rst:217 +#: howto/argparse.rst:217 msgid "" "That went well. The program now even helpfully quits on bad illegal input " "before proceeding." @@ -251,11 +249,11 @@ msgstr "" "Cela a bien fonctionné. Maintenant le programme va même s'arrêter si " "l'entrée n'est pas légale avant de procéder à l'exécution." -#: ../Doc/howto/argparse.rst:222 +#: howto/argparse.rst:222 msgid "Introducing Optional arguments" msgstr "Introduction aux arguments optionnels" -#: ../Doc/howto/argparse.rst:224 +#: howto/argparse.rst:224 msgid "" "So far we have been playing with positional arguments. Let us have a look on " "how to add optional ones::" @@ -263,12 +261,11 @@ msgstr "" "Jusqu'à maintenant, on a joué avec les arguments positionnels. Regardons " "comment ajouter des paramètres optionnels ::" -#: ../Doc/howto/argparse.rst:234 ../Doc/howto/argparse.rst:280 -#: ../Doc/howto/argparse.rst:396 ../Doc/howto/argparse.rst:430 +#: howto/argparse.rst:280 howto/argparse.rst:430 msgid "And the output:" msgstr "Et le résultat :" -#: ../Doc/howto/argparse.rst:254 +#: howto/argparse.rst:254 msgid "" "The program is written so as to display something when ``--verbosity`` is " "specified and display nothing when not." @@ -276,7 +273,7 @@ msgstr "" "Le programme est écrit de sorte qu'il n'affiche rien sauf si l'option ``--" "verbosity`` est précisée." -#: ../Doc/howto/argparse.rst:257 +#: howto/argparse.rst:257 msgid "" "To show that the option is actually optional, there is no error when running " "the program without it. Note that by default, if an optional argument isn't " @@ -290,11 +287,11 @@ msgstr "" "verbosity`, prend la valeur ``None`` c'est pourquoi elle échoue le test de " "vérité de l'assertion :keyword:`if`." -#: ../Doc/howto/argparse.rst:263 +#: howto/argparse.rst:263 msgid "The help message is a bit different." msgstr "Le message d'aide est quelque peu différent." -#: ../Doc/howto/argparse.rst:265 +#: howto/argparse.rst:265 msgid "" "When using the ``--verbosity`` option, one must also specify some value, any " "value." @@ -302,7 +299,7 @@ msgstr "" "Quand on utilise l'option ``--verbosity`` on doit aussi préciser une valeur, " "n'importe laquelle." -#: ../Doc/howto/argparse.rst:268 +#: howto/argparse.rst:268 msgid "" "The above example accepts arbitrary integer values for ``--verbosity``, but " "for our simple program, only two values are actually useful, ``True`` or " @@ -313,7 +310,7 @@ msgstr "" "réellement utiles : ``True`` et ``False``. Modifions le code en accord avec " "cela ::" -#: ../Doc/howto/argparse.rst:298 +#: howto/argparse.rst:298 msgid "" "The option is now more of a flag than something that requires a value. We " "even changed the name of the option to match that idea. Note that we now " @@ -328,7 +325,7 @@ msgstr "" "l'option est précisée la valeur ``True`` est assignée à :data:`args." "verbose`. Ne rien préciser implique la valeur ``False``." -#: ../Doc/howto/argparse.rst:305 +#: howto/argparse.rst:305 msgid "" "It complains when you specify a value, in true spirit of what flags actually " "are." @@ -336,15 +333,15 @@ msgstr "" "Dans l'esprit de ce que sont vraiment les options, pas des paramètres, il se " "plaint quand vous tentez de préciser une valeur." -#: ../Doc/howto/argparse.rst:308 +#: howto/argparse.rst:308 msgid "Notice the different help text." msgstr "Notez que l'aide est différente." -#: ../Doc/howto/argparse.rst:312 +#: howto/argparse.rst:312 msgid "Short options" msgstr "Les paramètres raccourcis" -#: ../Doc/howto/argparse.rst:314 +#: howto/argparse.rst:314 msgid "" "If you are familiar with command line usage, you will notice that I haven't " "yet touched on the topic of short versions of the options. It's quite " @@ -354,35 +351,35 @@ msgstr "" "dû remarquer que je n'ai pour l'instant rien dit au sujet des versions " "raccourcies des paramètres. C'est très simple ::" -#: ../Doc/howto/argparse.rst:326 +#: howto/argparse.rst:326 msgid "And here goes:" msgstr "Et voilà :" -#: ../Doc/howto/argparse.rst:339 +#: howto/argparse.rst:339 msgid "Note that the new ability is also reflected in the help text." msgstr "Notez que la nouvelle option est aussi indiquée dans l'aide." -#: ../Doc/howto/argparse.rst:343 +#: howto/argparse.rst:343 msgid "Combining Positional and Optional arguments" msgstr "Combinaison d'arguments positionnels et optionnels" -#: ../Doc/howto/argparse.rst:345 +#: howto/argparse.rst:345 msgid "Our program keeps growing in complexity::" -msgstr "Notre programme continue de croître en complexité : ::" +msgstr "Notre programme continue de croître en complexité ::" -#: ../Doc/howto/argparse.rst:360 +#: howto/argparse.rst:360 msgid "And now the output:" msgstr "Et voilà le résultat :" -#: ../Doc/howto/argparse.rst:374 +#: howto/argparse.rst:374 msgid "We've brought back a positional argument, hence the complaint." msgstr "Nous avons ajouté un argument nommé, d'où le message d'erreur." -#: ../Doc/howto/argparse.rst:376 +#: howto/argparse.rst:376 msgid "Note that the order does not matter." msgstr "Notez que l'ordre importe peu." -#: ../Doc/howto/argparse.rst:378 +#: howto/argparse.rst:378 msgid "" "How about we give this program of ours back the ability to have multiple " "verbosity values, and actually get to use them::" @@ -390,7 +387,7 @@ msgstr "" "Qu'en est-il si nous donnons à ce programme la possibilité d'avoir plusieurs " "niveaux de verbosité, et que celui-ci les prend en compte ::" -#: ../Doc/howto/argparse.rst:412 +#: howto/argparse.rst:412 msgid "" "These all look good except the last one, which exposes a bug in our program. " "Let's fix it by restricting the values the ``--verbosity`` option can " @@ -400,7 +397,7 @@ msgstr "" "bogue. Corrigeons cela en restreignant les valeurs que ``--verbosity`` " "accepte ::" -#: ../Doc/howto/argparse.rst:448 +#: howto/argparse.rst:448 msgid "" "Note that the change also reflects both in the error message as well as the " "help string." @@ -408,7 +405,7 @@ msgstr "" "Notez que ce changement est pris en compte à la fois dans le message " "d'erreur et dans le texte d'aide." -#: ../Doc/howto/argparse.rst:451 +#: howto/argparse.rst:451 msgid "" "Now, let's use a different approach of playing with verbosity, which is " "pretty common. It also matches the way the CPython executable handles its " @@ -419,7 +416,7 @@ msgstr "" "CPython gère ses propres paramètres de verbosité (jetez un œil sur la sortie " "de la commande ``python --help``) ::" -#: ../Doc/howto/argparse.rst:470 +#: howto/argparse.rst:470 msgid "" "We have introduced another action, \"count\", to count the number of " "occurrences of a specific optional arguments:" @@ -427,20 +424,20 @@ msgstr "" "Nous avons introduit une autre action, ``\"count\"``, pour compter le nombre " "d’occurrences d'une argument optionnel en particulier :" -#: ../Doc/howto/argparse.rst:498 +#: howto/argparse.rst:498 msgid "" "Yes, it's now more of a flag (similar to ``action=\"store_true\"``) in the " "previous version of our script. That should explain the complaint." msgstr "" -"Oui, c'est maintenant d'avantage une option (similaire à ``action=" -"\"store_true\"``) de la version précédente de notre script. Cela devrait " -"expliquer le message d'erreur." +"Oui, c'est maintenant d'avantage une option (similaire à " +"``action=\"store_true\"``) de la version précédente de notre script. Cela " +"devrait expliquer le message d'erreur." -#: ../Doc/howto/argparse.rst:501 +#: howto/argparse.rst:501 msgid "It also behaves similar to \"store_true\" action." msgstr "Cela se comporte de la même manière que l'action ``\"store_true\"``." -#: ../Doc/howto/argparse.rst:503 +#: howto/argparse.rst:503 msgid "" "Now here's a demonstration of what the \"count\" action gives. You've " "probably seen this sort of usage before." @@ -448,7 +445,7 @@ msgstr "" "Maintenant voici une démonstration de ce que l'action ``\"count\"`` fait. " "Vous avez sûrement vu ce genre d'utilisation auparavant." -#: ../Doc/howto/argparse.rst:506 +#: howto/argparse.rst:506 msgid "" "And if you don't specify the ``-v`` flag, that flag is considered to have " "``None`` value." @@ -456,7 +453,7 @@ msgstr "" "Et si vous ne spécifiez pas l'option ``-v``, cette option prendra la valeur " "``None``." -#: ../Doc/howto/argparse.rst:509 +#: howto/argparse.rst:509 msgid "" "As should be expected, specifying the long form of the flag, we should get " "the same output." @@ -464,7 +461,7 @@ msgstr "" "Comme on s'y attend, en spécifiant l'option dans sa forme longue, on devrait " "obtenir la même sortie." -#: ../Doc/howto/argparse.rst:512 +#: howto/argparse.rst:512 msgid "" "Sadly, our help output isn't very informative on the new ability our script " "has acquired, but that can always be fixed by improving the documentation " @@ -474,19 +471,19 @@ msgstr "" "nouvelles possibilités de notre programme, mais cela peut toujours être " "corrigé en améliorant sa documentation (en utilisant l'argument ``help``)." -#: ../Doc/howto/argparse.rst:516 +#: howto/argparse.rst:516 msgid "That last output exposes a bug in our program." msgstr "La dernière sortie du programme montre que celui-ci contient un bogue." -#: ../Doc/howto/argparse.rst:519 +#: howto/argparse.rst:519 msgid "Let's fix::" msgstr "Corrigeons ::" -#: ../Doc/howto/argparse.rst:538 +#: howto/argparse.rst:538 msgid "And this is what it gives:" msgstr "Et c'est ce que ça donne :" -#: ../Doc/howto/argparse.rst:553 +#: howto/argparse.rst:553 msgid "" "First output went well, and fixes the bug we had before. That is, we want " "any value >= 2 to be as verbose as possible." @@ -495,15 +492,15 @@ msgstr "" "avons eu est corrigé. Cela dit, nous voulons que n'importe quelle valeur >= " "2 rende le programme aussi verbeux que possible." -#: ../Doc/howto/argparse.rst:556 +#: howto/argparse.rst:556 msgid "Third output not so good." msgstr "La troisième sortie de programme n'est pas si bien que ça." -#: ../Doc/howto/argparse.rst:558 +#: howto/argparse.rst:558 msgid "Let's fix that bug::" msgstr "Corrigeons ce bogue ::" -#: ../Doc/howto/argparse.rst:575 +#: howto/argparse.rst:575 msgid "" "We've just introduced yet another keyword, ``default``. We've set it to " "``0`` in order to make it comparable to the other int values. Remember that " @@ -517,11 +514,11 @@ msgstr "" "il sera définit à ``None``, et ne pourra pas être comparé à une valeur de " "type entier (une erreur :exc:`TypeError` serait alors levée)." -#: ../Doc/howto/argparse.rst:582 +#: howto/argparse.rst:582 msgid "And:" msgstr "Et :" -#: ../Doc/howto/argparse.rst:589 +#: howto/argparse.rst:589 msgid "" "You can go quite far just with what we've learned so far, and we have only " "scratched the surface. The :mod:`argparse` module is very powerful, and " @@ -532,11 +529,11 @@ msgstr "" "est très puissant, et nous allons l'explorer un peu plus avant la fin de ce " "tutoriel." -#: ../Doc/howto/argparse.rst:596 +#: howto/argparse.rst:596 msgid "Getting a little more advanced" msgstr "Aller un peu plus loin" -#: ../Doc/howto/argparse.rst:598 +#: howto/argparse.rst:598 msgid "" "What if we wanted to expand our tiny program to perform other powers, not " "just squares::" @@ -544,11 +541,11 @@ msgstr "" "Qu'en est-il si nous souhaitons étendre notre mini programme pour le rendre " "capable de calculer d'autres puissances, et pas seulement des carrés ::" -#: ../Doc/howto/argparse.rst:615 ../Doc/howto/argparse.rst:653 +#: howto/argparse.rst:653 msgid "Output:" msgstr "Sortie :" -#: ../Doc/howto/argparse.rst:636 +#: howto/argparse.rst:636 msgid "" "Notice that so far we've been using verbosity level to *change* the text " "that gets displayed. The following example instead uses verbosity level to " @@ -558,11 +555,11 @@ msgstr "" "pour *changer* le texte qui est affiché. L'exemple suivant au contraire " "utilise le niveau de verbosité pour afficher *plus* de texte à la place ::" -#: ../Doc/howto/argparse.rst:667 +#: howto/argparse.rst:667 msgid "Conflicting options" msgstr "Paramètres en conflit" -#: ../Doc/howto/argparse.rst:669 +#: howto/argparse.rst:669 msgid "" "So far, we have been working with two methods of an :class:`argparse." "ArgumentParser` instance. Let's introduce a third one, :meth:" @@ -579,7 +576,7 @@ msgstr "" "introduire l'option ``--quiet``, qui va avoir l'effet opposé de l'option ``--" "verbose`` ::" -#: ../Doc/howto/argparse.rst:695 +#: howto/argparse.rst:695 msgid "" "Our program is now simpler, and we've lost some functionality for the sake " "of demonstration. Anyways, here's the output:" @@ -588,7 +585,7 @@ msgstr "" "fonctionnalités pour faire cette démonstration. Peu importe, voici la sortie " "du programme :" -#: ../Doc/howto/argparse.rst:713 +#: howto/argparse.rst:713 msgid "" "That should be easy to follow. I've added that last output so you can see " "the sort of flexibility you get, i.e. mixing long form options with short " @@ -598,16 +595,16 @@ msgstr "" "que vous puissiez voir le genre de flexibilité que vous pouvez avoir, par " "exemple pour faire un mélange entre des paramètres courts et longs." -#: ../Doc/howto/argparse.rst:717 +#: howto/argparse.rst:717 msgid "" "Before we conclude, you probably want to tell your users the main purpose of " "your program, just in case they don't know::" msgstr "" "Avant d'en finir, vous voudrez certainement dire à vos utilisateurs quel est " "le but principal de votre programme, juste dans le cas ou ils ne le " -"sauraient pas : ::" +"sauraient pas ::" -#: ../Doc/howto/argparse.rst:738 +#: howto/argparse.rst:738 msgid "" "Note that slight difference in the usage text. Note the ``[-v | -q]``, which " "tells us that we can either use ``-v`` or ``-q``, but not both at the same " @@ -617,11 +614,11 @@ msgstr "" "nous disent que nous pouvons utiliser au choix ``-v`` ou ``-q``, mais pas " "les deux ensemble :" -#: ../Doc/howto/argparse.rst:760 +#: howto/argparse.rst:760 msgid "Conclusion" msgstr "Conclusion" -#: ../Doc/howto/argparse.rst:762 +#: howto/argparse.rst:762 msgid "" "The :mod:`argparse` module offers a lot more than shown here. Its docs are " "quite detailed and thorough, and full of examples. Having gone through this " diff --git a/howto/clinic.po b/howto/clinic.po index e90c65ca51..e4a3d5a294 100644 --- a/howto/clinic.po +++ b/howto/clinic.po @@ -15,23 +15,23 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.0.6\n" -#: ../Doc/howto/clinic.rst:5 +#: howto/clinic.rst:5 msgid "Argument Clinic How-To" -msgstr "" +msgstr "Guide Argument Clinic" -#: ../Doc/howto/clinic.rst:0 +#: howto/clinic.rst:0 msgid "author" msgstr "auteur" -#: ../Doc/howto/clinic.rst:7 +#: howto/clinic.rst:7 msgid "Larry Hastings" -msgstr "" +msgstr "Larry Hastings" -#: ../Doc/howto/clinic.rst:None +#: howto/clinic.rst:None msgid "Abstract" msgstr "Résumé" -#: ../Doc/howto/clinic.rst:12 +#: howto/clinic.rst:12 msgid "" "Argument Clinic is a preprocessor for CPython C files. Its purpose is to " "automate all the boilerplate involved with writing argument parsing code for " @@ -46,7 +46,7 @@ msgstr "" "avec Argument Clinic, avant d'introduire des usages plus avancés d'Argument " "Clinic. " -#: ../Doc/howto/clinic.rst:19 +#: howto/clinic.rst:19 msgid "" "Currently Argument Clinic is considered internal-only for CPython. Its use " "is not supported for files outside CPython, and no guarantees are made " @@ -65,11 +65,11 @@ msgstr "" "version de CPython *pourrait* être totalement incompatible et casser tout " "votre code." -#: ../Doc/howto/clinic.rst:29 +#: howto/clinic.rst:29 msgid "The Goals Of Argument Clinic" msgstr "Les objectifs d'Argument Clinic" -#: ../Doc/howto/clinic.rst:31 +#: howto/clinic.rst:31 msgid "" "Argument Clinic's primary goal is to take over responsibility for all " "argument parsing code inside CPython. This means that, when you convert a " @@ -88,7 +88,7 @@ msgstr "" "``PyObject *args`` (et éventuellement ``PyObject *kwargs``) sont convertis " "magiquement dans les variables et types C dont vous avez besoin." -#: ../Doc/howto/clinic.rst:41 +#: howto/clinic.rst:41 msgid "" "In order for Argument Clinic to accomplish its primary goal, it must be easy " "to use. Currently, working with CPython's argument parsing library is a " @@ -101,7 +101,7 @@ msgstr "" "quantité surprenante d'informations redondantes. En utilisant Argument " "Clinic, il n'est plus nécessaire de se répéter." -#: ../Doc/howto/clinic.rst:47 +#: howto/clinic.rst:47 msgid "" "Obviously, no one would want to use Argument Clinic unless it's solving " "their problem—and without creating new problems of its own. So it's " @@ -123,7 +123,7 @@ msgstr "" "d'analyse d'argument générique. On aurait ainsi l'analyse d'argument la plus " "rapide possible !)" -#: ../Doc/howto/clinic.rst:59 +#: howto/clinic.rst:59 msgid "" "Additionally, Argument Clinic must be flexible enough to work with any " "approach to argument parsing. Python has some functions with some very " @@ -134,7 +134,7 @@ msgstr "" "Python dont le traitement des arguments est très étrange ; le but d'Argument " "Clinic est de les gérer toutes. " -#: ../Doc/howto/clinic.rst:64 +#: howto/clinic.rst:64 msgid "" "Finally, the original motivation for Argument Clinic was to provide " "introspection \"signatures\" for CPython builtins. It used to be, the " @@ -147,7 +147,7 @@ msgstr "" "passiez un composant natif. Grâce à Argument Clinic, ce comportement " "appartient au passé !" -#: ../Doc/howto/clinic.rst:70 +#: howto/clinic.rst:70 msgid "" "One idea you should keep in mind, as you work with Argument Clinic: the more " "information you give it, the better job it'll be able to do. Argument Clinic " @@ -161,11 +161,11 @@ msgstr "" "plus sophistiqué, il sera capable de faire beaucoup de choses intéressantes " "et intelligentes à partir de l'information que vous lui fournissez." -#: ../Doc/howto/clinic.rst:80 +#: howto/clinic.rst:80 msgid "Basic Concepts And Usage" msgstr "Concepts de base et utilisation" -#: ../Doc/howto/clinic.rst:82 +#: howto/clinic.rst:82 msgid "" "Argument Clinic ships with CPython; you'll find it in ``Tools/clinic/clinic." "py``. If you run that script, specifying a C file as an argument:" @@ -174,20 +174,20 @@ msgstr "" "clinic/clinic.py``. Si vous exécutez ce script, en spécifiant un fichier C " "comme argument : " -#: ../Doc/howto/clinic.rst:89 +#: howto/clinic.rst:89 msgid "" "Argument Clinic will scan over the file looking for lines that look exactly " "like this:" msgstr "Argument Clinic va parcourir le fichier en cherchant cette ligne :" -#: ../Doc/howto/clinic.rst:96 +#: howto/clinic.rst:96 msgid "" "When it finds one, it reads everything up to a line that looks exactly like " "this:" msgstr "" "Lorsqu'il en trouve une, il lit tout ce qui suit, jusqu'à cette ligne :" -#: ../Doc/howto/clinic.rst:103 +#: howto/clinic.rst:103 msgid "" "Everything in between these two lines is input for Argument Clinic. All of " "these lines, including the beginning and ending comment lines, are " @@ -197,7 +197,7 @@ msgstr "" "Clinic. Toutes ces lignes, en incluant les commentaires de début et de fin, " "sont appelées collectivement un « bloc » d'Argument Clinic. " -#: ../Doc/howto/clinic.rst:107 +#: howto/clinic.rst:107 msgid "" "When Argument Clinic parses one of these blocks, it generates output. This " "output is rewritten into the C file immediately after the block, followed by " @@ -209,7 +209,7 @@ msgstr "" "suivie par un commentaire contenant une somme de contrôle. Le bloc Argument " "Clinic ressemble maintenant à cela :" -#: ../Doc/howto/clinic.rst:120 +#: howto/clinic.rst:120 msgid "" "If you run Argument Clinic on the same file a second time, Argument Clinic " "will discard the old output and write out the new output with a fresh " @@ -221,7 +221,7 @@ msgstr "" "ligne de somme de contrôle mise à jour. Cependant, si l'entrée n'a pas " "changé, la sortie ne change pas non plus. " -#: ../Doc/howto/clinic.rst:124 +#: howto/clinic.rst:124 msgid "" "You should never modify the output portion of an Argument Clinic block. " "Instead, change the input until it produces the output you want. (That's " @@ -235,20 +235,20 @@ msgstr "" "ces modifications seront perdues après que Argument Clinic a écrit une " "nouvelle sortie)." -#: ../Doc/howto/clinic.rst:129 +#: howto/clinic.rst:129 msgid "" "For the sake of clarity, here's the terminology we'll use with Argument " "Clinic:" msgstr "Par souci de clarté, voilà la terminologie que nous emploierons :" -#: ../Doc/howto/clinic.rst:131 +#: howto/clinic.rst:131 msgid "" "The first line of the comment (``/*[clinic input]``) is the *start line*." msgstr "" "La première ligne du commentaire (``/*[clinic input]``) est la *ligne de " "début*." -#: ../Doc/howto/clinic.rst:132 +#: howto/clinic.rst:132 msgid "" "The last line of the initial comment (``[clinic start generated code]*/``) " "is the *end line*." @@ -256,7 +256,7 @@ msgstr "" "La dernière ligne du commentaire initial (``[clinic start generated code]*/" "``) est la *ligne de fin*." -#: ../Doc/howto/clinic.rst:133 +#: howto/clinic.rst:133 msgid "" "The last line (``/*[clinic end generated code: checksum=...]*/``) is the " "*checksum line*." @@ -264,19 +264,19 @@ msgstr "" "La dernière ligne (``/*[clinic end generated code: checksum=...]*/``) est la " "*ligne de contrôle*. " -#: ../Doc/howto/clinic.rst:134 +#: howto/clinic.rst:134 msgid "In between the start line and the end line is the *input*." msgstr "" "On appelle *entrée* ce qui se trouve entre la ligne de début et la ligne de " "fin." -#: ../Doc/howto/clinic.rst:135 +#: howto/clinic.rst:135 msgid "In between the end line and the checksum line is the *output*." msgstr "" "Et on appelle *sortie* ce qui se trouve entre la ligne de fin et la ligne de " "contrôle." -#: ../Doc/howto/clinic.rst:136 +#: howto/clinic.rst:136 msgid "" "All the text collectively, from the start line to the checksum line " "inclusively, is the *block*. (A block that hasn't been successfully " @@ -288,11 +288,11 @@ msgstr "" "succès par Argument Clinic n'a pas encore de sortie ni de ligne de contrôle " "mais est quand même considéré comme un bloc)" -#: ../Doc/howto/clinic.rst:143 +#: howto/clinic.rst:143 msgid "Converting Your First Function" msgstr "Convertissez votre première fonction" -#: ../Doc/howto/clinic.rst:145 +#: howto/clinic.rst:145 msgid "" "The best way to get a sense of how Argument Clinic works is to convert a " "function to work with it. Here, then, are the bare minimum steps you'd need " @@ -311,11 +311,11 @@ msgstr "" "(comme ``return converters`` et ``self converters``). Mais concentrons nous " "pour le moment sur les choses simples." -#: ../Doc/howto/clinic.rst:154 +#: howto/clinic.rst:154 msgid "Let's dive in!" msgstr "En route !" -#: ../Doc/howto/clinic.rst:156 +#: howto/clinic.rst:156 msgid "" "Make sure you're working with a freshly updated checkout of the CPython " "trunk." @@ -323,7 +323,7 @@ msgstr "" "Assurez-vous que vous travaillez sur une copie récemment mise à jour du code " "de CPython." -#: ../Doc/howto/clinic.rst:159 +#: howto/clinic.rst:159 msgid "" "Find a Python builtin that calls either :c:func:`PyArg_ParseTuple` or :c:" "func:`PyArg_ParseTupleAndKeywords`, and hasn't been converted to work with " @@ -334,13 +334,13 @@ msgstr "" "encore été convertie par Argument Clinic. Pour cet exemple, j'utilise " "``_pickle.Pickler.dump()``." -#: ../Doc/howto/clinic.rst:164 +#: howto/clinic.rst:164 msgid "" "If the call to the ``PyArg_Parse`` function uses any of the following format " "units:" msgstr "Si l'appel à ``PyArg_Parse`` utilise l'un des formats suivants :" -#: ../Doc/howto/clinic.rst:176 +#: howto/clinic.rst:176 msgid "" "or if it has multiple calls to :c:func:`PyArg_ParseTuple`, you should choose " "a different function. Argument Clinic *does* support all of these " @@ -351,7 +351,7 @@ msgstr "" "fonction différente. Argument Clinic gère tous ces scénarios, mais se sont " "des sujets trop avancés pour notre première fonction." -#: ../Doc/howto/clinic.rst:181 +#: howto/clinic.rst:181 msgid "" "Also, if the function has multiple calls to :c:func:`PyArg_ParseTuple` or :c:" "func:`PyArg_ParseTupleAndKeywords` where it supports different types for the " @@ -366,13 +366,13 @@ msgstr "" "pas possible de la convertir pour Argument Clinic. Argument Clinic ne gère " "pas les fonctions génériques ou les paramètres polymorphes." -#: ../Doc/howto/clinic.rst:188 +#: howto/clinic.rst:188 msgid "Add the following boilerplate above the function, creating our block::" msgstr "" "Ajoutez les lignes standard suivantes au-dessus de votre fonction pour créer " "notre bloc ::" -#: ../Doc/howto/clinic.rst:193 +#: howto/clinic.rst:193 msgid "" "Cut the docstring and paste it in between the ``[clinic]`` lines, removing " "all the junk that makes it a properly quoted C string. When you're done you " @@ -385,7 +385,7 @@ msgstr "" "aligné à gauche, sans ligne plus longue que 80 caractères (Argument Clinic " "préserve l'indentation à l'intérieur de la *docstring*)." -#: ../Doc/howto/clinic.rst:199 +#: howto/clinic.rst:199 msgid "" "If the old docstring had a first line that looked like a function signature, " "throw that line away. (The docstring doesn't need it anymore—when you use " @@ -398,14 +398,12 @@ msgstr "" "une fonction native, la première ligne sera construite automatiquement à " "partir de la signature de la fonction.)" -#: ../Doc/howto/clinic.rst:205 ../Doc/howto/clinic.rst:226 -#: ../Doc/howto/clinic.rst:250 ../Doc/howto/clinic.rst:308 -#: ../Doc/howto/clinic.rst:348 ../Doc/howto/clinic.rst:375 -#: ../Doc/howto/clinic.rst:481 ../Doc/howto/clinic.rst:533 +#: howto/clinic.rst:226 howto/clinic.rst:308 howto/clinic.rst:375 +#: howto/clinic.rst:533 msgid "Sample::" msgstr "Échantillon ::" -#: ../Doc/howto/clinic.rst:211 +#: howto/clinic.rst:211 msgid "" "If your docstring doesn't have a \"summary\" line, Argument Clinic will " "complain. So let's make sure it has one. The \"summary\" line should be a " @@ -417,7 +415,7 @@ msgstr "" "être un paragraphe consistant en une seule ligne de 80 colonnes au début de " "la *docstring*." -#: ../Doc/howto/clinic.rst:216 +#: howto/clinic.rst:216 msgid "" "(Our example docstring consists solely of a summary line, so the sample code " "doesn't have to change for this step.)" @@ -425,7 +423,7 @@ msgstr "" "Dans notre exemple, la *docstring* est seulement composée d'une ligne de " "résumé, donc le code ne change pas à cette étape." -#: ../Doc/howto/clinic.rst:219 +#: howto/clinic.rst:219 msgid "" "Above the docstring, enter the name of the function, followed by a blank " "line. This should be the Python name of the function, and should be the " @@ -439,7 +437,7 @@ msgstr "" "les sous-modules, puis, si la fonction est une méthode de classe, inclure " "aussi le nom de la classe." -#: ../Doc/howto/clinic.rst:234 +#: howto/clinic.rst:234 msgid "" "If this is the first time that module or class has been used with Argument " "Clinic in this C file, you must declare the module and/or class. Proper " @@ -455,7 +453,7 @@ msgstr "" "fichiers inclus et les statiques (dans cet extrait, nous montrons les deux " "blocs à côté l'un de l'autre)." -#: ../Doc/howto/clinic.rst:242 +#: howto/clinic.rst:242 msgid "" "The name of the class and module should be the same as the one seen by " "Python. Check the name defined in the :c:type:`PyModuleDef` or :c:type:" @@ -465,7 +463,7 @@ msgstr "" "Python. Selon le cas, référez-vous à :c:type:`PyModuleDef` ou :c:type:" "`PyTypeObject`" -#: ../Doc/howto/clinic.rst:246 +#: howto/clinic.rst:246 msgid "" "When you declare a class, you must also specify two aspects of its type in " "C: the type declaration you'd use for a pointer to an instance of this " @@ -476,7 +474,7 @@ msgstr "" "vers une instance de cette classe et un pointeur vers le :c:type:" "`PyTypeObject` de cette classe." -#: ../Doc/howto/clinic.rst:266 +#: howto/clinic.rst:266 msgid "" "Declare each of the parameters to the function. Each parameter should get " "its own line. All the parameter lines should be indented from the function " @@ -486,17 +484,17 @@ msgstr "" "sur une ligne séparée. Tous les paramètres doivent être indentés par rapport " "au nom de la fonction et à la *docstring*." -#: ../Doc/howto/clinic.rst:270 +#: howto/clinic.rst:270 msgid "The general form of these parameter lines is as follows:" msgstr "La forme générale de ces paramètres est la suivante :" -#: ../Doc/howto/clinic.rst:276 +#: howto/clinic.rst:276 msgid "If the parameter has a default value, add that after the converter:" msgstr "" "Si le paramètre a une valeur par défaut, ajoutez ceci après le " "convertisseur :" -#: ../Doc/howto/clinic.rst:283 +#: howto/clinic.rst:283 msgid "" "Argument Clinic's support for \"default values\" is quite sophisticated; " "please see :ref:`the section below on default values ` for " @@ -506,11 +504,11 @@ msgstr "" "sophistiquée; voyez :ref:`la section ci-dessous sur les valeurs par défaut " "` pour plus de détails." -#: ../Doc/howto/clinic.rst:287 +#: howto/clinic.rst:287 msgid "Add a blank line below the parameters." msgstr "Ajoutez une ligne vide sous les paramètres." -#: ../Doc/howto/clinic.rst:289 +#: howto/clinic.rst:289 msgid "" "What's a \"converter\"? It establishes both the type of the variable used " "in C, and the method to convert the Python value into a C value at runtime. " @@ -524,7 +522,7 @@ msgstr "" "convertisseur hérité » -- une syntaxe de convenance qui facilite le portage " "de vieux code dans Argument Clinic." -#: ../Doc/howto/clinic.rst:296 +#: howto/clinic.rst:296 msgid "" "For each parameter, copy the \"format unit\" for that parameter from the " "``PyArg_Parse()`` format argument and specify *that* as its converter, as a " @@ -541,7 +539,7 @@ msgstr "" "convertir. Pour plus d'information sur les unités de format, voyez :ref:`arg-" "parsing`.)" -#: ../Doc/howto/clinic.rst:305 +#: howto/clinic.rst:305 msgid "" "For multicharacter format units like ``z#``, use the entire two-or-three " "character string." @@ -549,7 +547,7 @@ msgstr "" "Pour des unités de format de plusieurs caractères, comme ``z#``, utilisez " "l'ensemble des 2 ou 3 caractères de la chaîne. " -#: ../Doc/howto/clinic.rst:323 +#: howto/clinic.rst:323 msgid "" "If your function has ``|`` in the format string, meaning some parameters " "have default values, you can ignore it. Argument Clinic infers which " @@ -560,7 +558,7 @@ msgstr "" "Clinic infère quels paramètres sont optionnels selon s'ils ont ou non une " "valeur par défaut." -#: ../Doc/howto/clinic.rst:328 +#: howto/clinic.rst:328 msgid "" "If your function has ``$`` in the format string, meaning it takes keyword-" "only arguments, specify ``*`` on a line by itself before the first keyword-" @@ -571,13 +569,13 @@ msgstr "" "avant le premier argument nommé, avec la même indentation que les lignes de " "paramètres." -#: ../Doc/howto/clinic.rst:333 +#: howto/clinic.rst:333 msgid "(``_pickle.Pickler.dump`` has neither, so our sample is unchanged.)" msgstr "" "(``_pickle.Pickler.dump`` n'a ni l'un ni l'autre, donc notre exemple est " "inchangé.)" -#: ../Doc/howto/clinic.rst:336 +#: howto/clinic.rst:336 msgid "" "If the existing C function calls :c:func:`PyArg_ParseTuple` (as opposed to :" "c:func:`PyArg_ParseTupleAndKeywords`), then all its arguments are positional-" @@ -587,7 +585,7 @@ msgstr "" "func:`PyArg_ParseTupleAndKeywords`), alors tous ses arguments sont " "uniquement positionnels. " -#: ../Doc/howto/clinic.rst:340 +#: howto/clinic.rst:340 msgid "" "To mark all parameters as positional-only in Argument Clinic, add a ``/`` on " "a line by itself after the last parameter, indented the same as the " @@ -597,7 +595,7 @@ msgstr "" "Clinic, ajoutez ``/`` sur une ligne à part après le dernier paramètre, avec " "la même indentation que les lignes de paramètres." -#: ../Doc/howto/clinic.rst:344 +#: howto/clinic.rst:344 msgid "" "Currently this is all-or-nothing; either all parameters are positional-only, " "or none of them are. (In the future Argument Clinic may relax this " @@ -607,7 +605,7 @@ msgstr "" "uniquement positionnels, ou aucun ne l'est. (Dans le futur, Argument Clinic " "supprimera peut être cette restriction.)" -#: ../Doc/howto/clinic.rst:364 +#: howto/clinic.rst:364 msgid "" "It's helpful to write a per-parameter docstring for each parameter. But per-" "parameter docstrings are optional; you can skip this step if you prefer." @@ -615,7 +613,7 @@ msgstr "" "Il est utile d'ajouter une *docstring* pour chaque paramètre, mais c'est " "optionnel; vous pouvez passer cette étape si vous préférez." -#: ../Doc/howto/clinic.rst:368 +#: howto/clinic.rst:368 msgid "" "Here's how to add a per-parameter docstring. The first line of the per-" "parameter docstring must be indented further than the parameter definition. " @@ -631,7 +629,7 @@ msgstr "" "Vous pouvez écrire autant de texte que vous le souhaitez, sur plusieurs " "lignes." -#: ../Doc/howto/clinic.rst:392 +#: howto/clinic.rst:392 msgid "" "Save and close the file, then run ``Tools/clinic/clinic.py`` on it. With " "luck everything worked---your block now has output, and a ``.c.h`` file has " @@ -642,7 +640,7 @@ msgstr "" "sortie, et un fichier ``.c.h`` a été généré ! Ré-ouvrez le fichier dans " "votre éditeur pour voir ::" -#: ../Doc/howto/clinic.rst:411 +#: howto/clinic.rst:411 msgid "" "Obviously, if Argument Clinic didn't produce any output, it's because it " "found an error in your input. Keep fixing your errors and retrying until " @@ -652,7 +650,7 @@ msgstr "" "rencontré une erreur dans votre entrée. Corrigez vos erreurs et réessayez " "jusqu'à ce qu'Argument Clinic traite votre fichier sans problème." -#: ../Doc/howto/clinic.rst:415 +#: howto/clinic.rst:415 msgid "" "For readability, most of the glue code has been generated to a ``.c.h`` " "file. You'll need to include that in your original ``.c`` file, typically " @@ -662,7 +660,7 @@ msgstr "" "h``. Vous devez l'inclure dans votre fichier ``.c`` original, typiquement " "juste après le bloc du module *clinic* ::" -#: ../Doc/howto/clinic.rst:421 +#: howto/clinic.rst:421 msgid "" "Double-check that the argument-parsing code Argument Clinic generated looks " "basically the same as the existing code." @@ -670,7 +668,7 @@ msgstr "" "Vérifiez bien que le code d'analyse d'argument généré par Argument Clinic " "ressemble bien au code existant." -#: ../Doc/howto/clinic.rst:424 +#: howto/clinic.rst:424 msgid "" "First, ensure both places use the same argument-parsing function. The " "existing code must call either :c:func:`PyArg_ParseTuple` or :c:func:" @@ -682,7 +680,7 @@ msgstr "" "`PyArg_ParseTuple` soit :c:func:`PyArg_ParseTupleAndKeywords`; assurez vous " "que le code généré par Argument Clinic appelle *exactement* la même fonction." -#: ../Doc/howto/clinic.rst:430 +#: howto/clinic.rst:430 msgid "" "Second, the format string passed in to :c:func:`PyArg_ParseTuple` or :c:func:" "`PyArg_ParseTupleAndKeywords` should be *exactly* the same as the hand-" @@ -693,7 +691,7 @@ msgstr "" "*exactement* la même que celle écrite à la main, jusqu'aux deux points ou au " "point virgule." -#: ../Doc/howto/clinic.rst:435 +#: howto/clinic.rst:435 msgid "" "(Argument Clinic always generates its format strings with a ``:`` followed " "by the name of the function. If the existing code's format string ends with " @@ -704,7 +702,7 @@ msgstr "" "``, pour fournir une aide sur l'utilisation, ce changement n'a aucun effet, " "ne vous en souciez pas.)" -#: ../Doc/howto/clinic.rst:440 +#: howto/clinic.rst:440 msgid "" "Third, for parameters whose format units require two arguments (like a " "length variable, or an encoding string, or a pointer to a conversion " @@ -716,7 +714,7 @@ msgstr "" "pointeur vers une fonction de conversion), assurez vous que ce deuxième " "argument est *exactement* le même entre les deux invocations." -#: ../Doc/howto/clinic.rst:445 +#: howto/clinic.rst:445 msgid "" "Fourth, inside the output portion of the block you'll find a preprocessor " "macro defining the appropriate static :c:type:`PyMethodDef` structure for " @@ -726,7 +724,7 @@ msgstr "" "une macro pré-processeur qui définit les structures statiques :c:type:" "`PyMethodDef` appropriées pour ce module natif ::" -#: ../Doc/howto/clinic.rst:452 +#: howto/clinic.rst:452 msgid "" "This static structure should be *exactly* the same as the existing static :c:" "type:`PyMethodDef` structure for this builtin." @@ -734,7 +732,7 @@ msgstr "" "Cette structure statique doit être *exactement* la même que la structure " "statique :c:type:`PyMethodDef` existante pour ce module natif." -#: ../Doc/howto/clinic.rst:455 +#: howto/clinic.rst:455 msgid "" "If any of these items differ in *any way*, adjust your Argument Clinic " "function specification and rerun ``Tools/clinic/clinic.py`` until they *are* " @@ -744,7 +742,7 @@ msgstr "" "spécification de fonction d'Argument Clinic et exécutez de nouveau ``Tools/" "clinic/clinic.py`` jusqu'à ce qu'elles soient identiques." -#: ../Doc/howto/clinic.rst:460 +#: howto/clinic.rst:460 msgid "" "Notice that the last line of its output is the declaration of your \"impl\" " "function. This is where the builtin's implementation goes. Delete the " @@ -763,7 +761,7 @@ msgstr "" "fonction ``impl``; si l'implémentation utilise des noms différents pour ces " "variables, corrigez-les." -#: ../Doc/howto/clinic.rst:468 +#: howto/clinic.rst:468 msgid "" "Let's reiterate, just because it's kind of weird. Your code should now look " "like this::" @@ -771,7 +769,7 @@ msgstr "" "Comme c'est un peu bizarre, ça vaut la peine de répéter. Votre fonction doit " "ressembler à ça ::" -#: ../Doc/howto/clinic.rst:477 +#: howto/clinic.rst:477 msgid "" "Argument Clinic generated the checksum line and the function prototype just " "above it. You should write the opening (and closing) curly braces for the " @@ -781,7 +779,7 @@ msgstr "" "au dessus. Vous devez écrire les accolades d'ouverture (et de fermeture) " "pour la fonction, et l’implémentation à l'intérieur." -#: ../Doc/howto/clinic.rst:522 +#: howto/clinic.rst:522 msgid "" "Remember the macro with the :c:type:`PyMethodDef` structure for this " "function? Find the existing :c:type:`PyMethodDef` structure for this " @@ -797,7 +795,7 @@ msgstr "" "certainement vers la fin du fichier; s'il s'agît d'une méthode de classe, se " "sera sans doute plus bas, mais relativement près de l'implémentation.)" -#: ../Doc/howto/clinic.rst:529 +#: howto/clinic.rst:529 msgid "" "Note that the body of the macro contains a trailing comma. So when you " "replace the existing static :c:type:`PyMethodDef` structure with the macro, " @@ -807,7 +805,7 @@ msgstr "" "vous remplacez la structure statique :c:type:`PyMethodDef` par la macro, " "*n'ajoutez pas* de virgule à la fin." -#: ../Doc/howto/clinic.rst:542 +#: howto/clinic.rst:542 msgid "" "Compile, then run the relevant portions of the regression-test suite. This " "change should not introduce any new compile-time warnings or errors, and " @@ -818,7 +816,7 @@ msgstr "" "ou avertissement à la compilation, et il ne devrait y avoir aucun changement " "visible de l'extérieur au comportement de Python." -#: ../Doc/howto/clinic.rst:546 +#: howto/clinic.rst:546 msgid "" "Well, except for one difference: ``inspect.signature()`` run on your " "function should now provide a valid signature!" @@ -826,7 +824,7 @@ msgstr "" "Enfin, à part pour une différence : si vous exécutez ``inspect.signature()`` " "sur votre fonction, vous obtiendrez maintenant une signature valide !" -#: ../Doc/howto/clinic.rst:549 +#: howto/clinic.rst:549 msgid "" "Congratulations, you've ported your first function to work with Argument " "Clinic!" @@ -834,11 +832,11 @@ msgstr "" "Félicitations, vous avez adapté votre première fonction pour qu'elle utilise " "Argument Clinic !" -#: ../Doc/howto/clinic.rst:552 +#: howto/clinic.rst:552 msgid "Advanced Topics" msgstr "Sujets avancés" -#: ../Doc/howto/clinic.rst:554 +#: howto/clinic.rst:554 msgid "" "Now that you've had some experience working with Argument Clinic, it's time " "for some advanced topics." @@ -846,11 +844,11 @@ msgstr "" "Maintenant que vous avez un peu d'expérience avec Argument Clinic, c'est le " "moment pour des sujets avancés." -#: ../Doc/howto/clinic.rst:559 +#: howto/clinic.rst:559 msgid "Symbolic default values" msgstr "Valeurs par défaut" -#: ../Doc/howto/clinic.rst:561 +#: howto/clinic.rst:561 msgid "" "The default value you provide for a parameter can't be any arbitrary " "expression. Currently the following are explicitly supported:" @@ -858,19 +856,19 @@ msgstr "" "La valeur par défaut que vous fournissez pour un paramètre ne peut pas être " "n'importe quelle expression. Actuellement, ce qui est géré :" -#: ../Doc/howto/clinic.rst:564 +#: howto/clinic.rst:564 msgid "Numeric constants (integer and float)" msgstr "Constantes numériques (entier ou nombre flottant)" -#: ../Doc/howto/clinic.rst:565 +#: howto/clinic.rst:565 msgid "String constants" msgstr "Chaînes constantes" -#: ../Doc/howto/clinic.rst:566 +#: howto/clinic.rst:566 msgid "``True``, ``False``, and ``None``" msgstr "``True``, ``False`` et ``None``" -#: ../Doc/howto/clinic.rst:567 +#: howto/clinic.rst:567 msgid "" "Simple symbolic constants like ``sys.maxsize``, which must start with the " "name of the module" @@ -878,7 +876,7 @@ msgstr "" "Constantes symboliques simples comme ``sys.maxsize``, qui doivent commencer " "par le nom du module" -#: ../Doc/howto/clinic.rst:570 +#: howto/clinic.rst:570 msgid "" "In case you're curious, this is implemented in ``from_builtin()`` in ``Lib/" "inspect.py``." @@ -886,7 +884,7 @@ msgstr "" "Si par curiosité vous voulez lire l'implémentation, c'est ``from_builtin()`` " "dans ``Lib/inspect.py``." -#: ../Doc/howto/clinic.rst:573 +#: howto/clinic.rst:573 msgid "" "(In the future, this may need to get even more elaborate, to allow full " "expressions like ``CONSTANT - 1``.)" @@ -894,11 +892,11 @@ msgstr "" "(Dans le futur, il est possible que l'on ait besoin de l'améliorer, pour " "autoriser les expressions complètes comme ``CONSTANT - 1``.)" -#: ../Doc/howto/clinic.rst:578 +#: howto/clinic.rst:578 msgid "Renaming the C functions and variables generated by Argument Clinic" -msgstr "" +msgstr "Renommer les fonctions et variables C générées par Argument Clinic" -#: ../Doc/howto/clinic.rst:580 +#: howto/clinic.rst:580 msgid "" "Argument Clinic automatically names the functions it generates for you. " "Occasionally this may cause a problem, if the generated name collides with " @@ -909,16 +907,24 @@ msgid "" "function, then add ``\"_impl\"`` to the end and use that for the name of the " "impl function." msgstr "" +"Argument Clinic nomme automatiquement les fonctions qu'il génère. Parfois, " +"cela peut poser des problèmes, si le nom généré entre en collision avec le " +"nom d'une fonction C existante. Il y a une solution simple : surcharger les " +"noms utilisés par les fonctions C. Ajoutez simplement le mot clef ``\"as\"`` " +"sur la ligne de la déclaration de la fonction, suivi par le nom de la " +"fonction que vous souhaitez utiliser. Argument Clinic utilisera ce nom de " +"fonction pour la fonction de base (celle générée), et ajoutera ``\"_impl\"`` " +"à la fin et utilisera ce nom pour la fonction ``impl``." -#: ../Doc/howto/clinic.rst:588 +#: howto/clinic.rst:588 msgid "" "For example, if we wanted to rename the C function names generated for " "``pickle.Pickler.dump``, it'd look like this::" msgstr "" "Par exemple, si nous voulons renommer les noms de fonction C générés pour " -"``pickle.Pickler.dump``, ça ressemblerait à ça :" +"``pickle.Pickler.dump``, ça ressemblerait à ça ::" -#: ../Doc/howto/clinic.rst:596 +#: howto/clinic.rst:596 msgid "" "The base function would now be named ``pickler_dumper()``, and the impl " "function would now be named ``pickler_dumper_impl()``." @@ -926,7 +932,7 @@ msgstr "" "La fonction de base sera maintenant nommée ``pickler_dumper()``, et la " "fonction *impl* serait maintenant nommé ``pickler_dumper_impl()``." -#: ../Doc/howto/clinic.rst:600 +#: howto/clinic.rst:600 msgid "" "Similarly, you may have a problem where you want to give a parameter a " "specific Python name, but that name may be inconvenient in C. Argument " @@ -936,23 +942,25 @@ msgstr "" "De même, vous pouvez avoir un problème quand vous souhaiterez donner à un " "paramètre un nom spécifique à Python, mais ce nom peut être gênant en C. " "Argument Clinic vous permet de donner à un paramètre des noms différents en " -"Python et en C." +"Python et en C ::" -#: ../Doc/howto/clinic.rst:614 +#: howto/clinic.rst:614 msgid "" "Here, the name used in Python (in the signature and the ``keywords`` array) " "would be ``file``, but the C variable would be named ``file_obj``." msgstr "" +"Ici, le nom utilisé en Python (dans la signature ainsi que le tableau des " +"``keywords``) sera ``file``, et la variable C s'appellera ``file_obj``." -#: ../Doc/howto/clinic.rst:617 +#: howto/clinic.rst:617 msgid "You can use this to rename the ``self`` parameter too!" msgstr "Vous pouvez utiliser ceci pour renommer aussi le paramètre ``self``" -#: ../Doc/howto/clinic.rst:621 +#: howto/clinic.rst:621 msgid "Converting functions using PyArg_UnpackTuple" msgstr "Conversion des fonctions en utilisant *PyArg_UnpackTuple*" -#: ../Doc/howto/clinic.rst:623 +#: howto/clinic.rst:623 msgid "" "To convert a function parsing its arguments with :c:func:" "`PyArg_UnpackTuple`, simply write out all the arguments, specifying each as " @@ -960,8 +968,14 @@ msgid "" "appropriate. All arguments should be marked positional-only (add a ``/`` on " "a line by itself after the last argument)." msgstr "" +"Afin de convertir une fonction analysant ses arguments via :c:func:" +"`PyArg_UnpackTuple`, écrivez simplement tous les arguments, en les " +"spécifiant comme des ``object``. Vous pouvez spécifier également le ``type`` " +"d'argument afin de le forcer au type approprié. Tous les arguments devraient " +"être marqués comme seulement positionnels (ajoutez un ``/`` seul sur la " +"ligne après le dernier argument)." -#: ../Doc/howto/clinic.rst:629 +#: howto/clinic.rst:629 msgid "" "Currently the generated code will use :c:func:`PyArg_ParseTuple`, but this " "will change soon." @@ -969,11 +983,11 @@ msgstr "" "Actuellement, le code généré utilise :c:func:`PyArg_ParseTuple`, mais cela " "va bientôt changer." -#: ../Doc/howto/clinic.rst:633 +#: howto/clinic.rst:633 msgid "Optional Groups" msgstr "Groupes optionnels" -#: ../Doc/howto/clinic.rst:635 +#: howto/clinic.rst:635 msgid "" "Some legacy functions have a tricky approach to parsing their arguments: " "they count the number of positional arguments, then use a ``switch`` " @@ -983,8 +997,16 @@ msgid "" "optional arguments back before :c:func:`PyArg_ParseTupleAndKeywords` was " "created." msgstr "" +"Certaines fonctions de base ont une approche particulière pour analyser " +"leurs arguments : elles comptent le nombre d'arguments positionnels, puis " +"elles utilisent une condition ``switch`` basée sur le nombre d'arguments " +"présents pour appeler différentes :c:func:`PyArg_ParseTuple` disponibles " +"(ces fonctions ne peuvent pas avoir des arguments passés uniquement en tant " +"qu'arguments nommés). Cette approche était utilisée pour simuler des " +"arguments optionnels avant que :c:func:`PyArg_ParseTupleAndKeywords` ne soit " +"créée." -#: ../Doc/howto/clinic.rst:642 +#: howto/clinic.rst:642 msgid "" "While functions using this approach can often be converted to use :c:func:" "`PyArg_ParseTupleAndKeywords`, optional arguments, and default values, it's " @@ -997,8 +1019,19 @@ msgid "" "the function passing in ``x``, you must also pass in ``y``—and if you don't " "pass in ``x`` you may not pass in ``y`` either.)" msgstr "" +"Alors que les fonctions utilisant cette approche peuvent normalement être " +"converties pour utiliser :c:func:`PyArg_ParseTupleAndKeywords`, des " +"arguments optionnels et des valeurs par défaut, ce n'est pas toujours " +"possible. Certaines fonctions classiques ne peuvent pas être gérées par :c:" +"func:`PyArg_ParseTupleAndKeywords`. L'exemple le plus évident est la " +"fonction native ``range()``, qui possède un argument optionnel à *gauche* de " +"ses arguments requis ! Un autre exemple est la fonction ``curses.window." +"addch()``, qui possède un groupe de deux arguments qui doivent toujours être " +"spécifiés ensemble (ces arguments s'appellent ``x`` et ``y`` ; si vous " +"appelez la fonction en passant ``x``, vous devez passer ``y`` et si vous ne " +"passez pas ``x``, vous ne devez pas passer ``y`` non plus)." -#: ../Doc/howto/clinic.rst:654 +#: howto/clinic.rst:654 msgid "" "In any case, the goal of Argument Clinic is to support argument parsing for " "all existing CPython builtins without changing their semantics. Therefore " @@ -1007,8 +1040,16 @@ msgid "" "all be passed in together. They can be to the left or the right of the " "required arguments. They can *only* be used with positional-only parameters." msgstr "" +"Dans tous les cas, le but d'Argument Clinic est de prendre en charge " +"l'analyse des arguments pour toutes les fonctions natives de CPython sans " +"avoir besoin de les modifier. C'est pourquoi Argument Clinic propose cette " +"autre approche pour l'analyse, en utilisant ce qu'on appelle les *groupes " +"optionnels*. Les groupes optionnels sont des groupes d'arguments qui doivent " +"tous être transmis ensemble. Ils peuvent être situés à droite ou à gauche " +"des arguments requis. Ils ne peuvent être utilisés *seulement* qu'en tant " +"que paramètres positionnels." -#: ../Doc/howto/clinic.rst:662 +#: howto/clinic.rst:662 msgid "" "Optional groups are *only* intended for use when converting functions that " "make multiple calls to :c:func:`PyArg_ParseTuple`! Functions that use *any* " @@ -1018,8 +1059,16 @@ msgid "" "doesn't understand the concept. Please avoid using optional groups wherever " "possible." msgstr "" +"Les groupes optionnels sont *uniquement* prévus pour convertir les fonctions " +"faisant des appels multiples à :c:func:`PyArg_ParseTuple` ! Les fonctions " +"qui utilisent *au moins une* des autres approches ne doivent *presque " +"jamais* être converties à Argument Clinic en utilisant les groupes " +"optionnels. Les fonctions utilisant ces groupes n'ont pas actuellement de " +"signature précise en Python, parce que celui-ci ne peut simplement pas " +"comprendre ce concept. Tâchez d'éviter au maximum d'utiliser ces groupes " +"optionnels si possible." -#: ../Doc/howto/clinic.rst:671 +#: howto/clinic.rst:671 msgid "" "To specify an optional group, add a ``[`` on a line by itself before the " "parameters you wish to group together, and a ``]`` on a line by itself after " @@ -1027,12 +1076,17 @@ msgid "" "optional groups to make the first two parameters and the last parameter " "optional::" msgstr "" +"Afin de signaler un groupe optionnel, ajoutez un ``[`` seul sur une ligne " +"avant les paramètres que vous souhaitez inclure dans le groupe, puis un " +"``]`` seul sur une ligne après ces paramètres. Voici, par exemple, comment " +"``curses.window.addch`` utilise les groupes optionnels pour rendre optionnel " +"les deux premiers paramètres ainsi que le dernier :" -#: ../Doc/howto/clinic.rst:700 +#: howto/clinic.rst:700 msgid "Notes:" msgstr "Notes :" -#: ../Doc/howto/clinic.rst:702 +#: howto/clinic.rst:702 msgid "" "For every optional group, one additional parameter will be passed into the " "impl function representing the group. The parameter will be an int named " @@ -1044,8 +1098,18 @@ msgid "" "was unused, and set to non-zero if this group was used. (By used or unused, " "I mean whether or not the parameters received arguments in this invocation.)" msgstr "" +"Pour chaque groupe optionnel, un paramètre additionnel sera passé à la " +"fonction ``impl`` représentant le groupe. Ce paramètre sera un entier nommé " +"``group_{direction}_{number}``, où ``{direction}`` peut être soit ``right`` " +"ou ``left`` suivant que le groupe est situé avant ou après les paramètres " +"requis, et ``{number}`` sera un entier incrémenté (débutant à 1) indiquant " +"la distance entre le groupe et les paramètres requis. Quand la fonction " +"``impl`` est appelée, ce paramètre est positionné à zéro si le groupe n'a " +"pas été utilisé, et positionné à un nombre entier positif sinon (par " +"inutilisé, on entend que les paramètres n'ont pas reçu de valeur lors de cet " +"appel)." -#: ../Doc/howto/clinic.rst:713 +#: howto/clinic.rst:713 msgid "" "If there are no required arguments, the optional groups will behave as if " "they're to the right of the required arguments." @@ -1053,17 +1117,20 @@ msgstr "" "S'il n'y a pas d'arguments requis, les groupes optionnels se comportent " "comme s'ils étaient à droite des arguments requis." -#: ../Doc/howto/clinic.rst:716 +#: howto/clinic.rst:716 msgid "" "In the case of ambiguity, the argument parsing code favors parameters on the " "left (before the required parameters)." msgstr "" +"En cas d'ambiguïté, le code d'analyse des arguments favorise ceux situés à " +"gauche (avant les paramètres obligatoires)." -#: ../Doc/howto/clinic.rst:719 +#: howto/clinic.rst:719 msgid "Optional groups can only contain positional-only parameters." msgstr "" +"Les groupes optionnels ne peuvent contenir que des arguments positionnels." -#: ../Doc/howto/clinic.rst:721 +#: howto/clinic.rst:721 msgid "" "Optional groups are *only* intended for legacy code. Please do not use " "optional groups for new code." @@ -1071,11 +1138,13 @@ msgstr "" "Les groupes optionnels sont *seulement* destinés au code hérité. Ne les " "utilisez pas dans du nouveau code." -#: ../Doc/howto/clinic.rst:726 +#: howto/clinic.rst:726 msgid "Using real Argument Clinic converters, instead of \"legacy converters\"" msgstr "" +"Utilisation des adaptateurs d'Argument Clinic, en lieu et place des " +"« adaptateurs de base »" -#: ../Doc/howto/clinic.rst:728 +#: howto/clinic.rst:728 msgid "" "To save time, and to minimize how much you need to learn to achieve your " "first port to Argument Clinic, the walkthrough above tells you to use " @@ -1083,162 +1152,216 @@ msgid "" "explicitly to make porting existing code to Argument Clinic easier. And to " "be clear, their use is acceptable when porting code for Python 3.4." msgstr "" +"Afin de gagner du temps, et pour minimiser la courbe d'apprentissage pour " +"pouvoir utiliser Argument Clinic, le guide ci-dessus préconise les " +"« adaptateurs de base ». Ceux-ci sont un moyen simple conçu pour porter " +"facilement du code existant sous Argument Clinic. Et pour être clair, leur " +"utilisation est tout à fait acceptable pour porter du code Python 3.4." -#: ../Doc/howto/clinic.rst:735 +#: howto/clinic.rst:735 msgid "" "However, in the long term we probably want all our blocks to use Argument " "Clinic's real syntax for converters. Why? A couple reasons:" msgstr "" +"Cependant, sur le long terme, il est certainement préférable que tous vos " +"blocs utilisent la syntaxe réelle des adaptateurs d'Argument Clinic. " +"Pourquoi ? Voici quelques raisons :" -#: ../Doc/howto/clinic.rst:739 +#: howto/clinic.rst:739 msgid "" "The proper converters are far easier to read and clearer in their intent." -msgstr "" +msgstr "Les adaptateurs sont plus simples et plus clairs." -#: ../Doc/howto/clinic.rst:740 +#: howto/clinic.rst:740 msgid "" "There are some format units that are unsupported as \"legacy converters\", " "because they require arguments, and the legacy converter syntax doesn't " "support specifying arguments." msgstr "" +"Il existe des formats qui ne sont pas gérés par les « adaptateurs de base », " +"parce qu'ils nécessitent des arguments, et la syntaxe de ces adaptateurs ne " +"supporte pas cela." -#: ../Doc/howto/clinic.rst:743 +#: howto/clinic.rst:743 msgid "" "In the future we may have a new argument parsing library that isn't " "restricted to what :c:func:`PyArg_ParseTuple` supports; this flexibility " "won't be available to parameters using legacy converters." msgstr "" +"Dans le futur, on pourrait avoir une nouvelle bibliothèque d'analyse des " +"arguments qui ne serait pas limitée à ce que :c:func:`PyArg_ParseTuple` " +"accepte ; cette flexibilité ne serait pas accessible aux paramètres " +"utilisant des adaptateurs de base." -#: ../Doc/howto/clinic.rst:747 +#: howto/clinic.rst:747 msgid "" "Therefore, if you don't mind a little extra effort, please use the normal " "converters instead of legacy converters." msgstr "" +"Ainsi, si vous n'êtes pas contre un petit effort supplémentaire, vous " +"devriez utiliser les adaptateurs normaux plutôt que ceux de base." -#: ../Doc/howto/clinic.rst:750 +#: howto/clinic.rst:750 msgid "" "In a nutshell, the syntax for Argument Clinic (non-legacy) converters looks " "like a Python function call. However, if there are no explicit arguments to " "the function (all functions take their default values), you may omit the " "parentheses. Thus ``bool`` and ``bool()`` are exactly the same converters." msgstr "" +"En bref, la syntaxe des adaptateurs d'Argument Clinic ressemble à un appel " +"de fonction Python. Mais, s'il n'y a pas d'argument explicite à la fonction " +"(celle-ci utilisant ses valeurs par défaut), vous pouvez omettre les " +"parenthèses. Ainsi ``bool`` et ``bool()`` représentent le même adaptateur." -#: ../Doc/howto/clinic.rst:756 +#: howto/clinic.rst:756 msgid "" "All arguments to Argument Clinic converters are keyword-only. All Argument " "Clinic converters accept the following arguments:" msgstr "" +"Tous les arguments passés aux adaptateurs d'Argument Clinic sont nommés. " +"Tous les adaptateurs d'Argument Clinic acceptent les arguments suivants :" -#: ../Doc/howto/clinic.rst:764 ../Doc/howto/clinic.rst:1252 +#: howto/clinic.rst:1252 msgid "``c_default``" -msgstr "" +msgstr "``c_default``" -#: ../Doc/howto/clinic.rst:760 +#: howto/clinic.rst:760 msgid "" "The default value for this parameter when defined in C. Specifically, this " -"will be the initializer for the variable declared in the \"parse function" -"\". See :ref:`the section on default values ` for how to " -"use this. Specified as a string." +"will be the initializer for the variable declared in the \"parse " +"function\". See :ref:`the section on default values ` for " +"how to use this. Specified as a string." msgstr "" +"La valeur par défaut de cet argument lorsqu'il est défini en C. Typiquement, " +"il servira à initialiser la variable déclarée dans la « fonction " +"d'analyse ». Voir la section relative aux :ref:`valeurs par défaut " +"` pour apprendre à l'utiliser. Spécifié en tant que chaîne " +"de caractères." -#: ../Doc/howto/clinic.rst:769 +#: howto/clinic.rst:769 msgid "``annotation``" -msgstr "" +msgstr "``annotation``" -#: ../Doc/howto/clinic.rst:767 +#: howto/clinic.rst:767 msgid "" "The annotation value for this parameter. Not currently supported, because :" "pep:`8` mandates that the Python library may not use annotations." msgstr "" +"La valeur annotée pour ce paramètre. Actuellement non géré, car la :pep:`8` " +"exige que les bibliothèques Python n'utilisent pas d'annotations." -#: ../Doc/howto/clinic.rst:771 +#: howto/clinic.rst:771 msgid "" "In addition, some converters accept additional arguments. Here is a list of " "these arguments, along with their meanings:" msgstr "" +"De plus, certains adaptateurs acceptent des arguments additionnels. Voici la " +"liste de ces arguments, avec leur explication :" -#: ../Doc/howto/clinic.rst:780 +#: howto/clinic.rst:780 msgid "``accept``" -msgstr "" +msgstr "``accept``" -#: ../Doc/howto/clinic.rst:775 +#: howto/clinic.rst:775 msgid "" "A set of Python types (and possibly pseudo-types); this restricts the " "allowable Python argument to values of these types. (This is not a general-" "purpose facility; as a rule it only supports specific lists of types as " "shown in the legacy converter table.)" msgstr "" +"Un ensemble de types Python (et potentiellement des pseudo-types) ; cela " +"restreint l'argument Python autorisé aux valeurs de ces types (ce n'est pas " +"destiné à une utilisation généralisée ; en fait, il gère seulement les types " +"listés dans la table des adaptateurs de base)." -#: ../Doc/howto/clinic.rst:780 +#: howto/clinic.rst:780 msgid "To accept ``None``, add ``NoneType`` to this set." -msgstr "" +msgstr "Pour accepter ``None``, ajouter ``NoneType`` à cet ensemble." -#: ../Doc/howto/clinic.rst:785 +#: howto/clinic.rst:785 msgid "``bitwise``" -msgstr "" +msgstr "``bitwise``" -#: ../Doc/howto/clinic.rst:783 +#: howto/clinic.rst:783 msgid "" "Only supported for unsigned integers. The native integer value of this " "Python argument will be written to the parameter without any range checking, " "even for negative values." msgstr "" +"Autorisé seulement pour les entiers non signés. La valeur native de cet " +"argument Python sera transcrite dans le paramètre sans aucune vérification " +"de plage, même pour des valeurs négatives." -#: ../Doc/howto/clinic.rst:790 ../Doc/howto/clinic.rst:1266 +#: howto/clinic.rst:1266 msgid "``converter``" -msgstr "" +msgstr "``converter``" -#: ../Doc/howto/clinic.rst:788 +#: howto/clinic.rst:788 msgid "" "Only supported by the ``object`` converter. Specifies the name of a :ref:`C " "\"converter function\" ` to use to convert this object to a " "native type." msgstr "" +"Autorisé seulement pour l'adaptateur ``object``. Spécifie le nom d'une :ref:" +"`« fonction de conversion » depuis C ` à utiliser pour " +"convertir cet objet en type natif." -#: ../Doc/howto/clinic.rst:795 +#: howto/clinic.rst:795 msgid "``encoding``" msgstr "``encoding``" -#: ../Doc/howto/clinic.rst:793 +#: howto/clinic.rst:793 msgid "" "Only supported for strings. Specifies the encoding to use when converting " "this string from a Python str (Unicode) value into a C ``char *`` value." msgstr "" +"Autorisé seulement pour les chaînes de caractères. Spécifie l'encodage à " +"utiliser lors de la conversion de cette chaîne depuis une valeur de type " +"Python ``str`` (Unicode) en valeur C ``char *``." -#: ../Doc/howto/clinic.rst:799 +#: howto/clinic.rst:799 msgid "``subclass_of``" -msgstr "" +msgstr "``subclass_of``" -#: ../Doc/howto/clinic.rst:798 +#: howto/clinic.rst:798 msgid "" "Only supported for the ``object`` converter. Requires that the Python value " "be a subclass of a Python type, as expressed in C." msgstr "" +"Autorisé seulement pour l'adaptateur ``object``. Nécessite que la valeur " +"Python soit une sous-classe d'un type Python, telle qu'exprimée en C." -#: ../Doc/howto/clinic.rst:804 ../Doc/howto/clinic.rst:1238 +#: howto/clinic.rst:1238 msgid "``type``" msgstr "``type``" -#: ../Doc/howto/clinic.rst:802 +#: howto/clinic.rst:802 msgid "" "Only supported for the ``object`` and ``self`` converters. Specifies the C " -"type that will be used to declare the variable. Default value is ``" -"\"PyObject *\"``." +"type that will be used to declare the variable. Default value is " +"``\"PyObject *\"``." msgstr "" +"Autorisé seulement pour les adaptateurs ``object`` et ``self``. Spécifie le " +"type C qui sera utilisé pour déclarer la variable. La valeur par défaut est " +"``\"PyObject *\"``." -#: ../Doc/howto/clinic.rst:810 +#: howto/clinic.rst:810 msgid "``zeroes``" -msgstr "" +msgstr "``zeroes``" -#: ../Doc/howto/clinic.rst:807 +#: howto/clinic.rst:807 msgid "" "Only supported for strings. If true, embedded NUL bytes (``'\\\\0'``) are " "permitted inside the value. The length of the string will be passed in to " "the impl function, just after the string parameter, as a parameter named " "``_length``." msgstr "" +"Autorisé seulement pour les chaînes de caractères. Si vrai, les octets NUL " +"(``'\\\\0'``) sont permis au sein de la valeur. La taille de la chaîne sera " +"passée à la fonction ``impl``, juste après le paramètre chaîne, en tant que " +"paramètre nommé ``_length``." -#: ../Doc/howto/clinic.rst:812 +#: howto/clinic.rst:812 msgid "" "Please note, not every possible combination of arguments will work. Usually " "these arguments are implemented by specific ``PyArg_ParseTuple`` *format " @@ -1248,351 +1371,366 @@ msgid "" "any existing format unit. So Argument Clinic doesn't support it. (Or, at " "least, not yet.)" msgstr "" +"Attention de bien noter que toutes les combinaisons d'arguments ne " +"fonctionnent pas. Normalement, ces arguments sont mis en place via des " +"*formats* ``PyArg_ParseTuple`` au comportement spécifique. Par exemple, à " +"l'heure actuelle vous ne pouvez pas appeler ``unsigned_short`` sans " +"spécifier également ``bitwise=True``. Bien qu'il soit parfaitement " +"raisonnable de penser que ça puisse fonctionner, cette écriture ne " +"correspond à aucun format. Donc Argument Clinic ne le gère pas (en tous cas, " +"pas pour le moment)." -#: ../Doc/howto/clinic.rst:820 +#: howto/clinic.rst:820 msgid "" "Below is a table showing the mapping of legacy converters into real Argument " "Clinic converters. On the left is the legacy converter, on the right is the " "text you'd replace it with." msgstr "" +"Vous pouvez voir, ci-dessous, une table présentant la correspondance entre " +"les adaptateurs de base et ceux d'Argument Clinic. À gauche, sont listés les " +"adaptateurs de base et, à droite, le texte qui les remplace." -#: ../Doc/howto/clinic.rst:825 +#: howto/clinic.rst:825 msgid "``'B'``" msgstr "``'B'``" -#: ../Doc/howto/clinic.rst:825 +#: howto/clinic.rst:825 msgid "``unsigned_char(bitwise=True)``" -msgstr "" +msgstr "``unsigned_char(bitwise=True)``" -#: ../Doc/howto/clinic.rst:826 +#: howto/clinic.rst:826 msgid "``'b'``" msgstr "``'b'``" -#: ../Doc/howto/clinic.rst:826 +#: howto/clinic.rst:826 msgid "``unsigned_char``" -msgstr "" +msgstr "``unsigned_char``" -#: ../Doc/howto/clinic.rst:827 +#: howto/clinic.rst:827 msgid "``'c'``" msgstr "``'c'``" -#: ../Doc/howto/clinic.rst:827 +#: howto/clinic.rst:827 msgid "``char``" -msgstr "" +msgstr "``char``" -#: ../Doc/howto/clinic.rst:828 +#: howto/clinic.rst:828 msgid "``'C'``" -msgstr "" +msgstr "``'C'``" -#: ../Doc/howto/clinic.rst:828 +#: howto/clinic.rst:828 msgid "``int(accept={str})``" -msgstr "" +msgstr "``int(accept={str})``" -#: ../Doc/howto/clinic.rst:829 +#: howto/clinic.rst:829 msgid "``'d'``" msgstr "``'d'``" -#: ../Doc/howto/clinic.rst:829 +#: howto/clinic.rst:829 msgid "``double``" -msgstr "" +msgstr "``double``" -#: ../Doc/howto/clinic.rst:830 +#: howto/clinic.rst:830 msgid "``'D'``" msgstr "``'D'``" -#: ../Doc/howto/clinic.rst:830 +#: howto/clinic.rst:830 msgid "``Py_complex``" -msgstr "" +msgstr "``Py_complex``" -#: ../Doc/howto/clinic.rst:831 +#: howto/clinic.rst:831 msgid "``'es'``" -msgstr "" +msgstr "``'es'``" -#: ../Doc/howto/clinic.rst:831 +#: howto/clinic.rst:831 msgid "``str(encoding='name_of_encoding')``" -msgstr "" +msgstr "``str(encoding='name_of_encoding')``" -#: ../Doc/howto/clinic.rst:832 +#: howto/clinic.rst:832 msgid "``'es#'``" -msgstr "" +msgstr "``'es#'``" -#: ../Doc/howto/clinic.rst:832 +#: howto/clinic.rst:832 msgid "``str(encoding='name_of_encoding', zeroes=True)``" -msgstr "" +msgstr "``str(encoding='name_of_encoding', zeroes=True)``" -#: ../Doc/howto/clinic.rst:833 +#: howto/clinic.rst:833 msgid "``'et'``" -msgstr "" +msgstr "``'et'``" -#: ../Doc/howto/clinic.rst:833 +#: howto/clinic.rst:833 msgid "``str(encoding='name_of_encoding', accept={bytes, bytearray, str})``" -msgstr "" +msgstr "``str(encoding='name_of_encoding', accept={bytes, bytearray, str})``" -#: ../Doc/howto/clinic.rst:834 +#: howto/clinic.rst:834 msgid "``'et#'``" -msgstr "" +msgstr "``'et#'``" -#: ../Doc/howto/clinic.rst:834 +#: howto/clinic.rst:834 msgid "" "``str(encoding='name_of_encoding', accept={bytes, bytearray, str}, " "zeroes=True)``" msgstr "" +"``str(encoding='name_of_encoding', accept={bytes, bytearray, str}, " +"zeroes=True)``" -#: ../Doc/howto/clinic.rst:835 +#: howto/clinic.rst:835 msgid "``'f'``" msgstr "``'f'``" -#: ../Doc/howto/clinic.rst:835 +#: howto/clinic.rst:835 msgid "``float``" -msgstr "" +msgstr "``float``" -#: ../Doc/howto/clinic.rst:836 +#: howto/clinic.rst:836 msgid "``'h'``" msgstr "``'h'``" -#: ../Doc/howto/clinic.rst:836 +#: howto/clinic.rst:836 msgid "``short``" -msgstr "" +msgstr "``short``" -#: ../Doc/howto/clinic.rst:837 +#: howto/clinic.rst:837 msgid "``'H'``" msgstr "``'H'``" -#: ../Doc/howto/clinic.rst:837 +#: howto/clinic.rst:837 msgid "``unsigned_short(bitwise=True)``" -msgstr "" +msgstr "``unsigned_short(bitwise=True)``" -#: ../Doc/howto/clinic.rst:838 +#: howto/clinic.rst:838 msgid "``'i'``" msgstr "``'i'``" -#: ../Doc/howto/clinic.rst:838 +#: howto/clinic.rst:838 msgid "``int``" msgstr "``int``" -#: ../Doc/howto/clinic.rst:839 +#: howto/clinic.rst:839 msgid "``'I'``" msgstr "``'I'``" -#: ../Doc/howto/clinic.rst:839 +#: howto/clinic.rst:839 msgid "``unsigned_int(bitwise=True)``" -msgstr "" +msgstr "``unsigned_int(bitwise=True)``" -#: ../Doc/howto/clinic.rst:840 +#: howto/clinic.rst:840 msgid "``'k'``" -msgstr "" +msgstr "``'k'``" -#: ../Doc/howto/clinic.rst:840 +#: howto/clinic.rst:840 msgid "``unsigned_long(bitwise=True)``" -msgstr "" +msgstr "``unsigned_long(bitwise=True)``" -#: ../Doc/howto/clinic.rst:841 +#: howto/clinic.rst:841 msgid "``'K'``" -msgstr "" +msgstr "``'K'``" -#: ../Doc/howto/clinic.rst:841 +#: howto/clinic.rst:841 msgid "``unsigned_long_long(bitwise=True)``" -msgstr "" +msgstr "``unsigned_long_long(bitwise=True)``" -#: ../Doc/howto/clinic.rst:842 +#: howto/clinic.rst:842 msgid "``'l'``" msgstr "``'l'``" -#: ../Doc/howto/clinic.rst:842 +#: howto/clinic.rst:842 msgid "``long``" msgstr "``long``" -#: ../Doc/howto/clinic.rst:843 +#: howto/clinic.rst:843 msgid "``'L'``" msgstr "``'L'``" -#: ../Doc/howto/clinic.rst:843 +#: howto/clinic.rst:843 msgid "``long long``" -msgstr "" +msgstr "``long long``" -#: ../Doc/howto/clinic.rst:844 +#: howto/clinic.rst:844 msgid "``'n'``" msgstr "``'n'``" -#: ../Doc/howto/clinic.rst:844 +#: howto/clinic.rst:844 msgid "``Py_ssize_t``" -msgstr "" +msgstr "``Py_ssize_t``" -#: ../Doc/howto/clinic.rst:845 +#: howto/clinic.rst:845 msgid "``'O'``" -msgstr "" +msgstr "``'O'``" -#: ../Doc/howto/clinic.rst:845 +#: howto/clinic.rst:845 msgid "``object``" -msgstr "" +msgstr "``object``" -#: ../Doc/howto/clinic.rst:846 +#: howto/clinic.rst:846 msgid "``'O!'``" -msgstr "" +msgstr "``'O!'``" -#: ../Doc/howto/clinic.rst:846 +#: howto/clinic.rst:846 msgid "``object(subclass_of='&PySomething_Type')``" -msgstr "" +msgstr "``object(subclass_of='&PySomething_Type')``" -#: ../Doc/howto/clinic.rst:847 +#: howto/clinic.rst:847 msgid "``'O&'``" -msgstr "" +msgstr "``'O&'``" -#: ../Doc/howto/clinic.rst:847 +#: howto/clinic.rst:847 msgid "``object(converter='name_of_c_function')``" -msgstr "" +msgstr "``object(converter='name_of_c_function')``" -#: ../Doc/howto/clinic.rst:848 +#: howto/clinic.rst:848 msgid "``'p'``" -msgstr "" +msgstr "``'p'``" -#: ../Doc/howto/clinic.rst:848 +#: howto/clinic.rst:848 msgid "``bool``" -msgstr "" +msgstr "``bool``" -#: ../Doc/howto/clinic.rst:849 +#: howto/clinic.rst:849 msgid "``'S'``" msgstr "``'S'``" -#: ../Doc/howto/clinic.rst:849 +#: howto/clinic.rst:849 msgid "``PyBytesObject``" -msgstr "" +msgstr "``PyBytesObject``" -#: ../Doc/howto/clinic.rst:850 +#: howto/clinic.rst:850 msgid "``'s'``" msgstr "``'s'``" -#: ../Doc/howto/clinic.rst:850 +#: howto/clinic.rst:850 msgid "``str``" -msgstr "" +msgstr "``str``" -#: ../Doc/howto/clinic.rst:851 +#: howto/clinic.rst:851 msgid "``'s#'``" -msgstr "" +msgstr "``'s#'``" -#: ../Doc/howto/clinic.rst:851 +#: howto/clinic.rst:851 msgid "``str(zeroes=True)``" -msgstr "" +msgstr "``str(zeroes=True)``" -#: ../Doc/howto/clinic.rst:852 +#: howto/clinic.rst:852 msgid "``'s*'``" -msgstr "" +msgstr "``'s*'``" -#: ../Doc/howto/clinic.rst:852 +#: howto/clinic.rst:852 msgid "``Py_buffer(accept={buffer, str})``" -msgstr "" +msgstr "``Py_buffer(accept={buffer, str})``" -#: ../Doc/howto/clinic.rst:853 +#: howto/clinic.rst:853 msgid "``'U'``" msgstr "``'U'``" -#: ../Doc/howto/clinic.rst:853 +#: howto/clinic.rst:853 msgid "``unicode``" -msgstr "" +msgstr "``unicode``" -#: ../Doc/howto/clinic.rst:854 +#: howto/clinic.rst:854 msgid "``'u'``" msgstr "``'u'``" -#: ../Doc/howto/clinic.rst:854 +#: howto/clinic.rst:854 msgid "``Py_UNICODE``" -msgstr "" +msgstr "``Py_UNICODE``" -#: ../Doc/howto/clinic.rst:855 +#: howto/clinic.rst:855 msgid "``'u#'``" -msgstr "" +msgstr "``'u#'``" -#: ../Doc/howto/clinic.rst:855 +#: howto/clinic.rst:855 msgid "``Py_UNICODE(zeroes=True)``" -msgstr "" +msgstr "``Py_UNICODE(zeroes=True)``" -#: ../Doc/howto/clinic.rst:856 +#: howto/clinic.rst:856 msgid "``'w*'``" -msgstr "" +msgstr "``'w*'``" -#: ../Doc/howto/clinic.rst:856 +#: howto/clinic.rst:856 msgid "``Py_buffer(accept={rwbuffer})``" -msgstr "" +msgstr "``Py_buffer(accept={rwbuffer})``" -#: ../Doc/howto/clinic.rst:857 +#: howto/clinic.rst:857 msgid "``'Y'``" -msgstr "" +msgstr "``'Y'``" -#: ../Doc/howto/clinic.rst:857 +#: howto/clinic.rst:857 msgid "``PyByteArrayObject``" -msgstr "" +msgstr "``PyByteArrayObject``" -#: ../Doc/howto/clinic.rst:858 +#: howto/clinic.rst:858 msgid "``'y'``" -msgstr "" +msgstr "``'y'``" -#: ../Doc/howto/clinic.rst:858 +#: howto/clinic.rst:858 msgid "``str(accept={bytes})``" -msgstr "" +msgstr "``str(accept={bytes})``" -#: ../Doc/howto/clinic.rst:859 +#: howto/clinic.rst:859 msgid "``'y#'``" -msgstr "" +msgstr "``'y#'``" -#: ../Doc/howto/clinic.rst:859 +#: howto/clinic.rst:859 msgid "``str(accept={robuffer}, zeroes=True)``" -msgstr "" +msgstr "``str(accept={robuffer}, zeroes=True)``" -#: ../Doc/howto/clinic.rst:860 +#: howto/clinic.rst:860 msgid "``'y*'``" -msgstr "" +msgstr "``'y*'``" -#: ../Doc/howto/clinic.rst:860 +#: howto/clinic.rst:860 msgid "``Py_buffer``" -msgstr "" +msgstr "``Py_buffer``" -#: ../Doc/howto/clinic.rst:861 +#: howto/clinic.rst:861 msgid "``'Z'``" -msgstr "" +msgstr "``'Z'``" -#: ../Doc/howto/clinic.rst:861 +#: howto/clinic.rst:861 msgid "``Py_UNICODE(accept={str, NoneType})``" -msgstr "" +msgstr "``Py_UNICODE(accept={str, NoneType})``" -#: ../Doc/howto/clinic.rst:862 +#: howto/clinic.rst:862 msgid "``'Z#'``" -msgstr "" +msgstr "``'Z#'``" -#: ../Doc/howto/clinic.rst:862 +#: howto/clinic.rst:862 msgid "``Py_UNICODE(accept={str, NoneType}, zeroes=True)``" -msgstr "" +msgstr "``Py_UNICODE(accept={str, NoneType}, zeroes=True)``" -#: ../Doc/howto/clinic.rst:863 +#: howto/clinic.rst:863 msgid "``'z'``" -msgstr "" +msgstr "``'z'``" -#: ../Doc/howto/clinic.rst:863 +#: howto/clinic.rst:863 msgid "``str(accept={str, NoneType})``" -msgstr "" +msgstr "``str(accept={str, NoneType})``" -#: ../Doc/howto/clinic.rst:864 +#: howto/clinic.rst:864 msgid "``'z#'``" -msgstr "" +msgstr "``'z#'``" -#: ../Doc/howto/clinic.rst:864 +#: howto/clinic.rst:864 msgid "``str(accept={str, NoneType}, zeroes=True)``" -msgstr "" +msgstr "``str(accept={str, NoneType}, zeroes=True)``" -#: ../Doc/howto/clinic.rst:865 +#: howto/clinic.rst:865 msgid "``'z*'``" -msgstr "" +msgstr "``'z*'``" -#: ../Doc/howto/clinic.rst:865 +#: howto/clinic.rst:865 msgid "``Py_buffer(accept={buffer, str, NoneType})``" -msgstr "" +msgstr "``Py_buffer(accept={buffer, str, NoneType})``" -#: ../Doc/howto/clinic.rst:868 +#: howto/clinic.rst:868 msgid "" "As an example, here's our sample ``pickle.Pickler.dump`` using the proper " "converter::" msgstr "" +"Par exemple, voici notre code ``pickle.Pickler.dump`` via l'adaptateur " +"approprié ::" -#: ../Doc/howto/clinic.rst:881 +#: howto/clinic.rst:881 msgid "" "One advantage of real converters is that they're more flexible than legacy " "converters. For example, the ``unsigned_int`` converter (and all the " @@ -1600,38 +1738,54 @@ msgid "" "default behavior performs range checking on the value, and they won't accept " "negative numbers. You just can't do that with a legacy converter!" msgstr "" +"Un avantage des adaptateurs réels est qu'ils sont plus flexibles que les " +"adaptateurs de base. Par exemple, l'adaptateur ``unsigned_int`` (ainsi que " +"tous les adaptateurs ``unsigned_``) peut être utilisé sans ``bitwise=True``. " +"Leur comportement par défaut contrôle la valeur, et n'acceptera pas de " +"nombres négatifs. On ne peut pas faire ça avec les adaptateurs de base !" -#: ../Doc/howto/clinic.rst:887 +#: howto/clinic.rst:887 msgid "" "Argument Clinic will show you all the converters it has available. For each " "converter it'll show you all the parameters it accepts, along with the " "default value for each parameter. Just run ``Tools/clinic/clinic.py --" "converters`` to see the full list." msgstr "" +"Argument Clinic sait lister tous les adaptateurs disponibles. Pour chaque " +"adaptateur, il vous liste également l'ensemble des paramètres qu'ils " +"acceptent, ainsi que les valeurs par défaut de chacun. Utilisez simplement " +"la commande ``Tools/clinic/clinic.py --converters`` pour afficher la liste." -#: ../Doc/howto/clinic.rst:893 +#: howto/clinic.rst:893 msgid "Py_buffer" -msgstr "" +msgstr "Py_buffer" -#: ../Doc/howto/clinic.rst:895 +#: howto/clinic.rst:895 msgid "" "When using the ``Py_buffer`` converter (or the ``'s*'``, ``'w*'``, ``'*y'``, " "or ``'z*'`` legacy converters), you *must* not call :c:func:" "`PyBuffer_Release` on the provided buffer. Argument Clinic generates code " "that does it for you (in the parsing function)." msgstr "" +"Lorsque vous utilisez l'adaptateur ``Py_buffer`` (ou bien les adaptateurs de " +"base ``'s*'``, ``'w*'``, ``'*y'``, ou ``'z*'``), vous *ne devez pas* " +"appeler :c:func:`PyBuffer_Release` sur le tampon fourni. Argument Clinic " +"génère du code qui le fait pour vous (dans la fonction d'analyse)." -#: ../Doc/howto/clinic.rst:903 +#: howto/clinic.rst:903 msgid "Advanced converters" -msgstr "" +msgstr "Adaptateurs avancés" -#: ../Doc/howto/clinic.rst:905 +#: howto/clinic.rst:905 msgid "" "Remember those format units you skipped for your first time because they " "were advanced? Here's how to handle those too." msgstr "" +"Vous vous souvenez de ces spécifications de format que vous avez laissées de " +"côté la première fois parce qu'il s'agissait de notions avancées ? Voici " +"comment les utiliser." -#: ../Doc/howto/clinic.rst:908 +#: howto/clinic.rst:908 msgid "" "The trick is, all those format units take arguments—either conversion " "functions, or types, or strings specifying an encoding. (But \"legacy " @@ -1641,8 +1795,16 @@ msgid "" "``O&``), ``subclass_of`` (for ``O!``), or ``encoding`` (for all the format " "units that start with ``e``)." msgstr "" +"L'astuce est que toutes ces spécifications de format acceptent des arguments " +"— aussi bien des fonctions de conversion que des types, ou des chaînes " +"spécifiant un encodage. (mais les « adaptateurs de base » ne gèrent pas les " +"arguments. C'est pourquoi nous les avions laissés de côté pour votre " +"première fonction.) L'argument que vous aviez spécifié à la spécification de " +"format est désormais un argument du convertisseur ; cet argument est soit " +"``converter`` (pour ``O&``), ``subclass_of`` (pour ``O!``), ou ``encoding`` " +"(pour toutes les spécifications de format qui commencent par ``e``)." -#: ../Doc/howto/clinic.rst:916 +#: howto/clinic.rst:916 msgid "" "When using ``subclass_of``, you may also want to use the other custom " "argument for ``object()``: ``type``, which lets you set the type actually " @@ -1650,8 +1812,14 @@ msgid "" "is a subclass of ``PyUnicode_Type``, you probably want to use the converter " "``object(type='PyUnicodeObject *', subclass_of='&PyUnicode_Type')``." msgstr "" +"Lorsque vous utilisez ``subclass_of``, vous pouvez également vouloir " +"utiliser les autres arguments usuels pour ``object()`` : ``type``, qui vous " +"laisse spécifier le type à utiliser pour l'argument. Par exemple, si vous " +"voulez vous assurer que l'objet est une sous-classe de ``PyUnicode_Type``, " +"vous utiliserez probablement le convertisseur ``object(type='PyUnicodeObject " +"*', subclass_of='&PyUnicode_Type')``." -#: ../Doc/howto/clinic.rst:922 +#: howto/clinic.rst:922 msgid "" "One possible problem with using Argument Clinic: it takes away some possible " "flexibility for the format units starting with ``e``. When writing a " @@ -1663,32 +1831,48 @@ msgid "" "unreasonable; CPython itself always passes in static hard-coded encoding " "strings for parameters whose format units start with ``e``." msgstr "" - -#: ../Doc/howto/clinic.rst:935 +"Mentionnons un problème potentiel d'utiliser *Argument Clinic* : cela retire " +"la flexibilité des spécifications de format commençant par ``e``. Lorsque " +"vous faites un appel à ``PyArg_Parse`` à la main, vous pourriez " +"théoriquement décider quelle chaîne d'encodage passer à :c:func:" +"`PyArg_ParseTuple`. Mais désormais cette chaîne doit être codée en dur au " +"moment du pré-processus d'Argument-Clinic. Cette limitation est délibérée ; " +"elle permet une gestion plus simple de cette spécification de format, et " +"peut permettre de futures optimisations. Cette restriction ne semble pas " +"déraisonnable ; CPython lui-même utilise toujours des chaînes d'encodage en " +"dur pour les paramètres dont les spécifications de format commencent par " +"``e``." + +#: howto/clinic.rst:935 msgid "Parameter default values" -msgstr "" +msgstr "Valeurs par défaut des paramètres" -#: ../Doc/howto/clinic.rst:937 +#: howto/clinic.rst:937 msgid "" "Default values for parameters can be any of a number of values. At their " "simplest, they can be string, int, or float literals:" msgstr "" +"Les valeurs par défaut des paramètres peuvent être n'importe quelle valeur. " +"Au plus simple, ce sont des chaînes, des entiers ou des nombres flottants :" -#: ../Doc/howto/clinic.rst:946 +#: howto/clinic.rst:946 msgid "They can also use any of Python's built-in constants:" msgstr "" +"Vous pouvez également utiliser n'importe quelle constante native de Python :" -#: ../Doc/howto/clinic.rst:954 +#: howto/clinic.rst:954 msgid "" "There's also special support for a default value of ``NULL``, and for simple " "expressions, documented in the following sections." msgstr "" +"La valeur ``NULL`` est également acceptée, ainsi que des expressions " +"simples, comme expliqué dans les sections suivantes." -#: ../Doc/howto/clinic.rst:959 +#: howto/clinic.rst:959 msgid "The ``NULL`` default value" -msgstr "" +msgstr "La valeur par défaut ``NULL``" -#: ../Doc/howto/clinic.rst:961 +#: howto/clinic.rst:961 msgid "" "For string and object parameters, you can set them to ``None`` to indicate " "that there's no default. However, that means the C variable will be " @@ -1697,24 +1881,34 @@ msgid "" "behaves like a default value of ``None``, but the C variable is initialized " "with ``NULL``." msgstr "" +"Pour les paramètres chaînes et objets, vous pouvez les positionner à " +"``None`` pour indiquer qu'il n'y a pas de valeur par défaut. Pour autant, " +"cela signifie que la variable C sera initialisée à ``Py_None``. Par " +"commodité, il existe une valeur spécifique appelée ``NULL`` juste pour cette " +"raison : du point de vue de Python, cette valeur se comporte comme la valeur " +"par défaut ``None``, mais la variable C est initialisée à ``NULL``." -#: ../Doc/howto/clinic.rst:969 +#: howto/clinic.rst:969 msgid "Expressions specified as default values" -msgstr "" +msgstr "Expressions spécifiées comme valeurs par défaut" -#: ../Doc/howto/clinic.rst:971 +#: howto/clinic.rst:971 msgid "" "The default value for a parameter can be more than just a literal value. It " "can be an entire expression, using math operators and looking up attributes " "on objects. However, this support isn't exactly simple, because of some non-" "obvious semantics." msgstr "" +"La valeur par défaut d'un paramètre peut être plus qu'une simple valeur " +"littérale. Il peut s'agir d'une expression, utilisant des opérateurs " +"mathématiques et des attributs d'objets. Cependant, cette possibilité n'est " +"pas aussi simple, notamment à cause de sémantiques peu évidentes." -#: ../Doc/howto/clinic.rst:976 +#: howto/clinic.rst:976 msgid "Consider the following example:" -msgstr "" +msgstr "Examinons l'exemple suivant :" -#: ../Doc/howto/clinic.rst:982 +#: howto/clinic.rst:982 msgid "" "``sys.maxsize`` can have different values on different platforms. Therefore " "Argument Clinic can't simply evaluate that expression locally and hard-code " @@ -1722,14 +1916,14 @@ msgid "" "at runtime, when the user asks for the function's signature." msgstr "" -#: ../Doc/howto/clinic.rst:987 +#: howto/clinic.rst:987 msgid "" "What namespace is available when the expression is evaluated? It's " "evaluated in the context of the module the builtin came from. So, if your " "module has an attribute called \"``max_widgets``\", you may simply use it:" msgstr "" -#: ../Doc/howto/clinic.rst:995 +#: howto/clinic.rst:995 msgid "" "If the symbol isn't found in the current module, it fails over to looking in " "``sys.modules``. That's how it can find ``sys.maxsize`` for example. " @@ -1738,7 +1932,7 @@ msgid "" "Python itself.)" msgstr "" -#: ../Doc/howto/clinic.rst:1000 +#: howto/clinic.rst:1000 msgid "" "Evaluating default values only at runtime means Argument Clinic can't " "compute the correct equivalent C default value. So you need to tell it " @@ -1746,7 +1940,7 @@ msgid "" "expression in C, using the ``c_default`` parameter to the converter:" msgstr "" -#: ../Doc/howto/clinic.rst:1009 +#: howto/clinic.rst:1009 msgid "" "Another complication: Argument Clinic can't know in advance whether or not " "the expression you supply is valid. It parses it to make sure it looks " @@ -1754,38 +1948,38 @@ msgid "" "expressions to specify values that are guaranteed to be valid at runtime!" msgstr "" -#: ../Doc/howto/clinic.rst:1014 +#: howto/clinic.rst:1014 msgid "" "Finally, because expressions must be representable as static C values, there " "are many restrictions on legal expressions. Here's a list of Python " "features you're not permitted to use:" msgstr "" -#: ../Doc/howto/clinic.rst:1018 +#: howto/clinic.rst:1018 msgid "Function calls." -msgstr "" +msgstr "des appels de fonction." -#: ../Doc/howto/clinic.rst:1019 +#: howto/clinic.rst:1019 msgid "Inline if statements (``3 if foo else 5``)." -msgstr "" +msgstr "des instructions *if* en ligne (``3 if foo else 5``) ;" -#: ../Doc/howto/clinic.rst:1020 +#: howto/clinic.rst:1020 msgid "Automatic sequence unpacking (``*[1, 2, 3]``)." msgstr "" -#: ../Doc/howto/clinic.rst:1021 +#: howto/clinic.rst:1021 msgid "List/set/dict comprehensions and generator expressions." msgstr "" -#: ../Doc/howto/clinic.rst:1022 +#: howto/clinic.rst:1022 msgid "Tuple/list/set/dict literals." msgstr "" -#: ../Doc/howto/clinic.rst:1027 +#: howto/clinic.rst:1027 msgid "Using a return converter" msgstr "" -#: ../Doc/howto/clinic.rst:1029 +#: howto/clinic.rst:1029 msgid "" "By default the impl function Argument Clinic generates for you returns " "``PyObject *``. But your C function often computes some C type, then " @@ -1795,14 +1989,14 @@ msgid "" "too?" msgstr "" -#: ../Doc/howto/clinic.rst:1035 +#: howto/clinic.rst:1035 msgid "" "That's what a \"return converter\" does. It changes your impl function to " "return some C type, then adds code to the generated (non-impl) function to " "handle converting that value into the appropriate ``PyObject *``." msgstr "" -#: ../Doc/howto/clinic.rst:1039 +#: howto/clinic.rst:1039 msgid "" "The syntax for return converters is similar to that of parameter converters. " "You specify the return converter like it was a return annotation on the " @@ -1812,13 +2006,13 @@ msgid "" "parentheses." msgstr "" -#: ../Doc/howto/clinic.rst:1045 +#: howto/clinic.rst:1045 msgid "" "(If you use both ``\"as\"`` *and* a return converter for your function, the " "``\"as\"`` should come before the return converter.)" msgstr "" -#: ../Doc/howto/clinic.rst:1048 +#: howto/clinic.rst:1048 msgid "" "There's one additional complication when using return converters: how do you " "indicate an error has occurred? Normally, a function returns a valid (non-" @@ -1831,18 +2025,18 @@ msgid "" "you return like normal." msgstr "" -#: ../Doc/howto/clinic.rst:1057 +#: howto/clinic.rst:1057 msgid "Currently Argument Clinic supports only a few return converters:" msgstr "" -#: ../Doc/howto/clinic.rst:1072 +#: howto/clinic.rst:1072 msgid "" "None of these take parameters. For the first three, return -1 to indicate " "error. For ``DecodeFSDefault``, the return type is ``const char *``; return " "a ``NULL`` pointer to indicate an error." msgstr "" -#: ../Doc/howto/clinic.rst:1076 +#: howto/clinic.rst:1076 msgid "" "(There's also an experimental ``NoneType`` converter, which lets you return " "``Py_None`` on success or ``NULL`` on failure, without having to increment " @@ -1850,117 +2044,117 @@ msgid "" "be worth using.)" msgstr "" -#: ../Doc/howto/clinic.rst:1081 +#: howto/clinic.rst:1081 msgid "" "To see all the return converters Argument Clinic supports, along with their " "parameters (if any), just run ``Tools/clinic/clinic.py --converters`` for " "the full list." msgstr "" -#: ../Doc/howto/clinic.rst:1087 +#: howto/clinic.rst:1087 msgid "Cloning existing functions" msgstr "" -#: ../Doc/howto/clinic.rst:1089 +#: howto/clinic.rst:1089 msgid "" "If you have a number of functions that look similar, you may be able to use " "Clinic's \"clone\" feature. When you clone an existing function, you reuse:" msgstr "" -#: ../Doc/howto/clinic.rst:1093 +#: howto/clinic.rst:1093 msgid "its parameters, including" msgstr "" -#: ../Doc/howto/clinic.rst:1095 +#: howto/clinic.rst:1095 msgid "their names," msgstr "" -#: ../Doc/howto/clinic.rst:1097 +#: howto/clinic.rst:1097 msgid "their converters, with all parameters," msgstr "" -#: ../Doc/howto/clinic.rst:1099 +#: howto/clinic.rst:1099 msgid "their default values," msgstr "" -#: ../Doc/howto/clinic.rst:1101 +#: howto/clinic.rst:1101 msgid "their per-parameter docstrings," msgstr "" -#: ../Doc/howto/clinic.rst:1103 +#: howto/clinic.rst:1103 msgid "" "their *kind* (whether they're positional only, positional or keyword, or " "keyword only), and" msgstr "" -#: ../Doc/howto/clinic.rst:1106 +#: howto/clinic.rst:1106 msgid "its return converter." msgstr "" -#: ../Doc/howto/clinic.rst:1108 +#: howto/clinic.rst:1108 msgid "" "The only thing not copied from the original function is its docstring; the " "syntax allows you to specify a new docstring." msgstr "" -#: ../Doc/howto/clinic.rst:1111 +#: howto/clinic.rst:1111 msgid "Here's the syntax for cloning a function::" msgstr "" -#: ../Doc/howto/clinic.rst:1119 +#: howto/clinic.rst:1119 msgid "" "(The functions can be in different modules or classes. I wrote ``module." "class`` in the sample just to illustrate that you must use the full path to " "*both* functions.)" msgstr "" -#: ../Doc/howto/clinic.rst:1123 +#: howto/clinic.rst:1123 msgid "" "Sorry, there's no syntax for partially-cloning a function, or cloning a " "function then modifying it. Cloning is an all-or nothing proposition." msgstr "" -#: ../Doc/howto/clinic.rst:1126 +#: howto/clinic.rst:1126 msgid "" "Also, the function you are cloning from must have been previously defined in " "the current file." msgstr "" -#: ../Doc/howto/clinic.rst:1130 +#: howto/clinic.rst:1130 msgid "Calling Python code" msgstr "" -#: ../Doc/howto/clinic.rst:1132 +#: howto/clinic.rst:1132 msgid "" "The rest of the advanced topics require you to write Python code which lives " "inside your C file and modifies Argument Clinic's runtime state. This is " "simple: you simply define a Python block." msgstr "" -#: ../Doc/howto/clinic.rst:1136 +#: howto/clinic.rst:1136 msgid "" "A Python block uses different delimiter lines than an Argument Clinic " "function block. It looks like this::" msgstr "" -#: ../Doc/howto/clinic.rst:1143 +#: howto/clinic.rst:1143 msgid "" "All the code inside the Python block is executed at the time it's parsed. " -"All text written to stdout inside the block is redirected into the \"output" -"\" after the block." +"All text written to stdout inside the block is redirected into the " +"\"output\" after the block." msgstr "" -#: ../Doc/howto/clinic.rst:1147 +#: howto/clinic.rst:1147 msgid "" "As an example, here's a Python block that adds a static integer variable to " "the C code::" msgstr "" -#: ../Doc/howto/clinic.rst:1158 +#: howto/clinic.rst:1158 msgid "Using a \"self converter\"" msgstr "" -#: ../Doc/howto/clinic.rst:1160 +#: howto/clinic.rst:1160 msgid "" "Argument Clinic automatically adds a \"self\" parameter for you using a " "default converter. It automatically sets the ``type`` of this parameter to " @@ -1971,13 +2165,13 @@ msgid "" "a subclass thereof." msgstr "" -#: ../Doc/howto/clinic.rst:1169 +#: howto/clinic.rst:1169 msgid "" "What's the point? This lets you override the type of ``self``, or give it a " "different default name." msgstr "" -#: ../Doc/howto/clinic.rst:1172 +#: howto/clinic.rst:1172 msgid "" "How do you specify the custom type you want to cast ``self`` to? If you only " "have one or two functions with the same type for ``self``, you can directly " @@ -1985,18 +2179,18 @@ msgid "" "want to use as the ``type`` parameter::" msgstr "" -#: ../Doc/howto/clinic.rst:1188 +#: howto/clinic.rst:1188 msgid "" "On the other hand, if you have a lot of functions that will use the same " "type for ``self``, it's best to create your own converter, subclassing " "``self_converter`` but overwriting the ``type`` member::" msgstr "" -#: ../Doc/howto/clinic.rst:1211 +#: howto/clinic.rst:1211 msgid "Writing a custom converter" msgstr "" -#: ../Doc/howto/clinic.rst:1213 +#: howto/clinic.rst:1213 msgid "" "As we hinted at in the previous section... you can write your own " "converters! A converter is simply a Python class that inherits from " @@ -2005,7 +2199,7 @@ msgid "" "a :c:func:`PyArg_ParseTuple` \"converter function\"." msgstr "" -#: ../Doc/howto/clinic.rst:1219 +#: howto/clinic.rst:1219 msgid "" "Your converter class should be named ``*something*_converter``. If the name " "follows this convention, then your converter class will be automatically " @@ -2014,7 +2208,7 @@ msgid "" "metaclass.)" msgstr "" -#: ../Doc/howto/clinic.rst:1225 +#: howto/clinic.rst:1225 msgid "" "You shouldn't subclass ``CConverter.__init__``. Instead, you should write a " "``converter_init()`` function. ``converter_init()`` always accepts a " @@ -2023,50 +2217,50 @@ msgid "" "passed along to your ``converter_init()``." msgstr "" -#: ../Doc/howto/clinic.rst:1232 +#: howto/clinic.rst:1232 msgid "" "There are some additional members of ``CConverter`` you may wish to specify " "in your subclass. Here's the current list:" msgstr "" -#: ../Doc/howto/clinic.rst:1236 +#: howto/clinic.rst:1236 msgid "" "The C type to use for this variable. ``type`` should be a Python string " "specifying the type, e.g. ``int``. If this is a pointer type, the type " "string should end with ``' *'``." msgstr "" -#: ../Doc/howto/clinic.rst:1242 +#: howto/clinic.rst:1242 msgid "``default``" msgstr "" -#: ../Doc/howto/clinic.rst:1241 +#: howto/clinic.rst:1241 msgid "" "The Python default value for this parameter, as a Python value. Or the magic " "value ``unspecified`` if there is no default." msgstr "" -#: ../Doc/howto/clinic.rst:1247 +#: howto/clinic.rst:1247 msgid "``py_default``" msgstr "" -#: ../Doc/howto/clinic.rst:1245 +#: howto/clinic.rst:1245 msgid "" "``default`` as it should appear in Python code, as a string. Or ``None`` if " "there is no default." msgstr "" -#: ../Doc/howto/clinic.rst:1250 +#: howto/clinic.rst:1250 msgid "" "``default`` as it should appear in C code, as a string. Or ``None`` if there " "is no default." msgstr "" -#: ../Doc/howto/clinic.rst:1263 +#: howto/clinic.rst:1263 msgid "``c_ignored_default``" msgstr "" -#: ../Doc/howto/clinic.rst:1255 +#: howto/clinic.rst:1255 msgid "" "The default value used to initialize the C variable when there is no " "default, but not specifying a default may result in an \"uninitialized " @@ -2077,37 +2271,37 @@ msgid "" "non-empty string." msgstr "" -#: ../Doc/howto/clinic.rst:1266 +#: howto/clinic.rst:1266 msgid "The name of the C converter function, as a string." msgstr "" -#: ../Doc/howto/clinic.rst:1271 +#: howto/clinic.rst:1271 msgid "``impl_by_reference``" msgstr "" -#: ../Doc/howto/clinic.rst:1269 +#: howto/clinic.rst:1269 msgid "" "A boolean value. If true, Argument Clinic will add a ``&`` in front of the " "name of the variable when passing it into the impl function." msgstr "" -#: ../Doc/howto/clinic.rst:1277 +#: howto/clinic.rst:1277 msgid "``parse_by_reference``" msgstr "" -#: ../Doc/howto/clinic.rst:1274 +#: howto/clinic.rst:1274 msgid "" "A boolean value. If true, Argument Clinic will add a ``&`` in front of the " "name of the variable when passing it into :c:func:`PyArg_ParseTuple`." msgstr "" -#: ../Doc/howto/clinic.rst:1279 +#: howto/clinic.rst:1279 msgid "" "Here's the simplest example of a custom converter, from ``Modules/zlibmodule." "c``::" msgstr "" -#: ../Doc/howto/clinic.rst:1290 +#: howto/clinic.rst:1290 msgid "" "This block adds a converter to Argument Clinic named ``ssize_t``. " "Parameters declared as ``ssize_t`` will be declared as type ``Py_ssize_t``, " @@ -2116,25 +2310,25 @@ msgid "" "automatically support default values." msgstr "" -#: ../Doc/howto/clinic.rst:1296 +#: howto/clinic.rst:1296 msgid "" "More sophisticated custom converters can insert custom C code to handle " "initialization and cleanup. You can see more examples of custom converters " "in the CPython source tree; grep the C files for the string ``CConverter``." msgstr "" -#: ../Doc/howto/clinic.rst:1302 +#: howto/clinic.rst:1302 msgid "Writing a custom return converter" msgstr "" -#: ../Doc/howto/clinic.rst:1304 +#: howto/clinic.rst:1304 msgid "" "Writing a custom return converter is much like writing a custom converter. " "Except it's somewhat simpler, because return converters are themselves much " "simpler." msgstr "" -#: ../Doc/howto/clinic.rst:1308 +#: howto/clinic.rst:1308 msgid "" "Return converters must subclass ``CReturnConverter``. There are no examples " "yet of custom return converters, because they are not widely used yet. If " @@ -2143,59 +2337,59 @@ msgid "" "its subclasses." msgstr "" -#: ../Doc/howto/clinic.rst:1316 +#: howto/clinic.rst:1316 msgid "METH_O and METH_NOARGS" msgstr "" -#: ../Doc/howto/clinic.rst:1318 +#: howto/clinic.rst:1318 msgid "" "To convert a function using ``METH_O``, make sure the function's single " "argument is using the ``object`` converter, and mark the arguments as " "positional-only::" msgstr "" -#: ../Doc/howto/clinic.rst:1330 +#: howto/clinic.rst:1330 msgid "" "To convert a function using ``METH_NOARGS``, just don't specify any " "arguments." msgstr "" -#: ../Doc/howto/clinic.rst:1333 +#: howto/clinic.rst:1333 msgid "" "You can still use a self converter, a return converter, and specify a " "``type`` argument to the object converter for ``METH_O``." msgstr "" -#: ../Doc/howto/clinic.rst:1337 +#: howto/clinic.rst:1337 msgid "tp_new and tp_init functions" msgstr "" -#: ../Doc/howto/clinic.rst:1339 +#: howto/clinic.rst:1339 msgid "" "You can convert ``tp_new`` and ``tp_init`` functions. Just name them " "``__new__`` or ``__init__`` as appropriate. Notes:" msgstr "" -#: ../Doc/howto/clinic.rst:1342 +#: howto/clinic.rst:1342 msgid "" "The function name generated for ``__new__`` doesn't end in ``__new__`` like " "it would by default. It's just the name of the class, converted into a " "valid C identifier." msgstr "" -#: ../Doc/howto/clinic.rst:1346 +#: howto/clinic.rst:1346 msgid "No ``PyMethodDef`` ``#define`` is generated for these functions." msgstr "" -#: ../Doc/howto/clinic.rst:1348 +#: howto/clinic.rst:1348 msgid "``__init__`` functions return ``int``, not ``PyObject *``." msgstr "" -#: ../Doc/howto/clinic.rst:1350 +#: howto/clinic.rst:1350 msgid "Use the docstring as the class docstring." msgstr "" -#: ../Doc/howto/clinic.rst:1352 +#: howto/clinic.rst:1352 msgid "" "Although ``__new__`` and ``__init__`` functions must always accept both the " "``args`` and ``kwargs`` objects, when converting you may specify any " @@ -2204,11 +2398,11 @@ msgid "" "it receives any.)" msgstr "" -#: ../Doc/howto/clinic.rst:1359 +#: howto/clinic.rst:1359 msgid "Changing and redirecting Clinic's output" msgstr "" -#: ../Doc/howto/clinic.rst:1361 +#: howto/clinic.rst:1361 msgid "" "It can be inconvenient to have Clinic's output interspersed with your " "conventional hand-edited C code. Luckily, Clinic is configurable: you can " @@ -2217,7 +2411,7 @@ msgid "" "Clinic's generated output." msgstr "" -#: ../Doc/howto/clinic.rst:1367 +#: howto/clinic.rst:1367 msgid "" "While changing Clinic's output in this manner can be a boon to readability, " "it may result in Clinic code using types before they are defined, or your " @@ -2229,15 +2423,15 @@ msgid "" "rearranging your code to fix definition-before-use problems.)" msgstr "" -#: ../Doc/howto/clinic.rst:1376 +#: howto/clinic.rst:1376 msgid "Let's start with defining some terminology:" msgstr "" -#: ../Doc/howto/clinic.rst:1403 +#: howto/clinic.rst:1403 msgid "*field*" msgstr "" -#: ../Doc/howto/clinic.rst:1379 +#: howto/clinic.rst:1379 msgid "" "A field, in this context, is a subsection of Clinic's output. For example, " "the ``#define`` for the ``PyMethodDef`` structure is a field, called " @@ -2245,7 +2439,7 @@ msgid "" "function definition:" msgstr "" -#: ../Doc/howto/clinic.rst:1394 +#: howto/clinic.rst:1394 msgid "" "All the names are of the form ``\"_\"``, where ``\"\"`` is the " "semantic object represented (the parsing function, the impl function, the " @@ -2253,50 +2447,47 @@ msgid "" "of statement the field is. Field names that end in ``\"_prototype\"`` " "represent forward declarations of that thing, without the actual body/data " "of the thing; field names that end in ``\"_definition\"`` represent the " -"actual definition of the thing, with the body/data of the thing. (``" -"\"methoddef\"`` is special, it's the only one that ends with ``\"_define" -"\"``, representing that it's a preprocessor #define.)" +"actual definition of the thing, with the body/data of the thing. " +"(``\"methoddef\"`` is special, it's the only one that ends with " +"``\"_define\"``, representing that it's a preprocessor #define.)" msgstr "" -#: ../Doc/howto/clinic.rst:1437 +#: howto/clinic.rst:1437 msgid "*destination*" msgstr "" -#: ../Doc/howto/clinic.rst:1406 +#: howto/clinic.rst:1406 msgid "" "A destination is a place Clinic can write output to. There are five built-" "in destinations:" msgstr "" -#: ../Doc/howto/clinic.rst:1411 ../Doc/howto/clinic.rst:1486 -#: ../Doc/howto/clinic.rst:1564 +#: howto/clinic.rst:1486 howto/clinic.rst:1564 msgid "``block``" msgstr "" -#: ../Doc/howto/clinic.rst:1410 +#: howto/clinic.rst:1410 msgid "" "The default destination: printed in the output section of the current Clinic " "block." msgstr "" -#: ../Doc/howto/clinic.rst:1417 ../Doc/howto/clinic.rst:1513 -#: ../Doc/howto/clinic.rst:1567 +#: howto/clinic.rst:1513 howto/clinic.rst:1567 msgid "``buffer``" msgstr "" -#: ../Doc/howto/clinic.rst:1414 +#: howto/clinic.rst:1414 msgid "" "A text buffer where you can save text for later. Text sent here is appended " "to the end of any existing text. It's an error to have any text left in the " "buffer when Clinic finishes processing a file." msgstr "" -#: ../Doc/howto/clinic.rst:1428 ../Doc/howto/clinic.rst:1499 -#: ../Doc/howto/clinic.rst:1593 +#: howto/clinic.rst:1499 howto/clinic.rst:1593 msgid "``file``" msgstr "" -#: ../Doc/howto/clinic.rst:1420 +#: howto/clinic.rst:1420 msgid "" "A separate \"clinic file\" that will be created automatically by Clinic. The " "filename chosen for the file is ``{basename}.clinic{extension}``, where " @@ -2305,65 +2496,64 @@ msgid "" "for ``_pickle.c`` would be written to ``_pickle.clinic.c``.)" msgstr "" -#: ../Doc/howto/clinic.rst:1427 +#: howto/clinic.rst:1427 msgid "" "**Important: When using a** ``file`` **destination, you** *must check in* " "**the generated file!**" msgstr "" -#: ../Doc/howto/clinic.rst:1433 ../Doc/howto/clinic.rst:1526 -#: ../Doc/howto/clinic.rst:1597 +#: howto/clinic.rst:1526 howto/clinic.rst:1597 msgid "``two-pass``" msgstr "" -#: ../Doc/howto/clinic.rst:1431 +#: howto/clinic.rst:1431 msgid "" "A buffer like ``buffer``. However, a two-pass buffer can only be dumped " "once, and it prints out all text sent to it during all processing, even from " "Clinic blocks *after* the dumping point." msgstr "" -#: ../Doc/howto/clinic.rst:1437 ../Doc/howto/clinic.rst:1560 +#: howto/clinic.rst:1560 msgid "``suppress``" msgstr "" -#: ../Doc/howto/clinic.rst:1436 +#: howto/clinic.rst:1436 msgid "The text is suppressed—thrown away." msgstr "" -#: ../Doc/howto/clinic.rst:1439 +#: howto/clinic.rst:1439 msgid "Clinic defines five new directives that let you reconfigure its output." msgstr "" -#: ../Doc/howto/clinic.rst:1441 +#: howto/clinic.rst:1441 msgid "The first new directive is ``dump``:" msgstr "" -#: ../Doc/howto/clinic.rst:1447 +#: howto/clinic.rst:1447 msgid "" "This dumps the current contents of the named destination into the output of " "the current block, and empties it. This only works with ``buffer`` and " "``two-pass`` destinations." msgstr "" -#: ../Doc/howto/clinic.rst:1451 +#: howto/clinic.rst:1451 msgid "" "The second new directive is ``output``. The most basic form of ``output`` " "is like this:" msgstr "" -#: ../Doc/howto/clinic.rst:1458 +#: howto/clinic.rst:1458 msgid "" "This tells Clinic to output *field* to *destination*. ``output`` also " "supports a special meta-destination, called ``everything``, which tells " "Clinic to output *all* fields to that *destination*." msgstr "" -#: ../Doc/howto/clinic.rst:1462 +#: howto/clinic.rst:1462 msgid "``output`` has a number of other functions:" msgstr "" -#: ../Doc/howto/clinic.rst:1471 +#: howto/clinic.rst:1471 msgid "" "``output push`` and ``output pop`` allow you to push and pop configurations " "on an internal configuration stack, so that you can temporarily modify the " @@ -2372,25 +2562,25 @@ msgid "" "when you wish to restore the previous configuration." msgstr "" -#: ../Doc/howto/clinic.rst:1478 +#: howto/clinic.rst:1478 msgid "" "``output preset`` sets Clinic's output to one of several built-in preset " "configurations, as follows:" msgstr "" -#: ../Doc/howto/clinic.rst:1482 +#: howto/clinic.rst:1482 msgid "" "Clinic's original starting configuration. Writes everything immediately " "after the input block." msgstr "" -#: ../Doc/howto/clinic.rst:1485 +#: howto/clinic.rst:1485 msgid "" "Suppress the ``parser_prototype`` and ``docstring_prototype``, write " "everything else to ``block``." msgstr "" -#: ../Doc/howto/clinic.rst:1489 +#: howto/clinic.rst:1489 msgid "" "Designed to write everything to the \"clinic file\" that it can. You then " "``#include`` this file near the top of your file. You may need to rearrange " @@ -2398,17 +2588,17 @@ msgid "" "declarations for various ``typedef`` and ``PyTypeObject`` definitions." msgstr "" -#: ../Doc/howto/clinic.rst:1495 +#: howto/clinic.rst:1495 msgid "" "Suppress the ``parser_prototype`` and ``docstring_prototype``, write the " "``impl_definition`` to ``block``, and write everything else to ``file``." msgstr "" -#: ../Doc/howto/clinic.rst:1499 +#: howto/clinic.rst:1499 msgid "The default filename is ``\"{dirname}/clinic/{basename}.h\"``." msgstr "" -#: ../Doc/howto/clinic.rst:1502 +#: howto/clinic.rst:1502 msgid "" "Save up most of the output from Clinic, to be written into your file near " "the end. For Python files implementing modules or builtin types, it's " @@ -2418,14 +2608,14 @@ msgid "" "static ``PyMethodDef`` arrays defined in the middle of the file." msgstr "" -#: ../Doc/howto/clinic.rst:1511 +#: howto/clinic.rst:1511 msgid "" "Suppress the ``parser_prototype``, ``impl_prototype``, and " "``docstring_prototype``, write the ``impl_definition`` to ``block``, and " "write everything else to ``file``." msgstr "" -#: ../Doc/howto/clinic.rst:1516 +#: howto/clinic.rst:1516 msgid "" "Similar to the ``buffer`` preset, but writes forward declarations to the " "``two-pass`` buffer, and definitions to the ``buffer``. This is similar to " @@ -2434,18 +2624,18 @@ msgid "" "near the end just like you would when using the ``buffer`` preset." msgstr "" -#: ../Doc/howto/clinic.rst:1523 +#: howto/clinic.rst:1523 msgid "" "Suppresses the ``impl_prototype``, write the ``impl_definition`` to " "``block``, write ``docstring_prototype``, ``methoddef_define``, and " "``parser_prototype`` to ``two-pass``, write everything else to ``buffer``." msgstr "" -#: ../Doc/howto/clinic.rst:1537 +#: howto/clinic.rst:1537 msgid "``partial-buffer``" msgstr "" -#: ../Doc/howto/clinic.rst:1529 +#: howto/clinic.rst:1529 msgid "" "Similar to the ``buffer`` preset, but writes more things to ``block``, only " "writing the really big chunks of generated code to ``buffer``. This avoids " @@ -2455,137 +2645,137 @@ msgid "" "preset." msgstr "" -#: ../Doc/howto/clinic.rst:1536 +#: howto/clinic.rst:1536 msgid "" "Suppresses the ``impl_prototype``, write the ``docstring_definition`` and " "``parser_definition`` to ``buffer``, write everything else to ``block``." msgstr "" -#: ../Doc/howto/clinic.rst:1539 +#: howto/clinic.rst:1539 msgid "The third new directive is ``destination``:" msgstr "" -#: ../Doc/howto/clinic.rst:1545 +#: howto/clinic.rst:1545 msgid "This performs an operation on the destination named ``name``." msgstr "" -#: ../Doc/howto/clinic.rst:1547 +#: howto/clinic.rst:1547 msgid "There are two defined subcommands: ``new`` and ``clear``." msgstr "" -#: ../Doc/howto/clinic.rst:1549 +#: howto/clinic.rst:1549 msgid "The ``new`` subcommand works like this:" msgstr "" -#: ../Doc/howto/clinic.rst:1555 +#: howto/clinic.rst:1555 msgid "" "This creates a new destination with name ```` and type ````." msgstr "" -#: ../Doc/howto/clinic.rst:1557 +#: howto/clinic.rst:1557 msgid "There are five destination types:" msgstr "" -#: ../Doc/howto/clinic.rst:1560 +#: howto/clinic.rst:1560 msgid "Throws the text away." msgstr "" -#: ../Doc/howto/clinic.rst:1563 +#: howto/clinic.rst:1563 msgid "" "Writes the text to the current block. This is what Clinic originally did." msgstr "" -#: ../Doc/howto/clinic.rst:1567 +#: howto/clinic.rst:1567 msgid "A simple text buffer, like the \"buffer\" builtin destination above." msgstr "" -#: ../Doc/howto/clinic.rst:1570 +#: howto/clinic.rst:1570 msgid "" "A text file. The file destination takes an extra argument, a template to " "use for building the filename, like so:" msgstr "" -#: ../Doc/howto/clinic.rst:1573 +#: howto/clinic.rst:1573 msgid "destination new " msgstr "" -#: ../Doc/howto/clinic.rst:1575 +#: howto/clinic.rst:1575 msgid "" "The template can use three strings internally that will be replaced by bits " "of the filename:" msgstr "" -#: ../Doc/howto/clinic.rst:1578 +#: howto/clinic.rst:1578 msgid "{path}" msgstr "" -#: ../Doc/howto/clinic.rst:1579 +#: howto/clinic.rst:1579 msgid "The full path to the file, including directory and full filename." msgstr "" -#: ../Doc/howto/clinic.rst:1580 +#: howto/clinic.rst:1580 msgid "{dirname}" msgstr "" -#: ../Doc/howto/clinic.rst:1581 +#: howto/clinic.rst:1581 msgid "The name of the directory the file is in." msgstr "" -#: ../Doc/howto/clinic.rst:1582 +#: howto/clinic.rst:1582 msgid "{basename}" msgstr "" -#: ../Doc/howto/clinic.rst:1583 +#: howto/clinic.rst:1583 msgid "Just the name of the file, not including the directory." msgstr "" -#: ../Doc/howto/clinic.rst:1585 +#: howto/clinic.rst:1585 msgid "{basename_root}" msgstr "" -#: ../Doc/howto/clinic.rst:1585 +#: howto/clinic.rst:1585 msgid "" "Basename with the extension clipped off (everything up to but not including " "the last '.')." msgstr "" -#: ../Doc/howto/clinic.rst:1589 +#: howto/clinic.rst:1589 msgid "{basename_extension}" msgstr "" -#: ../Doc/howto/clinic.rst:1588 +#: howto/clinic.rst:1588 msgid "" "The last '.' and everything after it. If the basename does not contain a " "period, this will be the empty string." msgstr "" -#: ../Doc/howto/clinic.rst:1591 +#: howto/clinic.rst:1591 msgid "" "If there are no periods in the filename, {basename} and {filename} are the " "same, and {extension} is empty. \"{basename}{extension}\" is always exactly " "the same as \"{filename}\".\"" msgstr "" -#: ../Doc/howto/clinic.rst:1596 +#: howto/clinic.rst:1596 msgid "A two-pass buffer, like the \"two-pass\" builtin destination above." msgstr "" -#: ../Doc/howto/clinic.rst:1599 +#: howto/clinic.rst:1599 msgid "The ``clear`` subcommand works like this:" msgstr "" -#: ../Doc/howto/clinic.rst:1605 +#: howto/clinic.rst:1605 msgid "" "It removes all the accumulated text up to this point in the destination. (I " "don't know what you'd need this for, but I thought maybe it'd be useful " "while someone's experimenting.)" msgstr "" -#: ../Doc/howto/clinic.rst:1609 +#: howto/clinic.rst:1609 msgid "The fourth new directive is ``set``:" msgstr "" -#: ../Doc/howto/clinic.rst:1616 +#: howto/clinic.rst:1616 msgid "" "``set`` lets you set two internal variables in Clinic. ``line_prefix`` is a " "string that will be prepended to every line of Clinic's output; " @@ -2593,35 +2783,35 @@ msgid "" "output." msgstr "" -#: ../Doc/howto/clinic.rst:1620 +#: howto/clinic.rst:1620 msgid "Both of these support two format strings:" msgstr "" -#: ../Doc/howto/clinic.rst:1623 +#: howto/clinic.rst:1623 msgid "``{block comment start}``" msgstr "" -#: ../Doc/howto/clinic.rst:1623 +#: howto/clinic.rst:1623 msgid "" "Turns into the string ``/*``, the start-comment text sequence for C files." msgstr "" -#: ../Doc/howto/clinic.rst:1626 +#: howto/clinic.rst:1626 msgid "``{block comment end}``" msgstr "" -#: ../Doc/howto/clinic.rst:1626 +#: howto/clinic.rst:1626 msgid "" "Turns into the string ``*/``, the end-comment text sequence for C files." msgstr "" -#: ../Doc/howto/clinic.rst:1628 +#: howto/clinic.rst:1628 msgid "" "The final new directive is one you shouldn't need to use directly, called " "``preserve``:" msgstr "" -#: ../Doc/howto/clinic.rst:1635 +#: howto/clinic.rst:1635 msgid "" "This tells Clinic that the current contents of the output should be kept, " "unmodified. This is used internally by Clinic when dumping output into " @@ -2630,36 +2820,36 @@ msgid "" "gets overwritten." msgstr "" -#: ../Doc/howto/clinic.rst:1642 +#: howto/clinic.rst:1642 msgid "The #ifdef trick" msgstr "" -#: ../Doc/howto/clinic.rst:1644 +#: howto/clinic.rst:1644 msgid "" "If you're converting a function that isn't available on all platforms, " "there's a trick you can use to make life a little easier. The existing code " "probably looks like this::" msgstr "" -#: ../Doc/howto/clinic.rst:1655 +#: howto/clinic.rst:1655 msgid "" "And then in the ``PyMethodDef`` structure at the bottom the existing code " "will have:" msgstr "" -#: ../Doc/howto/clinic.rst:1664 +#: howto/clinic.rst:1664 msgid "" "In this scenario, you should enclose the body of your impl function inside " "the ``#ifdef``, like so::" msgstr "" -#: ../Doc/howto/clinic.rst:1678 +#: howto/clinic.rst:1678 msgid "" "Then, remove those three lines from the ``PyMethodDef`` structure, replacing " "them with the macro Argument Clinic generated:" msgstr "" -#: ../Doc/howto/clinic.rst:1685 +#: howto/clinic.rst:1685 msgid "" "(You can find the real name for this macro inside the generated code. Or you " "can calculate it yourself: it's the name of your function as defined on the " @@ -2667,27 +2857,27 @@ msgid "" "uppercased, and ``\"_METHODDEF\"`` added to the end.)" msgstr "" -#: ../Doc/howto/clinic.rst:1690 +#: howto/clinic.rst:1690 msgid "" "Perhaps you're wondering: what if ``HAVE_FUNCTIONNAME`` isn't defined? The " "``MODULE_FUNCTIONNAME_METHODDEF`` macro won't be defined either!" msgstr "" -#: ../Doc/howto/clinic.rst:1693 +#: howto/clinic.rst:1693 msgid "" "Here's where Argument Clinic gets very clever. It actually detects that the " "Argument Clinic block might be deactivated by the ``#ifdef``. When that " "happens, it generates a little extra code that looks like this::" msgstr "" -#: ../Doc/howto/clinic.rst:1701 +#: howto/clinic.rst:1701 msgid "" "That means the macro always works. If the function is defined, this turns " "into the correct structure, including the trailing comma. If the function " "is undefined, this turns into nothing." msgstr "" -#: ../Doc/howto/clinic.rst:1705 +#: howto/clinic.rst:1705 msgid "" "However, this causes one ticklish problem: where should Argument Clinic put " "this extra code when using the \"block\" output preset? It can't go in the " @@ -2695,24 +2885,24 @@ msgid "" "the whole point!)" msgstr "" -#: ../Doc/howto/clinic.rst:1709 +#: howto/clinic.rst:1709 msgid "" "In this situation, Argument Clinic writes the extra code to the \"buffer\" " "destination. This may mean that you get a complaint from Argument Clinic:" msgstr "" -#: ../Doc/howto/clinic.rst:1717 +#: howto/clinic.rst:1717 msgid "" "When this happens, just open your file, find the ``dump buffer`` block that " "Argument Clinic added to your file (it'll be at the very bottom), then move " "it above the ``PyMethodDef`` structure where that macro is used." msgstr "" -#: ../Doc/howto/clinic.rst:1724 +#: howto/clinic.rst:1724 msgid "Using Argument Clinic in Python files" msgstr "" -#: ../Doc/howto/clinic.rst:1726 +#: howto/clinic.rst:1726 msgid "" "It's actually possible to use Argument Clinic to preprocess Python files. " "There's no point to using Argument Clinic blocks, of course, as the output " @@ -2720,7 +2910,7 @@ msgid "" "Clinic to run Python blocks lets you use Python as a Python preprocessor!" msgstr "" -#: ../Doc/howto/clinic.rst:1731 +#: howto/clinic.rst:1731 msgid "" "Since Python comments are different from C comments, Argument Clinic blocks " "embedded in Python files look slightly different. They look like this:" diff --git a/howto/cporting.po b/howto/cporting.po index f62a2d88fa..8184e93b1d 100644 --- a/howto/cporting.po +++ b/howto/cporting.po @@ -5,7 +5,7 @@ msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: 2019-07-19 23:34+0200\n" +"PO-Revision-Date: 2019-12-13 14:14+0100\n" "Last-Translator: Andy Kwok \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -23,6 +23,8 @@ msgid "" "We recommend the following resources for porting extension modules to Python " "3:" msgstr "" +"Nous recommandons les ressources suivantes pour migrer les modules " +"d'extensions vers Python 3 :" #: ../Doc/howto/cporting.rst:11 msgid "" @@ -30,12 +32,17 @@ msgid "" "guide*, a book on moving from Python 2 to Python 3 in general, guides the " "reader through porting an extension module." msgstr "" +"Le chapitre `Migrating C extension`_ du livre *Supporting Python 3: An in-" +"depth guide* (un livre sur le portage de Python 2 à Python 3) guide le " +"lecteur souhaitant porter un module d'extension." #: ../Doc/howto/cporting.rst:15 msgid "" "The `Porting guide`_ from the *py3c* project provides opinionated " "suggestions with supporting code." msgstr "" +"Le `Porting guide`_ du projet *py3c* fournit des suggestions argumentées " +"avec le code correspondant." #: ../Doc/howto/cporting.rst:17 msgid "" @@ -44,6 +51,10 @@ msgid "" "library then handles differences between various Python versions and " "implementations." msgstr "" +"Les bibliothèques `Cython`_ et `CFFI`_ fournissent des abstractions de l'API " +"C de Python. Les extensions ont généralement besoin d'être réécrites pour " +"profiter de ces bibliothèques, mais elles prennent en charge les différences " +"entre versions et implémentations de Python." #~ msgid "author" #~ msgstr "auteur" @@ -77,7 +88,7 @@ msgstr "" #~ msgstr "" #~ "La façon la plus simple de compiler seulement une section de code pour " #~ "Python 3 est de vérifier si :c:macro:`PY_MAJOR_VERSION` est supérieur ou " -#~ "égal à 3. ::" +#~ "égal à 3. ::" #~ msgid "" #~ "API functions that are not present can be aliased to their equivalents " diff --git a/howto/curses.po b/howto/curses.po index a8a25ada7f..efe4a3eff4 100644 --- a/howto/curses.po +++ b/howto/curses.po @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/howto/curses.rst:5 msgid "Curses Programming with Python" -msgstr "" +msgstr "Programmation *Curses* avec Python" #: ../Doc/howto/curses.rst:0 msgid "Author" @@ -24,7 +24,7 @@ msgstr "Auteur" #: ../Doc/howto/curses.rst:7 msgid "A.M. Kuchling, Eric S. Raymond" -msgstr "" +msgstr "A.M. Kuchling, Eric S. Raymond" #: ../Doc/howto/curses.rst:0 msgid "Release" @@ -32,7 +32,7 @@ msgstr "Version" #: ../Doc/howto/curses.rst:8 msgid "2.04" -msgstr "" +msgstr "2.04" #: ../Doc/howto/curses.rst:None msgid "Abstract" @@ -43,10 +43,12 @@ msgid "" "This document describes how to use the :mod:`curses` extension module to " "control text-mode displays." msgstr "" +"Ce document décrit comment utiliser le module d'extension :mod:`curses` pour " +"contrôler l'affichage en mode texte." #: ../Doc/howto/curses.rst:18 msgid "What is curses?" -msgstr "" +msgstr "Qu'est-ce que *curses* ?" #: ../Doc/howto/curses.rst:20 msgid "" @@ -58,6 +60,14 @@ msgid "" "areas. Different terminals use widely differing codes, and often have their " "own minor quirks." msgstr "" +"La bibliothèque *curses* fournit une capacité de dessin à l'écran et de " +"gestion du clavier indépendante du terminal pour les terminaux textuels ; " +"ces terminaux comprennent les *VT100*, la console Linux et le terminal " +"simulé fourni par divers programmes. Les terminaux d'affichage prennent en " +"charge divers codes de commande pour effectuer des opérations courantes " +"telles que déplacer le curseur, faire défiler l'écran et effacer des zones. " +"Différents terminaux utilisent des codes très différents et ont souvent " +"leurs propres bizarreries mineures." #: ../Doc/howto/curses.rst:28 msgid "" @@ -68,6 +78,15 @@ msgid "" "an X server. Another is tools such as OS installers and kernel " "configurators that may have to run before any graphical support is available." msgstr "" +"Dans un monde d'affichages graphiques, on pourrait se demander « pourquoi " +"s'embêter ? ». Il est vrai que les terminaux d'affichage caractère par " +"caractère sont une technologie obsolète, mais il existe des niches pour " +"lesquelles la possibilité de faire des choses fantaisistes est encore " +"précieuse. En exemple de niche, on peut citer les systèmes de type Unix de " +"petite taille ou embarqués qui n'utilisent pas de serveur X. Il y a aussi " +"les outils tels que les installateurs d'OS et les outils de configuration du " +"noyau qui doivent être exécutés avant qu'un support graphique ne soit " +"disponible." #: ../Doc/howto/curses.rst:36 msgid "" @@ -81,6 +100,16 @@ msgid "" "features, consider a user interface library such as `Urwid `_." msgstr "" +"La bibliothèque *curses* propose des fonctionnalités assez basiques, " +"fournissant au programmeur une abstraction d'affichage contenant plusieurs " +"fenêtres de texte qui ne se chevauchent pas. Le contenu d'une fenêtre peut " +"être modifié de différentes manières — en ajoutant du texte, en l'effaçant " +"ou en changeant son apparence — et la bibliothèque *curses* trouve quels " +"codes de contrôle doivent être envoyés au terminal pour produire le bon " +"résultat. *curses* ne fournit pas beaucoup de concepts d'interface " +"utilisateur tels que boutons, cases à cocher ou dialogues ; si vous avez " +"besoin de telles fonctionnalités, pensez à une bibliothèque d'interface " +"utilisateur comme `Urwid `_." #: ../Doc/howto/curses.rst:46 msgid "" @@ -94,6 +123,16 @@ msgid "" "older versions of curses carried by some proprietary Unixes may not support " "everything, though." msgstr "" +"La bibliothèque *curses* a été écrite à l'origine pour BSD Unix ; les " +"dernières versions *System V* d'Unix d'AT&T ont ajouté de nombreuses " +"améliorations et de nouvelles fonctions. BSD *curses* n'est plus maintenu, " +"ayant été remplacé par *ncurses*, qui est une implémentation open-source de " +"l'interface AT&T. Si vous utilisez un Unix open-source comme Linux ou " +"FreeBSD, votre système utilise presque certainement *ncurses*. Comme la " +"plupart des versions commerciales actuelles d'Unix sont basées sur le code " +"*System V*, toutes les fonctions décrites ici seront probablement " +"disponibles. Les anciennes versions de *curses* portées par certains Unix " +"propriétaires pourraient ne pas gérer toutes les fonctions." #: ../Doc/howto/curses.rst:56 msgid "" @@ -104,10 +143,16 @@ msgid "" "API as curses but provides cursor-addressable text output and full support " "for mouse and keyboard input." msgstr "" +"La version Windows de Python n'inclut pas le module :mod:`curses`. Une " +"version portée appelée `UniCurses `_ est " +"disponible. Vous pouvez également essayer le `Windows console driver `_ écrit par Fredrik Lundh, qui n'utilise " +"pas la même API que *curses*, mais fournit une sortie texte avec gestion du " +"curseur et une prise en charge complète de la souris et du clavier." #: ../Doc/howto/curses.rst:66 msgid "The Python curses module" -msgstr "" +msgstr "Le module *curses* de Python" #: ../Doc/howto/curses.rst:68 msgid "" @@ -119,6 +164,13 @@ msgid "" "`mvwaddstr` into a single :meth:`~curses.window.addstr` method. You'll see " "this covered in more detail later." msgstr "" +"Le module Python est une surcouche assez simple enrobant les fonctions C " +"fournies par *curses* ; si vous êtes déjà familier avec la programmation " +"*curses* en C, il est très facile de transférer cette connaissance à Python. " +"La plus grande différence est que l'interface Python simplifie les choses en " +"fusionnant différentes fonctions C telles que :c:func:`addstr`, :c:func:" +"`mvaddstr` et :c:func:`mvwaddstr` en une seule méthode :meth:`~curses.window." +"addstr`. Nous voyons cela plus en détail ci-après." #: ../Doc/howto/curses.rst:76 msgid "" @@ -127,10 +179,15 @@ msgid "" "that, see the Python library guide's section on ncurses, and the C manual " "pages for ncurses. It will, however, give you the basic ideas." msgstr "" +"Ce guide pratique est une introduction à l'écriture de programmes en mode " +"texte avec *curses* et Python. Il n'essaie pas d'être un guide complet de " +"l'API *curses* ; pour cela, consultez la section du guide de la bibliothèque " +"Python sur *ncurses* et les pages du manuel C pour *ncurses*. Il vous donne " +"cependant les idées de base." #: ../Doc/howto/curses.rst:83 msgid "Starting and ending a curses application" -msgstr "" +msgstr "Lancement et arrêt une application *curses*" #: ../Doc/howto/curses.rst:85 msgid "" @@ -141,6 +198,12 @@ msgid "" "object representing the entire screen; this is usually called ``stdscr`` " "after the name of the corresponding C variable. ::" msgstr "" +"Avant de faire quoi que ce soit, *curses* doit être initialisé. Appelez pour " +"cela la fonction :func:`~curses.initscr`, elle détermine le type de " +"terminal, envoie tous les codes de configuration requis au terminal et crée " +"diverses structures de données internes. En cas de succès, :func:`initscr` " +"renvoie un objet fenêtre représentant l'écran entier ; il est généralement " +"appelé ``stdscr`` d'après le nom de la variable C correspondante. ::" #: ../Doc/howto/curses.rst:96 msgid "" @@ -148,6 +211,10 @@ msgid "" "screen, in order to be able to read keys and only display them under certain " "circumstances. This requires calling the :func:`~curses.noecho` function. ::" msgstr "" +"Habituellement, les applications *curses* désactivent l'écho automatique des " +"touches à l'écran, afin de pouvoir lire les touches et ne les afficher que " +"dans certaines circonstances. Cela nécessite d'appeler la fonction :func:" +"`~curses.noecho`. ::" #: ../Doc/howto/curses.rst:103 msgid "" @@ -155,6 +222,10 @@ msgid "" "requiring the Enter key to be pressed; this is called cbreak mode, as " "opposed to the usual buffered input mode. ::" msgstr "" +"Également, les applications réagissent généralement instantanément aux " +"touches sans qu'il soit nécessaire d'appuyer sur la touche Entrée ; c'est ce " +"qu'on appelle le mode *cbreak*, par opposition au mode d'entrée habituel " +"avec un tampon. ::" #: ../Doc/howto/curses.rst:109 msgid "" @@ -165,12 +236,21 @@ msgid "" "const:`curses.KEY_LEFT`. To get curses to do the job, you'll have to enable " "keypad mode. ::" msgstr "" +"Les terminaux renvoient généralement les touches spéciales, telles que les " +"touches de curseur ou les touches de navigation (Page précédente et Accueil " +"par exemple), comme une séquence d'échappement sur plusieurs octets. Bien " +"que vous puissiez écrire votre application pour vous attendre à de telles " +"séquences et les traiter en conséquence, *curses* peut le faire pour vous, " +"renvoyant une valeur spéciale telle que :const:`curses.KEY_LEFT`. Pour que " +"*curses* fasse le travail, vous devez activer le mode *keypad*. ::" #: ../Doc/howto/curses.rst:118 msgid "" "Terminating a curses application is much easier than starting one. You'll " "need to call::" msgstr "" +"Arrêter une application *curses* est beaucoup plus facile que d'en démarrer " +"une. Appelez ::" #: ../Doc/howto/curses.rst:125 msgid "" @@ -178,6 +258,9 @@ msgid "" "`~curses.endwin` function to restore the terminal to its original operating " "mode. ::" msgstr "" +"pour inverser les réglages du terminal mis en place pour *curses*. Ensuite, " +"appelez la fonction :func:`~curses.enddwin` pour restaurer le terminal dans " +"son mode de fonctionnement original. ::" #: ../Doc/howto/curses.rst:131 msgid "" @@ -187,12 +270,21 @@ msgid "" "raises an uncaught exception. Keys are no longer echoed to the screen when " "you type them, for example, which makes using the shell difficult." msgstr "" +"Un problème courant lors du débogage d'une application *curses* est de se " +"retrouver avec un terminal sans queue ni tête lorsque l'application meurt " +"sans restaurer le terminal à son état précédent. Avec Python, cela arrive " +"souvent lorsque votre code est bogué et lève une exception non interceptée. " +"Les touches ne sont plus répétées à l'écran lorsque vous les tapez, par " +"exemple, ce qui rend l'utilisation de l'interface de commande du *shell* " +"difficile." #: ../Doc/howto/curses.rst:137 msgid "" "In Python you can avoid these complications and make debugging much easier " "by importing the :func:`curses.wrapper` function and using it like this::" msgstr "" +"En Python, vous pouvez éviter ces complications et faciliter le débogage en " +"important la fonction :func:`curses.wrapper` et en l'utilisant comme suit ::" #: ../Doc/howto/curses.rst:156 msgid "" @@ -206,10 +298,19 @@ msgid "" "funny state on exception and you'll be able to read the exception's message " "and traceback." msgstr "" +"La fonction :func:`~curses.wrapper` prend un objet appelable et fait les " +"initialisations décrites ci-dessus, initialisant également les couleurs si " +"la gestion des couleurs est possible. :func:`wrapper` lance l'appelable " +"fourni. Une fois que l'appelable termine, :func:`wrapper` restaure l'état " +"d'origine du terminal. L'appelable est appelé à l'intérieur d'un :keyword:" +"`try`...\\ :keyword:`except` qui capture les exceptions, restaure l'état du " +"terminal, puis relève l'exception. Par conséquent, votre terminal ne reste " +"pas dans un drôle d'état au moment de l'exception et vous pourrez lire le " +"message de l'exception et la trace de la pile d'appels." #: ../Doc/howto/curses.rst:168 msgid "Windows and Pads" -msgstr "" +msgstr "Fenêtres et tampons (*pads* en anglais)" #: ../Doc/howto/curses.rst:170 msgid "" @@ -217,6 +318,10 @@ msgid "" "rectangular area of the screen, and supports methods to display text, erase " "it, allow the user to input strings, and so forth." msgstr "" +"Les fenêtres sont l'abstraction de base de *curses*. Un objet fenêtre " +"représente une zone rectangulaire de l'écran qui gère des méthodes pour " +"afficher du texte, l'effacer, permettre à l'utilisateur de saisir des " +"chaînes, etc." #: ../Doc/howto/curses.rst:174 msgid "" @@ -227,6 +332,12 @@ msgid "" "newwin` function creates a new window of a given size, returning the new " "window object. ::" msgstr "" +"L'objet ``stdscr`` renvoyé par la fonction :func:`~curses.initscr` est un " +"objet fenêtre qui couvre l'écran entier. De nombreux programmes peuvent " +"n'avoir besoin que de cette fenêtre unique, mais vous pouvez diviser l'écran " +"en fenêtres plus petites, afin de les redessiner ou de les effacer " +"séparément. La fonction :func:`~curses.newwin` crée une nouvelle fenêtre " +"d'une taille donnée, renvoyant le nouvel objet fenêtre. ::" #: ../Doc/howto/curses.rst:185 msgid "" @@ -237,6 +348,13 @@ msgid "" "difference from most other computer applications, but it's been part of " "curses since it was first written, and it's too late to change things now." msgstr "" +"Notez que le système de coordonnées utilisé dans *curses* est inhabituel. " +"Les coordonnées sont toujours passées dans l'ordre *y,x* et le coin " +"supérieur gauche d'une fenêtre a pour coordonnées (0,0). Ceci rompt la " +"convention normale des coordonnées où la coordonnée *x* vient en premier. " +"C'est une différence malheureuse par rapport à la plupart des autres " +"applications informatiques, mais elle fait partie de *curses* depuis qu'il a " +"été écrit et il est trop tard pour changer les choses maintenant." #: ../Doc/howto/curses.rst:193 msgid "" @@ -245,6 +363,10 @@ msgid "" "sizes. Legal coordinates will then extend from ``(0,0)`` to ``(curses.LINES " "- 1, curses.COLS - 1)``." msgstr "" +"Votre application peut déterminer la taille de l'écran en utilisant les " +"variables :data:`curses.LINES` et :data:`curses.COLS` pour obtenir les " +"tailles *y* et *x*. Les coordonnées licites s'étendent alors de ``(0,0)`` à " +"``(curses.LINES - 1, curses.COLS - 1)``." #: ../Doc/howto/curses.rst:198 msgid "" @@ -252,6 +374,9 @@ msgid "" "immediately show up on the display. Instead you must call the :meth:" "`~curses.window.refresh` method of window objects to update the screen." msgstr "" +"Quand vous appelez une méthode pour afficher ou effacer du texte, " +"l'affichage ne le reflète pas immédiatement. Vous devez appeler la méthode :" +"meth:`~curses.window.refresh` des objets fenêtre pour mettre à jour l'écran." #: ../Doc/howto/curses.rst:203 msgid "" @@ -263,6 +388,14 @@ msgid "" "and then clears the window, there's no need to send the original text " "because they're never visible." msgstr "" +"C'est parce que *curses* a été écrit du temps des terminaux avec une " +"connexion à 300 bauds seulement ; avec ces terminaux, il était important de " +"minimiser le temps passé à redessiner l'écran. *curses* calcule donc les " +"modifications à apporter à l'écran pour les afficher de la manière la plus " +"efficace au moment où la méthode :meth:`refresh` est appelée. Par exemple, " +"si votre programme affiche du texte dans une fenêtre puis efface cette " +"fenêtre, il n'est pas nécessaire de l'afficher puisqu'il ne sera jamais " +"visible." #: ../Doc/howto/curses.rst:212 msgid "" @@ -273,6 +406,14 @@ msgid "" "redrawn before pausing to wait for user input, by first calling ``stdscr." "refresh()`` or the :meth:`refresh` method of some other relevant window." msgstr "" +"Pratiquement, le fait de devoir indiquer explicitement à *curses* de " +"redessiner une fenêtre ne rend pas la programmation plus compliquée. La " +"plupart des programmes effectuent une rafale de traitements puis attendent " +"qu'une touche soit pressée ou toute autre action de la part de " +"l'utilisateur. Tout ce que vous avez à faire consiste à vous assurer que " +"l'écran a bien été redessiné avant d'attendre une entrée utilisateur, en " +"appelant d'abord ``stdscr.refresh()`` ou la méthode :meth:`refresh` de la " +"fenêtre adéquate." #: ../Doc/howto/curses.rst:220 msgid "" @@ -282,6 +423,12 @@ msgid "" "giving the coordinates of the on-screen area where a subsection of the pad " "will be displayed. ::" msgstr "" +"Un tampon (*pad* en anglais) est une forme spéciale de fenêtre ; il peut " +"être plus grand que l'écran effectif et il est possible de n'afficher qu'une " +"partie du tampon à la fois. La création d'un tampon nécessite de fournir sa " +"hauteur et sa largeur, tandis que pour le rafraîchissement du tampon, vous " +"devez fournir les coordonnées de la zone de l'écran où une partie du tampon " +"sera affichée." #: ../Doc/howto/curses.rst:241 msgid "" @@ -291,6 +438,11 @@ msgid "" "Beyond that difference, pads are exactly like ordinary windows and support " "the same methods." msgstr "" +"L'appel à :meth:`refresh` affiche une partie du tampon dans le rectangle " +"formé par les coins de coordonnées (5,5) et (20,75) de l'écran ; le coin " +"supérieur gauche de la partie affichée a pour coordonnées (0,0) dans le " +"tampon. À part cette différence, les tampons sont exactement comme les " +"fenêtres ordinaires et gèrent les mêmes méthodes." #: ../Doc/howto/curses.rst:247 msgid "" @@ -298,28 +450,39 @@ msgid "" "way to update the screen and prevent annoying screen flicker as each part of " "the screen gets updated. :meth:`refresh` actually does two things:" msgstr "" +"Si vous avez plusieurs fenêtres et tampons sur l'écran, il existe un moyen " +"plus efficace pour rafraîchir l'écran et éviter des scintillements agaçants " +"à chaque mise à jour. :meth:`refresh` effectue en fait deux choses :" #: ../Doc/howto/curses.rst:252 msgid "" "Calls the :meth:`~curses.window.noutrefresh` method of each window to update " "an underlying data structure representing the desired state of the screen." msgstr "" +"elle appelle la méthode :meth:`~curses.window.noutrefresh` de chaque fenêtre " +"pour mettre à jour les données sous-jacentes qui permettent d'obtenir " +"l'affichage voulu ;" #: ../Doc/howto/curses.rst:255 msgid "" "Calls the function :func:`~curses.doupdate` function to change the physical " "screen to match the desired state recorded in the data structure." msgstr "" +"elle appelle la fonction :func:`~curses.doupdate` pour modifier l'écran " +"physique afin de correspondre à l'état défini par les données sous-jacentes." #: ../Doc/howto/curses.rst:258 msgid "" "Instead you can call :meth:`noutrefresh` on a number of windows to update " "the data structure, and then call :func:`doupdate` to update the screen." msgstr "" +"Vous pouvez ainsi appeler :meth:`noutrefresh` sur les fenêtres dont vous " +"voulez mettre à jour des données, puis :func:`doupdate` pour mettre à jour " +"l'écran." #: ../Doc/howto/curses.rst:264 msgid "Displaying Text" -msgstr "" +msgstr "Affichage de texte" #: ../Doc/howto/curses.rst:266 msgid "" @@ -331,6 +494,14 @@ msgid "" "allows specifying a window to use instead of using ``stdscr`` by default. :c:" "func:`mvwaddstr` allows specifying both a window and a coordinate." msgstr "" +"D'un point de vue de programmeur C, *curses* peut parfois ressembler à un " +"enchevêtrement de fonctions, chacune ayant sa subtilité. Par exemple, :c:" +"func:`addstr` affiche une chaîne à la position actuelle du curseur de la " +"fenêtre ``stdscr``, alors que :c:func:`mvaddstr` se déplace d'abord " +"jusqu'aux coordonnées (y,x) avant d'afficher la chaîne. :c:func:`waddstr` " +"est comme :c:func:`addstr`, mais permet de spécifier la fenêtre au lieu " +"d'utiliser ``stdscr`` par défaut. :c:func:`mvwaddstr` permet de spécifier à " +"la fois les coordonnées et la fenêtre." #: ../Doc/howto/curses.rst:275 msgid "" @@ -339,10 +510,14 @@ msgid "" "addstr` accept multiple argument forms. Usually there are four different " "forms." msgstr "" +"Heureusement, l'interface Python masque tous ces détails. ``stdscr`` est un " +"objet fenêtre comme les autres et les méthodes telles que :meth:`~curses." +"window.addstr` acceptent leurs arguments sous de multiples formes, " +"habituellement quatre." #: ../Doc/howto/curses.rst:281 msgid "Form" -msgstr "" +msgstr "Forme" #: ../Doc/howto/curses.rst:281 ../Doc/howto/curses.rst:350 msgid "Description" @@ -350,39 +525,45 @@ msgstr "Description" #: ../Doc/howto/curses.rst:283 msgid "*str* or *ch*" -msgstr "" +msgstr "*str* ou *ch*" #: ../Doc/howto/curses.rst:283 msgid "Display the string *str* or character *ch* at the current position" -msgstr "" +msgstr "Affiche la chaîne *str* ou le caractère *ch* à la position actuelle" #: ../Doc/howto/curses.rst:286 msgid "*str* or *ch*, *attr*" -msgstr "" +msgstr "*str* ou *ch*, *attr*" #: ../Doc/howto/curses.rst:286 msgid "" "Display the string *str* or character *ch*, using attribute *attr* at the " "current position" msgstr "" +"Affiche la chaîne *str* ou le caractère *ch*, en utilisant l'attribut *attr* " +"à la position actuelle" #: ../Doc/howto/curses.rst:290 msgid "*y*, *x*, *str* or *ch*" -msgstr "" +msgstr "*y*, *x*, *str* ou *ch*" #: ../Doc/howto/curses.rst:290 msgid "Move to position *y,x* within the window, and display *str* or *ch*" msgstr "" +"Se déplace à la position *y,x* dans la fenêtre et affiche la chaîne *str* ou " +"le caractère *ch*" #: ../Doc/howto/curses.rst:293 msgid "*y*, *x*, *str* or *ch*, *attr*" -msgstr "" +msgstr "*y*, *x*, *str* ou *ch*, *attr*" #: ../Doc/howto/curses.rst:293 msgid "" "Move to position *y,x* within the window, and display *str* or *ch*, using " "attribute *attr*" msgstr "" +"Se déplace à la position *y,x* dans la fenêtre et affiche la chaîne *str* ou " +"le caractère *ch* en utilisant l'attribut *attr*" #: ../Doc/howto/curses.rst:297 msgid "" @@ -390,6 +571,9 @@ msgid "" "underline, reverse code, or in color. They'll be explained in more detail " "in the next subsection." msgstr "" +"Les attributs permettent de mettre en valeur du texte : gras, souligné, mode " +"vidéo inversé ou en couleur. Nous les voyons plus en détail dans la section " +"suivante." #: ../Doc/howto/curses.rst:302 msgid "" @@ -399,12 +583,21 @@ msgid "" "window's :attr:`encoding` attribute; this defaults to the default system " "encoding as returned by :func:`locale.getpreferredencoding`." msgstr "" +"La méthode :meth:`~curses.window.addstr` prend en argument une chaîne ou une " +"suite d'octets Python. Le contenu des chaînes d'octets est envoyé vers le " +"terminal tel quel. Les chaînes sont encodées en octets en utilisant la " +"valeur de l'attribut :attr:`encoding` de la fenêtre ; c'est par défaut " +"l'encodage du système tel que renvoyé par :func:`locale." +"getpreferredencoding`." #: ../Doc/howto/curses.rst:309 msgid "" "The :meth:`~curses.window.addch` methods take a character, which can be " "either a string of length 1, a bytestring of length 1, or an integer." msgstr "" +"Les méthodes :meth:`~curses.window.addch` prennent un caractère, soit sous " +"la forme d'une chaîne de longueur 1, d'une chaîne d'octets de longueur 1 ou " +"d'un entier." #: ../Doc/howto/curses.rst:312 msgid "" @@ -413,6 +606,11 @@ msgid "" "symbol, and :const:`ACS_ULCORNER` is the upper left corner of a box (handy " "for drawing borders). You can also use the appropriate Unicode character." msgstr "" +"Des constantes sont disponibles pour étendre les caractères ; ces constantes " +"sont des entiers supérieurs à 255. Par exemple, :const:`ACS_PLMINUS` " +"correspond au symbole +/- et :const:`ACS_ULCORNER` correspond au coin en " +"haut et à gauche d'une boîte (utile pour dessiner des encadrements). Vous " +"pouvez aussi utiliser les caractères Unicode adéquats." #: ../Doc/howto/curses.rst:318 msgid "" @@ -424,6 +622,14 @@ msgid "" "some location where it won't be distracting; it can be confusing to have the " "cursor blinking at some apparently random location." msgstr "" +"Windows se souvient de l'endroit où le curseur était positionné lors de la " +"dernière opération, de manière à ce que si vous n'utilisez pas les " +"coordonnées *y,x*, l'affichage se produit au dernier endroit utilisé. Vous " +"pouvez aussi déplacer le curseur avec la méthode ``move(y,x)``. Comme " +"certains terminaux affichent un curseur clignotant, vous pouvez ainsi vous " +"assurer que celui-ci est positionné à un endroit où il ne distrait pas " +"l'utilisateur (il peut être déroutant d'avoir un curseur qui clignote à des " +"endroits apparemment aléatoires)." #: ../Doc/howto/curses.rst:326 msgid "" @@ -434,10 +640,17 @@ msgid "" "attempt to suppress the flashing cursor, and you won't need to worry about " "leaving it in odd locations." msgstr "" +"Si votre application n'a pas besoin d'un curseur clignotant, vous pouvez " +"appeler ``curs_set(False)`` pour le rendre invisible. Par souci de " +"compatibilité avec les anciennes versions de *curses*, il existe la fonction " +"``leaveok(bool)`` qui est un synonyme de :func:`~curses.curs_set`. Quand " +"*bool* vaut ``True``, la bibliothèque *curses* essaie de supprimer le " +"curseur clignotant et vous n'avez plus besoin de vous soucier de le laisser " +"trainer à des endroits bizarres." #: ../Doc/howto/curses.rst:335 msgid "Attributes and Color" -msgstr "" +msgstr "Attributs et couleurs" #: ../Doc/howto/curses.rst:337 msgid "" @@ -446,6 +659,11 @@ msgid "" "to highlight certain words. curses supports this by allowing you to specify " "an attribute for each cell on the screen." msgstr "" +"Les caractères peuvent être affichés de différentes façons. Les lignes de " +"statut des applications en mode texte sont généralement affichées en mode " +"vidéo inversé ; vous pouvez avoir besoin de mettre en valeur certains mots. " +"À ces fins, *curses* vous permet de spécifier un attribut pour chaque " +"caractère à l'écran." #: ../Doc/howto/curses.rst:342 msgid "" @@ -456,6 +674,13 @@ msgid "" "being used, so it's safest to stick to the most commonly available " "attributes, listed here." msgstr "" +"Un attribut est un entier dont chaque bit représente un attribut différent. " +"Vous pouvez essayer d'afficher du texte avec plusieurs attributs définis " +"simultanément mais *curses* ne garantit pas que toutes les combinaisons " +"soient prises en compte ou que le résultat soit visuellement différent. Cela " +"dépend de la capacité de chaque terminal utilisé, il est donc plus sage de " +"se cantonner aux attributs les plus communément utilisés, dont la liste est " +"fournie ci-dessous." #: ../Doc/howto/curses.rst:350 msgid "Attribute" @@ -463,57 +688,59 @@ msgstr "Attribut" #: ../Doc/howto/curses.rst:352 msgid ":const:`A_BLINK`" -msgstr "" +msgstr ":const:`A_BLINK`" #: ../Doc/howto/curses.rst:352 msgid "Blinking text" -msgstr "" +msgstr "Texte clignotant" #: ../Doc/howto/curses.rst:354 msgid ":const:`A_BOLD`" -msgstr "" +msgstr ":const:`A_BOLD`" #: ../Doc/howto/curses.rst:354 msgid "Extra bright or bold text" -msgstr "" +msgstr "Texte en surbrillance ou en gras" #: ../Doc/howto/curses.rst:356 msgid ":const:`A_DIM`" -msgstr "" +msgstr ":const:`A_DIM`" #: ../Doc/howto/curses.rst:356 msgid "Half bright text" -msgstr "" +msgstr "Texte en demi-ton" #: ../Doc/howto/curses.rst:358 msgid ":const:`A_REVERSE`" -msgstr "" +msgstr ":const:`A_REVERSE`" #: ../Doc/howto/curses.rst:358 msgid "Reverse-video text" -msgstr "" +msgstr "Texte en mode vidéo inversé" #: ../Doc/howto/curses.rst:360 msgid ":const:`A_STANDOUT`" -msgstr "" +msgstr ":const:`A_STANDOUT`" #: ../Doc/howto/curses.rst:360 msgid "The best highlighting mode available" -msgstr "" +msgstr "Le meilleur mode de mis en valeur pour le texte" #: ../Doc/howto/curses.rst:362 msgid ":const:`A_UNDERLINE`" -msgstr "" +msgstr ":const:`A_UNDERLINE`" #: ../Doc/howto/curses.rst:362 msgid "Underlined text" -msgstr "" +msgstr "Texte souligné" #: ../Doc/howto/curses.rst:365 msgid "" "So, to display a reverse-video status line on the top line of the screen, " "you could code::" msgstr "" +"Ainsi, pour mettre la ligne de statut située en haut de l'écran en mode " +"vidéo inversé, vous pouvez coder ::" #: ../Doc/howto/curses.rst:372 msgid "" @@ -521,6 +748,9 @@ msgid "" "The most common such terminal is probably the Linux console, followed by " "color xterms." msgstr "" +"La bibliothèque *curses* gère également les couleurs pour les terminaux " +"compatibles. Le plus répandu de ces terminaux est sûrement la console Linux, " +"suivie par *xterm* en couleurs." #: ../Doc/howto/curses.rst:376 msgid "" @@ -533,6 +763,14 @@ msgid "" "to the British spelling, you'll have to resign yourself to misspelling it " "for the sake of these functions.)" msgstr "" +"Pour utiliser les couleurs, vous devez d'abord appeler la fonction :func:" +"`~curses.start_color` juste après avoir appelé :func:`~curses.initscr` afin " +"d'initialiser (la fonction :func:`curses.wrapper` le fait automatiquement). " +"Ensuite, la fonction :func:`~curses.has_colors` renvoie ``True`` si le " +"terminal utilisé gère les couleurs (note : *curses* utilise l'orthographe " +"américaine *color* et non pas l'orthographe britannique ou canadienne " +"*colour* ; si vous êtes habitué à l'orthographe britannique, vous devrez " +"vous résigner à mal l'orthographier tant que vous utilisez *curses*)." #: ../Doc/howto/curses.rst:386 msgid "" @@ -543,10 +781,19 @@ msgid "" "as :const:`A_REVERSE`, but again, such combinations are not guaranteed to " "work on all terminals." msgstr "" +"La bibliothèque *curses* maintient un nombre restreint de paires de " +"couleurs, constituées d'une couleur de texte (*foreground*) et de fond " +"(*background*). Vous pouvez obtenir la valeur des attributs correspondant à " +"une paire de couleur avec la fonction :func:`~curses.color_pair` ; cette " +"valeur peut être combinée bit par bit (avec la fonction *OR*) avec les " +"autres attributs tels que :const:`A_REVERSE`,mais là encore, de telles " +"combinaisons risquent de ne pas fonctionner sur tous les terminaux." #: ../Doc/howto/curses.rst:393 msgid "An example, which displays a line of text using color pair 1::" msgstr "" +"Un exemple d'affichage d'une ligne de texte en utilisant la paire de couleur " +"1 ::" #: ../Doc/howto/curses.rst:398 msgid "" @@ -555,6 +802,11 @@ msgid "" "pair *n*, to foreground color f and background color b. Color pair 0 is " "hard-wired to white on black, and cannot be changed." msgstr "" +"Comme indiqué auparavant, une paire de couleurs est constituée d'une couleur " +"de texte et d'une couleur de fond. La fonction ``init_pair(n, f, b)`` change " +"la définition de la paire de couleurs *n*, en définissant la couleur de " +"texte à *f* et la couleur de fond à *b*. La paire de couleurs 0 est codée en " +"dur à blanc sur noir et ne peut être modifiée." #: ../Doc/howto/curses.rst:403 msgid "" @@ -564,12 +816,20 @@ msgid "" "named constants for each of these colors: :const:`curses.COLOR_BLACK`, :" "const:`curses.COLOR_RED`, and so forth." msgstr "" +"Les couleurs sont numérotées et :func:`start_color` initialise 8 couleurs " +"basiques lors de l'activation du mode en couleurs. Ce sont : 0 pour noir " +"(*black*), 1 pour rouge (*red*), 2 pour vert (*green*), 3 pour jaune " +"(*yellow*), 4 pour bleu *(blue*), 5 pour magenta, 6 pour cyan et 7 pour " +"blanc (*white*). Le module :mod:`curses` définit des constantes nommées pour " +"chacune de ces couleurs : :const:`curses.COLOR_BLACK`, :const:`curses." +"COLOR_RED` et ainsi de suite." #: ../Doc/howto/curses.rst:409 msgid "" "Let's put all this together. To change color 1 to red text on a white " "background, you would call::" msgstr "" +"Testons tout ça. Pour changer la couleur 1 à rouge sur fond blanc, appelez ::" #: ../Doc/howto/curses.rst:414 msgid "" @@ -577,6 +837,9 @@ msgid "" "pair will change to the new colors. You can also display new text in this " "color with::" msgstr "" +"Quand vous modifiez une paire de couleurs, tout le texte déjà affiché qui " +"utilise cette paire de couleur voit les nouvelles couleurs s'appliquer à " +"lui. Vous pouvez aussi afficher du nouveau texte dans cette couleur avec ::" #: ../Doc/howto/curses.rst:420 msgid "" @@ -589,10 +852,19 @@ msgid "" "there. If you're lucky enough to have such a talented terminal, consult " "your system's man pages for more information." msgstr "" +"Les terminaux « de luxe » peuvent définir les couleurs avec des valeurs " +"*RGB*. Cela vous permet de modifier la couleur 1, habituellement rouge, en " +"violet ou bleu voire toute autre couleur selon votre goût. Malheureusement, " +"la console Linux ne gère pas cette fonctionnalité, je suis donc bien " +"incapable de la tester et de vous en fournir un exemple. Vous pouvez " +"vérifier si votre terminal la prend en charge en appelant :func:`~curses." +"can_change_color`, qui renvoie ``True`` en cas de succès. Si vous avez la " +"chance d'avoir un terminal aussi perfectionné, consultez les pages du manuel " +"de votre système pour obtenir plus d'informations." #: ../Doc/howto/curses.rst:431 msgid "User Input" -msgstr "" +msgstr "Entrées de l'utilisateur" #: ../Doc/howto/curses.rst:433 msgid "" @@ -601,10 +873,14 @@ msgid "" "`Urwid `_ have more extensive collections " "of widgets.)" msgstr "" +"La bibliothèque C *curses* ne propose que quelques mécanismes très simples " +"pour les entrées. Le module :mod:`curses` y ajoute un *widget* basique " +"d'entrée de texte (d'autres bibliothèques telles que `Urwid `_ ont un ensemble de *widgets* plus conséquent)." #: ../Doc/howto/curses.rst:438 msgid "There are two methods for getting input from a window:" -msgstr "" +msgstr "Il y a deux méthodes pour obtenir des entrées dans une fenêtre :" #: ../Doc/howto/curses.rst:440 msgid "" @@ -613,6 +889,10 @@ msgid "" "called earlier. You can optionally specify a coordinate to which the cursor " "should be moved before pausing." msgstr "" +":meth:`~curses.window.getch` rafraîchit l'écran et attend que l'utilisateur " +"appuie sur une touche, affichant cette touche si :func:`~curses.echo` a été " +"appelé auparavant. Vous pouvez en option spécifier des coordonnées où " +"positionner le curseur avant la mise en pause ;" #: ../Doc/howto/curses.rst:445 msgid "" @@ -621,6 +901,11 @@ msgid "" "special keys such as function keys return longer strings containing a key " "name such as ``KEY_UP`` or ``^G``." msgstr "" +":meth:`~curses.window.getkey` effectue la même chose mais convertit l'entier " +"en chaîne. Les caractères individuels sont renvoyés en chaînes de longueur 1 " +"alors que les touches spéciales (telles que les touches de fonction) " +"renvoient des chaînes plus longues contenant le nom de la touche (tel que " +"``KEY_UP`` ou ``^G``)." #: ../Doc/howto/curses.rst:450 msgid "" @@ -633,6 +918,15 @@ msgid "" "`getch`; if no input becomes available within a specified delay (measured in " "tenths of a second), curses raises an exception." msgstr "" +"Il est possible de ne pas attendre l'utilisateur en utilisant la méthode de " +"fenêtre :meth:`~curses.window.nodelay`. Après ``nodelay(True)``, les " +"méthodes de fenêtre :meth:`getch` et :meth:`getkey` deviennent non " +"bloquantes. Pour indiquer qu'aucune entrée n'a eu lieu, :meth:`getch` " +"renvoie ``curses.ERR`` (ayant pour valeur −1) et :meth:`getkey` lève une " +"exception. Il existe aussi la fonction :func:`~curses.halfdelay`, qui peut " +"être utilisée pour définir un délai maximal pour chaque :meth:`getch` ; si " +"aucune entrée n'est disponible dans le délai spécifié (mesuré en dixièmes de " +"seconde), *curses* lève une exception." #: ../Doc/howto/curses.rst:460 msgid "" @@ -643,6 +937,13 @@ msgid "" "`curses.KEY_HOME`, or :const:`curses.KEY_LEFT`. The main loop of your " "program may look something like this::" msgstr "" +"La méthode :meth:`getch` renvoie un entier ; s'il est entre 0 et 255, c'est " +"le code ASCII de la touche pressée. Les valeurs supérieures à 255 sont des " +"touches spéciales telles que Page Précédente, Accueil ou les touches du " +"curseur. Vous pouvez comparer la valeur renvoyée aux constantes :const:" +"`curses.KEY_PPAGE`, :const:`curses.KEY_HOME`, :const:`curses.KEY_LEFT`, etc. " +"La boucle principale de votre programme pourrait ressembler à quelque chose " +"comme ::" #: ../Doc/howto/curses.rst:476 msgid "" @@ -653,6 +954,13 @@ msgid "" "arguments and return the same type. For example, :func:`curses.ascii.ctrl` " "returns the control character corresponding to its argument." msgstr "" +"Le module :mod:`curses.ascii` fournit des fonctions pour déterminer si " +"l'entier ou la chaîne de longueur 1 passés en arguments font partie de la " +"classe ASCII ; elles peuvent s'avérer utile pour écrire du code plus lisible " +"dans ce genre de boucles. Il fournit également des fonctions de conversion " +"qui prennent un entier ou une chaîne de longueur 1 en entrée et renvoient le " +"type correspondant au nom de la fonction. Par exemple, :func:`curses.ascii." +"ctrl` renvoie le caractère de contrôle correspondant à son paramètre." #: ../Doc/howto/curses.rst:483 msgid "" @@ -662,6 +970,11 @@ msgid "" "key, which terminates the string. It can optionally be limited to a fixed " "number of characters. ::" msgstr "" +"Il existe aussi une méthode pour récupérer une chaîne entière, :meth:" +"`~curses.window.getstr`. Elle n'est pas beaucoup utilisée car son utilité " +"est limitée : les seules touches d'édition disponibles sont le retour " +"arrière et la touche Entrée, qui termine la chaîne. Elle peut, en option, " +"être limitée à un nombre fixé de caractères. ::" #: ../Doc/howto/curses.rst:494 msgid "" @@ -670,15 +983,22 @@ msgid "" "Textbox` class support editing with input validation and gathering the edit " "results either with or without trailing spaces. Here's an example::" msgstr "" +"Le module :mod:`curses.textpad` fournit un type de boîte texte qui gère des " +"touches de fonctions à la façon d'\\ *Emacs*. Plusieurs méthodes de la " +"classe :class:`~curses.textpad.Textbox` gèrent l'édition avec la validation " +"des entrées et le regroupement de l'entrée avec ou sans les espaces de début " +"et de fin. Par exemple ::" #: ../Doc/howto/curses.rst:518 msgid "" "See the library documentation on :mod:`curses.textpad` for more details." msgstr "" +"Consultez la documentation de la bibliothèque pour plus de détails sur :mod:" +"`curses.textpad`." #: ../Doc/howto/curses.rst:522 msgid "For More Information" -msgstr "" +msgstr "Pour aller plus loin" #: ../Doc/howto/curses.rst:524 msgid "" @@ -687,6 +1007,11 @@ msgid "" "Python library page for the :mod:`curses` module is now reasonably " "complete. You should browse it next." msgstr "" +"Ce guide pratique ne couvre pas certains sujets avancés, tels que la lecture " +"du contenu de l'écran ou la capture des événements relatifs à la souris dans " +"une instance *xterm*, mais la page de la bibliothèque Python du module :mod:" +"`curses` est maintenant suffisamment complète. Nous vous encourageons à la " +"parcourir." #: ../Doc/howto/curses.rst:529 msgid "" @@ -696,6 +1021,12 @@ msgid "" "quirks, and provide complete lists of all the functions, attributes, and :" "const:`ACS_\\*` characters available to you." msgstr "" +"Si vous vous posez des questions sur le fonctionnement précis de fonctions " +"*curses*, consultez les pages de manuel de l'implémentation *curses* de " +"votre système, que ce soit *ncurses* ou une version propriétaire Unix. Les " +"pages de manuel documentent toutes les bizarreries et vous donneront les " +"listes complètes des fonctions, attributs et codes :const:`ACS_\\*` des " +"caractères disponibles." #: ../Doc/howto/curses.rst:536 msgid "" @@ -706,21 +1037,34 @@ msgid "" "would be welcome; see `the Python Developer's Guide `_ to learn more about submitting patches to Python." msgstr "" +"Étant donné que l'API *curses* est si volumineuse, certaines fonctions ne " +"sont pas prises en charge dans l'interface Python. Souvent, ce n'est pas " +"parce qu'elles sont difficiles à implémenter, mais parce que personne n'en a " +"eu encore besoin. De plus, Python ne prend pas encore en charge la " +"bibliothèque de gestion des menus associée à *ncurses*. Les correctifs " +"ajoutant cette prise en charge seraient bienvenus ; reportez-vous au `guide " +"du développeur Python `_ pour apprendre " +"comment soumettre des améliorations à Python." #: ../Doc/howto/curses.rst:544 msgid "" "`Writing Programs with NCURSES `_: a lengthy tutorial for C programmers." msgstr "" +"`Writing Programs with NCURSES `_ : un long tutoriel pour les programmeurs C (ressource en " +"anglais)." #: ../Doc/howto/curses.rst:546 msgid "`The ncurses man page `_" -msgstr "" +msgstr "`La page de manuel ncurses `_" #: ../Doc/howto/curses.rst:547 msgid "" "`The ncurses FAQ `_" msgstr "" +"`La FAQ ncurses `_ " +"(ressource en anglais)" #: ../Doc/howto/curses.rst:548 msgid "" @@ -728,6 +1072,9 @@ msgid "" "v=eN1eZtjLEnU>`_: video of a PyCon 2013 talk on controlling terminals using " "curses or Urwid." msgstr "" +"`\"Use curses... don't swear\" `_ : vidéo d'une conférence lors de la PyCon 2013 sur la " +"gestion des terminaux à l'aide de *curses* et *Urwid* (vidéo en anglais)." #: ../Doc/howto/curses.rst:550 msgid "" @@ -735,3 +1082,6 @@ msgid "" "console-applications-with-urwid>`_: video of a PyCon CA 2012 talk " "demonstrating some applications written using Urwid." msgstr "" +"`\"Console Applications with Urwid\" `_ : vidéo d'une conférence lors de PyCon CA " +"2012 montrant quelques applications utilisant *Urwid*." diff --git a/howto/descriptor.po b/howto/descriptor.po index d17c2064b7..71a617253a 100644 --- a/howto/descriptor.po +++ b/howto/descriptor.po @@ -6,14 +6,14 @@ msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: 2019-12-12 16:19+0100\n" -"Last-Translator: Julien Palard \n" +"PO-Revision-Date: 2020-03-28 20:32+0100\n" +"Last-Translator: Mathieu Dupuy \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.1.1\n" +"X-Generator: Poedit 2.3\n" #: ../Doc/howto/descriptor.rst:3 msgid "Descriptor HowTo Guide" @@ -233,13 +233,13 @@ msgid "" "The full C implementation can be found in :c:func:" "`PyObject_GenericGetAttr()` in :source:`Objects/object.c`." msgstr "" -"Pour les objets, la machinerie est en :meth:`object.__getattribute__` qui " +"Pour les objets, la machinerie est dans :meth:`object.__getattribute__` qui " "transforme ``b.x`` en ``type(b).__dict__['x'].__get__(b, type(b)]``. " "L'implémentation fonctionne à travers une chaîne de priorité qui donne la " "priorité aux descripteurs de données sur les variables d'instance, la " "priorité aux variables d'instance sur les descripteurs *non-data*, et " "attribue la priorité la plus faible à :meth:`__getattr__` si fourni. " -"L'implémentation complète de C peut être trouvée dans :c:func:" +"L'implémentation complète en C peut être trouvée dans :c:func:" "`PyObject_GenericGetAttr()` dans :source:`Objects/object.c`." #: ../Doc/howto/descriptor.rst:99 @@ -250,7 +250,7 @@ msgid "" msgstr "" "Pour les classes, la machinerie est dans :meth:`type.__getattribute__` qui " "transforme ``B.x`` en ``B.__dict__['x'].__get__(None, B)``. En Python pur, " -"il ressemble à ::" +"cela ressemble à ::" #: ../Doc/howto/descriptor.rst:110 msgid "The important points to remember are:" @@ -263,7 +263,7 @@ msgstr "les descripteurs sont appelés par la méthode :meth:`__getattribute__`" #: ../Doc/howto/descriptor.rst:113 msgid "overriding :meth:`__getattribute__` prevents automatic descriptor calls" msgstr "" -"redéfinition :meth:`__getattribute____` empêche les appels automatiques de " +"redéfinir :meth:`__getattribute____` empêche les appels automatiques de " "descripteurs" #: ../Doc/howto/descriptor.rst:114 @@ -287,7 +287,6 @@ msgstr "" "d'instance." #: ../Doc/howto/descriptor.rst:119 -#, fuzzy msgid "" "The object returned by ``super()`` also has a custom :meth:" "`__getattribute__` method for invoking descriptors. The attribute lookup " @@ -297,13 +296,13 @@ msgid "" "not in the dictionary, ``m`` reverts to a search using :meth:`object." "__getattribute__`." msgstr "" -"L'objet retourné par ``super()`` a aussi une méthode personnalisée :meth:" -"`__getattribute__` pour appeler les descripteurs. L'appel ``super(B, obj)." -"m()`` recherche ``obj.__class__.__mro__`` pour la classe de base ``A`` " -"immédiatement après ``B`` et renvoie ensuite ``A.__dict__['m'].__get__(obj, " -"B)``. Si ce n'est pas un descripteur, ``m`` est retourné inchangé. Si ce " -"n'est pas dans le dictionnaire, ``m`` renvoie à une recherche avec :meth:" -"`object.__getattribute__`." +"L'objet renvoyé par ``super()`` a également une méthode personnalisée :meth:" +"`__getattribute__` pour invoquer des descripteurs. La recherche d'attribut " +"``super(B, obj).m`` recherche dans ``obj.__class__.__mro__`` la classe qui " +"suit immédiatement B, appelons la A, et renvoie ``A.__dict__['m']." +"__get__(obj, B)``. Si ce n'est pas un descripteur, ``m`` est renvoyé " +"inchangé. S'il n'est pas dans le dictionnaire, la recherche de ``m`` revient " +"à une recherche utilisant :meth:`object.__getattribute__`." #: ../Doc/howto/descriptor.rst:126 msgid "" diff --git a/howto/functional.po b/howto/functional.po index c254eb1c95..57afa0aa86 100644 --- a/howto/functional.po +++ b/howto/functional.po @@ -5,37 +5,37 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-15 18:54+0100\n" -"PO-Revision-Date: 2019-10-30 00:11+0100\n" -"Last-Translator: \n" +"POT-Creation-Date: 2020-02-04 10:00+0100\n" +"PO-Revision-Date: 2020-04-30 11:11+0200\n" +"Last-Translator: Antoine Wecxsteen\n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2.3\n" +"X-Generator: Poedit 2.2.4\n" -#: ../Doc/howto/functional.rst:3 +#: howto/functional.rst:3 msgid "Functional Programming HOWTO" msgstr "Guide pratique : programmation fonctionnelle" -#: ../Doc/howto/functional.rst:0 +#: howto/functional.rst:0 msgid "Author" msgstr "Auteur" -#: ../Doc/howto/functional.rst:5 +#: howto/functional.rst:5 msgid "A. M. Kuchling" msgstr "A. M. Kuchling" -#: ../Doc/howto/functional.rst:0 +#: howto/functional.rst:0 msgid "Release" msgstr "Version" -#: ../Doc/howto/functional.rst:6 +#: howto/functional.rst:6 msgid "0.32" msgstr "0.32" -#: ../Doc/howto/functional.rst:8 +#: howto/functional.rst:8 msgid "" "In this document, we'll take a tour of Python's features suitable for " "implementing programs in a functional style. After an introduction to the " @@ -49,11 +49,11 @@ msgstr "" "outils tels que les :term:`iterator`\\s et les :term:`generator`\\s ainsi " "que les modules :mod:`itertools` et :mod:`functools`." -#: ../Doc/howto/functional.rst:16 +#: howto/functional.rst:16 msgid "Introduction" msgstr "Introduction" -#: ../Doc/howto/functional.rst:18 +#: howto/functional.rst:18 msgid "" "This section explains the basic concept of functional programming; if you're " "just interested in learning about Python language features, skip to the next " @@ -64,26 +64,28 @@ msgstr "" "cette partie et lire la section suivante sur les :ref:`functional-howto-" "iterators`." -#: ../Doc/howto/functional.rst:22 +#: howto/functional.rst:22 msgid "" "Programming languages support decomposing problems in several different ways:" msgstr "" "Les langages de programmation permettent de traiter des problèmes selon " "différentes approches :" -#: ../Doc/howto/functional.rst:24 +# Énumération +#: howto/functional.rst:24 msgid "" "Most programming languages are **procedural**: programs are lists of " "instructions that tell the computer what to do with the program's input. C, " "Pascal, and even Unix shells are procedural languages." msgstr "" -"La plupart des langages de programmation suivent une logique " +"la plupart des langages de programmation suivent une logique " "**procédurale** : les programmes sont constitués de listes d'instructions " "qui détaillent les opérations que l'ordinateur doit appliquer aux entrées du " "programme. C, Pascal ou encore les interpréteurs de commandes Unix sont des " -"langages procéduraux." +"langages procéduraux ;" -#: ../Doc/howto/functional.rst:28 +# Énumération +#: howto/functional.rst:28 msgid "" "In **declarative** languages, you write a specification that describes the " "problem to be solved, and the language implementation figures out how to " @@ -92,15 +94,16 @@ msgid "" "to retrieve, and the SQL engine decides whether to scan tables or use " "indexes, which subclauses should be performed first, etc." msgstr "" -"Les langages **déclaratifs** permettent d'écrire la spécification du " +"les langages **déclaratifs** permettent d'écrire la spécification du " "problème et laissent l'implémentation du langage trouver une façon efficace " "de réaliser les calculs nécessaires à sa résolution. SQL est un langage " "déclaratif que vous êtes susceptible de connaître ; une requête SQL décrit " "le jeu de données que vous souhaitez récupérer et le moteur SQL choisit de " "parcourir les tables ou d'utiliser les index, l'ordre de résolution des sous-" -"clauses, etc." +"clauses, etc. ;" -#: ../Doc/howto/functional.rst:35 +# Énumération +#: howto/functional.rst:35 msgid "" "**Object-oriented** programs manipulate collections of objects. Objects " "have internal state and support methods that query or modify this internal " @@ -108,13 +111,14 @@ msgid "" "and Python are languages that support object-oriented programming, but don't " "force the use of object-oriented features." msgstr "" -"Les programmes **orientés objet** manipulent des ensembles d'objets. Ceux-ci " +"les programmes **orientés objet** manipulent des ensembles d'objets. Ceux-ci " "possèdent un état interne et des méthodes qui interrogent ou modifient cet " "état d'une façon ou d'une autre. Smalltalk et Java sont deux langages " "orientés objet. C++ et Python gèrent la programmation orientée objet mais " -"n'imposent pas l'utilisation de telles fonctionnalités." +"n'imposent pas l'utilisation de telles fonctionnalités ;" -#: ../Doc/howto/functional.rst:41 +# Énumération +#: howto/functional.rst:41 msgid "" "**Functional** programming decomposes a problem into a set of functions. " "Ideally, functions only take inputs and produce outputs, and don't have any " @@ -122,14 +126,14 @@ msgid "" "known functional languages include the ML family (Standard ML, OCaml, and " "other variants) and Haskell." msgstr "" -"La programmation **fonctionnelle** implique de décomposer un problème en un " +"la programmation **fonctionnelle** implique de décomposer un problème en un " "ensemble de fonctions. Dans l'idéal, les fonctions produisent des sorties à " "partir d'entrées et ne possède pas d'état interne qui soit susceptible de " "modifier la sortie pour une entrée donnée. Les langages fonctionnels les " "plus connus sont ceux de la famille ML (Standard ML, OCaml et autres) et " -"Haskell." +"Haskell ;" -#: ../Doc/howto/functional.rst:47 +#: howto/functional.rst:47 msgid "" "The designers of some computer languages choose to emphasize one particular " "approach to programming. This often makes it difficult to write programs " @@ -152,7 +156,7 @@ msgstr "" "exemple, l'interface graphique peut suivre le paradigme orienté objet tandis " "que la logique de traitement est procédurale ou fonctionnelle." -#: ../Doc/howto/functional.rst:58 +#: howto/functional.rst:58 msgid "" "In a functional program, input flows through a set of functions. Each " "function operates on its input and produces some output. Functional style " @@ -172,7 +176,7 @@ msgstr "" "qu'aucune structure de données n'est mise à jour lors de l'exécution du " "programme ; chaque sortie d'une fonction ne dépend que de son entrée." -#: ../Doc/howto/functional.rst:66 +#: howto/functional.rst:66 msgid "" "Some languages are very strict about purity and don't even have assignment " "statements such as ``a=3`` or ``c = a + b``, but it's difficult to avoid all " @@ -192,7 +196,7 @@ msgstr "" "bord (afficher du texte sur l'écran et mettre en pause l'exécution du " "programme)." -#: ../Doc/howto/functional.rst:74 +#: howto/functional.rst:74 msgid "" "Python programs written in functional style usually won't go to the extreme " "of avoiding all I/O or all assignments; instead, they'll provide a " @@ -203,13 +207,13 @@ msgid "" msgstr "" "Les programmes Python écrits dans un style fonctionnel ne poussent " "généralement pas le curseur de la pureté à l'extrême en interdisant toute " -"entrée/sortie ou les assignations ; ils exhibent une interface fonctionnelle " +"entrée-sortie ou les assignations ; ils exhibent une interface fonctionnelle " "en apparence mais utilisent des fonctionnalités impures en interne. Par " "exemple, l'implémentation d'une fonction peut assigner dans des variables " "locales mais ne modifiera pas de variable globale et n'aura pas d'autre " "effet de bord." -#: ../Doc/howto/functional.rst:80 +#: howto/functional.rst:80 msgid "" "Functional programming can be considered the opposite of object-oriented " "programming. Objects are little capsules containing some internal state " @@ -230,7 +234,7 @@ msgstr "" "qui prennent en argument et renvoient des instances représentants des objets " "de votre application (courriers électroniques, transactions, etc.)." -#: ../Doc/howto/functional.rst:89 +#: howto/functional.rst:89 msgid "" "Functional design may seem like an odd constraint to work under. Why should " "you avoid objects and side effects? There are theoretical and practical " @@ -240,27 +244,31 @@ msgstr "" "Pourquoi vouloir éviter les objets et les effets de bord ? Il existe des " "avantages théoriques et pratiques au style fonctionnel :" -#: ../Doc/howto/functional.rst:93 +# Énumération +#: howto/functional.rst:93 msgid "Formal provability." -msgstr "Preuves formelles." +msgstr "preuves formelles ;" -#: ../Doc/howto/functional.rst:94 +# Énumération +#: howto/functional.rst:94 msgid "Modularity." -msgstr "Modularité." +msgstr "modularité ;" -#: ../Doc/howto/functional.rst:95 +# Énumération +#: howto/functional.rst:95 msgid "Composability." -msgstr "Composabilité." +msgstr "composabilité ;" -#: ../Doc/howto/functional.rst:96 +# Énumération +#: howto/functional.rst:96 msgid "Ease of debugging and testing." -msgstr "Facilité de débogage et de test." +msgstr "facilité de débogage et de test." -#: ../Doc/howto/functional.rst:100 +#: howto/functional.rst:100 msgid "Formal provability" msgstr "Preuves formelles" -#: ../Doc/howto/functional.rst:102 +#: howto/functional.rst:102 msgid "" "A theoretical benefit is that it's easier to construct a mathematical proof " "that a functional program is correct." @@ -268,7 +276,7 @@ msgstr "" "Un avantage théorique est qu'il plus facile de construire une preuve " "mathématique de l'exactitude d'un programme fonctionnel." -#: ../Doc/howto/functional.rst:105 +#: howto/functional.rst:105 msgid "" "For a long time researchers have been interested in finding ways to " "mathematically prove programs correct. This is different from testing a " @@ -284,7 +292,7 @@ msgstr "" "d'établir une preuve rigoureuse que le programme produit le bon résultat " "pour toutes les entrées possibles." -#: ../Doc/howto/functional.rst:112 +#: howto/functional.rst:112 msgid "" "The technique used to prove programs correct is to write down " "**invariants**, properties of the input data and of the program's variables " @@ -303,7 +311,7 @@ msgstr "" "programme. À ce stade, les invariants doivent alors correspondre aux " "propriétés que l'on souhaite que la sortie du programme vérifie." -#: ../Doc/howto/functional.rst:120 +#: howto/functional.rst:120 msgid "" "Functional programming's avoidance of assignments arose because assignments " "are difficult to handle with this technique; assignments can break " @@ -315,7 +323,7 @@ msgstr "" "assignations peuvent rompre des invariants qui étaient vrais auparavant sans " "pour autant produire de nouveaux invariants qui pourraient être propagés." -#: ../Doc/howto/functional.rst:125 +#: howto/functional.rst:125 msgid "" "Unfortunately, proving programs correct is largely impractical and not " "relevant to Python software. Even trivial programs require proofs that are " @@ -337,11 +345,11 @@ msgstr "" "erreur et que vous pensez désormais, à tort, que vous avez prouvé que votre " "programme est correct." -#: ../Doc/howto/functional.rst:136 +#: howto/functional.rst:136 msgid "Modularity" msgstr "Modularité" -#: ../Doc/howto/functional.rst:138 +#: howto/functional.rst:138 msgid "" "A more practical benefit of functional programming is that it forces you to " "break apart your problem into small pieces. Programs are more modular as a " @@ -356,15 +364,15 @@ msgstr "" "grosse fonction qui réalise une transformation complexe. Les petites " "fonctions sont plus faciles à lire et à vérifier." -#: ../Doc/howto/functional.rst:146 +#: howto/functional.rst:146 msgid "Ease of debugging and testing" msgstr "Facilité de débogage et de test" -#: ../Doc/howto/functional.rst:148 +#: howto/functional.rst:148 msgid "Testing and debugging a functional-style program is easier." msgstr "Tester et déboguer un programme fonctionnel est plus facile." -#: ../Doc/howto/functional.rst:150 +#: howto/functional.rst:150 msgid "" "Debugging is simplified because functions are generally small and clearly " "specified. When a program doesn't work, each function is an interface point " @@ -378,7 +386,7 @@ msgstr "" "valeurs sont justes. Vous pouvez observer les entrées intermédiaires et les " "sorties afin d'isoler rapidement la fonction qui est à l'origine du bogue." -#: ../Doc/howto/functional.rst:155 +#: howto/functional.rst:155 msgid "" "Testing is easier because each function is a potential subject for a unit " "test. Functions don't depend on system state that needs to be replicated " @@ -391,11 +399,11 @@ msgstr "" "à la place vous n'avez qu'à produire une entrée synthétique et vérifier que " "le résultat correspond à ce que vous attendez." -#: ../Doc/howto/functional.rst:162 +#: howto/functional.rst:162 msgid "Composability" msgstr "Composabilité" -#: ../Doc/howto/functional.rst:164 +#: howto/functional.rst:164 msgid "" "As you work on a functional-style program, you'll write a number of " "functions with varying inputs and outputs. Some of these functions will be " @@ -414,7 +422,7 @@ msgstr "" "contenu d'un fichier à partir de son nom peuvent être utiles dans de " "nombreuses situations." -#: ../Doc/howto/functional.rst:171 +#: howto/functional.rst:171 msgid "" "Over time you'll form a personal library of utilities. Often you'll " "assemble new programs by arranging existing functions in a new configuration " @@ -425,11 +433,11 @@ msgstr "" "agençant des fonctions existantes dans une nouvelle configuration et en " "écrivant quelques fonctions spécifiques à votre objectif en cours." -#: ../Doc/howto/functional.rst:179 +#: howto/functional.rst:179 msgid "Iterators" msgstr "Itérateurs" -#: ../Doc/howto/functional.rst:181 +#: howto/functional.rst:181 msgid "" "I'll start by looking at a Python language feature that's an important " "foundation for writing functional-style programs: iterators." @@ -437,7 +445,7 @@ msgstr "" "Commençons par jeter un œil à une des fonctionnalités les plus importantes " "pour écrire en style fonctionnel avec Python : les itérateurs." -#: ../Doc/howto/functional.rst:184 +#: howto/functional.rst:184 msgid "" "An iterator is an object representing a stream of data; this object returns " "the data one element at a time. A Python iterator must support a method " @@ -455,7 +463,7 @@ msgstr "" "`StopIteration`. Toutefois, ce n'est pas indispensable ; il est envisageable " "d'écrire un itérateur qui produit un flux infini de données." -#: ../Doc/howto/functional.rst:192 +#: howto/functional.rst:192 msgid "" "The built-in :func:`iter` function takes an arbitrary object and tries to " "return an iterator that will return the object's contents or elements, " @@ -471,11 +479,11 @@ msgstr "" "listes et les dictionnaires. On appelle :term:`iterable` un objet pour " "lequel il est possible de construire un itérateur." -#: ../Doc/howto/functional.rst:199 +#: howto/functional.rst:199 msgid "You can experiment with the iteration interface manually:" msgstr "Vous pouvez expérimenter avec l'interface d'itération manuellement :" -#: ../Doc/howto/functional.rst:217 +#: howto/functional.rst:217 msgid "" "Python expects iterable objects in several different contexts, the most " "important being the :keyword:`for` statement. In the statement ``for X in " @@ -487,7 +495,7 @@ msgstr "" "``for X in Y``, Y doit être un itérateur ou un objet pour lequel :func:" "`iter` peut générer un itérateur. Ces deux expressions sont équivalentes ::" -#: ../Doc/howto/functional.rst:229 +#: howto/functional.rst:229 msgid "" "Iterators can be materialized as lists or tuples by using the :func:`list` " "or :func:`tuple` constructor functions:" @@ -495,7 +503,7 @@ msgstr "" "Les itérateurs peuvent être transformés en listes ou en tuples en appelant " "les constructeurs respectifs :func:`list` et :func:`tuple` :" -#: ../Doc/howto/functional.rst:238 +#: howto/functional.rst:238 msgid "" "Sequence unpacking also supports iterators: if you know an iterator will " "return N elements, you can unpack them into an N-tuple:" @@ -504,11 +512,11 @@ msgstr "" "vous savez qu'un itérateur renvoie N éléments, vous pouvez les dépaqueter " "dans un n-uplet :" -#: ../Doc/howto/functional.rst:247 +#: howto/functional.rst:247 msgid "" "Built-in functions such as :func:`max` and :func:`min` can take a single " -"iterator argument and will return the largest or smallest element. The ``" -"\"in\"`` and ``\"not in\"`` operators also support iterators: ``X in " +"iterator argument and will return the largest or smallest element. The " +"``\"in\"`` and ``\"not in\"`` operators also support iterators: ``X in " "iterator`` is true if X is found in the stream returned by the iterator. " "You'll run into obvious problems if the iterator is infinite; :func:`max`, :" "func:`min` will never return, and if the element X never appears in the " @@ -520,10 +528,10 @@ msgstr "" "itérateurs : ``X in iterator`` est vrai si X a été trouvé dans le flux " "renvoyé par l'itérateur. Vous rencontrerez bien sûr des problèmes si " "l'itérateur est infini : :func:`max`, :func:`min` ne termineront jamais et, " -"si l'élément X n'apparaît pas dans le flux, les opérateurs ``\"in\"`` et ``" -"\"not in\"`` non plus." +"si l'élément X n'apparaît pas dans le flux, les opérateurs ``\"in\"`` et " +"``\"not in\"`` non plus." -#: ../Doc/howto/functional.rst:255 +#: howto/functional.rst:255 msgid "" "Note that you can only go forward in an iterator; there's no way to get the " "previous element, reset the iterator, or make a copy of it. Iterator " @@ -542,11 +550,11 @@ msgstr "" "devez utiliser le même flux pour autre chose, vous devrez en créer un " "nouveau." -#: ../Doc/howto/functional.rst:265 +#: howto/functional.rst:265 msgid "Data Types That Support Iterators" msgstr "Types de données itérables" -#: ../Doc/howto/functional.rst:267 +#: howto/functional.rst:267 msgid "" "We've already seen how lists and tuples support iterators. In fact, any " "Python sequence type, such as strings, will automatically support creation " @@ -556,7 +564,7 @@ msgstr "" "itérateurs. En réalité, n'importe quel type de séquence en Python, par " "exemple les chaînes de caractères, sont itérables." -#: ../Doc/howto/functional.rst:271 +#: howto/functional.rst:271 msgid "" "Calling :func:`iter` on a dictionary returns an iterator that will loop over " "the dictionary's keys::" @@ -564,7 +572,7 @@ msgstr "" "Appeler :func:`iter` sur un dictionnaire renvoie un itérateur qui parcourt " "l'ensemble de ses clés ::" -#: ../Doc/howto/functional.rst:291 +#: howto/functional.rst:291 msgid "" "Note that starting with Python 3.7, dictionary iteration order is guaranteed " "to be the same as the insertion order. In earlier versions, the behaviour " @@ -575,7 +583,7 @@ msgstr "" "clés. Dans les versions précédentes, ce comportement n'était pas spécifié et " "pouvait varier en fonction de l'implémentation." -#: ../Doc/howto/functional.rst:295 +#: howto/functional.rst:295 msgid "" "Applying :func:`iter` to a dictionary always loops over the keys, but " "dictionaries have methods that return other iterators. If you want to " @@ -588,7 +596,7 @@ msgstr "" "dictionnaire, vous pouvez explicitement appeler les méthodes :meth:`~dict." "values` ou :meth:`~dict.items` pour obtenir l'itérateur idoine." -#: ../Doc/howto/functional.rst:301 +#: howto/functional.rst:301 msgid "" "The :func:`dict` constructor can accept an iterator that returns a finite " "stream of ``(key, value)`` tuples:" @@ -596,7 +604,7 @@ msgstr "" "Le constructeur :func:`dict` accepte de prendre un itérateur en argument qui " "renvoie un flux fini de pairs ``(clé, valeur)`` :" -#: ../Doc/howto/functional.rst:308 +#: howto/functional.rst:308 msgid "" "Files also support iteration by calling the :meth:`~io.TextIOBase.readline` " "method until there are no more lines in the file. This means you can read " @@ -607,7 +615,7 @@ msgstr "" "fichier. Cela signifie que vous pouvez lire l'intégralité d'un fichier de la " "façon suivante ::" -#: ../Doc/howto/functional.rst:316 +#: howto/functional.rst:316 msgid "" "Sets can take their contents from an iterable and let you iterate over the " "set's elements::" @@ -615,11 +623,11 @@ msgstr "" "Les ensembles peuvent être créés à partir d'un itérable et autorisent " "l'itération sur les éléments de l'ensemble ::" -#: ../Doc/howto/functional.rst:326 +#: howto/functional.rst:326 msgid "Generator expressions and list comprehensions" msgstr "Expressions génératrices et compréhension de listes" -#: ../Doc/howto/functional.rst:328 +#: howto/functional.rst:328 msgid "" "Two common operations on an iterator's output are 1) performing some " "operation for every element, 2) selecting a subset of elements that meet " @@ -634,7 +642,7 @@ msgstr "" "caractères blancs à la fin de chaque ligne ou extraire toutes les chaînes " "contenant une sous-chaîne précise." -#: ../Doc/howto/functional.rst:334 +#: howto/functional.rst:334 msgid "" "List comprehensions and generator expressions (short form: \"listcomps\" and " "\"genexps\") are a concise notation for such operations, borrowed from the " @@ -647,14 +655,14 @@ msgstr "" "retirer tous les caractères blancs initiaux et finaux d'un flux de chaînes " "de caractères à l'aide du code suivant ::" -#: ../Doc/howto/functional.rst:347 +#: howto/functional.rst:347 msgid "" "You can select only certain elements by adding an ``\"if\"`` condition::" msgstr "" "Vous pouvez ne sélectionner que certains éléments en ajoutant une condition " "« ``if`` » ::" -#: ../Doc/howto/functional.rst:352 +#: howto/functional.rst:352 msgid "" "With a list comprehension, you get back a Python list; ``stripped_list`` is " "a list containing the resulting lines, not an iterator. Generator " @@ -672,7 +680,7 @@ msgstr "" "sur des itérateurs infinis ou produisant une très grande quantité de " "données. Les expressions génératrices sont préférables dans ce cas." -#: ../Doc/howto/functional.rst:359 +#: howto/functional.rst:359 msgid "" "Generator expressions are surrounded by parentheses (\"()\") and list " "comprehensions are surrounded by square brackets (\"[]\"). Generator " @@ -682,7 +690,7 @@ msgstr "" "compréhensions de listes entre crochets (« [] »). Les expressions " "génératrices sont de la forme ::" -#: ../Doc/howto/functional.rst:372 +#: howto/functional.rst:372 msgid "" "Again, for a list comprehension only the outside brackets are different " "(square brackets instead of parentheses)." @@ -690,7 +698,7 @@ msgstr "" "La compréhension de liste équivalente s'écrit de la même manière, utilisez " "juste des crochets à la place des parenthèses." -#: ../Doc/howto/functional.rst:375 +#: howto/functional.rst:375 msgid "" "The elements of the generated output will be the successive values of " "``expression``. The ``if`` clauses are all optional; if present, " @@ -701,7 +709,7 @@ msgstr "" "clause ``if`` est facultative ; si elle est présente, ``expression`` n'est " "évaluée et ajoutée au résultat que si ``condition`` est vérifiée." -#: ../Doc/howto/functional.rst:379 +#: howto/functional.rst:379 msgid "" "Generator expressions always have to be written inside parentheses, but the " "parentheses signalling a function call also count. If you want to create an " @@ -712,7 +720,7 @@ msgstr "" "comptent aussi. Si vous souhaitez créer un itérateur qui soit immédiatement " "passé à une fonction, vous pouvez écrire ::" -#: ../Doc/howto/functional.rst:385 +#: howto/functional.rst:385 msgid "" "The ``for...in`` clauses contain the sequences to be iterated over. The " "sequences do not have to be the same length, because they are iterated over " @@ -728,7 +736,7 @@ msgstr "" "parcourue dans son intégralité pour chaque paire d'éléments de ``sequence1`` " "et ``sequence2``." -#: ../Doc/howto/functional.rst:391 +#: howto/functional.rst:391 msgid "" "To put it another way, a list comprehension or generator expression is " "equivalent to the following Python code::" @@ -736,7 +744,7 @@ msgstr "" "Autrement dit, une compréhension de liste ou une expression génératrice est " "équivalente au code Python ci-dessous ::" -#: ../Doc/howto/functional.rst:408 +#: howto/functional.rst:408 msgid "" "This means that when there are multiple ``for...in`` clauses but no ``if`` " "clauses, the length of the resulting output will be equal to the product of " @@ -748,7 +756,7 @@ msgstr "" "produit des longueurs des séquences itérées. Si vous travaillez sur deux " "listes de longueur 3, la sortie contiendra 9 éléments :" -#: ../Doc/howto/functional.rst:420 +#: howto/functional.rst:420 msgid "" "To avoid introducing an ambiguity into Python's grammar, if ``expression`` " "is creating a tuple, it must be surrounded with parentheses. The first list " @@ -759,11 +767,11 @@ msgstr "" "uplet. La première compréhension de liste ci-dessous n'est pas valide " "syntaxiquement, tandis que la seconde l'est ::" -#: ../Doc/howto/functional.rst:431 +#: howto/functional.rst:431 msgid "Generators" msgstr "Générateurs" -#: ../Doc/howto/functional.rst:433 +#: howto/functional.rst:433 msgid "" "Generators are a special class of functions that simplify the task of " "writing iterators. Regular functions compute a value and return it, but " @@ -774,7 +782,7 @@ msgstr "" "renvoie, tandis que les générateurs renvoient un itérateur qui produit un " "flux de valeurs." -#: ../Doc/howto/functional.rst:437 +#: howto/functional.rst:437 msgid "" "You're doubtless familiar with how regular function calls work in Python or " "C. When you call a function, it gets a private namespace where its local " @@ -799,11 +807,11 @@ msgstr "" "s'agit de fonctions qu'il est possible d'interrompre, puis de relancer sans " "perdre leur progression." -#: ../Doc/howto/functional.rst:446 +#: howto/functional.rst:446 msgid "Here's the simplest example of a generator function:" msgstr "Voici un exemple simple de fonction génératrice :" -#: ../Doc/howto/functional.rst:452 +#: howto/functional.rst:452 msgid "" "Any function containing a :keyword:`yield` keyword is a generator function; " "this is detected by Python's :term:`bytecode` compiler which compiles the " @@ -813,7 +821,7 @@ msgstr "" "générateur ; le compilateur :term:`bytecode` de Python détecte ce mot-clé et " "prend en compte cette particularité de la fonction." -#: ../Doc/howto/functional.rst:456 +#: howto/functional.rst:456 msgid "" "When you call a generator function, it doesn't return a single value; " "instead it returns a generator object that supports the iterator protocol. " @@ -833,11 +841,11 @@ msgstr "" "locales sont conservées. Lors de l'appel suivant à la méthode :meth:" "`~generator.__next__` du générateur, la fonction reprend son exécution." -#: ../Doc/howto/functional.rst:465 +#: howto/functional.rst:465 msgid "Here's a sample usage of the ``generate_ints()`` generator:" msgstr "Voici un exemple d'utilisation du générateur ``generate_ints()`` :" -#: ../Doc/howto/functional.rst:482 +#: howto/functional.rst:482 msgid "" "You could equally write ``for i in generate_ints(5)``, or ``a, b, c = " "generate_ints(3)``." @@ -845,7 +853,7 @@ msgstr "" "Vous pourriez de façon équivalente écrire ``for i in generate_ints(5)`` ou " "``a, b, c = generate_ints(3)``." -#: ../Doc/howto/functional.rst:485 +#: howto/functional.rst:485 msgid "" "Inside a generator function, ``return value`` causes " "``StopIteration(value)`` to be raised from the :meth:`~generator.__next__` " @@ -858,7 +866,7 @@ msgstr "" "est atteinte), le flot de nouvelles valeurs s'arrête et le générateur ne " "peut plus rien produire." -#: ../Doc/howto/functional.rst:490 +#: howto/functional.rst:490 msgid "" "You could achieve the effect of generators manually by writing your own " "class and storing all the local variables of the generator as instance " @@ -875,7 +883,7 @@ msgstr "" "le renvoie. Cependant, cela devient beaucoup plus complexe pour des " "générateurs relativement sophistiqués." -#: ../Doc/howto/functional.rst:498 +#: howto/functional.rst:498 msgid "" "The test suite included with Python's library, :source:`Lib/test/" "test_generators.py`, contains a number of more interesting examples. Here's " @@ -887,7 +895,7 @@ msgstr "" "implémente le parcours d'un arbre dans l'ordre en utilisant des générateurs " "de façon récursive. ::" -#: ../Doc/howto/functional.rst:514 +#: howto/functional.rst:514 msgid "" "Two other examples in ``test_generators.py`` produce solutions for the N-" "Queens problem (placing N queens on an NxN chess board so that no queen " @@ -902,11 +910,11 @@ msgstr "" "de visiter toutes les cases d'un échiquier *NxN* sans jamais visiter la même " "case deux fois)." -#: ../Doc/howto/functional.rst:522 +#: howto/functional.rst:522 msgid "Passing values into a generator" msgstr "Transmettre des valeurs au générateur" -#: ../Doc/howto/functional.rst:524 +#: howto/functional.rst:524 msgid "" "In Python 2.4 and earlier, generators only produced output. Once a " "generator's code was invoked to create an iterator, there was no way to pass " @@ -922,7 +930,7 @@ msgstr "" "générateur à consulter des variables globales ou en lui passant des objets " "mutables modifiés hors du générateur, mais ces approches étaient compliquées." -#: ../Doc/howto/functional.rst:531 +#: howto/functional.rst:531 msgid "" "In Python 2.5 there's a simple way to pass values into a generator. :keyword:" "`yield` became an expression, returning a value that can be assigned to a " @@ -933,7 +941,7 @@ msgstr "" "expression qui renvoie une valeur sur laquelle il est possible d'opérer et " "que vous pouvez assigner à une variable ::" -#: ../Doc/howto/functional.rst:537 +#: howto/functional.rst:537 msgid "" "I recommend that you **always** put parentheses around a ``yield`` " "expression when you're doing something with the returned value, as in the " @@ -947,7 +955,7 @@ msgstr "" "systématiquement que de prendre le risque de les oublier là où elles sont " "requises." -#: ../Doc/howto/functional.rst:542 +#: howto/functional.rst:542 msgid "" "(:pep:`342` explains the exact rules, which are that a ``yield``-expression " "must always be parenthesized except when it occurs at the top-level " @@ -961,7 +969,7 @@ msgstr "" "que vous pouvez écrire ``val = yield i`` mais que les parenthèses sont " "requises s'il y a une opération, comme dans ``val = (yield i) + 12``.)" -#: ../Doc/howto/functional.rst:548 +#: howto/functional.rst:548 msgid "" "Values are sent into a generator by calling its :meth:`send(value) " "` method. This method resumes the generator's code and the " @@ -974,7 +982,7 @@ msgstr "" "la méthode :meth:`~generator.__next__` habituelle qui est appelée, alors " "``yield`` renvoie ``None``." -#: ../Doc/howto/functional.rst:553 +#: howto/functional.rst:553 msgid "" "Here's a simple counter that increments by 1 and allows changing the value " "of the internal counter." @@ -982,11 +990,11 @@ msgstr "" "Voici un exemple de compteur qui s'incrémente de 1 mais dont il est possible " "de modifier le compte interne." -#: ../Doc/howto/functional.rst:568 +#: howto/functional.rst:568 msgid "And here's an example of changing the counter:" msgstr "Et voici comment il est possible de modifier le compteur :" -#: ../Doc/howto/functional.rst:585 +#: howto/functional.rst:585 msgid "" "Because ``yield`` will often be returning ``None``, you should always check " "for this case. Don't just use its value in expressions unless you're sure " @@ -998,7 +1006,7 @@ msgstr "" "seule la méthode :meth:`~generator.send` sera utilisée pour reprendre " "l'exécution de la fonction génératrice." -#: ../Doc/howto/functional.rst:590 +#: howto/functional.rst:590 msgid "" "In addition to :meth:`~generator.send`, there are two other methods on " "generators:" @@ -1006,7 +1014,8 @@ msgstr "" "En plus de :meth:`~generator.send`, il existe deux autres méthodes " "s'appliquant aux générateurs :" -#: ../Doc/howto/functional.rst:593 +# Énumération +#: howto/functional.rst:593 msgid "" ":meth:`throw(type, value=None, traceback=None) ` is used to " "raise an exception inside the generator; the exception is raised by the " @@ -1014,9 +1023,9 @@ msgid "" msgstr "" ":meth:`throw(type, value=None, traceback=None) ` permet de " "lever une exception dans le générateur ; celle-ci est levée par l'expression " -"``yield`` à l'endroit où l'exécution a été mise en pause." +"``yield`` à l'endroit où l'exécution a été mise en pause ;" -#: ../Doc/howto/functional.rst:597 +#: howto/functional.rst:597 msgid "" ":meth:`~generator.close` raises a :exc:`GeneratorExit` exception inside the " "generator to terminate the iteration. On receiving this exception, the " @@ -1034,7 +1043,7 @@ msgstr "" "le ramasse-miette de Python collecte le générateur, il appelle sa méthode :" "meth:`~generator.close`." -#: ../Doc/howto/functional.rst:605 +#: howto/functional.rst:605 msgid "" "If you need to run cleanup code when a :exc:`GeneratorExit` occurs, I " "suggest using a ``try: ... finally:`` suite instead of catching :exc:" @@ -1044,7 +1053,7 @@ msgstr "" "`GeneratorExit`, nous vous suggérons d'utiliser une structure ``try: ... " "finally`` plutôt que d'attraper :exc:`GeneratorExit`." -#: ../Doc/howto/functional.rst:608 +#: howto/functional.rst:608 msgid "" "The cumulative effect of these changes is to turn generators from one-way " "producers of information into both producers and consumers." @@ -1053,7 +1062,7 @@ msgstr "" "unidirectionnels d'information vers un statut hybride à la fois producteur " "et consommateur." -#: ../Doc/howto/functional.rst:611 +#: howto/functional.rst:611 msgid "" "Generators also become **coroutines**, a more generalized form of " "subroutines. Subroutines are entered at one point and exited at another " @@ -1068,18 +1077,18 @@ msgstr "" "de reprendre une coroutine à différents endroits (les instructions " "``yield``)." -#: ../Doc/howto/functional.rst:618 +#: howto/functional.rst:618 msgid "Built-in functions" msgstr "Fonctions natives" -#: ../Doc/howto/functional.rst:620 +#: howto/functional.rst:620 msgid "" "Let's look in more detail at built-in functions often used with iterators." msgstr "" "Voyons un peu plus en détail les fonctions natives souvent utilisées de " "concert avec les itérateurs." -#: ../Doc/howto/functional.rst:622 +#: howto/functional.rst:622 msgid "" "Two of Python's built-in functions, :func:`map` and :func:`filter` duplicate " "the features of generator expressions:" @@ -1087,25 +1096,25 @@ msgstr "" ":func:`map` et :func:`filter` sont deux fonctions natives de Python qui " "clonent les propriétés des expressions génératrices :" -#: ../Doc/howto/functional.rst:634 +#: howto/functional.rst:634 msgid "" ":func:`map(f, iterA, iterB, ...) ` returns an iterator over the sequence" msgstr "" ":func:`map(f, iterA, iterB, ...) ` renvoie un itérateur sur une séquence" -#: ../Doc/howto/functional.rst:626 +#: howto/functional.rst:626 msgid "" "``f(iterA[0], iterB[0]), f(iterA[1], iterB[1]), f(iterA[2], iterB[2]), ...``." msgstr "" "``f(iterA[0], iterB[0]), f(iterA[1], iterB[1]), f(iterA[2], iterB[2]), ...``." -#: ../Doc/howto/functional.rst:636 +#: howto/functional.rst:636 msgid "You can of course achieve the same effect with a list comprehension." msgstr "" "Vous pouvez obtenir le même comportement à l'aide d'une compréhension de " "liste." -#: ../Doc/howto/functional.rst:638 +#: howto/functional.rst:638 msgid "" ":func:`filter(predicate, iter) ` returns an iterator over all the " "sequence elements that meet a certain condition, and is similarly duplicated " @@ -1120,11 +1129,11 @@ msgstr "" "certaine condition. Dans le cas de :func:`filter`, le prédicat ne doit " "prendre qu'un seul argument." -#: ../Doc/howto/functional.rst:651 +#: howto/functional.rst:651 msgid "This can also be written as a list comprehension:" msgstr "Cela peut se réécrire sous la forme d'une compréhension de liste :" -#: ../Doc/howto/functional.rst:657 +#: howto/functional.rst:657 msgid "" ":func:`enumerate(iter, start=0) ` counts off the elements in the " "iterable returning 2-tuples containing the count (from *start*) and each " @@ -1132,9 +1141,9 @@ msgid "" msgstr "" ":func:`enumerate(iter, start=0) ` énumère les éléments de " "l'itérable en renvoyant des paires contenant le nombre d'éléments déjà " -"listés (depuis le *début*) et l'élément en cours ::" +"listés (depuis le *début*) et l'élément en cours ::" -#: ../Doc/howto/functional.rst:667 +#: howto/functional.rst:667 msgid "" ":func:`enumerate` is often used when looping through a list and recording " "the indexes at which certain conditions are met::" @@ -1143,7 +1152,7 @@ msgstr "" "liste tout en listant les indices pour lesquels une certaine condition est " "vérifiée ::" -#: ../Doc/howto/functional.rst:675 +#: howto/functional.rst:675 msgid "" ":func:`sorted(iterable, key=None, reverse=False) ` collects all the " "elements of the iterable into a list, sorts the list, and returns the sorted " @@ -1155,14 +1164,14 @@ msgstr "" "classé. Les arguments *key* et *reverse* sont passés à la méthode :meth:" "`~list.sort` de la liste ainsi construite. ::" -#: ../Doc/howto/functional.rst:690 +#: howto/functional.rst:690 msgid "" "(For a more detailed discussion of sorting, see the :ref:`sortinghowto`.)" msgstr "" "(Pour plus de détails sur les algorithmes de tri, se référer à :ref:" "`sortinghowto`.)" -#: ../Doc/howto/functional.rst:693 +#: howto/functional.rst:693 msgid "" "The :func:`any(iter) ` and :func:`all(iter) ` built-ins look at " "the truth values of an iterable's contents. :func:`any` returns ``True`` if " @@ -1175,7 +1184,7 @@ msgstr "" "comme vrai et :func:`all` renvoie ``True`` si tous les éléments s'évaluent " "comme vrai :" -#: ../Doc/howto/functional.rst:712 +#: howto/functional.rst:712 msgid "" ":func:`zip(iterA, iterB, ...) ` takes one element from each iterable " "and returns them in a tuple::" @@ -1183,7 +1192,7 @@ msgstr "" ":func:`zip(iterA, iterB, ...) ` rassemble un élément de chaque itérable " "dans un n-uplet ::" -#: ../Doc/howto/functional.rst:718 +#: howto/functional.rst:718 msgid "" "It doesn't construct an in-memory list and exhaust all the input iterators " "before returning; instead tuples are constructed and returned only if " @@ -1196,7 +1205,7 @@ msgstr "" "d'un comportement d'`évaluation paresseuse `__)." -#: ../Doc/howto/functional.rst:723 +#: howto/functional.rst:723 msgid "" "This iterator is intended to be used with iterables that are all of the same " "length. If the iterables are of different lengths, the resulting stream " @@ -1206,7 +1215,7 @@ msgstr "" "longueur des itérables diffère, le flux résultant a la même longueur que le " "plus court des itérables. ::" -#: ../Doc/howto/functional.rst:730 +#: howto/functional.rst:730 msgid "" "You should avoid doing this, though, because an element may be taken from " "the longer iterators and discarded. This means you can't go on to use the " @@ -1218,11 +1227,11 @@ msgstr "" "plus utiliser cet itérable car vous allez sauter l'élément qui vient d'être " "jeté." -#: ../Doc/howto/functional.rst:736 +#: howto/functional.rst:736 msgid "The itertools module" msgstr "Le module *itertools*" -#: ../Doc/howto/functional.rst:738 +#: howto/functional.rst:738 msgid "" "The :mod:`itertools` module contains a number of commonly-used iterators as " "well as functions for combining several iterators. This section will " @@ -1232,36 +1241,40 @@ msgstr "" "ainsi que des fonctions pour combiner différents itérateurs. Cette section " "présente le contenu du module au travers de quelques exemples." -#: ../Doc/howto/functional.rst:742 +#: howto/functional.rst:742 msgid "The module's functions fall into a few broad classes:" msgstr "Les fonctions du module se divisent en quelques grandes catégories :" -#: ../Doc/howto/functional.rst:744 +# Énumération +#: howto/functional.rst:744 msgid "Functions that create a new iterator based on an existing iterator." msgstr "" -"Les fonctions qui transforment un itérateur existant en un nouvel itérateur." +"les fonctions qui transforment un itérateur existant en un nouvel itérateur ;" -#: ../Doc/howto/functional.rst:745 +# Énumération +#: howto/functional.rst:745 msgid "Functions for treating an iterator's elements as function arguments." msgstr "" -"Les fonctions qui traitent les éléments d'un itérateur comme les arguments " -"d'une fonction." +"les fonctions qui traitent les éléments d'un itérateur comme les arguments " +"d'une fonction ;" -#: ../Doc/howto/functional.rst:746 +# Énumération +#: howto/functional.rst:746 msgid "Functions for selecting portions of an iterator's output." msgstr "" -"Les fonctions qui permettent de sélectionner des portions de la sortie d'un " -"itérateur." +"les fonctions qui permettent de sélectionner des portions de la sortie d'un " +"itérateur ;" -#: ../Doc/howto/functional.rst:747 +# Énumération +#: howto/functional.rst:747 msgid "A function for grouping an iterator's output." -msgstr "Une fonction qui permet de grouper la sortie d'un itérateur." +msgstr "une fonction qui permet de grouper la sortie d'un itérateur." -#: ../Doc/howto/functional.rst:750 +#: howto/functional.rst:750 msgid "Creating new iterators" msgstr "Créer de nouveaux itérateurs" -#: ../Doc/howto/functional.rst:752 +#: howto/functional.rst:752 msgid "" ":func:`itertools.count(start, step) ` returns an infinite " "stream of evenly spaced values. You can optionally supply the starting " @@ -1272,7 +1285,7 @@ msgstr "" "infini de valeurs régulièrement espacées. Vous pouvez spécifier la valeur de " "départ (par défaut, 0) et l'intervalle entre les nombres (par défaut, 1) ::" -#: ../Doc/howto/functional.rst:763 +#: howto/functional.rst:763 msgid "" ":func:`itertools.cycle(iter) ` saves a copy of the contents " "of a provided iterable and returns a new iterator that returns its elements " @@ -1283,7 +1296,7 @@ msgstr "" "contenu de l'itérable passé en argument et renvoie un nouvel itérateur qui " "produit tous les éléments du premier au dernier et se répète indéfiniment. ::" -#: ../Doc/howto/functional.rst:770 +#: howto/functional.rst:770 msgid "" ":func:`itertools.repeat(elem, [n]) ` returns the provided " "element *n* times, or returns the element endlessly if *n* is not " @@ -1293,7 +1306,7 @@ msgstr "" "passé en argument *n* fois ou répète l'élément à l'infini si *n* n'est pas " "spécifié. ::" -#: ../Doc/howto/functional.rst:778 +#: howto/functional.rst:778 msgid "" ":func:`itertools.chain(iterA, iterB, ...) ` takes an " "arbitrary number of iterables as input, and returns all the elements of the " @@ -1305,7 +1318,7 @@ msgstr "" "éléments du premier itérateur, puis tous ceux du second et ainsi de suite " "jusqu'à ce que tous les itérables aient été épuisés. ::" -#: ../Doc/howto/functional.rst:786 +#: howto/functional.rst:786 msgid "" ":func:`itertools.islice(iter, [start], stop, [step]) ` " "returns a stream that's a slice of the iterator. With a single *stop* " @@ -1323,7 +1336,7 @@ msgstr "" "pour *start*, *stop* ou *step* (contrairement aux listes et chaînes de " "caractères de Python). ::" -#: ../Doc/howto/functional.rst:800 +#: howto/functional.rst:800 msgid "" ":func:`itertools.tee(iter, [n]) ` replicates an iterator; it " "returns *n* independent iterators that will all return the contents of the " @@ -1339,11 +1352,11 @@ msgstr "" "source, ce qui peut consommer beaucoup de mémoire si l'itérateur est grand " "et que l'un des nouveaux itérateurs est plus consommé que les autres. ::" -#: ../Doc/howto/functional.rst:819 +#: howto/functional.rst:819 msgid "Calling functions on elements" msgstr "Appliquer des fonctions au contenu des itérateurs" -#: ../Doc/howto/functional.rst:821 +#: howto/functional.rst:821 msgid "" "The :mod:`operator` module contains a set of functions corresponding to " "Python's operators. Some examples are :func:`operator.add(a, b) ` renvoie un objet appelable qui récupère l'attribut ``.id``." -#: ../Doc/howto/functional.rst:827 +#: howto/functional.rst:827 msgid "" ":func:`itertools.starmap(func, iter) ` assumes that the " "iterable will return a stream of tuples, and calls *func* using these tuples " @@ -1367,11 +1380,11 @@ msgstr "" "l'itérable renvoie une séquence de n-uplets et appelle *func* en utilisant " "tous les n-uplets comme arguments ::" -#: ../Doc/howto/functional.rst:839 +#: howto/functional.rst:839 msgid "Selecting elements" msgstr "Sélectionner des éléments" -#: ../Doc/howto/functional.rst:841 +#: howto/functional.rst:841 msgid "" "Another group of functions chooses a subset of an iterator's elements based " "on a predicate." @@ -1379,7 +1392,7 @@ msgstr "" "Une autre catégorie de fonctions est celle permettant de sélectionner un " "sous-ensemble des éléments de l'itérateur selon un prédicat donné." -#: ../Doc/howto/functional.rst:844 +#: howto/functional.rst:844 msgid "" ":func:`itertools.filterfalse(predicate, iter) ` is " "the opposite of :func:`filter`, returning all elements for which the " @@ -1389,7 +1402,7 @@ msgstr "" "l'opposé de :func:`filter` et renvoie tous les éléments pour lesquels le " "prédicat est faux ::" -#: ../Doc/howto/functional.rst:851 +#: howto/functional.rst:851 msgid "" ":func:`itertools.takewhile(predicate, iter) ` returns " "elements for as long as the predicate returns true. Once the predicate " @@ -1399,7 +1412,7 @@ msgstr "" "les éléments de l'itérateur tant que ceux-ci vérifient le prédicat. Dès lors " "que le prédicat renvoie faux, l'itération s'arrête. ::" -#: ../Doc/howto/functional.rst:864 +#: howto/functional.rst:864 msgid "" ":func:`itertools.dropwhile(predicate, iter) ` discards " "elements while the predicate returns true, and then returns the rest of the " @@ -1409,7 +1422,7 @@ msgstr "" "des éléments tant que le prédicat renvoie vrai puis renvoie le reste des " "éléments de l'itérable. ::" -#: ../Doc/howto/functional.rst:874 +#: howto/functional.rst:874 msgid "" ":func:`itertools.compress(data, selectors) ` takes two " "iterators and returns only those elements of *data* for which the " @@ -1421,11 +1434,11 @@ msgstr "" "*data* pour lesquels l'élément correspondant de *selectors* est évalué à " "vrai. L'itération s'arrête lorsque l'un des deux itérateurs est épuisé ::" -#: ../Doc/howto/functional.rst:883 +#: howto/functional.rst:883 msgid "Combinatoric functions" msgstr "Fonctions combinatoires" -#: ../Doc/howto/functional.rst:885 +#: howto/functional.rst:885 msgid "" "The :func:`itertools.combinations(iterable, r) ` " "returns an iterator giving all possible *r*-tuple combinations of the " @@ -1435,7 +1448,7 @@ msgstr "" "un itérateur qui produit toutes les combinaisons possibles de *r*-uplets des " "éléments de *iterable*. ::" -#: ../Doc/howto/functional.rst:900 +#: howto/functional.rst:900 msgid "" "The elements within each tuple remain in the same order as *iterable* " "returned them. For example, the number 1 is always before 2, 3, 4, or 5 in " @@ -1450,7 +1463,7 @@ msgstr "" "contrainte sur l'ordre et renvoie tous les arrangements possibles de " "longueur *r* ::" -#: ../Doc/howto/functional.rst:919 +#: howto/functional.rst:919 msgid "" "If you don't supply a value for *r* the length of the iterable is used, " "meaning that all the elements are permuted." @@ -1459,7 +1472,7 @@ msgstr "" "utilisée par défaut, c'est-à-dire que toutes les permutations de la séquence " "sont renvoyées." -#: ../Doc/howto/functional.rst:922 +#: howto/functional.rst:922 msgid "" "Note that these functions produce all of the possible combinations by " "position and don't require that the contents of *iterable* are unique::" @@ -1468,7 +1481,7 @@ msgstr "" "basant sur la position des éléments et ne requièrent pas que les éléments de " "*iterable* soient uniques ::" -#: ../Doc/howto/functional.rst:929 +#: howto/functional.rst:929 msgid "" "The identical tuple ``('a', 'a', 'b')`` occurs twice, but the two 'a' " "strings came from different positions." @@ -1476,7 +1489,7 @@ msgstr "" "Le triplet ``('a', 'a', 'b')`` apparaît deux fois mais les deux chaînes de " "caractères ``'a'`` proviennent de deux positions différentes." -#: ../Doc/howto/functional.rst:932 +#: howto/functional.rst:932 msgid "" "The :func:`itertools.combinations_with_replacement(iterable, r) ` function relaxes a different constraint: " @@ -1490,11 +1503,11 @@ msgstr "" "tirage avec remise : le premier élément sélectionné pour chaque n-uplet est " "replacé dans la séquence avant le tirage du deuxième. ::" -#: ../Doc/howto/functional.rst:947 +#: howto/functional.rst:947 msgid "Grouping elements" msgstr "Grouper les éléments" -#: ../Doc/howto/functional.rst:949 +#: howto/functional.rst:949 msgid "" "The last function I'll discuss, :func:`itertools.groupby(iter, " "key_func=None) `, is the most complicated. " @@ -1509,7 +1522,7 @@ msgstr "" "l'identité par défaut (c'est-à-dire que la clé d'un élément est l'élément " "lui-même)." -#: ../Doc/howto/functional.rst:954 +#: howto/functional.rst:954 msgid "" ":func:`~itertools.groupby` collects all the consecutive elements from the " "underlying iterable that have the same key value, and returns a stream of 2-" @@ -1519,7 +1532,7 @@ msgstr "" "sous-jacent qui ont la même clé et renvoie un flux de paires contenant la " "clé et un itérateur produisant la liste des éléments pour cette clé." -#: ../Doc/howto/functional.rst:982 +#: howto/functional.rst:982 msgid "" ":func:`~itertools.groupby` assumes that the underlying iterable's contents " "will already be sorted based on the key. Note that the returned iterators " @@ -1534,11 +1547,11 @@ msgstr "" "itérateur (*iterator-2* dans l'exemple ci-dessus) et la clé à laquelle il " "est associé." -#: ../Doc/howto/functional.rst:989 +#: howto/functional.rst:989 msgid "The functools module" msgstr "Le module *functools*" -#: ../Doc/howto/functional.rst:991 +#: howto/functional.rst:991 msgid "" "The :mod:`functools` module in Python 2.5 contains some higher-order " "functions. A **higher-order function** takes one or more functions as input " @@ -1550,7 +1563,7 @@ msgstr "" "plusieurs fonctions en entrée et renvoie une fonction. L'outil le plus " "important de ce module est la fonction :func:`functools.partial`." -#: ../Doc/howto/functional.rst:996 +#: howto/functional.rst:996 msgid "" "For programs written in a functional style, you'll sometimes want to " "construct variants of existing functions that have some of the parameters " @@ -1566,7 +1579,7 @@ msgstr "" "b, c)``, c'est-à-dire fixer le premier paramètre de ``f()``. La fonction " "``g()`` est une appelée « application partielle » de ``f()``." -#: ../Doc/howto/functional.rst:1002 +#: howto/functional.rst:1002 msgid "" "The constructor for :func:`~functools.partial` takes the arguments " "``(function, arg1, arg2, ..., kwarg1=value1, kwarg2=value2)``. The " @@ -1577,11 +1590,11 @@ msgstr "" "arg1, arg2, ..., kwarg1=value1, kwarg2=value2, ...)``. Un appel à l'objet " "ainsi créé invoque la fonction ``fonction`` avec les arguments spécifiés." -#: ../Doc/howto/functional.rst:1007 +#: howto/functional.rst:1007 msgid "Here's a small but realistic example::" msgstr "Voici un exemple court mais réaliste ::" -#: ../Doc/howto/functional.rst:1019 +#: howto/functional.rst:1019 msgid "" ":func:`functools.reduce(func, iter, [initial_value]) ` " "cumulatively performs an operation on all the iterable's elements and, " @@ -1607,7 +1620,7 @@ msgstr "" "La valeur initiale *initial_value*, si spécifiée, est utilisée comme point " "de départ et le premier calcul est alors ``func(inital_value, A)``. ::" -#: ../Doc/howto/functional.rst:1043 +#: howto/functional.rst:1043 msgid "" "If you use :func:`operator.add` with :func:`functools.reduce`, you'll add up " "all the elements of the iterable. This case is so common that there's a " @@ -1618,7 +1631,7 @@ msgstr "" "courant pour qu'il existe une fonction native :func:`sum` qui lui est " "équivalent :" -#: ../Doc/howto/functional.rst:1055 +#: howto/functional.rst:1055 msgid "" "For many uses of :func:`functools.reduce`, though, it can be clearer to just " "write the obvious :keyword:`for` loop::" @@ -1627,7 +1640,7 @@ msgstr "" "impliquant :func:`functools.reduce` de simplement écrire la boucle :keyword:" "`for` ::" -#: ../Doc/howto/functional.rst:1067 +#: howto/functional.rst:1067 msgid "" "A related function is :func:`itertools.accumulate(iterable, func=operator." "add) `. It performs the same calculation, but instead " @@ -1640,11 +1653,11 @@ msgstr "" "renvoie un itérateur qui génère la séquence de tous les résultats " "intermédiaires ::" -#: ../Doc/howto/functional.rst:1080 +#: howto/functional.rst:1080 msgid "The operator module" msgstr "Le module *operator*" -#: ../Doc/howto/functional.rst:1082 +#: howto/functional.rst:1082 msgid "" "The :mod:`operator` module was mentioned earlier. It contains a set of " "functions corresponding to Python's operators. These functions are often " @@ -1656,48 +1669,53 @@ msgstr "" "utiles en programmation fonctionnelle car elles permettent de ne pas avoir à " "écrire des fonctions triviales qui ne réalisent qu'une seule opération." -#: ../Doc/howto/functional.rst:1087 +#: howto/functional.rst:1087 msgid "Some of the functions in this module are:" msgstr "Voici quelques fonctions de ce module :" -#: ../Doc/howto/functional.rst:1089 +# Énumération +#: howto/functional.rst:1089 msgid "" "Math operations: ``add()``, ``sub()``, ``mul()``, ``floordiv()``, " "``abs()``, ..." msgstr "" -"Les opérations mathématiques : ``add()``, ``sub()``, ``mul()``, " -"``floordiv()``, ``abs()``, ..." +"les opérations mathématiques : ``add()``, ``sub()``, ``mul()``, " +"``floordiv()``, ``abs()``… ;" -#: ../Doc/howto/functional.rst:1090 +# Énumération +#: howto/functional.rst:1090 msgid "Logical operations: ``not_()``, ``truth()``." -msgstr "Les opérations logiques : ``not_()``, ``truth()``." +msgstr "les opérations logiques : ``not_()``, ``truth()`` ;" -#: ../Doc/howto/functional.rst:1091 +# Énumération +#: howto/functional.rst:1091 msgid "Bitwise operations: ``and_()``, ``or_()``, ``invert()``." -msgstr "Les opérations bit à bit : ``and_()``, ``or_()``, ``invert()``." +msgstr "les opérations bit à bit : ``and_()``, ``or_()``, ``invert()`` ;" -#: ../Doc/howto/functional.rst:1092 +# Énumération +#: howto/functional.rst:1092 msgid "" "Comparisons: ``eq()``, ``ne()``, ``lt()``, ``le()``, ``gt()``, and ``ge()``." msgstr "" -"Les comparaisons : ``eq()``, ``ne()``, ``lt()``, ``le()``, ``gt()``, et " -"``ge()``." +"les comparaisons : ``eq()``, ``ne()``, ``lt()``, ``le()``, ``gt()``, et " +"``ge()`` ;" -#: ../Doc/howto/functional.rst:1093 +# Énumération +#: howto/functional.rst:1093 msgid "Object identity: ``is_()``, ``is_not()``." -msgstr "L'identification des objets : ``is_()``, ``is_not()``." +msgstr "l'identification des objets : ``is_()``, ``is_not()``." -#: ../Doc/howto/functional.rst:1095 +#: howto/functional.rst:1095 msgid "Consult the operator module's documentation for a complete list." msgstr "" "Veuillez vous référer à la documentation du module *operator* pour une liste " "complète." -#: ../Doc/howto/functional.rst:1099 +#: howto/functional.rst:1099 msgid "Small functions and the lambda expression" msgstr "Expressions lambda et fonctions courtes" -#: ../Doc/howto/functional.rst:1101 +#: howto/functional.rst:1101 msgid "" "When writing functional-style programs, you'll often need little functions " "that act as predicates or that combine elements in some way." @@ -1706,7 +1724,7 @@ msgstr "" "petites fonctions utilisées comme prédicats ou pour combiner des éléments " "d'une façon ou d'une autre." -#: ../Doc/howto/functional.rst:1104 +#: howto/functional.rst:1104 msgid "" "If there's a Python built-in or a module function that's suitable, you don't " "need to define a new function at all::" @@ -1714,7 +1732,7 @@ msgstr "" "S'il existe une fonction native Python ou une fonction d'un module qui " "convient, vous n'avez pas besoin de définir de nouvelle fonction ::" -#: ../Doc/howto/functional.rst:1110 +#: howto/functional.rst:1110 msgid "" "If the function you need doesn't exist, you need to write it. One way to " "write small functions is to use the :keyword:`lambda` expression. " @@ -1728,7 +1746,7 @@ msgstr "" "combinant ces derniers afin de créer une fonction anonyme qui renvoie la " "valeur de cette expression ::" -#: ../Doc/howto/functional.rst:1119 +#: howto/functional.rst:1119 msgid "" "An alternative is to just use the ``def`` statement and define a function in " "the usual way::" @@ -1736,7 +1754,7 @@ msgstr "" "Une autre façon de faire est de simplement utiliser l'instruction ``def`` " "afin de définir une fonction de la manière habituelle ::" -#: ../Doc/howto/functional.rst:1128 +#: howto/functional.rst:1128 msgid "" "Which alternative is preferable? That's a style question; my usual course " "is to avoid using ``lambda``." @@ -1744,7 +1762,7 @@ msgstr "" "La méthode à préférer est une question de style, en général l'auteur évite " "l'utilisation de ``lambda``." -#: ../Doc/howto/functional.rst:1131 +#: howto/functional.rst:1131 msgid "" "One reason for my preference is that ``lambda`` is quite limited in the " "functions it can define. The result has to be computable as a single " @@ -1761,7 +1779,7 @@ msgstr "" "une expression illisible. Par exemple, pouvez-vous dire du premier coup " "d’œil ce que fait le code ci-dessous ? ::" -#: ../Doc/howto/functional.rst:1141 +#: howto/functional.rst:1141 msgid "" "You can figure it out, but it takes time to disentangle the expression to " "figure out what's going on. Using a short nested ``def`` statements makes " @@ -1771,18 +1789,18 @@ msgstr "" "de démêler l'expression pour y voir plus clair. Une clause ``def`` concise " "améliore la situation ::" -#: ../Doc/howto/functional.rst:1151 +#: howto/functional.rst:1151 msgid "But it would be best of all if I had simply used a ``for`` loop::" msgstr "" "Toutefois l'idéal aurait été de simplement se contenter d'une boucle " "``for`` ::" -#: ../Doc/howto/functional.rst:1157 +#: howto/functional.rst:1157 msgid "Or the :func:`sum` built-in and a generator expression::" msgstr "" "ou de la fonction native :func:`sum` et d'une expression génératrice ::" -#: ../Doc/howto/functional.rst:1161 +#: howto/functional.rst:1161 msgid "" "Many uses of :func:`functools.reduce` are clearer when written as ``for`` " "loops." @@ -1790,7 +1808,7 @@ msgstr "" "Les boucles ``for`` sont souvent plus lisibles que la fonction :func:" "`functools.reduce`." -#: ../Doc/howto/functional.rst:1163 +#: howto/functional.rst:1163 msgid "" "Fredrik Lundh once suggested the following set of rules for refactoring uses " "of ``lambda``:" @@ -1798,16 +1816,16 @@ msgstr "" "Frederik Lundh a suggéré quelques règles pour le réusinage de code " "impliquant les expressions ``lambda`` :" -#: ../Doc/howto/functional.rst:1166 +#: howto/functional.rst:1166 msgid "Write a lambda function." msgstr "Écrire une fonction lambda." -#: ../Doc/howto/functional.rst:1167 +#: howto/functional.rst:1167 msgid "Write a comment explaining what the heck that lambda does." msgstr "" "Écrire un commentaire qui explique ce que fait cette satanée fonction lambda." -#: ../Doc/howto/functional.rst:1168 +#: howto/functional.rst:1168 msgid "" "Study the comment for a while, and think of a name that captures the essence " "of the comment." @@ -1815,28 +1833,28 @@ msgstr "" "Scruter le commentaire pendant quelques temps et réfléchir à un nom qui " "synthétise son essence." -#: ../Doc/howto/functional.rst:1170 +#: howto/functional.rst:1170 msgid "Convert the lambda to a def statement, using that name." msgstr "" "Réécrire la fonction lambda en une définition *def* en utilisant ce nom." -#: ../Doc/howto/functional.rst:1171 +#: howto/functional.rst:1171 msgid "Remove the comment." msgstr "Effacer le commentaire." -#: ../Doc/howto/functional.rst:1173 +#: howto/functional.rst:1173 msgid "" "I really like these rules, but you're free to disagree about whether this " "lambda-free style is better." msgstr "" -"J'aime beaucoup ces règles mais vous êtes libre de ne pas être d'accord et " -"de ne pas préférer ce style sans lambda." +"J'aime beaucoup ces règles, mais vous êtes libre de ne pas être d'accord et " +"de préférer un style avec des lambdas." -#: ../Doc/howto/functional.rst:1178 +#: howto/functional.rst:1178 msgid "Revision History and Acknowledgements" msgstr "Historique des modifications et remerciements" -#: ../Doc/howto/functional.rst:1180 +#: howto/functional.rst:1180 msgid "" "The author would like to thank the following people for offering " "suggestions, corrections and assistance with various drafts of this article: " @@ -1849,15 +1867,17 @@ msgstr "" "Jewett, Mike Krell, Leandro Lameiro, Jussi Salmela, Collin Winter, Blake " "Winton." -#: ../Doc/howto/functional.rst:1185 +#: howto/functional.rst:1185 msgid "Version 0.1: posted June 30 2006." msgstr "Version 0.1 : publiée le 30 juin 2006." -#: ../Doc/howto/functional.rst:1187 +#: howto/functional.rst:1187 msgid "Version 0.11: posted July 1 2006. Typo fixes." -msgstr "Version 0.11 : publiée le 1er juillet 2006. Correction orthographique." +msgstr "" +"Version 0.11 : publiée le 1\\ :sup:`er` juillet 2006. Correction " +"orthographique." -#: ../Doc/howto/functional.rst:1189 +#: howto/functional.rst:1189 msgid "" "Version 0.2: posted July 10 2006. Merged genexp and listcomp sections into " "one. Typo fixes." @@ -1865,14 +1885,14 @@ msgstr "" "Version 0.2 : publiée le 10 juillet 2006. Fusion des sections *genexp* et " "*listcomp*. Correction orthographique." -#: ../Doc/howto/functional.rst:1192 +#: howto/functional.rst:1192 msgid "" "Version 0.21: Added more references suggested on the tutor mailing list." msgstr "" "Version 0.21 : ajout de plusieurs références suggérées sur la liste de " "diffusion *tutor*." -#: ../Doc/howto/functional.rst:1194 +#: howto/functional.rst:1194 msgid "" "Version 0.30: Adds a section on the ``functional`` module written by Collin " "Winter; adds short section on the operator module; a few other edits." @@ -1881,15 +1901,15 @@ msgstr "" "Collin Winter ; ajout d'une courte section sur le module ``operator`` ; " "quelques autres modifications." -#: ../Doc/howto/functional.rst:1199 +#: howto/functional.rst:1199 msgid "References" msgstr "Références" -#: ../Doc/howto/functional.rst:1202 +#: howto/functional.rst:1202 msgid "General" msgstr "Général" -#: ../Doc/howto/functional.rst:1204 +#: howto/functional.rst:1204 msgid "" "**Structure and Interpretation of Computer Programs**, by Harold Abelson and " "Gerald Jay Sussman with Julie Sussman. Full text at https://mitpress.mit." @@ -1907,7 +1927,7 @@ msgstr "" "utilisent le langage Scheme mais la plupart des approches décrites dans ces " "chapitres s'appliquent au style fonctionnel de Python." -#: ../Doc/howto/functional.rst:1212 +#: howto/functional.rst:1212 msgid "" "http://www.defmacro.org/ramblings/fp.html: A general introduction to " "functional programming that uses Java examples and has a lengthy historical " @@ -1917,7 +1937,7 @@ msgstr "" "programmation fonctionnelle avec une longue introduction historique et des " "exemples en Java." -#: ../Doc/howto/functional.rst:1215 +#: howto/functional.rst:1215 msgid "" "https://en.wikipedia.org/wiki/Functional_programming: General Wikipedia " "entry describing functional programming." @@ -1925,23 +1945,23 @@ msgstr "" "https://fr.wikipedia.org/wiki/Programmation_fonctionnelle : l'entrée " "Wikipédia qui décrit la programmation fonctionnelle." -#: ../Doc/howto/functional.rst:1218 +#: howto/functional.rst:1218 msgid "https://en.wikipedia.org/wiki/Coroutine: Entry for coroutines." msgstr "" "https://fr.wikipedia.org/wiki/Coroutine : l'entrée pour les coroutines." -#: ../Doc/howto/functional.rst:1220 +#: howto/functional.rst:1220 msgid "" "https://en.wikipedia.org/wiki/Currying: Entry for the concept of currying." msgstr "" "https://fr.wikipedia.org/wiki/Curryfication : l'entrée pour le concept de " "curryfication (création d'applications partielles)." -#: ../Doc/howto/functional.rst:1223 +#: howto/functional.rst:1223 msgid "Python-specific" msgstr "Spécifique à Python" -#: ../Doc/howto/functional.rst:1225 +#: howto/functional.rst:1225 msgid "" "http://gnosis.cx/TPiP/: The first chapter of David Mertz's book :title-" "reference:`Text Processing in Python` discusses functional programming for " @@ -1953,42 +1973,40 @@ msgstr "" "programmation fonctionnelle pour le traitement de texte dans la section « " "Utilisation des fonctions d'ordre supérieur pour le traitement de texte »." -#: ../Doc/howto/functional.rst:1230 +#: howto/functional.rst:1230 msgid "" "Mertz also wrote a 3-part series of articles on functional programming for " -"IBM's DeveloperWorks site; see `part 1 `__, `part 2 `__, and `part 3 `__," +"IBM's DeveloperWorks site; see `part 1 `__, `part 2 `__, and " +"`part 3 `__," msgstr "" "Mertz a également écrit une série de 3 articles (en anglais) sur la " -"programmation fonctionnelle pour le site de IBM *DeveloperWorks*, voir la " -"`partie 1 `__, la `partie 2 `__ et la `partie 3 `__." +"programmation fonctionnelle pour le site DeveloperWorks d'IBM. Voir `partie " +"1 `__, `partie 2 `__ et `partie 3 `__," -#: ../Doc/howto/functional.rst:1238 +#: howto/functional.rst:1238 msgid "Python documentation" msgstr "Documentation Python" -#: ../Doc/howto/functional.rst:1240 +#: howto/functional.rst:1240 msgid "Documentation for the :mod:`itertools` module." msgstr "Documentation du module :mod:`itertools`." -#: ../Doc/howto/functional.rst:1242 +#: howto/functional.rst:1242 msgid "Documentation for the :mod:`functools` module." msgstr "Documentation du module :mod:`functools`." -#: ../Doc/howto/functional.rst:1244 +#: howto/functional.rst:1244 msgid "Documentation for the :mod:`operator` module." msgstr "Documentation du module :mod:`operator`." -#: ../Doc/howto/functional.rst:1246 +#: howto/functional.rst:1246 msgid ":pep:`289`: \"Generator Expressions\"" msgstr ":pep:`289`: *\"Generator Expressions\"*" -#: ../Doc/howto/functional.rst:1248 +#: howto/functional.rst:1248 msgid "" ":pep:`342`: \"Coroutines via Enhanced Generators\" describes the new " "generator features in Python 2.5." diff --git a/howto/instrumentation.po b/howto/instrumentation.po index cf1ffa5b96..c8f587749e 100644 --- a/howto/instrumentation.po +++ b/howto/instrumentation.po @@ -5,326 +5,423 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" +"PO-Revision-Date: 2019-10-31 16:04+0100\n" +"Last-Translator: Pierre Bousquié \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.4\n" -#: ../Doc/howto/instrumentation.rst:7 +#: howto/instrumentation.rst:7 msgid "Instrumenting CPython with DTrace and SystemTap" -msgstr "" +msgstr "Instrumenter CPython avec DTrace et SystemTap" -#: ../Doc/howto/instrumentation.rst:0 +#: howto/instrumentation.rst:0 msgid "author" msgstr "auteur" -#: ../Doc/howto/instrumentation.rst:9 +#: howto/instrumentation.rst:9 msgid "David Malcolm" -msgstr "" +msgstr "David Malcolm" -#: ../Doc/howto/instrumentation.rst:10 +#: howto/instrumentation.rst:10 msgid "Łukasz Langa" -msgstr "" +msgstr "Łukasz Langa" -#: ../Doc/howto/instrumentation.rst:12 +#: howto/instrumentation.rst:12 msgid "" "DTrace and SystemTap are monitoring tools, each providing a way to inspect " "what the processes on a computer system are doing. They both use domain-" "specific languages allowing a user to write scripts which:" msgstr "" +"*DTrace* et *SystemTap* sont des outils de surveillance, chacun fournissant " +"un moyen de d'inspecter ce que font les processus d'un système informatique. " +"Ils utilisent tous les deux des langages dédiés permettant à un utilisateur " +"d'écrire des scripts qui permettent de ::" -#: ../Doc/howto/instrumentation.rst:16 +#: howto/instrumentation.rst:16 msgid "filter which processes are to be observed" -msgstr "" +msgstr "Filtrer les processus à observer." -#: ../Doc/howto/instrumentation.rst:17 +#: howto/instrumentation.rst:17 msgid "gather data from the processes of interest" -msgstr "" +msgstr "Recueillir des données sur le processus choisi." -#: ../Doc/howto/instrumentation.rst:18 +#: howto/instrumentation.rst:18 msgid "generate reports on the data" -msgstr "" +msgstr "Générer des rapports sur les données." -#: ../Doc/howto/instrumentation.rst:20 +#: howto/instrumentation.rst:20 msgid "" "As of Python 3.6, CPython can be built with embedded \"markers\", also known " "as \"probes\", that can be observed by a DTrace or SystemTap script, making " "it easier to monitor what the CPython processes on a system are doing." msgstr "" +"À partir de Python 3.6, CPython peut être compilé avec des « marqueurs » " +"intégrés, aussi appelés « sondes », qui peuvent être observés par un script " +"*DTrace* ou *SystemTap*, ce qui facilite le suivi des processus CPython." -#: ../Doc/howto/instrumentation.rst:27 +#: howto/instrumentation.rst:27 msgid "" "DTrace markers are implementation details of the CPython interpreter. No " "guarantees are made about probe compatibility between versions of CPython. " "DTrace scripts can stop working or work incorrectly without warning when " "changing CPython versions." msgstr "" +"Les marqueurs DTrace sont des détails d'implémentation de l'interpréteur " +"CPython. Aucune garantie n'est donnée quant à la compatibilité des sondes " +"entre les versions de CPython. Les scripts DTrace peuvent s'arrêter de " +"fonctionner ou fonctionner incorrectement sans avertissement lors du " +"changement de version de CPython." -#: ../Doc/howto/instrumentation.rst:34 +#: howto/instrumentation.rst:34 msgid "Enabling the static markers" -msgstr "" +msgstr "Activer les marqueurs statiques" -#: ../Doc/howto/instrumentation.rst:36 +#: howto/instrumentation.rst:36 msgid "" "macOS comes with built-in support for DTrace. On Linux, in order to build " "CPython with the embedded markers for SystemTap, the SystemTap development " "tools must be installed." msgstr "" +"macOS est livré avec un support intégré pour *DTrace*. Sous Linux, pour " +"construire CPython avec les marqueurs embarqués pour *SystemTap*, les outils " +"de développement *SystemTap* doivent être installés." -#: ../Doc/howto/instrumentation.rst:40 +#: howto/instrumentation.rst:40 msgid "On a Linux machine, this can be done via::" -msgstr "" +msgstr "Sur une machine Linux, cela se fait via ::" -#: ../Doc/howto/instrumentation.rst:44 +#: howto/instrumentation.rst:44 msgid "or::" msgstr "ou ::" -#: ../Doc/howto/instrumentation.rst:49 +#: howto/instrumentation.rst:49 msgid "CPython must then be configured ``--with-dtrace``:" -msgstr "" +msgstr "CPython doit être configuré avec l'option ``--with-dtrace`` ::" -#: ../Doc/howto/instrumentation.rst:55 +#: howto/instrumentation.rst:55 msgid "" "On macOS, you can list available DTrace probes by running a Python process " "in the background and listing all probes made available by the Python " "provider::" msgstr "" +"Sous macOS, vous pouvez lister les sondes *DTrace* disponibles en exécutant " +"un processus Python en arrière-plan et en listant toutes les sondes mises à " +"disposition par le fournisseur Python ::" -#: ../Doc/howto/instrumentation.rst:72 +#: howto/instrumentation.rst:72 msgid "" "On Linux, you can verify if the SystemTap static markers are present in the " "built binary by seeing if it contains a \".note.stapsdt\" section." msgstr "" +"Sous Linux, pour vérifier que les marqueurs statiques *SystemTap* sont " +"présents dans le binaire compilé, il suffit de regarder s'il contient une " +"section ``.note.stapsdt``." -#: ../Doc/howto/instrumentation.rst:80 +#: howto/instrumentation.rst:80 msgid "" "If you've built Python as a shared library (with --enable-shared), you need " "to look instead within the shared library. For example::" msgstr "" +"Si vous avez compilé Python en tant que bibliothèque partagée (avec ``--" +"enable-shared``), vous devez plutôt regarder dans la bibliothèque partagée. " +"Par exemple ::" -#: ../Doc/howto/instrumentation.rst:86 +#: howto/instrumentation.rst:86 msgid "Sufficiently modern readelf can print the metadata::" msgstr "" +"Une version suffisamment moderne de *readelf* peut afficher les " +"métadonnées ::" -#: ../Doc/howto/instrumentation.rst:123 +#: howto/instrumentation.rst:123 msgid "" "The above metadata contains information for SystemTap describing how it can " "patch strategically-placed machine code instructions to enable the tracing " "hooks used by a SystemTap script." msgstr "" +"Les métadonnées ci-dessus contiennent des informations pour *SystemTap* " +"décrivant comment il peut mettre à jour des instructions de code machine " +"stratégiquement placées pour activer les crochets de traçage utilisés par un " +"script *SystemTap*." -#: ../Doc/howto/instrumentation.rst:129 +#: howto/instrumentation.rst:129 msgid "Static DTrace probes" -msgstr "" +msgstr "Sondes DTrace statiques" -#: ../Doc/howto/instrumentation.rst:131 +#: howto/instrumentation.rst:131 msgid "" "The following example DTrace script can be used to show the call/return " "hierarchy of a Python script, only tracing within the invocation of a " "function called \"start\". In other words, import-time function invocations " "are not going to be listed:" msgstr "" +"L'exemple suivant de script *DTrace* montre la hiérarchie d'appel/retour " +"d'un script Python, en ne traçant que l'invocation d'une fonction ``start``. " +"En d'autres termes, les appels de fonctions lors de la phase d'import ne " +"seront pas répertoriées ::" -#: ../Doc/howto/instrumentation.rst:170 ../Doc/howto/instrumentation.rst:228 +#: howto/instrumentation.rst:228 msgid "It can be invoked like this::" -msgstr "" +msgstr "Il peut être utilisé de cette manière ::" -#: ../Doc/howto/instrumentation.rst:174 ../Doc/howto/instrumentation.rst:234 +#: howto/instrumentation.rst:234 msgid "The output looks like this:" -msgstr "" +msgstr "La sortie ressemble à ceci ::" -#: ../Doc/howto/instrumentation.rst:199 +#: howto/instrumentation.rst:199 msgid "Static SystemTap markers" -msgstr "" +msgstr "Marqueurs statiques *SystemTap*" -#: ../Doc/howto/instrumentation.rst:201 +#: howto/instrumentation.rst:201 msgid "" "The low-level way to use the SystemTap integration is to use the static " "markers directly. This requires you to explicitly state the binary file " "containing them." msgstr "" +"La façon la plus simple d'utiliser l'intégration *SystemTap* est d'utiliser " +"directement les marqueurs statiques. Pour cela vous devez pointer " +"explicitement le fichier binaire qui les contient." -#: ../Doc/howto/instrumentation.rst:205 +#: howto/instrumentation.rst:205 msgid "" "For example, this SystemTap script can be used to show the call/return " "hierarchy of a Python script:" msgstr "" +"Par exemple, ce script *SystemTap* peut être utilisé pour afficher la " +"hiérarchie d'appel/retour d'un script Python ::" -#: ../Doc/howto/instrumentation.rst:245 +#: howto/instrumentation.rst:245 msgid "where the columns are:" -msgstr "" +msgstr "où les colonnes sont ::" -#: ../Doc/howto/instrumentation.rst:247 +#: howto/instrumentation.rst:247 msgid "time in microseconds since start of script" -msgstr "" +msgstr "temps en microsecondes depuis le début du script" -#: ../Doc/howto/instrumentation.rst:249 +#: howto/instrumentation.rst:249 msgid "name of executable" -msgstr "" +msgstr "nom de l'exécutable" -#: ../Doc/howto/instrumentation.rst:251 +#: howto/instrumentation.rst:251 msgid "PID of process" -msgstr "" +msgstr "PID du processus" -#: ../Doc/howto/instrumentation.rst:253 +#: howto/instrumentation.rst:253 msgid "" "and the remainder indicates the call/return hierarchy as the script executes." msgstr "" +"et le reste indique la hiérarchie d'appel/retour lorsque le script s'exécute." -#: ../Doc/howto/instrumentation.rst:255 +#: howto/instrumentation.rst:255 msgid "" "For a `--enable-shared` build of CPython, the markers are contained within " "the libpython shared library, and the probe's dotted path needs to reflect " "this. For example, this line from the above example:" msgstr "" +"Pour une compilation `--enable-shared` de CPython, les marqueurs sont " +"contenus dans la bibliothèque partagée *libpython*, et le chemin du module " +"de la sonde doit le refléter. Par exemple, la ligne de l'exemple ci-dessus :" -#: ../Doc/howto/instrumentation.rst:263 +#: howto/instrumentation.rst:263 msgid "should instead read:" -msgstr "" +msgstr "doit plutôt se lire comme ::" -#: ../Doc/howto/instrumentation.rst:269 +#: howto/instrumentation.rst:269 msgid "(assuming a debug build of CPython 3.6)" msgstr "" +"(en supposant une version compilée avec le débogage activé de CPython 3.6)" -#: ../Doc/howto/instrumentation.rst:273 +#: howto/instrumentation.rst:273 msgid "Available static markers" -msgstr "" +msgstr "Marqueurs statiques disponibles" -#: ../Doc/howto/instrumentation.rst:279 +#: howto/instrumentation.rst:277 msgid "" "This marker indicates that execution of a Python function has begun. It is " "only triggered for pure-Python (bytecode) functions." msgstr "" +"Ce marqueur indique que l'exécution d'une fonction Python a commencé. Il " +"n'est déclenché que pour les fonctions en Python pur (code intermédiaire)." -#: ../Doc/howto/instrumentation.rst:282 +#: howto/instrumentation.rst:280 msgid "" "The filename, function name, and line number are provided back to the " -"tracing script as positional arguments, which must be accessed using ``" -"$arg1``, ``$arg2``, ``$arg3``:" +"tracing script as positional arguments, which must be accessed using " +"``$arg1``, ``$arg2``, ``$arg3``:" msgstr "" +"Le nom de fichier, le nom de la fonction et le numéro de ligne sont renvoyés " +"au script de traçage sous forme d'arguments positionnels, auxquels il faut " +"accéder en utilisant ``$arg1``, ``$arg2``, ``$arg3`` :" -#: ../Doc/howto/instrumentation.rst:286 +#: howto/instrumentation.rst:284 msgid "" "``$arg1`` : ``(const char *)`` filename, accessible using " "``user_string($arg1)``" msgstr "" +"``$arg1`` : ``(const char *)`` nom de fichier, accessible via " +"``user_string($arg1)``" -#: ../Doc/howto/instrumentation.rst:288 +#: howto/instrumentation.rst:286 msgid "" "``$arg2`` : ``(const char *)`` function name, accessible using " "``user_string($arg2)``" msgstr "" +"``$arg2`` : ``(const char *)`` nom de la fonction, accessible via " +"``user_string($arg2)``" -#: ../Doc/howto/instrumentation.rst:291 +#: howto/instrumentation.rst:289 msgid "``$arg3`` : ``int`` line number" -msgstr "" +msgstr "``$arg3`` : numéro de ligne ``int``" -#: ../Doc/howto/instrumentation.rst:295 +#: howto/instrumentation.rst:293 msgid "" "This marker is the converse of :c:func:`function__entry`, and indicates that " "execution of a Python function has ended (either via ``return``, or via an " "exception). It is only triggered for pure-Python (bytecode) functions." msgstr "" +"Ce marqueur est l'inverse de :c:func:`function__entry`, et indique que " +"l'exécution d'une fonction Python est terminée (soit via ``return``, soit " +"via une exception). Il n'est déclenché que pour les fonctions en Python pur " +"(code intermédiaire)." -#: ../Doc/howto/instrumentation.rst:299 +#: howto/instrumentation.rst:297 msgid "The arguments are the same as for :c:func:`function__entry`" -msgstr "" +msgstr "Les arguments sont les mêmes que pour :c:func:`function__entry`" -#: ../Doc/howto/instrumentation.rst:303 +#: howto/instrumentation.rst:301 msgid "" "This marker indicates a Python line is about to be executed. It is the " "equivalent of line-by-line tracing with a Python profiler. It is not " "triggered within C functions." msgstr "" +"Ce marqueur indique qu'une ligne Python est sur le point d'être exécutée. " +"C'est l'équivalent du traçage ligne par ligne avec un profileur Python. Il " +"n'est pas déclenché dans les fonctions C." -#: ../Doc/howto/instrumentation.rst:307 +#: howto/instrumentation.rst:305 msgid "The arguments are the same as for :c:func:`function__entry`." -msgstr "" +msgstr "Les arguments sont les mêmes que pour :c:func:`function__entry`." -#: ../Doc/howto/instrumentation.rst:311 +#: howto/instrumentation.rst:309 msgid "" "Fires when the Python interpreter starts a garbage collection cycle. " "``arg0`` is the generation to scan, like :func:`gc.collect()`." msgstr "" +"Fonction appelée lorsque l'interpréteur Python lance un cycle de collecte du " +"ramasse-miettes. ``arg0`` est la génération à scanner, comme :func:`gc." +"collect()`." -#: ../Doc/howto/instrumentation.rst:316 +#: howto/instrumentation.rst:314 msgid "" "Fires when the Python interpreter finishes a garbage collection cycle. " "``arg0`` is the number of collected objects." msgstr "" +"Fonction appelée lorsque l'interpréteur Python termine un cycle de collecte " +"du ramasse-miettes. ``Arg0`` est le nombre d'objets collectés." -#: ../Doc/howto/instrumentation.rst:321 +#: howto/instrumentation.rst:319 msgid "" "Fires before :mod:`importlib` attempts to find and load the module. ``arg0`` " "is the module name." msgstr "" +"Fonction appelée avant que :mod:`importlib` essaye de trouver et de charger " +"le module. ``arg0`` est le nom du module." -#: ../Doc/howto/instrumentation.rst:328 +#: howto/instrumentation.rst:326 msgid "" "Fires after :mod:`importlib`'s find_and_load function is called. ``arg0`` is " "the module name, ``arg1`` indicates if module was successfully loaded." msgstr "" +"Fonction appelée après que la fonction ``find_and_load`` du module :mod:" +"`importlib` soit appelée. ``arg0`` est le nom du module, ``arg1`` indique si " +"le module a été chargé avec succès." -#: ../Doc/howto/instrumentation.rst:337 +#: howto/instrumentation.rst:335 msgid "" "Fires when :func:`sys.audit` or :c:func:`PySys_Audit` is called. ``arg0`` is " "the event name as C string, ``arg1`` is a :c:type:`PyObject` pointer to a " "tuple object." msgstr "" +"Fonction appelée quand les fonctions :func:`sys.audit` ou :c:func:" +"`PySys_Audit` sont appelées. ``arg0`` est le nom de l'évènement de type " +"chaîne de caractère C. ``arg1`` est un pointeur sur un tuple d'objet de " +"type :c:type:`PyObject`." -#: ../Doc/howto/instrumentation.rst:345 +#: howto/instrumentation.rst:343 msgid "SystemTap Tapsets" -msgstr "" +msgstr "*Tapsets* de *SystemTap*" -#: ../Doc/howto/instrumentation.rst:347 +#: howto/instrumentation.rst:345 msgid "" -"The higher-level way to use the SystemTap integration is to use a \"tapset" -"\": SystemTap's equivalent of a library, which hides some of the lower-level " -"details of the static markers." +"The higher-level way to use the SystemTap integration is to use a " +"\"tapset\": SystemTap's equivalent of a library, which hides some of the " +"lower-level details of the static markers." msgstr "" +"La façon la plus simple d'utiliser l'intégration *SystemTap* est d'utiliser " +"un *« tapset »*. L'équivalent pour *SystemTap* d'une bibliothèque, qui " +"permet de masquer les détails de niveau inférieur des marqueurs statiques." -#: ../Doc/howto/instrumentation.rst:351 +#: howto/instrumentation.rst:349 msgid "Here is a tapset file, based on a non-shared build of CPython:" msgstr "" +"Voici un fichier *tapset*, basé sur une version non partagée compilée de " +"CPython ::" -#: ../Doc/howto/instrumentation.rst:374 +#: howto/instrumentation.rst:372 msgid "" "If this file is installed in SystemTap's tapset directory (e.g. ``/usr/share/" "systemtap/tapset``), then these additional probepoints become available:" msgstr "" +"Si ce fichier est installé dans le répertoire *tapset* de *SystemTap* (par " +"exemple ``/usr/share/systemtap/tapset``), alors ces sondes supplémentaires " +"deviennent disponibles ::" -#: ../Doc/howto/instrumentation.rst:380 +#: howto/instrumentation.rst:378 msgid "" "This probe point indicates that execution of a Python function has begun. It " "is only triggered for pure-Python (bytecode) functions." msgstr "" +"Cette sonde indique que l'exécution d'une fonction Python a commencé. Elle " +"n'est déclenchée que pour les fonctions en Python pur (code intermédiaire)." -#: ../Doc/howto/instrumentation.rst:385 +#: howto/instrumentation.rst:383 msgid "" -"This probe point is the converse of :c:func:`python.function.return`, and " +"This probe point is the converse of ``python.function.return``, and " "indicates that execution of a Python function has ended (either via " "``return``, or via an exception). It is only triggered for pure-Python " "(bytecode) functions." msgstr "" +"Cette sonde est l'inverse de ``python.function.return``, et indique que " +"l'exécution d'une fonction Python est terminée (soit via ``return``, soit " +"via une exception). Elle est uniquement déclenchée pour les fonctions en " +"Python pur (code intermédiaire ou *bytecode*)." -#: ../Doc/howto/instrumentation.rst:392 +#: howto/instrumentation.rst:390 msgid "Examples" msgstr "Exemples" -#: ../Doc/howto/instrumentation.rst:393 +#: howto/instrumentation.rst:391 msgid "" "This SystemTap script uses the tapset above to more cleanly implement the " "example given above of tracing the Python function-call hierarchy, without " "needing to directly name the static markers:" msgstr "" +"Ce script *SystemTap* utilise le *tapset* ci-dessus pour implémenter plus " +"proprement l'exemple précédent de traçage de la hiérarchie des appels de " +"fonctions Python, sans avoir besoin de nommer directement les marqueurs " +"statiques ::" -#: ../Doc/howto/instrumentation.rst:412 +#: howto/instrumentation.rst:410 msgid "" "The following script uses the tapset above to provide a top-like view of all " "running CPython code, showing the top 20 most frequently-entered bytecode " "frames, each second, across the whole system:" msgstr "" +"Le script suivant utilise le *tapset* ci-dessus pour fournir une vue de " +"l'ensemble du code CPython en cours d'exécution, montrant les 20 cadres de " +"la pile d'appel (*stack frames*) les plus fréquemment utilisées du code " +"intermédiaire, chaque seconde, sur l'ensemble du système ::" diff --git a/howto/ipaddress.po b/howto/ipaddress.po index 9b53b7b853..8087954fe3 100644 --- a/howto/ipaddress.po +++ b/howto/ipaddress.po @@ -269,7 +269,7 @@ msgstr "" #: ../Doc/howto/ipaddress.rst:163 msgid "Extracting the IP version::" -msgstr "Extraire la version du protocole IP" +msgstr "Extraire la version du protocole IP ::" #: ../Doc/howto/ipaddress.rst:172 msgid "Obtaining the network from an interface::" diff --git a/howto/logging-cookbook.po b/howto/logging-cookbook.po index 9d9f1eeaa6..eddab04ea4 100644 --- a/howto/logging-cookbook.po +++ b/howto/logging-cookbook.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,29 +14,29 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/howto/logging-cookbook.rst:5 +#: howto/logging-cookbook.rst:5 msgid "Logging Cookbook" -msgstr "" +msgstr "Recettes pour la journalisation" -#: ../Doc/howto/logging-cookbook.rst:0 +#: howto/logging-cookbook.rst:0 msgid "Author" msgstr "Auteur" -#: ../Doc/howto/logging-cookbook.rst:7 +#: howto/logging-cookbook.rst:7 msgid "Vinay Sajip " msgstr "Vinay Sajip " -#: ../Doc/howto/logging-cookbook.rst:9 +#: howto/logging-cookbook.rst:9 msgid "" "This page contains a number of recipes related to logging, which have been " "found useful in the past." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:15 +#: howto/logging-cookbook.rst:15 msgid "Using logging in multiple modules" -msgstr "" +msgstr "Journalisation dans plusieurs modules" -#: ../Doc/howto/logging-cookbook.rst:17 +#: howto/logging-cookbook.rst:17 msgid "" "Multiple calls to ``logging.getLogger('someLogger')`` return a reference to " "the same logger object. This is true not only within the same module, but " @@ -47,40 +47,54 @@ msgid "" "logger calls to the child will pass up to the parent. Here is a main " "module::" msgstr "" +"Deux appels à ``logging.getLogger('unLogger')`` renvoient toujours une " +"référence vers le même objet de journalisation. C’est valable à l’intérieur " +"d’un module, mais aussi dans des modules différents pour autant que ce soit " +"le même processus de l’interpréteur Python. En plus, le code d’une " +"application peut définir et configurer une journalisation parente dans un " +"module et créer (mais pas configurer) une journalisation fille dans un " +"module séparé. Les appels à la journalisation fille passeront alors à la " +"journalisation parente. Voici un module principal ::" -#: ../Doc/howto/logging-cookbook.rst:55 +#: howto/logging-cookbook.rst:55 msgid "Here is the auxiliary module::" -msgstr "" +msgstr "Voici un module auxiliaire ::" -#: ../Doc/howto/logging-cookbook.rst:75 +#: howto/logging-cookbook.rst:75 msgid "The output looks like this:" -msgstr "" +msgstr "La sortie ressemble à ceci ::" -#: ../Doc/howto/logging-cookbook.rst:101 +#: howto/logging-cookbook.rst:101 msgid "Logging from multiple threads" -msgstr "" +msgstr "Journalisation avec des fils d’exécution multiples" -#: ../Doc/howto/logging-cookbook.rst:103 +#: howto/logging-cookbook.rst:103 msgid "" "Logging from multiple threads requires no special effort. The following " "example shows logging from the main (initial) thread and another thread::" msgstr "" +"La journalisation avec des fils d’exécution multiples ne requiert pas " +"d’effort particulier. L’exemple suivant montre comment journaliser depuis le " +"fil principal (c.-à-d. initial) et un autre fil ::" -#: ../Doc/howto/logging-cookbook.rst:132 +#: howto/logging-cookbook.rst:132 msgid "When run, the script should print something like the following:" -msgstr "" +msgstr "À l’exécution, le script doit afficher quelque chose comme ça ::" -#: ../Doc/howto/logging-cookbook.rst:154 +#: howto/logging-cookbook.rst:154 msgid "" "This shows the logging output interspersed as one might expect. This " "approach works for more threads than shown here, of course." msgstr "" +"Les entrées de journalisation sont entrelacées, comme on pouvait s’y " +"attendre. Cette approche fonctionne aussi avec plus de fils que dans " +"l’exemple, bien sûr." -#: ../Doc/howto/logging-cookbook.rst:158 +#: howto/logging-cookbook.rst:158 msgid "Multiple handlers and formatters" -msgstr "" +msgstr "Plusieurs gestionnaires et formateurs" -#: ../Doc/howto/logging-cookbook.rst:160 +#: howto/logging-cookbook.rst:160 msgid "" "Loggers are plain Python objects. The :meth:`~Logger.addHandler` method has " "no minimum or maximum quota for the number of handlers you may add. " @@ -91,15 +105,27 @@ msgid "" "slight modification to the previous simple module-based configuration " "example::" msgstr "" +"Les gestionnaires de journalisation sont des objets Python ordinaires. La " +"méthode :meth:`~Logger.addHandler` n’est pas limitée, en nombre minimum ou " +"maximum, en gestionnaires que vous pouvez ajouter. Parfois, il peut être " +"utile pour une application de journaliser tous les messages quels que soient " +"leurs niveaux vers un fichier texte, tout en journalisant les erreurs (et " +"plus grave) dans la console. Pour ce faire, configurez simplement les " +"gestionnaires de manière adéquate. Les appels de journalisation dans le code " +"de l’application resteront les mêmes. Voici une légère modification de " +"l’exemple précédent dans une configuration au niveau du module ::" -#: ../Doc/howto/logging-cookbook.rst:193 +#: howto/logging-cookbook.rst:193 msgid "" "Notice that the 'application' code does not care about multiple handlers. " "All that changed was the addition and configuration of a new handler named " "*fh*." msgstr "" +"Notez que le code de « l’application » ignore la multiplicité des " +"gestionnaires. Les modifications consistent simplement en l’ajout et la " +"configuration d’un nouveau gestionnaire appelé *fh*." -#: ../Doc/howto/logging-cookbook.rst:196 +#: howto/logging-cookbook.rst:196 msgid "" "The ability to create new handlers with higher- or lower-severity filters " "can be very helpful when writing and testing an application. Instead of " @@ -110,12 +136,21 @@ msgid "" "to happen is to modify the severity level of the logger and/or handler to " "debug." msgstr "" - -#: ../Doc/howto/logging-cookbook.rst:207 +"La possibilité de créer de nouveaux gestionnaires avec des filtres sur un " +"niveau de gravité supérieur ou inférieur peut être très utile lors de " +"l’écriture ou du test d’une application. Au lieu d’utiliser de nombreuses " +"instructions ``print`` pour le débogage, utilisez ``logger.debug`` : " +"contrairement aux instructions ``print``, que vous devrez supprimer ou " +"commenter plus tard, les instructions ``logger.debug`` peuvent demeurer " +"telles quelles dans le code source et restent dormantes jusqu’à ce que vous " +"en ayez à nouveau besoin. À ce moment-là, il suffit de modifier le niveau de " +"gravité de la journalisation ou du gestionnaire pour déboguer." + +#: howto/logging-cookbook.rst:207 msgid "Logging to multiple destinations" -msgstr "" +msgstr "Journalisation vers plusieurs destinations" -#: ../Doc/howto/logging-cookbook.rst:209 +#: howto/logging-cookbook.rst:209 msgid "" "Let's say you want to log to console and file with different message formats " "and in differing circumstances. Say you want to log messages with levels of " @@ -123,54 +158,70 @@ msgid "" "console. Let's also assume that the file should contain timestamps, but the " "console messages should not. Here's how you can achieve this::" msgstr "" +"Supposons que vous souhaitiez journaliser dans la console et dans un fichier " +"avec différents formats de messages et avec différents critères. Supposons " +"que vous souhaitiez consigner les messages de niveau DEBUG et supérieur dans " +"le fichier, et les messages de niveau INFO et supérieur dans la console. " +"Supposons également que le fichier doive contenir des horodatages, mais pas " +"les messages de la console. Voici comment y parvenir ::" -#: ../Doc/howto/logging-cookbook.rst:247 +#: howto/logging-cookbook.rst:247 msgid "When you run this, on the console you will see" -msgstr "" +msgstr "Quand vous le lancez, vous devez voir" -#: ../Doc/howto/logging-cookbook.rst:256 +#: howto/logging-cookbook.rst:256 msgid "and in the file you will see something like" -msgstr "" +msgstr "et, dans le fichier, vous devez trouver" -#: ../Doc/howto/logging-cookbook.rst:266 +#: howto/logging-cookbook.rst:266 msgid "" "As you can see, the DEBUG message only shows up in the file. The other " "messages are sent to both destinations." msgstr "" +"Comme vous pouvez le constater, le message DEBUG n’apparaît que dans le " +"fichier. Les autres messages sont envoyés vers les deux destinations." -#: ../Doc/howto/logging-cookbook.rst:269 +#: howto/logging-cookbook.rst:269 msgid "" "This example uses console and file handlers, but you can use any number and " "combination of handlers you choose." msgstr "" +"Cet exemple utilise la console et des gestionnaires de fichier, mais vous " +"pouvez utiliser et combiner autant de gestionnaires que de besoin." -#: ../Doc/howto/logging-cookbook.rst:274 +#: howto/logging-cookbook.rst:274 msgid "Configuration server example" -msgstr "" +msgstr "Exemple d’un serveur de configuration" -#: ../Doc/howto/logging-cookbook.rst:276 +#: howto/logging-cookbook.rst:276 msgid "Here is an example of a module using the logging configuration server::" msgstr "" +"Voici un exemple de module mettant en œuvre la configuration de la " +"journalisation *via* un serveur ::" -#: ../Doc/howto/logging-cookbook.rst:307 +#: howto/logging-cookbook.rst:307 msgid "" "And here is a script that takes a filename and sends that file to the " "server, properly preceded with the binary-encoded length, as the new logging " "configuration::" msgstr "" +"Et voici un script qui, à partir d’un nom de fichier, commence par envoyer " +"la taille du fichier encodée en binaire (comme il se doit), puis envoie ce " +"fichier au serveur pour définir la nouvelle configuration de " +"journalisation ::" -#: ../Doc/howto/logging-cookbook.rst:330 +#: howto/logging-cookbook.rst:330 msgid "Dealing with handlers that block" -msgstr "" +msgstr "Utilisation de gestionnaires bloquants" -#: ../Doc/howto/logging-cookbook.rst:334 +#: howto/logging-cookbook.rst:334 msgid "" "Sometimes you have to get your logging handlers to do their work without " "blocking the thread you're logging from. This is common in Web applications, " "though of course it also occurs in other scenarios." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:338 +#: howto/logging-cookbook.rst:338 msgid "" "A common culprit which demonstrates sluggish behaviour is the :class:" "`SMTPHandler`: sending emails can take a long time, for a number of reasons " @@ -180,8 +231,17 @@ msgid "" "which is too slow (and this query can be deep in the socket library code, " "below the Python layer, and outside your control)." msgstr "" +"Un gestionnaire classiquement lent est le :class:`SMTPHandler` : l’envoi d’e-" +"mails peut prendre beaucoup de temps, pour un certain nombre de raisons " +"indépendantes du développeur (par exemple, une infrastructure de messagerie " +"ou de réseau peu performante). Mais n’importe quel autre gestionnaire " +"utilisant le réseau ou presque peut aussi s’avérer bloquant : même une " +"simple opération :class:`SocketHandler` peut faire une requête DNS implicite " +"et être ainsi très lente (cette requête peut être enfouie profondément dans " +"le code de la bibliothèque d’accès réseau, sous la couche Python, et hors de " +"votre contrôle)." -#: ../Doc/howto/logging-cookbook.rst:346 +#: howto/logging-cookbook.rst:346 msgid "" "One solution is to use a two-part approach. For the first part, attach only " "a :class:`QueueHandler` to those loggers which are accessed from performance-" @@ -194,8 +254,20 @@ msgid "" "to attach only ``QueueHandlers`` to your loggers) for the benefit of other " "developers who will use your code." msgstr "" - -#: ../Doc/howto/logging-cookbook.rst:357 +"Une solution consiste à utiliser une approche en deux parties. Pour la " +"première partie, affectez un seul :class:`QueueHandler` à la journalisation " +"des fils d’exécution critiques pour les performances. Ils écrivent " +"simplement dans leur file d’attente, qui peut être dimensionnée à une " +"capacité suffisamment grande ou initialisée sans limite supérieure en " +"taille. L’écriture dans la file d’attente est généralement acceptée " +"rapidement, mais nous vous conseillons quand même de prévoir d’intercepter " +"l’exception :exc:`queue.Full` par précaution dans votre code. Si vous " +"développez une bibliothèque avec des fils d’exécution critiques pour les " +"performances, documentez-le bien (avec une suggestion de n’affecter que des " +"``QueueHandlers`` à votre journalisation) pour faciliter le travail des " +"développeurs qui utilisent votre code." + +#: howto/logging-cookbook.rst:357 msgid "" "The second part of the solution is :class:`QueueListener`, which has been " "designed as the counterpart to :class:`QueueHandler`. A :class:" @@ -205,8 +277,15 @@ msgid "" "matter). The ``LogRecords`` are removed from the queue and passed to the " "handlers for processing." msgstr "" +"La deuxième partie de la solution est la classe :class:`QueueListener`, " +"conçue comme l’homologue de :class:`QueueHandler`. Un :class:`QueueListener` " +"est très simple : vous lui passez une file d’attente et des gestionnaires, " +"et il lance un fil d’exécution interne qui scrute la file d’attente pour " +"récupérer les événements envoyés par les ``QueueHandlers`` (ou toute autre " +"source de ``LogRecords``, d’ailleurs). Les ``LogRecords`` sont supprimés de " +"la file d’attente et transmis aux gestionnaires pour traitement." -#: ../Doc/howto/logging-cookbook.rst:365 +#: howto/logging-cookbook.rst:365 msgid "" "The advantage of having a separate :class:`QueueListener` class is that you " "can use the same instance to service multiple ``QueueHandlers``. This is " @@ -214,16 +293,22 @@ msgid "" "handler classes, which would eat up one thread per handler for no particular " "benefit." msgstr "" +"L’avantage d’avoir une classe :class:`QueueListener` séparée est que vous " +"pouvez utiliser la même instance pour servir plusieurs ``QueueHandlers``. " +"Cela consomme moins de ressources que des instances de gestionnaires " +"réparties chacune dans un fil d’exécution séparé." -#: ../Doc/howto/logging-cookbook.rst:370 +#: howto/logging-cookbook.rst:370 msgid "An example of using these two classes follows (imports omitted)::" msgstr "" +"Voici un exemple d’utilisation de ces deux classes (les importations sont " +"omises) ::" -#: ../Doc/howto/logging-cookbook.rst:388 +#: howto/logging-cookbook.rst:388 msgid "which, when run, will produce:" -msgstr "" +msgstr "ce qui produit ceci à l’exécution :" -#: ../Doc/howto/logging-cookbook.rst:394 +#: howto/logging-cookbook.rst:394 msgid "" "Prior to Python 3.5, the :class:`QueueListener` always passed every message " "received from the queue to every handler it was initialized with. (This was " @@ -234,31 +319,47 @@ msgid "" "of each message with the handler's level, and only passes a message to a " "handler if it's appropriate to do so." msgstr "" +"avant Python 3.5, la classe :class:`QueueListener` passait chaque message " +"reçu de la file d’attente à chaque gestionnaire avec lequel l’instance avait " +"été initialisée (on supposait que le filtrage de niveau était entièrement " +"effectué de l’autre côté, au niveau de l’alimentation de la file d’attente). " +"Depuis Python 3.5, le comportement peut être modifié en passant l’argument " +"par mot-clé ``respect_handler_level=True`` au constructeur. Dans ce cas, la " +"``QueueListener`` compare le niveau de chaque message avec le niveau défini " +"dans chaque gestionnaire et ne transmet le message que si c’est opportun." -#: ../Doc/howto/logging-cookbook.rst:407 +#: howto/logging-cookbook.rst:407 msgid "Sending and receiving logging events across a network" -msgstr "" +msgstr "Envoi et réception d’événements de journalisation à travers le réseau" -#: ../Doc/howto/logging-cookbook.rst:409 +#: howto/logging-cookbook.rst:409 msgid "" "Let's say you want to send logging events across a network, and handle them " "at the receiving end. A simple way of doing this is attaching a :class:" "`SocketHandler` instance to the root logger at the sending end::" msgstr "" +"Supposons que vous souhaitiez envoyer des événements de journalisation sur " +"un réseau et les traiter à la réception. Une façon simple de faire est " +"d’attacher une instance :class:`SocketHandler` à la journalisation racine de " +"l’émetteur ::" -#: ../Doc/howto/logging-cookbook.rst:437 +#: howto/logging-cookbook.rst:437 msgid "" "At the receiving end, you can set up a receiver using the :mod:" "`socketserver` module. Here is a basic working example::" msgstr "" +"Vous pouvez configurer le récepteur en utilisant le module :mod:" +"`socketserver`. Voici un exemple élémentaire ::" -#: ../Doc/howto/logging-cookbook.rst:525 +#: howto/logging-cookbook.rst:525 msgid "" "First run the server, and then the client. On the client side, nothing is " "printed on the console; on the server side, you should see something like:" msgstr "" +"Lancez d’abord le serveur, puis le client. Côté client, rien ne s’affiche " +"sur la console ; côté serveur, vous devez voir quelque chose comme ça :" -#: ../Doc/howto/logging-cookbook.rst:537 +#: howto/logging-cookbook.rst:537 msgid "" "Note that there are some security issues with pickle in some scenarios. If " "these affect you, you can use an alternative serialization scheme by " @@ -266,12 +367,17 @@ msgid "" "implementing your alternative there, as well as adapting the above script to " "use your alternative serialization." msgstr "" +"Notez que ``pickle`` introduit des problèmes de sécurité dans certains " +"scénarios. Si vous êtes concerné, vous pouvez utiliser une sérialisation " +"alternative en surchargeant la méthode :meth:`~handlers.SocketHandler." +"makePickle` par votre propre implémentation, ainsi qu’en adaptant le script " +"ci-dessus pour utiliser votre sérialisation." -#: ../Doc/howto/logging-cookbook.rst:547 +#: howto/logging-cookbook.rst:547 msgid "Adding contextual information to your logging output" -msgstr "" +msgstr "Ajout d’informations contextuelles dans la journalisation" -#: ../Doc/howto/logging-cookbook.rst:549 +#: howto/logging-cookbook.rst:549 msgid "" "Sometimes you want logging output to contain contextual information in " "addition to the parameters passed to the logging call. For example, in a " @@ -286,12 +392,28 @@ msgid "" "logging an application, it could be hard to manage if the number of :class:" "`Logger` instances becomes effectively unbounded." msgstr "" - -#: ../Doc/howto/logging-cookbook.rst:564 +"Dans certains cas, vous pouvez souhaiter que la journalisation contienne des " +"informations contextuelles en plus des paramètres transmis à l’appel de " +"journalisation. Par exemple, dans une application réseau, il peut être " +"souhaitable de consigner des informations spécifiques au client dans le " +"journal (par exemple, le nom d’utilisateur ou l’adresse IP du client " +"distant). Bien que vous puissiez utiliser le paramètre *extra* pour y " +"parvenir, il n’est pas toujours pratique de transmettre les informations de " +"cette manière. Il peut être aussi tentant de créer des instances :class:" +"`Logger` connexion par connexion, mais ce n’est pas une bonne idée car ces " +"instances :class:`Logger` ne sont pas éliminées par le ramasse-miettes. Même " +"si ce point n’est pas problématique en soi si la journalisation est " +"configurée avec plusieurs niveaux de granularité, cela peut devenir " +"difficile de gérer un nombre potentiellement illimité d’instances de :class:" +"`Logger`." + +#: howto/logging-cookbook.rst:564 msgid "Using LoggerAdapters to impart contextual information" msgstr "" +"Utilisation d’adaptateurs de journalisation pour transmettre des " +"informations contextuelles" -#: ../Doc/howto/logging-cookbook.rst:566 +#: howto/logging-cookbook.rst:566 msgid "" "An easy way in which you can pass contextual information to be output along " "with logging event information is to use the :class:`LoggerAdapter` class. " @@ -301,8 +423,16 @@ msgid "" "signatures as their counterparts in :class:`Logger`, so you can use the two " "types of instances interchangeably." msgstr "" +"Un moyen simple de transmettre des informations contextuelles accompagnant " +"les informations de journalisation consiste à utiliser la classe :class:" +"`LoggerAdapter`. Cette classe est conçue pour ressembler à un :class:" +"`Logger`, de sorte que vous pouvez appeler :meth:`debug`, :meth:`info`, :" +"meth:`warning`, :meth:`error`, :meth:`exception`, :meth:`critical` et :meth:" +"`log`. Ces méthodes ont les mêmes signatures que leurs homologues dans :" +"class:`Logger`, vous pouvez donc utiliser les deux types d’instances de " +"manière interchangeable." -#: ../Doc/howto/logging-cookbook.rst:574 +#: howto/logging-cookbook.rst:574 msgid "" "When you create an instance of :class:`LoggerAdapter`, you pass it a :class:" "`Logger` instance and a dict-like object which contains your contextual " @@ -312,8 +442,15 @@ msgid "" "contextual information in the delegated call. Here's a snippet from the code " "of :class:`LoggerAdapter`::" msgstr "" +"Lorsque vous créez une instance de :class:`LoggerAdapter`, vous lui " +"transmettez une instance de :class:`Logger` et un objet dictionnaire qui " +"contient vos informations contextuelles. Lorsque vous appelez l’une des " +"méthodes de journalisation sur une instance de :class:`LoggerAdapter`, elle " +"délègue l’appel à l’instance sous-jacente de :class:`Logger` transmise à son " +"constructeur et s’arrange pour intégrer les informations contextuelles dans " +"l’appel délégué. Voici un extrait du code de :class:`LoggerAdapter` ::" -#: ../Doc/howto/logging-cookbook.rst:590 +#: howto/logging-cookbook.rst:590 msgid "" "The :meth:`~LoggerAdapter.process` method of :class:`LoggerAdapter` is where " "the contextual information is added to the logging output. It's passed the " @@ -325,8 +462,17 @@ msgid "" "had passed an 'extra' keyword argument in the call to the adapter, it will " "be silently overwritten." msgstr "" +"Les informations contextuelles sont ajoutées dans la méthode :meth:" +"`~LoggerAdapter.process` de :class:`LoggerAdapter`. On lui passe le message " +"et les arguments par mot-clé de l’appel de journalisation, et elle en " +"renvoie des versions (potentiellement) modifiées à utiliser pour la " +"journalisation sous-jacente. L’implémentation par défaut de cette méthode " +"laisse le message seul, mais insère une clé ``extra`` dans l’argument par " +"mot-clé dont la valeur est l’objet dictionnaire passé au constructeur. Bien " +"sûr, si vous avez passé un argument par mot-clé ``extra`` dans l’appel à " +"l’adaptateur, il est écrasé silencieusement." -#: ../Doc/howto/logging-cookbook.rst:599 +#: howto/logging-cookbook.rst:599 msgid "" "The advantage of using 'extra' is that the values in the dict-like object " "are merged into the :class:`LogRecord` instance's __dict__, allowing you to " @@ -336,22 +482,35 @@ msgid "" "string, you just need to subclass :class:`LoggerAdapter` and override :meth:" "`~LoggerAdapter.process` to do what you need. Here is a simple example::" msgstr "" - -#: ../Doc/howto/logging-cookbook.rst:615 +"L’avantage d’utiliser ``extra`` est que les valeurs de l’objet dictionnaire " +"sont fusionnées dans le ``__dict__`` de l’instance :class:`LogRecord`, ce " +"qui vous permet d’utiliser des chaînes personnalisées avec vos instances :" +"class:`Formatter` qui connaissent les clés de l’objet dictionnaire. Si vous " +"avez besoin d’une méthode différente, par exemple si vous souhaitez ajouter " +"des informations contextuelles avant ou après la chaîne de message, il vous " +"suffit de surcharger :class:`LoggerAdapter` et de remplacer :meth:" +"`~LoggerAdapter.process` pour faire ce dont vous avez besoin. Voici un " +"exemple simple ::" + +#: howto/logging-cookbook.rst:615 msgid "which you can use like this::" -msgstr "" +msgstr "que vous pouvez utiliser comme ceci ::" -#: ../Doc/howto/logging-cookbook.rst:620 +#: howto/logging-cookbook.rst:620 msgid "" "Then any events that you log to the adapter will have the value of " "``some_conn_id`` prepended to the log messages." msgstr "" +"Ainsi, tout événement journalisé aura la valeur de ``some_conn_id`` insérée " +"en début de message de journalisation." -#: ../Doc/howto/logging-cookbook.rst:624 +#: howto/logging-cookbook.rst:624 msgid "Using objects other than dicts to pass contextual information" msgstr "" +"Utilisation d’objets autres que les dictionnaires pour passer des " +"informations contextuelles" -#: ../Doc/howto/logging-cookbook.rst:626 +#: howto/logging-cookbook.rst:626 msgid "" "You don't need to pass an actual dict to a :class:`LoggerAdapter` - you " "could pass an instance of a class which implements ``__getitem__`` and " @@ -359,12 +518,18 @@ msgid "" "if you want to generate values dynamically (whereas the values in a dict " "would be constant)." msgstr "" +"Il n’est pas obligatoire de passer un dictionnaire réel à un :class:" +"`LoggerAdapter`, vous pouvez passer une instance d’une classe qui implémente " +"``__getitem__`` et ``__iter__`` pour qu’il ressemble à un dictionnaire du " +"point de vue de la journalisation. C’est utile si vous souhaitez générer des " +"valeurs de manière dynamique (alors que les valeurs d’un dictionnaire " +"seraient constantes)." -#: ../Doc/howto/logging-cookbook.rst:635 +#: howto/logging-cookbook.rst:635 msgid "Using Filters to impart contextual information" -msgstr "" +msgstr "Utilisation de filtres pour transmettre des informations contextuelles" -#: ../Doc/howto/logging-cookbook.rst:637 +#: howto/logging-cookbook.rst:637 msgid "" "You can also add contextual information to log output using a user-defined :" "class:`Filter`. ``Filter`` instances are allowed to modify the " @@ -372,8 +537,14 @@ msgid "" "can then be output using a suitable format string, or if needed a custom :" "class:`Formatter`." msgstr "" +"Un :class:`Filter` défini par l’utilisateur peut aussi ajouter des " +"informations contextuelles à la journalisation. Les instances de ``Filter`` " +"sont autorisées à modifier les ``LogRecords`` qui leur sont transmis, y " +"compris par l’ajout d’attributs supplémentaires qui peuvent ensuite être " +"intégrés à la journalisation en utilisant une chaîne de formatage appropriée " +"ou, si nécessaire, un :class:`Formatter` personnalisé." -#: ../Doc/howto/logging-cookbook.rst:642 +#: howto/logging-cookbook.rst:642 msgid "" "For example in a web application, the request being processed (or at least, " "the interesting parts of it) can be stored in a threadlocal (:class:" @@ -384,16 +555,25 @@ msgid "" "format string can be used to get similar output to that shown above. Here's " "an example script::" msgstr "" - -#: ../Doc/howto/logging-cookbook.rst:688 +"Par exemple, dans une application Web, la requête en cours de traitement (ou " +"du moins ce qu’elle contient d’intéressant) peut être stockée dans une " +"variable locale au fil d’exécution (:class:`threading.local`), puis utilisée " +"dans un ``Filter`` pour ajouter, par exemple, des informations relatives à " +"la requête (par exemple, l’adresse IP distante et le nom de l’utilisateur) " +"au ``LogRecord``, en utilisant les noms d’attribut ``ip`` et ``user`` comme " +"dans l’exemple ``LoggerAdapter`` ci-dessus. Dans ce cas, la même chaîne de " +"formatage peut être utilisée pour obtenir une sortie similaire à celle " +"indiquée ci-dessus. Voici un exemple de script ::" + +#: howto/logging-cookbook.rst:688 msgid "which, when run, produces something like:" -msgstr "" +msgstr "qui, à l’exécution, produit quelque chose comme ça ::" -#: ../Doc/howto/logging-cookbook.rst:709 +#: howto/logging-cookbook.rst:709 msgid "Logging to a single file from multiple processes" -msgstr "" +msgstr "Journalisation vers un fichier unique à partir de plusieurs processus" -#: ../Doc/howto/logging-cookbook.rst:711 +#: howto/logging-cookbook.rst:711 msgid "" "Although logging is thread-safe, and logging to a single file from multiple " "threads in a single process *is* supported, logging to a single file from " @@ -408,8 +588,22 @@ msgid "" "includes a working socket receiver which can be used as a starting point for " "you to adapt in your own applications." msgstr "" - -#: ../Doc/howto/logging-cookbook.rst:724 +"La journalisation est fiable avec les programmes à fils d’exécution " +"multiples (*thread-safe*) : rien n’empêche plusieurs fils d’exécution de " +"journaliser dans le même fichier, du moment que ces fils d’exécution font " +"partie du même processus. En revanche, il n’existe aucun moyen standard de " +"sérialiser l’accès à un seul fichier sur plusieurs processus en Python. Si " +"vous avez besoin de vous connecter à un seul fichier à partir de plusieurs " +"processus, une façon de le faire est de faire en sorte que tous les " +"processus se connectent à un :class:`~handlers.SocketHandler`, et d’avoir un " +"processus séparé qui implémente un serveur qui lit à partir de ce connecteur " +"et écrit les journaux dans le fichier (si vous préférez, vous pouvez dédier " +"un fil d’exécution dans l’un des processus existants pour exécuter cette " +"tâche). :ref:`Cette section ` documente cette approche plus " +"en détail et inclut un connecteur en écoute réseau fonctionnel qui peut être " +"utilisé comme point de départ pour l’adapter à vos propres applications." + +#: howto/logging-cookbook.rst:724 msgid "" "You could also write your own handler which uses the :class:" "`~multiprocessing.Lock` class from the :mod:`multiprocessing` module to " @@ -419,8 +613,16 @@ msgid "" "`multiprocessing` module does not provide working lock functionality on all " "platforms (see https://bugs.python.org/issue3770)." msgstr "" +"Vous pouvez également écrire votre propre gestionnaire en utilisant la " +"classe :class:`~multiprocessing.Lock` du module :mod:`multiprocessing` pour " +"sérialiser l’accès au fichier depuis vos processus. Les actuels :class:" +"`FileHandler` et sous-classes n’utilisent pas :mod:`multiprocessing` pour le " +"moment, même s’ils pourraient le faire à l’avenir. Notez qu’à l’heure " +"actuelle, le module :mod:`multiprocessing` ne fournit pas un verrouillage " +"fonctionnel pour toutes les plates-formes (voir https://bugs.python.org/" +"issue3770)." -#: ../Doc/howto/logging-cookbook.rst:734 +#: howto/logging-cookbook.rst:734 msgid "" "Alternatively, you can use a ``Queue`` and a :class:`QueueHandler` to send " "all logging events to one of the processes in your multi-process " @@ -434,14 +636,28 @@ msgid "" "application, and can be used as the basis for code meeting your own specific " "requirements::" msgstr "" - -#: ../Doc/howto/logging-cookbook.rst:850 +"Autrement, vous pouvez utiliser une ``Queue`` et un :class:`QueueHandler` " +"pour envoyer tous les événements de journalisation à l’un des processus de " +"votre application multi-processus. L’exemple de script suivant montre " +"comment procéder ; dans l’exemple, un processus d’écoute distinct écoute les " +"événements envoyés par les autres processus et les journalise en fonction de " +"sa propre configuration de journalisation. Bien que l’exemple ne montre " +"qu’une seule façon de faire (par exemple, vous pouvez utiliser un fil " +"d’exécution d’écoute plutôt qu’un processus d’écoute séparé – " +"l’implémentation serait analogue), il permet des configurations de " +"journalisation complètement différentes pour celui qui écoute ainsi que pour " +"les autres processus de votre application, et peut être utilisé comme base " +"pour répondre à vos propres exigences ::" + +#: howto/logging-cookbook.rst:850 msgid "" "A variant of the above script keeps the logging in the main process, in a " "separate thread::" msgstr "" +"Une variante du script ci-dessus conserve la journalisation dans le " +"processus principal, dans un fil séparé ::" -#: ../Doc/howto/logging-cookbook.rst:945 +#: howto/logging-cookbook.rst:945 msgid "" "This variant shows how you can e.g. apply configuration for particular " "loggers - e.g. the ``foo`` logger has a special handler which stores all " @@ -450,35 +666,49 @@ msgid "" "events are generated in the worker processes) to direct the messages to the " "appropriate destinations." msgstr "" +"Cette variante montre comment appliquer la configuration pour des " +"enregistreurs particuliers – par exemple l’enregistreur ``foo`` a un " +"gestionnaire spécial qui stocke tous les événements du sous-système ``foo`` " +"dans un fichier ``mplog-foo.log``. C’est utilisé par le mécanisme de " +"journalisation dans le processus principal (même si les événements de " +"journalisation sont générés dans les processus de travail) pour diriger les " +"messages vers les destinations appropriées." -#: ../Doc/howto/logging-cookbook.rst:952 +#: howto/logging-cookbook.rst:952 msgid "Using concurrent.futures.ProcessPoolExecutor" -msgstr "" +msgstr "Utilisation de concurrent.futures.ProcessPoolExecutor" -#: ../Doc/howto/logging-cookbook.rst:954 +#: howto/logging-cookbook.rst:954 msgid "" "If you want to use :class:`concurrent.futures.ProcessPoolExecutor` to start " "your worker processes, you need to create the queue slightly differently. " "Instead of" msgstr "" +"Si vous souhaitez utiliser :class:`concurrent.futures.ProcessPoolExecutor` " +"pour démarrer vos processus de travail, vous devez créer la file d’attente " +"légèrement différemment. À la place de" -#: ../Doc/howto/logging-cookbook.rst:962 +#: howto/logging-cookbook.rst:962 msgid "you should use" -msgstr "" +msgstr "vous devez écrire" -#: ../Doc/howto/logging-cookbook.rst:968 +#: howto/logging-cookbook.rst:968 msgid "and you can then replace the worker creation from this::" msgstr "" +"et vous pouvez alors remplacer la création du processus de travail telle " +"que ::" -#: ../Doc/howto/logging-cookbook.rst:979 +#: howto/logging-cookbook.rst:979 msgid "to this (remembering to first import :mod:`concurrent.futures`)::" msgstr "" +"par celle-ci (souvenez-vous d’importer au préalable :mod:`concurrent." +"futures`) ::" -#: ../Doc/howto/logging-cookbook.rst:987 +#: howto/logging-cookbook.rst:987 msgid "Using file rotation" -msgstr "" +msgstr "Utilisation du roulement de fichiers" -#: ../Doc/howto/logging-cookbook.rst:992 +#: howto/logging-cookbook.rst:992 msgid "" "Sometimes you want to let a log file grow to a certain size, then open a new " "file and log to that. You may want to keep a certain number of these files, " @@ -487,32 +717,48 @@ msgid "" "usage pattern, the logging package provides a :class:`~handlers." "RotatingFileHandler`::" msgstr "" +"Parfois, vous souhaitez laisser un fichier de journalisation grossir jusqu’à " +"une certaine taille, puis ouvrir un nouveau fichier et vous y enregistrer " +"les nouveaux événements. Vous souhaitez peut-être conserver un certain " +"nombre de ces fichiers et, lorsque ce nombre de fichiers aura été créé, " +"faire rouler les fichiers afin que le nombre de fichiers et la taille des " +"fichiers restent tous deux limités. Pour ce cas d’usage, :class:`~handlers." +"RotatingFileHandler` est inclus dans le paquet de journalisation ::" -#: ../Doc/howto/logging-cookbook.rst:1024 +#: howto/logging-cookbook.rst:1024 msgid "" "The result should be 6 separate files, each with part of the log history for " "the application:" msgstr "" +"Vous devez obtenir 6 fichiers séparés, chacun contenant une partie de " +"l’historique de journalisation de l’application :" -#: ../Doc/howto/logging-cookbook.rst:1036 +#: howto/logging-cookbook.rst:1036 msgid "" "The most current file is always :file:`logging_rotatingfile_example.out`, " "and each time it reaches the size limit it is renamed with the suffix " "``.1``. Each of the existing backup files is renamed to increment the suffix " "(``.1`` becomes ``.2``, etc.) and the ``.6`` file is erased." msgstr "" +"Le fichier de journalisation actuel est toujours :file:" +"`logging_rotatingfile_example.out`, et chaque fois qu’il atteint la taille " +"limite, il est renommé avec le suffixe ``.1``. Chacun des fichiers de " +"sauvegarde existants est renommé pour incrémenter le suffixe (``.1`` devient " +"``.2``, etc.) et le fichier ``.6`` est effacé." -#: ../Doc/howto/logging-cookbook.rst:1041 +#: howto/logging-cookbook.rst:1041 msgid "" "Obviously this example sets the log length much too small as an extreme " "example. You would want to set *maxBytes* to an appropriate value." msgstr "" +"De toute évidence, la longueur du journal définie dans cet exemple est " +"beaucoup trop petite. À vous de définir *maxBytes* à une valeur appropriée." -#: ../Doc/howto/logging-cookbook.rst:1047 +#: howto/logging-cookbook.rst:1047 msgid "Use of alternative formatting styles" -msgstr "" +msgstr "Utilisation d’autres styles de formatage" -#: ../Doc/howto/logging-cookbook.rst:1049 +#: howto/logging-cookbook.rst:1049 msgid "" "When logging was added to the Python standard library, the only way of " "formatting messages with variable content was to use the %-formatting " @@ -520,8 +766,13 @@ msgid "" "`string.Template` (added in Python 2.4) and :meth:`str.format` (added in " "Python 2.6)." msgstr "" +"Lorsque la journalisation a été ajoutée à la bibliothèque standard Python, " +"la seule façon de formater les messages avec un contenu variable était " +"d’utiliser la méthode de formatage avec « % ». Depuis, Python s’est enrichi " +"de deux nouvelles méthode de formatage : :class:`string.Template` (ajouté " +"dans Python 2.4) et :meth:`str.format` (ajouté dans Python 2.6)." -#: ../Doc/howto/logging-cookbook.rst:1055 +#: howto/logging-cookbook.rst:1055 msgid "" "Logging (as of 3.2) provides improved support for these two additional " "formatting styles. The :class:`Formatter` class been enhanced to take an " @@ -533,15 +784,30 @@ msgid "" "meth:`str.format` or :class:`string.Template`. Here's an example console " "session to show the possibilities:" msgstr "" +"La journalisation (à partir de la version 3.2) offre une meilleure prise en " +"charge de ces deux styles de formatage supplémentaires. La classe :class:" +"`Formatter` a été améliorée pour accepter un paramètre par mot-clé " +"facultatif supplémentaire nommé ``style``. La valeur par défaut est ``'%'``, " +"les autres valeurs possibles étant ``'{'`` et ``'$'``, qui correspondent aux " +"deux autres styles de formatage. La rétrocompatibilité est maintenue par " +"défaut (comme vous vous en doutez) mais, en spécifiant explicitement un " +"paramètre de style, vous avez la possibilité de spécifier des chaînes de " +"format qui fonctionnent avec :meth:`str.format` ou :class:`string.Template`. " +"Voici un exemple de session interactive en console pour montrer les " +"possibilités :" -#: ../Doc/howto/logging-cookbook.rst:1089 +#: howto/logging-cookbook.rst:1089 msgid "" "Note that the formatting of logging messages for final output to logs is " "completely independent of how an individual logging message is constructed. " "That can still use %-formatting, as shown here::" msgstr "" +"Notez que le formatage des messages de journalisation est, au final, " +"complètement indépendant de la façon dont un message de journalisation " +"individuel est construit. Vous pouvez toujours utiliser formatage *via* " +"« % », comme ici ::" -#: ../Doc/howto/logging-cookbook.rst:1097 +#: howto/logging-cookbook.rst:1097 msgid "" "Logging calls (``logger.debug()``, ``logger.info()`` etc.) only take " "positional parameters for the actual logging message itself, with keyword " @@ -556,8 +822,21 @@ msgid "" "logging calls which are out there in existing code will be using %-format " "strings." msgstr "" - -#: ../Doc/howto/logging-cookbook.rst:1110 +"Les appels de journalisation (``logger.debug()``, ``logger.info()`` etc.) ne " +"prennent que des paramètres positionnels pour le message de journalisation " +"lui-même, les paramètres par mots-clés étant utilisés uniquement pour " +"déterminer comment gérer le message réel (par exemple, le paramètre par mot-" +"clé ``exc_info`` indique que les informations de trace doivent être " +"enregistrées, ou le paramètre par mot-clé ``extra`` indique des informations " +"contextuelles supplémentaires à ajouter au journal). Vous ne pouvez donc pas " +"inclure dans les appels de journalisation à l’aide de la syntaxe :meth:`str." +"format` ou :class:`string.Template`, car le paquet de journalisation utilise " +"le formatage via « % » en interne pour fusionner la chaîne de format et les " +"arguments de variables. Il n’est pas possible de changer ça tout en " +"préservant la rétrocompatibilité puisque tous les appels de journalisation " +"dans le code pré-existant utilisent des chaînes au format « % »." + +#: howto/logging-cookbook.rst:1110 msgid "" "There is, however, a way that you can use {}- and $- formatting to construct " "your individual log messages. Recall that for a message you can use an " @@ -565,8 +844,13 @@ msgid "" "will call ``str()`` on that object to get the actual format string. Consider " "the following two classes::" msgstr "" +"Il existe cependant un moyen d’utiliser le formatage *via* « {} » et « $ » " +"pour vos messages de journalisation. Rappelez-vous que, pour un message, " +"vous pouvez utiliser un objet arbitraire comme chaîne de format de message, " +"et que le package de journalisation appelle ``str()`` sur cet objet pour " +"fabriquer la chaîne finale. Considérez les deux classes suivantes ::" -#: ../Doc/howto/logging-cookbook.rst:1134 +#: howto/logging-cookbook.rst:1134 msgid "" "Either of these can be used in place of a format string, to allow {}- or $-" "formatting to be used to build the actual \"message\" part which appears in " @@ -576,22 +860,37 @@ msgid "" "__ (double underscore --- not to be confused with _, the single underscore " "used as a synonym/alias for :func:`gettext.gettext` or its brethren)." msgstr "" +"L’une ou l’autre peut être utilisée à la place d’une chaîne de format " +"\"%(message)s\" ou \"{message}\" ou \"$message\", afin de mettre en forme " +"*via* « { } » ou « $ » la partie « message réel » qui apparaît dans la " +"sortie de journal formatée. Il est un peu lourd d’utiliser les noms de " +"classe chaque fois que vous voulez journaliser quelque chose, mais ça " +"devient acceptable si vous utilisez un alias tel que __ (double trait de " +"soulignement — à ne pas confondre avec _, le trait de soulignement unique " +"utilisé comme alias pour :func:`gettext.gettext` ou ses homologues)." -#: ../Doc/howto/logging-cookbook.rst:1142 +#: howto/logging-cookbook.rst:1142 msgid "" "The above classes are not included in Python, though they're easy enough to " "copy and paste into your own code. They can be used as follows (assuming " "that they're declared in a module called ``wherever``):" msgstr "" +"Les classes ci-dessus ne sont pas incluses dans Python, bien qu’elles soient " +"assez faciles à copier et coller dans votre propre code. Elles peuvent être " +"utilisées comme suit (en supposant qu’elles soient déclarées dans un module " +"appelé ``wherever``) :" -#: ../Doc/howto/logging-cookbook.rst:1164 +#: howto/logging-cookbook.rst:1164 msgid "" "While the above examples use ``print()`` to show how the formatting works, " "you would of course use ``logger.debug()`` or similar to actually log using " "this approach." msgstr "" +"Alors que les exemples ci-dessus utilisent ``print()`` pour montrer comment " +"fonctionne le formatage, utilisez bien sûr ``logger.debug()`` ou similaire " +"pour journaliser avec cette approche." -#: ../Doc/howto/logging-cookbook.rst:1168 +#: howto/logging-cookbook.rst:1168 msgid "" "One thing to note is that you pay no significant performance penalty with " "this approach: the actual formatting happens not when you make the logging " @@ -601,24 +900,37 @@ msgid "" "not just the format string. That's because the __ notation is just syntax " "sugar for a constructor call to one of the XXXMessage classes." msgstr "" +"Une chose à noter est qu’il n’y a pas de perte de performance significative " +"avec cette approche : le formatage réel ne se produit pas lorsque vous " +"effectuez l’appel de journalisation, mais lorsque (et si) le message " +"journalisé est réellement sur le point d’être écrit dans un journal par un " +"gestionnaire. Ainsi, la seule chose légèrement inhabituelle qui pourrait " +"vous perturber est que les parenthèses entourent la chaîne de format et les " +"arguments, pas seulement la chaîne de format. C’est parce que la notation __ " +"n’est que du sucre syntaxique pour un appel de constructeur à l’une des " +"classes ``XXXMessage``." -#: ../Doc/howto/logging-cookbook.rst:1176 +#: howto/logging-cookbook.rst:1176 msgid "" "If you prefer, you can use a :class:`LoggerAdapter` to achieve a similar " "effect to the above, as in the following example::" msgstr "" +"Si vous préférez, vous pouvez utiliser un :class:`LoggerAdapter` pour " +"obtenir un effet similaire à ce qui précède, comme dans l’exemple suivant ::" -#: ../Doc/howto/logging-cookbook.rst:1207 +#: howto/logging-cookbook.rst:1207 msgid "" "The above script should log the message ``Hello, world!`` when run with " "Python 3.2 or later." msgstr "" +"Le script ci-dessus journalise le message ``Hello, world!`` quand il est " +"lancé avec Python 3.2 ou ultérieur." -#: ../Doc/howto/logging-cookbook.rst:1216 +#: howto/logging-cookbook.rst:1216 msgid "Customizing ``LogRecord``" -msgstr "" +msgstr "Personnalisation de ``LogRecord``" -#: ../Doc/howto/logging-cookbook.rst:1218 +#: howto/logging-cookbook.rst:1218 msgid "" "Every logging event is represented by a :class:`LogRecord` instance. When an " "event is logged and not filtered out by a logger's level, a :class:" @@ -628,14 +940,24 @@ msgid "" "disabled). Before Python 3.2, there were only two places where this creation " "was done:" msgstr "" +"Chaque événement de journalisation est représenté par une instance :class:" +"`LogRecord`. Lorsqu’un événement est enregistré et non filtré en raison du " +"niveau d’un enregistreur, un :class:`LogRecord` est créé, rempli avec les " +"informations de l’événement, puis transmis aux gestionnaires de cet " +"enregistreur (et ses ancêtres, jusqu’à et y compris l’enregistreur où la " +"propagation vers le haut de la hiérarchie est désactivée). Avant Python 3.2, " +"il n’y avait que deux endroits où cette création était effectuée :" -#: ../Doc/howto/logging-cookbook.rst:1225 +#: howto/logging-cookbook.rst:1225 msgid "" ":meth:`Logger.makeRecord`, which is called in the normal process of logging " "an event. This invoked :class:`LogRecord` directly to create an instance." msgstr "" +":meth:`Logger.makeRecord`, qui est appelée dans le processus normal de " +"journalisation d’un événement. Elle appelait :class:`LogRecord` directement " +"pour créer une instance." -#: ../Doc/howto/logging-cookbook.rst:1228 +#: howto/logging-cookbook.rst:1228 msgid "" ":func:`makeLogRecord`, which is called with a dictionary containing " "attributes to be added to the LogRecord. This is typically invoked when a " @@ -643,36 +965,54 @@ msgid "" "via a :class:`~handlers.SocketHandler`, or in JSON form via an :class:" "`~handlers.HTTPHandler`)." msgstr "" +":func:`makeLogRecord`, qui est appelée avec un dictionnaire contenant des " +"attributs à ajouter au *LogRecord*. Elle est généralement invoquée lorsqu’un " +"dictionnaire approprié a été reçu par le réseau (par exemple, sous forme de " +"*pickle* *via* un :class:`~handlers.SocketHandler`, ou sous format JSON " +"*via* un :class:`~handlers.HTTPHandler`)." -#: ../Doc/howto/logging-cookbook.rst:1234 +#: howto/logging-cookbook.rst:1234 msgid "" "This has usually meant that if you need to do anything special with a :class:" "`LogRecord`, you've had to do one of the following." msgstr "" +"Cela signifiait généralement que, si vous deviez faire quelque chose de " +"spécial avec un :class:`LogRecord`, vous deviez faire l’une des choses " +"suivantes." -#: ../Doc/howto/logging-cookbook.rst:1237 +#: howto/logging-cookbook.rst:1237 msgid "" "Create your own :class:`Logger` subclass, which overrides :meth:`Logger." "makeRecord`, and set it using :func:`~logging.setLoggerClass` before any " "loggers that you care about are instantiated." msgstr "" +"Créer votre propre sous-classe :class:`Logger`, surchargeant :meth:`Logger." +"makeRecord`, et la personnaliser à l’aide de :func:`~logging.setLoggerClass` " +"avant que les enregistreurs qui vous intéressaient ne soient instanciés." -#: ../Doc/howto/logging-cookbook.rst:1240 +#: howto/logging-cookbook.rst:1240 msgid "" "Add a :class:`Filter` to a logger or handler, which does the necessary " "special manipulation you need when its :meth:`~Filter.filter` method is " "called." msgstr "" +"Ajouter un :class:`Filter` à un enregistreur ou un gestionnaire, qui " +"effectuait la manipulation spéciale nécessaire dont vous aviez besoin " +"lorsque sa méthode :meth:`~Filter.filter` était appelée." -#: ../Doc/howto/logging-cookbook.rst:1244 +#: howto/logging-cookbook.rst:1244 msgid "" "The first approach would be a little unwieldy in the scenario where (say) " "several different libraries wanted to do different things. Each would " "attempt to set its own :class:`Logger` subclass, and the one which did this " "last would win." msgstr "" +"La première approche est un peu lourde dans le scénario où (disons) " +"plusieurs bibliothèques différentes veulent faire des choses différentes. " +"Chacun essaie de définir sa propre sous-classe :class:`Logger`, et celui qui " +"l’a fait en dernier gagne." -#: ../Doc/howto/logging-cookbook.rst:1249 +#: howto/logging-cookbook.rst:1249 msgid "" "The second approach works reasonably well for many cases, but does not allow " "you to e.g. use a specialized subclass of :class:`LogRecord`. Library " @@ -680,8 +1020,14 @@ msgid "" "to remember to do this every time they introduced a new logger (which they " "would do simply by adding new packages or modules and doing ::" msgstr "" +"La seconde approche fonctionne raisonnablement bien dans de nombreux cas, " +"mais ne vous permet pas, par exemple, d’utiliser une sous-classe spécialisée " +"de :class:`LogRecord`. Les développeurs de bibliothèques peuvent définir un " +"filtre approprié sur leurs enregistreurs, mais ils doivent se rappeler de le " +"faire chaque fois qu’ils introduisent un nouvel enregistreur (ce qu’ils font " +"simplement en ajoutant de nouveaux paquets ou modules et en écrivant ::" -#: ../Doc/howto/logging-cookbook.rst:1257 +#: howto/logging-cookbook.rst:1257 msgid "" "at module level). It's probably one too many things to think about. " "Developers could also add the filter to a :class:`~logging.NullHandler` " @@ -690,8 +1036,15 @@ msgid "" "so output from that handler would not reflect the intentions of the library " "developer." msgstr "" +"au niveau des modules). C’est probablement trop de choses auxquelles penser. " +"Les développeurs pourraient également ajouter le filtre à un :class:" +"`~logging.NullHandler` attaché à leur enregistreur de niveau supérieur, mais " +"cela ne serait pas invoqué si un développeur d’application attachait un " +"gestionnaire à un enregistreur de bibliothèque de niveau inférieur — donc la " +"sortie de ce gestionnaire ne refléterait pas les intentions du développeur " +"de la bibliothèque." -#: ../Doc/howto/logging-cookbook.rst:1263 +#: howto/logging-cookbook.rst:1263 msgid "" "In Python 3.2 and later, :class:`~logging.LogRecord` creation is done " "through a factory, which you can specify. The factory is just a callable you " @@ -700,16 +1053,27 @@ msgid "" "signature as the :class:`~logging.LogRecord` constructor, as :class:" "`LogRecord` is the default setting for the factory." msgstr "" +"Dans Python 3.2 et ultérieurs, la création de :class:`~logging.LogRecord` " +"est effectuée via une fabrique, que vous pouvez spécifier. La fabrique est " +"juste un appelable que vous pouvez définir avec :func:`~logging." +"setLogRecordFactory`, et interroger avec :func:`~logging." +"getLogRecordFactory`. La fabrique est invoquée avec la même signature que le " +"constructeur :class:`~logging.LogRecord`, car :class:`LogRecord` est le " +"paramètre par défaut de la fabrique." -#: ../Doc/howto/logging-cookbook.rst:1270 +#: howto/logging-cookbook.rst:1270 msgid "" "This approach allows a custom factory to control all aspects of LogRecord " "creation. For example, you could return a subclass, or just add some " "additional attributes to the record once created, using a pattern similar to " "this::" msgstr "" +"Cette approche permet à une fabrique personnalisée de contrôler tous les " +"aspects de la création d’un *LogRecord*. Par exemple, vous pouvez renvoyer " +"une sous-classe ou simplement ajouter des attributs supplémentaires à " +"l’enregistrement une fois créé, en utilisant un modèle similaire à celui-ci :" -#: ../Doc/howto/logging-cookbook.rst:1283 +#: howto/logging-cookbook.rst:1283 msgid "" "This pattern allows different libraries to chain factories together, and as " "long as they don't overwrite each other's attributes or unintentionally " @@ -718,115 +1082,151 @@ msgid "" "time overhead to all logging operations, and the technique should only be " "used when the use of a :class:`Filter` does not provide the desired result." msgstr "" +"Ce modèle permet à différentes bibliothèques d’enchaîner des fabriques, et " +"tant qu’elles n’écrasent pas les attributs des autres ou n’écrasent pas " +"involontairement les attributs fournis en standard, il ne devrait pas y " +"avoir de surprise. Cependant, il faut garder à l’esprit que chaque maillon " +"de la chaîne ajoute une surcharge d’exécution à toutes les opérations de " +"journalisation, et la technique ne doit être utilisée que lorsque " +"l’utilisation d’un :class:`Filter` ne permet pas d’obtenir le résultat " +"souhaité." -#: ../Doc/howto/logging-cookbook.rst:1294 +#: howto/logging-cookbook.rst:1294 msgid "Subclassing QueueHandler - a ZeroMQ example" -msgstr "" +msgstr "Dérivation de *QueueHandler* – un exemple de *ZeroMQ*" -#: ../Doc/howto/logging-cookbook.rst:1296 +#: howto/logging-cookbook.rst:1296 msgid "" "You can use a :class:`QueueHandler` subclass to send messages to other kinds " "of queues, for example a ZeroMQ 'publish' socket. In the example below,the " "socket is created separately and passed to the handler (as its 'queue')::" msgstr "" +"Vous pouvez utiliser une sous-classe :class:`QueueHandler` pour envoyer des " +"messages à d’autres types de files d’attente, par exemple un connecteur " +"*ZeroMQ publish*. Dans l’exemple ci-dessous, le connecteur est créé " +"séparément et transmis au gestionnaire (en tant que file d’attente) ::" -#: ../Doc/howto/logging-cookbook.rst:1315 +#: howto/logging-cookbook.rst:1315 msgid "" "Of course there are other ways of organizing this, for example passing in " "the data needed by the handler to create the socket::" msgstr "" +"Bien sûr, il existe d’autres manières de faire, par exemple en transmettant " +"les données nécessaires au gestionnaire pour créer le connecteur ::" -#: ../Doc/howto/logging-cookbook.rst:1333 +#: howto/logging-cookbook.rst:1333 msgid "Subclassing QueueListener - a ZeroMQ example" -msgstr "" +msgstr "Dérivation de *QueueListener* – un exemple de *ZeroMQ*" -#: ../Doc/howto/logging-cookbook.rst:1335 +#: howto/logging-cookbook.rst:1335 msgid "" "You can also subclass :class:`QueueListener` to get messages from other " "kinds of queues, for example a ZeroMQ 'subscribe' socket. Here's an example::" msgstr "" +"Vous pouvez également dériver :class:`QueueListener` pour obtenir des " +"messages d’autres types de files d’attente, par exemple un connecteur " +"*ZeroMQ subscribe*. Voici un exemple ::" -#: ../Doc/howto/logging-cookbook.rst:1354 +#: howto/logging-cookbook.rst:1354 msgid "Module :mod:`logging`" msgstr "Module :mod:`logging`" -#: ../Doc/howto/logging-cookbook.rst:1354 +#: howto/logging-cookbook.rst:1354 msgid "API reference for the logging module." msgstr "Référence d'API pour le module de journalisation." -#: ../Doc/howto/logging-cookbook.rst:1357 +#: howto/logging-cookbook.rst:1357 msgid "Module :mod:`logging.config`" msgstr "Module :mod:`logging.config`" -#: ../Doc/howto/logging-cookbook.rst:1357 +#: howto/logging-cookbook.rst:1357 msgid "Configuration API for the logging module." msgstr "API de configuration pour le module de journalisation." -#: ../Doc/howto/logging-cookbook.rst:1360 +#: howto/logging-cookbook.rst:1360 msgid "Module :mod:`logging.handlers`" msgstr "Module :mod:`logging.handlers`" -#: ../Doc/howto/logging-cookbook.rst:1360 +#: howto/logging-cookbook.rst:1360 msgid "Useful handlers included with the logging module." msgstr "Gestionnaires utiles inclus avec le module de journalisation." -#: ../Doc/howto/logging-cookbook.rst:1362 +#: howto/logging-cookbook.rst:1362 msgid ":ref:`A basic logging tutorial `" msgstr "" +":ref:`Les bases de l’utilisation du module de journalisation `" -#: ../Doc/howto/logging-cookbook.rst:1364 +#: howto/logging-cookbook.rst:1364 msgid ":ref:`A more advanced logging tutorial `" msgstr "" +":ref:`Utilisation avancée du module de journalisation `" -#: ../Doc/howto/logging-cookbook.rst:1368 +#: howto/logging-cookbook.rst:1368 msgid "An example dictionary-based configuration" -msgstr "" +msgstr "Exemple de configuration basée sur un dictionnaire" -#: ../Doc/howto/logging-cookbook.rst:1370 +#: howto/logging-cookbook.rst:1370 msgid "" "Below is an example of a logging configuration dictionary - it's taken from " -"the `documentation on the Django project `_. This dictionary is passed to :" +"the `documentation on the Django project `_. This dictionary is passed to :" "func:`~config.dictConfig` to put the configuration into effect::" msgstr "" +"Vous trouverez ci-dessous un exemple de dictionnaire de configuration de " +"journalisation ­– il est tiré de la `documentation du projet Django `_. Ce " +"dictionnaire est passé à :func:`~config.dictConfig` pour activer la " +"configuration ::" -#: ../Doc/howto/logging-cookbook.rst:1426 +#: howto/logging-cookbook.rst:1426 msgid "" "For more information about this configuration, you can see the `relevant " -"section `_ of the Django documentation." +"section `_ of the Django documentation." msgstr "" +"Pour plus d’informations sur cette configuration, vous pouvez consulter la " +"`section correspondante `_ de la documentation de *Django*." -#: ../Doc/howto/logging-cookbook.rst:1433 +#: howto/logging-cookbook.rst:1433 msgid "Using a rotator and namer to customize log rotation processing" msgstr "" +"Utilisation d’un rotateur et d’un nom pour personnaliser la rotation des " +"journaux" -#: ../Doc/howto/logging-cookbook.rst:1435 +#: howto/logging-cookbook.rst:1435 msgid "" "An example of how you can define a namer and rotator is given in the " "following snippet, which shows zlib-based compression of the log file::" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:1453 +#: howto/logging-cookbook.rst:1453 msgid "" "These are not \"true\" .gz files, as they are bare compressed data, with no " "\"container\" such as you’d find in an actual gzip file. This snippet is " "just for illustration purposes." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:1458 +#: howto/logging-cookbook.rst:1458 msgid "A more elaborate multiprocessing example" -msgstr "" +msgstr "Exemple plus élaboré avec traitement en parallèle" -#: ../Doc/howto/logging-cookbook.rst:1460 +#: howto/logging-cookbook.rst:1460 msgid "" "The following working example shows how logging can be used with " "multiprocessing using configuration files. The configurations are fairly " "simple, but serve to illustrate how more complex ones could be implemented " "in a real multiprocessing scenario." msgstr "" +"L’exemple suivant que nous allons étudier montre comment la journalisation " +"peut être utilisée, à l’aide de fichiers de configuration, pour un programme " +"effectuant des traitements parallèles. Les configurations sont assez " +"simples, mais servent à illustrer comment des configurations plus complexes " +"pourraient être implémentées dans un scénario multi-processus réel." -#: ../Doc/howto/logging-cookbook.rst:1465 +#: howto/logging-cookbook.rst:1465 msgid "" "In the example, the main process spawns a listener process and some worker " "processes. Each of the main process, the listener and the workers have three " @@ -838,18 +1238,32 @@ msgid "" "purely illustrative, but you should be able to adapt this example to your " "own scenario." msgstr "" - -#: ../Doc/howto/logging-cookbook.rst:1475 +"Dans l’exemple, le processus principal génère un processus d’écoute et des " +"processus de travail. Chacun des processus, le principal, l’auditeur " +"(*listener_process* dans l’exemple) et les processus de travail " +"(*worker_process* dans l’exemple) ont trois configurations distinctes (les " +"processus de travail partagent tous la même configuration). Nous pouvons " +"voir la journalisation dans le processus principal, comment les processus de " +"travail se connectent à un *QueueHandler* et comment l’auditeur implémente " +"un *QueueListener* avec une configuration de journalisation plus complexe, " +"et s’arrange pour envoyer les événements reçus *via* la file d’attente aux " +"gestionnaires spécifiés dans la configuration. Notez que ces configurations " +"sont purement illustratives, mais vous devriez pouvoir adapter cet exemple à " +"votre propre scénario." + +#: howto/logging-cookbook.rst:1475 msgid "" "Here's the script - the docstrings and the comments hopefully explain how it " "works::" msgstr "" +"Voici le script – les chaines de documentation et les commentaires " +"expliquent (en anglais), le principe de fonctionnement ::" -#: ../Doc/howto/logging-cookbook.rst:1687 +#: howto/logging-cookbook.rst:1687 msgid "Inserting a BOM into messages sent to a SysLogHandler" -msgstr "" +msgstr "Insertion d’une *BOM* dans les messages envoyés à un *SysLogHandler*" -#: ../Doc/howto/logging-cookbook.rst:1689 +#: howto/logging-cookbook.rst:1689 msgid "" ":rfc:`5424` requires that a Unicode message be sent to a syslog daemon as a " "set of bytes which have the following structure: an optional pure-ASCII " @@ -857,16 +1271,25 @@ msgid "" "encoded using UTF-8. (See the :rfc:`relevant section of the specification " "<5424#section-6>`.)" msgstr "" +"La :rfc:`5424` requiert qu’un message Unicode soit envoyé à un démon " +"*syslog* sous la forme d’un ensemble d’octets ayant la structure suivante : " +"un composant ASCII pur facultatif, suivi d’une marque d’ordre d’octet (*BOM* " +"pour *Byte Order Mark* en anglais) UTF-8, suivie de contenu Unicode UTF-8 " +"(voir la :rfc:`la spécification correspondante <5424#section-6>`)." -#: ../Doc/howto/logging-cookbook.rst:1695 +#: howto/logging-cookbook.rst:1695 msgid "" "In Python 3.1, code was added to :class:`~logging.handlers.SysLogHandler` to " "insert a BOM into the message, but unfortunately, it was implemented " "incorrectly, with the BOM appearing at the beginning of the message and " "hence not allowing any pure-ASCII component to appear before it." msgstr "" +"Dans Python 3.1, du code a été ajouté à :class:`~logging.handlers." +"SysLogHandler` pour insérer une *BOM* dans le message mais, malheureusement, " +"il a été implémenté de manière incorrecte, la *BOM* apparaissant au début du " +"message et n’autorisant donc aucun composant ASCII pur à être placé devant." -#: ../Doc/howto/logging-cookbook.rst:1701 +#: howto/logging-cookbook.rst:1701 msgid "" "As this behaviour is broken, the incorrect BOM insertion code is being " "removed from Python 3.2.4 and later. However, it is not being replaced, and " @@ -874,34 +1297,51 @@ msgid "" "an optional pure-ASCII sequence before it and arbitrary Unicode after it, " "encoded using UTF-8, then you need to do the following:" msgstr "" +"Comme ce comportement est inadéquat, le code incorrect d’insertion de la " +"*BOM* a été supprimé de Python 3.2.4 et ultérieurs. Cependant, il n’est pas " +"remplacé et, si vous voulez produire des messages conformes :rfc:`5424` qui " +"incluent une *BOM*, une séquence facultative en ASCII pur avant et un " +"Unicode arbitraire après, encodé en UTF-8, alors vous devez appliquer ce qui " +"suit :" -#: ../Doc/howto/logging-cookbook.rst:1707 +#: howto/logging-cookbook.rst:1707 msgid "" "Attach a :class:`~logging.Formatter` instance to your :class:`~logging." "handlers.SysLogHandler` instance, with a format string such as::" msgstr "" +"Adjoignez une instance :class:`~logging.Formatter` à votre instance :class:" +"`~logging.handlers.SysLogHandler`, avec une chaîne de format telle que ::" -#: ../Doc/howto/logging-cookbook.rst:1713 +#: howto/logging-cookbook.rst:1713 msgid "" "The Unicode code point U+FEFF, when encoded using UTF-8, will be encoded as " "a UTF-8 BOM -- the byte-string ``b'\\xef\\xbb\\xbf'``." msgstr "" +"Le point de code Unicode U+FEFF, lorsqu’il est encodé en UTF-8, est encodé " +"comme une *BOM* UTF-8 – la chaîne d’octets ``b'\\xef\\xbb\\xbf'``." -#: ../Doc/howto/logging-cookbook.rst:1716 +#: howto/logging-cookbook.rst:1716 msgid "" "Replace the ASCII section with whatever placeholders you like, but make sure " "that the data that appears in there after substitution is always ASCII (that " "way, it will remain unchanged after UTF-8 encoding)." msgstr "" +"Remplacez la section ASCII par les caractères de votre choix, mais assurez-" +"vous que les données qui y apparaissent après la substitution sont toujours " +"ASCII (ainsi elles resteront inchangées après l’encodage UTF-8)." -#: ../Doc/howto/logging-cookbook.rst:1720 +#: howto/logging-cookbook.rst:1720 msgid "" "Replace the Unicode section with whatever placeholders you like; if the data " "which appears there after substitution contains characters outside the ASCII " "range, that's fine -- it will be encoded using UTF-8." msgstr "" +"Remplacez la section Unicode par le contenu de votre choix ; si les données " +"qui y apparaissent après la substitution contiennent des caractères en " +"dehors de la plage ASCII, c’est pris en charge – elles seront encodées en " +"UTF-8." -#: ../Doc/howto/logging-cookbook.rst:1724 +#: howto/logging-cookbook.rst:1724 msgid "" "The formatted message *will* be encoded using UTF-8 encoding by " "``SysLogHandler``. If you follow the above rules, you should be able to " @@ -909,12 +1349,17 @@ msgid "" "complain, but your messages will not be RFC 5424-compliant, and your syslog " "daemon may complain." msgstr "" +"Le message formaté *sera* encodé en UTF-8 par ``SysLogHandler``. Si vous " +"suivez les règles ci-dessus, vous devriez pouvoir produire des messages " +"conformes à la :rfc:`5424`. Si vous ne le faites pas, la journalisation ne " +"se plaindra peut-être pas, mais vos messages ne seront pas conformes à la " +"RFC 5424 et votre démon *syslog* est susceptible de se plaindre." -#: ../Doc/howto/logging-cookbook.rst:1731 +#: howto/logging-cookbook.rst:1731 msgid "Implementing structured logging" -msgstr "" +msgstr "Journalisation structurée" -#: ../Doc/howto/logging-cookbook.rst:1733 +#: howto/logging-cookbook.rst:1733 msgid "" "Although most logging messages are intended for reading by humans, and thus " "not readily machine-parseable, there might be circumstances where you want " @@ -925,33 +1370,44 @@ msgid "" "following is a simple approach which uses JSON to serialise the event in a " "machine-parseable manner::" msgstr "" +"Bien que la plupart des messages de journalisation soient destinés à être " +"lus par des humains, et donc difficilement analysables par la machine, il " +"peut arriver que vous souhaitiez produire des messages dans un format " +"structuré dans le but d’être analysé par un programme (sans avoir besoin " +"d’expressions régulières complexes pour analyser le message du journal). " +"C’est simple à réaliser en utilisant le paquet de journalisation. Il existe " +"plusieurs façons d’y parvenir et voici une approche simple qui utilise JSON " +"pour sérialiser l’événement de manière à être analysable par une machine ::" -#: ../Doc/howto/logging-cookbook.rst:1757 +#: howto/logging-cookbook.rst:1757 msgid "If the above script is run, it prints:" -msgstr "" +msgstr "Si vous lancez le script ci-dessus, il imprime :" -#: ../Doc/howto/logging-cookbook.rst:1763 -#: ../Doc/howto/logging-cookbook.rst:1812 +#: howto/logging-cookbook.rst:1763 howto/logging-cookbook.rst:1812 msgid "" "Note that the order of items might be different according to the version of " "Python used." msgstr "" +"Notez que l’ordre des éléments peut être différent en fonction de la version " +"de Python utilisée." -#: ../Doc/howto/logging-cookbook.rst:1766 +#: howto/logging-cookbook.rst:1766 msgid "" "If you need more specialised processing, you can use a custom JSON encoder, " "as in the following complete example::" msgstr "" +"Si vous avez besoin d’un traitement plus spécifique, vous pouvez utiliser un " +"encodeur JSON personnalisé, comme dans l’exemple complet suivant :" -#: ../Doc/howto/logging-cookbook.rst:1806 +#: howto/logging-cookbook.rst:1806 msgid "When the above script is run, it prints:" -msgstr "" +msgstr "Quand vous exécutez le script ci-dessus, il imprime :" -#: ../Doc/howto/logging-cookbook.rst:1821 +#: howto/logging-cookbook.rst:1821 msgid "Customizing handlers with :func:`dictConfig`" -msgstr "" +msgstr "Personnalisation des gestionnaires avec :func:`dictConfig`" -#: ../Doc/howto/logging-cookbook.rst:1823 +#: howto/logging-cookbook.rst:1823 msgid "" "There are times when you want to customize logging handlers in particular " "ways, and if you use :func:`dictConfig` you may be able to do this without " @@ -960,25 +1416,40 @@ msgid "" "the file handlers in the stdlib don't offer built-in support. You can " "customize handler creation using a plain function such as::" msgstr "" +"Il arrive de souhaiter personnaliser les gestionnaires de journalisation " +"d’une manière particulière et, en utilisant :func:`dictConfig`, vous pourrez " +"peut-être le faire sans avoir à dériver les classes mères. Par exemple, " +"supposons que vous souhaitiez définir le propriétaire d’un fichier journal. " +"Dans un environnement POSIX, cela se fait facilement en utilisant :func:" +"`shutil.chown`, mais les gestionnaires de fichiers de la bibliothèque " +"standard n’offrent pas cette gestion nativement. Vous pouvez personnaliser " +"la création du gestionnaire à l’aide d’une fonction simple telle que ::" -#: ../Doc/howto/logging-cookbook.rst:1837 +#: howto/logging-cookbook.rst:1837 msgid "" "You can then specify, in a logging configuration passed to :func:" "`dictConfig`, that a logging handler be created by calling this function::" msgstr "" +"Vous pouvez ensuite spécifier, dans une configuration de journalisation " +"transmise à :func:`dictConfig`, qu’un gestionnaire de journalisation soit " +"créé en appelant cette fonction ::" -#: ../Doc/howto/logging-cookbook.rst:1870 +#: howto/logging-cookbook.rst:1870 msgid "" "In this example I am setting the ownership using the ``pulse`` user and " "group, just for the purposes of illustration. Putting it together into a " "working script, ``chowntest.py``::" msgstr "" +"Dans cet exemple, nous définissons le propriétaire à l’utilisateur et au " +"groupe ``pulse``, uniquement à des fins d’illustration. Rassemblons le tout " +"dans un script ``chowntest.py`` ::" -#: ../Doc/howto/logging-cookbook.rst:1917 +#: howto/logging-cookbook.rst:1917 msgid "To run this, you will probably need to run as ``root``:" msgstr "" +"Pour l’exécuter, vous devrez probablement le faire en tant que ``root`` :" -#: ../Doc/howto/logging-cookbook.rst:1927 +#: howto/logging-cookbook.rst:1927 msgid "" "Note that this example uses Python 3.3 because that's where :func:`shutil." "chown` makes an appearance. This approach should work with any Python " @@ -986,44 +1457,65 @@ msgid "" "With pre-3.3 versions, you would need to implement the actual ownership " "change using e.g. :func:`os.chown`." msgstr "" +"Notez que cet exemple utilise Python 3.3 car c’est là que :func:`shutil." +"chown` fait son apparition. Cette approche devrait fonctionner avec " +"n’importe quelle version de Python prenant en charge :func:`dictConfig` – à " +"savoir, Python 2.7, 3.2 ou version ultérieure. Avec les versions antérieures " +"à la 3.3, vous devrez implémenter le changement de propriétaire réel en " +"utilisant par exemple :func:`os.chown`." -#: ../Doc/howto/logging-cookbook.rst:1933 +#: howto/logging-cookbook.rst:1933 msgid "" "In practice, the handler-creating function may be in a utility module " "somewhere in your project. Instead of the line in the configuration::" msgstr "" +"En pratique, la fonction de création de gestionnaire peut être située dans " +"un module utilitaire ailleurs dans votre projet. Au lieu de cette ligne dans " +"la configuration ::" -#: ../Doc/howto/logging-cookbook.rst:1938 +#: howto/logging-cookbook.rst:1938 msgid "you could use e.g.::" -msgstr "" +msgstr "vous pouvez écrire par exemple ::" -#: ../Doc/howto/logging-cookbook.rst:1942 +#: howto/logging-cookbook.rst:1942 msgid "" "where ``project.util`` can be replaced with the actual name of the package " "where the function resides. In the above working script, using ``'ext://" "__main__.owned_file_handler'`` should work. Here, the actual callable is " "resolved by :func:`dictConfig` from the ``ext://`` specification." msgstr "" +"où ``project.util`` peut être remplacé par le nom réel du paquet où réside " +"la fonction. Dans le script étudié ci-dessus, l’utilisation de ``'ext://" +"__main__.owned_file_handler'`` devrait fonctionner. Dans le cas présent, " +"l’appelable réel est résolu par :func:`dictConfig` à partir de la " +"spécification ``ext://``." -#: ../Doc/howto/logging-cookbook.rst:1947 +#: howto/logging-cookbook.rst:1947 msgid "" "This example hopefully also points the way to how you could implement other " "types of file change - e.g. setting specific POSIX permission bits - in the " "same way, using :func:`os.chmod`." msgstr "" +"Nous espérons qu'à partir de cet exemple vous saurez implémenter d’autres " +"types de modification de fichier – par ex. définir des bits d’autorisation " +"POSIX spécifiques – de la même manière, en utilisant :func:`os.chmod`." -#: ../Doc/howto/logging-cookbook.rst:1951 +#: howto/logging-cookbook.rst:1951 msgid "" "Of course, the approach could also be extended to types of handler other " "than a :class:`~logging.FileHandler` - for example, one of the rotating file " "handlers, or a different type of handler altogether." msgstr "" +"Bien sûr, l’approche pourrait également être étendue à des types de " +"gestionnaires autres qu’un :class:`~logging.FileHandler` – par exemple, l’un " +"des gestionnaires à roulement de fichiers ou un autre type de gestionnaire " +"complètement différent." -#: ../Doc/howto/logging-cookbook.rst:1961 +#: howto/logging-cookbook.rst:1961 msgid "Using particular formatting styles throughout your application" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:1963 +#: howto/logging-cookbook.rst:1963 msgid "" "In Python 3.2, the :class:`~logging.Formatter` gained a ``style`` keyword " "parameter which, while defaulting to ``%`` for backward compatibility, " @@ -1034,7 +1526,7 @@ msgid "" "is constructed." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:1970 +#: howto/logging-cookbook.rst:1970 msgid "" "Logging calls (:meth:`~Logger.debug`, :meth:`~Logger.info` etc.) only take " "positional parameters for the actual logging message itself, with keyword " @@ -1049,7 +1541,7 @@ msgid "" "calls which are out there in existing code will be using %-format strings." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:1982 +#: howto/logging-cookbook.rst:1982 msgid "" "There have been suggestions to associate format styles with specific " "loggers, but that approach also runs into backward compatibility problems " @@ -1057,7 +1549,7 @@ msgid "" "formatting." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:1986 +#: howto/logging-cookbook.rst:1986 msgid "" "For logging to work interoperably between any third-party libraries and your " "code, decisions about formatting need to be made at the level of the " @@ -1065,11 +1557,11 @@ msgid "" "formatting styles can be accommodated." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:1993 +#: howto/logging-cookbook.rst:1993 msgid "Using LogRecord factories" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:1995 +#: howto/logging-cookbook.rst:1995 msgid "" "In Python 3.2, along with the :class:`~logging.Formatter` changes mentioned " "above, the logging package gained the ability to allow users to set their " @@ -1084,17 +1576,17 @@ msgid "" "implementation does." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2006 +#: howto/logging-cookbook.rst:2006 msgid "" "Refer to the reference documentation on :func:`setLogRecordFactory` and :" "class:`LogRecord` for more information." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2011 +#: howto/logging-cookbook.rst:2011 msgid "Using custom message objects" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2013 +#: howto/logging-cookbook.rst:2013 msgid "" "There is another, perhaps simpler way that you can use {}- and $- formatting " "to construct your individual log messages. You may recall (from :ref:" @@ -1104,7 +1596,7 @@ msgid "" "following two classes::" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2038 +#: howto/logging-cookbook.rst:2038 msgid "" "Either of these can be used in place of a format string, to allow {}- or $-" "formatting to be used to build the actual \"message\" part which appears in " @@ -1115,17 +1607,17 @@ msgid "" "using ``_`` for localization)." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2046 +#: howto/logging-cookbook.rst:2046 msgid "" "Examples of this approach are given below. Firstly, formatting with :meth:" "`str.format`::" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2060 +#: howto/logging-cookbook.rst:2060 msgid "Secondly, formatting with :class:`string.Template`::" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2067 +#: howto/logging-cookbook.rst:2067 msgid "" "One thing to note is that you pay no significant performance penalty with " "this approach: the actual formatting happens not when you make the logging " @@ -1137,11 +1629,11 @@ msgid "" "above." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2081 +#: howto/logging-cookbook.rst:2081 msgid "Configuring filters with :func:`dictConfig`" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2083 +#: howto/logging-cookbook.rst:2083 msgid "" "You *can* configure filters using :func:`~logging.config.dictConfig`, though " "it might not be obvious at first glance how to do it (hence this recipe). " @@ -1156,22 +1648,22 @@ msgid "" "complete example::" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2136 +#: howto/logging-cookbook.rst:2136 msgid "" "This example shows how you can pass configuration data to the callable which " "constructs the instance, in the form of keyword parameters. When run, the " "above script will print:" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2144 +#: howto/logging-cookbook.rst:2144 msgid "which shows that the filter is working as configured." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2146 +#: howto/logging-cookbook.rst:2146 msgid "A couple of extra points to note:" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2148 +#: howto/logging-cookbook.rst:2148 msgid "" "If you can't refer to the callable directly in the configuration (e.g. if it " "lives in a different module, and you can't import it directly where the " @@ -1181,7 +1673,7 @@ msgid "" "the above example." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2155 +#: howto/logging-cookbook.rst:2155 msgid "" "As well as for filters, this technique can also be used to configure custom " "handlers and formatters. See :ref:`logging-config-dict-userdef` for more " @@ -1190,11 +1682,11 @@ msgid "" "above." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2164 +#: howto/logging-cookbook.rst:2164 msgid "Customized exception formatting" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2166 +#: howto/logging-cookbook.rst:2166 msgid "" "There might be times when you want to do customized exception formatting - " "for argument's sake, let's say you want exactly one line per logged event, " @@ -1202,22 +1694,22 @@ msgid "" "formatter class, as shown in the following example::" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2207 +#: howto/logging-cookbook.rst:2207 msgid "When run, this produces a file with exactly two lines:" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2214 +#: howto/logging-cookbook.rst:2214 msgid "" "While the above treatment is simplistic, it points the way to how exception " "information can be formatted to your liking. The :mod:`traceback` module may " "be helpful for more specialized needs." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2221 +#: howto/logging-cookbook.rst:2221 msgid "Speaking logging messages" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2223 +#: howto/logging-cookbook.rst:2223 msgid "" "There might be situations when it is desirable to have logging messages " "rendered in an audible rather than a visible format. This is easy to do if " @@ -1234,24 +1726,24 @@ msgid "" "approach, which assumes that the ``espeak`` TTS package is available::" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2265 +#: howto/logging-cookbook.rst:2265 msgid "" "When run, this script should say \"Hello\" and then \"Goodbye\" in a female " "voice." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2267 +#: howto/logging-cookbook.rst:2267 msgid "" "The above approach can, of course, be adapted to other TTS systems and even " "other systems altogether which can process messages via external programs " "run from a command line." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2275 +#: howto/logging-cookbook.rst:2275 msgid "Buffering logging messages and outputting them conditionally" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2277 +#: howto/logging-cookbook.rst:2277 msgid "" "There might be situations where you want to log messages in a temporary area " "and only output them if a certain condition occurs. For example, you may " @@ -1261,7 +1753,7 @@ msgid "" "debug information to be output as well as the error." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2284 +#: howto/logging-cookbook.rst:2284 msgid "" "Here is an example which shows how you could do this using a decorator for " "your functions where you want logging to behave this way. It makes use of " @@ -1274,7 +1766,7 @@ msgid "" "subclass of ``MemoryHandler`` if you want custom flushing behavior." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2294 +#: howto/logging-cookbook.rst:2294 msgid "" "The example script has a simple function, ``foo``, which just cycles through " "all the logging levels, writing to ``sys.stderr`` to say what level it's " @@ -1283,7 +1775,7 @@ msgid "" "levels - otherwise, it only logs at DEBUG, INFO and WARNING levels." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2300 +#: howto/logging-cookbook.rst:2300 msgid "" "The script just arranges to decorate ``foo`` with a decorator which will do " "the conditional logging that's required. The decorator takes a logger as a " @@ -1295,36 +1787,36 @@ msgid "" "respectively." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2308 +#: howto/logging-cookbook.rst:2308 msgid "Here's the script::" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2371 +#: howto/logging-cookbook.rst:2371 msgid "When this script is run, the following output should be observed:" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2401 +#: howto/logging-cookbook.rst:2401 msgid "" "As you can see, actual logging output only occurs when an event is logged " "whose severity is ERROR or greater, but in that case, any previous events at " "lower severities are also logged." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2405 +#: howto/logging-cookbook.rst:2405 msgid "You can of course use the conventional means of decoration::" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2415 +#: howto/logging-cookbook.rst:2415 msgid "Formatting times using UTC (GMT) via configuration" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2417 +#: howto/logging-cookbook.rst:2417 msgid "" "Sometimes you want to format times using UTC, which can be done using a " "class such as `UTCFormatter`, shown below::" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2426 +#: howto/logging-cookbook.rst:2426 msgid "" "and you can then use the ``UTCFormatter`` in your code instead of :class:" "`~logging.Formatter`. If you want to do that via configuration, you can use " @@ -1332,21 +1824,21 @@ msgid "" "the following complete example::" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2469 +#: howto/logging-cookbook.rst:2469 msgid "When this script is run, it should print something like:" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2476 +#: howto/logging-cookbook.rst:2476 msgid "" "showing how the time is formatted both as local time and UTC, one for each " "handler." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2483 +#: howto/logging-cookbook.rst:2483 msgid "Using a context manager for selective logging" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2485 +#: howto/logging-cookbook.rst:2485 msgid "" "There are times when it would be useful to temporarily change the logging " "configuration and revert it back after doing something. For this, a context " @@ -1356,7 +1848,7 @@ msgid "" "scope of the context manager::" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2518 +#: howto/logging-cookbook.rst:2518 msgid "" "If you specify a level value, the logger's level is set to that value in the " "scope of the with block covered by the context manager. If you specify a " @@ -1365,13 +1857,13 @@ msgid "" "block exit - you could do this if you don't need the handler any more." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2524 +#: howto/logging-cookbook.rst:2524 msgid "" "To illustrate how it works, we can add the following block of code to the " "above::" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2542 +#: howto/logging-cookbook.rst:2542 msgid "" "We initially set the logger's level to ``INFO``, so message #1 appears and " "message #2 doesn't. We then change the level to ``DEBUG`` temporarily in the " @@ -1384,56 +1876,56 @@ msgid "" "(like message #1) whereas message #7 doesn't (just like message #2)." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2552 +#: howto/logging-cookbook.rst:2552 msgid "If we run the resulting script, the result is as follows:" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2563 +#: howto/logging-cookbook.rst:2563 msgid "" "If we run it again, but pipe ``stderr`` to ``/dev/null``, we see the " "following, which is the only message written to ``stdout``:" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2571 +#: howto/logging-cookbook.rst:2571 msgid "Once again, but piping ``stdout`` to ``/dev/null``, we get:" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2581 +#: howto/logging-cookbook.rst:2581 msgid "" "In this case, the message #5 printed to ``stdout`` doesn't appear, as " "expected." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2583 +#: howto/logging-cookbook.rst:2583 msgid "" "Of course, the approach described here can be generalised, for example to " "attach logging filters temporarily. Note that the above code works in Python " "2 as well as Python 3." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2591 +#: howto/logging-cookbook.rst:2591 msgid "A CLI application starter template" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2593 +#: howto/logging-cookbook.rst:2593 msgid "Here's an example which shows how you can:" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2595 +#: howto/logging-cookbook.rst:2595 msgid "Use a logging level based on command-line arguments" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2596 +#: howto/logging-cookbook.rst:2596 msgid "" "Dispatch to multiple subcommands in separate files, all logging at the same " "level in a consistent way" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2598 +#: howto/logging-cookbook.rst:2598 msgid "Make use of simple, minimal configuration" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2600 +#: howto/logging-cookbook.rst:2600 msgid "" "Suppose we have a command-line application whose job is to stop, start or " "restart some services. This could be organised for the purposes of " @@ -1444,53 +1936,53 @@ msgid "" "``logging.INFO``. Here's one way that ``app.py`` could be written::" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2649 +#: howto/logging-cookbook.rst:2649 msgid "" "And the ``start``, ``stop`` and ``restart`` commands can be implemented in " "separate modules, like so for starting::" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2662 +#: howto/logging-cookbook.rst:2662 msgid "and thus for stopping::" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2683 +#: howto/logging-cookbook.rst:2683 msgid "and similarly for restarting::" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2704 +#: howto/logging-cookbook.rst:2704 msgid "" "If we run this application with the default log level, we get output like " "this:" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2717 +#: howto/logging-cookbook.rst:2717 msgid "" "The first word is the logging level, and the second word is the module or " "package name of the place where the event was logged." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2720 +#: howto/logging-cookbook.rst:2720 msgid "" "If we change the logging level, then we can change the information sent to " "the log. For example, if we want more information:" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2737 +#: howto/logging-cookbook.rst:2737 msgid "And if we want less:" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2745 +#: howto/logging-cookbook.rst:2745 msgid "" "In this case, the commands don't print anything to the console, since " "nothing at ``WARNING`` level or above is logged by them." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2751 +#: howto/logging-cookbook.rst:2751 msgid "A Qt GUI for logging" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2753 +#: howto/logging-cookbook.rst:2753 msgid "" "A question that comes up from time to time is about how to log to a GUI " "application. The `Qt `_ framework is a popular cross-" @@ -1498,7 +1990,7 @@ msgid "" "project/PySide2/>`_ or `PyQt5 `_ libraries." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2759 +#: howto/logging-cookbook.rst:2759 msgid "" "The following example shows how to log to a Qt GUI. This introduces a simple " "``QtHandler`` class which takes a callable, which should be a slot in the " @@ -1508,14 +2000,14 @@ msgid "" "logging messages at random levels with random short delays in between)." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2766 +#: howto/logging-cookbook.rst:2766 msgid "" "The worker thread is implemented using Qt's ``QThread`` class rather than " "the :mod:`threading` module, as there are circumstances where one has to use " "``QThread``, which offers better integration with other ``Qt`` components." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2770 +#: howto/logging-cookbook.rst:2770 msgid "" "The code should work with recent releases of either ``PySide2`` or " "``PyQt5``. You should be able to adapt the approach to earlier versions of " diff --git a/howto/logging.po b/howto/logging.po index 2e38e8133b..aefbcbf495 100644 --- a/howto/logging.po +++ b/howto/logging.po @@ -1837,7 +1837,7 @@ msgstr "" "exceptions qui se produisent lors de la journalisation en production. Il " "s'agit de sorte que les erreurs qui se produisent lors de la gestion des " "événements de journalisation (telles qu'une mauvaise configuration de la " -"journalisation , une erreur réseau ou d'autres erreurs similaires) ne " +"journalisation, une erreur réseau ou d'autres erreurs similaires) ne " "provoquent pas l'arrêt de l'application utilisant la journalisation." #: ../Doc/howto/logging.rst:1008 diff --git a/howto/pyporting.po b/howto/pyporting.po index f5817ef974..67a1074b54 100644 --- a/howto/pyporting.po +++ b/howto/pyporting.po @@ -5,15 +5,15 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-12-05 23:16+0100\n" -"PO-Revision-Date: 2019-10-31 15:33+0100\n" +"POT-Creation-Date: 2020-02-04 10:00+0100\n" +"PO-Revision-Date: 2020-03-28 16:08+0100\n" "Last-Translator: Loc Cosnier \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2.1\n" +"X-Generator: Poedit 2.0.6\n" #: ../Doc/howto/pyporting.rst:5 msgid "Porting Python 2 Code to Python 3" @@ -118,9 +118,9 @@ msgid "" "Use caniusepython3_ to find out which of your dependencies are blocking your " "use of Python 3 (``pip install caniusepython3``)" msgstr "" -"Utiliser caniusepython3_ pour déterminer quelles sont, parmi les dépendances " -"que vous utilisez, celles qui bloquent votre utilisation de Python 3 (``pip " -"install caniusepython3``)" +"Utiliser `caniusepython3`_ pour déterminer quelles sont, parmi les " +"dépendances que vous utilisez, celles qui bloquent votre utilisation de " +"Python 3 (``pip install caniusepython3``)" #: ../Doc/howto/pyporting.rst:41 msgid "" @@ -295,18 +295,19 @@ msgid "" "to Python 3! But to fully understand how your code is going to change and " "what you want to look out for while you code, you will want to learn what " "changes Python 3 makes in terms of Python 2. Typically the two best ways of " -"doing that is reading the `\"What's New\"`_ doc for each release of Python 3 " -"and the `Porting to Python 3`_ book (which is free online). There is also a " -"handy `cheat sheet`_ from the Python-Future project." +"doing that is reading the :ref:`\"What's New\" ` doc for " +"each release of Python 3 and the `Porting to Python 3`_ book (which is free " +"online). There is also a handy `cheat sheet`_ from the Python-Future project." msgstr "" "Une fois que votre code est bien testé, vous êtes prêt à démarrer votre " "portage vers Python 3 ! Mais afin de comprendre comment votre code va " "changer et à quoi s'intéresser spécifiquement pendant que vous codez, vous " "aurez sûrement envie de découvrir quels sont les changements introduits par " "Python 3 par rapport à Python 2. Pour atteindre cet objectif, les deux " -"meilleurs moyens sont de lire le document `\"What's New\"`_ de chaque " -"version de Python 3 et le livre `Porting to Python 3`_ (gratuit en ligne). " -"Il y a également une `cheat sheet`_ très pratique du projet Python-Future." +"meilleurs moyens sont de lire le document :ref:`whatsnew-index` de chaque " +"version de Python 3 et le livre `Porting to Python 3`_ (gratuit en ligne, en " +"anglais). Il y a également une « anti-sèche » (`cheat sheet`_, ressource en " +"anglais) très pratique du projet Python-Future." #: ../Doc/howto/pyporting.rst:128 msgid "Update your code" @@ -744,16 +745,16 @@ msgstr "" #: ../Doc/howto/pyporting.rst:305 msgid "" -"Let's pretend that you need access to a feature of importlib_ that is " +"Let's pretend that you need access to a feature of :mod:`importlib` that is " "available in Python's standard library since Python 3.3 and available for " "Python 2 through importlib2_ on PyPI. You might be tempted to write code to " -"access e.g. the ``importlib.abc`` module by doing the following::" +"access e.g. the :mod:`importlib.abc` module by doing the following::" msgstr "" -"Supposons que vous avez besoin d'accéder à une fonctionnalité de importlib_ " -"qui n'est disponible dans la bibliothèque standard de Python que depuis la " -"version 3.3 et est disponible pour Python 2 via le module importlib2_ sur " -"PyPI. Vous pourriez être tenté d'écrire un code qui accède, par exemple, au " -"module ``importlib.abc`` avec l'approche suivante : ::" +"Supposons que vous avez besoin d'accéder à une fonctionnalité de :mod:" +"`importlib` qui est disponible dans la bibliothèque standard de Python " +"depuis la version 3.3, dans celle de Python 2 via le module importlib2_ sur " +"*PyPI*. Vous pourriez être tenté d'écrire un code qui accède, par exemple, " +"au module :mod:`importlib.abc` avec l'approche suivante ::" #: ../Doc/howto/pyporting.rst:317 msgid "" @@ -765,7 +766,7 @@ msgstr "" "Le problème est le suivant : que se passe-t-il lorsque Python 4 est publié ? " "Il serait préférable de traiter le cas Python 2 comme l'exception plutôt que " "Python 3 et de supposer que les versions futures de Python 2 seront plus " -"compatibles avec Python 3 qu'avec Python 2 : ::" +"compatibles avec Python 3 qu'avec Python 2 ::" #: ../Doc/howto/pyporting.rst:329 msgid "" @@ -776,7 +777,7 @@ msgstr "" "Néanmoins la meilleure solution est de ne pas chercher à déterminer la " "version de Python mais plutôt à détecter les fonctionnalités disponibles. " "Cela évite les problèmes potentiels liés aux erreurs de détection de version " -"et facilite la compatibilité future : ::" +"et facilite la compatibilité future ::" #: ../Doc/howto/pyporting.rst:340 msgid "Prevent compatibility regressions" @@ -801,7 +802,7 @@ msgid "" msgstr "" "Afin de vous aider à maintenir la compatibilité, nous préconisons que tous " "les nouveaux modules que vous créez aient au moins le bloc de code suivant " -"en en-tête : ::" +"en en-tête ::" #: ../Doc/howto/pyporting.rst:354 msgid "" @@ -848,7 +849,7 @@ msgid "" msgstr "" "**Après** avoir rendu votre code compatible avec Python 3, vous devez " "commencer à vous intéresser au portage de vos dépendances. Le projet " -"caniusepython3_ a été créé afin de vous aider à déterminer quels projets " +"`caniusepython3`_ a été créé afin de vous aider à déterminer quels projets " "sont bloquants dans votre support de Python 3, directement ou indirectement. " "Il existe un outil en ligne de commande ainsi qu'une interface web : https://" "caniusepython3.com." @@ -925,7 +926,7 @@ msgstr "" "différents renvoient simplement ``False`` mais si vous avez fait une erreur " "dans votre séparation de la gestion texte/données binaires ou votre indiçage " "des *bytes*, vous ne trouverez pas facilement le bogue. Ce drapeau lève une " -"exception lorsque ce genre de comparaison apparaît, facilitant ainsi sa " +"exception lorsque ce genre de comparaison apparaît, facilitant ainsi son " "identification et sa localisation." #: ../Doc/howto/pyporting.rst:410 diff --git a/howto/regex.po b/howto/regex.po index a473d58996..f8b6e0a14e 100644 --- a/howto/regex.po +++ b/howto/regex.po @@ -6,32 +6,32 @@ msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: 2019-10-31 15:33+0100\n" +"PO-Revision-Date: 2020-04-27 22:24+0200\n" "Last-Translator: Nabil Bendafi \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2.1\n" +"X-Generator: Poedit 2.2.3\n" -#: ../Doc/howto/regex.rst:5 +#: howto/regex.rst:5 msgid "Regular Expression HOWTO" msgstr "Guide des expressions régulières" -#: ../Doc/howto/regex.rst:0 +#: howto/regex.rst:0 msgid "Author" msgstr "Auteur" -#: ../Doc/howto/regex.rst:7 +#: howto/regex.rst:7 msgid "A.M. Kuchling " msgstr "A.M. Kuchling " -#: ../Doc/howto/regex.rst:None +#: howto/regex.rst:None msgid "Abstract" msgstr "Résumé" -#: ../Doc/howto/regex.rst:18 +#: howto/regex.rst:18 msgid "" "This document is an introductory tutorial to using regular expressions in " "Python with the :mod:`re` module. It provides a gentler introduction than " @@ -42,11 +42,11 @@ msgstr "" "introduction plus abordable que la section correspondante dans le guide de " "référence de la bibliothèque." -#: ../Doc/howto/regex.rst:24 +#: howto/regex.rst:24 msgid "Introduction" msgstr "Introduction" -#: ../Doc/howto/regex.rst:26 +#: howto/regex.rst:26 msgid "" "Regular expressions (called REs, or regexes, or regex patterns) are " "essentially a tiny, highly specialized programming language embedded inside " @@ -71,7 +71,7 @@ msgstr "" "utiliser les RE pour modifier une chaîne de caractères ou la découper de " "différentes façons." -#: ../Doc/howto/regex.rst:35 +#: howto/regex.rst:35 msgid "" "Regular expression patterns are compiled into a series of bytecodes which " "are then executed by a matching engine written in C. For advanced use, it " @@ -90,7 +90,7 @@ msgstr "" "d'avoir une bonne compréhension des mécanismes internes du moteur de " "correspondance." -#: ../Doc/howto/regex.rst:42 +#: howto/regex.rst:42 msgid "" "The regular expression language is relatively small and restricted, so not " "all possible string processing tasks can be done using regular expressions. " @@ -109,11 +109,11 @@ msgstr "" "traitement ; même si le code Python est plus lent qu'une expression " "régulière élaborée, il sera probablement plus compréhensible." -#: ../Doc/howto/regex.rst:51 +#: howto/regex.rst:51 msgid "Simple Patterns" msgstr "Motifs simples" -#: ../Doc/howto/regex.rst:53 +#: howto/regex.rst:53 msgid "" "We'll start by learning about the simplest possible regular expressions. " "Since regular expressions are used to operate on strings, we'll begin with " @@ -124,7 +124,7 @@ msgstr "" "des chaînes de caractères, nous commençons par l'action la plus courante : " "la correspondance de caractères." -#: ../Doc/howto/regex.rst:57 +#: howto/regex.rst:57 msgid "" "For a detailed explanation of the computer science underlying regular " "expressions (deterministic and non-deterministic finite automata), you can " @@ -135,11 +135,11 @@ msgstr "" "vous pouvez vous référer à n'importe quel manuel sur l'écriture de " "compilateurs." -#: ../Doc/howto/regex.rst:63 +#: howto/regex.rst:63 msgid "Matching Characters" msgstr "Correspondance de caractères" -#: ../Doc/howto/regex.rst:65 +#: howto/regex.rst:65 msgid "" "Most letters and characters will simply match themselves. For example, the " "regular expression ``test`` will match the string ``test`` exactly. (You " @@ -152,7 +152,7 @@ msgstr "" "la casse qui permet à cette RE de correspondre également à ``Test`` ou " "``TEST`` (ce sujet est traité par la suite)." -#: ../Doc/howto/regex.rst:70 +#: howto/regex.rst:70 msgid "" "There are exceptions to this rule; some characters are special :dfn:" "`metacharacters`, and don't match themselves. Instead, they signal that " @@ -168,7 +168,7 @@ msgstr "" "en changeant leur sens. Une grande partie de ce document est consacrée au " "fonctionnement de ces métacaractères." -#: ../Doc/howto/regex.rst:76 +#: howto/regex.rst:76 msgid "" "Here's a complete list of the metacharacters; their meanings will be " "discussed in the rest of this HOWTO." @@ -176,7 +176,7 @@ msgstr "" "Voici une liste complète des métacaractères ; leur sens est décrit dans la " "suite de ce guide." -#: ../Doc/howto/regex.rst:83 +#: howto/regex.rst:83 msgid "" "The first metacharacters we'll look at are ``[`` and ``]``. They're used for " "specifying a character class, which is a set of characters that you wish to " @@ -197,19 +197,19 @@ msgstr "" "même ensemble de caractères. Si vous voulez trouver une chaîne qui ne " "contient que des lettres en minuscules, la RE est ``[a-z]``." -#: ../Doc/howto/regex.rst:92 +#: howto/regex.rst:92 msgid "" "Metacharacters are not active inside classes. For example, ``[akm$]`` will " "match any of the characters ``'a'``, ``'k'``, ``'m'``, or ``'$'``; ``'$'`` " "is usually a metacharacter, but inside a character class it's stripped of " "its special nature." msgstr "" -"Les métacaractères ne sont pas actifs dans les classes. Par exemple, ``[akm" -"$]`` correspond à n'importe quel caractère parmi ``'a'``, ``'k'``, ``'m'`` " -"ou ``'$'`` ; ``'$'`` est habituellement un métacaractère mais dans une " -"classe de caractères, il est dépourvu de sa signification spéciale." +"Les métacaractères ne sont pas actifs dans les classes. Par exemple, " +"``[akm$]`` correspond à n'importe quel caractère parmi ``'a'``, ``'k'``, " +"``'m'`` ou ``'$'`` ; ``'$'`` est habituellement un métacaractère mais dans " +"une classe de caractères, il est dépourvu de sa signification spéciale." -#: ../Doc/howto/regex.rst:97 +#: howto/regex.rst:97 msgid "" "You can match the characters not listed within the class by :dfn:" "`complementing` the set. This is indicated by including a ``'^'`` as the " @@ -226,7 +226,7 @@ msgstr "" "signification spéciale. Ainsi, ``[5^]`` correspond au ``'5'`` ou au " "caractère ``'^'``." -#: ../Doc/howto/regex.rst:103 +#: howto/regex.rst:103 msgid "" "Perhaps the most important metacharacter is the backslash, ``\\``. As in " "Python string literals, the backslash can be followed by various characters " @@ -244,7 +244,7 @@ msgstr "" "``[`` ou ``\\``, vous pouvez les précéder avec une barre oblique inverse " "pour annuler leur signification spéciale : ``\\[`` ou ``\\\\``." -#: ../Doc/howto/regex.rst:110 +#: howto/regex.rst:110 msgid "" "Some of the special sequences beginning with ``'\\'`` represent predefined " "sets of characters that are often useful, such as the set of digits, the set " @@ -255,7 +255,7 @@ msgstr "" "l'ensemble des chiffres, l'ensemble des lettres ou l'ensemble des caractères " "qui ne sont pas des \"blancs\"." -#: ../Doc/howto/regex.rst:115 +#: howto/regex.rst:115 msgid "" "Let's take an example: ``\\w`` matches any alphanumeric character. If the " "regex pattern is expressed in bytes, this is equivalent to the class ``[a-zA-" @@ -270,11 +270,11 @@ msgstr "" "équivalent à la classe ``[a-zA-Z0-9_]``. Si l'expression régulière est une " "chaîne de caractères, ``\\w`` correspond à tous les caractères identifiés " "comme lettre dans la base de données Unicode fournie par le module :mod:" -"`unicodedata`. Vous pouvez utiliser la définition plus restrictive de ``" -"\\w`` dans un motif exprimé en chaîne de caractères en spécifiant l'option :" -"const:`re.ASCII` lors de la compilation de l'expression régulière." +"`unicodedata`. Vous pouvez utiliser la définition plus restrictive de " +"``\\w`` dans un motif exprimé en chaîne de caractères en spécifiant " +"l'option :const:`re.ASCII` lors de la compilation de l'expression régulière." -#: ../Doc/howto/regex.rst:123 +#: howto/regex.rst:123 msgid "" "The following list of special sequences isn't complete. For a complete list " "of sequences and expanded class definitions for Unicode string patterns, see " @@ -290,44 +290,44 @@ msgstr "" "correspondance avec n'importe quel caractère présent dans la catégorie " "appropriée de la base de données Unicode." -#: ../Doc/howto/regex.rst:131 +#: howto/regex.rst:131 msgid "``\\d``" msgstr "``\\d``" -#: ../Doc/howto/regex.rst:131 +#: howto/regex.rst:131 msgid "Matches any decimal digit; this is equivalent to the class ``[0-9]``." msgstr "" "Correspond à n'importe quel caractère numérique ; équivalent à la classe " "``[0-9]``." -#: ../Doc/howto/regex.rst:134 +#: howto/regex.rst:134 msgid "``\\D``" msgstr "``\\D``" -#: ../Doc/howto/regex.rst:134 +#: howto/regex.rst:134 msgid "" "Matches any non-digit character; this is equivalent to the class ``[^0-9]``." msgstr "" "Correspond à n'importe caractère non numérique ; équivalent à la classe " "``[^0-9]``." -#: ../Doc/howto/regex.rst:138 +#: howto/regex.rst:138 msgid "``\\s``" msgstr "``\\s``" -#: ../Doc/howto/regex.rst:137 +#: howto/regex.rst:137 msgid "" -"Matches any whitespace character; this is equivalent to the class ``[ \\t\\n" -"\\r\\f\\v]``." +"Matches any whitespace character; this is equivalent to the class " +"``[ \\t\\n\\r\\f\\v]``." msgstr "" "Correspond à n'importe quel caractère \"blanc\" ; équivalent à la classe " "``[ \\t\\n\\r\\f\\v]``." -#: ../Doc/howto/regex.rst:142 +#: howto/regex.rst:142 msgid "``\\S``" msgstr "``\\S``" -#: ../Doc/howto/regex.rst:141 +#: howto/regex.rst:141 msgid "" "Matches any non-whitespace character; this is equivalent to the class ``[^ " "\\t\\n\\r\\f\\v]``." @@ -335,11 +335,11 @@ msgstr "" "Correspond à n'importe caractère autre que \"blanc\" ; équivalent à la " "classe ``[^ \\t\\n\\r\\f\\v]``." -#: ../Doc/howto/regex.rst:146 +#: howto/regex.rst:146 msgid "``\\w``" msgstr "``\\w``" -#: ../Doc/howto/regex.rst:145 +#: howto/regex.rst:145 msgid "" "Matches any alphanumeric character; this is equivalent to the class ``[a-zA-" "Z0-9_]``." @@ -347,11 +347,11 @@ msgstr "" "Correspond à n'importe caractère alphanumérique ; équivalent à la classe " "``[a-zA-Z0-9_]``." -#: ../Doc/howto/regex.rst:150 +#: howto/regex.rst:150 msgid "``\\W``" msgstr "``\\W``" -#: ../Doc/howto/regex.rst:149 +#: howto/regex.rst:149 msgid "" "Matches any non-alphanumeric character; this is equivalent to the class " "``[^a-zA-Z0-9_]``." @@ -359,7 +359,7 @@ msgstr "" "Correspond à n'importe caractère non-alphanumérique ; équivalent à la classe " "``[^a-zA-Z0-9_]``." -#: ../Doc/howto/regex.rst:152 +#: howto/regex.rst:152 msgid "" "These sequences can be included inside a character class. For example, " "``[\\s,.]`` is a character class that will match any whitespace character, " @@ -369,7 +369,7 @@ msgstr "" "exemple, ``[\\s,.]`` est une classe de caractères qui correspond à tous les " "caractères \"blancs\" ou ``','`` ou ``'.'``." -#: ../Doc/howto/regex.rst:156 +#: howto/regex.rst:156 msgid "" "The final metacharacter in this section is ``.``. It matches anything " "except a newline character, and there's an alternate mode (:const:`re." @@ -382,11 +382,11 @@ msgstr "" "eu caractère de retour à la ligne. ``.`` est souvent utilisé lorsque l'on " "veut trouver une correspondance avec \"n'importe quel caractère\"." -#: ../Doc/howto/regex.rst:163 +#: howto/regex.rst:163 msgid "Repeating Things" msgstr "Répétitions" -#: ../Doc/howto/regex.rst:165 +#: howto/regex.rst:165 msgid "" "Being able to match varying sets of characters is the first thing regular " "expressions can do that isn't already possible with the methods available on " @@ -401,7 +401,7 @@ msgstr "" "Une autre utilisation consiste à spécifier des portions d'une RE qui peuvent " "être répétées un certain nombre de fois." -#: ../Doc/howto/regex.rst:171 +#: howto/regex.rst:171 msgid "" "The first metacharacter for repeating things that we'll look at is ``*``. " "``*`` doesn't match the literal character ``'*'``; instead, it specifies " @@ -413,7 +413,7 @@ msgstr "" "spécifie que le caractère précédent peut correspondre zéro, une ou plusieurs " "fois (au lieu d'une seule fois)." -#: ../Doc/howto/regex.rst:175 +#: howto/regex.rst:175 msgid "" "For example, ``ca*t`` will match ``'ct'`` (0 ``'a'`` characters), ``'cat'`` " "(1 ``'a'``), ``'caaat'`` (3 ``'a'`` characters), and so forth." @@ -422,7 +422,7 @@ msgstr "" "``'chat'`` (1 ``'a'``), ``'chaaat'`` (3 caractères ``'a'``) et ainsi de " "suite." -#: ../Doc/howto/regex.rst:178 +#: howto/regex.rst:178 msgid "" "Repetitions such as ``*`` are :dfn:`greedy`; when repeating a RE, the " "matching engine will try to repeat it as many times as possible. If later " @@ -435,7 +435,7 @@ msgstr "" "correspond pas, le moteur de correspondance revient en arrière et essaie " "avec moins de répétitions." -#: ../Doc/howto/regex.rst:183 +#: howto/regex.rst:183 msgid "" "A step-by-step example will make this more obvious. Let's consider the " "expression ``a[bcd]*b``. This matches the letter ``'a'``, zero or more " @@ -448,39 +448,39 @@ msgstr "" "Maintenant, supposons que nous cherchons une correspondance de cette RE avec " "la chaîne de caractères ``'abcbd'``." -#: ../Doc/howto/regex.rst:189 +#: howto/regex.rst:189 msgid "Step" msgstr "Étape" -#: ../Doc/howto/regex.rst:189 +#: howto/regex.rst:189 msgid "Matched" msgstr "Correspond" -#: ../Doc/howto/regex.rst:189 +#: howto/regex.rst:189 msgid "Explanation" msgstr "Explication" -#: ../Doc/howto/regex.rst:191 +#: howto/regex.rst:191 msgid "1" msgstr "1" -#: ../Doc/howto/regex.rst:191 +#: howto/regex.rst:191 msgid "``a``" msgstr "``a``" -#: ../Doc/howto/regex.rst:191 +#: howto/regex.rst:191 msgid "The ``a`` in the RE matches." msgstr "Le ``a`` correspond dans la RE." -#: ../Doc/howto/regex.rst:193 +#: howto/regex.rst:193 msgid "2" msgstr "2" -#: ../Doc/howto/regex.rst:193 +#: howto/regex.rst:193 msgid "``abcbd``" msgstr "``abcbd``" -#: ../Doc/howto/regex.rst:193 +#: howto/regex.rst:193 msgid "" "The engine matches ``[bcd]*``, going as far as it can, which is to the end " "of the string." @@ -488,15 +488,15 @@ msgstr "" "Le moteur de correspondance trouve ``[bcd]*``, va aussi loin qu'il le peut, " "ce qui n'est pas la fin de la chaîne." -#: ../Doc/howto/regex.rst:197 +#: howto/regex.rst:197 msgid "3" msgstr "3" -#: ../Doc/howto/regex.rst:197 ../Doc/howto/regex.rst:205 +#: howto/regex.rst:205 msgid "*Failure*" msgstr "*échec*" -#: ../Doc/howto/regex.rst:197 +#: howto/regex.rst:197 msgid "" "The engine tries to match ``b``, but the current position is at the end of " "the string, so it fails." @@ -504,25 +504,25 @@ msgstr "" "Le moteur essaie de trouver une correspondance avec ``b`` mais la position " "courante est à la fin de la chaîne de caractères, donc il échoue." -#: ../Doc/howto/regex.rst:202 +#: howto/regex.rst:202 msgid "4" msgstr "4" -#: ../Doc/howto/regex.rst:202 ../Doc/howto/regex.rst:213 +#: howto/regex.rst:213 msgid "``abcb``" msgstr "``abcb``" -#: ../Doc/howto/regex.rst:202 +#: howto/regex.rst:202 msgid "Back up, so that ``[bcd]*`` matches one less character." msgstr "" "Retour en arrière, de manière à ce que ``[bcd]*`` corresponde avec un " "caractère de moins." -#: ../Doc/howto/regex.rst:205 +#: howto/regex.rst:205 msgid "5" msgstr "5" -#: ../Doc/howto/regex.rst:205 +#: howto/regex.rst:205 msgid "" "Try ``b`` again, but the current position is at the last character, which is " "a ``'d'``." @@ -530,21 +530,21 @@ msgstr "" "Essaie encore ``b``, mais la position courante est le dernier caractère, qui " "est ``'d'``." -#: ../Doc/howto/regex.rst:209 ../Doc/howto/regex.rst:213 +#: howto/regex.rst:213 msgid "6" msgstr "6" -#: ../Doc/howto/regex.rst:209 +#: howto/regex.rst:209 msgid "``abc``" msgstr "``abc``" -#: ../Doc/howto/regex.rst:209 +#: howto/regex.rst:209 msgid "Back up again, so that ``[bcd]*`` is only matching ``bc``." msgstr "" "Encore un retour en arrière, de manière à ce que ``[bcd]*`` ne corresponde " "qu'à ``bc``." -#: ../Doc/howto/regex.rst:213 +#: howto/regex.rst:213 msgid "" "Try ``b`` again. This time the character at the current position is " "``'b'``, so it succeeds." @@ -552,7 +552,7 @@ msgstr "" "Essaie ``b`` encore une fois. Cette fois, le caractère à la position " "courante est ``'b'``, donc cela fonctionne." -#: ../Doc/howto/regex.rst:219 +#: howto/regex.rst:219 msgid "" "The end of the RE has now been reached, and it has matched ``'abcb'``. This " "demonstrates how the matching engine goes as far as it can at first, and if " @@ -569,7 +569,7 @@ msgstr "" "pour ``[bcd]*`` et, si cela échoue toujours, le moteur conclut que la chaîne " "de caractères et la RE ne correspondent pas du tout." -#: ../Doc/howto/regex.rst:226 +#: howto/regex.rst:226 msgid "" "Another repeating metacharacter is ``+``, which matches one or more times. " "Pay careful attention to the difference between ``*`` and ``+``; ``*`` " @@ -586,7 +586,7 @@ msgstr "" "``'chat'`` (1 ``'a'``), ``'chaaat'`` (3 ``'a'``) mais ne correspond pas avec " "``'ct'``." -#: ../Doc/howto/regex.rst:233 +#: howto/regex.rst:233 msgid "" "There are two more repeating qualifiers. The question mark character, ``?" "``, matches either once or zero times; you can think of it as marking " @@ -599,7 +599,7 @@ msgstr "" "caractère`` fait correspondre soit ``métacaractère``, soit ``méta-" "caractère``." -#: ../Doc/howto/regex.rst:238 +#: howto/regex.rst:238 msgid "" "The most complicated repeated qualifier is ``{m,n}``, where *m* and *n* are " "decimal integers. This qualifier means there must be at least *m* " @@ -613,7 +613,7 @@ msgstr "" "b'``, ``'a//b'`` et ``'a///b'``. Elle ne fait pas correspondre ``'ab'`` (pas " "de barre oblique) ni ``'a////b'`` (quatre barres obliques)." -#: ../Doc/howto/regex.rst:244 +#: howto/regex.rst:244 msgid "" "You can omit either *m* or *n*; in that case, a reasonable value is assumed " "for the missing value. Omitting *m* is interpreted as a lower limit of 0, " @@ -623,7 +623,7 @@ msgstr "" "est prise pour la valeur manquante. Omettre *m* considère que la borne basse " "est 0 alors qu'omettre *n* signifie qu'il n'y a pas de borne supérieure." -#: ../Doc/howto/regex.rst:248 +#: howto/regex.rst:248 msgid "" "Readers of a reductionist bent may notice that the three other qualifiers " "can all be expressed using this notation. ``{0,}`` is the same as ``*``, " @@ -637,11 +637,11 @@ msgstr "" "Il est préférable d'utiliser ``*``, ``+`` ou ``?`` quand vous le pouvez, " "simplement parce qu'ils sont plus courts et plus faciles à lire." -#: ../Doc/howto/regex.rst:256 +#: howto/regex.rst:256 msgid "Using Regular Expressions" msgstr "Utilisation des expressions régulières" -#: ../Doc/howto/regex.rst:258 +#: howto/regex.rst:258 msgid "" "Now that we've looked at some simple regular expressions, how do we actually " "use them in Python? The :mod:`re` module provides an interface to the " @@ -653,11 +653,11 @@ msgstr "" "le moteur de correspondance, ce qui permet de compiler les RE en objets et " "d'effectuer des correspondances avec." -#: ../Doc/howto/regex.rst:265 +#: howto/regex.rst:265 msgid "Compiling Regular Expressions" msgstr "Compilation des expressions régulières" -#: ../Doc/howto/regex.rst:267 +#: howto/regex.rst:267 msgid "" "Regular expressions are compiled into pattern objects, which have methods " "for various operations such as searching for pattern matches or performing " @@ -667,7 +667,7 @@ msgstr "" "des méthodes pour diverses opérations telles que la recherche de " "correspondances ou les substitutions dans les chaînes. ::" -#: ../Doc/howto/regex.rst:276 +#: howto/regex.rst:276 msgid "" ":func:`re.compile` also accepts an optional *flags* argument, used to enable " "various special features and syntax variations. We'll go over the available " @@ -678,7 +678,7 @@ msgstr "" "étudierons la définition des variables plus tard et, pour l'instant, un seul " "exemple suffit ::" -#: ../Doc/howto/regex.rst:282 +#: howto/regex.rst:282 msgid "" "The RE is passed to :func:`re.compile` as a string. REs are handled as " "strings because regular expressions aren't part of the core Python language, " @@ -696,7 +696,7 @@ msgstr "" "le module :mod:`re` est simplement un module d'extension en C inclus dans " "Python, tout comme les modules :mod:`socket` ou :mod:`zlib`." -#: ../Doc/howto/regex.rst:289 +#: howto/regex.rst:289 msgid "" "Putting REs in strings keeps the Python language simpler, but has one " "disadvantage which is the topic of the next section." @@ -705,11 +705,11 @@ msgstr "" "simple mais introduit un inconvénient qui fait l'objet de la section " "suivante." -#: ../Doc/howto/regex.rst:296 +#: howto/regex.rst:296 msgid "The Backslash Plague" msgstr "La maudite barre oblique inverse" -#: ../Doc/howto/regex.rst:298 +#: howto/regex.rst:298 msgid "" "As stated earlier, regular expressions use the backslash character " "(``'\\'``) to indicate special forms or to allow special characters to be " @@ -723,7 +723,7 @@ msgstr "" "de Python qui est qu'un caractère doit avoir la même signification dans les " "littéraux de chaînes de caractères." -#: ../Doc/howto/regex.rst:303 +#: howto/regex.rst:303 msgid "" "Let's say you want to write a RE that matches the string ``\\section``, " "which might be found in a LaTeX file. To figure out what to write in the " @@ -745,40 +745,40 @@ msgstr "" "littérale Python, nous devons échapper les deux barres obliques inverses " "*encore une fois*." -#: ../Doc/howto/regex.rst:312 +#: howto/regex.rst:312 msgid "Characters" msgstr "Caractères" -#: ../Doc/howto/regex.rst:312 +#: howto/regex.rst:312 msgid "Stage" msgstr "Niveau" -#: ../Doc/howto/regex.rst:314 +#: howto/regex.rst:314 msgid "``\\section``" msgstr "``\\section``" -#: ../Doc/howto/regex.rst:314 +#: howto/regex.rst:314 msgid "Text string to be matched" msgstr "Chaîne de caractère à chercher" -#: ../Doc/howto/regex.rst:316 +#: howto/regex.rst:316 msgid "``\\\\section``" msgstr "``\\\\section``" -#: ../Doc/howto/regex.rst:316 +#: howto/regex.rst:316 msgid "Escaped backslash for :func:`re.compile`" msgstr "Barre oblique inverse échappée pour :func:`re.compile`" -#: ../Doc/howto/regex.rst:318 ../Doc/howto/regex.rst:345 +#: howto/regex.rst:345 msgid "``\"\\\\\\\\section\"``" msgstr "``\"\\\\\\\\section\"``" -#: ../Doc/howto/regex.rst:318 +#: howto/regex.rst:318 msgid "Escaped backslashes for a string literal" msgstr "" "Barres obliques inverses échappées pour un littéral de chaîne de caractères" -#: ../Doc/howto/regex.rst:321 +#: howto/regex.rst:321 msgid "" "In short, to match a literal backslash, one has to write ``'\\\\\\\\'`` as " "the RE string, because the regular expression must be ``\\\\``, and each " @@ -794,7 +794,7 @@ msgstr "" "inverses, cela conduit à beaucoup de barres obliques inverses et rend la " "chaîne résultante difficile à comprendre." -#: ../Doc/howto/regex.rst:327 +#: howto/regex.rst:327 msgid "" "The solution is to use Python's raw string notation for regular expressions; " "backslashes are not handled in any special way in a string literal prefixed " @@ -811,7 +811,7 @@ msgstr "" "le caractère retour à la ligne. Les expressions régulières sont souvent " "écrites dans le code Python en utilisant la notation \"chaînes brutes\"." -#: ../Doc/howto/regex.rst:333 +#: howto/regex.rst:333 msgid "" "In addition, special escape sequences that are valid in regular expressions, " "but not valid as Python string literals, now result in a :exc:" @@ -826,39 +826,39 @@ msgstr "" "invalides si la notation \"chaîne brute\" ou l'échappement des barres " "obliques inverses ne sont pas utilisés." -#: ../Doc/howto/regex.rst:341 +#: howto/regex.rst:341 msgid "Regular String" msgstr "Chaîne normale" -#: ../Doc/howto/regex.rst:341 +#: howto/regex.rst:341 msgid "Raw string" msgstr "Chaîne de caractères brute" -#: ../Doc/howto/regex.rst:343 +#: howto/regex.rst:343 msgid "``\"ab*\"``" msgstr "``\"ab*\"``" -#: ../Doc/howto/regex.rst:343 +#: howto/regex.rst:343 msgid "``r\"ab*\"``" msgstr "``r\"ab*\"``" -#: ../Doc/howto/regex.rst:345 +#: howto/regex.rst:345 msgid "``r\"\\\\section\"``" msgstr "``r\"\\\\section\"``" -#: ../Doc/howto/regex.rst:347 +#: howto/regex.rst:347 msgid "``\"\\\\w+\\\\s+\\\\1\"``" msgstr "``\"\\\\w+\\\\s+\\\\1\"``" -#: ../Doc/howto/regex.rst:347 +#: howto/regex.rst:347 msgid "``r\"\\w+\\s+\\1\"``" msgstr "``r\"\\w+\\s+\\1\"``" -#: ../Doc/howto/regex.rst:352 +#: howto/regex.rst:352 msgid "Performing Matches" msgstr "Recherche de correspondances" -#: ../Doc/howto/regex.rst:354 +#: howto/regex.rst:354 msgid "" "Once you have an object representing a compiled regular expression, what do " "you do with it? Pattern objects have several methods and attributes. Only " @@ -870,47 +870,45 @@ msgstr "" "attributs. Seuls les plus significatifs seront couverts ici ; consultez la " "documentation :mod:`re` pour la liste complète." -#: ../Doc/howto/regex.rst:360 ../Doc/howto/regex.rst:418 -#: ../Doc/howto/regex.rst:1064 +#: howto/regex.rst:418 howto/regex.rst:1064 msgid "Method/Attribute" msgstr "Méthode/Attribut" -#: ../Doc/howto/regex.rst:360 ../Doc/howto/regex.rst:418 -#: ../Doc/howto/regex.rst:1064 +#: howto/regex.rst:418 howto/regex.rst:1064 msgid "Purpose" msgstr "Objectif" -#: ../Doc/howto/regex.rst:362 +#: howto/regex.rst:362 msgid "``match()``" msgstr "``match()``" -#: ../Doc/howto/regex.rst:362 +#: howto/regex.rst:362 msgid "Determine if the RE matches at the beginning of the string." msgstr "Détermine si la RE fait correspond dès le début de la chaîne." -#: ../Doc/howto/regex.rst:365 +#: howto/regex.rst:365 msgid "``search()``" msgstr "``search()``" -#: ../Doc/howto/regex.rst:365 +#: howto/regex.rst:365 msgid "Scan through a string, looking for any location where this RE matches." msgstr "Analyse la chaîne à la recherche d'une position où la RE correspond." -#: ../Doc/howto/regex.rst:368 +#: howto/regex.rst:368 msgid "``findall()``" msgstr "``findall()``" -#: ../Doc/howto/regex.rst:368 +#: howto/regex.rst:368 msgid "Find all substrings where the RE matches, and returns them as a list." msgstr "" "Trouve toutes les sous-chaînes qui correspondent à la RE et les renvoie sous " "la forme d'une liste." -#: ../Doc/howto/regex.rst:371 +#: howto/regex.rst:371 msgid "``finditer()``" msgstr "``finditer()``" -#: ../Doc/howto/regex.rst:371 +#: howto/regex.rst:371 msgid "" "Find all substrings where the RE matches, and returns them as an :term:" "`iterator`." @@ -918,7 +916,7 @@ msgstr "" "Trouve toutes les sous-chaînes qui correspondent à la RE et les renvoie sous " "la forme d'un :term:`itérateur `." -#: ../Doc/howto/regex.rst:375 +#: howto/regex.rst:375 msgid "" ":meth:`~re.Pattern.match` and :meth:`~re.Pattern.search` return ``None`` if " "no match can be found. If they're successful, a :ref:`match object `, vous pouvez ainsi stocker le résultat dans " "une variable pour une utilisation ultérieure. ::" -#: ../Doc/howto/regex.rst:413 +#: howto/regex.rst:413 msgid "" "Now you can query the :ref:`match object ` for information " "about the matching string. Match object instances also have several methods " @@ -995,44 +993,44 @@ msgstr "" "instances d'objets correspondances possèdent plusieurs méthodes et " "attributs ; les plus importants sont :" -#: ../Doc/howto/regex.rst:420 +#: howto/regex.rst:420 msgid "``group()``" msgstr "``group()``" -#: ../Doc/howto/regex.rst:420 +#: howto/regex.rst:420 msgid "Return the string matched by the RE" msgstr "Renvoie la chaîne de caractères correspondant à la RE" -#: ../Doc/howto/regex.rst:422 +#: howto/regex.rst:422 msgid "``start()``" msgstr "``start()``" -#: ../Doc/howto/regex.rst:422 +#: howto/regex.rst:422 msgid "Return the starting position of the match" msgstr "Renvoie la position de début de la correspondance" -#: ../Doc/howto/regex.rst:424 +#: howto/regex.rst:424 msgid "``end()``" msgstr "``end()``" -#: ../Doc/howto/regex.rst:424 +#: howto/regex.rst:424 msgid "Return the ending position of the match" msgstr "Renvoie la position de fin de la correspondance" -#: ../Doc/howto/regex.rst:426 +#: howto/regex.rst:426 msgid "``span()``" msgstr "``span()``" -#: ../Doc/howto/regex.rst:426 +#: howto/regex.rst:426 msgid "Return a tuple containing the (start, end) positions of the match" msgstr "" "Renvoie un *tuple* contenant les positions (début, fin) de la correspondance" -#: ../Doc/howto/regex.rst:430 +#: howto/regex.rst:430 msgid "Trying these methods will soon clarify their meaning::" msgstr "Essayons ces méthodes pour clarifier leur signification ::" -#: ../Doc/howto/regex.rst:439 +#: howto/regex.rst:439 msgid "" ":meth:`~re.Match.group` returns the substring that was matched by the RE. :" "meth:`~re.Match.start` and :meth:`~re.Match.end` return the starting and " @@ -1052,7 +1050,7 @@ msgstr "" "search` d'un motif analyse toute la chaîne, afin de trouver une " "correspondance potentielle qui ne commence pas à zéro. ::" -#: ../Doc/howto/regex.rst:456 +#: howto/regex.rst:456 msgid "" "In actual programs, the most common style is to store the :ref:`match object " "` in a variable, and then check if it was ``None``. This " @@ -1062,7 +1060,7 @@ msgstr "" "stocker :ref:`l'objet correspondance ` dans une variable, " "puis à vérifier s'il vaut ``None``. Généralement, cela ressemble à ceci ::" -#: ../Doc/howto/regex.rst:467 +#: howto/regex.rst:467 msgid "" "Two pattern methods return all of the matches for a pattern. :meth:`~re." "Pattern.findall` returns a list of matching strings::" @@ -1070,7 +1068,7 @@ msgstr "" "Deux méthodes de motifs renvoient toutes les correspondances pour un motif. :" "meth:`~re.Pattern.findall` renvoie une liste des chaînes qui correspondent ::" -#: ../Doc/howto/regex.rst:474 +#: howto/regex.rst:474 msgid "" "The ``r`` prefix, making the literal a raw string literal, is needed in this " "example because escape sequences in a normal \"cooked\" string literal that " @@ -1085,7 +1083,7 @@ msgstr "" "deviendront possiblement des :exc:`SyntaxError`. Reportez-vous à :ref:`the-" "backslash-plague`." -#: ../Doc/howto/regex.rst:480 +#: howto/regex.rst:480 msgid "" ":meth:`~re.Pattern.findall` has to create the entire list before it can be " "returned as the result. The :meth:`~re.Pattern.finditer` method returns a " @@ -1097,11 +1095,11 @@ msgstr "" "d'instances :ref:`d'objets correspondances ` en tant :term:" "`qu'itérateur ` ::" -#: ../Doc/howto/regex.rst:496 +#: howto/regex.rst:496 msgid "Module-Level Functions" msgstr "Fonctions de niveau module" -#: ../Doc/howto/regex.rst:498 +#: howto/regex.rst:498 msgid "" "You don't have to create a pattern object and call its methods; the :mod:" "`re` module also provides top-level functions called :func:`~re.match`, :" @@ -1118,7 +1116,7 @@ msgstr "" "premier argument. Elles renvoient toujours ``None`` ou une instance :ref:" "`d'objet correspondance `. ::" -#: ../Doc/howto/regex.rst:510 +#: howto/regex.rst:510 msgid "" "Under the hood, these functions simply create a pattern object for you and " "call the appropriate method on it. They also store the compiled object in a " @@ -1130,7 +1128,7 @@ msgstr "" "l'objet compilé dans un cache afin que les appels suivants qui utilisent la " "même RE n'aient pas besoin d'analyser le motif une nouvelle fois." -#: ../Doc/howto/regex.rst:515 +#: howto/regex.rst:515 msgid "" "Should you use these module-level functions, or should you get the pattern " "and call its methods yourself? If you're accessing a regex within a loop, " @@ -1143,11 +1141,11 @@ msgstr "" "d'économiser quelques appels de fonctions. En dehors des boucles, il n'y a " "pas beaucoup de différence grâce au cache interne." -#: ../Doc/howto/regex.rst:523 +#: howto/regex.rst:523 msgid "Compilation Flags" msgstr "Options de compilation" -#: ../Doc/howto/regex.rst:525 +#: howto/regex.rst:525 msgid "" "Compilation flags let you modify some aspects of how regular expressions " "work. Flags are available in the :mod:`re` module under two names, a long " @@ -1168,7 +1166,7 @@ msgstr "" "bit *OR* ; par exemple, ``re.I | re.M`` active à la fois les options :const:" "`I` et :const:`M`." -#: ../Doc/howto/regex.rst:533 +#: howto/regex.rst:533 msgid "" "Here's a table of the available flags, followed by a more detailed " "explanation of each one." @@ -1176,76 +1174,76 @@ msgstr "" "Vous trouvez ci-dessous le tableau des options disponibles, suivies " "d'explications détaillées." -#: ../Doc/howto/regex.rst:537 +#: howto/regex.rst:537 msgid "Flag" msgstr "Option" -#: ../Doc/howto/regex.rst:537 +#: howto/regex.rst:537 msgid "Meaning" msgstr "Signification" -#: ../Doc/howto/regex.rst:539 +#: howto/regex.rst:539 msgid ":const:`ASCII`, :const:`A`" msgstr ":const:`ASCII`, :const:`A`" -#: ../Doc/howto/regex.rst:539 +#: howto/regex.rst:539 msgid "" "Makes several escapes like ``\\w``, ``\\b``, ``\\s`` and ``\\d`` match only " "on ASCII characters with the respective property." msgstr "" -"Transforme plusieurs échappements tels que ``\\w``, ``\\b``, ``\\s`` et ``" -"\\d`` de manière à ce qu'ils ne correspondent qu'à des caractères ASCII " +"Transforme plusieurs échappements tels que ``\\w``, ``\\b``, ``\\s`` et " +"``\\d`` de manière à ce qu'ils ne correspondent qu'à des caractères ASCII " "ayant la propriété demandée." -#: ../Doc/howto/regex.rst:543 +#: howto/regex.rst:543 msgid ":const:`DOTALL`, :const:`S`" msgstr ":const:`DOTALL`, :const:`S`" -#: ../Doc/howto/regex.rst:543 +#: howto/regex.rst:543 msgid "Make ``.`` match any character, including newlines." msgstr "" "Fait en sorte que ``.`` corresponde à n'importe quel caractère, caractère de " "retour à la ligne inclus." -#: ../Doc/howto/regex.rst:546 +#: howto/regex.rst:546 msgid ":const:`IGNORECASE`, :const:`I`" msgstr ":const:`IGNORECASE`, :const:`I`" -#: ../Doc/howto/regex.rst:546 +#: howto/regex.rst:546 msgid "Do case-insensitive matches." msgstr "Recherche une correspondance sans tenir compte de la casse." -#: ../Doc/howto/regex.rst:548 +#: howto/regex.rst:548 msgid ":const:`LOCALE`, :const:`L`" msgstr ":const:`LOCALE`, :const:`L`" -#: ../Doc/howto/regex.rst:548 +#: howto/regex.rst:548 msgid "Do a locale-aware match." msgstr "" "Recherche une correspondance en tenant compte de la configuration de la " "région." -#: ../Doc/howto/regex.rst:550 +#: howto/regex.rst:550 msgid ":const:`MULTILINE`, :const:`M`" msgstr ":const:`MULTILINE`, :const:`M`" -#: ../Doc/howto/regex.rst:550 +#: howto/regex.rst:550 msgid "Multi-line matching, affecting ``^`` and ``$``." msgstr "Correspondance multi-lignes, affecte ``^`` et ``$``." -#: ../Doc/howto/regex.rst:553 +#: howto/regex.rst:553 msgid ":const:`VERBOSE`, :const:`X` (for 'extended')" msgstr "" -":const:`VERBOSE`, :const:`X` (pour *extended*, c-à-d étendu en anglais)" +":const:`VERBOSE`, :const:`X` (pour *extended*, c.-à-d. étendu en anglais)" -#: ../Doc/howto/regex.rst:553 +#: howto/regex.rst:553 msgid "" "Enable verbose REs, which can be organized more cleanly and understandably." msgstr "" "Active les RE verbeuses, qui peuvent être organisées de manière plus propre " "et compréhensible." -#: ../Doc/howto/regex.rst:562 +#: howto/regex.rst:562 msgid "" "Perform case-insensitive matching; character class and literal strings will " "match letters by ignoring case. For example, ``[A-Z]`` will match lowercase " @@ -1254,8 +1252,8 @@ msgid "" "z]`` or ``[A-Z]`` are used in combination with the :const:`IGNORECASE` flag, " "they will match the 52 ASCII letters and 4 additional non-ASCII letters: " "'İ' (U+0130, Latin capital letter I with dot above), 'ı' (U+0131, Latin " -"small letter dotless i), 'ſ' (U+017F, Latin small letter long s) and 'K' (U" -"+212A, Kelvin sign). ``Spam`` will match ``'Spam'``, ``'spam'``, " +"small letter dotless i), 'ſ' (U+017F, Latin small letter long s) and " +"'K' (U+212A, Kelvin sign). ``Spam`` will match ``'Spam'``, ``'spam'``, " "``'spAM'``, or ``'ſpam'`` (the latter is matched only in Unicode mode). This " "lowercasing doesn't take the current locale into account; it will if you " "also set the :const:`LOCALE` flag." @@ -1276,7 +1274,7 @@ msgstr "" "de région courante ; elle le fait si vous mettez aussi l'option :const:" "`LOCALE`." -#: ../Doc/howto/regex.rst:580 +#: howto/regex.rst:580 msgid "" "Make ``\\w``, ``\\W``, ``\\b``, ``\\B`` and case-insensitive matching " "dependent on the current locale instead of the Unicode database." @@ -1285,7 +1283,7 @@ msgstr "" "à la casse dépendants de la configuration de la région courante au lieu de " "la base de données Unicode." -#: ../Doc/howto/regex.rst:583 +#: howto/regex.rst:583 msgid "" "Locales are a feature of the C library intended to help in writing programs " "that take account of language differences. For example, if you're " @@ -1315,15 +1313,15 @@ msgstr "" "certaines fonctions C diront à votre programme que l'octet codant ``é`` doit " "être considéré comme une lettre. Définir l'option :const:`LOCALE` lors de la " "compilation d'une expression régulière fait que l'objet compilé résultant " -"utilise ces fonctions C pour ``\\w`` ; c'est plus lent mais cela permet à ``" -"\\w+`` de correspondre avec les mots français tel qu'attendu. L'utilisation " -"de cette option est déconseillée en Python 3 car le mécanisme de locale est " -"très peu fiable, il ne gère qu'une seule \"culture\" à la fois et il ne " -"fonctionne qu'avec des locales 8 bits. La correspondance Unicode est déjà " -"activée par défaut dans Python 3 pour les motifs Unicode (type *str*) et " -"elle est capable de gérer différentes configurations de régions." +"utilise ces fonctions C pour ``\\w`` ; c'est plus lent mais cela permet à " +"``\\w+`` de correspondre avec les mots français tel qu'attendu. " +"L'utilisation de cette option est déconseillée en Python 3 car le mécanisme " +"de locale est très peu fiable, il ne gère qu'une seule \"culture\" à la fois " +"et il ne fonctionne qu'avec des locales 8 bits. La correspondance Unicode " +"est déjà activée par défaut dans Python 3 pour les motifs Unicode (type " +"*str*) et elle est capable de gérer différentes configurations de régions." -#: ../Doc/howto/regex.rst:605 +#: howto/regex.rst:605 msgid "" "(``^`` and ``$`` haven't been explained yet; they'll be introduced in " "section :ref:`more-metacharacters`.)" @@ -1331,7 +1329,7 @@ msgstr "" "Nota : ``^`` et ``$`` n'ont pas encore été expliqués ; ils sont introduits " "dans la section :ref:`more-metacharacters`." -#: ../Doc/howto/regex.rst:608 +#: howto/regex.rst:608 msgid "" "Usually ``^`` matches only at the beginning of the string, and ``$`` matches " "only at the end of the string and immediately before the newline (if any) at " @@ -1350,7 +1348,7 @@ msgstr "" "fin de la chaîne de caractères ou à la fin de chaque ligne (précédant " "immédiatement chaque nouvelle ligne)." -#: ../Doc/howto/regex.rst:621 +#: howto/regex.rst:621 msgid "" "Makes the ``'.'`` special character match any character at all, including a " "newline; without this flag, ``'.'`` will match anything *except* a newline." @@ -1359,7 +1357,7 @@ msgstr "" "caractère, y compris le retour à la ligne ; sans cette option, ``'.'`` " "correspond avec tout, *sauf* le retour à la ligne." -#: ../Doc/howto/regex.rst:629 +#: howto/regex.rst:629 msgid "" "Make ``\\w``, ``\\W``, ``\\b``, ``\\B``, ``\\s`` and ``\\S`` perform ASCII-" "only matching instead of full Unicode matching. This is only meaningful for " @@ -1370,7 +1368,7 @@ msgstr "" "caractères Unicode. Cette option n'a de sens que pour des motifs Unicode, " "elle est ignorée pour les motifs *bytes*." -#: ../Doc/howto/regex.rst:638 +#: howto/regex.rst:638 msgid "" "This flag allows you to write regular expressions that are more readable by " "granting you more flexibility in how you can format them. When this flag " @@ -1391,19 +1389,19 @@ msgstr "" "commentaires commencent par un ``'#'`` qui n'est ni dans une classe de " "caractères, ni précédé d'une barre oblique inverse." -#: ../Doc/howto/regex.rst:647 +#: howto/regex.rst:647 msgid "" "For example, here's a RE that uses :const:`re.VERBOSE`; see how much easier " "it is to read? ::" msgstr "" "Par exemple, voici une RE qui utilise :const:`re.VERBOSE` ; vous pouvez " -"constater qu'elle est beaucoup plus facile à lire ::" +"constater qu'elle est beaucoup plus facile à lire ::" -#: ../Doc/howto/regex.rst:660 +#: howto/regex.rst:660 msgid "Without the verbose setting, the RE would look like this::" msgstr "Sans l'option verbeuse, cette RE ressemble à ceci ::" -#: ../Doc/howto/regex.rst:666 +#: howto/regex.rst:666 msgid "" "In the above example, Python's automatic concatenation of string literals " "has been used to break up the RE into smaller pieces, but it's still more " @@ -1414,11 +1412,11 @@ msgstr "" "morceaux, mais la RE reste plus difficile à comprendre que sa version " "utilisant :const:`re.VERBOSE`." -#: ../Doc/howto/regex.rst:672 +#: howto/regex.rst:672 msgid "More Pattern Power" msgstr "Des motifs plus puissants" -#: ../Doc/howto/regex.rst:674 +#: howto/regex.rst:674 msgid "" "So far we've only covered a part of the features of regular expressions. In " "this section, we'll cover some new metacharacters, and how to use groups to " @@ -1429,11 +1427,11 @@ msgstr "" "nouveaux métacaractères et l'utilisation des groupes pour récupérer des " "portions de textes correspondantes." -#: ../Doc/howto/regex.rst:682 +#: howto/regex.rst:682 msgid "More Metacharacters" msgstr "Plus de métacaractères" -#: ../Doc/howto/regex.rst:684 +#: howto/regex.rst:684 msgid "" "There are some metacharacters that we haven't covered yet. Most of them " "will be covered in this section." @@ -1441,7 +1439,7 @@ msgstr "" "Nous n'avons pas encore couvert tous les métacaractères. Cette section " "traite de la plupart de ceux que nous n'avons pas abordés." -#: ../Doc/howto/regex.rst:687 +#: howto/regex.rst:687 msgid "" "Some of the remaining metacharacters to be discussed are :dfn:`zero-width " "assertions`. They don't cause the engine to advance through the string; " @@ -1462,11 +1460,11 @@ msgstr "" "correspondent à un endroit donné, elles correspondent automatiquement un " "nombre infini de fois." -#: ../Doc/howto/regex.rst:703 +#: howto/regex.rst:703 msgid "``|``" msgstr "``|``" -#: ../Doc/howto/regex.rst:696 +#: howto/regex.rst:696 msgid "" "Alternation, or the \"or\" operator. If *A* and *B* are regular " "expressions, ``A|B`` will match any string that matches either *A* or *B*. " @@ -1482,7 +1480,7 @@ msgstr "" "``'Crow'`` ou ``'Servo'``, mais pas avec ``'Cro'``, un ``'w'`` ou un " "``'S'``, ou encore ``'ervo'``." -#: ../Doc/howto/regex.rst:702 +#: howto/regex.rst:702 msgid "" "To match a literal ``'|'``, use ``\\|``, or enclose it inside a character " "class, as in ``[|]``." @@ -1490,11 +1488,11 @@ msgstr "" "Pour correspondre avec un ``'|'`` littéral, utilisez ``\\|`` ou placez-le " "dans une classe de caractères, comme ceci ``[|]``." -#: ../Doc/howto/regex.rst:718 +#: howto/regex.rst:718 msgid "``^``" msgstr "``^``" -#: ../Doc/howto/regex.rst:706 +#: howto/regex.rst:706 msgid "" "Matches at the beginning of lines. Unless the :const:`MULTILINE` flag has " "been set, this will only match at the beginning of the string. In :const:" @@ -1506,7 +1504,7 @@ msgstr "" "mode :const:`MULTILINE`, cela fait aussi correspondre immédiatement après " "chaque nouvelle ligne à l'intérieur de la chaîne." -#: ../Doc/howto/regex.rst:710 +#: howto/regex.rst:710 msgid "" "For example, if you wish to match the word ``From`` only at the beginning of " "a line, the RE to use is ``^From``. ::" @@ -1514,15 +1512,15 @@ msgstr "" "Par exemple, si vous voulez trouver le mot ``From`` uniquement quand il est " "en début de ligne, la RE à utiliser est ``^From``. ::" -#: ../Doc/howto/regex.rst:718 +#: howto/regex.rst:718 msgid "To match a literal ``'^'``, use ``\\^``." msgstr "Pour trouver un ``'^'`` littéral, utilisez ``\\^``." -#: ../Doc/howto/regex.rst:732 +#: howto/regex.rst:732 msgid "``$``" msgstr "``$``" -#: ../Doc/howto/regex.rst:721 +#: howto/regex.rst:721 msgid "" "Matches at the end of a line, which is defined as either the end of the " "string, or any location followed by a newline character. ::" @@ -1530,7 +1528,7 @@ msgstr "" "Correspond à une fin de ligne, ce qui veut dire soit la fin de la chaîne, " "soit tout emplacement qui est suivi du caractère de nouvelle ligne. ::" -#: ../Doc/howto/regex.rst:731 +#: howto/regex.rst:731 msgid "" "To match a literal ``'$'``, use ``\\$`` or enclose it inside a character " "class, as in ``[$]``." @@ -1538,11 +1536,11 @@ msgstr "" "Pour trouver un ``'$'`` littéral, utilisez ``\\$`` ou placez-le à " "l'intérieur d'une classe de caractères, comme ceci ``[$]``." -#: ../Doc/howto/regex.rst:738 +#: howto/regex.rst:738 msgid "``\\A``" msgstr "``\\A``" -#: ../Doc/howto/regex.rst:735 +#: howto/regex.rst:735 msgid "" "Matches only at the start of the string. When not in :const:`MULTILINE` " "mode, ``\\A`` and ``^`` are effectively the same. In :const:`MULTILINE` " @@ -1557,19 +1555,19 @@ msgstr "" "emplacements situés immédiatement après une nouvelle ligne à l'intérieur de " "la chaîne." -#: ../Doc/howto/regex.rst:741 +#: howto/regex.rst:741 msgid "``\\Z``" msgstr "``\\Z``" -#: ../Doc/howto/regex.rst:741 +#: howto/regex.rst:741 msgid "Matches only at the end of the string." msgstr "Correspond uniquement à la fin d'une chaîne de caractères." -#: ../Doc/howto/regex.rst:776 +#: howto/regex.rst:776 msgid "``\\b``" msgstr "``\\b``" -#: ../Doc/howto/regex.rst:744 +#: howto/regex.rst:744 msgid "" "Word boundary. This is a zero-width assertion that matches only at the " "beginning or end of a word. A word is defined as a sequence of alphanumeric " @@ -1581,7 +1579,7 @@ msgstr "" "séquence de caractères alphanumériques ; ainsi, la fin d'un mot est indiquée " "par un \"blanc\" ou un caractère non-alphanumérique." -#: ../Doc/howto/regex.rst:749 +#: howto/regex.rst:749 msgid "" "The following example matches ``class`` only when it's a complete word; it " "won't match when it's contained inside another word. ::" @@ -1590,12 +1588,12 @@ msgstr "" "complet ; il n'y a pas de correspondance quand il est à l'intérieur d'un " "autre mot. ::" -#: ../Doc/howto/regex.rst:760 +#: howto/regex.rst:760 msgid "" "There are two subtleties you should remember when using this special " "sequence. First, this is the worst collision between Python's string " -"literals and regular expression sequences. In Python's string literals, ``" -"\\b`` is the backspace character, ASCII value 8. If you're not using raw " +"literals and regular expression sequences. In Python's string literals, " +"``\\b`` is the backspace character, ASCII value 8. If you're not using raw " "strings, then Python will convert the ``\\b`` to a backspace, and your RE " "won't match as you expect it to. The following example looks the same as our " "previous RE, but omits the ``'r'`` in front of the RE string. ::" @@ -1610,21 +1608,21 @@ msgstr "" "ressemble à notre RE précédente, mais nous avons omis le ```'r'`` devant la " "chaîne RE. ::" -#: ../Doc/howto/regex.rst:774 +#: howto/regex.rst:774 msgid "" -"Second, inside a character class, where there's no use for this assertion, ``" -"\\b`` represents the backspace character, for compatibility with Python's " +"Second, inside a character class, where there's no use for this assertion, " +"``\\b`` represents the backspace character, for compatibility with Python's " "string literals." msgstr "" "Ensuite, dans une classe de caractères, où cette assertion n'a pas lieu " "d'être, ``\\b`` représente le caractère retour-arrière, afin d'être " "compatible avec les littéraux de chaînes de caractères." -#: ../Doc/howto/regex.rst:781 +#: howto/regex.rst:781 msgid "``\\B``" msgstr "``\\B``" -#: ../Doc/howto/regex.rst:779 +#: howto/regex.rst:779 msgid "" "Another zero-width assertion, this is the opposite of ``\\b``, only matching " "when the current position is not at a word boundary." @@ -1633,11 +1631,11 @@ msgstr "" "dire qu'elle fait correspondre uniquement les emplacements qui ne sont pas à " "la limite d'un mot." -#: ../Doc/howto/regex.rst:784 +#: howto/regex.rst:784 msgid "Grouping" msgstr "Regroupement" -#: ../Doc/howto/regex.rst:786 +#: howto/regex.rst:786 msgid "" "Frequently you need to obtain more information than just whether the RE " "matched or not. Regular expressions are often used to dissect strings by " @@ -1653,7 +1651,7 @@ msgstr "" "diviser en un nom d'en-tête et une valeur associée, séparés par un ``':'``, " "comme ceci :" -#: ../Doc/howto/regex.rst:799 +#: howto/regex.rst:799 msgid "" "This can be handled by writing a regular expression which matches an entire " "header line, and has one group which matches the header name, and another " @@ -1663,13 +1661,13 @@ msgstr "" "ligne d'en-tête entière et qui comporte un groupe correspondant au nom de " "l'en-tête, et un autre groupe correspondant à la valeur de l'en-tête." -#: ../Doc/howto/regex.rst:803 +#: howto/regex.rst:803 msgid "" "Groups are marked by the ``'('``, ``')'`` metacharacters. ``'('`` and " "``')'`` have much the same meaning as they do in mathematical expressions; " "they group together the expressions contained inside them, and you can " -"repeat the contents of a group with a repeating qualifier, such as ``*``, ``" -"+``, ``?``, or ``{m,n}``. For example, ``(ab)*`` will match zero or more " +"repeat the contents of a group with a repeating qualifier, such as ``*``, " +"``+``, ``?``, or ``{m,n}``. For example, ``(ab)*`` will match zero or more " "repetitions of ``ab``. ::" msgstr "" "Les groupes sont délimités par les métacaractères marqueurs ``'('``et " @@ -1679,7 +1677,7 @@ msgstr "" "quantificateur, comme ``*``, ``+``, ``?`` ou ``{m,n}``. Par exemple, " "``(ab)*`` correspond à zéro, une ou plusieurs fois ``ab``. ::" -#: ../Doc/howto/regex.rst:814 +#: howto/regex.rst:814 msgid "" "Groups indicated with ``'('``, ``')'`` also capture the starting and ending " "index of the text that they match; this can be retrieved by passing an " @@ -1700,7 +1698,7 @@ msgstr "" "voyons comment exprimer les groupes qui ne capturent pas l'étendue du texte " "avec lequel ils correspondent. ::" -#: ../Doc/howto/regex.rst:830 +#: howto/regex.rst:830 msgid "" "Subgroups are numbered from left to right, from 1 upward. Groups can be " "nested; to determine the number, just count the opening parenthesis " @@ -1711,7 +1709,7 @@ msgstr "" "suffit de compter le nombre de parenthèses ouvrantes de la gauche vers la " "droite. ::" -#: ../Doc/howto/regex.rst:843 +#: howto/regex.rst:843 msgid "" ":meth:`~re.Match.group` can be passed multiple group numbers at a time, in " "which case it will return a tuple containing the corresponding values for " @@ -1721,7 +1719,7 @@ msgstr "" "même temps, elle vous renvoie alors un *tuple* contenant les valeurs " "correspondantes pour ces groupes. ::" -#: ../Doc/howto/regex.rst:849 +#: howto/regex.rst:849 msgid "" "The :meth:`~re.Match.groups` method returns a tuple containing the strings " "for all the subgroups, from 1 up to however many there are. ::" @@ -1730,7 +1728,7 @@ msgstr "" "chaînes pour tous les sous-groupes, en commençant par le numéro 1 jusqu'au " "dernier. ::" -#: ../Doc/howto/regex.rst:855 +#: howto/regex.rst:855 msgid "" "Backreferences in a pattern allow you to specify that the contents of an " "earlier capturing group must also be found at the current location in the " @@ -1748,12 +1746,12 @@ msgstr "" "d'un nombre pour insérer des caractères arbitraires dans une chaîne ; soyez " "sûr d'utiliser une chaîne brute quand vous faites des renvois dans une RE." -#: ../Doc/howto/regex.rst:863 +#: howto/regex.rst:863 msgid "For example, the following RE detects doubled words in a string. ::" msgstr "" "Par exemple, la RE suivante détecte les mots doublés dans une chaîne. ::" -#: ../Doc/howto/regex.rst:869 +#: howto/regex.rst:869 msgid "" "Backreferences like this aren't often useful for just searching through a " "string --- there are few text formats which repeat data in this way --- but " @@ -1765,11 +1763,11 @@ msgstr "" "qui répètent des données ainsi --- mais vous verrez bientôt qu'ils sont " "*très* utiles pour effectuer des substitutions dans les chaînes." -#: ../Doc/howto/regex.rst:875 +#: howto/regex.rst:875 msgid "Non-capturing and Named Groups" msgstr "Groupes non de capture et groupes nommés" -#: ../Doc/howto/regex.rst:877 +#: howto/regex.rst:877 msgid "" "Elaborate REs may use many groups, both to capture substrings of interest, " "and to group and structure the RE itself. In complex REs, it becomes " @@ -1785,12 +1783,12 @@ msgstr "" "expressions régulières. Nous allons donc commencer en examinant cette " "syntaxe." -#: ../Doc/howto/regex.rst:883 +#: howto/regex.rst:883 msgid "" "Perl 5 is well known for its powerful additions to standard regular " "expressions. For these new features the Perl developers couldn't choose new " -"single-keystroke metacharacters or new special sequences beginning with ``" -"\\`` without making Perl's regular expressions confusingly different from " +"single-keystroke metacharacters or new special sequences beginning with " +"``\\`` without making Perl's regular expressions confusingly different from " "standard REs. If they chose ``&`` as a new metacharacter, for example, old " "expressions would be assuming that ``&`` was a regular character and " "wouldn't have escaped it by writing ``\\&`` or ``[&]``." @@ -1804,7 +1802,7 @@ msgstr "" "auraient considéré que ``&`` était un caractère standard et ne l'aurait pas " "échappé en écrivant ``\\&`` ou ``[&]``." -#: ../Doc/howto/regex.rst:890 +#: howto/regex.rst:890 msgid "" "The solution chosen by the Perl developers was to use ``(?...)`` as the " "extension syntax. ``?`` immediately after a parenthesis was a syntax error " @@ -1822,7 +1820,7 @@ msgstr "" "donc ``(?=truc)`` est une chose (une assertion positive anticipée) et ``(?:" "truc)`` est une autre chose (la sous-expression ``truc`` que l'on groupe)." -#: ../Doc/howto/regex.rst:898 +#: howto/regex.rst:898 msgid "" "Python supports several of Perl's extensions and adds an extension syntax to " "Perl's extension syntax. If the first character after the question mark is " @@ -1833,7 +1831,7 @@ msgstr "" "d'interrogation est ``P``, cela signifie que c'est une extension spécifique " "à Python." -#: ../Doc/howto/regex.rst:903 +#: howto/regex.rst:903 msgid "" "Now that we've looked at the general extension syntax, we can return to the " "features that simplify working with groups in complex REs." @@ -1842,7 +1840,7 @@ msgstr "" "aux fonctionnalités qui simplifient le travail avec les groupes dans des RE " "complexes." -#: ../Doc/howto/regex.rst:906 +#: howto/regex.rst:906 msgid "" "Sometimes you'll want to use a group to denote a part of a regular " "expression, but aren't interested in retrieving the group's contents. You " @@ -1856,7 +1854,7 @@ msgstr "" "``(?:...)``, où vous remplacez les ``...`` par n'importe quelle expression " "régulière. ::" -#: ../Doc/howto/regex.rst:918 +#: howto/regex.rst:918 msgid "" "Except for the fact that you can't retrieve the contents of what the group " "matched, a non-capturing group behaves exactly the same as a capturing " @@ -1878,7 +1876,7 @@ msgstr "" "qu'il n'y a aucune différence de performance dans la recherche de groupes, " "de capture ou non ; les deux formes travaillent à la même vitesse." -#: ../Doc/howto/regex.rst:927 +#: howto/regex.rst:927 msgid "" "A more significant feature is named groups: instead of referring to them by " "numbers, groups can be referenced by a name." @@ -1887,7 +1885,7 @@ msgstr "" "faire référence par des nombres, vous pouvez référencer des groupes par leur " "nom." -#: ../Doc/howto/regex.rst:930 +#: howto/regex.rst:930 msgid "" "The syntax for a named group is one of the Python-specific extensions: ``(?" "P...)``. *name* is, obviously, the name of the group. Named groups " @@ -1908,7 +1906,7 @@ msgstr "" "désirés. Les groupes nommés se voient toujours attribuer un numéro, vous " "pouvez ainsi récupérer les informations d'un groupe de deux façons ::" -#: ../Doc/howto/regex.rst:945 +#: howto/regex.rst:945 msgid "" "Additionally, you can retrieve named groups as a dictionary with :meth:`~re." "Match.groupdict`::" @@ -1916,7 +1914,7 @@ msgstr "" "De plus, vous pouvez récupérer les groupes nommés comme dictionnaire avec :" "meth:`~re.Match.groupdict` ::" -#: ../Doc/howto/regex.rst:952 +#: howto/regex.rst:952 msgid "" "Named groups are handy because they let you use easily-remembered names, " "instead of having to remember numbers. Here's an example RE from the :mod:" @@ -1925,7 +1923,7 @@ msgstr "" "Les groupes nommés sont pratiques car il est plus facile de se rappeler un " "nom qu'un numéro. Voici un exemple de RE tirée du module :mod:`imaplib` ::" -#: ../Doc/howto/regex.rst:963 +#: howto/regex.rst:963 msgid "" "It's obviously much easier to retrieve ``m.group('zonem')``, instead of " "having to remember to retrieve group 9." @@ -1933,15 +1931,15 @@ msgstr "" "Il est évidemment plus facile de récupérer ``m.group('zonem')`` que de se " "rappeler de récupérer le groupe 9." -#: ../Doc/howto/regex.rst:966 +#: howto/regex.rst:966 msgid "" "The syntax for backreferences in an expression such as ``(...)\\1`` refers " "to the number of the group. There's naturally a variant that uses the group " "name instead of the number. This is another Python extension: ``(?P=name)`` " "indicates that the contents of the group called *name* should again be " "matched at the current point. The regular expression for finding doubled " -"words, ``\\b(\\w+)\\s+\\1\\b`` can also be written as ``\\b(?P\\w+)\\s" -"+(?P=word)\\b``::" +"words, ``\\b(\\w+)\\s+\\1\\b`` can also be written as ``\\b(?" +"P\\w+)\\s+(?P=word)\\b``::" msgstr "" "La syntaxe des renvois dans une expression telle que ``(....)\\1`` fait " "référence au numéro du groupe. Il y a naturellement une variante qui utilise " @@ -1951,11 +1949,11 @@ msgstr "" "mots doublés, ``\\b(\\w+)\\s+\\1\\b`` peut ainsi être ré-écrite en ``\\b(?" "P\\w+)\\s+(?P=mot)\\b`` ::" -#: ../Doc/howto/regex.rst:979 +#: howto/regex.rst:979 msgid "Lookahead Assertions" msgstr "Assertions prédictives" -#: ../Doc/howto/regex.rst:981 +#: howto/regex.rst:981 msgid "" "Another zero-width assertion is the lookahead assertion. Lookahead " "assertions are available in both positive and negative form, and look like " @@ -1965,11 +1963,11 @@ msgstr "" "assertion prédictive peut s'exprimer sous deux formes, la positive et la " "négative, comme ceci :" -#: ../Doc/howto/regex.rst:989 +#: howto/regex.rst:989 msgid "``(?=...)``" msgstr "``(?=...)``" -#: ../Doc/howto/regex.rst:985 +#: howto/regex.rst:985 msgid "" "Positive lookahead assertion. This succeeds if the contained regular " "expression, represented here by ``...``, successfully matches at the current " @@ -1984,11 +1982,11 @@ msgstr "" "n'avance pas ; le reste du motif est testé à l'endroit même où l'assertion a " "commencé." -#: ../Doc/howto/regex.rst:994 +#: howto/regex.rst:994 msgid "``(?!...)``" msgstr "``(?!...)``" -#: ../Doc/howto/regex.rst:992 +#: howto/regex.rst:992 msgid "" "Negative lookahead assertion. This is the opposite of the positive " "assertion; it succeeds if the contained expression *doesn't* match at the " @@ -1998,7 +1996,7 @@ msgstr "" "elle réussit si l'expression régulière contenue *ne* correspond *pas* à " "l'emplacement courant dans la chaine." -#: ../Doc/howto/regex.rst:996 +#: howto/regex.rst:996 msgid "" "To make this concrete, let's look at a case where a lookahead is useful. " "Consider a simple pattern to match a filename and split it apart into a base " @@ -2011,15 +2009,15 @@ msgstr "" "exemple, dans ``news.rc``, ``news`` est le nom de base et ``rc`` est " "l'extension du nom de fichier." -#: ../Doc/howto/regex.rst:1001 +#: howto/regex.rst:1001 msgid "The pattern to match this is quite simple:" msgstr "Le motif de correspondance est plutôt simple :" -#: ../Doc/howto/regex.rst:1003 +#: howto/regex.rst:1003 msgid "``.*[.].*$``" msgstr "``.*[.].*$``" -#: ../Doc/howto/regex.rst:1005 +#: howto/regex.rst:1005 msgid "" "Notice that the ``.`` needs to be treated specially because it's a " "metacharacter, so it's inside a character class to only match that specific " @@ -2035,7 +2033,7 @@ msgstr "" "bien inclus dans l'extension. Cette expression régulière fait correspondre " "``truc.bar``, ``autoexec.bat``, ``sendmail.cf`` et ``printers.conf``." -#: ../Doc/howto/regex.rst:1012 +#: howto/regex.rst:1012 msgid "" "Now, consider complicating the problem a bit; what if you want to match " "filenames where the extension is not ``bat``? Some incorrect attempts:" @@ -2044,7 +2042,7 @@ msgstr "" "correspondre les noms de fichiers dont l'extension n'est pas ``bat`` ? voici " "quelques tentatives incorrectes :" -#: ../Doc/howto/regex.rst:1015 +#: howto/regex.rst:1015 msgid "" "``.*[.][^b].*$`` The first attempt above tries to exclude ``bat`` by " "requiring that the first character of the extension is not a ``b``. This is " @@ -2054,11 +2052,11 @@ msgstr "" "spécifiant que le premier caractère de l'extension ne doit pas être ``b``. " "Cela ne fonctionne pas, car le motif n'accepte pas ``truc.bar``." -#: ../Doc/howto/regex.rst:1019 +#: howto/regex.rst:1019 msgid "``.*[.]([^b]..|.[^a].|..[^t])$``" msgstr "``.*[.]([^b]..|.[^a].|..[^t])$``" -#: ../Doc/howto/regex.rst:1021 +#: howto/regex.rst:1021 msgid "" "The expression gets messier when you try to patch up the first solution by " "requiring one of the following cases to match: the first character of the " @@ -2077,11 +2075,11 @@ msgstr "" "``sendmail.cf``. Compliquons encore une fois le motif pour essayer de le " "réparer." -#: ../Doc/howto/regex.rst:1029 +#: howto/regex.rst:1029 msgid "``.*[.]([^b].?.?|.[^a]?.?|..?[^t]?)$``" msgstr "``.*[.]([^b].?.?|.[^a]?.?|..?[^t]?)$``" -#: ../Doc/howto/regex.rst:1031 +#: howto/regex.rst:1031 msgid "" "In the third attempt, the second and third letters are all made optional in " "order to allow matching extensions shorter than three characters, such as " @@ -2091,7 +2089,7 @@ msgstr "" "devenues facultatives afin de permettre la correspondance avec des " "extensions plus courtes que trois caractères, comme ``sendmail.cf``." -#: ../Doc/howto/regex.rst:1035 +#: howto/regex.rst:1035 msgid "" "The pattern's getting really complicated now, which makes it hard to read " "and understand. Worse, if the problem changes and you want to exclude both " @@ -2103,18 +2101,18 @@ msgstr "" "à la fois ``bat`` et ``exe`` en tant qu'extensions, le modèle deviendra " "encore plus compliqué et confus." -#: ../Doc/howto/regex.rst:1040 +#: howto/regex.rst:1040 msgid "A negative lookahead cuts through all this confusion:" msgstr "Une assertion prédictive négative supprime toute cette confusion :" -#: ../Doc/howto/regex.rst:1042 +#: howto/regex.rst:1042 msgid "" "``.*[.](?!bat$)[^.]*$`` The negative lookahead means: if the expression " -"``bat`` doesn't match at this point, try the rest of the pattern; if ``bat" -"$`` does match, the whole pattern will fail. The trailing ``$`` is required " -"to ensure that something like ``sample.batch``, where the extension only " -"starts with ``bat``, will be allowed. The ``[^.]*`` makes sure that the " -"pattern works when there are multiple dots in the filename." +"``bat`` doesn't match at this point, try the rest of the pattern; if " +"``bat$`` does match, the whole pattern will fail. The trailing ``$`` is " +"required to ensure that something like ``sample.batch``, where the extension " +"only starts with ``bat``, will be allowed. The ``[^.]*`` makes sure that " +"the pattern works when there are multiple dots in the filename." msgstr "" "``.*[.](?!bat$)[^.]*$`` Cette assertion prédictive négative signifie : si " "l'expression ``bat`` ne correspond pas à cet emplacement, essaie le reste du " @@ -2124,7 +2122,7 @@ msgstr "" "``[^...]*`` s'assure que le motif fonctionne lorsqu'il y a plusieurs points " "dans le nom de fichier." -#: ../Doc/howto/regex.rst:1049 +#: howto/regex.rst:1049 msgid "" "Excluding another filename extension is now easy; simply add it as an " "alternative inside the assertion. The following pattern excludes filenames " @@ -2134,15 +2132,15 @@ msgstr "" "suffit de l'ajouter comme alternative à l'intérieur de l'assertion. Le motif " "suivant exclut les noms de fichiers qui se terminent par ``bat`` ou ``exe`` :" -#: ../Doc/howto/regex.rst:1053 +#: howto/regex.rst:1053 msgid "``.*[.](?!bat$|exe$)[^.]*$``" msgstr "``.*[.](?!bat$|exe$)[^.]*$``" -#: ../Doc/howto/regex.rst:1057 +#: howto/regex.rst:1057 msgid "Modifying Strings" msgstr "Modification de chaînes" -#: ../Doc/howto/regex.rst:1059 +#: howto/regex.rst:1059 msgid "" "Up to this point, we've simply performed searches against a static string. " "Regular expressions are also commonly used to modify strings in various " @@ -2153,21 +2151,21 @@ msgstr "" "pour modifier les chaînes de caractères de diverses manières, en utilisant " "les méthodes suivantes des motifs :" -#: ../Doc/howto/regex.rst:1066 +#: howto/regex.rst:1066 msgid "``split()``" msgstr "``split()``" -#: ../Doc/howto/regex.rst:1066 +#: howto/regex.rst:1066 msgid "Split the string into a list, splitting it wherever the RE matches" msgstr "" "Découpe la chaîne de caractère en liste, la découpant partout où la RE " "correspond" -#: ../Doc/howto/regex.rst:1069 +#: howto/regex.rst:1069 msgid "``sub()``" msgstr "``sub()``" -#: ../Doc/howto/regex.rst:1069 +#: howto/regex.rst:1069 msgid "" "Find all substrings where the RE matches, and replace them with a different " "string" @@ -2175,11 +2173,11 @@ msgstr "" "Recherche toutes les sous-chaînes de caractères où la RE correspond et les " "substitue par une chaîne de caractères différente" -#: ../Doc/howto/regex.rst:1072 +#: howto/regex.rst:1072 msgid "``subn()``" msgstr "``subn()``" -#: ../Doc/howto/regex.rst:1072 +#: howto/regex.rst:1072 msgid "" "Does the same thing as :meth:`!sub`, but returns the new string and the " "number of replacements" @@ -2187,11 +2185,11 @@ msgstr "" "Fait la même chose que :meth:`!sub`, mais renvoie la nouvelle chaîne et le " "nombre de remplacements effectués" -#: ../Doc/howto/regex.rst:1079 +#: howto/regex.rst:1079 msgid "Splitting Strings" msgstr "Découpage de chaînes" -#: ../Doc/howto/regex.rst:1081 +#: howto/regex.rst:1081 msgid "" "The :meth:`~re.Pattern.split` method of a pattern splits a string apart " "wherever the RE matches, returning a list of the pieces. It's similar to " @@ -2208,7 +2206,7 @@ msgstr "" "\"blancs\" ou suivant une chaîne définie. Comme vous pouvez vous y attendre, " "il y a aussi une fonction :func:`re.split` de niveau module." -#: ../Doc/howto/regex.rst:1092 +#: howto/regex.rst:1092 msgid "" "Split *string* by the matches of the regular expression. If capturing " "parentheses are used in the RE, then their contents will also be returned as " @@ -2220,7 +2218,7 @@ msgstr "" "également renvoyé dans la liste résultante. Si *maxsplit* n'est pas nul, au " "plus *maxsplit* découpages sont effectués." -#: ../Doc/howto/regex.rst:1097 +#: howto/regex.rst:1097 msgid "" "You can limit the number of splits made, by passing a value for *maxsplit*. " "When *maxsplit* is nonzero, at most *maxsplit* splits will be made, and the " @@ -2234,7 +2232,7 @@ msgstr "" "élément de la liste. Dans l'exemple suivant, le délimiteur est toute " "séquence de caractères non alphanumériques. ::" -#: ../Doc/howto/regex.rst:1109 +#: howto/regex.rst:1109 msgid "" "Sometimes you're not only interested in what the text between delimiters is, " "but also need to know what the delimiter was. If capturing parentheses are " @@ -2246,7 +2244,7 @@ msgstr "" "la RE, leurs valeurs sont également renvoyées dans la liste. Comparons les " "appels suivants ::" -#: ../Doc/howto/regex.rst:1121 +#: howto/regex.rst:1121 msgid "" "The module-level function :func:`re.split` adds the RE to be used as the " "first argument, but is otherwise the same. ::" @@ -2254,11 +2252,11 @@ msgstr "" "La fonction de niveau module :func:`re.split` ajoute la RE à utiliser comme " "premier argument, mais est par ailleurs identique. ::" -#: ../Doc/howto/regex.rst:1133 +#: howto/regex.rst:1133 msgid "Search and Replace" msgstr "Recherche et substitution" -#: ../Doc/howto/regex.rst:1135 +#: howto/regex.rst:1135 msgid "" "Another common task is to find all the matches for a pattern, and replace " "them with a different string. The :meth:`~re.Pattern.sub` method takes a " @@ -2270,7 +2268,7 @@ msgstr "" "Pattern.sub` prend une valeur de substitution, qui peut être une chaîne de " "caractères ou une fonction, et la chaîne à traiter." -#: ../Doc/howto/regex.rst:1142 +#: howto/regex.rst:1142 msgid "" "Returns the string obtained by replacing the leftmost non-overlapping " "occurrences of the RE in *string* by the replacement *replacement*. If the " @@ -2280,7 +2278,7 @@ msgstr "" "les plus à gauche de la RE dans *string* par la substitution *replacement*. " "Si le motif n'est pas trouvé, *string* est renvoyée inchangée." -#: ../Doc/howto/regex.rst:1146 +#: howto/regex.rst:1146 msgid "" "The optional argument *count* is the maximum number of pattern occurrences " "to be replaced; *count* must be a non-negative integer. The default value " @@ -2290,7 +2288,7 @@ msgstr "" "remplacer ; *count* doit être un entier positif ou nul. La valeur par défaut " "de 0 signifie qu'il faut remplacer toutes les occurrences." -#: ../Doc/howto/regex.rst:1150 +#: howto/regex.rst:1150 msgid "" "Here's a simple example of using the :meth:`~re.Pattern.sub` method. It " "replaces colour names with the word ``colour``::" @@ -2298,7 +2296,7 @@ msgstr "" "Voici un exemple simple utilisant la méthode :meth:`~re.Pattern.sub`. Nous " "remplaçons les noms des couleurs par le mot ``colour`` ::" -#: ../Doc/howto/regex.rst:1159 +#: howto/regex.rst:1159 msgid "" "The :meth:`~re.Pattern.subn` method does the same work, but returns a 2-" "tuple containing the new string value and the number of replacements that " @@ -2308,7 +2306,7 @@ msgstr "" "couple contenant la nouvelle valeur de la chaîne de caractères et le nombre " "de remplacements effectués ::" -#: ../Doc/howto/regex.rst:1168 +#: howto/regex.rst:1168 msgid "" "Empty matches are replaced only when they're not adjacent to a previous " "empty match. ::" @@ -2316,13 +2314,13 @@ msgstr "" "Les correspondances vides ne sont remplacées que lorsqu'elles ne sont pas " "adjacentes à une correspondance vide précédente. ::" -#: ../Doc/howto/regex.rst:1175 +#: howto/regex.rst:1175 msgid "" "If *replacement* is a string, any backslash escapes in it are processed. " "That is, ``\\n`` is converted to a single newline character, ``\\r`` is " -"converted to a carriage return, and so forth. Unknown escapes such as ``" -"\\&`` are left alone. Backreferences, such as ``\\6``, are replaced with the " -"substring matched by the corresponding group in the RE. This lets you " +"converted to a carriage return, and so forth. Unknown escapes such as " +"``\\&`` are left alone. Backreferences, such as ``\\6``, are replaced with " +"the substring matched by the corresponding group in the RE. This lets you " "incorporate portions of the original text in the resulting replacement " "string." msgstr "" @@ -2334,7 +2332,7 @@ msgstr "" "correspondante au groupe dans le RE. Ceci vous permet d'incorporer des " "parties du texte original dans la chaîne de remplacement résultante." -#: ../Doc/howto/regex.rst:1182 +#: howto/regex.rst:1182 msgid "" "This example matches the word ``section`` followed by a string enclosed in " "``{``, ``}``, and changes ``section`` to ``subsection``::" @@ -2342,7 +2340,7 @@ msgstr "" "Cet exemple fait correspondre le mot ``section`` suivi par une chaîne " "encadrée par ``{`` et ``}``, et modifie ``section`` en ``subsection`` ::" -#: ../Doc/howto/regex.rst:1189 +#: howto/regex.rst:1189 msgid "" "There's also a syntax for referring to named groups as defined by the ``(?" "P...)`` syntax. ``\\g`` will use the substring matched by the " @@ -2357,13 +2355,13 @@ msgstr "" "par la syntaxe ``(?P....)``. ``\\g`` utilise la sous-chaîne " "correspondante au groupe nommé ``nom`` et ``\\g`` utilise le numéro " "de groupe correspondant. ``\\g<2>`` est donc l'équivalent de ``\\2``, mais " -"n'est pas ambigu dans une chaîne de substitution telle que ``\\g<2>0`` (``" -"\\20`` serait interprété comme une référence au groupe 20 et non comme une " -"référence au groupe 2 suivie du caractère littéral ``'0'``). Les " +"n'est pas ambigu dans une chaîne de substitution telle que ``\\g<2>0`` " +"(``\\20`` serait interprété comme une référence au groupe 20 et non comme " +"une référence au groupe 2 suivie du caractère littéral ``'0'``). Les " "substitutions suivantes sont toutes équivalentes mais utilisent les trois " "variantes de la chaîne de remplacement. ::" -#: ../Doc/howto/regex.rst:1206 +#: howto/regex.rst:1206 msgid "" "*replacement* can also be a function, which gives you even more control. If " "*replacement* is a function, the function is called for every non-" @@ -2378,7 +2376,7 @@ msgstr "" "fonction, qui peut utiliser cette information pour calculer la chaîne de " "remplacement désirée et la renvoyer." -#: ../Doc/howto/regex.rst:1212 +#: howto/regex.rst:1212 msgid "" "In the following example, the replacement function translates decimals into " "hexadecimal::" @@ -2386,7 +2384,7 @@ msgstr "" "Dans l'exemple suivant, la fonction de substitution convertit un nombre " "décimal en hexadécimal ::" -#: ../Doc/howto/regex.rst:1224 +#: howto/regex.rst:1224 msgid "" "When using the module-level :func:`re.sub` function, the pattern is passed " "as the first argument. The pattern may be provided as an object or as a " @@ -2400,14 +2398,14 @@ msgstr "" "d'objet ou de chaîne de caractères ; si vous avez besoin de spécifier des " "options pour l'expression régulière, vous devez soit utiliser un objet motif " "comme premier paramètre, soit utiliser des modificateurs intégrés dans la " -"chaîne de caractères, par exemple ``sub(\"(?i)b+\", \"x\", \"bbbb BBBBB" -"\")```renvoie ``'x x'``." +"chaîne de caractères, par exemple ``sub(\"(?i)b+\", \"x\", \"bbbb " +"BBBBB\")```renvoie ``'x x'``." -#: ../Doc/howto/regex.rst:1232 +#: howto/regex.rst:1232 msgid "Common Problems" msgstr "Problèmes classiques" -#: ../Doc/howto/regex.rst:1234 +#: howto/regex.rst:1234 msgid "" "Regular expressions are a powerful tool for some applications, but in some " "ways their behaviour isn't intuitive and at times they don't behave the way " @@ -2419,11 +2417,11 @@ msgstr "" "et, parfois, elles ne se comportent pas comme vous pouvez vous y attendre. " "Cette section met en évidence certains des pièges les plus courants." -#: ../Doc/howto/regex.rst:1240 +#: howto/regex.rst:1240 msgid "Use String Methods" msgstr "Utilisez les méthodes du type *string*" -#: ../Doc/howto/regex.rst:1242 +#: howto/regex.rst:1242 msgid "" "Sometimes using the :mod:`re` module is a mistake. If you're matching a " "fixed string, or a single character class, and you're not using any :mod:" @@ -2443,7 +2441,7 @@ msgstr "" "que l'implémentation est une seule petite boucle C qui a été optimisée, au " "lieu du gros moteur d'expressions régulières plus généraliste." -#: ../Doc/howto/regex.rst:1250 +#: howto/regex.rst:1250 msgid "" "One example might be replacing a single fixed string with another one; for " "example, you might replace ``word`` with ``deed``. :func:`re.sub` seems " @@ -2465,7 +2463,7 @@ msgstr "" "de mot d'un côté et de l'autre ; c'est au-delà des capacités de la méthode :" "meth:`!replace`)." -#: ../Doc/howto/regex.rst:1259 +#: howto/regex.rst:1259 msgid "" "Another common task is deleting every occurrence of a single character from " "a string or replacing it with another single character. You might do this " @@ -2479,7 +2477,7 @@ msgstr "" "sub('\\n', ' ', S)``, mais :meth:`~str.translate` en est capable et est plus " "rapide que n'importe quelle opération d'expression régulière." -#: ../Doc/howto/regex.rst:1265 +#: howto/regex.rst:1265 msgid "" "In short, before turning to the :mod:`re` module, consider whether your " "problem can be solved with a faster and simpler string method." @@ -2487,11 +2485,11 @@ msgstr "" "Bref, avant de passer au module :mod:`re`, évaluez d'abord si votre problème " "peut être résolu avec une méthode de chaîne plus rapide et plus simple." -#: ../Doc/howto/regex.rst:1270 +#: howto/regex.rst:1270 msgid "match() versus search()" msgstr "*match()* contre *search()*" -#: ../Doc/howto/regex.rst:1272 +#: howto/regex.rst:1272 msgid "" "The :func:`~re.match` function only checks if the RE matches at the " "beginning of the string while :func:`~re.search` will scan forward through " @@ -2507,7 +2505,7 @@ msgstr "" "correspondance qui commence à 0 ; si la correspondance commence plus loin, :" "func:`!match` *ne la trouve pas*. ::" -#: ../Doc/howto/regex.rst:1283 +#: howto/regex.rst:1283 msgid "" "On the other hand, :func:`~re.search` will scan forward through the string, " "reporting the first match it finds. ::" @@ -2515,7 +2513,7 @@ msgstr "" "D'un autre côté, :func:`~re.search` balaie la chaîne de caractères, " "rapportant la première correspondance qu'elle trouve. ::" -#: ../Doc/howto/regex.rst:1291 +#: howto/regex.rst:1291 msgid "" "Sometimes you'll be tempted to keep using :func:`re.match`, and just add ``." "*`` to the front of your RE. Resist this temptation and use :func:`re." @@ -2536,7 +2534,7 @@ msgstr "" "rapidement la chaîne de caractères à la recherche du caractère de départ, " "n'essayant la correspondance complète que si un \"C\" a déjà été trouvé." -#: ../Doc/howto/regex.rst:1300 +#: howto/regex.rst:1300 msgid "" "Adding ``.*`` defeats this optimization, requiring scanning to the end of " "the string and then backtracking to find a match for the rest of the RE. " @@ -2547,11 +2545,11 @@ msgstr "" "une correspondance pour le reste de la RE. Préférez l'utilisation :func:`re." "search`." -#: ../Doc/howto/regex.rst:1306 +#: howto/regex.rst:1306 msgid "Greedy versus Non-Greedy" msgstr "Glouton contre non-glouton" -#: ../Doc/howto/regex.rst:1308 +#: howto/regex.rst:1308 msgid "" "When repeating a regular expression, as in ``a*``, the resulting action is " "to consume as much of the pattern as possible. This fact often bites you " @@ -2566,7 +2564,7 @@ msgstr "" "pour faire correspondre une seule balise HTML ne fonctionne pas en raison de " "la nature gloutonne de ``.*``. ::" -#: ../Doc/howto/regex.rst:1322 +#: howto/regex.rst:1322 msgid "" "The RE matches the ``'<'`` in ``''``, and the ``.*`` consumes the rest " "of the string. There's still more left in the RE, though, and the ``>`` " @@ -2583,7 +2581,7 @@ msgstr "" "correspondance finale s'étend du ``'<'`` de ``''`` au ``'>'`` de ``''``, ce qui n'est pas ce que vous voulez." -#: ../Doc/howto/regex.rst:1329 +#: howto/regex.rst:1329 msgid "" "In this case, the solution is to use the non-greedy qualifiers ``*?``, ``+?" "``, ``??``, or ``{m,n}?``, which match as *little* text as possible. In the " @@ -2598,7 +2596,7 @@ msgstr "" "échoue, le moteur avance caractère par caractère, ré-essayant ``'>'`` à " "chaque pas. Nous obtenons alors le bon résultat ::" -#: ../Doc/howto/regex.rst:1338 +#: howto/regex.rst:1338 msgid "" "(Note that parsing HTML or XML with regular expressions is painful. Quick-" "and-dirty patterns will handle common cases, but HTML and XML have special " @@ -2614,11 +2612,11 @@ msgstr "" "traite tous les cas possibles, les motifs seront *très* compliqués. " "Utilisez un module d'analyse HTML ou XML pour de telles tâches." -#: ../Doc/howto/regex.rst:1346 +#: howto/regex.rst:1346 msgid "Using re.VERBOSE" msgstr "Utilisez *re.VERBOSE*" -#: ../Doc/howto/regex.rst:1348 +#: howto/regex.rst:1348 msgid "" "By now you've probably noticed that regular expressions are a very compact " "notation, but they're not terribly readable. REs of moderate complexity can " @@ -2631,7 +2629,7 @@ msgstr "" "obliques inverses, de parenthèses et de métacaractères, ce qui la rend " "difficile à lire et à comprendre." -#: ../Doc/howto/regex.rst:1353 +#: howto/regex.rst:1353 msgid "" "For such REs, specifying the :const:`re.VERBOSE` flag when compiling the " "regular expression can be helpful, because it allows you to format the " @@ -2641,7 +2639,7 @@ msgstr "" "l'expression régulière peut être utile ; cela vous permet de formater " "l'expression régulière de manière plus claire." -#: ../Doc/howto/regex.rst:1357 +#: howto/regex.rst:1357 msgid "" "The ``re.VERBOSE`` flag has several effects. Whitespace in the regular " "expression that *isn't* inside a character class is ignored. This means " @@ -2661,15 +2659,15 @@ msgstr "" "ligne suivante. Lorsque vous l'utilisez avec des chaînes à triple " "guillemets, cela permet aux RE d'être formatées plus proprement ::" -#: ../Doc/howto/regex.rst:1374 +#: howto/regex.rst:1374 msgid "This is far more readable than::" -msgstr "Ceci est beaucoup plus lisible que::" +msgstr "Ceci est beaucoup plus lisible que ::" -#: ../Doc/howto/regex.rst:1380 +#: howto/regex.rst:1380 msgid "Feedback" msgstr "Vos commentaires" -#: ../Doc/howto/regex.rst:1382 +#: howto/regex.rst:1382 msgid "" "Regular expressions are a complicated topic. Did this document help you " "understand them? Were there parts that were unclear, or Problems you " @@ -2681,7 +2679,7 @@ msgstr "" "problèmes que vous avez rencontrés ne sont pas traités ici ? Si tel est le " "cas, merci d'envoyer vos suggestions d'améliorations à l'auteur." -#: ../Doc/howto/regex.rst:1387 +#: howto/regex.rst:1387 msgid "" "The most complete book on regular expressions is almost certainly Jeffrey " "Friedl's Mastering Regular Expressions, published by O'Reilly. " diff --git a/howto/sockets.po b/howto/sockets.po index 5a40001849..9399611e69 100644 --- a/howto/sockets.po +++ b/howto/sockets.po @@ -5,31 +5,33 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-10 11:27+0200\n" -"PO-Revision-Date: 2019-06-10 15:41+0200\n" +"POT-Creation-Date: 2020-05-23 11:38+0200\n" +"PO-Revision-Date: 2020-05-08 15:38+0200\n" +"Last-Translator: Mathieu Dupuy \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.3\n" -#: ../Doc/howto/sockets.rst:5 +#: howto/sockets.rst:5 msgid "Socket Programming HOWTO" -msgstr "" +msgstr "Guide pratique : programmation avec les *sockets*" -#: ../Doc/howto/sockets.rst:0 +#: howto/sockets.rst:0 msgid "Author" msgstr "Auteur" -#: ../Doc/howto/sockets.rst:7 +#: howto/sockets.rst:7 msgid "Gordon McMillan" msgstr "Gordon McMillan" -#: ../Doc/howto/sockets.rst:None +#: howto/sockets.rst:None msgid "Abstract" msgstr "Résumé" -#: ../Doc/howto/sockets.rst:12 +#: howto/sockets.rst:12 msgid "" "Sockets are used nearly everywhere, but are one of the most severely " "misunderstood technologies around. This is a 10,000 foot overview of " @@ -38,12 +40,18 @@ msgid "" "a lot of them), but I hope it will give you enough background to begin using " "them decently." msgstr "" +"Les connecteurs (*sockets*, en anglais) sont utilisés presque partout, mais " +"ils sont l'une des technologies les plus méconnues. En voici un aperçu très " +"général. Ce n'est pas vraiment un tutoriel — vous aurez encore du travail à " +"faire pour avoir un résultat opérationnel. Il ne couvre pas les détails (et " +"il y en a beaucoup), mais j'espère qu'il vous donnera suffisamment " +"d'informations pour commencer à les utiliser correctement." -#: ../Doc/howto/sockets.rst:20 +#: howto/sockets.rst:20 msgid "Sockets" -msgstr "Interfaces de connexion (*sockets*)" +msgstr "Connecteurs (*sockets*)" -#: ../Doc/howto/sockets.rst:22 +#: howto/sockets.rst:22 msgid "" "I'm only going to talk about INET (i.e. IPv4) sockets, but they account for " "at least 99% of the sockets in use. And I'll only talk about STREAM (i.e. " @@ -54,19 +62,19 @@ msgid "" "blocking sockets. But I'll start by talking about blocking sockets. You'll " "need to know how they work before dealing with non-blocking sockets." msgstr "" -"Je ne vais aborder que les connecteurs INET (i.e. IPv4), mais ils " -"représentent au moins 99% des connecteurs (*socket* en anglais) utilisés. Et " -"je n'aborderai que les connecteurs STREAM (i.e. TCP) — à moins que vous ne " -"sachiez vraiment ce que vous faites (auquel cas ce HOWTO n'est pas pour " -"vous !), vous obtiendrez un meilleur comportement et de meilleures " -"performances avec un connecteur STREAM que tout autre. Je vais essayer " +"Je ne parlerai que des connecteurs *INET* (c'est-à-dire IPv4), mais ils " +"représentent au moins 99 % des connecteurs utilisés. Et je ne parlerai que " +"des connecteurs *STREAM* (c.-à-d. *TCP*) — à moins que vous ne sachiez " +"vraiment ce que vous faites (auquel cas ce guide n'est pas pour vous), vous " +"obtiendrez un meilleur comportement et de meilleures performances avec un " +"connecteur *STREAM* qu'avec n'importe quel autre. Je vais essayer " "d'éclaircir le mystère de ce qu'est un connecteur, ainsi que quelques " "conseils sur la façon de travailler avec des connecteurs bloquants et non " -"bloquants. Mais je vais commencer par aborder les connecteurs bloquants. " -"Nous avons besoin de savoir comment ils fonctionnent avant de traiter les " +"bloquants. Mais je commencerai par parler des connecteurs bloquants. Vous " +"devez savoir comment ils fonctionnent avant de vous intéresser aux " "connecteurs non bloquants." -#: ../Doc/howto/sockets.rst:31 +#: howto/sockets.rst:31 msgid "" "Part of the trouble with understanding these things is that \"socket\" can " "mean a number of subtly different things, depending on context. So first, " @@ -76,52 +84,79 @@ msgid "" "sockets exclusively; the web server it's talking to uses both \"server\" " "sockets and \"client\" sockets." msgstr "" +"Une partie de la difficulté à comprendre ces choses est que « connecteur » " +"peut désigner plusieurs choses très légèrement différentes, selon le " +"contexte. Faisons donc d'abord une distinction entre un connecteur " +"« client » — point final d'une conversation — et un connecteur « serveur », " +"qui ressemble davantage à un standardiste. L'application cliente (votre " +"navigateur par exemple) utilise exclusivement des connecteurs « client » ; " +"le serveur web avec lequel elle parle utilise à la fois des connecteurs " +"« serveur » et des connecteurs « client »." -#: ../Doc/howto/sockets.rst:40 +#: howto/sockets.rst:40 msgid "History" msgstr "Historique" -#: ../Doc/howto/sockets.rst:42 +#: howto/sockets.rst:42 msgid "" "Of the various forms of :abbr:`IPC (Inter Process Communication)`, sockets " "are by far the most popular. On any given platform, there are likely to be " "other forms of IPC that are faster, but for cross-platform communication, " "sockets are about the only game in town." msgstr "" +"Parmi les différentes formes d’:abbr:`IPC (Inter Process Communication)`, " +"les connecteurs sont de loin les plus populaires. Sur une plate-forme " +"donnée, il est probable que d'autres formes d'\\ *IPC* soient plus rapides, " +"mais pour la communication entre plates-formes, les connecteurs sont à peu " +"près la seule solution valable." -#: ../Doc/howto/sockets.rst:47 +#: howto/sockets.rst:47 msgid "" "They were invented in Berkeley as part of the BSD flavor of Unix. They " "spread like wildfire with the Internet. With good reason --- the combination " "of sockets with INET makes talking to arbitrary machines around the world " "unbelievably easy (at least compared to other schemes)." msgstr "" +"Ils ont été inventés à Berkeley dans le cadre de la déclinaison *BSD* " +"d'Unix. Ils se sont répandus comme une traînée de poudre avec Internet. Et " +"pour cause : la combinaison des connecteurs avec *INET* rend le dialogue " +"avec n’importe quelle machine dans le monde entier incroyablement facile (du " +"moins par rapport à d'autres systèmes)." -#: ../Doc/howto/sockets.rst:54 +#: howto/sockets.rst:54 msgid "Creating a Socket" -msgstr "Créer un connecteur" +msgstr "Création d'un connecteur" -#: ../Doc/howto/sockets.rst:56 +#: howto/sockets.rst:56 msgid "" "Roughly speaking, when you clicked on the link that brought you to this " "page, your browser did something like the following::" msgstr "" +"Grosso modo, lorsque vous avez cliqué sur le lien qui vous a amené à cette " +"page, votre navigateur a fait quelque chose comme ceci ::" -#: ../Doc/howto/sockets.rst:64 +#: howto/sockets.rst:64 msgid "" "When the ``connect`` completes, the socket ``s`` can be used to send in a " "request for the text of the page. The same socket will read the reply, and " "then be destroyed. That's right, destroyed. Client sockets are normally only " "used for one exchange (or a small set of sequential exchanges)." msgstr "" +"Lorsque l’appel à ``connect`` est terminé, le connecteur ``s`` peut être " +"utilisé pour envoyer une requête demandant le texte de la page. Le même " +"connecteur lira la réponse, puis sera mis au rebut. C'est exact, mis au " +"rebut. Les connecteurs clients ne sont normalement utilisés que pour un seul " +"échange (ou un petit ensemble d'échanges séquentiels)." -#: ../Doc/howto/sockets.rst:70 +#: howto/sockets.rst:70 msgid "" "What happens in the web server is a bit more complex. First, the web server " "creates a \"server socket\"::" msgstr "" +"Ce qui se passe dans le serveur web est un peu plus complexe. Tout d'abord, " +"le serveur web crée un « connecteur serveur » ::" -#: ../Doc/howto/sockets.rst:80 +#: howto/sockets.rst:80 msgid "" "A couple things to notice: we used ``socket.gethostname()`` so that the " "socket would be visible to the outside world. If we had used ``s." @@ -131,41 +166,44 @@ msgid "" "address the machine happens to have." msgstr "" "Quelques remarques : nous avons utilisé ``socket.gethostname()`` pour que le " -"connecteur soit visible par le monde extérieur. Si nous avions utilisé ``s." -"bind((('localhost', 80))`` ou ``s.bind((('127.0.0.0.1', 80))`` nous aurions " -"encore un connecteur \"serveur\", mais qui ne serait visible que sur la " -"machine même. ``s.bind('', 80)]`` spécifie que le socket est accessible par " -"toute adresse que la machine possède." +"connecteur soit visible par le monde extérieur. Si nous avions utilisé ``s." +"bind(('localhost', 80))`` ou ``s.bind(('127.0.0.1', 80))``, nous aurions " +"toujours un connecteur « serveur », mais qui ne serait visible qu'à " +"l'intérieur de la même machine. ``s.bind(('', 80))`` précise que le " +"connecteur est accessible par n'importe quelle adresse que la machine " +"possède." -#: ../Doc/howto/sockets.rst:87 +#: howto/sockets.rst:87 msgid "" "A second thing to note: low number ports are usually reserved for \"well " "known\" services (HTTP, SNMP etc). If you're playing around, use a nice high " "number (4 digits)." msgstr "" "Une deuxième chose à noter : les ports dont le numéro est petit sont " -"généralement réservés aux services \"bien connus\" (HTTP, SNMP, etc.). Si " +"généralement réservés aux services « bien connus » (HTTP, SNMP, etc.). Si " "vous expérimentez, utilisez un nombre suffisamment élevé (4 chiffres)." -#: ../Doc/howto/sockets.rst:91 +#: howto/sockets.rst:91 msgid "" "Finally, the argument to ``listen`` tells the socket library that we want it " "to queue up as many as 5 connect requests (the normal max) before refusing " "outside connections. If the rest of the code is written properly, that " "should be plenty." msgstr "" -"Enfin, l'argument ``listen`` indique à la bibliothèque de connecteurs que " -"nous voulons qu'elle mette en file d'attente jusqu'à 5 requêtes de connexion " -"(le maximum normal) avant de refuser les connexions externes. Si le reste du " -"code est écrit correctement, cela devrait suffire." +"Enfin, l'argument passé à ``listen`` indique à la bibliothèque de " +"connecteurs que nous voulons mettre en file d'attente jusqu'à 5 requêtes de " +"connexion (le maximum normal) avant de refuser les connexions externes. Si " +"le reste du code est écrit correctement, cela devrait suffire." -#: ../Doc/howto/sockets.rst:95 +#: howto/sockets.rst:95 msgid "" "Now that we have a \"server\" socket, listening on port 80, we can enter the " "mainloop of the web server::" msgstr "" +"Maintenant que nous avons un connecteur « serveur », en écoute sur le port " +"80, nous pouvons entrer dans la boucle principale du serveur web ::" -#: ../Doc/howto/sockets.rst:106 +#: howto/sockets.rst:106 msgid "" "There's actually 3 general ways in which this loop could work - dispatching " "a thread to handle ``clientsocket``, create a new process to handle " @@ -180,12 +218,26 @@ msgid "" "The two \"clients\" are free to chat it up - they are using some dynamically " "allocated port which will be recycled when the conversation ends." msgstr "" - -#: ../Doc/howto/sockets.rst:121 +"Il y a en fait trois façons générales de faire fonctionner cette boucle : " +"mobiliser un fil d'exécution pour gérer les ``clientsocket``\\s, créer un " +"nouveau processus pour gérer les ``clientsocket``\\s, ou restructurer cette " +"application pour utiliser des connecteurs non bloquants, et multiplexer " +"entre notre connecteur « serveur » et n'importe quel ``clientsocket`` actif " +"en utilisant ``select``. Plus d'informations à ce sujet plus tard. La chose " +"importante à comprendre maintenant est la suivante : c'est *tout* ce que " +"fait un connecteur « serveur ». Il n'envoie aucune donnée. Il ne reçoit " +"aucune donnée. Il ne fait que produire des connecteurs « clients ». Chaque " +"``clientsocket`` est créé en réponse à un *autre* connecteur « client » qui " +"se connecte à l'hôte et au port auxquels nous sommes liés. Dès que nous " +"avons créé ce ``clientsocket``, nous retournons à l'écoute pour d'autres " +"connexions. Les deux « clients » sont libres de discuter — ils utilisent un " +"port alloué dynamiquement qui sera recyclé à la fin de la conversation." + +#: howto/sockets.rst:121 msgid "IPC" -msgstr "Communication Entre Processus" +msgstr "*IPC* (Communication Entre Processus)" -#: ../Doc/howto/sockets.rst:123 +#: howto/sockets.rst:123 msgid "" "If you need fast IPC between two processes on one machine, you should look " "into pipes or shared memory. If you do decide to use AF_INET sockets, bind " @@ -194,23 +246,25 @@ msgid "" "faster." msgstr "" "Si vous avez besoin d'une communication rapide entre deux processus sur une " -"même machine, vous devriez regarder comment utiliser les *pipes* ou la " -"mémoire partagée. Si vous décidez d'utiliser les connecteurs AF_INET, liez " -"le connecteur \"serveur\" à ``'localhost'``. Sur la plupart des plates-" -"formes, cela court-circuite quelques couches réseau et est un peu plus " +"même machine, vous devriez regarder comment utiliser les tubes (*pipe*, en " +"anglais) ou la mémoire partagée. Si vous décidez d'utiliser les connecteurs " +"*AF_INET*, liez le connecteur « serveur » à ``'localhost'``. Sur la plupart " +"des plates-formes, cela contourne quelques couches réseau et est un peu plus " "rapide." -#: ../Doc/howto/sockets.rst:129 +#: howto/sockets.rst:129 msgid "" "The :mod:`multiprocessing` integrates cross-platform IPC into a higher-level " "API." msgstr "" +"Le :mod:`multiprocessing` intègre de l’IPC multiplateforme dans une API de " +"plus haut niveau." -#: ../Doc/howto/sockets.rst:134 +#: howto/sockets.rst:134 msgid "Using a Socket" -msgstr "" +msgstr "Utilisation d'un connecteur" -#: ../Doc/howto/sockets.rst:136 +#: howto/sockets.rst:136 msgid "" "The first thing to note, is that the web browser's \"client\" socket and the " "web server's \"client\" socket are identical beasts. That is, this is a " @@ -220,8 +274,16 @@ msgid "" "in a request, or perhaps a signon. But that's a design decision - it's not a " "rule of sockets." msgstr "" +"La première chose à noter, c'est que la prise « client » du navigateur web " +"et la prise « client » du serveur web sont des bêtes identiques. C'est-à-" +"dire qu'il s'agit d'une conversation « pair à pair ». Ou pour le dire " +"autrement, *en tant que concepteur, vous devrez décider quelles sont les " +"règles d'étiquette pour une conversation*. Normalement, la connexion via " +"``connect`` lance la conversation en envoyant une demande, ou peut-être un " +"signe. Mais c'est une décision de conception — ce n'est pas une règle des " +"connecteurs." -#: ../Doc/howto/sockets.rst:143 +#: howto/sockets.rst:143 msgid "" "Now there are two sets of verbs to use for communication. You can use " "``send`` and ``recv``, or you can transform your client socket into a file-" @@ -232,8 +294,18 @@ msgid "" "reply. Without a ``flush`` in there, you may wait forever for the reply, " "because the request may still be in your output buffer." msgstr "" +"Il y a maintenant deux ensembles de verbes à utiliser pour la communication. " +"Vous pouvez utiliser ``send`` et ``recv``, ou vous pouvez transformer votre " +"connecteur client en une bête imitant un fichier et utiliser ``read`` et " +"``write``. C'est la façon dont Java présente ses connecteurs. Je ne vais pas " +"en parler ici, sauf pour vous avertir que vous devez utiliser ``flush`` sur " +"les connecteurs. Ce sont des « fichiers », mis en mémoire tampon, et une " +"erreur courante est d'« écrire » via ``write`` quelque chose, puis de " +"« lire » via ``read`` pour obtenir une réponse. Sans un ``flush``, vous " +"pouvez attendre la réponse pour toujours, parce que la requête peut encore " +"être dans votre mémoire tampon de sortie." -#: ../Doc/howto/sockets.rst:152 +#: howto/sockets.rst:152 msgid "" "Now we come to the major stumbling block of sockets - ``send`` and ``recv`` " "operate on the network buffers. They do not necessarily handle all the bytes " @@ -243,16 +315,28 @@ msgid "" "you how many bytes they handled. It is *your* responsibility to call them " "again until your message has been completely dealt with." msgstr "" +"Nous arrivons maintenant au principal écueil des connecteurs — ``send`` et " +"``recv`` fonctionnent sur les mémoires tampons du réseau. Ils ne traitent " +"pas nécessairement tous les octets que vous leur passez (ou que vous " +"attendez d'eux), car leur principal objectif est de gérer les tampons " +"réseau. En général, leur exécution se termine lorsque les tampons réseau " +"associés ont été remplis (``send``) ou vidés (``recv``). Ils vous indiquent " +"alors combien d'octets ils ont traité. Il est de *votre* responsabilité de " +"les rappeler jusqu'à ce que votre message ait été complètement traité." -#: ../Doc/howto/sockets.rst:160 +#: howto/sockets.rst:160 msgid "" "When a ``recv`` returns 0 bytes, it means the other side has closed (or is " "in the process of closing) the connection. You will not receive any more " "data on this connection. Ever. You may be able to send data successfully; " "I'll talk more about this later." msgstr "" +"Lorsqu'un ``recv`` renvoie 0 octet, cela signifie que l'autre partie a fermé " +"(ou est en train de fermer) la connexion. Vous ne recevrez plus de données " +"sur cette connexion. Jamais. Vous pouvez peut-être envoyer des données avec " +"succès. J’en parlerai plus tard." -#: ../Doc/howto/sockets.rst:165 +#: howto/sockets.rst:165 msgid "" "A protocol like HTTP uses a socket for only one transfer. The client sends a " "request, then reads a reply. That's it. The socket is discarded. This means " @@ -263,7 +347,7 @@ msgstr "" "est mis au rebut. Cela signifie qu'un client peut détecter la fin de la " "réponse en recevant 0 octet." -#: ../Doc/howto/sockets.rst:169 +#: howto/sockets.rst:169 msgid "" "But if you plan to reuse your socket for further transfers, you need to " "realize that *there is no* :abbr:`EOT (End of Transfer)` *on a socket.* I " @@ -277,20 +361,19 @@ msgid "" "choice is entirely yours, (but some ways are righter than others)." msgstr "" "Mais si vous prévoyez de réutiliser votre connecteur pour d'autres " -"transferts, vous devez réaliser que il n'y a *pas* d':abbr:`EOT (End of " -"Transfer)` sur un connecteur. Je répète : si un connecteur ``send`` ou " -"``recv`` retourne après avoir manipulé 0 octets, la connexion a été " +"transferts, vous devez réaliser qu'\\ *il n'y a pas* d':abbr:`EOT (End of " +"Transfer)` *sur un connecteur*. Je répète : si un appel à ``send`` ou " +"``recv`` se termine après avoir traité 0 octet, la connexion a été " "interrompue. Si la connexion n'a *pas* été interrompue, vous pouvez attendre " "sur un ``recv`` pour toujours, car le connecteur ne vous dira pas qu'il n'y " "a plus rien à lire (pour le moment). Maintenant, si vous y réfléchissez un " "peu, vous allez vous rendre compte d'une vérité fondamentale sur les " "connecteurs : *les messages doivent être de longueur fixe* (beurk), *ou être " -"délimités* (haussement d'épaules), *ou indiquer de quelle longueur ils sont* " -"(beaucoup mieux), *ou terminer en coupant la connexion*. Le choix est " -"entièrement de votre côté, (mais certaines façons sont plus justes que " -"d'autres)." +"délimités* (bof), *ou indiquer de quelle longueur ils sont* (beaucoup " +"mieux), *ou terminer en coupant la connexion*. Le choix est entièrement de " +"votre côté (mais certaines façons sont meilleurs que d'autres)." -#: ../Doc/howto/sockets.rst:180 +#: howto/sockets.rst:180 msgid "" "Assuming you don't want to end the connection, the simplest solution is a " "fixed length message::" @@ -298,7 +381,7 @@ msgstr "" "En supposant que vous ne vouliez pas terminer la connexion, la solution la " "plus simple est un message de longueur fixe ::" -#: ../Doc/howto/sockets.rst:217 +#: howto/sockets.rst:217 msgid "" "The sending code here is usable for almost any messaging scheme - in Python " "you send strings, and you can use ``len()`` to determine its length (even if " @@ -306,8 +389,14 @@ msgid "" "gets more complex. (And in C, it's not much worse, except you can't use " "``strlen`` if the message has embedded ``\\0``\\ s.)" msgstr "" +"Le code d'envoi ici est utilisable pour presque tous les systèmes de " +"messagerie — en Python, vous envoyez des chaînes de caractères, et vous " +"pouvez utiliser ``len()`` pour en déterminer la longueur (même si elle " +"contient des caractères ``\\0``). C'est surtout le code de réception qui " +"devient plus complexe. (Et en C, ce n'est pas bien pire, sauf que vous ne " +"pouvez pas utiliser ``strlen`` si le message contient des ``\\0``\\ s)." -#: ../Doc/howto/sockets.rst:223 +#: howto/sockets.rst:223 msgid "" "The easiest enhancement is to make the first character of the message an " "indicator of message type, and have the type determine the length. Now you " @@ -317,8 +406,17 @@ msgid "" "chunk size, (4096 or 8192 is frequently a good match for network buffer " "sizes), and scanning what you've received for a delimiter." msgstr "" +"Le plus simple est de faire du premier caractère du message un indicateur du " +"type de message, et de faire en sorte que le type détermine la longueur. " +"Vous avez maintenant deux ``recv``\\ s — le premier pour obtenir (au moins) " +"ce premier caractère afin de pouvoir déterminer la longueur, et le second " +"dans une boucle pour obtenir le reste. Si vous décidez de suivre la route " +"délimitée, vous recevrez un morceau de taille arbitraire (4096 ou 8192 est " +"fréquemment une bonne valeur pour correspondre à la taille de la mémoire " +"tampon du réseau), et vous analyserez ce que vous avez reçu pour trouver un " +"délimiteur." -#: ../Doc/howto/sockets.rst:231 +#: howto/sockets.rst:231 msgid "" "One complication to be aware of: if your conversational protocol allows " "multiple messages to be sent back to back (without some kind of reply), and " @@ -326,8 +424,14 @@ msgid "" "of a following message. You'll need to put that aside and hold onto it, " "until it's needed." msgstr "" +"Une subtilité dont il faut être conscient : si votre protocole de " +"conversation permet de renvoyer plusieurs messages les uns à la suite des " +"autres (sans aucune sorte de réponse), et que vous passez à ``recv`` une " +"taille de morceau arbitraire, vous pouvez en arriver à lire le début du " +"message suivant. Vous devrez alors le mettre de côté et le conserver, " +"jusqu'à ce que vous en ayez besoin." -#: ../Doc/howto/sockets.rst:237 +#: howto/sockets.rst:237 msgid "" "Prefixing the message with its length (say, as 5 numeric characters) gets " "more complex, because (believe it or not), you may not get all 5 characters " @@ -338,32 +442,58 @@ msgid "" "not always manage to get rid of everything in one pass. And despite having " "read this, you will eventually get bit by it!" msgstr "" +"Préfixer le message avec sa longueur (disons, sous la forme de 5 caractères " +"numériques) devient plus complexe, parce que (croyez-le ou non), vous pouvez " +"ne pas recevoir les 5 caractères en un seul ``recv``. Pour une utilisation " +"triviale, vous vous en tirerez à bon compte ; mais en cas de forte charge " +"réseau, votre code se cassera très rapidement, à moins que vous n’utilisiez " +"deux boucles ``recv`` — la première pour déterminer la longueur, la deuxième " +"pour obtenir la partie « données » du message. Vilain. C’est aussi à ce " +"moment que vous découvrirez que « l’envoi » via ``send`` ne parvient pas " +"toujours à tout évacuer en un seul passage. Et bien que vous ayez lu cet " +"avertissement, vous finirez par vous faire avoir par cette subtilité !" -#: ../Doc/howto/sockets.rst:246 +#: howto/sockets.rst:246 msgid "" "In the interests of space, building your character, (and preserving my " "competitive position), these enhancements are left as an exercise for the " "reader. Lets move on to cleaning up." msgstr "" +"Pour garder une longueur raisonnable à cette page, pour forger votre " +"caractère (et afin de garder l’avantage concurrentiel que j’ai sur vous), " +"ces améliorations ne seront pas abordées et sont laissées en exercice au " +"lecteur. Passons maintenant au nettoyage." -#: ../Doc/howto/sockets.rst:252 +#: howto/sockets.rst:252 msgid "Binary Data" msgstr "Données binaires" -#: ../Doc/howto/sockets.rst:254 +#: howto/sockets.rst:254 msgid "" "It is perfectly possible to send binary data over a socket. The major " "problem is that not all machines use the same formats for binary data. For " "example, a Motorola chip will represent a 16 bit integer with the value 1 as " "the two hex bytes 00 01. Intel and DEC, however, are byte-reversed - that " "same 1 is 01 00. Socket libraries have calls for converting 16 and 32 bit " -"integers - ``ntohl, htonl, ntohs, htons`` where \"n\" means *network* and \"h" -"\" means *host*, \"s\" means *short* and \"l\" means *long*. Where network " -"order is host order, these do nothing, but where the machine is byte-" +"integers - ``ntohl, htonl, ntohs, htons`` where \"n\" means *network* and " +"\"h\" means *host*, \"s\" means *short* and \"l\" means *long*. Where " +"network order is host order, these do nothing, but where the machine is byte-" "reversed, these swap the bytes around appropriately." msgstr "" - -#: ../Doc/howto/sockets.rst:264 +"Il est parfaitement possible d’envoyer des données binaires sur un " +"connecteur. Le gros problème est que toutes les machines n’utilisent pas les " +"mêmes formats pour les données binaires. Par exemple, une puce Motorola code " +"l'entier 1, sous 16 bits, comme les deux octets hexadécimaux 00 01. Intel et " +"DEC, cependant, utilisent l’ordre d’octets inverse — ce même 1 est codé 01 " +"00. Les bibliothèques de connecteurs ont des appels pour convertir des " +"entiers de 16 et 32 bits — ``ntohl, htonl, ntohs, htons`` où ``n`` signifie " +"*réseau* (*network*, en anglais) et ``h`` signifie *hôte*, ``s`` signifie " +"*court* (*short*, en anglais) et ``l`` signifie *long*. Lorsque l’ordre du " +"réseau est l’ordre de l’hôte, ceux-ci ne font rien, mais lorsque la machine " +"utilise l’ordre d’octets inverse, ceux-ci échangent les octets de manière " +"appropriée." + +#: howto/sockets.rst:264 msgid "" "In these days of 32 bit machines, the ascii representation of binary data is " "frequently smaller than the binary representation. That's because a " @@ -371,12 +501,19 @@ msgid "" "The string \"0\" would be two bytes, while binary is four. Of course, this " "doesn't fit well with fixed-length messages. Decisions, decisions." msgstr "" +"De nos jours, avec les machines 32 bits, la représentation *ASCII* des " +"données binaires est souvent plus compacte que la représentation binaire. " +"C’est parce qu’un nombre surprenant de fois, tous ces *longs* ont la valeur " +"0, ou peut-être 1. La chaîne « 0 » serait codée sur deux octets, alors " +"qu'elle le serait sur quatre en binaire. Bien sûr, cela ne fonctionne pas " +"très bien avec les messages de longueur fixe. Ah, les décisions, les " +"décisions…" -#: ../Doc/howto/sockets.rst:272 +#: howto/sockets.rst:272 msgid "Disconnecting" msgstr "Déconnexion" -#: ../Doc/howto/sockets.rst:274 +#: howto/sockets.rst:274 msgid "" "Strictly speaking, you're supposed to use ``shutdown`` on a socket before " "you ``close`` it. The ``shutdown`` is an advisory to the socket at the " @@ -387,8 +524,17 @@ msgid "" "same as ``shutdown(); close()``. So in most situations, an explicit " "``shutdown`` is not needed." msgstr "" +"À proprement parler, vous êtes censé utiliser ``shutdown`` sur un connecteur " +"pour l’arrêter avant de le fermer via ``close``. Le ``shutdown`` est un " +"avertissement au connecteur de l’autre côté. Selon l’argument que vous lui " +"passez, cela peut signifier « Je ne vais plus envoyer, mais je vais quand " +"même écouter », ou « Je n’écoute pas, bon débarras ! ». La plupart des " +"bibliothèques de connecteurs, cependant, sont tellement habituées à ce que " +"les programmeurs négligent d’utiliser ce morceau d’étiquette que normalement " +"un ``close`` est équivalent à ``shutdown() ; close()``. Ainsi, dans la " +"plupart des situations, un ``shutdown`` explicite n’est pas nécessaire." -#: ../Doc/howto/sockets.rst:282 +#: howto/sockets.rst:282 msgid "" "One way to use ``shutdown`` effectively is in an HTTP-like exchange. The " "client sends a request and then does a ``shutdown(1)``. This tells the " @@ -397,8 +543,15 @@ msgid "" "complete request. The server sends a reply. If the ``send`` completes " "successfully then, indeed, the client was still receiving." msgstr "" +"Une façon d’utiliser efficacement le ``shutdown`` est d’utiliser un échange " +"de type HTTP. Le client envoie une requête et effectue ensuite un " +"``shutdown(1)``. Cela indique au serveur que « ce client a fini d’envoyer, " +"mais peut encore recevoir ». Le serveur peut détecter *EOF* par une " +"réception de 0 octet. Il peut supposer qu’il a la requête complète. Le " +"serveur envoie une réponse. Si le ``send`` se termine avec succès, alors, en " +"effet, le client était encore en train de recevoir." -#: ../Doc/howto/sockets.rst:289 +#: howto/sockets.rst:289 msgid "" "Python takes the automatic shutdown a step further, and says that when a " "socket is garbage collected, it will automatically do a ``close`` if it's " @@ -407,12 +560,19 @@ msgid "" "indefinitely, thinking you're just being slow. *Please* ``close`` your " "sockets when you're done." msgstr "" +"Python pousse l’arrêt automatique un peu plus loin, et dit que lorsqu’un " +"connecteur est collecté par le ramasse-miette, il effectue automatiquement " +"une fermeture via ``close`` si elle est nécessaire. Mais c’est une très " +"mauvaise habitude de s’appuyer sur ce système. Si votre connecteur disparaît " +"sans avoir fait un ``close``, le connecteur à l’autre bout peut rester " +"suspendu indéfiniment, pensant que vous êtes juste lent. Fermez vos " +"connecteurs quand vous avez terminé *s’il vous plait*." -#: ../Doc/howto/sockets.rst:297 +#: howto/sockets.rst:297 msgid "When Sockets Die" -msgstr "" +msgstr "Quand les connecteurs meurent" -#: ../Doc/howto/sockets.rst:299 +#: howto/sockets.rst:299 msgid "" "Probably the worst thing about using blocking sockets is what happens when " "the other side comes down hard (without doing a ``close``). Your socket is " @@ -426,12 +586,25 @@ msgid "" "automatic recycling of resources. In other words, if you do manage to kill " "the thread, your whole process is likely to be screwed up." msgstr "" - -#: ../Doc/howto/sockets.rst:313 +"Le pire dans l'utilisation de connecteurs bloquants est probablement ce qui " +"se passe lorsque l'autre côté s'interrompt brutalement (sans faire de " +"fermeture via ``close``). Votre connecteur risque d’attendre infiniment. TCP " +"est un protocole fiable, et il attendra très, très longtemps avant " +"d'abandonner une connexion. Si vous utilisez des fils d’exécution, le fil " +"entier est pratiquement mort. Il n'y a pas grand-chose que vous puissiez " +"faire à ce sujet. Du moment que vous ne faites rien de stupide, comme tenir " +"un verrou verrouillé pendant une lecture bloquante, le fil ne consomme pas " +"vraiment beaucoup de ressources. N'essayez *pas* de tuer le fil — si les " +"fils sont plus efficients que les processus, c'est en partie parce qu'ils " +"évitent les coûts significatifs liés au recyclage automatique des " +"ressources. En d'autres termes, si vous parvenez à tuer le fil, tout votre " +"processus risque d'être foutu." + +#: howto/sockets.rst:313 msgid "Non-blocking Sockets" -msgstr "" +msgstr "Connecteurs non bloquants" -#: ../Doc/howto/sockets.rst:315 +#: howto/sockets.rst:315 msgid "" "If you've understood the preceding, you already know most of what you need " "to know about the mechanics of using sockets. You'll still use the same " @@ -439,28 +612,29 @@ msgid "" "will be almost inside-out." msgstr "" "Si vous avez compris ce qui précède, vous savez déjà tout ce que vous devez " -"savoir sur la mécanique de l'utilisation des connecteurs. Vous utiliserez " -"toujours les mêmes appels, de la même façon. C'est juste que, si vous le " -"faites bien, votre application sera presque dans la poche." +"savoir sur la mécanique de l’utilisation des connecteurs. Vous utiliserez " +"toujours les mêmes appels, de la même façon. Il n’y que ça. Si vous le " +"faites bien, c’est presque dans la poche." -#: ../Doc/howto/sockets.rst:320 +#: howto/sockets.rst:320 +#, fuzzy msgid "" "In Python, you use ``socket.setblocking(0)`` to make it non-blocking. In C, " "it's more complex, (for one thing, you'll need to choose between the BSD " -"flavor ``O_NONBLOCK`` and the almost indistinguishable Posix flavor " +"flavor ``O_NONBLOCK`` and the almost indistinguishable POSIX flavor " "``O_NDELAY``, which is completely different from ``TCP_NODELAY``), but it's " "the exact same idea. You do this after creating the socket, but before using " "it. (Actually, if you're nuts, you can switch back and forth.)" msgstr "" -"En Python, vous utilisez ``socket.setblocking(0)`` pour le rendre non-" -"bloquant. En C, c'est plus complexe (pour commencer, vous devez choisir " -"entre la version BSD ``O_NONBLOCK`` et la version Posix presque impossible à " +"En Python, vous utilisez ``socket.setblocking(0)`` pour rendre non-bloquant. " +"En C, c’est plus complexe (pour commencer, vous devez choisir entre la " +"version BSD ``O_NONBLOCK`` et la version Posix presque impossible à " "distinguer ``O_NDELAY``, qui est complètement différente de " -"``TCP_NODELAY``), mais c'est exactement la même idée. Vous le faites après " -"avoir créé le connecteur mais avant de l'utiliser (en fait, si vous êtes " +"``TCP_NODELAY``), mais c’est exactement la même idée. Vous le faites après " +"avoir créé le connecteur mais avant de l’utiliser (en fait, si vous êtes " "fou, vous pouvez alterner)." -#: ../Doc/howto/sockets.rst:327 +#: howto/sockets.rst:327 msgid "" "The major mechanical difference is that ``send``, ``recv``, ``connect`` and " "``accept`` can return without having done anything. You have (of course) a " @@ -469,12 +643,19 @@ msgid "" "will grow large, buggy and suck CPU. So let's skip the brain-dead solutions " "and do it right." msgstr "" +"La différence majeure de fonctionnement est que `send``, ``recv``, " +"``connect`` et ``accept`` peuvent rendre la main sans avoir rien fait. Vous " +"avez (bien sûr) un certain nombre de choix. Vous pouvez vérifier le code de " +"retour et les codes d'erreur et, en général, devenir fou. Si vous ne me " +"croyez pas, essayez un jour. Votre application va grossir, boguer et " +"vampiriser le processeur. Alors, évitons les solutions vouées à l’échec dès " +"le départ et faisons les choses correctement." -#: ../Doc/howto/sockets.rst:334 +#: howto/sockets.rst:334 msgid "Use ``select``." -msgstr "Utiliser ``select``." +msgstr "Utilisation de ``select``." -#: ../Doc/howto/sockets.rst:336 +#: howto/sockets.rst:336 msgid "" "In C, coding ``select`` is fairly complex. In Python, it's a piece of cake, " "but it's close enough to the C version that if you understand ``select`` in " @@ -482,9 +663,9 @@ msgid "" msgstr "" "En C, implémenter ``select`` est assez complexe. En Python, c'est du gâteau, " "mais c'est assez proche de la version C ; aussi, si vous comprenez " -"``select`` en Python, vous aurez peu de problèmes avec lui en C ::" +"``select`` en Python, vous aurez peu de problèmes en C ::" -#: ../Doc/howto/sockets.rst:347 +#: howto/sockets.rst:347 msgid "" "You pass ``select`` three lists: the first contains all sockets that you " "might want to try reading; the second all the sockets you might want to try " @@ -494,15 +675,28 @@ msgid "" "generally a sensible thing to do - give it a nice long timeout (say a " "minute) unless you have good reason to do otherwise." msgstr "" +"Vous passez à ``select`` trois listes : la première contient tous les " +"connecteurs dont vous souhaiter lire le contenu ; la deuxième tous les " +"connecteurs sur lesquels vous voudriez écrire, et la dernière (normalement " +"laissée vide) ceux sur lesquels vous voudriez vérifier s’il y a des erreurs. " +"Prenez note qu'un connecteur peut figurer dans plus d'une liste. L'appel à " +"``select`` est bloquant, mais vous pouvez lui donner un délai d'attente. " +"C'est généralement une bonne chose à faire — donnez-lui un bon gros délai " +"d'attente (disons une minute), à moins que vous n'ayez une bonne raison de " +"ne pas le faire." -#: ../Doc/howto/sockets.rst:355 +#: howto/sockets.rst:355 msgid "" "In return, you will get three lists. They contain the sockets that are " "actually readable, writable and in error. Each of these lists is a subset " "(possibly empty) of the corresponding list you passed in." msgstr "" +"En retour, vous recevrez trois listes. Elles contiennent les connecteurs qui " +"sont réellement lisibles, inscriptibles et en erreur. Chacune de ces listes " +"est un sous-ensemble (éventuellement vide) de la liste correspondante que " +"vous avez transmise." -#: ../Doc/howto/sockets.rst:359 +#: howto/sockets.rst:359 msgid "" "If a socket is in the output readable list, you can be as-close-to-certain-" "as-we-ever-get-in-this-business that a ``recv`` on that socket will return " @@ -511,16 +705,16 @@ msgid "" "nothing. (Actually, any reasonably healthy socket will return as writable - " "it just means outbound network buffer space is available.)" msgstr "" -"Si un connecteur se trouve dans la liste des sorties que vous pouvez lire, " +"Si un connecteur se trouve dans la liste renvoyée des connecteurs lisibles, " "vous pouvez être pratiquement certain qu'un ``recv`` sur ce connecteur " -"retournera *quelque chose*. Même chose pour la liste des sorties sur " -"lesquelles vous pouvez écrire. Vous pourrez envoyer *quelque chose*. Peut-" -"être pas tout ce que vous voudrez, mais *quelque chose* est mieux que rien. " -"(En fait, n'importe quel connecteur raisonnablement sain retournera en " -"écriture — cela signifie simplement que l'espace tampon réseau sortant est " -"disponible)." +"renvoie *quelque chose*. Même chose pour la liste renvoyée des connecteurs " +"inscriptibles. Vous pourrez envoyer *quelque chose*. Peut-être pas tout ce " +"que vous voudrez, mais *quelque chose* est mieux que rien (en fait, " +"n'importe quel connecteur raisonnablement sain sera présent dans la liste " +"des connecteurs inscriptibles — cela signifie simplement que l'espace tampon " +"réseau sortant est disponible)." -#: ../Doc/howto/sockets.rst:366 +#: howto/sockets.rst:366 msgid "" "If you have a \"server\" socket, put it in the potential_readers list. If it " "comes out in the readable list, your ``accept`` will (almost certainly) " @@ -528,15 +722,16 @@ msgid "" "it in the potential_writers list. If it shows up in the writable list, you " "have a decent chance that it has connected." msgstr "" -"Si vous avez un connecteur \"serveur\", mettez-le dans la liste des lecteurs " -"potentiels. Si il apparaît dans la liste des sorties que vous pouvez lire, " -"votre ``accept`` fonctionnera (presque certainement). Si vous avez créé un " -"nouveau connecteur pour ``connect`` à quelqu'un d'autre, mettez-le dans la " -"liste des éditeurs potentiels. Si il apparaît dans la liste des sorties sur " -"lesquelles vous pouvez écrire, vous avez une bonne chance qu'il se soit " -"connecté." +"Si vous avez un connecteur « serveur », mettez-le dans la liste des " +"connecteurs potentiellement lisibles ``potential_readers``. S’il apparaît " +"dans la liste renvoyée des connecteurs que vous pouvez lire, votre " +"``accept`` fonctionnera (presque certainement). Si vous avez créé un nouveau " +"connecteur pour se connecter via ``connect`` à quelqu'un d'autre, mettez-le " +"dans la liste des connecteurs potentiellement inscriptibles. S’il apparaît " +"dans la liste renvoyée des connecteurs sur lesquels vous pouvez écrire, vous " +"avez une bonne chance qu'il se soit connecté." -#: ../Doc/howto/sockets.rst:372 +#: howto/sockets.rst:372 msgid "" "Actually, ``select`` can be handy even with blocking sockets. It's one way " "of determining whether you will block - the socket returns as readable when " @@ -545,12 +740,12 @@ msgid "" "something else." msgstr "" "En fait, ``select`` peut être pratique même avec des connecteurs bloquants. " -"C'est une façon de déterminer si vous allez bloquer — le connecteur " -"redevient lisible lorsqu'il y a quelque chose dans les tampons. Cependant, " -"cela n'aide pas encore à déterminer si l'autre extrémité a terminé, ou si " -"elle est simplement occupée par autre chose." +"C'est une façon de déterminer si vous allez bloquer — le connecteur est " +"renvoyé comme lisible lorsqu'il y a quelque chose dans les mémoires tampons. " +"Cependant, cela n'aide pas encore à déterminer si l'autre extrémité a " +"terminé, ou si elle est simplement occupée par autre chose." -#: ../Doc/howto/sockets.rst:377 +#: howto/sockets.rst:377 msgid "" "**Portability alert**: On Unix, ``select`` works both with the sockets and " "files. Don't try this on Windows. On Windows, ``select`` works with sockets " diff --git a/howto/sorting.po b/howto/sorting.po index 9ac80e427d..30d8bb42eb 100644 --- a/howto/sorting.po +++ b/howto/sorting.po @@ -63,7 +63,7 @@ msgid "" "It returns a new sorted list::" msgstr "" "Un tri ascendant simple est très facile : il suffit d'appeler la fonction :" -"func:`sorted`. Elle renvoie une nouvelle liste triée : ::" +"func:`sorted`. Elle renvoie une nouvelle liste triée ::" #: ../Doc/howto/sorting.rst:26 msgid "" @@ -374,7 +374,7 @@ msgstr "" "En portant du code depuis Python 2.X vers 3.x, des problèmes peuvent " "survenir quand des utilisateurs fournissent une fonction de comparaison et " "qu'il faut convertir cette fonction en une fonction-clef. La fonction " -"d'encapsulation suivante rend cela plus facile à faire : ::" +"d'encapsulation suivante rend cela plus facile à faire ::" #: ../Doc/howto/sorting.rst:256 msgid "To convert to a key function, just wrap the old comparison function:" @@ -423,7 +423,7 @@ msgstr "" "Il est garanti que les routines de tri utilisent les méthodes :meth:`__lt__` " "lorsqu'elles effectuent des comparaisons entre deux objets. Donc il est " "facile d'ajouter un ordre de tri standard à une classe en définissant sa " -"méthode :meth:`__lt__` : ::" +"méthode :meth:`__lt__` ::" #: ../Doc/howto/sorting.rst:296 msgid "" diff --git a/howto/unicode.po b/howto/unicode.po index 1e0fc0c8ac..0fded03580 100644 --- a/howto/unicode.po +++ b/howto/unicode.po @@ -6,46 +6,46 @@ msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: 2019-06-08 10:54+0200\n" -"Last-Translator: Mathieu Dupuy \n" +"PO-Revision-Date: 2019-10-31 12:03+0100\n" +"Last-Translator: Melançon Victor \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2.1\n" +"X-Generator: Poedit 2.2.4\n" -#: ../Doc/howto/unicode.rst:5 +#: howto/unicode.rst:5 msgid "Unicode HOWTO" msgstr "Guide Unicode" -#: ../Doc/howto/unicode.rst:0 +#: howto/unicode.rst:0 msgid "Release" msgstr "Version" -#: ../Doc/howto/unicode.rst:7 +#: howto/unicode.rst:7 msgid "1.12" msgstr "1.12" -#: ../Doc/howto/unicode.rst:9 +#: howto/unicode.rst:9 msgid "" "This HOWTO discusses Python's support for the Unicode specification for " "representing textual data, and explains various problems that people " "commonly encounter when trying to work with Unicode." msgstr "" -"Ce HOWTO décrit la gestion de la spécification Unicode par Python pour les " +"Ce guide décrit la gestion de la spécification Unicode par Python pour les " "données textuelles et explique les différents problèmes généralement " "rencontrés par les utilisateurs qui travaillent avec Unicode." -#: ../Doc/howto/unicode.rst:15 +#: howto/unicode.rst:15 msgid "Introduction to Unicode" msgstr "Introduction à Unicode" -#: ../Doc/howto/unicode.rst:18 +#: howto/unicode.rst:18 msgid "Definitions" msgstr "Définitions" -#: ../Doc/howto/unicode.rst:20 +#: howto/unicode.rst:20 msgid "" "Today's programs need to be able to handle a wide variety of characters. " "Applications are often internationalized to display messages and output in a " @@ -59,7 +59,7 @@ msgstr "" "Les programmes d'aujourd'hui doivent être capables de traiter une grande " "variété de caractères. Les applications sont souvent internationalisées pour " "afficher les messages et les résultats dans une variété de langues " -"sélectionnables par l'utilisateur ; le même programme peut avoir besoin " +"sélectionnables par l'utilisateur ; le même programme peut avoir besoin " "d'afficher un message d'erreur en anglais, français, japonais, hébreu ou " "russe. Le contenu Web peut être écrit dans n'importe laquelle de ces langues " "et peut également inclure une variété de symboles émoji. Le type de chaîne " @@ -67,7 +67,7 @@ msgstr "" "caractères, ce qui permet aux programmes Python de travailler avec tous ces " "différents caractères possibles." -#: ../Doc/howto/unicode.rst:30 +#: howto/unicode.rst:30 msgid "" "Unicode (https://www.unicode.org/) is a specification that aims to list " "every character used by human languages and give each character its own " @@ -80,7 +80,7 @@ msgstr "" "continuellement révisées et mises à jour pour ajouter de nouvelles langues " "et de nouveaux symboles." -#: ../Doc/howto/unicode.rst:35 +#: howto/unicode.rst:35 msgid "" "A **character** is the smallest possible component of a text. 'A', 'B', " "'C', etc., are all different characters. So are 'È' and 'Í'. Characters " @@ -93,34 +93,34 @@ msgstr "" "« B », « C », etc. sont tous des caractères différents. Il en va de même " "pour « È » et « Í ». Les caractères varient selon la langue ou le contexte " "dont vous parlez. Par exemple, il y a un caractère pour « Chiffre Romain " -"Un » (*Roman Numeral One*) , « Ⅰ », qui est séparé de la lettre majuscule " -"« I ». Ils se ressemblent généralement, mais ce sont deux caractères " +"Un » (*Roman Numeral One*), « Ⅰ », qui est séparé de la lettre majuscule " +"« I ». Ils se ressemblent généralement, mais ce sont deux caractères " "différents qui ont des significations différentes." -#: ../Doc/howto/unicode.rst:42 +#: howto/unicode.rst:42 msgid "" "The Unicode standard describes how characters are represented by **code " "points**. A code point value is an integer in the range 0 to 0x10FFFF " "(about 1.1 million values, with some 110 thousand assigned so far). In the " -"standard and in this document, a code point is written using the notation ``U" -"+265E`` to mean the character with value ``0x265e`` (9,822 in decimal)." +"standard and in this document, a code point is written using the notation " +"``U+265E`` to mean the character with value ``0x265e`` (9,822 in decimal)." msgstr "" "Le standard Unicode décrit comment les caractères sont représentés par les " "**points de code**. Une valeur de point de code est un nombre entier compris " "entre ``0`` et ``0x10FFFF`` (environ 1,1 million de valeurs, avec environ " -"110 000 valeurs attribuées à ce jour). Dans le standard et dans le présent " +"110 000 valeurs attribuées à ce jour). Dans le standard et dans le présent " "document, un point de code est écrit en utilisant la notation ``U+265E`` " "pour désigner le caractère avec la valeur ``0x265e`` (9 822 en décimal)." -#: ../Doc/howto/unicode.rst:49 +#: howto/unicode.rst:49 msgid "" "The Unicode standard contains a lot of tables listing characters and their " "corresponding code points:" msgstr "" "La standard Unicode contient de nombreux tableaux contenant la liste des " -"caractères et des points de code correspondants :" +"caractères et des points de code correspondants :" -#: ../Doc/howto/unicode.rst:70 +#: howto/unicode.rst:70 msgid "" "Strictly, these definitions imply that it's meaningless to say 'this is " "character ``U+265E``'. ``U+265E`` is a code point, which represents some " @@ -129,12 +129,12 @@ msgid "" "and characters will sometimes be forgotten." msgstr "" "À proprement parler, ces définitions laissent entendre qu'il est inutile de " -"dire « c'est le caractère ``U+265E`` ». ``U+265E`` est un point de code, qui " -"représente un caractère particulier ; dans ce cas, il représente le " -"caractère « BLACK CHESS KNIGHT », « ♞ ». Dans des contextes informels, cette " +"dire « c'est le caractère ``U+265E`` ». ``U+265E`` est un point de code, qui " +"représente un caractère particulier ; dans ce cas, il représente le " +"caractère « BLACK CHESS KNIGHT », « ♞ ». Dans des contextes informels, cette " "distinction entre les points de code et les caractères sera parfois oubliée." -#: ../Doc/howto/unicode.rst:77 +#: howto/unicode.rst:77 msgid "" "A character is represented on a screen or on paper by a set of graphical " "elements that's called a **glyph**. The glyph for an uppercase A, for " @@ -147,15 +147,15 @@ msgstr "" "d’éléments graphiques appelé **glyphe**. Le glyphe d’un A majuscule, par " "exemple, est deux traits diagonaux et un trait horizontal, bien que les " "détails exacts dépendent de la police utilisée. La plupart du code Python " -"n’a pas besoin de s’inquiéter des glyphes ; trouver le bon glyphe à afficher " +"n’a pas besoin de s’inquiéter des glyphes ; trouver le bon glyphe à afficher " "est généralement le travail d’une boîte à outils GUI ou du moteur de rendu " "des polices d’un terminal." -#: ../Doc/howto/unicode.rst:86 +#: howto/unicode.rst:86 msgid "Encodings" msgstr "Encodages" -#: ../Doc/howto/unicode.rst:88 +#: howto/unicode.rst:88 msgid "" "To summarize the previous section: a Unicode string is a sequence of code " "points, which are numbers from 0 through ``0x10FFFF`` (1,114,111 decimal). " @@ -164,15 +164,15 @@ msgid "" "rules for translating a Unicode string into a sequence of bytes are called a " "**character encoding**, or just an **encoding**." msgstr "" -"Pour résumer la section précédente : une chaîne Unicode est une séquence de " -"points de code, qui sont des nombres de ``0`` à ``0x10FFFF`` (1 114 111 en " +"Pour résumer la section précédente : une chaîne Unicode est une séquence de " +"points de code, qui sont des nombres de ``0`` à ``0x10FFFF`` (1 114 111 en " "décimal). Cette séquence de points de code doit être stockée en mémoire sous " "la forme d'un ensemble de **unités de code**, et les **unités de code** sont " "ensuite transposées en octets de 8 bits. Les règles de traduction d'une " "chaîne Unicode en une séquence d'octets sont appelées un **encodage de " "caractères** ou simplement un **encodage**." -#: ../Doc/howto/unicode.rst:96 +#: howto/unicode.rst:96 msgid "" "The first encoding you might think of is using 32-bit integers as the code " "unit, and then using the CPU's representation of 32-bit integers. In this " @@ -181,9 +181,9 @@ msgstr "" "Le premier encodage auquel vous pouvez penser est l'utilisation d'entiers 32 " "bits comme unité de code, puis l'utilisation de la représentation des " "entiers 32 bits par le CPU. Dans cette représentation, la chaîne « Python » " -"ressemblerait à ceci :" +"ressemblerait à ceci :" -#: ../Doc/howto/unicode.rst:106 +#: howto/unicode.rst:106 msgid "" "This representation is straightforward but using it presents a number of " "problems." @@ -191,13 +191,13 @@ msgstr "" "Cette représentation est simple mais son utilisation pose un certain nombre " "de problèmes." -#: ../Doc/howto/unicode.rst:109 +#: howto/unicode.rst:109 msgid "It's not portable; different processors order the bytes differently." msgstr "" -"Elle n’est pas portable ; des processeurs différents ordonnent les octets " +"Elle n’est pas portable ; des processeurs différents ordonnent les octets " "différemment." -#: ../Doc/howto/unicode.rst:111 +#: howto/unicode.rst:111 msgid "" "It's very wasteful of space. In most texts, the majority of the code points " "are less than 127, or less than 255, so a lot of space is occupied by " @@ -207,17 +207,17 @@ msgid "" "that large), but expanding our usage of disk and network bandwidth by a " "factor of 4 is intolerable." msgstr "" -"Elle gâche beaucoup d'espace. Dans la plupart des textes, la majorité des " +"Elle gâche beaucoup d'espace. Dans la plupart des textes, la majorité des " "points de code sont inférieurs à 127, ou à 255, donc beaucoup d'espace est " "occupé par des octets ``0x00``. La chaîne ci-dessus occupe 24 octets, à " -"comparer aux 6 octets nécessaires pour une représentation en ASCII. " +"comparer aux 6 octets nécessaires pour une représentation en ASCII. " "L'utilisation supplémentaire de RAM n'a pas trop d'importance (les " "ordinateurs de bureau ont des gigaoctets de RAM et les chaînes ne sont " "généralement pas si grandes que ça), mais l'accroissement de notre " "utilisation du disque et de la bande passante réseau par un facteur de 4 est " "intolérable." -#: ../Doc/howto/unicode.rst:119 +#: howto/unicode.rst:119 msgid "" "It's not compatible with existing C functions such as ``strlen()``, so a new " "family of wide string functions would need to be used." @@ -226,7 +226,7 @@ msgstr "" "``strlen()``, il faudrait donc utiliser une nouvelle famille de fonctions, " "celle des chaînes larges (*wide strings*)." -#: ../Doc/howto/unicode.rst:122 +#: howto/unicode.rst:122 msgid "" "Therefore this encoding isn't used very much, and people instead choose " "other encodings that are more efficient and convenient, such as UTF-8." @@ -234,7 +234,7 @@ msgstr "" "Par conséquent, cet encodage n'est pas très utilisé et d'autres encodages, " "plus efficaces et pratiques comme UTF-8, sont plutôt choisis." -#: ../Doc/howto/unicode.rst:125 +#: howto/unicode.rst:125 msgid "" "UTF-8 is one of the most commonly used encodings, and Python often defaults " "to using it. UTF stands for \"Unicode Transformation Format\", and the '8' " @@ -249,31 +249,31 @@ msgstr "" "codages UTF-16 et UTF-32, mais ils sont moins souvent utilisés que UTF-8). " "UTF-8 utilise les règles suivantes :" -#: ../Doc/howto/unicode.rst:131 +#: howto/unicode.rst:131 msgid "" "If the code point is < 128, it's represented by the corresponding byte value." msgstr "" "Si le point de code est < 128, il est représenté par la valeur de l'octet " "correspondant." -#: ../Doc/howto/unicode.rst:132 +#: howto/unicode.rst:132 msgid "" "If the code point is >= 128, it's turned into a sequence of two, three, or " "four bytes, where each byte of the sequence is between 128 and 255." msgstr "" -"Si le point de code est >= 128, il est transformé en une séquence de deux, " +"Si le point de code est ≥ 128, il est transformé en une séquence de deux, " "trois ou quatre octets, où chaque octet de la séquence est compris entre 128 " "et 255." -#: ../Doc/howto/unicode.rst:135 +#: howto/unicode.rst:135 msgid "UTF-8 has several convenient properties:" msgstr "UTF-8 a plusieurs propriétés intéressantes :" -#: ../Doc/howto/unicode.rst:137 +#: howto/unicode.rst:137 msgid "It can handle any Unicode code point." msgstr "Il peut gérer n'importe quel point de code Unicode." -#: ../Doc/howto/unicode.rst:138 +#: howto/unicode.rst:138 msgid "" "A Unicode string is turned into a sequence of bytes that contains embedded " "zero bytes only where they represent the null character (U+0000). This means " @@ -282,16 +282,16 @@ msgid "" "end-of-string markers." msgstr "" "Une chaîne Unicode est transformée en une séquence d’octets qui contient des " -"octets zéro uniquement lorsqu’ils représentent le caractère nul (U+000000). " +"octets zéro uniquement lorsqu’ils représentent le caractère nul (U+0000). " "Cela signifie que les chaînes UTF-8 peuvent être traitées par des fonctions " "C telles que ``strcpy()`` et envoyées par des protocoles pour qui les octets " "zéro signifient forcément la fin de chaîne." -#: ../Doc/howto/unicode.rst:143 +#: howto/unicode.rst:143 msgid "A string of ASCII text is also valid UTF-8 text." msgstr "Une chaîne de texte ASCII est également un texte UTF-8 valide." -#: ../Doc/howto/unicode.rst:144 +#: howto/unicode.rst:144 msgid "" "UTF-8 is fairly compact; the majority of commonly used characters can be " "represented with one or two bytes." @@ -299,7 +299,7 @@ msgstr "" "UTF-8 est assez compact. La majorité des caractères couramment utilisés " "peuvent être représentés avec un ou deux octets." -#: ../Doc/howto/unicode.rst:146 +#: howto/unicode.rst:146 msgid "" "If bytes are corrupted or lost, it's possible to determine the start of the " "next UTF-8-encoded code point and resynchronize. It's also unlikely that " @@ -310,7 +310,7 @@ msgstr "" "est également improbable que des données 8-bits aléatoires ressemblent à du " "UTF-8 valide." -#: ../Doc/howto/unicode.rst:149 +#: howto/unicode.rst:149 msgid "" "UTF-8 is a byte oriented encoding. The encoding specifies that each " "character is represented by a specific sequence of one or more bytes. This " @@ -318,19 +318,18 @@ msgid "" "oriented encodings, like UTF-16 and UTF-32, where the sequence of bytes " "varies depending on the hardware on which the string was encoded." msgstr "" -"UTF-8 est un encodage orienté octets. L'encodage spécifie que chaque " +"UTF-8 est un encodage orienté octet. L'encodage spécifie que chaque " "caractère est représenté par une séquence spécifique d'un ou plusieurs " "octets. Ceci permet d'éviter les problèmes d'ordre des octets qui peuvent " "survenir avec les encodages orientés entiers (*integer*) ou orientés mots " "processeurs (*words*), comme UTF-16 et UTF-32, où la séquence des octets " "varie en fonction du matériel sur lequel la chaîne a été encodée." -#: ../Doc/howto/unicode.rst:157 ../Doc/howto/unicode.rst:513 -#: ../Doc/howto/unicode.rst:734 +#: howto/unicode.rst:513 howto/unicode.rst:734 msgid "References" msgstr "Références" -#: ../Doc/howto/unicode.rst:159 +#: howto/unicode.rst:159 msgid "" "The `Unicode Consortium site `_ has character " "charts, a glossary, and PDF versions of the Unicode specification. Be " @@ -340,23 +339,21 @@ msgid "" msgstr "" "Le site du `Consortium Unicode `_, en anglais, a des " "diagrammes de caractères, un glossaire et des versions PDF de la " -"spécification Unicode. Préparez-vous à une lecture difficile. Une " +"spécification Unicode. Préparez-vous à une lecture difficile. Une " "`chronologie `_ de l’origine et du " "développement de l’Unicode est également disponible sur le site." -#: ../Doc/howto/unicode.rst:164 -#, fuzzy +#: howto/unicode.rst:164 msgid "" "On the Computerphile Youtube channel, Tom Scott briefly `discusses the " "history of Unicode and UTF-8 `_ " "(9 minutes 36 seconds)." msgstr "" "Sur la chaîne Youtube *Computerphile*, Tom Scott parle brièvement de " -"l'histoire d'Unicode et d'UTF-8, en anglais : `Characters, Symbols and the " -"Unicode Miracle ` (9 minutes et " -"36 secondes)." +"`l’histoire d’Unicode et d’UTF-8 `_ (9 minutes et 36 secondes)." -#: ../Doc/howto/unicode.rst:168 +#: howto/unicode.rst:168 msgid "" "To help understand the standard, Jukka Korpela has written `an introductory " "guide `_ to reading the Unicode " @@ -366,7 +363,7 @@ msgstr "" "d’introduction `_ à la lecture des " "tables de caractères Unicode (ressource en anglais)." -#: ../Doc/howto/unicode.rst:172 +#: howto/unicode.rst:172 msgid "" "Another `good introductory article `_ a été " "écrit par Joel Spolsky. Si cette présente introduction ne vous a pas " -"clarifié les choses, vous devriez essayer de lire cet article là avant de " +"clarifié les choses, vous devriez essayer de lire cet article-là avant de " "continuer." -#: ../Doc/howto/unicode.rst:177 +#: howto/unicode.rst:177 msgid "" "Wikipedia entries are often helpful; see the entries for \"`character " "encoding `_\" and `UTF-8 " "`_, for example." msgstr "" -"Les pages Wikipédia sont souvent utiles ; voir les pages pour « `Codage des " +"Les pages Wikipédia sont souvent utiles ; voir les pages pour « `Codage des " "caractères `_ » et " "`UTF-8 `_, par exemple." -#: ../Doc/howto/unicode.rst:183 +#: howto/unicode.rst:183 msgid "Python's Unicode Support" msgstr "Prise en charge Unicode de Python" -#: ../Doc/howto/unicode.rst:185 +#: howto/unicode.rst:185 msgid "" "Now that you've learned the rudiments of Unicode, we can look at Python's " "Unicode features." @@ -403,11 +400,11 @@ msgstr "" "Maintenant que vous avez appris les rudiments de l'Unicode, nous pouvons " "regarder les fonctionnalités Unicode de Python." -#: ../Doc/howto/unicode.rst:189 +#: howto/unicode.rst:189 msgid "The String Type" msgstr "Le type *String*" -#: ../Doc/howto/unicode.rst:191 +#: howto/unicode.rst:191 msgid "" "Since Python 3.0, the language's :class:`str` type contains Unicode " "characters, meaning any string created using ``\"unicode rocks!\"``, " @@ -419,7 +416,7 @@ msgstr "" "déchire !\"``, ``'unicode déchire !'`` ou la syntaxe à triples guillemets " "est enregistrée comme Unicode." -#: ../Doc/howto/unicode.rst:195 +#: howto/unicode.rst:195 msgid "" "The default encoding for Python source code is UTF-8, so you can simply " "include a Unicode character in a string literal::" @@ -427,13 +424,13 @@ msgstr "" "L'encodage par défaut pour le code source Python est UTF-8, il est donc " "facile d'inclure des caractères Unicode dans une chaîne littérale ::" -#: ../Doc/howto/unicode.rst:205 +#: howto/unicode.rst:205 msgid "" "Side note: Python 3 also supports using Unicode characters in identifiers::" msgstr "" -"Note : Python 3 sait gérer les caractères Unicode dans les identifiants ::" +"Note : Python 3 sait gérer les caractères Unicode dans les identifiants ::" -#: ../Doc/howto/unicode.rst:211 +#: howto/unicode.rst:211 msgid "" "If you can't enter a particular character in your editor or want to keep the " "source code ASCII-only for some reason, you can also use escape sequences in " @@ -444,21 +441,21 @@ msgstr "" "si vous voulez garder le code source uniquement en ASCII pour une raison " "quelconque, vous pouvez également utiliser des séquences d'échappement dans " "les littéraux de chaîne (en fonction de votre système, il se peut que vous " -"voyez le glyphe réel du *delta majuscule* au lieu d'une séquence " -"d'échappement ``\\u...``) ::" +"voyiez le glyphe réel du *delta majuscule* au lieu d'une séquence " +"d'échappement ``\\u...``) ::" -#: ../Doc/howto/unicode.rst:223 +#: howto/unicode.rst:223 msgid "" "In addition, one can create a string using the :func:`~bytes.decode` method " "of :class:`bytes`. This method takes an *encoding* argument, such as " "``UTF-8``, and optionally an *errors* argument." msgstr "" "De plus, une chaîne de caractères peut être créée en utilisant la méthode :" -"func:`~bytes.decode` de la classe :class:`bytes`. Cette méthode prend un " +"func:`~bytes.decode` de la classe :class:`bytes`. Cette méthode prend un " "argument *encoding*, ``UTF-8`` par exemple, et optionnellement un argument " "*errors*." -#: ../Doc/howto/unicode.rst:227 +#: howto/unicode.rst:227 msgid "" "The *errors* argument specifies the response when the input string can't be " "converted according to the encoding's rules. Legal values for this argument " @@ -471,13 +468,13 @@ msgstr "" "L'argument *errors* détermine la réponse lorsque la chaîne en entrée ne peut " "pas être convertie selon les règles de l'encodage. Les valeurs autorisées " "pour cet argument sont ``'strict'`` (« strict » : lève une exception :exc:" -"`UnicodeDecodeError`) , ``'replace'`` (« remplacer » : utilise ``U+FFFD``, " +"`UnicodeDecodeError`), ``'replace'`` (« remplacer » : utilise ``U+FFFD``, " "``REPLACEMENT CARACTER``), ``'ignore'`` (« ignorer » : n'inclut pas le " "caractère dans le résultat Unicode) ou ``'backslashreplace'`` (« remplacer " "avec antislash » : insère une séquence d’échappement ``\\xNN``). Les " "exemples suivants illustrent les différences ::" -#: ../Doc/howto/unicode.rst:247 +#: howto/unicode.rst:247 msgid "" "Encodings are specified as strings containing the encoding's name. Python " "comes with roughly 100 different encodings; see the Python Library Reference " @@ -487,12 +484,12 @@ msgid "" msgstr "" "Les encodages sont spécifiés sous forme de chaînes de caractères contenant " "le nom de l'encodage. Python est livré avec une centaine d'encodages " -"différents ; voir la référence de la bibliothèque Python sur les :ref:" +"différents ; voir la référence de la bibliothèque Python sur les :ref:" "`encodages standards ` pour une liste. Certains " -"encodages ont plusieurs noms ; par exemple, ``'latin-1'``, ``'iso_8859_1'`` " +"encodages ont plusieurs noms ; par exemple, ``'latin-1'``, ``'iso_8859_1'`` " "et ``'8859'`` sont tous synonymes du même encodage." -#: ../Doc/howto/unicode.rst:253 +#: howto/unicode.rst:253 msgid "" "One-character Unicode strings can also be created with the :func:`chr` built-" "in function, which takes integers and returns a Unicode string of length 1 " @@ -506,11 +503,11 @@ msgstr "" "L'opération inverse est la fonction native :func:`ord` qui prend une chaîne " "Unicode d'un caractère et renvoie la valeur du point de code ::" -#: ../Doc/howto/unicode.rst:265 +#: howto/unicode.rst:265 msgid "Converting to Bytes" msgstr "Conversion en octets" -#: ../Doc/howto/unicode.rst:267 +#: howto/unicode.rst:267 msgid "" "The opposite method of :meth:`bytes.decode` is :meth:`str.encode`, which " "returns a :class:`bytes` representation of the Unicode string, encoded in " @@ -520,7 +517,7 @@ msgstr "" "renvoie une représentation :class:`bytes` de la chaîne Unicode, codée dans " "l’encodage *encoding* demandé." -#: ../Doc/howto/unicode.rst:271 +#: howto/unicode.rst:271 msgid "" "The *errors* parameter is the same as the parameter of the :meth:`~bytes." "decode` method but supports a few more possible handlers. As well as " @@ -535,14 +532,14 @@ msgstr "" "de ``'strict'``, ``'ignore'`` et ``'remplace'`` (qui dans ce cas insère un " "point d'interrogation au lieu du caractère non codable), il y a aussi " "``'xmlcharrefreplace'`` (insère une référence XML), ``backslashreplace`` " -"(insère une séquence ``\\uNNNN``) et ``namereplace`` (insère une séquence ``" -"\\N{...}``)." +"(insère une séquence ``\\uNNNN``) et ``namereplace`` (insère une séquence " +"``\\N{...}``)." -#: ../Doc/howto/unicode.rst:279 +#: howto/unicode.rst:279 msgid "The following example shows the different results::" msgstr "L'exemple suivant montre les différents résultats ::" -#: ../Doc/howto/unicode.rst:300 +#: howto/unicode.rst:300 msgid "" "The low-level routines for registering and accessing the available encodings " "are found in the :mod:`codecs` module. Implementing new encodings also " @@ -557,13 +554,13 @@ msgstr "" "`codecs`. Cependant, les fonctions d'encodage et de décodage renvoyées par " "ce module sont généralement de bas-niveau pour être facilement utilisées et " "l'écriture de nouveaux encodages est une tâche très spécialisée, donc le " -"module ne sera pas couvert dans ce HOWTO." +"module ne sera pas couvert dans ce guide." -#: ../Doc/howto/unicode.rst:309 +#: howto/unicode.rst:309 msgid "Unicode Literals in Python Source Code" msgstr "Littéraux Unicode dans le code source Python" -#: ../Doc/howto/unicode.rst:311 +#: howto/unicode.rst:311 msgid "" "In Python source code, specific Unicode code points can be written using the " "``\\u`` escape sequence, which is followed by four hex digits giving the " @@ -572,10 +569,10 @@ msgid "" msgstr "" "Dans le code source Python, des points de code Unicode spécifiques peuvent " "être écrits en utilisant la séquence d'échappement ``\\u``, suivie de quatre " -"chiffres hexadécimaux donnant le point de code. La séquence d'échappement ``" -"\\U`` est similaire, mais attend huit chiffres hexadécimaux, pas quatre ::" +"chiffres hexadécimaux donnant le point de code. La séquence d'échappement " +"``\\U`` est similaire, mais attend huit chiffres hexadécimaux, pas quatre ::" -#: ../Doc/howto/unicode.rst:323 +#: howto/unicode.rst:323 msgid "" "Using escape sequences for code points greater than 127 is fine in small " "doses, but becomes an annoyance if you're using many accented characters, as " @@ -587,10 +584,10 @@ msgstr "" "à 127 est acceptable à faible dose, mais devient gênante si vous utilisez " "beaucoup de caractères accentués, comme c'est le cas dans un programme avec " "des messages en français ou dans une autre langue utilisant des lettres " -"accentuées. Vous pouvez également assembler des chaînes de caractères à " +"accentuées. Vous pouvez également assembler des chaînes de caractères à " "l'aide de la fonction native :func:`chr`, mais c'est encore plus fastidieux." -#: ../Doc/howto/unicode.rst:329 +#: howto/unicode.rst:329 msgid "" "Ideally, you'd want to be able to write literals in your language's natural " "encoding. You could then edit Python source code with your favorite editor " @@ -598,11 +595,11 @@ msgid "" "characters used at runtime." msgstr "" "Idéalement, vous devriez être capable d'écrire des littéraux dans l'encodage " -"naturel de votre langue. Vous pourriez alors éditer le code source de " -"Python avec votre éditeur favori qui affiche les caractères accentués " +"naturel de votre langue. Vous pourriez alors éditer le code source de Python " +"avec votre éditeur favori qui affiche les caractères accentués " "naturellement, et a les bons caractères utilisés au moment de l'exécution." -#: ../Doc/howto/unicode.rst:334 +#: howto/unicode.rst:334 msgid "" "Python supports writing source code in UTF-8 by default, but you can use " "almost any encoding if you declare the encoding being used. This is done by " @@ -611,10 +608,10 @@ msgid "" msgstr "" "Python considère que le code source est écrit en UTF-8 par défaut, mais vous " "pouvez utiliser presque n'importe quel encodage si vous déclarez l'encodage " -"utilisé. Cela se fait en incluant un commentaire spécial sur la première ou " +"utilisé. Cela se fait en incluant un commentaire spécial sur la première ou " "la deuxième ligne du fichier source ::" -#: ../Doc/howto/unicode.rst:344 +#: howto/unicode.rst:344 msgid "" "The syntax is inspired by Emacs's notation for specifying variables local to " "a file. Emacs supports many different variables, but Python only supports " @@ -622,26 +619,26 @@ msgid "" "special; they have no significance to Python but are a convention. Python " "looks for ``coding: name`` or ``coding=name`` in the comment." msgstr "" -"La syntaxe s'inspire de la notation d'Emacs pour spécifier les variables " +"La syntaxe s'inspire de la notation d'*Emacs* pour spécifier les variables " "locales à un fichier. *Emacs* supporte de nombreuses variables différentes, " -"mais Python ne gère que *coding*. Les symboles ``-*-`` indiquent à Emacs " -"que le commentaire est spécial ; ils n'ont aucune signification pour Python " -"mais sont une convention. Python cherche ``coding: name`` ou " -"``coding=name`` dans le commentaire." +"mais Python ne gère que *coding*. Les symboles ``-*-`` indiquent à *Emacs* " +"que le commentaire est spécial ; ils n'ont aucune signification pour Python " +"mais sont une convention. Python cherche ``coding: name`` ou ``coding=name`` " +"dans le commentaire." -#: ../Doc/howto/unicode.rst:350 +#: howto/unicode.rst:350 msgid "" "If you don't include such a comment, the default encoding used will be UTF-8 " "as already mentioned. See also :pep:`263` for more information." msgstr "" "Si vous n'incluez pas un tel commentaire, l'encodage par défaut est UTF-8 " -"comme déjà mentionné. Voir aussi la :pep:`263` pour plus d'informations." +"comme déjà mentionné. Voir aussi la :pep:`263` pour plus d'informations." -#: ../Doc/howto/unicode.rst:355 +#: howto/unicode.rst:355 msgid "Unicode Properties" msgstr "Propriétés Unicode" -#: ../Doc/howto/unicode.rst:357 +#: howto/unicode.rst:357 msgid "" "The Unicode specification includes a database of information about code " "points. For each defined code point, the information includes the " @@ -658,7 +655,7 @@ msgstr "" "existe également des propriétés liées à l'affichage, telles que " "l'utilisation du point de code dans un texte bidirectionnel." -#: ../Doc/howto/unicode.rst:365 +#: howto/unicode.rst:365 msgid "" "The following program displays some information about several characters, " "and prints the numeric value of one particular character::" @@ -666,11 +663,11 @@ msgstr "" "Le programme suivant affiche des informations sur plusieurs caractères et " "affiche la valeur numérique d'un caractère particulier ::" -#: ../Doc/howto/unicode.rst:379 +#: howto/unicode.rst:379 msgid "When run, this prints:" msgstr "Si vous l'exécutez, cela affiche :" -#: ../Doc/howto/unicode.rst:390 +#: howto/unicode.rst:390 msgid "" "The category codes are abbreviations describing the nature of the character. " "These are grouped into categories such as \"Letter\", \"Number\", " @@ -685,19 +682,19 @@ msgstr "" "Les codes de catégorie sont des abréviations décrivant la nature du " "caractère. Celles-ci sont regroupées en catégories telles que « Lettre », " "« Nombre », « Ponctuation » ou « Symbole », qui sont à leur tour divisées en " -"sous-catégories. Pour prendre par exemple les codes de la sortie ci-dessus, " +"sous-catégories. Pour prendre par exemple les codes de la sortie ci-dessus, " "``'Ll'`` signifie « Lettre, minuscules », ``'No'`` signifie « Nombre, " "autre », ``'Mn'`` est « Marque, non-espaçant », et ``'So'`` est « Symbole, " -"autre ». Voir la section `Valeurs générales des catégories de la " +"autre ». Voir la section `Valeurs générales des catégories de la " "documentation de la base de données de caractères Unicode `_ (ressource en anglais) " "pour une liste de codes de catégories." -#: ../Doc/howto/unicode.rst:401 +#: howto/unicode.rst:401 msgid "Comparing Strings" msgstr "Comparaison de chaînes de caractères" -#: ../Doc/howto/unicode.rst:403 +#: howto/unicode.rst:403 msgid "" "Unicode adds some complication to comparing strings, because the same set of " "characters can be represented by different sequences of code points. For " @@ -708,14 +705,14 @@ msgid "" msgstr "" "Unicode ajoute une certaine complication à la comparaison des chaînes de " "caractères, car le même jeu de caractères peut être représenté par " -"différentes séquences de points de code. Par exemple, une lettre comme " -"« ê » peut être représentée comme un point de code unique ``U+00EA``, ou " -"comme ``U+0065 U+0302``, qui est le point de code pour « e » suivi d'un " -"point de code pour ``COMBINING CIRCUMFLEX ACCENT``. Celles-ci produisent le " -"même résultat lorsqu'elles sont affichées, mais l'une est une chaîne de " +"différentes séquences de points de code. Par exemple, une lettre comme « ê » " +"peut être représentée comme un point de code unique ``U+00EA``, ou comme " +"``U+0065 U+0302``, qui est le point de code pour « e » suivi d'un point de " +"code pour ``COMBINING CIRCUMFLEX ACCENT``. Celles-ci produisent le même " +"résultat lorsqu'elles sont affichées, mais l'une est une chaîne de " "caractères de longueur 1 et l'autre de longueur 2." -#: ../Doc/howto/unicode.rst:411 +#: howto/unicode.rst:411 msgid "" "One tool for a case-insensitive comparison is the :meth:`~str.casefold` " "string method that converts a string to a case-insensitive form following an " @@ -725,12 +722,12 @@ msgid "" msgstr "" "Un outil pour une comparaison insensible à la casse est la méthode :meth:" "`~str.casefold` qui convertit une chaîne en une forme insensible à la casse " -"suivant un algorithme décrit par le standard Unicode. Cet algorithme a un " +"suivant un algorithme décrit par le standard Unicode. Cet algorithme a un " "traitement spécial pour les caractères tels que la lettre allemande " "« *ß* » (point de code ``U+00DF``), qui devient la paire de lettres " "minuscules « *ss* »." -#: ../Doc/howto/unicode.rst:424 +#: howto/unicode.rst:424 msgid "" "A second tool is the :mod:`unicodedata` module's :func:`~unicodedata." "normalize` function that converts strings to one of several normal forms, " @@ -745,13 +742,13 @@ msgstr "" "combinaison sont remplacées par des caractères simples. :func:`normalize` " "peut être utilisée pour effectuer des comparaisons qui ne rapportent pas " "faussement les inégalités si deux chaînes utilisent différents caractères de " -"combinaison :" +"combinaison :" -#: ../Doc/howto/unicode.rst:447 +#: howto/unicode.rst:447 msgid "When run, this outputs:" msgstr "Si vous l'exécutez, cela affiche :" -#: ../Doc/howto/unicode.rst:456 +#: howto/unicode.rst:456 msgid "" "The first argument to the :func:`~unicodedata.normalize` function is a " "string giving the desired normalization form, which can be one of 'NFC', " @@ -761,29 +758,29 @@ msgstr "" "chaîne de caractères donnant la forme de normalisation désirée, qui peut " "être une de celles-ci : ``'NFC'``, ``'NFKC'``, ``'NFD'`` et ``'NFKD'``." -#: ../Doc/howto/unicode.rst:460 +#: howto/unicode.rst:460 msgid "The Unicode Standard also specifies how to do caseless comparisons::" msgstr "" "La norme Unicode spécifie également comment faire des comparaisons " "insensibles à la casse ::" -#: ../Doc/howto/unicode.rst:476 +#: howto/unicode.rst:476 msgid "" "This will print ``True``. (Why is :func:`NFD` invoked twice? Because there " "are a few characters that make :meth:`casefold` return a non-normalized " "string, so the result needs to be normalized again. See section 3.13 of the " "Unicode Standard for a discussion and an example.)" msgstr "" -"Ceci affiche ``True``. (Pourquoi :func:`NFD` est-il invoqué deux fois ? " +"Ceci affiche ``True``. (Pourquoi :func:`NFD` est-il invoqué deux fois ? " "Parce qu'il y a quelques caractères qui font que :meth:`casefold` renvoie " "une chaîne non normalisée, donc le résultat doit être normalisé à nouveau. " "Voir la section 3.13 du standard Unicode pour une discussion et un exemple)." -#: ../Doc/howto/unicode.rst:483 +#: howto/unicode.rst:483 msgid "Unicode Regular Expressions" msgstr "Expressions régulières Unicode" -#: ../Doc/howto/unicode.rst:485 +#: howto/unicode.rst:485 msgid "" "The regular expressions supported by the :mod:`re` module can be provided " "either as bytes or strings. Some of the special character sequences such as " @@ -793,13 +790,13 @@ msgid "" "in the ``'Nd'`` category." msgstr "" "Les expressions régulières gérées par le module :mod:`re` peuvent être " -"fournies sous forme de chaîne d'octets ou de texte. Certaines séquences de " +"fournies sous forme de chaîne d'octets ou de texte. Certaines séquences de " "caractères spéciaux telles que ``\\d`` et ``\\w`` ont des significations " -"différentes selon que le motif est fourni en octets ou en texte. Par " +"différentes selon que le motif est fourni en octets ou en texte. Par " "exemple, ``\\d`` correspond aux caractères ``[0-9]`` en octets mais dans les " "chaînes de caractères correspond à tout caractère de la catégorie ``'Nd'``." -#: ../Doc/howto/unicode.rst:492 +#: howto/unicode.rst:492 msgid "" "The string in this example has the number 57 written in both Thai and Arabic " "numerals::" @@ -807,17 +804,17 @@ msgstr "" "Dans cet exemple, la chaîne contient le nombre 57 écrit en chiffres arabes " "et thaïlandais ::" -#: ../Doc/howto/unicode.rst:502 +#: howto/unicode.rst:502 msgid "" "When executed, ``\\d+`` will match the Thai numerals and print them out. If " "you supply the :const:`re.ASCII` flag to :func:`~re.compile`, ``\\d+`` will " "match the substring \"57\" instead." msgstr "" "Une fois exécuté, ``\\d+`` correspond aux chiffres thaïlandais et les " -"affiche. Si vous fournissez le drapeau :const:`re.ASCII` à :func:`~re." +"affiche. Si vous fournissez le drapeau :const:`re.ASCII` à :func:`~re." "compile`, ``\\d+`` correspond cette fois à la chaîne \"57\"." -#: ../Doc/howto/unicode.rst:506 +#: howto/unicode.rst:506 msgid "" "Similarly, ``\\w`` matches a wide variety of Unicode characters but only " "``[a-zA-Z0-9_]`` in bytes or if :const:`re.ASCII` is supplied, and ``\\s`` " @@ -828,13 +825,13 @@ msgstr "" "``\\s`` correspond soit aux caractères blancs Unicode soit aux caractères " "``[ \\t\\n\\r\\f\\v]``." -#: ../Doc/howto/unicode.rst:517 +#: howto/unicode.rst:517 msgid "Some good alternative discussions of Python's Unicode support are:" msgstr "" "Quelques bonnes discussions alternatives sur la gestion d'Unicode par Python " -"sont :" +"sont :" -#: ../Doc/howto/unicode.rst:519 +#: howto/unicode.rst:519 msgid "" "`Processing Text Files in Python 3 `_, by Nick Coghlan." @@ -842,15 +839,15 @@ msgstr "" "`Processing Text Files in Python 3 `_, par Nick Coghlan." -#: ../Doc/howto/unicode.rst:520 +#: howto/unicode.rst:520 msgid "" "`Pragmatic Unicode `_, a PyCon " "2012 presentation by Ned Batchelder." msgstr "" "`Pragmatic Unicode `_, une " -"présentation PyCon 2012 par Ned Batchelder." +"présentation *PyCon* 2012 par Ned Batchelder." -#: ../Doc/howto/unicode.rst:522 +#: howto/unicode.rst:522 msgid "" "The :class:`str` type is described in the Python library reference at :ref:" "`textseq`." @@ -858,15 +855,15 @@ msgstr "" "Le type :class:`str` est décrit dans la référence de la bibliothèque Python " "à :ref:`textseq`." -#: ../Doc/howto/unicode.rst:525 +#: howto/unicode.rst:525 msgid "The documentation for the :mod:`unicodedata` module." msgstr "La documentation du module :mod:`unicodedata`." -#: ../Doc/howto/unicode.rst:527 +#: howto/unicode.rst:527 msgid "The documentation for the :mod:`codecs` module." msgstr "La documentation du module :mod:`codecs`." -#: ../Doc/howto/unicode.rst:529 +#: howto/unicode.rst:529 msgid "" "Marc-André Lemburg gave `a presentation titled \"Python and Unicode\" (PDF " "slides) `_ at " @@ -876,16 +873,16 @@ msgid "" msgstr "" "Marc-André Lemburg a donné une présentation intitulée `« Python et " "Unicode » (diapositives PDF) `_ à EuroPython 2002. Les diapositives sont un excellent " +"EPC2002-Talk.pdf>`_ à *EuroPython* 2002. Les diapositives sont un excellent " "aperçu de la conception des fonctionnalités Unicode de Python 2 (où le type " "de chaîne Unicode est appelé ``unicode`` et les littéraux commencent par " "``u``)." -#: ../Doc/howto/unicode.rst:537 +#: howto/unicode.rst:537 msgid "Reading and Writing Unicode Data" msgstr "Lecture et écriture de données Unicode" -#: ../Doc/howto/unicode.rst:539 +#: howto/unicode.rst:539 msgid "" "Once you've written some code that works with Unicode data, the next problem " "is input/output. How do you get Unicode strings into your program, and how " @@ -894,9 +891,9 @@ msgstr "" "Une fois que vous avez écrit du code qui fonctionne avec des données " "Unicode, le problème suivant concerne les entrées/sorties. Comment obtenir " "des chaînes Unicode dans votre programme et comment convertir les chaînes " -"Unicode dans une forme appropriée pour le stockage ou la transmission ?" +"Unicode dans une forme appropriée pour le stockage ou la transmission ?" -#: ../Doc/howto/unicode.rst:543 +#: howto/unicode.rst:543 msgid "" "It's possible that you may not need to do anything depending on your input " "sources and output destinations; you should check whether the libraries used " @@ -905,14 +902,14 @@ msgid "" "valued columns and can return Unicode values from an SQL query." msgstr "" "Il est possible que vous n'ayez rien à faire en fonction de vos sources " -"d'entrée et des destinations de vos données de sortie ; il convient de " +"d'entrée et des destinations de vos données de sortie ; il convient de " "vérifier si les bibliothèques utilisées dans votre application gèrent " "l'Unicode nativement. Par exemple, les analyseurs XML renvoient souvent des " "données Unicode. De nombreuses bases de données relationnelles prennent " "également en charge les colonnes encodées en Unicode et peuvent renvoyer des " "valeurs Unicode à partir d'une requête SQL." -#: ../Doc/howto/unicode.rst:549 +#: howto/unicode.rst:549 msgid "" "Unicode data is usually converted to a particular encoding before it gets " "written to disk or sent over a socket. It's possible to do all the work " @@ -926,7 +923,7 @@ msgstr "" "élément 8-bits, puis convertir les octets avec ``bytes.decode(encoding)``. " "Cependant, l'approche manuelle n'est pas recommandée." -#: ../Doc/howto/unicode.rst:554 +#: howto/unicode.rst:554 msgid "" "One problem is the multi-byte nature of encodings; one Unicode character can " "be represented by several bytes. If you want to read the file in arbitrary-" @@ -939,19 +936,19 @@ msgid "" "least a moment you'd need to have both the encoded string and its Unicode " "version in memory.)" msgstr "" -"La nature multi-octets des encodages pose problème ; un caractère Unicode " +"La nature multi-octets des encodages pose problème ; un caractère Unicode " "peut être représenté par plusieurs octets. Si vous voulez lire le fichier " "par morceaux de taille arbitraire (disons 1024 ou 4096 octets), vous devez " "écrire un code de gestion des erreurs pour détecter le cas où une partie " "seulement des octets codant un seul caractère Unicode est lue à la fin d'un " "morceau. Une solution serait de lire le fichier entier en mémoire et " "d'effectuer le décodage, mais cela vous empêche de travailler avec des " -"fichiers extrêmement volumineux ; si vous avez besoin de lire un fichier de " -"2 GiB, vous avez besoin de 2 GiB de RAM (plus que ça, en fait, puisque " +"fichiers extrêmement volumineux ; si vous avez besoin de lire un fichier de " +"2 Gio, vous avez besoin de 2 Gio de RAM (plus que ça, en fait, puisque " "pendant un moment, vous aurez besoin d'avoir à la fois la chaîne encodée et " "sa version Unicode en mémoire)." -#: ../Doc/howto/unicode.rst:564 +#: howto/unicode.rst:564 msgid "" "The solution would be to use the low-level decoding interface to catch the " "case of partial coding sequences. The work of implementing this has already " @@ -963,20 +960,20 @@ msgid "" "meth:`str.encode` and :meth:`bytes.decode`." msgstr "" "La solution serait d'utiliser l'interface de décodage de bas-niveau pour " -"intercepter le cas des séquences d'encodage incomplètes. Ce travail " -"d'implémentation a déjà été fait pour vous : la fonction native :func:`open` " +"intercepter le cas des séquences d'encodage incomplètes. Ce travail " +"d'implémentation a déjà été fait pour vous : la fonction native :func:`open` " "peut renvoyer un objet de type fichier qui suppose que le contenu du fichier " "est dans un encodage spécifié et accepte les paramètres Unicode pour des " "méthodes telles que :meth:`~io.TextIOBase.read` et :meth:`~io.TextIOBase." -"write`. Ceci fonctionne grâce aux paramètres *encoding* et *errors* de :" -"func:`open` qui sont interprétés comme ceux de :meth:`str.encode` et :meth:" -"`bytes.decode`." +"write`. Ceci fonctionne grâce aux paramètres *encoding* et *errors* de :func:" +"`open` qui sont interprétés comme ceux de :meth:`str.encode` et :meth:`bytes." +"decode`." -#: ../Doc/howto/unicode.rst:573 +#: howto/unicode.rst:573 msgid "Reading Unicode from a file is therefore simple::" msgstr "Lire de l'Unicode à partir d'un fichier est donc simple ::" -#: ../Doc/howto/unicode.rst:579 +#: howto/unicode.rst:579 msgid "" "It's also possible to open files in update mode, allowing both reading and " "writing::" @@ -984,7 +981,7 @@ msgstr "" "Il est également possible d'ouvrir des fichiers en mode « mise à jour », " "permettant à la fois la lecture et l'écriture ::" -#: ../Doc/howto/unicode.rst:587 +#: howto/unicode.rst:587 msgid "" "The Unicode character ``U+FEFF`` is used as a byte-order mark (BOM), and is " "often written as the first character of a file in order to assist with " @@ -1000,15 +997,15 @@ msgstr "" "boutisme (c'est-à-dire l'ordre dans lequel les octets sont placés pour " "indiquer une valeur sur plusieurs octets, *byte-order mark* en anglais ou " "*BOM*), et est souvent écrit en tête (premier caractère) d'un fichier afin " -"d'aider à l'auto-détection du boutisme du fichier. Certains encodages, " -"comme UTF-16, s'attendent à ce qu'une BOM soit présente au début d'un " -"fichier ; lorsqu'un tel encodage est utilisé, la BOM sera automatiquement " -"écrite comme premier caractère et sera silencieusement retirée lorsque le " -"fichier sera lu. Il existe des variantes de ces encodages, comme ``utf-16-" -"le`` et ``utf-16-be`` pour les encodages petit-boutiste et gros-boutiste, " -"qui spécifient un ordre d'octets donné et ne sautent pas la BOM." +"d'aider à l'auto-détection du boutisme du fichier. Certains encodages, comme " +"UTF-16, s'attendent à ce qu'une *BOM* soit présente au début d'un fichier ; " +"lorsqu'un tel encodage est utilisé, la *BOM* sera automatiquement écrite " +"comme premier caractère et sera silencieusement retirée lorsque le fichier " +"sera lu. Il existe des variantes de ces encodages, comme ``utf-16-le`` et " +"``utf-16-be`` pour les encodages petit-boutiste et gros-boutiste, qui " +"spécifient un ordre d'octets donné et ne sautent pas la *BOM*." -#: ../Doc/howto/unicode.rst:596 +#: howto/unicode.rst:596 msgid "" "In some areas, it is also convention to use a \"BOM\" at the start of UTF-8 " "encoded files; the name is misleading since UTF-8 is not byte-order " @@ -1017,16 +1014,16 @@ msgid "" "if present." msgstr "" "Dans certains cas, il est également d'usage d'utiliser une *BOM* au début " -"des fichiers encodés en UTF-8 ; le nom est trompeur puisque l'UTF-8 ne " +"des fichiers encodés en UTF-8 ; le nom est trompeur puisque l'UTF-8 ne " "dépend pas de l'ordre des octets. La marque annonce simplement que le " -"fichier est encodé en UTF-8. Pour lire ces fichiers, utilisez le codec " +"fichier est encodé en UTF-8. Pour lire ces fichiers, utilisez le codec " "``utf-8-sig`` pour sauter automatiquement la marque si elle est présente." -#: ../Doc/howto/unicode.rst:603 +#: howto/unicode.rst:603 msgid "Unicode filenames" msgstr "Noms de fichiers Unicode" -#: ../Doc/howto/unicode.rst:605 +#: howto/unicode.rst:605 msgid "" "Most of the operating systems in common use today support filenames that " "contain arbitrary Unicode characters. Usually this is implemented by " @@ -1039,15 +1036,15 @@ msgid "" msgstr "" "La plupart des systèmes d'exploitation couramment utilisés aujourd'hui " "prennent en charge les noms de fichiers qui contiennent des caractères " -"Unicode arbitraires. Habituellement, ceci est implémenté en convertissant " -"la chaîne Unicode en un encodage qui varie en fonction du système. " -"Aujourd'hui, Python converge vers l'utilisation d'UTF-8 : Python sous MacOS " -"utilise UTF-8 depuis plusieurs versions et Python 3.6 sous Windows est passé " -"à UTF-8 également. Sur les systèmes Unix, il n'y aura un encodage pour le " -"système de fichiers que si vous avez défini les variables d'environnement " -"``LANG`` ou ``LC_CTYPE`` ; sinon, l'encodage par défaut est UTF-8." +"Unicode arbitraires. Habituellement, ceci est implémenté en convertissant la " +"chaîne Unicode en un encodage qui varie en fonction du système. Aujourd'hui, " +"Python converge vers l'utilisation d'UTF-8 : Python sous MacOS utilise UTF-8 " +"depuis plusieurs versions et Python 3.6 sous Windows est passé à UTF-8 " +"également. Sur les systèmes Unix, il n'y aura un encodage pour le système de " +"fichiers que si vous avez défini les variables d'environnement ``LANG`` ou " +"``LC_CTYPE`` ; sinon, l'encodage par défaut est UTF-8." -#: ../Doc/howto/unicode.rst:615 +#: howto/unicode.rst:615 msgid "" "The :func:`sys.getfilesystemencoding` function returns the encoding to use " "on your current system, in case you want to do the encoding manually, but " @@ -1057,12 +1054,12 @@ msgid "" msgstr "" "La fonction :func:`sys.getfilesystemencoding` renvoie l'encodage à utiliser " "sur votre système actuel, au cas où vous voudriez faire l'encodage " -"manuellement, mais il n'y a pas vraiment de raisons de s'embêter avec ça. " +"manuellement, mais il n'y a pas vraiment de raisons de s'embêter avec ça. " "Lors de l'ouverture d'un fichier pour la lecture ou l'écriture, vous pouvez " "généralement simplement fournir la chaîne Unicode comme nom de fichier et " "elle est automatiquement convertie à l'encodage qui convient ::" -#: ../Doc/howto/unicode.rst:625 +#: howto/unicode.rst:625 msgid "" "Functions in the :mod:`os` module such as :func:`os.stat` will also accept " "Unicode filenames." @@ -1070,7 +1067,7 @@ msgstr "" "Les fonctions du module :mod:`os` telles que :func:`os.stat` acceptent " "également les noms de fichiers Unicode." -#: ../Doc/howto/unicode.rst:628 +#: howto/unicode.rst:628 msgid "" "The :func:`os.listdir` function returns filenames, which raises an issue: " "should it return the Unicode version of filenames, or should it return bytes " @@ -1083,22 +1080,22 @@ msgid "" "program::" msgstr "" "La fonction :func:`os.listdir` renvoie des noms de fichiers, ce qui soulève " -"un problème : doit-elle renvoyer la version Unicode des noms de fichiers ou " -"doit-elle renvoyer des chaînes d'octets contenant les versions encodées ? :" +"un problème : doit-elle renvoyer la version Unicode des noms de fichiers ou " +"doit-elle renvoyer des chaînes d'octets contenant les versions encodées ? :" "func:`os.listdir` peut faire les deux, selon que vous fournissez le chemin " -"du répertoire en chaîne d'octets ou en chaîne Unicode. Si vous passez une " +"du répertoire en chaîne d'octets ou en chaîne Unicode. Si vous passez une " "chaîne Unicode comme chemin d'accès, les noms de fichiers sont décodés en " "utilisant l'encodage du système de fichiers et une liste de chaînes Unicode " "est renvoyée, tandis que passer un chemin d'accès en chaîne d'octets renvoie " -"les noms de fichiers comme chaîne d'octets. Par exemple, en supposant que " +"les noms de fichiers comme chaîne d'octets. Par exemple, en supposant que " "l'encodage par défaut du système de fichiers est UTF-8, exécuter le " "programme suivant ::" -#: ../Doc/howto/unicode.rst:646 +#: howto/unicode.rst:646 msgid "will produce the following output:" msgstr "produit la sortie suivante :" -#: ../Doc/howto/unicode.rst:654 +#: howto/unicode.rst:654 msgid "" "The first list contains UTF-8-encoded filenames, and the second list " "contains the Unicode versions." @@ -1106,7 +1103,7 @@ msgstr "" "La première liste contient les noms de fichiers encodés en UTF-8 et la " "seconde contient les versions Unicode." -#: ../Doc/howto/unicode.rst:657 +#: howto/unicode.rst:657 msgid "" "Note that on most occasions, you should can just stick with using Unicode " "with these APIs. The bytes APIs should only be used on systems where " @@ -1114,16 +1111,16 @@ msgid "" "now." msgstr "" "Notez que, dans la plupart des cas, il convient de vous en tenir à " -"l'utilisation d'Unicode avec ces APIs. Les API d'octets ne devraient être " -"utilisées que sur les systèmes où des noms de fichiers non décodables " +"l'utilisation d'Unicode avec ces *APIs*. Les *API* d'octets ne devraient " +"être utilisées que sur les systèmes où des noms de fichiers non décodables " "peuvent être présents. Cela ne concerne pratiquement que des systèmes Unix " "maintenant." -#: ../Doc/howto/unicode.rst:664 +#: howto/unicode.rst:664 msgid "Tips for Writing Unicode-aware Programs" msgstr "Conseils pour écrire des programmes compatibles Unicode" -#: ../Doc/howto/unicode.rst:666 +#: howto/unicode.rst:666 msgid "" "This section provides some suggestions on writing software that deals with " "Unicode." @@ -1131,11 +1128,11 @@ msgstr "" "Cette section fournit quelques suggestions sur l'écriture de logiciels qui " "traitent de l'Unicode." -#: ../Doc/howto/unicode.rst:669 +#: howto/unicode.rst:669 msgid "The most important tip is:" -msgstr "Le conseil le plus important est:" +msgstr "Le conseil le plus important est :" -#: ../Doc/howto/unicode.rst:671 +#: howto/unicode.rst:671 msgid "" "Software should only work with Unicode strings internally, decoding the " "input data as soon as possible and encoding the output only at the end." @@ -1144,7 +1141,7 @@ msgstr "" "décodant les données d'entrée dès que possible et encodant la sortie " "uniquement à la fin." -#: ../Doc/howto/unicode.rst:674 +#: howto/unicode.rst:674 msgid "" "If you attempt to write processing functions that accept both Unicode and " "byte strings, you will find your program vulnerable to bugs wherever you " @@ -1155,11 +1152,11 @@ msgstr "" "Si vous essayez d'écrire des fonctions de traitement qui acceptent à la fois " "les chaînes Unicode et les chaînes d'octets, les possibilités d'occurrences " "de bogues dans votre programme augmentent partout où vous combinez les deux " -"différents types de chaînes. Il n'y a pas d'encodage ou de décodage " -"automatique : si vous faites par exemple ``str + octets``, une :exc:" +"différents types de chaînes. Il n'y a pas d'encodage ou de décodage " +"automatique : si vous faites par exemple ``str + octets``, une :exc:" "`TypeError` est levée." -#: ../Doc/howto/unicode.rst:679 +#: howto/unicode.rst:679 msgid "" "When using data coming from a web browser or some other untrusted source, a " "common technique is to check for illegal characters in a string before using " @@ -1174,19 +1171,19 @@ msgstr "" "autre source non fiable, une technique courante consiste à vérifier la " "présence de caractères illégaux dans une chaîne de caractères avant de " "l'utiliser pour générer une ligne de commande ou de la stocker dans une base " -"de données. Si vous le faites, vérifiez bien la chaîne décodée, pas les " -"données d'octets codés ; certains encodages peuvent avoir des propriétés " +"de données. Si vous le faites, vérifiez bien la chaîne décodée, pas les " +"données d'octets codés ; certains encodages peuvent avoir des propriétés " "intéressantes, comme ne pas être bijectifs ou ne pas être entièrement " -"compatibles avec l'ASCII. C'est particulièrement vrai si l'encodage est " +"compatibles avec l'ASCII. C'est particulièrement vrai si l'encodage est " "spécifié explicitement dans vos données d'entrée, car l'attaquant peut alors " "choisir un moyen intelligent de cacher du texte malveillant dans le flux de " "données encodé." -#: ../Doc/howto/unicode.rst:690 +#: howto/unicode.rst:690 msgid "Converting Between File Encodings" msgstr "Conversion entre les encodages de fichiers" -#: ../Doc/howto/unicode.rst:692 +#: howto/unicode.rst:692 msgid "" "The :class:`~codecs.StreamRecoder` class can transparently convert between " "encodings, taking a stream that returns data in encoding #1 and behaving " @@ -1197,7 +1194,7 @@ msgstr "" "dans l'encodage #1, elle se comporte comme un flux qui renvoie des données " "dans l'encodage #2." -#: ../Doc/howto/unicode.rst:696 +#: howto/unicode.rst:696 msgid "" "For example, if you have an input file *f* that's in Latin-1, you can wrap " "it with a :class:`~codecs.StreamRecoder` to return bytes encoded in UTF-8::" @@ -1206,24 +1203,23 @@ msgstr "" "pouvez l'encapsuler dans un :class:`~codecs.StreamRecoder` pour qu'il " "renvoie des octets encodés en UTF-8 ::" -#: ../Doc/howto/unicode.rst:710 +#: howto/unicode.rst:710 msgid "Files in an Unknown Encoding" msgstr "Fichiers dans un encodage inconnu" -#: ../Doc/howto/unicode.rst:712 +#: howto/unicode.rst:712 msgid "" "What can you do if you need to make a change to a file, but don't know the " "file's encoding? If you know the encoding is ASCII-compatible and only want " "to examine or modify the ASCII parts, you can open the file with the " "``surrogateescape`` error handler::" msgstr "" -"Vous avez besoin de modifier un fichier mais vous ne connaissez pas " -"l'encodage du fichier ? Si vous savez que l'encodage est compatible ASCII " -"et que vous voulez seulement examiner ou modifier les parties ASCII, vous " -"pouvez ouvrir le fichier avec le gestionnaire d'erreurs " -"``surrogateescape`` ::" +"Vous avez besoin de modifier un fichier, mais vous ne connaissez pas son " +"encodage ? Si vous savez que l'encodage est compatible ASCII et que vous " +"voulez seulement examiner ou modifier les parties ASCII, vous pouvez ouvrir " +"le fichier avec le gestionnaire d'erreurs ``surrogateescape`` ::" -#: ../Doc/howto/unicode.rst:726 +#: howto/unicode.rst:726 msgid "" "The ``surrogateescape`` error handler will decode any non-ASCII bytes as " "code points in a special range running from U+DC80 to U+DCFF. These code " @@ -1231,12 +1227,12 @@ msgid "" "error handler is used to encode the data and write it back out." msgstr "" "Le gestionnaire d'erreurs ``surrogateescape`` décode tous les octets non-" -"ASCII comme points de code dans une plage spéciale allant de ``U+DC80`` à ``U" -"+DCFF``. Ces points de code redeviennent alors les mêmes octets lorsque le " -"gestionnaire d'erreurs ``surrogateescape`` est utilisé pour encoder les " +"ASCII comme points de code dans une plage spéciale allant de ``U+DC80`` à " +"``U+DCFF``. Ces points de code redeviennent alors les mêmes octets lorsque " +"le gestionnaire d'erreurs ``surrogateescape`` est utilisé pour encoder les " "données et les réécrire." -#: ../Doc/howto/unicode.rst:736 +#: howto/unicode.rst:736 msgid "" "One section of `Mastering Python 3 Input/Output `_, a PyCon 2010 talk by David " @@ -1244,10 +1240,10 @@ msgid "" msgstr "" "Une partie de la conférence `Mastering Python 3 Input/Output `_ (ressource en anglais), " -"donnée lors de PyCon 2010 de David Beazley, parle du traitement de texte et " -"du traitement des données binaires." +"donnée lors de *PyCon* 2010 de David Beazley, parle du traitement de texte " +"et du traitement des données binaires." -#: ../Doc/howto/unicode.rst:740 +#: howto/unicode.rst:740 msgid "" "The `PDF slides for Marc-André Lemburg's presentation \"Writing Unicode-" "aware Applications in Python\" `_ (ressource en " "anglais) traite des questions d'encodage de caractères ainsi que de " -"l'internationalisation et de la localisation d'une application. Ces " +"l'internationalisation et de la localisation d'une application. Ces " "diapositives ne couvrent que Python 2.x." -#: ../Doc/howto/unicode.rst:746 +#: howto/unicode.rst:746 msgid "" "`The Guts of Unicode in Python `_ is a PyCon 2013 talk by Benjamin Peterson that " "discusses the internal Unicode representation in Python 3.3." msgstr "" "`The Guts of Unicode in Python `_ (ressource en anglais) est une conférence PyCon 2013 " +"unicode-in-python>`_ (ressource en anglais) est une conférence *PyCon* 2013 " "donnée par Benjamin Peterson qui traite de la représentation interne Unicode " "en Python 3.3." -#: ../Doc/howto/unicode.rst:753 +#: howto/unicode.rst:753 msgid "Acknowledgements" msgstr "Remerciements" -#: ../Doc/howto/unicode.rst:755 +#: howto/unicode.rst:755 msgid "" "The initial draft of this document was written by Andrew Kuchling. It has " "since been revised further by Alexander Belopolsky, Georg Brandl, Andrew " @@ -1287,7 +1283,7 @@ msgstr "" "depuis été révisé par Alexander Belopolsky, Georg Brandl, Andrew Kuchling et " "Ezio Melotti." -#: ../Doc/howto/unicode.rst:759 +#: howto/unicode.rst:759 msgid "" "Thanks to the following people who have noted errors or offered suggestions " "on this article: Éric Araujo, Nicholas Bastin, Nick Coghlan, Marius " @@ -1295,7 +1291,7 @@ msgid "" "Terry J. Reedy, Serhiy Storchaka, Eryk Sun, Chad Whitacre, Graham Wideman." msgstr "" "Merci aux personnes suivantes qui ont noté des erreurs ou qui ont fait des " -"suggestions sur cet article : Éric Araujo, Nicholas Bastin, Nick Coghlan, " +"suggestions sur cet article : Éric Araujo, Nicholas Bastin, Nick Coghlan, " "Marius Gedminas, Kent Johnson, Ken Krugler, Marc-André Lemburg, Martin von " "Löwis, Terry J. Reedy, Serhiy Storchaka, Eryk Sun, Chad Whitacre, Graham " "Wideman." @@ -1311,9 +1307,9 @@ msgstr "" #~ "value." #~ msgstr "" #~ "En 1968, l'*American Standard Code for Information Interchange*, mieux " -#~ "connu sous son acronyme *ASCII*, a été normalisé. L'ASCII définissait " -#~ "des codes numériques pour différents caractères, les valeurs numériques " -#~ "s'étendant de 0 à 127. Par exemple, la lettre minuscule « a » est " +#~ "connu sous son acronyme *ASCII*, a été normalisé. L'ASCII définissait des " +#~ "codes numériques pour différents caractères, les valeurs numériques " +#~ "s'étendant de 0 à 127. Par exemple, la lettre minuscule « a » est " #~ "assignée à 97 comme valeur de code." #~ msgid "" @@ -1326,8 +1322,8 @@ msgstr "" #~ "'coöperate'.)" #~ msgstr "" #~ "ASCII était une norme développée par les États-Unis, elle ne définissait " -#~ "donc que des caractères non accentués. Il y avait « e », mais pas « é » " -#~ "ou « Í ». Cela signifiait que les langues qui nécessitaient des " +#~ "donc que des caractères non accentués. Il y avait « e », mais pas « é » " +#~ "ou « Í ». Cela signifiait que les langues qui nécessitaient des " #~ "caractères accentués ne pouvaient pas être fidèlement représentées en " #~ "ASCII. (En fait, les accents manquants importaient pour l'anglais aussi, " #~ "qui contient des mots tels que « naïve » et « café », et certaines " @@ -1365,9 +1361,9 @@ msgstr "" #~ msgstr "" #~ "Dans les années 1980, presque tous les ordinateurs personnels étaient à 8 " #~ "bits, ce qui signifie que les octets pouvaient contenir des valeurs " -#~ "allant de 0 à 255. Les codes ASCII allaient seulement jusqu'à 127, alors " +#~ "allant de 0 à 255. Les codes ASCII allaient seulement jusqu'à 127, alors " #~ "certaines machines ont assigné les valeurs entre 128 et 255 à des " -#~ "caractères accentués. Différentes machines avaient des codes différents, " +#~ "caractères accentués. Différentes machines avaient des codes différents, " #~ "cependant, ce qui a conduit à des problèmes d'échange de fichiers. " #~ "Finalement, divers ensembles de valeurs couramment utilisés pour la gamme " #~ "128--255 ont émergé. Certains étaient de véritables normes, définies par " diff --git a/howto/urllib2.po b/howto/urllib2.po index 0713266635..42b8663b0e 100644 --- a/howto/urllib2.po +++ b/howto/urllib2.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,46 +14,47 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/howto/urllib2.rst:5 +#: howto/urllib2.rst:5 msgid "HOWTO Fetch Internet Resources Using The urllib Package" msgstr "" +"Guide pratique : récupérer des ressources web en utilisant le module *urllib*" -#: ../Doc/howto/urllib2.rst:0 +#: howto/urllib2.rst:0 msgid "Author" msgstr "Auteur" -#: ../Doc/howto/urllib2.rst:7 +#: howto/urllib2.rst:7 msgid "`Michael Foord `_" msgstr "" -#: ../Doc/howto/urllib2.rst:11 +#: howto/urllib2.rst:11 msgid "" "There is a French translation of an earlier revision of this HOWTO, " "available at `urllib2 - Le Manuel manquant `_." msgstr "" -#: ../Doc/howto/urllib2.rst:18 +#: howto/urllib2.rst:18 msgid "Introduction" msgstr "Introduction" -#: ../Doc/howto/urllib2.rst:22 +#: howto/urllib2.rst:22 msgid "" "You may also find useful the following article on fetching web resources " "with Python:" msgstr "" -#: ../Doc/howto/urllib2.rst:25 +#: howto/urllib2.rst:25 msgid "" "`Basic Authentication `_" msgstr "" -#: ../Doc/howto/urllib2.rst:27 +#: howto/urllib2.rst:27 msgid "A tutorial on *Basic Authentication*, with examples in Python." msgstr "" -#: ../Doc/howto/urllib2.rst:29 +#: howto/urllib2.rst:29 msgid "" "**urllib.request** is a Python module for fetching URLs (Uniform Resource " "Locators). It offers a very simple interface, in the form of the *urlopen* " @@ -63,7 +64,7 @@ msgid "" "These are provided by objects called handlers and openers." msgstr "" -#: ../Doc/howto/urllib2.rst:36 +#: howto/urllib2.rst:36 msgid "" "urllib.request supports fetching URLs for many \"URL schemes\" (identified " "by the string before the ``\":\"`` in URL - for example ``\"ftp\"`` is the " @@ -72,7 +73,7 @@ msgid "" "HTTP." msgstr "" -#: ../Doc/howto/urllib2.rst:41 +#: howto/urllib2.rst:41 msgid "" "For straightforward situations *urlopen* is very easy to use. But as soon as " "you encounter errors or non-trivial cases when opening HTTP URLs, you will " @@ -84,22 +85,22 @@ msgid "" "is supplementary to them." msgstr "" -#: ../Doc/howto/urllib2.rst:51 +#: howto/urllib2.rst:51 msgid "Fetching URLs" msgstr "" -#: ../Doc/howto/urllib2.rst:53 +#: howto/urllib2.rst:53 msgid "The simplest way to use urllib.request is as follows::" msgstr "" -#: ../Doc/howto/urllib2.rst:59 +#: howto/urllib2.rst:59 msgid "" "If you wish to retrieve a resource via URL and store it in a temporary " "location, you can do so via the :func:`shutil.copyfileobj` and :func:" "`tempfile.NamedTemporaryFile` functions::" msgstr "" -#: ../Doc/howto/urllib2.rst:74 +#: howto/urllib2.rst:74 msgid "" "Many uses of urllib will be that simple (note that instead of an 'http:' URL " "we could have used a URL starting with 'ftp:', 'file:', etc.). However, " @@ -107,7 +108,7 @@ msgid "" "concentrating on HTTP." msgstr "" -#: ../Doc/howto/urllib2.rst:79 +#: howto/urllib2.rst:79 msgid "" "HTTP is based on requests and responses - the client makes requests and " "servers send responses. urllib.request mirrors this with a ``Request`` " @@ -118,26 +119,26 @@ msgid "" "for example call ``.read()`` on the response::" msgstr "" -#: ../Doc/howto/urllib2.rst:93 +#: howto/urllib2.rst:93 msgid "" "Note that urllib.request makes use of the same Request interface to handle " "all URL schemes. For example, you can make an FTP request like so::" msgstr "" -#: ../Doc/howto/urllib2.rst:98 +#: howto/urllib2.rst:98 msgid "" "In the case of HTTP, there are two extra things that Request objects allow " "you to do: First, you can pass data to be sent to the server. Second, you " -"can pass extra information (\"metadata\") *about* the data or the about " -"request itself, to the server - this information is sent as HTTP \"headers" -"\". Let's look at each of these in turn." +"can pass extra information (\"metadata\") *about* the data or about the " +"request itself, to the server - this information is sent as HTTP " +"\"headers\". Let's look at each of these in turn." msgstr "" -#: ../Doc/howto/urllib2.rst:105 +#: howto/urllib2.rst:105 msgid "Data" msgstr "" -#: ../Doc/howto/urllib2.rst:107 +#: howto/urllib2.rst:107 msgid "" "Sometimes you want to send data to a URL (often the URL will refer to a CGI " "(Common Gateway Interface) script or other web application). With HTTP, this " @@ -150,14 +151,14 @@ msgid "" "function from the :mod:`urllib.parse` library. ::" msgstr "" -#: ../Doc/howto/urllib2.rst:131 +#: howto/urllib2.rst:131 msgid "" "Note that other encodings are sometimes required (e.g. for file upload from " "HTML forms - see `HTML Specification, Form Submission `_ for more details)." msgstr "" -#: ../Doc/howto/urllib2.rst:136 +#: howto/urllib2.rst:136 msgid "" "If you do not pass the ``data`` argument, urllib uses a **GET** request. One " "way in which GET and POST requests differ is that POST requests often have " @@ -170,27 +171,27 @@ msgid "" "be passed in an HTTP GET request by encoding it in the URL itself." msgstr "" -#: ../Doc/howto/urllib2.rst:146 +#: howto/urllib2.rst:146 msgid "This is done as follows::" msgstr "" -#: ../Doc/howto/urllib2.rst:161 +#: howto/urllib2.rst:161 msgid "" "Notice that the full URL is created by adding a ``?`` to the URL, followed " "by the encoded values." msgstr "" -#: ../Doc/howto/urllib2.rst:165 +#: howto/urllib2.rst:165 msgid "Headers" msgstr "" -#: ../Doc/howto/urllib2.rst:167 +#: howto/urllib2.rst:167 msgid "" "We'll discuss here one particular HTTP header, to illustrate how to add " "headers to your HTTP request." msgstr "" -#: ../Doc/howto/urllib2.rst:170 +#: howto/urllib2.rst:170 msgid "" "Some websites [#]_ dislike being browsed by programs, or send different " "versions to different browsers [#]_. By default urllib identifies itself as " @@ -203,39 +204,39 @@ msgid "" "Explorer [#]_. ::" msgstr "" -#: ../Doc/howto/urllib2.rst:197 +#: howto/urllib2.rst:197 msgid "" "The response also has two useful methods. See the section on `info and " "geturl`_ which comes after we have a look at what happens when things go " "wrong." msgstr "" -#: ../Doc/howto/urllib2.rst:202 +#: howto/urllib2.rst:202 msgid "Handling Exceptions" msgstr "Gestion des exceptions" -#: ../Doc/howto/urllib2.rst:204 +#: howto/urllib2.rst:204 msgid "" "*urlopen* raises :exc:`URLError` when it cannot handle a response (though as " "usual with Python APIs, built-in exceptions such as :exc:`ValueError`, :exc:" "`TypeError` etc. may also be raised)." msgstr "" -#: ../Doc/howto/urllib2.rst:208 +#: howto/urllib2.rst:208 msgid "" ":exc:`HTTPError` is the subclass of :exc:`URLError` raised in the specific " "case of HTTP URLs." msgstr "" -#: ../Doc/howto/urllib2.rst:211 +#: howto/urllib2.rst:211 msgid "The exception classes are exported from the :mod:`urllib.error` module." msgstr "" -#: ../Doc/howto/urllib2.rst:214 +#: howto/urllib2.rst:214 msgid "URLError" msgstr "" -#: ../Doc/howto/urllib2.rst:216 +#: howto/urllib2.rst:216 msgid "" "Often, URLError is raised because there is no network connection (no route " "to the specified server), or the specified server doesn't exist. In this " @@ -243,15 +244,15 @@ msgid "" "containing an error code and a text error message." msgstr "" -#: ../Doc/howto/urllib2.rst:221 +#: howto/urllib2.rst:221 msgid "e.g. ::" msgstr "" -#: ../Doc/howto/urllib2.rst:232 +#: howto/urllib2.rst:232 msgid "HTTPError" msgstr "" -#: ../Doc/howto/urllib2.rst:234 +#: howto/urllib2.rst:234 msgid "" "Every HTTP response from the server contains a numeric \"status code\". " "Sometimes the status code indicates that the server is unable to fulfil the " @@ -263,36 +264,36 @@ msgid "" "'401' (authentication required)." msgstr "" -#: ../Doc/howto/urllib2.rst:242 +#: howto/urllib2.rst:242 msgid "" "See section 10 of :rfc:`2616` for a reference on all the HTTP error codes." msgstr "" -#: ../Doc/howto/urllib2.rst:244 +#: howto/urllib2.rst:244 msgid "" "The :exc:`HTTPError` instance raised will have an integer 'code' attribute, " "which corresponds to the error sent by the server." msgstr "" -#: ../Doc/howto/urllib2.rst:248 +#: howto/urllib2.rst:248 msgid "Error Codes" msgstr "" -#: ../Doc/howto/urllib2.rst:250 +#: howto/urllib2.rst:250 msgid "" "Because the default handlers handle redirects (codes in the 300 range), and " "codes in the 100--299 range indicate success, you will usually only see " "error codes in the 400--599 range." msgstr "" -#: ../Doc/howto/urllib2.rst:254 +#: howto/urllib2.rst:254 msgid "" ":attr:`http.server.BaseHTTPRequestHandler.responses` is a useful dictionary " "of response codes in that shows all the response codes used by :rfc:`2616`. " "The dictionary is reproduced here for convenience ::" msgstr "" -#: ../Doc/howto/urllib2.rst:326 +#: howto/urllib2.rst:326 msgid "" "When an error is raised the server responds by returning an HTTP error code " "*and* an error page. You can use the :exc:`HTTPError` instance as a response " @@ -301,42 +302,42 @@ msgid "" "module::" msgstr "" -#: ../Doc/howto/urllib2.rst:346 +#: howto/urllib2.rst:346 msgid "Wrapping it Up" msgstr "" -#: ../Doc/howto/urllib2.rst:348 +#: howto/urllib2.rst:348 msgid "" "So if you want to be prepared for :exc:`HTTPError` *or* :exc:`URLError` " "there are two basic approaches. I prefer the second approach." msgstr "" -#: ../Doc/howto/urllib2.rst:352 +#: howto/urllib2.rst:352 msgid "Number 1" msgstr "" -#: ../Doc/howto/urllib2.rst:374 +#: howto/urllib2.rst:374 msgid "" "The ``except HTTPError`` *must* come first, otherwise ``except URLError`` " "will *also* catch an :exc:`HTTPError`." msgstr "" -#: ../Doc/howto/urllib2.rst:378 +#: howto/urllib2.rst:378 msgid "Number 2" msgstr "" -#: ../Doc/howto/urllib2.rst:399 +#: howto/urllib2.rst:399 msgid "info and geturl" msgstr "" -#: ../Doc/howto/urllib2.rst:401 +#: howto/urllib2.rst:401 msgid "" "The response returned by urlopen (or the :exc:`HTTPError` instance) has two " "useful methods :meth:`info` and :meth:`geturl` and is defined in the module :" "mod:`urllib.response`.." msgstr "" -#: ../Doc/howto/urllib2.rst:405 +#: howto/urllib2.rst:405 msgid "" "**geturl** - this returns the real URL of the page fetched. This is useful " "because ``urlopen`` (or the opener object used) may have followed a " @@ -344,14 +345,14 @@ msgid "" "requested." msgstr "" -#: ../Doc/howto/urllib2.rst:409 +#: howto/urllib2.rst:409 msgid "" "**info** - this returns a dictionary-like object that describes the page " "fetched, particularly the headers sent by the server. It is currently an :" "class:`http.client.HTTPMessage` instance." msgstr "" -#: ../Doc/howto/urllib2.rst:413 +#: howto/urllib2.rst:413 msgid "" "Typical headers include 'Content-length', 'Content-type', and so on. See the " "`Quick Reference to HTTP Headers `_ for a " @@ -359,11 +360,11 @@ msgid "" "use." msgstr "" -#: ../Doc/howto/urllib2.rst:420 +#: howto/urllib2.rst:420 msgid "Openers and Handlers" msgstr "" -#: ../Doc/howto/urllib2.rst:422 +#: howto/urllib2.rst:422 msgid "" "When you fetch a URL you use an opener (an instance of the perhaps " "confusingly-named :class:`urllib.request.OpenerDirector`). Normally we have " @@ -374,20 +375,20 @@ msgid "" "HTTP redirections or HTTP cookies." msgstr "" -#: ../Doc/howto/urllib2.rst:430 +#: howto/urllib2.rst:430 msgid "" "You will want to create openers if you want to fetch URLs with specific " "handlers installed, for example to get an opener that handles cookies, or to " "get an opener that does not handle redirections." msgstr "" -#: ../Doc/howto/urllib2.rst:434 +#: howto/urllib2.rst:434 msgid "" "To create an opener, instantiate an ``OpenerDirector``, and then call ``." "add_handler(some_handler_instance)`` repeatedly." msgstr "" -#: ../Doc/howto/urllib2.rst:437 +#: howto/urllib2.rst:437 msgid "" "Alternatively, you can use ``build_opener``, which is a convenience function " "for creating opener objects with a single function call. ``build_opener`` " @@ -395,31 +396,31 @@ msgid "" "or override the default handlers." msgstr "" -#: ../Doc/howto/urllib2.rst:442 +#: howto/urllib2.rst:442 msgid "" "Other sorts of handlers you might want to can handle proxies, " "authentication, and other common but slightly specialised situations." msgstr "" -#: ../Doc/howto/urllib2.rst:445 +#: howto/urllib2.rst:445 msgid "" "``install_opener`` can be used to make an ``opener`` object the (global) " "default opener. This means that calls to ``urlopen`` will use the opener you " "have installed." msgstr "" -#: ../Doc/howto/urllib2.rst:449 +#: howto/urllib2.rst:449 msgid "" "Opener objects have an ``open`` method, which can be called directly to " "fetch urls in the same way as the ``urlopen`` function: there's no need to " "call ``install_opener``, except as a convenience." msgstr "" -#: ../Doc/howto/urllib2.rst:455 +#: howto/urllib2.rst:455 msgid "Basic Authentication" msgstr "" -#: ../Doc/howto/urllib2.rst:457 +#: howto/urllib2.rst:457 msgid "" "To illustrate creating and installing a handler we will use the " "``HTTPBasicAuthHandler``. For a more detailed discussion of this subject -- " @@ -428,7 +429,7 @@ msgid "" "authentication.shtml>`_." msgstr "" -#: ../Doc/howto/urllib2.rst:463 +#: howto/urllib2.rst:463 msgid "" "When authentication is required, the server sends a header (as well as the " "401 error code) requesting authentication. This specifies the " @@ -436,11 +437,11 @@ msgid "" "Authenticate: SCHEME realm=\"REALM\"``." msgstr "" -#: ../Doc/howto/urllib2.rst:468 +#: howto/urllib2.rst:468 msgid "e.g." msgstr "" -#: ../Doc/howto/urllib2.rst:475 +#: howto/urllib2.rst:475 msgid "" "The client should then retry the request with the appropriate name and " "password for the realm included as a header in the request. This is 'basic " @@ -448,7 +449,7 @@ msgid "" "of ``HTTPBasicAuthHandler`` and an opener to use this handler." msgstr "" -#: ../Doc/howto/urllib2.rst:480 +#: howto/urllib2.rst:480 msgid "" "The ``HTTPBasicAuthHandler`` uses an object called a password manager to " "handle the mapping of URLs and realms to passwords and usernames. If you " @@ -461,13 +462,13 @@ msgid "" "by providing ``None`` as the realm argument to the ``add_password`` method." msgstr "" -#: ../Doc/howto/urllib2.rst:490 +#: howto/urllib2.rst:490 msgid "" "The top-level URL is the first URL that requires authentication. URLs " "\"deeper\" than the URL you pass to .add_password() will also match. ::" msgstr "" -#: ../Doc/howto/urllib2.rst:515 +#: howto/urllib2.rst:515 msgid "" "In the above example we only supplied our ``HTTPBasicAuthHandler`` to " "``build_opener``. By default openers have the handlers for normal situations " @@ -477,22 +478,22 @@ msgid "" "``FileHandler``, ``DataHandler``, ``HTTPErrorProcessor``." msgstr "" -#: ../Doc/howto/urllib2.rst:522 +#: howto/urllib2.rst:522 msgid "" "``top_level_url`` is in fact *either* a full URL (including the 'http:' " -"scheme component and the hostname and optionally the port number) e.g. ``" -"\"http://example.com/\"`` *or* an \"authority\" (i.e. the hostname, " -"optionally including the port number) e.g. ``\"example.com\"`` or ``" -"\"example.com:8080\"`` (the latter example includes a port number). The " +"scheme component and the hostname and optionally the port number) e.g. " +"``\"http://example.com/\"`` *or* an \"authority\" (i.e. the hostname, " +"optionally including the port number) e.g. ``\"example.com\"`` or " +"``\"example.com:8080\"`` (the latter example includes a port number). The " "authority, if present, must NOT contain the \"userinfo\" component - for " "example ``\"joe:password@example.com\"`` is not correct." msgstr "" -#: ../Doc/howto/urllib2.rst:532 +#: howto/urllib2.rst:532 msgid "Proxies" msgstr "" -#: ../Doc/howto/urllib2.rst:534 +#: howto/urllib2.rst:534 msgid "" "**urllib** will auto-detect your proxy settings and use those. This is " "through the ``ProxyHandler``, which is part of the normal handler chain when " @@ -502,30 +503,30 @@ msgid "" "similar steps to setting up a `Basic Authentication`_ handler: ::" msgstr "" -#: ../Doc/howto/urllib2.rst:547 +#: howto/urllib2.rst:547 msgid "" "Currently ``urllib.request`` *does not* support fetching of ``https`` " "locations through a proxy. However, this can be enabled by extending urllib." "request as shown in the recipe [#]_." msgstr "" -#: ../Doc/howto/urllib2.rst:553 +#: howto/urllib2.rst:553 msgid "" "``HTTP_PROXY`` will be ignored if a variable ``REQUEST_METHOD`` is set; see " "the documentation on :func:`~urllib.request.getproxies`." msgstr "" -#: ../Doc/howto/urllib2.rst:558 +#: howto/urllib2.rst:558 msgid "Sockets and Layers" msgstr "" -#: ../Doc/howto/urllib2.rst:560 +#: howto/urllib2.rst:560 msgid "" "The Python support for fetching resources from the web is layered. urllib " "uses the :mod:`http.client` library, which in turn uses the socket library." msgstr "" -#: ../Doc/howto/urllib2.rst:563 +#: howto/urllib2.rst:563 msgid "" "As of Python 2.3 you can specify how long a socket should wait for a " "response before timing out. This can be useful in applications which have to " @@ -535,38 +536,38 @@ msgid "" "sockets using ::" msgstr "" -#: ../Doc/howto/urllib2.rst:586 +#: howto/urllib2.rst:586 msgid "Footnotes" msgstr "Notes" -#: ../Doc/howto/urllib2.rst:588 +#: howto/urllib2.rst:588 msgid "This document was reviewed and revised by John Lee." msgstr "" -#: ../Doc/howto/urllib2.rst:590 +#: howto/urllib2.rst:590 msgid "Google for example." msgstr "" -#: ../Doc/howto/urllib2.rst:591 +#: howto/urllib2.rst:591 msgid "" "Browser sniffing is a very bad practice for website design - building sites " "using web standards is much more sensible. Unfortunately a lot of sites " "still send different versions to different browsers." msgstr "" -#: ../Doc/howto/urllib2.rst:594 +#: howto/urllib2.rst:594 msgid "" "The user agent for MSIE 6 is *'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT " "5.1; SV1; .NET CLR 1.1.4322)'*" msgstr "" -#: ../Doc/howto/urllib2.rst:596 +#: howto/urllib2.rst:596 msgid "" "For details of more HTTP request headers, see `Quick Reference to HTTP " "Headers`_." msgstr "" -#: ../Doc/howto/urllib2.rst:598 +#: howto/urllib2.rst:598 msgid "" "In my case I have to use a proxy to access the internet at work. If you " "attempt to fetch *localhost* URLs through this proxy it blocks them. IE is " @@ -574,7 +575,7 @@ msgid "" "with a localhost server, I have to prevent urllib from using the proxy." msgstr "" -#: ../Doc/howto/urllib2.rst:603 +#: howto/urllib2.rst:603 msgid "" "urllib opener for SSL proxy (CONNECT method): `ASPN Cookbook Recipe `_." diff --git a/install/index.po b/install/index.po index 502d7cf6f4..68759187d1 100644 --- a/install/index.po +++ b/install/index.po @@ -5,46 +5,52 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: 2018-11-16 09:10+0100\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" +"PO-Revision-Date: 2020-04-27 22:25+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 1.8.11\n" +"X-Generator: Poedit 2.2.3\n" -#: ../Doc/install/index.rst:7 +#: install/index.rst:7 msgid "Installing Python Modules (Legacy version)" -msgstr "installation des modules python (Version historique)" +msgstr "Installation des modules python (Version historique)" -#: ../Doc/install/index.rst:0 +#: install/index.rst:0 msgid "Author" msgstr "Auteur" -#: ../Doc/install/index.rst:9 +#: install/index.rst:9 msgid "Greg Ward" msgstr "Greg Ward" -#: ../Doc/install/index.rst:16 +#: install/index.rst:16 msgid ":ref:`installing-index`" msgstr ":ref:`installing-index`" -#: ../Doc/install/index.rst:16 +#: install/index.rst:16 msgid "" "The up to date module installation documentation. For regular Python usage, " "you almost certainly want that document rather than this one." msgstr "" +"le document à jour pour l'installation des modules. Pour une utilisation " +"normale de Python, c'est ce document que vous cherchez plutôt que celui-ci." -#: ../Doc/distutils/_setuptools_disclaimer.rst:3 +#: distutils/_setuptools_disclaimer.rst:3 msgid "" "This document is being retained solely until the ``setuptools`` " "documentation at https://setuptools.readthedocs.io/en/latest/setuptools.html " "independently covers all of the relevant information currently included here." msgstr "" +"Cette page est conservée uniquement jusqu'à ce que la documentation " +"``setuptool`` sur https://setuptools.readthedocs.io/en/latest/setuptools." +"html couvre de manière indépendante toutes les informations pertinentes " +"actuellement incluses ici." -#: ../Doc/install/index.rst:23 +#: install/index.rst:23 msgid "" "This guide only covers the basic tools for building and distributing " "extensions that are provided as part of this version of Python. Third party " @@ -59,11 +65,11 @@ msgstr "" "recommendations/>`__ dans le *Python Packaging User Guide* pour plus " "d'informations." -#: ../Doc/install/index.rst:34 +#: install/index.rst:34 msgid "Introduction" msgstr "Introduction" -#: ../Doc/install/index.rst:36 +#: install/index.rst:36 msgid "" "In Python 2.0, the ``distutils`` API was first added to the standard " "library. This provided Linux distro maintainers with a standard way of " @@ -71,8 +77,13 @@ msgid "" "administrators with a standard way of installing them directly onto target " "systems." msgstr "" +"Dans Python 2.0, l'API ``distutils`` a d'abord été ajoutée à la bibliothèque " +"standard. Elle a donné aux mainteneurs de distributions Linux une façon " +"standard d'intégrer des projets Python dans les paquets Linux, et aux " +"administrateurs système une façon standard de les installer directement sur " +"les systèmes cibles." -#: ../Doc/install/index.rst:41 +#: install/index.rst:41 msgid "" "In the many years since Python 2.0 was released, tightly coupling the build " "system and package installer to the language runtime release cycle has " @@ -80,23 +91,33 @@ msgid "" "the ``pip`` package installer and the ``setuptools`` build system, rather " "than using ``distutils`` directly." msgstr "" +"À l'époque où Python 2.0 a été publié, le fort couplage entre le système " +"d'intégration et le gestionnaire de paquets avec le cycle de publication du " +"langage était problématique, et il est désormais recommandé d'utiliser le " +"gestionnaire de paquets ``pip`` ainsi que le système d'intégration " +"``setuptools`` plutôt que d'utiliser ``distutils`` directement." -#: ../Doc/install/index.rst:47 +#: install/index.rst:47 msgid "" "See :ref:`installing-index` and :ref:`distributing-index` for more details." msgstr "" +"Voir :ref:`installing-index` et :ref:`distributing-index` pour plus de " +"détails." -#: ../Doc/install/index.rst:49 +#: install/index.rst:49 msgid "" "This legacy documentation is being retained only until we're confident that " "the ``setuptools`` documentation covers everything needed." msgstr "" +"Cette ancienne documentation sera conservée jusqu'à ce que nous soyons " +"certains que la documentation sur ``setuptools`` couvre tout ce qui est " +"nécessaire." -#: ../Doc/install/index.rst:55 +#: install/index.rst:55 msgid "Distutils based source distributions" -msgstr "" +msgstr "Distributions basées sur *distutils*" -#: ../Doc/install/index.rst:57 +#: install/index.rst:57 msgid "" "If you download a module source distribution, you can tell pretty quickly if " "it was packaged and distributed in the standard way, i.e. using the " @@ -111,23 +132,25 @@ msgid "" msgstr "" "Si vous téléchargez une distribution source du module, vous pouvez dire " "assez rapidement s'il a été empaqueté et distribué de la façon standard, " -"c'est à dire en utilisant Distutils. Premièrement, le nom et le numéro de " -"version de la distribution seront affichés en bonne place dans le nom de " +"c'est-à-dire en utilisant Distutils. Premièrement, le nom et le numéro de " +"version de la distribution sont affichés en bonne place dans le nom de " "l'archive téléchargée, par exemple :file:`foo-1.0.tar.gz` ou :file:" -"`widget-0.9.7.zip`. Ensuite, l'archive va se décompresser dans un répertoire " -"du même nom : :file:`foo-1.0` ou :file:`widget-0.9.7`. En outre, la " -"distribution va contenir un script d'installation :file:`setup.py` et un " +"`widget-0.9.7.zip`. Ensuite, l'archive se décompresse dans un répertoire du " +"même nom : :file:`foo-1.0` ou :file:`widget-0.9.7`. En outre, la " +"distribution contient un script d'installation :file:`setup.py` et un " "fichier nommé :file:`README.txt` ou éventuellement juste :file:`README`, qui " "doit expliquer que la construction et l'installation de la distribution du " "module se fait simplement en exécutant ceci ::" -#: ../Doc/install/index.rst:70 +#: install/index.rst:70 msgid "" "For Windows, this command should be run from a command prompt window (:" "menuselection:`Start --> Accessories`)::" msgstr "" +"Sous Windows, cette commande doit être lancée depuis une invite de commande " +"(:menuselection:`Démarrer --> Accessoires`) ::" -#: ../Doc/install/index.rst:75 +#: install/index.rst:75 msgid "" "If all these things are true, then you already know how to build and install " "the modules you've just downloaded: Run the command above. Unless you need " @@ -136,31 +159,31 @@ msgid "" "you need to get out of this manual." msgstr "" "Si toutes ces choses sont vérifiées, alors vous savez déjà comment " -"construire et installer le module que vous venez de télécharger : en " +"construire et installer le module que vous venez de télécharger : en " "exécutant la commande ci-dessus. Sauf si vous avez besoin d'installer les " "choses d'une manière non standard ou de personnaliser le processus de " "construction, vous n'avez pas vraiment besoin de ce manuel. Ou plutôt, la " -"commande ci-dessus est tout ce dont vous avez besoin de sortir de ce manuel." +"commande ci-dessus est tout ce dont vous avez besoin de retenir de ce manuel." -#: ../Doc/install/index.rst:85 +#: install/index.rst:85 msgid "Standard Build and Install" msgstr "Construction standard et installation" -#: ../Doc/install/index.rst:87 +#: install/index.rst:87 msgid "" "As described in section :ref:`inst-new-standard`, building and installing a " "module distribution using the Distutils is usually one simple command to run " "from a terminal::" msgstr "" -"Comme décrit dans la section :ref:`inst-new-standard`, la construction et " -"l'installation d'une distribution d'un module en utilisant Distutils est " -"habituellement fait avec la commande dans un terminal ::" +"Comme décrit dans la section :ref:`inst-new-standard`, construire et " +"installer une distribution de modules en utilisant les Distutils consiste " +"généralement à exécuter une simple commande dans un terminal ::" -#: ../Doc/install/index.rst:97 +#: install/index.rst:97 msgid "Platform variations" msgstr "Différences selon les plateformes" -#: ../Doc/install/index.rst:99 +#: install/index.rst:99 msgid "" "You should always run the setup command from the distribution root " "directory, i.e. the top-level subdirectory that the module source " @@ -169,13 +192,13 @@ msgid "" "thing to do is::" msgstr "" "Vous devez toujours exécuter la commande *setup* à partir du répertoire " -"racine de la distribution, à savoir le sous-répertoire de niveau supérieur à " -"celui où se sont décompressées les sources de la distribution du module. Par " -"exemple, si vous venez de télécharger les sources d'une distribution du " -"module :file:`foo-1.0.tar.gz` sous un système UNIX, la méthode normale " -"consiste à faire ::" +"racine de la distribution, à savoir le sous-répertoire de plus haut niveau " +"dans l'arborescence où se sont décompressées les sources de la distribution " +"du module. Par exemple, si vous venez de télécharger les sources d'une " +"distribution du module :file:`foo-1.0.tar.gz` sous un système UNIX, la " +"méthode normale consiste à faire ::" -#: ../Doc/install/index.rst:108 +#: install/index.rst:108 msgid "" "On Windows, you'd probably download :file:`foo-1.0.zip`. If you downloaded " "the archive file to :file:`C:\\\\Temp`, then it would unpack into :file:`C:\\" @@ -186,17 +209,17 @@ msgid "" msgstr "" "Sous Windows, vous avez probablement téléchargé :file:`foo-1.0.zip`. Si vous " "avez téléchargé le fichier d'archive dans :file:`C:\\\\Temp`, il se " -"décompressera alors dans :file:`C:\\\\Temp\\\\foo-1.0` ; vous pouvez " -"utiliser soit un manipulateur d'archive avec une interface graphique (comme " -"WinZip) soit un outil de ligne de commande (telles que :program:`unzip` ou :" -"program:`pkunzip`) pour décompresser l'archive. Ensuite, ouvrez une fenêtre " -"d'invite de commandes et exécutez ::" +"décompressera alors dans :file:`C:\\\\Temp\\\\foo-1.0` ; vous pouvez " +"utiliser soit un gestionnaire d'archives graphique (comme WinZip), soit un " +"outil de ligne de commande (tels que :program:`unzip` ou :program:`pkunzip`) " +"pour décompresser l'archive. Ensuite, ouvrez une fenêtre d'invite de " +"commandes et exécutez ::" -#: ../Doc/install/index.rst:122 +#: install/index.rst:122 msgid "Splitting the job up" msgstr "Fractionnement du travail" -#: ../Doc/install/index.rst:124 +#: install/index.rst:124 msgid "" "Running ``setup.py install`` builds and installs all modules in one run. If " "you prefer to work incrementally---especially useful if you want to " @@ -208,17 +231,17 @@ msgid "" "privileges)." msgstr "" "Exécuter ``setup.py install`` construit et installe tous les modules en un " -"seul coup. Si vous préférez travailler progressivement -- ce qui est " +"seul coup. Si vous préférez travailler progressivement — ce qui est " "particulièrement utile si vous souhaitez personnaliser le processus de " -"construction, ou si les choses vont mal -- vous pouvez utiliser le script de " +"construction ou si les choses vont mal — vous pouvez utiliser le script de " "configuration pour faire une chose à la fois. Cela est particulièrement " "utile lorsque la construction et l'installation doit être faite par " -"différents utilisateurs -- par exemple, vous pouvez vouloir construire une " +"différents utilisateurs — par exemple, vous pouvez vouloir construire une " "distribution d'un module et la transférer à un administrateur système pour " "l'installation (ou le faire vous-même, avec les privilèges de super-" "utilisateur)." -#: ../Doc/install/index.rst:132 +#: install/index.rst:132 msgid "" "For example, you can build everything in one step, and then install " "everything in a second step, by invoking the setup script twice::" @@ -227,7 +250,7 @@ msgstr "" "installer le tout dans une deuxième étape, en invoquant le script " "d'installation deux fois ::" -#: ../Doc/install/index.rst:138 +#: install/index.rst:138 msgid "" "If you do this, you will notice that running the :command:`install` command " "first runs the :command:`build` command, which---in this case---quickly " @@ -239,25 +262,25 @@ msgstr "" "cas, s'aperçoit vite qu'il n'a rien à faire, puisque tout dans le dossier :" "file:`build` est à jour." -#: ../Doc/install/index.rst:143 +#: install/index.rst:143 msgid "" "You may not need this ability to break things down often if all you do is " "install modules downloaded off the 'net, but it's very handy for more " "advanced tasks. If you get into distributing your own Python modules and " "extensions, you'll run lots of individual Distutils commands on their own." msgstr "" -"Il se peut que vous n'ayez pas souvent besoin de cette capacité à découper " -"les étapes si tout ce que vous faite est d'installer les modules téléchargés " -"sur le Net, mais c'est très pratique pour des tâches plus avancées. Si vous " -"en venez à distribuer vos propres modules et extensions Python, vous allez " -"exécuter beaucoup de commandes individuelles de Distutils, indépendamment " -"les unes des autres." +"Il se peut que vous n'ayez pas souvent besoin de cette capacité à séparer " +"les étapes si tout ce que vous faites est d'installer les modules " +"téléchargés sur le Net, mais c'est très pratique pour des tâches plus " +"avancées. Si vous en venez à distribuer vos propres modules et extensions " +"Python, vous allez exécuter beaucoup de commandes individuelles de " +"Distutils, indépendamment les unes des autres." -#: ../Doc/install/index.rst:152 +#: install/index.rst:152 msgid "How building works" msgstr "Comment fonctionne une construction" -#: ../Doc/install/index.rst:154 +#: install/index.rst:154 msgid "" "As implied above, the :command:`build` command is responsible for putting " "the files to install into a *build directory*. By default, this is :file:" @@ -267,28 +290,28 @@ msgid "" msgstr "" "Comme sous-entendu ci-dessus, la commande :command:`build` est chargée de " "mettre les fichiers à installer dans un *répertoire de travail*. Par défaut, " -"c'est :file:`build` à la racine de la distribution ; si vous êtes très " +"c'est :file:`build` à la racine de la distribution ; si vous êtes très " "préoccupés par la vitesse, ou si vous voulez conserver l'arborescence des " "sources d'origine, vous pouvez changer le répertoire de construction avec " "l'option :option:`!--build-base`. Par exemple ::" -#: ../Doc/install/index.rst:162 +#: install/index.rst:162 msgid "" "(Or you could do this permanently with a directive in your system or " "personal Distutils configuration file; see section :ref:`inst-config-" "files`.) Normally, this isn't necessary." msgstr "" "(Ou vous pourriez le faire de façon permanente avec une directive dans votre " -"système ou dans le fichier de configuration personnelle de Distutils ; voir " +"système ou dans le fichier de configuration personnelle de Distutils ; voir " "la section :ref:`inst-config-files`.) Normalement, ce n'est pas nécessaire." -#: ../Doc/install/index.rst:166 +#: install/index.rst:166 msgid "The default layout for the build tree is as follows::" msgstr "" -"La mise en page par défaut pour l'arbre de compilation se présente comme " +"L'arborescence par défaut produite par la compilation se présente comme " "suit ::" -#: ../Doc/install/index.rst:173 +#: install/index.rst:173 msgid "" "where ```` expands to a brief description of the current OS/hardware " "platform and Python version. The first form, with just a :file:`lib` " @@ -303,17 +326,18 @@ msgid "" msgstr "" "où ```` représente une brève description de l'actuel système " "d'exploitation / plateforme matérielle et la version Python. La première " -"forme, avec juste un dossier :file:`lib` est utilisé pour les «distributions " -"de modules purs\" -- c'est-à-dire des distributions de module qui ne " -"incorporent que des modules en Python. Si un module de la distribution " +"forme, avec juste un dossier :file:`lib` est utilisée pour les " +"« distributions de modules purs » — c'est-à-dire des distributions de module " +"qui n'incorporent que des modules en Python. Si un module de la distribution " "contient au moins une extension (modules écrits en C/C++), alors il faut " "utiliser la deuxième forme, avec deux dossiers ````. Dans ce cas, le " "répertoire :file:`temp.{plat}` contient les fichiers temporaires générés par " -"le processus de compilation et de lien qui ne seront pas installés. Dans les " -"deux cas, le dossier :file:`lib` (ou :file:`lib.{plat}`) contient tous les " -"modules Python (Python pur et extensions) qui seront installés." +"le processus de compilation et de génération de liens (ils ne seront pas " +"installés). Dans les deux cas, le dossier :file:`lib` (ou :file:`lib.{plat}" +"`) contient tous les modules Python (Python pur et extensions) qui seront " +"installés." -#: ../Doc/install/index.rst:183 +#: install/index.rst:183 msgid "" "In the future, more directories will be added to handle Python scripts, " "documentation, binary executables, and whatever else is needed to handle the " @@ -324,11 +348,11 @@ msgstr "" "nécessaire pour gérer le travail de l'installation de modules et " "d'applications Python." -#: ../Doc/install/index.rst:191 +#: install/index.rst:191 msgid "How installation works" msgstr "Comment fonctionne l'installation" -#: ../Doc/install/index.rst:193 +#: install/index.rst:193 msgid "" "After the :command:`build` command runs (whether you run it explicitly, or " "the :command:`install` command does it for you), the work of the :command:" @@ -336,14 +360,14 @@ msgid "" "under :file:`build/lib` (or :file:`build/lib.{plat}`) to your chosen " "installation directory." msgstr "" -"Après l'exécution de la commande :command:`build` (que vous l'ayez exécutez " -"explicitement ou que la commande :command:`install` l'ai fait pour vous), le " -"travail de la commande :command:`install` est relativement simple : tout ce " -"qu'il a à faire est de copier tout ce qui est sous :file:`build/lib` (ou :" +"Après l'exécution de la commande :command:`build` (que vous l'ayez exécutée " +"explicitement ou que la commande :command:`install` l'ait fait pour vous), " +"le travail de la commande :command:`install` est relativement simple : tout " +"ce qu'il a à faire est de copier tout ce qui est sous :file:`build/lib` (ou :" "file:`build/lib.{plat}`) dans le répertoire que vous avez choisi pour " "l'installation." -#: ../Doc/install/index.rst:199 +#: install/index.rst:199 msgid "" "If you don't choose an installation directory---i.e., if you just run " "``setup.py install``\\ ---then the :command:`install` command installs to " @@ -353,78 +377,76 @@ msgid "" "distribution being installed is pure Python or contains extensions (\"non-" "pure\"):" msgstr "" -"Si vous ne choisissez aucun répertoire d'installation -- c'est-à-dire, si " -"vous lancez simplement ``setup.py install``\\ -- alors la commande :command:" -"`install` installe à l'emplacement standard pour les modules tiers de " -"Python. Cet emplacement varie selon la plateforme et selon la façon dont " -"vous avez construit et/ou installés Python lui-même. Sous UNIX (et Mac OS X, " -"qui est également basé sur Unix), il dépend aussi de savoir si le module de " -"la distribution en cours d'installation est en pur Python ou contient des " -"extensions (\"non-pur\"):" +"Si vous ne choisissez aucun répertoire d'installation — c'est-à-dire, si " +"vous lancez simplement ``setup.py install`` — alors la commande :command:" +"`install` installe le module dans l'emplacement standard pour les modules " +"tiers de Python. Cet emplacement varie selon la plateforme et selon la façon " +"dont vous avez construit ou installé Python lui-même. Sous UNIX (et Mac OS " +"X, qui est également basé sur Unix), cela dépend aussi du module de la " +"distribution en cours d'installation, suivant qu'il est en pur Python ou " +"s'il contient des extensions (« non-pur ») :" -#: ../Doc/install/index.rst:209 +#: install/index.rst:209 msgid "Platform" msgstr "Plateforme" -#: ../Doc/install/index.rst:209 +#: install/index.rst:209 msgid "Standard installation location" msgstr "Emplacement standard de l'installation" -#: ../Doc/install/index.rst:209 +#: install/index.rst:209 msgid "Default value" msgstr "Valeur par défaut" -#: ../Doc/install/index.rst:209 ../Doc/install/index.rst:735 -#: ../Doc/install/index.rst:747 +#: install/index.rst:735 install/index.rst:747 msgid "Notes" msgstr "Notes" -#: ../Doc/install/index.rst:211 +#: install/index.rst:211 msgid "Unix (pure)" msgstr "UNIX (pur)" -#: ../Doc/install/index.rst:211 ../Doc/install/index.rst:424 +#: install/index.rst:424 msgid ":file:`{prefix}/lib/python{X.Y}/site-packages`" msgstr ":file:`{prefix}/lib/python{X.Y}/site-packages`" -#: ../Doc/install/index.rst:211 ../Doc/install/index.rst:213 +#: install/index.rst:213 msgid ":file:`/usr/local/lib/python{X.Y}/site-packages`" msgstr ":file:`/usr/local/lib/python{X.Y}/site-packages`" -#: ../Doc/install/index.rst:211 ../Doc/install/index.rst:213 -#: ../Doc/install/index.rst:737 +#: install/index.rst:213 install/index.rst:737 msgid "\\(1)" msgstr "\\(1)" -#: ../Doc/install/index.rst:213 +#: install/index.rst:213 msgid "Unix (non-pure)" msgstr "UNIX (non-pur)" -#: ../Doc/install/index.rst:213 ../Doc/install/index.rst:425 +#: install/index.rst:425 msgid ":file:`{exec-prefix}/lib/python{X.Y}/site-packages`" msgstr ":file:`{exec-prefix}/lib/python{X.Y}/site-packages`" -#: ../Doc/install/index.rst:215 +#: install/index.rst:215 msgid "Windows" msgstr "Windows" -#: ../Doc/install/index.rst:215 ../Doc/install/index.rst:476 +#: install/index.rst:476 msgid ":file:`{prefix}\\\\Lib\\\\site-packages`" msgstr ":file:`{prefix}\\\\Lib\\\\site-packages`" -#: ../Doc/install/index.rst:215 +#: install/index.rst:215 msgid ":file:`C:\\\\Python{XY}\\\\Lib\\\\site-packages`" msgstr ":file:`C:\\\\Python{XY}\\\\Lib\\\\site-packages`" -#: ../Doc/install/index.rst:215 ../Doc/install/index.rst:739 +#: install/index.rst:739 msgid "\\(2)" msgstr "\\(2)" -#: ../Doc/install/index.rst:218 ../Doc/install/index.rst:759 +#: install/index.rst:759 msgid "Notes:" msgstr "Notes :" -#: ../Doc/install/index.rst:221 +#: install/index.rst:221 msgid "" "Most Linux distributions include Python as a standard part of the system, " "so :file:`{prefix}` and :file:`{exec-prefix}` are usually both :file:`/usr` " @@ -436,17 +458,17 @@ msgstr "" "du système, donc :file:`{prefix}` et :file:`{exec-prefix}` sont généralement " "tous les deux :file:`/usr` sous Linux. Si vous construisez vous-même Python " "sous Linux (ou tout autre système de type Unix), les valeurs par défaut de :" -"file:`{prefix}` et :file:`{exec-prefix}` sont souvent :file:`/usr/locale/`." +"file:`{prefix}` et :file:`{exec-prefix}` sont souvent :file:`/usr/local`." -#: ../Doc/install/index.rst:227 +#: install/index.rst:227 msgid "" -"The default installation directory on Windows was :file:`C:\\\\Program Files" -"\\\\Python` under Python 1.6a1, 1.5.2, and earlier." +"The default installation directory on Windows was :file:`C:\\\\Program " +"Files\\\\Python` under Python 1.6a1, 1.5.2, and earlier." msgstr "" -"Sous Windows, le dossier d'installation par défaut était : :file:`C:\\" +"Sous Windows, le dossier d'installation par défaut était : :file:`C:\\" "\\Program Files\\\\Python` sous Python 1.6a1, 1.5.2 et avant." -#: ../Doc/install/index.rst:230 +#: install/index.rst:230 msgid "" ":file:`{prefix}` and :file:`{exec-prefix}` stand for the directories that " "Python is installed to, and where it finds its libraries at run-time. They " @@ -461,19 +483,19 @@ msgid "" "find out my :file:`{prefix}` and :file:`{exec-prefix}`:" msgstr "" ":file:`{prefix}` et :file:`{exec-prefix}` désignent les répertoires dans " -"lesquels Python est installé et où il trouve les librairies lors de " +"lesquels Python est installé et où il trouve ses bibliothèques lors de " "l'exécution. Ils sont toujours identiques sous Windows et très souvent les " "mêmes sous Unix et Mac OS X. Vous pouvez trouver ce que votre installation " "de Python utilise pour :file:`{prefix}` et :file:`{exec-prefix}` en " "exécutant Python en mode interactif et en tapant quelques commandes simples. " -"Sous Unix, taper seulement ``python`` à l'invite du *shell*. Sous Windows, " -"sélectionner :menuselection:`Démarrer --> Programmes --> Python X.Y --> " -"Python (ligne de commande)`. Un fois l'interpréteur démarré, vous taper du " +"Sous Unix, tapez simplement ``python`` à l'invite du *shell*. Sous Windows, " +"sélectionnez :menuselection:`Démarrer --> Programmes --> Python X.Y --> " +"Python (ligne de commande)`. Une fois l'interpréteur démarré, vous tapez du " "code Python à l'invite de commande. Par exemple, sur mon système Linux, je " -"tape les trois instructions ci-dessous et obtient la sortie comme indiqué " -"pour trouver mes :file:`{prefix}` et :file:`{exec-prefix}` :" +"tape les trois instructions ci-dessous et obtiens la sortie suivante pour " +"trouver mes :file:`{prefix}` et :file:`{exec-prefix}` :" -#: ../Doc/install/index.rst:252 +#: install/index.rst:252 msgid "" "A few other placeholders are used in this document: :file:`{X.Y}` stands for " "the version of Python, for example ``3.2``; :file:`{abiflags}` will be " @@ -484,7 +506,7 @@ msgid "" "``python3.2`` on UNIX will typically use ``Python32`` on Windows." msgstr "" "Quelques autres remplacements utilisés dans ce document : :file:`{X.Y}` " -"représenter la version de Python, par exemple ``3.2``; :file:`{abiflags}` " +"représente la version de Python, par exemple ``3.2`` ; :file:`{abiflags}` " "sera remplacé par la valeur de :data:`sys.abiflags` ou la chaine vide pour " "les plateformes qui ne définissent pas d’indicateurs d’ABI ; :file:" "`{distname}` sera remplacé par le nom de la distribution de modules en train " @@ -492,7 +514,7 @@ msgstr "" "chemins ; par exemple, une valeur qui utilise ``python3.2`` sur Unix " "utilisera typiquement ``Python32`` sur Windows." -#: ../Doc/install/index.rst:260 +#: install/index.rst:260 msgid "" "If you don't want to install modules to the standard location, or if you " "don't have permission to write there, then you need to read about alternate " @@ -501,17 +523,17 @@ msgid "" "install` on custom installations." msgstr "" "Si vous ne voulez pas installer des modules à l'emplacement standard, ou si " -"vous n'avez pas la permission d'écrire là-bas, alors vous avez besoin de " -"lire la section :ref:`inst-alt-install` sur les alternatives d'installation. " -"Si vous souhaitez personnaliser vos répertoires d'installation plus " -"fortement, allez voir la section :ref:`inst-custom-install` sur les " -"installations personnalisées." +"vous n'avez pas la permission d'écrire à cet endroit, alors lisez la " +"section :ref:`inst-alt-install` relative aux installations alternatives. Si " +"vous souhaitez personnaliser encore plus vos répertoires d'installation, " +"lisez la section :ref:`inst-custom-install` sur les installations " +"personnalisées." -#: ../Doc/install/index.rst:270 +#: install/index.rst:270 msgid "Alternate Installation" msgstr "Installation alternative" -#: ../Doc/install/index.rst:272 +#: install/index.rst:272 msgid "" "Often, it is necessary or desirable to install modules to a location other " "than the standard location for third-party Python modules. For example, on " @@ -529,10 +551,10 @@ msgstr "" "pouvez vouloir essayer un module avant d’en faire une partie standard de " "votre installation locale de Python. C’est surtout vrai lors d’une mise à " "jour d’une distribution déjà présente : vous voulez vous assurer que votre " -"base de scripts marche encore avec la nouvelle version avant de faire la " -"mise à jour pour de vrai." +"base de scripts fonctionne encore avec la nouvelle version avant de faire la " +"mise à jour pour de bon." -#: ../Doc/install/index.rst:280 +#: install/index.rst:280 msgid "" "The Distutils :command:`install` command is designed to make installing " "module distributions to an alternate location simple and painless. The " @@ -546,11 +568,11 @@ msgstr "" "l’installation de distributions de modules à un emplacement alternatif " "simple et sans douleur. L’idée de base est que vous lui fournissez un " "dossier de base pour l’installation, et la commande :command:`install` " -"choisit un ensemble de dossier (appelé le *schéma d’installation*) dans " +"choisit un ensemble de dossiers (appelé le *schéma d’installation*) dans " "lequel elle installe les fichiers. Les détails diffèrent d’une plateforme à " -"une autre, donc lisez la section ci-dessous qui s’applique à vous." +"une autre, donc lisez les sections ci-dessous qui s’appliquent à vous." -#: ../Doc/install/index.rst:288 +#: install/index.rst:288 msgid "" "Note that the various alternate installation schemes are mutually exclusive: " "you can pass ``--user``, or ``--home``, or ``--prefix`` and ``--exec-" @@ -562,11 +584,11 @@ msgstr "" "``--prefix`` et ``--exc-prefix``, ou ``--install-base`` et ``--install-" "platbase``, mais vous ne pouvez pas mélanger ces groupes." -#: ../Doc/install/index.rst:297 +#: install/index.rst:297 msgid "Alternate installation: the user scheme" msgstr "Installation alternative : le schéma *user*" -#: ../Doc/install/index.rst:299 +#: install/index.rst:299 msgid "" "This scheme is designed to be the most convenient solution for users that " "don't have write permission to the global site-packages directory or don't " @@ -575,9 +597,9 @@ msgstr "" "Ce schéma est conçu pour être la solution la plus pratique pour les " "utilisateurs qui n’ont pas la permission d’écrire dans le dossier site-" "packages global, ou qui ne veulent pas y écrire. Il est activé avec une " -"simple option : ::" +"simple option ::" -#: ../Doc/install/index.rst:305 +#: install/index.rst:305 msgid "" "Files will be installed into subdirectories of :data:`site.USER_BASE` " "(written as :file:`{userbase}` hereafter). This scheme installs pure Python " @@ -588,77 +610,66 @@ msgstr "" "USER_BASE` (écrit :file:`{userbase}` dans la suite). Ce schéma installe des " "modules Python purs et les modules d’extension au même endroit (aussi connu " "sous le nom de :data:`site.USER_SITE`).Voici les valeurs pour UNIX, y " -"compris Mac OS XX : ::" +"compris Mac OS X ::" -#: ../Doc/install/index.rst:311 ../Doc/install/index.rst:322 -#: ../Doc/install/index.rst:373 ../Doc/install/index.rst:422 -#: ../Doc/install/index.rst:474 ../Doc/install/index.rst:499 -#: ../Doc/install/index.rst:735 ../Doc/install/index.rst:747 +#: install/index.rst:322 install/index.rst:422 install/index.rst:499 +#: install/index.rst:747 msgid "Type of file" msgstr "Type de fichier" -#: ../Doc/install/index.rst:311 ../Doc/install/index.rst:322 -#: ../Doc/install/index.rst:373 ../Doc/install/index.rst:422 -#: ../Doc/install/index.rst:474 +#: install/index.rst:322 install/index.rst:422 install/index.rst:474 msgid "Installation directory" msgstr "Dossier d'installation" -#: ../Doc/install/index.rst:313 ../Doc/install/index.rst:324 -#: ../Doc/install/index.rst:375 ../Doc/install/index.rst:476 +#: install/index.rst:324 install/index.rst:476 msgid "modules" msgstr "modules" -#: ../Doc/install/index.rst:313 +#: install/index.rst:313 msgid ":file:`{userbase}/lib/python{X.Y}/site-packages`" msgstr ":file:`{userbase}/lib/python{X.Y}/site-packages`" -#: ../Doc/install/index.rst:314 ../Doc/install/index.rst:325 -#: ../Doc/install/index.rst:376 ../Doc/install/index.rst:426 -#: ../Doc/install/index.rst:477 ../Doc/install/index.rst:504 +#: install/index.rst:325 install/index.rst:426 install/index.rst:504 msgid "scripts" msgstr "scripts" -#: ../Doc/install/index.rst:314 +#: install/index.rst:314 msgid ":file:`{userbase}/bin`" msgstr ":file:`{userbase}/bin`" -#: ../Doc/install/index.rst:315 ../Doc/install/index.rst:326 -#: ../Doc/install/index.rst:377 ../Doc/install/index.rst:427 -#: ../Doc/install/index.rst:478 ../Doc/install/index.rst:505 +#: install/index.rst:326 install/index.rst:427 install/index.rst:505 msgid "data" msgstr "données" -#: ../Doc/install/index.rst:315 ../Doc/install/index.rst:326 +#: install/index.rst:326 msgid ":file:`{userbase}`" msgstr ":file:`{userbase}`" -#: ../Doc/install/index.rst:316 ../Doc/install/index.rst:327 -#: ../Doc/install/index.rst:378 ../Doc/install/index.rst:428 -#: ../Doc/install/index.rst:479 ../Doc/install/index.rst:506 +#: install/index.rst:327 install/index.rst:428 install/index.rst:506 msgid "C headers" msgstr "en-têtes C" -#: ../Doc/install/index.rst:316 +#: install/index.rst:316 msgid ":file:`{userbase}/include/python{X.Y}{abiflags}/{distname}`" msgstr ":file:`{userbase}/include/python{X.Y}{abiflags}/{distname}`" -#: ../Doc/install/index.rst:319 +#: install/index.rst:319 msgid "And here are the values used on Windows:" -msgstr "Et voici les valeurs utilisées sur Windows : ::" +msgstr "Et voici les valeurs utilisées sur Windows ::" -#: ../Doc/install/index.rst:324 +#: install/index.rst:324 msgid ":file:`{userbase}\\\\Python{XY}\\\\site-packages`" msgstr ":file:`{userbase}\\\\Python{XY}\\\\site-packages`" -#: ../Doc/install/index.rst:325 +#: install/index.rst:325 msgid ":file:`{userbase}\\\\Python{XY}\\\\Scripts`" msgstr ":file:`{userbase}\\\\Python{XY}\\\\Scripts`" -#: ../Doc/install/index.rst:327 +#: install/index.rst:327 msgid ":file:`{userbase}\\\\Python{XY}\\\\Include\\\\{distname}`" msgstr ":file:`{userbase}\\\\Python{XY}\\\\Include\\\\{distname}`" -#: ../Doc/install/index.rst:330 +#: install/index.rst:330 msgid "" "The advantage of using this scheme compared to the other ones described " "below is that the user site-packages directory is under normal conditions " @@ -672,19 +683,24 @@ msgstr "" "qui signifie qu’il n’y a rien d’autre à faire après avoir exécuté le script :" "file:`setup.py` pour finaliser l’installation." -#: ../Doc/install/index.rst:336 +#: install/index.rst:336 msgid "" "The :command:`build_ext` command also has a ``--user`` option to add :file:" "`{userbase}/include` to the compiler search path for header files and :file:" "`{userbase}/lib` to the compiler search path for libraries as well as to the " "runtime search path for shared C libraries (rpath)." msgstr "" +"La commande :command:`build_ext` possède aussi une option ``--user`` pour " +"ajouter :file:`{userbase}/include` dans les chemins où le compilateur " +"recherche les fichiers d'en-têtes et :file:`{userbase}/lib` dans les chemins " +"où le compilateur recherche les bibliothèques ainsi que les bibliothèques C " +"partagées chargeables à l'exécution (`rpath`)." -#: ../Doc/install/index.rst:345 +#: install/index.rst:345 msgid "Alternate installation: the home scheme" -msgstr "Installation alternative : le schéma home" +msgstr "Installation alternative : le schéma *home*" -#: ../Doc/install/index.rst:347 +#: install/index.rst:347 msgid "" "The idea behind the \"home scheme\" is that you build and maintain a " "personal stash of Python modules. This scheme's name is derived from the " @@ -696,27 +712,26 @@ msgstr "" "L’idée derrière le « schéma home » est que vous compilez et maintenez un " "espace personnel de modules Python. Le nom de ce schéma vient de l’idée du " "dossier « home » sur Unix, vu qu’il n’est pas rare pour un utilisateur UNIX " -"de construire leur dossier *home* avec la même disposition que :file:`/usr/` " -"or :file:`/usr/local/`. Ce schéma peut être utilisé par n’importe qui, quel " -"que soit le système d’exploitation." +"d'agencer son dossier *home* avec la même disposition que :file:`/usr/` ou :" +"file:`/usr/local/`. Ce schéma peut être utilisé par n’importe qui, quel que " +"soit le système d’exploitation." -#: ../Doc/install/index.rst:354 +#: install/index.rst:354 msgid "Installing a new module distribution is as simple as ::" -msgstr "" -"Installer une nouvelle distribution de module est aussi simple que : ::" +msgstr "Installer une nouvelle distribution de module est aussi simple que ::" -#: ../Doc/install/index.rst:358 +#: install/index.rst:358 msgid "" "where you can supply any directory you like for the :option:`!--home` " "option. On Unix, lazy typists can just type a tilde (``~``); the :command:" "`install` command will expand this to your home directory::" msgstr "" "où vous pouvez fournir le dossier de votre choix à l’option :option:`!--" -"home`. Sur Unix, les paresseux pourront juste mettre un tilde (``~``) ; la " +"home`. Sur Unix, les paresseux peuvent mettre un simple tilde (``~``) ; la " "commande :command:`install` le remplacera par le chemin vers votre dossier " -"*home* : ::" +"personnel ::" -#: ../Doc/install/index.rst:364 +#: install/index.rst:364 msgid "" "To make Python find the distributions installed with this scheme, you may " "have to :ref:`modify Python's search path ` or edit :mod:" @@ -726,45 +741,45 @@ msgstr "" "Pour que Python puisse trouver les distributions installées avec ce schéma, " "vous devez :ref:`modifier le chemin de recherche de Python ` ou modifier :mod:`sitecustomize` (voir :mod:`site`) pour appeler :" -"func:`site.addsitedir` ou modifiez :data:`sys.path`." +"func:`site.addsitedir` ou modifier :data:`sys.path`." -#: ../Doc/install/index.rst:369 +#: install/index.rst:369 msgid "" "The :option:`!--home` option defines the installation base directory. Files " "are installed to the following directories under the installation base as " "follows:" msgstr "" "L’option :option:`!--home` définit le dossier de base de l’installation. Les " -"fichiers sont installés dans les dossiers suivants dans la base de " -"l’installation de la façon suivante : ::" +"fichiers sont installés dans les dossiers suivants sous la base de " +"l'installation de la façon suivante ::" -#: ../Doc/install/index.rst:375 +#: install/index.rst:375 msgid ":file:`{home}/lib/python`" msgstr ":file:`{home}/lib/python`" -#: ../Doc/install/index.rst:376 +#: install/index.rst:376 msgid ":file:`{home}/bin`" msgstr ":file:`{home}/bin`" -#: ../Doc/install/index.rst:377 +#: install/index.rst:377 msgid ":file:`{home}`" msgstr ":file:`{home}`" -#: ../Doc/install/index.rst:378 +#: install/index.rst:378 msgid ":file:`{home}/include/python/{distname}`" msgstr ":file:`{home}/include/python/{distname}`" -#: ../Doc/install/index.rst:381 +#: install/index.rst:381 msgid "(Mentally replace slashes with backslashes if you're on Windows.)" msgstr "" -"(Remplacez mentalement les slashs avec des antislash si vous êtes sur " +"(Remplacez mentalement les slashs avec des antislashs si vous êtes sur " "Windows.)" -#: ../Doc/install/index.rst:387 +#: install/index.rst:387 msgid "Alternate installation: Unix (the prefix scheme)" msgstr "Installation alternative : Unix (le schéma de préfixe)" -#: ../Doc/install/index.rst:389 +#: install/index.rst:389 msgid "" "The \"prefix scheme\" is useful when you wish to use one Python installation " "to perform the build/install (i.e., to run the setup script), but install " @@ -775,14 +790,14 @@ msgid "" "where the prefix scheme will be useful." msgstr "" "Le schéma de préfixe est utile quand vous voulez une installation de Python " -"pour faire la compilation/l’installation (i.e. exécuter le script *setup*), " -"mais utiliser les modules tiers d’une installation Python différente (ou " -"quelque chose qui ressemble à une installation Python différente). Si cela " -"semble inhabituel, ça l’est -- c’est pourquoi les schémas *user* et *home* " -"viennent avant. Cependant, il y a au moins deux cas connus où le schéma " -"*prefix* est utile." +"pour faire la compilation/l’installation (c.-à-d. exécuter le script " +"*setup*), mais utiliser les modules tiers d’une installation Python " +"différente (ou quelque chose qui ressemble à une installation Python " +"différente). Si cela vous semble inhabituel, ça l’est — c’est pourquoi les " +"schémas *user* et *home* viennent avant. Cependant, il y a au moins deux cas " +"connus où le schéma *prefix* est utile." -#: ../Doc/install/index.rst:396 +#: install/index.rst:396 msgid "" "First, consider that many Linux distributions put Python in :file:`/usr`, " "rather than the more traditional :file:`/usr/local`. This is entirely " @@ -797,9 +812,9 @@ msgstr "" "plutôt que d’une addition locale. Cependant, si vous installez des modules " "Python depuis leur source, vous voulez probablement qu’ils aillent dans :" "file:`/usr/local/lib/python2.{X}` plutôt que dans :file:`/usr/lib/python2.{X}" -"`. Ça peut être fait avec : ::" +"`. Ça peut être fait avec ::" -#: ../Doc/install/index.rst:405 +#: install/index.rst:405 msgid "" "Another possibility is a network filesystem where the name used to write to " "a remote directory is different from the name used to read it: for example, " @@ -808,14 +823,14 @@ msgid "" "would have to be installed to, say, :file:`/mnt/{@server}/export/lib/python2." "{X}`. This could be done with ::" msgstr "" -"Une autre possibilité est un système de fichier réseau où le nom est utilisé " -"pour écrire dans un dossier distant qui est différent du nom utilisé pour le " -"lire : par exemple, l’interpréteur Python appelé est :file:`/usr/local/bin/" -"python` et cherche les modules dans :file:`/usr/local/lib/python2.{X}`, mais " -"ces modules doivent être installé dans, par exemple, :file:`/mnt/{@server}/" -"export/lib/python2.{X}`.Ça peut être fait avec : ::" +"Une autre possibilité est un système de fichiers réseau où le nom utilisé " +"pour écrire dans un dossier distant est différent du nom utilisé pour le " +"lire : par exemple, l’interpréteur Python auquel on accède par :file:`/usr/" +"local/bin/python` peut chercher les modules dans :file:`/usr/local/lib/" +"python2.{X}`, mais ces modules doivent être installés dans, par exemple, :" +"file:`/mnt/{@server}/export/lib/python2.{X}`. Ça peut être fait avec ::" -#: ../Doc/install/index.rst:414 +#: install/index.rst:414 msgid "" "In either case, the :option:`!--prefix` option defines the installation " "base, and the :option:`!--exec-prefix` option defines the platform-specific " @@ -826,34 +841,35 @@ msgid "" "follows:" msgstr "" "Dans les deux cas, l’option :option:`!--prefix` définit la base de " -"l’installation, et l’option :option:`!--exec-prefix` définit la base " -"d’installation spécifique à la plateforme, qui est utilisé pour des fichiers " -"spécifiques à la plateforme. (Actuellement, ça ne signifie que les " -"distributions de modules non-purs, mais peuvent être étendus aux " -"bibliothèques C, exécutables, etc.). Si :option:`!--exec-prefix` n’est pas " -"fourni, il vaut par défaut :option:`!--prefix`. Les fichiers sont ainsi : ::" - -#: ../Doc/install/index.rst:424 ../Doc/install/index.rst:501 +"l’installation et l’option :option:`!--exec-prefix` définit la base " +"d’installation spécifique à la plateforme, qui est utilisée pour des " +"fichiers spécifiques à la plateforme (actuellement, ça ne concerne que les " +"distributions de modules non-purs, mais cela pourrait être étendu aux " +"bibliothèques C, exécutables, etc.). Si l'option :option:`!--exec-prefix` " +"n’est pas fournie, elle vaut par défaut :option:`!--prefix`. Les fichiers " +"sont installés ainsi :" + +#: install/index.rst:501 msgid "Python modules" msgstr "Modules Python" -#: ../Doc/install/index.rst:425 ../Doc/install/index.rst:502 +#: install/index.rst:502 msgid "extension modules" msgstr "modules d'extension" -#: ../Doc/install/index.rst:426 +#: install/index.rst:426 msgid ":file:`{prefix}/bin`" msgstr ":file:`{prefix}/bin`" -#: ../Doc/install/index.rst:427 ../Doc/install/index.rst:478 +#: install/index.rst:478 msgid ":file:`{prefix}`" msgstr ":file:`{prefix}`" -#: ../Doc/install/index.rst:428 +#: install/index.rst:428 msgid ":file:`{prefix}/include/python{X.Y}{abiflags}/{distname}`" msgstr ":file:`{prefix}/include/python{X.Y}{abiflags}/{distname}`" -#: ../Doc/install/index.rst:431 +#: install/index.rst:431 msgid "" "There is no requirement that :option:`!--prefix` or :option:`!--exec-prefix` " "actually point to an alternate Python installation; if the directories " @@ -863,7 +879,7 @@ msgstr "" "pointent vers une installation alternative de Python. Si les dossiers listés " "ci-dessus n’existent pas, ils sont créés au moment de l’installation." -#: ../Doc/install/index.rst:435 +#: install/index.rst:435 msgid "" "Incidentally, the real reason the prefix scheme is important is simply that " "a standard Unix installation uses the prefix scheme, but with :option:`!--" @@ -880,7 +896,7 @@ msgstr "" "schéma *prefix*, mais à chaque fois que vous lancez ``python setup.py " "install`` sans autre option, vous l’utilisez." -#: ../Doc/install/index.rst:442 +#: install/index.rst:442 msgid "" "Note that installing extensions to an alternate Python installation has no " "effect on how those extensions are built: in particular, the Python header " @@ -898,54 +914,64 @@ msgstr "" "aucun effet sur la façon dont ces extensions sont construites. En " "particulier, les fichiers en-têtes de Python (:file:`Python.h` et ses amis) " "installés avec l’interpréteur Python utilisé pour exécuter le script *setup* " -"sera utilisé pour compiler les extensions. Il est de votre responsabilité de " -"vous assurer que l’interpréteur utilisé pour pour exécuter les extensions " +"seront utilisés pour compiler les extensions. Il est de votre responsabilité " +"de vous assurer que l’interpréteur utilisé pour exécuter les extensions " "installées de cette façon est compatible avec celui utilisé pour les " "compiler. La meilleure façon pour cela est de s’assurer qu’ils sont " "exactement la même version de Python (possiblement des compilations " "différentes, ou différentes copies de la même). (Évidemment, si vos :option:" "`!--prefix` et :option:`!--exec-prefix` ne pointent pas vers une " -"installation alternative de Python, cela n’a pas de sens." +"installation alternative de Python, cela n’a pas de sens.)" -#: ../Doc/install/index.rst:457 +#: install/index.rst:457 msgid "Alternate installation: Windows (the prefix scheme)" -msgstr "" +msgstr "Installation alternative : Windows (le schéma de préfixe)" -#: ../Doc/install/index.rst:459 +#: install/index.rst:459 msgid "" "Windows has no concept of a user's home directory, and since the standard " "Python installation under Windows is simpler than under Unix, the :option:" "`!--prefix` option has traditionally been used to install additional " "packages in separate locations on Windows. ::" msgstr "" +"Windows n'a pas de concept de répertoire utilisateur, et comme " +"l'installation standard de Python sur Windows est plus simple que sur Unix, " +"l':option:`!--prefix` option a traditionnellement été utilisée pour " +"installer des paquets supplémentaires à des endroits séparés sur Windows. ::" -#: ../Doc/install/index.rst:466 +#: install/index.rst:466 msgid "" "to install modules to the :file:`\\\\Temp\\\\Python` directory on the " "current drive." msgstr "" +"pour installer des modules dans le dossier :file:`\\\\Temp\\\\Python` du " +"disque courant." -#: ../Doc/install/index.rst:468 +#: install/index.rst:468 msgid "" "The installation base is defined by the :option:`!--prefix` option; the :" "option:`!--exec-prefix` option is not supported under Windows, which means " "that pure Python modules and extension modules are installed into the same " "location. Files are installed as follows:" msgstr "" +"Le dossier racine de l'installation est défini par l'option :option:`!--" +"prefix`. L'option :option:`!--exec-prefix` n'est pas gérée sur Windows, ce " +"qui signifie que les modules Python et les modules d'extension sont " +"installés au même endroit. Les fichiers sont installés selon ce tableau :" -#: ../Doc/install/index.rst:477 +#: install/index.rst:477 msgid ":file:`{prefix}\\\\Scripts`" -msgstr "" +msgstr ":file:`{prefix}\\\\Scripts`" -#: ../Doc/install/index.rst:479 +#: install/index.rst:479 msgid ":file:`{prefix}\\\\Include\\\\{distname}`" msgstr ":file:`{prefix}\\\\Include\\\\{distname}`" -#: ../Doc/install/index.rst:486 +#: install/index.rst:486 msgid "Custom Installation" -msgstr "" +msgstr "Installation personnalisée" -#: ../Doc/install/index.rst:488 +#: install/index.rst:488 msgid "" "Sometimes, the alternate installation schemes described in section :ref:" "`inst-alt-install` just don't do what you want. You might want to tweak " @@ -953,47 +979,56 @@ msgid "" "directory, or you might want to completely redefine the installation " "scheme. In either case, you're creating a *custom installation scheme*." msgstr "" +"Parfois, les procédés d'installation alternatifs décrits dans la section :" +"ref:`inst-alt-install` ne font pas ce que vous attendiez. Vous pourriez " +"vouloir modifier seulement un ou deux répertoires en conservant tout le " +"reste sous la même racine, ou vouloir redéfinir l'ensemble du procédé " +"d'installation. Quel que soit le cas, vous créez ainsi un *procédé " +"d'installation personnalisé*." -#: ../Doc/install/index.rst:494 +#: install/index.rst:494 msgid "" "To create a custom installation scheme, you start with one of the alternate " "schemes and override some of the installation directories used for the " "various types of files, using these options:" msgstr "" +"Pour créer un modèle d'installation personnalisé, partez d'un modèle " +"alternatif et remplacez les dossiers d'installation de types de fichiers " +"donnés via ces options :" -#: ../Doc/install/index.rst:499 +#: install/index.rst:499 msgid "Override option" -msgstr "" +msgstr "Option" -#: ../Doc/install/index.rst:501 +#: install/index.rst:501 msgid "``--install-purelib``" -msgstr "" +msgstr "``--install-purelib``" -#: ../Doc/install/index.rst:502 +#: install/index.rst:502 msgid "``--install-platlib``" -msgstr "" +msgstr "``--install-platlib``" -#: ../Doc/install/index.rst:503 +#: install/index.rst:503 msgid "all modules" -msgstr "" +msgstr "tous les modules" -#: ../Doc/install/index.rst:503 +#: install/index.rst:503 msgid "``--install-lib``" -msgstr "" +msgstr "``--install-lib``" -#: ../Doc/install/index.rst:504 +#: install/index.rst:504 msgid "``--install-scripts``" -msgstr "" +msgstr "``--install-scripts``" -#: ../Doc/install/index.rst:505 +#: install/index.rst:505 msgid "``--install-data``" -msgstr "" +msgstr "``--install-data``" -#: ../Doc/install/index.rst:506 +#: install/index.rst:506 msgid "``--install-headers``" -msgstr "" +msgstr "``--install-headers``" -#: ../Doc/install/index.rst:509 +#: install/index.rst:509 msgid "" "These override options can be relative, absolute, or explicitly defined in " "terms of one of the installation base directories. (There are two " @@ -1005,7 +1040,7 @@ msgid "" "between Python and extension modules.)" msgstr "" -#: ../Doc/install/index.rst:518 +#: install/index.rst:518 msgid "" "For example, say you're installing a module distribution to your home " "directory under Unix---but you want scripts to go in :file:`~/scripts` " @@ -1016,7 +1051,7 @@ msgid "" "case)::" msgstr "" -#: ../Doc/install/index.rst:527 +#: install/index.rst:527 msgid "" "Another Unix example: suppose your Python installation was built and " "installed with a prefix of :file:`/usr/local/python`, so under a standard " @@ -1025,14 +1060,14 @@ msgid "" "directory for the :option:`!--install-scripts` option::" msgstr "" -#: ../Doc/install/index.rst:535 +#: install/index.rst:535 msgid "" -"(This performs an installation using the \"prefix scheme,\" where the prefix " +"(This performs an installation using the \"prefix scheme\", where the prefix " "is whatever your Python interpreter was installed with--- :file:`/usr/local/" "python` in this case.)" msgstr "" -#: ../Doc/install/index.rst:539 +#: install/index.rst:539 msgid "" "If you maintain Python on Windows, you might want third-party modules to " "live in a subdirectory of :file:`{prefix}`, rather than right in :file:" @@ -1042,7 +1077,7 @@ msgid "" "conveniently be both controlled by one option::" msgstr "" -#: ../Doc/install/index.rst:548 +#: install/index.rst:548 msgid "" "The specified installation directory is relative to :file:`{prefix}`. Of " "course, you also have to ensure that this directory is in Python's module " @@ -1051,7 +1086,7 @@ msgid "" "modify Python's search path." msgstr "" -#: ../Doc/install/index.rst:554 +#: install/index.rst:554 msgid "" "If you want to define an entire installation scheme, you just have to supply " "all of the installation directory options. The recommended way to do this " @@ -1061,18 +1096,18 @@ msgid "" "from, you might define the following installation scheme::" msgstr "" -#: ../Doc/install/index.rst:567 +#: install/index.rst:567 msgid "or, equivalently, ::" msgstr "ou ::" -#: ../Doc/install/index.rst:575 +#: install/index.rst:575 msgid "" "``$PLAT`` is not (necessarily) an environment variable---it will be expanded " "by the Distutils as it parses your command line options, just as it does " "when parsing your configuration file(s)." msgstr "" -#: ../Doc/install/index.rst:579 +#: install/index.rst:579 msgid "" "Obviously, specifying the entire installation scheme every time you install " "a new module distribution would be very tedious. Thus, you can put these " @@ -1080,24 +1115,24 @@ msgid "" "files`):" msgstr "" -#: ../Doc/install/index.rst:592 +#: install/index.rst:592 msgid "or, equivalently," msgstr "ou (équivalent)," -#: ../Doc/install/index.rst:603 +#: install/index.rst:603 msgid "" "Note that these two are *not* equivalent if you supply a different " "installation base directory when you run the setup script. For example, ::" msgstr "" -#: ../Doc/install/index.rst:608 +#: install/index.rst:608 msgid "" "would install pure modules to :file:`/tmp/python/lib` in the first case, and " "to :file:`/tmp/lib` in the second case. (For the second case, you probably " "want to supply an installation base of :file:`/tmp/python`.)" msgstr "" -#: ../Doc/install/index.rst:612 +#: install/index.rst:612 msgid "" "You probably noticed the use of ``$HOME`` and ``$PLAT`` in the sample " "configuration file input. These are Distutils configuration variables, " @@ -1110,7 +1145,7 @@ msgid "" "section :ref:`inst-config-files` for details." msgstr "" -#: ../Doc/install/index.rst:622 +#: install/index.rst:622 msgid "" "When a :ref:`virtual environment ` is activated, any options that " "change the installation path will be ignored from all distutils " @@ -1118,11 +1153,11 @@ msgid "" "the virtual environment." msgstr "" -#: ../Doc/install/index.rst:636 +#: install/index.rst:636 msgid "Modifying Python's Search Path" msgstr "" -#: ../Doc/install/index.rst:638 +#: install/index.rst:638 msgid "" "When the Python interpreter executes an :keyword:`import` statement, it " "searches for both Python code and extension modules along a search path. A " @@ -1131,12 +1166,12 @@ msgid "" "module and printing the value of ``sys.path``. ::" msgstr "" -#: ../Doc/install/index.rst:655 +#: install/index.rst:655 msgid "" "The null string in ``sys.path`` represents the current working directory." msgstr "" -#: ../Doc/install/index.rst:657 +#: install/index.rst:657 msgid "" "The expected convention for locally installed packages is to put them in " "the :file:`{...}/site-packages/` directory, but you may want to install " @@ -1147,7 +1182,7 @@ msgid "" "There are several different ways to add the directory." msgstr "" -#: ../Doc/install/index.rst:665 +#: install/index.rst:665 msgid "" "The most convenient way is to add a path configuration file to a directory " "that's already on Python's path, usually to the :file:`.../site-packages/` " @@ -1158,14 +1193,14 @@ msgid "" "this mechanism for installing fixed versions of standard modules.)" msgstr "" -#: ../Doc/install/index.rst:673 +#: install/index.rst:673 msgid "" "Paths can be absolute or relative, in which case they're relative to the " "directory containing the :file:`.pth` file. See the documentation of the :" "mod:`site` module for more information." msgstr "" -#: ../Doc/install/index.rst:677 +#: install/index.rst:677 msgid "" "A slightly less convenient way is to edit the :file:`site.py` file in " "Python's standard library, and modify ``sys.path``. :file:`site.py` is " @@ -1174,7 +1209,7 @@ msgid "" "simply edit :file:`site.py` and add two lines to it:" msgstr "" -#: ../Doc/install/index.rst:688 +#: install/index.rst:688 msgid "" "However, if you reinstall the same major version of Python (perhaps when " "upgrading from 2.2 to 2.2.2, for example) :file:`site.py` will be " @@ -1182,7 +1217,7 @@ msgid "" "modified and save a copy before doing the installation." msgstr "" -#: ../Doc/install/index.rst:693 +#: install/index.rst:693 msgid "" "There are two environment variables that can modify ``sys.path``. :envvar:" "`PYTHONHOME` sets an alternate value for the prefix of the Python " @@ -1191,7 +1226,7 @@ msgid "" "Y/', '/www/python/lib/pythonX.Y/plat-linux2', ...]``." msgstr "" -#: ../Doc/install/index.rst:699 +#: install/index.rst:699 msgid "" "The :envvar:`PYTHONPATH` variable can be set to a list of paths that will be " "added to the beginning of ``sys.path``. For example, if :envvar:" @@ -1201,17 +1236,17 @@ msgid "" "don't exist.)" msgstr "" -#: ../Doc/install/index.rst:706 +#: install/index.rst:706 msgid "" "Finally, ``sys.path`` is just a regular Python list, so any Python " "application can modify it by adding or removing entries." msgstr "" -#: ../Doc/install/index.rst:713 +#: install/index.rst:713 msgid "Distutils Configuration Files" msgstr "" -#: ../Doc/install/index.rst:715 +#: install/index.rst:715 msgid "" "As mentioned above, you can use Distutils configuration files to record " "personal or site preferences for any Distutils options. That is, any option " @@ -1223,76 +1258,76 @@ msgid "" "files are overridden by \"later\" files." msgstr "" -#: ../Doc/install/index.rst:728 +#: install/index.rst:728 msgid "Location and names of config files" msgstr "" -#: ../Doc/install/index.rst:730 +#: install/index.rst:730 msgid "" "The names and locations of the configuration files vary slightly across " "platforms. On Unix and Mac OS X, the three configuration files (in the " "order they are processed) are:" msgstr "" -#: ../Doc/install/index.rst:735 ../Doc/install/index.rst:747 +#: install/index.rst:747 msgid "Location and filename" msgstr "" -#: ../Doc/install/index.rst:737 ../Doc/install/index.rst:749 +#: install/index.rst:749 msgid "system" msgstr "" -#: ../Doc/install/index.rst:737 +#: install/index.rst:737 msgid ":file:`{prefix}/lib/python{ver}/distutils/distutils.cfg`" -msgstr "" +msgstr ":file:`{prefix}/lib/python{ver}/distutils/distutils.cfg`" -#: ../Doc/install/index.rst:739 ../Doc/install/index.rst:751 +#: install/index.rst:751 msgid "personal" msgstr "" -#: ../Doc/install/index.rst:739 +#: install/index.rst:739 msgid ":file:`$HOME/.pydistutils.cfg`" -msgstr "" +msgstr ":file:`$HOME/.pydistutils.cfg`" -#: ../Doc/install/index.rst:741 ../Doc/install/index.rst:753 +#: install/index.rst:753 msgid "local" msgstr "" -#: ../Doc/install/index.rst:741 ../Doc/install/index.rst:753 +#: install/index.rst:753 msgid ":file:`setup.cfg`" -msgstr "" +msgstr ":file:`setup.cfg`" -#: ../Doc/install/index.rst:741 ../Doc/install/index.rst:753 +#: install/index.rst:753 msgid "\\(3)" msgstr "\\(3)" -#: ../Doc/install/index.rst:744 +#: install/index.rst:744 msgid "And on Windows, the configuration files are:" msgstr "" -#: ../Doc/install/index.rst:749 +#: install/index.rst:749 msgid ":file:`{prefix}\\\\Lib\\\\distutils\\\\distutils.cfg`" -msgstr "" +msgstr ":file:`{prefix}\\\\Lib\\\\distutils\\\\distutils.cfg`" -#: ../Doc/install/index.rst:749 +#: install/index.rst:749 msgid "\\(4)" msgstr "\\(4)" -#: ../Doc/install/index.rst:751 +#: install/index.rst:751 msgid ":file:`%HOME%\\\\pydistutils.cfg`" -msgstr "" +msgstr ":file:`%HOME%\\\\pydistutils.cfg`" -#: ../Doc/install/index.rst:751 +#: install/index.rst:751 msgid "\\(5)" msgstr "\\(5)" -#: ../Doc/install/index.rst:756 +#: install/index.rst:756 msgid "" "On all platforms, the \"personal\" file can be temporarily disabled by " "passing the `--no-user-cfg` option." msgstr "" -#: ../Doc/install/index.rst:762 +#: install/index.rst:762 msgid "" "Strictly speaking, the system-wide configuration file lives in the directory " "where the Distutils are installed; under Python 1.6 and later on Unix, this " @@ -1301,7 +1336,7 @@ msgid "" "configuration file should be put there under Python 1.5.2." msgstr "" -#: ../Doc/install/index.rst:769 +#: install/index.rst:769 msgid "" "On Unix, if the :envvar:`HOME` environment variable is not defined, the " "user's home directory will be determined with the :func:`getpwuid` function " @@ -1309,12 +1344,12 @@ msgid "" "expanduser` function used by Distutils." msgstr "" -#: ../Doc/install/index.rst:775 +#: install/index.rst:775 msgid "" "I.e., in the current directory (usually the location of the setup script)." msgstr "" -#: ../Doc/install/index.rst:778 +#: install/index.rst:778 msgid "" "(See also note (1).) Under Python 1.6 and later, Python's default " "\"installation prefix\" is :file:`C:\\\\Python`, so the system configuration " @@ -1326,7 +1361,7 @@ msgid "" "Windows." msgstr "" -#: ../Doc/install/index.rst:787 +#: install/index.rst:787 msgid "" "On Windows, if the :envvar:`HOME` environment variable is not defined, :" "envvar:`USERPROFILE` then :envvar:`HOMEDRIVE` and :envvar:`HOMEPATH` will be " @@ -1334,11 +1369,11 @@ msgid "" "Distutils." msgstr "" -#: ../Doc/install/index.rst:796 +#: install/index.rst:796 msgid "Syntax of config files" msgstr "" -#: ../Doc/install/index.rst:798 +#: install/index.rst:798 msgid "" "The Distutils configuration files all have the same syntax. The config " "files are grouped into sections. There is one section for each Distutils " @@ -1347,13 +1382,13 @@ msgid "" "``option=value``." msgstr "" -#: ../Doc/install/index.rst:803 +#: install/index.rst:803 msgid "" "For example, the following is a complete config file that just forces all " "commands to run quietly by default:" msgstr "" -#: ../Doc/install/index.rst:811 +#: install/index.rst:811 msgid "" "If this is installed as the system config file, it will affect all " "processing of any Python module distribution by any user on the current " @@ -1363,18 +1398,18 @@ msgid "" "distribution, it affects only that distribution." msgstr "" -#: ../Doc/install/index.rst:818 +#: install/index.rst:818 msgid "" "You could override the default \"build base\" directory and make the :" "command:`build\\*` commands always forcibly rebuild all files with the " "following:" msgstr "" -#: ../Doc/install/index.rst:828 +#: install/index.rst:828 msgid "which corresponds to the command-line arguments ::" msgstr "" -#: ../Doc/install/index.rst:832 +#: install/index.rst:832 msgid "" "except that including the :command:`build` command on the command-line means " "that command will be run. Including a particular command in config files " @@ -1383,29 +1418,29 @@ msgid "" "values from it are run, they will use the values in the config file.)" msgstr "" -#: ../Doc/install/index.rst:838 +#: install/index.rst:838 msgid "" "You can find out the complete list of options for any command using the :" "option:`!--help` option, e.g.::" msgstr "" -#: ../Doc/install/index.rst:843 +#: install/index.rst:843 msgid "" "and you can find out the complete list of global options by using :option:" "`!--help` without a command::" msgstr "" -#: ../Doc/install/index.rst:848 +#: install/index.rst:848 msgid "" "See also the \"Reference\" section of the \"Distributing Python Modules\" " "manual." msgstr "" -#: ../Doc/install/index.rst:854 +#: install/index.rst:854 msgid "Building Extensions: Tips and Tricks" msgstr "" -#: ../Doc/install/index.rst:856 +#: install/index.rst:856 msgid "" "Whenever possible, the Distutils try to use the configuration information " "made available by the Python interpreter used to run the :file:`setup.py` " @@ -1415,11 +1450,11 @@ msgid "" "section discusses how to override the usual Distutils behaviour." msgstr "" -#: ../Doc/install/index.rst:867 +#: install/index.rst:867 msgid "Tweaking compiler/linker flags" msgstr "" -#: ../Doc/install/index.rst:869 +#: install/index.rst:869 msgid "" "Compiling a Python extension written in C or C++ will sometimes require " "specifying custom flags for the compiler and linker in order to use a " @@ -1428,7 +1463,7 @@ msgid "" "you're trying to cross-compile Python." msgstr "" -#: ../Doc/install/index.rst:875 +#: install/index.rst:875 msgid "" "In the most general case, the extension author might have foreseen that " "compiling the extensions would be complicated, and provided a :file:`Setup` " @@ -1437,18 +1472,18 @@ msgid "" "require elaborate sets of compiler flags in order to work." msgstr "" -#: ../Doc/install/index.rst:881 +#: install/index.rst:881 msgid "" "A :file:`Setup` file, if present, is parsed in order to get a list of " "extensions to build. Each line in a :file:`Setup` describes a single " "module. Lines have the following structure::" msgstr "" -#: ../Doc/install/index.rst:888 +#: install/index.rst:888 msgid "Let's examine each of the fields in turn." msgstr "" -#: ../Doc/install/index.rst:890 +#: install/index.rst:890 msgid "" "*module* is the name of the extension module to be built, and should be a " "valid Python identifier. You can't just change this in order to rename a " @@ -1456,7 +1491,7 @@ msgid "" "left alone." msgstr "" -#: ../Doc/install/index.rst:894 +#: install/index.rst:894 msgid "" "*sourcefile* is anything that's likely to be a source code file, at least " "judging by the filename. Filenames ending in :file:`.c` are assumed to be " @@ -1465,64 +1500,64 @@ msgid "" "assumed to be in Objective C." msgstr "" -#: ../Doc/install/index.rst:900 +#: install/index.rst:900 msgid "" "*cpparg* is an argument for the C preprocessor, and is anything starting " "with :option:`!-I`, :option:`!-D`, :option:`!-U` or :option:`!-C`." msgstr "" -#: ../Doc/install/index.rst:903 +#: install/index.rst:903 msgid "" "*library* is anything ending in :file:`.a` or beginning with :option:`!-l` " "or :option:`!-L`." msgstr "" -#: ../Doc/install/index.rst:906 +#: install/index.rst:906 msgid "" "If a particular platform requires a special library on your platform, you " "can add it by editing the :file:`Setup` file and running ``python setup.py " "build``. For example, if the module defined by the line ::" msgstr "" -#: ../Doc/install/index.rst:912 +#: install/index.rst:912 msgid "" "must be linked with the math library :file:`libm.a` on your platform, simply " "add :option:`!-lm` to the line::" msgstr "" -#: ../Doc/install/index.rst:917 +#: install/index.rst:917 msgid "" "Arbitrary switches intended for the compiler or the linker can be supplied " "with the :option:`!-Xcompiler` *arg* and :option:`!-Xlinker` *arg* options::" msgstr "" -#: ../Doc/install/index.rst:922 +#: install/index.rst:922 msgid "" "The next option after :option:`!-Xcompiler` and :option:`!-Xlinker` will be " "appended to the proper command line, so in the above example the compiler " "will be passed the :option:`!-o32` option, and the linker will be passed :" "option:`!-shared`. If a compiler option requires an argument, you'll have " -"to supply multiple :option:`!-Xcompiler` options; for example, to pass ``-x c" -"++`` the :file:`Setup` file would have to contain ``-Xcompiler -x -Xcompiler " -"c++``." +"to supply multiple :option:`!-Xcompiler` options; for example, to pass ``-x " +"c++`` the :file:`Setup` file would have to contain ``-Xcompiler -x -" +"Xcompiler c++``." msgstr "" -#: ../Doc/install/index.rst:929 +#: install/index.rst:929 msgid "" "Compiler flags can also be supplied through setting the :envvar:`CFLAGS` " "environment variable. If set, the contents of :envvar:`CFLAGS` will be " "added to the compiler flags specified in the :file:`Setup` file." msgstr "" -#: ../Doc/install/index.rst:937 +#: install/index.rst:937 msgid "Using non-Microsoft compilers on Windows" msgstr "" -#: ../Doc/install/index.rst:944 +#: install/index.rst:944 msgid "Borland/CodeGear C++" msgstr "" -#: ../Doc/install/index.rst:946 +#: install/index.rst:946 msgid "" "This subsection describes the necessary steps to use Distutils with the " "Borland C++ compiler version 5.5. First you have to know that Borland's " @@ -1533,7 +1568,7 @@ msgid "" "`python25.lib` into the Borland format. You can do this as follows:" msgstr "" -#: ../Doc/install/index.rst:961 +#: install/index.rst:961 msgid "" "The :file:`coff2omf` program comes with the Borland compiler. The file :" "file:`python25.lib` is in the :file:`Libs` directory of your Python " @@ -1541,13 +1576,13 @@ msgid "" "to convert them too." msgstr "" -#: ../Doc/install/index.rst:966 +#: install/index.rst:966 msgid "" "The converted files have to reside in the same directories as the normal " "libraries." msgstr "" -#: ../Doc/install/index.rst:969 +#: install/index.rst:969 msgid "" "How does Distutils manage to use these libraries with their changed names? " "If the extension needs a library (eg. :file:`foo`) Distutils checks first if " @@ -1556,46 +1591,46 @@ msgid "" "it uses the default name (:file:`foo.lib`.) [#]_" msgstr "" -#: ../Doc/install/index.rst:975 +#: install/index.rst:975 msgid "" "To let Distutils compile your extension with Borland C++ you now have to " "type::" msgstr "" -#: ../Doc/install/index.rst:979 +#: install/index.rst:979 msgid "" "If you want to use the Borland C++ compiler as the default, you could " "specify this in your personal or system-wide configuration file for " "Distutils (see section :ref:`inst-config-files`.)" msgstr "" -#: ../Doc/install/index.rst:988 +#: install/index.rst:988 msgid "`C++Builder Compiler `_" msgstr "" -#: ../Doc/install/index.rst:987 +#: install/index.rst:987 msgid "" "Information about the free C++ compiler from Borland, including links to the " "download pages." msgstr "" -#: ../Doc/install/index.rst:991 +#: install/index.rst:991 msgid "" "`Creating Python Extensions Using Borland's Free Compiler `_" msgstr "" -#: ../Doc/install/index.rst:991 +#: install/index.rst:991 msgid "" "Document describing how to use Borland's free command-line C++ compiler to " "build Python." msgstr "" -#: ../Doc/install/index.rst:996 +#: install/index.rst:996 msgid "GNU C / Cygwin / MinGW" msgstr "" -#: ../Doc/install/index.rst:998 +#: install/index.rst:998 msgid "" "This section describes the necessary steps to use Distutils with the GNU C/C+" "+ compilers in their Cygwin and MinGW distributions. [#]_ For a Python " @@ -1603,40 +1638,40 @@ msgid "" "of these following steps." msgstr "" -#: ../Doc/install/index.rst:1003 +#: install/index.rst:1003 msgid "" "Not all extensions can be built with MinGW or Cygwin, but many can. " "Extensions most likely to not work are those that use C++ or depend on " "Microsoft Visual C extensions." msgstr "" -#: ../Doc/install/index.rst:1007 +#: install/index.rst:1007 msgid "To let Distutils compile your extension with Cygwin you have to type::" msgstr "" -#: ../Doc/install/index.rst:1011 +#: install/index.rst:1011 msgid "and for Cygwin in no-cygwin mode [#]_ or for MinGW type::" msgstr "" -#: ../Doc/install/index.rst:1015 +#: install/index.rst:1015 msgid "" "If you want to use any of these options/compilers as default, you should " "consider writing it in your personal or system-wide configuration file for " "Distutils (see section :ref:`inst-config-files`.)" msgstr "" -#: ../Doc/install/index.rst:1020 +#: install/index.rst:1020 msgid "Older Versions of Python and MinGW" msgstr "" -#: ../Doc/install/index.rst:1021 +#: install/index.rst:1021 msgid "" "The following instructions only apply if you're using a version of Python " "inferior to 2.4.1 with a MinGW inferior to 3.0.0 (with " "binutils-2.13.90-20030111-1)." msgstr "" -#: ../Doc/install/index.rst:1025 +#: install/index.rst:1025 msgid "" "These compilers require some special libraries. This task is more complex " "than for Borland's C++, because there is no program to convert the library. " @@ -1645,7 +1680,7 @@ msgid "" "projects/mingw/files/MinGW/Extension/pexports/)." msgstr "" -#: ../Doc/install/index.rst:1038 +#: install/index.rst:1038 msgid "" "The location of an installed :file:`python25.dll` will depend on the " "installation options and the version and language of Windows. In a \"just " @@ -1654,53 +1689,51 @@ msgid "" "directory." msgstr "" -#: ../Doc/install/index.rst:1043 +#: install/index.rst:1043 msgid "" "Then you can create from these information an import library for gcc. ::" msgstr "" -#: ../Doc/install/index.rst:1047 +#: install/index.rst:1047 msgid "" "The resulting library has to be placed in the same directory as :file:" "`python25.lib`. (Should be the :file:`libs` directory under your Python " "installation directory.)" msgstr "" -#: ../Doc/install/index.rst:1051 +#: install/index.rst:1051 msgid "" "If your extension uses other libraries (zlib,...) you might have to convert " "them too. The converted files have to reside in the same directories as the " "normal libraries do." msgstr "" -#: ../Doc/install/index.rst:1058 +#: install/index.rst:1058 msgid "" "`Building Python modules on MS Windows platform with MinGW `_" msgstr "" -#: ../Doc/install/index.rst:1059 +#: install/index.rst:1059 msgid "" "Information about building the required libraries for the MinGW environment." msgstr "" -#: ../Doc/install/index.rst:1063 +#: install/index.rst:1063 msgid "Footnotes" msgstr "Notes" -#: ../Doc/install/index.rst:1064 +#: install/index.rst:1064 msgid "" "This also means you could replace all existing COFF-libraries with OMF-" "libraries of the same name." msgstr "" -#: ../Doc/install/index.rst:1067 -msgid "" -"Check https://www.sourceware.org/cygwin/ and http://www.mingw.org/ for more " -"information" +#: install/index.rst:1067 +msgid "Check https://www.sourceware.org/cygwin/ for more information" msgstr "" -#: ../Doc/install/index.rst:1070 +#: install/index.rst:1069 msgid "" "Then you have no POSIX emulation available, but you also don't need :file:" "`cygwin1.dll`." @@ -1712,10 +1745,10 @@ msgstr "" #~ "capabilities of a standard Python installation by building and installing " #~ "third-party Python modules and extensions." #~ msgstr "" -#~ "Ce document décrit les utilitaires de distribution de Python (\"Distutils" -#~ "\") du point de vue de l'utilisateur final, décrivant comment étendre les " -#~ "capacités d'une installation standard de python en construisant et " -#~ "installant des modules python tiers et des extensions." +#~ "Ce document décrit les utilitaires de distribution de Python " +#~ "(\"Distutils\") du point de vue de l'utilisateur final, décrivant comment " +#~ "étendre les capacités d'une installation standard de python en " +#~ "construisant et installant des modules python tiers et des extensions." #~ msgid "" #~ "Although Python's extensive standard library covers many programming " diff --git a/installing/index.po b/installing/index.po index 8ac471fad6..4b890f18a6 100644 --- a/installing/index.po +++ b/installing/index.po @@ -6,14 +6,14 @@ msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-11-15 18:54+0100\n" -"PO-Revision-Date: 2019-12-11 11:11+0100\n" +"PO-Revision-Date: 2019-12-15 21:18+0100\n" "Last-Translator: Jules Lasne \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2\n" +"X-Generator: Poedit 2.2.4\n" #: ../Doc/installing/index.rst:7 msgid "Installing Python Modules" @@ -47,7 +47,7 @@ msgid "" msgstr "" "Cela permet aux utilisateurs de Python de partager et de collaborer " "efficacement, bénéficiant des solutions que les autres ont déjà crées pour " -"résoudre les problèmes communs (ou même, parfois, rares !), aussi que de " +"résoudre les problèmes communs (ou même, parfois, rares !), aussi que de " "partager leurs propres solutions à tous." #: ../Doc/installing/index.rst:20 @@ -68,7 +68,7 @@ msgid "" "the distribution and installation tools provided with Python." msgstr "" "Pour les entreprises et autres institutions, gardez en tête que certaines " -"organisations ont leur propres règles sur l'utilisation et la contribution " +"organisations ont leurs propres règles sur l'utilisation et la contribution " "au logiciel libre. Prenez ces règles en compte lorsque vous utilisez les " "outils de distribution et d'installation fournis par Python." @@ -125,7 +125,6 @@ msgstr "" "paquets sous licence ouverte disponibles pour tous les utilisateurs Python." #: ../Doc/installing/index.rst:50 -#, fuzzy msgid "" "the `Python Packaging Authority `__ is the group of " "developers and documentation authors responsible for the maintenance and " @@ -134,12 +133,12 @@ msgid "" "issue trackers on both `GitHub `__ and `Bitbucket " "`__." msgstr "" -"l'`Autorité des Paquets Python `__ est le groupe de " +"le `Python Packaging Authority `__ est le groupe de " "développeurs et d'auteurs de documentation responsable de la maintenance et " -"l'évolution des outils d'empaquetage standards et des métadonnées associées, " -"ainsi que des standards sur les formats de fichiers. Ils maintiennent une " -"multitude d'outils, documentations, et des systèmes de tickets sur `GitHub " -"`__ et `BitBucket `__." +"de l'évolution des suites d'outils standard et des normes de métadonnées et " +"de format de fichiers associées. Ils maintiennent une variété d'outils, de " +"documentation, et d'outils de suivi des problèmes sur les deux sites `GitHub " +"`__ et `Bitbucket `__." #: ../Doc/installing/index.rst:57 msgid "" @@ -153,7 +152,7 @@ msgstr "" "``distutils`` est le premier système de construction et de distribution " "ajouté à la bibliothèque standard en 1998. Bien que l'utilisation directe de " "``distutils`` soit progressivement supprimée, elle reste le fondement de " -"l'infrastructure actuelle de construction de paquet et de distribution. Au " +"l'infrastructure actuelle de construction de paquet et de distribution. Au-" "delà de rester dans la bibliothèque standard, son nom vit aussi sous " "d'autres formes, tel que la liste de diffusion utilisée pour coordonner le " "développement et les standards de la création de paquet." @@ -263,7 +262,7 @@ msgstr "" #: ../Doc/installing/index.rst:122 msgid "How do I ...?" -msgstr "Comment puis-je ...?" +msgstr "Comment puis-je … ?" #: ../Doc/installing/index.rst:124 msgid "These are quick answers or links for some common tasks." @@ -273,7 +272,7 @@ msgstr "" #: ../Doc/installing/index.rst:127 msgid "... install ``pip`` in versions of Python prior to Python 3.4?" msgstr "" -"... Installer ``pip`` avec une version de Python antérieures à la 3.4 ?" +"... Installer ``pip`` avec une version de Python antérieures à la 3.4 ?" #: ../Doc/installing/index.rst:129 msgid "" @@ -296,7 +295,7 @@ msgstr "" #: ../Doc/installing/index.rst:142 msgid "... install packages just for the current user?" -msgstr "... Installer des paquets juste pour l'utilisateur actuel ?" +msgstr "... Installer des paquets juste pour l'utilisateur actuel ?" #: ../Doc/installing/index.rst:144 msgid "" @@ -309,7 +308,7 @@ msgstr "" #: ../Doc/installing/index.rst:149 msgid "... install scientific Python packages?" -msgstr "... Installer des paquets Python scientifiques ?" +msgstr "... Installer des paquets Python scientifiques ?" #: ../Doc/installing/index.rst:151 msgid "" @@ -337,7 +336,7 @@ msgstr "" #: ../Doc/installing/index.rst:164 msgid "... work with multiple versions of Python installed in parallel?" msgstr "" -"... Travailler avec plusieurs versions de Python installés en parallèle ?" +"... Travailler avec plusieurs versions de Python installés en parallèle ?" #: ../Doc/installing/index.rst:166 msgid "" @@ -405,7 +404,7 @@ msgid "" "fix is::" msgstr "" "Il est possible que ``pip`` ne soit pas installé par défaut. Une solution " -"est : ::" +"est ::" #: ../Doc/installing/index.rst:216 msgid "" diff --git a/library/2to3.po b/library/2to3.po index b7f6c6cb62..a643f23ee5 100644 --- a/library/2to3.po +++ b/library/2to3.po @@ -455,7 +455,7 @@ msgstr "" #: ../Doc/library/2to3.rst:262 msgid "is changed to ::" -msgstr "est transformé en ::" +msgstr "est transformé en ::" #: ../Doc/library/2to3.rst:268 msgid "Detects sibling imports and converts them to relative imports." diff --git a/library/__future__.po b/library/__future__.po index 711184274e..db3fc92596 100644 --- a/library/__future__.po +++ b/library/__future__.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-03-11 12:59+0100\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2019-06-01 23:02+0200\n" "Last-Translator: Jules Lasne \n" "Language-Team: FRENCH \n" @@ -15,20 +15,20 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.2.1\n" -#: ../Doc/library/__future__.rst:2 +#: library/__future__.rst:2 msgid ":mod:`__future__` --- Future statement definitions" msgstr ":mod:`__future__` — Définitions des futurs" -#: ../Doc/library/__future__.rst:7 +#: library/__future__.rst:7 msgid "**Source code:** :source:`Lib/__future__.py`" msgstr "**Source code:** :source:`Lib/_future_.py`" -#: ../Doc/library/__future__.rst:11 +#: library/__future__.rst:11 msgid ":mod:`__future__` is a real module, and serves three purposes:" msgstr "" "Le module :mod:`__future__` est un vrai module, et il a trois objectifs :" -#: ../Doc/library/__future__.rst:13 +#: library/__future__.rst:13 msgid "" "To avoid confusing existing tools that analyze import statements and expect " "to find the modules they're importing." @@ -36,7 +36,7 @@ msgstr "" "éviter de dérouter les outils existants qui analysent les instructions " "d'importation et s'attendent à trouver les modules qu'ils importent ;" -#: ../Doc/library/__future__.rst:16 +#: library/__future__.rst:16 msgid "" "To ensure that :ref:`future statements ` run under releases prior to " "2.1 at least yield runtime exceptions (the import of :mod:`__future__` will " @@ -47,7 +47,7 @@ msgstr "" "(l’importation du module :mod:`__future__` échoue, car il n’y avait pas de " "module de ce nom avant 2.1) ;" -#: ../Doc/library/__future__.rst:20 +#: library/__future__.rst:20 msgid "" "To document when incompatible changes were introduced, and when they will be " "--- or were --- made mandatory. This is a form of executable documentation, " @@ -59,11 +59,11 @@ msgstr "" "documentation exécutable, qui peut être inspectée par un programme en " "important :mod:`__future__` et en examinant son contenu." -#: ../Doc/library/__future__.rst:25 +#: library/__future__.rst:25 msgid "Each statement in :file:`__future__.py` is of the form::" msgstr "Chaque instruction dans :file:`__future__.py` est de la forme ::" -#: ../Doc/library/__future__.rst:31 +#: library/__future__.rst:31 msgid "" "where, normally, *OptionalRelease* is less than *MandatoryRelease*, and both " "are 5-tuples of the same form as :data:`sys.version_info`::" @@ -72,7 +72,7 @@ msgstr "" "les deux sont des quintuplets de la même forme que :data:`sys." "version_info` ::" -#: ../Doc/library/__future__.rst:41 +#: library/__future__.rst:41 msgid "" "*OptionalRelease* records the first release in which the feature was " "accepted." @@ -80,7 +80,7 @@ msgstr "" "*OptionalRelease* enregistre la première version dans laquelle la " "fonctionnalité a été acceptée." -#: ../Doc/library/__future__.rst:43 +#: library/__future__.rst:43 msgid "" "In the case of a *MandatoryRelease* that has not yet occurred, " "*MandatoryRelease* predicts the release in which the feature will become " @@ -90,7 +90,7 @@ msgstr "" "*MandatoryRelease* prédit la *release* dans laquelle la fonctionnalité " "deviendra un élément du langage." -#: ../Doc/library/__future__.rst:47 +#: library/__future__.rst:47 msgid "" "Else *MandatoryRelease* records when the feature became part of the " "language; in releases at or after that, modules no longer need a future " @@ -102,7 +102,7 @@ msgstr "" "n'ont plus besoin d'une déclaration *future* pour utiliser la fonctionnalité " "en question, mais ils peuvent continuer à utiliser ces importations." -#: ../Doc/library/__future__.rst:51 +#: library/__future__.rst:51 msgid "" "*MandatoryRelease* may also be ``None``, meaning that a planned feature got " "dropped." @@ -110,7 +110,7 @@ msgstr "" "*MandatoryRelease* peut également être ``None``, ce qui signifie qu'une " "fonction planifiée a été abandonnée." -#: ../Doc/library/__future__.rst:54 +#: library/__future__.rst:54 msgid "" "Instances of class :class:`_Feature` have two corresponding methods, :meth:" "`getOptionalRelease` and :meth:`getMandatoryRelease`." @@ -118,7 +118,7 @@ msgstr "" "Les instances de classe :class:`_Feature` ont deux méthodes " "correspondantes, :meth:`getOptionalRelease` et :meth:`getMandatoryRelease`." -#: ../Doc/library/__future__.rst:57 +#: library/__future__.rst:57 msgid "" "*CompilerFlag* is the (bitfield) flag that should be passed in the fourth " "argument to the built-in function :func:`compile` to enable the feature in " @@ -131,7 +131,7 @@ msgstr "" "indicateur est stocké dans l'attribut :attr:`compiler_flag` dans les " "instances de :class:`_Feature`." -#: ../Doc/library/__future__.rst:62 +#: library/__future__.rst:62 msgid "" "No feature description will ever be deleted from :mod:`__future__`. Since " "its introduction in Python 2.1 the following features have found their way " @@ -141,158 +141,160 @@ msgstr "" "son introduction dans Python 2.1, les fonctionnalités suivantes ont trouvé " "leur places dans le langage utilisant ce mécanisme :" -#: ../Doc/library/__future__.rst:67 +#: library/__future__.rst:67 msgid "feature" msgstr "fonctionnalité" -#: ../Doc/library/__future__.rst:67 +#: library/__future__.rst:67 msgid "optional in" msgstr "optionnel dans" -#: ../Doc/library/__future__.rst:67 +#: library/__future__.rst:67 msgid "mandatory in" msgstr "obligatoire dans" -#: ../Doc/library/__future__.rst:67 +#: library/__future__.rst:67 msgid "effect" msgstr "effet" -#: ../Doc/library/__future__.rst:69 +#: library/__future__.rst:69 msgid "nested_scopes" msgstr "nested_scopes" -#: ../Doc/library/__future__.rst:69 +#: library/__future__.rst:69 msgid "2.1.0b1" msgstr "2.1.0b1" -#: ../Doc/library/__future__.rst:69 +#: library/__future__.rst:69 msgid "2.2" msgstr "2.2" -#: ../Doc/library/__future__.rst:69 +#: library/__future__.rst:69 msgid ":pep:`227`: *Statically Nested Scopes*" msgstr ":pep:`227` : *Portées imbriquées*" -#: ../Doc/library/__future__.rst:72 +#: library/__future__.rst:72 msgid "generators" msgstr "générateurs" -#: ../Doc/library/__future__.rst:72 +#: library/__future__.rst:72 msgid "2.2.0a1" msgstr "2.2.0a1" -#: ../Doc/library/__future__.rst:72 +#: library/__future__.rst:72 msgid "2.3" msgstr "2.3" -#: ../Doc/library/__future__.rst:72 +#: library/__future__.rst:72 msgid ":pep:`255`: *Simple Generators*" msgstr ":pep:`255` : *Générateurs simples*" -#: ../Doc/library/__future__.rst:75 +#: library/__future__.rst:75 msgid "division" msgstr "division" -#: ../Doc/library/__future__.rst:75 +#: library/__future__.rst:75 msgid "2.2.0a2" msgstr "2.2.0a2" -#: ../Doc/library/__future__.rst:75 ../Doc/library/__future__.rst:78 -#: ../Doc/library/__future__.rst:84 ../Doc/library/__future__.rst:87 +#: library/__future__.rst:78 library/__future__.rst:87 msgid "3.0" msgstr "3.0" -#: ../Doc/library/__future__.rst:75 +#: library/__future__.rst:75 msgid ":pep:`238`: *Changing the Division Operator*" -msgstr ":pep:`328` : *Changement de l'opérateur de division*" +msgstr ":pep:`238` : *Changement de l'opérateur de division*" -#: ../Doc/library/__future__.rst:78 +#: library/__future__.rst:78 msgid "absolute_import" msgstr "absolute_import" -#: ../Doc/library/__future__.rst:78 ../Doc/library/__future__.rst:81 +#: library/__future__.rst:81 msgid "2.5.0a1" msgstr "2.5.0a1" -#: ../Doc/library/__future__.rst:78 +#: library/__future__.rst:78 msgid ":pep:`328`: *Imports: Multi-Line and Absolute/Relative*" msgstr "" ":pep:`328` : *Importations : multilignes et absolues/relatives* (ressource " "en anglais)" -#: ../Doc/library/__future__.rst:81 +#: library/__future__.rst:81 msgid "with_statement" msgstr "with_statement" -#: ../Doc/library/__future__.rst:81 +#: library/__future__.rst:81 msgid "2.6" msgstr "2.6" -#: ../Doc/library/__future__.rst:81 +#: library/__future__.rst:81 msgid ":pep:`343`: *The \"with\" Statement*" msgstr ":pep:`343` : *L'instruction \"with\"*" -#: ../Doc/library/__future__.rst:84 +#: library/__future__.rst:84 msgid "print_function" msgstr "print_function" -#: ../Doc/library/__future__.rst:84 ../Doc/library/__future__.rst:87 +#: library/__future__.rst:87 msgid "2.6.0a2" msgstr "2.6.0a2" -#: ../Doc/library/__future__.rst:84 +#: library/__future__.rst:84 msgid ":pep:`3105`: *Make print a function*" msgstr ":pep:`3105` : *Transformation de print en fonction*" -#: ../Doc/library/__future__.rst:87 +#: library/__future__.rst:87 msgid "unicode_literals" msgstr "unicode_literals" -#: ../Doc/library/__future__.rst:87 +#: library/__future__.rst:87 msgid ":pep:`3112`: *Bytes literals in Python 3000*" msgstr ":pep:`3112` : *Chaînes d'octets littéraux en Python 3000*" -#: ../Doc/library/__future__.rst:90 +#: library/__future__.rst:90 msgid "generator_stop" msgstr "generator_stop" -#: ../Doc/library/__future__.rst:90 +#: library/__future__.rst:90 msgid "3.5.0b1" msgstr "3.5.0b1" -#: ../Doc/library/__future__.rst:90 +#: library/__future__.rst:90 msgid "3.7" msgstr "3.7" -#: ../Doc/library/__future__.rst:90 +#: library/__future__.rst:90 msgid ":pep:`479`: *StopIteration handling inside generators*" msgstr "" ":pep:`479` : *Gestion de *StopIteration* à l’intérieur des générateurs*" -#: ../Doc/library/__future__.rst:93 +#: library/__future__.rst:93 msgid "annotations" msgstr "annotations" -#: ../Doc/library/__future__.rst:93 +#: library/__future__.rst:93 msgid "3.7.0b1" msgstr "3.7.0b1" -#: ../Doc/library/__future__.rst:93 -msgid "4.0" -msgstr "4.0" +#: library/__future__.rst:93 +msgid "3.10" +msgstr "3.10" -#: ../Doc/library/__future__.rst:93 +#: library/__future__.rst:93 msgid ":pep:`563`: *Postponed evaluation of annotations*" msgstr ":pep:`563` : *Évaluation différée des annotations*" -#: ../Doc/library/__future__.rst:102 +#: library/__future__.rst:102 msgid ":ref:`future`" msgstr ":ref:`future`" -#: ../Doc/library/__future__.rst:103 +#: library/__future__.rst:103 msgid "How the compiler treats future imports." msgstr "Comment le compilateur gère les importations « futures »." +#~ msgid "4.0" +#~ msgstr "4.0" + #, fuzzy #~ msgid "future" #~ msgstr "fonctionnalité" diff --git a/library/_thread.po b/library/_thread.po index bb5a691cf4..fd2d3b4349 100644 --- a/library/_thread.po +++ b/library/_thread.po @@ -6,14 +6,14 @@ msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: 2019-06-11 18:37+0100\n" -"Last-Translator: Stéphane HUC \n" +"PO-Revision-Date: 2019-12-13 12:43+0100\n" +"Last-Translator: Inebhis \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.0.4\n" +"X-Generator: Poedit 2.2.4\n" #: ../Doc/library/_thread.rst:2 msgid ":mod:`_thread` --- Low-level threading API" @@ -58,7 +58,6 @@ msgid "This is the type of lock objects." msgstr "C'est le type d'objets verrous." #: ../Doc/library/_thread.rst:46 -#, fuzzy msgid "" "Start a new thread and return its identifier. The thread executes the " "function *function* with the argument list *args* (which must be a tuple). " @@ -67,15 +66,11 @@ msgstr "" "Démarre un nouveau fils d'exécution et renvoie son identifiant. Ce fil " "d'exécution exécute la fonction *function* avec la liste d'arguments *args* " "(qui doit être un *tuple*). L'argument optionnel *kwargs* spécifie un " -"dictionnaire d'arguments de mots clés. Quand la fonction se termine, le fil " -"d'exécution se termine silencieusement. Quand la fonction termine avec une " -"exception non gérée, une trace de la pile est affichée et ensuite le fil " -"d'exécution s'arrête (mais les autres fils d'exécutions continuent de " -"s'exécuter)." +"dictionnaire d'arguments de mots clés." #: ../Doc/library/_thread.rst:50 msgid "When the function returns, the thread silently exits." -msgstr "" +msgstr "Au renvoi de la fonction, le fil d'exécution quitte silencieusement." #: ../Doc/library/_thread.rst:52 msgid "" @@ -84,19 +79,25 @@ msgid "" "the hook argument is *function*. By default, a stack trace is printed and " "then the thread exits (but other threads continue to run)." msgstr "" +"Lorsque la fonction se termine avec une exception non gérée, :func:`sys." +"unraisablehook` est appelée pour gérer cette dernière. L'attribut *object* " +"de l'argument *hook* est *function*. Par défaut, la trace d'appels est " +"affichée puis le fil d'exécution se termine (mais les autres fils " +"d'exécution continuent de s'exécuter)." #: ../Doc/library/_thread.rst:57 -#, fuzzy msgid "" "When the function raises a :exc:`SystemExit` exception, it is silently " "ignored." msgstr "" -"Appeler la fonction :func:`sys.exit` ou lever l'exception :exc:`SystemExit` " -"est équivalent à appeler la fonction :func:`_thread.exit`." +"Lorsque la fonction lève l'exception :exc:`SystemExit`, elle est ignorée " +"silencieusement." #: ../Doc/library/_thread.rst:60 msgid ":func:`sys.unraisablehook` is now used to handle unhandled exceptions." msgstr "" +":func:`sys.unraisablehook` est maintenant utilisée pour s'occuper des " +"exceptions non gérées." #: ../Doc/library/_thread.rst:66 msgid "" @@ -154,15 +155,19 @@ msgid "" "identify this particular thread system-wide (until the thread terminates, " "after which the value may be recycled by the OS)." msgstr "" +"Renvoie l'identifiant natif complet assigné par le noyau du fil d'exécution " +"actuel. C'est un entier non négatif. Sa valeur peut uniquement être utilisée " +"pour identifier ce fil d'exécution à l'échelle du système (jusqu'à ce que le " +"fil d'exécution se termine, après quoi la valeur peut être recyclée par le " +"système d'exploitation)." #: ../Doc/library/_thread.rst:110 -#, fuzzy msgid "" ":ref:`Availability `: Windows, FreeBSD, Linux, macOS, OpenBSD, " "NetBSD, AIX." msgstr "" -":ref:`Disponibilité ` : Windows et systèmes gérant les fils " -"d'exécution POSIX." +":ref:`Disponibilité ` : Windows, FreeBSD, Linux, macOS, " +"OpenBSD, NetBSD, AIX." #: ../Doc/library/_thread.rst:116 msgid "" @@ -220,7 +225,7 @@ msgstr "" #: ../Doc/library/_thread.rst:143 msgid "Lock objects have the following methods:" -msgstr "Les verrous ont les méthodes suivantes : " +msgstr "Les verrous ont les méthodes suivantes :" #: ../Doc/library/_thread.rst:148 msgid "" @@ -297,7 +302,7 @@ msgid "" "`with` statement, e.g.::" msgstr "" "En plus de ces méthodes, les objets verrous peuvent aussi être utilisés via " -"l'instruction :keyword:`with`, e.g. : ::" +"l'instruction :keyword:`with`, e.g. ::" #: ../Doc/library/_thread.rst:193 msgid "**Caveats:**" diff --git a/library/abc.po b/library/abc.po index b50e3802f9..5628dec8cc 100644 --- a/library/abc.po +++ b/library/abc.po @@ -15,15 +15,15 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.0.2\n" -#: ../Doc/library/abc.rst:2 +#: library/abc.rst:2 msgid ":mod:`abc` --- Abstract Base Classes" msgstr ":mod:`abc` — Classes de Base Abstraites" -#: ../Doc/library/abc.rst:11 +#: library/abc.rst:11 msgid "**Source code:** :source:`Lib/abc.py`" msgstr "**Code source:** :source:`Lib/abc.py`" -#: ../Doc/library/abc.rst:15 +#: library/abc.rst:15 msgid "" "This module provides the infrastructure for defining :term:`abstract base " "classes ` (ABCs) in Python, as outlined in :pep:`3119`; " @@ -39,7 +39,7 @@ msgstr "" "l'abréviation ABC (*Abstract Base Class*) pour désigner une classe de base " "abstraite." -#: ../Doc/library/abc.rst:20 +#: library/abc.rst:20 msgid "" "The :mod:`collections` module has some concrete classes that derive from " "ABCs; these can, of course, be further derived. In addition, the :mod:" @@ -54,7 +54,7 @@ msgstr "" "spécifique. Par exemple, est-elle hachable ou un tableau associatif " "(*mapping* en anglais) ?" -#: ../Doc/library/abc.rst:27 +#: library/abc.rst:27 msgid "" "This module provides the metaclass :class:`ABCMeta` for defining ABCs and a " "helper class :class:`ABC` to alternatively define ABCs through inheritance:" @@ -63,7 +63,7 @@ msgstr "" "que la classe d'aide :class:`ABC`, cette dernière permettant de définir des " "ABC en utilisant l'héritage :" -#: ../Doc/library/abc.rst:32 +#: library/abc.rst:32 msgid "" "A helper class that has :class:`ABCMeta` as its metaclass. With this class, " "an abstract base class can be created by simply deriving from :class:`ABC` " @@ -71,9 +71,9 @@ msgid "" msgstr "" "Classe d'aide qui a :class:`ABCMeta` pour métaclasse. Avec cette classe, une " "ABC peut être créée simplement en héritant de :class:`ABC` , ce qui permet " -"d'éviter l'utilisation parfois déroutante de métaclasse, par exemple : ::" +"d'éviter l'utilisation parfois déroutante de métaclasse, par exemple ::" -#: ../Doc/library/abc.rst:41 +#: library/abc.rst:41 msgid "" "Note that the type of :class:`ABC` is still :class:`ABCMeta`, therefore " "inheriting from :class:`ABC` requires the usual precautions regarding " @@ -86,13 +86,13 @@ msgstr "" "concernant l'utilisation de métaclasses : l'utilisation d'héritage multiple " "peut entrainer des conflits de métaclasses. Il est également possible de " "définir une ABC en passant l'argument nommé *metaclass* et en utilisant :" -"class:`ABCMeta` directement, par exemple : ::" +"class:`ABCMeta` directement, par exemple ::" -#: ../Doc/library/abc.rst:57 +#: library/abc.rst:57 msgid "Metaclass for defining Abstract Base Classes (ABCs)." msgstr "Métaclasse pour définir des classes de base abstraites (ABC)." -#: ../Doc/library/abc.rst:59 +#: library/abc.rst:59 msgid "" "Use this metaclass to create an ABC. An ABC can be subclassed directly, and " "then acts as a mix-in class. You can also register unrelated concrete " @@ -106,15 +106,15 @@ msgstr "" "Utilisez cette métaclasse pour créer une ABC. Il est possible d'hériter " "d'une ABC directement, cette classe de base abstraite fonctionne alors comme " "une classe *mixin*. Vous pouvez également enregistrer une classe concrète " -"sans lien (même une classe native) et des ABC comme \"sous-classes virtuelles" -"\" -- celles-ci et leur descendantes seront considérées comme des sous-" -"classes de la classe de base abstraite par la fonction native :func:" +"sans lien (même une classe native) et des ABC comme \"sous-classes " +"virtuelles\" -- celles-ci et leur descendantes seront considérées comme des " +"sous-classes de la classe de base abstraite par la fonction native :func:" "`issubclass`, mais les ABC enregistrées n'apparaitront pas dans leur ordre " "de résolution des méthodes (*MRO* pour *Method Resolution Order* en " "anglais). Les implémentations de méthodes définies par l'ABC ne seront pas " "appelable (pas même via :func:`super`). [#]_" -#: ../Doc/library/abc.rst:68 +#: library/abc.rst:68 msgid "" "Classes created with a metaclass of :class:`ABCMeta` have the following " "method:" @@ -122,20 +122,20 @@ msgstr "" "Les classes dont la métaclasse est :class:`ABCMeta` possèdent les méthodes " "suivantes :" -#: ../Doc/library/abc.rst:72 +#: library/abc.rst:72 msgid "" "Register *subclass* as a \"virtual subclass\" of this ABC. For example::" msgstr "" "Enregistrer *subclass* en tant que sous-classe virtuelle de cette ABC. Par " -"exemple : ::" +"exemple ::" -#: ../Doc/library/abc.rst:85 +#: library/abc.rst:85 msgid "Returns the registered subclass, to allow usage as a class decorator." msgstr "" "Renvoie la sous-classe enregistrée pour permettre l'utilisation en tant que " "décorateur de classe." -#: ../Doc/library/abc.rst:88 +#: library/abc.rst:88 msgid "" "To detect calls to :meth:`register`, you can use the :func:`get_cache_token` " "function." @@ -143,15 +143,15 @@ msgstr "" "Pour détecter les appels à :meth:`register`, vous pouvez utiliser la " "fonction :func:`get_cache_token`." -#: ../Doc/library/abc.rst:92 +#: library/abc.rst:92 msgid "You can also override this method in an abstract base class:" msgstr "Vous pouvez également redéfinir cette méthode dans une ABC :" -#: ../Doc/library/abc.rst:96 +#: library/abc.rst:96 msgid "(Must be defined as a class method.)" msgstr "(Doit être définie en tant que méthode de classe.)" -#: ../Doc/library/abc.rst:98 +#: library/abc.rst:98 msgid "" "Check whether *subclass* is considered a subclass of this ABC. This means " "that you can customize the behavior of ``issubclass`` further without the " @@ -166,7 +166,7 @@ msgstr "" "méthode de classe est appelée par la méthode :meth:`__subclasscheck__` de la " "classe de base abstraite)." -#: ../Doc/library/abc.rst:104 +#: library/abc.rst:104 msgid "" "This method should return ``True``, ``False`` or ``NotImplemented``. If it " "returns ``True``, the *subclass* is considered a subclass of this ABC. If it " @@ -181,14 +181,14 @@ msgstr "" "renvoie ``NotImplemented``, la vérification d'appartenance à la sous-classe " "continue via le mécanisme habituel." -#: ../Doc/library/abc.rst:114 +#: library/abc.rst:114 msgid "" "For a demonstration of these concepts, look at this example ABC definition::" msgstr "" "Pour une illustration de ces concepts, voir cet exemple de définition de " -"ABC : ::" +"ABC ::" -#: ../Doc/library/abc.rst:143 +#: library/abc.rst:143 msgid "" "The ABC ``MyIterable`` defines the standard iterable method, :meth:" "`~iterator.__iter__`, as an abstract method. The implementation given here " @@ -202,7 +202,7 @@ msgstr "" "fait également partie de la classe de base abstraite ``MyIterable``, mais " "elle n'a pas à être redéfinie dans les classes dérivées non-abstraites." -#: ../Doc/library/abc.rst:149 +#: library/abc.rst:149 msgid "" "The :meth:`__subclasshook__` class method defined here says that any class " "that has an :meth:`~iterator.__iter__` method in its :attr:`~object." @@ -215,7 +215,7 @@ msgstr "" "liste :attr:`~class.__mro__`) est considérée également comme un " "``MyIterable``." -#: ../Doc/library/abc.rst:154 +#: library/abc.rst:154 msgid "" "Finally, the last line makes ``Foo`` a virtual subclass of ``MyIterable``, " "even though it does not define an :meth:`~iterator.__iter__` method (it uses " @@ -230,15 +230,15 @@ msgstr "" "cela ne rendra pas le ``get_iterator`` de ``MyIterable`` disponible comme " "une méthode de ``Foo``, ``get_iterator`` est donc implémenté séparément." -#: ../Doc/library/abc.rst:163 +#: library/abc.rst:163 msgid "The :mod:`abc` module also provides the following decorator:" msgstr "Le module :mod:`abc` fournit aussi le décorateur :" -#: ../Doc/library/abc.rst:167 +#: library/abc.rst:167 msgid "A decorator indicating abstract methods." msgstr "Un décorateur marquant les méthodes comme abstraites." -#: ../Doc/library/abc.rst:169 +#: library/abc.rst:169 msgid "" "Using this decorator requires that the class's metaclass is :class:`ABCMeta` " "or is derived from it. A class that has a metaclass derived from :class:" @@ -255,7 +255,7 @@ msgstr "" "d'appel à 'super'. :func:`abstractmethod` peut être utilisée pour déclarer " "des méthodes abstraites pour les propriétés et descripteurs." -#: ../Doc/library/abc.rst:176 +#: library/abc.rst:176 msgid "" "Dynamically adding abstract methods to a class, or attempting to modify the " "abstraction status of a method or class once it is created, are not " @@ -270,7 +270,7 @@ msgstr "" "classes virtuelles\" enregistrées avec la méthode :meth:`register` de l'ABC " "ne sont pas affectées." -#: ../Doc/library/abc.rst:182 +#: library/abc.rst:182 msgid "" "When :func:`abstractmethod` is applied in combination with other method " "descriptors, it should be applied as the innermost decorator, as shown in " @@ -278,9 +278,9 @@ msgid "" msgstr "" "Quand le décorateur :func:`abstractmethod` est utilisé en même temps que " "d'autres descripteurs de méthodes, il doit être appliqué en tant que " -"décorateur le plus interne. Voir les exemples d'utilisation suivants : ::" +"décorateur le plus interne. Voir les exemples d'utilisation suivants ::" -#: ../Doc/library/abc.rst:216 +#: library/abc.rst:216 msgid "" "In order to correctly interoperate with the abstract base class machinery, " "the descriptor must identify itself as abstract using :attr:" @@ -294,7 +294,7 @@ msgstr "" "moins une des méthodes faisant partie du descripteur est abstraite. Par " "exemple, la classe native :class:`property` de python fait l'équivalent de ::" -#: ../Doc/library/abc.rst:231 +#: library/abc.rst:231 msgid "" "Unlike Java abstract methods, these abstract methods may have an " "implementation. This implementation can be called via the :func:`super` " @@ -308,12 +308,12 @@ msgstr "" "y appeler *super* et ainsi coopérer correctement dans un environnement " "utilisant de l'héritage multiple." -#: ../Doc/library/abc.rst:239 +#: library/abc.rst:239 msgid "The :mod:`abc` module also supports the following legacy decorators:" msgstr "" "Le module :mod:`abc` gère également les décorateurs historiques suivants :" -#: ../Doc/library/abc.rst:244 +#: library/abc.rst:244 msgid "" "It is now possible to use :class:`classmethod` with :func:`abstractmethod`, " "making this decorator redundant." @@ -321,7 +321,7 @@ msgstr "" "Il est désormais possible d'utiliser :class:`classmethod` avec :func:" "`abstractmethod`, cela rend ce décorateur redondant." -#: ../Doc/library/abc.rst:248 +#: library/abc.rst:248 msgid "" "A subclass of the built-in :func:`classmethod`, indicating an abstract " "classmethod. Otherwise it is similar to :func:`abstractmethod`." @@ -330,16 +330,16 @@ msgstr "" "de classe ( ``classmethod`` ) abstraite. En dehors de cela, est similaire à :" "func:`abstractmethod`." -#: ../Doc/library/abc.rst:251 +#: library/abc.rst:251 msgid "" "This special case is deprecated, as the :func:`classmethod` decorator is now " "correctly identified as abstract when applied to an abstract method::" msgstr "" "Ce cas spécial est obsolète car le décorateur :func:`classmethod` est " "désormais correctement identifié comme abstrait quand il est appliqué à une " -"méthode abstraite : ::" +"méthode abstraite ::" -#: ../Doc/library/abc.rst:265 +#: library/abc.rst:265 msgid "" "It is now possible to use :class:`staticmethod` with :func:`abstractmethod`, " "making this decorator redundant." @@ -347,7 +347,7 @@ msgstr "" "Il est désormais possible d'utiliser :class:`staticmethod` avec :func:" "`abstractmethod`, cela rend ce décorateur redondant." -#: ../Doc/library/abc.rst:269 +#: library/abc.rst:269 msgid "" "A subclass of the built-in :func:`staticmethod`, indicating an abstract " "staticmethod. Otherwise it is similar to :func:`abstractmethod`." @@ -356,16 +356,16 @@ msgstr "" "statique ( ``staticmethod`` ) abstraite. En dehors de cela, est similaire à :" "func:`abstractmethod`." -#: ../Doc/library/abc.rst:272 +#: library/abc.rst:272 msgid "" "This special case is deprecated, as the :func:`staticmethod` decorator is " "now correctly identified as abstract when applied to an abstract method::" msgstr "" "Ce cas spécial est obsolète car le décorateur :func:`staticmethod` est " "désormais correctement identifié comme abstrait quand appliqué à une méthode " -"abstraite : ::" +"abstraite ::" -#: ../Doc/library/abc.rst:285 +#: library/abc.rst:285 msgid "" "It is now possible to use :class:`property`, :meth:`property.getter`, :meth:" "`property.setter` and :meth:`property.deleter` with :func:`abstractmethod`, " @@ -375,21 +375,21 @@ msgstr "" "getter`, :meth:`property.setter` et :meth:`property.deleter` avec :func:" "`abstractmethod`, ce qui rend ce décorateur redondant." -#: ../Doc/library/abc.rst:290 +#: library/abc.rst:290 msgid "" "A subclass of the built-in :func:`property`, indicating an abstract property." msgstr "Sous-classe de :func:`property`, qui indique une propriété abstraite." -#: ../Doc/library/abc.rst:293 +#: library/abc.rst:293 msgid "" "This special case is deprecated, as the :func:`property` decorator is now " "correctly identified as abstract when applied to an abstract method::" msgstr "" "Ce cas spécial est obsolète car le décorateur :func:`property` est désormais " "correctement identifié comme abstrait quand appliqué à une méthode " -"abstraite : ::" +"abstraite ::" -#: ../Doc/library/abc.rst:303 +#: library/abc.rst:303 msgid "" "The above example defines a read-only property; you can also define a read-" "write abstract property by appropriately marking one or more of the " @@ -397,26 +397,26 @@ msgid "" msgstr "" "L'exemple ci-dessus définit une propriété en lecture seule. Vous pouvez " "également définir une propriété en lecture-écriture abstraite en indiquant " -"une ou plusieurs des méthodes sous-jacentes comme abstraite : ::" +"une ou plusieurs des méthodes sous-jacentes comme abstraite ::" -#: ../Doc/library/abc.rst:317 +#: library/abc.rst:317 msgid "" "If only some components are abstract, only those components need to be " "updated to create a concrete property in a subclass::" msgstr "" "Si seuls certains composants sont abstraits, seuls ces composants abstraits " "nécessitent d'être mis à jour pour créer une propriété concrète dans une " -"sous-classe : ::" +"sous-classe ::" -#: ../Doc/library/abc.rst:326 +#: library/abc.rst:326 msgid "The :mod:`abc` module also provides the following functions:" msgstr "Le module :mod:`abc` fournit également la fonction suivante :" -#: ../Doc/library/abc.rst:330 +#: library/abc.rst:330 msgid "Returns the current abstract base class cache token." msgstr "Renvoie le jeton de cache ( *cache token*) de l'ABC." -#: ../Doc/library/abc.rst:332 +#: library/abc.rst:332 msgid "" "The token is an opaque object (that supports equality testing) identifying " "the current version of the abstract base class cache for virtual subclasses. " @@ -427,11 +427,11 @@ msgstr "" "virtuelles. Le jeton change avec chaque appel à :meth:`ABCMeta.register` sur " "n'importe quelle ABC." -#: ../Doc/library/abc.rst:340 +#: library/abc.rst:340 msgid "Footnotes" msgstr "Notes" -#: ../Doc/library/abc.rst:341 +#: library/abc.rst:341 msgid "" "C++ programmers should note that Python's virtual base class concept is not " "the same as C++'s." diff --git a/library/aifc.po b/library/aifc.po index a656ca6f86..659dd6b4ad 100644 --- a/library/aifc.po +++ b/library/aifc.po @@ -69,7 +69,7 @@ msgstr "" #: ../Doc/library/aifc.rst:50 msgid "Support for the :keyword:`with` statement was added." -msgstr "" +msgstr "La prise en charge de l'instruction :keyword:`with` a été ajoutée." #: ../Doc/library/aifc.rst:53 msgid "" @@ -78,8 +78,10 @@ msgid "" msgstr "" #: ../Doc/library/aifc.rst:59 +#, fuzzy msgid "Return the number of audio channels (1 for mono, 2 for stereo)." msgstr "" +"Renvoie le nombre de canaux audio (``1`` pour mono, ``2`` pour stéréo)." #: ../Doc/library/aifc.rst:64 msgid "Return the size in bytes of individual samples." diff --git a/library/argparse.po b/library/argparse.po index 4367056d82..8d6a695a7f 100644 --- a/library/argparse.po +++ b/library/argparse.po @@ -15,7 +15,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.2.3\n" -#: ../Doc/library/argparse.rst:2 +#: library/argparse.rst:2 msgid "" ":mod:`argparse` --- Parser for command-line options, arguments and sub-" "commands" @@ -23,15 +23,15 @@ msgstr "" ":mod:`argparse` -- Parseur d'arguments, d'options, et de sous-commandes de " "ligne de commande" -#: ../Doc/library/argparse.rst:12 +#: library/argparse.rst:12 msgid "**Source code:** :source:`Lib/argparse.py`" msgstr "**Code source:** :source:`Lib/argparse.py`" -#: ../Doc/library/argparse.rst:None +#: library/argparse.rst:None msgid "Tutorial" msgstr "Tutoriel" -#: ../Doc/library/argparse.rst:18 +#: library/argparse.rst:18 msgid "" "This page contains the API reference information. For a more gentle " "introduction to Python command-line parsing, have a look at the :ref:" @@ -41,7 +41,7 @@ msgstr "" "à l'analyse des arguments de la ligne de commande, regardez :ref:`le " "tutoriel argparse `." -#: ../Doc/library/argparse.rst:22 +#: library/argparse.rst:22 msgid "" "The :mod:`argparse` module makes it easy to write user-friendly command-line " "interfaces. The program defines what arguments it requires, and :mod:" @@ -56,11 +56,11 @@ msgstr "" "le mode d'emploi, et lève des erreurs lorsque les utilisateurs fournissent " "au programme des arguments invalides." -#: ../Doc/library/argparse.rst:30 +#: library/argparse.rst:30 msgid "Example" msgstr "Exemple" -#: ../Doc/library/argparse.rst:32 +#: library/argparse.rst:32 msgid "" "The following code is a Python program that takes a list of integers and " "produces either the sum or the max::" @@ -68,7 +68,7 @@ msgstr "" "Le code suivant est un programme Python acceptant une liste de nombre " "entiers et en donnant soit la somme, soit le maximum ::" -#: ../Doc/library/argparse.rst:47 +#: library/argparse.rst:47 msgid "" "Assuming the Python code above is saved into a file called ``prog.py``, it " "can be run at the command line and provides useful help messages:" @@ -77,7 +77,7 @@ msgstr "" "nommé ``prog.py``, il peut être lancé en ligne de commande et fournit des " "messages d'aide utiles :" -#: ../Doc/library/argparse.rst:64 +#: library/argparse.rst:64 msgid "" "When run with the appropriate arguments, it prints either the sum or the max " "of the command-line integers:" @@ -85,19 +85,19 @@ msgstr "" "Lorsqu'il est lancé avec les arguments appropriés, il affiche la somme ou le " "maximum des entiers fournis en ligne de commande :" -#: ../Doc/library/argparse.rst:75 +#: library/argparse.rst:75 msgid "If invalid arguments are passed in, it will issue an error:" msgstr "Si des arguments invalides sont passés, il lève une erreur :" -#: ../Doc/library/argparse.rst:83 +#: library/argparse.rst:83 msgid "The following sections walk you through this example." msgstr "Les sections suivantes vous guident au travers de cet exemple." -#: ../Doc/library/argparse.rst:87 +#: library/argparse.rst:87 msgid "Creating a parser" msgstr "Créer un analyseur (*parser* en anglais)" -#: ../Doc/library/argparse.rst:89 +#: library/argparse.rst:89 msgid "" "The first step in using the :mod:`argparse` is creating an :class:" "`ArgumentParser` object::" @@ -105,7 +105,7 @@ msgstr "" "La première étape dans l'utilisation de :mod:`argparse` est de créer un " "objet :class:`ArgumentParser` ::" -#: ../Doc/library/argparse.rst:94 +#: library/argparse.rst:94 msgid "" "The :class:`ArgumentParser` object will hold all the information necessary " "to parse the command line into Python data types." @@ -114,11 +114,11 @@ msgstr "" "nécessaires pour interpréter la ligne de commande comme des types de données " "de Python." -#: ../Doc/library/argparse.rst:99 +#: library/argparse.rst:99 msgid "Adding arguments" msgstr "Ajouter des arguments" -#: ../Doc/library/argparse.rst:101 +#: library/argparse.rst:101 msgid "" "Filling an :class:`ArgumentParser` with information about program arguments " "is done by making calls to the :meth:`~ArgumentParser.add_argument` method. " @@ -135,7 +135,7 @@ msgstr "" "utilisée lorsque :meth:`~ArgumentParser.parse_args` est appelée. Par " "exemple ::" -#: ../Doc/library/argparse.rst:113 +#: library/argparse.rst:113 msgid "" "Later, calling :meth:`~ArgumentParser.parse_args` will return an object with " "two attributes, ``integers`` and ``accumulate``. The ``integers`` attribute " @@ -149,11 +149,11 @@ msgstr "" "soit la fonction :func:`sum`, si ``--sum`` était fourni à la ligne de " "commande, soit la fonction :func:`max` dans le cas contraire." -#: ../Doc/library/argparse.rst:121 +#: library/argparse.rst:121 msgid "Parsing arguments" msgstr "Analyse des arguments" -#: ../Doc/library/argparse.rst:123 +#: library/argparse.rst:123 msgid "" ":class:`ArgumentParser` parses arguments through the :meth:`~ArgumentParser." "parse_args` method. This will inspect the command line, convert each " @@ -161,107 +161,143 @@ msgid "" "most cases, this means a simple :class:`Namespace` object will be built up " "from attributes parsed out of the command line::" msgstr "" +":class:`ArgumentParser` analyse les arguments avec la méthode :meth:" +"`~ArgumentParser.parse_args`. Cette méthode inspecte la ligne de commande, " +"convertit chaque argument au type approprié et invoque l'action requise. " +"Dans la plupart des cas, le résultat est la construction d'un objet :class:" +"`Namespace` à partir des attributs analysés dans la ligne de commande ::" -#: ../Doc/library/argparse.rst:132 +#: library/argparse.rst:132 msgid "" "In a script, :meth:`~ArgumentParser.parse_args` will typically be called " "with no arguments, and the :class:`ArgumentParser` will automatically " "determine the command-line arguments from :data:`sys.argv`." msgstr "" +"Dans un script, :meth:`~ArgumentParser.parse_args` est généralement appelée " +"sans arguments et l'objet :class:`ArgumentParser` détermine automatiquement " +"les arguments de la ligne de commande à partir de :data:`sys.argv`." -#: ../Doc/library/argparse.rst:138 +#: library/argparse.rst:138 msgid "ArgumentParser objects" msgstr "Objets ``ArgumentParser``" -#: ../Doc/library/argparse.rst:147 +#: library/argparse.rst:147 msgid "" "Create a new :class:`ArgumentParser` object. All parameters should be passed " "as keyword arguments. Each parameter has its own more detailed description " "below, but in short they are:" msgstr "" +"Crée un nouvel objet :class:`ArgumentParser`. Tous les paramètres doivent " +"être passés en arguments nommés. Chaque paramètre a sa propre description " +"détaillée ci-dessous, mais en résumé ils sont :" -#: ../Doc/library/argparse.rst:151 +#: library/argparse.rst:151 msgid "prog_ - The name of the program (default: ``sys.argv[0]``)" -msgstr "" +msgstr "prog_ – Le nom du programme (par défaut : ``sys.argv[0]``)" -#: ../Doc/library/argparse.rst:153 +#: library/argparse.rst:153 msgid "" "usage_ - The string describing the program usage (default: generated from " "arguments added to parser)" msgstr "" +"usage_ – La chaîne décrivant l'utilisation du programme (par défaut : " +"générée à partir des arguments ajoutés à l'analyseur)" -#: ../Doc/library/argparse.rst:156 +#: library/argparse.rst:156 msgid "description_ - Text to display before the argument help (default: none)" msgstr "" +"description_ – Texte à afficher avant l'aide des arguments (par défaut : " +"vide)" -#: ../Doc/library/argparse.rst:158 +#: library/argparse.rst:158 msgid "epilog_ - Text to display after the argument help (default: none)" msgstr "" +"epilog_ – Texte à afficher après l'aide des arguments (par défaut : vide)" -#: ../Doc/library/argparse.rst:160 +#: library/argparse.rst:160 msgid "" "parents_ - A list of :class:`ArgumentParser` objects whose arguments should " "also be included" msgstr "" +"parents_ – Liste d'objets :class:`ArgumentParser` contenant des arguments " +"qui devraient aussi être inclus" -#: ../Doc/library/argparse.rst:163 +#: library/argparse.rst:163 msgid "formatter_class_ - A class for customizing the help output" msgstr "" +"formatter_class_ – Classe pour personnaliser la sortie du message d'aide" -#: ../Doc/library/argparse.rst:165 +#: library/argparse.rst:165 msgid "" "prefix_chars_ - The set of characters that prefix optional arguments " "(default: '-')" msgstr "" +"prefix_chars_ – Jeu de caractères qui précède les arguments optionnels (par " +"défaut : ``'-'``)" -#: ../Doc/library/argparse.rst:168 +#: library/argparse.rst:168 msgid "" "fromfile_prefix_chars_ - The set of characters that prefix files from which " "additional arguments should be read (default: ``None``)" msgstr "" +"fromfile_prefix_chars_ – Jeu de caractères qui précède les fichiers d'où des " +"arguments additionnels doivent être lus (par défaut : ``None``)" -#: ../Doc/library/argparse.rst:171 +#: library/argparse.rst:171 msgid "" "argument_default_ - The global default value for arguments (default: " "``None``)" msgstr "" +"argument_default_ – Valeur globale par défaut pour les arguments (par " +"défaut : ``None``)" -#: ../Doc/library/argparse.rst:174 +#: library/argparse.rst:174 msgid "" "conflict_handler_ - The strategy for resolving conflicting optionals " "(usually unnecessary)" msgstr "" +"conflict_handler_ – Stratégie pour résoudre les conflits entre les arguments " +"optionnels (non-nécessaire en général)" -#: ../Doc/library/argparse.rst:177 +#: library/argparse.rst:177 msgid "" "add_help_ - Add a ``-h/--help`` option to the parser (default: ``True``)" msgstr "" +"add_help_ – Ajoute une option d'aide ``-h/--help`` à l'analyseur (par " +"défaut : ``True``)" -#: ../Doc/library/argparse.rst:179 +#: library/argparse.rst:179 msgid "" "allow_abbrev_ - Allows long options to be abbreviated if the abbreviation is " "unambiguous. (default: ``True``)" msgstr "" +"allow_abbrev_ – Permet l'acceptation d'abréviations non-ambigües pour les " +"options longues (par défaut : ``True``)" -#: ../Doc/library/argparse.rst:182 +#: library/argparse.rst:182 msgid "*allow_abbrev* parameter was added." msgstr "Le paramètre *allow_abbrev* est ajouté." -#: ../Doc/library/argparse.rst:185 +#: library/argparse.rst:185 msgid "" "In previous versions, *allow_abbrev* also disabled grouping of short flags " "such as ``-vv`` to mean ``-v -v``." msgstr "" +"Dans les versions précédentes, *allow_abbrev* désactivait aussi le " +"regroupement de plusieurs options courtes telles que ``-vv`` pour signifier " +"``-v -v``." -#: ../Doc/library/argparse.rst:189 ../Doc/library/argparse.rst:687 +#: library/argparse.rst:687 msgid "The following sections describe how each of these are used." msgstr "" +"Les sections suivantes décrivent comment chacune de ces options sont " +"utilisées." -#: ../Doc/library/argparse.rst:193 +#: library/argparse.rst:193 msgid "prog" msgstr "Le paramètre *prog*" -#: ../Doc/library/argparse.rst:195 +#: library/argparse.rst:195 msgid "" "By default, :class:`ArgumentParser` objects use ``sys.argv[0]`` to determine " "how to display the name of the program in help messages. This default is " @@ -269,52 +305,71 @@ msgid "" "program was invoked on the command line. For example, consider a file named " "``myprogram.py`` with the following code::" msgstr "" +"Par défaut, l'objet :class:`ArgumentParser` utilise ``sys.argv[0]`` pour " +"déterminer comment afficher le nom du programme dans les messages d'aide. " +"Cette valeur par défaut est presque toujours souhaitable, car elle produit " +"un message d'aide qui correspond à la méthode utilisée pour lancer le " +"programme sur la ligne de commande. Par exemple, si on a un fichier nommé " +"``myprogram.py`` avec le code suivant ::" -#: ../Doc/library/argparse.rst:206 +#: library/argparse.rst:206 msgid "" "The help for this program will display ``myprogram.py`` as the program name " "(regardless of where the program was invoked from):" msgstr "" +"Le message d'aide pour ce programme affiche ``myprogram.py`` pour le nom du " +"programme (peu importe d'où le programme est lancé) :" -#: ../Doc/library/argparse.rst:225 +#: library/argparse.rst:225 msgid "" "To change this default behavior, another value can be supplied using the " "``prog=`` argument to :class:`ArgumentParser`::" msgstr "" +"Pour changer ce comportement par défaut, une valeur alternative est passée " +"par l'argument ``prog=`` du constructeur d':class:`ArgumentParser` ::" -#: ../Doc/library/argparse.rst:235 +#: library/argparse.rst:235 msgid "" "Note that the program name, whether determined from ``sys.argv[0]`` or from " "the ``prog=`` argument, is available to help messages using the ``%(prog)s`` " "format specifier." msgstr "" +"Prenez note que le nom du programme, peu importe s'il provient de ``sys." +"argv[0]`` ou de l'argument ``prog=``, est accessible aux messages d'aide " +"grâce au spécificateur de formatage ``%(prog)s``." -#: ../Doc/library/argparse.rst:252 +#: library/argparse.rst:252 msgid "usage" msgstr "Le paramètre *usage*" -#: ../Doc/library/argparse.rst:254 +#: library/argparse.rst:254 msgid "" "By default, :class:`ArgumentParser` calculates the usage message from the " "arguments it contains::" msgstr "" +"Par défaut, l'objet :class:`ArgumentParser` construit le message relatif à " +"l'utilisation à partir des arguments qu'il contient ::" -#: ../Doc/library/argparse.rst:270 +#: library/argparse.rst:270 msgid "" "The default message can be overridden with the ``usage=`` keyword argument::" msgstr "" +"Le message par défaut peut être remplacé grâce à l'argument nommé " +"``usage=`` ::" -#: ../Doc/library/argparse.rst:285 +#: library/argparse.rst:285 msgid "" "The ``%(prog)s`` format specifier is available to fill in the program name " "in your usage messages." msgstr "" +"Le spécificateur de formatage ``%(prog)s`` est disponible pour insérer le " +"nom du programme dans vos messages d'utilisation." -#: ../Doc/library/argparse.rst:290 +#: library/argparse.rst:290 msgid "description" msgstr "Le paramètre *description*" -#: ../Doc/library/argparse.rst:292 +#: library/argparse.rst:292 msgid "" "Most calls to the :class:`ArgumentParser` constructor will use the " "``description=`` keyword argument. This argument gives a brief description " @@ -322,36 +377,51 @@ msgid "" "description is displayed between the command-line usage string and the help " "messages for the various arguments::" msgstr "" +"La plupart des appels au constructeur d':class:`ArgumentParser` utilisent " +"l'argument nommé ``description=``. Cet argument donne une brève description " +"de ce que fait le programme et de comment il fonctionne. Dans les messages " +"d'aide, cette description est affichée entre le prototype de ligne de " +"commande et les messages d'aide des arguments ::" -#: ../Doc/library/argparse.rst:307 +#: library/argparse.rst:307 msgid "" "By default, the description will be line-wrapped so that it fits within the " "given space. To change this behavior, see the formatter_class_ argument." msgstr "" +"Par défaut, la description est sujette au retour à la ligne automatique pour " +"se conformer à l'espace disponible. Pour changer ce comportement, voyez " +"l'argument formatter_class_." -#: ../Doc/library/argparse.rst:312 +#: library/argparse.rst:312 msgid "epilog" msgstr "Le paramètre *epilog*" -#: ../Doc/library/argparse.rst:314 +#: library/argparse.rst:314 msgid "" "Some programs like to display additional description of the program after " "the description of the arguments. Such text can be specified using the " "``epilog=`` argument to :class:`ArgumentParser`::" msgstr "" +"Certains programmes aiment afficher un texte supplémentaire après la " +"description des arguments. Un tel texte peut être spécifié grâce à " +"l'argument ``epilog=`` du constructeur d':class:`ArgumentParser` ::" -#: ../Doc/library/argparse.rst:331 +#: library/argparse.rst:331 msgid "" "As with the description_ argument, the ``epilog=`` text is by default line-" "wrapped, but this behavior can be adjusted with the formatter_class_ " "argument to :class:`ArgumentParser`." msgstr "" +"De même que pour l'argument description_, le texte passé à ``epilog=`` est " +"sujet au retour à la ligne automatique. Ce comportement peut être ajusté " +"grâce à l'argument formatter_class_ du constructeur d':class:" +"`ArgumentParser`." -#: ../Doc/library/argparse.rst:337 +#: library/argparse.rst:337 msgid "parents" msgstr "Le paramètre *parents*" -#: ../Doc/library/argparse.rst:339 +#: library/argparse.rst:339 msgid "" "Sometimes, several parsers share a common set of arguments. Rather than " "repeating the definitions of these arguments, a single parser with all the " @@ -361,92 +431,137 @@ msgid "" "actions from them, and adds these actions to the :class:`ArgumentParser` " "object being constructed::" msgstr "" +"Parfois, plusieurs analyseurs partagent un jeu commun d'arguments. Plutôt " +"que de répéter les définitions de ces arguments, un analyseur commun qui " +"contient tous les arguments partagés peut être utilisé, puis passé à " +"l'argument ``parents=`` du constructeur d':class:`ArgumentParser`. " +"L'argument ``parents=`` accepte une liste d'objets :class:`ArgumentParser`, " +"accumule toutes les actions positionnelles et optionnelles de ces objets, " +"puis les ajoute à l'instance d':class:`ArgumentParser` en cours de " +"création ::" -#: ../Doc/library/argparse.rst:359 +#: library/argparse.rst:359 msgid "" "Note that most parent parsers will specify ``add_help=False``. Otherwise, " "the :class:`ArgumentParser` will see two ``-h/--help`` options (one in the " "parent and one in the child) and raise an error." msgstr "" +"Prenez note que la majorité des analyseurs parents doivent spécifier " +"``add_help=False``. Autrement, le constructeur d':class:`ArgumentParser` va " +"voir plus d'une option ``-h/--help`` (une pour le parent et une pour " +"l'instance en cours de création) et va lever une erreur." -#: ../Doc/library/argparse.rst:364 +#: library/argparse.rst:364 msgid "" "You must fully initialize the parsers before passing them via ``parents=``. " "If you change the parent parsers after the child parser, those changes will " "not be reflected in the child." msgstr "" +"Vous devez initialiser complètement les analyseurs avant de les passer à " +"``parents=``. Si vous changez les analyseurs parents après la création de " +"l'analyseur enfant, ces changements ne seront pas répercutés sur l'enfant." -#: ../Doc/library/argparse.rst:370 +#: library/argparse.rst:370 msgid "formatter_class" msgstr "Le paramètre *formatter_class*" -#: ../Doc/library/argparse.rst:372 +#: library/argparse.rst:372 msgid "" ":class:`ArgumentParser` objects allow the help formatting to be customized " "by specifying an alternate formatting class. Currently, there are four such " "classes:" msgstr "" +"Les objets :class:`ArgumentParser` permettent la personnalisation de la mise " +"en page des messages d'aide en spécifiant une classe de formatage " +"alternative. Il y a actuellement quatre classes de formatage :" -#: ../Doc/library/argparse.rst:381 +#: library/argparse.rst:381 msgid "" ":class:`RawDescriptionHelpFormatter` and :class:`RawTextHelpFormatter` give " "more control over how textual descriptions are displayed. By default, :class:" "`ArgumentParser` objects line-wrap the description_ and epilog_ texts in " "command-line help messages::" msgstr "" +":class:`RawDescriptionHelpFormatter` et :class:`RawTextHelpFormatter` vous " +"donnent plus de contrôle sur comment les descriptions textuelles sont " +"affichées. Par défaut, les contenus de description_ et epilog_ des objets :" +"class:`ArgumentParser` font l'objet du retour à la ligne automatique dans " +"les messages d'aide ::" -#: ../Doc/library/argparse.rst:406 +#: library/argparse.rst:406 msgid "" "Passing :class:`RawDescriptionHelpFormatter` as ``formatter_class=`` " "indicates that description_ and epilog_ are already correctly formatted and " "should not be line-wrapped::" msgstr "" +"Passer :class:`RawDescriptionHelpFormatter` à ``formatter_class=`` indique " +"que les textes de description_ et d'epilog_ ont déjà été formatés " +"correctement et qu'ils ne doivent pas faire l'objet d'un retour à la ligne " +"automatique ::" -#: ../Doc/library/argparse.rst:432 +#: library/argparse.rst:432 msgid "" ":class:`RawTextHelpFormatter` maintains whitespace for all sorts of help " "text, including argument descriptions. However, multiple new lines are " "replaced with one. If you wish to preserve multiple blank lines, add spaces " "between the newlines." msgstr "" +":class:`RawTextHelpFormatter` conserve les espaces pour toutes les " +"catégories de textes d'aide, y compris les descriptions des arguments. Notez " +"bien que plusieurs retours à la ligne consécutifs sont remplacés par un " +"seul. Si vous voulez garder plusieurs sauts de ligne, ajoutez des espaces " +"entre les caractères de changement de ligne." -#: ../Doc/library/argparse.rst:437 +#: library/argparse.rst:437 msgid "" ":class:`ArgumentDefaultsHelpFormatter` automatically adds information about " "default values to each of the argument help messages::" msgstr "" +":class:`ArgumentDefaultsHelpFormatter` ajoute automatiquement l'information " +"sur les valeurs par défaut aux messages d'aide de tous les arguments ::" -#: ../Doc/library/argparse.rst:455 +#: library/argparse.rst:455 msgid "" ":class:`MetavarTypeHelpFormatter` uses the name of the type_ argument for " "each argument as the display name for its values (rather than using the " "dest_ as the regular formatter does)::" msgstr "" +":class:`MetavarTypeHelpFormatter` utilise le nom du type_ de l'argument pour " +"chacun des arguments comme nom d'affichage pour leurs valeurs (contrairement " +"au formateur standard qui utilise dest_) ::" -#: ../Doc/library/argparse.rst:476 +#: library/argparse.rst:476 msgid "prefix_chars" msgstr "Le paramètre *prefix_chars*" -#: ../Doc/library/argparse.rst:478 +#: library/argparse.rst:478 msgid "" "Most command-line options will use ``-`` as the prefix, e.g. ``-f/--foo``. " "Parsers that need to support different or additional prefix characters, e.g. " "for options like ``+f`` or ``/foo``, may specify them using the " "``prefix_chars=`` argument to the ArgumentParser constructor::" msgstr "" +"La majorité des options sur la ligne de commande utilisent ``-`` comme " +"préfixe (par exemple : ``-f/--foo``). Pour les analyseurs qui doivent " +"accepter des caractères préfixes autres ou additionnels (par exemple pour " +"les options ``+f`` ou ``/foo``), vous devez les spécifier en utilisant " +"l'argument ``prefix_chars=`` du constructeur d'``ArgumentParser`` ::" -#: ../Doc/library/argparse.rst:490 +#: library/argparse.rst:490 msgid "" "The ``prefix_chars=`` argument defaults to ``'-'``. Supplying a set of " "characters that does not include ``-`` will cause ``-f/--foo`` options to be " "disallowed." msgstr "" +"La valeur par défaut de ``prefix_chars=`` est ``'-'``. Passer un jeu de " +"caractères qui n'inclut pas ``-`` provoquera le refus des options comme ``-" +"f/--foo``." -#: ../Doc/library/argparse.rst:496 +#: library/argparse.rst:496 msgid "fromfile_prefix_chars" msgstr "Le paramètre *fromfile_prefix_chars*" -#: ../Doc/library/argparse.rst:498 +#: library/argparse.rst:498 msgid "" "Sometimes, for example when dealing with a particularly long argument lists, " "it may make sense to keep the list of arguments in a file rather than typing " @@ -455,8 +570,15 @@ msgid "" "with any of the specified characters will be treated as files, and will be " "replaced by the arguments they contain. For example::" msgstr "" +"Parfois, par exemple quand on traite une liste d'arguments particulièrement " +"longue, il est logique de stocker la liste d'arguments dans un fichier " +"plutôt que de la saisir sur la ligne de commande. Si un jeu de caractères " +"est passé à l'argument ``fromfile_prefix_chars=`` du constructeur de :class:" +"`ArgumentParser`, alors les arguments qui commencent par l'un des caractères " +"spécifiés seront traités comme des fichiers et seront remplacés par les " +"arguments contenus dans ces fichiers. Par exemple ::" -#: ../Doc/library/argparse.rst:512 +#: library/argparse.rst:512 msgid "" "Arguments read from a file must by default be one per line (but see also :" "meth:`~ArgumentParser.convert_arg_line_to_args`) and are treated as if they " @@ -465,18 +587,27 @@ msgid "" "'@args.txt']`` is considered equivalent to the expression ``['-f', 'foo', '-" "f', 'bar']``." msgstr "" +"Par défaut, les arguments lus à partir d'un fichier doivent être chacun sur " +"une nouvelle ligne (voir aussi :meth:`~ArgumentParser." +"convert_arg_line_to_args`) et ils sont traités comme s'ils étaient au même " +"emplacement que le fichier original référençant les arguments de la ligne de " +"commande. Ainsi dans l'exemple ci-dessus, l'expression ``['-f', 'foo', " +"'@args.txt']`` est équivalente à l'expression ``['-f', 'foo', '-f', 'bar']``." -#: ../Doc/library/argparse.rst:518 +#: library/argparse.rst:518 msgid "" "The ``fromfile_prefix_chars=`` argument defaults to ``None``, meaning that " "arguments will never be treated as file references." msgstr "" +"Par défaut, l'argument ``fromfile_prefix_chars=`` est ``None``, ce qui " +"signifie que les arguments ne seront pas traités en tant que références à " +"des fichiers." -#: ../Doc/library/argparse.rst:523 +#: library/argparse.rst:523 msgid "argument_default" msgstr "Le paramètre *argument_default*" -#: ../Doc/library/argparse.rst:525 +#: library/argparse.rst:525 msgid "" "Generally, argument defaults are specified either by passing a default to :" "meth:`~ArgumentParser.add_argument` or by calling the :meth:`~ArgumentParser." @@ -487,153 +618,209 @@ msgid "" "suppress attribute creation on :meth:`~ArgumentParser.parse_args` calls, we " "supply ``argument_default=SUPPRESS``::" msgstr "" - -#: ../Doc/library/argparse.rst:545 +"Généralement, les valeurs par défaut des arguments sont spécifiées soit en " +"passant la valeur désirée à :meth:`~ArgumentParser.add_argument` soit par un " +"appel à la méthode :meth:`~ArgumentParser.set_defaults`. Cette méthode " +"accepte un ensemble de paires nom-valeur. Il est parfois pertinent de " +"configurer une valeur par défaut pour tous les arguments d'un analyseur. On " +"peut activer ce comportement en passant la valeur désirée à l'argument nommé " +"``argument_default=`` du constructeur de :class:`ArgumentParser`. Par " +"exemple, pour supprimer globalement la création d'attributs pendant l'appel " +"de :meth:`~ArgumentParser.parse_args`, on fournit " +"``argument_default=SUPPRESS`` ::" + +#: library/argparse.rst:545 msgid "allow_abbrev" msgstr "Le paramètre *allow_abbrev*" -#: ../Doc/library/argparse.rst:547 +#: library/argparse.rst:547 msgid "" "Normally, when you pass an argument list to the :meth:`~ArgumentParser." "parse_args` method of an :class:`ArgumentParser`, it :ref:`recognizes " "abbreviations ` of long options." msgstr "" +"En temps normal, lorsque vous passez une liste d'arguments à la méthode :" +"meth:`~ArgumentParser.parse_args` d':class:`ArgumentParser` :ref:`elle " +"accepte les abréviations ` des options longues." -#: ../Doc/library/argparse.rst:551 +#: library/argparse.rst:551 msgid "This feature can be disabled by setting ``allow_abbrev`` to ``False``::" msgstr "" +"Cette fonctionnalité peut être désactivée en passant ``False`` à " +"``allow_abbrev`` ::" -#: ../Doc/library/argparse.rst:564 +#: library/argparse.rst:564 msgid "conflict_handler" msgstr "Le paramètre *conflict_handler*" -#: ../Doc/library/argparse.rst:566 +#: library/argparse.rst:566 msgid "" ":class:`ArgumentParser` objects do not allow two actions with the same " "option string. By default, :class:`ArgumentParser` objects raise an " "exception if an attempt is made to create an argument with an option string " "that is already in use::" msgstr "" +"Les objets :class:`ArgumentParser` ne peuvent pas avoir plus d'une option " +"avec la même chaîne d'option. Par défaut, les objets :class:`ArgumentParser` " +"lèvent une exception si on essaie de créer un argument avec une chaîne " +"d'option qui est déjà utilisée ::" -#: ../Doc/library/argparse.rst:578 +#: library/argparse.rst:578 msgid "" "Sometimes (e.g. when using parents_) it may be useful to simply override any " "older arguments with the same option string. To get this behavior, the " "value ``'resolve'`` can be supplied to the ``conflict_handler=`` argument " "of :class:`ArgumentParser`::" msgstr "" +"Parfois, par exemple si on utilise des analyseurs parents_, il est " +"souhaitable de surcharger les anciens arguments qui partagent la même chaîne " +"d'option. Pour obtenir ce comportement, vous devez passer ``'resolve'`` à " +"l'argument ``conflict_handler=`` du constructeur d':class:`ArgumentParser` ::" -#: ../Doc/library/argparse.rst:594 +#: library/argparse.rst:594 msgid "" "Note that :class:`ArgumentParser` objects only remove an action if all of " "its option strings are overridden. So, in the example above, the old ``-f/--" "foo`` action is retained as the ``-f`` action, because only the ``--foo`` " "option string was overridden." msgstr "" +"Prenez note que les objets :class:`ArgumentParser` n'enlèvent une action que " +"si toutes ses chaînes d'options sont surchargées. Ainsi dans l'exemple ci-" +"dessus, l'action ``-f/--foo`` du parent est conservée comme l'action ``-f`` " +"puisque ``--foo`` est la seule chaîne d'options qui a été surchargée." -#: ../Doc/library/argparse.rst:601 +#: library/argparse.rst:601 msgid "add_help" msgstr "Le paramètre *add_help*" -#: ../Doc/library/argparse.rst:603 +#: library/argparse.rst:603 msgid "" "By default, ArgumentParser objects add an option which simply displays the " "parser's help message. For example, consider a file named ``myprogram.py`` " "containing the following code::" msgstr "" +"Par défaut, les objets ``ArgumentParser`` ajoutent une option qui offre " +"l'affichage du message d'aide de l'analyseur. Par exemple, prenons le " +"fichier ``myprogram.py`` qui contient le code suivant ::" -#: ../Doc/library/argparse.rst:612 +#: library/argparse.rst:612 msgid "" "If ``-h`` or ``--help`` is supplied at the command line, the ArgumentParser " "help will be printed:" msgstr "" +"Si ``-h`` ou ``--help`` est passé sur la ligne de commande, le message " +"d'aide de l'``ArgumentParser`` sera affiché :" -#: ../Doc/library/argparse.rst:624 +#: library/argparse.rst:624 msgid "" "Occasionally, it may be useful to disable the addition of this help option. " "This can be achieved by passing ``False`` as the ``add_help=`` argument to :" "class:`ArgumentParser`::" msgstr "" +"Il est parfois utile de désactiver l'ajout de cette option d'aide. Pour ce " +"faire, vous devez passer ``False`` à l'argument ``add_help=`` du " +"constructeur d':class:`ArgumentParser` ::" -#: ../Doc/library/argparse.rst:636 +#: library/argparse.rst:636 msgid "" "The help option is typically ``-h/--help``. The exception to this is if the " "``prefix_chars=`` is specified and does not include ``-``, in which case ``-" "h`` and ``--help`` are not valid options. In this case, the first character " "in ``prefix_chars`` is used to prefix the help options::" msgstr "" +"En général, l'option d'aide est ``-h/--help``. L'exception à cette règle est " +"quand une valeur est passée à ``prefix_chars=`` et qu'elle n'inclue pas ``-" +"``, auquel cas, ``-h`` et ``--help`` ne sont pas des options valides. Dans " +"ce cas, le premier caractère de ``prefix_chars`` est utilisé comme préfixe " +"des options d'aide ::" -#: ../Doc/library/argparse.rst:651 +#: library/argparse.rst:651 msgid "The add_argument() method" msgstr "La méthode *add_argument()*" -#: ../Doc/library/argparse.rst:657 +#: library/argparse.rst:657 msgid "" "Define how a single command-line argument should be parsed. Each parameter " "has its own more detailed description below, but in short they are:" msgstr "" +"Définie comment une option de ligne de commande doit être analysée. Chacun " +"des paramètres est décrit plus en détails ci-bas, mais en résumé ils sont :" -#: ../Doc/library/argparse.rst:660 +#: library/argparse.rst:660 msgid "" "`name or flags`_ - Either a name or a list of option strings, e.g. ``foo`` " "or ``-f, --foo``." msgstr "" +"`name_or_flags`_ – un nom ou une liste de chaînes d'options. Par exemple : " +"``foo`` ou ``-f, --foo``." -#: ../Doc/library/argparse.rst:663 +#: library/argparse.rst:663 msgid "" "action_ - The basic type of action to be taken when this argument is " "encountered at the command line." msgstr "" +"action_ – Type élémentaire de l'action à entreprendre quand cet argument est " +"reconnu sur la ligne de commande." -#: ../Doc/library/argparse.rst:666 +#: library/argparse.rst:666 msgid "nargs_ - The number of command-line arguments that should be consumed." -msgstr "" +msgstr "nargs_ – Nombre d'arguments de la ligne de commande à capturer." -#: ../Doc/library/argparse.rst:668 +#: library/argparse.rst:668 msgid "" "const_ - A constant value required by some action_ and nargs_ selections." msgstr "" +"const_ – Valeur constante requise par certains choix d'action_ et de nargs_." -#: ../Doc/library/argparse.rst:670 +#: library/argparse.rst:670 msgid "" "default_ - The value produced if the argument is absent from the command " "line." msgstr "" +"default_ – Valeur produite si l'argument est absent de la ligne de commande." -#: ../Doc/library/argparse.rst:673 +#: library/argparse.rst:673 msgid "" "type_ - The type to which the command-line argument should be converted." msgstr "" +"type_ – Type vers lequel l'argument sur la ligne de commande doit être " +"converti." -#: ../Doc/library/argparse.rst:675 +#: library/argparse.rst:675 msgid "choices_ - A container of the allowable values for the argument." msgstr "" +"choices_ – Conteneur qui contient toutes les valeurs permises pour cet " +"argument." -#: ../Doc/library/argparse.rst:677 +#: library/argparse.rst:677 msgid "" "required_ - Whether or not the command-line option may be omitted (optionals " "only)." msgstr "" +"required_ – ``True`` si l'option sur la ligne de commande est obligatoire " +"(ne s'applique qu'aux arguments optionnels)." -#: ../Doc/library/argparse.rst:680 +#: library/argparse.rst:680 msgid "help_ - A brief description of what the argument does." -msgstr "" +msgstr "help_ – Brève description de ce que fait l'argument." -#: ../Doc/library/argparse.rst:682 +#: library/argparse.rst:682 msgid "metavar_ - A name for the argument in usage messages." -msgstr "" +msgstr "metavar_ – Nom de l'argument dans les messages d'utilisations." -#: ../Doc/library/argparse.rst:684 +#: library/argparse.rst:684 msgid "" "dest_ - The name of the attribute to be added to the object returned by :" "meth:`parse_args`." msgstr "" +"dest_ – Nom de l'attribut qui sera ajouté à l'objet retourné par :meth:" +"`parse_args`." -#: ../Doc/library/argparse.rst:691 +#: library/argparse.rst:691 msgid "name or flags" msgstr "Les paramètres *name* et *flags*" -#: ../Doc/library/argparse.rst:693 +#: library/argparse.rst:693 msgid "" "The :meth:`~ArgumentParser.add_argument` method must know whether an " "optional argument, like ``-f`` or ``--foo``, or a positional argument, like " @@ -642,23 +829,33 @@ msgid "" "or a simple argument name. For example, an optional argument could be " "created like::" msgstr "" +"La méthode :meth:`~ArgumentParser.add_argument` doit savoir si c'est un " +"argument optionnel (tel que ``-f`` ou ``--foo``) ou plutôt un argument " +"positionnel (tel qu'une liste de noms de fichiers) qui est attendu. Le " +"premier argument passé à :meth:`~ArgumentParser.add_argument` doit donc être " +"soit une série de noms d'options tels qu'ils apparaissent sur la ligne de " +"commande, soit simplement un nom si on désire un argument positionnel. Par " +"exemple, un argument optionnel est créé comme suit ::" -#: ../Doc/library/argparse.rst:702 +#: library/argparse.rst:702 msgid "while a positional argument could be created like::" -msgstr "" +msgstr "alors qu'un argument positionnel est créé comme suit ::" -#: ../Doc/library/argparse.rst:706 +#: library/argparse.rst:706 msgid "" "When :meth:`~ArgumentParser.parse_args` is called, optional arguments will " "be identified by the ``-`` prefix, and the remaining arguments will be " "assumed to be positional::" msgstr "" +"Lors le l'appel de :meth:`~ArgumentParser.parse_args`, les arguments qui " +"commencent par le préfixe ``-`` sont présumés optionnels et tous les autres " +"sont présumés positionnels ::" -#: ../Doc/library/argparse.rst:723 +#: library/argparse.rst:723 msgid "action" msgstr "Le paramètre *action*" -#: ../Doc/library/argparse.rst:725 +#: library/argparse.rst:725 msgid "" ":class:`ArgumentParser` objects associate command-line arguments with " "actions. These actions can do just about anything with the command-line " @@ -667,36 +864,56 @@ msgid "" "``action`` keyword argument specifies how the command-line arguments should " "be handled. The supplied actions are:" msgstr "" +"Les objets :class:`ArgumentParser` associent les arguments de la ligne de " +"commande avec des actions. Ces actions peuvent soumettre les arguments de la " +"ligne de commande auxquels elles sont associées à un traitement arbitraire, " +"mais la majorité des actions se contentent d'ajouter un attribut à l'objet " +"renvoyé par :meth:`~ArgumentParser.parse_args`. L'argument nommé ``action`` " +"indique comment l'argument de la ligne de commande sera traité. Les actions " +"natives sont :" -#: ../Doc/library/argparse.rst:731 +#: library/argparse.rst:731 msgid "" "``'store'`` - This just stores the argument's value. This is the default " "action. For example::" msgstr "" +"``'store'`` – Stocke la valeur de l'argument sans autre traitement. Ceci est " +"l'action par défaut. Par exemple ::" -#: ../Doc/library/argparse.rst:739 +#: library/argparse.rst:739 msgid "" "``'store_const'`` - This stores the value specified by the const_ keyword " "argument. The ``'store_const'`` action is most commonly used with optional " "arguments that specify some sort of flag. For example::" msgstr "" +"``'store_const'`` – Stocke la valeur passée à l'argument nommé const_. " +"L'action ``'store_const'`` est typiquement utilisée avec des arguments " +"optionnels qui représentent un drapeau ou une condition similaire. Par " +"exemple ::" -#: ../Doc/library/argparse.rst:748 +#: library/argparse.rst:748 msgid "" "``'store_true'`` and ``'store_false'`` - These are special cases of " "``'store_const'`` used for storing the values ``True`` and ``False`` " "respectively. In addition, they create default values of ``False`` and " "``True`` respectively. For example::" msgstr "" +"``'store_true'`` et ``'store_false'`` – Ces actions sont des cas " +"particuliers de ``'store_const'`` pour lesquelles la valeur stockée est " +"``True`` et ``False``, respectivement. Aussi, ces actions ont comme valeur " +"par défaut ``False`` et ``True``, respectivement. Par exemple ::" -#: ../Doc/library/argparse.rst:760 +#: library/argparse.rst:760 msgid "" "``'append'`` - This stores a list, and appends each argument value to the " "list. This is useful to allow an option to be specified multiple times. " "Example usage::" msgstr "" +"``'append'`` – Stocke une liste et ajoute la valeur de l'argument à la " +"liste. Ceci est pratique pour les options qui peuvent être répétées sur la " +"ligne de commande ::" -#: ../Doc/library/argparse.rst:769 +#: library/argparse.rst:769 msgid "" "``'append_const'`` - This stores a list, and appends the value specified by " "the const_ keyword argument to the list. (Note that the const_ keyword " @@ -704,39 +921,57 @@ msgid "" "useful when multiple arguments need to store constants to the same list. For " "example::" msgstr "" +"``'append_const'`` – Stocke une liste et ajoute la valeur passée à " +"l'argument nommé const_ à la fin de la liste. Notez que la valeur par défaut " +"de l'argument nommé const_ est ``None``. L'action ``'append_const'`` est " +"pratique quand plusieurs arguments ont besoin de stocker des constantes dans " +"la même liste. Par exemple ::" -#: ../Doc/library/argparse.rst:781 +#: library/argparse.rst:781 msgid "" "``'count'`` - This counts the number of times a keyword argument occurs. For " "example, this is useful for increasing verbosity levels::" msgstr "" +"``'count'`` – Compte le nombre d'occurrences de l'argument nommé. Ceci est " +"pratique, par exemple, pour augmenter le niveau de verbosité ::" -#: ../Doc/library/argparse.rst:789 +#: library/argparse.rst:789 msgid "Note, the *default* will be ``None`` unless explicitly set to *0*." msgstr "" +"Prenez note que la valeur de *default* sera ``None`` à moins qu'elle soit " +"explicitement définie à ``0``." -#: ../Doc/library/argparse.rst:791 +#: library/argparse.rst:791 msgid "" "``'help'`` - This prints a complete help message for all the options in the " "current parser and then exits. By default a help action is automatically " "added to the parser. See :class:`ArgumentParser` for details of how the " "output is created." msgstr "" +"``'help'`` – Affiche le message d'aide complet pour toutes les options de " +"l'analyseur puis termine l'exécution. Une action ``help`` est " +"automatiquement ajoutée à l'analyseur par défaut. Consultez :class:" +"`ArgumentParser` pour les détails de la création du contenu de l'aide." -#: ../Doc/library/argparse.rst:796 +#: library/argparse.rst:796 msgid "" "``'version'`` - This expects a ``version=`` keyword argument in the :meth:" "`~ArgumentParser.add_argument` call, and prints version information and " "exits when invoked::" msgstr "" +"``'version'`` – Affiche la version du programme puis termine l'exécution. " +"Cette action requiert l'argument nommé ``version=`` dans l'appel à :meth:" +"`~ArgumentParser.add_argument` ::" -#: ../Doc/library/argparse.rst:806 +#: library/argparse.rst:806 msgid "" "``'extend'`` - This stores a list, and extends each argument value to the " "list. Example usage::" msgstr "" +"``'extend'`` – Stock une liste et ajoute à la liste chacune des valeurs de " +"l'argument reçues. Voici un exemple de son utilisation ::" -#: ../Doc/library/argparse.rst:817 +#: library/argparse.rst:817 msgid "" "You may also specify an arbitrary action by passing an Action subclass or " "other object that implements the same interface. The recommended way to do " @@ -744,39 +979,48 @@ msgid "" "optionally the ``__init__`` method." msgstr "" -#: ../Doc/library/argparse.rst:822 +#: library/argparse.rst:822 msgid "An example of a custom action::" msgstr "Un exemple d'action personnalisée ::" -#: ../Doc/library/argparse.rst:842 +#: library/argparse.rst:842 msgid "For more details, see :class:`Action`." msgstr "Pour plus d'information, voir :class:`Action`." -#: ../Doc/library/argparse.rst:845 +#: library/argparse.rst:845 msgid "nargs" msgstr "Le paramètre *nargs*" -#: ../Doc/library/argparse.rst:847 +#: library/argparse.rst:847 msgid "" "ArgumentParser objects usually associate a single command-line argument with " "a single action to be taken. The ``nargs`` keyword argument associates a " "different number of command-line arguments with a single action. The " "supported values are:" msgstr "" +"En général, les objets ``ArgumentParser`` associent un seul argument de la " +"ligne de commande à une seule action à entreprendre. L'argument nommé " +"``nargs`` associe un nombre différent d'arguments de la ligne de commande à " +"une action. Les valeurs reconnues sont :" -#: ../Doc/library/argparse.rst:852 +#: library/argparse.rst:852 msgid "" "``N`` (an integer). ``N`` arguments from the command line will be gathered " "together into a list. For example::" msgstr "" +"``N`` (un entier). ``N`` arguments de la ligne de commande seront capturés " +"ensemble et stockés dans une liste. Par exemple ::" -#: ../Doc/library/argparse.rst:861 +#: library/argparse.rst:861 msgid "" "Note that ``nargs=1`` produces a list of one item. This is different from " "the default, in which the item is produced by itself." msgstr "" +"Prenez note que ``nargs=1`` produit une liste avec un seul élément. Ceci est " +"différent du comportement par défaut qui produit l'élément directement " +"(comme un scalaire)." -#: ../Doc/library/argparse.rst:866 +#: library/argparse.rst:866 msgid "" "``'?'``. One argument will be consumed from the command line if possible, " "and produced as a single item. If no command-line argument is present, the " @@ -785,64 +1029,93 @@ msgid "" "by a command-line argument. In this case the value from const_ will be " "produced. Some examples to illustrate this::" msgstr "" +"``'?'``. Un argument sera capturé de la ligne de commande et produit " +"directement. Si aucun argument n'est présent sur la ligne de commande, la " +"valeur de default_ est produite. Prenez note que pour les arguments " +"optionnels, il est aussi possible que la chaîne d'option soit présente mais " +"qu'elle ne soit pas suivie d'un argument. Dans ce cas, la valeur de const_ " +"est produite. Voici quelques exemples pour illustrer ceci ::" -#: ../Doc/library/argparse.rst:883 +#: library/argparse.rst:883 msgid "" "One of the more common uses of ``nargs='?'`` is to allow optional input and " "output files::" msgstr "" +"``nargs='?'`` est fréquemment utilisé pour accepter des fichiers d'entrée et " +"de sortie optionnels ::" -#: ../Doc/library/argparse.rst:900 +#: library/argparse.rst:900 msgid "" "``'*'``. All command-line arguments present are gathered into a list. Note " "that it generally doesn't make much sense to have more than one positional " "argument with ``nargs='*'``, but multiple optional arguments with " "``nargs='*'`` is possible. For example::" msgstr "" +"``'*'``. Tous les arguments présents sur la ligne de commande sont capturés " +"dans une liste. Prenez note qu'il n'est pas logique d'avoir plus d'un " +"argument positionnel avec ``nargs='*'``, mais il est par contre possible " +"d'avoir plusieurs arguments optionnels qui spécifient ``nargs='*'``. Par " +"exemple ::" -#: ../Doc/library/argparse.rst:914 +#: library/argparse.rst:914 msgid "" "``'+'``. Just like ``'*'``, all command-line args present are gathered into " "a list. Additionally, an error message will be generated if there wasn't at " "least one command-line argument present. For example::" msgstr "" +"``'+'``. Comme pour ``'*'``, tous les arguments présents sur la ligne de " +"commande sont capturés dans une liste. De plus, un message d'erreur est " +"produit s'il n'y a pas au moins un argument présent sur la ligne de " +"commande. Par exemple ::" -#: ../Doc/library/argparse.rst:928 +#: library/argparse.rst:928 msgid "" "``argparse.REMAINDER``. All the remaining command-line arguments are " "gathered into a list. This is commonly useful for command line utilities " "that dispatch to other command line utilities::" msgstr "" -#: ../Doc/library/argparse.rst:939 +#: library/argparse.rst:939 msgid "" "If the ``nargs`` keyword argument is not provided, the number of arguments " "consumed is determined by the action_. Generally this means a single " "command-line argument will be consumed and a single item (not a list) will " "be produced." msgstr "" +"Si l'argument nommé ``nargs`` n'est pas fourni, le nombre d'arguments " +"capturés est déterminé par l'action_. En général, c'est un seul argument de " +"la ligne de commande qui est capturé et il est produit directement." -#: ../Doc/library/argparse.rst:945 +#: library/argparse.rst:945 msgid "const" msgstr "Le paramètre *const*" -#: ../Doc/library/argparse.rst:947 +#: library/argparse.rst:947 msgid "" "The ``const`` argument of :meth:`~ArgumentParser.add_argument` is used to " "hold constant values that are not read from the command line but are " "required for the various :class:`ArgumentParser` actions. The two most " "common uses of it are:" msgstr "" +"L'argument ``const`` d':meth:`~ArgumentParser.add_argument` est utilisé pour " +"stocker une constante qui n'est pas lue depuis la ligne de commande mais qui " +"est requise par certaines actions d':class:`ArgumentParser`. Les deux " +"utilisations les plus communes sont :" -#: ../Doc/library/argparse.rst:951 +#: library/argparse.rst:951 msgid "" "When :meth:`~ArgumentParser.add_argument` is called with " "``action='store_const'`` or ``action='append_const'``. These actions add " "the ``const`` value to one of the attributes of the object returned by :meth:" "`~ArgumentParser.parse_args`. See the action_ description for examples." msgstr "" +"quand :meth:`~ArgumentParser.add_argument` est appelée avec " +"``action='store_const'`` ou ``action='append_const'``. Ces actions ajoutent " +"la valeur de ``const`` à l'un des attributs de l'objet renvoyé par :meth:" +"`~ArgumentParser.parse_args`. Consultez la description d'action_ pour voir " +"quelques exemples ;" -#: ../Doc/library/argparse.rst:956 +#: library/argparse.rst:956 msgid "" "When :meth:`~ArgumentParser.add_argument` is called with option strings " "(like ``-f`` or ``--foo``) and ``nargs='?'``. This creates an optional " @@ -851,18 +1124,28 @@ msgid "" "command-line argument following it, the value of ``const`` will be assumed " "instead. See the nargs_ description for examples." msgstr "" +"quand la méthode :meth:`~ArgumentParser.add_argument` est appelée avec des " +"chaînes d'options (telles que ``-f`` ou ``--foo``) et ``nargs='?'``. Ceci " +"crée un argument optionnel qui peut être suivi de zéro ou un argument de " +"ligne de commande. Quand la ligne de commande est analysée, si la chaîne " +"d'option est trouvée mais qu'elle n'est pas suivie par un argument, la " +"valeur de ``const`` est utilisée. Consultez la description de nargs_ pour " +"voir quelques exemples." -#: ../Doc/library/argparse.rst:963 +#: library/argparse.rst:963 msgid "" "With the ``'store_const'`` and ``'append_const'`` actions, the ``const`` " "keyword argument must be given. For other actions, it defaults to ``None``." msgstr "" +"Pour les actions ``'store_const'`` et ``'append_const'``, l'argument nommé " +"``const`` doit être spécifié. Pour toutes les autres actions, il est " +"optionnel et sa valeur par défaut est ``None``." -#: ../Doc/library/argparse.rst:968 +#: library/argparse.rst:968 msgid "default" msgstr "Le paramètre *default*" -#: ../Doc/library/argparse.rst:970 +#: library/argparse.rst:970 msgid "" "All optional arguments and some positional arguments may be omitted at the " "command line. The ``default`` keyword argument of :meth:`~ArgumentParser." @@ -871,32 +1154,49 @@ msgid "" "the ``default`` value is used when the option string was not present at the " "command line::" msgstr "" +"Tous les arguments optionnels et certains arguments positionnels peuvent " +"être omis à la ligne de commande. L'argument nommé ``default`` de la " +"méthode :meth:`~ArgumentParser.add_argument` (qui vaut ``None`` par défaut), " +"indique quelle valeur sera utilisé si l'argument est absent de la ligne de " +"commande. Pour les arguments optionnels, la valeur de ``default`` est " +"utilisée si la chaîne d'option n'est pas présente sur la ligne de commande ::" -#: ../Doc/library/argparse.rst:984 +#: library/argparse.rst:984 msgid "" "If the ``default`` value is a string, the parser parses the value as if it " "were a command-line argument. In particular, the parser applies any type_ " "conversion argument, if provided, before setting the attribute on the :class:" "`Namespace` return value. Otherwise, the parser uses the value as is::" msgstr "" +"Si la valeur de ``default`` est une chaîne, l'analyseur analyse cette valeur " +"comme si c'était un argument de la ligne de commande. En particulier, " +"l'analyseur applique la conversion spécifiée par l'argument type_ (si elle " +"est fournie) avant d'affecter l'attribut à l'objet :class:`Namespace` " +"renvoyé. Autrement, l'analyseur utilise la valeur telle qu'elle ::" -#: ../Doc/library/argparse.rst:995 +#: library/argparse.rst:995 msgid "" "For positional arguments with nargs_ equal to ``?`` or ``*``, the " "``default`` value is used when no command-line argument was present::" msgstr "" +"Pour les arguments positionnels pour lesquels nargs_ est ``?`` ou ``*``, la " +"valeur de ``default`` est utilisée quand l'argument est absent de la ligne " +"de commande ::" -#: ../Doc/library/argparse.rst:1006 +#: library/argparse.rst:1006 msgid "" "Providing ``default=argparse.SUPPRESS`` causes no attribute to be added if " "the command-line argument was not present::" msgstr "" +"Si vous passez ``default=argparse.SUPPRESS``, aucun attribut ne sera ajouté " +"à l'objet ``Namespace`` quand l'argument est absent de la ligne de " +"commande ::" -#: ../Doc/library/argparse.rst:1018 +#: library/argparse.rst:1018 msgid "type" msgstr "Le paramètre *type*" -#: ../Doc/library/argparse.rst:1020 +#: library/argparse.rst:1020 msgid "" "By default, :class:`ArgumentParser` objects read command-line arguments in " "as simple strings. However, quite often the command-line string should " @@ -906,42 +1206,61 @@ msgid "" "performed. Common built-in types and functions can be used directly as the " "value of the ``type`` argument::" msgstr "" +"Par défaut, les objets :class:`ArgumentParser` capturent les arguments de la " +"ligne de commande comme des chaînes. Très souvent par contre, on désire " +"interpréter les chaînes de la ligne de commande comme un autre type, tel " +"que :class:`float` ou :class:`int`. L'argument nommé ``type`` d':meth:" +"`~ArgumentParser.add_argument` nous permet de faire les vérifications et les " +"conversions de type nécessaires. Les types et les fonctions natives peuvent " +"être utilisés directement pour la valeur de l'argument ``type`` ::" -#: ../Doc/library/argparse.rst:1033 +#: library/argparse.rst:1033 msgid "" "See the section on the default_ keyword argument for information on when the " "``type`` argument is applied to default arguments." msgstr "" +"Consultez la rubrique de l'argument nommé default_ pour plus d'information " +"sur quand l'argument ``type`` est appliqué aux arguments par défaut." -#: ../Doc/library/argparse.rst:1036 +#: library/argparse.rst:1036 msgid "" "To ease the use of various types of files, the argparse module provides the " "factory FileType which takes the ``mode=``, ``bufsize=``, ``encoding=`` and " "``errors=`` arguments of the :func:`open` function. For example, " "``FileType('w')`` can be used to create a writable file::" msgstr "" +"Pour faciliter l'utilisation de types de fichiers variés, le module " +"``argparse`` fournit le type fabrique ``FileType`` qui accepte les arguments " +"``mode=``, ``bufsize=``, ``encoding=`` et ``errors=`` de la fonction :func:" +"`open`. Par exemple, ``FileType('w')`` peut être utilisé pour créer un " +"fichier en mode écriture ::" -#: ../Doc/library/argparse.rst:1046 +#: library/argparse.rst:1046 msgid "" "``type=`` can take any callable that takes a single string argument and " "returns the converted value::" msgstr "" +"``type=`` peut prendre n'importe quelle fonction ou objet appelable qui " +"prend une seule chaîne de caractère comme argument et qui renvoie la valeur " +"convertie ::" -#: ../Doc/library/argparse.rst:1065 +#: library/argparse.rst:1065 msgid "" "The choices_ keyword argument may be more convenient for type checkers that " "simply check against a range of values::" msgstr "" +"L'argument nommé choices_ est parfois plus facile d'utilisation pour les " +"vérificateurs de type qui comparent la valeur à une gamme prédéfinie ::" -#: ../Doc/library/argparse.rst:1076 +#: library/argparse.rst:1076 msgid "See the choices_ section for more details." msgstr "Voir le chapitre choices_ pour plus de détails." -#: ../Doc/library/argparse.rst:1080 +#: library/argparse.rst:1080 msgid "choices" msgstr "Le paramètre *choices*" -#: ../Doc/library/argparse.rst:1082 +#: library/argparse.rst:1082 msgid "" "Some command-line arguments should be selected from a restricted set of " "values. These can be handled by passing a container object as the *choices* " @@ -949,83 +1268,121 @@ msgid "" "line is parsed, argument values will be checked, and an error message will " "be displayed if the argument was not one of the acceptable values::" msgstr "" +"Certains arguments de la ligne de commande doivent être choisis parmi un " +"ensemble fermé de valeurs. Ceux-ci peuvent être gérés en passant un " +"conteneur à l'argument nommé *choices* de la méthode :meth:`~ArgumentParser." +"add_argument`. Quand la ligne de commande est analysée, les valeurs de " +"l'argument sont comparées et un message d'erreur est affiché si l'argument " +"n'est pas parmi les valeurs acceptables ::" -#: ../Doc/library/argparse.rst:1097 +#: library/argparse.rst:1097 msgid "" "Note that inclusion in the *choices* container is checked after any type_ " "conversions have been performed, so the type of the objects in the *choices* " "container should match the type_ specified::" msgstr "" +"Prenez note que le test d'inclusion dans le conteur *choices* est fait après " +"la conversion de type_. Le type des objets dans le conteneur *choices* " +"doivent donc correspondre au type_ spécifié ::" -#: ../Doc/library/argparse.rst:1109 +#: library/argparse.rst:1109 msgid "" "Any container can be passed as the *choices* value, so :class:`list` " "objects, :class:`set` objects, and custom containers are all supported." msgstr "" +"N'importe quel conteneur peut être fourni pour la valeur de *choices*, donc " +"les objets :class:`list`, les objets :class:`set` et les conteneurs " +"personnalisés sont tous acceptés." -#: ../Doc/library/argparse.rst:1114 +#: library/argparse.rst:1114 msgid "required" msgstr "Le paramètre *required*" -#: ../Doc/library/argparse.rst:1116 +#: library/argparse.rst:1116 msgid "" "In general, the :mod:`argparse` module assumes that flags like ``-f`` and " "``--bar`` indicate *optional* arguments, which can always be omitted at the " "command line. To make an option *required*, ``True`` can be specified for " "the ``required=`` keyword argument to :meth:`~ArgumentParser.add_argument`::" msgstr "" +"En général, le module :mod:`argparse` prend pour acquis que les drapeaux " +"comme ``-f`` et ``--bar`` annoncent un argument *optionnel* qui peut " +"toujours être omis de la ligne de commande. Pour rendre une option " +"*obligatoire*, ``True`` peut être passé à l'argument nommé ``required=`` d':" +"meth:`~ArgumentParser.add_argument` ::" -#: ../Doc/library/argparse.rst:1129 +#: library/argparse.rst:1129 msgid "" "As the example shows, if an option is marked as ``required``, :meth:" "`~ArgumentParser.parse_args` will report an error if that option is not " "present at the command line." msgstr "" +"Tel qu'illustré' dans l'exemple, quand l'option est marquée comme " +"``required``, :meth:`~ArgumentParser.parse_args` mentionne une erreur si " +"l'option est absente de la ligne de commande." -#: ../Doc/library/argparse.rst:1135 +#: library/argparse.rst:1135 msgid "" "Required options are generally considered bad form because users expect " "*options* to be *optional*, and thus they should be avoided when possible." msgstr "" +"En général, les options obligatoires manifestent un style boiteux, car les " +"utilisateurs s'attendent que les *options* soient *optionnelles*. Elles " +"devraient donc être évitées si possible." -#: ../Doc/library/argparse.rst:1140 +#: library/argparse.rst:1140 msgid "help" msgstr "Le paramètre *help*" -#: ../Doc/library/argparse.rst:1142 +#: library/argparse.rst:1142 msgid "" "The ``help`` value is a string containing a brief description of the " "argument. When a user requests help (usually by using ``-h`` or ``--help`` " "at the command line), these ``help`` descriptions will be displayed with " "each argument::" msgstr "" +"La valeur de ``help`` est une chaîne qui contient une brève description de " +"l'argument. Quand un utilisateur demande de l'aide (en général par " +"l'utilisation de ``-h`` ou ``--help`` sur la ligne de commande), ces " +"descriptions d'aide seront affichées pour chacun des arguments ::" -#: ../Doc/library/argparse.rst:1162 +#: library/argparse.rst:1162 msgid "" "The ``help`` strings can include various format specifiers to avoid " "repetition of things like the program name or the argument default_. The " "available specifiers include the program name, ``%(prog)s`` and most keyword " -"arguments to :meth:`~ArgumentParser.add_argument`, e.g. ``%(default)s``, ``" -"%(type)s``, etc.::" +"arguments to :meth:`~ArgumentParser.add_argument`, e.g. ``%(default)s``, " +"``%(type)s``, etc.::" msgstr "" +"La chaîne ``help`` peut contenir des spécificateurs de formatage afin " +"d'éviter la répétition de contenu tel que le nom du programme et la valeur " +"par défaut de l'argument (voir default_). Les spécificateurs de formatage " +"disponibles incluent entre autres le nom du programme, ``%(prog)s``, et la " +"plupart des arguments nommés d':meth:`~ArgumentParser.add_argument`, tels " +"que ``%(default)s``, ``%(type)s``, etc. ::" -#: ../Doc/library/argparse.rst:1179 +#: library/argparse.rst:1179 msgid "" "As the help string supports %-formatting, if you want a literal ``%`` to " "appear in the help string, you must escape it as ``%%``." msgstr "" +"Comme la chaîne d'aide utilise le caractère ``%`` pour le formatage, si vous " +"désirez afficher un ``%`` littéral dans la chaîne d'aide, vous devez en " +"faire l’échappement avec ``%%``." -#: ../Doc/library/argparse.rst:1182 +#: library/argparse.rst:1182 msgid "" ":mod:`argparse` supports silencing the help entry for certain options, by " "setting the ``help`` value to ``argparse.SUPPRESS``::" msgstr "" +":mod:`argparse` peut supprimer la rubrique d'aide de certaines options. Pour " +"ce faire, passez ``argparse.SUPPRESS`` à ``help`` ::" -#: ../Doc/library/argparse.rst:1195 +#: library/argparse.rst:1195 msgid "metavar" msgstr "Le paramètre *metavar*" -#: ../Doc/library/argparse.rst:1197 +#: library/argparse.rst:1197 msgid "" "When :class:`ArgumentParser` generates help messages, it needs some way to " "refer to each expected argument. By default, ArgumentParser objects use the " @@ -1036,30 +1393,45 @@ msgid "" "optional argument ``--foo`` that should be followed by a single command-line " "argument will be referred to as ``FOO``. An example::" msgstr "" - -#: ../Doc/library/argparse.rst:1221 +"Quand un objet :class:`ArgumentParser` construit le message d'aide, il doit " +"pouvoir faire référence à chacun des arguments attendus. Par défaut, les " +"objets ``ArgumentParser`` utilisent la valeur de dest_ pour le nom de chaque " +"objet. Par défaut, la valeur de dest_ est utilisée telle quelle pour les " +"actions d'arguments positionnels et elle (dest_) est convertie en majuscules " +"pour les actions d'arguments optionnels. Ainsi, un argument positionnel " +"unique avec ``dest='bar'`` sera affiché comme ``bar`` et un argument " +"positionnel unique ``--foo`` qui prend un seul argument sur la ligne de " +"commande sera affiché comme ``FOO``. Par exemple ::" + +#: library/argparse.rst:1221 msgid "An alternative name can be specified with ``metavar``::" -msgstr "" +msgstr "Un nom alternatif peut être fourni à ``metavar`` ::" -#: ../Doc/library/argparse.rst:1238 +#: library/argparse.rst:1238 msgid "" "Note that ``metavar`` only changes the *displayed* name - the name of the " "attribute on the :meth:`~ArgumentParser.parse_args` object is still " "determined by the dest_ value." msgstr "" +"Prenez note que ``metavar`` ne change que le nom *affiché*. Le nom de " +"l'attribut ajouté à l'objet renvoyé par :meth:`~ArgumentParser.parse_args` " +"est toujours déterminé par la valeur de dest_." -#: ../Doc/library/argparse.rst:1242 +#: library/argparse.rst:1242 msgid "" "Different values of ``nargs`` may cause the metavar to be used multiple " "times. Providing a tuple to ``metavar`` specifies a different display for " "each of the arguments::" msgstr "" +"Certaines valeurs de ``nargs`` peuvent provoquer l'affichage de ``metavar`` " +"plus d'une fois. Passer un n-uplet à ``metavar`` indique les différents noms " +"à afficher pour chacun des arguments ::" -#: ../Doc/library/argparse.rst:1259 +#: library/argparse.rst:1259 msgid "dest" msgstr "Le paramètre *dest*" -#: ../Doc/library/argparse.rst:1261 +#: library/argparse.rst:1261 msgid "" "Most :class:`ArgumentParser` actions add some value as an attribute of the " "object returned by :meth:`~ArgumentParser.parse_args`. The name of this " @@ -1068,8 +1440,14 @@ msgid "" "is normally supplied as the first argument to :meth:`~ArgumentParser." "add_argument`::" msgstr "" +"La plupart des actions d':class:`ArgumentParser` ajoutent une valeur dans un " +"attribut de l'objet renvoyé par :meth:`~ArgumentParser.parse_args`. Le nom " +"de l'attribut est déterminé par l'argument nommé ``dest`` d':meth:" +"`~ArgumentParser.add_argument`. Pour les arguments positionnels, ``dest`` " +"est généralement le premier argument d':meth:`~ArgumentParser." +"add_argument` ::" -#: ../Doc/library/argparse.rst:1273 +#: library/argparse.rst:1273 msgid "" "For optional argument actions, the value of ``dest`` is normally inferred " "from the option strings. :class:`ArgumentParser` generates the value of " @@ -1080,23 +1458,35 @@ msgid "" "characters to make sure the string is a valid attribute name. The examples " "below illustrate this behavior::" msgstr "" +"Pour les actions d'arguments optionnels, la valeur de ``dest`` est " +"généralement inférée à partir des chaînes d'option. :class:`ArgumentParser` " +"génère la valeur de ``dest`` en prenant la première chaîne d'option longue " +"et en retirant le préfixe ``--``. Si une chaîne d'option longue n'est pas " +"fournie, ``dest`` sera dérivée de la première chaîne d'option courte sans le " +"préfixe ``-``. Tous les ``-`` subséquents seront convertis en ``_`` pour " +"s'assurer que le chaîne est un nom d'attribut valide. Les exemples suivants " +"illustrent ce comportement ::" -#: ../Doc/library/argparse.rst:1290 +#: library/argparse.rst:1290 msgid "``dest`` allows a custom attribute name to be provided::" -msgstr "" +msgstr "``dest`` vous permet de fournir un nom d'attribut personnalisé ::" -#: ../Doc/library/argparse.rst:1298 +#: library/argparse.rst:1298 msgid "Action classes" msgstr "Classes Action" -#: ../Doc/library/argparse.rst:1300 +#: library/argparse.rst:1300 msgid "" "Action classes implement the Action API, a callable which returns a callable " "which processes arguments from the command-line. Any object which follows " "this API may be passed as the ``action`` parameter to :meth:`add_argument`." msgstr "" +"Les classes ``Action`` implémentent l'API Action, un appelable qui retourne " +"un appelable qui traite les arguments de la ligne de commande. Tout objet " +"qui suit cette API peut être passé comme paramètre ``action`` d':meth:" +"`add_argument`." -#: ../Doc/library/argparse.rst:1309 +#: library/argparse.rst:1309 msgid "" "Action objects are used by an ArgumentParser to represent the information " "needed to parse a single argument from one or more strings from the command " @@ -1104,128 +1494,181 @@ msgid "" "keyword arguments passed to :meth:`ArgumentParser.add_argument` except for " "the ``action`` itself." msgstr "" +"Les objets ``Action`` sont utilisés par un ``ArgumentParser`` pour " +"représenter l'information nécessaire à l'analyse d'un seul argument à partir " +"d'une ou plusieurs chaînes de la ligne de commande. La classe ``Action`` " +"doit accepter les deux arguments positionnels d':meth:`ArgumentParser." +"add_argument` ainsi que tous ses arguments nommés, sauf ``action``." -#: ../Doc/library/argparse.rst:1315 +#: library/argparse.rst:1315 msgid "" "Instances of Action (or return value of any callable to the ``action`` " "parameter) should have attributes \"dest\", \"option_strings\", \"default\", " "\"type\", \"required\", \"help\", etc. defined. The easiest way to ensure " "these attributes are defined is to call ``Action.__init__``." msgstr "" +"Les instances d'``Action`` (ou la valeur de retour de l'appelable passé au " +"paramètre ``action``) doivent définir les attributs nécessaires : *dest*, " +"*option_strings*, *default*, *type*, *required*, *help*, etc. La façon la " +"plus simple de s'assurer que ces attributs sont définis est d'appeler " +"``Action.__init__``." -#: ../Doc/library/argparse.rst:1320 +#: library/argparse.rst:1320 msgid "" "Action instances should be callable, so subclasses must override the " "``__call__`` method, which should accept four parameters:" msgstr "" +"Les instances d'``Action`` doivent être appelables et donc les sous-classes " +"doivent surcharger la méthode ``__call__``. Cette méthode doit accepter " +"quatre paramètres :" -#: ../Doc/library/argparse.rst:1323 +#: library/argparse.rst:1323 msgid "``parser`` - The ArgumentParser object which contains this action." -msgstr "" +msgstr "``parser`` – L'objet ``ArgumentParser`` qui contient cette action." -#: ../Doc/library/argparse.rst:1325 +#: library/argparse.rst:1325 msgid "" "``namespace`` - The :class:`Namespace` object that will be returned by :meth:" "`~ArgumentParser.parse_args`. Most actions add an attribute to this object " "using :func:`setattr`." msgstr "" +"``namespace`` – L'objet :class:`Namespace` qui sera renvoyé par :meth:" +"`~ArgumentParser.parse_args`. La majorité des actions ajoutent un attribut à " +"cet objet avec :func:`setattr`." -#: ../Doc/library/argparse.rst:1329 +#: library/argparse.rst:1329 msgid "" "``values`` - The associated command-line arguments, with any type " "conversions applied. Type conversions are specified with the type_ keyword " "argument to :meth:`~ArgumentParser.add_argument`." msgstr "" +"``values`` – Les arguments de la ligne de commande associés à l'action après " +"les avoir soumis à la conversion de type. Les conversions de types sont " +"spécifiées grâce à l’argument nommé type_ d':meth:`~ArgumentParser." +"add_argument`." -#: ../Doc/library/argparse.rst:1333 +#: library/argparse.rst:1333 msgid "" "``option_string`` - The option string that was used to invoke this action. " "The ``option_string`` argument is optional, and will be absent if the action " "is associated with a positional argument." msgstr "" +"``option_string`` – La chaîne d'option utilisée pour invoquer cette action. " +"L'argument ``option_string`` est optionnel et est absent si l'action est " +"associée à un argument positionnel." -#: ../Doc/library/argparse.rst:1337 +#: library/argparse.rst:1337 msgid "" "The ``__call__`` method may perform arbitrary actions, but will typically " "set attributes on the ``namespace`` based on ``dest`` and ``values``." msgstr "" +"La méthode ``__call__`` peut réaliser un traitement arbitraire, mais en " +"général elle affect des attributs sur ``namespace`` en fonction de ``dest`` " +"et de ``values``." -#: ../Doc/library/argparse.rst:1342 +#: library/argparse.rst:1342 msgid "The parse_args() method" msgstr "La méthode *parse_args()*" -#: ../Doc/library/argparse.rst:1346 +#: library/argparse.rst:1346 msgid "" "Convert argument strings to objects and assign them as attributes of the " "namespace. Return the populated namespace." msgstr "" +"Convertie les chaînes d'arguments en objets et les assigne comme attributs " +"de l'objet ``namespace``. Retourne l'objet ``namespace`` rempli." -#: ../Doc/library/argparse.rst:1349 +#: library/argparse.rst:1349 msgid "" "Previous calls to :meth:`add_argument` determine exactly what objects are " "created and how they are assigned. See the documentation for :meth:" "`add_argument` for details." msgstr "" +"Les appels à :meth:`add_argument` qui ont été faits déterminent exactement " +"quels objets sont créés et comment ils sont affectés. Consultez la rubrique " +"d':meth:`add_argument` pour les détails." -#: ../Doc/library/argparse.rst:1353 +#: library/argparse.rst:1353 msgid "" "args_ - List of strings to parse. The default is taken from :data:`sys." "argv`." msgstr "" +"args_ – Liste de chaînes à analyser. La valeur par défaut est récupérée " +"dans : :data:`sys.argv`." -#: ../Doc/library/argparse.rst:1356 +#: library/argparse.rst:1356 msgid "" "namespace_ - An object to take the attributes. The default is a new empty :" "class:`Namespace` object." msgstr "" +"namespace_ – Un objet pour recevoir les attributs. Par défaut : une nouvelle " +"instance (vide) de :class:`Namespace`." -#: ../Doc/library/argparse.rst:1361 +#: library/argparse.rst:1361 msgid "Option value syntax" -msgstr "" +msgstr "Syntaxe de la valeur des options" -#: ../Doc/library/argparse.rst:1363 +#: library/argparse.rst:1363 msgid "" "The :meth:`~ArgumentParser.parse_args` method supports several ways of " "specifying the value of an option (if it takes one). In the simplest case, " "the option and its value are passed as two separate arguments::" msgstr "" +"La méthode :meth:`~ArgumentParser.parse_args` offre plusieurs façons " +"d'indiquer la valeur d'une option si elle en prend une. Dans le cas le plus " +"simple, l'option et sa valeur sont passées en tant que deux arguments " +"distincts ::" -#: ../Doc/library/argparse.rst:1375 +#: library/argparse.rst:1375 msgid "" "For long options (options with names longer than a single character), the " "option and value can also be passed as a single command-line argument, using " "``=`` to separate them::" msgstr "" +"Pour les options longues (les options qui ont un nom plus long qu'un seul " +"caractère), l'option et sa valeur peuvent être passées comme un seul " +"argument de la ligne de commande en utilisant ``=`` comme séparateur ::" -#: ../Doc/library/argparse.rst:1382 +#: library/argparse.rst:1382 msgid "" "For short options (options only one character long), the option and its " "value can be concatenated::" msgstr "" +"Pour les options courtes (les options qui utilisent un seul caractère), " +"l'option et sa valeur peuvent être concaténées ::" -#: ../Doc/library/argparse.rst:1388 +#: library/argparse.rst:1388 msgid "" "Several short options can be joined together, using only a single ``-`` " "prefix, as long as only the last option (or none of them) requires a value::" msgstr "" +"Plusieurs options courtes peuvent être groupées ensemble après un seul " +"préfixe ``-`` pour autant que seule la dernière (ou aucune) nécessite une " +"valeur ::" -#: ../Doc/library/argparse.rst:1400 +#: library/argparse.rst:1400 msgid "Invalid arguments" msgstr "Arguments invalides" -#: ../Doc/library/argparse.rst:1402 +#: library/argparse.rst:1402 msgid "" "While parsing the command line, :meth:`~ArgumentParser.parse_args` checks " "for a variety of errors, including ambiguous options, invalid types, invalid " "options, wrong number of positional arguments, etc. When it encounters such " "an error, it exits and prints the error along with a usage message::" msgstr "" +"Quand elle fait l'analyse de la ligne de commande, la méthode :meth:" +"`~ArgumentParser.parse_args` vérifie plusieurs erreurs possibles : entre " +"autres, options ambigües, types invalides, options invalides, nombre " +"incorrect d'arguments positionnels, etc. Quand une erreur est rencontrée, " +"elle affiche l'erreur accompagnée du message d'aide puis termine " +"l'exécution ::" -#: ../Doc/library/argparse.rst:1428 +#: library/argparse.rst:1428 msgid "Arguments containing ``-``" msgstr "Arguments contenant ``-``" -#: ../Doc/library/argparse.rst:1430 +#: library/argparse.rst:1430 msgid "" "The :meth:`~ArgumentParser.parse_args` method attempts to give errors " "whenever the user has clearly made a mistake, but some situations are " @@ -1236,77 +1679,113 @@ msgid "" "like negative numbers and there are no options in the parser that look like " "negative numbers::" msgstr "" +"La méthode :meth:`~ArgumentParser.parse_args` tente de signaler une erreur " +"quand l'utilisateur s'est clairement trompé. Par contre, certaines " +"situations sont intrinsèquement ambigües. Par exemple, l'argument de la " +"ligne de commande ``-1`` peut aussi bien être une tentative de spécifier une " +"option qu'une tentative de passer un argument positionnel. La méthode :meth:" +"`~ArgumentParser.parse_args` est prudente : les arguments positionnels ne " +"peuvent commencer par ``-`` que s'ils ont l'apparence d'un nombre négatif et " +"que l'analyseur ne contient aucune option qui a l'apparence d'un nombre " +"négatif ::" -#: ../Doc/library/argparse.rst:1468 +#: library/argparse.rst:1468 msgid "" "If you have positional arguments that must begin with ``-`` and don't look " "like negative numbers, you can insert the pseudo-argument ``'--'`` which " "tells :meth:`~ArgumentParser.parse_args` that everything after that is a " "positional argument::" msgstr "" +"Si l'utilisateur a des arguments positionnels qui commencent par ``-`` et " +"qui n'ont pas l'apparence d'un nombre négatif, il peut insérer le pseudo-" +"argument ``'--'`` qui indique à :meth:`~ArgumentParser.parse_args` de " +"traiter tout ce qui suit comme un argument positionnel ::" -#: ../Doc/library/argparse.rst:1479 +#: library/argparse.rst:1479 msgid "Argument abbreviations (prefix matching)" msgstr "Arguments abrégés (Par comparaison de leurs préfixes)" -#: ../Doc/library/argparse.rst:1481 +#: library/argparse.rst:1481 msgid "" "The :meth:`~ArgumentParser.parse_args` method :ref:`by default " "` allows long options to be abbreviated to a prefix, if the " "abbreviation is unambiguous (the prefix matches a unique option)::" msgstr "" +"Par défaut, la méthode :meth:`~ArgumentParser.parse_args` accepte que les " +"options longues soient :ref:`abrégées ` par un préfixe pour " +"autant que l’abréviation soit non-ambigüe, c'est-à-dire qu'elle ne " +"corresponde qu'à une seule option ::" -#: ../Doc/library/argparse.rst:1496 +#: library/argparse.rst:1496 msgid "" "An error is produced for arguments that could produce more than one options. " "This feature can be disabled by setting :ref:`allow_abbrev` to ``False``." msgstr "" +"Une erreur est générée pour les arguments qui peuvent produire plus d'une " +"option. Ce comportement peut être désactivé en passant ``False`` à :ref:" +"`allow_abbrev`." -#: ../Doc/library/argparse.rst:1502 +#: library/argparse.rst:1502 msgid "Beyond ``sys.argv``" msgstr "Au-delà de ``sys.argv``" -#: ../Doc/library/argparse.rst:1504 +#: library/argparse.rst:1504 msgid "" "Sometimes it may be useful to have an ArgumentParser parse arguments other " "than those of :data:`sys.argv`. This can be accomplished by passing a list " "of strings to :meth:`~ArgumentParser.parse_args`. This is useful for " "testing at the interactive prompt::" msgstr "" +"Il est parfois désirable de demander à un objet ``ArgumentParser`` de faire " +"l'analyse d'arguments autres que ceux de :data:`sys.argv`. On peut faire ce " +"traitement en passant une liste de chaînes à :meth:`~ArgumentParser." +"parse_args`. Cette approche est pratique pour faire des tests depuis " +"l'invite de commande ::" -#: ../Doc/library/argparse.rst:1524 +#: library/argparse.rst:1524 msgid "The Namespace object" msgstr "L'objet namespace" -#: ../Doc/library/argparse.rst:1528 +#: library/argparse.rst:1528 msgid "" "Simple class used by default by :meth:`~ArgumentParser.parse_args` to create " "an object holding attributes and return it." msgstr "" +"Classe rudimentaire qui est utilisé par défaut par :meth:`~ArgumentParser." +"parse_args` pour créer un objet qui stock les attributs. Cet objet est " +"renvoyé par ``ArgumentParser.parse_args``." -#: ../Doc/library/argparse.rst:1531 +#: library/argparse.rst:1531 msgid "" "This class is deliberately simple, just an :class:`object` subclass with a " "readable string representation. If you prefer to have dict-like view of the " "attributes, you can use the standard Python idiom, :func:`vars`::" msgstr "" +"Cette classe est délibérément rudimentaire : une sous-classe d':class:" +"`object` avec une représentation textuelle intelligible. Si vous préférez " +"une vue *dict-compatible*, vous devez utiliser :func:`vars` (un idiome " +"Python classique) ::" -#: ../Doc/library/argparse.rst:1541 +#: library/argparse.rst:1541 msgid "" "It may also be useful to have an :class:`ArgumentParser` assign attributes " "to an already existing object, rather than a new :class:`Namespace` object. " "This can be achieved by specifying the ``namespace=`` keyword argument::" msgstr "" +"Il est parfois utile de demander à :class:`ArgumentParser` de faire " +"l'affectation des attributs sur un objet existant plutôt que de faire la " +"création d'un nouvel objet :class:`Namespace`. Ceci peut être réalisé avec " +"l'argument nommé ``namespace=`` ::" -#: ../Doc/library/argparse.rst:1557 +#: library/argparse.rst:1557 msgid "Other utilities" msgstr "Autres outils" -#: ../Doc/library/argparse.rst:1560 +#: library/argparse.rst:1560 msgid "Sub-commands" msgstr "Sous commandes" -#: ../Doc/library/argparse.rst:1567 +#: library/argparse.rst:1567 msgid "" "Many programs split up their functionality into a number of sub-commands, " "for example, the ``svn`` program can invoke sub-commands like ``svn " @@ -1321,70 +1800,104 @@ msgid "" "constructor arguments, and returns an :class:`ArgumentParser` object that " "can be modified as usual." msgstr "" - -#: ../Doc/library/argparse.rst:1579 +"Certains programmes divisent leurs fonctionnalités entre un nombre de sous-" +"commandes. Par exemple : le programme ``svn`` peut être invoqué comme ``svn " +"checkout``, ``svn update`` et ``svn commit``. Séparer les fonctionnalités de " +"cette façon est judicieux quand le programme effectue plusieurs fonctions " +"différentes qui requièrent différents types de lignes de commandes. :class:" +"`ArgumentParser` prend en charge la création de ce genre de sous-commandes " +"grâce à la méthode :meth:`add_subparsers`. La méthode :meth:`add_subparsers` " +"est généralement appelée sans argument et elle renvoie un objet ``Action`` " +"spécial. Cet objet possède une seule méthode, :meth:`~ArgumentParser." +"add_parser`, qui prend le nom d'une commande et n'importe quels arguments du " +"constructeur d':class:`ArgumentParser` ; elle renvoie un objet :class:" +"`ArgumentParser` qui peut être modifié normalement." + +#: library/argparse.rst:1579 msgid "Description of parameters:" msgstr "Description des paramètres" -#: ../Doc/library/argparse.rst:1581 +#: library/argparse.rst:1581 msgid "" "title - title for the sub-parser group in help output; by default " "\"subcommands\" if description is provided, otherwise uses title for " "positional arguments" msgstr "" +"``title`` – titre du groupe de ce sous-analyseur dans la sortie d'aide ; par " +"défaut : ``\"subcommands\"`` si ``description`` est fournie, sinon utilise " +"la valeur de ``title`` de la section sur les arguments positionnels ;" -#: ../Doc/library/argparse.rst:1585 +#: library/argparse.rst:1585 msgid "" "description - description for the sub-parser group in help output, by " "default ``None``" msgstr "" +"``description`` – description du groupe de ce sous-analyseur dans la sortie " +"d'aide ; par défaut : ``None`` ;" -#: ../Doc/library/argparse.rst:1588 +#: library/argparse.rst:1588 msgid "" "prog - usage information that will be displayed with sub-command help, by " "default the name of the program and any positional arguments before the " "subparser argument" msgstr "" +"``prog`` – nom du programme dans le message d'utilisation de l'aide des sous-" +"commandes ; par défaut : le nom du programme et les arguments positionnels " +"qui arrivent avant l'argument de ce sous-analyseur ;" -#: ../Doc/library/argparse.rst:1592 +#: library/argparse.rst:1592 msgid "" "parser_class - class which will be used to create sub-parser instances, by " "default the class of the current parser (e.g. ArgumentParser)" msgstr "" +"``parser_class`` – classe utilisée pour créer les instances de sous-" +"analyseurs ; par défaut : la classe de l'analyseur courant (par exemple " +"``ArgumentParser``) ;" -#: ../Doc/library/argparse.rst:1595 +#: library/argparse.rst:1595 msgid "" "action_ - the basic type of action to be taken when this argument is " "encountered at the command line" msgstr "" +"action_ – action à entreprendre quand cet argument est reconnu sur la ligne " +"de commande ;" -#: ../Doc/library/argparse.rst:1598 +#: library/argparse.rst:1598 msgid "" "dest_ - name of the attribute under which sub-command name will be stored; " "by default ``None`` and no value is stored" msgstr "" +"dest_ – nom de l'attribut sous lequel la sous-commande est stockée ; par " +"défaut : ``None`` et aucune valeur n'est stockée ;" -#: ../Doc/library/argparse.rst:1601 +#: library/argparse.rst:1601 msgid "" "required_ - Whether or not a subcommand must be provided, by default " "``False`` (added in 3.7)" msgstr "" +"required_ – ``True`` si la sous-commande est obligatoire ; par défaut : " +"``False`` (ajouté dans 3.7) ;" -#: ../Doc/library/argparse.rst:1604 +#: library/argparse.rst:1604 msgid "help_ - help for sub-parser group in help output, by default ``None``" msgstr "" +"help_ – message d'aide pour le groupe du sous-analyseur dans la sortie " +"d'aide ; par défaut : ``None`` ;" -#: ../Doc/library/argparse.rst:1606 +#: library/argparse.rst:1606 msgid "" "metavar_ - string presenting available sub-commands in help; by default it " "is ``None`` and presents sub-commands in form {cmd1, cmd2, ..}" msgstr "" +"metavar_ – chaîne qui représente les sous-commandes disponibles dans les " +"messages d'aide ; par défaut : ``None``, ce qui entraine la génération d'une " +"chaîne suivant le format ``'{cmd1, cmd2, …}'``." -#: ../Doc/library/argparse.rst:1609 +#: library/argparse.rst:1609 msgid "Some example usage::" msgstr "Quelques exemples d'utilisation ::" -#: ../Doc/library/argparse.rst:1630 +#: library/argparse.rst:1630 msgid "" "Note that the object returned by :meth:`parse_args` will only contain " "attributes for the main parser and the subparser that was selected by the " @@ -1393,8 +1906,15 @@ msgid "" "present, and when the ``b`` command is specified, only the ``foo`` and " "``baz`` attributes are present." msgstr "" +"Prenez note que l'objet renvoyé par :meth:`parse_args` ne contient que les " +"attributs reconnus par l'analyseur principal et le sous-analyseur " +"sélectionné par la ligne de commande. Les autres sous-analyseurs n'ont pas " +"d'influence sur l'objet renvoyé. Ainsi dans l'exemple précédent, quand la " +"commande ``a`` est spécifiée, seuls les attributs ``foo`` et ``bar`` sont " +"présents ; quand la commande ``b`` est spécifiée, seuls les attributs " +"``foo`` et ``baz`` sont présents." -#: ../Doc/library/argparse.rst:1637 +#: library/argparse.rst:1637 msgid "" "Similarly, when a help message is requested from a subparser, only the help " "for that particular parser will be printed. The help message will not " @@ -1402,30 +1922,48 @@ msgid "" "subparser command, however, can be given by supplying the ``help=`` argument " "to :meth:`add_parser` as above.)" msgstr "" +"De même, quand le message d'aide est demandé depuis l'un des sous-" +"analyseurs, seul le message d'aide de cet analyseur est affiché. Le message " +"d'aide n'inclut pas le message de l'analyseur parent ni celui des sous-" +"analyseurs au même niveau. Il est toutefois possible de fournir un message " +"d'aide pour chacun des sous-analyseurs grâce à l'argument ``help=`` d':meth:" +"`add_parser` tel qu'illustré ci-dessus." -#: ../Doc/library/argparse.rst:1673 +#: library/argparse.rst:1673 msgid "" "The :meth:`add_subparsers` method also supports ``title`` and " "``description`` keyword arguments. When either is present, the subparser's " "commands will appear in their own group in the help output. For example::" msgstr "" +"La méthode :meth:`add_subparsers` accepte les arguments nommés ``title`` et " +"``description``. Quand au moins l'un des deux est présent, les commandes du " +"sous-analyseur sont affichées dans leur propre groupe dans la sortie d'aide. " +"Par exemple ::" -#: ../Doc/library/argparse.rst:1694 +#: library/argparse.rst:1694 msgid "" "Furthermore, ``add_parser`` supports an additional ``aliases`` argument, " "which allows multiple strings to refer to the same subparser. This example, " "like ``svn``, aliases ``co`` as a shorthand for ``checkout``::" msgstr "" +"De plus, ``add_parser`` accepte l'argument additionnel ``aliases`` qui " +"permet à plusieurs chaînes de faire référence au même sous-analyseur. " +"L'exemple suivant, à la manière de ``svn``, utilise ``co`` comme une " +"abréviation de ``checkout`` ::" -#: ../Doc/library/argparse.rst:1705 +#: library/argparse.rst:1705 msgid "" "One particularly effective way of handling sub-commands is to combine the " "use of the :meth:`add_subparsers` method with calls to :meth:`set_defaults` " "so that each subparser knows which Python function it should execute. For " "example::" msgstr "" +"Une façon efficace de traiter les sous-commandes est de combiner " +"l'utilisation de la méthode :meth:`add_subparsers` avec des appels à :meth:" +"`set_defaults` pour que chaque sous-analyseur sache quelle fonction Python " +"doit être exécutée. Par exemple ::" -#: ../Doc/library/argparse.rst:1742 +#: library/argparse.rst:1742 msgid "" "This way, you can let :meth:`parse_args` do the job of calling the " "appropriate function after argument parsing is complete. Associating " @@ -1434,16 +1972,22 @@ msgid "" "to check the name of the subparser that was invoked, the ``dest`` keyword " "argument to the :meth:`add_subparsers` call will work::" msgstr "" +"Ainsi, vous pouvez laisser à :meth:`parse_args` la responsabilité de faire " +"l'appel à la bonne fonction après avoir analysé les arguments. Associer " +"fonctions et actions est en général la façon la plus facile de gérer des " +"actions différentes pour chacun de vos sous-analyseurs. Par contre, si vous " +"avez besoin de consulter le nom de du sous-analyseur qui a été invoqué, vous " +"pouvez utiliser l'argument nommé ``dest`` d':meth:`add_subparsers` ::" -#: ../Doc/library/argparse.rst:1758 +#: library/argparse.rst:1758 msgid "New *required* keyword argument." msgstr "Introduction des arguments nommés obligatoires." -#: ../Doc/library/argparse.rst:1763 +#: library/argparse.rst:1763 msgid "FileType objects" msgstr "Objets ``FileType``" -#: ../Doc/library/argparse.rst:1767 +#: library/argparse.rst:1767 msgid "" "The :class:`FileType` factory creates objects that can be passed to the type " "argument of :meth:`ArgumentParser.add_argument`. Arguments that have :class:" @@ -1451,23 +1995,33 @@ msgid "" "with the requested modes, buffer sizes, encodings and error handling (see " "the :func:`open` function for more details)::" msgstr "" +"Le type fabrique :class:`FileType` crée des objets qui peuvent être passés à " +"l'argument ``type`` d':meth:`ArgumentParser.add_argument`. Les arguments qui " +"ont comme ``type`` un objet :class:`FileType` ouvrent les arguments de la " +"ligne de commande en tant que fichiers avec les options spécifiées : mode, " +"taille du tampon, encodage et gestion des erreurs (voir la fonction :func:" +"`open` pour plus de détails) ::" -#: ../Doc/library/argparse.rst:1779 +#: library/argparse.rst:1779 msgid "" "FileType objects understand the pseudo-argument ``'-'`` and automatically " "convert this into ``sys.stdin`` for readable :class:`FileType` objects and " "``sys.stdout`` for writable :class:`FileType` objects::" msgstr "" +"Les objets ``FileType`` reconnaissent le pseudo-argument ``'-'`` et en font " +"automatiquement la conversion vers ``sys.stdin`` pour les objets :class:" +"`FileType` ouverts en lecture et vers ``sys.stdout`` pour les objets :class:" +"`FileType` ouverts en écriture ::" -#: ../Doc/library/argparse.rst:1788 +#: library/argparse.rst:1788 msgid "The *encodings* and *errors* keyword arguments." msgstr "Les arguments nommés ``encodings`` et ``errors``." -#: ../Doc/library/argparse.rst:1793 +#: library/argparse.rst:1793 msgid "Argument groups" msgstr "Groupes d'arguments" -#: ../Doc/library/argparse.rst:1797 +#: library/argparse.rst:1797 msgid "" "By default, :class:`ArgumentParser` groups command-line arguments into " "\"positional arguments\" and \"optional arguments\" when displaying help " @@ -1475,8 +2029,13 @@ msgid "" "default one, appropriate groups can be created using the :meth:" "`add_argument_group` method::" msgstr "" +"Par défaut, :class:`ArgumentParser` sépare les arguments de la ligne de " +"commande entre les groupes « arguments positionnels » et « arguments " +"optionnels » au moment d'afficher les messages d'aide. S'il existe un " +"meilleur regroupement conceptuel des arguments, les groupes adéquats peuvent " +"être créés avec la méthode :meth:`add_argument_group` ::" -#: ../Doc/library/argparse.rst:1814 +#: library/argparse.rst:1814 msgid "" "The :meth:`add_argument_group` method returns an argument group object which " "has an :meth:`~ArgumentParser.add_argument` method just like a regular :" @@ -1486,43 +2045,62 @@ msgid "" "accepts *title* and *description* arguments which can be used to customize " "this display::" msgstr "" +"La méthode :meth:`add_argument_group` renvoie un objet représentant le " +"groupe d'arguments. Cet objet possède une méthode :meth:`~ArgumentParser." +"add_argument` semblable à celle d':class:`ArgumentParser`. Quand un argument " +"est ajouté au groupe, l'analyseur le traite comme un argument normal, mais " +"il affiche le nouvel argument dans un groupe séparé dans les messages " +"d'aide. Afin de personnaliser l'affichage, la méthode :meth:" +"`add_argument_group` accepte les arguments ``title`` et ``description`` ::" -#: ../Doc/library/argparse.rst:1840 +#: library/argparse.rst:1840 msgid "" "Note that any arguments not in your user-defined groups will end up back in " "the usual \"positional arguments\" and \"optional arguments\" sections." msgstr "" +"Prenez note que tout argument qui n'est pas dans l'un de vos groupes est " +"affiché dans l'une des sections usuelles *positional arguments* et *optional " +"arguments*." -#: ../Doc/library/argparse.rst:1845 +#: library/argparse.rst:1845 msgid "Mutual exclusion" msgstr "Exclusion mutuelle" -#: ../Doc/library/argparse.rst:1849 +#: library/argparse.rst:1849 msgid "" "Create a mutually exclusive group. :mod:`argparse` will make sure that only " "one of the arguments in the mutually exclusive group was present on the " "command line::" msgstr "" +"Crée un groupe mutuellement exclusif. Le module :mod:`argparse` vérifie " +"qu'au plus un des arguments du groupe mutuellement exclusif est présent sur " +"la ligne de commande ::" -#: ../Doc/library/argparse.rst:1865 +#: library/argparse.rst:1865 msgid "" "The :meth:`add_mutually_exclusive_group` method also accepts a *required* " "argument, to indicate that at least one of the mutually exclusive arguments " "is required::" msgstr "" +"La méthode :meth:`add_mutually_exclusive_group` accepte aussi l'argument " +"``required`` pour indiquer qu'au moins un des arguments mutuellement " +"exclusifs est nécessaire ::" -#: ../Doc/library/argparse.rst:1877 +#: library/argparse.rst:1877 msgid "" "Note that currently mutually exclusive argument groups do not support the " "*title* and *description* arguments of :meth:`~ArgumentParser." "add_argument_group`." msgstr "" +"Prenez note que présentement les groupes d'arguments mutuellement exclusifs " +"n'acceptent pas les arguments ``title`` et ``description`` d':meth:" +"`~ArgumentParser.add_argument_group`." -#: ../Doc/library/argparse.rst:1883 +#: library/argparse.rst:1883 msgid "Parser defaults" msgstr "Valeurs par défaut de l'analyseur" -#: ../Doc/library/argparse.rst:1887 +#: library/argparse.rst:1887 msgid "" "Most of the time, the attributes of the object returned by :meth:" "`parse_args` will be fully determined by inspecting the command-line " @@ -1530,73 +2108,102 @@ msgid "" "additional attributes that are determined without any inspection of the " "command line to be added::" msgstr "" +"Dans la majorité des cas, les attributs de l'objet renvoyé par :meth:" +"`parse_args` sont entièrement définis par l'inspection des arguments de la " +"ligne de commande et par les actions des arguments. La méthode :meth:" +"`set_defaults` permet l'ajout d'attributs additionnels qui sont définis sans " +"nécessiter l'inspection de la ligne de commande ::" -#: ../Doc/library/argparse.rst:1899 +#: library/argparse.rst:1899 msgid "" "Note that parser-level defaults always override argument-level defaults::" msgstr "" +"Prenez note que les valeurs par défaut au niveau de l'analyseur ont " +"précédence sur les valeurs par défaut au niveau de l'argument ::" -#: ../Doc/library/argparse.rst:1907 +#: library/argparse.rst:1907 msgid "" "Parser-level defaults can be particularly useful when working with multiple " "parsers. See the :meth:`~ArgumentParser.add_subparsers` method for an " "example of this type." msgstr "" +"Les valeurs par défaut au niveau de l'analyseur sont particulièrement utiles " +"quand on travaille avec plusieurs analyseurs. Voir la méthode :meth:" +"`~ArgumentParser.add_subparsers` pour un exemple de cette utilisation." -#: ../Doc/library/argparse.rst:1913 +#: library/argparse.rst:1913 msgid "" "Get the default value for a namespace attribute, as set by either :meth:" "`~ArgumentParser.add_argument` or by :meth:`~ArgumentParser.set_defaults`::" msgstr "" +"Renvoie la valeur par défaut d'un attribut de l'objet ``Namespace`` tel " +"qu'il a été défini soit par :meth:`~ArgumentParser.add_argument` ou par :" +"meth:`~ArgumentParser.set_defaults` ::" -#: ../Doc/library/argparse.rst:1924 +#: library/argparse.rst:1924 msgid "Printing help" msgstr "Afficher l'aide" -#: ../Doc/library/argparse.rst:1926 +#: library/argparse.rst:1926 msgid "" "In most typical applications, :meth:`~ArgumentParser.parse_args` will take " "care of formatting and printing any usage or error messages. However, " "several formatting methods are available:" msgstr "" +"Pour la majorité des applications, :meth:`~ArgumentParser.parse_args` se " +"charge du formatage et de l'affichage des messages d'erreur et " +"d'utilisation. Plusieurs méthodes de formatage sont toutefois disponibles :" -#: ../Doc/library/argparse.rst:1932 +#: library/argparse.rst:1932 msgid "" "Print a brief description of how the :class:`ArgumentParser` should be " "invoked on the command line. If *file* is ``None``, :data:`sys.stdout` is " "assumed." msgstr "" +"Affiche une brève description sur la façon d'invoquer l':class:" +"`ArgumentParser` depuis la ligne de commande. Si ``file`` est ``None``, " +"utilise :data:`sys.stdout`." -#: ../Doc/library/argparse.rst:1938 +#: library/argparse.rst:1938 msgid "" "Print a help message, including the program usage and information about the " "arguments registered with the :class:`ArgumentParser`. If *file* is " "``None``, :data:`sys.stdout` is assumed." msgstr "" +"Affiche un message d'aide qui inclut l'utilisation du programme et " +"l'information sur les arguments répertoriés dans l':class:`ArgumentParser`. " +"Si ``file`` est ``None``, utilise :data:`sys.stdout`." -#: ../Doc/library/argparse.rst:1942 +#: library/argparse.rst:1942 msgid "" "There are also variants of these methods that simply return a string instead " "of printing it:" msgstr "" +"Des variantes de ces méthodes sont fournies pour renvoyer la chaîne plutôt " +"que de l'afficher :" -#: ../Doc/library/argparse.rst:1947 +#: library/argparse.rst:1947 msgid "" "Return a string containing a brief description of how the :class:" "`ArgumentParser` should be invoked on the command line." msgstr "" +"Renvoie une chaîne contenant une brève description sur la façon d'invoquer " +"l':class:`ArgumentParser` depuis la ligne de commande." -#: ../Doc/library/argparse.rst:1952 +#: library/argparse.rst:1952 msgid "" "Return a string containing a help message, including the program usage and " "information about the arguments registered with the :class:`ArgumentParser`." msgstr "" +"Renvoie une chaîne représentant un message d'aide qui inclut des " +"informations sur l'utilisation du programme et sur les arguments définis " +"dans l':class:`ArgumentParser`." -#: ../Doc/library/argparse.rst:1957 +#: library/argparse.rst:1957 msgid "Partial parsing" msgstr "*Parsing* partiel" -#: ../Doc/library/argparse.rst:1961 +#: library/argparse.rst:1961 msgid "" "Sometimes a script may only parse a few of the command-line arguments, " "passing the remaining arguments on to another script or program. In these " @@ -1606,98 +2213,145 @@ msgid "" "a two item tuple containing the populated namespace and the list of " "remaining argument strings." msgstr "" +"Parfois, un script n'analyse que de quelques-uns des arguments de la ligne " +"de commande avant de passer les arguments non-traités à un autre script ou " +"un autre programme. La méthode :meth:`~ArgumentParser.parse_known_args` est " +"utile dans ces cas. Elle fonctionne similairement à :meth:`~ArgumentParser." +"parse_args`, mais elle ne lève pas d'erreur quand des arguments non-reconnus " +"sont présents. Au lieu, elle renvoie une paire de valeurs : l'objet " +"``Namespace`` rempli et la liste des arguments non-traités." -#: ../Doc/library/argparse.rst:1977 +#: library/argparse.rst:1977 msgid "" ":ref:`Prefix matching ` rules apply to :meth:" "`parse_known_args`. The parser may consume an option even if it's just a " "prefix of one of its known options, instead of leaving it in the remaining " "arguments list." msgstr "" +"Les règles d':ref:`acceptation des abréviations ` sont " +"applicables à :meth:`parse_known_args`. L'analyseur peut ainsi capturer une " +"option même si elle n'est que le préfixe d'une option reconnue plutôt que de " +"la laisser dans la liste des arguments non-traités." -#: ../Doc/library/argparse.rst:1984 +#: library/argparse.rst:1984 msgid "Customizing file parsing" msgstr "Personnaliser le *parsing* de fichiers" -#: ../Doc/library/argparse.rst:1988 +#: library/argparse.rst:1988 msgid "" "Arguments that are read from a file (see the *fromfile_prefix_chars* keyword " "argument to the :class:`ArgumentParser` constructor) are read one argument " "per line. :meth:`convert_arg_line_to_args` can be overridden for fancier " "reading." msgstr "" +"Les arguments qui proviennent d'un fichier sont lus un par ligne. La " +"méthode :meth:`convert_arg_line_to_args` peut être surchargée pour accomplir " +"un traitement plus élaboré. Voir aussi l'argument nommé " +"``fromfile_prefix_chars`` du constructeur d':class:`ArgumentParser`." -#: ../Doc/library/argparse.rst:1993 +#: library/argparse.rst:1993 msgid "" "This method takes a single argument *arg_line* which is a string read from " "the argument file. It returns a list of arguments parsed from this string. " "The method is called once per line read from the argument file, in order." msgstr "" +"La méthode ``convert_arg_line_to_args`` accepte un seul argument, " +"``arg_line``, qui est une chaîne lue dans le fichier d'arguments. Elle " +"renvoie une liste d'arguments analysés dans cette chaîne. La méthode est " +"appelée une fois pour chaque ligne lue du fichier d'arguments. L'ordre est " +"préservé." -#: ../Doc/library/argparse.rst:1997 +#: library/argparse.rst:1997 msgid "" "A useful override of this method is one that treats each space-separated " "word as an argument. The following example demonstrates how to do this::" msgstr "" +"Une surcharge utile de cette méthode est de permettre à chaque mot délimité " +"par des espaces d'être traité comme un argument. L'exemple suivant illustre " +"comment réaliser ceci ::" -#: ../Doc/library/argparse.rst:2006 +#: library/argparse.rst:2006 msgid "Exiting methods" -msgstr "" +msgstr "Méthodes d'interruptions" -#: ../Doc/library/argparse.rst:2010 +#: library/argparse.rst:2010 msgid "" "This method terminates the program, exiting with the specified *status* and, " "if given, it prints a *message* before that. The user can override this " "method to handle these steps differently::" msgstr "" +"Cette méthode interrompt l'exécution du programme et renvoie ``status`` " +"comme valeur de retour du processus. Si ``message`` est fourni, la chaîne " +"est affichée avant la fin de l'exécution. Vous pouvez surcharger cette " +"méthode pour traiter ces étapes différemment ::" -#: ../Doc/library/argparse.rst:2022 +#: library/argparse.rst:2022 msgid "" "This method prints a usage message including the *message* to the standard " "error and terminates the program with a status code of 2." msgstr "" +"Cette méthode affiche un message d'utilisation qui inclut la chaîne " +"``message`` sur la sortie d'erreur standard puis termine l'exécution avec le " +"code de fin d'exécution 2." -#: ../Doc/library/argparse.rst:2027 +#: library/argparse.rst:2027 msgid "Intermixed parsing" msgstr "Analyse entremêlée" -#: ../Doc/library/argparse.rst:2032 +#: library/argparse.rst:2032 msgid "" "A number of Unix commands allow the user to intermix optional arguments with " "positional arguments. The :meth:`~ArgumentParser.parse_intermixed_args` " "and :meth:`~ArgumentParser.parse_known_intermixed_args` methods support this " "parsing style." msgstr "" +"De nombreuses commandes Unix permettent à l'utilisateur d'entremêler les " +"arguments optionnels et les arguments positionnels. Les méthodes :meth:" +"`~ArgumentParser.parse_intermixed_args` et :meth:`~ArgumentParser." +"parse_known_intermixed_args` permettent ce style d'analyse." -#: ../Doc/library/argparse.rst:2037 +#: library/argparse.rst:2037 msgid "" "These parsers do not support all the argparse features, and will raise " "exceptions if unsupported features are used. In particular, subparsers, " "``argparse.REMAINDER``, and mutually exclusive groups that include both " "optionals and positionals are not supported." msgstr "" +"Ces analyseurs n'offrent pas toutes les fonctionnalités d'``argparse`` et " +"ils lèvent une exception si une fonctionnalité non prise en charge est " +"utilisée. En particulier, les sous-analyseurs, ``argparse.REMAINDER`` et les " +"groupes mutuellement exclusifs qui contiennent à la fois des arguments " +"optionnels et des arguments positionnels ne sont pas pris en charge." -#: ../Doc/library/argparse.rst:2042 +#: library/argparse.rst:2042 msgid "" "The following example shows the difference between :meth:`~ArgumentParser." "parse_known_args` and :meth:`~ArgumentParser.parse_intermixed_args`: the " "former returns ``['2', '3']`` as unparsed arguments, while the latter " "collects all the positionals into ``rest``. ::" msgstr "" +"L'exemple suivant illustre la différence entre :meth:`~ArgumentParser." +"parse_known_args` et :meth:`~ArgumentParser.parse_intermixed_args` : le " +"premier renvoie ``['2', '3']`` comme arguments non-traités alors que le " +"second capture tous les arguments positionnels dans ``rest`` ::" -#: ../Doc/library/argparse.rst:2057 +#: library/argparse.rst:2057 msgid "" ":meth:`~ArgumentParser.parse_known_intermixed_args` returns a two item tuple " "containing the populated namespace and the list of remaining argument " "strings. :meth:`~ArgumentParser.parse_intermixed_args` raises an error if " "there are any remaining unparsed argument strings." msgstr "" +":meth:`~ArgumentParser.parse_known_intermixed_args` renvoie une paire de " +"valeurs : l'objet ``Namespace`` rempli et une liste de chaînes d'arguments " +"non-traités. :meth:`~ArgumentParser.parse_intermixed_args` lève une erreur " +"s'il reste des chaînes d'arguments non-traités." -#: ../Doc/library/argparse.rst:2067 +#: library/argparse.rst:2067 msgid "Upgrading optparse code" msgstr "Mettre à jour du code ``optparse``" -#: ../Doc/library/argparse.rst:2069 +#: library/argparse.rst:2069 msgid "" "Originally, the :mod:`argparse` module had attempted to maintain " "compatibility with :mod:`optparse`. However, :mod:`optparse` was difficult " @@ -1707,92 +2361,125 @@ msgid "" "patched, it no longer seemed practical to try to maintain the backwards " "compatibility." msgstr "" +"Initialement, le module :mod:`argparse` tentait de rester compatible avec :" +"mod:`optparse`. Hélas, il était difficile de faire des améliorations à :mod:" +"`optparse` de façon transparente, en particulier pour les changements requis " +"pour gérer les nouveaux spécificateurs de ``nargs=`` et les messages " +"d'utilisation améliorés. Après avoir porté ou surchargé tout le code d':mod:" +"`optparse`, la rétro-compatibilité pouvait difficilement être conservée." -#: ../Doc/library/argparse.rst:2076 +#: library/argparse.rst:2076 msgid "" "The :mod:`argparse` module improves on the standard library :mod:`optparse` " "module in a number of ways including:" msgstr "" +"Le module :mod:`argparse` fournit plusieurs améliorations par rapport au " +"module :mod:`optparse` de la bibliothèque standard :" -#: ../Doc/library/argparse.rst:2079 +#: library/argparse.rst:2079 msgid "Handling positional arguments." msgstr "Gère les arguments positionnels." -#: ../Doc/library/argparse.rst:2080 +#: library/argparse.rst:2080 msgid "Supporting sub-commands." msgstr "Prise en charge des sous commandes." -#: ../Doc/library/argparse.rst:2081 +#: library/argparse.rst:2081 msgid "Allowing alternative option prefixes like ``+`` and ``/``." msgstr "" "Permet d'utiliser les alternatives ``+`` ou ``/`` comme préfixes d'option." -#: ../Doc/library/argparse.rst:2082 +#: library/argparse.rst:2082 msgid "Handling zero-or-more and one-or-more style arguments." msgstr "Prend en charge la répétition de valeurs (zéro ou plus, un ou plus)." -#: ../Doc/library/argparse.rst:2083 +#: library/argparse.rst:2083 msgid "Producing more informative usage messages." msgstr "Fournit des messages d'aide plus complets." -#: ../Doc/library/argparse.rst:2084 +#: library/argparse.rst:2084 msgid "Providing a much simpler interface for custom ``type`` and ``action``." msgstr "" "Fournit une interface plus simple pour les types et actions personnalisés" -#: ../Doc/library/argparse.rst:2086 +#: library/argparse.rst:2086 msgid "A partial upgrade path from :mod:`optparse` to :mod:`argparse`:" -msgstr "" +msgstr "Le portage partiel d':mod:`optparse` à :mod:`argparse` :" -#: ../Doc/library/argparse.rst:2088 +#: library/argparse.rst:2088 msgid "" "Replace all :meth:`optparse.OptionParser.add_option` calls with :meth:" "`ArgumentParser.add_argument` calls." msgstr "" +"Remplacer tous les appels à :meth:`optparse.OptionParser.add_option` par des " +"appels à :meth:`ArgumentParser.add_argument`." -#: ../Doc/library/argparse.rst:2091 +#: library/argparse.rst:2091 msgid "" "Replace ``(options, args) = parser.parse_args()`` with ``args = parser." "parse_args()`` and add additional :meth:`ArgumentParser.add_argument` calls " "for the positional arguments. Keep in mind that what was previously called " "``options``, now in the :mod:`argparse` context is called ``args``." msgstr "" +"Remplacer ``(options, args) = parser.parse_args()`` par ``args = parser." +"parse_args()`` et ajouter des appels à :meth:`ArgumentParser.add_argument` " +"pour les arguments positionnels. Prenez note que les valeurs précédemment " +"appelées ``options`` sont appelées ``args`` dans le contexte d':mod:" +"`argparse`." -#: ../Doc/library/argparse.rst:2096 +#: library/argparse.rst:2096 msgid "" "Replace :meth:`optparse.OptionParser.disable_interspersed_args` by using :" "meth:`~ArgumentParser.parse_intermixed_args` instead of :meth:" "`~ArgumentParser.parse_args`." msgstr "" +"Remplacer :meth:`optparse.OptionParser.disable_interspersed_args` en " +"appelant :meth:`~ArgumentParser.parse_intermixed_args` plutôt que :meth:" +"`~ArgumentParser.parse_args`." -#: ../Doc/library/argparse.rst:2100 +#: library/argparse.rst:2100 msgid "" "Replace callback actions and the ``callback_*`` keyword arguments with " "``type`` or ``action`` arguments." msgstr "" +"Remplacer les actions de rappel (*callback actions* en anglais) et les " +"arguments nommés ``callback_*`` par des arguments ``type`` et ``actions``." -#: ../Doc/library/argparse.rst:2103 +#: library/argparse.rst:2103 msgid "" "Replace string names for ``type`` keyword arguments with the corresponding " "type objects (e.g. int, float, complex, etc)." msgstr "" +"Remplacer les chaînes représentant le nom des types pour l'argument nommé " +"``type`` par les objets types correspondants (par exemple : ``int``, " +"``float``, ``complex``, etc)." -#: ../Doc/library/argparse.rst:2106 +#: library/argparse.rst:2106 msgid "" "Replace :class:`optparse.Values` with :class:`Namespace` and :exc:`optparse." "OptionError` and :exc:`optparse.OptionValueError` with :exc:`ArgumentError`." msgstr "" +"Remplacer :class:`optparse.Values` par :class:`Namespace` ; et :exc:" +"`optparse.OptionError` et :exc:`optparse.OptionValueError` par :exc:" +"`ArgumentError`." -#: ../Doc/library/argparse.rst:2110 +#: library/argparse.rst:2110 msgid "" "Replace strings with implicit arguments such as ``%default`` or ``%prog`` " "with the standard Python syntax to use dictionaries to format strings, that " "is, ``%(default)s`` and ``%(prog)s``." msgstr "" +"Remplacer les chaînes avec des arguments de formatage implicite (tels que " +"``%default`` ou ``%prog``) par la syntaxe standard de Python pour " +"l'interpolation d'un dictionnaire dans les chaînes de formatage (c'est-à-" +"dire ``%(default)s`` et ``%(prog)s``)." -#: ../Doc/library/argparse.rst:2114 +#: library/argparse.rst:2114 msgid "" "Replace the OptionParser constructor ``version`` argument with a call to " "``parser.add_argument('--version', action='version', version='')``." msgstr "" +"Remplacer l'argument ``version`` du constructeur d'``OptionParser`` par un " +"appel à ``parser.add_argument('--version', action='version', version='')``." diff --git a/library/array.po b/library/array.po index a9ff5e0c76..777ccb9dfc 100644 --- a/library/array.po +++ b/library/array.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2019-10-31 12:47+0100\n" "Last-Translator: Cléo Buck \n" "Language-Team: FRENCH \n" @@ -15,11 +15,11 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.0.6\n" -#: ../Doc/library/array.rst:2 +#: library/array.rst:2 msgid ":mod:`array` --- Efficient arrays of numeric values" msgstr ":mod:`array` — Tableaux efficaces de valeurs numériques" -#: ../Doc/library/array.rst:11 +#: library/array.rst:11 msgid "" "This module defines an object type which can compactly represent an array of " "basic values: characters, integers, floating point numbers. Arrays are " @@ -36,171 +36,164 @@ msgstr "" "utilisant :dfn:`type code`, qui est un caractère unique. Voir ci-dessous " "pour la définition des types :" -#: ../Doc/library/array.rst:19 +#: library/array.rst:19 msgid "Type code" msgstr "Code d'indication du type" -#: ../Doc/library/array.rst:19 +#: library/array.rst:19 msgid "C Type" msgstr "Type C" -#: ../Doc/library/array.rst:19 +#: library/array.rst:19 msgid "Python Type" msgstr "Type Python" -#: ../Doc/library/array.rst:19 +#: library/array.rst:19 msgid "Minimum size in bytes" msgstr "Taille minimum en octets" -#: ../Doc/library/array.rst:19 +#: library/array.rst:19 msgid "Notes" msgstr "Notes" -#: ../Doc/library/array.rst:21 +#: library/array.rst:21 msgid "``'b'``" msgstr "``'b'``" -#: ../Doc/library/array.rst:21 +#: library/array.rst:21 msgid "signed char" msgstr "``signed char``" -#: ../Doc/library/array.rst:21 ../Doc/library/array.rst:23 -#: ../Doc/library/array.rst:27 ../Doc/library/array.rst:29 -#: ../Doc/library/array.rst:31 ../Doc/library/array.rst:33 -#: ../Doc/library/array.rst:35 ../Doc/library/array.rst:37 -#: ../Doc/library/array.rst:39 ../Doc/library/array.rst:41 +#: library/array.rst:23 library/array.rst:29 library/array.rst:33 +#: library/array.rst:37 library/array.rst:41 msgid "int" msgstr "*int*" -#: ../Doc/library/array.rst:21 ../Doc/library/array.rst:23 +#: library/array.rst:23 msgid "1" msgstr "1" -#: ../Doc/library/array.rst:23 +#: library/array.rst:23 msgid "``'B'``" msgstr "``'B'``" -#: ../Doc/library/array.rst:23 +#: library/array.rst:23 msgid "unsigned char" msgstr "``unsigned char``" -#: ../Doc/library/array.rst:25 +#: library/array.rst:25 msgid "``'u'``" msgstr "``'u'``" -#: ../Doc/library/array.rst:25 +#: library/array.rst:25 msgid "Py_UNICODE" msgstr "Py_UNICODE" -#: ../Doc/library/array.rst:25 +#: library/array.rst:25 msgid "Unicode character" msgstr "Caractère Unicode" -#: ../Doc/library/array.rst:25 ../Doc/library/array.rst:27 -#: ../Doc/library/array.rst:29 ../Doc/library/array.rst:31 -#: ../Doc/library/array.rst:33 +#: library/array.rst:27 library/array.rst:31 library/array.rst:33 msgid "2" msgstr "2" -#: ../Doc/library/array.rst:25 +#: library/array.rst:25 msgid "\\(1)" msgstr "\\(1)" -#: ../Doc/library/array.rst:27 +#: library/array.rst:27 msgid "``'h'``" msgstr "``'h'``" -#: ../Doc/library/array.rst:27 +#: library/array.rst:27 msgid "signed short" msgstr "``signed short``" -#: ../Doc/library/array.rst:29 +#: library/array.rst:29 msgid "``'H'``" msgstr "``'H'``" -#: ../Doc/library/array.rst:29 +#: library/array.rst:29 msgid "unsigned short" msgstr "``unsigned short``" -#: ../Doc/library/array.rst:31 +#: library/array.rst:31 msgid "``'i'``" msgstr "``'i'``" -#: ../Doc/library/array.rst:31 +#: library/array.rst:31 msgid "signed int" msgstr "``signed int``" -#: ../Doc/library/array.rst:33 +#: library/array.rst:33 msgid "``'I'``" msgstr "``'I'``" -#: ../Doc/library/array.rst:33 +#: library/array.rst:33 msgid "unsigned int" msgstr "``unsigned int``" -#: ../Doc/library/array.rst:35 +#: library/array.rst:35 msgid "``'l'``" msgstr "``'l'``" -#: ../Doc/library/array.rst:35 +#: library/array.rst:35 msgid "signed long" msgstr "``signed long``" -#: ../Doc/library/array.rst:35 ../Doc/library/array.rst:37 -#: ../Doc/library/array.rst:43 +#: library/array.rst:37 library/array.rst:43 msgid "4" msgstr "4" -#: ../Doc/library/array.rst:37 +#: library/array.rst:37 msgid "``'L'``" msgstr "``'L'``" -#: ../Doc/library/array.rst:37 +#: library/array.rst:37 msgid "unsigned long" msgstr "``unsigned long``" -#: ../Doc/library/array.rst:39 +#: library/array.rst:39 msgid "``'q'``" msgstr "``'q'``" -#: ../Doc/library/array.rst:39 +#: library/array.rst:39 msgid "signed long long" msgstr "``signed long long``" -#: ../Doc/library/array.rst:39 ../Doc/library/array.rst:41 -#: ../Doc/library/array.rst:45 +#: library/array.rst:41 library/array.rst:45 msgid "8" msgstr "8" -#: ../Doc/library/array.rst:41 +#: library/array.rst:41 msgid "``'Q'``" msgstr "``'Q'``" -#: ../Doc/library/array.rst:41 +#: library/array.rst:41 msgid "unsigned long long" msgstr "``unsigned long long``" -#: ../Doc/library/array.rst:43 +#: library/array.rst:43 msgid "``'f'``" msgstr "``'f'``" -#: ../Doc/library/array.rst:43 ../Doc/library/array.rst:45 +#: library/array.rst:45 msgid "float" msgstr "*float*" -#: ../Doc/library/array.rst:45 +#: library/array.rst:45 msgid "``'d'``" msgstr "``'d'``" -#: ../Doc/library/array.rst:45 +#: library/array.rst:45 msgid "double" msgstr "double" -#: ../Doc/library/array.rst:48 +#: library/array.rst:48 msgid "Notes:" msgstr "Notes :" -#: ../Doc/library/array.rst:51 +#: library/array.rst:51 msgid "" "The ``'u'`` type code corresponds to Python's obsolete unicode character (:c:" "type:`Py_UNICODE` which is :c:type:`wchar_t`). Depending on the platform, it " @@ -210,13 +203,13 @@ msgstr "" "Unicode (:c:type:`Py_UNICODE` de type :c:type:`wchar_t`). Selon la " "plateforme, il peut être 16 bits ou 32 bits." -#: ../Doc/library/array.rst:55 +#: library/array.rst:55 msgid "" "``'u'`` will be removed together with the rest of the :c:type:`Py_UNICODE` " "API." msgstr "``'u'`` sera supprimé avec le reste de l'API :c:type:`Py_UNICODE`." -#: ../Doc/library/array.rst:60 +#: library/array.rst:60 msgid "" "The actual representation of values is determined by the machine " "architecture (strictly speaking, by the C implementation). The actual size " @@ -226,11 +219,11 @@ msgstr "" "machine (à proprement parler, par l'implémentation C). La taille réelle est " "accessible via l'attribut :attr:`itemsize`." -#: ../Doc/library/array.rst:64 +#: library/array.rst:64 msgid "The module defines the following type:" msgstr "Le module définit le type suivant :" -#: ../Doc/library/array.rst:69 +#: library/array.rst:69 msgid "" "A new array whose items are restricted by *typecode*, and initialized from " "the optional *initializer* value, which must be a list, a :term:`bytes-like " @@ -241,7 +234,7 @@ msgstr "" "liste, un :term:`bytes-like object`, ou un itérable sur des éléments du type " "approprié." -#: ../Doc/library/array.rst:74 +#: library/array.rst:74 msgid "" "If given a list or string, the initializer is passed to the new array's :" "meth:`fromlist`, :meth:`frombytes`, or :meth:`fromunicode` method (see " @@ -254,7 +247,7 @@ msgstr "" "initiaux du tableau. Si c'est un itérable, il est passé à la méthode :meth:" "`extend`." -#: ../Doc/library/array.rst:79 +#: library/array.rst:79 msgid "" "Raises an :ref:`auditing event ` ``array.__new__`` with arguments " "``typecode``, ``initializer``." @@ -262,11 +255,11 @@ msgstr "" "Lève un :ref:`événement d'audit ` ``array.__new__`` avec les " "arguments ``typecode``, ``initializer``." -#: ../Doc/library/array.rst:83 +#: library/array.rst:83 msgid "A string with all available type codes." msgstr "Une chaîne avec tous les codes de types disponibles." -#: ../Doc/library/array.rst:85 +#: library/array.rst:85 msgid "" "Array objects support the ordinary sequence operations of indexing, slicing, " "concatenation, and multiplication. When using slice assignment, the " @@ -282,27 +275,27 @@ msgstr "" "tableau implémentent également l'interface tampon, et peuvent être utilisés " "partout où :term:`bytes-like objects ` sont supportés." -#: ../Doc/library/array.rst:91 +#: library/array.rst:91 msgid "The following data items and methods are also supported:" msgstr "" "Les éléments de données et méthodes suivants sont également supportés :" -#: ../Doc/library/array.rst:95 +#: library/array.rst:95 msgid "The typecode character used to create the array." msgstr "" "Le code (de type Python caractère) utilisé pour spécifier le type des " "éléments du tableau." -#: ../Doc/library/array.rst:100 +#: library/array.rst:100 msgid "The length in bytes of one array item in the internal representation." msgstr "" "La longueur en octets d'un élément du tableau dans la représentation interne." -#: ../Doc/library/array.rst:105 +#: library/array.rst:105 msgid "Append a new item with value *x* to the end of the array." msgstr "Ajoute un nouvel élément avec la valeur *x* à la fin du tableau." -#: ../Doc/library/array.rst:110 +#: library/array.rst:110 msgid "" "Return a tuple ``(address, length)`` giving the current memory address and " "the length in elements of the buffer used to hold array's contents. The " @@ -323,7 +316,7 @@ msgstr "" "tableau existe et qu'aucune opération qui modifie sa taille ne lui est " "appliquée." -#: ../Doc/library/array.rst:120 +#: library/array.rst:120 msgid "" "When using array objects from code written in C or C++ (the only way to " "effectively make use of this information), it makes more sense to use the " @@ -338,7 +331,7 @@ msgstr "" "devrait être évitée dans un nouveau code. L'interface tampon est documentée " "dans :ref:`bufferobjects`." -#: ../Doc/library/array.rst:129 +#: library/array.rst:129 msgid "" "\"Byteswap\" all items of the array. This is only supported for values " "which are 1, 2, 4, or 8 bytes in size; for other types of values, :exc:" @@ -350,11 +343,11 @@ msgstr "" "`RuntimeError` est levée. Il est utile lors de la lecture de données à " "partir d'un fichier écrit sur une machine avec un ordre d'octets différent." -#: ../Doc/library/array.rst:137 +#: library/array.rst:137 msgid "Return the number of occurrences of *x* in the array." msgstr "Renvoi le nombre d'occurrences de *x* dans le tableau." -#: ../Doc/library/array.rst:142 +#: library/array.rst:142 msgid "" "Append items from *iterable* to the end of the array. If *iterable* is " "another array, it must have *exactly* the same type code; if not, :exc:" @@ -367,7 +360,7 @@ msgstr "" "il doit être itérable et ces éléments doivent être du bon type pour être " "ajoutés dans le tableau." -#: ../Doc/library/array.rst:150 +#: library/array.rst:150 msgid "" "Appends items from the string, interpreting the string as an array of " "machine values (as if it had been read from a file using the :meth:" @@ -377,18 +370,18 @@ msgstr "" "valeurs machine (comme si elle avait été lue depuis le fichier en utilisant " "la méthode :meth:`from file`)." -#: ../Doc/library/array.rst:153 +#: library/array.rst:153 msgid ":meth:`fromstring` is renamed to :meth:`frombytes` for clarity." msgstr "" ":meth:`fromstring` est renommée en :meth:`frombytes` pour plus de lisibilité." -#: ../Doc/library/array.rst:159 +#: library/array.rst:159 +#, fuzzy msgid "" "Read *n* items (as machine values) from the :term:`file object` *f* and " "append them to the end of the array. If less than *n* items are available, :" "exc:`EOFError` is raised, but the items that were available are still " -"inserted into the array. *f* must be a real built-in file object; something " -"else with a :meth:`read` method won't do." +"inserted into the array." msgstr "" "Lit *n* éléments (en tant que valeurs machine) du :term:`file object` *f* et " "les ajouter à la fin du tableau. Si moins de *n* éléments sont disponibles, :" @@ -396,7 +389,7 @@ msgstr "" "tout de même insérés dans le tableau. *f* doit être un objet fichier natif ; " "quelque chose d'autre avec une méthode :meth:`read` ne suffit pas." -#: ../Doc/library/array.rst:168 +#: library/array.rst:167 msgid "" "Append items from the list. This is equivalent to ``for x in list: a." "append(x)`` except that if there is a type error, the array is unchanged." @@ -404,11 +397,11 @@ msgstr "" "Ajoute les éléments de la liste. C'est l'équivalent de ``for x in list: a." "append(x)`` sauf que s'il y a une erreur de type, le tableau est inchangé." -#: ../Doc/library/array.rst:174 +#: library/array.rst:173 msgid "Deprecated alias for :meth:`frombytes`." msgstr "Alias obsolète de :meth:`frombytes`." -#: ../Doc/library/array.rst:179 +#: library/array.rst:180 msgid "" "Extends this array with data from the given unicode string. The array must " "be a type ``'u'`` array; otherwise a :exc:`ValueError` is raised. Use " @@ -420,7 +413,7 @@ msgstr "" "``array.frombytes(unicodestring.encode(enc))`` pour ajouter des données " "Unicode à un tableau d'un autre type." -#: ../Doc/library/array.rst:187 +#: library/array.rst:188 msgid "" "Return the smallest *i* such that *i* is the index of the first occurrence " "of *x* in the array." @@ -428,7 +421,7 @@ msgstr "" "Renvoie le plus petit *i* tel que *i* est l'index de la première occurrence " "de *x* dans le tableau." -#: ../Doc/library/array.rst:193 +#: library/array.rst:194 msgid "" "Insert a new item with value *x* in the array before position *i*. Negative " "values are treated as being relative to the end of the array." @@ -437,7 +430,7 @@ msgstr "" "position *i*. Les valeurs négatives sont traitées relativement à la fin du " "tableau." -#: ../Doc/library/array.rst:199 +#: library/array.rst:200 msgid "" "Removes the item with the index *i* from the array and returns it. The " "optional argument defaults to ``-1``, so that by default the last item is " @@ -447,15 +440,15 @@ msgstr "" "optionnel par défaut est à ``-1``, de sorte que par défaut le dernier " "élément est supprimé et renvoyé." -#: ../Doc/library/array.rst:206 +#: library/array.rst:207 msgid "Remove the first occurrence of *x* from the array." msgstr "Supprime la première occurrence de *x* du tableau." -#: ../Doc/library/array.rst:211 +#: library/array.rst:212 msgid "Reverse the order of the items in the array." msgstr "Inverse l'ordre des éléments du tableau." -#: ../Doc/library/array.rst:216 +#: library/array.rst:217 msgid "" "Convert the array to an array of machine values and return the bytes " "representation (the same sequence of bytes that would be written to a file " @@ -465,26 +458,26 @@ msgstr "" "représentation en octets (la même séquence d'octets qui serait écrite par la " "méthode :meth:`tofile`)." -#: ../Doc/library/array.rst:220 +#: library/array.rst:221 msgid ":meth:`tostring` is renamed to :meth:`tobytes` for clarity." msgstr "" ":meth:`tostring` est renommé en :meth:`tobytes` pour plus de lisibilité." -#: ../Doc/library/array.rst:226 +#: library/array.rst:227 msgid "Write all items (as machine values) to the :term:`file object` *f*." msgstr "" "Écrit tous les éléments (en tant que valeurs machine) du :term:`file object` " "*f*." -#: ../Doc/library/array.rst:231 +#: library/array.rst:232 msgid "Convert the array to an ordinary list with the same items." msgstr "Convertit le tableau en une liste ordinaire avec les mêmes éléments." -#: ../Doc/library/array.rst:236 +#: library/array.rst:237 msgid "Deprecated alias for :meth:`tobytes`." msgstr "Alias obsolète de :meth:`tobytes`." -#: ../Doc/library/array.rst:241 +#: library/array.rst:244 msgid "" "Convert the array to a unicode string. The array must be a type ``'u'`` " "array; otherwise a :exc:`ValueError` is raised. Use ``array.tobytes()." @@ -495,7 +488,7 @@ msgstr "" "tobytes().decode(enc)`` pour obtenir une chaîne Unicode depuis un tableau de " "tout autre type." -#: ../Doc/library/array.rst:246 +#: library/array.rst:249 msgid "" "When an array object is printed or converted to a string, it is represented " "as ``array(typecode, initializer)``. The *initializer* is omitted if the " @@ -513,19 +506,19 @@ msgstr "" "func:`eval`, tant que la classe :class:`~array.array` a été importée en " "utilisant ``from array import array``. Exemples ::" -#: ../Doc/library/array.rst:263 +#: library/array.rst:266 msgid "Module :mod:`struct`" msgstr "Module :mod:`struct`" -#: ../Doc/library/array.rst:263 +#: library/array.rst:266 msgid "Packing and unpacking of heterogeneous binary data." msgstr "Empaquetage et dépaquetage de données binaires hétérogènes." -#: ../Doc/library/array.rst:267 +#: library/array.rst:270 msgid "Module :mod:`xdrlib`" msgstr "Module :mod:`xdrlib`" -#: ../Doc/library/array.rst:266 +#: library/array.rst:269 msgid "" "Packing and unpacking of External Data Representation (XDR) data as used in " "some remote procedure call systems." @@ -534,11 +527,11 @@ msgstr "" "telles qu'elles sont utilisées dans certains systèmes d'appels de procédures " "à distance (ou RPC pour *remote procedure call* en anglais)." -#: ../Doc/library/array.rst:270 +#: library/array.rst:273 msgid "`The Numerical Python Documentation `_" msgstr "`La documentation de *Numerical Python* `" -#: ../Doc/library/array.rst:270 +#: library/array.rst:273 msgid "" "The Numeric Python extension (NumPy) defines another array type; see http://" "www.numpy.org/ for further information about Numerical Python." diff --git a/library/ast.po b/library/ast.po index 067a11308e..d521d22868 100644 --- a/library/ast.po +++ b/library/ast.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2018-09-11 07:42+0200\n" "Last-Translator: Julien VITARD \n" "Language-Team: FRENCH \n" @@ -15,15 +15,15 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 1.8.11\n" -#: ../Doc/library/ast.rst:2 +#: library/ast.rst:2 msgid ":mod:`ast` --- Abstract Syntax Trees" msgstr ":mod:`ast` — Arbres Syntaxiques Abstraits" -#: ../Doc/library/ast.rst:10 +#: library/ast.rst:10 msgid "**Source code:** :source:`Lib/ast.py`" msgstr "**Code source :** :source:`Lib/ast.py`" -#: ../Doc/library/ast.rst:14 +#: library/ast.rst:14 msgid "" "The :mod:`ast` module helps Python applications to process trees of the " "Python abstract syntax grammar. The abstract syntax itself might change " @@ -35,7 +35,7 @@ msgstr "" "même est susceptible d'être modifiée à chaque nouvelle version de Python; ce " "module permet de trouver à quoi la grammaire actuelle ressemble." -#: ../Doc/library/ast.rst:19 +#: library/ast.rst:19 msgid "" "An abstract syntax tree can be generated by passing :data:`ast." "PyCF_ONLY_AST` as a flag to the :func:`compile` built-in function, or using " @@ -51,11 +51,11 @@ msgstr "" "Un arbre syntaxique abstrait peut être compilé en code objet Python en " "utilisant la fonction native :func:`compile`." -#: ../Doc/library/ast.rst:27 +#: library/ast.rst:27 msgid "Node classes" msgstr "Les classes nœud" -#: ../Doc/library/ast.rst:31 +#: library/ast.rst:31 msgid "" "This is the base of all AST node classes. The actual node classes are " "derived from the :file:`Parser/Python.asdl` file, which is reproduced :ref:" @@ -67,7 +67,7 @@ msgstr "" "reproduit :ref:`ci-dessous `. Ils sont définis dans le " "module C :mod:`_ast` et ré-exportés dans le module :mod:`ast`." -#: ../Doc/library/ast.rst:36 +#: library/ast.rst:36 msgid "" "There is one class defined for each left-hand side symbol in the abstract " "grammar (for example, :class:`ast.stmt` or :class:`ast.expr`). In addition, " @@ -86,7 +86,7 @@ msgstr "" "*sums*), la partie gauche est abstraite : seules les instances des " "constructeurs spécifiques aux nœuds sont créés." -#: ../Doc/library/ast.rst:49 +#: library/ast.rst:49 msgid "" "Each concrete class has an attribute :attr:`_fields` which gives the names " "of all child nodes." @@ -94,7 +94,7 @@ msgstr "" "Chaque classe concrète possède un attribut :attr:`_fields` donnant les noms " "de tous les nœuds enfants." -#: ../Doc/library/ast.rst:52 +#: library/ast.rst:52 msgid "" "Each instance of a concrete class has one attribute for each child node, of " "the type as defined in the grammar. For example, :class:`ast.BinOp` " @@ -104,7 +104,7 @@ msgstr "" "enfant, du type défini par la grammaire. Par exemple, les instances :class:" "`ast.BinOp` possèdent un attribut :attr:`left` de type :class:`ast.expr`." -#: ../Doc/library/ast.rst:56 +#: library/ast.rst:56 msgid "" "If these attributes are marked as optional in the grammar (using a question " "mark), the value might be ``None``. If the attributes can have zero-or-more " @@ -119,7 +119,7 @@ msgstr "" "attributs possibles doivent être présents et avoir une valeur valide pour " "compiler un AST avec :func:`compile`." -#: ../Doc/library/ast.rst:67 +#: library/ast.rst:67 #, fuzzy msgid "" "Instances of :class:`ast.expr` and :class:`ast.stmt` subclasses have :attr:" @@ -139,22 +139,26 @@ msgstr "" "nœud. Le décalage UTF-8 est enregistré parce que l'analyseur syntaxique " "utilise l'UTF-8 en interne." -#: ../Doc/library/ast.rst:75 +#: library/ast.rst:75 msgid "" "Note that the end positions are not required by the compiler and are " "therefore optional. The end offset is *after* the last symbol, for example " "one can get the source segment of a one-line expression node using " "``source_line[node.col_offset : node.end_col_offset]``." msgstr "" +"Les décalages *end…* ne sont pas obligatoires ni nécessaires au compilateur. " +"*end_col_offset* pointe *après* le dernier lexème. On peut donc obtenir la " +"partie du code source ayant donné lieu à une expression avec " +"``ligne_source[nœud.col_offset : nœud.end_col_offset]``." -#: ../Doc/library/ast.rst:80 +#: library/ast.rst:80 msgid "" "The constructor of a class :class:`ast.T` parses its arguments as follows:" msgstr "" "Le constructeur d'une classe :class:`ast.T` analyse ses arguments comme " "suit :" -#: ../Doc/library/ast.rst:82 +#: library/ast.rst:82 msgid "" "If there are positional arguments, there must be as many as there are items " "in :attr:`T._fields`; they will be assigned as attributes of these names." @@ -162,7 +166,7 @@ msgstr "" "S'il y a des arguments positionnels, il doit y avoir autant de termes dans :" "attr:`T._fields`; ils sont assignés comme attributs portant ces noms." -#: ../Doc/library/ast.rst:84 +#: library/ast.rst:84 msgid "" "If there are keyword arguments, they will set the attributes of the same " "names to the given values." @@ -170,39 +174,45 @@ msgstr "" "S'il y a des arguments nommés, ils définissent les attributs de mêmes noms " "avec les valeurs données." -#: ../Doc/library/ast.rst:87 +#: library/ast.rst:87 msgid "" "For example, to create and populate an :class:`ast.UnaryOp` node, you could " "use ::" msgstr "" "Par exemple, pour créer et peupler un nœud :class:`ast.UnaryOp`, on peut " -"utiliser ::" +"utiliser ::" -#: ../Doc/library/ast.rst:99 +#: library/ast.rst:99 msgid "or the more compact ::" -msgstr "ou, plus compact ::" +msgstr "ou, plus compact ::" -#: ../Doc/library/ast.rst:106 +#: library/ast.rst:106 +msgid "Class :class:`ast.Constant` is now used for all constants." +msgstr "" +"toutes les constantes sont désormais représentées par des instances de :" +"class:`ast.Constant`." + +#: library/ast.rst:110 msgid "" -"Class :class:`ast.Constant` is now used for all constants. Old classes :" -"class:`ast.Num`, :class:`ast.Str`, :class:`ast.Bytes`, :class:`ast." -"NameConstant` and :class:`ast.Ellipsis` are still available, but they will " -"be removed in future Python releases." +"Old classes :class:`ast.Num`, :class:`ast.Str`, :class:`ast.Bytes`, :class:" +"`ast.NameConstant` and :class:`ast.Ellipsis` are still available, but they " +"will be removed in future Python releases. In the meanwhile, instantiating " +"them will return an instance of a different class." msgstr "" -#: ../Doc/library/ast.rst:115 +#: library/ast.rst:119 msgid "Abstract Grammar" msgstr "Grammaire abstraite" -#: ../Doc/library/ast.rst:117 +#: library/ast.rst:121 msgid "The abstract grammar is currently defined as follows:" msgstr "La grammaire abstraite est actuellement définie comme suit :" -#: ../Doc/library/ast.rst:124 +#: library/ast.rst:128 msgid ":mod:`ast` Helpers" msgstr "Outils du module :mod:`ast`" -#: ../Doc/library/ast.rst:126 +#: library/ast.rst:130 msgid "" "Apart from the node classes, the :mod:`ast` module defines these utility " "functions and classes for traversing abstract syntax trees:" @@ -210,7 +220,7 @@ msgstr "" "À part la classe nœud, le module :mod:`ast` définit ces fonctions et classes " "utilitaires pour traverser les arbres syntaxiques abstraits :" -#: ../Doc/library/ast.rst:131 +#: library/ast.rst:135 msgid "" "Parse the source into an AST node. Equivalent to ``compile(source, " "filename, mode, ast.PyCF_ONLY_AST)``." @@ -218,7 +228,7 @@ msgstr "" "Analyse le code source en un nœud AST. Équivalent à ``compile(source, " "filename, mode, ast.PyCF_ONLY_AST)``." -#: ../Doc/library/ast.rst:134 +#: library/ast.rst:138 msgid "" "If ``type_comments=True`` is given, the parser is modified to check and " "return type comments as specified by :pep:`484` and :pep:`526`. This is " @@ -230,15 +240,25 @@ msgid "" "the ``type_ignores`` attribute of :class:`Module` (otherwise it is always an " "empty list)." msgstr "" +"Si *type_comments* est mis à ``True``, l'analyseur syntaxique reconnaît les " +"commentaires de type et les ajoute à l'arbre, comme décrit dans la :pep:" +"`484` et la :pep:`526`. Ceci revient à ajouter :data:`ast." +"PyCF_TYPE_COMMENTS` à l'argument *flags* de :func:`compile`. Une erreur de " +"syntaxe est levée si un commentaire de type est placé au mauvais endroit. " +"Les commentaires ``# type: ignore`` sont également détectés et leurs " +"positions dans la source sont placées dans l'attribut *type_ignores* du " +"nœud :class:`Module`. Sans cette option, les commentaires de type sont " +"ignorés tout comme les commentaires ordinaires, et l'attribut *type_comment* " +"des nœuds dont le type possède ce champ sera toujours mis à ``None``." -#: ../Doc/library/ast.rst:144 +#: library/ast.rst:148 msgid "" "In addition, if ``mode`` is ``'func_type'``, the input syntax is modified to " "correspond to :pep:`484` \"signature type comments\", e.g. ``(str, int) -> " "List[str]``." msgstr "" -#: ../Doc/library/ast.rst:148 +#: library/ast.rst:152 msgid "" "Also, setting ``feature_version`` to a tuple ``(major, minor)`` will attempt " "to parse using that Python version's grammar. Currently ``major`` must equal " @@ -246,8 +266,14 @@ msgid "" "use of ``async`` and ``await`` as variable names. The lowest supported " "version is ``(3, 4)``; the highest is ``sys.version_info[0:2]``." msgstr "" +"Si *feature_version* est défini à une version de Python, sous la forme d'un " +"couple ``(version_majeure, version_mineure)``, l'analyseur tentera de lire " +"la source en se conformant à la syntaxe de cette version. Ainsi, avec " +"``feature_version=(3, 4)``, les noms ``async`` et ``await`` peuvent nommer " +"des variables. La version la plus ancienne prise en charge est actuellement " +"``(3, 4)`` ; la plus récente est ``sys.version_info[0:2]``." -#: ../Doc/library/ast.rst:156 ../Doc/library/ast.rst:177 +#: library/ast.rst:181 msgid "" "It is possible to crash the Python interpreter with a sufficiently large/" "complex string due to stack depth limitations in Python's AST compiler." @@ -256,11 +282,13 @@ msgstr "" "suffisamment grandes ou complexes lors de la compilation d'un objet AST dû à " "la limitation de la profondeur de la pile d'appels." -#: ../Doc/library/ast.rst:160 +#: library/ast.rst:164 msgid "Added ``type_comments``, ``mode='func_type'`` and ``feature_version``." msgstr "" +"ajout des paramètres *type_comments* et *feature_version* ainsi que de la " +"valeur ``'func_type'`` pour *mode*." -#: ../Doc/library/ast.rst:166 +#: library/ast.rst:170 msgid "" "Safely evaluate an expression node or a string containing a Python literal " "or container display. The string or node provided may only consist of the " @@ -273,7 +301,7 @@ msgstr "" "Python suivants : chaînes de caractères, bytes, nombres, n-uplets, listes, " "dictionnaires, ensembles, booléens, et ``None``." -#: ../Doc/library/ast.rst:171 +#: library/ast.rst:175 msgid "" "This can be used for safely evaluating strings containing Python values from " "untrusted sources without the need to parse the values oneself. It is not " @@ -286,11 +314,11 @@ msgstr "" "d'évaluer des expressions complexes arbitraires, par exemple impliquant des " "opérateurs ou de l'indexation." -#: ../Doc/library/ast.rst:181 +#: library/ast.rst:185 msgid "Now allows bytes and set literals." msgstr "Accepte maintenant les littéraux suivants *bytes* et *sets*." -#: ../Doc/library/ast.rst:187 +#: library/ast.rst:191 msgid "" "Return the docstring of the given *node* (which must be a :class:" "`FunctionDef`, :class:`AsyncFunctionDef`, :class:`ClassDef`, or :class:" @@ -303,24 +331,28 @@ msgstr "" "cette fonction nettoie l'indentation de la *docstring* avec :func:`inspect." "cleandoc`." -#: ../Doc/library/ast.rst:193 +#: library/ast.rst:197 msgid ":class:`AsyncFunctionDef` is now supported." msgstr ":class:`AsyncFunctionDef` est maintenant gérée" -#: ../Doc/library/ast.rst:199 +#: library/ast.rst:203 msgid "" "Get source code segment of the *source* that generated *node*. If some " "location information (:attr:`lineno`, :attr:`end_lineno`, :attr:" "`col_offset`, or :attr:`end_col_offset`) is missing, return ``None``." msgstr "" +"Donne la partie de *source* (le code source) qui a donné lieu à *node*. Si " +"l'un des attributs de localisation du nœud (:attr:`lineno`, :attr:" +"`end_lineno`, :attr:`col_offset` et :attr:`end_col_offset`) n'est pas " +"rempli, cette fonction renvoie ``None``." -#: ../Doc/library/ast.rst:203 +#: library/ast.rst:207 msgid "" "If *padded* is ``True``, the first line of a multi-line statement will be " "padded with spaces to match its original position." msgstr "" -#: ../Doc/library/ast.rst:211 +#: library/ast.rst:215 msgid "" "When you compile a node tree with :func:`compile`, the compiler expects :" "attr:`lineno` and :attr:`col_offset` attributes for every node that supports " @@ -335,29 +367,28 @@ msgstr "" "ils ne sont pas déjà définis, en les définissant comme les valeurs du nœud " "parent. Elle fonctionne récursivement en démarrant de *node*." -#: ../Doc/library/ast.rst:220 -#, fuzzy +#: library/ast.rst:224 msgid "" "Increment the line number and end line number of each node in the tree " "starting at *node* by *n*. This is useful to \"move code\" to a different " "location in a file." msgstr "" -"Incrémente de *n* le numéro de ligne de chaque nœud dans l'arbre en " -"commençant par le nœud *node*. C'est utile pour \"déplacer du code\" à un " -"endroit différent dans un fichier." +"Incrémente de *n* les numéros des lignes de début et ligne de fin de chaque " +"nœud dans l'arbre, en commençant par le nœud *node*. C'est utile pour " +"« déplacer du code » à un endroit différent dans un fichier." -#: ../Doc/library/ast.rst:227 -#, fuzzy +#: library/ast.rst:231 msgid "" "Copy source location (:attr:`lineno`, :attr:`col_offset`, :attr:" "`end_lineno`, and :attr:`end_col_offset`) from *old_node* to *new_node* if " "possible, and return *new_node*." msgstr "" -"Copie le code source (:attr:`lineno` et :attr:`col_offset`) de l'ancien nœud " -"*old_node* vers le nouveau nœud *new_node* si possible, et renvoie " +"Copie la position dans la source (attributs :attr:`lineno`, :attr:" +"`col_offset`, :attr:`end_lineno` et :attr:`end_col_offset`) de l'ancien nœud " +"*old_node* vers le nouveau nœud *new_node*, si possible, et renvoie " "*new_node*." -#: ../Doc/library/ast.rst:234 +#: library/ast.rst:238 msgid "" "Yield a tuple of ``(fieldname, value)`` for each field in ``node._fields`` " "that is present on *node*." @@ -365,7 +396,7 @@ msgstr "" "Produit un n-uplet de ``(fieldname, value)`` pour chaque champ de ``node." "_fields`` qui est présent dans *node*." -#: ../Doc/library/ast.rst:240 +#: library/ast.rst:244 msgid "" "Yield all direct child nodes of *node*, that is, all fields that are nodes " "and all items of fields that are lists of nodes." @@ -374,7 +405,7 @@ msgstr "" "champs qui sont des nœuds et tous les éléments des champs qui sont des " "listes de nœuds." -#: ../Doc/library/ast.rst:246 +#: library/ast.rst:250 msgid "" "Recursively yield all descendant nodes in the tree starting at *node* " "(including *node* itself), in no specified order. This is useful if you " @@ -385,7 +416,7 @@ msgstr "" "lorsque l'on souhaite modifier les nœuds sur place sans prêter attention au " "contexte." -#: ../Doc/library/ast.rst:253 +#: library/ast.rst:257 msgid "" "A node visitor base class that walks the abstract syntax tree and calls a " "visitor function for every node found. This function may return a value " @@ -396,7 +427,7 @@ msgstr "" "Cette fonction peut renvoyer une valeur qui est transmise par la méthode :" "meth:`visit`." -#: ../Doc/library/ast.rst:257 +#: library/ast.rst:261 msgid "" "This class is meant to be subclassed, with the subclass adding visitor " "methods." @@ -404,7 +435,7 @@ msgstr "" "Cette classe est faite pour être dérivée, en ajoutant des méthodes de visite " "à la sous-classe." -#: ../Doc/library/ast.rst:262 +#: library/ast.rst:266 msgid "" "Visit a node. The default implementation calls the method called :samp:" "`self.visit_{classname}` where *classname* is the name of the node class, " @@ -414,12 +445,12 @@ msgstr "" "visit_{classname}` où *classname* représente le nom de la classe du nœud, " "ou :meth:`generic_visit` si cette méthode n'existe pas." -#: ../Doc/library/ast.rst:268 +#: library/ast.rst:272 msgid "This visitor calls :meth:`visit` on all children of the node." msgstr "" "Le visiteur appelle la méthode :meth:`visit` de tous les enfants du nœud." -#: ../Doc/library/ast.rst:270 +#: library/ast.rst:274 msgid "" "Note that child nodes of nodes that have a custom visitor method won't be " "visited unless the visitor calls :meth:`generic_visit` or visits them itself." @@ -428,7 +459,7 @@ msgstr "" "seront pas visités à moins que le visiteur n'appelle la méthode :meth:" "`generic_visit` ou ne les visite lui-même." -#: ../Doc/library/ast.rst:274 +#: library/ast.rst:278 msgid "" "Don't use the :class:`NodeVisitor` if you want to apply changes to nodes " "during traversal. For this a special visitor exists (:class:" @@ -438,15 +469,20 @@ msgstr "" "changements sur les nœuds lors du parcours. Pour cela, un visiteur spécial " "existe (:class:`NodeTransformer`) qui permet les modifications." -#: ../Doc/library/ast.rst:280 +#: library/ast.rst:284 msgid "" "Methods :meth:`visit_Num`, :meth:`visit_Str`, :meth:`visit_Bytes`, :meth:" "`visit_NameConstant` and :meth:`visit_Ellipsis` are deprecated now and will " "not be called in future Python versions. Add the :meth:`visit_Constant` " "method to handle all constant nodes." msgstr "" +"les méthodes :meth:`visit_Num`, :meth:`visit_Str`, :meth:`visit_Bytes`, :" +"meth:`visit_NameConstant` et :meth:`visit_Ellipsis` sont devenues obsolètes " +"et cesseront d'être appelées dans une version ultérieure de Python. Écrivez " +"une méthode :meth:`visit_Constant` pour traiter tous les nœuds qui " +"représentent des valeurs constantes." -#: ../Doc/library/ast.rst:288 +#: library/ast.rst:292 msgid "" "A :class:`NodeVisitor` subclass that walks the abstract syntax tree and " "allows modification of nodes." @@ -454,7 +490,7 @@ msgstr "" "Une sous-classe :class:`NodeVisitor` qui traverse l'arbre syntaxique " "abstrait et permet les modifications des nœuds." -#: ../Doc/library/ast.rst:291 +#: library/ast.rst:295 msgid "" "The :class:`NodeTransformer` will walk the AST and use the return value of " "the visitor methods to replace or remove the old node. If the return value " @@ -469,7 +505,7 @@ msgstr "" "valeur de retour peut être le nœud original et dans ce cas, il n'y a pas de " "remplacement. " -#: ../Doc/library/ast.rst:297 +#: library/ast.rst:301 msgid "" "Here is an example transformer that rewrites all occurrences of name lookups " "(``foo``) to ``data['foo']``::" @@ -477,7 +513,7 @@ msgstr "" "Voici un exemple du *transformer* qui réécrit les occurrences du " "dictionnaire (``foo``) en ``data['foo']`` ::" -#: ../Doc/library/ast.rst:309 +#: library/ast.rst:313 msgid "" "Keep in mind that if the node you're operating on has child nodes you must " "either transform the child nodes yourself or call the :meth:`generic_visit` " @@ -487,7 +523,7 @@ msgstr "" "enfants, vous devez transformer également ces nœuds enfant vous-même ou " "appeler d'abord la méthode :meth:`generic_visit` sur le nœud." -#: ../Doc/library/ast.rst:313 +#: library/ast.rst:317 msgid "" "For nodes that were part of a collection of statements (that applies to all " "statement nodes), the visitor may also return a list of nodes rather than " @@ -497,12 +533,23 @@ msgstr "" "s'applique à tous les nœuds instruction), le visiteur peut aussi renvoyer la " "liste des nœuds plutôt qu'un seul nœud." -#: ../Doc/library/ast.rst:317 +#: library/ast.rst:321 +msgid "" +"If :class:`NodeTransformer` introduces new nodes (that weren't part of " +"original tree) without giving them location information (such as :attr:" +"`lineno`), :func:`fix_missing_locations` should be called with the new sub-" +"tree to recalculate the location information::" +msgstr "" +"Si :class:`NodeTransformer` ajoute de nouveaux nœuds à l'original sans leur " +"donner les attributs de position dans la source (:attr:`lineno` et " +"consorts), il faut passer le nouvel arbre (ou la nouvelle partie de l'arbre) " +"à :func:`fix_missing_locations` pour calculer les positions manquantes :" + +#: library/ast.rst:329 msgid "Usually you use the transformer like this::" msgstr "Utilisation typique du *transformer* ::" -#: ../Doc/library/ast.rst:324 -#, fuzzy +#: library/ast.rst:336 msgid "" "Return a formatted dump of the tree in *node*. This is mainly useful for " "debugging purposes. If *annotate_fields* is true (by default), the returned " @@ -512,15 +559,17 @@ msgid "" "dumped by default. If this is wanted, *include_attributes* can be set to " "true." msgstr "" -"Renvoie un *dump* formaté de l'arbre dans *node*. C'est principalement utile " -"à des fins de débogage. La chaîne de caractères renvoyée présente les noms " -"et valeurs des champs. Cela rend le code impossible à évaluer, si l'on " -"souhaite évaluer ce code, l'option *annotate_fields* doit être définie comme " -"``False``. Les attributs comme les numéros de ligne et les décalages de " -"colonne ne sont pas récupérés par défaut. Si l'on souhaite les récupérer, " -"l'option *include_attributes* peut être définie comme ``True``." +"Renvoie une représentation sous forme de chaîne de caractères de l'arbre " +"contenu dans *node*. Ceci est principalement utile à des fins de débogage. " +"Par défaut, les champs sont passés comme paramètres nommés aux constructeurs " +"des classes d'arbre syntaxiques. Cependant, si *annotate_fields* est mis à " +"``False``, les valeurs sont passées, lorsque cela est possible, comme " +"arguments positionnels, rendant la représentation plus compacte. Les " +"attributs comme les numéros de lignes et positions sur les lignes sont " +"masqués par défaut, mais on peut les inclure en mettant *include_attributes* " +"à ``True``." -#: ../Doc/library/ast.rst:334 +#: library/ast.rst:346 msgid "" "`Green Tree Snakes `_, an external " "documentation resource, has good details on working with Python ASTs." @@ -528,3 +577,46 @@ msgstr "" "`Green Tree Snakes `_, une " "ressource documentaire externe, qui possède plus de détails pour travailler " "avec des ASTs Python." + +#: library/ast.rst:349 +msgid "" +"`ASTTokens `_ " +"annotates Python ASTs with the positions of tokens and text in the source " +"code that generated them. This is helpful for tools that make source code " +"transformations." +msgstr "" +"`ASTTokens `_ " +"annote les arbres syntaxiques Python avec les positions des lexèmes et les " +"extraits de code source à partir desquels ils sont produits. Ceci est utile " +"pour les outils qui transforment du code source." + +#: library/ast.rst:354 +msgid "" +"`leoAst.py `_ unifies the " +"token-based and parse-tree-based views of python programs by inserting two-" +"way links between tokens and ast nodes." +msgstr "" + +#: library/ast.rst:358 +msgid "" +"`LibCST `_ parses code as a Concrete Syntax " +"Tree that looks like an ast tree and keeps all formatting details. It's " +"useful for building automated refactoring (codemod) applications and linters." +msgstr "" +"`LibCST `_ produit à partir du code source " +"des arbres syntaxiques concrets, qui ressemblent à leurs homologues " +"abstraits et conservent tous les détails du formatage. Cette bibliothèque " +"est utile aux outils de réusinage et d'analyse de code." + +#: library/ast.rst:363 +msgid "" +"`Parso `_ is a Python parser that supports " +"error recovery and round-trip parsing for different Python versions (in " +"multiple Python versions). Parso is also able to list multiple syntax errors " +"in your python file." +msgstr "" +"`Parso `_ est un analyseur syntaxique de code " +"Python qui gère la récupération d'erreurs et la génération de code (de " +"l'arbre syntaxique vers le code source), le tout pour les grammaires de " +"différentes versions de Python et en utilisant différentes versions. Il sait " +"également donner plusieurs erreurs de syntaxe en une seule fois." diff --git a/library/asyncio-api-index.po b/library/asyncio-api-index.po index 5cac66e4a0..60bd18d052 100644 --- a/library/asyncio-api-index.po +++ b/library/asyncio-api-index.po @@ -33,8 +33,9 @@ msgid "" msgstr "" #: ../Doc/library/asyncio-api-index.rst:21 +#, fuzzy msgid ":func:`run`" -msgstr "" +msgstr ":func:`round`" #: ../Doc/library/asyncio-api-index.rst:22 msgid "Create event loop, run a coroutine, close the loop." @@ -42,7 +43,7 @@ msgstr "" #: ../Doc/library/asyncio-api-index.rst:24 msgid ":func:`create_task`" -msgstr "" +msgstr ":func:`create_task`" #: ../Doc/library/asyncio-api-index.rst:25 msgid "Start an asyncio Task." @@ -90,7 +91,7 @@ msgstr "" #: ../Doc/library/asyncio-api-index.rst:42 msgid ":func:`current_task`" -msgstr "" +msgstr ":func:`current_task`" #: ../Doc/library/asyncio-api-index.rst:43 msgid "Return the current Task." @@ -98,7 +99,7 @@ msgstr "" #: ../Doc/library/asyncio-api-index.rst:45 msgid ":func:`all_tasks`" -msgstr "" +msgstr ":func:`all_tasks`" #: ../Doc/library/asyncio-api-index.rst:46 msgid "Return all tasks for an event loop." @@ -106,7 +107,7 @@ msgstr "" #: ../Doc/library/asyncio-api-index.rst:48 msgid ":class:`Task`" -msgstr "" +msgstr ":class:`Task`" #: ../Doc/library/asyncio-api-index.rst:49 msgid "Task object." @@ -114,7 +115,7 @@ msgstr "" #: ../Doc/library/asyncio-api-index.rst:51 msgid ":func:`run_coroutine_threadsafe`" -msgstr "" +msgstr ":func:`run_coroutine_threadsafe`" #: ../Doc/library/asyncio-api-index.rst:52 msgid "Schedule a coroutine from another OS thread." @@ -219,7 +220,7 @@ msgstr "" #: ../Doc/library/asyncio-api-index.rst:112 msgid "Create a subprocess." -msgstr "" +msgstr "Crée un sous-processus." #: ../Doc/library/asyncio-api-index.rst:114 msgid "``await`` :func:`create_subprocess_shell`" @@ -279,7 +280,7 @@ msgstr "" #: ../Doc/library/asyncio-api-index.rst:147 msgid ":class:`StreamReader`" -msgstr "" +msgstr ":class:`StreamReader`" #: ../Doc/library/asyncio-api-index.rst:148 msgid "High-level async/await object to receive network data." @@ -287,7 +288,7 @@ msgstr "" #: ../Doc/library/asyncio-api-index.rst:150 msgid ":class:`StreamWriter`" -msgstr "" +msgstr ":class:`StreamWriter`" #: ../Doc/library/asyncio-api-index.rst:151 msgid "High-level async/await object to send network data." @@ -376,7 +377,7 @@ msgstr "" #: ../Doc/library/asyncio-api-index.rst:208 msgid ":exc:`asyncio.CancelledError`" -msgstr "" +msgstr ":exc:`asyncio.CancelledError`" #: ../Doc/library/asyncio-api-index.rst:209 msgid "Raised when a Task is cancelled. See also :meth:`Task.cancel`." diff --git a/library/asyncio-dev.po b/library/asyncio-dev.po index 761667334f..da48142a01 100644 --- a/library/asyncio-dev.po +++ b/library/asyncio-dev.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2018-10-13 17:38+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -14,105 +14,128 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/library/asyncio-dev.rst:7 +#: library/asyncio-dev.rst:7 msgid "Developing with asyncio" msgstr "Programmer avec *asyncio*" -#: ../Doc/library/asyncio-dev.rst:9 +#: library/asyncio-dev.rst:9 msgid "" "Asynchronous programming is different from classic \"sequential\" " "programming." msgstr "" +"La programmation asynchrone est différente de la programmation " +"« séquentielle » classique." -#: ../Doc/library/asyncio-dev.rst:12 +#: library/asyncio-dev.rst:12 msgid "" "This page lists common mistakes and traps and explains how to avoid them." msgstr "" +"Cette page liste les pièges et erreurs communs que le développeur pourrait " +"rencontrer et décrit comment les éviter." -#: ../Doc/library/asyncio-dev.rst:19 +#: library/asyncio-dev.rst:19 msgid "Debug Mode" -msgstr "" +msgstr "Mode débogage" -#: ../Doc/library/asyncio-dev.rst:21 +#: library/asyncio-dev.rst:21 msgid "" "By default asyncio runs in production mode. In order to ease the " "development asyncio has a *debug mode*." msgstr "" +"Par défaut, *asyncio* s'exécute en mode production. Pour faciliter le " +"développement, *asyncio* possède un « mode débogage »." -#: ../Doc/library/asyncio-dev.rst:24 +#: library/asyncio-dev.rst:24 msgid "There are several ways to enable asyncio debug mode:" -msgstr "" +msgstr "Il existe plusieurs façons d'activer le mode débogage de *asyncio* :" -#: ../Doc/library/asyncio-dev.rst:26 +#: library/asyncio-dev.rst:26 msgid "Setting the :envvar:`PYTHONASYNCIODEBUG` environment variable to ``1``." msgstr "" +"en réglant la variable d’environnement :envvar:`PYTHONASYNCIODEBUG` à ``1`` ;" -#: ../Doc/library/asyncio-dev.rst:28 +#: library/asyncio-dev.rst:28 msgid "Using the :option:`-X` ``dev`` Python command line option." msgstr "" -#: ../Doc/library/asyncio-dev.rst:30 +#: library/asyncio-dev.rst:30 msgid "Passing ``debug=True`` to :func:`asyncio.run`." -msgstr "" +msgstr "en passant ``debug=True`` à la fonction :func:`asyncio.run` ;" -#: ../Doc/library/asyncio-dev.rst:32 +#: library/asyncio-dev.rst:32 msgid "Calling :meth:`loop.set_debug`." -msgstr "" +msgstr "en appelant la méthode :meth:`loop.set_debug`." -#: ../Doc/library/asyncio-dev.rst:34 +#: library/asyncio-dev.rst:34 msgid "In addition to enabling the debug mode, consider also:" -msgstr "" +msgstr "En plus d'activer le mode débogage, vous pouvez également :" -#: ../Doc/library/asyncio-dev.rst:36 +#: library/asyncio-dev.rst:36 msgid "" "setting the log level of the :ref:`asyncio logger ` to :py:" "data:`logging.DEBUG`, for example the following snippet of code can be run " "at startup of the application::" msgstr "" +"régler le niveau de journalisation pour l'enregistreur d'*asyncio* (:ref:" +"`asyncio logger `) à :py:data:`logging.DEBUG` ; par exemple, " +"le fragment de code suivant peut être exécuté au démarrage de " +"l'application ::" -#: ../Doc/library/asyncio-dev.rst:42 +#: library/asyncio-dev.rst:42 msgid "" "configuring the :mod:`warnings` module to display :exc:`ResourceWarning` " "warnings. One way of doing that is by using the :option:`-W` ``default`` " "command line option." msgstr "" +"configurer le module :mod:`warnings` afin d'afficher les avertissements de " +"type :exc:`ResourceWarning` ; vous pouvez faire cela en utilisant l'option :" +"option:`-W` ``default`` sur la ligne de commande." -#: ../Doc/library/asyncio-dev.rst:47 +#: library/asyncio-dev.rst:47 msgid "When the debug mode is enabled:" -msgstr "" +msgstr "Lorsque le mode débogage est activé :" -#: ../Doc/library/asyncio-dev.rst:49 +#: library/asyncio-dev.rst:49 msgid "" "asyncio checks for :ref:`coroutines that were not awaited ` and logs them; this mitigates the \"forgotten await\" " "pitfall." msgstr "" +"*asyncio* surveille les :ref:`coroutines qui ne sont jamais attendues " +"` et les journalise ; cela atténue le " +"problème des « *await* oubliés » ;" -#: ../Doc/library/asyncio-dev.rst:53 +#: library/asyncio-dev.rst:53 msgid "" "Many non-threadsafe asyncio APIs (such as :meth:`loop.call_soon` and :meth:" "`loop.call_at` methods) raise an exception if they are called from a wrong " "thread." msgstr "" +"beaucoup d'*API* *asyncio* ne prenant pas en charge les fils d'exécution " +"multiples (comme les méthodes :meth:`loop.call_soon` et :meth:`loop." +"call_at`) lèvent une exception si elles sont appelées par le mauvais fil " +"d’exécution ;" -#: ../Doc/library/asyncio-dev.rst:57 +#: library/asyncio-dev.rst:57 msgid "" "The execution time of the I/O selector is logged if it takes too long to " "perform an I/O operation." msgstr "" +"le temps d'exécution du sélecteur d'entrée-sortie est journalisé si une " +"opération prend trop de temps à s'effectuer ;" -#: ../Doc/library/asyncio-dev.rst:60 +#: library/asyncio-dev.rst:60 msgid "" "Callbacks taking longer than 100ms are logged. The :attr:`loop." "slow_callback_duration` attribute can be used to set the minimum execution " "duration in seconds that is considered \"slow\"." msgstr "" -#: ../Doc/library/asyncio-dev.rst:68 +#: library/asyncio-dev.rst:68 msgid "Concurrency and Multithreading" msgstr "Concourance et *multithreading*" -#: ../Doc/library/asyncio-dev.rst:70 +#: library/asyncio-dev.rst:70 msgid "" "An event loop runs in a thread (typically the main thread) and executes all " "callbacks and Tasks in its thread. While a Task is running in the event " @@ -120,122 +143,184 @@ msgid "" "``await`` expression, the running Task gets suspended, and the event loop " "executes the next Task." msgstr "" +"Une boucle d'évènements s'exécute dans un fil d’exécution (typiquement dans " +"le fil principal) et traite toutes les fonctions de rappel (*callbacks*) " +"ainsi que toutes les tâches dans ce même fil. Lorsqu'une tâche est en cours " +"d'exécution dans la boucle d'évènements, aucune autre tâche ne peut " +"s'exécuter dans ce fil. Quand une tâche traite une expression ``await``, " +"elle se suspend et laisse la boucle d’évènements traiter la tâche suivante." -#: ../Doc/library/asyncio-dev.rst:76 +#: library/asyncio-dev.rst:76 msgid "" -"To schedule a callback from a different OS thread, the :meth:`loop." +"To schedule a :term:`callback` from another OS thread, the :meth:`loop." "call_soon_threadsafe` method should be used. Example::" msgstr "" +"Pour planifier un :term:`rappel ` depuis un autre fil d'exécution " +"système, utilisez la méthode :meth:`loop.call_soon_threadsafe`. Par " +"exemple ::" -#: ../Doc/library/asyncio-dev.rst:81 +#: library/asyncio-dev.rst:81 msgid "" "Almost all asyncio objects are not thread safe, which is typically not a " "problem unless there is code that works with them from outside of a Task or " "a callback. If there's a need for such code to call a low-level asyncio " "API, the :meth:`loop.call_soon_threadsafe` method should be used, e.g.::" msgstr "" +"La plupart des objets *asyncio* ne sont pas conçus pour être exécutés dans " +"un contexte multi-fils (*thread-safe*) mais cela n'est en général pas un " +"problème à moins que l'objet ne fasse appel à du code se trouvant en dehors " +"d'une tâche ou d'une fonction de rappel. Dans ce dernier cas, si le code " +"appelle les *API* bas niveau de *asyncio*, utilisez la méthode :meth:`loop." +"call_soon_threadsafe`. Par exemple ::" -#: ../Doc/library/asyncio-dev.rst:89 +#: library/asyncio-dev.rst:89 msgid "" "To schedule a coroutine object from a different OS thread, the :func:" "`run_coroutine_threadsafe` function should be used. It returns a :class:" "`concurrent.futures.Future` to access the result::" msgstr "" +"Pour planifier un objet concurrent depuis un autre fil d'exécution système, " +"utilisez :func:`run_coroutine_threadsafe`. Cette fonction renvoie un objet :" +"class:`concurrent.futures.Future` pour accéder au résultat ::" -#: ../Doc/library/asyncio-dev.rst:102 +#: library/asyncio-dev.rst:102 msgid "" "To handle signals and to execute subprocesses, the event loop must be run in " "the main thread." msgstr "" +"Pour pouvoir traiter les signaux et démarrer des processus enfants, la " +"boucle d'évènements doit être exécutée dans le fil principal." -#: ../Doc/library/asyncio-dev.rst:105 +#: library/asyncio-dev.rst:105 msgid "" "The :meth:`loop.run_in_executor` method can be used with a :class:" "`concurrent.futures.ThreadPoolExecutor` to execute blocking code in a " "different OS thread without blocking the OS thread that the event loop runs " "in." msgstr "" +"La méthode :meth:`loop.run_in_executor` peut être utilisée avec :class:" +"`concurrent.futures.ThreadPoolExecutor` pour exécuter du code bloquant dans " +"un autre fil d'exécution, afin de ne pas bloquer le fil où la boucle " +"d'évènements se trouve." -#: ../Doc/library/asyncio-dev.rst:114 +#: library/asyncio-dev.rst:110 +msgid "" +"There is currently no way to schedule coroutines or callbacks directly from " +"a different process (such as one started with :mod:`multiprocessing`). The :" +"ref:`Event Loop Methods ` section lists APIs that can " +"read from pipes and watch file descriptors without blocking the event loop. " +"In addition, asyncio's :ref:`Subprocess ` APIs provide a " +"way to start a process and communicate with it from the event loop. Lastly, " +"the aforementioned :meth:`loop.run_in_executor` method can also be used with " +"a :class:`concurrent.futures.ProcessPoolExecutor` to execute code in a " +"different process." +msgstr "" + +#: library/asyncio-dev.rst:124 msgid "Running Blocking Code" -msgstr "" +msgstr "Exécution de code bloquant" -#: ../Doc/library/asyncio-dev.rst:116 +#: library/asyncio-dev.rst:126 msgid "" "Blocking (CPU-bound) code should not be called directly. For example, if a " "function performs a CPU-intensive calculation for 1 second, all concurrent " "asyncio Tasks and IO operations would be delayed by 1 second." msgstr "" +"Du code bloquant sur des opérations de calcul (*CPU-bound*) ne devrait pas " +"être appelé directement. Par exemple, si une fonction effectue des calculs " +"utilisant le CPU intensivement pendant une seconde, toutes les tâches " +"*asyncio* concurrentes et les opérations d'entrées-sorties seront bloquées " +"pour une seconde." -#: ../Doc/library/asyncio-dev.rst:121 +#: library/asyncio-dev.rst:131 msgid "" "An executor can be used to run a task in a different thread or even in a " "different process to avoid blocking the OS thread with the event loop. See " "the :meth:`loop.run_in_executor` method for more details." msgstr "" +"Un exécuteur peut être utilisé pour traiter une tâche dans un fil " +"d'exécution ou un processus différent, afin d'éviter de bloquer le fil " +"d'exécution système dans lequel se trouve la boucle d’évènements. Voir :meth:" +"`loop.run_in_executor` pour plus de détails." -#: ../Doc/library/asyncio-dev.rst:130 +#: library/asyncio-dev.rst:140 msgid "Logging" msgstr "Journalisation" -#: ../Doc/library/asyncio-dev.rst:132 +#: library/asyncio-dev.rst:142 msgid "" "asyncio uses the :mod:`logging` module and all logging is performed via the " "``\"asyncio\"`` logger." msgstr "" +"*Asyncio* utilise le module :mod:`logging`. Toutes les opérations de " +"journalisation sont effectuées via l'enregistreur (*logger*) ``\"asyncio\"``." -#: ../Doc/library/asyncio-dev.rst:135 +#: library/asyncio-dev.rst:145 msgid "" "The default log level is :py:data:`logging.INFO`, which can be easily " "adjusted::" msgstr "" +"Le niveau de journalisation par défaut est :py:data:`logging.INFO` mais peut " +"être ajusté facilement ::" -#: ../Doc/library/asyncio-dev.rst:144 +#: library/asyncio-dev.rst:154 msgid "Detect never-awaited coroutines" -msgstr "" +msgstr "Détection des coroutines jamais attendues" -#: ../Doc/library/asyncio-dev.rst:146 +#: library/asyncio-dev.rst:156 msgid "" "When a coroutine function is called, but not awaited (e.g. ``coro()`` " "instead of ``await coro()``) or the coroutine is not scheduled with :meth:" "`asyncio.create_task`, asyncio will emit a :exc:`RuntimeWarning`::" msgstr "" +"Lorsqu'une fonction coroutine est appelée mais qu'elle n'est pas attendue " +"(p. ex. ``coro()`` au lieu de ``await coro()``) ou si la coroutine n'est " +"pas planifiée avec :meth:`asyncio.create_task`, *asyncio* émet un :exc:" +"`RuntimeWarning` ::" -#: ../Doc/library/asyncio-dev.rst:161 ../Doc/library/asyncio-dev.rst:206 +#: library/asyncio-dev.rst:216 msgid "Output::" msgstr "Sortie ::" -#: ../Doc/library/asyncio-dev.rst:166 ../Doc/library/asyncio-dev.rst:222 +#: library/asyncio-dev.rst:232 msgid "Output in debug mode::" msgstr "Affichage en mode débogage ::" -#: ../Doc/library/asyncio-dev.rst:179 +#: library/asyncio-dev.rst:189 msgid "" "The usual fix is to either await the coroutine or call the :meth:`asyncio." "create_task` function::" msgstr "" +"La façon habituelle de régler ce problème est d'attendre (*await*) la " +"coroutine ou bien d'appeler la fonction :meth:`asyncio.create_task` ::" -#: ../Doc/library/asyncio-dev.rst:187 +#: library/asyncio-dev.rst:197 msgid "Detect never-retrieved exceptions" -msgstr "" +msgstr "Détection des exceptions jamais récupérées" -#: ../Doc/library/asyncio-dev.rst:189 +#: library/asyncio-dev.rst:199 msgid "" "If a :meth:`Future.set_exception` is called but the Future object is never " "awaited on, the exception would never be propagated to the user code. In " "this case, asyncio would emit a log message when the Future object is " "garbage collected." msgstr "" +"Si la méthode :meth:`Future.set_exception` est appelée mais que l'objet " +"*Future* n'est pas attendu, l'exception n'est pas propagée au code " +"utilisateur. Dans ce cas, *asyncio* écrit un message dans le journal lorsque " +"l'objet *Future* est récupéré par le ramasse-miette." -#: ../Doc/library/asyncio-dev.rst:194 +#: library/asyncio-dev.rst:204 msgid "Example of an unhandled exception::" -msgstr "" +msgstr "Exemple d'une exception non-gérée ::" -#: ../Doc/library/asyncio-dev.rst:217 +#: library/asyncio-dev.rst:227 msgid "" ":ref:`Enable the debug mode ` to get the traceback where " "the task was created::" msgstr "" +":ref:`Activez le mode débogage ` pour récupérer la trace " +"d'appels indiquant où la tâche a été créée ::" #~ msgid "Debug mode of asyncio" #~ msgstr "Mode de débogage d'*asyncio*" diff --git a/library/asyncio-eventloop.po b/library/asyncio-eventloop.po index 177bb8562f..401163c08c 100644 --- a/library/asyncio-eventloop.po +++ b/library/asyncio-eventloop.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-15 18:54+0100\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2019-06-10 15:50+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -15,28 +15,28 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.0.2\n" -#: ../Doc/library/asyncio-eventloop.rst:6 +#: library/asyncio-eventloop.rst:6 msgid "Event Loop" msgstr "Boucle d'évènements" -#: ../Doc/library/asyncio-eventloop.rst:8 +#: library/asyncio-eventloop.rst:8 msgid "" "**Source code:** :source:`Lib/asyncio/events.py`, :source:`Lib/asyncio/" "base_events.py`" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:14 +#: library/asyncio-eventloop.rst:14 msgid "Preface" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:15 +#: library/asyncio-eventloop.rst:15 msgid "" "The event loop is the core of every asyncio application. Event loops run " "asynchronous tasks and callbacks, perform network IO operations, and run " "subprocesses." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:19 +#: library/asyncio-eventloop.rst:19 msgid "" "Application developers should typically use the high-level asyncio " "functions, such as :func:`asyncio.run`, and should rarely need to reference " @@ -45,132 +45,137 @@ msgid "" "control over the event loop behavior." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:26 +#: library/asyncio-eventloop.rst:26 msgid "Obtaining the Event Loop" msgstr "Obtenir une boucle d'évènements" -#: ../Doc/library/asyncio-eventloop.rst:27 +#: library/asyncio-eventloop.rst:27 msgid "" "The following low-level functions can be used to get, set, or create an " "event loop:" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:32 +#: library/asyncio-eventloop.rst:32 msgid "Return the running event loop in the current OS thread." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:34 +#: library/asyncio-eventloop.rst:34 msgid "" "If there is no running event loop a :exc:`RuntimeError` is raised. This " "function can only be called from a coroutine or a callback." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:41 +#: library/asyncio-eventloop.rst:41 +#, fuzzy +msgid "Get the current event loop." +msgstr "Arrête l'exécution de la boucle d'évènements." + +#: library/asyncio-eventloop.rst:43 msgid "" -"Get the current event loop. If there is no current event loop set in the " -"current OS thread and :func:`set_event_loop` has not yet been called, " -"asyncio will create a new event loop and set it as the current one." +"If there is no current event loop set in the current OS thread, the OS " +"thread is main, and :func:`set_event_loop` has not yet been called, asyncio " +"will create a new event loop and set it as the current one." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:46 +#: library/asyncio-eventloop.rst:48 msgid "" "Because this function has rather complex behavior (especially when custom " "event loop policies are in use), using the :func:`get_running_loop` function " "is preferred to :func:`get_event_loop` in coroutines and callbacks." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:51 +#: library/asyncio-eventloop.rst:53 msgid "" "Consider also using the :func:`asyncio.run` function instead of using lower " "level functions to manually create and close an event loop." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:56 +#: library/asyncio-eventloop.rst:58 msgid "Set *loop* as a current event loop for the current OS thread." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:60 +#: library/asyncio-eventloop.rst:62 msgid "Create a new event loop object." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:62 +#: library/asyncio-eventloop.rst:64 msgid "" "Note that the behaviour of :func:`get_event_loop`, :func:`set_event_loop`, " "and :func:`new_event_loop` functions can be altered by :ref:`setting a " "custom event loop policy `." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:68 +#: library/asyncio-eventloop.rst:70 msgid "Contents" msgstr "Sommaire" -#: ../Doc/library/asyncio-eventloop.rst:69 +#: library/asyncio-eventloop.rst:71 msgid "This documentation page contains the following sections:" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:71 +#: library/asyncio-eventloop.rst:73 msgid "" "The `Event Loop Methods`_ section is the reference documentation of the " "event loop APIs;" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:74 +#: library/asyncio-eventloop.rst:76 msgid "" "The `Callback Handles`_ section documents the :class:`Handle` and :class:" "`TimerHandle` instances which are returned from scheduling methods such as :" "meth:`loop.call_soon` and :meth:`loop.call_later`;" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:78 +#: library/asyncio-eventloop.rst:80 msgid "" "The `Server Objects`_ section documents types returned from event loop " "methods like :meth:`loop.create_server`;" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:81 +#: library/asyncio-eventloop.rst:83 msgid "" "The `Event Loop Implementations`_ section documents the :class:" "`SelectorEventLoop` and :class:`ProactorEventLoop` classes;" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:84 +#: library/asyncio-eventloop.rst:86 msgid "" "The `Examples`_ section showcases how to work with some event loop APIs." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:91 +#: library/asyncio-eventloop.rst:93 msgid "Event Loop Methods" msgstr "Méthodes de la boucle d'évènements" -#: ../Doc/library/asyncio-eventloop.rst:93 +#: library/asyncio-eventloop.rst:95 msgid "Event loops have **low-level** APIs for the following:" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:101 +#: library/asyncio-eventloop.rst:103 msgid "Running and stopping the loop" msgstr "Démarrer et arrêter une boucle d'évènements" -#: ../Doc/library/asyncio-eventloop.rst:105 +#: library/asyncio-eventloop.rst:107 msgid "Run until the *future* (an instance of :class:`Future`) has completed." msgstr "" "Lance la boucle jusqu'à ce que *future* (une instance de :class:`Future`) " "soit terminée." -#: ../Doc/library/asyncio-eventloop.rst:108 +#: library/asyncio-eventloop.rst:110 msgid "" "If the argument is a :ref:`coroutine object ` it is implicitly " "scheduled to run as a :class:`asyncio.Task`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:111 +#: library/asyncio-eventloop.rst:113 msgid "Return the Future's result or raise its exception." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:115 +#: library/asyncio-eventloop.rst:117 msgid "Run the event loop until :meth:`stop` is called." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:117 +#: library/asyncio-eventloop.rst:119 msgid "" "If :meth:`stop` is called before :meth:`run_forever()` is called, the loop " "will poll the I/O selector once with a timeout of zero, run all callbacks " @@ -178,7 +183,7 @@ msgid "" "and then exit." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:122 +#: library/asyncio-eventloop.rst:124 msgid "" "If :meth:`stop` is called while :meth:`run_forever` is running, the loop " "will run the current batch of callbacks and then exit. Note that new " @@ -187,41 +192,41 @@ msgid "" "called." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:130 +#: library/asyncio-eventloop.rst:132 msgid "Stop the event loop." msgstr "Arrête l'exécution de la boucle d'évènements." -#: ../Doc/library/asyncio-eventloop.rst:134 +#: library/asyncio-eventloop.rst:136 msgid "Return ``True`` if the event loop is currently running." msgstr "Renvoie ``True`` si la boucle d'évènements est démarrée." -#: ../Doc/library/asyncio-eventloop.rst:138 +#: library/asyncio-eventloop.rst:140 msgid "Return ``True`` if the event loop was closed." msgstr "Renvoie ``True`` si la boucle d'évènements est arrêtée." -#: ../Doc/library/asyncio-eventloop.rst:142 +#: library/asyncio-eventloop.rst:144 msgid "Close the event loop." msgstr "Arrête la boucle d'évènements." -#: ../Doc/library/asyncio-eventloop.rst:144 +#: library/asyncio-eventloop.rst:146 msgid "" "The loop must not be running when this function is called. Any pending " "callbacks will be discarded." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:147 +#: library/asyncio-eventloop.rst:149 msgid "" "This method clears all queues and shuts down the executor, but does not wait " "for the executor to finish." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:150 +#: library/asyncio-eventloop.rst:152 msgid "" "This method is idempotent and irreversible. No other methods should be " "called after the event loop is closed." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:155 +#: library/asyncio-eventloop.rst:157 msgid "" "Schedule all currently open :term:`asynchronous generator` objects to close " "with an :meth:`~agen.aclose()` call. After calling this method, the event " @@ -229,59 +234,60 @@ msgid "" "should be used to reliably finalize all scheduled asynchronous generators." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:161 +#: library/asyncio-eventloop.rst:163 msgid "" "Note that there is no need to call this function when :func:`asyncio.run` is " "used." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:164 -#: ../Doc/library/asyncio-eventloop.rst:1034 -#: ../Doc/library/asyncio-eventloop.rst:1416 +#: library/asyncio-eventloop.rst:166 library/asyncio-eventloop.rst:1062 +#: library/asyncio-eventloop.rst:1444 msgid "Example::" msgstr "Exemple ::" -#: ../Doc/library/asyncio-eventloop.rst:176 +#: library/asyncio-eventloop.rst:178 msgid "Scheduling callbacks" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:180 +#: library/asyncio-eventloop.rst:182 msgid "" -"Schedule a *callback* to be called with *args* arguments at the next " -"iteration of the event loop." +"Schedule the *callback* :term:`callback` to be called with *args* arguments " +"at the next iteration of the event loop." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:183 +#: library/asyncio-eventloop.rst:185 msgid "" "Callbacks are called in the order in which they are registered. Each " "callback will be called exactly once." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:186 -#: ../Doc/library/asyncio-eventloop.rst:249 +#: library/asyncio-eventloop.rst:188 library/asyncio-eventloop.rst:251 msgid "" "An optional keyword-only *context* argument allows specifying a custom :" "class:`contextvars.Context` for the *callback* to run in. The current " "context is used when no *context* is provided." msgstr "" +"L'argument nommé optionnel *context* permet de spécifier une classe :class:" +"`contextvars.Context` personnalisée dans laquelle la fonction de rappel " +"s’exécutera. Le contexte actuel est utilisé si *context* n'est pas fourni." -#: ../Doc/library/asyncio-eventloop.rst:190 +#: library/asyncio-eventloop.rst:192 msgid "" "An instance of :class:`asyncio.Handle` is returned, which can be used later " "to cancel the callback." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:193 +#: library/asyncio-eventloop.rst:195 msgid "This method is not thread-safe." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:197 +#: library/asyncio-eventloop.rst:199 msgid "" "A thread-safe variant of :meth:`call_soon`. Must be used to schedule " "callbacks *from another thread*." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:200 +#: library/asyncio-eventloop.rst:202 msgid "" "See the :ref:`concurrency and multithreading ` " "section of the documentation." @@ -289,143 +295,142 @@ msgstr "" "Voir la section :ref:`exécution concurrente et multi-fils d'exécution " "` de la documentation." -#: ../Doc/library/asyncio-eventloop.rst:203 -#: ../Doc/library/asyncio-eventloop.rst:253 -#: ../Doc/library/asyncio-eventloop.rst:273 +#: library/asyncio-eventloop.rst:205 library/asyncio-eventloop.rst:255 +#: library/asyncio-eventloop.rst:275 msgid "" "The *context* keyword-only parameter was added. See :pep:`567` for more " "details." msgstr "" +"Ajout de l'argument nommé *context*. Voir :pep:`567` pour plus de détails." -#: ../Doc/library/asyncio-eventloop.rst:211 +#: library/asyncio-eventloop.rst:213 msgid "" "Most :mod:`asyncio` scheduling functions don't allow passing keyword " "arguments. To do that, use :func:`functools.partial`::" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:218 +#: library/asyncio-eventloop.rst:220 msgid "" "Using partial objects is usually more convenient than using lambdas, as " "asyncio can render partial objects better in debug and error messages." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:226 +#: library/asyncio-eventloop.rst:228 msgid "Scheduling delayed callbacks" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:228 +#: library/asyncio-eventloop.rst:230 msgid "" "Event loop provides mechanisms to schedule callback functions to be called " "at some point in the future. Event loop uses monotonic clocks to track time." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:235 +#: library/asyncio-eventloop.rst:237 msgid "" "Schedule *callback* to be called after the given *delay* number of seconds " "(can be either an int or a float)." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:238 -#: ../Doc/library/asyncio-eventloop.rst:270 +#: library/asyncio-eventloop.rst:240 library/asyncio-eventloop.rst:272 msgid "" "An instance of :class:`asyncio.TimerHandle` is returned which can be used to " "cancel the callback." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:241 +#: library/asyncio-eventloop.rst:243 msgid "" "*callback* will be called exactly once. If two callbacks are scheduled for " "exactly the same time, the order in which they are called is undefined." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:245 +#: library/asyncio-eventloop.rst:247 msgid "" "The optional positional *args* will be passed to the callback when it is " "called. If you want the callback to be called with keyword arguments use :" "func:`functools.partial`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:257 +#: library/asyncio-eventloop.rst:259 msgid "" "In Python 3.7 and earlier with the default event loop implementation, the " "*delay* could not exceed one day. This has been fixed in Python 3.8." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:264 +#: library/asyncio-eventloop.rst:266 msgid "" "Schedule *callback* to be called at the given absolute timestamp *when* (an " "int or a float), using the same time reference as :meth:`loop.time`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:268 +#: library/asyncio-eventloop.rst:270 msgid "This method's behavior is the same as :meth:`call_later`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:277 +#: library/asyncio-eventloop.rst:279 msgid "" "In Python 3.7 and earlier with the default event loop implementation, the " "difference between *when* and the current time could not exceed one day. " "This has been fixed in Python 3.8." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:284 +#: library/asyncio-eventloop.rst:286 msgid "" "Return the current time, as a :class:`float` value, according to the event " "loop's internal monotonic clock." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:288 +#: library/asyncio-eventloop.rst:290 msgid "" "In Python 3.7 and earlier timeouts (relative *delay* or absolute *when*) " "should not exceed one day. This has been fixed in Python 3.8." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:294 +#: library/asyncio-eventloop.rst:296 msgid "The :func:`asyncio.sleep` function." msgstr "La fonction :func:`asyncio.sleep`." -#: ../Doc/library/asyncio-eventloop.rst:298 +#: library/asyncio-eventloop.rst:300 msgid "Creating Futures and Tasks" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:302 +#: library/asyncio-eventloop.rst:304 msgid "Create an :class:`asyncio.Future` object attached to the event loop." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:304 +#: library/asyncio-eventloop.rst:306 msgid "" "This is the preferred way to create Futures in asyncio. This lets third-" "party event loops provide alternative implementations of the Future object " "(with better performance or instrumentation)." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:312 +#: library/asyncio-eventloop.rst:314 msgid "" "Schedule the execution of a :ref:`coroutine`. Return a :class:`Task` object." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:315 +#: library/asyncio-eventloop.rst:317 msgid "" "Third-party event loops can use their own subclass of :class:`Task` for " "interoperability. In this case, the result type is a subclass of :class:" "`Task`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:319 +#: library/asyncio-eventloop.rst:321 msgid "" "If the *name* argument is provided and not ``None``, it is set as the name " "of the task using :meth:`Task.set_name`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:322 +#: library/asyncio-eventloop.rst:324 msgid "Added the ``name`` parameter." -msgstr "" +msgstr "ajout du paramètre ``name``." -#: ../Doc/library/asyncio-eventloop.rst:327 +#: library/asyncio-eventloop.rst:329 msgid "Set a task factory that will be used by :meth:`loop.create_task`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:330 +#: library/asyncio-eventloop.rst:332 msgid "" "If *factory* is ``None`` the default task factory will be set. Otherwise, " "*factory* must be a *callable* with the signature matching ``(loop, coro)``, " @@ -434,82 +439,80 @@ msgid "" "compatible object." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:338 +#: library/asyncio-eventloop.rst:340 msgid "Return a task factory or ``None`` if the default one is in use." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:342 +#: library/asyncio-eventloop.rst:344 msgid "Opening network connections" msgstr "Créer des connexions" -#: ../Doc/library/asyncio-eventloop.rst:350 +#: library/asyncio-eventloop.rst:353 msgid "" "Open a streaming transport connection to a given address specified by *host* " "and *port*." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:353 +#: library/asyncio-eventloop.rst:356 msgid "" "The socket family can be either :py:data:`~socket.AF_INET` or :py:data:" "`~socket.AF_INET6` depending on *host* (or the *family* argument, if " "provided)." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:357 +#: library/asyncio-eventloop.rst:360 msgid "The socket type will be :py:data:`~socket.SOCK_STREAM`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:359 -#: ../Doc/library/asyncio-eventloop.rst:950 -#: ../Doc/library/asyncio-eventloop.rst:966 +#: library/asyncio-eventloop.rst:362 library/asyncio-eventloop.rst:978 +#: library/asyncio-eventloop.rst:994 msgid "" "*protocol_factory* must be a callable returning an :ref:`asyncio protocol " "` implementation." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:362 +#: library/asyncio-eventloop.rst:365 msgid "" "This method will try to establish the connection in the background. When " "successful, it returns a ``(transport, protocol)`` pair." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:365 +#: library/asyncio-eventloop.rst:368 msgid "The chronological synopsis of the underlying operation is as follows:" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:367 +#: library/asyncio-eventloop.rst:370 msgid "" "The connection is established and a :ref:`transport ` is " "created for it." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:370 +#: library/asyncio-eventloop.rst:373 msgid "" "*protocol_factory* is called without arguments and is expected to return a :" "ref:`protocol ` instance." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:373 +#: library/asyncio-eventloop.rst:376 msgid "" "The protocol instance is coupled with the transport by calling its :meth:" "`~BaseProtocol.connection_made` method." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:376 +#: library/asyncio-eventloop.rst:379 msgid "A ``(transport, protocol)`` tuple is returned on success." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:378 +#: library/asyncio-eventloop.rst:381 msgid "" "The created transport is an implementation-dependent bidirectional stream." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:381 -#: ../Doc/library/asyncio-eventloop.rst:477 +#: library/asyncio-eventloop.rst:384 library/asyncio-eventloop.rst:506 msgid "Other arguments:" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:383 +#: library/asyncio-eventloop.rst:386 msgid "" "*ssl*: if given and not false, a SSL/TLS transport is created (by default a " "plain TCP transport is created). If *ssl* is a :class:`ssl.SSLContext` " @@ -518,11 +521,11 @@ msgid "" "is used." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:389 +#: library/asyncio-eventloop.rst:392 msgid ":ref:`SSL/TLS security considerations `" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:391 +#: library/asyncio-eventloop.rst:394 msgid "" "*server_hostname* sets or overrides the hostname that the target server's " "certificate will be matched against. Should only be passed if *ssl* is not " @@ -533,7 +536,7 @@ msgid "" "potential man-in-the-middle attacks)." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:399 +#: library/asyncio-eventloop.rst:402 msgid "" "*family*, *proto*, *flags* are the optional address family, protocol and " "flags to be passed through to getaddrinfo() for *host* resolution. If given, " @@ -541,28 +544,28 @@ msgid "" "constants." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:404 +#: library/asyncio-eventloop.rst:407 msgid "" "*happy_eyeballs_delay*, if given, enables Happy Eyeballs for this " "connection. It should be a floating-point number representing the amount of " "time in seconds to wait for a connection attempt to complete, before " -"starting the next attempt in parallel. This is the \"Connection Attempt Delay" -"\" as defined in :rfc:`8305`. A sensible default value recommended by the " -"RFC is ``0.25`` (250 milliseconds)." +"starting the next attempt in parallel. This is the \"Connection Attempt " +"Delay\" as defined in :rfc:`8305`. A sensible default value recommended by " +"the RFC is ``0.25`` (250 milliseconds)." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:412 +#: library/asyncio-eventloop.rst:415 msgid "" "*interleave* controls address reordering when a host name resolves to " "multiple IP addresses. If ``0`` or unspecified, no reordering is done, and " "addresses are tried in the order returned by :meth:`getaddrinfo`. If a " "positive integer is specified, the addresses are interleaved by address " -"family, and the given integer is interpreted as \"First Address Family Count" -"\" as defined in :rfc:`8305`. The default is ``0`` if *happy_eyeballs_delay* " -"is not specified, and ``1`` if it is." +"family, and the given integer is interpreted as \"First Address Family " +"Count\" as defined in :rfc:`8305`. The default is ``0`` if " +"*happy_eyeballs_delay* is not specified, and ``1`` if it is." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:421 +#: library/asyncio-eventloop.rst:424 msgid "" "*sock*, if given, should be an existing, already connected :class:`socket." "socket` object to be used by the transport. If *sock* is given, none of " @@ -570,93 +573,124 @@ msgid "" "*interleave* and *local_addr* should be specified." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:427 +#: library/asyncio-eventloop.rst:430 msgid "" "*local_addr*, if given, is a ``(local_host, local_port)`` tuple used to bind " "the socket to locally. The *local_host* and *local_port* are looked up " "using ``getaddrinfo()``, similarly to *host* and *port*." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:431 -#: ../Doc/library/asyncio-eventloop.rst:759 +#: library/asyncio-eventloop.rst:434 library/asyncio-eventloop.rst:787 msgid "" "*ssl_handshake_timeout* is (for a TLS connection) the time in seconds to " "wait for the TLS handshake to complete before aborting the connection. " "``60.0`` seconds if ``None`` (default)." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:437 -msgid "The *happy_eyeballs_delay* and *interleave* parameters." +#: library/asyncio-eventloop.rst:440 +msgid "Added the *happy_eyeballs_delay* and *interleave* parameters." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:441 -#: ../Doc/library/asyncio-eventloop.rst:544 -#: ../Doc/library/asyncio-eventloop.rst:697 +#: library/asyncio-eventloop.rst:442 +msgid "" +"Happy Eyeballs Algorithm: Success with Dual-Stack Hosts. When a server's " +"IPv4 path and protocol are working, but the server's IPv6 path and protocol " +"are not working, a dual-stack client application experiences significant " +"connection delay compared to an IPv4-only client. This is undesirable " +"because it causes the dual- stack client to have a worse user experience. " +"This document specifies requirements for algorithms that reduce this user-" +"visible delay and provides an algorithm." +msgstr "" + +#: library/asyncio-eventloop.rst:451 +msgid "For more information: https://tools.ietf.org/html/rfc6555" +msgstr "" + +#: library/asyncio-eventloop.rst:455 library/asyncio-eventloop.rst:572 +#: library/asyncio-eventloop.rst:725 msgid "The *ssl_handshake_timeout* parameter." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:445 -#: ../Doc/library/asyncio-eventloop.rst:627 +#: library/asyncio-eventloop.rst:459 library/asyncio-eventloop.rst:655 msgid "" "The socket option :py:data:`~socket.TCP_NODELAY` is set by default for all " "TCP connections." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:450 -#: ../Doc/library/asyncio-eventloop.rst:632 +#: library/asyncio-eventloop.rst:464 library/asyncio-eventloop.rst:660 msgid "Added support for SSL/TLS in :class:`ProactorEventLoop`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:454 +#: library/asyncio-eventloop.rst:468 msgid "" "The :func:`open_connection` function is a high-level alternative API. It " "returns a pair of (:class:`StreamReader`, :class:`StreamWriter`) that can be " "used directly in async/await code." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:464 +#: library/asyncio-eventloop.rst:479 +msgid "" +"The parameter *reuse_address* is no longer supported, as using :py:data:" +"`~sockets.SO_REUSEADDR` poses a significant security concern for UDP. " +"Explicitly passing ``reuse_address=True`` will raise an exception." +msgstr "" + +#: library/asyncio-eventloop.rst:483 +msgid "" +"When multiple processes with differing UIDs assign sockets to an identical " +"UDP socket address with ``SO_REUSEADDR``, incoming packets can become " +"randomly distributed among the sockets." +msgstr "" + +#: library/asyncio-eventloop.rst:487 +msgid "" +"For supported platforms, *reuse_port* can be used as a replacement for " +"similar functionality. With *reuse_port*, :py:data:`~sockets.SO_REUSEPORT` " +"is used instead, which specifically prevents processes with differing UIDs " +"from assigning sockets to the same socket address." +msgstr "" + +#: library/asyncio-eventloop.rst:493 msgid "Create a datagram connection." msgstr "Créer une connexion par datagramme" -#: ../Doc/library/asyncio-eventloop.rst:466 +#: library/asyncio-eventloop.rst:495 msgid "" "The socket family can be either :py:data:`~socket.AF_INET`, :py:data:" "`~socket.AF_INET6`, or :py:data:`~socket.AF_UNIX`, depending on *host* (or " "the *family* argument, if provided)." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:470 +#: library/asyncio-eventloop.rst:499 msgid "The socket type will be :py:data:`~socket.SOCK_DGRAM`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:472 -#: ../Doc/library/asyncio-eventloop.rst:569 -#: ../Doc/library/asyncio-eventloop.rst:680 +#: library/asyncio-eventloop.rst:501 library/asyncio-eventloop.rst:597 +#: library/asyncio-eventloop.rst:708 msgid "" "*protocol_factory* must be a callable returning a :ref:`protocol ` implementation." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:475 -#: ../Doc/library/asyncio-eventloop.rst:530 +#: library/asyncio-eventloop.rst:504 library/asyncio-eventloop.rst:558 msgid "A tuple of ``(transport, protocol)`` is returned on success." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:479 +#: library/asyncio-eventloop.rst:508 msgid "" "*local_addr*, if given, is a ``(local_host, local_port)`` tuple used to bind " "the socket to locally. The *local_host* and *local_port* are looked up " "using :meth:`getaddrinfo`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:483 +#: library/asyncio-eventloop.rst:512 msgid "" "*remote_addr*, if given, is a ``(remote_host, remote_port)`` tuple used to " "connect the socket to a remote address. The *remote_host* and *remote_port* " "are looked up using :meth:`getaddrinfo`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:487 +#: library/asyncio-eventloop.rst:516 msgid "" "*family*, *proto*, *flags* are the optional address family, protocol and " "flags to be passed through to :meth:`getaddrinfo` for *host* resolution. If " @@ -664,15 +698,7 @@ msgid "" "module constants." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:492 -#: ../Doc/library/asyncio-eventloop.rst:601 -msgid "" -"*reuse_address* tells the kernel to reuse a local socket in ``TIME_WAIT`` " -"state, without waiting for its natural timeout to expire. If not specified " -"will automatically be set to ``True`` on Unix." -msgstr "" - -#: ../Doc/library/asyncio-eventloop.rst:497 +#: library/asyncio-eventloop.rst:521 msgid "" "*reuse_port* tells the kernel to allow this endpoint to be bound to the same " "port as other existing endpoints are bound to, so long as they all set this " @@ -681,13 +707,13 @@ msgid "" "this capability is unsupported." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:503 +#: library/asyncio-eventloop.rst:527 msgid "" "*allow_broadcast* tells the kernel to allow this endpoint to send messages " "to the broadcast address." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:506 +#: library/asyncio-eventloop.rst:530 msgid "" "*sock* can optionally be specified in order to use a preexisting, already " "connected, :class:`socket.socket` object to be used by the transport. If " @@ -695,142 +721,155 @@ msgid "" "`None`)." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:511 +#: library/asyncio-eventloop.rst:535 msgid "" "See :ref:`UDP echo client protocol ` and :" "ref:`UDP echo server protocol ` examples." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:514 +#: library/asyncio-eventloop.rst:538 msgid "" "The *family*, *proto*, *flags*, *reuse_address*, *reuse_port, " "*allow_broadcast*, and *sock* parameters were added." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:518 +#: library/asyncio-eventloop.rst:542 +msgid "" +"The *reuse_address* parameter is no longer supported due to security " +"concerns." +msgstr "" + +#: library/asyncio-eventloop.rst:546 msgid "Added support for Windows." msgstr "Prise en charge sur Windows." -#: ../Doc/library/asyncio-eventloop.rst:525 +#: library/asyncio-eventloop.rst:553 msgid "Create a Unix connection." msgstr "Créer une connexion Unix" -#: ../Doc/library/asyncio-eventloop.rst:527 +#: library/asyncio-eventloop.rst:555 msgid "" "The socket family will be :py:data:`~socket.AF_UNIX`; socket type will be :" "py:data:`~socket.SOCK_STREAM`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:532 +#: library/asyncio-eventloop.rst:560 msgid "" "*path* is the name of a Unix domain socket and is required, unless a *sock* " "parameter is specified. Abstract Unix sockets, :class:`str`, :class:" "`bytes`, and :class:`~pathlib.Path` paths are supported." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:537 +#: library/asyncio-eventloop.rst:565 msgid "" "See the documentation of the :meth:`loop.create_connection` method for " "information about arguments to this method." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:541 -#: ../Doc/library/asyncio-eventloop.rst:661 -#: ../Doc/library/asyncio-eventloop.rst:1017 +#: library/asyncio-eventloop.rst:569 library/asyncio-eventloop.rst:689 +#: library/asyncio-eventloop.rst:1045 msgid ":ref:`Availability `: Unix." msgstr ":ref:`Disponibilité ` : Unix." -#: ../Doc/library/asyncio-eventloop.rst:548 +#: library/asyncio-eventloop.rst:576 msgid "The *path* parameter can now be a :term:`path-like object`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:552 +#: library/asyncio-eventloop.rst:580 msgid "Creating network servers" msgstr "Créer des serveurs" -#: ../Doc/library/asyncio-eventloop.rst:562 +#: library/asyncio-eventloop.rst:590 msgid "" "Create a TCP server (socket type :data:`~socket.SOCK_STREAM`) listening on " "*port* of the *host* address." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:565 +#: library/asyncio-eventloop.rst:593 msgid "Returns a :class:`Server` object." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:567 +#: library/asyncio-eventloop.rst:595 +#, fuzzy msgid "Arguments:" -msgstr "" +msgstr "Arguments" -#: ../Doc/library/asyncio-eventloop.rst:572 +#: library/asyncio-eventloop.rst:600 msgid "" "The *host* parameter can be set to several types which determine where the " "server would be listening:" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:575 +#: library/asyncio-eventloop.rst:603 msgid "" "If *host* is a string, the TCP server is bound to a single network interface " "specified by *host*." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:578 +#: library/asyncio-eventloop.rst:606 msgid "" "If *host* is a sequence of strings, the TCP server is bound to all network " "interfaces specified by the sequence." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:581 +#: library/asyncio-eventloop.rst:609 msgid "" "If *host* is an empty string or ``None``, all interfaces are assumed and a " "list of multiple sockets will be returned (most likely one for IPv4 and " "another one for IPv6)." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:585 +#: library/asyncio-eventloop.rst:613 msgid "" "*family* can be set to either :data:`socket.AF_INET` or :data:`~socket." "AF_INET6` to force the socket to use IPv4 or IPv6. If not set, the *family* " "will be determined from host name (defaults to :data:`~socket.AF_UNSPEC`)." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:590 +#: library/asyncio-eventloop.rst:618 msgid "*flags* is a bitmask for :meth:`getaddrinfo`." msgstr "*flags* est un masque de bits pour :meth:`getaddrinfo`." -#: ../Doc/library/asyncio-eventloop.rst:592 +#: library/asyncio-eventloop.rst:620 msgid "" "*sock* can optionally be specified in order to use a preexisting socket " "object. If specified, *host* and *port* must not be specified." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:595 +#: library/asyncio-eventloop.rst:623 msgid "" "*backlog* is the maximum number of queued connections passed to :meth:" "`~socket.socket.listen` (defaults to 100)." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:598 +#: library/asyncio-eventloop.rst:626 msgid "" "*ssl* can be set to an :class:`~ssl.SSLContext` instance to enable TLS over " "the accepted connections." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:606 +#: library/asyncio-eventloop.rst:629 +msgid "" +"*reuse_address* tells the kernel to reuse a local socket in ``TIME_WAIT`` " +"state, without waiting for its natural timeout to expire. If not specified " +"will automatically be set to ``True`` on Unix." +msgstr "" + +#: library/asyncio-eventloop.rst:634 msgid "" "*reuse_port* tells the kernel to allow this endpoint to be bound to the same " "port as other existing endpoints are bound to, so long as they all set this " "flag when being created. This option is not supported on Windows." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:611 +#: library/asyncio-eventloop.rst:639 msgid "" "*ssl_handshake_timeout* is (for a TLS server) the time in seconds to wait " "for the TLS handshake to complete before aborting the connection. ``60.0`` " "seconds if ``None`` (default)." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:615 +#: library/asyncio-eventloop.rst:643 msgid "" "*start_serving* set to ``True`` (the default) causes the created server to " "start accepting connections immediately. When set to ``False``, the user " @@ -838,105 +877,103 @@ msgid "" "to make the server to start accepting connections." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:623 +#: library/asyncio-eventloop.rst:651 msgid "Added *ssl_handshake_timeout* and *start_serving* parameters." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:636 +#: library/asyncio-eventloop.rst:664 msgid "The *host* parameter can be a sequence of strings." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:640 +#: library/asyncio-eventloop.rst:668 msgid "" "The :func:`start_server` function is a higher-level alternative API that " "returns a pair of :class:`StreamReader` and :class:`StreamWriter` that can " "be used in an async/await code." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:649 +#: library/asyncio-eventloop.rst:677 msgid "" "Similar to :meth:`loop.create_server` but works with the :py:data:`~socket." "AF_UNIX` socket family." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:652 +#: library/asyncio-eventloop.rst:680 msgid "" "*path* is the name of a Unix domain socket, and is required, unless a *sock* " "argument is provided. Abstract Unix sockets, :class:`str`, :class:`bytes`, " "and :class:`~pathlib.Path` paths are supported." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:657 +#: library/asyncio-eventloop.rst:685 msgid "" "See the documentation of the :meth:`loop.create_server` method for " "information about arguments to this method." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:664 +#: library/asyncio-eventloop.rst:692 msgid "The *ssl_handshake_timeout* and *start_serving* parameters." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:668 +#: library/asyncio-eventloop.rst:696 msgid "The *path* parameter can now be a :class:`~pathlib.Path` object." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:673 +#: library/asyncio-eventloop.rst:701 msgid "Wrap an already accepted connection into a transport/protocol pair." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:675 +#: library/asyncio-eventloop.rst:703 msgid "" "This method can be used by servers that accept connections outside of " "asyncio but that use asyncio to handle them." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:678 -#: ../Doc/library/asyncio-eventloop.rst:745 +#: library/asyncio-eventloop.rst:706 library/asyncio-eventloop.rst:773 msgid "Parameters:" msgstr "Paramètres :" -#: ../Doc/library/asyncio-eventloop.rst:683 +#: library/asyncio-eventloop.rst:711 msgid "" "*sock* is a preexisting socket object returned from :meth:`socket.accept " "`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:686 +#: library/asyncio-eventloop.rst:714 msgid "" "*ssl* can be set to an :class:`~ssl.SSLContext` to enable SSL over the " "accepted connections." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:689 +#: library/asyncio-eventloop.rst:717 msgid "" "*ssl_handshake_timeout* is (for an SSL connection) the time in seconds to " "wait for the SSL handshake to complete before aborting the connection. " "``60.0`` seconds if ``None`` (default)." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:693 +#: library/asyncio-eventloop.rst:721 msgid "Returns a ``(transport, protocol)`` pair." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:703 +#: library/asyncio-eventloop.rst:731 msgid "Transferring files" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:708 +#: library/asyncio-eventloop.rst:736 msgid "" "Send a *file* over a *transport*. Return the total number of bytes sent." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:711 +#: library/asyncio-eventloop.rst:739 msgid "The method uses high-performance :meth:`os.sendfile` if available." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:713 +#: library/asyncio-eventloop.rst:741 msgid "*file* must be a regular file object opened in binary mode." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:715 -#: ../Doc/library/asyncio-eventloop.rst:905 +#: library/asyncio-eventloop.rst:743 library/asyncio-eventloop.rst:933 msgid "" "*offset* tells from where to start reading the file. If specified, *count* " "is the total number of bytes to transmit as opposed to sending the file " @@ -945,98 +982,97 @@ msgid "" "obtain the actual number of bytes sent." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:722 +#: library/asyncio-eventloop.rst:750 msgid "" "*fallback* set to ``True`` makes asyncio to manually read and send the file " "when the platform does not support the sendfile system call (e.g. Windows or " "SSL socket on Unix)." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:726 +#: library/asyncio-eventloop.rst:754 msgid "" "Raise :exc:`SendfileNotAvailableError` if the system does not support the " "*sendfile* syscall and *fallback* is ``False``." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:733 +#: library/asyncio-eventloop.rst:761 msgid "TLS Upgrade" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:739 +#: library/asyncio-eventloop.rst:767 msgid "Upgrade an existing transport-based connection to TLS." msgstr "Convertit une connexion existante en connexion TLS." -#: ../Doc/library/asyncio-eventloop.rst:741 +#: library/asyncio-eventloop.rst:769 msgid "" "Return a new transport instance, that the *protocol* must start using " "immediately after the *await*. The *transport* instance passed to the " "*start_tls* method should never be used again." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:747 +#: library/asyncio-eventloop.rst:775 msgid "" "*transport* and *protocol* instances that methods like :meth:`~loop." "create_server` and :meth:`~loop.create_connection` return." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:751 +#: library/asyncio-eventloop.rst:779 msgid "*sslcontext*: a configured instance of :class:`~ssl.SSLContext`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:753 +#: library/asyncio-eventloop.rst:781 msgid "" "*server_side* pass ``True`` when a server-side connection is being upgraded " "(like the one created by :meth:`~loop.create_server`)." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:756 +#: library/asyncio-eventloop.rst:784 msgid "" "*server_hostname*: sets or overrides the host name that the target server's " "certificate will be matched against." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:767 +#: library/asyncio-eventloop.rst:795 msgid "Watching file descriptors" msgstr "Surveiller des descripteurs de fichiers" -#: ../Doc/library/asyncio-eventloop.rst:771 +#: library/asyncio-eventloop.rst:799 msgid "" "Start monitoring the *fd* file descriptor for read availability and invoke " "*callback* with the specified arguments once *fd* is available for reading." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:777 +#: library/asyncio-eventloop.rst:805 msgid "Stop monitoring the *fd* file descriptor for read availability." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:781 +#: library/asyncio-eventloop.rst:809 msgid "" "Start monitoring the *fd* file descriptor for write availability and invoke " "*callback* with the specified arguments once *fd* is available for writing." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:785 -#: ../Doc/library/asyncio-eventloop.rst:1004 +#: library/asyncio-eventloop.rst:813 library/asyncio-eventloop.rst:1032 msgid "" "Use :func:`functools.partial` :ref:`to pass keyword arguments ` to *callback*." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:790 +#: library/asyncio-eventloop.rst:818 msgid "Stop monitoring the *fd* file descriptor for write availability." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:792 +#: library/asyncio-eventloop.rst:820 msgid "" "See also :ref:`Platform Support ` section for some " "limitations of these methods." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:797 +#: library/asyncio-eventloop.rst:825 msgid "Working with socket objects directly" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:799 +#: library/asyncio-eventloop.rst:827 msgid "" "In general, protocol implementations that use transport-based APIs such as :" "meth:`loop.create_connection` and :meth:`loop.create_server` are faster than " @@ -1045,49 +1081,46 @@ msgid "" "socket` objects directly is more convenient." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:808 +#: library/asyncio-eventloop.rst:836 msgid "" "Receive up to *nbytes* from *sock*. Asynchronous version of :meth:`socket." "recv() `." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:811 +#: library/asyncio-eventloop.rst:839 msgid "Return the received data as a bytes object." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:813 -#: ../Doc/library/asyncio-eventloop.rst:827 -#: ../Doc/library/asyncio-eventloop.rst:842 -#: ../Doc/library/asyncio-eventloop.rst:855 -#: ../Doc/library/asyncio-eventloop.rst:881 -#: ../Doc/library/asyncio-eventloop.rst:919 +#: library/asyncio-eventloop.rst:841 library/asyncio-eventloop.rst:855 +#: library/asyncio-eventloop.rst:870 library/asyncio-eventloop.rst:883 +#: library/asyncio-eventloop.rst:909 library/asyncio-eventloop.rst:947 msgid "*sock* must be a non-blocking socket." msgstr "Le connecteur *sock* ne doit pas être bloquant." -#: ../Doc/library/asyncio-eventloop.rst:815 +#: library/asyncio-eventloop.rst:843 msgid "" "Even though this method was always documented as a coroutine method, " "releases before Python 3.7 returned a :class:`Future`. Since Python 3.7 this " "is an ``async def`` method." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:822 +#: library/asyncio-eventloop.rst:850 msgid "" "Receive data from *sock* into the *buf* buffer. Modeled after the blocking :" "meth:`socket.recv_into() ` method." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:825 +#: library/asyncio-eventloop.rst:853 msgid "Return the number of bytes written to the buffer." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:833 +#: library/asyncio-eventloop.rst:861 msgid "" "Send *data* to the *sock* socket. Asynchronous version of :meth:`socket." "sendall() `." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:836 +#: library/asyncio-eventloop.rst:864 msgid "" "This method continues to send to the socket until either all data in *data* " "has been sent or an error occurs. ``None`` is returned on success. On " @@ -1096,23 +1129,23 @@ msgid "" "the connection." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:844 +#: library/asyncio-eventloop.rst:872 msgid "" "Even though the method was always documented as a coroutine method, before " "Python 3.7 it returned an :class:`Future`. Since Python 3.7, this is an " "``async def`` method." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:851 +#: library/asyncio-eventloop.rst:879 msgid "Connect *sock* to a remote socket at *address*." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:853 +#: library/asyncio-eventloop.rst:881 msgid "" "Asynchronous version of :meth:`socket.connect() `." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:857 +#: library/asyncio-eventloop.rst:885 msgid "" "``address`` no longer needs to be resolved. ``sock_connect`` will try to " "check if the *address* is already resolved by calling :func:`socket." @@ -1120,19 +1153,19 @@ msgid "" "*address*." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:866 +#: library/asyncio-eventloop.rst:894 msgid "" ":meth:`loop.create_connection` and :func:`asyncio.open_connection() " "`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:872 +#: library/asyncio-eventloop.rst:900 msgid "" "Accept a connection. Modeled after the blocking :meth:`socket.accept() " "` method." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:875 +#: library/asyncio-eventloop.rst:903 msgid "" "The socket must be bound to an address and listening for connections. The " "return value is a pair ``(conn, address)`` where *conn* is a *new* socket " @@ -1140,64 +1173,64 @@ msgid "" "the address bound to the socket on the other end of the connection." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:883 +#: library/asyncio-eventloop.rst:911 msgid "" "Even though the method was always documented as a coroutine method, before " "Python 3.7 it returned a :class:`Future`. Since Python 3.7, this is an " "``async def`` method." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:890 +#: library/asyncio-eventloop.rst:918 msgid ":meth:`loop.create_server` and :func:`start_server`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:895 +#: library/asyncio-eventloop.rst:923 msgid "" "Send a file using high-performance :mod:`os.sendfile` if possible. Return " "the total number of bytes sent." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:898 +#: library/asyncio-eventloop.rst:926 msgid "" "Asynchronous version of :meth:`socket.sendfile() `." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:900 +#: library/asyncio-eventloop.rst:928 msgid "" "*sock* must be a non-blocking :const:`socket.SOCK_STREAM` :class:`~socket." "socket`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:903 +#: library/asyncio-eventloop.rst:931 msgid "*file* must be a regular file object open in binary mode." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:912 +#: library/asyncio-eventloop.rst:940 msgid "" "*fallback*, when set to ``True``, makes asyncio manually read and send the " "file when the platform does not support the sendfile syscall (e.g. Windows " "or SSL socket on Unix)." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:916 +#: library/asyncio-eventloop.rst:944 msgid "" "Raise :exc:`SendfileNotAvailableError` if the system does not support " "*sendfile* syscall and *fallback* is ``False``." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:925 +#: library/asyncio-eventloop.rst:953 msgid "DNS" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:930 +#: library/asyncio-eventloop.rst:958 msgid "Asynchronous version of :meth:`socket.getaddrinfo`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:934 +#: library/asyncio-eventloop.rst:962 msgid "Asynchronous version of :meth:`socket.getnameinfo`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:936 +#: library/asyncio-eventloop.rst:964 msgid "" "Both *getaddrinfo* and *getnameinfo* methods were always documented to " "return a coroutine, but prior to Python 3.7 they were, in fact, returning :" @@ -1205,68 +1238,67 @@ msgid "" "coroutines." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:944 +#: library/asyncio-eventloop.rst:972 msgid "Working with pipes" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:948 +#: library/asyncio-eventloop.rst:976 msgid "Register the read end of *pipe* in the event loop." msgstr "" "Branche l'extrémité en lecture du tube *pipe* à la boucle d'évènements." -#: ../Doc/library/asyncio-eventloop.rst:953 +#: library/asyncio-eventloop.rst:981 msgid "*pipe* is a :term:`file-like object `." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:955 +#: library/asyncio-eventloop.rst:983 msgid "" "Return pair ``(transport, protocol)``, where *transport* supports the :class:" "`ReadTransport` interface and *protocol* is an object instantiated by the " "*protocol_factory*." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:959 -#: ../Doc/library/asyncio-eventloop.rst:975 +#: library/asyncio-eventloop.rst:987 library/asyncio-eventloop.rst:1003 msgid "" "With :class:`SelectorEventLoop` event loop, the *pipe* is set to non-" "blocking mode." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:964 +#: library/asyncio-eventloop.rst:992 msgid "Register the write end of *pipe* in the event loop." msgstr "Branche l'extrémité en écriture de *pipe* à la boucle d'évènements." -#: ../Doc/library/asyncio-eventloop.rst:969 +#: library/asyncio-eventloop.rst:997 msgid "*pipe* is :term:`file-like object `." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:971 +#: library/asyncio-eventloop.rst:999 msgid "" "Return pair ``(transport, protocol)``, where *transport* supports :class:" "`WriteTransport` interface and *protocol* is an object instantiated by the " "*protocol_factory*." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:980 +#: library/asyncio-eventloop.rst:1008 msgid "" ":class:`SelectorEventLoop` does not support the above methods on Windows. " "Use :class:`ProactorEventLoop` instead for Windows." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:985 +#: library/asyncio-eventloop.rst:1013 msgid "" "The :meth:`loop.subprocess_exec` and :meth:`loop.subprocess_shell` methods." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:990 +#: library/asyncio-eventloop.rst:1018 msgid "Unix signals" msgstr "Signaux Unix" -#: ../Doc/library/asyncio-eventloop.rst:994 +#: library/asyncio-eventloop.rst:1022 msgid "Set *callback* as the handler for the *signum* signal." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:996 +#: library/asyncio-eventloop.rst:1024 msgid "" "The callback will be invoked by *loop*, along with other queued callbacks " "and runnable coroutines of that event loop. Unlike signal handlers " @@ -1274,56 +1306,56 @@ msgid "" "function is allowed to interact with the event loop." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1001 +#: library/asyncio-eventloop.rst:1029 msgid "" "Raise :exc:`ValueError` if the signal number is invalid or uncatchable. " "Raise :exc:`RuntimeError` if there is a problem setting up the handler." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1007 +#: library/asyncio-eventloop.rst:1035 msgid "" "Like :func:`signal.signal`, this function must be invoked in the main thread." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1012 +#: library/asyncio-eventloop.rst:1040 msgid "Remove the handler for the *sig* signal." msgstr "Supprime le gestionnaire du signal *sig*." -#: ../Doc/library/asyncio-eventloop.rst:1014 +#: library/asyncio-eventloop.rst:1042 msgid "" "Return ``True`` if the signal handler was removed, or ``False`` if no " "handler was set for the given signal." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1021 +#: library/asyncio-eventloop.rst:1049 msgid "The :mod:`signal` module." msgstr "Le module :mod:`signal`." -#: ../Doc/library/asyncio-eventloop.rst:1025 +#: library/asyncio-eventloop.rst:1053 msgid "Executing code in thread or process pools" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1029 +#: library/asyncio-eventloop.rst:1057 msgid "Arrange for *func* to be called in the specified executor." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1031 +#: library/asyncio-eventloop.rst:1059 msgid "" "The *executor* argument should be an :class:`concurrent.futures.Executor` " "instance. The default executor is used if *executor* is ``None``." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1075 +#: library/asyncio-eventloop.rst:1103 msgid "This method returns a :class:`asyncio.Future` object." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1077 +#: library/asyncio-eventloop.rst:1105 msgid "" "Use :func:`functools.partial` :ref:`to pass keyword arguments ` to *func*." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1080 +#: library/asyncio-eventloop.rst:1108 msgid "" ":meth:`loop.run_in_executor` no longer configures the ``max_workers`` of the " "thread pool executor it creates, instead leaving it up to the thread pool " @@ -1331,38 +1363,38 @@ msgid "" "default." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1089 +#: library/asyncio-eventloop.rst:1117 msgid "" "Set *executor* as the default executor used by :meth:`run_in_executor`. " "*executor* should be an instance of :class:`~concurrent.futures." "ThreadPoolExecutor`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1093 +#: library/asyncio-eventloop.rst:1121 msgid "" "Using an executor that is not an instance of :class:`~concurrent.futures." "ThreadPoolExecutor` is deprecated and will trigger an error in Python 3.9." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1098 +#: library/asyncio-eventloop.rst:1126 msgid "" "*executor* must be an instance of :class:`concurrent.futures." "ThreadPoolExecutor`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1103 +#: library/asyncio-eventloop.rst:1131 msgid "Error Handling API" msgstr "API de gestion d'erreur" -#: ../Doc/library/asyncio-eventloop.rst:1105 +#: library/asyncio-eventloop.rst:1133 msgid "Allows customizing how exceptions are handled in the event loop." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1109 +#: library/asyncio-eventloop.rst:1137 msgid "Set *handler* as the new event loop exception handler." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1111 +#: library/asyncio-eventloop.rst:1139 msgid "" "If *handler* is ``None``, the default exception handler will be set. " "Otherwise, *handler* must be a callable with the signature matching ``(loop, " @@ -1371,147 +1403,148 @@ msgid "" "(see :meth:`call_exception_handler` documentation for details about context)." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1121 +#: library/asyncio-eventloop.rst:1149 msgid "" "Return the current exception handler, or ``None`` if no custom exception " "handler was set." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1128 +#: library/asyncio-eventloop.rst:1156 msgid "Default exception handler." msgstr "Gestionnaire d'exception par défaut." -#: ../Doc/library/asyncio-eventloop.rst:1130 +#: library/asyncio-eventloop.rst:1158 msgid "" "This is called when an exception occurs and no exception handler is set. " "This can be called by a custom exception handler that wants to defer to the " "default handler behavior." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1134 +#: library/asyncio-eventloop.rst:1162 msgid "" "*context* parameter has the same meaning as in :meth:" "`call_exception_handler`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1139 +#: library/asyncio-eventloop.rst:1167 msgid "Call the current event loop exception handler." msgstr "" "Appelle le gestionnaire d'exception de la boucle d'évènements actuelle." -#: ../Doc/library/asyncio-eventloop.rst:1141 +#: library/asyncio-eventloop.rst:1169 msgid "" "*context* is a ``dict`` object containing the following keys (new keys may " "be introduced in future Python versions):" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1144 +#: library/asyncio-eventloop.rst:1172 msgid "'message': Error message;" msgstr "``message`` : Message d'erreur ;" -#: ../Doc/library/asyncio-eventloop.rst:1145 +#: library/asyncio-eventloop.rst:1173 msgid "'exception' (optional): Exception object;" msgstr "``exception`` (optionnel): Un objet exception ;" -#: ../Doc/library/asyncio-eventloop.rst:1146 +#: library/asyncio-eventloop.rst:1174 msgid "'future' (optional): :class:`asyncio.Future` instance;" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1147 +#: library/asyncio-eventloop.rst:1175 msgid "'handle' (optional): :class:`asyncio.Handle` instance;" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1148 +#: library/asyncio-eventloop.rst:1176 msgid "'protocol' (optional): :ref:`Protocol ` instance;" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1149 +#: library/asyncio-eventloop.rst:1177 msgid "'transport' (optional): :ref:`Transport ` instance;" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1150 +#: library/asyncio-eventloop.rst:1178 msgid "'socket' (optional): :class:`socket.socket` instance." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1154 +#: library/asyncio-eventloop.rst:1182 msgid "" "This method should not be overloaded in subclassed event loops. For custom " "exception handling, use the :meth:`set_exception_handler()` method." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1159 +#: library/asyncio-eventloop.rst:1187 msgid "Enabling debug mode" msgstr "Active le mode débogage" -#: ../Doc/library/asyncio-eventloop.rst:1163 +#: library/asyncio-eventloop.rst:1191 msgid "Get the debug mode (:class:`bool`) of the event loop." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1165 +#: library/asyncio-eventloop.rst:1193 msgid "" "The default value is ``True`` if the environment variable :envvar:" "`PYTHONASYNCIODEBUG` is set to a non-empty string, ``False`` otherwise." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1171 +#: library/asyncio-eventloop.rst:1199 msgid "Set the debug mode of the event loop." msgstr "Active le mode débogage pour la boucle d'évènements." -#: ../Doc/library/asyncio-eventloop.rst:1175 +#: library/asyncio-eventloop.rst:1203 msgid "" "The new ``-X dev`` command line option can now also be used to enable the " "debug mode." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1180 +#: library/asyncio-eventloop.rst:1208 msgid "The :ref:`debug mode of asyncio `." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1184 +#: library/asyncio-eventloop.rst:1212 msgid "Running Subprocesses" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1186 +#: library/asyncio-eventloop.rst:1214 msgid "" "Methods described in this subsections are low-level. In regular async/await " "code consider using the high-level :func:`asyncio.create_subprocess_shell` " "and :func:`asyncio.create_subprocess_exec` convenience functions instead." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1193 +#: library/asyncio-eventloop.rst:1221 msgid "" "The default asyncio event loop on **Windows** does not support subprocesses. " "See :ref:`Subprocess Support on Windows ` for " "details." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1201 +#: library/asyncio-eventloop.rst:1229 msgid "" "Create a subprocess from one or more string arguments specified by *args*." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1204 +#: library/asyncio-eventloop.rst:1232 msgid "*args* must be a list of strings represented by:" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1206 +#: library/asyncio-eventloop.rst:1234 +#, fuzzy msgid ":class:`str`;" -msgstr "" +msgstr ":class:`str`" -#: ../Doc/library/asyncio-eventloop.rst:1207 +#: library/asyncio-eventloop.rst:1235 msgid "" "or :class:`bytes`, encoded to the :ref:`filesystem encoding `." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1210 +#: library/asyncio-eventloop.rst:1238 msgid "" "The first string specifies the program executable, and the remaining strings " "specify the arguments. Together, string arguments form the ``argv`` of the " "program." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1214 +#: library/asyncio-eventloop.rst:1242 msgid "" "This is similar to the standard library :class:`subprocess.Popen` class " "called with ``shell=False`` and the list of strings passed as the first " @@ -1519,136 +1552,133 @@ msgid "" "which is list of strings, *subprocess_exec* takes multiple string arguments." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1220 +#: library/asyncio-eventloop.rst:1248 msgid "" "The *protocol_factory* must be a callable returning a subclass of the :class:" "`asyncio.SubprocessProtocol` class." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1223 +#: library/asyncio-eventloop.rst:1251 msgid "Other parameters:" msgstr "Autres paramètres :" -#: ../Doc/library/asyncio-eventloop.rst:1225 +#: library/asyncio-eventloop.rst:1253 msgid "*stdin* can be any of these:" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1227 +#: library/asyncio-eventloop.rst:1255 msgid "" "a file-like object representing a pipe to be connected to the subprocess's " "standard input stream using :meth:`~loop.connect_write_pipe`" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1230 -#: ../Doc/library/asyncio-eventloop.rst:1242 -#: ../Doc/library/asyncio-eventloop.rst:1254 +#: library/asyncio-eventloop.rst:1258 library/asyncio-eventloop.rst:1270 +#: library/asyncio-eventloop.rst:1282 msgid "" "the :const:`subprocess.PIPE` constant (default) which will create a new pipe " "and connect it," msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1232 -#: ../Doc/library/asyncio-eventloop.rst:1244 -#: ../Doc/library/asyncio-eventloop.rst:1256 +#: library/asyncio-eventloop.rst:1260 library/asyncio-eventloop.rst:1272 +#: library/asyncio-eventloop.rst:1284 msgid "" "the value ``None`` which will make the subprocess inherit the file " "descriptor from this process" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1234 -#: ../Doc/library/asyncio-eventloop.rst:1246 -#: ../Doc/library/asyncio-eventloop.rst:1258 +#: library/asyncio-eventloop.rst:1262 library/asyncio-eventloop.rst:1274 +#: library/asyncio-eventloop.rst:1286 msgid "" "the :const:`subprocess.DEVNULL` constant which indicates that the special :" "data:`os.devnull` file will be used" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1237 +#: library/asyncio-eventloop.rst:1265 msgid "*stdout* can be any of these:" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1239 +#: library/asyncio-eventloop.rst:1267 msgid "" "a file-like object representing a pipe to be connected to the subprocess's " "standard output stream using :meth:`~loop.connect_write_pipe`" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1249 +#: library/asyncio-eventloop.rst:1277 msgid "*stderr* can be any of these:" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1251 +#: library/asyncio-eventloop.rst:1279 msgid "" "a file-like object representing a pipe to be connected to the subprocess's " "standard error stream using :meth:`~loop.connect_write_pipe`" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1260 +#: library/asyncio-eventloop.rst:1288 msgid "" "the :const:`subprocess.STDOUT` constant which will connect the standard " "error stream to the process' standard output stream" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1263 +#: library/asyncio-eventloop.rst:1291 msgid "" "All other keyword arguments are passed to :class:`subprocess.Popen` without " "interpretation, except for *bufsize*, *universal_newlines*, *shell*, *text*, " "*encoding* and *errors*, which should not be specified at all." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1268 +#: library/asyncio-eventloop.rst:1296 msgid "" "The ``asyncio`` subprocess API does not support decoding the streams as " "text. :func:`bytes.decode` can be used to convert the bytes returned from " "the stream to text." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1272 +#: library/asyncio-eventloop.rst:1300 msgid "" "See the constructor of the :class:`subprocess.Popen` class for documentation " "on other arguments." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1275 +#: library/asyncio-eventloop.rst:1303 msgid "" "Returns a pair of ``(transport, protocol)``, where *transport* conforms to " "the :class:`asyncio.SubprocessTransport` base class and *protocol* is an " "object instantiated by the *protocol_factory*." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1283 +#: library/asyncio-eventloop.rst:1311 msgid "" "Create a subprocess from *cmd*, which can be a :class:`str` or a :class:" "`bytes` string encoded to the :ref:`filesystem encoding `, using the platform's \"shell\" syntax." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1288 +#: library/asyncio-eventloop.rst:1316 msgid "" "This is similar to the standard library :class:`subprocess.Popen` class " "called with ``shell=True``." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1291 +#: library/asyncio-eventloop.rst:1319 msgid "" "The *protocol_factory* must be a callable returning a subclass of the :class:" "`SubprocessProtocol` class." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1294 +#: library/asyncio-eventloop.rst:1322 msgid "" "See :meth:`~loop.subprocess_exec` for more details about the remaining " "arguments." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1297 +#: library/asyncio-eventloop.rst:1325 msgid "" "Returns a pair of ``(transport, protocol)``, where *transport* conforms to " "the :class:`SubprocessTransport` base class and *protocol* is an object " "instantiated by the *protocol_factory*." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1302 +#: library/asyncio-eventloop.rst:1330 msgid "" "It is the application's responsibility to ensure that all whitespace and " "special characters are quoted appropriately to avoid `shell injection " @@ -1658,105 +1688,105 @@ msgid "" "used to construct shell commands." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1311 +#: library/asyncio-eventloop.rst:1339 msgid "Callback Handles" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1315 +#: library/asyncio-eventloop.rst:1343 msgid "" "A callback wrapper object returned by :meth:`loop.call_soon`, :meth:`loop." "call_soon_threadsafe`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1320 +#: library/asyncio-eventloop.rst:1348 msgid "" "Cancel the callback. If the callback has already been canceled or executed, " "this method has no effect." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1325 +#: library/asyncio-eventloop.rst:1353 msgid "Return ``True`` if the callback was cancelled." msgstr "Renvoie ``True`` si la fonction de rappel à été annulé." -#: ../Doc/library/asyncio-eventloop.rst:1331 +#: library/asyncio-eventloop.rst:1359 msgid "" "A callback wrapper object returned by :meth:`loop.call_later`, and :meth:" "`loop.call_at`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1334 +#: library/asyncio-eventloop.rst:1362 msgid "This class is a subclass of :class:`Handle`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1338 +#: library/asyncio-eventloop.rst:1366 msgid "Return a scheduled callback time as :class:`float` seconds." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1340 +#: library/asyncio-eventloop.rst:1368 msgid "" "The time is an absolute timestamp, using the same time reference as :meth:" "`loop.time`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1347 +#: library/asyncio-eventloop.rst:1375 msgid "Server Objects" msgstr "Objets Serveur" -#: ../Doc/library/asyncio-eventloop.rst:1349 +#: library/asyncio-eventloop.rst:1377 msgid "" "Server objects are created by :meth:`loop.create_server`, :meth:`loop." "create_unix_server`, :func:`start_server`, and :func:`start_unix_server` " "functions." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1353 +#: library/asyncio-eventloop.rst:1381 msgid "Do not instantiate the class directly." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1357 +#: library/asyncio-eventloop.rst:1385 msgid "" "*Server* objects are asynchronous context managers. When used in an ``async " "with`` statement, it's guaranteed that the Server object is closed and not " "accepting new connections when the ``async with`` statement is completed::" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1370 +#: library/asyncio-eventloop.rst:1398 msgid "Server object is an asynchronous context manager since Python 3.7." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1375 +#: library/asyncio-eventloop.rst:1403 msgid "" "Stop serving: close listening sockets and set the :attr:`sockets` attribute " "to ``None``." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1378 +#: library/asyncio-eventloop.rst:1406 msgid "" "The sockets that represent existing incoming client connections are left " "open." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1381 +#: library/asyncio-eventloop.rst:1409 msgid "" "The server is closed asynchronously, use the :meth:`wait_closed` coroutine " "to wait until the server is closed." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1386 +#: library/asyncio-eventloop.rst:1414 msgid "Return the event loop associated with the server object." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1392 +#: library/asyncio-eventloop.rst:1420 msgid "Start accepting connections." msgstr "Commence à accepter les connexions." -#: ../Doc/library/asyncio-eventloop.rst:1394 +#: library/asyncio-eventloop.rst:1422 msgid "" "This method is idempotent, so it can be called when the server is already " "being serving." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1397 +#: library/asyncio-eventloop.rst:1425 msgid "" "The *start_serving* keyword-only parameter to :meth:`loop.create_server` " "and :meth:`asyncio.start_server` allows creating a Server object that is not " @@ -1765,97 +1795,97 @@ msgid "" "accepting connections." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1408 +#: library/asyncio-eventloop.rst:1436 msgid "" "Start accepting connections until the coroutine is cancelled. Cancellation " "of ``serve_forever`` task causes the server to be closed." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1412 +#: library/asyncio-eventloop.rst:1440 msgid "" "This method can be called if the server is already accepting connections. " "Only one ``serve_forever`` task can exist per one *Server* object." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1434 +#: library/asyncio-eventloop.rst:1462 msgid "Return ``True`` if the server is accepting new connections." msgstr "Donne ``True`` si le serveur accepte de nouvelles connexions." -#: ../Doc/library/asyncio-eventloop.rst:1440 +#: library/asyncio-eventloop.rst:1468 msgid "Wait until the :meth:`close` method completes." msgstr "Attends que la méthode :meth:`close` se termine." -#: ../Doc/library/asyncio-eventloop.rst:1444 +#: library/asyncio-eventloop.rst:1472 msgid "List of :class:`socket.socket` objects the server is listening on." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1446 +#: library/asyncio-eventloop.rst:1474 msgid "" "Prior to Python 3.7 ``Server.sockets`` used to return an internal list of " "server sockets directly. In 3.7 a copy of that list is returned." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1455 +#: library/asyncio-eventloop.rst:1483 msgid "Event Loop Implementations" msgstr "Implémentations de boucle d'évènements" -#: ../Doc/library/asyncio-eventloop.rst:1457 +#: library/asyncio-eventloop.rst:1485 msgid "" "asyncio ships with two different event loop implementations: :class:" "`SelectorEventLoop` and :class:`ProactorEventLoop`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1460 +#: library/asyncio-eventloop.rst:1488 msgid "" "By default asyncio is configured to use :class:`SelectorEventLoop` on Unix " "and :class:`ProactorEventLoop` on Windows." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1466 +#: library/asyncio-eventloop.rst:1494 msgid "An event loop based on the :mod:`selectors` module." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1468 +#: library/asyncio-eventloop.rst:1496 msgid "" "Uses the most efficient *selector* available for the given platform. It is " "also possible to manually configure the exact selector implementation to be " "used::" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1480 +#: library/asyncio-eventloop.rst:1508 msgid ":ref:`Availability `: Unix, Windows." msgstr ":ref:`Disponibilité ` : Unix, Windows." -#: ../Doc/library/asyncio-eventloop.rst:1485 +#: library/asyncio-eventloop.rst:1513 msgid "An event loop for Windows that uses \"I/O Completion Ports\" (IOCP)." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1488 +#: library/asyncio-eventloop.rst:1516 msgid ":ref:`Availability `: Windows." msgstr ":ref:`Disponibilité ` : Windows." -#: ../Doc/library/asyncio-eventloop.rst:1491 +#: library/asyncio-eventloop.rst:1519 msgid "" "`MSDN documentation on I/O Completion Ports `_." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1497 +#: library/asyncio-eventloop.rst:1525 msgid "Abstract base class for asyncio-compliant event loops." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1499 +#: library/asyncio-eventloop.rst:1527 msgid "" "The :ref:`Event Loop Methods ` section lists all methods " "that an alternative implementation of ``AbstractEventLoop`` should have " "defined." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1505 +#: library/asyncio-eventloop.rst:1533 msgid "Examples" msgstr "Exemples" -#: ../Doc/library/asyncio-eventloop.rst:1507 +#: library/asyncio-eventloop.rst:1535 msgid "" "Note that all examples in this section **purposefully** show how to use the " "low-level event loop APIs, such as :meth:`loop.run_forever` and :meth:`loop." @@ -1863,70 +1893,70 @@ msgid "" "consider using the high-level functions like :func:`asyncio.run`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1517 +#: library/asyncio-eventloop.rst:1545 msgid "Hello World with call_soon()" msgstr "\"Hello World\" avec ``call_soon()``" -#: ../Doc/library/asyncio-eventloop.rst:1519 +#: library/asyncio-eventloop.rst:1547 msgid "" "An example using the :meth:`loop.call_soon` method to schedule a callback. " "The callback displays ``\"Hello World\"`` and then stops the event loop::" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1543 +#: library/asyncio-eventloop.rst:1571 msgid "" "A similar :ref:`Hello World ` example created with a coroutine " "and the :func:`run` function." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1550 +#: library/asyncio-eventloop.rst:1578 msgid "Display the current date with call_later()" msgstr "Afficher la date actuelle avec ``call_later()``" -#: ../Doc/library/asyncio-eventloop.rst:1552 +#: library/asyncio-eventloop.rst:1580 msgid "" "An example of a callback displaying the current date every second. The " "callback uses the :meth:`loop.call_later` method to reschedule itself after " "5 seconds, and then stops the event loop::" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1580 +#: library/asyncio-eventloop.rst:1608 msgid "" "A similar :ref:`current date ` example created with a " "coroutine and the :func:`run` function." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1587 +#: library/asyncio-eventloop.rst:1615 msgid "Watch a file descriptor for read events" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1589 +#: library/asyncio-eventloop.rst:1617 msgid "" "Wait until a file descriptor received some data using the :meth:`loop." "add_reader` method and then close the event loop::" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1627 +#: library/asyncio-eventloop.rst:1655 msgid "" "A similar :ref:`example ` using " "transports, protocols, and the :meth:`loop.create_connection` method." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1631 +#: library/asyncio-eventloop.rst:1659 msgid "" "Another similar :ref:`example ` " "using the high-level :func:`asyncio.open_connection` function and streams." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1639 +#: library/asyncio-eventloop.rst:1667 msgid "Set signal handlers for SIGINT and SIGTERM" msgstr "Définit les gestionnaires de signaux pour *SIGINT* et *SIGTERM*" -#: ../Doc/library/asyncio-eventloop.rst:1641 +#: library/asyncio-eventloop.rst:1669 msgid "(This ``signals`` example only works on Unix.)" msgstr "(Cet exemple ne fonctionne que sur Unix.)" -#: ../Doc/library/asyncio-eventloop.rst:1643 +#: library/asyncio-eventloop.rst:1671 msgid "" "Register handlers for signals :py:data:`SIGINT` and :py:data:`SIGTERM` using " "the :meth:`loop.add_signal_handler` method::" diff --git a/library/asyncio-exceptions.po b/library/asyncio-exceptions.po index 14ba55cd0e..bf1e12c4e6 100644 --- a/library/asyncio-exceptions.po +++ b/library/asyncio-exceptions.po @@ -23,8 +23,9 @@ msgid "**Source code:** :source:`Lib/asyncio/exceptions.py`" msgstr "" #: ../Doc/library/asyncio-exceptions.rst:16 +#, fuzzy msgid "The operation has exceeded the given deadline." -msgstr "" +msgstr "L'opération a dépassé le délai donné." #: ../Doc/library/asyncio-exceptions.rst:19 msgid "" diff --git a/library/asyncio-future.po b/library/asyncio-future.po index e43391aa22..e211b77a63 100644 --- a/library/asyncio-future.po +++ b/library/asyncio-future.po @@ -23,42 +23,51 @@ msgid "" "**Source code:** :source:`Lib/asyncio/futures.py`, :source:`Lib/asyncio/" "base_futures.py`" msgstr "" +"**Code source :** :source:`Lib/asyncio/futures.py`, :source:`Lib/asyncio/" +"base_futures.py`" #: ../Doc/library/asyncio-future.rst:15 msgid "" "*Future* objects are used to bridge **low-level callback-based code** with " "high-level async/await code." msgstr "" +"Les objets *Future* sont utilisés comme passerelles entre du **code bas " +"niveau basé sur des fonctions de rappel** et du code haut niveau utilisant " +"*async* et *await*." #: ../Doc/library/asyncio-future.rst:20 msgid "Future Functions" -msgstr "" +msgstr "Fonctions pour *Future*" #: ../Doc/library/asyncio-future.rst:24 msgid "Return ``True`` if *obj* is either of:" -msgstr "" +msgstr "Renvoie ``True`` si *obj* est soit :" #: ../Doc/library/asyncio-future.rst:26 msgid "an instance of :class:`asyncio.Future`," -msgstr "" +msgstr "une instance de :class:`asyncio.Future` ;" #: ../Doc/library/asyncio-future.rst:27 msgid "an instance of :class:`asyncio.Task`," -msgstr "" +msgstr "une instance de :class:`asyncio.Task` ;" #: ../Doc/library/asyncio-future.rst:28 msgid "a Future-like object with a ``_asyncio_future_blocking`` attribute." msgstr "" +"un objet se comportant comme *Future* et possédant un attribut " +"``_asyncio_future_blocking``." #: ../Doc/library/asyncio-future.rst:36 msgid "Return:" -msgstr "" +msgstr "Renvoie :" #: ../Doc/library/asyncio-future.rst:38 msgid "" "*obj* argument as is, if *obj* is a :class:`Future`, a :class:`Task`, or a " "Future-like object (:func:`isfuture` is used for the test.)" msgstr "" +"l'objet *obj* tel quel si c'est un objet :class:`Future`, :class:`Task` ou " +"se comportant comme un *Future*. :func:`isfuture` est utilisée pour le test ;" #: ../Doc/library/asyncio-future.rst:42 msgid "" @@ -66,22 +75,31 @@ msgid "" "`iscoroutine` is used for the test); in this case the coroutine will be " "scheduled by ``ensure_future()``." msgstr "" +"un objet :class:`Task` encapsulant *obj* si ce dernier est une coroutine (:" +"func:`iscoroutine` est utilisée pour le test). Dans ce cas, l’exécution de " +"la coroutine sera planifiée par ``ensure_future()`` ;" #: ../Doc/library/asyncio-future.rst:47 msgid "" "a :class:`Task` object that would await on *obj*, if *obj* is an awaitable (:" "func:`inspect.isawaitable` is used for the test.)" msgstr "" +"un objet :class:`Task` qui attendra (*await*) *obj* si ce dernier peut être " +"attendu (*awaitable*). :func:`iscoroutine` est utilisée pour le test." #: ../Doc/library/asyncio-future.rst:50 msgid "If *obj* is neither of the above a :exc:`TypeError` is raised." msgstr "" +"Si *obj* ne correspond à aucun des critères ci-dessus, une exception :exc:" +"`TypeError` est levée." #: ../Doc/library/asyncio-future.rst:54 msgid "" "See also the :func:`create_task` function which is the preferred way for " "creating new Tasks." msgstr "" +"Voir aussi la fonction :func:`create_task` qui est la manière privilégiée " +"pour créer des nouvelles tâches." #: ../Doc/library/asyncio-future.rst:57 msgid "The function accepts any :term:`awaitable` object." @@ -92,16 +110,20 @@ msgid "" "Wrap a :class:`concurrent.futures.Future` object in a :class:`asyncio." "Future` object." msgstr "" +"Encapsule un objet :class:`concurrent.futures.Future` dans un objet :class:" +"`asyncio.Future`." #: ../Doc/library/asyncio-future.rst:68 msgid "Future Object" -msgstr "" +msgstr "Objet *Future*" #: ../Doc/library/asyncio-future.rst:72 msgid "" "A Future represents an eventual result of an asynchronous operation. Not " "thread-safe." msgstr "" +"Un *Future* représente le résultat final d'une opération asynchrone. Il " +"n'est pas conçu pour pouvoir être utilisé par plusieurs fils d'exécution." #: ../Doc/library/asyncio-future.rst:75 msgid "" @@ -116,6 +138,10 @@ msgid "" "protocols implemented using asyncio :ref:`transports `) to interoperate with high-level async/await code." msgstr "" +"Les *Futures* sont habituellement utilisés pour permettre à du code bas " +"niveau basé sur des fonctions de rappel (par exemple : les protocoles " +"utilisant *asyncio* :ref:`transports `) " +"d'interagir avec du code haut niveau utilisant *async* et *await*." #: ../Doc/library/asyncio-future.rst:84 msgid "" @@ -124,6 +150,11 @@ msgid "" "create_future`. This way alternative event loop implementations can inject " "their own optimized implementations of a Future object." msgstr "" +"Une bonne règle empirique est de ne jamais exposer des objets *Future* dans " +"des *API* destinées à l'utilisateur. La façon privilégiée de créer des " +"objets *Future* est d'appeler la méthode :meth:`loop.create_future`. Cela " +"permet aux implémentations alternatives de la boucle d'évènements d'utiliser " +"leur propre implémentation de l'objet *Future*." #: ../Doc/library/asyncio-future.rst:90 msgid "Added support for the :mod:`contextvars` module." @@ -131,78 +162,98 @@ msgstr "Ajout du support du module :mod:`contextvars`." #: ../Doc/library/asyncio-future.rst:95 msgid "Return the result of the Future." -msgstr "" +msgstr "Renvoie le résultat du *Future*." #: ../Doc/library/asyncio-future.rst:97 msgid "" "If the Future is *done* and has a result set by the :meth:`set_result` " "method, the result value is returned." msgstr "" +"Si le *Future* est « terminé » et a un résultat défini par la méthode :meth:" +"`set_result`, ce résultat est renvoyé." #: ../Doc/library/asyncio-future.rst:100 msgid "" "If the Future is *done* and has an exception set by the :meth:" "`set_exception` method, this method raises the exception." msgstr "" +"Si le *Future* est « terminé » et a une exception définie par la méthode :" +"meth:`set_exception`, cette méthode lève l'exception." #: ../Doc/library/asyncio-future.rst:103 ../Doc/library/asyncio-future.rst:188 msgid "" "If the Future has been *cancelled*, this method raises a :exc:" "`CancelledError` exception." msgstr "" +"Si le *Future* a été *annulé*, cette méthode lève une exception :exc:" +"`CancelledError`." #: ../Doc/library/asyncio-future.rst:106 +#, fuzzy msgid "" "If the Future's result isn't yet available, this method raises a :exc:" "`InvalidStateError` exception." msgstr "" +"Si le résultat de la tâche n'est pas encore disponible, cette méthode lève " +"une exception :exc:`InvalidStateError`." #: ../Doc/library/asyncio-future.rst:111 msgid "Mark the Future as *done* and set its result." -msgstr "" +msgstr "Marque le *Future* comme « terminé » et définit son résultat." #: ../Doc/library/asyncio-future.rst:113 ../Doc/library/asyncio-future.rst:120 msgid "" "Raises a :exc:`InvalidStateError` error if the Future is already *done*." msgstr "" +"Lève une erreur :exc:`InvalidStateError` si le *Future* est déjà « terminé »." #: ../Doc/library/asyncio-future.rst:118 msgid "Mark the Future as *done* and set an exception." -msgstr "" +msgstr "Marque le *Future* comme « terminé » et définit une exception." #: ../Doc/library/asyncio-future.rst:125 msgid "Return ``True`` if the Future is *done*." -msgstr "" +msgstr "Renvoie ``True`` si le *Future* est « terminé »." #: ../Doc/library/asyncio-future.rst:127 msgid "" "A Future is *done* if it was *cancelled* or if it has a result or an " "exception set with :meth:`set_result` or :meth:`set_exception` calls." msgstr "" +"Un *Future* est « terminé » s'il a été « annulé » ou si un résultat ou une " +"exception a été définie par les méthodes :meth:`set_result` ou :meth:" +"`set_exception`." #: ../Doc/library/asyncio-future.rst:133 msgid "Return ``True`` if the Future was *cancelled*." -msgstr "" +msgstr "Renvoie ``True`` si le *Future* a été « annulé »." #: ../Doc/library/asyncio-future.rst:135 msgid "" "The method is usually used to check if a Future is not *cancelled* before " "setting a result or an exception for it::" msgstr "" +"Cette méthode est habituellement utilisée pour vérifier qu'un *Future* n'est " +"pas « annulé » avant de définir un résultat ou une exception pour celui-ci ::" #: ../Doc/library/asyncio-future.rst:143 msgid "Add a callback to be run when the Future is *done*." msgstr "" +"Ajoute une fonction de rappel à exécuter lorsque le *Future* est « terminé »." #: ../Doc/library/asyncio-future.rst:145 msgid "The *callback* is called with the Future object as its only argument." msgstr "" +"L'argument *callback* est appelé avec l'objet *Future* comme seul argument." #: ../Doc/library/asyncio-future.rst:148 msgid "" "If the Future is already *done* when this method is called, the callback is " "scheduled with :meth:`loop.call_soon`." msgstr "" +"Si le *Future* est déjà « terminé » lorsque la méthode est appelée, " +"l'exécution de la fonction de rappel est planifiée avec :meth:`loop." +"call_soon`." #: ../Doc/library/asyncio-future.rst:151 msgid "" @@ -210,18 +261,24 @@ msgid "" "class:`contextvars.Context` for the *callback* to run in. The current " "context is used when no *context* is provided." msgstr "" +"L'argument nommé optionnel *context* permet de spécifier une classe :class:" +"`contextvars.Context` personnalisée dans laquelle la fonction de rappel " +"s’exécutera. Le contexte actuel est utilisé si *context* n'est pas fourni." #: ../Doc/library/asyncio-future.rst:155 msgid "" ":func:`functools.partial` can be used to pass parameters to the callback, e." "g.::" msgstr "" +":func:`functools.partial` peut être utilisée pour passer des paramètres à la " +"fonction de rappel ::" #: ../Doc/library/asyncio-future.rst:162 msgid "" "The *context* keyword-only parameter was added. See :pep:`567` for more " "details." msgstr "" +"Ajout de l'argument nommé *context*. Voir :pep:`567` pour plus de détails." #: ../Doc/library/asyncio-future.rst:168 msgid "Remove *callback* from the callbacks list." @@ -232,10 +289,12 @@ msgid "" "Returns the number of callbacks removed, which is typically 1, unless a " "callback was added more than once." msgstr "" +"Renvoie le nombre de fonctions de rappel retiré. La méthode renvoie " +"généralement 1, à moins que la fonction ait été ajoutée plus d'une fois." #: ../Doc/library/asyncio-future.rst:175 msgid "Cancel the Future and schedule callbacks." -msgstr "" +msgstr "Annule le *Future* et planifie l'exécution des fonctions de rappel." #: ../Doc/library/asyncio-future.rst:177 msgid "" @@ -243,65 +302,89 @@ msgid "" "change the Future's state to *cancelled*, schedule the callbacks, and return " "``True``." msgstr "" +"Si le *Future* est déjà « terminé » ou « annulé », renvoie ``False``. " +"Autrement, change l'état du *Future* à « annulé », planifie l'exécution des " +"fonctions de rappel et renvoie ``True``." #: ../Doc/library/asyncio-future.rst:183 msgid "Return the exception that was set on this Future." -msgstr "" +msgstr "Renvoie l'exception définie pour ce *Future*." #: ../Doc/library/asyncio-future.rst:185 msgid "" "The exception (or ``None`` if no exception was set) is returned only if the " "Future is *done*." msgstr "" +"L'exception, ou ``None`` si aucune exception n'a été définie, est renvoyé " +"seulement si le *Future* est « terminé »." #: ../Doc/library/asyncio-future.rst:191 msgid "" "If the Future isn't *done* yet, this method raises an :exc:" "`InvalidStateError` exception." msgstr "" +"Si le *Future* n'est pas encore « terminé », cette méthode lève une " +"exception :exc:`InvalidStateError`." #: ../Doc/library/asyncio-future.rst:196 msgid "Return the event loop the Future object is bound to." -msgstr "" +msgstr "Renvoie la boucle d'évènements à laquelle le *Future* est attaché." #: ../Doc/library/asyncio-future.rst:203 msgid "" "This example creates a Future object, creates and schedules an asynchronous " "Task to set result for the Future, and waits until the Future has a result::" msgstr "" +"Cet exemple crée un objet *Future*, puis crée et planifie l’exécution d'une " +"tâche asynchrone qui définira le résultat du *Future* et attend jusqu'à ce " +"que le *Future* ait un résultat ::" #: ../Doc/library/asyncio-future.rst:238 msgid "" "The Future object was designed to mimic :class:`concurrent.futures.Future`. " "Key differences include:" msgstr "" +"L'objet *Future* est conçu pour imiter la classe :class:`concurrent.futures." +"Future`. Les principales différences sont :" #: ../Doc/library/asyncio-future.rst:241 msgid "" "unlike asyncio Futures, :class:`concurrent.futures.Future` instances cannot " "be awaited." msgstr "" +"contrairement au *Future asyncio*, les instances de :class:`concurrent." +"futures.Future` ne peuvent pas être attendues ;" #: ../Doc/library/asyncio-future.rst:244 msgid "" ":meth:`asyncio.Future.result` and :meth:`asyncio.Future.exception` do not " "accept the *timeout* argument." msgstr "" +":meth:`asyncio.Future.result` et :meth:`asyncio.Future.exception` " +"n'acceptent pas d'argument *timeout* ;" #: ../Doc/library/asyncio-future.rst:247 msgid "" ":meth:`asyncio.Future.result` and :meth:`asyncio.Future.exception` raise an :" "exc:`InvalidStateError` exception when the Future is not *done*." msgstr "" +":meth:`asyncio.Future.result` et :meth:`asyncio.Future.exception` lèvent une " +"exception :exc:`InvalidStateError` lorsque le *Future* n'est pas " +"« terminé » ;" #: ../Doc/library/asyncio-future.rst:251 msgid "" "Callbacks registered with :meth:`asyncio.Future.add_done_callback` are not " "called immediately. They are scheduled with :meth:`loop.call_soon` instead." msgstr "" +"les fonctions de rappel enregistrées à l'aide de :meth:`asyncio.Future." +"add_done_callback` ne sont pas exécutées immédiatement mais planifiées avec :" +"meth:`loop.call_soon` ;" #: ../Doc/library/asyncio-future.rst:255 msgid "" "asyncio Future is not compatible with the :func:`concurrent.futures.wait` " "and :func:`concurrent.futures.as_completed` functions." msgstr "" +"les *Future asyncio* ne sont pas compatibles avec les fonctions :func:" +"`concurrent.futures.wait` et :func:`concurrent.futures.as_completed` ;" diff --git a/library/asyncio-llapi-index.po b/library/asyncio-llapi-index.po index e8d58190e6..33f1cea35a 100644 --- a/library/asyncio-llapi-index.po +++ b/library/asyncio-llapi-index.po @@ -28,7 +28,7 @@ msgstr "Obtenir une boucle d'évènements" #: ../Doc/library/asyncio-llapi-index.rst:18 msgid ":func:`asyncio.get_running_loop`" -msgstr "" +msgstr ":func:`asyncio.get_running_loop`" #: ../Doc/library/asyncio-llapi-index.rst:19 msgid "The **preferred** function to get the running event loop." @@ -36,7 +36,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:21 msgid ":func:`asyncio.get_event_loop`" -msgstr "" +msgstr ":func:`asyncio.get_event_loop`" #: ../Doc/library/asyncio-llapi-index.rst:22 msgid "Get an event loop instance (current or via the policy)." @@ -44,7 +44,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:24 msgid ":func:`asyncio.set_event_loop`" -msgstr "" +msgstr ":func:`asyncio.set_event_loop`" #: ../Doc/library/asyncio-llapi-index.rst:25 msgid "Set the event loop as current via the current policy." @@ -52,7 +52,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:27 msgid ":func:`asyncio.new_event_loop`" -msgstr "" +msgstr ":func:`asyncio.new_event_loop`" #: ../Doc/library/asyncio-llapi-index.rst:28 msgid "Create a new event loop." @@ -83,7 +83,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:47 msgid ":meth:`loop.run_until_complete`" -msgstr "" +msgstr ":meth:`loop.run_until_complete`" #: ../Doc/library/asyncio-llapi-index.rst:48 msgid "Run a Future/Task/awaitable until complete." @@ -91,7 +91,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:50 msgid ":meth:`loop.run_forever`" -msgstr "" +msgstr ":meth:`loop.run_forever`" #: ../Doc/library/asyncio-llapi-index.rst:51 msgid "Run the event loop forever." @@ -99,7 +99,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:53 msgid ":meth:`loop.stop`" -msgstr "" +msgstr ":meth:`loop.stop`" #: ../Doc/library/asyncio-llapi-index.rst:54 msgid "Stop the event loop." @@ -107,7 +107,7 @@ msgstr "Arrête l'exécution de la boucle d'évènements." #: ../Doc/library/asyncio-llapi-index.rst:56 msgid ":meth:`loop.close`" -msgstr "" +msgstr ":meth:`loop.close`" #: ../Doc/library/asyncio-llapi-index.rst:57 msgid "Close the event loop." @@ -115,7 +115,7 @@ msgstr "Arrête la boucle d'évènements." #: ../Doc/library/asyncio-llapi-index.rst:59 msgid ":meth:`loop.is_running()`" -msgstr "" +msgstr ":meth:`loop.is_running()`" #: ../Doc/library/asyncio-llapi-index.rst:60 msgid "Return ``True`` if the event loop is running." @@ -123,11 +123,12 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:62 msgid ":meth:`loop.is_closed()`" -msgstr "" +msgstr ":meth:`loop.is_closed()`" #: ../Doc/library/asyncio-llapi-index.rst:63 +#, fuzzy msgid "Return ``True`` if the event loop is closed." -msgstr "" +msgstr "Renvoie ``True`` si la boucle d'évènements est arrêtée." #: ../Doc/library/asyncio-llapi-index.rst:65 msgid "``await`` :meth:`loop.shutdown_asyncgens`" @@ -139,11 +140,11 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:69 msgid "Debugging" -msgstr "" +msgstr "Débogage" #: ../Doc/library/asyncio-llapi-index.rst:74 msgid ":meth:`loop.set_debug`" -msgstr "" +msgstr ":meth:`loop.set_debug`" #: ../Doc/library/asyncio-llapi-index.rst:75 msgid "Enable or disable the debug mode." @@ -151,7 +152,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:77 msgid ":meth:`loop.get_debug`" -msgstr "" +msgstr ":meth:`loop.get_debug`" #: ../Doc/library/asyncio-llapi-index.rst:78 msgid "Get the current debug mode." @@ -163,7 +164,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:86 msgid ":meth:`loop.call_soon`" -msgstr "" +msgstr ":meth:`loop.call_soon`" #: ../Doc/library/asyncio-llapi-index.rst:87 msgid "Invoke a callback soon." @@ -171,7 +172,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:89 msgid ":meth:`loop.call_soon_threadsafe`" -msgstr "" +msgstr ":meth:`loop.call_soon_threadsafe`" #: ../Doc/library/asyncio-llapi-index.rst:90 msgid "A thread-safe variant of :meth:`loop.call_soon`." @@ -179,7 +180,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:92 msgid ":meth:`loop.call_later`" -msgstr "" +msgstr ":meth:`loop.call_later`" #: ../Doc/library/asyncio-llapi-index.rst:93 msgid "Invoke a callback *after* the given time." @@ -187,7 +188,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:95 msgid ":meth:`loop.call_at`" -msgstr "" +msgstr ":meth:`loop.call_at`" #: ../Doc/library/asyncio-llapi-index.rst:96 msgid "Invoke a callback *at* the given time." @@ -209,7 +210,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:108 msgid ":meth:`loop.set_default_executor`" -msgstr "" +msgstr ":meth:`loop.set_default_executor`" #: ../Doc/library/asyncio-llapi-index.rst:109 msgid "Set the default executor for :meth:`loop.run_in_executor`." @@ -221,7 +222,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:117 msgid ":meth:`loop.create_future`" -msgstr "" +msgstr ":meth:`loop.create_future`" #: ../Doc/library/asyncio-llapi-index.rst:118 msgid "Create a :class:`Future` object." @@ -229,7 +230,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:120 msgid ":meth:`loop.create_task`" -msgstr "" +msgstr ":meth:`loop.create_task`" #: ../Doc/library/asyncio-llapi-index.rst:121 msgid "Schedule coroutine as a :class:`Task`." @@ -237,7 +238,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:123 msgid ":meth:`loop.set_task_factory`" -msgstr "" +msgstr ":meth:`loop.set_task_factory`" #: ../Doc/library/asyncio-llapi-index.rst:124 msgid "" @@ -247,7 +248,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:127 msgid ":meth:`loop.get_task_factory`" -msgstr "" +msgstr ":meth:`loop.get_task_factory`" #: ../Doc/library/asyncio-llapi-index.rst:128 msgid "" @@ -413,7 +414,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:204 msgid ":meth:`loop.add_reader`" -msgstr "" +msgstr ":meth:`loop.add_reader`" #: ../Doc/library/asyncio-llapi-index.rst:205 msgid "Start watching a file descriptor for read availability." @@ -421,7 +422,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:207 msgid ":meth:`loop.remove_reader`" -msgstr "" +msgstr ":meth:`loop.remove_reader`" #: ../Doc/library/asyncio-llapi-index.rst:208 msgid "Stop watching a file descriptor for read availability." @@ -429,7 +430,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:210 msgid ":meth:`loop.add_writer`" -msgstr "" +msgstr ":meth:`loop.add_writer`" #: ../Doc/library/asyncio-llapi-index.rst:211 msgid "Start watching a file descriptor for write availability." @@ -437,19 +438,20 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:213 msgid ":meth:`loop.remove_writer`" -msgstr "" +msgstr ":meth:`loop.remove_writer`" #: ../Doc/library/asyncio-llapi-index.rst:214 msgid "Stop watching a file descriptor for write availability." msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:217 +#, fuzzy msgid "Unix Signals" -msgstr "" +msgstr "Signaux Unix" #: ../Doc/library/asyncio-llapi-index.rst:222 msgid ":meth:`loop.add_signal_handler`" -msgstr "" +msgstr ":meth:`loop.add_signal_handler`" #: ../Doc/library/asyncio-llapi-index.rst:223 msgid "Add a handler for a :mod:`signal`." @@ -457,7 +459,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:225 msgid ":meth:`loop.remove_signal_handler`" -msgstr "" +msgstr ":meth:`loop.remove_signal_handler`" #: ../Doc/library/asyncio-llapi-index.rst:226 msgid "Remove a handler for a :mod:`signal`." @@ -469,7 +471,7 @@ msgstr "Sous-processus" #: ../Doc/library/asyncio-llapi-index.rst:234 msgid ":meth:`loop.subprocess_exec`" -msgstr "" +msgstr ":meth:`loop.subprocess_exec`" #: ../Doc/library/asyncio-llapi-index.rst:235 msgid "Spawn a subprocess." @@ -477,7 +479,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:237 msgid ":meth:`loop.subprocess_shell`" -msgstr "" +msgstr ":meth:`loop.subprocess_shell`" #: ../Doc/library/asyncio-llapi-index.rst:238 msgid "Spawn a subprocess from a shell command." @@ -489,7 +491,7 @@ msgstr "Gestion des erreurs" #: ../Doc/library/asyncio-llapi-index.rst:246 msgid ":meth:`loop.call_exception_handler`" -msgstr "" +msgstr ":meth:`loop.call_exception_handler`" #: ../Doc/library/asyncio-llapi-index.rst:247 msgid "Call the exception handler." @@ -497,7 +499,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:249 msgid ":meth:`loop.set_exception_handler`" -msgstr "" +msgstr ":meth:`loop.set_exception_handler`" #: ../Doc/library/asyncio-llapi-index.rst:250 msgid "Set a new exception handler." @@ -505,7 +507,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:252 msgid ":meth:`loop.get_exception_handler`" -msgstr "" +msgstr ":meth:`loop.get_exception_handler`" #: ../Doc/library/asyncio-llapi-index.rst:253 msgid "Get the current exception handler." @@ -513,7 +515,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:255 msgid ":meth:`loop.default_exception_handler`" -msgstr "" +msgstr ":meth:`loop.default_exception_handler`" #: ../Doc/library/asyncio-llapi-index.rst:256 msgid "The default exception handler implementation." @@ -802,7 +804,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:407 msgid "Protocols" -msgstr "" +msgstr "Protocoles" #: ../Doc/library/asyncio-llapi-index.rst:409 msgid "Protocol classes can implement the following **callback methods**:" @@ -918,9 +920,12 @@ msgid "" msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:476 +#, fuzzy msgid "" "Called when the child process writes data into its *stdout* or *stderr* pipe." msgstr "" +"Appelé lorsqu'un processus enfant écrit sur sa sortie d'erreur ou sa sortie " +"standard." #: ../Doc/library/asyncio-llapi-index.rst:479 msgid "" @@ -961,7 +966,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:503 msgid ":meth:`asyncio.get_event_loop_policy`" -msgstr "" +msgstr ":meth:`asyncio.get_event_loop_policy`" #: ../Doc/library/asyncio-llapi-index.rst:504 msgid "Return the current process-wide policy." @@ -969,7 +974,7 @@ msgstr "Renvoie la stratégie actuelle à l'échelle du processus." #: ../Doc/library/asyncio-llapi-index.rst:506 msgid ":meth:`asyncio.set_event_loop_policy`" -msgstr "" +msgstr ":meth:`asyncio.set_event_loop_policy`" #: ../Doc/library/asyncio-llapi-index.rst:507 msgid "Set a new process-wide policy." @@ -977,7 +982,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:509 msgid ":class:`AbstractEventLoopPolicy`" -msgstr "" +msgstr ":class:`AbstractEventLoopPolicy`" #: ../Doc/library/asyncio-llapi-index.rst:510 msgid "Base class for policy objects." diff --git a/library/asyncio-platforms.po b/library/asyncio-platforms.po index 52bb590d7a..794faae52b 100644 --- a/library/asyncio-platforms.po +++ b/library/asyncio-platforms.po @@ -131,7 +131,7 @@ msgstr "" #: ../Doc/library/asyncio-platforms.rst:87 msgid "macOS" -msgstr "" +msgstr "macOS" #: ../Doc/library/asyncio-platforms.rst:89 msgid "Modern macOS versions are fully supported." diff --git a/library/asyncio-policy.po b/library/asyncio-policy.po index 31271246f2..5c3d2253a4 100644 --- a/library/asyncio-policy.po +++ b/library/asyncio-policy.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-12-05 23:16+0100\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2019-11-17 01:26+0100\n" "Last-Translator: Mathieu Dupuy \n" "Language-Team: FRENCH \n" @@ -15,11 +15,11 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.2.4\n" -#: ../Doc/library/asyncio-policy.rst:8 +#: library/asyncio-policy.rst:8 msgid "Policies" msgstr "Stratégies" -#: ../Doc/library/asyncio-policy.rst:10 +#: library/asyncio-policy.rst:10 msgid "" "An event loop policy is a global per-process object that controls the " "management of the event loop. Each event loop has a default policy, which " @@ -30,7 +30,7 @@ msgstr "" "d'événement a une stratégie par défaut, qui peut être modifiée et " "personnalisée à l'aide de l'API de la stratégie." -#: ../Doc/library/asyncio-policy.rst:14 +#: library/asyncio-policy.rst:14 msgid "" "A policy defines the notion of *context* and manages a separate event loop " "per context. The default policy defines *context* to be the current thread." @@ -39,7 +39,7 @@ msgstr "" "distincte par contexte. La stratégie par défaut définit le *contexte* comme " "étant le fil d'exécution actuel." -#: ../Doc/library/asyncio-policy.rst:18 +#: library/asyncio-policy.rst:18 msgid "" "By using a custom event loop policy, the behavior of :func:" "`get_event_loop`, :func:`set_event_loop`, and :func:`new_event_loop` " @@ -49,7 +49,7 @@ msgstr "" "comportement des fonctions :func:`get_event_loop`, :func:`set_event_loop` " "et :func:`new_event_loop` peut être personnalisé." -#: ../Doc/library/asyncio-policy.rst:22 +#: library/asyncio-policy.rst:22 msgid "" "Policy objects should implement the APIs defined in the :class:" "`AbstractEventLoopPolicy` abstract base class." @@ -57,11 +57,11 @@ msgstr "" "Les objets de stratégie doivent implémenter les API définies dans la classe " "de base abstraite :class:`AbstractEventLoopPolicy`." -#: ../Doc/library/asyncio-policy.rst:27 +#: library/asyncio-policy.rst:27 msgid "Getting and Setting the Policy" msgstr "Obtenir et définir la stratégie" -#: ../Doc/library/asyncio-policy.rst:29 +#: library/asyncio-policy.rst:29 msgid "" "The following functions can be used to get and set the policy for the " "current process:" @@ -69,39 +69,39 @@ msgstr "" "Les fonctions suivantes peuvent être utilisées pour obtenir et définir la " "stratégie du processus en cours :" -#: ../Doc/library/asyncio-policy.rst:34 +#: library/asyncio-policy.rst:34 msgid "Return the current process-wide policy." msgstr "Renvoie la stratégie actuelle à l'échelle du processus." -#: ../Doc/library/asyncio-policy.rst:38 +#: library/asyncio-policy.rst:38 msgid "Set the current process-wide policy to *policy*." msgstr "" "Définit la stratégie actuelle sur l'ensemble du processus sur *policy*." -#: ../Doc/library/asyncio-policy.rst:40 +#: library/asyncio-policy.rst:40 msgid "If *policy* is set to ``None``, the default policy is restored." msgstr "" "Si *policy* est définie sur ``None``, la stratégie par défaut est restaurée." -#: ../Doc/library/asyncio-policy.rst:44 +#: library/asyncio-policy.rst:44 msgid "Policy Objects" msgstr "Sujets de stratégie" -#: ../Doc/library/asyncio-policy.rst:46 +#: library/asyncio-policy.rst:46 msgid "The abstract event loop policy base class is defined as follows:" msgstr "" "La classe de base abstraite de la stratégie de boucle d'événements est " "définie comme suit:" -#: ../Doc/library/asyncio-policy.rst:50 +#: library/asyncio-policy.rst:50 msgid "An abstract base class for asyncio policies." msgstr "Une classe de base abstraite pour les stratégies *asyncio*." -#: ../Doc/library/asyncio-policy.rst:54 +#: library/asyncio-policy.rst:54 msgid "Get the event loop for the current context." msgstr "Récupère la boucle d'évènements pour le contexte actuel." -#: ../Doc/library/asyncio-policy.rst:56 +#: library/asyncio-policy.rst:56 msgid "" "Return an event loop object implementing the :class:`AbstractEventLoop` " "interface." @@ -109,23 +109,23 @@ msgstr "" "Renvoie un objet de boucle d'événements en implémentant l'interface :class:" "`AbstractEventLoop`." -#: ../Doc/library/asyncio-policy.rst:59 ../Doc/library/asyncio-policy.rst:71 +#: library/asyncio-policy.rst:71 msgid "This method should never return ``None``." msgstr "Cette méthode ne devrait jamais renvoyer ``None``." -#: ../Doc/library/asyncio-policy.rst:65 +#: library/asyncio-policy.rst:65 msgid "Set the event loop for the current context to *loop*." msgstr "Définit la boucle d'événements du contexte actuel sur *loop*." -#: ../Doc/library/asyncio-policy.rst:69 +#: library/asyncio-policy.rst:69 msgid "Create and return a new event loop object." msgstr "Crée et renvoie un nouvel objet de boucle d'événements." -#: ../Doc/library/asyncio-policy.rst:75 +#: library/asyncio-policy.rst:75 msgid "Get a child process watcher object." msgstr "Récupère un objet observateur du processus enfant." -#: ../Doc/library/asyncio-policy.rst:77 +#: library/asyncio-policy.rst:77 msgid "" "Return a watcher object implementing the :class:`AbstractChildWatcher` " "interface." @@ -133,19 +133,19 @@ msgstr "" "Renvoie un objet observateur implémentant l'interface :class:" "`AbstractChildWatcher`." -#: ../Doc/library/asyncio-policy.rst:80 ../Doc/library/asyncio-policy.rst:86 +#: library/asyncio-policy.rst:86 msgid "This function is Unix specific." msgstr "Cette fonction est spécifique à Unix." -#: ../Doc/library/asyncio-policy.rst:84 +#: library/asyncio-policy.rst:84 msgid "Set the current child process watcher to *watcher*." msgstr "Définit l'observateur du processus enfant actuel à *watcher*." -#: ../Doc/library/asyncio-policy.rst:89 +#: library/asyncio-policy.rst:89 msgid "asyncio ships with the following built-in policies:" msgstr "*asyncio* est livré avec les stratégies intégrées suivantes :" -#: ../Doc/library/asyncio-policy.rst:94 +#: library/asyncio-policy.rst:94 msgid "" "The default asyncio policy. Uses :class:`SelectorEventLoop` on Unix and :" "class:`ProactorEventLoop` on Windows." @@ -153,7 +153,7 @@ msgstr "" "La stratégie *asyncio* par défaut. Utilise :class:`SelectorEventLoop` sur " "les plates-formes Unix et :class:`ProactorEventLoop` sur Windows." -#: ../Doc/library/asyncio-policy.rst:97 +#: library/asyncio-policy.rst:97 msgid "" "There is no need to install the default policy manually. asyncio is " "configured to use the default policy automatically." @@ -162,11 +162,11 @@ msgstr "" "*asyncio* est configuré pour utiliser automatiquement la stratégie par " "défaut." -#: ../Doc/library/asyncio-policy.rst:102 +#: library/asyncio-policy.rst:102 msgid "On Windows, :class:`ProactorEventLoop` is now used by default." msgstr "" -#: ../Doc/library/asyncio-policy.rst:107 +#: library/asyncio-policy.rst:107 msgid "" "An alternative event loop policy that uses the :class:`SelectorEventLoop` " "event loop implementation." @@ -174,21 +174,24 @@ msgstr "" "Stratégie de boucle d'événements alternative utilisant l'implémentation de " "la boucle d'événements :class:`ProactorEventLoop`." -#: ../Doc/library/asyncio-policy.rst:110 ../Doc/library/asyncio-policy.rst:118 +#: library/asyncio-policy.rst:118 msgid ":ref:`Availability `: Windows." msgstr ":ref:`Disponibilité ` : Windows." -#: ../Doc/library/asyncio-policy.rst:115 +#: library/asyncio-policy.rst:115 +#, fuzzy msgid "" "An alternative event loop policy that uses the :class:`ProactorEventLoop` " "event loop implementation." msgstr "" +"Stratégie de boucle d'événements alternative utilisant l'implémentation de " +"la boucle d'événements :class:`ProactorEventLoop`." -#: ../Doc/library/asyncio-policy.rst:123 +#: library/asyncio-policy.rst:123 msgid "Process Watchers" msgstr "Observateurs de processus" -#: ../Doc/library/asyncio-policy.rst:125 +#: library/asyncio-policy.rst:125 msgid "" "A process watcher allows customization of how an event loop monitors child " "processes on Unix. Specifically, the event loop needs to know when a child " @@ -199,7 +202,7 @@ msgstr "" "précisément, la boucle d'événements a besoin de savoir quand un processus " "enfant s'est terminé." -#: ../Doc/library/asyncio-policy.rst:129 +#: library/asyncio-policy.rst:129 msgid "" "In asyncio, child processes are created with :func:`create_subprocess_exec` " "and :meth:`loop.subprocess_exec` functions." @@ -207,7 +210,7 @@ msgstr "" "Dans *asyncio*, les processus enfants sont créés avec les fonctions :func:" "`create_subprocess_exec` et :meth:`loop.subprocess_exec`." -#: ../Doc/library/asyncio-policy.rst:133 +#: library/asyncio-policy.rst:133 #, fuzzy msgid "" "asyncio defines the :class:`AbstractChildWatcher` abstract base class, which " @@ -221,7 +224,7 @@ msgstr "" "implémentations différentes : :class:`SafeChildWatcher` (configurée pour " "être utilisé par défaut) et :class:`FastChildWatcher`." -#: ../Doc/library/asyncio-policy.rst:139 +#: library/asyncio-policy.rst:139 msgid "" "See also the :ref:`Subprocess and Threads ` " "section." @@ -229,7 +232,7 @@ msgstr "" "Voir aussi la section :ref:`sous-processus et fils d'exécution `." -#: ../Doc/library/asyncio-policy.rst:142 +#: library/asyncio-policy.rst:142 msgid "" "The following two functions can be used to customize the child process " "watcher implementation used by the asyncio event loop:" @@ -238,11 +241,11 @@ msgstr "" "l'implémentation de l'observateur de processus enfant utilisé par la boucle " "d'événements *asyncio* :" -#: ../Doc/library/asyncio-policy.rst:147 +#: library/asyncio-policy.rst:147 msgid "Return the current child watcher for the current policy." msgstr "Renvoie l'observateur enfant actuel pour la stratégie actuelle." -#: ../Doc/library/asyncio-policy.rst:151 +#: library/asyncio-policy.rst:151 msgid "" "Set the current child watcher to *watcher* for the current policy. " "*watcher* must implement methods defined in the :class:" @@ -252,7 +255,7 @@ msgstr "" "*watcher* doit implémenter les méthodes définies dans la classe de base :" "class:`AbstractChildWatcher`." -#: ../Doc/library/asyncio-policy.rst:156 +#: library/asyncio-policy.rst:156 msgid "" "Third-party event loops implementations might not support custom child " "watchers. For such event loops, using :func:`set_child_watcher` might be " @@ -263,11 +266,11 @@ msgstr "" "d'événements, utiliser :func:`set_child_watcher` pourrait être interdit ou " "n'avoir aucun effet." -#: ../Doc/library/asyncio-policy.rst:164 +#: library/asyncio-policy.rst:164 msgid "Register a new child handler." msgstr "Enregistre un nouveau gestionnaire." -#: ../Doc/library/asyncio-policy.rst:166 +#: library/asyncio-policy.rst:166 msgid "" "Arrange for ``callback(pid, returncode, *args)`` to be called when a process " "with PID equal to *pid* terminates. Specifying another callback for the " @@ -277,17 +280,17 @@ msgstr "" "processus dont le PID est égal à *pid* se termine. La spécification d'un " "autre rappel pour le même processus remplace le gestionnaire précédent." -#: ../Doc/library/asyncio-policy.rst:171 +#: library/asyncio-policy.rst:171 msgid "The *callback* callable must be thread-safe." msgstr "" "L'appelable *callback* doit être compatible avec les programmes à fils " "d'exécution multiples." -#: ../Doc/library/asyncio-policy.rst:175 +#: library/asyncio-policy.rst:175 msgid "Removes the handler for process with PID equal to *pid*." msgstr "Supprime le gestionnaire de processus avec un PID égal à *pid*." -#: ../Doc/library/asyncio-policy.rst:177 +#: library/asyncio-policy.rst:177 msgid "" "The function returns ``True`` if the handler was successfully removed, " "``False`` if there was nothing to remove." @@ -295,11 +298,11 @@ msgstr "" "La fonction renvoie ``True`` si le gestionnaire a été supprimé avec succès, " "``False`` s'il n'y a rien à supprimer." -#: ../Doc/library/asyncio-policy.rst:182 +#: library/asyncio-policy.rst:182 msgid "Attach the watcher to an event loop." msgstr "Attache l'observateur à une boucle d'événement." -#: ../Doc/library/asyncio-policy.rst:184 +#: library/asyncio-policy.rst:184 msgid "" "If the watcher was previously attached to an event loop, then it is first " "detached before attaching to the new loop." @@ -307,25 +310,27 @@ msgstr "" "Si l'observateur était précédemment attaché à une boucle d'événements, il " "est d'abord détaché avant d'être rattaché à la nouvelle boucle." -#: ../Doc/library/asyncio-policy.rst:187 +#: library/asyncio-policy.rst:187 msgid "Note: loop may be ``None``." msgstr "Remarque : la boucle peut être ``None``." -#: ../Doc/library/asyncio-policy.rst:191 +#: library/asyncio-policy.rst:191 msgid "Return ``True`` if the watcher is ready to use." msgstr "" -#: ../Doc/library/asyncio-policy.rst:193 +#: library/asyncio-policy.rst:193 msgid "" "Spawning a subprocess with *inactive* current child watcher raises :exc:" "`RuntimeError`." msgstr "" +"Instancier un sous-processus avec un observateur enfant actuel *inactif* " +"lève l'exception :exc:`RuntimeError`." -#: ../Doc/library/asyncio-policy.rst:200 +#: library/asyncio-policy.rst:200 msgid "Close the watcher." msgstr "Ferme l'observateur." -#: ../Doc/library/asyncio-policy.rst:202 +#: library/asyncio-policy.rst:202 msgid "" "This method has to be called to ensure that underlying resources are cleaned-" "up." @@ -333,7 +338,7 @@ msgstr "" "Cette méthode doit être appelée pour s'assurer que les ressources sous-" "jacentes sont nettoyées." -#: ../Doc/library/asyncio-policy.rst:207 +#: library/asyncio-policy.rst:207 #, fuzzy msgid "" "This implementation starts a new waiting thread for every subprocess spawn." @@ -342,7 +347,7 @@ msgstr "" "générer des processus en interrogeant chaque processus explicitement par un " "signal :py:data:`SIGCHLD`." -#: ../Doc/library/asyncio-policy.rst:209 +#: library/asyncio-policy.rst:209 #, fuzzy msgid "" "It works reliably even when the asyncio event loop is run in a non-main OS " @@ -352,57 +357,60 @@ msgstr "" "de la manipulation d'un grand nombre de processus (*O(n)* à chaque fois que " "un :py:data:`SIGCHLD` est reçu)." -#: ../Doc/library/asyncio-policy.rst:211 +#: library/asyncio-policy.rst:211 +#, fuzzy msgid "" "There is no noticeable overhead when handling a big number of children " -"(*O(1)* each time a child terminates), but stating a thread per process " +"(*O(1)* each time a child terminates), but starting a thread per process " "requires extra memory." msgstr "" +"Il n'y a pas de surcharge visible lors de la manipulation d'un grand nombre " +"d'enfants (*O(1)* à chaque fois qu'un enfant se termine)." -#: ../Doc/library/asyncio-policy.rst:214 +#: library/asyncio-policy.rst:214 msgid "This watcher is used by default." msgstr "" -#: ../Doc/library/asyncio-policy.rst:220 +#: library/asyncio-policy.rst:220 msgid "" "This implementation registers a :py:data:`SIGCHLD` signal handler on " "instantiation. That can break third-party code that installs a custom " -"handler for `SIGCHLD`. signal)." +"handler for :py:data:`SIGCHLD` signal." msgstr "" -#: ../Doc/library/asyncio-policy.rst:224 ../Doc/library/asyncio-policy.rst:242 +#: library/asyncio-policy.rst:242 msgid "" "The watcher avoids disrupting other code spawning processes by polling every " "process explicitly on a :py:data:`SIGCHLD` signal." msgstr "" -#: ../Doc/library/asyncio-policy.rst:227 +#: library/asyncio-policy.rst:227 msgid "" "There is no limitation for running subprocesses from different threads once " "the watcher is installed." msgstr "" -#: ../Doc/library/asyncio-policy.rst:230 +#: library/asyncio-policy.rst:230 msgid "" "The solution is safe but it has a significant overhead when handling a big " "number of processes (*O(n)* each time a :py:data:`SIGCHLD` is received)." msgstr "" -#: ../Doc/library/asyncio-policy.rst:238 +#: library/asyncio-policy.rst:238 msgid "" "This implementation uses active event loop from the main thread to handle :" "py:data:`SIGCHLD` signal. If the main thread has no running event loop " "another thread cannot spawn a subprocess (:exc:`RuntimeError` is raised)." msgstr "" -#: ../Doc/library/asyncio-policy.rst:245 +#: library/asyncio-policy.rst:245 msgid "" "This solution is as safe as :class:`MultiLoopChildWatcher` and has the same " "*O(N)* complexity but requires a running event loop in the main thread to " "work." msgstr "" -#: ../Doc/library/asyncio-policy.rst:250 +#: library/asyncio-policy.rst:250 msgid "" "This implementation reaps every terminated processes by calling ``os." "waitpid(-1)`` directly, possibly breaking other code spawning processes and " @@ -412,7 +420,7 @@ msgstr "" "directement ``os.waitpid(-1)``, cassant éventuellement un autre code qui " "génère des processus et attend leur fin." -#: ../Doc/library/asyncio-policy.rst:254 +#: library/asyncio-policy.rst:254 msgid "" "There is no noticeable overhead when handling a big number of children " "(*O(1)* each time a child terminates)." @@ -420,17 +428,17 @@ msgstr "" "Il n'y a pas de surcharge visible lors de la manipulation d'un grand nombre " "d'enfants (*O(1)* à chaque fois qu'un enfant se termine)." -#: ../Doc/library/asyncio-policy.rst:257 +#: library/asyncio-policy.rst:257 msgid "" "This solution requires a running event loop in the main thread to work, as :" "class:`SafeChildWatcher`." msgstr "" -#: ../Doc/library/asyncio-policy.rst:262 +#: library/asyncio-policy.rst:262 msgid "Custom Policies" msgstr "Stratégies personnalisées" -#: ../Doc/library/asyncio-policy.rst:264 +#: library/asyncio-policy.rst:264 msgid "" "To implement a new event loop policy, it is recommended to subclass :class:" "`DefaultEventLoopPolicy` and override the methods for which custom behavior " @@ -439,4 +447,4 @@ msgstr "" "Pour implémenter une nouvelle politique de boucle d’événements, il est " "recommandé de sous-classer :class:`DefaultEventLoopPolicy` et de " "réimplémenter les méthodes pour lesquelles un comportement personnalisé est " -"souhaité, par exemple : ::" +"souhaité, par exemple ::" diff --git a/library/asyncio-protocol.po b/library/asyncio-protocol.po index 544521bd9a..5063bd0a4a 100644 --- a/library/asyncio-protocol.po +++ b/library/asyncio-protocol.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-15 18:54+0100\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2019-06-18 22:29+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -15,15 +15,15 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.0.2\n" -#: ../Doc/library/asyncio-protocol.rst:9 +#: library/asyncio-protocol.rst:9 msgid "Transports and Protocols" msgstr "Transports et Protocoles" -#: ../Doc/library/asyncio-protocol.rst:12 +#: library/asyncio-protocol.rst:12 msgid "Preface" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:13 +#: library/asyncio-protocol.rst:13 msgid "" "Transports and Protocols are used by the **low-level** event loop APIs such " "as :meth:`loop.create_connection`. They use callback-based programming " @@ -31,48 +31,48 @@ msgid "" "protocols (e.g. HTTP)." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:18 +#: library/asyncio-protocol.rst:18 msgid "" "Essentially, transports and protocols should only be used in libraries and " "frameworks and never in high-level asyncio applications." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:22 +#: library/asyncio-protocol.rst:22 msgid "This documentation page covers both `Transports`_ and `Protocols`_." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:25 +#: library/asyncio-protocol.rst:25 msgid "Introduction" msgstr "Introduction" -#: ../Doc/library/asyncio-protocol.rst:26 +#: library/asyncio-protocol.rst:26 msgid "" "At the highest level, the transport is concerned with *how* bytes are " "transmitted, while the protocol determines *which* bytes to transmit (and to " "some extent when)." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:30 +#: library/asyncio-protocol.rst:30 msgid "" "A different way of saying the same thing: a transport is an abstraction for " "a socket (or similar I/O endpoint) while a protocol is an abstraction for an " "application, from the transport's point of view." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:35 +#: library/asyncio-protocol.rst:35 msgid "" "Yet another view is the transport and protocol interfaces together define an " "abstract interface for using network I/O and interprocess I/O." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:39 +#: library/asyncio-protocol.rst:39 msgid "" "There is always a 1:1 relationship between transport and protocol objects: " "the protocol calls transport methods to send data, while the transport calls " "protocol methods to pass it data that has been received." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:44 +#: library/asyncio-protocol.rst:44 msgid "" "Most of connection oriented event loop methods (such as :meth:`loop." "create_connection`) usually accept a *protocol_factory* argument used to " @@ -81,110 +81,110 @@ msgid "" "protocol)``." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:51 +#: library/asyncio-protocol.rst:51 msgid "Contents" msgstr "Sommaire" -#: ../Doc/library/asyncio-protocol.rst:52 +#: library/asyncio-protocol.rst:52 msgid "This documentation page contains the following sections:" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:54 +#: library/asyncio-protocol.rst:54 msgid "" "The `Transports`_ section documents asyncio :class:`BaseTransport`, :class:" "`ReadTransport`, :class:`WriteTransport`, :class:`Transport`, :class:" "`DatagramTransport`, and :class:`SubprocessTransport` classes." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:59 +#: library/asyncio-protocol.rst:59 msgid "" "The `Protocols`_ section documents asyncio :class:`BaseProtocol`, :class:" "`Protocol`, :class:`BufferedProtocol`, :class:`DatagramProtocol`, and :class:" "`SubprocessProtocol` classes." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:63 +#: library/asyncio-protocol.rst:63 msgid "" "The `Examples`_ section showcases how to work with transports, protocols, " "and low-level event loop APIs." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:70 +#: library/asyncio-protocol.rst:70 msgid "Transports" msgstr "Transports" -#: ../Doc/library/asyncio-protocol.rst:72 +#: library/asyncio-protocol.rst:72 msgid "**Source code:** :source:`Lib/asyncio/transports.py`" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:76 +#: library/asyncio-protocol.rst:76 msgid "" "Transports are classes provided by :mod:`asyncio` in order to abstract " "various kinds of communication channels." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:79 +#: library/asyncio-protocol.rst:79 msgid "" "Transport objects are always instantiated by an :ref:`asyncio event loop " "`." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:82 +#: library/asyncio-protocol.rst:82 msgid "" "asyncio implements transports for TCP, UDP, SSL, and subprocess pipes. The " "methods available on a transport depend on the transport's kind." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:85 +#: library/asyncio-protocol.rst:85 msgid "" "The transport classes are :ref:`not thread safe `." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:89 +#: library/asyncio-protocol.rst:89 msgid "Transports Hierarchy" msgstr "Hiérarchie des transports" -#: ../Doc/library/asyncio-protocol.rst:93 +#: library/asyncio-protocol.rst:93 msgid "" "Base class for all transports. Contains methods that all asyncio transports " "share." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:98 +#: library/asyncio-protocol.rst:98 msgid "A base transport for write-only connections." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:100 +#: library/asyncio-protocol.rst:100 msgid "" "Instances of the *WriteTransport* class are returned from the :meth:`loop." "connect_write_pipe` event loop method and are also used by subprocess-" "related methods like :meth:`loop.subprocess_exec`." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:107 +#: library/asyncio-protocol.rst:107 msgid "A base transport for read-only connections." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:109 +#: library/asyncio-protocol.rst:109 msgid "" "Instances of the *ReadTransport* class are returned from the :meth:`loop." "connect_read_pipe` event loop method and are also used by subprocess-related " "methods like :meth:`loop.subprocess_exec`." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:116 +#: library/asyncio-protocol.rst:116 msgid "" "Interface representing a bidirectional transport, such as a TCP connection." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:119 +#: library/asyncio-protocol.rst:119 msgid "" "The user does not instantiate a transport directly; they call a utility " "function, passing it a protocol factory and other information necessary to " "create the transport and protocol." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:123 +#: library/asyncio-protocol.rst:123 msgid "" "Instances of the *Transport* class are returned from or used by event loop " "methods like :meth:`loop.create_connection`, :meth:`loop." @@ -192,37 +192,37 @@ msgid "" "etc." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:131 +#: library/asyncio-protocol.rst:131 msgid "A transport for datagram (UDP) connections." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:133 +#: library/asyncio-protocol.rst:133 msgid "" "Instances of the *DatagramTransport* class are returned from the :meth:`loop." "create_datagram_endpoint` event loop method." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:139 +#: library/asyncio-protocol.rst:139 msgid "" "An abstraction to represent a connection between a parent and its child OS " "process." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:142 +#: library/asyncio-protocol.rst:142 msgid "" "Instances of the *SubprocessTransport* class are returned from event loop " "methods :meth:`loop.subprocess_shell` and :meth:`loop.subprocess_exec`." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:148 +#: library/asyncio-protocol.rst:148 msgid "Base Transport" msgstr "Classe de base des Transports" -#: ../Doc/library/asyncio-protocol.rst:152 +#: library/asyncio-protocol.rst:152 msgid "Close the transport." msgstr "Ferme le transport." -#: ../Doc/library/asyncio-protocol.rst:154 +#: library/asyncio-protocol.rst:154 msgid "" "If the transport has a buffer for outgoing data, buffered data will be " "flushed asynchronously. No more data will be received. After all buffered " @@ -231,158 +231,158 @@ msgid "" "its argument." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:163 +#: library/asyncio-protocol.rst:163 msgid "Return ``True`` if the transport is closing or is closed." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:167 +#: library/asyncio-protocol.rst:167 msgid "Return information about the transport or underlying resources it uses." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:170 +#: library/asyncio-protocol.rst:170 msgid "" "*name* is a string representing the piece of transport-specific information " "to get." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:173 +#: library/asyncio-protocol.rst:173 msgid "" "*default* is the value to return if the information is not available, or if " "the transport does not support querying it with the given third-party event " "loop implementation or on the current platform." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:178 +#: library/asyncio-protocol.rst:178 msgid "" "For example, the following code attempts to get the underlying socket object " "of the transport::" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:185 +#: library/asyncio-protocol.rst:185 msgid "Categories of information that can be queried on some transports:" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:187 +#: library/asyncio-protocol.rst:187 msgid "socket:" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:189 +#: library/asyncio-protocol.rst:189 msgid "" "``'peername'``: the remote address to which the socket is connected, result " "of :meth:`socket.socket.getpeername` (``None`` on error)" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:193 +#: library/asyncio-protocol.rst:193 msgid "``'socket'``: :class:`socket.socket` instance" msgstr "``'socket'`` : Instance de :class:`socket.socket`" -#: ../Doc/library/asyncio-protocol.rst:195 +#: library/asyncio-protocol.rst:195 msgid "" "``'sockname'``: the socket's own address, result of :meth:`socket.socket." "getsockname`" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:198 +#: library/asyncio-protocol.rst:198 msgid "SSL socket:" msgstr "Connecteur (*socket* en anglais) SSL :" -#: ../Doc/library/asyncio-protocol.rst:200 +#: library/asyncio-protocol.rst:200 msgid "" "``'compression'``: the compression algorithm being used as a string, or " "``None`` if the connection isn't compressed; result of :meth:`ssl.SSLSocket." "compression`" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:204 +#: library/asyncio-protocol.rst:204 msgid "" "``'cipher'``: a three-value tuple containing the name of the cipher being " "used, the version of the SSL protocol that defines its use, and the number " "of secret bits being used; result of :meth:`ssl.SSLSocket.cipher`" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:209 +#: library/asyncio-protocol.rst:209 msgid "" "``'peercert'``: peer certificate; result of :meth:`ssl.SSLSocket.getpeercert`" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:212 +#: library/asyncio-protocol.rst:212 msgid "``'sslcontext'``: :class:`ssl.SSLContext` instance" msgstr "``sslcontext'`` : Instance de :class:`ssl.SSLContext`" -#: ../Doc/library/asyncio-protocol.rst:214 +#: library/asyncio-protocol.rst:214 msgid "" "``'ssl_object'``: :class:`ssl.SSLObject` or :class:`ssl.SSLSocket` instance" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:217 +#: library/asyncio-protocol.rst:217 msgid "pipe:" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:219 +#: library/asyncio-protocol.rst:219 msgid "``'pipe'``: pipe object" msgstr "``'pipe'`` : objet *pipe*" -#: ../Doc/library/asyncio-protocol.rst:221 +#: library/asyncio-protocol.rst:221 msgid "subprocess:" msgstr "sous-processus :" -#: ../Doc/library/asyncio-protocol.rst:223 +#: library/asyncio-protocol.rst:223 msgid "``'subprocess'``: :class:`subprocess.Popen` instance" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:227 +#: library/asyncio-protocol.rst:227 msgid "Set a new protocol." msgstr "Change le protocole." -#: ../Doc/library/asyncio-protocol.rst:229 +#: library/asyncio-protocol.rst:229 msgid "" "Switching protocol should only be done when both protocols are documented to " "support the switch." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:234 +#: library/asyncio-protocol.rst:234 msgid "Return the current protocol." msgstr "Renvoie le protocole courant." -#: ../Doc/library/asyncio-protocol.rst:238 +#: library/asyncio-protocol.rst:238 msgid "Read-only Transports" msgstr "Transports en lecture seule" -#: ../Doc/library/asyncio-protocol.rst:242 +#: library/asyncio-protocol.rst:242 msgid "Return ``True`` if the transport is receiving new data." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:248 +#: library/asyncio-protocol.rst:248 msgid "" "Pause the receiving end of the transport. No data will be passed to the " "protocol's :meth:`protocol.data_received() ` method " "until :meth:`resume_reading` is called." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:252 +#: library/asyncio-protocol.rst:252 msgid "" "The method is idempotent, i.e. it can be called when the transport is " "already paused or closed." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:258 +#: library/asyncio-protocol.rst:258 msgid "" "Resume the receiving end. The protocol's :meth:`protocol.data_received() " "` method will be called once again if some data is " "available for reading." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:262 +#: library/asyncio-protocol.rst:262 msgid "" "The method is idempotent, i.e. it can be called when the transport is " "already reading." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:268 +#: library/asyncio-protocol.rst:268 msgid "Write-only Transports" msgstr "Transports en lecture/écriture" -#: ../Doc/library/asyncio-protocol.rst:272 +#: library/asyncio-protocol.rst:272 msgid "" "Close the transport immediately, without waiting for pending operations to " "complete. Buffered data will be lost. No more data will be received. The " @@ -390,31 +390,31 @@ msgid "" "method will eventually be called with :const:`None` as its argument." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:280 +#: library/asyncio-protocol.rst:280 msgid "" "Return :const:`True` if the transport supports :meth:`~WriteTransport." "write_eof`, :const:`False` if not." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:285 +#: library/asyncio-protocol.rst:285 msgid "Return the current size of the output buffer used by the transport." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:289 +#: library/asyncio-protocol.rst:289 msgid "" "Get the *high* and *low* watermarks for write flow control. Return a tuple " "``(low, high)`` where *low* and *high* are positive number of bytes." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:293 +#: library/asyncio-protocol.rst:293 msgid "Use :meth:`set_write_buffer_limits` to set the limits." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:299 +#: library/asyncio-protocol.rst:299 msgid "Set the *high* and *low* watermarks for write flow control." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:301 +#: library/asyncio-protocol.rst:301 msgid "" "These two values (measured in number of bytes) control when the protocol's :" "meth:`protocol.pause_writing() ` and :meth:" @@ -423,7 +423,7 @@ msgid "" "high watermark. Neither *high* nor *low* can be negative." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:309 +#: library/asyncio-protocol.rst:309 msgid "" ":meth:`~BaseProtocol.pause_writing` is called when the buffer size becomes " "greater than or equal to the *high* value. If writing has been paused, :meth:" @@ -431,7 +431,7 @@ msgid "" "than or equal to the *low* value." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:314 +#: library/asyncio-protocol.rst:314 msgid "" "The defaults are implementation-specific. If only the high watermark is " "given, the low watermark defaults to an implementation-specific value less " @@ -443,52 +443,51 @@ msgid "" "opportunities for doing I/O and computation concurrently." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:325 +#: library/asyncio-protocol.rst:325 msgid "Use :meth:`~WriteTransport.get_write_buffer_limits` to get the limits." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:330 +#: library/asyncio-protocol.rst:330 msgid "Write some *data* bytes to the transport." msgstr "Écrit des octets de *data* sur le transport." -#: ../Doc/library/asyncio-protocol.rst:332 -#: ../Doc/library/asyncio-protocol.rst:361 +#: library/asyncio-protocol.rst:332 library/asyncio-protocol.rst:361 msgid "" "This method does not block; it buffers the data and arranges for it to be " "sent out asynchronously." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:337 +#: library/asyncio-protocol.rst:337 msgid "" "Write a list (or any iterable) of data bytes to the transport. This is " "functionally equivalent to calling :meth:`write` on each element yielded by " "the iterable, but may be implemented more efficiently." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:344 +#: library/asyncio-protocol.rst:344 msgid "" "Close the write end of the transport after flushing all buffered data. Data " "may still be received." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:347 +#: library/asyncio-protocol.rst:347 msgid "" "This method can raise :exc:`NotImplementedError` if the transport (e.g. SSL) " "doesn't support half-closed connections." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:352 +#: library/asyncio-protocol.rst:352 msgid "Datagram Transports" msgstr "Transports de datagrammes" -#: ../Doc/library/asyncio-protocol.rst:356 +#: library/asyncio-protocol.rst:356 msgid "" "Send the *data* bytes to the remote peer given by *addr* (a transport-" "dependent target address). If *addr* is :const:`None`, the data is sent to " "the target address given on transport creation." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:366 +#: library/asyncio-protocol.rst:366 msgid "" "Close the transport immediately, without waiting for pending operations to " "complete. Buffered data will be lost. No more data will be received. The " @@ -496,110 +495,110 @@ msgid "" "method will eventually be called with :const:`None` as its argument." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:376 +#: library/asyncio-protocol.rst:376 msgid "Subprocess Transports" msgstr "Transports vers des sous-processus" -#: ../Doc/library/asyncio-protocol.rst:380 +#: library/asyncio-protocol.rst:380 msgid "Return the subprocess process id as an integer." msgstr "" "Donne l'identifiant du sous processus sous la forme d'un nombre entier." -#: ../Doc/library/asyncio-protocol.rst:384 +#: library/asyncio-protocol.rst:384 msgid "" "Return the transport for the communication pipe corresponding to the integer " "file descriptor *fd*:" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:387 +#: library/asyncio-protocol.rst:387 msgid "" "``0``: readable streaming transport of the standard input (*stdin*), or :" "const:`None` if the subprocess was not created with ``stdin=PIPE``" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:389 +#: library/asyncio-protocol.rst:389 msgid "" "``1``: writable streaming transport of the standard output (*stdout*), or :" "const:`None` if the subprocess was not created with ``stdout=PIPE``" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:391 +#: library/asyncio-protocol.rst:391 msgid "" "``2``: writable streaming transport of the standard error (*stderr*), or :" "const:`None` if the subprocess was not created with ``stderr=PIPE``" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:393 +#: library/asyncio-protocol.rst:393 msgid "other *fd*: :const:`None`" msgstr "autre *fd* : :const:`None`" -#: ../Doc/library/asyncio-protocol.rst:397 +#: library/asyncio-protocol.rst:397 msgid "" "Return the subprocess return code as an integer or :const:`None` if it " "hasn't returned, which is similar to the :attr:`subprocess.Popen.returncode` " "attribute." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:403 +#: library/asyncio-protocol.rst:403 msgid "Kill the subprocess." msgstr "Tue le sous-processus." -#: ../Doc/library/asyncio-protocol.rst:405 +#: library/asyncio-protocol.rst:405 msgid "" "On POSIX systems, the function sends SIGKILL to the subprocess. On Windows, " "this method is an alias for :meth:`terminate`." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:408 +#: library/asyncio-protocol.rst:408 msgid "See also :meth:`subprocess.Popen.kill`." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:412 +#: library/asyncio-protocol.rst:412 msgid "" "Send the *signal* number to the subprocess, as in :meth:`subprocess.Popen." "send_signal`." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:417 +#: library/asyncio-protocol.rst:417 msgid "Stop the subprocess." msgstr "Termine le sous-processus." -#: ../Doc/library/asyncio-protocol.rst:419 +#: library/asyncio-protocol.rst:419 msgid "" "On POSIX systems, this method sends SIGTERM to the subprocess. On Windows, " "the Windows API function TerminateProcess() is called to stop the subprocess." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:423 +#: library/asyncio-protocol.rst:423 msgid "See also :meth:`subprocess.Popen.terminate`." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:427 +#: library/asyncio-protocol.rst:427 msgid "Kill the subprocess by calling the :meth:`kill` method." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:429 +#: library/asyncio-protocol.rst:429 msgid "" "If the subprocess hasn't returned yet, and close transports of *stdin*, " "*stdout*, and *stderr* pipes." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:436 +#: library/asyncio-protocol.rst:436 msgid "Protocols" -msgstr "" +msgstr "Protocoles" -#: ../Doc/library/asyncio-protocol.rst:438 +#: library/asyncio-protocol.rst:438 msgid "**Source code:** :source:`Lib/asyncio/protocols.py`" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:442 +#: library/asyncio-protocol.rst:442 msgid "" "asyncio provides a set of abstract base classes that should be used to " "implement network protocols. Those classes are meant to be used together " "with :ref:`transports `." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:446 +#: library/asyncio-protocol.rst:446 msgid "" "Subclasses of abstract base protocol classes may implement some or all " "methods. All these methods are callbacks: they are called by transports on " @@ -607,117 +606,118 @@ msgid "" "method should be called by the corresponding transport." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:453 +#: library/asyncio-protocol.rst:453 msgid "Base Protocols" msgstr "Protocoles de base" -#: ../Doc/library/asyncio-protocol.rst:457 +#: library/asyncio-protocol.rst:457 msgid "Base protocol with methods that all protocols share." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:461 +#: library/asyncio-protocol.rst:461 msgid "" "The base class for implementing streaming protocols (TCP, Unix sockets, etc)." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:466 +#: library/asyncio-protocol.rst:466 msgid "" "A base class for implementing streaming protocols with manual control of the " "receive buffer." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:471 +#: library/asyncio-protocol.rst:471 msgid "The base class for implementing datagram (UDP) protocols." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:475 +#: library/asyncio-protocol.rst:475 msgid "" "The base class for implementing protocols communicating with child processes " "(unidirectional pipes)." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:480 +#: library/asyncio-protocol.rst:480 +#, fuzzy msgid "Base Protocol" -msgstr "" +msgstr "Protocoles de base" -#: ../Doc/library/asyncio-protocol.rst:482 +#: library/asyncio-protocol.rst:482 msgid "All asyncio protocols can implement Base Protocol callbacks." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:485 +#: library/asyncio-protocol.rst:485 msgid "Connection Callbacks" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:486 +#: library/asyncio-protocol.rst:486 msgid "" "Connection callbacks are called on all protocols, exactly once per a " "successful connection. All other protocol callbacks can only be called " "between those two methods." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:492 +#: library/asyncio-protocol.rst:492 msgid "Called when a connection is made." msgstr "Appelé lorsqu'une connexion est établie." -#: ../Doc/library/asyncio-protocol.rst:494 +#: library/asyncio-protocol.rst:494 msgid "" "The *transport* argument is the transport representing the connection. The " "protocol is responsible for storing the reference to its transport." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:500 +#: library/asyncio-protocol.rst:500 msgid "Called when the connection is lost or closed." msgstr "Appelé lorsqu'une connexion est perdue ou fermée." -#: ../Doc/library/asyncio-protocol.rst:502 +#: library/asyncio-protocol.rst:502 msgid "" "The argument is either an exception object or :const:`None`. The latter " "means a regular EOF is received, or the connection was aborted or closed by " "this side of the connection." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:508 +#: library/asyncio-protocol.rst:508 msgid "Flow Control Callbacks" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:509 +#: library/asyncio-protocol.rst:509 msgid "" "Flow control callbacks can be called by transports to pause or resume " "writing performed by the protocol." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:512 +#: library/asyncio-protocol.rst:512 msgid "" "See the documentation of the :meth:`~WriteTransport.set_write_buffer_limits` " "method for more details." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:517 +#: library/asyncio-protocol.rst:517 msgid "Called when the transport's buffer goes over the high watermark." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:521 +#: library/asyncio-protocol.rst:521 msgid "Called when the transport's buffer drains below the low watermark." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:523 +#: library/asyncio-protocol.rst:523 msgid "" "If the buffer size equals the high watermark, :meth:`~BaseProtocol." "pause_writing` is not called: the buffer size must go strictly over." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:527 +#: library/asyncio-protocol.rst:527 msgid "" "Conversely, :meth:`~BaseProtocol.resume_writing` is called when the buffer " "size is equal or lower than the low watermark. These end conditions are " "important to ensure that things go as expected when either mark is zero." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:534 +#: library/asyncio-protocol.rst:534 msgid "Streaming Protocols" msgstr "Protocoles connectés" -#: ../Doc/library/asyncio-protocol.rst:536 +#: library/asyncio-protocol.rst:536 msgid "" "Event methods, such as :meth:`loop.create_server`, :meth:`loop." "create_unix_server`, :meth:`loop.create_connection`, :meth:`loop." @@ -726,13 +726,13 @@ msgid "" "that return streaming protocols." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:544 +#: library/asyncio-protocol.rst:544 msgid "" "Called when some data is received. *data* is a non-empty bytes object " "containing the incoming data." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:547 +#: library/asyncio-protocol.rst:547 msgid "" "Whether the data is buffered, chunked or reassembled depends on the " "transport. In general, you shouldn't rely on specific semantics and instead " @@ -740,27 +740,27 @@ msgid "" "the correct order." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:552 +#: library/asyncio-protocol.rst:552 msgid "" "The method can be called an arbitrary number of times while a connection is " "open." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:555 +#: library/asyncio-protocol.rst:555 msgid "" "However, :meth:`protocol.eof_received() ` is called " "at most once. Once `eof_received()` is called, ``data_received()`` is not " "called anymore." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:561 +#: library/asyncio-protocol.rst:561 msgid "" "Called when the other end signals it won't send any more data (for example " "by calling :meth:`transport.write_eof() `, if the " "other end also uses asyncio)." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:566 +#: library/asyncio-protocol.rst:566 msgid "" "This method may return a false value (including ``None``), in which case the " "transport will close itself. Conversely, if this method returns a true " @@ -769,36 +769,35 @@ msgid "" "connection." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:572 +#: library/asyncio-protocol.rst:572 msgid "" "Some transports, including SSL, don't support half-closed connections, in " "which case returning true from this method will result in the connection " "being closed." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:577 -#: ../Doc/library/asyncio-protocol.rst:638 +#: library/asyncio-protocol.rst:577 library/asyncio-protocol.rst:638 msgid "State machine:" msgstr "Machine à états :" -#: ../Doc/library/asyncio-protocol.rst:588 +#: library/asyncio-protocol.rst:588 msgid "Buffered Streaming Protocols" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:590 +#: library/asyncio-protocol.rst:590 msgid "" "**Important:** this has been added to asyncio in Python 3.7 *on a " "provisional basis*! This is as an experimental API that might be changed or " "removed completely in Python 3.8." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:595 +#: library/asyncio-protocol.rst:595 msgid "" "Buffered Protocols can be used with any event loop method that supports " "`Streaming Protocols`_." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:598 +#: library/asyncio-protocol.rst:598 msgid "" "``BufferedProtocol`` implementations allow explicit manual allocation and " "control of the receive buffer. Event loops can then use the buffer provided " @@ -808,16 +807,16 @@ msgid "" "number of buffer allocations." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:605 +#: library/asyncio-protocol.rst:605 msgid "" "The following callbacks are called on :class:`BufferedProtocol` instances:" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:610 +#: library/asyncio-protocol.rst:610 msgid "Called to allocate a new receive buffer." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:612 +#: library/asyncio-protocol.rst:612 msgid "" "*sizehint* is the recommended minimum size for the returned buffer. It is " "acceptable to return smaller or larger buffers than what *sizehint* " @@ -825,27 +824,27 @@ msgid "" "to return a buffer with a zero size." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:617 +#: library/asyncio-protocol.rst:617 msgid "" "``get_buffer()`` must return an object implementing the :ref:`buffer " "protocol `." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:622 +#: library/asyncio-protocol.rst:622 msgid "Called when the buffer was updated with the received data." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:624 +#: library/asyncio-protocol.rst:624 msgid "*nbytes* is the total number of bytes that were written to the buffer." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:628 +#: library/asyncio-protocol.rst:628 msgid "" "See the documentation of the :meth:`protocol.eof_received() ` method." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:632 +#: library/asyncio-protocol.rst:632 msgid "" ":meth:`~BufferedProtocol.get_buffer` can be called an arbitrary number of " "times during a connection. However, :meth:`protocol.eof_received() " @@ -854,44 +853,44 @@ msgid "" "won't be called after it." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:651 +#: library/asyncio-protocol.rst:651 msgid "Datagram Protocols" msgstr "Protocoles non-connectés" -#: ../Doc/library/asyncio-protocol.rst:653 +#: library/asyncio-protocol.rst:653 msgid "" "Datagram Protocol instances should be constructed by protocol factories " "passed to the :meth:`loop.create_datagram_endpoint` method." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:658 +#: library/asyncio-protocol.rst:658 msgid "" "Called when a datagram is received. *data* is a bytes object containing the " "incoming data. *addr* is the address of the peer sending the data; the " "exact format depends on the transport." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:664 +#: library/asyncio-protocol.rst:664 msgid "" "Called when a previous send or receive operation raises an :class:" "`OSError`. *exc* is the :class:`OSError` instance." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:667 +#: library/asyncio-protocol.rst:667 msgid "" "This method is called in rare conditions, when the transport (e.g. UDP) " "detects that a datagram could not be delivered to its recipient. In many " "conditions though, undeliverable datagrams will be silently dropped." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:674 +#: library/asyncio-protocol.rst:674 msgid "" "On BSD systems (macOS, FreeBSD, etc.) flow control is not supported for " "datagram protocols, because there is no reliable way to detect send failures " "caused by writing too many packets." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:678 +#: library/asyncio-protocol.rst:678 msgid "" "The socket always appears 'ready' and excess packets are dropped. An :class:" "`OSError` with ``errno`` set to :const:`errno.ENOBUFS` may or may not be " @@ -899,142 +898,142 @@ msgid "" "error_received` but otherwise ignored." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:687 +#: library/asyncio-protocol.rst:687 msgid "Subprocess Protocols" msgstr "Protocoles liés aux sous-processus" -#: ../Doc/library/asyncio-protocol.rst:689 +#: library/asyncio-protocol.rst:689 msgid "" "Datagram Protocol instances should be constructed by protocol factories " "passed to the :meth:`loop.subprocess_exec` and :meth:`loop.subprocess_shell` " "methods." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:695 +#: library/asyncio-protocol.rst:695 msgid "" "Called when the child process writes data into its stdout or stderr pipe." msgstr "" "Appelé lorsqu'un processus enfant écrit sur sa sortie d'erreur ou sa sortie " "standard." -#: ../Doc/library/asyncio-protocol.rst:698 +#: library/asyncio-protocol.rst:698 msgid "*fd* is the integer file descriptor of the pipe." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:700 +#: library/asyncio-protocol.rst:700 msgid "*data* is a non-empty bytes object containing the received data." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:704 +#: library/asyncio-protocol.rst:704 msgid "" "Called when one of the pipes communicating with the child process is closed." msgstr "" "Appelé lorsqu'une des *pipe*\\ s de communication avec un sous-processus est " "fermée." -#: ../Doc/library/asyncio-protocol.rst:707 +#: library/asyncio-protocol.rst:707 msgid "*fd* is the integer file descriptor that was closed." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:711 +#: library/asyncio-protocol.rst:711 msgid "Called when the child process has exited." msgstr "Appelé lorsqu'un processus enfant se termine." -#: ../Doc/library/asyncio-protocol.rst:715 +#: library/asyncio-protocol.rst:715 msgid "Examples" msgstr "Exemples" -#: ../Doc/library/asyncio-protocol.rst:720 +#: library/asyncio-protocol.rst:720 msgid "TCP Echo Server" msgstr "Serveur de *ping* en TCP" -#: ../Doc/library/asyncio-protocol.rst:722 +#: library/asyncio-protocol.rst:722 msgid "" "Create a TCP echo server using the :meth:`loop.create_server` method, send " "back received data, and close the connection::" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:763 +#: library/asyncio-protocol.rst:763 msgid "" "The :ref:`TCP echo server using streams ` " "example uses the high-level :func:`asyncio.start_server` function." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:769 +#: library/asyncio-protocol.rst:769 msgid "TCP Echo Client" msgstr "Client de *ping* en TCP" -#: ../Doc/library/asyncio-protocol.rst:771 +#: library/asyncio-protocol.rst:771 msgid "" "A TCP echo client using the :meth:`loop.create_connection` method, sends " "data, and waits until the connection is closed::" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:819 +#: library/asyncio-protocol.rst:819 msgid "" "The :ref:`TCP echo client using streams ` " "example uses the high-level :func:`asyncio.open_connection` function." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:826 +#: library/asyncio-protocol.rst:826 msgid "UDP Echo Server" msgstr "Serveur de *ping* en UDP" -#: ../Doc/library/asyncio-protocol.rst:828 +#: library/asyncio-protocol.rst:828 msgid "" "A UDP echo server, using the :meth:`loop.create_datagram_endpoint` method, " "sends back received data::" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:870 +#: library/asyncio-protocol.rst:870 msgid "UDP Echo Client" msgstr "Client de *ping* en UDP" -#: ../Doc/library/asyncio-protocol.rst:872 +#: library/asyncio-protocol.rst:872 msgid "" "A UDP echo client, using the :meth:`loop.create_datagram_endpoint` method, " "sends data and closes the transport when it receives the answer::" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:927 +#: library/asyncio-protocol.rst:927 msgid "Connecting Existing Sockets" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:929 +#: library/asyncio-protocol.rst:929 msgid "" "Wait until a socket receives data using the :meth:`loop.create_connection` " "method with a protocol::" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:983 +#: library/asyncio-protocol.rst:983 msgid "" "The :ref:`watch a file descriptor for read events " "` example uses the low-level :meth:`loop." "add_reader` method to register an FD." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:987 +#: library/asyncio-protocol.rst:987 msgid "" "The :ref:`register an open socket to wait for data using streams " "` example uses high-level streams " "created by the :func:`open_connection` function in a coroutine." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:994 +#: library/asyncio-protocol.rst:994 msgid "loop.subprocess_exec() and SubprocessProtocol" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:996 +#: library/asyncio-protocol.rst:996 msgid "" "An example of a subprocess protocol used to get the output of a subprocess " "and to wait for the subprocess exit." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:999 -msgid "The subprocess is created by th :meth:`loop.subprocess_exec` method::" +#: library/asyncio-protocol.rst:999 +msgid "The subprocess is created by the :meth:`loop.subprocess_exec` method::" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:1045 +#: library/asyncio-protocol.rst:1045 msgid "" "See also the :ref:`same example ` " "written using high-level APIs." diff --git a/library/asyncio-queue.po b/library/asyncio-queue.po index e52f35a85c..f1976440e6 100644 --- a/library/asyncio-queue.po +++ b/library/asyncio-queue.po @@ -19,8 +19,9 @@ msgid "Queues" msgstr "" #: ../Doc/library/asyncio-queue.rst:9 +#, fuzzy msgid "**Source code:** :source:`Lib/asyncio/queues.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/asyncore.py`" #: ../Doc/library/asyncio-queue.rst:13 msgid "" @@ -62,11 +63,13 @@ msgstr "" #: ../Doc/library/asyncio-queue.rst:42 msgid "The *loop* parameter." -msgstr "" +msgstr "Le paramètre *loop*." #: ../Doc/library/asyncio-queue.rst:43 msgid "This class is :ref:`not thread safe `." msgstr "" +"Cette classe n'est :ref:`pas conçue pour un contexte multi-fils `." #: ../Doc/library/asyncio-queue.rst:47 msgid "Number of items allowed in the queue." @@ -98,10 +101,14 @@ msgid "" msgstr "" #: ../Doc/library/asyncio-queue.rst:72 +#, fuzzy msgid "Block until all items in the queue have been received and processed." msgstr "" +"Bloque jusqu'à ce que tous les éléments de la queue aient été récupérés et " +"traités." #: ../Doc/library/asyncio-queue.rst:74 +#, fuzzy msgid "" "The count of unfinished tasks goes up whenever an item is added to the " "queue. The count goes down whenever a consumer coroutine calls :meth:" @@ -109,6 +116,11 @@ msgid "" "complete. When the count of unfinished tasks drops to zero, :meth:`join` " "unblocks." msgstr "" +"Le nombre de tâches inachevées augmente chaque fois qu'un élément est ajouté " +"à la file. Ce nombre diminue chaque fois qu'un fil d'exécution consommateur " +"appelle :meth:`task_done` pour indiquer que l'élément a été extrait et que " +"tout le travail à effectuer dessus est terminé. Lorsque le nombre de tâches " +"non terminées devient nul, :meth:`join` débloque." #: ../Doc/library/asyncio-queue.rst:82 msgid "" @@ -140,17 +152,24 @@ msgid "" msgstr "" #: ../Doc/library/asyncio-queue.rst:103 +#, fuzzy msgid "" "If a :meth:`join` is currently blocking, it will resume when all items have " "been processed (meaning that a :meth:`task_done` call was received for every " "item that had been :meth:`~Queue.put` into the queue)." msgstr "" +"Si un :meth:`join` est actuellement bloquant, on reprendra lorsque tous les " +"éléments auront été traités (ce qui signifie qu'un appel à :meth:`task_done` " +"a été effectué pour chaque élément qui a été :meth:`put` dans la file)." #: ../Doc/library/asyncio-queue.rst:108 +#, fuzzy msgid "" "Raises :exc:`ValueError` if called more times than there were items placed " "in the queue." msgstr "" +"Lève une exception :exc:`ValueError` si appelée plus de fois qu'il y avait " +"d'éléments dans la file." #: ../Doc/library/asyncio-queue.rst:113 msgid "Priority Queue" diff --git a/library/asyncio-stream.po b/library/asyncio-stream.po index 4fb03bbfa0..c461cb4adc 100644 --- a/library/asyncio-stream.po +++ b/library/asyncio-stream.po @@ -19,8 +19,9 @@ msgid "Streams" msgstr "Streams" #: ../Doc/library/asyncio-stream.rst:9 +#, fuzzy msgid "**Source code:** :source:`Lib/asyncio/streams.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/asyncore.py`" #: ../Doc/library/asyncio-stream.rst:13 msgid "" diff --git a/library/asyncio-subprocess.po b/library/asyncio-subprocess.po index 9233c96bb6..07932af7f9 100644 --- a/library/asyncio-subprocess.po +++ b/library/asyncio-subprocess.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-15 18:54+0100\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2018-10-15 00:37+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -14,33 +14,38 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/library/asyncio-subprocess.rst:7 +#: library/asyncio-subprocess.rst:7 msgid "Subprocesses" msgstr "Sous-processus" -#: ../Doc/library/asyncio-subprocess.rst:9 +#: library/asyncio-subprocess.rst:9 msgid "" "**Source code:** :source:`Lib/asyncio/subprocess.py`, :source:`Lib/asyncio/" "base_subprocess.py`" msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:14 +#: library/asyncio-subprocess.rst:14 msgid "" "This section describes high-level async/await asyncio APIs to create and " "manage subprocesses." msgstr "" +"Cette section décrit des API de haut niveau de *asyncio* pour créer et gérer " +"des sous-processus via ``async``/``await``." -#: ../Doc/library/asyncio-subprocess.rst:19 +#: library/asyncio-subprocess.rst:19 msgid "" "Here's an example of how asyncio can run a shell command and obtain its " "result::" msgstr "" +"Voici un exemple de comment *asyncio* peut lancer une commande shell et " +"obtenir son résultat ::" -#: ../Doc/library/asyncio-subprocess.rst:40 +#: library/asyncio-subprocess.rst:40 +#, fuzzy msgid "will print::" -msgstr "" +msgstr "affiche ::" -#: ../Doc/library/asyncio-subprocess.rst:46 +#: library/asyncio-subprocess.rst:46 msgid "" "Because all asyncio subprocess functions are asynchronous and asyncio " "provides many tools to work with such functions, it is easy to execute and " @@ -48,52 +53,57 @@ msgid "" "the above example to run several commands simultaneously::" msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:58 +#: library/asyncio-subprocess.rst:58 msgid "See also the `Examples`_ subsection." -msgstr "" +msgstr "Voir également la section `Exemples`_." -#: ../Doc/library/asyncio-subprocess.rst:62 +#: library/asyncio-subprocess.rst:62 msgid "Creating Subprocesses" -msgstr "" +msgstr "Créer des sous-processus" -#: ../Doc/library/asyncio-subprocess.rst:68 +#: library/asyncio-subprocess.rst:68 msgid "Create a subprocess." -msgstr "" +msgstr "Crée un sous-processus." -#: ../Doc/library/asyncio-subprocess.rst:70 -#: ../Doc/library/asyncio-subprocess.rst:89 +#: library/asyncio-subprocess.rst:70 library/asyncio-subprocess.rst:89 msgid "" "The *limit* argument sets the buffer limit for :class:`StreamReader` " "wrappers for :attr:`Process.stdout` and :attr:`Process.stderr` (if :attr:" "`subprocess.PIPE` is passed to *stdout* and *stderr* arguments)." msgstr "" +"Le paramètre *limit* définit la taille maximale du tampon pour les instances " +"de :class:`StreamReader` encapsulant :attr:`Process.stdout` et :attr:" +"`Process.stderr` (Si :attr:`subprocess.PIPE` est passé aux paramètres " +"*stdout* et *stderr*)." -#: ../Doc/library/asyncio-subprocess.rst:74 -#: ../Doc/library/asyncio-subprocess.rst:93 +#: library/asyncio-subprocess.rst:74 library/asyncio-subprocess.rst:93 msgid "Return a :class:`~asyncio.subprocess.Process` instance." -msgstr "" +msgstr "Renvoie une instance de :class:`~asyncio.subprocess.Process`." -#: ../Doc/library/asyncio-subprocess.rst:76 +#: library/asyncio-subprocess.rst:76 msgid "" "See the documentation of :meth:`loop.subprocess_exec` for other parameters." msgstr "" +"Voir la documentation de :meth:`loop.subprocess_exec` pour d'autres " +"paramètres." -#: ../Doc/library/asyncio-subprocess.rst:81 -#: ../Doc/library/asyncio-subprocess.rst:109 +#: library/asyncio-subprocess.rst:81 library/asyncio-subprocess.rst:109 #, fuzzy msgid "The *loop* parameter." msgstr "Autres paramètres :" -#: ../Doc/library/asyncio-subprocess.rst:87 +#: library/asyncio-subprocess.rst:87 msgid "Run the *cmd* shell command." msgstr "Exécute la commande *cmd* dans un *shell*." -#: ../Doc/library/asyncio-subprocess.rst:95 +#: library/asyncio-subprocess.rst:95 msgid "" "See the documentation of :meth:`loop.subprocess_shell` for other parameters." msgstr "" +"Voir la documentation de :meth:`loop.subprocess_shell` pour d'autres " +"paramètres." -#: ../Doc/library/asyncio-subprocess.rst:100 +#: library/asyncio-subprocess.rst:100 msgid "" "It is the application's responsibility to ensure that all whitespace and " "special characters are quoted appropriately to avoid `shell injection " @@ -102,16 +112,25 @@ msgid "" "escape whitespace and special shell characters in strings that are going to " "be used to construct shell commands." msgstr "" +"Il est de la responsabilité de l'application de s'assurer que tous les " +"espaces et les caractères spéciaux sont correctement mis entre guillemets " +"pour éviter les vulnérabilités de type `injection de code `_. La fonction :func:" +"`shlex.quote` peut être utilisée pour l’échappement des espaces et " +"caractères spéciaux dans les chaînes utilisées pour construire des commandes " +"shell." -#: ../Doc/library/asyncio-subprocess.rst:113 +#: library/asyncio-subprocess.rst:113 msgid "" -"The default asyncio event loop implementation on **Windows** does not " -"support subprocesses. Subprocesses are available for Windows if a :class:" -"`ProactorEventLoop` is used. See :ref:`Subprocess Support on Windows " -"` for details." +"Subprocesses are available for Windows if a :class:`ProactorEventLoop` is " +"used. See :ref:`Subprocess Support on Windows ` " +"for details." msgstr "" +"Les sous-processus sont disponibles pour Windows si un :class:" +"`ProactorEventLoop` est utilisé. Voir :ref:`Support des sous-processus sous " +"Windows ` pour plus de précisions." -#: ../Doc/library/asyncio-subprocess.rst:121 +#: library/asyncio-subprocess.rst:119 msgid "" "asyncio also has the following *low-level* APIs to work with subprocesses: :" "meth:`loop.subprocess_exec`, :meth:`loop.subprocess_shell`, :meth:`loop." @@ -120,47 +139,59 @@ msgid "" "Protocols `." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:129 +#: library/asyncio-subprocess.rst:127 msgid "Constants" msgstr "Constantes" -#: ../Doc/library/asyncio-subprocess.rst:133 +#: library/asyncio-subprocess.rst:131 msgid "Can be passed to the *stdin*, *stdout* or *stderr* parameters." -msgstr "" +msgstr "Peut être passé aux paramètres *stdin*, *stdout* ou *stderr*." -#: ../Doc/library/asyncio-subprocess.rst:135 +#: library/asyncio-subprocess.rst:133 msgid "" "If *PIPE* is passed to *stdin* argument, the :attr:`Process.stdin ` attribute will point to a :class:`StreamWriter` " "instance." msgstr "" +"Si *PIPE* est passé au paramètre *stdin*, l'attribut :attr:`Process.stdin " +"` ne pointera pas vers une instance de :" +"class:`StreamWriter`." -#: ../Doc/library/asyncio-subprocess.rst:139 +#: library/asyncio-subprocess.rst:137 msgid "" "If *PIPE* is passed to *stdout* or *stderr* arguments, the :attr:`Process." "stdout ` and :attr:`Process.stderr " "` attributes will point to :class:" "`StreamReader` instances." msgstr "" +"Si *PIPE* est passé au paramètre *stdout* ou *stderr* , l'attribut :attr:" +"`Process.stdout ` et :attr:`Process." +"stderr ` pointeront vers des instances " +"de :class:`StreamReader`." -#: ../Doc/library/asyncio-subprocess.rst:146 +#: library/asyncio-subprocess.rst:144 msgid "" "Special value that can be used as the *stderr* argument and indicates that " "standard error should be redirected into standard output." msgstr "" +"Une valeur spéciale qui peut être passée au paramètre *stderr* et qui " +"indique que la sortie d'erreur doit être redirigée vers la sortie standard." -#: ../Doc/library/asyncio-subprocess.rst:151 +#: library/asyncio-subprocess.rst:149 msgid "" "Special value that can be used as the *stdin*, *stdout* or *stderr* argument " "to process creation functions. It indicates that the special file :data:`os." "devnull` will be used for the corresponding subprocess stream." msgstr "" +"Une valeur spéciale qui peut être passée à l'argument *stdin*, *stdout* ou " +"*stderr* des fonctions créant des processus. Elle implique l'utilisation du " +"fichier :data:`os.devnull` pour le flux correspondant du processus." -#: ../Doc/library/asyncio-subprocess.rst:157 +#: library/asyncio-subprocess.rst:155 msgid "Interacting with Subprocesses" -msgstr "" +msgstr "Interagir avec les sous-processus" -#: ../Doc/library/asyncio-subprocess.rst:159 +#: library/asyncio-subprocess.rst:157 msgid "" "Both :func:`create_subprocess_exec` and :func:`create_subprocess_shell` " "functions return instances of the *Process* class. *Process* is a high-" @@ -168,47 +199,49 @@ msgid "" "their completion." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:166 +#: library/asyncio-subprocess.rst:164 msgid "" "An object that wraps OS processes created by the :func:" "`create_subprocess_exec` and :func:`create_subprocess_shell` functions." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:170 +#: library/asyncio-subprocess.rst:168 msgid "" "This class is designed to have a similar API to the :class:`subprocess." "Popen` class, but there are some notable differences:" msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:174 +#: library/asyncio-subprocess.rst:172 msgid "" "unlike Popen, Process instances do not have an equivalent to the :meth:" "`~subprocess.Popen.poll` method;" msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:177 +#: library/asyncio-subprocess.rst:175 msgid "" "the :meth:`~asyncio.subprocess.Process.communicate` and :meth:`~asyncio." "subprocess.Process.wait` methods don't have a *timeout* parameter: use the :" "func:`wait_for` function;" msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:181 +#: library/asyncio-subprocess.rst:179 msgid "" "the :meth:`Process.wait() ` method is " "asynchronous, whereas :meth:`subprocess.Popen.wait` method is implemented as " "a blocking busy loop;" msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:185 +#: library/asyncio-subprocess.rst:183 msgid "the *universal_newlines* parameter is not supported." -msgstr "" +msgstr "le paramètre *universal_newlines* n'est pas pris en charge." -#: ../Doc/library/asyncio-subprocess.rst:187 +#: library/asyncio-subprocess.rst:185 msgid "This class is :ref:`not thread safe `." msgstr "" +"Cette classe n'est :ref:`pas conçue pour un contexte multi-fils `." -#: ../Doc/library/asyncio-subprocess.rst:189 +#: library/asyncio-subprocess.rst:187 msgid "" "See also the :ref:`Subprocess and Threads ` " "section." @@ -216,49 +249,58 @@ msgstr "" "Voir aussi la section :ref:`sous-processus et fils d'exécution `." -#: ../Doc/library/asyncio-subprocess.rst:194 +#: library/asyncio-subprocess.rst:192 msgid "Wait for the child process to terminate." -msgstr "" +msgstr "Attend que le sous processus s'arrête." -#: ../Doc/library/asyncio-subprocess.rst:196 +#: library/asyncio-subprocess.rst:194 msgid "Set and return the :attr:`returncode` attribute." -msgstr "" +msgstr "Définit et renvoie l'attribut :attr:`returncode`." -#: ../Doc/library/asyncio-subprocess.rst:200 +#: library/asyncio-subprocess.rst:198 msgid "" "This method can deadlock when using ``stdout=PIPE`` or ``stderr=PIPE`` and " "the child process generates so much output that it blocks waiting for the OS " "pipe buffer to accept more data. Use the :meth:`communicate` method when " "using pipes to avoid this condition." msgstr "" +"Cette méthode peut générer un interblocage quand ``stdout=PIPE`` ou " +"``stderr=PIPE`` est utilisé et que le sous-processus génère tellement de " +"sorties qu'il se bloque, dans l'attente que le tampon du tube côté OS " +"accepte des données supplémentaires. Pour éviter cette situation, choisissez " +"la méthode :meth:`communicate` quand vous utilisez des tubes." -#: ../Doc/library/asyncio-subprocess.rst:208 +#: library/asyncio-subprocess.rst:206 msgid "Interact with process:" -msgstr "" +msgstr "Interagit avec le processus :" -#: ../Doc/library/asyncio-subprocess.rst:210 +#: library/asyncio-subprocess.rst:208 msgid "send data to *stdin* (if *input* is not ``None``);" -msgstr "" +msgstr "envoie des données sur le *stdin* (si *input* n'est pas ``None``);" -#: ../Doc/library/asyncio-subprocess.rst:211 +#: library/asyncio-subprocess.rst:209 msgid "read data from *stdout* and *stderr*, until EOF is reached;" msgstr "" +"lit les données sur *stdout* et *stderr*, jusqu'à ce que le EOF soit " +"atteint ;" -#: ../Doc/library/asyncio-subprocess.rst:212 +#: library/asyncio-subprocess.rst:210 msgid "wait for process to terminate." -msgstr "" +msgstr "attend que le processus s'arrête." -#: ../Doc/library/asyncio-subprocess.rst:214 +#: library/asyncio-subprocess.rst:212 msgid "" "The optional *input* argument is the data (:class:`bytes` object) that will " "be sent to the child process." msgstr "" +"Le paramètre optionnel *input* (objet de type :class:`bytes`) représente les " +"données transmises au sous-processus." -#: ../Doc/library/asyncio-subprocess.rst:217 +#: library/asyncio-subprocess.rst:215 msgid "Return a tuple ``(stdout_data, stderr_data)``." -msgstr "" +msgstr "Renvoie un tuple ``(stdout_data, stderr_data)``." -#: ../Doc/library/asyncio-subprocess.rst:219 +#: library/asyncio-subprocess.rst:217 msgid "" "If either :exc:`BrokenPipeError` or :exc:`ConnectionResetError` exception is " "raised when writing *input* into *stdin*, the exception is ignored. This " @@ -266,7 +308,7 @@ msgid "" "*stdin*." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:224 +#: library/asyncio-subprocess.rst:222 msgid "" "If it is desired to send data to the process' *stdin*, the process needs to " "be created with ``stdin=PIPE``. Similarly, to get anything other than " @@ -274,7 +316,7 @@ msgid "" "``stdout=PIPE`` and/or ``stderr=PIPE`` arguments." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:230 +#: library/asyncio-subprocess.rst:228 msgid "" "Note, that the data read is buffered in memory, so do not use this method if " "the data size is large or unlimited." @@ -282,22 +324,26 @@ msgstr "" "Notez que les données lues sont mises en cache en mémoire, donc n'utilisez " "pas cette méthode si la taille des données est importante voire illimitée." -#: ../Doc/library/asyncio-subprocess.rst:235 +#: library/asyncio-subprocess.rst:233 msgid "Sends the signal *signal* to the child process." msgstr "Envoie le signal *signal* au sous-processus." -#: ../Doc/library/asyncio-subprocess.rst:239 +#: library/asyncio-subprocess.rst:237 msgid "" "On Windows, :py:data:`SIGTERM` is an alias for :meth:`terminate`. " "``CTRL_C_EVENT`` and ``CTRL_BREAK_EVENT`` can be sent to processes started " "with a *creationflags* parameter which includes ``CREATE_NEW_PROCESS_GROUP``." msgstr "" +"Sous Windows, :py:data:`SIGTERM` est un alias pour :meth:`terminate`. " +"*CTRL_C_EVENT* et *CTRL_BREAK_EVENT* peuvent être envoyés aux processus " +"démarrés avec un paramètre *creationflags* incluant " +"``CREATE_NEW_PROCESS_GROUP``." -#: ../Doc/library/asyncio-subprocess.rst:246 +#: library/asyncio-subprocess.rst:244 msgid "Stop the child process." msgstr "Arrête le sous-processus." -#: ../Doc/library/asyncio-subprocess.rst:248 +#: library/asyncio-subprocess.rst:246 msgid "" "On POSIX systems this method sends :py:data:`signal.SIGTERM` to the child " "process." @@ -305,44 +351,47 @@ msgstr "" "Sur les systèmes POSIX, cette méthode envoie un :py:data:`signal.SIGTERM` au " "sous-processus." -#: ../Doc/library/asyncio-subprocess.rst:251 +#: library/asyncio-subprocess.rst:249 msgid "" "On Windows the Win32 API function :c:func:`TerminateProcess` is called to " "stop the child process." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:256 -msgid "Kill the child." -msgstr "" +#: library/asyncio-subprocess.rst:254 +#, fuzzy +msgid "Kill the child process." +msgstr "Arrête le sous-processus." -#: ../Doc/library/asyncio-subprocess.rst:258 +#: library/asyncio-subprocess.rst:256 msgid "" "On POSIX systems this method sends :py:data:`SIGKILL` to the child process." msgstr "" +"Sur les systèmes POSIX, cette méthode envoie :py:data:`signal.SIGTERM` au " +"sous-processus." -#: ../Doc/library/asyncio-subprocess.rst:261 +#: library/asyncio-subprocess.rst:259 msgid "On Windows this method is an alias for :meth:`terminate`." -msgstr "" +msgstr "Sous Windows, cette méthode est un alias pour :meth:`terminate`." -#: ../Doc/library/asyncio-subprocess.rst:265 +#: library/asyncio-subprocess.rst:263 msgid "" "Standard input stream (:class:`StreamWriter`) or ``None`` if the process was " "created with ``stdin=None``." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:270 +#: library/asyncio-subprocess.rst:268 msgid "" "Standard output stream (:class:`StreamReader`) or ``None`` if the process " "was created with ``stdout=None``." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:275 +#: library/asyncio-subprocess.rst:273 msgid "" "Standard error stream (:class:`StreamReader`) or ``None`` if the process was " "created with ``stderr=None``." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:280 +#: library/asyncio-subprocess.rst:278 msgid "" "Use the :meth:`communicate` method rather than :attr:`process.stdin.write() " "`, :attr:`await process.stdout.read() ` or :attr:`await " @@ -350,25 +399,27 @@ msgid "" "reading or writing and blocking the child process." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:289 +#: library/asyncio-subprocess.rst:287 msgid "Process identification number (PID)." msgstr "" +"Numéro d'identification du processus (PID, pour *Process Identification " +"Number* en anglais)." -#: ../Doc/library/asyncio-subprocess.rst:291 +#: library/asyncio-subprocess.rst:289 msgid "" "Note that for processes created by the :func:`create_subprocess_shell` " "function, this attribute is the PID of the spawned shell." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:296 +#: library/asyncio-subprocess.rst:294 msgid "Return code of the process when it exits." -msgstr "" +msgstr "Code de retour du processus quand il se termine." -#: ../Doc/library/asyncio-subprocess.rst:298 +#: library/asyncio-subprocess.rst:296 msgid "A ``None`` value indicates that the process has not terminated yet." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:300 +#: library/asyncio-subprocess.rst:298 msgid "" "A negative value ``-N`` indicates that the child was terminated by signal " "``N`` (POSIX only)." @@ -376,73 +427,86 @@ msgstr "" "Une valeur négative ``-N`` indique que le sous-processus a été terminé par " "un signal ``N`` (seulement sur les systèmes *POSIX*)." -#: ../Doc/library/asyncio-subprocess.rst:307 +#: library/asyncio-subprocess.rst:305 msgid "Subprocess and Threads" msgstr "Sous-processus et fils d'exécution" -#: ../Doc/library/asyncio-subprocess.rst:309 +#: library/asyncio-subprocess.rst:307 msgid "" "Standard asyncio event loop supports running subprocesses from different " "threads by default." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:312 +#: library/asyncio-subprocess.rst:310 msgid "" "On Windows subprocesses are provided by :class:`ProactorEventLoop` only " "(default), :class:`SelectorEventLoop` has no subprocess support." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:315 +#: library/asyncio-subprocess.rst:313 msgid "" "On UNIX *child watchers* are used for subprocess finish waiting, see :ref:" "`asyncio-watchers` for more info." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:321 +#: library/asyncio-subprocess.rst:319 msgid "" "UNIX switched to use :class:`ThreadedChildWatcher` for spawning subprocesses " "from different threads without any limitation." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:324 +#: library/asyncio-subprocess.rst:322 msgid "" "Spawning a subprocess with *inactive* current child watcher raises :exc:" "`RuntimeError`." msgstr "" +"Instancier un sous-processus avec un observateur enfant actuel *inactif* " +"lève l'exception :exc:`RuntimeError`." -#: ../Doc/library/asyncio-subprocess.rst:327 +#: library/asyncio-subprocess.rst:325 msgid "" "Note that alternative event loop implementations might have own limitations; " "please refer to their documentation." msgstr "" +"Notez que ces implémentations alternatives de la boucle d'événements peuvent " +"comporter leurs propres limitations. Veuillez vous référer à leur " +"documentation." -#: ../Doc/library/asyncio-subprocess.rst:332 +#: library/asyncio-subprocess.rst:330 msgid "" "The :ref:`Concurrency and multithreading in asyncio ` section." msgstr "" +"La section :ref:`Exécution concurrente et multi-fils d'exécution `." -#: ../Doc/library/asyncio-subprocess.rst:337 +#: library/asyncio-subprocess.rst:335 msgid "Examples" msgstr "Exemples" -#: ../Doc/library/asyncio-subprocess.rst:339 +#: library/asyncio-subprocess.rst:337 msgid "" "An example using the :class:`~asyncio.subprocess.Process` class to control a " "subprocess and the :class:`StreamReader` class to read from its standard " "output." msgstr "" +"Un exemple utilisant la classe :class:`~asyncio.subprocess.Process` pour " +"contrôler un sous-processus et la classe :class:`StreamReader` pour lire sa " +"sortie standard." -#: ../Doc/library/asyncio-subprocess.rst:345 +#: library/asyncio-subprocess.rst:343 msgid "" "The subprocess is created by the :func:`create_subprocess_exec` function::" msgstr "" +"Le sous-processus est créé par la fonction :func:`create_subprocess_exec` ::" -#: ../Doc/library/asyncio-subprocess.rst:372 +#: library/asyncio-subprocess.rst:370 msgid "" "See also the :ref:`same example ` written " "using low-level APIs." msgstr "" +"Voir également :ref:`le même exemple `, " +"écrit en utilisant des API de bas niveau." #~ msgid "An event loop must run in the main thread." #~ msgstr "" diff --git a/library/asyncio-sync.po b/library/asyncio-sync.po index a7a2256ae7..d6b954a9b5 100644 --- a/library/asyncio-sync.po +++ b/library/asyncio-sync.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-15 18:54+0100\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2018-10-15 00:46+0200\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,197 +14,196 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/library/asyncio-sync.rst:7 +#: library/asyncio-sync.rst:7 +#, fuzzy msgid "Synchronization Primitives" -msgstr "" +msgstr "Primitives de synchronisation" -#: ../Doc/library/asyncio-sync.rst:9 +#: library/asyncio-sync.rst:9 msgid "**Source code:** :source:`Lib/asyncio/locks.py`" msgstr "" -#: ../Doc/library/asyncio-sync.rst:13 +#: library/asyncio-sync.rst:13 msgid "" "asyncio synchronization primitives are designed to be similar to those of " "the :mod:`threading` module with two important caveats:" msgstr "" -#: ../Doc/library/asyncio-sync.rst:16 +#: library/asyncio-sync.rst:16 msgid "" "asyncio primitives are not thread-safe, therefore they should not be used " "for OS thread synchronization (use :mod:`threading` for that);" msgstr "" -#: ../Doc/library/asyncio-sync.rst:20 +#: library/asyncio-sync.rst:20 msgid "" "methods of these synchronization primitives do not accept the *timeout* " "argument; use the :func:`asyncio.wait_for` function to perform operations " "with timeouts." msgstr "" -#: ../Doc/library/asyncio-sync.rst:24 +#: library/asyncio-sync.rst:24 msgid "asyncio has the following basic synchronization primitives:" msgstr "" -#: ../Doc/library/asyncio-sync.rst:26 +#: library/asyncio-sync.rst:26 msgid ":class:`Lock`" msgstr ":class:`Lock`" -#: ../Doc/library/asyncio-sync.rst:27 +#: library/asyncio-sync.rst:27 msgid ":class:`Event`" msgstr ":class:`Event`" -#: ../Doc/library/asyncio-sync.rst:28 +#: library/asyncio-sync.rst:28 msgid ":class:`Condition`" msgstr ":class:`Condition`" -#: ../Doc/library/asyncio-sync.rst:29 +#: library/asyncio-sync.rst:29 msgid ":class:`Semaphore`" msgstr ":class:`Semaphore`" -#: ../Doc/library/asyncio-sync.rst:30 +#: library/asyncio-sync.rst:30 msgid ":class:`BoundedSemaphore`" msgstr ":class:`BoundedSemaphore`" -#: ../Doc/library/asyncio-sync.rst:37 +#: library/asyncio-sync.rst:37 msgid "Lock" msgstr "" -#: ../Doc/library/asyncio-sync.rst:41 +#: library/asyncio-sync.rst:41 msgid "Implements a mutex lock for asyncio tasks. Not thread-safe." msgstr "" -#: ../Doc/library/asyncio-sync.rst:43 +#: library/asyncio-sync.rst:43 msgid "" "An asyncio lock can be used to guarantee exclusive access to a shared " "resource." msgstr "" -#: ../Doc/library/asyncio-sync.rst:46 +#: library/asyncio-sync.rst:46 msgid "The preferred way to use a Lock is an :keyword:`async with` statement::" msgstr "" -#: ../Doc/library/asyncio-sync.rst:55 ../Doc/library/asyncio-sync.rst:200 -#: ../Doc/library/asyncio-sync.rst:300 +#: library/asyncio-sync.rst:200 library/asyncio-sync.rst:300 msgid "which is equivalent to::" msgstr "" -#: ../Doc/library/asyncio-sync.rst:68 ../Doc/library/asyncio-sync.rst:114 -#: ../Doc/library/asyncio-sync.rst:190 ../Doc/library/asyncio-sync.rst:290 -#: ../Doc/library/asyncio-sync.rst:345 +#: library/asyncio-sync.rst:114 library/asyncio-sync.rst:290 +#: library/asyncio-sync.rst:345 msgid "The *loop* parameter." -msgstr "" +msgstr "Le paramètre *loop*." -#: ../Doc/library/asyncio-sync.rst:71 +#: library/asyncio-sync.rst:71 msgid "Acquire the lock." msgstr "" -#: ../Doc/library/asyncio-sync.rst:73 +#: library/asyncio-sync.rst:73 msgid "" "This method waits until the lock is *unlocked*, sets it to *locked* and " "returns ``True``." msgstr "" -#: ../Doc/library/asyncio-sync.rst:76 +#: library/asyncio-sync.rst:76 msgid "" "When more than one coroutine is blocked in :meth:`acquire` waiting for the " "lock to be unlocked, only one coroutine eventually proceeds." msgstr "" -#: ../Doc/library/asyncio-sync.rst:80 +#: library/asyncio-sync.rst:80 msgid "" "Acquiring a lock is *fair*: the coroutine that proceeds will be the first " "coroutine that started waiting on the lock." msgstr "" -#: ../Doc/library/asyncio-sync.rst:85 +#: library/asyncio-sync.rst:85 msgid "Release the lock." msgstr "Libère un verrou." -#: ../Doc/library/asyncio-sync.rst:87 +#: library/asyncio-sync.rst:87 msgid "When the lock is *locked*, reset it to *unlocked* and return." msgstr "" -#: ../Doc/library/asyncio-sync.rst:89 +#: library/asyncio-sync.rst:89 msgid "If the lock is *unlocked*, a :exc:`RuntimeError` is raised." msgstr "" -#: ../Doc/library/asyncio-sync.rst:93 +#: library/asyncio-sync.rst:93 msgid "Return ``True`` if the lock is *locked*." msgstr "Donne ``True`` si le verrou est verrouillé." -#: ../Doc/library/asyncio-sync.rst:97 +#: library/asyncio-sync.rst:97 msgid "Event" msgstr "" -#: ../Doc/library/asyncio-sync.rst:101 +#: library/asyncio-sync.rst:101 msgid "An event object. Not thread-safe." msgstr "" -#: ../Doc/library/asyncio-sync.rst:103 +#: library/asyncio-sync.rst:103 msgid "" "An asyncio event can be used to notify multiple asyncio tasks that some " "event has happened." msgstr "" -#: ../Doc/library/asyncio-sync.rst:106 +#: library/asyncio-sync.rst:106 msgid "" "An Event object manages an internal flag that can be set to *true* with the :" -"meth:`set` method and reset to *false* with the :meth:`clear` method. The :" -"meth:`wait` method blocks until the flag is set to *true*. The flag is set " -"to *false* initially." +"meth:`~Event.set` method and reset to *false* with the :meth:`clear` " +"method. The :meth:`~Event.wait` method blocks until the flag is set to " +"*true*. The flag is set to *false* initially." msgstr "" -#: ../Doc/library/asyncio-sync.rst:117 +#: library/asyncio-sync.rst:117 msgid "Example::" msgstr "Exemple ::" -#: ../Doc/library/asyncio-sync.rst:142 +#: library/asyncio-sync.rst:142 msgid "Wait until the event is set." msgstr "Attend que l'évènement ait une valeur." -#: ../Doc/library/asyncio-sync.rst:144 +#: library/asyncio-sync.rst:144 msgid "" "If the event is set, return ``True`` immediately. Otherwise block until " -"another task calls :meth:`set`." +"another task calls :meth:`~Event.set`." msgstr "" -#: ../Doc/library/asyncio-sync.rst:149 +#: library/asyncio-sync.rst:149 msgid "Set the event." msgstr "" -#: ../Doc/library/asyncio-sync.rst:151 +#: library/asyncio-sync.rst:151 msgid "All tasks waiting for event to be set will be immediately awakened." msgstr "" -#: ../Doc/library/asyncio-sync.rst:156 +#: library/asyncio-sync.rst:156 msgid "Clear (unset) the event." msgstr "" -#: ../Doc/library/asyncio-sync.rst:158 +#: library/asyncio-sync.rst:158 msgid "" -"Tasks awaiting on :meth:`wait` will now block until the :meth:`set` method " -"is called again." +"Tasks awaiting on :meth:`~Event.wait` will now block until the :meth:`~Event." +"set` method is called again." msgstr "" -#: ../Doc/library/asyncio-sync.rst:163 +#: library/asyncio-sync.rst:163 msgid "Return ``True`` if the event is set." msgstr "Renvoie ``True`` si l'évènement a une valeur." -#: ../Doc/library/asyncio-sync.rst:167 +#: library/asyncio-sync.rst:167 msgid "Condition" msgstr "" -#: ../Doc/library/asyncio-sync.rst:171 +#: library/asyncio-sync.rst:171 msgid "A Condition object. Not thread-safe." msgstr "" -#: ../Doc/library/asyncio-sync.rst:173 +#: library/asyncio-sync.rst:173 msgid "" "An asyncio condition primitive can be used by a task to wait for some event " "to happen and then get exclusive access to a shared resource." msgstr "" -#: ../Doc/library/asyncio-sync.rst:177 +#: library/asyncio-sync.rst:177 msgid "" "In essence, a Condition object combines the functionality of an :class:" "`Event` and a :class:`Lock`. It is possible to have multiple Condition " @@ -213,96 +212,96 @@ msgid "" "that shared resource." msgstr "" -#: ../Doc/library/asyncio-sync.rst:183 +#: library/asyncio-sync.rst:183 msgid "" "The optional *lock* argument must be a :class:`Lock` object or ``None``. In " "the latter case a new Lock object is created automatically." msgstr "" -#: ../Doc/library/asyncio-sync.rst:191 +#: library/asyncio-sync.rst:191 msgid "" "The preferred way to use a Condition is an :keyword:`async with` statement::" msgstr "" -#: ../Doc/library/asyncio-sync.rst:213 +#: library/asyncio-sync.rst:213 msgid "Acquire the underlying lock." msgstr "" -#: ../Doc/library/asyncio-sync.rst:215 +#: library/asyncio-sync.rst:215 msgid "" "This method waits until the underlying lock is *unlocked*, sets it to " "*locked* and returns ``True``." msgstr "" -#: ../Doc/library/asyncio-sync.rst:220 +#: library/asyncio-sync.rst:220 msgid "" "Wake up at most *n* tasks (1 by default) waiting on this condition. The " "method is no-op if no tasks are waiting." msgstr "" -#: ../Doc/library/asyncio-sync.rst:223 ../Doc/library/asyncio-sync.rst:238 +#: library/asyncio-sync.rst:238 msgid "" "The lock must be acquired before this method is called and released shortly " "after. If called with an *unlocked* lock a :exc:`RuntimeError` error is " "raised." msgstr "" -#: ../Doc/library/asyncio-sync.rst:229 +#: library/asyncio-sync.rst:229 msgid "Return ``True`` if the underlying lock is acquired." msgstr "" -#: ../Doc/library/asyncio-sync.rst:233 +#: library/asyncio-sync.rst:233 msgid "Wake up all tasks waiting on this condition." msgstr "" -#: ../Doc/library/asyncio-sync.rst:235 +#: library/asyncio-sync.rst:235 msgid "This method acts like :meth:`notify`, but wakes up all waiting tasks." msgstr "" -#: ../Doc/library/asyncio-sync.rst:244 +#: library/asyncio-sync.rst:244 msgid "Release the underlying lock." msgstr "Libère le verrou sous-jacent." -#: ../Doc/library/asyncio-sync.rst:246 +#: library/asyncio-sync.rst:246 msgid "When invoked on an unlocked lock, a :exc:`RuntimeError` is raised." msgstr "" -#: ../Doc/library/asyncio-sync.rst:251 +#: library/asyncio-sync.rst:251 msgid "Wait until notified." msgstr "Attends d'être notifié." -#: ../Doc/library/asyncio-sync.rst:253 +#: library/asyncio-sync.rst:253 msgid "" "If the calling task has not acquired the lock when this method is called, a :" "exc:`RuntimeError` is raised." msgstr "" -#: ../Doc/library/asyncio-sync.rst:256 +#: library/asyncio-sync.rst:256 msgid "" "This method releases the underlying lock, and then blocks until it is " "awakened by a :meth:`notify` or :meth:`notify_all` call. Once awakened, the " "Condition re-acquires its lock and this method returns ``True``." msgstr "" -#: ../Doc/library/asyncio-sync.rst:263 +#: library/asyncio-sync.rst:263 msgid "Wait until a predicate becomes *true*." msgstr "Attends jusqu'à ce qu'un prédicat devienne vrai." -#: ../Doc/library/asyncio-sync.rst:265 +#: library/asyncio-sync.rst:265 msgid "" "The predicate must be a callable which result will be interpreted as a " "boolean value. The final value is the return value." msgstr "" -#: ../Doc/library/asyncio-sync.rst:271 +#: library/asyncio-sync.rst:271 msgid "Semaphore" msgstr "Sémaphore" -#: ../Doc/library/asyncio-sync.rst:275 +#: library/asyncio-sync.rst:275 msgid "A Semaphore object. Not thread-safe." msgstr "" -#: ../Doc/library/asyncio-sync.rst:277 +#: library/asyncio-sync.rst:277 msgid "" "A semaphore manages an internal counter which is decremented by each :meth:" "`acquire` call and incremented by each :meth:`release` call. The counter can " @@ -310,61 +309,61 @@ msgid "" "waiting until some task calls :meth:`release`." msgstr "" -#: ../Doc/library/asyncio-sync.rst:283 +#: library/asyncio-sync.rst:283 msgid "" "The optional *value* argument gives the initial value for the internal " "counter (``1`` by default). If the given value is less than ``0`` a :exc:" "`ValueError` is raised." msgstr "" -#: ../Doc/library/asyncio-sync.rst:291 +#: library/asyncio-sync.rst:291 msgid "" "The preferred way to use a Semaphore is an :keyword:`async with` statement::" msgstr "" -#: ../Doc/library/asyncio-sync.rst:313 +#: library/asyncio-sync.rst:313 msgid "Acquire a semaphore." msgstr "" -#: ../Doc/library/asyncio-sync.rst:315 +#: library/asyncio-sync.rst:315 msgid "" "If the internal counter is greater than zero, decrement it by one and return " "``True`` immediately. If it is zero, wait until a :meth:`release` is called " "and return ``True``." msgstr "" -#: ../Doc/library/asyncio-sync.rst:321 +#: library/asyncio-sync.rst:321 msgid "Returns ``True`` if semaphore can not be acquired immediately." msgstr "" -#: ../Doc/library/asyncio-sync.rst:325 +#: library/asyncio-sync.rst:325 msgid "" "Release a semaphore, incrementing the internal counter by one. Can wake up a " "task waiting to acquire the semaphore." msgstr "" -#: ../Doc/library/asyncio-sync.rst:328 +#: library/asyncio-sync.rst:328 msgid "" "Unlike :class:`BoundedSemaphore`, :class:`Semaphore` allows making more " "``release()`` calls than ``acquire()`` calls." msgstr "" -#: ../Doc/library/asyncio-sync.rst:333 +#: library/asyncio-sync.rst:333 msgid "BoundedSemaphore" msgstr "BoundedSemaphore" -#: ../Doc/library/asyncio-sync.rst:337 +#: library/asyncio-sync.rst:337 msgid "A bounded semaphore object. Not thread-safe." msgstr "" -#: ../Doc/library/asyncio-sync.rst:339 +#: library/asyncio-sync.rst:339 msgid "" "Bounded Semaphore is a version of :class:`Semaphore` that raises a :exc:" "`ValueError` in :meth:`~Semaphore.release` if it increases the internal " "counter above the initial *value*." msgstr "" -#: ../Doc/library/asyncio-sync.rst:352 +#: library/asyncio-sync.rst:352 msgid "" "Acquiring a lock using ``await lock`` or ``yield from lock`` and/or :keyword:" "`with` statement (``with await lock``, ``with (yield from lock)``) is " diff --git a/library/asyncio-task.po b/library/asyncio-task.po index f4708893b6..79fa81bc0c 100644 --- a/library/asyncio-task.po +++ b/library/asyncio-task.po @@ -5,21 +5,21 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-15 18:54+0100\n" -"PO-Revision-Date: 2019-05-23 20:05+0200\n" -"Last-Translator: Jules Lasne \n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" +"PO-Revision-Date: 2020-09-22 17:11+0200\n" +"Last-Translator: Philippe GALVAN \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2.1\n" +"X-Generator: Poedit 2.4.1\n" -#: ../Doc/library/asyncio-task.rst:6 +#: library/asyncio-task.rst:6 msgid "Coroutines and Tasks" msgstr "Coroutines et tâches" -#: ../Doc/library/asyncio-task.rst:8 +#: library/asyncio-task.rst:8 msgid "" "This section outlines high-level asyncio APIs to work with coroutines and " "Tasks." @@ -27,57 +27,56 @@ msgstr "" "Cette section donne un aperçu des API de haut-niveau du module *asyncio* " "pour utiliser les coroutines et les tâches." -#: ../Doc/library/asyncio-task.rst:19 ../Doc/library/asyncio-task.rst:121 +#: library/asyncio-task.rst:121 msgid "Coroutines" msgstr "Coroutines" -#: ../Doc/library/asyncio-task.rst:21 -#, fuzzy +#: library/asyncio-task.rst:21 msgid "" ":term:`Coroutines ` declared with the async/await syntax is the " "preferred way of writing asyncio applications. For example, the following " "snippet of code (requires Python 3.7+) prints \"hello\", waits 1 second, and " "then prints \"world\"::" msgstr "" -"Il est recommandé d'utiliser la syntaxe *async* / *await* pour développer " -"des programmes *asyncio*. Par exemple, le morceau de code suivant " -"(nécessitant Python 3.7 ou supérieur) affiche *hello*, attend une seconde et " -"affiche ensuite *world* ::" +"Les :term:`coroutines ` déclarées avec la syntaxe *async/await* " +"sont la manière privilégiée d’écrire des applications *asyncio*. Par " +"exemple, l’extrait de code suivant (requiert Python 3.7+) affiche « hello », " +"attend 1 seconde et affiche ensuite « world » ::" -#: ../Doc/library/asyncio-task.rst:37 +#: library/asyncio-task.rst:37 msgid "" "Note that simply calling a coroutine will not schedule it to be executed::" msgstr "Appeler une coroutine ne la planifie pas pour exécution ::" -#: ../Doc/library/asyncio-task.rst:43 +#: library/asyncio-task.rst:43 msgid "To actually run a coroutine, asyncio provides three main mechanisms:" msgstr "" "Pour réellement exécuter une coroutine, *asyncio* fournit trois mécanismes " "principaux :" -#: ../Doc/library/asyncio-task.rst:45 +#: library/asyncio-task.rst:45 msgid "" "The :func:`asyncio.run` function to run the top-level entry point \"main()\" " "function (see the above example.)" msgstr "" -"La fonction :func:`asyncio.run` pour exécuter la fonction « main() », le " +"La fonction :func:`asyncio.run` pour exécuter la fonction « main() », le " "point d'entrée de haut-niveau (voir l'exemple ci-dessus)." -#: ../Doc/library/asyncio-task.rst:48 +#: library/asyncio-task.rst:48 msgid "" "Awaiting on a coroutine. The following snippet of code will print \"hello\" " "after waiting for 1 second, and then print \"world\" after waiting for " "*another* 2 seconds::" msgstr "" "Attendre une coroutine. Le morceau de code suivant attend une seconde, " -"affiche « hello », attend 2 secondes *supplémentaires*, puis affiche enfin " -"*world* ::" +"affiche « hello », attend 2 secondes *supplémentaires*, puis affiche enfin " +"« world » ::" -#: ../Doc/library/asyncio-task.rst:69 +#: library/asyncio-task.rst:69 msgid "Expected output::" msgstr "Sortie attendue ::" -#: ../Doc/library/asyncio-task.rst:76 +#: library/asyncio-task.rst:76 msgid "" "The :func:`asyncio.create_task` function to run coroutines concurrently as " "asyncio :class:`Tasks `." @@ -85,7 +84,7 @@ msgstr "" "La fonction :func:`asyncio.create_task` pour exécuter de manière concurrente " "des coroutines en tant que :class:`tâches ` *asyncio*." -#: ../Doc/library/asyncio-task.rst:79 +#: library/asyncio-task.rst:79 msgid "" "Let's modify the above example and run two ``say_after`` coroutines " "*concurrently*::" @@ -93,7 +92,7 @@ msgstr "" "Modifions l'exemple ci-dessus et lançons deux coroutines ``say_after`` *de " "manière concurrente* ::" -#: ../Doc/library/asyncio-task.rst:98 +#: library/asyncio-task.rst:98 msgid "" "Note that expected output now shows that the snippet runs 1 second faster " "than before::" @@ -101,29 +100,29 @@ msgstr "" "La sortie attendue montre à présent que ce code s'exécute une seconde plus " "rapidement que le précédent ::" -#: ../Doc/library/asyncio-task.rst:110 +#: library/asyncio-task.rst:110 msgid "Awaitables" -msgstr "Awaitables" +msgstr "*Attendables*" -#: ../Doc/library/asyncio-task.rst:112 +#: library/asyncio-task.rst:112 msgid "" "We say that an object is an **awaitable** object if it can be used in an :" "keyword:`await` expression. Many asyncio APIs are designed to accept " "awaitables." msgstr "" -"Un objet est dit *awaitable* (qui peut être attendu) s'il peut être utilisé " -"dans une expression :keyword:`await`. Beaucoup d'API d'*asyncio* sont " -"conçues pour accepter des *awaitables*." +"Un objet est dit *attendable* (*awaitable* en anglais, c.-à-d. qui peut être " +"attendu) s'il peut être utilisé dans une expression :keyword:`await`. " +"Beaucoup d'API d'*asyncio* sont conçues pour accepter des *attendables*." -#: ../Doc/library/asyncio-task.rst:116 +#: library/asyncio-task.rst:116 msgid "" "There are three main types of *awaitable* objects: **coroutines**, " "**Tasks**, and **Futures**." msgstr "" -"Il existe trois types principaux d'*awaitables* : les **coroutines**, les " +"Il existe trois types principaux d'*attendables* : les **coroutines**, les " "**tâches** et les **futurs**." -#: ../Doc/library/asyncio-task.rst:122 +#: library/asyncio-task.rst:122 msgid "" "Python coroutines are *awaitables* and therefore can be awaited from other " "coroutines::" @@ -131,24 +130,24 @@ msgstr "" "Les coroutines sont des *awaitables* et peuvent donc être attendues par " "d'autres coroutines ::" -#: ../Doc/library/asyncio-task.rst:143 +#: library/asyncio-task.rst:143 msgid "" "In this documentation the term \"coroutine\" can be used for two closely " "related concepts:" msgstr "" -"Dans cette documentation, le terme « coroutine » est utilisé pour désigner " +"Dans cette documentation, le terme « coroutine » est utilisé pour désigner " "deux concepts voisins :" -#: ../Doc/library/asyncio-task.rst:146 +#: library/asyncio-task.rst:146 msgid "a *coroutine function*: an :keyword:`async def` function;" -msgstr "une *fonction coroutine* : une fonction :keyword:`async def`;" +msgstr "une *fonction coroutine* : une fonction :keyword:`async def` ;" -#: ../Doc/library/asyncio-task.rst:148 +#: library/asyncio-task.rst:148 msgid "" "a *coroutine object*: an object returned by calling a *coroutine function*." msgstr "un *objet coroutine* : un objet renvoyé par une *fonction coroutine*." -#: ../Doc/library/asyncio-task.rst:151 +#: library/asyncio-task.rst:151 msgid "" "asyncio also supports legacy :ref:`generator-based " "` coroutines." @@ -156,17 +155,17 @@ msgstr "" "*asyncio* implémente également les coroutines :ref:`basées sur des " "générateurs ` ; celles-ci sont obsolètes." -#: ../Doc/library/asyncio-task.rst:156 +#: library/asyncio-task.rst:156 msgid "Tasks" msgstr "Tâches" -#: ../Doc/library/asyncio-task.rst:157 +#: library/asyncio-task.rst:157 msgid "*Tasks* are used to schedule coroutines *concurrently*." msgstr "" "Les *tâches* servent à planifier des coroutines de façon à ce qu'elles " "s'exécutent de manière concurrente." -#: ../Doc/library/asyncio-task.rst:159 +#: library/asyncio-task.rst:159 msgid "" "When a coroutine is wrapped into a *Task* with functions like :func:`asyncio." "create_task` the coroutine is automatically scheduled to run soon::" @@ -175,11 +174,11 @@ msgstr "" "comme :func:`asyncio.create_task`, la coroutine est automatiquement " "planifiée pour s'exécuter prochainement ::" -#: ../Doc/library/asyncio-task.rst:181 +#: library/asyncio-task.rst:181 msgid "Futures" msgstr "Futurs" -#: ../Doc/library/asyncio-task.rst:182 +#: library/asyncio-task.rst:182 msgid "" "A :class:`Future` is a special **low-level** awaitable object that " "represents an **eventual result** of an asynchronous operation." @@ -187,7 +186,7 @@ msgstr "" "Un :class:`Future` est un objet *awaitable* spécial de **bas-niveau**, qui " "représente le **résultat final** d'une opération asynchrone." -#: ../Doc/library/asyncio-task.rst:185 +#: library/asyncio-task.rst:185 msgid "" "When a Future object is *awaited* it means that the coroutine will wait " "until the Future is resolved in some other place." @@ -195,7 +194,7 @@ msgstr "" "Quand un objet *Future* est *attendu*, cela signifie que la coroutine " "attendra que ce futur soit résolu à un autre endroit." -#: ../Doc/library/asyncio-task.rst:188 +#: library/asyncio-task.rst:188 msgid "" "Future objects in asyncio are needed to allow callback-based code to be used " "with async/await." @@ -203,7 +202,7 @@ msgstr "" "Les objets *Future* d'*asyncio* sont nécessaires pour permettre l'exécution " "de code basé sur les fonctions de rappel avec la syntaxe *async* / *await*." -#: ../Doc/library/asyncio-task.rst:191 +#: library/asyncio-task.rst:191 msgid "" "Normally **there is no need** to create Future objects at the application " "level code." @@ -211,7 +210,7 @@ msgstr "" "Il est normalement **inutile** de créer des objets *Future* dans la couche " "applicative du code." -#: ../Doc/library/asyncio-task.rst:194 +#: library/asyncio-task.rst:194 msgid "" "Future objects, sometimes exposed by libraries and some asyncio APIs, can be " "awaited::" @@ -219,7 +218,7 @@ msgstr "" "Les objets *Future*, parfois exposés par des bibliothèques et quelques API " "d'*asyncio*, peuvent être attendus ::" -#: ../Doc/library/asyncio-task.rst:206 +#: library/asyncio-task.rst:206 msgid "" "A good example of a low-level function that returns a Future object is :meth:" "`loop.run_in_executor`." @@ -227,15 +226,15 @@ msgstr "" ":meth:`loop.run_in_executor` est l'exemple typique d'une fonction bas-niveau " "renvoyant un objet *Future*." -#: ../Doc/library/asyncio-task.rst:211 +#: library/asyncio-task.rst:211 msgid "Running an asyncio Program" msgstr "Exécution d'un programme *asyncio*" -#: ../Doc/library/asyncio-task.rst:215 +#: library/asyncio-task.rst:215 msgid "Execute the :term:`coroutine` *coro* and return the result." -msgstr "" +msgstr "Exécute la :term:`coroutine` *coro* et renvoie le résultat." -#: ../Doc/library/asyncio-task.rst:217 +#: library/asyncio-task.rst:217 msgid "" "This function runs the passed coroutine, taking care of managing the asyncio " "event loop and *finalizing asynchronous generators*." @@ -243,21 +242,21 @@ msgstr "" "Cette fonction exécute la coroutine passée en argument. Elle gère la boucle " "d'événements *asyncio* et *finalise les générateurs asynchrones*." -#: ../Doc/library/asyncio-task.rst:221 +#: library/asyncio-task.rst:221 msgid "" "This function cannot be called when another asyncio event loop is running in " "the same thread." msgstr "" "Cette fonction ne peut pas être appelée si une autre boucle d'événement " -"s'exécute dans le même fil d'exécution." +"*asyncio* s'exécute dans le même fil d'exécution." -#: ../Doc/library/asyncio-task.rst:224 +#: library/asyncio-task.rst:224 msgid "If *debug* is ``True``, the event loop will be run in debug mode." msgstr "" "Si *debug* vaut ``True``, la boucle d'événement s'exécute en mode de " "débogage." -#: ../Doc/library/asyncio-task.rst:226 +#: library/asyncio-task.rst:226 msgid "" "This function always creates a new event loop and closes it at the end. It " "should be used as a main entry point for asyncio programs, and should " @@ -267,36 +266,39 @@ msgstr "" "fin. Elle doit être utilisée comme point d'entrée principal des programmes " "*asyncio* et ne doit être idéalement appelée qu'une seule fois." -#: ../Doc/library/asyncio-task.rst:230 ../Doc/library/asyncio-task.rst:354 -#: ../Doc/library/asyncio-task.rst:463 ../Doc/library/asyncio-task.rst:593 +#: library/asyncio-task.rst:354 library/asyncio-task.rst:601 msgid "Example::" msgstr "Exemple ::" -#: ../Doc/library/asyncio-task.rst:242 +#: library/asyncio-task.rst:242 msgid "" "The source code for ``asyncio.run()`` can be found in :source:`Lib/asyncio/" "runners.py`." msgstr "" +"Le code source pour ``asyncio.run()`` est disponible dans :source:`Lib/" +"asyncio/runners.py`." -#: ../Doc/library/asyncio-task.rst:246 +#: library/asyncio-task.rst:246 msgid "Creating Tasks" msgstr "Création de tâches" -#: ../Doc/library/asyncio-task.rst:250 +#: library/asyncio-task.rst:250 msgid "" "Wrap the *coro* :ref:`coroutine ` into a :class:`Task` and " "schedule its execution. Return the Task object." msgstr "" "Encapsule la :ref:`coroutine ` *coro* dans une tâche et la " -"planifie pour exécution. Renvoie l'objet :class:`Task`." +"planifie pour exécution. Renvoie l'objet :class:`Task`." -#: ../Doc/library/asyncio-task.rst:253 +#: library/asyncio-task.rst:253 msgid "" "If *name* is not ``None``, it is set as the name of the task using :meth:" "`Task.set_name`." msgstr "" +"Si *name* n’est pas ``None``, il est défini comme le nom de la tâche en " +"utilisant :meth:`Task.set_name`." -#: ../Doc/library/asyncio-task.rst:256 +#: library/asyncio-task.rst:256 msgid "" "The task is executed in the loop returned by :func:`get_running_loop`, :exc:" "`RuntimeError` is raised if there is no running loop in current thread." @@ -305,7 +307,7 @@ msgstr "" "`get_running_loop` ; :exc:`RuntimeError` est levée s'il n'y a pas de boucle " "en cours d'exécution dans le fil actuel." -#: ../Doc/library/asyncio-task.rst:260 +#: library/asyncio-task.rst:260 msgid "" "This function has been **added in Python 3.7**. Prior to Python 3.7, the " "low-level :func:`asyncio.ensure_future` function can be used instead::" @@ -314,19 +316,19 @@ msgstr "" "antérieures à la 3.7, la fonction de bas-niveau :func:`asyncio." "ensure_future` peut-être utilisée ::" -#: ../Doc/library/asyncio-task.rst:277 ../Doc/library/asyncio-task.rst:716 +#: library/asyncio-task.rst:724 msgid "Added the ``name`` parameter." -msgstr "" +msgstr "ajout du paramètre ``name``." -#: ../Doc/library/asyncio-task.rst:282 +#: library/asyncio-task.rst:282 msgid "Sleeping" msgstr "Attente" -#: ../Doc/library/asyncio-task.rst:286 +#: library/asyncio-task.rst:286 msgid "Block for *delay* seconds." msgstr "Attend pendant *delay* secondes." -#: ../Doc/library/asyncio-task.rst:288 +#: library/asyncio-task.rst:288 msgid "" "If *result* is provided, it is returned to the caller when the coroutine " "completes." @@ -334,32 +336,30 @@ msgstr "" "Si *result* est spécifié, il est renvoyé à l'appelant quand la coroutine se " "termine." -#: ../Doc/library/asyncio-task.rst:291 +#: library/asyncio-task.rst:291 msgid "" "``sleep()`` always suspends the current task, allowing other tasks to run." msgstr "" "``sleep()`` suspend systématiquement la tâche courante, ce qui permet aux " "autres tâches de s'exécuter." -#: ../Doc/library/asyncio-task.rst:296 ../Doc/library/asyncio-task.rst:351 -#: ../Doc/library/asyncio-task.rst:430 ../Doc/library/asyncio-task.rst:460 -#: ../Doc/library/asyncio-task.rst:545 ../Doc/library/asyncio-task.rst:592 -#: ../Doc/library/asyncio-task.rst:721 +#: library/asyncio-task.rst:351 library/asyncio-task.rst:468 +#: library/asyncio-task.rst:600 library/asyncio-task.rst:729 msgid "The *loop* parameter." -msgstr "" +msgstr "Le paramètre *loop*." -#: ../Doc/library/asyncio-task.rst:299 +#: library/asyncio-task.rst:299 msgid "" "Example of coroutine displaying the current date every second for 5 seconds::" msgstr "" "Exemple d'une coroutine affichant la date toutes les secondes pendant 5 " "secondes ::" -#: ../Doc/library/asyncio-task.rst:318 +#: library/asyncio-task.rst:318 msgid "Running Tasks Concurrently" msgstr "Exécution de tâches de manière concurrente" -#: ../Doc/library/asyncio-task.rst:322 +#: library/asyncio-task.rst:322 msgid "" "Run :ref:`awaitable objects ` in the *aws* sequence " "*concurrently*." @@ -367,15 +367,15 @@ msgstr "" "Exécute les objets :ref:`awaitable ` de la séquence " "*aws*, *de manière concurrente*." -#: ../Doc/library/asyncio-task.rst:325 +#: library/asyncio-task.rst:325 msgid "" "If any awaitable in *aws* is a coroutine, it is automatically scheduled as a " "Task." msgstr "" -"Si un *awaitable* de *aws* est une coroutine, celui-ci est automatiquement " -"planifié comme une tâche." +"Si un *attendable* de *aws* est une coroutine, celui-ci est automatiquement " +"planifié comme une tâche *Task*." -#: ../Doc/library/asyncio-task.rst:328 +#: library/asyncio-task.rst:328 msgid "" "If all awaitables are completed successfully, the result is an aggregate " "list of returned values. The order of result values corresponds to the " @@ -385,7 +385,7 @@ msgstr "" "des valeurs renvoyées. L'ordre de cette liste correspond à l'ordre des " "*awaitables* dans *aws*." -#: ../Doc/library/asyncio-task.rst:332 +#: library/asyncio-task.rst:332 msgid "" "If *return_exceptions* is ``False`` (default), the first raised exception is " "immediately propagated to the task that awaits on ``gather()``. Other " @@ -394,10 +394,10 @@ msgid "" msgstr "" "Si *return_exceptions* vaut ``False`` (valeur par défaut), la première " "exception levée est immédiatement propagée vers la tâche en attente dans le " -"``gather()``. Les autres *awaitables* dans la séquence *aws* **ne sont pas " +"``gather()``. Les autres *attendables* dans la séquence *aws* **ne sont pas " "annulés** et poursuivent leur exécution." -#: ../Doc/library/asyncio-task.rst:337 +#: library/asyncio-task.rst:337 msgid "" "If *return_exceptions* is ``True``, exceptions are treated the same as " "successful results, and aggregated in the result list." @@ -406,7 +406,7 @@ msgstr "" "même manière que les exécutions normales, et incluses dans la liste des " "résultats." -#: ../Doc/library/asyncio-task.rst:340 +#: library/asyncio-task.rst:340 msgid "" "If ``gather()`` is *cancelled*, all submitted awaitables (that have not " "completed yet) are also *cancelled*." @@ -414,7 +414,7 @@ msgstr "" "Si ``gather()`` est *annulé*, tous les *awaitables* en cours (ceux qui n'ont " "pas encore fini de s'exécuter) sont également *annulés*." -#: ../Doc/library/asyncio-task.rst:343 +#: library/asyncio-task.rst:343 msgid "" "If any Task or Future from the *aws* sequence is *cancelled*, it is treated " "as if it raised :exc:`CancelledError` -- the ``gather()`` call is **not** " @@ -423,11 +423,20 @@ msgid "" msgstr "" "Si n'importe quel *Task* ou *Future* de la séquence *aws* est *annulé*, il " "est traité comme s'il avait levé :exc:`CancelledError` — l'appel à " -"``gather()`` n'est alors **pas** annulé. Ceci permet d'empêcher que " +"``gather()`` n'est alors **pas** annulé. Ceci permet d'empêcher que " "l'annulation d'une tâche ou d'un futur entraîne l'annulation des autres " "tâches ou futurs." -#: ../Doc/library/asyncio-task.rst:388 +#: library/asyncio-task.rst:389 +msgid "" +"If *return_exceptions* is False, cancelling gather() after it has been " +"marked done won't cancel any submitted awaitables. For instance, gather can " +"be marked done after propagating an exception to the caller, therefore, " +"calling ``gather.cancel()`` after catching an exception (raised by one of " +"the awaitables) from gather won't cancel any other awaitables." +msgstr "" + +#: library/asyncio-task.rst:396 msgid "" "If the *gather* itself is cancelled, the cancellation is propagated " "regardless of *return_exceptions*." @@ -435,11 +444,11 @@ msgstr "" "Si *gather* est lui-même annulé, l'annulation est propagée indépendamment de " "*return_exceptions*." -#: ../Doc/library/asyncio-task.rst:394 +#: library/asyncio-task.rst:402 msgid "Shielding From Cancellation" msgstr "Protection contre l'annulation" -#: ../Doc/library/asyncio-task.rst:398 +#: library/asyncio-task.rst:406 msgid "" "Protect an :ref:`awaitable object ` from being :meth:" "`cancelled `." @@ -447,21 +456,21 @@ msgstr "" "Empêche qu'un objet :ref:`awaitable ` puisse être :meth:" "`annulé `." -#: ../Doc/library/asyncio-task.rst:401 ../Doc/library/asyncio-task.rst:441 +#: library/asyncio-task.rst:449 msgid "If *aw* is a coroutine it is automatically scheduled as a Task." msgstr "" "Si *aw* est une coroutine, elle est planifiée automatiquement comme une " "tâche." -#: ../Doc/library/asyncio-task.rst:403 +#: library/asyncio-task.rst:411 msgid "The statement::" msgstr "L'instruction ::" -#: ../Doc/library/asyncio-task.rst:407 +#: library/asyncio-task.rst:415 msgid "is equivalent to::" msgstr "est équivalente à ::" -#: ../Doc/library/asyncio-task.rst:411 +#: library/asyncio-task.rst:419 msgid "" "*except* that if the coroutine containing it is cancelled, the Task running " "in ``something()`` is not cancelled. From the point of view of " @@ -469,21 +478,20 @@ msgid "" "still cancelled, so the \"await\" expression still raises a :exc:" "`CancelledError`." msgstr "" -"*à la différence près* que si la coroutine qui la contient est annulée, la " -"tâche s'exécutant dans ``something()`` n'est pas annulée. Du point de vue " -"de ``something()``, il n'y a pas eu d'annulation. Cependant, son appelant " -"est bien annulé, donc l'expression *await* lève bien une :exc:" -"`CancelledError`." +"*à la différence près* que, si la coroutine qui la contient est annulée, la " +"tâche s'exécutant dans ``something()`` n'est pas annulée. Du point de vue de " +"``something()``, il n'y a pas eu d'annulation. Cependant, son appelant est " +"bien annulé, donc l'expression *await* lève bien une :exc:`CancelledError`." -#: ../Doc/library/asyncio-task.rst:417 +#: library/asyncio-task.rst:425 msgid "" "If ``something()`` is cancelled by other means (i.e. from within itself) " "that would also cancel ``shield()``." msgstr "" -"Si ``something()`` est annulée d'une autre façon (*i.e.* depuis elle-même) " +"Si ``something()`` est annulée d'une autre façon (c.-à-d. depuis elle-même) " "ceci annule également ``shield()``." -#: ../Doc/library/asyncio-task.rst:420 +#: library/asyncio-task.rst:428 msgid "" "If it is desired to completely ignore cancellation (not recommended) the " "``shield()`` function should be combined with a try/except clause, as " @@ -493,11 +501,11 @@ msgstr "" "``shield()`` peut être combinée à une clause *try* / *except*, comme dans le " "code ci-dessous ::" -#: ../Doc/library/asyncio-task.rst:434 +#: library/asyncio-task.rst:442 msgid "Timeouts" msgstr "Délais d'attente" -#: ../Doc/library/asyncio-task.rst:438 +#: library/asyncio-task.rst:446 msgid "" "Wait for the *aw* :ref:`awaitable ` to complete with a " "timeout." @@ -505,7 +513,7 @@ msgstr "" "Attend la fin de l':ref:`awaitable ` *aw* avec délai " "d'attente." -#: ../Doc/library/asyncio-task.rst:443 +#: library/asyncio-task.rst:451 msgid "" "*timeout* can either be ``None`` or a float or int number of seconds to wait " "for. If *timeout* is ``None``, block until the future completes." @@ -514,7 +522,7 @@ msgstr "" "décimal) d'attente. Si *timeout* vaut ``None``, la fonction s'interrompt " "jusqu'à ce que le futur s'achève." -#: ../Doc/library/asyncio-task.rst:447 +#: library/asyncio-task.rst:455 msgid "" "If a timeout occurs, it cancels the task and raises :exc:`asyncio." "TimeoutError`." @@ -522,7 +530,7 @@ msgstr "" "Si le délai d'attente maximal est dépassé, la tâche est annulée et " "l'exception :exc:`asyncio.TimeoutError` est levée." -#: ../Doc/library/asyncio-task.rst:450 +#: library/asyncio-task.rst:458 msgid "" "To avoid the task :meth:`cancellation `, wrap it in :func:" "`shield`." @@ -530,7 +538,7 @@ msgstr "" "Pour empêcher :meth:`l'annulation ` de la tâche, il est " "nécessaire de l'encapsuler dans une fonction :func:`shield`." -#: ../Doc/library/asyncio-task.rst:453 +#: library/asyncio-task.rst:461 msgid "" "The function will wait until the future is actually cancelled, so the total " "wait time may exceed the *timeout*." @@ -538,11 +546,11 @@ msgstr "" "Cette fonction attend que le futur soit réellement annulé, donc le temps " "d'attente total peut être supérieur à *timeout*." -#: ../Doc/library/asyncio-task.rst:456 +#: library/asyncio-task.rst:464 msgid "If the wait is cancelled, the future *aw* is also cancelled." msgstr "Si l'attente est annulée, le futur *aw* est également annulé." -#: ../Doc/library/asyncio-task.rst:483 +#: library/asyncio-task.rst:491 msgid "" "When *aw* is cancelled due to a timeout, ``wait_for`` waits for *aw* to be " "cancelled. Previously, it raised :exc:`asyncio.TimeoutError` immediately." @@ -551,28 +559,29 @@ msgstr "" "``wait_for`` attend que *aw* soit annulée. Auparavant, l'exception :exc:" "`asyncio.TimeoutError` était immédiatement levée." -#: ../Doc/library/asyncio-task.rst:490 +#: library/asyncio-task.rst:498 msgid "Waiting Primitives" msgstr "Primitives d'attente" -#: ../Doc/library/asyncio-task.rst:495 +#: library/asyncio-task.rst:503 +#, fuzzy msgid "" -"Run :ref:`awaitable objects ` in the *aws* set " +"Run :ref:`awaitable objects ` in the *aws* iterable " "concurrently and block until the condition specified by *return_when*." msgstr "" "Exécute les objets :ref:`awaitables ` de l'ensemble " "*aws* de manière concurrente, et s'interrompt jusqu'à ce que la condition " "décrite dans *return_when* soit vraie." -#: ../Doc/library/asyncio-task.rst:499 +#: library/asyncio-task.rst:507 msgid "Returns two sets of Tasks/Futures: ``(done, pending)``." -msgstr "Renvoie deux ensembles de *Tasks* / *Futures* : ``(done, pending)``." +msgstr "Renvoie deux ensembles de *Tasks* / *Futures* : ``(done, pending)``." -#: ../Doc/library/asyncio-task.rst:501 +#: library/asyncio-task.rst:509 msgid "Usage::" msgstr "Utilisation ::" -#: ../Doc/library/asyncio-task.rst:505 +#: library/asyncio-task.rst:513 msgid "" "*timeout* (a float or int), if specified, can be used to control the maximum " "number of seconds to wait before returning." @@ -580,7 +589,7 @@ msgstr "" "*timeout* (entier ou décimal), si précisé, peut-être utilisé pour contrôler " "le nombre maximal de secondes d'attente avant de se terminer." -#: ../Doc/library/asyncio-task.rst:508 +#: library/asyncio-task.rst:516 msgid "" "Note that this function does not raise :exc:`asyncio.TimeoutError`. Futures " "or Tasks that aren't done when the timeout occurs are simply returned in the " @@ -590,36 +599,36 @@ msgstr "" "tâches qui ne sont pas finis quand le délai d'attente maximal est dépassé " "sont tout simplement renvoyés dans le second ensemble." -#: ../Doc/library/asyncio-task.rst:512 +#: library/asyncio-task.rst:520 msgid "" "*return_when* indicates when this function should return. It must be one of " "the following constants:" msgstr "" "*return_when* indique quand la fonction doit se terminer. Il peut prendre " -"les valeurs suivantes :" +"les valeurs suivantes :" -#: ../Doc/library/asyncio-task.rst:518 +#: library/asyncio-task.rst:526 msgid "Constant" msgstr "Constante" -#: ../Doc/library/asyncio-task.rst:518 +#: library/asyncio-task.rst:526 msgid "Description" msgstr "Description" -#: ../Doc/library/asyncio-task.rst:520 +#: library/asyncio-task.rst:528 msgid ":const:`FIRST_COMPLETED`" msgstr ":const:`FIRST_COMPLETED`" -#: ../Doc/library/asyncio-task.rst:520 +#: library/asyncio-task.rst:528 msgid "The function will return when any future finishes or is cancelled." msgstr "" "La fonction se termine lorsque n'importe quel futur se termine ou est annulé." -#: ../Doc/library/asyncio-task.rst:523 +#: library/asyncio-task.rst:531 msgid ":const:`FIRST_EXCEPTION`" msgstr ":const:`FIRST_EXCEPTION`" -#: ../Doc/library/asyncio-task.rst:523 +#: library/asyncio-task.rst:531 msgid "" "The function will return when any future finishes by raising an exception. " "If no future raises an exception then it is equivalent to :const:" @@ -629,16 +638,16 @@ msgstr "" "exception. Si aucun *futur* ne lève d'exception, équivaut à :const:" "`ALL_COMPLETED`." -#: ../Doc/library/asyncio-task.rst:529 +#: library/asyncio-task.rst:537 msgid ":const:`ALL_COMPLETED`" msgstr ":const:`ALL_COMPLETED`" -#: ../Doc/library/asyncio-task.rst:529 +#: library/asyncio-task.rst:537 msgid "The function will return when all futures finish or are cancelled." msgstr "" "La fonction se termine lorsque les *futurs* sont tous finis ou annulés." -#: ../Doc/library/asyncio-task.rst:533 +#: library/asyncio-task.rst:541 msgid "" "Unlike :func:`~asyncio.wait_for`, ``wait()`` does not cancel the futures " "when a timeout occurs." @@ -646,7 +655,7 @@ msgstr "" "À la différence de :func:`~asyncio.wait_for`, ``wait()`` n'annule pas les " "futurs quand le délai d'attente est dépassé." -#: ../Doc/library/asyncio-task.rst:538 +#: library/asyncio-task.rst:546 msgid "" "If any awaitable in *aws* is a coroutine, it is automatically scheduled as a " "Task. Passing coroutines objects to ``wait()`` directly is deprecated as it " @@ -657,7 +666,7 @@ msgstr "" "``wait()`` est obsolète, car ceci conduisait :ref:`à un comportement portant " "à confusion `." -#: ../Doc/library/asyncio-task.rst:550 +#: library/asyncio-task.rst:558 msgid "" "``wait()`` schedules coroutines as Tasks automatically and later returns " "those implicitly created Task objects in ``(done, pending)`` sets. " @@ -665,29 +674,30 @@ msgid "" msgstr "" "``wait()`` planifie automatiquement les coroutines comme des tâches et " "renvoie les objets *Task* ainsi créés dans les ensembles ``(done, " -"pending)``. Le code suivant ne fonctionne donc pas comme voulu ::" +"pending)``. Le code suivant ne fonctionne donc pas comme voulu ::" -#: ../Doc/library/asyncio-task.rst:563 +#: library/asyncio-task.rst:571 msgid "Here is how the above snippet can be fixed::" msgstr "Voici comment corriger le morceau de code ci-dessus ::" -#: ../Doc/library/asyncio-task.rst:576 +#: library/asyncio-task.rst:584 msgid "Passing coroutine objects to ``wait()`` directly is deprecated." msgstr "Passer directement des objets coroutines à ``wait()`` est obsolète." -#: ../Doc/library/asyncio-task.rst:582 +#: library/asyncio-task.rst:590 +#, fuzzy msgid "" -"Run :ref:`awaitable objects ` in the *aws* set " -"concurrently. Return an iterator of :class:`Future` objects. Each Future " -"object returned represents the earliest result from the set of the remaining " -"awaitables." +"Run :ref:`awaitable objects ` in the *aws* iterable " +"concurrently. Return an iterator of coroutines. Each coroutine returned can " +"be awaited to get the earliest next result from the iterable of the " +"remaining awaitables." msgstr "" "Exécute les objets :ref:`awaitables ` de l'ensemble " "*aws* de manière concurrente. Renvoie un itérateur sur des objets :class:" "`Future`. Chaque objet *futur* renvoyé représente le résultat le plus récent " "de l'ensemble des *awaitables* restants." -#: ../Doc/library/asyncio-task.rst:587 +#: library/asyncio-task.rst:595 msgid "" "Raises :exc:`asyncio.TimeoutError` if the timeout occurs before all Futures " "are done." @@ -695,18 +705,18 @@ msgstr "" "Lève une exception :exc:`asyncio.TimeoutError` si le délai d'attente est " "dépassé avant que tous les futurs ne soient achevés." -#: ../Doc/library/asyncio-task.rst:601 +#: library/asyncio-task.rst:609 msgid "Scheduling From Other Threads" msgstr "Planification depuis d'autres fils d'exécution" -#: ../Doc/library/asyncio-task.rst:605 +#: library/asyncio-task.rst:613 msgid "Submit a coroutine to the given event loop. Thread-safe." msgstr "" "Enregistre une coroutine dans la boucle d'exécution actuelle. Cette " "opération est compatible avec les programmes à multiples fils d'exécution " "(*thread-safe*)." -#: ../Doc/library/asyncio-task.rst:607 +#: library/asyncio-task.rst:615 msgid "" "Return a :class:`concurrent.futures.Future` to wait for the result from " "another OS thread." @@ -714,7 +724,7 @@ msgstr "" "Renvoie un :class:`concurrent.futures.Future` pour attendre le résultat d'un " "autre fil d'exécution du système d'exploitation." -#: ../Doc/library/asyncio-task.rst:610 +#: library/asyncio-task.rst:618 msgid "" "This function is meant to be called from a different OS thread than the one " "where the event loop is running. Example::" @@ -722,7 +732,7 @@ msgstr "" "Cette fonction est faite pour être appelée par un fil d'exécution distinct " "de celui dans laquelle la boucle d'événement s'exécute. Exemple ::" -#: ../Doc/library/asyncio-task.rst:622 +#: library/asyncio-task.rst:630 msgid "" "If an exception is raised in the coroutine, the returned Future will be " "notified. It can also be used to cancel the task in the event loop::" @@ -731,7 +741,7 @@ msgstr "" "averti. Elle peut également être utilisée pour annuler la tâche de la boucle " "d'événement ::" -#: ../Doc/library/asyncio-task.rst:636 +#: library/asyncio-task.rst:644 msgid "" "See the :ref:`concurrency and multithreading ` " "section of the documentation." @@ -739,19 +749,19 @@ msgstr "" "Voir la section :ref:`exécution concurrente et multi-fils d'exécution " "` de la documentation." -#: ../Doc/library/asyncio-task.rst:639 +#: library/asyncio-task.rst:647 msgid "" "Unlike other asyncio functions this function requires the *loop* argument to " "be passed explicitly." msgstr "" -"À la différence des autres fonction d'*asyncio*, cette fonction requiert que " -"*loop* soit passé de manière explicite." +"À la différence des autres fonctions d'*asyncio*, cette fonction requiert " +"que *loop* soit passé de manière explicite." -#: ../Doc/library/asyncio-task.rst:646 +#: library/asyncio-task.rst:654 msgid "Introspection" msgstr "Introspection" -#: ../Doc/library/asyncio-task.rst:651 +#: library/asyncio-task.rst:659 msgid "" "Return the currently running :class:`Task` instance, or ``None`` if no task " "is running." @@ -759,7 +769,7 @@ msgstr "" "Renvoie l'instance de la :class:`Task` en cours d'exécution, ou ``None`` " "s'il n'y a pas de tâche en cours." -#: ../Doc/library/asyncio-task.rst:654 +#: library/asyncio-task.rst:662 msgid "" "If *loop* is ``None`` :func:`get_running_loop` is used to get the current " "loop." @@ -767,13 +777,13 @@ msgstr "" "Si *loop* vaut ``None``, :func:`get_running_loop` est appelée pour récupérer " "la boucle en cours d'exécution." -#: ../Doc/library/asyncio-task.rst:662 +#: library/asyncio-task.rst:670 msgid "Return a set of not yet finished :class:`Task` objects run by the loop." msgstr "" "Renvoie l'ensemble des :class:`Task` non terminés en cours d'exécution dans " "la boucle." -#: ../Doc/library/asyncio-task.rst:665 +#: library/asyncio-task.rst:673 msgid "" "If *loop* is ``None``, :func:`get_running_loop` is used for getting current " "loop." @@ -781,20 +791,20 @@ msgstr "" "Si *loop* vaut ``None``, :func:`get_running_loop` est appelée pour récupérer " "la boucle en cours d'exécution." -#: ../Doc/library/asyncio-task.rst:672 +#: library/asyncio-task.rst:680 msgid "Task Object" msgstr "Objets *Task*" -#: ../Doc/library/asyncio-task.rst:676 +#: library/asyncio-task.rst:684 msgid "" "A :class:`Future-like ` object that runs a Python :ref:`coroutine " "`. Not thread-safe." msgstr "" "Objet compatible avec :class:`Future ` qui exécute une :ref:" -"`coroutine ` Python. Cet objet n'est pas utilisable dans des " +"`coroutine ` Python. Cet objet n'est pas utilisable dans des " "programmes à fils d'exécution multiples." -#: ../Doc/library/asyncio-task.rst:679 +#: library/asyncio-task.rst:687 msgid "" "Tasks are used to run coroutines in event loops. If a coroutine awaits on a " "Future, the Task suspends the execution of the coroutine and waits for the " @@ -806,7 +816,7 @@ msgstr "" "attend la fin de ce *futur*. Quand celui-ci est terminé, l'exécution de la " "coroutine encapsulée reprend." -#: ../Doc/library/asyncio-task.rst:685 +#: library/asyncio-task.rst:693 msgid "" "Event loops use cooperative scheduling: an event loop runs one Task at a " "time. While a Task awaits for the completion of a Future, the event loop " @@ -817,7 +827,7 @@ msgstr "" "futur, la boucle d'événement exécute d'autres tâches, des fonctions de " "rappel, ou effectue des opérations d'entrées-sorties." -#: ../Doc/library/asyncio-task.rst:690 +#: library/asyncio-task.rst:698 msgid "" "Use the high-level :func:`asyncio.create_task` function to create Tasks, or " "the low-level :meth:`loop.create_task` or :func:`ensure_future` functions. " @@ -828,7 +838,7 @@ msgstr "" "créer des tâches. Il est déconseillé d'instancier manuellement des objets " "*Task*." -#: ../Doc/library/asyncio-task.rst:695 +#: library/asyncio-task.rst:703 msgid "" "To cancel a running Task use the :meth:`cancel` method. Calling it will " "cause the Task to throw a :exc:`CancelledError` exception into the wrapped " @@ -840,7 +850,7 @@ msgstr "" "`CancelledError` dans la coroutine encapsulée. Si la coroutine attendait un " "*futur* au moment de l'annulation, celui-ci est annulé." -#: ../Doc/library/asyncio-task.rst:700 +#: library/asyncio-task.rst:708 msgid "" ":meth:`cancelled` can be used to check if the Task was cancelled. The method " "returns ``True`` if the wrapped coroutine did not suppress the :exc:" @@ -850,7 +860,7 @@ msgstr "" "Elle renvoie ``True`` si la coroutine encapsulée n'a pas ignoré l'exception :" "exc:`CancelledError` et a bien été annulée." -#: ../Doc/library/asyncio-task.rst:705 +#: library/asyncio-task.rst:713 msgid "" ":class:`asyncio.Task` inherits from :class:`Future` all of its APIs except :" "meth:`Future.set_result` and :meth:`Future.set_exception`." @@ -858,7 +868,7 @@ msgstr "" ":class:`asyncio.Task` hérite de :class:`Future`, de toute son API, à " "l'exception de :meth:`Future.set_result` et de :meth:`Future.set_exception`." -#: ../Doc/library/asyncio-task.rst:709 +#: library/asyncio-task.rst:717 msgid "" "Tasks support the :mod:`contextvars` module. When a Task is created it " "copies the current context and later runs its coroutine in the copied " @@ -868,15 +878,15 @@ msgstr "" "tâche effectue une copie du contexte actuel et exécutera ses coroutines dans " "cette copie." -#: ../Doc/library/asyncio-task.rst:713 +#: library/asyncio-task.rst:721 msgid "Added support for the :mod:`contextvars` module." msgstr "Ajout du support du module :mod:`contextvars`." -#: ../Doc/library/asyncio-task.rst:724 +#: library/asyncio-task.rst:732 msgid "Request the Task to be cancelled." msgstr "Demande l'annulation d'une tâche." -#: ../Doc/library/asyncio-task.rst:726 +#: library/asyncio-task.rst:734 msgid "" "This arranges for a :exc:`CancelledError` exception to be thrown into the " "wrapped coroutine on the next cycle of the event loop." @@ -885,7 +895,7 @@ msgstr "" "encapsulée. L'exception sera levée au prochain cycle de la boucle " "d'exécution." -#: ../Doc/library/asyncio-task.rst:729 +#: library/asyncio-task.rst:737 msgid "" "The coroutine then has a chance to clean up or even deny the request by " "suppressing the exception with a :keyword:`try` ... ... ``except " @@ -894,14 +904,14 @@ msgid "" "be cancelled, although suppressing cancellation completely is not common and " "is actively discouraged." msgstr "" -"La coroutine peut alors se nettoyer ou même ignorer la requête en supprimant " -"l'exception à l'aide d'un bloc :keyword:`try` ... ... ``except " -"CancelledError`` ... :keyword:`finally`. Par conséquent, contrairement à :" -"meth:`Future.cancel`, :meth:`Task.cancel` ne garantit pas que la tâche sera " +"La coroutine peut alors faire le ménage ou même ignorer la requête en " +"supprimant l'exception à l'aide d'un bloc :keyword:`try` … … ``except " +"CancelledError`` … :keyword:`finally`. Par conséquent, contrairement à :meth:" +"`Future.cancel`, :meth:`Task.cancel` ne garantit pas que la tâche sera " "annulée, bien qu'ignorer totalement une annulation ne soit ni une pratique " "courante, ni encouragé." -#: ../Doc/library/asyncio-task.rst:739 +#: library/asyncio-task.rst:747 msgid "" "The following example illustrates how coroutines can intercept the " "cancellation request::" @@ -909,11 +919,11 @@ msgstr "" "L'exemple ci-dessous illustre comment une coroutine peut intercepter une " "requête d'annulation ::" -#: ../Doc/library/asyncio-task.rst:778 +#: library/asyncio-task.rst:786 msgid "Return ``True`` if the Task is *cancelled*." msgstr "Renvoie ``True`` si la tâche est *annulée*." -#: ../Doc/library/asyncio-task.rst:780 +#: library/asyncio-task.rst:788 msgid "" "The Task is *cancelled* when the cancellation was requested with :meth:" "`cancel` and the wrapped coroutine propagated the :exc:`CancelledError` " @@ -923,11 +933,11 @@ msgstr "" "et la coroutine encapsulée a propagé l'exception :exc:`CancelledError` qui a " "été levée en son sein." -#: ../Doc/library/asyncio-task.rst:786 +#: library/asyncio-task.rst:794 msgid "Return ``True`` if the Task is *done*." msgstr "Renvoie ``True`` si la tâche est *achevée*." -#: ../Doc/library/asyncio-task.rst:788 +#: library/asyncio-task.rst:796 msgid "" "A Task is *done* when the wrapped coroutine either returned a value, raised " "an exception, or the Task was cancelled." @@ -935,11 +945,11 @@ msgstr "" "Une tâche est dite *achevée* quand la coroutine encapsulée a soit renvoyé " "une valeur, soit levé une exception, ou que la tâche a été annulée." -#: ../Doc/library/asyncio-task.rst:793 +#: library/asyncio-task.rst:801 msgid "Return the result of the Task." msgstr "Renvoie le résultat de la tâche." -#: ../Doc/library/asyncio-task.rst:795 +#: library/asyncio-task.rst:803 msgid "" "If the Task is *done*, the result of the wrapped coroutine is returned (or " "if the coroutine raised an exception, that exception is re-raised.)" @@ -948,15 +958,15 @@ msgstr "" "renvoyé (sinon, dans le cas où la coroutine a levé une exception, cette " "exception est de nouveau levée)." -#: ../Doc/library/asyncio-task.rst:799 ../Doc/library/asyncio-task.rst:813 +#: library/asyncio-task.rst:821 msgid "" "If the Task has been *cancelled*, this method raises a :exc:`CancelledError` " "exception." msgstr "" -"Si la tâche a été *annulée*, cette méthode lève une exception :exc:" +"Si la tâche a été *annulée*, cette méthode lève une exception :exc:" "`CancelledError`." -#: ../Doc/library/asyncio-task.rst:802 +#: library/asyncio-task.rst:810 msgid "" "If the Task's result isn't yet available, this method raises a :exc:" "`InvalidStateError` exception." @@ -964,11 +974,11 @@ msgstr "" "Si le résultat de la tâche n'est pas encore disponible, cette méthode lève " "une exception :exc:`InvalidStateError`." -#: ../Doc/library/asyncio-task.rst:807 +#: library/asyncio-task.rst:815 msgid "Return the exception of the Task." msgstr "Renvoie l'exception de la tâche." -#: ../Doc/library/asyncio-task.rst:809 +#: library/asyncio-task.rst:817 msgid "" "If the wrapped coroutine raised an exception that exception is returned. If " "the wrapped coroutine returned normally this method returns ``None``." @@ -976,7 +986,7 @@ msgstr "" "Si la coroutine encapsulée lève une exception, cette exception est renvoyée. " "Si la coroutine s'est exécutée normalement, cette méthode renvoie ``None``." -#: ../Doc/library/asyncio-task.rst:816 +#: library/asyncio-task.rst:824 msgid "" "If the Task isn't *done* yet, this method raises an :exc:`InvalidStateError` " "exception." @@ -984,30 +994,30 @@ msgstr "" "Si la tâche n'est pas encore *achevée*, cette méthode lève une exception :" "exc:`InvalidStateError`." -#: ../Doc/library/asyncio-task.rst:821 +#: library/asyncio-task.rst:829 msgid "Add a callback to be run when the Task is *done*." msgstr "" "Ajoute une fonction de rappel qui sera exécutée quand la tâche sera " "*achevée*." -#: ../Doc/library/asyncio-task.rst:823 ../Doc/library/asyncio-task.rst:832 +#: library/asyncio-task.rst:840 msgid "This method should only be used in low-level callback-based code." msgstr "" "Cette méthode ne doit être utilisée que dans du code basé sur les fonctions " "de rappel de bas-niveau." -#: ../Doc/library/asyncio-task.rst:825 +#: library/asyncio-task.rst:833 msgid "" "See the documentation of :meth:`Future.add_done_callback` for more details." msgstr "" "Se référer à la documentation de :meth:`Future.add_done_callback` pour plus " "de détails." -#: ../Doc/library/asyncio-task.rst:830 +#: library/asyncio-task.rst:838 msgid "Remove *callback* from the callbacks list." msgstr "Retire *callback* de la liste de fonctions de rappel." -#: ../Doc/library/asyncio-task.rst:834 +#: library/asyncio-task.rst:842 msgid "" "See the documentation of :meth:`Future.remove_done_callback` for more " "details." @@ -1015,11 +1025,11 @@ msgstr "" "Se référer à la documentation de :meth:`Future.remove_done_callback` pour " "plus de détails." -#: ../Doc/library/asyncio-task.rst:839 +#: library/asyncio-task.rst:847 msgid "Return the list of stack frames for this Task." msgstr "Renvoie une liste représentant la pile d'appels de la tâche." -#: ../Doc/library/asyncio-task.rst:841 +#: library/asyncio-task.rst:849 msgid "" "If the wrapped coroutine is not done, this returns the stack where it is " "suspended. If the coroutine has completed successfully or was cancelled, " @@ -1032,15 +1042,15 @@ msgstr "" "renvoie une liste vide. Si la coroutine a été terminée par une exception, " "ceci renvoie la pile d'erreurs." -#: ../Doc/library/asyncio-task.rst:847 +#: library/asyncio-task.rst:855 msgid "The frames are always ordered from oldest to newest." msgstr "La pile est toujours affichée de l'appelant à l'appelé." -#: ../Doc/library/asyncio-task.rst:849 +#: library/asyncio-task.rst:857 msgid "Only one stack frame is returned for a suspended coroutine." msgstr "Une seule ligne est renvoyée si la coroutine est suspendue." -#: ../Doc/library/asyncio-task.rst:851 +#: library/asyncio-task.rst:859 msgid "" "The optional *limit* argument sets the maximum number of frames to return; " "by default all available frames are returned. The ordering of the returned " @@ -1049,72 +1059,76 @@ msgid "" "are returned. (This matches the behavior of the traceback module.)" msgstr "" "L'argument facultatif *limit* définit le nombre maximal d'appels à " -"renvoyer ; par défaut, tous sont renvoyés. L'ordre de la liste diffère selon " -"la nature de celle-ci : les appels les plus récents d'une pile d'appels sont " +"renvoyer ; par défaut, tous sont renvoyés. L'ordre de la liste diffère selon " +"la nature de celle-ci : les appels les plus récents d'une pile d'appels sont " "renvoyés, si la pile est une pile d'erreurs, ce sont les appels les plus " "anciens qui le sont (dans un souci de cohérence avec le module *traceback*)." -#: ../Doc/library/asyncio-task.rst:860 +#: library/asyncio-task.rst:868 msgid "Print the stack or traceback for this Task." msgstr "Affiche la pile d'appels ou d'erreurs de la tâche." -#: ../Doc/library/asyncio-task.rst:862 +#: library/asyncio-task.rst:870 msgid "" "This produces output similar to that of the traceback module for the frames " "retrieved by :meth:`get_stack`." msgstr "" "Le format de sortie des appels produits par :meth:`get_stack` est similaire " -"à celui du module *traceback*. " +"à celui du module *traceback*." -#: ../Doc/library/asyncio-task.rst:865 +#: library/asyncio-task.rst:873 msgid "The *limit* argument is passed to :meth:`get_stack` directly." msgstr "Le paramètre *limit* est directement passé à :meth:`get_stack`." -#: ../Doc/library/asyncio-task.rst:867 +#: library/asyncio-task.rst:875 msgid "" "The *file* argument is an I/O stream to which the output is written; by " "default output is written to :data:`sys.stderr`." msgstr "" "Le paramètre *file* est un flux d'entrées-sorties sur lequel le résultat est " -"écrit ; par défaut, :data:`sys.stderr`." +"écrit ; par défaut, :data:`sys.stderr`." -#: ../Doc/library/asyncio-task.rst:872 -#, fuzzy +#: library/asyncio-task.rst:880 msgid "Return the coroutine object wrapped by the :class:`Task`." -msgstr "Renvoie l'exception de la tâche." +msgstr "Renvoie l’objet *coroutine* encapsulé par la :class:`Task`." -#: ../Doc/library/asyncio-task.rst:878 -#, fuzzy +#: library/asyncio-task.rst:886 msgid "Return the name of the Task." -msgstr "Renvoie le résultat de la tâche." +msgstr "Renvoie le nom de la tâche." -#: ../Doc/library/asyncio-task.rst:880 +#: library/asyncio-task.rst:888 msgid "" "If no name has been explicitly assigned to the Task, the default asyncio " "Task implementation generates a default name during instantiation." msgstr "" +"Si aucun nom n’a été explicitement assigné à la tâche, l’implémentation par " +"défaut d’une *Task* *asyncio* génère un nom par défaut durant " +"l’instanciation." -#: ../Doc/library/asyncio-task.rst:888 -#, fuzzy +#: library/asyncio-task.rst:896 msgid "Set the name of the Task." -msgstr "Renvoie le résultat de la tâche." +msgstr "Définit le nom de la tâche." -#: ../Doc/library/asyncio-task.rst:890 +#: library/asyncio-task.rst:898 msgid "" "The *value* argument can be any object, which is then converted to a string." msgstr "" +"L’argument *value* peut être n’importe quel objet qui sera ensuite converti " +"en chaine de caractères." -#: ../Doc/library/asyncio-task.rst:893 +#: library/asyncio-task.rst:901 msgid "" "In the default Task implementation, the name will be visible in the :func:" "`repr` output of a task object." msgstr "" +"Dans l’implémentation par défaut de *Task*, le nom sera visible dans le " +"résultat de :func:`repr` d’un objet *Task*." -#: ../Doc/library/asyncio-task.rst:900 +#: library/asyncio-task.rst:908 msgid "Return a set of all tasks for an event loop." msgstr "Renvoie l'ensemble des tâches d'une boucle d'évènements." -#: ../Doc/library/asyncio-task.rst:902 +#: library/asyncio-task.rst:910 msgid "" "By default all tasks for the current event loop are returned. If *loop* is " "``None``, the :func:`get_event_loop` function is used to get the current " @@ -1124,20 +1138,19 @@ msgstr "" "renvoyées. Si *loop* vaut ``None``, la fonction :func:`get_event_loop` est " "appelée pour récupérer la boucle d'exécution actuelle." -#: ../Doc/library/asyncio-task.rst:908 -#, fuzzy +#: library/asyncio-task.rst:916 msgid "" "Do not call this as a task method. Use the :func:`asyncio.all_tasks` " "function instead." msgstr "" -"Cette méthode est **obsolète** et sera supprimée en Python 3.9. Utilisez la " -"fonction :func:`asyncio.all_tasks` à la place." +"Ne pas l’appeler en tant que méthode *task*. Utiliser la fonction :func:" +"`asyncio.all_tasks` à la place." -#: ../Doc/library/asyncio-task.rst:913 +#: library/asyncio-task.rst:921 msgid "Return the currently running task or ``None``." msgstr "Renvoie la tâche en cours d'exécution ou ``None``." -#: ../Doc/library/asyncio-task.rst:915 +#: library/asyncio-task.rst:923 msgid "" "If *loop* is ``None``, the :func:`get_event_loop` function is used to get " "the current loop." @@ -1145,20 +1158,19 @@ msgstr "" "Si *loop* vaut ``None``, la fonction :func:`get_event_loop` est utilisée " "pour récupérer la boucle d'exécution actuelle." -#: ../Doc/library/asyncio-task.rst:920 -#, fuzzy +#: library/asyncio-task.rst:928 msgid "" "Do not call this as a task method. Use the :func:`asyncio.current_task` " "function instead." msgstr "" -"Cette méthode est **obsolète** et sera supprimée en Python 3.9. Utilisez la " -"fonction :func:`asyncio.current_task` à la place." +"Ne pas l’appeler en tant que méthode *task*. Utiliser la fonction :func:" +"`asyncio.current_task` à la place." -#: ../Doc/library/asyncio-task.rst:927 +#: library/asyncio-task.rst:935 msgid "Generator-based Coroutines" msgstr "Coroutines basées sur des générateurs" -#: ../Doc/library/asyncio-task.rst:931 +#: library/asyncio-task.rst:939 msgid "" "Support for generator-based coroutines is **deprecated** and is scheduled " "for removal in Python 3.10." @@ -1166,17 +1178,17 @@ msgstr "" "Les coroutines basées sur des générateurs sont **obsolètes** et il est prévu " "de les supprimer en Python 3.10." -#: ../Doc/library/asyncio-task.rst:934 +#: library/asyncio-task.rst:942 msgid "" "Generator-based coroutines predate async/await syntax. They are Python " "generators that use ``yield from`` expressions to await on Futures and other " "coroutines." msgstr "" "Les coroutines basées sur des générateurs sont antérieures à la syntaxe " -"*async* / *await*. Il existe des générateurs Python qui utilisent les " +"*async* / *await*. Il existe des générateurs *Python* qui utilisent les " "expressions ``yield from`` pour attendre des *futurs* et autres coroutines." -#: ../Doc/library/asyncio-task.rst:938 +#: library/asyncio-task.rst:946 msgid "" "Generator-based coroutines should be decorated with :func:`@asyncio." "coroutine `, although this is not enforced." @@ -1185,11 +1197,11 @@ msgstr "" "`@asyncio.coroutine `, même si ce n'est pas vérifié par " "l'interpréteur." -#: ../Doc/library/asyncio-task.rst:945 +#: library/asyncio-task.rst:953 msgid "Decorator to mark generator-based coroutines." msgstr "Décorateur pour coroutines basées sur des générateurs." -#: ../Doc/library/asyncio-task.rst:947 +#: library/asyncio-task.rst:955 msgid "" "This decorator enables legacy generator-based coroutines to be compatible " "with async/await code::" @@ -1197,21 +1209,23 @@ msgstr "" "Ce décorateur rend compatibles les coroutines basées sur des générateurs " "avec le code *async* / *await* ::" -#: ../Doc/library/asyncio-task.rst:957 +#: library/asyncio-task.rst:965 msgid "This decorator should not be used for :keyword:`async def` coroutines." msgstr "" "Ce décorateur ne doit pas être utilisé avec des coroutines :keyword:`async " "def`." -#: ../Doc/library/asyncio-task.rst:962 +# pas de majuscule car suit un deux-points +# pas de majuscule car suit un deux-points +#: library/asyncio-task.rst:970 msgid "Use :keyword:`async def` instead." -msgstr "" +msgstr "utilisez :keyword:`async def` à la place." -#: ../Doc/library/asyncio-task.rst:966 +#: library/asyncio-task.rst:974 msgid "Return ``True`` if *obj* is a :ref:`coroutine object `." msgstr "Renvoie ``True`` si *obj* est un :ref:`objet coroutine `." -#: ../Doc/library/asyncio-task.rst:968 +#: library/asyncio-task.rst:976 msgid "" "This method is different from :func:`inspect.iscoroutine` because it returns " "``True`` for generator-based coroutines." @@ -1219,12 +1233,12 @@ msgstr "" "Cette méthode est différente de :func:`inspect.iscoroutine` car elle renvoie " "``True`` pour des coroutines basées sur des générateurs." -#: ../Doc/library/asyncio-task.rst:973 +#: library/asyncio-task.rst:981 msgid "Return ``True`` if *func* is a :ref:`coroutine function `." msgstr "" "Renvoie ``True`` si *func* est une :ref:`fonction coroutine `." -#: ../Doc/library/asyncio-task.rst:976 +#: library/asyncio-task.rst:984 msgid "" "This method is different from :func:`inspect.iscoroutinefunction` because it " "returns ``True`` for generator-based coroutine functions decorated with :" diff --git a/library/asyncio.po b/library/asyncio.po index e61e42ad6f..a6f7da7ba7 100644 --- a/library/asyncio.po +++ b/library/asyncio.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-15 18:54+0100\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2018-12-16 16:19+0100\n" "Last-Translator: Antoine Wecxsteen\n" "Language-Team: FRENCH \n" @@ -15,27 +15,27 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.0.6\n" -#: ../Doc/library/asyncio.rst:66 +#: library/asyncio.rst:66 msgid "High-level APIs" msgstr "Bibliothèques de haut-niveau" -#: ../Doc/library/asyncio.rst:77 +#: library/asyncio.rst:77 msgid "Low-level APIs" msgstr "Bibliothèques de bas-niveau" -#: ../Doc/library/asyncio.rst:87 +#: library/asyncio.rst:87 msgid "Guides and Tutorials" msgstr "Guides et tutoriels" -#: ../Doc/library/asyncio.rst:2 +#: library/asyncio.rst:2 msgid ":mod:`asyncio` --- Asynchronous I/O" msgstr ":mod:`asyncio` — Entrées/Sorties asynchrones" -#: ../Doc/library/asyncio.rst:None +#: library/asyncio.rst:None msgid "Hello World!" msgstr "Hello World !" -#: ../Doc/library/asyncio.rst:23 +#: library/asyncio.rst:23 msgid "" "asyncio is a library to write **concurrent** code using the **async/await** " "syntax." @@ -43,7 +43,7 @@ msgstr "" "`asyncio` est une bibliothèque permettant de faire de la programmation " "asynchrone en utilisant la syntaxe *async*/*await*." -#: ../Doc/library/asyncio.rst:26 +#: library/asyncio.rst:26 msgid "" "asyncio is used as a foundation for multiple Python asynchronous frameworks " "that provide high-performance network and web-servers, database connection " @@ -54,7 +54,7 @@ msgstr "" "performants, des bibliothèques de connexion à des bases de données, des " "files d'exécution distribuées, etc." -#: ../Doc/library/asyncio.rst:30 +#: library/asyncio.rst:30 msgid "" "asyncio is often a perfect fit for IO-bound and high-level **structured** " "network code." @@ -62,12 +62,12 @@ msgstr "" "`asyncio` est souvent le bon choix pour écrire du code réseau de haut-niveau " "et tributaire des entrées-sorties (*IO-bound*)." -#: ../Doc/library/asyncio.rst:33 +#: library/asyncio.rst:33 msgid "asyncio provides a set of **high-level** APIs to:" msgstr "" "`asyncio` fournit des interfaces de programmation **haut-niveau** pour :" -#: ../Doc/library/asyncio.rst:35 +#: library/asyncio.rst:35 msgid "" ":ref:`run Python coroutines ` concurrently and have full control " "over their execution;" @@ -75,27 +75,27 @@ msgstr "" ":ref:`exécuter des coroutines Python ` de manière concurrente et " "d'avoir le contrôle total sur leur exécution ;" -#: ../Doc/library/asyncio.rst:38 +#: library/asyncio.rst:38 msgid "perform :ref:`network IO and IPC `;" msgstr "" "effectuer :ref:`des entrées/sorties réseau et de la communication inter-" "processus ` ;" -#: ../Doc/library/asyncio.rst:40 +#: library/asyncio.rst:40 msgid "control :ref:`subprocesses `;" msgstr "contrôler des :ref:`sous-processus ` ;" -#: ../Doc/library/asyncio.rst:42 +#: library/asyncio.rst:42 msgid "distribute tasks via :ref:`queues `;" msgstr "distribuer des tâches avec des :ref:`queues ` ;" -#: ../Doc/library/asyncio.rst:44 +#: library/asyncio.rst:44 msgid ":ref:`synchronize ` concurrent code;" msgstr "" ":ref:`synchroniser ` du code s'exécutant de manière " "concurrente ;" -#: ../Doc/library/asyncio.rst:46 +#: library/asyncio.rst:46 msgid "" "Additionally, there are **low-level** APIs for *library and framework " "developers* to:" @@ -103,7 +103,7 @@ msgstr "" "En plus, il existe des bibliothèques de **bas-niveau** pour que les " "*développeurs de bibliothèques et de frameworks* puissent :" -#: ../Doc/library/asyncio.rst:49 +#: library/asyncio.rst:49 msgid "" "create and manage :ref:`event loops `, which provide " "asynchronous APIs for :meth:`networking `, running :meth:" @@ -115,7 +115,7 @@ msgstr "" "create_server>`, d'exécution de :meth:`subprocesses `, " "de gestion de :meth:`signaux système `, etc ;" -#: ../Doc/library/asyncio.rst:54 +#: library/asyncio.rst:54 msgid "" "implement efficient protocols using :ref:`transports `;" @@ -123,7 +123,7 @@ msgstr "" "implémenter des protocoles efficaces à l'aide de :ref:`transports ` ;" -#: ../Doc/library/asyncio.rst:57 +#: library/asyncio.rst:57 msgid "" ":ref:`bridge ` callback-based libraries and code with async/" "await syntax." @@ -131,14 +131,14 @@ msgstr "" ":ref:`lier ` des bibliothèques basées sur les fonctions de " "rappel et développer avec la syntaxe *async*/*await*." -#: ../Doc/library/asyncio.rst:65 +#: library/asyncio.rst:65 msgid "Reference" msgstr "Sommaire" -#: ../Doc/library/asyncio.rst:96 -#, fuzzy +#: library/asyncio.rst:96 msgid "The source code for asyncio can be found in :source:`Lib/asyncio/`." -msgstr "**Code source :** :source:`Lib/asyncio/`" +msgstr "" +"Le code source d'``asyncio`` est disponible dans :source:`Lib/asyncio/`." #~ msgid "" #~ "This module provides infrastructure for writing single-threaded " diff --git a/library/audioop.po b/library/audioop.po index ed143b264f..fd79ee5b7d 100644 --- a/library/audioop.po +++ b/library/audioop.po @@ -14,11 +14,11 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/library/audioop.rst:2 +#: library/audioop.rst:2 msgid ":mod:`audioop` --- Manipulate raw audio data" msgstr ":mod:`audioloop` — Manipulation de données audio brutes" -#: ../Doc/library/audioop.rst:9 +#: library/audioop.rst:9 msgid "" "The :mod:`audioop` module contains some useful operations on sound " "fragments. It operates on sound fragments consisting of signed integer " @@ -26,84 +26,104 @@ msgid "" "`. All scalar items are integers, unless specified " "otherwise." msgstr "" +"Le module :mod:`audioop` permet d'effectuer des opérations utiles sur des " +"fragments sonores. Ceux-ci sont constitués d'échantillons audio, suite " +"d'entiers signés de taille 8, 16, 24 ou 32 bits. Ils sont sauvegardés dans " +"des :term:`objets octet-compatibles `. Tous les nombres " +"sont des entiers, sauf mention particulière." -#: ../Doc/library/audioop.rst:14 +#: library/audioop.rst:14 msgid "" "Support for 24-bit samples was added. All functions now accept any :term:" "`bytes-like object`. String input now results in an immediate error." msgstr "" +"Ajout de la prise en charge d'échantillons 24 bits. Toutes les fonctions " +"acceptent maintenant les :term:`objets octet-compatibles `. Une chaîne de caractères reçue en entrée lève immédiatement une " +"erreur." -#: ../Doc/library/audioop.rst:25 +#: library/audioop.rst:25 msgid "" "This module provides support for a-LAW, u-LAW and Intel/DVI ADPCM encodings." msgstr "" +"Ce module prend en charge les encodages de la loi A, de la loi u et les " +"encodages Intel/DVI ADPCM." -#: ../Doc/library/audioop.rst:29 +#: library/audioop.rst:29 msgid "" "A few of the more complicated operations only take 16-bit samples, otherwise " "the sample size (in bytes) is always a parameter of the operation." msgstr "" +"Mis à part quelques opérations plus complexes ne prenant que des " +"échantillons de 16 bits, la taille de l'échantillon (en octets) est toujours " +"un paramètre de l'opération." -#: ../Doc/library/audioop.rst:32 +#: library/audioop.rst:32 msgid "The module defines the following variables and functions:" -msgstr "" +msgstr "Le module définit les fonctions et variables suivantes :" -#: ../Doc/library/audioop.rst:37 +#: library/audioop.rst:37 msgid "" "This exception is raised on all errors, such as unknown number of bytes per " "sample, etc." msgstr "" +"Cette exception est levée pour toutes les erreurs, comme un nombre inconnu " +"d'octets par échantillon, etc." -#: ../Doc/library/audioop.rst:43 +#: library/audioop.rst:43 msgid "" "Return a fragment which is the addition of the two samples passed as " "parameters. *width* is the sample width in bytes, either ``1``, ``2``, ``3`` " "or ``4``. Both fragments should have the same length. Samples are " "truncated in case of overflow." msgstr "" +"Renvoie un fragment constitué de l'addition des deux échantillons fournis " +"comme paramètres. *width* est la largeur de l'échantillon en octets, soit " +"``1``, ``2``, ``3`` ou ``4``. Les deux fragments doivent avoir la même " +"longueur. Les échantillons sont tronqués en cas de débordement." -#: ../Doc/library/audioop.rst:50 +#: library/audioop.rst:50 msgid "" "Decode an Intel/DVI ADPCM coded fragment to a linear fragment. See the " "description of :func:`lin2adpcm` for details on ADPCM coding. Return a tuple " "``(sample, newstate)`` where the sample has the width specified in *width*." msgstr "" -#: ../Doc/library/audioop.rst:57 +#: library/audioop.rst:57 msgid "" "Convert sound fragments in a-LAW encoding to linearly encoded sound " "fragments. a-LAW encoding always uses 8 bits samples, so *width* refers only " "to the sample width of the output fragment here." msgstr "" -#: ../Doc/library/audioop.rst:64 +#: library/audioop.rst:64 msgid "Return the average over all samples in the fragment." -msgstr "" +msgstr "Renvoie la moyenne prise sur l'ensemble des échantillons du fragment." -#: ../Doc/library/audioop.rst:69 +#: library/audioop.rst:69 msgid "" "Return the average peak-peak value over all samples in the fragment. No " "filtering is done, so the usefulness of this routine is questionable." msgstr "" -#: ../Doc/library/audioop.rst:75 +#: library/audioop.rst:75 msgid "" "Return a fragment that is the original fragment with a bias added to each " "sample. Samples wrap around in case of overflow." msgstr "" -#: ../Doc/library/audioop.rst:81 +#: library/audioop.rst:81 msgid "" "\"Byteswap\" all samples in a fragment and returns the modified fragment. " "Converts big-endian samples to little-endian and vice versa." msgstr "" -#: ../Doc/library/audioop.rst:89 +#: library/audioop.rst:89 msgid "" "Return the number of zero crossings in the fragment passed as an argument." msgstr "" -#: ../Doc/library/audioop.rst:94 +#: library/audioop.rst:94 msgid "" "Return a factor *F* such that ``rms(add(fragment, mul(reference, -F)))`` is " "minimal, i.e., return the factor with which you should multiply *reference* " @@ -111,11 +131,11 @@ msgid "" "both contain 2-byte samples." msgstr "" -#: ../Doc/library/audioop.rst:99 +#: library/audioop.rst:99 msgid "The time taken by this routine is proportional to ``len(fragment)``." -msgstr "" +msgstr "Le temps pris par cette routine est proportionnel à ``len(fragment)``." -#: ../Doc/library/audioop.rst:104 +#: library/audioop.rst:104 msgid "" "Try to match *reference* as well as possible to a portion of *fragment* " "(which should be the longer fragment). This is (conceptually) done by " @@ -126,22 +146,24 @@ msgid "" "*factor* is the (floating-point) factor as per :func:`findfactor`." msgstr "" -#: ../Doc/library/audioop.rst:115 +#: library/audioop.rst:115 msgid "" "Search *fragment* for a slice of length *length* samples (not bytes!) with " -"maximum energy, i.e., return *i* for which ``rms(fragment[i*2:(i" -"+length)*2])`` is maximal. The fragments should both contain 2-byte samples." +"maximum energy, i.e., return *i* for which ``rms(fragment[i*2:" +"(i+length)*2])`` is maximal. The fragments should both contain 2-byte " +"samples." msgstr "" -#: ../Doc/library/audioop.rst:119 +#: library/audioop.rst:119 msgid "The routine takes time proportional to ``len(fragment)``." -msgstr "" +msgstr "La routine s'exécute en un temps proportionnel à ``len(fragment)``." -#: ../Doc/library/audioop.rst:124 +#: library/audioop.rst:124 msgid "Return the value of sample *index* from the fragment." msgstr "" +"Renvoie la valeur de l'échantillon à l'indice *index* dans le fragment." -#: ../Doc/library/audioop.rst:129 +#: library/audioop.rst:129 msgid "" "Convert samples to 4 bit Intel/DVI ADPCM encoding. ADPCM coding is an " "adaptive coding scheme, whereby each 4 bit number is the difference between " @@ -150,7 +172,7 @@ msgid "" "standard." msgstr "" -#: ../Doc/library/audioop.rst:134 +#: library/audioop.rst:134 msgid "" "*state* is a tuple containing the state of the coder. The coder returns a " "tuple ``(adpcmfrag, newstate)``, and the *newstate* should be passed to the " @@ -159,7 +181,7 @@ msgid "" "per byte." msgstr "" -#: ../Doc/library/audioop.rst:142 +#: library/audioop.rst:142 msgid "" "Convert samples in the audio fragment to a-LAW encoding and return this as a " "bytes object. a-LAW is an audio encoding format whereby you get a dynamic " @@ -167,24 +189,26 @@ msgid "" "audio hardware, among others." msgstr "" -#: ../Doc/library/audioop.rst:150 +#: library/audioop.rst:150 msgid "Convert samples between 1-, 2-, 3- and 4-byte formats." -msgstr "" +msgstr "Convertit des échantillons pour les formats à 1, 2, 3, et 4 octets." -#: ../Doc/library/audioop.rst:154 +#: library/audioop.rst:154 msgid "" "In some audio formats, such as .WAV files, 16, 24 and 32 bit samples are " "signed, but 8 bit samples are unsigned. So when converting to 8 bit wide " "samples for these formats, you need to also add 128 to the result::" msgstr "" -#: ../Doc/library/audioop.rst:161 +#: library/audioop.rst:161 msgid "" "The same, in reverse, has to be applied when converting from 8 to 16, 24 or " "32 bit width samples." msgstr "" +"Le même procédé, mais inversé, doit être suivi lorsqu'on exécute une " +"conversion d'échantillons de 8 bits à 16, 24 ou 32 bits." -#: ../Doc/library/audioop.rst:167 +#: library/audioop.rst:167 msgid "" "Convert samples in the audio fragment to u-LAW encoding and return this as a " "bytes object. u-LAW is an audio encoding format whereby you get a dynamic " @@ -192,33 +216,39 @@ msgid "" "audio hardware, among others." msgstr "" -#: ../Doc/library/audioop.rst:175 +#: library/audioop.rst:175 msgid "" "Return the maximum of the *absolute value* of all samples in a fragment." msgstr "" +"Renvoie la *valeur absolue* maximale de tous les échantillons du fragment." -#: ../Doc/library/audioop.rst:180 +#: library/audioop.rst:180 msgid "Return the maximum peak-peak value in the sound fragment." msgstr "" -#: ../Doc/library/audioop.rst:185 +#: library/audioop.rst:185 msgid "" "Return a tuple consisting of the minimum and maximum values of all samples " "in the sound fragment." msgstr "" +"Renvoie un *n*-uplet contenant les valeurs maximale et minimale de tous les " +"échantillons du fragment sonore." -#: ../Doc/library/audioop.rst:191 +#: library/audioop.rst:191 msgid "" "Return a fragment that has all samples in the original fragment multiplied " "by the floating-point value *factor*. Samples are truncated in case of " "overflow." msgstr "" +"Renvoie un fragment contenant tous les échantillons du fragment original " +"multipliés par la valeur à décimale *factor*. Les échantillons sont tronqués " +"en cas de débordement." -#: ../Doc/library/audioop.rst:197 +#: library/audioop.rst:197 msgid "Convert the frame rate of the input fragment." -msgstr "" +msgstr "Transforme la fréquence d'échantillonnage du fragment d'entrée." -#: ../Doc/library/audioop.rst:199 +#: library/audioop.rst:199 msgid "" "*state* is a tuple containing the state of the converter. The converter " "returns a tuple ``(newfragment, newstate)``, and *newstate* should be passed " @@ -226,47 +256,61 @@ msgid "" "as the state." msgstr "" -#: ../Doc/library/audioop.rst:203 +#: library/audioop.rst:203 msgid "" "The *weightA* and *weightB* arguments are parameters for a simple digital " "filter and default to ``1`` and ``0`` respectively." msgstr "" +"Les arguments *weightA* et *weightB* sont les paramètres d'un filtre " +"numérique simple et ont comme valeur par défaut ``1`` et ``0``, " +"respectivement." -#: ../Doc/library/audioop.rst:209 +#: library/audioop.rst:209 msgid "Reverse the samples in a fragment and returns the modified fragment." msgstr "" +"Inverse les échantillons dans un fragment et renvoie le fragment modifié." -#: ../Doc/library/audioop.rst:214 +#: library/audioop.rst:214 msgid "" "Return the root-mean-square of the fragment, i.e. ``sqrt(sum(S_i^2)/n)``." msgstr "" +"Renvoie la moyenne quadratique du fragment, c'est-à-dire ``sqrt(sum(S_i^2)/" +"n)``." -#: ../Doc/library/audioop.rst:216 +#: library/audioop.rst:216 msgid "This is a measure of the power in an audio signal." msgstr "C'est une mesure de la puissance dans un signal audio." -#: ../Doc/library/audioop.rst:221 +#: library/audioop.rst:221 msgid "" "Convert a stereo fragment to a mono fragment. The left channel is " "multiplied by *lfactor* and the right channel by *rfactor* before adding the " "two channels to give a mono signal." msgstr "" +"Transforme un fragment stéréo en fragment mono. Le canal de gauche est " +"multiplié par *lfactor* et le canal de droite par *rfactor* avant " +"d'additionner les deux canaux afin d'obtenir un signal mono." -#: ../Doc/library/audioop.rst:228 +#: library/audioop.rst:228 msgid "" "Generate a stereo fragment from a mono fragment. Each pair of samples in " "the stereo fragment are computed from the mono sample, whereby left channel " "samples are multiplied by *lfactor* and right channel samples by *rfactor*." msgstr "" +"Génère un fragment stéréo à partir d'un fragment mono. Chaque paire " +"d'échantillons dans le fragment stéréo est obtenue à partir de l'échantillon " +"mono de la façon suivante : les échantillons du canal de gauche sont " +"multipliés par *lfactor* et les échantillons du canal de droite, par " +"*rfactor*." -#: ../Doc/library/audioop.rst:235 +#: library/audioop.rst:235 msgid "" "Convert sound fragments in u-LAW encoding to linearly encoded sound " "fragments. u-LAW encoding always uses 8 bits samples, so *width* refers only " "to the sample width of the output fragment here." msgstr "" -#: ../Doc/library/audioop.rst:239 +#: library/audioop.rst:239 msgid "" "Note that operations such as :func:`.mul` or :func:`.max` make no " "distinction between mono and stereo fragments, i.e. all samples are treated " @@ -275,7 +319,7 @@ msgid "" "that::" msgstr "" -#: ../Doc/library/audioop.rst:253 +#: library/audioop.rst:253 msgid "" "If you use the ADPCM coder to build network packets and you want your " "protocol to be stateless (i.e. to be able to tolerate packet loss) you " @@ -287,14 +331,14 @@ msgid "" "index) in 8." msgstr "" -#: ../Doc/library/audioop.rst:261 +#: library/audioop.rst:261 msgid "" "The ADPCM coders have never been tried against other ADPCM coders, only " "against themselves. It could well be that I misinterpreted the standards in " "which case they will not be interoperable with the respective standards." msgstr "" -#: ../Doc/library/audioop.rst:265 +#: library/audioop.rst:265 msgid "" "The :func:`find\\*` routines might look a bit funny at first sight. They are " "primarily meant to do echo cancellation. A reasonably fast way to do this " diff --git a/library/audit_events.po b/library/audit_events.po index 73f3d0990d..f2f948e94e 100644 --- a/library/audit_events.po +++ b/library/audit_events.po @@ -5,32 +5,33 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-12-05 23:16+0100\n" -"PO-Revision-Date: 2019-11-17 23:01+0100\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" +"PO-Revision-Date: 2020-03-03 21:32+0100\n" "Last-Translator: Jules Lasne \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2.4\n" +"X-Generator: Poedit 2.3\n" -#: ../Doc/library/audit_events.rst:6 +#: library/audit_events.rst:6 msgid "Audit events table" msgstr "Table des évènements d'audit" -#: ../Doc/library/audit_events.rst:8 +#: library/audit_events.rst:8 #, fuzzy msgid "" "This table contains all events raised by :func:`sys.audit` or :c:func:" "`PySys_Audit` calls throughout the CPython runtime and the standard " -"library. These calls were added in 3.8.0 or later." +"library. These calls were added in 3.8.0 or later (see :pep:`578`)." msgstr "" "Cette table contient tous les évènements levés par les appels de :func:`sys." "audit` ou :c:func:`PySys_Audit` durant l'exécution de CPython et de la " -"bibliothèque standard." +"bibliothèque standard. Ces appels ont été ajoutés dans les versions 3.8.0 et " +"ultérieures." -#: ../Doc/library/audit_events.rst:12 +#: library/audit_events.rst:12 msgid "" "See :func:`sys.addaudithook` and :c:func:`PySys_AddAuditHook` for " "information on handling these events." @@ -38,7 +39,7 @@ msgstr "" "Voir :func:`sys.addaudithook` et :c:func:`PySys_AddAuditHook` pour plus " "d'informations sur la gestion de ces évènements." -#: ../Doc/library/audit_events.rst:17 +#: library/audit_events.rst:17 msgid "" "This table is generated from the CPython documentation, and may not " "represent events raised by other implementations. See your runtime specific " @@ -48,3 +49,84 @@ msgstr "" "pas représenter des évènements levés par d'autres implémentations. Consultez " "la documentation propre à votre implémentation pour connaître les évènements " "réellement levés." + +#: library/audit_events.rst:23 +msgid "" +"The following events are raised internally and do not correspond to any " +"public API of CPython:" +msgstr "" +"Les évènements suivants sont levés en interne et ne correspondent à aucune " +"API publique de CPython:" + +#: library/audit_events.rst:27 +#, fuzzy +msgid "Audit event" +msgstr "Table des évènements d'audit" + +#: library/audit_events.rst:27 +msgid "Arguments" +msgstr "Arguments" + +#: library/audit_events.rst:29 +msgid "_winapi.CreateFile" +msgstr "_winapi.CreateFile" + +#: library/audit_events.rst:29 +msgid "" +"``file_name``, ``desired_access``, ``share_mode``, ``creation_disposition``, " +"``flags_and_attributes``" +msgstr "" +"``file_name``, ``desired_access``, ``share_mode``, ``creation_disposition``, " +"``flags_and_attributes``" + +#: library/audit_events.rst:33 +msgid "_winapi.CreateJunction" +msgstr "_winapi.CreateJunction" + +#: library/audit_events.rst:33 +msgid "``src_path``, ``dst_path``" +msgstr "``src_path``, ``dst_path``" + +#: library/audit_events.rst:35 +msgid "_winapi.CreateNamedPipe" +msgstr "_winapi.CreateNamedPipe" + +#: library/audit_events.rst:35 +msgid "``name``, ``open_mode``, ``pipe_mode``" +msgstr "``name``, ``open_mode``, ``pipe_mode``" + +#: library/audit_events.rst:37 +msgid "_winapi.CreatePipe" +msgstr "_winapi.CreatePipe" + +#: library/audit_events.rst:39 +msgid "_winapi.CreateProcess" +msgstr "_winapi.CreateProcess" + +#: library/audit_events.rst:39 +msgid "``application_name``, ``command_line``, ``current_directory``" +msgstr "``application_name``, ``command_line``, ``current_directory``" + +#: library/audit_events.rst:42 +msgid "_winapi.OpenProcess" +msgstr "_winapi.OpenProcess" + +#: library/audit_events.rst:42 +msgid "``process_id``, ``desired_access``" +msgstr "``process_id``, ``desired_access``" + +#: library/audit_events.rst:44 +msgid "_winapi.TerminateProcess" +msgstr "_winapi.TerminateProcess" + +#: library/audit_events.rst:44 +msgid "``handle``, ``exit_code``" +msgstr "``handle``, ``exit_code``" + +#: library/audit_events.rst:46 +msgid "ctypes.PyObj_FromPtr" +msgstr "ctypes.PyObj_FromPtr" + +#: library/audit_events.rst:46 +msgid "``obj``" +msgstr "``obj``" diff --git a/library/binascii.po b/library/binascii.po index 21d3b3138a..7b62da8ec4 100644 --- a/library/binascii.po +++ b/library/binascii.po @@ -6,14 +6,14 @@ msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: 2019-02-25 22:48+0100\n" -"Last-Translator: Florent Bartoli \n" +"PO-Revision-Date: 2020-05-10 13:40+0200\n" +"Last-Translator: ZepmanBC \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2.1\n" +"X-Generator: Poedit 2.0.6\n" #: ../Doc/library/binascii.rst:2 msgid ":mod:`binascii` --- Convert between binary and ASCII" @@ -248,10 +248,15 @@ msgid "" "Separator placement is counted from the right end of the output by default, " "if you wish to count from the left, supply a negative *bytes_per_sep* value." msgstr "" +"Si *sep* est spécifié, il doit s'agir d'une chaîne de caractères ou d'un " +"objet *byte*. Il sera inséré dans la sortie tous les *bytes_per_sep* octets. " +"Par défaut, l'emplacement du séparateur est compté à partir de l'extrémité " +"droite de la sortie. Si vous souhaitez compter à partir de la gauche, " +"indiquez une valeur *bytes_per_sep* négative." #: ../Doc/library/binascii.rst:173 msgid "The *sep* and *bytes_per_sep* parameters were added." -msgstr "" +msgstr "ajout des paramètres *sep* et *bytes_per_sep*." #: ../Doc/library/binascii.rst:179 msgid "" diff --git a/library/bisect.po b/library/bisect.po index 8e53808820..0e2083f865 100644 --- a/library/bisect.po +++ b/library/bisect.po @@ -136,7 +136,7 @@ msgstr "" "Les fonctions :func:`bisect` ci-dessus sont utiles pour insérer des " "éléments, mais peuvent être étranges et peu naturelles à utiliser pour " "rechercher des éléments. Les cinq fonctions suivantes montrent comment les " -"transformer en recherche plus classique pour les listes triées : ::" +"transformer en recherche plus classique pour les listes triées ::" #: ../Doc/library/bisect.rst:114 msgid "Other Examples" @@ -153,7 +153,7 @@ msgstr "" "tableaux de nombres. Cet exemple utilise :func:`bisect` pour rechercher la " "note (sous forme de lettre) correspondant à un note sous forme de points, en " "se basant sur une échelle prédéfinie : plus de 90 vaut 'A', de 80 à 89 vaut " -"'B', etc… : ::" +"'B', etc… ::" #: ../Doc/library/bisect.rst:130 msgid "" @@ -174,4 +174,4 @@ msgid "" "of the record in question::" msgstr "" "Il est préférable d'utiliser une liste de clefs pré-calculée pour chercher " -"l'index de l'enregistrement en question : ::" +"l'index de l'enregistrement en question ::" diff --git a/library/bz2.po b/library/bz2.po index 46159d88b4..5970ab0d61 100644 --- a/library/bz2.po +++ b/library/bz2.po @@ -5,275 +5,362 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: 2018-07-29 01:07+0200\n" -"Last-Translator: Julien Palard \n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" +"PO-Revision-Date: 2019-11-16 14:17+0200\n" +"Last-Translator: Stéphane HUC \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/library/bz2.rst:2 +#: library/bz2.rst:2 msgid ":mod:`bz2` --- Support for :program:`bzip2` compression" -msgstr "" +msgstr ":mod:`bz2` — Prise en charge de la compression :program:`bzip2`" -#: ../Doc/library/bz2.rst:12 +#: library/bz2.rst:12 msgid "**Source code:** :source:`Lib/bz2.py`" -msgstr "" +msgstr "**Code Source :** :source:`Lib/bz2.py`" -#: ../Doc/library/bz2.rst:16 +#: library/bz2.rst:16 msgid "" "This module provides a comprehensive interface for compressing and " "decompressing data using the bzip2 compression algorithm." msgstr "" +"Ce module fournit une interface complète pour compresser et décompresser les " +"données en utilisant l'algorithme de compression *bzip2*." -#: ../Doc/library/bz2.rst:19 +#: library/bz2.rst:19 msgid "The :mod:`bz2` module contains:" -msgstr "Le module :mod:`bz2` contiens :" +msgstr "Le module :mod:`bz2` contient :" -#: ../Doc/library/bz2.rst:21 +#: library/bz2.rst:21 msgid "" "The :func:`.open` function and :class:`BZ2File` class for reading and " "writing compressed files." msgstr "" +"La fonction :func:`.open` et la classe :class:`BZ2File` pour lire et écrire " +"des fichiers compressés." -#: ../Doc/library/bz2.rst:23 +#: library/bz2.rst:23 msgid "" "The :class:`BZ2Compressor` and :class:`BZ2Decompressor` classes for " "incremental (de)compression." msgstr "" +"Les classes :class:`BZ2Compressor` et :class:`BZ2Decompressor` pour la " +"(dé)compression incrémentielle." -#: ../Doc/library/bz2.rst:25 +#: library/bz2.rst:25 msgid "" "The :func:`compress` and :func:`decompress` functions for one-shot " "(de)compression." msgstr "" +"Les fonctions :func:`compress` et :func:`decompress` pour la (dé)compression " +"en une seule fois." -#: ../Doc/library/bz2.rst:28 +#: library/bz2.rst:28 msgid "" "All of the classes in this module may safely be accessed from multiple " "threads." msgstr "" +"Toutes les classes de ce module peuvent en toute sécurité être accédées " +"depuis de multiples fils d'exécution." -#: ../Doc/library/bz2.rst:32 +#: library/bz2.rst:32 msgid "(De)compression of files" msgstr "(Dé)compression de fichiers" -#: ../Doc/library/bz2.rst:36 +#: library/bz2.rst:36 msgid "" "Open a bzip2-compressed file in binary or text mode, returning a :term:`file " "object`." msgstr "" +"Ouvre un fichier compressé par *bzip2* en mode binaire ou texte, le " +"renvoyant en :term:`file object`." -#: ../Doc/library/bz2.rst:39 +#: library/bz2.rst:39 msgid "" "As with the constructor for :class:`BZ2File`, the *filename* argument can be " "an actual filename (a :class:`str` or :class:`bytes` object), or an existing " "file object to read from or write to." msgstr "" +"Tout comme avec le constructeur pour la classe :class:`BZ2File`, l'argument " +"*filename* peut être un nom de fichier réel (un objet :class:`str` ou :class:" +"`bytes`), ou un objet fichier existant à lire ou à écrire." -#: ../Doc/library/bz2.rst:43 +#: library/bz2.rst:43 msgid "" "The *mode* argument can be any of ``'r'``, ``'rb'``, ``'w'``, ``'wb'``, " "``'x'``, ``'xb'``, ``'a'`` or ``'ab'`` for binary mode, or ``'rt'``, " "``'wt'``, ``'xt'``, or ``'at'`` for text mode. The default is ``'rb'``." msgstr "" +"L'argument *mode* peut valoir ``'r'``, ``'rb'``, ``'w'``, ``'wb'``, ``'x'``, " +"``'xb'``, ``'a'`` ou ``'ab'`` pour le mode binaire, ou ``'rt'``, ``'wt'``, " +"``'xt'`` ou ``'at'`` pour le mode texte. Il vaut par défaut ``'rb'``." -#: ../Doc/library/bz2.rst:47 +#: library/bz2.rst:47 msgid "" "The *compresslevel* argument is an integer from 1 to 9, as for the :class:" "`BZ2File` constructor." msgstr "" +"L'argument *compresslevel* est un entier de 1 à 9, comme pour le " +"constructeur :class:`BZ2File`." -#: ../Doc/library/bz2.rst:50 +#: library/bz2.rst:50 msgid "" "For binary mode, this function is equivalent to the :class:`BZ2File` " "constructor: ``BZ2File(filename, mode, compresslevel=compresslevel)``. In " "this case, the *encoding*, *errors* and *newline* arguments must not be " "provided." msgstr "" +"Pour le mode binaire, cette fonction est équivalente au constructeur :class:" +"`BZ2File` : ``BZ2File(filename, mode, compresslevel=compresslevel)``. Dans " +"ce cas, les arguments *encoding*, *errors* et *newline* arguments ne doivent " +"pas être fournis." -#: ../Doc/library/bz2.rst:55 +#: library/bz2.rst:55 msgid "" "For text mode, a :class:`BZ2File` object is created, and wrapped in an :" "class:`io.TextIOWrapper` instance with the specified encoding, error " "handling behavior, and line ending(s)." msgstr "" +"Pour le mode texte, un objet :class:`BZ2File` est créé et encapsulé dans une " +"instance :class:`io.TextIOWrapper` avec l'encodage spécifié, le comportement " +"de gestion des erreurs et les fins de ligne." -#: ../Doc/library/bz2.rst:61 ../Doc/library/bz2.rst:131 +#: library/bz2.rst:131 msgid "The ``'x'`` (exclusive creation) mode was added." -msgstr "Le mode ``'x'`` (création exclusive) est créé." +msgstr "Le mode ``'x'`` (création exclusive) est ajouté." -#: ../Doc/library/bz2.rst:64 ../Doc/library/bz2.rst:138 +#: library/bz2.rst:138 msgid "Accepts a :term:`path-like object`." msgstr "Accepte un :term:`path-like object`." -#: ../Doc/library/bz2.rst:70 +#: library/bz2.rst:70 msgid "Open a bzip2-compressed file in binary mode." msgstr "Ouvre un fichier *bzip2* en mode binaire." -#: ../Doc/library/bz2.rst:72 +#: library/bz2.rst:72 msgid "" "If *filename* is a :class:`str` or :class:`bytes` object, open the named " "file directly. Otherwise, *filename* should be a :term:`file object`, which " "will be used to read or write the compressed data." msgstr "" +"Si *filename* est un objet :class:`str` ou :class:`bytes`, ouvre le nom de " +"fichier directement. Autrement, *filename* doit être un :term:`file object`, " +"qui est utilisé pour lire ou écrire les données compressées." -#: ../Doc/library/bz2.rst:76 +#: library/bz2.rst:76 msgid "" "The *mode* argument can be either ``'r'`` for reading (default), ``'w'`` for " "overwriting, ``'x'`` for exclusive creation, or ``'a'`` for appending. These " "can equivalently be given as ``'rb'``, ``'wb'``, ``'xb'`` and ``'ab'`` " "respectively." msgstr "" +"L'argument *mode* peut être soit ``'r'`` pour lire (par défaut), ``'w'`` " +"pour écraser, ``'x'`` pour créer exclusivement, ou ``'a'`` pour ajouter. Ils " +"peuvent également être écrits respectivement comme ``'rb'``, ``'wb'``, " +"``'xb'`` et ``'ab'``." -#: ../Doc/library/bz2.rst:81 +#: library/bz2.rst:81 msgid "" "If *filename* is a file object (rather than an actual file name), a mode of " "``'w'`` does not truncate the file, and is instead equivalent to ``'a'``." msgstr "" +"Si *filename* est un objet fichier (plutôt que le nom de fichier réel), le " +"mode ``'w'`` ne tronque pas le fichier, mais équivaut à ``'a'``." -#: ../Doc/library/bz2.rst:84 +#: library/bz2.rst:84 msgid "" "The *buffering* argument is ignored. Its use is deprecated since Python 3.0." msgstr "" +"L'argument *buffering* est ignoré. Son usage est déprécié depuis Python 3.0." -#: ../Doc/library/bz2.rst:86 +#: library/bz2.rst:86 msgid "" "If *mode* is ``'w'`` or ``'a'``, *compresslevel* can be an integer between " "``1`` and ``9`` specifying the level of compression: ``1`` produces the " "least compression, and ``9`` (default) produces the most compression." msgstr "" +"Si *mode* est ``'w'`` ou ``'a'``, *compresslevel* peut être un entier entre " +"``1`` et ``9`` spécifiant le niveau de compression : ``1`` utilise la " +"compression la moins forte, et ``9`` (par défaut) la compression la plus " +"forte." -#: ../Doc/library/bz2.rst:90 +#: library/bz2.rst:90 msgid "" "If *mode* is ``'r'``, the input file may be the concatenation of multiple " "compressed streams." msgstr "" +"Si *mode* est ``'r'``, le fichier d'entrée peut être la concaténation de " +"plusieurs flux compressés." -#: ../Doc/library/bz2.rst:93 +#: library/bz2.rst:93 msgid "" ":class:`BZ2File` provides all of the members specified by the :class:`io." "BufferedIOBase`, except for :meth:`detach` and :meth:`truncate`. Iteration " "and the :keyword:`with` statement are supported." msgstr "" +":class:`BZ2File` fournit tous les membres spécifiés par la classe :class:`io." +"BufferedIOBase`, excepté les méthodes :meth:`detach` et :meth:`truncate`. " +"L'itération et l'instruction :keyword:`with` sont prises en charge." -#: ../Doc/library/bz2.rst:97 +#: library/bz2.rst:97 msgid ":class:`BZ2File` also provides the following method:" -msgstr "" +msgstr ":class:`BZ2File` fournit aussi la méthode suivante :" -#: ../Doc/library/bz2.rst:101 +#: library/bz2.rst:101 msgid "" "Return buffered data without advancing the file position. At least one byte " "of data will be returned (unless at EOF). The exact number of bytes returned " "is unspecified." msgstr "" +"Renvoie des données en mémoire tampon sans avancer la position du fichier. " +"Au moins un octet de donnée (sauf l'EOF) est renvoyé. Le nombre exact " +"d'octets renvoyés n'est pas spécifié." -#: ../Doc/library/bz2.rst:105 +#: library/bz2.rst:105 msgid "" "While calling :meth:`peek` does not change the file position of the :class:" "`BZ2File`, it may change the position of the underlying file object (e.g. if " "the :class:`BZ2File` was constructed by passing a file object for " "*filename*)." msgstr "" +"Bien que l'appel à la méthode :meth:`peek` ne change pas la position du " +"fichier de la classe :class:`BZ2File`, il peut changer la position de " +"l'objet fichier sous-jacent (e.g. si la classe :class:`BZ2File` a été " +"construite en passant un objet fichier à *filename*)." -#: ../Doc/library/bz2.rst:113 +#: library/bz2.rst:113 msgid "The keyword argument *buffering* was deprecated and is now ignored." msgstr "" -#: ../Doc/library/bz2.rst:116 +#: library/bz2.rst:116 msgid "Support for the :keyword:`with` statement was added." -msgstr "" +msgstr "La prise en charge de l'instruction :keyword:`with` a été ajoutée." -#: ../Doc/library/bz2.rst:119 +#: library/bz2.rst:119 msgid "" "The :meth:`fileno`, :meth:`readable`, :meth:`seekable`, :meth:`writable`, :" "meth:`read1` and :meth:`readinto` methods were added." msgstr "" +"Les méthodes :meth:`fileno`, :meth:`readable`, :meth:`seekable`, :meth:" +"`writable`, :meth:`read1` et :meth:`readinto` ont été ajoutées." -#: ../Doc/library/bz2.rst:123 +#: library/bz2.rst:123 msgid "" "Support was added for *filename* being a :term:`file object` instead of an " "actual filename." msgstr "" +"La gestion de *filename* comme :term:`file object` au lieu d'un nom de " +"fichier réel a été ajoutée." -#: ../Doc/library/bz2.rst:127 +#: library/bz2.rst:127 msgid "" "The ``'a'`` (append) mode was added, along with support for reading multi-" "stream files." msgstr "" +"Le mode ``'a'`` (ajout) a été ajouté, avec la prise en charge de la lecture " +"des fichiers *multiflux*." -#: ../Doc/library/bz2.rst:134 +#: library/bz2.rst:134 msgid "" "The :meth:`~io.BufferedIOBase.read` method now accepts an argument of " "``None``." msgstr "" +"La méthode :meth:`~io.BufferedIOBase.read` accepte maintenant un argument " +"``None``." -#: ../Doc/library/bz2.rst:143 +#: library/bz2.rst:143 msgid "Incremental (de)compression" -msgstr "(Dé)compression incrémentale" +msgstr "(Dé)compression incrémentielle" -#: ../Doc/library/bz2.rst:147 +#: library/bz2.rst:147 msgid "" "Create a new compressor object. This object may be used to compress data " "incrementally. For one-shot compression, use the :func:`compress` function " "instead." msgstr "" +"Crée un nouvel objet compresseur. Cet objet peut être utilisé pour " +"compresser les données de manière incrémentielle. Pour une compression en " +"une seule fois, utilisez à la place la fonction :func:`compress`." -#: ../Doc/library/bz2.rst:151 ../Doc/library/bz2.rst:239 +#: library/bz2.rst:239 msgid "" "*compresslevel*, if given, must be an integer between ``1`` and ``9``. The " "default is ``9``." msgstr "" +"*compresslevel*, s'il est fourni, doit être un entier entre ``1`` et ``9``. " +"Sa valeur par défaut est ``9``." -#: ../Doc/library/bz2.rst:156 +#: library/bz2.rst:156 msgid "" "Provide data to the compressor object. Returns a chunk of compressed data if " "possible, or an empty byte string otherwise." msgstr "" +"Fournit la donnée à l'objet compresseur. Renvoie un bloc de données " +"compressées si possible, ou autrement une chaîne d'octet vide." -#: ../Doc/library/bz2.rst:159 +#: library/bz2.rst:159 msgid "" "When you have finished providing data to the compressor, call the :meth:" "`flush` method to finish the compression process." msgstr "" +"Quand vous avez fini de fournir des données au compresseur, appelez la " +"méthode :meth:`flush` pour finir le processus de compression." -#: ../Doc/library/bz2.rst:165 +#: library/bz2.rst:165 msgid "" "Finish the compression process. Returns the compressed data left in internal " "buffers." msgstr "" +"Finit le processus de compression. Renvoie la donnée compressée restante " +"dans les tampons internes." -#: ../Doc/library/bz2.rst:168 +#: library/bz2.rst:168 msgid "" "The compressor object may not be used after this method has been called." msgstr "" +"L'objet compresseur ne peut pas être utilisé après que cette méthode a été " +"appelée." -#: ../Doc/library/bz2.rst:173 +#: library/bz2.rst:173 msgid "" "Create a new decompressor object. This object may be used to decompress data " "incrementally. For one-shot compression, use the :func:`decompress` function " "instead." msgstr "" +"Crée un nouvel objet décompresseur. Cet objet peut être utilisé pour " +"décompresser les données de manière incrémentielle. Pour une compression en " +"une seule fois, utilisez à la place la fonction :func:`decompress`." -#: ../Doc/library/bz2.rst:178 +#: library/bz2.rst:178 msgid "" "This class does not transparently handle inputs containing multiple " "compressed streams, unlike :func:`decompress` and :class:`BZ2File`. If you " "need to decompress a multi-stream input with :class:`BZ2Decompressor`, you " "must use a new decompressor for each stream." msgstr "" +"Cette classe ne gère pas de manière transparente les entrées contenant " +"plusieurs flux compressés, à la différence de :func:`decompress` et :class:" +"`BZ2File`. Si vous avez besoin de décompresser une entrée *multiflux* avec " +"la classe :class:`BZ2Decompressor`, vous devez utiliser un nouveau " +"décompresseur pour chaque flux." -#: ../Doc/library/bz2.rst:185 +#: library/bz2.rst:185 msgid "" "Decompress *data* (a :term:`bytes-like object`), returning uncompressed data " "as bytes. Some of *data* may be buffered internally, for use in later calls " "to :meth:`decompress`. The returned data should be concatenated with the " "output of any previous calls to :meth:`decompress`." msgstr "" +"Décompresse *data* (un :term:`bytes-like object`), renvoyant une donnée non " +"compressée en tant que chaîne d'octets. Certaines de ces *data* peuvent être " +"mises en interne en tampon, pour un usage lors d'appels ultérieurs par la " +"méthode :meth:`decompress`. La donnée renvoyée doit être concaténée avec la " +"sortie des appels précédents à la méthode :meth:`decompress`." -#: ../Doc/library/bz2.rst:191 +#: library/bz2.rst:191 msgid "" "If *max_length* is nonnegative, returns at most *max_length* bytes of " "decompressed data. If this limit is reached and further output can be " @@ -281,104 +368,135 @@ msgid "" "this case, the next call to :meth:`~.decompress` may provide *data* as " "``b''`` to obtain more of the output." msgstr "" +"Si *max_length* est positif, renvoie au plus *max_length* octets de données " +"compressées. Si la limite est atteinte et que d'autres sorties peuvent être " +"produites, l'attribut :attr:`~.needs_input` est positionné sur ``False``. " +"Dans ce cas, lors de l'appel suivant à la méthode :meth:`~.decompress`, vous " +"pouvez fournir ``b''`` dans *data* afin d'obtenir la suite de la sortie." -#: ../Doc/library/bz2.rst:198 +#: library/bz2.rst:198 msgid "" "If all of the input data was decompressed and returned (either because this " "was less than *max_length* bytes, or because *max_length* was negative), " "the :attr:`~.needs_input` attribute will be set to ``True``." msgstr "" +"Si toutes les données entrées ont été décompressées et renvoyées (soit parce " +"qu'il y avait moins de *max_length* octets, ou parce que *max_length* était " +"négatif), l'attribut :attr:`~.needs_input` sera configuré sur ``True``." -#: ../Doc/library/bz2.rst:203 +#: library/bz2.rst:203 msgid "" "Attempting to decompress data after the end of stream is reached raises an " "`EOFError`. Any data found after the end of the stream is ignored and saved " "in the :attr:`~.unused_data` attribute." msgstr "" +"Essayer de décompresser des données après que la fin du flux soit atteinte " +"lève une erreur `EOFError`. Toute donnée trouvée après la fin du flux est " +"ignorée et sauvegardée dans l'attribut :attr:`~.unused_data`." -#: ../Doc/library/bz2.rst:207 +#: library/bz2.rst:207 msgid "Added the *max_length* parameter." msgstr "Ajout du paramètre *max_length*." -#: ../Doc/library/bz2.rst:212 +#: library/bz2.rst:212 msgid "``True`` if the end-of-stream marker has been reached." -msgstr "" +msgstr "``True`` si le marqueur de fin de flux a été atteint." -#: ../Doc/library/bz2.rst:219 +#: library/bz2.rst:219 msgid "Data found after the end of the compressed stream." msgstr "Donnée trouvée après la fin du flux compressé." -#: ../Doc/library/bz2.rst:221 +#: library/bz2.rst:221 msgid "" "If this attribute is accessed before the end of the stream has been reached, " "its value will be ``b''``." msgstr "" +"Si l'attribut est accédé avant que la fin du flux ait été atteint, sa valeur " +"sera ``b''``." -#: ../Doc/library/bz2.rst:226 +#: library/bz2.rst:226 msgid "" "``False`` if the :meth:`.decompress` method can provide more decompressed " "data before requiring new uncompressed input." msgstr "" +"``False`` si la méthode :meth:`.decompress` peut fournir plus de données " +"décompressées avant l'acquisition d'une nouvelle entrée non compressée." -#: ../Doc/library/bz2.rst:233 +#: library/bz2.rst:233 msgid "One-shot (de)compression" msgstr "(Dé)compression en une fois" -#: ../Doc/library/bz2.rst:237 +#: library/bz2.rst:237 msgid "Compress *data*, a :term:`bytes-like object `." -msgstr "" +msgstr "Compresse *data*, un :term:`bytes-like object `." -#: ../Doc/library/bz2.rst:242 +#: library/bz2.rst:242 msgid "For incremental compression, use a :class:`BZ2Compressor` instead." msgstr "" +"Pour la compression incrémentielle, utilisez à la place la classe :class:" +"`BZ2Compressor`." -#: ../Doc/library/bz2.rst:247 +#: library/bz2.rst:247 msgid "Decompress *data*, a :term:`bytes-like object `." -msgstr "" +msgstr "Décompresse *data*, un :term:`bytes-like object `." -#: ../Doc/library/bz2.rst:249 +#: library/bz2.rst:249 msgid "" "If *data* is the concatenation of multiple compressed streams, decompress " "all of the streams." msgstr "" +"Si *data* est la concaténation de multiples flux compressés, décompresse " +"tous les flux." -#: ../Doc/library/bz2.rst:252 +#: library/bz2.rst:252 msgid "For incremental decompression, use a :class:`BZ2Decompressor` instead." msgstr "" +"Pour une décompression incrémentielle, utilisez à la place la classe :class:" +"`BZ2Decompressor`." -#: ../Doc/library/bz2.rst:254 +#: library/bz2.rst:254 msgid "Support for multi-stream inputs was added." -msgstr "" +msgstr "Prise en charge des entrées *multiflux*." -#: ../Doc/library/bz2.rst:260 +#: library/bz2.rst:260 msgid "Examples of usage" msgstr "Exemples d'utilisation" -#: ../Doc/library/bz2.rst:262 +#: library/bz2.rst:262 msgid "Below are some examples of typical usage of the :mod:`bz2` module." msgstr "" +"Ci-dessous, nous présentons quelques exemples typiques de l'utilisation du " +"module :mod:`bz2`." -#: ../Doc/library/bz2.rst:264 +#: library/bz2.rst:264 msgid "" "Using :func:`compress` and :func:`decompress` to demonstrate round-trip " "compression:" msgstr "" +"Utilise les fonctions :func:`compress` et :func:`decompress` pour démontrer " +"une compression aller-retour :" -#: ../Doc/library/bz2.rst:285 +#: library/bz2.rst:282 msgid "Using :class:`BZ2Compressor` for incremental compression:" msgstr "" +"Utilise la classe :class:`BZ2Compressor` pour une compression " +"incrémentielle :" -#: ../Doc/library/bz2.rst:304 +#: library/bz2.rst:300 msgid "" -"The example above uses a very \"nonrandom\" stream of data (a stream of `b\"z" -"\"` chunks). Random data tends to compress poorly, while ordered, " +"The example above uses a very \"nonrandom\" stream of data (a stream of " +"`b\"z\"` chunks). Random data tends to compress poorly, while ordered, " "repetitive data usually yields a high compression ratio." msgstr "" +"L'exemple ci-dessus utilise un flux de données vraiment pas aléatoire (un " +"flux de blocs de `b\"z\"`). Les données aléatoires ont tendance à mal se " +"compresser, alors que les données répétitives ou ordonnées donnent " +"généralement un taux de compression élevé." -#: ../Doc/library/bz2.rst:308 -#, fuzzy +#: library/bz2.rst:304 msgid "Writing and reading a bzip2-compressed file in binary mode:" -msgstr "Ouvre un fichier *bzip2* en mode binaire." +msgstr "" +"Écriture et lecture en mode binaire d'un fichier compressé avec *bzip2* :" #~ msgid "Compress *data*." #~ msgstr "Compresse *data*." diff --git a/library/calendar.po b/library/calendar.po index 97a1d6c4a5..a41d7ac507 100644 --- a/library/calendar.po +++ b/library/calendar.po @@ -5,25 +5,25 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2019-03-20 08:32+0100\n" -"Last-Translator: Alicia BERRAHMA \n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" +"PO-Revision-Date: 2020-05-03 15:34+0200\n" +"Last-Translator: Mathieu Dupuy \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 1.8.11\n" +"X-Generator: Poedit 2.3\n" -#: ../Doc/library/calendar.rst:2 +#: library/calendar.rst:2 msgid ":mod:`calendar` --- General calendar-related functions" -msgstr "" +msgstr ":mod:`calendar` — Fonctions calendaires générales" -#: ../Doc/library/calendar.rst:10 +#: library/calendar.rst:10 msgid "**Source code:** :source:`Lib/calendar.py`" msgstr "**Code source :** :source:`Lib/calendar.py`" -#: ../Doc/library/calendar.rst:14 +#: library/calendar.rst:14 msgid "" "This module allows you to output calendars like the Unix :program:`cal` " "program, and provides additional useful functions related to the calendar. " @@ -41,7 +41,7 @@ msgstr "" "la semaine. Les paramètres pour spécifier les dates sont donnés sous forme " "de nombres entiers. Voir aussi les modules :mod:`datetime` et :mod:`time`." -#: ../Doc/library/calendar.rst:22 +#: library/calendar.rst:22 msgid "" "The functions and classes defined in this module use an idealized calendar, " "the current Gregorian calendar extended indefinitely in both directions. " @@ -60,7 +60,7 @@ msgstr "" "comme prescrit par la norme ISO 8601. L'année 0 est 1 avant JC, l'année `-1` " "est 2 avant JC et ainsi de suite." -#: ../Doc/library/calendar.rst:33 +#: library/calendar.rst:33 msgid "" "Creates a :class:`Calendar` object. *firstweekday* is an integer specifying " "the first day of the week. ``0`` is Monday (the default), ``6`` is Sunday." @@ -69,7 +69,7 @@ msgstr "" "premier jour de la semaine, valant par défaut ``0`` (lundi), pouvant aller " "jusqu'à ``6`` (dimanche)." -#: ../Doc/library/calendar.rst:36 +#: library/calendar.rst:36 msgid "" "A :class:`Calendar` object provides several methods that can be used for " "preparing the calendar data for formatting. This class doesn't do any " @@ -79,11 +79,11 @@ msgstr "" "pour préparer les données du calendrier pour le formatage. Cette classe ne " "fait pas de formatage elle-même. Il s'agit du travail des sous-classes." -#: ../Doc/library/calendar.rst:41 +#: library/calendar.rst:41 msgid ":class:`Calendar` instances have the following methods:" msgstr "Les instances de :class:`Calendar` ont les méthodes suivantes :" -#: ../Doc/library/calendar.rst:45 +#: library/calendar.rst:45 msgid "" "Return an iterator for the week day numbers that will be used for one week. " "The first value from the iterator will be the same as the value of the :attr:" @@ -92,7 +92,7 @@ msgstr "" "Renvoie un itérateur sur les numéros des jours d'une semaine. La première " "valeur est donc la même que la valeur de la propriété :attr:`firstweekday`." -#: ../Doc/library/calendar.rst:52 +#: library/calendar.rst:52 msgid "" "Return an iterator for the month *month* (1--12) in the year *year*. This " "iterator will return all days (as :class:`datetime.date` objects) for the " @@ -104,7 +104,7 @@ msgstr "" "de :class:`datetime.date`) ainsi que tous les jours avant le début du mois " "et après la fin du mois nécessaires pour obtenir des semaines complètes." -#: ../Doc/library/calendar.rst:60 +#: library/calendar.rst:60 msgid "" "Return an iterator for the month *month* in the year *year* similar to :meth:" "`itermonthdates`, but not restricted by the :class:`datetime.date` range. " @@ -116,7 +116,7 @@ msgstr "" "date`. Les jours renvoyés sont simplement les numéros des jours du mois. " "Pour les jours en dehors du mois spécifié, le numéro du jour est ``0``." -#: ../Doc/library/calendar.rst:68 +#: library/calendar.rst:68 msgid "" "Return an iterator for the month *month* in the year *year* similar to :meth:" "`itermonthdates`, but not restricted by the :class:`datetime.date` range. " @@ -128,7 +128,7 @@ msgstr "" "Les jours renvoyés sont des paires composées du numéro du jour dans le mois " "et du numéro du jour dans la semaine." -#: ../Doc/library/calendar.rst:76 +#: library/calendar.rst:76 msgid "" "Return an iterator for the month *month* in the year *year* similar to :meth:" "`itermonthdates`, but not restricted by the :class:`datetime.date` range. " @@ -140,7 +140,7 @@ msgstr "" "date`. Les jours sont renvoyés sous forme de triplets composés du numéro de " "l'année, du mois et du jour dans le mois." -#: ../Doc/library/calendar.rst:86 +#: library/calendar.rst:86 msgid "" "Return an iterator for the month *month* in the year *year* similar to :meth:" "`itermonthdates`, but not restricted by the :class:`datetime.date` range. " @@ -152,7 +152,7 @@ msgstr "" "date`. Le jours sont renvoyés sous forme de quadruplets contenant le numéro " "de l'année, du mois, du jour du mois et du jour de la semaine." -#: ../Doc/library/calendar.rst:96 +#: library/calendar.rst:96 msgid "" "Return a list of the weeks in the month *month* of the *year* as full " "weeks. Weeks are lists of seven :class:`datetime.date` objects." @@ -160,7 +160,7 @@ msgstr "" "Renvoie la liste des semaines complètes du mois *month* de l'année *year*. " "Les semaines sont des listes de sept objets :class:`datetime.date`." -#: ../Doc/library/calendar.rst:102 +#: library/calendar.rst:102 msgid "" "Return a list of the weeks in the month *month* of the *year* as full " "weeks. Weeks are lists of seven tuples of day numbers and weekday numbers." @@ -169,7 +169,7 @@ msgstr "" "Les semaines sont des listes de sept paires contenant le numéro du jour dans " "le mois et du numéro du jour dans la semaine." -#: ../Doc/library/calendar.rst:109 +#: library/calendar.rst:109 msgid "" "Return a list of the weeks in the month *month* of the *year* as full " "weeks. Weeks are lists of seven day numbers." @@ -177,7 +177,7 @@ msgstr "" "Renvoie la liste des semaines complètes du mois *month* de l'année *year*. " "Les semaines sont une liste de sept numéros de jours." -#: ../Doc/library/calendar.rst:115 +#: library/calendar.rst:115 msgid "" "Return the data for the specified year ready for formatting. The return " "value is a list of month rows. Each month row contains up to *width* months " @@ -190,7 +190,7 @@ msgstr "" "de 4 à 6 semaines et chaque semaine 1 à 7 jours. Les jours sont des objets :" "class:`datetime.date`." -#: ../Doc/library/calendar.rst:123 +#: library/calendar.rst:123 msgid "" "Return the data for the specified year ready for formatting (similar to :" "meth:`yeardatescalendar`). Entries in the week lists are tuples of day " @@ -201,7 +201,7 @@ msgstr "" "contenant le numéro du jour du mois et le numéro du jour de la semaine. Les " "numéro des jours en dehors de ce mois sont à zéro." -#: ../Doc/library/calendar.rst:130 +#: library/calendar.rst:130 msgid "" "Return the data for the specified year ready for formatting (similar to :" "meth:`yeardatescalendar`). Entries in the week lists are day numbers. Day " @@ -211,16 +211,16 @@ msgstr "" "meth:`yeardatescalendar`). Les listes de semaines contiennent des numéros de " "jours. Les numéros de jours en dehors de ce mois sont de zéro." -#: ../Doc/library/calendar.rst:137 +#: library/calendar.rst:137 msgid "This class can be used to generate plain text calendars." msgstr "" "Cette classe peut être utilisée pour générer des calendriers en texte brut." -#: ../Doc/library/calendar.rst:139 +#: library/calendar.rst:139 msgid ":class:`TextCalendar` instances have the following methods:" msgstr "Les instances :class:`TextCalendar` exposent les méthodes suivantes :" -#: ../Doc/library/calendar.rst:143 +#: library/calendar.rst:143 msgid "" "Return a month's calendar in a multi-line string. If *w* is provided, it " "specifies the width of the date columns, which are centered. If *l* is " @@ -234,12 +234,12 @@ msgstr "" "Le résultat varie en fonction du premier jour de la semaine spécifié dans le " "constructeur ou défini par la méthode :meth:`setfirstweekday`." -#: ../Doc/library/calendar.rst:152 +#: library/calendar.rst:152 msgid "Print a month's calendar as returned by :meth:`formatmonth`." msgstr "" "Affiche le calendrier d'un mois tel que renvoyé par :meth:`formatmonth`." -#: ../Doc/library/calendar.rst:157 +#: library/calendar.rst:157 msgid "" "Return a *m*-column calendar for an entire year as a multi-line string. " "Optional parameters *w*, *l*, and *c* are for date column width, lines per " @@ -256,35 +256,40 @@ msgstr "" "méthode :meth:`setfirstweekday`. La première année pour laquelle un " "calendrier peut être généré, dépend de la plateforme." -#: ../Doc/library/calendar.rst:167 +#: library/calendar.rst:167 msgid "" "Print the calendar for an entire year as returned by :meth:`formatyear`." msgstr "" "Affiche le calendrier pour une année entière comme renvoyé par :meth:" "`formatyear`." -#: ../Doc/library/calendar.rst:172 +#: library/calendar.rst:172 msgid "This class can be used to generate HTML calendars." msgstr "Cette classe peut être utilisée pour générer des calendriers HTML." -#: ../Doc/library/calendar.rst:175 +#: library/calendar.rst:175 msgid ":class:`!HTMLCalendar` instances have the following methods:" msgstr "" "Les instances de :class:`!HTMLCalendar` utilisent les méthodes suivantes :" -#: ../Doc/library/calendar.rst:179 +#: library/calendar.rst:179 msgid "" "Return a month's calendar as an HTML table. If *withyear* is true the year " "will be included in the header, otherwise just the month name will be used." msgstr "" +"Renvoie le calendrier d'un mois sous la forme d'une table HTML. Si " +"*withyear* est vrai l'année sera inclue dans l'en-tête, sinon seul le nom du " +"mois sera utilisé." -#: ../Doc/library/calendar.rst:186 +#: library/calendar.rst:186 msgid "" "Return a year's calendar as an HTML table. *width* (defaulting to 3) " "specifies the number of months per row." msgstr "" +"Renvoie le calendrier d'une année sous la forme d'une table HTML. *width* " +"(par défaut à 3) spécifie le nombre de mois par ligne." -#: ../Doc/library/calendar.rst:192 +#: library/calendar.rst:192 msgid "" "Return a year's calendar as a complete HTML page. *width* (defaulting to 3) " "specifies the number of months per row. *css* is the name for the cascading " @@ -292,173 +297,247 @@ msgid "" "be used. *encoding* specifies the encoding to be used for the output " "(defaulting to the system default encoding)." msgstr "" +"Renvoie le calendrier d'une année sous la forme d'une page HTML complète. " +"*width* (par défaut à 3) spécifie le nombre de mois par ligne. *css* est le " +"nom de la feuille de style en cascade à utiliser. :const:`None` peut être " +"passé si aucune feuille de style ne doit être utilisée. *encoding* spécifie " +"l'encodage à utiliser pour les données de sortie (par défaut l'encodage par " +"défaut du système)." -#: ../Doc/library/calendar.rst:199 +#: library/calendar.rst:199 msgid "" ":class:`!HTMLCalendar` has the following attributes you can override to " "customize the CSS classes used by the calendar:" msgstr "" +":class:`!HTMLCalendar` possède les attributs suivants que vous pouvez " +"surcharger pour personnaliser les classes CSS utilisées par le calendrier :" -#: ../Doc/library/calendar.rst:204 +#: library/calendar.rst:204 msgid "" "A list of CSS classes used for each weekday. The default class list is::" msgstr "" +"Une liste de classes CSS utilisées pour chaque jour de la semaine. La liste " +"par défaut de la classe est ::" -#: ../Doc/library/calendar.rst:208 +#: library/calendar.rst:208 msgid "more styles can be added for each day::" -msgstr "" +msgstr "davantage de styles peuvent être ajoutés pour chaque jour ::" -#: ../Doc/library/calendar.rst:212 +#: library/calendar.rst:212 msgid "Note that the length of this list must be seven items." -msgstr "" +msgstr "Notez que la longueur de cette liste doit être de sept éléments." -#: ../Doc/library/calendar.rst:217 +#: library/calendar.rst:217 msgid "The CSS class for a weekday occurring in the previous or coming month." msgstr "" +"La classe CSS pour le jour de la semaine apparaissant dans le mois précédent " +"ou à venir." -#: ../Doc/library/calendar.rst:224 +#: library/calendar.rst:224 msgid "" "A list of CSS classes used for weekday names in the header row. The default " "is the same as :attr:`cssclasses`." msgstr "" +"Une liste de classes CSS utilisées pour les noms des jours de la semaine " +"dans la ligne d'en-tête. Par défaut les mêmes que :attr:`cssclasses`." -#: ../Doc/library/calendar.rst:232 +#: library/calendar.rst:232 msgid "" "The month's head CSS class (used by :meth:`formatmonthname`). The default " "value is ``\"month\"``." msgstr "" +"La classe CSS du mois en en-tête (utilisé par :meth:`formatmonthname`). La " +"valeur par défaut est ``\"month\"``." -#: ../Doc/library/calendar.rst:240 +#: library/calendar.rst:240 msgid "" "The CSS class for the whole month's table (used by :meth:`formatmonth`). The " "default value is ``\"month\"``." msgstr "" +"La classe CSS pour la table du mois entière (utilisé par :meth:" +"`formatmonth`). La valeur par défaut est ``\"month\"``." -#: ../Doc/library/calendar.rst:248 +#: library/calendar.rst:248 msgid "" "The CSS class for the whole year's table of tables (used by :meth:" "`formatyear`). The default value is ``\"year\"``." msgstr "" +"La classe CSS pour la table entière des tables de l'année (utilisé par :meth:" +"`formatyear`). La valeur par défaut est ``\"year\"``." -#: ../Doc/library/calendar.rst:256 +#: library/calendar.rst:256 msgid "" "The CSS class for the table head for the whole year (used by :meth:" "`formatyear`). The default value is ``\"year\"``." msgstr "" +"La classe CSS pour l'en-tête de la table pour l'année entière (utilisé par :" +"meth:`formatyear`). La valeur par défaut est ``\"year\"``." -#: ../Doc/library/calendar.rst:262 +#: library/calendar.rst:262 msgid "" "Note that although the naming for the above described class attributes is " "singular (e.g. ``cssclass_month`` ``cssclass_noday``), one can replace the " "single CSS class with a space separated list of CSS classes, for example::" msgstr "" +"Notez que même si le nommage ci-dessus des attributs de classe est au " +"singulier (p. ex. ``cssclass_month`` ``cssclass_noday``), on peut remplacer " +"la seule classe CSS par une liste de classes CSS séparées par une espace, " +"par exemple ::" -#: ../Doc/library/calendar.rst:268 +#: library/calendar.rst:268 msgid "Here is an example how :class:`!HTMLCalendar` can be customized::" msgstr "" +"Voici un exemple de comment peut être personnalisée :class:`!HTMLCalendar` ::" -#: ../Doc/library/calendar.rst:280 +#: library/calendar.rst:280 msgid "" "This subclass of :class:`TextCalendar` can be passed a locale name in the " "constructor and will return month and weekday names in the specified locale. " "If this locale includes an encoding all strings containing month and weekday " "names will be returned as unicode." msgstr "" +"Le constructeur de cette sous-classe de :class:`TextCalendar` accepte un " +"paramètre régional *locale* : une langue au format ``\"fr_FR.UTF-8\"``, et " +"renvoie les noms de mois et de jours de la semaine traduits dans cette " +"langue. Si ce lieu possède un encodage, toutes les chaînes contenant des " +"noms de mois ou de jours de la semaine seront renvoyées en Unicode." -#: ../Doc/library/calendar.rst:288 +#: library/calendar.rst:288 msgid "" "This subclass of :class:`HTMLCalendar` can be passed a locale name in the " "constructor and will return month and weekday names in the specified locale. " "If this locale includes an encoding all strings containing month and weekday " "names will be returned as unicode." msgstr "" +"Cette sous-classe de :class:`HTMLCalendar` peut recevoir un nom de lieu dans " +"le constructeur et renvoie les noms de mois et de jours de la semaine selon " +"le lieu spécifié. Si ce lieu possède un encodage, toutes les chaînes " +"contenant des noms de mois ou de jours de la semaine seront renvoyées en " +"Unicode." -#: ../Doc/library/calendar.rst:295 +#: library/calendar.rst:295 msgid "" "The :meth:`formatweekday` and :meth:`formatmonthname` methods of these two " "classes temporarily change the current locale to the given *locale*. " "Because the current locale is a process-wide setting, they are not thread-" "safe." msgstr "" +"Les méthodes :meth:`formatweekday` et :meth:`formatmonthname` de ces deux " +"classes changent temporairement le paramètre régional courant pour le " +"paramètre donné via *locale* . Comme le paramètre régional est un réglage de " +"l'ensemble du processus, elles ne sont pas utilisables de manière sûre avec " +"les programmes à fils d'exécution multiples." -#: ../Doc/library/calendar.rst:300 +#: library/calendar.rst:300 msgid "For simple text calendars this module provides the following functions." msgstr "" +"Pour les calendriers texte simples ce module fournit les fonctions suivantes." -#: ../Doc/library/calendar.rst:304 +#: library/calendar.rst:304 msgid "" "Sets the weekday (``0`` is Monday, ``6`` is Sunday) to start each week. The " "values :const:`MONDAY`, :const:`TUESDAY`, :const:`WEDNESDAY`, :const:" "`THURSDAY`, :const:`FRIDAY`, :const:`SATURDAY`, and :const:`SUNDAY` are " "provided for convenience. For example, to set the first weekday to Sunday::" msgstr "" +"Fixe le jour de la semaine (``0`` pour lundi, ``6`` pour dimanche) qui " +"débute chaque semaine. Les valeurs :const:`MONDAY`, :const:`TUESDAY`, :const:" +"`WEDNESDAY`, :const:`THURSDAY`, :const:`FRIDAY`, :const:`SATURDAY`, et :" +"const:`SUNDAY` sont fournies par commodité. Par exemple, pour fixer le " +"premier jour de la semaine à dimanche ::" -#: ../Doc/library/calendar.rst:315 +#: library/calendar.rst:315 msgid "Returns the current setting for the weekday to start each week." msgstr "" +"Renvoie le réglage courant pour le jour de la semaine débutant chaque " +"semaine." -#: ../Doc/library/calendar.rst:320 +#: library/calendar.rst:320 msgid "" "Returns :const:`True` if *year* is a leap year, otherwise :const:`False`." msgstr "" +"Renvoie :const:`True` si *year* est une année bissextile, sinon :const:" +"`False`." -#: ../Doc/library/calendar.rst:325 +#: library/calendar.rst:325 msgid "" "Returns the number of leap years in the range from *y1* to *y2* (exclusive), " "where *y1* and *y2* are years." msgstr "" +"Renvoie le nombre d'années bissextiles dans la période de *y1* à *y2* (non " +"inclus), où *y1* et *y2* sont des années." -#: ../Doc/library/calendar.rst:328 +#: library/calendar.rst:328 msgid "This function works for ranges spanning a century change." msgstr "" +"Cette fonction marche pour les périodes couvrant un changement de siècle." -#: ../Doc/library/calendar.rst:333 +#: library/calendar.rst:333 msgid "" "Returns the day of the week (``0`` is Monday) for *year* (``1970``--...), " "*month* (``1``--``12``), *day* (``1``--``31``)." msgstr "" +"Renvoie le jour de la semaine (``0`` pour lundi) pour *year* (``1970``-- …), " +"*month* (``1``--``12``), *day* (``1``--``31``)." -#: ../Doc/library/calendar.rst:339 +#: library/calendar.rst:339 msgid "" "Return a header containing abbreviated weekday names. *n* specifies the " "width in characters for one weekday." msgstr "" +"Renvoie un en-tête contenant les jours de la semaine en abrégé. *n* spécifie " +"la largeur en caractères pour un jour de la semaine." -#: ../Doc/library/calendar.rst:345 +#: library/calendar.rst:345 msgid "" "Returns weekday of first day of the month and number of days in month, for " "the specified *year* and *month*." msgstr "" +"Renvoie le jour de la semaine correspondant au premier jour du mois et le " +"nombre de jours dans le mois, pour l'année *year* et le mois *month* " +"spécifiés." -#: ../Doc/library/calendar.rst:351 +#: library/calendar.rst:351 +#, fuzzy msgid "" "Returns a matrix representing a month's calendar. Each row represents a " -"week; days outside of the month a represented by zeros. Each week begins " +"week; days outside of the month are represented by zeros. Each week begins " "with Monday unless set by :func:`setfirstweekday`." msgstr "" +"Renvoie une matrice représentant le calendrier d'un mois. Chaque ligne " +"représente une semaine ; les jours en dehors du mois sont représentés par " +"des zéros. Chaque semaine débute avec le lundi à moins de l'avoir modifié " +"avec :func:`setfirstweekday`." -#: ../Doc/library/calendar.rst:358 +#: library/calendar.rst:358 msgid "Prints a month's calendar as returned by :func:`month`." -msgstr "" +msgstr "Affiche le calendrier d'un mois tel que renvoyé par :func:`month`." -#: ../Doc/library/calendar.rst:363 +#: library/calendar.rst:363 msgid "" "Returns a month's calendar in a multi-line string using the :meth:" "`formatmonth` of the :class:`TextCalendar` class." msgstr "" +"Renvoie le calendrier d'un mois dans une chaîne multi-lignes en utilisant la " +"méthode :meth:`formatmonth` de la classe :class:`TextCalendar`." -#: ../Doc/library/calendar.rst:369 +#: library/calendar.rst:369 msgid "" "Prints the calendar for an entire year as returned by :func:`calendar`." msgstr "" +"Affiche le calendrier pour une année entière tel que renvoyé par :func:" +"`calendar`." -#: ../Doc/library/calendar.rst:374 +#: library/calendar.rst:374 msgid "" "Returns a 3-column calendar for an entire year as a multi-line string using " "the :meth:`formatyear` of the :class:`TextCalendar` class." msgstr "" +"Renvoie un calendrier sur 3 colonnes pour une année entière dans une chaîne " +"multi-lignes en utilisant la méthode :meth:`formatyear` de la classe :class:" +"`TextCalendar`." -#: ../Doc/library/calendar.rst:380 +#: library/calendar.rst:380 msgid "" "An unrelated but handy function that takes a time tuple such as returned by " "the :func:`~time.gmtime` function in the :mod:`time` module, and returns the " @@ -466,49 +545,68 @@ msgid "" "encoding. In fact, :func:`time.gmtime` and :func:`timegm` are each others' " "inverse." msgstr "" +"Une fonction sans rapport mais pratique, qui prend un n-uplet temporel tel " +"que celui renvoyé par la fonction :func:`~time.gmtime` dans le module :mod:" +"`time`, et renvoie la valeur d'horodatage Unix (*timestamp* en anglais) " +"correspondante, en supposant une époque de 1970, et l'encodage POSIX. En " +"fait, :func:`time.gmtime` et :func:`timegm` sont l'inverse l'un de l'autre." -#: ../Doc/library/calendar.rst:387 +#: library/calendar.rst:387 msgid "The :mod:`calendar` module exports the following data attributes:" -msgstr "" +msgstr "Le module :mod:`calendar` exporte les attributs suivants :" -#: ../Doc/library/calendar.rst:391 +#: library/calendar.rst:391 msgid "An array that represents the days of the week in the current locale." msgstr "" +"Un tableau qui représente les jours de la semaine pour les paramètres " +"régionaux actifs." -#: ../Doc/library/calendar.rst:396 +#: library/calendar.rst:396 msgid "" "An array that represents the abbreviated days of the week in the current " "locale." msgstr "" +"Un tableau qui représente les jours de la semaine en abrégé pour les " +"paramètres régionaux actifs." -#: ../Doc/library/calendar.rst:401 +#: library/calendar.rst:401 msgid "" "An array that represents the months of the year in the current locale. This " "follows normal convention of January being month number 1, so it has a " "length of 13 and ``month_name[0]`` is the empty string." msgstr "" +"Un tableau qui représente les mois de l'année pour les paramètres régionaux " +"actifs. Ceux-ci respectent la convention usuelle où janvier est le mois " +"numéro 1, donc il a une longueur de 13 et ``month_name[0]`` est la chaîne " +"vide." -#: ../Doc/library/calendar.rst:408 +#: library/calendar.rst:408 msgid "" "An array that represents the abbreviated months of the year in the current " "locale. This follows normal convention of January being month number 1, so " "it has a length of 13 and ``month_abbr[0]`` is the empty string." msgstr "" +"Un tableau qui représente les mois de l'année en abrégé pour les paramètres " +"régionaux actifs. Celui-ci respectent la convention usuelle où janvier est " +"le mois numéro 1, donc il a une longueur de 13 et ``month_name[0]`` est la " +"chaîne vide." -#: ../Doc/library/calendar.rst:417 +#: library/calendar.rst:417 msgid "Module :mod:`datetime`" msgstr "Module :mod:`datetime`" -#: ../Doc/library/calendar.rst:416 +#: library/calendar.rst:416 msgid "" "Object-oriented interface to dates and times with similar functionality to " "the :mod:`time` module." msgstr "" +"Interface orientée objet pour les dates et les heures avec des " +"fonctionnalités similaires au module :mod:`time`." -#: ../Doc/library/calendar.rst:419 +#: library/calendar.rst:419 msgid "Module :mod:`time`" msgstr "Module :mod:`time`" -#: ../Doc/library/calendar.rst:420 +#: library/calendar.rst:420 msgid "Low-level time related functions." -msgstr "" +msgstr "Fonctions bas niveau relatives au temps." diff --git a/library/cgi.po b/library/cgi.po index f883992b77..3d74902398 100644 --- a/library/cgi.po +++ b/library/cgi.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,35 +14,35 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/library/cgi.rst:2 +#: library/cgi.rst:2 msgid ":mod:`cgi` --- Common Gateway Interface support" msgstr "" -#: ../Doc/library/cgi.rst:7 +#: library/cgi.rst:7 msgid "**Source code:** :source:`Lib/cgi.py`" msgstr "**Code source :** :source:`Lib/cgi.py`" -#: ../Doc/library/cgi.rst:19 +#: library/cgi.rst:19 msgid "Support module for Common Gateway Interface (CGI) scripts." msgstr "" -#: ../Doc/library/cgi.rst:21 +#: library/cgi.rst:21 msgid "" "This module defines a number of utilities for use by CGI scripts written in " "Python." msgstr "" -#: ../Doc/library/cgi.rst:26 +#: library/cgi.rst:26 msgid "Introduction" msgstr "Introduction" -#: ../Doc/library/cgi.rst:30 +#: library/cgi.rst:30 msgid "" "A CGI script is invoked by an HTTP server, usually to process user input " "submitted through an HTML ``
`` or ```` element." msgstr "" -#: ../Doc/library/cgi.rst:33 +#: library/cgi.rst:33 msgid "" "Most often, CGI scripts live in the server's special :file:`cgi-bin` " "directory. The HTTP server places all sorts of information about the request " @@ -51,7 +51,7 @@ msgid "" "script, and sends the script's output back to the client." msgstr "" -#: ../Doc/library/cgi.rst:39 +#: library/cgi.rst:39 msgid "" "The script's input is connected to the client too, and sometimes the form " "data is read this way; at other times the form data is passed via the " @@ -62,7 +62,7 @@ msgid "" "supports it)." msgstr "" -#: ../Doc/library/cgi.rst:46 +#: library/cgi.rst:46 msgid "" "The output of a CGI script should consist of two sections, separated by a " "blank line. The first section contains a number of headers, telling the " @@ -70,26 +70,26 @@ msgid "" "header section looks like this::" msgstr "" -#: ../Doc/library/cgi.rst:54 +#: library/cgi.rst:54 msgid "" "The second section is usually HTML, which allows the client software to " "display nicely formatted text with header, in-line images, etc. Here's " "Python code that prints a simple piece of HTML::" msgstr "" -#: ../Doc/library/cgi.rst:66 +#: library/cgi.rst:66 msgid "Using the cgi module" msgstr "" -#: ../Doc/library/cgi.rst:68 +#: library/cgi.rst:68 msgid "Begin by writing ``import cgi``." msgstr "" -#: ../Doc/library/cgi.rst:70 +#: library/cgi.rst:70 msgid "When you write a new script, consider adding these lines::" msgstr "" -#: ../Doc/library/cgi.rst:75 +#: library/cgi.rst:75 msgid "" "This activates a special exception handler that will display detailed " "reports in the Web browser if any errors occur. If you'd rather not show " @@ -97,7 +97,7 @@ msgid "" "saved to files instead, with code like this::" msgstr "" -#: ../Doc/library/cgi.rst:83 +#: library/cgi.rst:83 msgid "" "It's very helpful to use this feature during script development. The reports " "produced by :mod:`cgitb` provide information that can save you a lot of time " @@ -105,7 +105,7 @@ msgid "" "you have tested your script and are confident that it works correctly." msgstr "" -#: ../Doc/library/cgi.rst:88 +#: library/cgi.rst:88 msgid "" "To get at submitted form data, use the :class:`FieldStorage` class. If the " "form contains non-ASCII characters, use the *encoding* keyword parameter set " @@ -117,7 +117,7 @@ msgid "" "consume standard input, it should be instantiated only once." msgstr "" -#: ../Doc/library/cgi.rst:97 +#: library/cgi.rst:97 msgid "" "The :class:`FieldStorage` instance can be indexed like a Python dictionary. " "It allows membership testing with the :keyword:`in` operator, and also " @@ -128,14 +128,14 @@ msgid "" "class:`FieldStorage` instance." msgstr "" -#: ../Doc/library/cgi.rst:105 +#: library/cgi.rst:105 msgid "" "For instance, the following code (which assumes that the :mailheader:" "`Content-Type` header and blank line have already been printed) checks that " "the fields ``name`` and ``addr`` are both set to a non-empty string::" msgstr "" -#: ../Doc/library/cgi.rst:119 +#: library/cgi.rst:119 msgid "" "Here the fields, accessed through ``form[key]``, are themselves instances " "of :class:`FieldStorage` (or :class:`MiniFieldStorage`, depending on the " @@ -145,7 +145,7 @@ msgid "" "second argument as a default to return if the requested key is not present." msgstr "" -#: ../Doc/library/cgi.rst:126 +#: library/cgi.rst:126 msgid "" "If the submitted form data contains more than one field with the same name, " "the object retrieved by ``form[key]`` is not a :class:`FieldStorage` or :" @@ -158,7 +158,7 @@ msgid "" "username fields, separated by commas::" msgstr "" -#: ../Doc/library/cgi.rst:139 +#: library/cgi.rst:139 msgid "" "If a field represents an uploaded file, accessing the value via the :attr:" "`~FieldStorage.value` attribute or the :meth:`~FieldStorage.getvalue` method " @@ -171,13 +171,13 @@ msgid "" "IOBase.readline` methods will return bytes)::" msgstr "" -#: ../Doc/library/cgi.rst:159 +#: library/cgi.rst:159 msgid "" ":class:`FieldStorage` objects also support being used in a :keyword:`with` " "statement, which will automatically close them when done." msgstr "" -#: ../Doc/library/cgi.rst:162 +#: library/cgi.rst:162 msgid "" "If an error is encountered when obtaining the contents of an uploaded file " "(for example, when the user interrupts the form submission by clicking on a " @@ -185,7 +185,7 @@ msgid "" "object for the field will be set to the value -1." msgstr "" -#: ../Doc/library/cgi.rst:167 +#: library/cgi.rst:167 msgid "" "The file upload draft standard entertains the possibility of uploading " "multiple files from one field (using a recursive :mimetype:`multipart/\\*` " @@ -196,7 +196,7 @@ msgid "" "be iterated over recursively just like the top-level form object." msgstr "" -#: ../Doc/library/cgi.rst:175 +#: library/cgi.rst:175 msgid "" "When a form is submitted in the \"old\" format (as the query string or as a " "single data part of type :mimetype:`application/x-www-form-urlencoded`), the " @@ -205,29 +205,29 @@ msgid "" "are always ``None``." msgstr "" -#: ../Doc/library/cgi.rst:180 +#: library/cgi.rst:180 msgid "" "A form submitted via POST that also has a query string will contain both :" "class:`FieldStorage` and :class:`MiniFieldStorage` items." msgstr "" -#: ../Doc/library/cgi.rst:183 +#: library/cgi.rst:183 msgid "" "The :attr:`~FieldStorage.file` attribute is automatically closed upon the " "garbage collection of the creating :class:`FieldStorage` instance." msgstr "" -#: ../Doc/library/cgi.rst:187 +#: library/cgi.rst:187 msgid "" "Added support for the context management protocol to the :class:" "`FieldStorage` class." msgstr "" -#: ../Doc/library/cgi.rst:193 +#: library/cgi.rst:193 msgid "Higher Level Interface" msgstr "" -#: ../Doc/library/cgi.rst:195 +#: library/cgi.rst:195 msgid "" "The previous section explains how to read CGI form data using the :class:" "`FieldStorage` class. This section describes a higher level interface which " @@ -237,33 +237,33 @@ msgid "" "efficiently, for example." msgstr "" -#: ../Doc/library/cgi.rst:204 +#: library/cgi.rst:204 msgid "" "The interface consists of two simple methods. Using the methods you can " "process form data in a generic way, without the need to worry whether only " "one or more values were posted under one name." msgstr "" -#: ../Doc/library/cgi.rst:208 +#: library/cgi.rst:208 msgid "" "In the previous section, you learned to write following code anytime you " "expected a user to post more than one value under one name::" msgstr "" -#: ../Doc/library/cgi.rst:217 +#: library/cgi.rst:217 msgid "" "This situation is common for example when a form contains a group of " "multiple checkboxes with the same name::" msgstr "" -#: ../Doc/library/cgi.rst:223 +#: library/cgi.rst:223 msgid "" "In most situations, however, there's only one form control with a particular " "name in a form and then you expect and need only one value associated with " "this name. So you write a script containing for example this code::" msgstr "" -#: ../Doc/library/cgi.rst:229 +#: library/cgi.rst:229 msgid "" "The problem with the code is that you should never expect that a client will " "provide valid input to your scripts. For example, if a curious user appends " @@ -274,21 +274,21 @@ msgid "" "an :exc:`AttributeError` exception." msgstr "" -#: ../Doc/library/cgi.rst:237 +#: library/cgi.rst:237 msgid "" "Therefore, the appropriate way to read form data values was to always use " "the code which checks whether the obtained value is a single value or a list " "of values. That's annoying and leads to less readable scripts." msgstr "" -#: ../Doc/library/cgi.rst:241 +#: library/cgi.rst:241 msgid "" "A more convenient approach is to use the methods :meth:`~FieldStorage." "getfirst` and :meth:`~FieldStorage.getlist` provided by this higher level " "interface." msgstr "" -#: ../Doc/library/cgi.rst:247 +#: library/cgi.rst:247 msgid "" "This method always returns only one value associated with form field *name*. " "The method returns only the first value in case that more values were posted " @@ -299,7 +299,7 @@ msgid "" "defaults to ``None`` if not specified." msgstr "" -#: ../Doc/library/cgi.rst:258 +#: library/cgi.rst:258 msgid "" "This method always returns a list of values associated with form field " "*name*. The method returns an empty list if no such form field or value " @@ -307,28 +307,32 @@ msgid "" "such value exists." msgstr "" -#: ../Doc/library/cgi.rst:262 +#: library/cgi.rst:262 msgid "Using these methods you can write nice compact code::" msgstr "" -#: ../Doc/library/cgi.rst:274 +#: library/cgi.rst:274 msgid "Functions" msgstr "Fonctions" -#: ../Doc/library/cgi.rst:276 +#: library/cgi.rst:276 msgid "" "These are useful if you want more control, or if you want to employ some of " "the algorithms implemented in this module in other circumstances." msgstr "" -#: ../Doc/library/cgi.rst:282 +#: library/cgi.rst:282 msgid "" "Parse a query in the environment or from a file (the file defaults to ``sys." -"stdin``). The *keep_blank_values* and *strict_parsing* parameters are " -"passed to :func:`urllib.parse.parse_qs` unchanged." +"stdin``). The *keep_blank_values*, *strict_parsing* and *separator* " +"parameters are passed to :func:`urllib.parse.parse_qs` unchanged." msgstr "" -#: ../Doc/library/cgi.rst:289 +#: library/cgi.rst:308 +msgid "Added the *separator* parameter." +msgstr "" + +#: library/cgi.rst:291 msgid "" "Parse input of type :mimetype:`multipart/form-data` (for file uploads). " "Arguments are *fp* for the input file, *pdict* for a dictionary containing " @@ -336,59 +340,59 @@ msgid "" "the request encoding." msgstr "" -#: ../Doc/library/cgi.rst:294 +#: library/cgi.rst:296 msgid "" "Returns a dictionary just like :func:`urllib.parse.parse_qs`: keys are the " "field names, each value is a list of values for that field. For non-file " "fields, the value is a list of strings." msgstr "" -#: ../Doc/library/cgi.rst:298 +#: library/cgi.rst:300 msgid "" "This is easy to use but not much good if you are expecting megabytes to be " "uploaded --- in that case, use the :class:`FieldStorage` class instead which " "is much more flexible." msgstr "" -#: ../Doc/library/cgi.rst:302 +#: library/cgi.rst:304 msgid "" "Added the *encoding* and *errors* parameters. For non-file fields, the " "value is now a list of strings, not bytes." msgstr "" -#: ../Doc/library/cgi.rst:309 +#: library/cgi.rst:314 msgid "" "Parse a MIME header (such as :mailheader:`Content-Type`) into a main value " "and a dictionary of parameters." msgstr "" -#: ../Doc/library/cgi.rst:315 +#: library/cgi.rst:320 msgid "" "Robust test CGI script, usable as main program. Writes minimal HTTP headers " "and formats all information provided to the script in HTML form." msgstr "" -#: ../Doc/library/cgi.rst:321 +#: library/cgi.rst:326 msgid "Format the shell environment in HTML." msgstr "" -#: ../Doc/library/cgi.rst:326 +#: library/cgi.rst:331 msgid "Format a form in HTML." msgstr "" -#: ../Doc/library/cgi.rst:331 +#: library/cgi.rst:336 msgid "Format the current directory in HTML." msgstr "" -#: ../Doc/library/cgi.rst:336 +#: library/cgi.rst:341 msgid "Print a list of useful (used by CGI) environment variables in HTML." msgstr "" -#: ../Doc/library/cgi.rst:342 +#: library/cgi.rst:347 msgid "Caring about security" msgstr "" -#: ../Doc/library/cgi.rst:346 +#: library/cgi.rst:351 msgid "" "There's one important rule: if you invoke an external program (via the :func:" "`os.system` or :func:`os.popen` functions. or others with similar " @@ -399,25 +403,25 @@ msgid "" "cannot be trusted, since the request doesn't have to come from your form!" msgstr "" -#: ../Doc/library/cgi.rst:354 +#: library/cgi.rst:359 msgid "" "To be on the safe side, if you must pass a string gotten from a form to a " "shell command, you should make sure the string contains only alphanumeric " "characters, dashes, underscores, and periods." msgstr "" -#: ../Doc/library/cgi.rst:360 +#: library/cgi.rst:365 msgid "Installing your CGI script on a Unix system" msgstr "" -#: ../Doc/library/cgi.rst:362 +#: library/cgi.rst:367 msgid "" "Read the documentation for your HTTP server and check with your local system " "administrator to find the directory where CGI scripts should be installed; " "usually this is in a directory :file:`cgi-bin` in the server tree." msgstr "" -#: ../Doc/library/cgi.rst:366 +#: library/cgi.rst:371 msgid "" "Make sure that your script is readable and executable by \"others\"; the " "Unix file mode should be ``0o755`` octal (use ``chmod 0755 filename``). " @@ -425,12 +429,12 @@ msgid "" "column 1 followed by the pathname of the Python interpreter, for instance::" msgstr "" -#: ../Doc/library/cgi.rst:373 +#: library/cgi.rst:378 msgid "" "Make sure the Python interpreter exists and is executable by \"others\"." msgstr "" -#: ../Doc/library/cgi.rst:375 +#: library/cgi.rst:380 msgid "" "Make sure that any files your script needs to read or write are readable or " "writable, respectively, by \"others\" --- their mode should be ``0o644`` for " @@ -445,28 +449,28 @@ msgid "" "anything interesting." msgstr "" -#: ../Doc/library/cgi.rst:386 +#: library/cgi.rst:391 msgid "" "If you need to load modules from a directory which is not on Python's " "default module search path, you can change the path in your script, before " "importing other modules. For example::" msgstr "" -#: ../Doc/library/cgi.rst:394 +#: library/cgi.rst:399 msgid "(This way, the directory inserted last will be searched first!)" msgstr "" -#: ../Doc/library/cgi.rst:396 +#: library/cgi.rst:401 msgid "" "Instructions for non-Unix systems will vary; check your HTTP server's " "documentation (it will usually have a section on CGI scripts)." msgstr "" -#: ../Doc/library/cgi.rst:401 +#: library/cgi.rst:406 msgid "Testing your CGI script" msgstr "" -#: ../Doc/library/cgi.rst:403 +#: library/cgi.rst:408 msgid "" "Unfortunately, a CGI script will generally not run when you try it from the " "command line, and a script that works perfectly from the command line may " @@ -476,17 +480,17 @@ msgid "" "will most likely send a cryptic error to the client." msgstr "" -#: ../Doc/library/cgi.rst:410 +#: library/cgi.rst:415 msgid "" "Assuming your script has no syntax errors, yet it does not work, you have no " "choice but to read the next section." msgstr "" -#: ../Doc/library/cgi.rst:415 +#: library/cgi.rst:420 msgid "Debugging CGI scripts" msgstr "" -#: ../Doc/library/cgi.rst:419 +#: library/cgi.rst:424 msgid "" "First of all, check for trivial installation errors --- reading the section " "above on installing your CGI script carefully can save you a lot of time. " @@ -499,7 +503,7 @@ msgid "" "your browser of the form:" msgstr "" -#: ../Doc/library/cgi.rst:432 +#: library/cgi.rst:437 msgid "" "If this gives an error of type 404, the server cannot find the script -- " "perhaps you need to install it in a different directory. If it gives " @@ -511,19 +515,19 @@ msgid "" "same procedure for your own script, you should now be able to debug it." msgstr "" -#: ../Doc/library/cgi.rst:441 +#: library/cgi.rst:446 msgid "" "The next step could be to call the :mod:`cgi` module's :func:`test` function " "from your script: replace its main code with the single statement ::" msgstr "" -#: ../Doc/library/cgi.rst:446 +#: library/cgi.rst:451 msgid "" "This should produce the same results as those gotten from installing the :" "file:`cgi.py` file itself." msgstr "" -#: ../Doc/library/cgi.rst:449 +#: library/cgi.rst:454 msgid "" "When an ordinary Python script raises an unhandled exception (for whatever " "reason: of a typo in a module name, a file that can't be opened, etc.), the " @@ -533,28 +537,28 @@ msgid "" "or be discarded altogether." msgstr "" -#: ../Doc/library/cgi.rst:456 +#: library/cgi.rst:461 msgid "" "Fortunately, once you have managed to get your script to execute *some* " "code, you can easily send tracebacks to the Web browser using the :mod:" "`cgitb` module. If you haven't done so already, just add the lines::" msgstr "" -#: ../Doc/library/cgi.rst:463 +#: library/cgi.rst:468 msgid "" "to the top of your script. Then try running it again; when a problem " "occurs, you should see a detailed report that will likely make apparent the " "cause of the crash." msgstr "" -#: ../Doc/library/cgi.rst:467 +#: library/cgi.rst:472 msgid "" "If you suspect that there may be a problem in importing the :mod:`cgitb` " "module, you can use an even more robust approach (which only uses built-in " "modules)::" msgstr "" -#: ../Doc/library/cgi.rst:476 +#: library/cgi.rst:481 msgid "" "This relies on the Python interpreter to print the traceback. The content " "type of the output is set to plain text, which disables all HTML " @@ -564,47 +568,47 @@ msgid "" "interpretation is going on, the traceback will be readable." msgstr "" -#: ../Doc/library/cgi.rst:485 +#: library/cgi.rst:490 msgid "Common problems and solutions" msgstr "" -#: ../Doc/library/cgi.rst:487 +#: library/cgi.rst:492 msgid "" "Most HTTP servers buffer the output from CGI scripts until the script is " "completed. This means that it is not possible to display a progress report " "on the client's display while the script is running." msgstr "" -#: ../Doc/library/cgi.rst:491 +#: library/cgi.rst:496 msgid "Check the installation instructions above." msgstr "" -#: ../Doc/library/cgi.rst:493 +#: library/cgi.rst:498 msgid "" "Check the HTTP server's log files. (``tail -f logfile`` in a separate " "window may be useful!)" msgstr "" -#: ../Doc/library/cgi.rst:496 +#: library/cgi.rst:501 msgid "" "Always check a script for syntax errors first, by doing something like " "``python script.py``." msgstr "" -#: ../Doc/library/cgi.rst:499 +#: library/cgi.rst:504 msgid "" "If your script does not have any syntax errors, try adding ``import cgitb; " "cgitb.enable()`` to the top of the script." msgstr "" -#: ../Doc/library/cgi.rst:502 +#: library/cgi.rst:507 msgid "" "When invoking external programs, make sure they can be found. Usually, this " "means using absolute path names --- :envvar:`PATH` is usually not set to a " "very useful value in a CGI script." msgstr "" -#: ../Doc/library/cgi.rst:506 +#: library/cgi.rst:511 msgid "" "When reading or writing external files, make sure they can be read or " "written by the userid under which your CGI script will be running: this is " @@ -612,17 +616,17 @@ msgid "" "explicitly specified userid for a web server's ``suexec`` feature." msgstr "" -#: ../Doc/library/cgi.rst:511 +#: library/cgi.rst:516 msgid "" "Don't try to give a CGI script a set-uid mode. This doesn't work on most " "systems, and is a security liability as well." msgstr "" -#: ../Doc/library/cgi.rst:515 +#: library/cgi.rst:520 msgid "Footnotes" msgstr "Notes" -#: ../Doc/library/cgi.rst:516 +#: library/cgi.rst:521 msgid "" "Note that some recent versions of the HTML specification do state what order " "the field values should be supplied in, but knowing whether a request was " diff --git a/library/cgitb.po b/library/cgitb.po index 52469df494..a8c7b8509c 100644 --- a/library/cgitb.po +++ b/library/cgitb.po @@ -15,15 +15,15 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.0.9\n" -#: ../Doc/library/cgitb.rst:2 +#: library/cgitb.rst:2 msgid ":mod:`cgitb` --- Traceback manager for CGI scripts" msgstr ":mod:`cgitb` — Gestionnaire d'exceptions pour les scripts CGI" -#: ../Doc/library/cgitb.rst:10 +#: library/cgitb.rst:10 msgid "**Source code:** :source:`Lib/cgitb.py`" msgstr "**Code source :** :source:`Lib/cgitb.py`" -#: ../Doc/library/cgitb.rst:20 +#: library/cgitb.rst:20 msgid "" "The :mod:`cgitb` module provides a special exception handler for Python " "scripts. (Its name is a bit misleading. It was originally designed to " @@ -47,13 +47,13 @@ msgstr "" "problème. Il est aussi possible de sauvegarder cette information dans un " "fichier plutôt que de l'envoyer dans le navigateur." -#: ../Doc/library/cgitb.rst:30 +#: library/cgitb.rst:30 msgid "To enable this feature, simply add this to the top of your CGI script::" msgstr "" "Pour activer cette fonctionnalité, ajoutez simplement ceci au début de votre " -"script CGI : ::" +"script CGI ::" -#: ../Doc/library/cgitb.rst:35 +#: library/cgitb.rst:35 msgid "" "The options to the :func:`enable` function control whether the report is " "displayed in the browser and whether the report is logged to a file for " @@ -63,7 +63,7 @@ msgstr "" "choisir si le rapport est envoyé au navigateur ou si le rapport est écrit " "dans un fichier pour analyse ultérieure." -#: ../Doc/library/cgitb.rst:44 +#: library/cgitb.rst:44 msgid "" "This function causes the :mod:`cgitb` module to take over the interpreter's " "default handling for exceptions by setting the value of :attr:`sys." @@ -73,7 +73,7 @@ msgstr "" "l'interpréteur par celui du module :mod:`cgitb`, en configurant :attr:`sys." "excepthook`." -#: ../Doc/library/cgitb.rst:47 +#: library/cgitb.rst:47 msgid "" "The optional argument *display* defaults to ``1`` and can be set to ``0`` to " "suppress sending the traceback to the browser. If the argument *logdir* is " @@ -82,8 +82,8 @@ msgid "" "argument *context* is the number of lines of context to display around the " "current line of source code in the traceback; this defaults to ``5``. If the " "optional argument *format* is ``\"html\"``, the output is formatted as " -"HTML. Any other value forces plain text output. The default value is ``" -"\"html\"``." +"HTML. Any other value forces plain text output. The default value is " +"``\"html\"``." msgstr "" "Le paramètre optionnel *display* vaut ``1`` par défaut, et peut être mis à " "``0`` pour désactiver l'envoi des piles d'appels au navigateur. Si " @@ -95,7 +95,7 @@ msgstr "" "HTML. Le rapport sera écrit en texte brut pour toute autre valeur. La " "valeur par défaut est ``\"html\"``." -#: ../Doc/library/cgitb.rst:59 +#: library/cgitb.rst:59 msgid "" "This function handles the exception described by *info* (a 3-tuple " "containing the result of :func:`sys.exc_info`), formatting its traceback as " @@ -110,7 +110,7 @@ msgstr "" "de la ligne courante du code source dans la pile d’appels ; la valeur par " "défaut est ``5``." -#: ../Doc/library/cgitb.rst:68 +#: library/cgitb.rst:68 msgid "" "This function handles the exception described by *info* (a 3-tuple " "containing the result of :func:`sys.exc_info`), formatting its traceback as " @@ -125,7 +125,7 @@ msgstr "" "de la ligne courante du code source dans la pile d’appels ; la valeur par " "défaut est ``5``." -#: ../Doc/library/cgitb.rst:77 +#: library/cgitb.rst:77 msgid "" "This function handles an exception using the default settings (that is, show " "a report in the browser, but don't log to a file). This can be used when " @@ -137,9 +137,9 @@ msgid "" msgstr "" "Cette fonction gère les exceptions en utilisant la configuration par défaut " "(c'est à dire envoyer un rapport HTML au navigateur sans l'enregistrer dans " -"un fichier). Il peut être utilisé lorsque vous avez attrapé une exception et " -"que vous en voulez un rapport généré par :mod:`cgitb`. L'argument optionnel " -"*info* doit être un *tuple* de trois éléments contenant le type de " +"un fichier). Il peut être utilisé lorsque vous avez intercepté une exception " +"et que vous en voulez un rapport généré par :mod:`cgitb`. L'argument " +"optionnel *info* doit être un *tuple* de trois éléments contenant le type de " "l'exception, l'exception, et la pile d'appels, tel que le *tuple* renvoyé " "par :func:`sys.exc_info`. Si l'argument *info* n'est pas donné, l'exception " "courante est obtenue via :func:`sys.exc_info`." diff --git a/library/chunk.po b/library/chunk.po index fbb89f6f0d..928df084c6 100644 --- a/library/chunk.po +++ b/library/chunk.po @@ -19,8 +19,9 @@ msgid ":mod:`chunk` --- Read IFF chunked data" msgstr "" #: ../Doc/library/chunk.rst:10 +#, fuzzy msgid "**Source code:** :source:`Lib/chunk.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/uu.py`" #: ../Doc/library/chunk.rst:21 msgid "" diff --git a/library/cmd.po b/library/cmd.po index d6679a649b..d5358d1499 100644 --- a/library/cmd.po +++ b/library/cmd.po @@ -15,15 +15,15 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.0.3\n" -#: ../Doc/library/cmd.rst:2 +#: library/cmd.rst:2 msgid ":mod:`cmd` --- Support for line-oriented command interpreters" msgstr ":mod:`cmd` — Interpréteurs en ligne de commande." -#: ../Doc/library/cmd.rst:9 +#: library/cmd.rst:9 msgid "**Source code:** :source:`Lib/cmd.py`" msgstr "**Code source:** :source:`Lib/cmd.py`" -#: ../Doc/library/cmd.rst:13 +#: library/cmd.rst:13 msgid "" "The :class:`Cmd` class provides a simple framework for writing line-oriented " "command interpreters. These are often useful for test harnesses, " @@ -35,7 +35,7 @@ msgstr "" "des tests, pour des outils administratifs, et pour des prototypes destinés à " "être intégrés à une interface plus sophistiquée." -#: ../Doc/library/cmd.rst:20 +#: library/cmd.rst:20 msgid "" "A :class:`Cmd` instance or subclass instance is a line-oriented interpreter " "framework. There is no good reason to instantiate :class:`Cmd` itself; " @@ -49,7 +49,7 @@ msgstr "" "classe-interprète que vous définirez afin d'hériter des méthodes de :class:" "`Cmd` et d'encapsuler les opérations." -#: ../Doc/library/cmd.rst:25 +#: library/cmd.rst:25 msgid "" "The optional argument *completekey* is the :mod:`readline` name of a " "completion key; it defaults to :kbd:`Tab`. If *completekey* is not :const:" @@ -61,7 +61,7 @@ msgstr "" "`readline` est disponible, la complétion de commandes est faite " "automatiquement." -#: ../Doc/library/cmd.rst:29 +#: library/cmd.rst:29 msgid "" "The optional arguments *stdin* and *stdout* specify the input and output " "file objects that the Cmd instance or subclass instance will use for input " @@ -74,7 +74,7 @@ msgstr "" "ils prendront comme valeur par défaut :data:`sys.stdin` et :data:`sys." "stdout`." -#: ../Doc/library/cmd.rst:34 +#: library/cmd.rst:34 msgid "" "If you want a given *stdin* to be used, make sure to set the instance's :" "attr:`use_rawinput` attribute to ``False``, otherwise *stdin* will be " @@ -84,15 +84,15 @@ msgstr "" "l'attribut :attr:`use_rawinput` de l'instance vaille ``False``, faute de " "quoi *stdin* sera ignoré." -#: ../Doc/library/cmd.rst:42 +#: library/cmd.rst:42 msgid "Cmd Objects" msgstr "Objets Cmd" -#: ../Doc/library/cmd.rst:44 +#: library/cmd.rst:44 msgid "A :class:`Cmd` instance has the following methods:" msgstr "Une instance de :class:`Cmd` possède les méthodes suivantes :" -#: ../Doc/library/cmd.rst:49 +#: library/cmd.rst:49 msgid "" "Repeatedly issue a prompt, accept input, parse an initial prefix off the " "received input, and dispatch to action methods, passing them the remainder " @@ -102,7 +102,7 @@ msgstr "" "soustrait un préfixe initial de l'entrée reçue et envoie aux méthodes " "d'opération la partie restante de l'entrée reçue." -#: ../Doc/library/cmd.rst:53 +#: library/cmd.rst:53 msgid "" "The optional argument is a banner or intro string to be issued before the " "first prompt (this overrides the :attr:`intro` class attribute)." @@ -111,7 +111,7 @@ msgstr "" "d'introduction à afficher avant la première invite de commande (il redéfinit " "l'attribut de classe :attr:`intro`)." -#: ../Doc/library/cmd.rst:56 +#: library/cmd.rst:56 msgid "" "If the :mod:`readline` module is loaded, input will automatically inherit :" "program:`bash`\\ -like history-list editing (e.g. :kbd:`Control-P` scrolls " @@ -125,13 +125,13 @@ msgstr "" "suivante, :kbd:`Control-F` déplace le curseur vers la droite, :kbd:`Control-" "B` déplace le curseur vers la gauche, etc...)." -#: ../Doc/library/cmd.rst:62 +#: library/cmd.rst:62 msgid "An end-of-file on input is passed back as the string ``'EOF'``." msgstr "" "Une caractère de fin de fichier est transmis via la chaîne de caractères " "``'EOF'``." -#: ../Doc/library/cmd.rst:68 +#: library/cmd.rst:68 msgid "" "An interpreter instance will recognize a command name ``foo`` if and only if " "it has a method :meth:`do_foo`. As a special case, a line beginning with " @@ -146,7 +146,7 @@ msgstr "" "caractère ``'!'`` sont également un cas particulier: elles sont envoyées à " "la méthode :meth:`do_shell` (si une telle méthode est définie)." -#: ../Doc/library/cmd.rst:74 +#: library/cmd.rst:74 msgid "" "This method will return when the :meth:`postcmd` method returns a true " "value. The *stop* argument to :meth:`postcmd` is the return value from the " @@ -156,7 +156,7 @@ msgstr "" "vraie. L'argument *stop* de :meth:`postcmd` est la valeur de retour de la " "méthode :meth:`do_\\*` correspondant à la commande." -#: ../Doc/library/cmd.rst:78 +#: library/cmd.rst:78 msgid "" "If completion is enabled, completing commands will be done automatically, " "and completing of commands args is done by calling :meth:`complete_foo` with " @@ -177,14 +177,14 @@ msgstr "" "pour fournir différentes complétions en fonction de la position de " "l'argument." -#: ../Doc/library/cmd.rst:86 +#: library/cmd.rst:86 msgid "" "All subclasses of :class:`Cmd` inherit a predefined :meth:`do_help`. This " "method, called with an argument ``'bar'``, invokes the corresponding method :" "meth:`help_bar`, and if that is not present, prints the docstring of :meth:" "`do_bar`, if available. With no argument, :meth:`do_help` lists all " -"available help topics (that is, all commands with corresponding :meth:`help_" -"\\*` methods or commands that have docstrings), and also lists any " +"available help topics (that is, all commands with corresponding :meth:" +"`help_\\*` methods or commands that have docstrings), and also lists any " "undocumented commands." msgstr "" "Toutes les classes filles de :class:`Cmd` héritent d'une méthode :meth:" @@ -196,7 +196,7 @@ msgstr "" "correspondante ou commande ayant une *docstring*, elle lisera aussi les " "commandes non documentées." -#: ../Doc/library/cmd.rst:97 +#: library/cmd.rst:97 msgid "" "Interpret the argument as though it had been typed in response to the " "prompt. This may be overridden, but should not normally need to be; see the :" @@ -215,7 +215,7 @@ msgstr "" "*str*, la valeur de retour de cette méthode est renvoyée. Dans le cas " "contraire, la valeur de retour de la méthode :meth:`default` est renvoyée." -#: ../Doc/library/cmd.rst:108 +#: library/cmd.rst:108 msgid "" "Method called when an empty line is entered in response to the prompt. If " "this method is not overridden, it repeats the last nonempty command entered." @@ -224,7 +224,7 @@ msgstr "" "commande. Si cette méthode n'est pas surchargée, elle répète la dernière " "commande non-vide entrée." -#: ../Doc/library/cmd.rst:114 +#: library/cmd.rst:114 msgid "" "Method called on an input line when the command prefix is not recognized. If " "this method is not overridden, it prints an error message and returns." @@ -233,7 +233,7 @@ msgstr "" "reconnu. Si cette méthode n'est pas surchargée, elle affiche un message " "d'erreur et s'arrête." -#: ../Doc/library/cmd.rst:120 +#: library/cmd.rst:120 msgid "" "Method called to complete an input line when no command-specific :meth:" "`complete_\\*` method is available. By default, it returns an empty list." @@ -242,7 +242,7 @@ msgstr "" "`complete_\\*` spécifique à la commande n'est disponible. Par défaut, elle " "renvoie une liste vide." -#: ../Doc/library/cmd.rst:126 +#: library/cmd.rst:126 msgid "" "Hook method executed just before the command line *line* is interpreted, but " "after the input prompt is generated and issued. This method is a stub in :" @@ -258,7 +258,7 @@ msgstr "" "exécutée par la méthode :meth:`onecmd`. L'implémentation de :meth:`precmd` " "peut réécrire la commande ou simplement renvoyer *line* sans modification." -#: ../Doc/library/cmd.rst:136 +#: library/cmd.rst:136 msgid "" "Hook method executed just after a command dispatch is finished. This method " "is a stub in :class:`Cmd`; it exists to be overridden by subclasses. *line* " @@ -277,7 +277,7 @@ msgstr "" "interne correspondant à *stop*. Renvoyer *False* permettra à " "l'interprétation de continuer." -#: ../Doc/library/cmd.rst:147 +#: library/cmd.rst:147 msgid "" "Hook method executed once when :meth:`cmdloop` is called. This method is a " "stub in :class:`Cmd`; it exists to be overridden by subclasses." @@ -286,7 +286,7 @@ msgstr "" "Cette méthode existe afin d'être surchargée par des classes filles de :class:" "`Cmd`." -#: ../Doc/library/cmd.rst:153 +#: library/cmd.rst:153 msgid "" "Hook method executed once when :meth:`cmdloop` is about to return. This " "method is a stub in :class:`Cmd`; it exists to be overridden by subclasses." @@ -295,26 +295,26 @@ msgstr "" "Cette méthode existe afin d'être surchargée par des classes filles de :class:" "`Cmd`." -#: ../Doc/library/cmd.rst:157 +#: library/cmd.rst:157 msgid "" "Instances of :class:`Cmd` subclasses have some public instance variables:" msgstr "" "Les instances de classes filles de :class:`Cmd` possèdent des variables " "d'instance publiques:" -#: ../Doc/library/cmd.rst:161 +#: library/cmd.rst:161 msgid "The prompt issued to solicit input." msgstr "L'invite de commande affiché pour solliciter une entrée." -#: ../Doc/library/cmd.rst:166 +#: library/cmd.rst:166 msgid "The string of characters accepted for the command prefix." msgstr "La chaîne de caractères acceptée en tant que préfixe de commande." -#: ../Doc/library/cmd.rst:171 +#: library/cmd.rst:171 msgid "The last nonempty command prefix seen." msgstr "Le dernier préfixe de commande non-vide vu." -#: ../Doc/library/cmd.rst:176 +#: library/cmd.rst:176 msgid "" "A list of queued input lines. The cmdqueue list is checked in :meth:" "`cmdloop` when new input is needed; if it is nonempty, its elements will be " @@ -325,7 +325,7 @@ msgstr "" "vide, ses éléments seront traités dans l'ordre, comme si ils avaient entrés " "dans l'invite de commande." -#: ../Doc/library/cmd.rst:183 +#: library/cmd.rst:183 msgid "" "A string to issue as an intro or banner. May be overridden by giving the :" "meth:`cmdloop` method an argument." @@ -333,14 +333,14 @@ msgstr "" "Une chaîne de caractères à afficher en introduction ou bannière. Peut être " "surchargée en passant un argument à la méthode :meth:`cmdloop`." -#: ../Doc/library/cmd.rst:189 +#: library/cmd.rst:189 msgid "" "The header to issue if the help output has a section for documented commands." msgstr "" "L'en-tête à afficher si la sortie de l'aide possède une section pour les " "commandes documentées." -#: ../Doc/library/cmd.rst:194 +#: library/cmd.rst:194 msgid "" "The header to issue if the help output has a section for miscellaneous help " "topics (that is, there are :meth:`help_\\*` methods without corresponding :" @@ -350,17 +350,17 @@ msgstr "" "sujets (c'est-à-dire qu'il existe des méthodes :meth:`help_\\*` sans " "méthodes :meth:`do_\\*` correspondantes)." -#: ../Doc/library/cmd.rst:201 +#: library/cmd.rst:201 msgid "" "The header to issue if the help output has a section for undocumented " "commands (that is, there are :meth:`do_\\*` methods without corresponding :" "meth:`help_\\*` methods)." msgstr "" "L'en-tête à afficher si la sortie de l'aide possède une section pour les " -"commandes non documentées (c'est-à-dire qu'il existe des méthodes :meth:`dop_" -"\\*` sans méthodes :meth:`help_\\*` correspondantes)." +"commandes non documentées (c'est-à-dire qu'il existe des méthodes :meth:" +"`dop_\\*` sans méthodes :meth:`help_\\*` correspondantes)." -#: ../Doc/library/cmd.rst:208 +#: library/cmd.rst:208 msgid "" "The character used to draw separator lines under the help-message headers. " "If empty, no ruler line is drawn. It defaults to ``'='``." @@ -369,7 +369,7 @@ msgstr "" "têtes de messages d'aide. Si il est vide, aucune ligne de séparation n'est " "affichée. Par défaut, ce caractère vaut ``'='``." -#: ../Doc/library/cmd.rst:214 +#: library/cmd.rst:214 msgid "" "A flag, defaulting to true. If true, :meth:`cmdloop` uses :func:`input` to " "display a prompt and read the next command; if false, :meth:`sys.stdout." @@ -386,11 +386,11 @@ msgstr "" "automatiquement supporter une édition de ligne similaire à :program:`Emacs` " "ainsi que des touches d'historique de commande)." -#: ../Doc/library/cmd.rst:224 +#: library/cmd.rst:224 msgid "Cmd Example" msgstr "Exemple" -#: ../Doc/library/cmd.rst:228 +#: library/cmd.rst:228 msgid "" "The :mod:`cmd` module is mainly useful for building custom shells that let a " "user work with a program interactively." @@ -399,7 +399,7 @@ msgstr "" "permettant à l'utilisateur de travailler avec un programme de manière " "interactive." -#: ../Doc/library/cmd.rst:231 +#: library/cmd.rst:231 msgid "" "This section presents a simple example of how to build a shell around a few " "of the commands in the :mod:`turtle` module." @@ -407,7 +407,7 @@ msgstr "" "Cette section présente un exemple simple de comment produire une invite de " "commande autour de quelques commandes du module :mod:`turtle`." -#: ../Doc/library/cmd.rst:234 +#: library/cmd.rst:234 msgid "" "Basic turtle commands such as :meth:`~turtle.forward` are added to a :class:" "`Cmd` subclass with method named :meth:`do_forward`. The argument is " @@ -420,7 +420,7 @@ msgstr "" "*turtle*. La *docstring* est utilisée dans l'utilitaire d'aide fourni par " "l'invite de commande." -#: ../Doc/library/cmd.rst:239 +#: library/cmd.rst:239 msgid "" "The example also includes a basic record and playback facility implemented " "with the :meth:`~Cmd.precmd` method which is responsible for converting the " @@ -434,7 +434,7 @@ msgstr "" "fichier. La méthode :meth:`do_playback` lit le fichier et ajoute les " "commandes enregistrées à :attr:`cmdqueue` pour être rejouées immédiatement ::" -#: ../Doc/library/cmd.rst:320 +#: library/cmd.rst:320 msgid "" "Here is a sample session with the turtle shell showing the help functions, " "using blank lines to repeat commands, and the simple record and playback " diff --git a/library/code.po b/library/code.po index b6c0da457e..2fa3e12d12 100644 --- a/library/code.po +++ b/library/code.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"POT-Creation-Date: 2020-05-23 11:38+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -76,8 +76,8 @@ msgstr "" msgid "" "*source* is the source string; *filename* is the optional filename from " "which source was read, defaulting to ``''``; and *symbol* is the " -"optional grammar start symbol, which should be either ``'single'`` (the " -"default) or ``'eval'``." +"optional grammar start symbol, which should be ``'single'`` (the default), " +"``'eval'`` or ``'exec'``." msgstr "" #: ../Doc/library/code.rst:62 @@ -97,7 +97,7 @@ msgstr "" msgid "" "Compile and run some source in the interpreter. Arguments are the same as " "for :func:`compile_command`; the default for *filename* is ``''``, " -"and for *symbol* is ``'single'``. One several things can happen:" +"and for *symbol* is ``'single'``. One of several things can happen:" msgstr "" #: ../Doc/library/code.rst:81 diff --git a/library/codecs.po b/library/codecs.po index daa1de75df..110c5480af 100644 --- a/library/codecs.po +++ b/library/codecs.po @@ -5,24 +5,25 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-09 17:54+0200\n" -"PO-Revision-Date: 2019-09-06 13:48+0200\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" +"PO-Revision-Date: 2020-02-23 23:00+0100\n" +"Last-Translator: \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.3\n" -#: ../Doc/library/codecs.rst:2 +#: library/codecs.rst:2 msgid ":mod:`codecs` --- Codec registry and base classes" -msgstr "" +msgstr ":mod:`codecs` — Registre des codecs et classes de base associées" -#: ../Doc/library/codecs.rst:11 +#: library/codecs.rst:11 msgid "**Source code:** :source:`Lib/codecs.py`" -msgstr "**Code source :** :source:`Lib/codecs.py`" +msgstr "**Code source :** :source:`Lib/codecs.py`" -#: ../Doc/library/codecs.rst:23 +#: library/codecs.rst:23 msgid "" "This module defines base classes for standard Python codecs (encoders and " "decoders) and provides access to the internal Python codec registry, which " @@ -33,18 +34,31 @@ msgid "" "features are restricted to use specifically with :term:`text encodings `, or with codecs that encode to :class:`bytes`." msgstr "" +"Ce module définit les classes de base pour les codecs (encodeurs et " +"décodeurs) standards Python et fournit l'interface avec le registre des " +"codecs internes à Python, qui gère le processus de recherche de codecs et de " +"gestion des erreurs. La plupart des codecs sont des :term:`encodeurs de " +"texte `, qui encode du texte vers des séquences d'octets " +"(type *bytes* de Python) mais il existe aussi des codecs qui encodent du " +"texte vers du texte et des *bytes* vers des *bytes*. Les codecs " +"personnalisés peuvent encoder et décoder des types arbitraires, mais " +"l'utilisation de certaines fonctionnalités du module est restreinte aux :" +"term:`encodeurs de texte ` ou aux codecs qui encodent vers :" +"class:`bytes`." -#: ../Doc/library/codecs.rst:33 +#: library/codecs.rst:33 msgid "" "The module defines the following functions for encoding and decoding with " "any codec:" msgstr "" +"Le module définit les fonctions suivantes pour encoder et décoder à l'aide " +"de n'importe quel codec :" -#: ../Doc/library/codecs.rst:38 +#: library/codecs.rst:38 msgid "Encodes *obj* using the codec registered for *encoding*." -msgstr "" +msgstr "Encode *obj* en utilisant le codec enregistré pour *encoding*." -#: ../Doc/library/codecs.rst:40 +#: library/codecs.rst:40 msgid "" "*Errors* may be given to set the desired error handling scheme. The default " "error handler is ``'strict'`` meaning that encoding errors raise :exc:" @@ -52,12 +66,18 @@ msgid "" "`UnicodeEncodeError`). Refer to :ref:`codec-base-classes` for more " "information on codec error handling." msgstr "" +"Vous pouvez spécifier *errors* pour définir la façon de gérer les erreurs. " +"Le gestionnaire d'erreurs par défaut est ``'strict'``, ce qui veut dire " +"qu'une erreur lors de l'encodage lève :exc:`ValueError` (ou une sous-classe " +"spécifique du codec, telle que :exc:`UnicodeEncodeError`). Référez-vous aux :" +"ref:`classes de base des codecs ` pour plus " +"d'informations sur la gestion des erreurs par les codecs." -#: ../Doc/library/codecs.rst:48 +#: library/codecs.rst:48 msgid "Decodes *obj* using the codec registered for *encoding*." -msgstr "" +msgstr "Décode *obj* en utilisant le codec enregistré pour *encoding*." -#: ../Doc/library/codecs.rst:50 +#: library/codecs.rst:50 msgid "" "*Errors* may be given to set the desired error handling scheme. The default " "error handler is ``'strict'`` meaning that decoding errors raise :exc:" @@ -65,36 +85,52 @@ msgid "" "`UnicodeDecodeError`). Refer to :ref:`codec-base-classes` for more " "information on codec error handling." msgstr "" +"Vous pouvez spécifier *errors* pour définir la façon de gérer les erreurs. " +"Le gestionnaire d'erreurs par défaut est ``'strict'``, ce qui veut dire " +"qu'une erreur lors du décodage lève :exc:`ValueError` (ou une sous-classe " +"spécifique du codec, telle que :exc:`UnicodeDecodeError`). Référez-vous aux :" +"ref:`classes de base des codecs ` pour plus " +"d'informations sur la gestion des erreurs par les codecs." -#: ../Doc/library/codecs.rst:56 +#: library/codecs.rst:56 msgid "The full details for each codec can also be looked up directly:" msgstr "" +"Les détails complets de chaque codec peuvent être examinés directement :" -#: ../Doc/library/codecs.rst:60 +#: library/codecs.rst:60 msgid "" "Looks up the codec info in the Python codec registry and returns a :class:" "`CodecInfo` object as defined below." msgstr "" +"Recherche les informations relatives au codec dans le registre des codecs de " +"Python et renvoie l'objet :class:`CodecInfo` tel que défini ci-dessous." -#: ../Doc/library/codecs.rst:63 +#: library/codecs.rst:63 msgid "" "Encodings are first looked up in the registry's cache. If not found, the " "list of registered search functions is scanned. If no :class:`CodecInfo` " "object is found, a :exc:`LookupError` is raised. Otherwise, the :class:" "`CodecInfo` object is stored in the cache and returned to the caller." msgstr "" +"Les encodeurs sont recherchés en priorité dans le cache du registre. S'ils " +"n'y sont pas, la liste des fonctions de recherche enregistrées est passée en " +"revue. Si aucun objet :class:`CodecInfo` n'est trouvé, une :exc:" +"`LookupError` est levée. Sinon, l'objet :class:`CodecInfo` est mis en cache " +"et renvoyé vers l'appelant." -#: ../Doc/library/codecs.rst:70 +#: library/codecs.rst:70 msgid "" "Codec details when looking up the codec registry. The constructor arguments " "are stored in attributes of the same name:" msgstr "" +"Les détails d'un codec trouvé dans le registre des codecs. Les arguments du " +"constructeur sont stockés dans les attributs éponymes :" -#: ../Doc/library/codecs.rst:76 +#: library/codecs.rst:76 msgid "The name of the encoding." -msgstr "" +msgstr "Le nom de l'encodeur." -#: ../Doc/library/codecs.rst:82 +#: library/codecs.rst:82 msgid "" "The stateless encoding and decoding functions. These must be functions or " "methods which have the same interface as the :meth:`~Codec.encode` and :meth:" @@ -102,206 +138,304 @@ msgid "" "objects>`). The functions or methods are expected to work in a stateless " "mode." msgstr "" +"Les fonctions d'encodage et de décodage. Ces fonctions ou méthodes doivent " +"avoir la même interface que les méthodes :meth:`~Codec.encode` et :meth:" +"`~Codec.decode` des instances de Codec (voir :ref:`Interface des codecs " +"`). Les fonctions et méthodes sont censées fonctionner sans " +"état interne." -#: ../Doc/library/codecs.rst:92 +#: library/codecs.rst:92 msgid "" "Incremental encoder and decoder classes or factory functions. These have to " "provide the interface defined by the base classes :class:" "`IncrementalEncoder` and :class:`IncrementalDecoder`, respectively. " "Incremental codecs can maintain state." msgstr "" +"Classes d'encodeurs et de décodeurs incrémentaux ou fonctions usines. Elles " +"doivent avoir respectivement les mêmes interfaces que celles définies par " +"les classes de base :class:`IncrementalEncoder` et :class:" +"`IncrementalDecoder`. Les codecs incrémentaux peuvent conserver des états " +"internes." -#: ../Doc/library/codecs.rst:101 +#: library/codecs.rst:101 msgid "" "Stream writer and reader classes or factory functions. These have to provide " "the interface defined by the base classes :class:`StreamWriter` and :class:" "`StreamReader`, respectively. Stream codecs can maintain state." msgstr "" +"Classes d'écriture et de lecture de flux ou fonctions usines. Elles doivent " +"avoir les mêmes interfaces que celles définies par les classes de base :" +"class:`StreamWriter` et :class:`StreamReader`, respectivement. Les codecs de " +"flux peuvent conserver un état interne." -#: ../Doc/library/codecs.rst:106 +#: library/codecs.rst:106 msgid "" "To simplify access to the various codec components, the module provides " "these additional functions which use :func:`lookup` for the codec lookup:" msgstr "" +"Pour simplifier l'accès aux différents composants du codec, le module " +"fournit les fonctions supplémentaires suivantes qui utilisent :func:`lookup` " +"pour la recherche du codec :" -#: ../Doc/library/codecs.rst:111 +#: library/codecs.rst:111 msgid "" "Look up the codec for the given encoding and return its encoder function." msgstr "" +"Recherche le codec pour l'encodage *encoding* et renvoie sa fonction " +"d'encodage." -#: ../Doc/library/codecs.rst:113 ../Doc/library/codecs.rst:120 -#: ../Doc/library/codecs.rst:146 ../Doc/library/codecs.rst:154 +#: library/codecs.rst:120 library/codecs.rst:154 msgid "Raises a :exc:`LookupError` in case the encoding cannot be found." -msgstr "" +msgstr "Lève une :exc:`LookupError` si l'encodage *encoding* n'est pas trouvé." -#: ../Doc/library/codecs.rst:118 +#: library/codecs.rst:118 msgid "" "Look up the codec for the given encoding and return its decoder function." msgstr "" +"Recherche le codec pour l'encodage *encoding* et renvoie sa fonction de " +"décodage." -#: ../Doc/library/codecs.rst:125 +#: library/codecs.rst:125 msgid "" "Look up the codec for the given encoding and return its incremental encoder " "class or factory function." msgstr "" +"Recherche le codec pour l'encodage *encoding* et renvoie sa classe " +"d'encodage incrémental ou la fonction usine." -#: ../Doc/library/codecs.rst:128 +#: library/codecs.rst:128 msgid "" "Raises a :exc:`LookupError` in case the encoding cannot be found or the " "codec doesn't support an incremental encoder." msgstr "" +"Lève une :exc:`LookupError` si l'encodage *encoding* n'est pas trouvé ou si " +"le codec ne gère pas l'encodage incrémental." -#: ../Doc/library/codecs.rst:134 +#: library/codecs.rst:134 msgid "" "Look up the codec for the given encoding and return its incremental decoder " "class or factory function." msgstr "" +"Recherche le codec pour l'encodage *encoding* et renvoie sa classe de " +"décodage incrémental ou la fonction usine." -#: ../Doc/library/codecs.rst:137 +#: library/codecs.rst:137 msgid "" "Raises a :exc:`LookupError` in case the encoding cannot be found or the " "codec doesn't support an incremental decoder." msgstr "" +"Lève une :exc:`LookupError` si l'encodage *encoding* n'est pas trouvé ou si " +"le codec ne gère pas le décodage incrémental." -#: ../Doc/library/codecs.rst:143 +#: library/codecs.rst:143 msgid "" "Look up the codec for the given encoding and return its :class:" "`StreamReader` class or factory function." msgstr "" +"Recherche le codec pour l'encodage *encoding* et renvoie sa classe :class:" +"`StreamReader` ou la fonction usine." -#: ../Doc/library/codecs.rst:151 +#: library/codecs.rst:151 msgid "" "Look up the codec for the given encoding and return its :class:" "`StreamWriter` class or factory function." msgstr "" +"Recherche le codec pour l'encodage *encoding* et renvoie sa classe :class:" +"`StreamWriter` ou la fonction usine." -#: ../Doc/library/codecs.rst:156 +#: library/codecs.rst:156 msgid "" "Custom codecs are made available by registering a suitable codec search " "function:" msgstr "" +"Les codecs personnalisés sont mis à disposition en enregistrant une fonction " +"de recherche de codecs adaptée :" -#: ../Doc/library/codecs.rst:161 +#: library/codecs.rst:161 msgid "" "Register a codec search function. Search functions are expected to take one " "argument, being the encoding name in all lower case letters, and return a :" "class:`CodecInfo` object. In case a search function cannot find a given " "encoding, it should return ``None``." msgstr "" +"Enregistre une fonction de recherche de codec. Il convient qu'une fonction " +"de recherche prenne un argument, le nom de l'encodage écrit en lettres " +"minuscules, et renvoie un objet :class:`CodecInfo`. Si la fonction de " +"recherche ne trouve pas un encodage donné, il convient qu'elle renvoie `` " +"None``." -#: ../Doc/library/codecs.rst:168 +# Pas de majuscule en début car suit un deux-points. +#: library/codecs.rst:168 msgid "" "Search function registration is not currently reversible, which may cause " "problems in some cases, such as unit testing or module reloading." msgstr "" +"l'enregistrement d'une fonction de recherche n'est actuellement pas " +"réversible, ce qui peut entraîner des problèmes dans certains cas, par " +"exemple pour les tests unitaires ou le rechargement de module." -#: ../Doc/library/codecs.rst:172 +#: library/codecs.rst:172 msgid "" "While the builtin :func:`open` and the associated :mod:`io` module are the " "recommended approach for working with encoded text files, this module " "provides additional utility functions and classes that allow the use of a " "wider range of codecs when working with binary files:" msgstr "" +"Alors qu'il est recommandé d'utiliser la fonction native :func:`open` et le " +"module associé :mod:`io` pour travailler avec des fichiers texte encodés, le " +"présent module fournit des fonctions et classes utilitaires supplémentaires " +"qui permettent l'utilisation d'une plus large gamme de codecs si vous " +"travaillez avec des fichiers binaires :" -#: ../Doc/library/codecs.rst:179 +#: library/codecs.rst:179 msgid "" "Open an encoded file using the given *mode* and return an instance of :class:" "`StreamReaderWriter`, providing transparent encoding/decoding. The default " "file mode is ``'r'``, meaning to open the file in read mode." msgstr "" +"Ouvre un fichier encodé en utilisant le *mode* donné et renvoie une instance " +"de :class:`StreamReaderWriter`, permettant un encodage-décodage transparent. " +"Le mode de fichier par défaut est ``'r'``, ce qui signifie que le fichier " +"est ouvert en lecture." -#: ../Doc/library/codecs.rst:185 +# Pas de majuscule en début car suit un deux-points. +#: library/codecs.rst:185 msgid "" "Underlying encoded files are always opened in binary mode. No automatic " "conversion of ``'\\n'`` is done on reading and writing. The *mode* argument " "may be any binary mode acceptable to the built-in :func:`open` function; the " "``'b'`` is automatically added." msgstr "" +"les fichiers encodés sous-jacents sont toujours ouverts en mode binaire. " +"Aucune conversion automatique de ``'\\n'`` n'est effectuée à la lecture ou à " +"l'écriture. L'argument *mode* peut être n'importe quel mode binaire " +"acceptable pour la fonction native :func:`open` ; le ``'b'`` est " +"automatiquement ajouté." -#: ../Doc/library/codecs.rst:190 +#: library/codecs.rst:190 msgid "" "*encoding* specifies the encoding which is to be used for the file. Any " "encoding that encodes to and decodes from bytes is allowed, and the data " "types supported by the file methods depend on the codec used." msgstr "" +"*encoding* spécifie l'encodage à utiliser pour le fichier. Tout encodage qui " +"encode et décode des octets (type *bytes*) est autorisé et les types de " +"données pris en charge par les méthodes relatives aux fichiers dépendent du " +"codec utilisé." -#: ../Doc/library/codecs.rst:194 +#: library/codecs.rst:194 msgid "" "*errors* may be given to define the error handling. It defaults to " "``'strict'`` which causes a :exc:`ValueError` to be raised in case an " "encoding error occurs." msgstr "" +"*errors* peut être spécifié pour définir la gestion des erreurs. La valeur " +"par défaut est ``'strict'``, ce qui lève une :exc:`ValueError` en cas " +"d'erreur lors du codage." -#: ../Doc/library/codecs.rst:197 +#: library/codecs.rst:197 msgid "" "*buffering* has the same meaning as for the built-in :func:`open` function. " "It defaults to -1 which means that the default buffer size will be used." msgstr "" +"*buffering* a la même signification que pour la fonction native :func:" +"`open`. Il vaut `-1` par défaut, ce qui signifie que la taille par défaut du " +"tampon est utilisée." -#: ../Doc/library/codecs.rst:203 +#: library/codecs.rst:203 msgid "" "Return a :class:`StreamRecoder` instance, a wrapped version of *file* which " "provides transparent transcoding. The original file is closed when the " "wrapped version is closed." msgstr "" +"Renvoie une instance de :class:`StreamRecoder`, version encapsulée de *file* " +"qui fournit un transcodage transparent. Le fichier original est fermé quand " +"la version encapsulée est fermée." -#: ../Doc/library/codecs.rst:207 +#: library/codecs.rst:207 msgid "" "Data written to the wrapped file is decoded according to the given " "*data_encoding* and then written to the original file as bytes using " "*file_encoding*. Bytes read from the original file are decoded according to " "*file_encoding*, and the result is encoded using *data_encoding*." msgstr "" +"Les données écrites dans un fichier encapsulant sont décodées en fonction du " +"*data_encoding* spécifié puis écrites vers le fichier original en tant que " +"*bytes* en utilisant *file_encoding*. Les octets lus dans le fichier " +"original sont décodés conformément à *file_encoding* et le résultat est " +"encodé en utilisant *data_encoding*." -#: ../Doc/library/codecs.rst:213 +#: library/codecs.rst:213 msgid "If *file_encoding* is not given, it defaults to *data_encoding*." msgstr "" +"Si *file_encoding* n'est pas spécifié, la valeur par défaut est " +"*data_encoding*." -#: ../Doc/library/codecs.rst:215 +#: library/codecs.rst:215 msgid "" "*errors* may be given to define the error handling. It defaults to " "``'strict'``, which causes :exc:`ValueError` to be raised in case an " "encoding error occurs." msgstr "" +"*errors* peut être spécifié pour définir la gestion des erreurs. La valeur " +"par défaut est ``'strict'``, ce qui lève une :exc:`ValueError` en cas " +"d'erreur lors du codage." -#: ../Doc/library/codecs.rst:222 +#: library/codecs.rst:222 msgid "" "Uses an incremental encoder to iteratively encode the input provided by " "*iterator*. This function is a :term:`generator`. The *errors* argument (as " "well as any other keyword argument) is passed through to the incremental " "encoder." msgstr "" +"Utilise un encodeur incrémental pour encoder de manière itérative l'entrée " +"fournie par *iterator*. Cette fonction est un :term:`générateur " +"`. L'argument *errors* (ainsi que tout autre argument passé par " +"mot-clé) est transmis à l'encodeur incrémental." -#: ../Doc/library/codecs.rst:227 +#: library/codecs.rst:227 msgid "" "This function requires that the codec accept text :class:`str` objects to " "encode. Therefore it does not support bytes-to-bytes encoders such as " "``base64_codec``." msgstr "" +"Cette fonction nécessite que le codec accepte les objets texte (classe :" +"class:`str`) en entrée. Par conséquent, il ne prend pas en charge les " +"encodeurs *bytes* vers *bytes* tels que ``base64_codec``." -#: ../Doc/library/codecs.rst:234 +#: library/codecs.rst:234 msgid "" "Uses an incremental decoder to iteratively decode the input provided by " "*iterator*. This function is a :term:`generator`. The *errors* argument (as " "well as any other keyword argument) is passed through to the incremental " "decoder." msgstr "" +"Utilise un décodeur incrémental pour décoder de manière itérative l'entrée " +"fournie par *iterator*. Cette fonction est un :term:`générateur`. L'argument " +"*errors* (ainsi que tout autre argument passé par mot-clé) est transmis au " +"décodeur incrémental." -#: ../Doc/library/codecs.rst:239 +#: library/codecs.rst:239 msgid "" "This function requires that the codec accept :class:`bytes` objects to " "decode. Therefore it does not support text-to-text encoders such as " "``rot_13``, although ``rot_13`` may be used equivalently with :func:" "`iterencode`." msgstr "" +"Cette fonction requiert que le codec accepte les objets :class:`bytes` en " +"entrée. Par conséquent, elle ne prend pas en charge les encodeurs de texte " +"vers texte tels que ``rot_13``, bien que ``rot_13`` puisse être utilisé de " +"manière équivalente avec :func:`iterencode`." -#: ../Doc/library/codecs.rst:245 +#: library/codecs.rst:245 msgid "" "The module also provides the following constants which are useful for " "reading and writing to platform dependent files:" msgstr "" +"Le module fournit également les constantes suivantes qui sont utiles pour " +"lire et écrire les fichiers dépendants de la plateforme :" -#: ../Doc/library/codecs.rst:260 +#: library/codecs.rst:260 msgid "" "These constants define various byte sequences, being Unicode byte order " "marks (BOMs) for several encodings. They are used in UTF-16 and UTF-32 data " @@ -312,19 +446,32 @@ msgid "" "`BOM_UTF16_LE` and :const:`BOM_BE` for :const:`BOM_UTF16_BE`. The others " "represent the BOM in UTF-8 and UTF-32 encodings." msgstr "" - -#: ../Doc/library/codecs.rst:274 +"Ces constantes définissent diverses séquences d'octets, les marques d'ordre " +"d'octets (BOM pour *byte order mark* en anglais) Unicode pour plusieurs " +"encodages. Elles sont utilisées dans les flux de données UTF-16 et UTF-32 " +"pour indiquer l'ordre des octets utilisé, et dans UTF-8 comme signature " +"Unicode. :const:`BOM_UTF16` vaut soit :const:`BOM_UTF16_BE`, soit :const:" +"`BOM_UTF16_LE` selon le boutisme natif de la plateforme, :const:`BOM` est un " +"alias pour :const:`BOM_UTF16`, :const:`BOM_LE` pour :const:`BOM_UTF16_LE` " +"et :const:`BOM_BE` pour :const:`BOM_UTF16_BE`. Les autres sont les marques " +"BOM dans les encodages UTF-8 et UTF-32." + +#: library/codecs.rst:274 msgid "Codec Base Classes" -msgstr "" +msgstr "Classes de base de codecs" -#: ../Doc/library/codecs.rst:276 +#: library/codecs.rst:276 msgid "" "The :mod:`codecs` module defines a set of base classes which define the " "interfaces for working with codec objects, and can also be used as the basis " "for custom codec implementations." msgstr "" +"Le module :mod:`codecs` définit un ensemble de classes de base qui " +"spécifient les interfaces pour travailler avec des objets codecs et qui " +"peuvent également être utilisées comme base pour des implémentations de " +"codecs personnalisés." -#: ../Doc/library/codecs.rst:280 +#: library/codecs.rst:280 msgid "" "Each codec has to define four interfaces to make it usable as codec in " "Python: stateless encoder, stateless decoder, stream reader and stream " @@ -332,166 +479,208 @@ msgid "" "decoder to implement the file protocols. Codec authors also need to define " "how the codec will handle encoding and decoding errors." msgstr "" +"Chaque codec doit définir quatre interfaces pour être utilisable comme codec " +"en Python : codeur sans état, décodeur sans état, lecteur de flux et " +"écrivain de flux. Le lecteur et l'écrivain de flux réutilisent généralement " +"l'encodeur-décodeur sans état pour implémenter les protocoles de fichiers. " +"Les auteurs de codecs doivent également définir comment le codec gère les " +"erreurs d'encodage et de décodage." -#: ../Doc/library/codecs.rst:291 +#: library/codecs.rst:291 msgid "Error Handlers" -msgstr "" +msgstr "Gestionnaires d'erreurs" -#: ../Doc/library/codecs.rst:293 +#: library/codecs.rst:293 msgid "" "To simplify and standardize error handling, codecs may implement different " "error handling schemes by accepting the *errors* string argument. The " "following string values are defined and implemented by all standard Python " "codecs:" msgstr "" +"Pour simplifier et standardiser la gestion des erreurs, les codecs peuvent " +"implémenter différents schémas de gestion des erreurs en acceptant " +"l'argument *errors* de type chaîne. Les chaînes suivantes sont définies et " +"les gestionnaires correspondants implémentés par tous les codecs Python " +"standards :" -#: ../Doc/library/codecs.rst:301 ../Doc/library/codecs.rst:324 -#: ../Doc/library/codecs.rst:357 +#: library/codecs.rst:324 library/codecs.rst:357 msgid "Value" msgstr "Valeur" -#: ../Doc/library/codecs.rst:301 ../Doc/library/codecs.rst:324 -#: ../Doc/library/codecs.rst:357 ../Doc/library/codecs.rst:1268 -#: ../Doc/library/codecs.rst:1335 ../Doc/library/codecs.rst:1390 +#: library/codecs.rst:324 library/codecs.rst:1268 library/codecs.rst:1390 msgid "Meaning" msgstr "Signification" -#: ../Doc/library/codecs.rst:303 +#: library/codecs.rst:303 msgid "``'strict'``" msgstr "``'strict'``" -#: ../Doc/library/codecs.rst:303 +#: library/codecs.rst:303 msgid "" "Raise :exc:`UnicodeError` (or a subclass); this is the default. Implemented " "in :func:`strict_errors`." msgstr "" +"Lève :exc:`UnicodeError` (ou une sous-classe) ; c'est la valeur par défaut. " +"Implémenté dans :func:`strict_errors`." -#: ../Doc/library/codecs.rst:307 +#: library/codecs.rst:307 msgid "``'ignore'``" msgstr "``'ignore'``" -#: ../Doc/library/codecs.rst:307 +#: library/codecs.rst:307 msgid "" "Ignore the malformed data and continue without further notice. Implemented " "in :func:`ignore_errors`." msgstr "" +"Ignore les données incorrectement formatées et continue sans rien signaler. " +"Implémenté dans :func:`ignore_errors`." -#: ../Doc/library/codecs.rst:312 +#: library/codecs.rst:312 msgid "" "The following error handlers are only applicable to :term:`text encodings " "`:" msgstr "" +"Les gestionnaires d'erreurs suivants ne s'appliquent que pour les :term:" +"`encodeurs de texte ` :" -#: ../Doc/library/codecs.rst:326 +#: library/codecs.rst:326 msgid "``'replace'``" msgstr "``'replace'``" -#: ../Doc/library/codecs.rst:326 +#: library/codecs.rst:326 msgid "" -"Replace with a suitable replacement marker; Python will use the official ``U" -"+FFFD`` REPLACEMENT CHARACTER for the built-in codecs on decoding, and '?' " -"on encoding. Implemented in :func:`replace_errors`." +"Replace with a suitable replacement marker; Python will use the official " +"``U+FFFD`` REPLACEMENT CHARACTER for the built-in codecs on decoding, and " +"'?' on encoding. Implemented in :func:`replace_errors`." msgstr "" +"Remplace avec une marque de substitution adaptée ; Python utilise le " +"caractère de substitution officiel ``U+FFFD`` pour les codecs natifs lors du " +"décodage et `'?'` lors de l'encodage. Implémenté dans :func:`replace_errors`." -#: ../Doc/library/codecs.rst:333 +#: library/codecs.rst:333 msgid "``'xmlcharrefreplace'``" msgstr "``'xmlcharrefreplace'``" -#: ../Doc/library/codecs.rst:333 +#: library/codecs.rst:333 msgid "" "Replace with the appropriate XML character reference (only for encoding). " "Implemented in :func:`xmlcharrefreplace_errors`." msgstr "" +"Remplace avec la référence de caractère XML adaptée (uniquement pour " +"l'encodage). Implémenté dans :func:`xmlcharrefreplace_errors`." -#: ../Doc/library/codecs.rst:337 +#: library/codecs.rst:337 msgid "``'backslashreplace'``" msgstr "``'backslashreplace'``" -#: ../Doc/library/codecs.rst:337 +#: library/codecs.rst:337 msgid "" "Replace with backslashed escape sequences. Implemented in :func:" "`backslashreplace_errors`." msgstr "" +"Remplace avec une séquence échappée par des antislashs. Implémenté dans :" +"func:`backslashreplace_errors`." -#: ../Doc/library/codecs.rst:341 +#: library/codecs.rst:341 msgid "``'namereplace'``" msgstr "``'namereplace'``" -#: ../Doc/library/codecs.rst:341 +#: library/codecs.rst:341 msgid "" "Replace with ``\\N{...}`` escape sequences (only for encoding). Implemented " "in :func:`namereplace_errors`." msgstr "" +"Remplace avec des séquences échappées par ``\\N{...}`` (uniquement pour " +"l'encodage). Implémenté dans :func:`namereplace_errors`." -#: ../Doc/library/codecs.rst:345 +#: library/codecs.rst:345 msgid "``'surrogateescape'``" msgstr "``'surrogateescape'``" -#: ../Doc/library/codecs.rst:345 +#: library/codecs.rst:345 msgid "" -"On decoding, replace byte with individual surrogate code ranging from ``U" -"+DC80`` to ``U+DCFF``. This code will then be turned back into the same byte " -"when the ``'surrogateescape'`` error handler is used when encoding the data. " -"(See :pep:`383` for more.)" +"On decoding, replace byte with individual surrogate code ranging from " +"``U+DC80`` to ``U+DCFF``. This code will then be turned back into the same " +"byte when the ``'surrogateescape'`` error handler is used when encoding the " +"data. (See :pep:`383` for more.)" msgstr "" +"Lors du décodage, remplace un octet par un code de substitution individuel " +"allant de ``U+DC80`` à ``U+DCFF``. Ce code est reconverti vers l'octet de " +"départ quand le gestionnaire d'erreurs ``'surrogateescape'`` est utilisé " +"pour l'encodage des données (voir la :pep:`383` pour plus de détails)." -#: ../Doc/library/codecs.rst:354 +#: library/codecs.rst:354 msgid "" "In addition, the following error handler is specific to the given codecs:" msgstr "" +"En plus, le gestionnaire d'erreurs suivant est spécifique aux codecs " +"suivants :" -#: ../Doc/library/codecs.rst:357 +#: library/codecs.rst:357 msgid "Codecs" -msgstr "" +msgstr "Codecs" -#: ../Doc/library/codecs.rst:359 +#: library/codecs.rst:359 msgid "``'surrogatepass'``" msgstr "``'surrogatepass'``" -#: ../Doc/library/codecs.rst:359 +#: library/codecs.rst:359 msgid "utf-8, utf-16, utf-32, utf-16-be, utf-16-le, utf-32-be, utf-32-le" -msgstr "" +msgstr "utf-8, utf-16, utf-32, utf-16-be, utf-16-le, utf-32-be, utf-32-le" -#: ../Doc/library/codecs.rst:359 +#: library/codecs.rst:359 msgid "" "Allow encoding and decoding of surrogate codes. These codecs normally treat " "the presence of surrogates as an error." msgstr "" +"Autorise l'encodage et le décodage de codes de substitution. Ces codecs " +"traitent normalement la présence d'un code de substitution comme une erreur." -#: ../Doc/library/codecs.rst:364 +# pas de majuscule en début de phrase car suit un deux-points. +#: library/codecs.rst:364 msgid "The ``'surrogateescape'`` and ``'surrogatepass'`` error handlers." msgstr "" +"les gestionnaires d'erreurs ``'surrogateescape'`` et ``'surrogatepass'``." -#: ../Doc/library/codecs.rst:367 +# pas de majuscule en début de phrase car suit un deux-points. +#: library/codecs.rst:367 msgid "" "The ``'surrogatepass'`` error handlers now works with utf-16\\* and " "utf-32\\* codecs." msgstr "" +"le gestionnaire d'erreurs ``'surrogatepass'`` fonctionne maintenant avec les " +"codecs utf-16\\* et utf-32\\*." -#: ../Doc/library/codecs.rst:370 +# pas de majuscule en début de phrase car suit un deux-points. +#: library/codecs.rst:370 msgid "The ``'namereplace'`` error handler." -msgstr "" +msgstr "le gestionnaire d'erreurs ``'namereplace'``." -#: ../Doc/library/codecs.rst:373 +# pas de majuscule en début de phrase car suit un deux-points. +#: library/codecs.rst:373 msgid "" "The ``'backslashreplace'`` error handlers now works with decoding and " "translating." msgstr "" +"le gestionnaire d'erreurs ``'backslashreplace'`` fonctionne maintenant pour " +"le décodage et la traduction." -#: ../Doc/library/codecs.rst:377 +#: library/codecs.rst:377 msgid "" "The set of allowed values can be extended by registering a new named error " "handler:" msgstr "" +"L'ensemble des valeurs autorisées peut être étendu en enregistrant un " +"nouveau gestionnaire d'erreurs nommé :" -#: ../Doc/library/codecs.rst:382 +#: library/codecs.rst:382 msgid "" "Register the error handling function *error_handler* under the name *name*. " "The *error_handler* argument will be called during encoding and decoding in " "case of an error, when *name* is specified as the errors parameter." msgstr "" -#: ../Doc/library/codecs.rst:386 +#: library/codecs.rst:386 msgid "" "For encoding, *error_handler* will be called with a :exc:" "`UnicodeEncodeError` instance, which contains information about the location " @@ -506,40 +695,40 @@ msgid "" "position is out of bound an :exc:`IndexError` will be raised." msgstr "" -#: ../Doc/library/codecs.rst:398 +#: library/codecs.rst:398 msgid "" "Decoding and translating works similarly, except :exc:`UnicodeDecodeError` " "or :exc:`UnicodeTranslateError` will be passed to the handler and that the " "replacement from the error handler will be put into the output directly." msgstr "" -#: ../Doc/library/codecs.rst:403 +#: library/codecs.rst:403 msgid "" "Previously registered error handlers (including the standard error handlers) " "can be looked up by name:" msgstr "" -#: ../Doc/library/codecs.rst:408 +#: library/codecs.rst:408 msgid "Return the error handler previously registered under the name *name*." msgstr "" -#: ../Doc/library/codecs.rst:410 +#: library/codecs.rst:410 msgid "Raises a :exc:`LookupError` in case the handler cannot be found." msgstr "" -#: ../Doc/library/codecs.rst:412 +#: library/codecs.rst:412 msgid "" "The following standard error handlers are also made available as module " "level functions:" msgstr "" -#: ../Doc/library/codecs.rst:417 +#: library/codecs.rst:417 msgid "" "Implements the ``'strict'`` error handling: each encoding or decoding error " "raises a :exc:`UnicodeError`." msgstr "" -#: ../Doc/library/codecs.rst:423 +#: library/codecs.rst:423 msgid "" "Implements the ``'replace'`` error handling (for :term:`text encodings ` only): substitutes ``'?'`` for encoding errors (to be encoded by " @@ -547,44 +736,44 @@ msgid "" "decoding errors." msgstr "" -#: ../Doc/library/codecs.rst:431 +#: library/codecs.rst:431 msgid "" "Implements the ``'ignore'`` error handling: malformed data is ignored and " "encoding or decoding is continued without further notice." msgstr "" -#: ../Doc/library/codecs.rst:437 +#: library/codecs.rst:437 msgid "" "Implements the ``'xmlcharrefreplace'`` error handling (for encoding with :" "term:`text encodings ` only): the unencodable character is " "replaced by an appropriate XML character reference." msgstr "" -#: ../Doc/library/codecs.rst:444 +#: library/codecs.rst:444 msgid "" "Implements the ``'backslashreplace'`` error handling (for :term:`text " "encodings ` only): malformed data is replaced by a " "backslashed escape sequence." msgstr "" -#: ../Doc/library/codecs.rst:450 +#: library/codecs.rst:450 msgid "" "Implements the ``'namereplace'`` error handling (for encoding with :term:" "`text encodings ` only): the unencodable character is " "replaced by a ``\\N{...}`` escape sequence." msgstr "" -#: ../Doc/library/codecs.rst:460 +#: library/codecs.rst:460 msgid "Stateless Encoding and Decoding" msgstr "" -#: ../Doc/library/codecs.rst:462 +#: library/codecs.rst:462 msgid "" "The base :class:`Codec` class defines these methods which also define the " "function interfaces of the stateless encoder and decoder:" msgstr "" -#: ../Doc/library/codecs.rst:468 +#: library/codecs.rst:468 msgid "" "Encodes the object *input* and returns a tuple (output object, length " "consumed). For instance, :term:`text encoding` converts a string object to a " @@ -592,26 +781,26 @@ msgid "" "``iso-8859-1``)." msgstr "" -#: ../Doc/library/codecs.rst:473 ../Doc/library/codecs.rst:495 +#: library/codecs.rst:495 msgid "" "The *errors* argument defines the error handling to apply. It defaults to " "``'strict'`` handling." msgstr "" -#: ../Doc/library/codecs.rst:476 +#: library/codecs.rst:476 msgid "" "The method may not store state in the :class:`Codec` instance. Use :class:" "`StreamWriter` for codecs which have to keep state in order to make encoding " "efficient." msgstr "" -#: ../Doc/library/codecs.rst:480 +#: library/codecs.rst:480 msgid "" "The encoder must be able to handle zero length input and return an empty " "object of the output object type in this situation." msgstr "" -#: ../Doc/library/codecs.rst:486 +#: library/codecs.rst:486 msgid "" "Decodes the object *input* and returns a tuple (output object, length " "consumed). For instance, for a :term:`text encoding`, decoding converts a " @@ -619,31 +808,31 @@ msgid "" "object." msgstr "" -#: ../Doc/library/codecs.rst:491 +#: library/codecs.rst:491 msgid "" "For text encodings and bytes-to-bytes codecs, *input* must be a bytes object " "or one which provides the read-only buffer interface -- for example, buffer " "objects and memory mapped files." msgstr "" -#: ../Doc/library/codecs.rst:498 +#: library/codecs.rst:498 msgid "" "The method may not store state in the :class:`Codec` instance. Use :class:" "`StreamReader` for codecs which have to keep state in order to make decoding " "efficient." msgstr "" -#: ../Doc/library/codecs.rst:502 +#: library/codecs.rst:502 msgid "" "The decoder must be able to handle zero length input and return an empty " "object of the output object type in this situation." msgstr "" -#: ../Doc/library/codecs.rst:507 +#: library/codecs.rst:507 msgid "Incremental Encoding and Decoding" msgstr "" -#: ../Doc/library/codecs.rst:509 +#: library/codecs.rst:509 msgid "" "The :class:`IncrementalEncoder` and :class:`IncrementalDecoder` classes " "provide the basic interface for incremental encoding and decoding. Encoding/" @@ -654,7 +843,7 @@ msgid "" "during method calls." msgstr "" -#: ../Doc/library/codecs.rst:517 +#: library/codecs.rst:517 msgid "" "The joined output of calls to the :meth:`~IncrementalEncoder.encode`/:meth:" "`~IncrementalDecoder.decode` method is the same as if all the single inputs " @@ -662,36 +851,36 @@ msgid "" "encoder/decoder." msgstr "" -#: ../Doc/library/codecs.rst:526 +#: library/codecs.rst:526 msgid "IncrementalEncoder Objects" msgstr "" -#: ../Doc/library/codecs.rst:528 +#: library/codecs.rst:528 msgid "" "The :class:`IncrementalEncoder` class is used for encoding an input in " "multiple steps. It defines the following methods which every incremental " "encoder must define in order to be compatible with the Python codec registry." msgstr "" -#: ../Doc/library/codecs.rst:535 +#: library/codecs.rst:535 msgid "Constructor for an :class:`IncrementalEncoder` instance." msgstr "" -#: ../Doc/library/codecs.rst:537 +#: library/codecs.rst:537 msgid "" "All incremental encoders must provide this constructor interface. They are " "free to add additional keyword arguments, but only the ones defined here are " "used by the Python codec registry." msgstr "" -#: ../Doc/library/codecs.rst:541 +#: library/codecs.rst:541 msgid "" "The :class:`IncrementalEncoder` may implement different error handling " "schemes by providing the *errors* keyword argument. See :ref:`error-" "handlers` for possible values." msgstr "" -#: ../Doc/library/codecs.rst:545 +#: library/codecs.rst:545 msgid "" "The *errors* argument will be assigned to an attribute of the same name. " "Assigning to this attribute makes it possible to switch between different " @@ -699,21 +888,21 @@ msgid "" "`IncrementalEncoder` object." msgstr "" -#: ../Doc/library/codecs.rst:553 +#: library/codecs.rst:553 msgid "" "Encodes *object* (taking the current state of the encoder into account) and " "returns the resulting encoded object. If this is the last call to :meth:" "`encode` *final* must be true (the default is false)." msgstr "" -#: ../Doc/library/codecs.rst:560 +#: library/codecs.rst:560 msgid "" "Reset the encoder to the initial state. The output is discarded: call ``." "encode(object, final=True)``, passing an empty byte or text string if " "necessary, to reset the encoder and to get the output." msgstr "" -#: ../Doc/library/codecs.rst:567 +#: library/codecs.rst:567 msgid "" "Return the current state of the encoder which must be an integer. The " "implementation should make sure that ``0`` is the most common state. (States " @@ -722,42 +911,42 @@ msgid "" "into an integer.)" msgstr "" -#: ../Doc/library/codecs.rst:576 +#: library/codecs.rst:576 msgid "" "Set the state of the encoder to *state*. *state* must be an encoder state " "returned by :meth:`getstate`." msgstr "" -#: ../Doc/library/codecs.rst:583 +#: library/codecs.rst:583 msgid "IncrementalDecoder Objects" msgstr "" -#: ../Doc/library/codecs.rst:585 +#: library/codecs.rst:585 msgid "" "The :class:`IncrementalDecoder` class is used for decoding an input in " "multiple steps. It defines the following methods which every incremental " "decoder must define in order to be compatible with the Python codec registry." msgstr "" -#: ../Doc/library/codecs.rst:592 +#: library/codecs.rst:592 msgid "Constructor for an :class:`IncrementalDecoder` instance." msgstr "" -#: ../Doc/library/codecs.rst:594 +#: library/codecs.rst:594 msgid "" "All incremental decoders must provide this constructor interface. They are " "free to add additional keyword arguments, but only the ones defined here are " "used by the Python codec registry." msgstr "" -#: ../Doc/library/codecs.rst:598 +#: library/codecs.rst:598 msgid "" "The :class:`IncrementalDecoder` may implement different error handling " "schemes by providing the *errors* keyword argument. See :ref:`error-" "handlers` for possible values." msgstr "" -#: ../Doc/library/codecs.rst:602 +#: library/codecs.rst:602 msgid "" "The *errors* argument will be assigned to an attribute of the same name. " "Assigning to this attribute makes it possible to switch between different " @@ -765,7 +954,7 @@ msgid "" "`IncrementalDecoder` object." msgstr "" -#: ../Doc/library/codecs.rst:610 +#: library/codecs.rst:610 msgid "" "Decodes *object* (taking the current state of the decoder into account) and " "returns the resulting decoded object. If this is the last call to :meth:" @@ -776,11 +965,11 @@ msgid "" "(which might raise an exception)." msgstr "" -#: ../Doc/library/codecs.rst:621 +#: library/codecs.rst:621 msgid "Reset the decoder to the initial state." msgstr "" -#: ../Doc/library/codecs.rst:626 +#: library/codecs.rst:626 msgid "" "Return the current state of the decoder. This must be a tuple with two " "items, the first must be the buffer containing the still undecoded input. " @@ -795,59 +984,59 @@ msgid "" "bytes of the resulting string into an integer.)" msgstr "" -#: ../Doc/library/codecs.rst:641 +#: library/codecs.rst:641 msgid "" "Set the state of the decoder to *state*. *state* must be a decoder state " "returned by :meth:`getstate`." msgstr "" -#: ../Doc/library/codecs.rst:646 +#: library/codecs.rst:646 msgid "Stream Encoding and Decoding" msgstr "" -#: ../Doc/library/codecs.rst:649 +#: library/codecs.rst:649 msgid "" "The :class:`StreamWriter` and :class:`StreamReader` classes provide generic " "working interfaces which can be used to implement new encoding submodules " "very easily. See :mod:`encodings.utf_8` for an example of how this is done." msgstr "" -#: ../Doc/library/codecs.rst:657 +#: library/codecs.rst:657 msgid "StreamWriter Objects" msgstr "" -#: ../Doc/library/codecs.rst:659 +#: library/codecs.rst:659 msgid "" "The :class:`StreamWriter` class is a subclass of :class:`Codec` and defines " "the following methods which every stream writer must define in order to be " "compatible with the Python codec registry." msgstr "" -#: ../Doc/library/codecs.rst:666 +#: library/codecs.rst:666 msgid "Constructor for a :class:`StreamWriter` instance." msgstr "" -#: ../Doc/library/codecs.rst:668 +#: library/codecs.rst:668 msgid "" "All stream writers must provide this constructor interface. They are free to " "add additional keyword arguments, but only the ones defined here are used by " "the Python codec registry." msgstr "" -#: ../Doc/library/codecs.rst:672 +#: library/codecs.rst:672 msgid "" "The *stream* argument must be a file-like object open for writing text or " "binary data, as appropriate for the specific codec." msgstr "" -#: ../Doc/library/codecs.rst:675 +#: library/codecs.rst:675 msgid "" "The :class:`StreamWriter` may implement different error handling schemes by " "providing the *errors* keyword argument. See :ref:`error-handlers` for the " "standard error handlers the underlying stream codec may support." msgstr "" -#: ../Doc/library/codecs.rst:679 +#: library/codecs.rst:679 msgid "" "The *errors* argument will be assigned to an attribute of the same name. " "Assigning to this attribute makes it possible to switch between different " @@ -855,70 +1044,70 @@ msgid "" "object." msgstr "" -#: ../Doc/library/codecs.rst:685 +#: library/codecs.rst:685 msgid "Writes the object's contents encoded to the stream." msgstr "" -#: ../Doc/library/codecs.rst:690 +#: library/codecs.rst:690 msgid "" "Writes the concatenated list of strings to the stream (possibly by reusing " "the :meth:`write` method). The standard bytes-to-bytes codecs do not support " "this method." msgstr "" -#: ../Doc/library/codecs.rst:697 +#: library/codecs.rst:697 msgid "Flushes and resets the codec buffers used for keeping state." msgstr "" -#: ../Doc/library/codecs.rst:699 +#: library/codecs.rst:699 msgid "" "Calling this method should ensure that the data on the output is put into a " "clean state that allows appending of new fresh data without having to rescan " "the whole stream to recover state." msgstr "" -#: ../Doc/library/codecs.rst:704 +#: library/codecs.rst:704 msgid "" "In addition to the above methods, the :class:`StreamWriter` must also " "inherit all other methods and attributes from the underlying stream." msgstr "" -#: ../Doc/library/codecs.rst:711 +#: library/codecs.rst:711 msgid "StreamReader Objects" msgstr "" -#: ../Doc/library/codecs.rst:713 +#: library/codecs.rst:713 msgid "" "The :class:`StreamReader` class is a subclass of :class:`Codec` and defines " "the following methods which every stream reader must define in order to be " "compatible with the Python codec registry." msgstr "" -#: ../Doc/library/codecs.rst:720 +#: library/codecs.rst:720 msgid "Constructor for a :class:`StreamReader` instance." msgstr "" -#: ../Doc/library/codecs.rst:722 +#: library/codecs.rst:722 msgid "" "All stream readers must provide this constructor interface. They are free to " "add additional keyword arguments, but only the ones defined here are used by " "the Python codec registry." msgstr "" -#: ../Doc/library/codecs.rst:726 +#: library/codecs.rst:726 msgid "" "The *stream* argument must be a file-like object open for reading text or " "binary data, as appropriate for the specific codec." msgstr "" -#: ../Doc/library/codecs.rst:729 +#: library/codecs.rst:729 msgid "" "The :class:`StreamReader` may implement different error handling schemes by " "providing the *errors* keyword argument. See :ref:`error-handlers` for the " "standard error handlers the underlying stream codec may support." msgstr "" -#: ../Doc/library/codecs.rst:733 +#: library/codecs.rst:733 msgid "" "The *errors* argument will be assigned to an attribute of the same name. " "Assigning to this attribute makes it possible to switch between different " @@ -926,24 +1115,24 @@ msgid "" "object." msgstr "" -#: ../Doc/library/codecs.rst:737 +#: library/codecs.rst:737 msgid "" "The set of allowed values for the *errors* argument can be extended with :" "func:`register_error`." msgstr "" -#: ../Doc/library/codecs.rst:743 +#: library/codecs.rst:743 msgid "Decodes data from the stream and returns the resulting object." msgstr "" -#: ../Doc/library/codecs.rst:745 +#: library/codecs.rst:745 msgid "" "The *chars* argument indicates the number of decoded code points or bytes to " "return. The :func:`read` method will never return more data than requested, " "but it might return less, if there is not enough available." msgstr "" -#: ../Doc/library/codecs.rst:750 +#: library/codecs.rst:750 msgid "" "The *size* argument indicates the approximate maximum number of encoded " "bytes or code points to read for decoding. The decoder can modify this " @@ -952,13 +1141,13 @@ msgid "" "huge files in one step." msgstr "" -#: ../Doc/library/codecs.rst:757 +#: library/codecs.rst:757 msgid "" "The *firstline* flag indicates that it would be sufficient to only return " "the first line, if there are decoding errors on later lines." msgstr "" -#: ../Doc/library/codecs.rst:761 +#: library/codecs.rst:761 msgid "" "The method should use a greedy read strategy meaning that it should read as " "much data as is allowed within the definition of the encoding and the given " @@ -966,72 +1155,72 @@ msgid "" "the stream, these should be read too." msgstr "" -#: ../Doc/library/codecs.rst:769 +#: library/codecs.rst:769 msgid "Read one line from the input stream and return the decoded data." msgstr "" -#: ../Doc/library/codecs.rst:771 +#: library/codecs.rst:771 msgid "" "*size*, if given, is passed as size argument to the stream's :meth:`read` " "method." msgstr "" -#: ../Doc/library/codecs.rst:774 +#: library/codecs.rst:774 msgid "" "If *keepends* is false line-endings will be stripped from the lines returned." msgstr "" -#: ../Doc/library/codecs.rst:780 +#: library/codecs.rst:780 msgid "" "Read all lines available on the input stream and return them as a list of " "lines." msgstr "" -#: ../Doc/library/codecs.rst:783 +#: library/codecs.rst:783 msgid "" "Line-endings are implemented using the codec's :meth:`decode` method and are " "included in the list entries if *keepends* is true." msgstr "" -#: ../Doc/library/codecs.rst:786 +#: library/codecs.rst:786 msgid "" "*sizehint*, if given, is passed as the *size* argument to the stream's :meth:" "`read` method." msgstr "" -#: ../Doc/library/codecs.rst:792 +#: library/codecs.rst:792 msgid "Resets the codec buffers used for keeping state." msgstr "" -#: ../Doc/library/codecs.rst:794 +#: library/codecs.rst:794 msgid "" "Note that no stream repositioning should take place. This method is " "primarily intended to be able to recover from decoding errors." msgstr "" -#: ../Doc/library/codecs.rst:798 +#: library/codecs.rst:798 msgid "" "In addition to the above methods, the :class:`StreamReader` must also " "inherit all other methods and attributes from the underlying stream." msgstr "" -#: ../Doc/library/codecs.rst:804 +#: library/codecs.rst:804 msgid "StreamReaderWriter Objects" msgstr "" -#: ../Doc/library/codecs.rst:806 +#: library/codecs.rst:806 msgid "" "The :class:`StreamReaderWriter` is a convenience class that allows wrapping " "streams which work in both read and write modes." msgstr "" -#: ../Doc/library/codecs.rst:809 ../Doc/library/codecs.rst:833 +#: library/codecs.rst:833 msgid "" "The design is such that one can use the factory functions returned by the :" "func:`lookup` function to construct the instance." msgstr "" -#: ../Doc/library/codecs.rst:815 +#: library/codecs.rst:815 msgid "" "Creates a :class:`StreamReaderWriter` instance. *stream* must be a file-like " "object. *Reader* and *Writer* must be factory functions or classes providing " @@ -1040,24 +1229,24 @@ msgid "" "writers." msgstr "" -#: ../Doc/library/codecs.rst:820 +#: library/codecs.rst:820 msgid "" ":class:`StreamReaderWriter` instances define the combined interfaces of :" "class:`StreamReader` and :class:`StreamWriter` classes. They inherit all " "other methods and attributes from the underlying stream." msgstr "" -#: ../Doc/library/codecs.rst:828 +#: library/codecs.rst:828 msgid "StreamRecoder Objects" msgstr "" -#: ../Doc/library/codecs.rst:830 +#: library/codecs.rst:830 msgid "" "The :class:`StreamRecoder` translates data from one encoding to another, " "which is sometimes useful when dealing with different encoding environments." msgstr "" -#: ../Doc/library/codecs.rst:839 +#: library/codecs.rst:839 msgid "" "Creates a :class:`StreamRecoder` instance which implements a two-way " "conversion: *encode* and *decode* work on the frontend — the data visible to " @@ -1065,17 +1254,17 @@ msgid "" "work on the backend — the data in *stream*." msgstr "" -#: ../Doc/library/codecs.rst:844 +#: library/codecs.rst:844 msgid "" "You can use these objects to do transparent transcodings, e.g., from Latin-1 " "to UTF-8 and back." msgstr "" -#: ../Doc/library/codecs.rst:847 +#: library/codecs.rst:847 msgid "The *stream* argument must be a file-like object." msgstr "" -#: ../Doc/library/codecs.rst:849 +#: library/codecs.rst:849 msgid "" "The *encode* and *decode* arguments must adhere to the :class:`Codec` " "interface. *Reader* and *Writer* must be factory functions or classes " @@ -1083,24 +1272,24 @@ msgid "" "interface respectively." msgstr "" -#: ../Doc/library/codecs.rst:854 +#: library/codecs.rst:854 msgid "" "Error handling is done in the same way as defined for the stream readers and " "writers." msgstr "" -#: ../Doc/library/codecs.rst:858 +#: library/codecs.rst:858 msgid "" ":class:`StreamRecoder` instances define the combined interfaces of :class:" "`StreamReader` and :class:`StreamWriter` classes. They inherit all other " "methods and attributes from the underlying stream." msgstr "" -#: ../Doc/library/codecs.rst:866 +#: library/codecs.rst:866 msgid "Encodings and Unicode" msgstr "" -#: ../Doc/library/codecs.rst:868 +#: library/codecs.rst:868 msgid "" "Strings are stored internally as sequences of code points in range ``0x0``--" "``0x10FFFF``. (See :pep:`393` for more details about the implementation.) " @@ -1112,7 +1301,7 @@ msgid "" "collectivity referred to as :term:`text encodings `." msgstr "" -#: ../Doc/library/codecs.rst:878 +#: library/codecs.rst:878 msgid "" "The simplest text encoding (called ``'latin-1'`` or ``'iso-8859-1'``) maps " "the code points 0--255 to the bytes ``0x0``--``0xff``, which means that a " @@ -1123,7 +1312,7 @@ msgid "" "position 3: ordinal not in range(256)``." msgstr "" -#: ../Doc/library/codecs.rst:886 +#: library/codecs.rst:886 msgid "" "There's another group of encodings (the so called charmap encodings) that " "choose a different subset of all Unicode code points and how these code " @@ -1133,7 +1322,7 @@ msgid "" "that shows you which character is mapped to which byte value." msgstr "" -#: ../Doc/library/codecs.rst:893 +#: library/codecs.rst:893 msgid "" "All of these encodings can only encode 256 of the 1114112 code points " "defined in Unicode. A simple and straightforward way that can store each " @@ -1163,7 +1352,7 @@ msgid "" "normal character that will be decoded like any other." msgstr "" -#: ../Doc/library/codecs.rst:919 +#: library/codecs.rst:919 msgid "" "There's another encoding that is able to encoding the full range of Unicode " "characters: UTF-8. UTF-8 is an 8-bit encoding, which means there are no " @@ -1174,86 +1363,87 @@ msgid "" "which when concatenated give the Unicode character):" msgstr "" -#: ../Doc/library/codecs.rst:928 +#: library/codecs.rst:928 msgid "Range" msgstr "*Range*" -#: ../Doc/library/codecs.rst:928 +#: library/codecs.rst:928 +#, fuzzy msgid "Encoding" -msgstr "" +msgstr "Encodages" -#: ../Doc/library/codecs.rst:930 +#: library/codecs.rst:930 msgid "``U-00000000`` ... ``U-0000007F``" msgstr "``U-00000000`` ... ``U-0000007F``" -#: ../Doc/library/codecs.rst:930 +#: library/codecs.rst:930 msgid "0xxxxxxx" msgstr "0xxxxxxx" -#: ../Doc/library/codecs.rst:932 +#: library/codecs.rst:932 msgid "``U-00000080`` ... ``U-000007FF``" msgstr "``U-00000080`` ... ``U-000007FF``" -#: ../Doc/library/codecs.rst:932 +#: library/codecs.rst:932 msgid "110xxxxx 10xxxxxx" msgstr "110xxxxx 10xxxxxx" -#: ../Doc/library/codecs.rst:934 +#: library/codecs.rst:934 msgid "``U-00000800`` ... ``U-0000FFFF``" msgstr "``U-00000800`` ... ``U-0000FFFF``" -#: ../Doc/library/codecs.rst:934 +#: library/codecs.rst:934 msgid "1110xxxx 10xxxxxx 10xxxxxx" msgstr "1110xxxx 10xxxxxx 10xxxxxx" -#: ../Doc/library/codecs.rst:936 +#: library/codecs.rst:936 msgid "``U-00010000`` ... ``U-0010FFFF``" msgstr "``U-00010000`` ... ``U-0010FFFF``" -#: ../Doc/library/codecs.rst:936 +#: library/codecs.rst:936 msgid "11110xxx 10xxxxxx 10xxxxxx 10xxxxxx" msgstr "11110xxx 10xxxxxx 10xxxxxx 10xxxxxx" -#: ../Doc/library/codecs.rst:939 +#: library/codecs.rst:939 msgid "" "The least significant bit of the Unicode character is the rightmost x bit." msgstr "" -#: ../Doc/library/codecs.rst:941 +#: library/codecs.rst:941 msgid "" "As UTF-8 is an 8-bit encoding no BOM is required and any ``U+FEFF`` " "character in the decoded string (even if it's the first character) is " "treated as a ``ZERO WIDTH NO-BREAK SPACE``." msgstr "" -#: ../Doc/library/codecs.rst:945 +#: library/codecs.rst:945 msgid "" "Without external information it's impossible to reliably determine which " "encoding was used for encoding a string. Each charmap encoding can decode " "any random byte sequence. However that's not possible with UTF-8, as UTF-8 " "byte sequences have a structure that doesn't allow arbitrary byte sequences. " "To increase the reliability with which a UTF-8 encoding can be detected, " -"Microsoft invented a variant of UTF-8 (that Python 2.5 calls ``\"utf-8-sig" -"\"``) for its Notepad program: Before any of the Unicode characters is " +"Microsoft invented a variant of UTF-8 (that Python 2.5 calls ``\"utf-8-" +"sig\"``) for its Notepad program: Before any of the Unicode characters is " "written to the file, a UTF-8 encoded BOM (which looks like this as a byte " "sequence: ``0xef``, ``0xbb``, ``0xbf``) is written. As it's rather " "improbable that any charmap encoded file starts with these byte values " "(which would e.g. map to" msgstr "" -#: ../Doc/library/codecs.rst:0 +#: library/codecs.rst:0 msgid "LATIN SMALL LETTER I WITH DIAERESIS" msgstr "LATIN SMALL LETTER I WITH DIAERESIS" -#: ../Doc/library/codecs.rst:0 +#: library/codecs.rst:0 msgid "RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK" msgstr "RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK" -#: ../Doc/library/codecs.rst:0 +#: library/codecs.rst:0 msgid "INVERTED QUESTION MARK" msgstr "INVERTED QUESTION MARK" -#: ../Doc/library/codecs.rst:961 +#: library/codecs.rst:961 msgid "" "in iso-8859-1), this increases the probability that a ``utf-8-sig`` encoding " "can be correctly guessed from the byte sequence. So here the BOM is not used " @@ -1265,11 +1455,11 @@ msgid "" "the use of the BOM is discouraged and should generally be avoided." msgstr "" -#: ../Doc/library/codecs.rst:974 +#: library/codecs.rst:974 msgid "Standard Encodings" msgstr "" -#: ../Doc/library/codecs.rst:976 +#: library/codecs.rst:976 msgid "" "Python comes with a number of codecs built-in, either implemented as C " "functions or with dictionaries as mapping tables. The following table lists " @@ -1281,7 +1471,7 @@ msgid "" "alias for the ``'utf_8'`` codec." msgstr "" -#: ../Doc/library/codecs.rst:986 +#: library/codecs.rst:986 msgid "" "Some common encodings can bypass the codecs lookup machinery to improve " "performance. These optimization opportunities are only recognized by CPython " @@ -1291,11 +1481,11 @@ msgid "" "Using alternative aliases for these encodings may result in slower execution." msgstr "" -#: ../Doc/library/codecs.rst:994 +#: library/codecs.rst:994 msgid "Optimization opportunity recognized for us-ascii." msgstr "" -#: ../Doc/library/codecs.rst:997 +#: library/codecs.rst:997 msgid "" "Many of the character sets support the same languages. They vary in " "individual characters (e.g. whether the EURO SIGN is supported or not), and " @@ -1303,506 +1493,485 @@ msgid "" "languages in particular, the following variants typically exist:" msgstr "" -#: ../Doc/library/codecs.rst:1002 +#: library/codecs.rst:1002 msgid "an ISO 8859 codeset" msgstr "" -#: ../Doc/library/codecs.rst:1004 +#: library/codecs.rst:1004 msgid "" "a Microsoft Windows code page, which is typically derived from an 8859 " "codeset, but replaces control characters with additional graphic characters" msgstr "" -#: ../Doc/library/codecs.rst:1007 +#: library/codecs.rst:1007 msgid "an IBM EBCDIC code page" msgstr "" -#: ../Doc/library/codecs.rst:1009 +#: library/codecs.rst:1009 msgid "an IBM PC code page, which is ASCII compatible" msgstr "" -#: ../Doc/library/codecs.rst:1014 ../Doc/library/codecs.rst:1268 -#: ../Doc/library/codecs.rst:1335 ../Doc/library/codecs.rst:1390 +#: library/codecs.rst:1268 library/codecs.rst:1390 msgid "Codec" msgstr "" -#: ../Doc/library/codecs.rst:1014 ../Doc/library/codecs.rst:1268 -#: ../Doc/library/codecs.rst:1335 ../Doc/library/codecs.rst:1390 +#: library/codecs.rst:1268 library/codecs.rst:1390 msgid "Aliases" msgstr "" -#: ../Doc/library/codecs.rst:1014 +#: library/codecs.rst:1014 msgid "Languages" msgstr "" -#: ../Doc/library/codecs.rst:1016 +#: library/codecs.rst:1016 msgid "ascii" msgstr "*ascii*" -#: ../Doc/library/codecs.rst:1016 +#: library/codecs.rst:1016 msgid "646, us-ascii" msgstr "*646*, *us-ascii*" -#: ../Doc/library/codecs.rst:1016 ../Doc/library/codecs.rst:1022 -#: ../Doc/library/codecs.rst:1030 +#: library/codecs.rst:1022 library/codecs.rst:1030 msgid "English" msgstr "Anglais" -#: ../Doc/library/codecs.rst:1018 +#: library/codecs.rst:1018 msgid "big5" msgstr "*big5*" -#: ../Doc/library/codecs.rst:1018 +#: library/codecs.rst:1018 msgid "big5-tw, csbig5" msgstr "*big5-tw*, *csbig5*" -#: ../Doc/library/codecs.rst:1018 ../Doc/library/codecs.rst:1020 -#: ../Doc/library/codecs.rst:1078 +#: library/codecs.rst:1020 library/codecs.rst:1078 msgid "Traditional Chinese" msgstr "Chinois Traditionnel" -#: ../Doc/library/codecs.rst:1020 +#: library/codecs.rst:1020 msgid "big5hkscs" msgstr "*big5hkscs*" -#: ../Doc/library/codecs.rst:1020 +#: library/codecs.rst:1020 msgid "big5-hkscs, hkscs" msgstr "*big5-hkscs*, *hkscs*" -#: ../Doc/library/codecs.rst:1022 +#: library/codecs.rst:1022 msgid "cp037" msgstr "*cp037*" -#: ../Doc/library/codecs.rst:1022 +#: library/codecs.rst:1022 msgid "IBM037, IBM039" msgstr "*IBM037*, *IBM039*" -#: ../Doc/library/codecs.rst:1024 +#: library/codecs.rst:1024 msgid "cp273" msgstr "*cp273*" -#: ../Doc/library/codecs.rst:1024 +#: library/codecs.rst:1024 msgid "273, IBM273, csIBM273" msgstr "*273*, *IBM273*, *csIBM273*" -#: ../Doc/library/codecs.rst:1024 +#: library/codecs.rst:1024 msgid "German" msgstr "Allemand" -#: ../Doc/library/codecs.rst:1028 +#: library/codecs.rst:1028 msgid "cp424" msgstr "*cp424*" -#: ../Doc/library/codecs.rst:1028 +#: library/codecs.rst:1028 msgid "EBCDIC-CP-HE, IBM424" msgstr "*EBCDIC-CP-HE*, *IBM424*" -#: ../Doc/library/codecs.rst:1028 ../Doc/library/codecs.rst:1048 -#: ../Doc/library/codecs.rst:1058 ../Doc/library/codecs.rst:1101 -#: ../Doc/library/codecs.rst:1164 +#: library/codecs.rst:1048 library/codecs.rst:1101 library/codecs.rst:1164 msgid "Hebrew" msgstr "Hébreux" -#: ../Doc/library/codecs.rst:1030 +#: library/codecs.rst:1030 msgid "cp437" msgstr "*cp437*" -#: ../Doc/library/codecs.rst:1030 +#: library/codecs.rst:1030 msgid "437, IBM437" msgstr "*437*, *IBM437*" -#: ../Doc/library/codecs.rst:1032 +#: library/codecs.rst:1032 msgid "cp500" msgstr "*cp500*" -#: ../Doc/library/codecs.rst:1032 +#: library/codecs.rst:1032 msgid "EBCDIC-CP-BE, EBCDIC-CP-CH, IBM500" msgstr "*EBCDIC-CP-BE*, *EBCDIC-CP-CH*, *IBM500*" -#: ../Doc/library/codecs.rst:1032 ../Doc/library/codecs.rst:1041 -#: ../Doc/library/codecs.rst:1052 ../Doc/library/codecs.rst:1088 -#: ../Doc/library/codecs.rst:1095 ../Doc/library/codecs.rst:1148 -#: ../Doc/library/codecs.rst:1176 ../Doc/library/codecs.rst:1203 +#: library/codecs.rst:1041 library/codecs.rst:1088 library/codecs.rst:1148 +#: library/codecs.rst:1203 msgid "Western Europe" msgstr "Europe de l'ouest" -#: ../Doc/library/codecs.rst:1035 +#: library/codecs.rst:1035 msgid "cp720" msgstr "*cp720*" -#: ../Doc/library/codecs.rst:1035 ../Doc/library/codecs.rst:1062 -#: ../Doc/library/codecs.rst:1103 ../Doc/library/codecs.rst:1160 +#: library/codecs.rst:1062 library/codecs.rst:1160 msgid "Arabic" msgstr "Arabe" -#: ../Doc/library/codecs.rst:1037 +#: library/codecs.rst:1037 msgid "cp737" msgstr "*cp737*" -#: ../Doc/library/codecs.rst:1037 ../Doc/library/codecs.rst:1068 -#: ../Doc/library/codecs.rst:1072 ../Doc/library/codecs.rst:1097 -#: ../Doc/library/codecs.rst:1162 ../Doc/library/codecs.rst:1197 +#: library/codecs.rst:1068 library/codecs.rst:1097 library/codecs.rst:1197 msgid "Greek" msgstr "Grec" -#: ../Doc/library/codecs.rst:1039 +#: library/codecs.rst:1039 msgid "cp775" msgstr "*cp775*" -#: ../Doc/library/codecs.rst:1039 +#: library/codecs.rst:1039 msgid "IBM775" msgstr "*IBM775*" -#: ../Doc/library/codecs.rst:1039 ../Doc/library/codecs.rst:1105 -#: ../Doc/library/codecs.rst:1155 ../Doc/library/codecs.rst:1172 +#: library/codecs.rst:1105 library/codecs.rst:1172 msgid "Baltic languages" msgstr "Langues Baltiques" -#: ../Doc/library/codecs.rst:1041 +#: library/codecs.rst:1041 msgid "cp850" msgstr "*cp850*" -#: ../Doc/library/codecs.rst:1041 +#: library/codecs.rst:1041 msgid "850, IBM850" msgstr "*850*, *IBM850*" -#: ../Doc/library/codecs.rst:1043 +#: library/codecs.rst:1043 msgid "cp852" msgstr "*cp852*" -#: ../Doc/library/codecs.rst:1043 +#: library/codecs.rst:1043 msgid "852, IBM852" msgstr "*852*, *IBM852*" -#: ../Doc/library/codecs.rst:1043 ../Doc/library/codecs.rst:1090 -#: ../Doc/library/codecs.rst:1151 ../Doc/library/codecs.rst:1201 +#: library/codecs.rst:1090 library/codecs.rst:1201 msgid "Central and Eastern Europe" msgstr "Europe centrale et Europe de l'Est" -#: ../Doc/library/codecs.rst:1045 +#: library/codecs.rst:1045 msgid "cp855" msgstr "*cp855*" -#: ../Doc/library/codecs.rst:1045 +#: library/codecs.rst:1045 msgid "855, IBM855" msgstr "*855*, *IBM855*" -#: ../Doc/library/codecs.rst:1045 ../Doc/library/codecs.rst:1092 -#: ../Doc/library/codecs.rst:1157 ../Doc/library/codecs.rst:1194 +#: library/codecs.rst:1092 library/codecs.rst:1194 msgid "Bulgarian, Byelorussian, Macedonian, Russian, Serbian" msgstr "Bulgare, Biélorusse, Macédonien, Russe, Serbe" -#: ../Doc/library/codecs.rst:1048 +#: library/codecs.rst:1048 msgid "cp856" msgstr "*cp856*" -#: ../Doc/library/codecs.rst:1050 +#: library/codecs.rst:1050 msgid "cp857" msgstr "*cp857*" -#: ../Doc/library/codecs.rst:1050 +#: library/codecs.rst:1050 msgid "857, IBM857" msgstr "*857*, *IBM857*" -#: ../Doc/library/codecs.rst:1050 ../Doc/library/codecs.rst:1082 -#: ../Doc/library/codecs.rst:1099 ../Doc/library/codecs.rst:1166 -#: ../Doc/library/codecs.rst:1205 +#: library/codecs.rst:1082 library/codecs.rst:1166 library/codecs.rst:1205 msgid "Turkish" msgstr "Turc" -#: ../Doc/library/codecs.rst:1052 +#: library/codecs.rst:1052 msgid "cp858" msgstr "*cp858*" -#: ../Doc/library/codecs.rst:1052 +#: library/codecs.rst:1052 msgid "858, IBM858" msgstr "*858*, *IBM858*" -#: ../Doc/library/codecs.rst:1054 +#: library/codecs.rst:1054 msgid "cp860" msgstr "*cp860*" -#: ../Doc/library/codecs.rst:1054 +#: library/codecs.rst:1054 msgid "860, IBM860" msgstr "*860*, *IBM860*" -#: ../Doc/library/codecs.rst:1054 +#: library/codecs.rst:1054 msgid "Portuguese" msgstr "Portugais" -#: ../Doc/library/codecs.rst:1056 +#: library/codecs.rst:1056 msgid "cp861" msgstr "*cp861*" -#: ../Doc/library/codecs.rst:1056 +#: library/codecs.rst:1056 msgid "861, CP-IS, IBM861" msgstr "*861*, *CP-IS*, *IBM861*" -#: ../Doc/library/codecs.rst:1056 ../Doc/library/codecs.rst:1199 +#: library/codecs.rst:1199 msgid "Icelandic" msgstr "Islandais" -#: ../Doc/library/codecs.rst:1058 +#: library/codecs.rst:1058 msgid "cp862" msgstr "*cp862*" -#: ../Doc/library/codecs.rst:1058 +#: library/codecs.rst:1058 msgid "862, IBM862" msgstr "*862*, *IBM862*" -#: ../Doc/library/codecs.rst:1060 +#: library/codecs.rst:1060 msgid "cp863" msgstr "*cp863*" -#: ../Doc/library/codecs.rst:1060 +#: library/codecs.rst:1060 msgid "863, IBM863" msgstr "*863*, *IBM863*" -#: ../Doc/library/codecs.rst:1060 +#: library/codecs.rst:1060 msgid "Canadian" msgstr "Canadien" -#: ../Doc/library/codecs.rst:1062 +#: library/codecs.rst:1062 msgid "cp864" msgstr "*cp864*" -#: ../Doc/library/codecs.rst:1062 +#: library/codecs.rst:1062 msgid "IBM864" msgstr "*IBM864*" -#: ../Doc/library/codecs.rst:1064 +#: library/codecs.rst:1064 msgid "cp865" msgstr "*cp865*" -#: ../Doc/library/codecs.rst:1064 +#: library/codecs.rst:1064 msgid "865, IBM865" msgstr "*865*, *IBM865*" -#: ../Doc/library/codecs.rst:1064 +#: library/codecs.rst:1064 msgid "Danish, Norwegian" msgstr "" -#: ../Doc/library/codecs.rst:1066 +#: library/codecs.rst:1066 msgid "cp866" msgstr "*cp866*" -#: ../Doc/library/codecs.rst:1066 +#: library/codecs.rst:1066 msgid "866, IBM866" msgstr "*866*, *IBM866*" -#: ../Doc/library/codecs.rst:1066 ../Doc/library/codecs.rst:1182 +#: library/codecs.rst:1182 msgid "Russian" msgstr "Russe" -#: ../Doc/library/codecs.rst:1068 +#: library/codecs.rst:1068 msgid "cp869" msgstr "*cp869*" -#: ../Doc/library/codecs.rst:1068 +#: library/codecs.rst:1068 msgid "869, CP-GR, IBM869" msgstr "*869*, *CP-GR*, *IBM869*" -#: ../Doc/library/codecs.rst:1070 +#: library/codecs.rst:1070 msgid "cp874" msgstr "*cp874*" -#: ../Doc/library/codecs.rst:1070 +#: library/codecs.rst:1070 msgid "Thai" msgstr "" -#: ../Doc/library/codecs.rst:1072 +#: library/codecs.rst:1072 msgid "cp875" msgstr "*cp875*" -#: ../Doc/library/codecs.rst:1074 +#: library/codecs.rst:1074 msgid "cp932" msgstr "*cp932*" -#: ../Doc/library/codecs.rst:1074 +#: library/codecs.rst:1074 msgid "932, ms932, mskanji, ms-kanji" msgstr "*932*, *ms932*, *mskanji*, *ms-kanji*" -#: ../Doc/library/codecs.rst:1074 ../Doc/library/codecs.rst:1109 -#: ../Doc/library/codecs.rst:1111 ../Doc/library/codecs.rst:1113 -#: ../Doc/library/codecs.rst:1130 ../Doc/library/codecs.rst:1133 -#: ../Doc/library/codecs.rst:1138 ../Doc/library/codecs.rst:1141 -#: ../Doc/library/codecs.rst:1143 ../Doc/library/codecs.rst:1210 -#: ../Doc/library/codecs.rst:1213 ../Doc/library/codecs.rst:1216 +#: library/codecs.rst:1109 library/codecs.rst:1113 library/codecs.rst:1133 +#: library/codecs.rst:1141 library/codecs.rst:1210 library/codecs.rst:1216 msgid "Japanese" msgstr "" -#: ../Doc/library/codecs.rst:1076 +#: library/codecs.rst:1076 msgid "cp949" msgstr "*cp949*" -#: ../Doc/library/codecs.rst:1076 +#: library/codecs.rst:1076 msgid "949, ms949, uhc" msgstr "*949*, *ms949*, *uhc*" -#: ../Doc/library/codecs.rst:1076 ../Doc/library/codecs.rst:1115 -#: ../Doc/library/codecs.rst:1145 ../Doc/library/codecs.rst:1180 +#: library/codecs.rst:1115 library/codecs.rst:1180 msgid "Korean" msgstr "" -#: ../Doc/library/codecs.rst:1078 +#: library/codecs.rst:1078 msgid "cp950" msgstr "*cp950*" -#: ../Doc/library/codecs.rst:1078 +#: library/codecs.rst:1078 msgid "950, ms950" msgstr "*950*, *ms950*" -#: ../Doc/library/codecs.rst:1080 +#: library/codecs.rst:1080 msgid "cp1006" msgstr "*cp1006*" -#: ../Doc/library/codecs.rst:1080 +#: library/codecs.rst:1080 msgid "Urdu" msgstr "" -#: ../Doc/library/codecs.rst:1082 +#: library/codecs.rst:1082 msgid "cp1026" msgstr "*cp1026*" -#: ../Doc/library/codecs.rst:1082 +#: library/codecs.rst:1082 msgid "ibm1026" msgstr "*ibm1026*" -#: ../Doc/library/codecs.rst:1084 +#: library/codecs.rst:1084 msgid "cp1125" msgstr "*cp1125*" -#: ../Doc/library/codecs.rst:1084 +#: library/codecs.rst:1084 msgid "1125, ibm1125, cp866u, ruscii" msgstr "*1125*, *ibm1125*, *cp866u*, *ruscii*" -#: ../Doc/library/codecs.rst:1084 ../Doc/library/codecs.rst:1188 +#: library/codecs.rst:1188 msgid "Ukrainian" msgstr "" -#: ../Doc/library/codecs.rst:1088 +#: library/codecs.rst:1088 msgid "cp1140" msgstr "*cp1140*" -#: ../Doc/library/codecs.rst:1088 +#: library/codecs.rst:1088 msgid "ibm1140" msgstr "*ibm1140*" -#: ../Doc/library/codecs.rst:1090 +#: library/codecs.rst:1090 msgid "cp1250" msgstr "*cp1250*" -#: ../Doc/library/codecs.rst:1090 +#: library/codecs.rst:1090 msgid "windows-1250" msgstr "*windows-1250*" -#: ../Doc/library/codecs.rst:1092 +#: library/codecs.rst:1092 msgid "cp1251" msgstr "*cp1251*" -#: ../Doc/library/codecs.rst:1092 +#: library/codecs.rst:1092 msgid "windows-1251" msgstr "*windows-1251*" -#: ../Doc/library/codecs.rst:1095 +#: library/codecs.rst:1095 msgid "cp1252" msgstr "*cp1252*" -#: ../Doc/library/codecs.rst:1095 +#: library/codecs.rst:1095 msgid "windows-1252" msgstr "*windows-1252*" -#: ../Doc/library/codecs.rst:1097 +#: library/codecs.rst:1097 msgid "cp1253" msgstr "*cp1253*" -#: ../Doc/library/codecs.rst:1097 +#: library/codecs.rst:1097 msgid "windows-1253" msgstr "*windows-1253*" -#: ../Doc/library/codecs.rst:1099 +#: library/codecs.rst:1099 msgid "cp1254" msgstr "*cp1254*" -#: ../Doc/library/codecs.rst:1099 +#: library/codecs.rst:1099 msgid "windows-1254" msgstr "*windows-1254*" -#: ../Doc/library/codecs.rst:1101 +#: library/codecs.rst:1101 msgid "cp1255" msgstr "*cp1255*" -#: ../Doc/library/codecs.rst:1101 +#: library/codecs.rst:1101 msgid "windows-1255" msgstr "*windows-1255*" -#: ../Doc/library/codecs.rst:1103 +#: library/codecs.rst:1103 msgid "cp1256" msgstr "*cp1256*" -#: ../Doc/library/codecs.rst:1103 +#: library/codecs.rst:1103 msgid "windows-1256" msgstr "*windows-1256*" -#: ../Doc/library/codecs.rst:1105 +#: library/codecs.rst:1105 msgid "cp1257" msgstr "*cp1257*" -#: ../Doc/library/codecs.rst:1105 +#: library/codecs.rst:1105 msgid "windows-1257" msgstr "*windows-1257*" -#: ../Doc/library/codecs.rst:1107 +#: library/codecs.rst:1107 msgid "cp1258" msgstr "*cp1258*" -#: ../Doc/library/codecs.rst:1107 +#: library/codecs.rst:1107 msgid "windows-1258" msgstr "*windows-1258*" -#: ../Doc/library/codecs.rst:1107 +#: library/codecs.rst:1107 msgid "Vietnamese" msgstr "" -#: ../Doc/library/codecs.rst:1109 +#: library/codecs.rst:1109 msgid "euc_jp" msgstr "*euc_jp*" -#: ../Doc/library/codecs.rst:1109 +#: library/codecs.rst:1109 msgid "eucjp, ujis, u-jis" msgstr "*eucjp*, *ujis*, *u-jis*" -#: ../Doc/library/codecs.rst:1111 +#: library/codecs.rst:1111 msgid "euc_jis_2004" msgstr "*euc_jis_2004*" -#: ../Doc/library/codecs.rst:1111 +#: library/codecs.rst:1111 msgid "jisx0213, eucjis2004" msgstr "*jisx0213*, *eucjis2004*" -#: ../Doc/library/codecs.rst:1113 +#: library/codecs.rst:1113 msgid "euc_jisx0213" msgstr "*euc_jisx0213*" -#: ../Doc/library/codecs.rst:1113 +#: library/codecs.rst:1113 msgid "eucjisx0213" msgstr "*eucjisx0213*" -#: ../Doc/library/codecs.rst:1115 +#: library/codecs.rst:1115 msgid "euc_kr" msgstr "*euc_kr*" -#: ../Doc/library/codecs.rst:1115 +#: library/codecs.rst:1115 msgid "euckr, korean, ksc5601, ks_c-5601, ks_c-5601-1987, ksx1001, ks_x-1001" msgstr "" "*euckr*, *korean*, *ksc5601*, *ks_c-5601*, *ks_c-5601-1987*, *ksx1001*, " "*ks_x-1001*" -#: ../Doc/library/codecs.rst:1119 +#: library/codecs.rst:1119 msgid "gb2312" msgstr "*gb2312*" -#: ../Doc/library/codecs.rst:1119 +#: library/codecs.rst:1119 msgid "" "chinese, csiso58gb231280, euc-cn, euccn, eucgb2312-cn, gb2312-1980, " "gb2312-80, iso-ir-58" @@ -1810,447 +1979,444 @@ msgstr "" "*chinese*, *csiso58gb231280*, *euc-cn*, *euccn*, *eucgb2312-cn*, " "*gb2312-1980*, *gb2312-80*, *iso-ir-58*" -#: ../Doc/library/codecs.rst:1119 ../Doc/library/codecs.rst:1128 +#: library/codecs.rst:1128 msgid "Simplified Chinese" msgstr "" -#: ../Doc/library/codecs.rst:1124 +#: library/codecs.rst:1124 msgid "gbk" msgstr "*gbk*" -#: ../Doc/library/codecs.rst:1124 +#: library/codecs.rst:1124 msgid "936, cp936, ms936" msgstr "*936*, *cp936*, *ms936*" -#: ../Doc/library/codecs.rst:1124 ../Doc/library/codecs.rst:1126 +#: library/codecs.rst:1126 msgid "Unified Chinese" msgstr "" -#: ../Doc/library/codecs.rst:1126 +#: library/codecs.rst:1126 msgid "gb18030" msgstr "*gb18030*" -#: ../Doc/library/codecs.rst:1126 +#: library/codecs.rst:1126 msgid "gb18030-2000" msgstr "*gb18030-2000*" -#: ../Doc/library/codecs.rst:1128 +#: library/codecs.rst:1128 msgid "hz" msgstr "*hz*" -#: ../Doc/library/codecs.rst:1128 +#: library/codecs.rst:1128 msgid "hzgb, hz-gb, hz-gb-2312" msgstr "*hzgb*, *hz-gb*, *hz-gb-2312*" -#: ../Doc/library/codecs.rst:1130 +#: library/codecs.rst:1130 msgid "iso2022_jp" msgstr "*iso2022_jp*" -#: ../Doc/library/codecs.rst:1130 +#: library/codecs.rst:1130 msgid "csiso2022jp, iso2022jp, iso-2022-jp" msgstr "*csiso2022jp*, *iso2022jp*, *iso-2022-jp*" -#: ../Doc/library/codecs.rst:1133 +#: library/codecs.rst:1133 msgid "iso2022_jp_1" msgstr "*iso2022_jp_1*" -#: ../Doc/library/codecs.rst:1133 +#: library/codecs.rst:1133 msgid "iso2022jp-1, iso-2022-jp-1" msgstr "*iso2022jp-1*, *iso-2022-jp-1*" -#: ../Doc/library/codecs.rst:1135 +#: library/codecs.rst:1135 msgid "iso2022_jp_2" msgstr "*iso2022_jp_2*" -#: ../Doc/library/codecs.rst:1135 +#: library/codecs.rst:1135 msgid "iso2022jp-2, iso-2022-jp-2" msgstr "*iso2022jp-2*, *iso-2022-jp-2*" -#: ../Doc/library/codecs.rst:1135 +#: library/codecs.rst:1135 msgid "Japanese, Korean, Simplified Chinese, Western Europe, Greek" msgstr "" -#: ../Doc/library/codecs.rst:1138 +#: library/codecs.rst:1138 msgid "iso2022_jp_2004" msgstr "*iso2022_jp_2004*" -#: ../Doc/library/codecs.rst:1138 +#: library/codecs.rst:1138 msgid "iso2022jp-2004, iso-2022-jp-2004" msgstr "*iso2022jp-2004*, *iso-2022-jp-2004*" -#: ../Doc/library/codecs.rst:1141 +#: library/codecs.rst:1141 msgid "iso2022_jp_3" msgstr "*iso2022_jp_3*" -#: ../Doc/library/codecs.rst:1141 +#: library/codecs.rst:1141 msgid "iso2022jp-3, iso-2022-jp-3" msgstr "*iso2022jp-3*, *iso-2022-jp-3*" -#: ../Doc/library/codecs.rst:1143 +#: library/codecs.rst:1143 msgid "iso2022_jp_ext" msgstr "*iso2022_jp_ext*" -#: ../Doc/library/codecs.rst:1143 +#: library/codecs.rst:1143 msgid "iso2022jp-ext, iso-2022-jp-ext" msgstr "*iso2022jp-ext*, *iso-2022-jp-ext*" -#: ../Doc/library/codecs.rst:1145 +#: library/codecs.rst:1145 msgid "iso2022_kr" msgstr "*iso2022_kr*" -#: ../Doc/library/codecs.rst:1145 +#: library/codecs.rst:1145 msgid "csiso2022kr, iso2022kr, iso-2022-kr" msgstr "*csiso2022kr*, *iso2022kr*, *iso-2022-kr*" -#: ../Doc/library/codecs.rst:1148 +#: library/codecs.rst:1148 msgid "latin_1" msgstr "*latin_1*" -#: ../Doc/library/codecs.rst:1148 +#: library/codecs.rst:1148 msgid "iso-8859-1, iso8859-1, 8859, cp819, latin, latin1, L1" msgstr "*iso-8859-1*, *iso8859-1*, *8859*, *cp819*, *latin*, *latin1*, *L1*" -#: ../Doc/library/codecs.rst:1151 +#: library/codecs.rst:1151 msgid "iso8859_2" msgstr "*iso8859_2*" -#: ../Doc/library/codecs.rst:1151 +#: library/codecs.rst:1151 msgid "iso-8859-2, latin2, L2" msgstr "*iso-8859-2*, *latin2*, *L2*" -#: ../Doc/library/codecs.rst:1153 +#: library/codecs.rst:1153 msgid "iso8859_3" msgstr "*iso8859_3*" -#: ../Doc/library/codecs.rst:1153 +#: library/codecs.rst:1153 msgid "iso-8859-3, latin3, L3" msgstr "*iso-8859-3*, *latin3*, *L3*" -#: ../Doc/library/codecs.rst:1153 +#: library/codecs.rst:1153 msgid "Esperanto, Maltese" msgstr "" -#: ../Doc/library/codecs.rst:1155 +#: library/codecs.rst:1155 msgid "iso8859_4" msgstr "*iso8859_4*" -#: ../Doc/library/codecs.rst:1155 +#: library/codecs.rst:1155 msgid "iso-8859-4, latin4, L4" msgstr "*iso-8859-4*, *latin4*, *L4*" -#: ../Doc/library/codecs.rst:1157 +#: library/codecs.rst:1157 msgid "iso8859_5" msgstr "*iso8859_5*" -#: ../Doc/library/codecs.rst:1157 +#: library/codecs.rst:1157 msgid "iso-8859-5, cyrillic" msgstr "*iso-8859-5*, *cyrillic*" -#: ../Doc/library/codecs.rst:1160 +#: library/codecs.rst:1160 msgid "iso8859_6" msgstr "*iso8859_6*" -#: ../Doc/library/codecs.rst:1160 +#: library/codecs.rst:1160 msgid "iso-8859-6, arabic" msgstr "*iso-8859-6*, *arabic*" -#: ../Doc/library/codecs.rst:1162 +#: library/codecs.rst:1162 msgid "iso8859_7" msgstr "*iso8859_7*" -#: ../Doc/library/codecs.rst:1162 +#: library/codecs.rst:1162 msgid "iso-8859-7, greek, greek8" msgstr "*iso-8859-7*, *greek*, *greek8*" -#: ../Doc/library/codecs.rst:1164 +#: library/codecs.rst:1164 msgid "iso8859_8" msgstr "*iso8859_8*" -#: ../Doc/library/codecs.rst:1164 +#: library/codecs.rst:1164 msgid "iso-8859-8, hebrew" msgstr "*iso-8859-8*, *hebrew*" -#: ../Doc/library/codecs.rst:1166 +#: library/codecs.rst:1166 msgid "iso8859_9" msgstr "*iso8859_9*" -#: ../Doc/library/codecs.rst:1166 +#: library/codecs.rst:1166 msgid "iso-8859-9, latin5, L5" msgstr "*iso-8859-9*, *latin5*, *L5*" -#: ../Doc/library/codecs.rst:1168 +#: library/codecs.rst:1168 msgid "iso8859_10" msgstr "*iso8859_10*" -#: ../Doc/library/codecs.rst:1168 +#: library/codecs.rst:1168 msgid "iso-8859-10, latin6, L6" msgstr "*iso-8859-10*, *latin6*, *L6*" -#: ../Doc/library/codecs.rst:1168 +#: library/codecs.rst:1168 msgid "Nordic languages" msgstr "" -#: ../Doc/library/codecs.rst:1170 +#: library/codecs.rst:1170 msgid "iso8859_11" msgstr "*iso8859_11*" -#: ../Doc/library/codecs.rst:1170 +#: library/codecs.rst:1170 msgid "iso-8859-11, thai" msgstr "*iso-8859-11*, *thai*" -#: ../Doc/library/codecs.rst:1170 +#: library/codecs.rst:1170 msgid "Thai languages" msgstr "" -#: ../Doc/library/codecs.rst:1172 +#: library/codecs.rst:1172 msgid "iso8859_13" msgstr "*iso8859_13*" -#: ../Doc/library/codecs.rst:1172 +#: library/codecs.rst:1172 msgid "iso-8859-13, latin7, L7" msgstr "*iso-8859-13*, *latin7*, *L7*" -#: ../Doc/library/codecs.rst:1174 +#: library/codecs.rst:1174 msgid "iso8859_14" msgstr "*iso8859_14*" -#: ../Doc/library/codecs.rst:1174 +#: library/codecs.rst:1174 msgid "iso-8859-14, latin8, L8" msgstr "*iso-8859-14*, *latin8*, *L8*" -#: ../Doc/library/codecs.rst:1174 +#: library/codecs.rst:1174 msgid "Celtic languages" msgstr "" -#: ../Doc/library/codecs.rst:1176 +#: library/codecs.rst:1176 msgid "iso8859_15" msgstr "*iso8859_15*" -#: ../Doc/library/codecs.rst:1176 +#: library/codecs.rst:1176 msgid "iso-8859-15, latin9, L9" msgstr "*iso-8859-15*, *latin9*, *L9*" -#: ../Doc/library/codecs.rst:1178 +#: library/codecs.rst:1178 msgid "iso8859_16" msgstr "*iso8859_16*" -#: ../Doc/library/codecs.rst:1178 +#: library/codecs.rst:1178 msgid "iso-8859-16, latin10, L10" msgstr "*iso-8859-16*, *latin10*, *L10*" -#: ../Doc/library/codecs.rst:1178 +#: library/codecs.rst:1178 msgid "South-Eastern Europe" msgstr "" -#: ../Doc/library/codecs.rst:1180 +#: library/codecs.rst:1180 msgid "johab" msgstr "*johab*" -#: ../Doc/library/codecs.rst:1180 +#: library/codecs.rst:1180 msgid "cp1361, ms1361" msgstr "*cp1361*, *ms1361*" -#: ../Doc/library/codecs.rst:1182 +#: library/codecs.rst:1182 msgid "koi8_r" msgstr "*koi8_r*" -#: ../Doc/library/codecs.rst:1184 +#: library/codecs.rst:1184 msgid "koi8_t" msgstr "*koi8_t*" -#: ../Doc/library/codecs.rst:1184 +#: library/codecs.rst:1184 msgid "Tajik" msgstr "*Tajik*" -#: ../Doc/library/codecs.rst:1188 +#: library/codecs.rst:1188 msgid "koi8_u" msgstr "*koi8_u*" -#: ../Doc/library/codecs.rst:1190 +#: library/codecs.rst:1190 msgid "kz1048" msgstr "*kz1048*" -#: ../Doc/library/codecs.rst:1190 +#: library/codecs.rst:1190 msgid "kz_1048, strk1048_2002, rk1048" msgstr "*kz_1048*, *strk1048_2002*, *rk1048*" -#: ../Doc/library/codecs.rst:1190 ../Doc/library/codecs.rst:1207 +#: library/codecs.rst:1207 msgid "Kazakh" msgstr "" -#: ../Doc/library/codecs.rst:1194 +#: library/codecs.rst:1194 msgid "mac_cyrillic" msgstr "*mac_cyrillic*" -#: ../Doc/library/codecs.rst:1194 +#: library/codecs.rst:1194 msgid "maccyrillic" msgstr "*maccyrillic*" -#: ../Doc/library/codecs.rst:1197 +#: library/codecs.rst:1197 msgid "mac_greek" msgstr "*mac_greek*" -#: ../Doc/library/codecs.rst:1197 +#: library/codecs.rst:1197 msgid "macgreek" msgstr "*macgreek*" -#: ../Doc/library/codecs.rst:1199 +#: library/codecs.rst:1199 msgid "mac_iceland" msgstr "*mac_iceland*" -#: ../Doc/library/codecs.rst:1199 +#: library/codecs.rst:1199 msgid "maciceland" msgstr "*maciceland*" -#: ../Doc/library/codecs.rst:1201 +#: library/codecs.rst:1201 msgid "mac_latin2" msgstr "*mac_latin2*" -#: ../Doc/library/codecs.rst:1201 +#: library/codecs.rst:1201 msgid "maclatin2, maccentraleurope" msgstr "*maclatin2*, *maccentraleurope*" -#: ../Doc/library/codecs.rst:1203 +#: library/codecs.rst:1203 msgid "mac_roman" msgstr "*mac_roman*" -#: ../Doc/library/codecs.rst:1203 +#: library/codecs.rst:1203 msgid "macroman, macintosh" msgstr "*macroman*, *macintosh*" -#: ../Doc/library/codecs.rst:1205 +#: library/codecs.rst:1205 msgid "mac_turkish" msgstr "*mac_turkish*" -#: ../Doc/library/codecs.rst:1205 +#: library/codecs.rst:1205 msgid "macturkish" msgstr "*macturkish*" -#: ../Doc/library/codecs.rst:1207 +#: library/codecs.rst:1207 msgid "ptcp154" msgstr "*ptcp154*" -#: ../Doc/library/codecs.rst:1207 +#: library/codecs.rst:1207 msgid "csptcp154, pt154, cp154, cyrillic-asian" msgstr "*csptcp154*, *pt154*, *cp154*, *cyrillic-asian*" -#: ../Doc/library/codecs.rst:1210 +#: library/codecs.rst:1210 msgid "shift_jis" msgstr "*shift_jis*" -#: ../Doc/library/codecs.rst:1210 +#: library/codecs.rst:1210 msgid "csshiftjis, shiftjis, sjis, s_jis" msgstr "*csshiftjis*, *shiftjis*, *sjis*, *s_jis*" -#: ../Doc/library/codecs.rst:1213 +#: library/codecs.rst:1213 msgid "shift_jis_2004" msgstr "*shift_jis_2004*" -#: ../Doc/library/codecs.rst:1213 +#: library/codecs.rst:1213 msgid "shiftjis2004, sjis_2004, sjis2004" msgstr "*shiftjis2004*, *sjis_2004*, *sjis2004*" -#: ../Doc/library/codecs.rst:1216 +#: library/codecs.rst:1216 msgid "shift_jisx0213" msgstr "*shift_jisx0213*" -#: ../Doc/library/codecs.rst:1216 +#: library/codecs.rst:1216 msgid "shiftjisx0213, sjisx0213, s_jisx0213" msgstr "*shiftjisx0213*, *sjisx0213*, *s_jisx0213*" -#: ../Doc/library/codecs.rst:1219 +#: library/codecs.rst:1219 msgid "utf_32" msgstr "*utf_32*" -#: ../Doc/library/codecs.rst:1219 +#: library/codecs.rst:1219 msgid "U32, utf32" msgstr "*U32*, *utf32*" -#: ../Doc/library/codecs.rst:1219 ../Doc/library/codecs.rst:1221 -#: ../Doc/library/codecs.rst:1223 ../Doc/library/codecs.rst:1225 -#: ../Doc/library/codecs.rst:1227 ../Doc/library/codecs.rst:1229 -#: ../Doc/library/codecs.rst:1231 ../Doc/library/codecs.rst:1233 -#: ../Doc/library/codecs.rst:1235 +#: library/codecs.rst:1221 library/codecs.rst:1225 library/codecs.rst:1229 +#: library/codecs.rst:1233 library/codecs.rst:1235 msgid "all languages" msgstr "" -#: ../Doc/library/codecs.rst:1221 +#: library/codecs.rst:1221 msgid "utf_32_be" msgstr "*utf_32_be*" -#: ../Doc/library/codecs.rst:1221 +#: library/codecs.rst:1221 msgid "UTF-32BE" msgstr "*UTF-32BE*" -#: ../Doc/library/codecs.rst:1223 +#: library/codecs.rst:1223 msgid "utf_32_le" msgstr "*utf_32_le*" -#: ../Doc/library/codecs.rst:1223 +#: library/codecs.rst:1223 msgid "UTF-32LE" msgstr "*UTF-32LE*" -#: ../Doc/library/codecs.rst:1225 +#: library/codecs.rst:1225 msgid "utf_16" msgstr "*utf_16*" -#: ../Doc/library/codecs.rst:1225 +#: library/codecs.rst:1225 msgid "U16, utf16" msgstr "*U16*, *utf16*" -#: ../Doc/library/codecs.rst:1227 +#: library/codecs.rst:1227 msgid "utf_16_be" msgstr "*utf_16_be*" -#: ../Doc/library/codecs.rst:1227 +#: library/codecs.rst:1227 msgid "UTF-16BE" msgstr "*UTF-16BE*" -#: ../Doc/library/codecs.rst:1229 +#: library/codecs.rst:1229 msgid "utf_16_le" msgstr "*utf_16_le*" -#: ../Doc/library/codecs.rst:1229 +#: library/codecs.rst:1229 msgid "UTF-16LE" msgstr "*UTF-16LE*" -#: ../Doc/library/codecs.rst:1231 +#: library/codecs.rst:1231 msgid "utf_7" msgstr "*utf_7*" -#: ../Doc/library/codecs.rst:1231 +#: library/codecs.rst:1231 msgid "U7, unicode-1-1-utf-7" msgstr "*U7*, *unicode-1-1-utf-7*" -#: ../Doc/library/codecs.rst:1233 +#: library/codecs.rst:1233 msgid "utf_8" msgstr "*utf_8*" -#: ../Doc/library/codecs.rst:1233 +#: library/codecs.rst:1233 #, fuzzy msgid "U8, UTF, utf8, cp65001" msgstr "*U8*, *UTF*, *utf8*" -#: ../Doc/library/codecs.rst:1235 +#: library/codecs.rst:1235 msgid "utf_8_sig" msgstr "*utf_8_sig*" -#: ../Doc/library/codecs.rst:1238 +#: library/codecs.rst:1238 msgid "" "The utf-16\\* and utf-32\\* encoders no longer allow surrogate code points " "(``U+D800``--``U+DFFF``) to be encoded. The utf-32\\* decoders no longer " "decode byte sequences that correspond to surrogate code points." msgstr "" -#: ../Doc/library/codecs.rst:1244 +#: library/codecs.rst:1244 msgid "``cp65001`` is now an alias to ``utf_8``." msgstr "" -#: ../Doc/library/codecs.rst:1249 +#: library/codecs.rst:1249 msgid "Python Specific Encodings" msgstr "" -#: ../Doc/library/codecs.rst:1251 +#: library/codecs.rst:1251 msgid "" "A number of predefined codecs are specific to Python, so their codec names " "have no meaning outside Python. These are listed in the tables below based " @@ -2260,272 +2426,272 @@ msgid "" "asymmetric codecs, the stated meaning describes the encoding direction." msgstr "" -#: ../Doc/library/codecs.rst:1259 +#: library/codecs.rst:1259 msgid "Text Encodings" msgstr "" -#: ../Doc/library/codecs.rst:1261 +#: library/codecs.rst:1261 msgid "" "The following codecs provide :class:`str` to :class:`bytes` encoding and :" "term:`bytes-like object` to :class:`str` decoding, similar to the Unicode " "text encodings." msgstr "" -#: ../Doc/library/codecs.rst:1270 +#: library/codecs.rst:1270 msgid "idna" msgstr "idna" -#: ../Doc/library/codecs.rst:1270 +#: library/codecs.rst:1270 msgid "" "Implement :rfc:`3490`, see also :mod:`encodings.idna`. Only " "``errors='strict'`` is supported." msgstr "" -#: ../Doc/library/codecs.rst:1276 +#: library/codecs.rst:1276 msgid "mbcs" msgstr "mbcs" -#: ../Doc/library/codecs.rst:1276 +#: library/codecs.rst:1276 msgid "ansi, dbcs" msgstr "" -#: ../Doc/library/codecs.rst:1276 +#: library/codecs.rst:1276 msgid "" "Windows only: Encode the operand according to the ANSI codepage (CP_ACP)." msgstr "" -#: ../Doc/library/codecs.rst:1280 +#: library/codecs.rst:1280 msgid "oem" msgstr "" -#: ../Doc/library/codecs.rst:1280 +#: library/codecs.rst:1280 msgid "" "Windows only: Encode the operand according to the OEM codepage (CP_OEMCP)." msgstr "" -#: ../Doc/library/codecs.rst:1286 +#: library/codecs.rst:1286 msgid "palmos" msgstr "palmos" -#: ../Doc/library/codecs.rst:1286 +#: library/codecs.rst:1286 msgid "Encoding of PalmOS 3.5." msgstr "" -#: ../Doc/library/codecs.rst:1288 +#: library/codecs.rst:1288 msgid "punycode" msgstr "punycode" -#: ../Doc/library/codecs.rst:1288 +#: library/codecs.rst:1288 msgid "Implement :rfc:`3492`. Stateful codecs are not supported." msgstr "" -#: ../Doc/library/codecs.rst:1292 +#: library/codecs.rst:1292 msgid "raw_unicode_escape" msgstr "raw_unicode_escape" -#: ../Doc/library/codecs.rst:1292 +#: library/codecs.rst:1292 msgid "" "Latin-1 encoding with ``\\uXXXX`` and ``\\UXXXXXXXX`` for other code points. " "Existing backslashes are not escaped in any way. It is used in the Python " "pickle protocol." msgstr "" -#: ../Doc/library/codecs.rst:1301 +#: library/codecs.rst:1301 msgid "undefined" msgstr "undefined" -#: ../Doc/library/codecs.rst:1301 +#: library/codecs.rst:1301 msgid "" "Raise an exception for all conversions, even empty strings. The error " "handler is ignored." msgstr "" -#: ../Doc/library/codecs.rst:1306 +#: library/codecs.rst:1306 msgid "unicode_escape" msgstr "unicode_escape" -#: ../Doc/library/codecs.rst:1306 +#: library/codecs.rst:1306 msgid "" "Encoding suitable as the contents of a Unicode literal in ASCII-encoded " "Python source code, except that quotes are not escaped. Decode from Latin-1 " "source code. Beware that Python source code actually uses UTF-8 by default." msgstr "" -#: ../Doc/library/codecs.rst:1318 +#: library/codecs.rst:1318 msgid "\"unicode_internal\" codec is removed." msgstr "" -#: ../Doc/library/codecs.rst:1325 +#: library/codecs.rst:1325 msgid "Binary Transforms" msgstr "" -#: ../Doc/library/codecs.rst:1327 +#: library/codecs.rst:1327 msgid "" "The following codecs provide binary transforms: :term:`bytes-like object` " "to :class:`bytes` mappings. They are not supported by :meth:`bytes.decode` " "(which only produces :class:`str` output)." msgstr "" -#: ../Doc/library/codecs.rst:1335 +#: library/codecs.rst:1335 msgid "Encoder / decoder" msgstr "" -#: ../Doc/library/codecs.rst:1337 +#: library/codecs.rst:1337 msgid "base64_codec [#b64]_" msgstr "base64_codec [#b64]_" -#: ../Doc/library/codecs.rst:1337 +#: library/codecs.rst:1337 msgid "base64, base_64" msgstr "base64, base_64" -#: ../Doc/library/codecs.rst:1337 +#: library/codecs.rst:1337 msgid "" "Convert the operand to multiline MIME base64 (the result always includes a " "trailing ``'\\n'``)." msgstr "" -#: ../Doc/library/codecs.rst:1342 +#: library/codecs.rst:1342 msgid "" "accepts any :term:`bytes-like object` as input for encoding and decoding" msgstr "" -#: ../Doc/library/codecs.rst:1337 +#: library/codecs.rst:1337 msgid ":meth:`base64.encodebytes` / :meth:`base64.decodebytes`" msgstr "" -#: ../Doc/library/codecs.rst:1348 +#: library/codecs.rst:1348 msgid "bz2_codec" msgstr "bz2_codec" -#: ../Doc/library/codecs.rst:1348 +#: library/codecs.rst:1348 msgid "bz2" msgstr "bz2" -#: ../Doc/library/codecs.rst:1348 +#: library/codecs.rst:1348 msgid "Compress the operand using bz2." msgstr "" -#: ../Doc/library/codecs.rst:1348 +#: library/codecs.rst:1348 msgid ":meth:`bz2.compress` / :meth:`bz2.decompress`" msgstr "" -#: ../Doc/library/codecs.rst:1351 +#: library/codecs.rst:1351 msgid "hex_codec" msgstr "hex_codec" -#: ../Doc/library/codecs.rst:1351 +#: library/codecs.rst:1351 msgid "hex" msgstr "hex" -#: ../Doc/library/codecs.rst:1351 +#: library/codecs.rst:1351 msgid "" "Convert the operand to hexadecimal representation, with two digits per byte." msgstr "" -#: ../Doc/library/codecs.rst:1351 +#: library/codecs.rst:1351 msgid ":meth:`binascii.b2a_hex` / :meth:`binascii.a2b_hex`" msgstr "" -#: ../Doc/library/codecs.rst:1356 +#: library/codecs.rst:1356 msgid "quopri_codec" msgstr "quopri_codec" -#: ../Doc/library/codecs.rst:1356 +#: library/codecs.rst:1356 msgid "quopri, quotedprintable, quoted_printable" msgstr "" -#: ../Doc/library/codecs.rst:1356 +#: library/codecs.rst:1356 msgid "Convert the operand to MIME quoted printable." msgstr "" -#: ../Doc/library/codecs.rst:1356 +#: library/codecs.rst:1356 msgid ":meth:`quopri.encode` with ``quotetabs=True`` / :meth:`quopri.decode`" msgstr "" -#: ../Doc/library/codecs.rst:1360 +#: library/codecs.rst:1360 msgid "uu_codec" msgstr "uu_codec" -#: ../Doc/library/codecs.rst:1360 +#: library/codecs.rst:1360 msgid "uu" msgstr "uu" -#: ../Doc/library/codecs.rst:1360 +#: library/codecs.rst:1360 msgid "Convert the operand using uuencode." msgstr "" -#: ../Doc/library/codecs.rst:1360 +#: library/codecs.rst:1360 msgid ":meth:`uu.encode` / :meth:`uu.decode`" msgstr "" -#: ../Doc/library/codecs.rst:1363 +#: library/codecs.rst:1363 msgid "zlib_codec" msgstr "zlib_codec" -#: ../Doc/library/codecs.rst:1363 +#: library/codecs.rst:1363 msgid "zip, zlib" msgstr "zip, zlib" -#: ../Doc/library/codecs.rst:1363 +#: library/codecs.rst:1363 msgid "Compress the operand using gzip." msgstr "" -#: ../Doc/library/codecs.rst:1363 +#: library/codecs.rst:1363 msgid ":meth:`zlib.compress` / :meth:`zlib.decompress`" msgstr ":meth:`zlib.compress` / :meth:`zlib.decompress`" -#: ../Doc/library/codecs.rst:1367 +#: library/codecs.rst:1367 msgid "" "In addition to :term:`bytes-like objects `, " "``'base64_codec'`` also accepts ASCII-only instances of :class:`str` for " "decoding" msgstr "" -#: ../Doc/library/codecs.rst:1371 +#: library/codecs.rst:1371 msgid "Restoration of the binary transforms." msgstr "" -#: ../Doc/library/codecs.rst:1374 +#: library/codecs.rst:1374 msgid "Restoration of the aliases for the binary transforms." msgstr "" -#: ../Doc/library/codecs.rst:1381 +#: library/codecs.rst:1381 msgid "Text Transforms" msgstr "" -#: ../Doc/library/codecs.rst:1383 +#: library/codecs.rst:1383 msgid "" "The following codec provides a text transform: a :class:`str` to :class:" "`str` mapping. It is not supported by :meth:`str.encode` (which only " "produces :class:`bytes` output)." msgstr "" -#: ../Doc/library/codecs.rst:1392 +#: library/codecs.rst:1392 msgid "rot_13" msgstr "rot_13" -#: ../Doc/library/codecs.rst:1392 +#: library/codecs.rst:1392 msgid "rot13" msgstr "rot13" -#: ../Doc/library/codecs.rst:1392 +#: library/codecs.rst:1392 msgid "Return the Caesar-cypher encryption of the operand." msgstr "" -#: ../Doc/library/codecs.rst:1397 +#: library/codecs.rst:1397 msgid "Restoration of the ``rot_13`` text transform." msgstr "" -#: ../Doc/library/codecs.rst:1400 +#: library/codecs.rst:1400 msgid "Restoration of the ``rot13`` alias." msgstr "" -#: ../Doc/library/codecs.rst:1405 +#: library/codecs.rst:1405 msgid "" ":mod:`encodings.idna` --- Internationalized Domain Names in Applications" msgstr "" -#: ../Doc/library/codecs.rst:1411 +#: library/codecs.rst:1411 msgid "" "This module implements :rfc:`3490` (Internationalized Domain Names in " "Applications) and :rfc:`3492` (Nameprep: A Stringprep Profile for " @@ -2533,7 +2699,13 @@ msgid "" "encoding and :mod:`stringprep`." msgstr "" -#: ../Doc/library/codecs.rst:1416 +#: library/codecs.rst:1416 +msgid "" +"If you need the IDNA 2008 standard from :rfc:`5891` and :rfc:`5895`, use the " +"third-party `idna module _`." +msgstr "" + +#: library/codecs.rst:1419 msgid "" "These RFCs together define a protocol to support non-ASCII characters in " "domain names. A domain name containing non-ASCII characters (such as ``www." @@ -2547,7 +2719,7 @@ msgid "" "presenting them to the user." msgstr "" -#: ../Doc/library/codecs.rst:1427 +#: library/codecs.rst:1430 msgid "" "Python supports this conversion in several ways: the ``idna`` codec " "performs conversion between Unicode and ACE, separating an input string into " @@ -2564,14 +2736,14 @@ msgid "" "sends that field at all)." msgstr "" -#: ../Doc/library/codecs.rst:1440 +#: library/codecs.rst:1443 msgid "" "When receiving host names from the wire (such as in reverse name lookup), no " "automatic conversion to Unicode is performed: applications wishing to " "present such host names to the user should decode them to Unicode." msgstr "" -#: ../Doc/library/codecs.rst:1444 +#: library/codecs.rst:1447 msgid "" "The module :mod:`encodings.idna` also implements the nameprep procedure, " "which performs certain normalizations on host names, to achieve case-" @@ -2579,49 +2751,49 @@ msgid "" "characters. The nameprep functions can be used directly if desired." msgstr "" -#: ../Doc/library/codecs.rst:1452 +#: library/codecs.rst:1455 msgid "" "Return the nameprepped version of *label*. The implementation currently " "assumes query strings, so ``AllowUnassigned`` is true." msgstr "" -#: ../Doc/library/codecs.rst:1458 +#: library/codecs.rst:1461 msgid "" "Convert a label to ASCII, as specified in :rfc:`3490`. ``UseSTD3ASCIIRules`` " "is assumed to be false." msgstr "" -#: ../Doc/library/codecs.rst:1464 +#: library/codecs.rst:1467 msgid "Convert a label to Unicode, as specified in :rfc:`3490`." msgstr "" -#: ../Doc/library/codecs.rst:1468 +#: library/codecs.rst:1471 msgid ":mod:`encodings.mbcs` --- Windows ANSI codepage" msgstr "" -#: ../Doc/library/codecs.rst:1473 +#: library/codecs.rst:1476 msgid "This module implements the ANSI codepage (CP_ACP)." msgstr "" -#: ../Doc/library/codecs.rst:1476 +#: library/codecs.rst:1479 msgid ":ref:`Availability `: Windows only." msgstr ":ref:`Disponibilité ` : Windows uniquement." -#: ../Doc/library/codecs.rst:1477 +#: library/codecs.rst:1480 msgid "Support any error handler." msgstr "" -#: ../Doc/library/codecs.rst:1480 +#: library/codecs.rst:1483 msgid "" "Before 3.2, the *errors* argument was ignored; ``'replace'`` was always used " "to encode, and ``'ignore'`` to decode." msgstr "" -#: ../Doc/library/codecs.rst:1486 +#: library/codecs.rst:1489 msgid ":mod:`encodings.utf_8_sig` --- UTF-8 codec with BOM signature" msgstr "" -#: ../Doc/library/codecs.rst:1492 +#: library/codecs.rst:1495 msgid "" "This module implements a variant of the UTF-8 codec. On encoding, a UTF-8 " "encoded BOM will be prepended to the UTF-8 encoded bytes. For the stateful " diff --git a/library/codeop.po b/library/codeop.po index c409f63fe5..c7b8616f45 100644 --- a/library/codeop.po +++ b/library/codeop.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"POT-Creation-Date: 2020-05-23 11:38+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -96,14 +96,16 @@ msgstr "" #: ../Doc/library/codeop.rst:45 msgid "" "The *symbol* argument determines whether *source* is compiled as a statement " -"(``'single'``, the default) or as an :term:`expression` (``'eval'``). Any " -"other value will cause :exc:`ValueError` to be raised." +"(``'single'``, the default), as a sequence of statements (``'exec'``) or as " +"an :term:`expression` (``'eval'``). Any other value will cause :exc:" +"`ValueError` to be raised." msgstr "" "L'argument *symbol* détermine si *source* est compilée comme une instruction " -"(``'single'``, par défaut) ou comme une :term:`expression` (``'eval'``). " -"Toute autre valeur lèvera :exc:`ValueError`." +"(``'single'``, par défaut), comme une suite d'instructions (``'exec'``), ou " +"comme une :term:`expression` (``'eval'``). Toute autre valeur lèvera :exc:" +"`ValueError`." -#: ../Doc/library/codeop.rst:51 +#: ../Doc/library/codeop.rst:52 msgid "" "It is possible (but not likely) that the parser stops parsing with a " "successful outcome before reaching the end of the source; in this case, " @@ -118,7 +120,7 @@ msgstr "" "mémoire non-initialisée. Ceci sera corrigé quand l'interface de l'analyseur " "aura été améliorée." -#: ../Doc/library/codeop.rst:60 +#: ../Doc/library/codeop.rst:61 msgid "" "Instances of this class have :meth:`__call__` methods identical in signature " "to the built-in function :func:`compile`, but with the difference that if " @@ -132,7 +134,7 @@ msgstr "" "`__future__`, l'instance s'en « souviendra » et compilera tous les codes " "sources suivants avec cette instruction activée." -#: ../Doc/library/codeop.rst:69 +#: ../Doc/library/codeop.rst:70 msgid "" "Instances of this class have :meth:`__call__` methods identical in signature " "to :func:`compile_command`; the difference is that if the instance compiles " diff --git a/library/collections.abc.po b/library/collections.abc.po index b2c6284ad5..862eb507ed 100644 --- a/library/collections.abc.po +++ b/library/collections.abc.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2018-09-27 15:04+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -15,20 +15,20 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.0.9\n" -#: ../Doc/library/collections.abc.rst:2 +#: library/collections.abc.rst:2 msgid ":mod:`collections.abc` --- Abstract Base Classes for Containers" msgstr "" ":mod:`collections.abc` --- Classes de base abstraites pour les conteneurs" -#: ../Doc/library/collections.abc.rst:10 +#: library/collections.abc.rst:10 msgid "Formerly, this module was part of the :mod:`collections` module." msgstr "Auparavant, ce module faisait partie du module :mod:`collections`." -#: ../Doc/library/collections.abc.rst:13 +#: library/collections.abc.rst:13 msgid "**Source code:** :source:`Lib/_collections_abc.py`" msgstr "**Code source :** :source:`Lib/_collections_abc.py`" -#: ../Doc/library/collections.abc.rst:23 +#: library/collections.abc.rst:23 msgid "" "This module provides :term:`abstract base classes ` " "that can be used to test whether a class provides a particular interface; " @@ -39,11 +39,11 @@ msgstr "" "interface particulière (par exemple, savoir s'il s'agit d'un hachable ou " "d'une table de correspondance)." -#: ../Doc/library/collections.abc.rst:31 +#: library/collections.abc.rst:31 msgid "Collections Abstract Base Classes" msgstr "Classes de base abstraites de collections" -#: ../Doc/library/collections.abc.rst:33 +#: library/collections.abc.rst:33 msgid "" "The collections module offers the following :term:`ABCs `:" @@ -51,134 +51,131 @@ msgstr "" "Le module collections apporte les :term:`ABC ` " "suivantes :" -#: ../Doc/library/collections.abc.rst:38 +#: library/collections.abc.rst:38 msgid "ABC" msgstr "ABC" -#: ../Doc/library/collections.abc.rst:38 +#: library/collections.abc.rst:38 msgid "Inherits from" msgstr "Hérite de" -#: ../Doc/library/collections.abc.rst:38 +#: library/collections.abc.rst:38 msgid "Abstract Methods" msgstr "Méthodes abstraites" -#: ../Doc/library/collections.abc.rst:38 +#: library/collections.abc.rst:38 msgid "Mixin Methods" msgstr "Méthodes *mixin*" -#: ../Doc/library/collections.abc.rst:40 +#: library/collections.abc.rst:40 msgid ":class:`Container`" msgstr ":class:`Container`" -#: ../Doc/library/collections.abc.rst:40 +#: library/collections.abc.rst:40 msgid "``__contains__``" msgstr "``__contains__``" -#: ../Doc/library/collections.abc.rst:41 +#: library/collections.abc.rst:41 msgid ":class:`Hashable`" msgstr ":class:`Hashable`" -#: ../Doc/library/collections.abc.rst:41 +#: library/collections.abc.rst:41 msgid "``__hash__``" msgstr "``__hash__``" -#: ../Doc/library/collections.abc.rst:42 ../Doc/library/collections.abc.rst:43 -#: ../Doc/library/collections.abc.rst:44 +#: library/collections.abc.rst:43 library/collections.abc.rst:44 msgid ":class:`Iterable`" msgstr ":class:`Iterable`" -#: ../Doc/library/collections.abc.rst:42 ../Doc/library/collections.abc.rst:43 +#: library/collections.abc.rst:43 msgid "``__iter__``" msgstr "``__iter__``" -#: ../Doc/library/collections.abc.rst:43 ../Doc/library/collections.abc.rst:45 +#: library/collections.abc.rst:45 msgid ":class:`Iterator`" msgstr ":class:`Iterator`" -#: ../Doc/library/collections.abc.rst:43 +#: library/collections.abc.rst:43 msgid "``__next__``" msgstr "``__next__``" -#: ../Doc/library/collections.abc.rst:44 +#: library/collections.abc.rst:44 msgid ":class:`Reversible`" msgstr ":class:`Reversible`" -#: ../Doc/library/collections.abc.rst:44 +#: library/collections.abc.rst:44 msgid "``__reversed__``" msgstr "``__reversed__``" -#: ../Doc/library/collections.abc.rst:45 +#: library/collections.abc.rst:45 msgid ":class:`Generator`" msgstr ":class:`Generator`" -#: ../Doc/library/collections.abc.rst:45 ../Doc/library/collections.abc.rst:93 +#: library/collections.abc.rst:93 msgid "``send``, ``throw``" msgstr "``send``, ``throw``" -#: ../Doc/library/collections.abc.rst:45 +#: library/collections.abc.rst:45 msgid "``close``, ``__iter__``, ``__next__``" msgstr "``close``, ``__iter__``, ``__next__``" -#: ../Doc/library/collections.abc.rst:46 ../Doc/library/collections.abc.rst:85 +#: library/collections.abc.rst:85 msgid ":class:`Sized`" msgstr ":class:`Sized`" -#: ../Doc/library/collections.abc.rst:46 ../Doc/library/collections.abc.rst:85 +#: library/collections.abc.rst:85 msgid "``__len__``" msgstr "``__len__``" -#: ../Doc/library/collections.abc.rst:47 +#: library/collections.abc.rst:47 msgid ":class:`Callable`" msgstr ":class:`Callable`" -#: ../Doc/library/collections.abc.rst:47 +#: library/collections.abc.rst:47 msgid "``__call__``" msgstr "``__call__``" -#: ../Doc/library/collections.abc.rst:48 ../Doc/library/collections.abc.rst:64 -#: ../Doc/library/collections.abc.rst:74 +#: library/collections.abc.rst:64 library/collections.abc.rst:74 msgid ":class:`Collection`" msgstr ":class:`Collection`" -#: ../Doc/library/collections.abc.rst:48 +#: library/collections.abc.rst:48 msgid ":class:`Sized`, :class:`Iterable`, :class:`Container`" msgstr ":class:`Sized`, :class:`Iterable`, :class:`Container`" -#: ../Doc/library/collections.abc.rst:48 ../Doc/library/collections.abc.rst:64 +#: library/collections.abc.rst:64 msgid "``__contains__``, ``__iter__``, ``__len__``" msgstr "``__contains__``, ``__iter__``, ``__len__``" -#: ../Doc/library/collections.abc.rst:52 ../Doc/library/collections.abc.rst:55 -#: ../Doc/library/collections.abc.rst:61 +#: library/collections.abc.rst:55 library/collections.abc.rst:61 msgid ":class:`Sequence`" msgstr ":class:`Sequence`" -#: ../Doc/library/collections.abc.rst:52 +#: library/collections.abc.rst:52 msgid ":class:`Reversible`, :class:`Collection`" msgstr ":class:`Reversible`, :class:`Collection`" -#: ../Doc/library/collections.abc.rst:52 ../Doc/library/collections.abc.rst:61 +#: library/collections.abc.rst:61 msgid "``__getitem__``, ``__len__``" msgstr "``__getitem__``, ``__len__``" -#: ../Doc/library/collections.abc.rst:52 +#: library/collections.abc.rst:52 msgid "" "``__contains__``, ``__iter__``, ``__reversed__``, ``index``, and ``count``" msgstr "" "``__contains__``, ``__iter__``, ``__reversed__``, ``index`` et ``count``" -#: ../Doc/library/collections.abc.rst:55 +#: library/collections.abc.rst:55 msgid ":class:`MutableSequence`" msgstr ":class:`MutableSequence`" -#: ../Doc/library/collections.abc.rst:55 +#: library/collections.abc.rst:55 msgid "" "``__getitem__``, ``__setitem__``, ``__delitem__``, ``__len__``, ``insert``" msgstr "" "``__getitem__``, ``__setitem__``, ``__delitem__``, ``__len__``, ``insert``" -#: ../Doc/library/collections.abc.rst:55 +#: library/collections.abc.rst:55 msgid "" "Inherited :class:`Sequence` methods and ``append``, ``reverse``, ``extend``, " "``pop``, ``remove``, and ``__iadd__``" @@ -186,19 +183,19 @@ msgstr "" "Méthodes héritées de :class:`Sequence`, et ``append``, ``reverse``, " "``extend``, ``pop``, ``remove`` et ``__iadd__``" -#: ../Doc/library/collections.abc.rst:61 +#: library/collections.abc.rst:61 msgid ":class:`ByteString`" msgstr ":class:`ByteString`" -#: ../Doc/library/collections.abc.rst:61 +#: library/collections.abc.rst:61 msgid "Inherited :class:`Sequence` methods" msgstr "Méthodes héritées de :class:`Sequence`" -#: ../Doc/library/collections.abc.rst:64 ../Doc/library/collections.abc.rst:68 +#: library/collections.abc.rst:68 msgid ":class:`Set`" msgstr ":class:`Set`" -#: ../Doc/library/collections.abc.rst:64 +#: library/collections.abc.rst:64 msgid "" "``__le__``, ``__lt__``, ``__eq__``, ``__ne__``, ``__gt__``, ``__ge__``, " "``__and__``, ``__or__``, ``__sub__``, ``__xor__``, and ``isdisjoint``" @@ -206,15 +203,15 @@ msgstr "" "``__le__``, ``__lt__``, ``__eq__``, ``__ne__``, ``__gt__``, ``__ge__``, " "``__and__``, ``__or__``, ``__sub__``, ``__xor__`` et ``isdisjoint``" -#: ../Doc/library/collections.abc.rst:68 +#: library/collections.abc.rst:68 msgid ":class:`MutableSet`" msgstr ":class:`MutableSet`" -#: ../Doc/library/collections.abc.rst:68 +#: library/collections.abc.rst:68 msgid "``__contains__``, ``__iter__``, ``__len__``, ``add``, ``discard``" msgstr "``__contains__``, ``__iter__``, ``__len__``, ``add``, ``discard``" -#: ../Doc/library/collections.abc.rst:68 +#: library/collections.abc.rst:68 msgid "" "Inherited :class:`Set` methods and ``clear``, ``pop``, ``remove``, " "``__ior__``, ``__iand__``, ``__ixor__``, and ``__isub__``" @@ -222,15 +219,15 @@ msgstr "" "Méthodes héritées de :class:`Set`, et ``clear``, ``pop``, ``remove``, " "``__ior__``, ``__iand__``, ``__ixor__`` et ``__isub__``" -#: ../Doc/library/collections.abc.rst:74 ../Doc/library/collections.abc.rst:78 +#: library/collections.abc.rst:78 msgid ":class:`Mapping`" msgstr ":class:`Mapping`" -#: ../Doc/library/collections.abc.rst:74 +#: library/collections.abc.rst:74 msgid "``__getitem__``, ``__iter__``, ``__len__``" msgstr "``__getitem__``, ``__iter__``, ``__len__``" -#: ../Doc/library/collections.abc.rst:74 +#: library/collections.abc.rst:74 msgid "" "``__contains__``, ``keys``, ``items``, ``values``, ``get``, ``__eq__``, and " "``__ne__``" @@ -238,17 +235,17 @@ msgstr "" "``__contains__``, ``keys``, ``items``, ``values``, ``get``, ``__eq__`` et " "``__ne__``" -#: ../Doc/library/collections.abc.rst:78 +#: library/collections.abc.rst:78 msgid ":class:`MutableMapping`" msgstr ":class:`MutableMapping`" -#: ../Doc/library/collections.abc.rst:78 +#: library/collections.abc.rst:78 msgid "" "``__getitem__``, ``__setitem__``, ``__delitem__``, ``__iter__``, ``__len__``" msgstr "" "``__getitem__``, ``__setitem__``, ``__delitem__``, ``__iter__``, ``__len__``" -#: ../Doc/library/collections.abc.rst:78 +#: library/collections.abc.rst:78 msgid "" "Inherited :class:`Mapping` methods and ``pop``, ``popitem``, ``clear``, " "``update``, and ``setdefault``" @@ -256,92 +253,99 @@ msgstr "" "Méthodes héritées de :class:`Mapping`, et ``pop``, ``popitem``, ``clear``, " "``update`` et ``setdefault``" -#: ../Doc/library/collections.abc.rst:85 +#: library/collections.abc.rst:85 msgid ":class:`MappingView`" msgstr ":class:`MappingView`" -#: ../Doc/library/collections.abc.rst:86 +#: library/collections.abc.rst:86 msgid ":class:`ItemsView`" msgstr ":class:`ItemsView`" -#: ../Doc/library/collections.abc.rst:86 ../Doc/library/collections.abc.rst:88 +#: library/collections.abc.rst:88 msgid ":class:`MappingView`, :class:`Set`" msgstr ":class:`MappingView`, :class:`Set`" -#: ../Doc/library/collections.abc.rst:86 ../Doc/library/collections.abc.rst:88 -#: ../Doc/library/collections.abc.rst:90 +#: library/collections.abc.rst:88 library/collections.abc.rst:90 msgid "``__contains__``, ``__iter__``" msgstr "``__contains__``, ``__iter__``" -#: ../Doc/library/collections.abc.rst:88 +#: library/collections.abc.rst:88 msgid ":class:`KeysView`" msgstr ":class:`KeysView`" -#: ../Doc/library/collections.abc.rst:90 +#: library/collections.abc.rst:90 msgid ":class:`ValuesView`" msgstr ":class:`ValuesView`" -#: ../Doc/library/collections.abc.rst:90 +#: library/collections.abc.rst:90 msgid ":class:`MappingView`, :class:`Collection`" msgstr ":class:`MappingView`, :class:`Collection`" -#: ../Doc/library/collections.abc.rst:92 ../Doc/library/collections.abc.rst:93 +#: library/collections.abc.rst:93 msgid ":class:`Awaitable`" msgstr ":class:`Awaitable`" -#: ../Doc/library/collections.abc.rst:92 +#: library/collections.abc.rst:92 msgid "``__await__``" msgstr "``__await__``" -#: ../Doc/library/collections.abc.rst:93 +#: library/collections.abc.rst:93 msgid ":class:`Coroutine`" msgstr ":class:`Coroutine`" -#: ../Doc/library/collections.abc.rst:93 +#: library/collections.abc.rst:93 msgid "``close``" msgstr "``close``" -#: ../Doc/library/collections.abc.rst:94 ../Doc/library/collections.abc.rst:95 +#: library/collections.abc.rst:95 msgid ":class:`AsyncIterable`" msgstr ":class:`AsyncIterable`" -#: ../Doc/library/collections.abc.rst:94 ../Doc/library/collections.abc.rst:95 +#: library/collections.abc.rst:95 msgid "``__aiter__``" msgstr "``__aiter__``" -#: ../Doc/library/collections.abc.rst:95 ../Doc/library/collections.abc.rst:96 +#: library/collections.abc.rst:96 msgid ":class:`AsyncIterator`" msgstr ":class:`AsyncIterator`" -#: ../Doc/library/collections.abc.rst:95 +#: library/collections.abc.rst:95 msgid "``__anext__``" msgstr "``__anext__``" -#: ../Doc/library/collections.abc.rst:96 +#: library/collections.abc.rst:96 msgid ":class:`AsyncGenerator`" msgstr ":class:`AsyncGenerator`" -#: ../Doc/library/collections.abc.rst:96 +#: library/collections.abc.rst:96 msgid "``asend``, ``athrow``" msgstr "``asend``, ``athrow``" -#: ../Doc/library/collections.abc.rst:96 +#: library/collections.abc.rst:96 msgid "``aclose``, ``__aiter__``, ``__anext__``" msgstr "``aclose``, ``__aiter__``, ``__anext__``" -#: ../Doc/library/collections.abc.rst:105 -msgid "" -"ABCs for classes that provide respectively the methods :meth:" -"`__contains__`, :meth:`__hash__`, :meth:`__len__`, and :meth:`__call__`." -msgstr "" -"ABC pour les classes qui définissent respectivement les méthodes :meth:" -"`__contains__`, :meth:`__hash__`, :meth:`__len__` et :meth:`__call__`." +#: library/collections.abc.rst:102 +msgid "ABC for classes that provide the :meth:`__contains__` method." +msgstr "ABC pour les classes qui définissent la méthode :meth:`__contains__`." + +#: library/collections.abc.rst:106 +msgid "ABC for classes that provide the :meth:`__hash__` method." +msgstr "ABC pour les classes qui définissent la méthode :meth:`__hash__`." -#: ../Doc/library/collections.abc.rst:110 +#: library/collections.abc.rst:110 +msgid "ABC for classes that provide the :meth:`__len__` method." +msgstr "ABC pour les classes qui définissent la méthode :meth:`__len__`." + +#: library/collections.abc.rst:114 +msgid "ABC for classes that provide the :meth:`__call__` method." +msgstr "ABC pour les classes qui définissent la méthode :meth:`__call__`." + +#: library/collections.abc.rst:118 msgid "ABC for classes that provide the :meth:`__iter__` method." msgstr "ABC pour les classes qui définissent la méthode :meth:`__iter__`." -#: ../Doc/library/collections.abc.rst:112 +#: library/collections.abc.rst:120 msgid "" "Checking ``isinstance(obj, Iterable)`` detects classes that are registered " "as :class:`Iterable` or that have an :meth:`__iter__` method, but it does " @@ -355,11 +359,11 @@ msgstr "" "meth:`__getitem__`. Le seul moyen fiable de déterminer si un objet est :term:" "`itérable ` est d'appeler ``iter(obj)``." -#: ../Doc/library/collections.abc.rst:120 +#: library/collections.abc.rst:128 msgid "ABC for sized iterable container classes." msgstr "ABC pour les classes de conteneurs itérables et *sized*." -#: ../Doc/library/collections.abc.rst:126 +#: library/collections.abc.rst:134 msgid "" "ABC for classes that provide the :meth:`~iterator.__iter__` and :meth:" "`~iterator.__next__` methods. See also the definition of :term:`iterator`." @@ -368,14 +372,14 @@ msgstr "" "et :meth:`~iterator.__next__`. Voir aussi la définition d':term:`itérateur " "`." -#: ../Doc/library/collections.abc.rst:132 +#: library/collections.abc.rst:140 msgid "" "ABC for iterable classes that also provide the :meth:`__reversed__` method." msgstr "" "ABC pour les classes d'itérables qui implémentent également la méthode :meth:" "`__reversed__`." -#: ../Doc/library/collections.abc.rst:139 +#: library/collections.abc.rst:147 msgid "" "ABC for generator classes that implement the protocol defined in :pep:`342` " "that extends iterators with the :meth:`~generator.send`, :meth:`~generator." @@ -387,11 +391,11 @@ msgstr "" "`~generator.send`, :meth:`~generator.throw` et :meth:`~generator.close`. " "Voir aussi la définition de :term:`générateur `." -#: ../Doc/library/collections.abc.rst:150 +#: library/collections.abc.rst:158 msgid "ABCs for read-only and mutable :term:`sequences `." msgstr "ABC pour les :term:`séquences ` immuables et muables." -#: ../Doc/library/collections.abc.rst:152 +#: library/collections.abc.rst:160 msgid "" "Implementation note: Some of the mixin methods, such as :meth:`__iter__`, :" "meth:`__reversed__` and :meth:`index`, make repeated calls to the " @@ -409,29 +413,29 @@ msgstr "" "*mixin* auront une performance quadratique, il serait alors judicieux de les " "surcharger." -#: ../Doc/library/collections.abc.rst:161 +#: library/collections.abc.rst:169 msgid "The index() method added support for *stop* and *start* arguments." msgstr "" "La méthode index() a ajouté le support des arguments *start* et *stop*." -#: ../Doc/library/collections.abc.rst:168 +#: library/collections.abc.rst:176 msgid "ABCs for read-only and mutable sets." msgstr "ABC pour les ensembles immuables et muables." -#: ../Doc/library/collections.abc.rst:173 +#: library/collections.abc.rst:181 msgid "ABCs for read-only and mutable :term:`mappings `." msgstr "" "ABC pour les :term:`tables de correspondances ` immuables et " "muables." -#: ../Doc/library/collections.abc.rst:180 +#: library/collections.abc.rst:188 msgid "" "ABCs for mapping, items, keys, and values :term:`views `." msgstr "" "ABC pour les :term:`vues` de *mappings* (tableaux de " "correspondances), d'éléments, de clés et de valeurs." -#: ../Doc/library/collections.abc.rst:184 +#: library/collections.abc.rst:192 msgid "" "ABC for :term:`awaitable` objects, which can be used in :keyword:`await` " "expressions. Custom implementations must provide the :meth:`__await__` " @@ -441,15 +445,16 @@ msgstr "" "utilisés dans les expressions :keyword:`await`. Les implémentations " "personnalisées doivent définir la méthode :meth:`__await__`." -#: ../Doc/library/collections.abc.rst:188 +#: library/collections.abc.rst:196 +#, fuzzy msgid "" -":term:`Coroutine` objects and instances of the :class:`~collections.abc." -"Coroutine` ABC are all instances of this ABC." +":term:`Coroutine ` objects and instances of the :class:" +"`~collections.abc.Coroutine` ABC are all instances of this ABC." msgstr "" "Les objets :term:`coroutines ` et les instances de l'ABC :class:" "`~collections.abc.Coroutine` sont tous des instances de cette ABC." -#: ../Doc/library/collections.abc.rst:192 +#: library/collections.abc.rst:200 msgid "" "In CPython, generator-based coroutines (generators decorated with :func:" "`types.coroutine` or :func:`asyncio.coroutine`) are *awaitables*, even " @@ -464,7 +469,7 @@ msgstr "" "décoré va renvoyer ``False``. Utilisez :func:`inspect.isawaitable` pour les " "détecter." -#: ../Doc/library/collections.abc.rst:202 +#: library/collections.abc.rst:210 msgid "" "ABC for coroutine compatible classes. These implement the following " "methods, defined in :ref:`coroutine-objects`: :meth:`~coroutine.send`, :meth:" @@ -480,7 +485,7 @@ msgstr "" "Toutes les instances de :class:`Coroutine` sont également des instances de :" "class:`Awaitable`. Voir aussi la définition de :term:`coroutine`." -#: ../Doc/library/collections.abc.rst:210 +#: library/collections.abc.rst:218 msgid "" "In CPython, generator-based coroutines (generators decorated with :func:" "`types.coroutine` or :func:`asyncio.coroutine`) are *awaitables*, even " @@ -495,7 +500,7 @@ msgstr "" "décoré va renvoyer ``False``. Utilisez :func:`inspect.isawaitable` pour les " "détecter." -#: ../Doc/library/collections.abc.rst:220 +#: library/collections.abc.rst:228 msgid "" "ABC for classes that provide ``__aiter__`` method. See also the definition " "of :term:`asynchronous iterable`." @@ -503,7 +508,7 @@ msgstr "" "ABC pour les classes qui définissent la méthode ``__aiter__``. Voir aussi la " "définition d':term:`itérable asynchrone `." -#: ../Doc/library/collections.abc.rst:227 +#: library/collections.abc.rst:235 msgid "" "ABC for classes that provide ``__aiter__`` and ``__anext__`` methods. See " "also the definition of :term:`asynchronous iterator`." @@ -512,7 +517,7 @@ msgstr "" "``__anext__``. Voir aussi la définition d':term:`itérateur asynchrone " "`." -#: ../Doc/library/collections.abc.rst:234 +#: library/collections.abc.rst:242 msgid "" "ABC for asynchronous generator classes that implement the protocol defined " "in :pep:`525` and :pep:`492`." @@ -520,15 +525,15 @@ msgstr "" "ABC pour les classes de générateurs asynchrones qui implémentent le " "protocole défini dans la :pep:`525` et dans la :pep:`492`." -#: ../Doc/library/collections.abc.rst:240 +#: library/collections.abc.rst:248 msgid "" "These ABCs allow us to ask classes or instances if they provide particular " "functionality, for example::" msgstr "" "Ces ABC permettent de demander à des classes ou à des instances si elles " -"fournissent des fonctionnalités particulières, par exemple ::" +"fournissent des fonctionnalités particulières, par exemple ::" -#: ../Doc/library/collections.abc.rst:247 +#: library/collections.abc.rst:255 msgid "" "Several of the ABCs are also useful as mixins that make it easier to develop " "classes supporting container APIs. For example, to write a class supporting " @@ -543,15 +548,15 @@ msgstr "" "il est uniquement nécessaire de fournir les trois méthodes sous-jacentes " "abstraites :meth:`__contains__`, :meth:`__iter__` et :meth:`__len__`. L'ABC " "apporte les méthodes restantes, comme :meth:`__and__` et :meth:" -"`isdisjoint` ::" +"`isdisjoint` ::" -#: ../Doc/library/collections.abc.rst:276 +#: library/collections.abc.rst:284 msgid "Notes on using :class:`Set` and :class:`MutableSet` as a mixin:" msgstr "" "Notes à propos de l'utilisation de :class:`Set` et :class:`MutableSet` comme " "*mixin* :" -#: ../Doc/library/collections.abc.rst:279 +#: library/collections.abc.rst:287 msgid "" "Since some set operations create new sets, the default mixin methods need a " "way to create new instances from an iterable. The class constructor is " @@ -573,7 +578,7 @@ msgstr "" "`_from_iterable` avec une méthode de classe qui peut construire de nouvelles " "instances à partir d'un argument itérable." -#: ../Doc/library/collections.abc.rst:290 +#: library/collections.abc.rst:298 msgid "" "To override the comparisons (presumably for speed, as the semantics are " "fixed), redefine :meth:`__le__` and :meth:`__ge__`, then the other " @@ -583,7 +588,7 @@ msgstr "" "sémantique est fixe), il faut redéfinir :meth:`__le__` et :meth:`__ge__`, " "puis les autres opérations seront automatiquement adaptées." -#: ../Doc/library/collections.abc.rst:295 +#: library/collections.abc.rst:303 msgid "" "The :class:`Set` mixin provides a :meth:`_hash` method to compute a hash " "value for the set; however, :meth:`__hash__` is not defined because not all " @@ -597,7 +602,7 @@ msgstr "" "Pour rendre un ensemble hachable en utilisant les *mixins*, héritez de :meth:" "`Set` et de :meth:`Hashable`, puis définissez ``__hash__ = Set._hash``." -#: ../Doc/library/collections.abc.rst:303 +#: library/collections.abc.rst:311 msgid "" "`OrderedSet recipe `_ for an " "example built on :class:`MutableSet`." @@ -605,8 +610,15 @@ msgstr "" "`OrderedSet recipe `_ pour un " "exemple construit sur :class:`MutableSet`." -#: ../Doc/library/collections.abc.rst:306 +#: library/collections.abc.rst:314 msgid "For more about ABCs, see the :mod:`abc` module and :pep:`3119`." msgstr "" "Pour plus d'informations à propos des ABC, voir le module :mod:`abc` et la :" "pep:`3119`." + +#~ msgid "" +#~ "ABCs for classes that provide respectively the methods :meth:" +#~ "`__contains__`, :meth:`__hash__`, :meth:`__len__`, and :meth:`__call__`." +#~ msgstr "" +#~ "ABC pour les classes qui définissent respectivement les méthodes :meth:" +#~ "`__contains__`, :meth:`__hash__`, :meth:`__len__` et :meth:`__call__`." diff --git a/library/collections.po b/library/collections.po index 9b93a278d7..bcacba89ef 100644 --- a/library/collections.po +++ b/library/collections.po @@ -5,25 +5,25 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: 2019-04-11 19:52+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" +"PO-Revision-Date: 2020-03-03 19:26+0100\n" "Last-Translator: Jules Lasne \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2.1\n" +"X-Generator: Poedit 1.8.7.1\n" -#: ../Doc/library/collections.rst:2 +#: library/collections.rst:2 msgid ":mod:`collections` --- Container datatypes" msgstr ":mod:`collections` — Types de données de conteneurs" -#: ../Doc/library/collections.rst:10 +#: library/collections.rst:10 msgid "**Source code:** :source:`Lib/collections/__init__.py`" msgstr "**Code source :** :source:`Lib/collections/__init__.py`" -#: ../Doc/library/collections.rst:20 +#: library/collections.rst:20 msgid "" "This module implements specialized container datatypes providing " "alternatives to Python's general purpose built-in containers, :class:" @@ -33,110 +33,108 @@ msgstr "" "apportent des alternatives aux conteneurs natifs de Python plus généraux :" "class:`dict`, :class:`list`, :class:`set` et :class:`tuple`." -#: ../Doc/library/collections.rst:25 +#: library/collections.rst:25 msgid ":func:`namedtuple`" msgstr ":func:`namedtuple`" -#: ../Doc/library/collections.rst:25 +#: library/collections.rst:25 msgid "factory function for creating tuple subclasses with named fields" msgstr "" "fonction permettant de créer des sous-classes de ``tuple`` avec des champs " "nommés" -#: ../Doc/library/collections.rst:26 +#: library/collections.rst:26 msgid ":class:`deque`" msgstr ":class:`deque`" -#: ../Doc/library/collections.rst:26 +#: library/collections.rst:26 msgid "list-like container with fast appends and pops on either end" msgstr "" "conteneur se comportant comme une liste avec des ajouts et retraits rapides " "à chaque extrémité" -#: ../Doc/library/collections.rst:27 +#: library/collections.rst:27 msgid ":class:`ChainMap`" msgstr ":class:`ChainMap`" -#: ../Doc/library/collections.rst:27 +#: library/collections.rst:27 msgid "dict-like class for creating a single view of multiple mappings" msgstr "" "classe semblable aux dictionnaires qui crée une unique vue à partir de " "plusieurs dictionnaires" -#: ../Doc/library/collections.rst:28 +#: library/collections.rst:28 msgid ":class:`Counter`" msgstr ":class:`Counter`" -#: ../Doc/library/collections.rst:28 +#: library/collections.rst:28 msgid "dict subclass for counting hashable objects" msgstr "sous-classe de ``dict`` pour compter des objets hachables" -#: ../Doc/library/collections.rst:29 +#: library/collections.rst:29 msgid ":class:`OrderedDict`" msgstr ":class:`OrderedDict`" -#: ../Doc/library/collections.rst:29 +#: library/collections.rst:29 msgid "dict subclass that remembers the order entries were added" msgstr "" "sous-classe de ``dict`` qui garde en mémoire l'ordre dans lequel les entrées " "ont été ajoutées" -#: ../Doc/library/collections.rst:30 +#: library/collections.rst:30 msgid ":class:`defaultdict`" msgstr ":class:`defaultdict`" -#: ../Doc/library/collections.rst:30 +#: library/collections.rst:30 msgid "dict subclass that calls a factory function to supply missing values" msgstr "" "sous-classe de ``dict`` qui appelle une fonction de fabrication en cas de " "valeur manquante" -#: ../Doc/library/collections.rst:31 +#: library/collections.rst:31 msgid ":class:`UserDict`" msgstr ":class:`UserDict`" -#: ../Doc/library/collections.rst:31 +#: library/collections.rst:31 msgid "wrapper around dictionary objects for easier dict subclassing" msgstr "" "surcouche autour des objets dictionnaires pour faciliter l'héritage de " "``dict``" -#: ../Doc/library/collections.rst:32 +#: library/collections.rst:32 msgid ":class:`UserList`" msgstr ":class:`UserList`" -#: ../Doc/library/collections.rst:32 +#: library/collections.rst:32 msgid "wrapper around list objects for easier list subclassing" msgstr "" "surcouche autour des objets listes pour faciliter l'héritage de ``list``" -#: ../Doc/library/collections.rst:33 +#: library/collections.rst:33 msgid ":class:`UserString`" msgstr ":class:`UserString`" -#: ../Doc/library/collections.rst:33 +#: library/collections.rst:33 msgid "wrapper around string objects for easier string subclassing" msgstr "" "surcouche autour des objets chaînes de caractères pour faciliter l'héritage " "de ``str``" -#: ../Doc/library/collections.rst:41 -#, fuzzy +#: library/collections.rst:41 msgid "" "Moved :ref:`collections-abstract-base-classes` to the :mod:`collections.abc` " "module. For backwards compatibility, they continue to be visible in this " -"module through Python 3.8." +"module through Python 3.9." msgstr "" "Les :ref:`collections-abstract-base-classes` ont été déplacées vers le " "module :mod:`collections.abc`. Pour assurer la rétrocompatibilité, elles " -"sont toujours disponibles dans ce module en Python 3.7 mais seront ensuite " -"totalement supprimées." +"sont toujours disponibles dans ce module dans Python 3.9." -#: ../Doc/library/collections.rst:43 +#: library/collections.rst:43 msgid ":class:`ChainMap` objects" msgstr "Objets :class:`ChainMap`" -#: ../Doc/library/collections.rst:47 +#: library/collections.rst:47 msgid "" "A :class:`ChainMap` class is provided for quickly linking a number of " "mappings so they can be treated as a single unit. It is often much faster " @@ -148,14 +146,14 @@ msgstr "" "que de créer un nouveau dictionnaire et d'effectuer plusieurs appels de :" "meth:`~dict.update`." -#: ../Doc/library/collections.rst:51 +#: library/collections.rst:51 msgid "" "The class can be used to simulate nested scopes and is useful in templating." msgstr "" "Cette classe peut être utilisée pour simuler des portées imbriquées, elle " "est aussi utile pour le *templating*." -#: ../Doc/library/collections.rst:55 +#: library/collections.rst:55 msgid "" "A :class:`ChainMap` groups multiple dicts or other mappings together to " "create a single, updateable view. If no *maps* are specified, a single " @@ -167,7 +165,7 @@ msgstr "" "paramètre *maps* est vide, un dictionnaire vide est fourni de telle manière " "qu'une nouvelle chaîne possède toujours au moins un dictionnaire." -#: ../Doc/library/collections.rst:59 +#: library/collections.rst:59 msgid "" "The underlying mappings are stored in a list. That list is public and can " "be accessed or updated using the *maps* attribute. There is no other state." @@ -176,7 +174,7 @@ msgstr "" "publique et peut être consultée ou mise à jour via l'attribut *maps*. Il n'y " "a pas d'autre état." -#: ../Doc/library/collections.rst:62 +#: library/collections.rst:62 msgid "" "Lookups search the underlying mappings successively until a key is found. " "In contrast, writes, updates, and deletions only operate on the first " @@ -186,7 +184,7 @@ msgstr "" "la première clé correspondante. En revanche, les écritures, mises à jour et " "suppressions n'affectent que le premier dictionnaire." -#: ../Doc/library/collections.rst:65 +#: library/collections.rst:65 msgid "" "A :class:`ChainMap` incorporates the underlying mappings by reference. So, " "if one of the underlying mappings gets updated, those changes will be " @@ -196,7 +194,7 @@ msgstr "" "référence. Ainsi, si l'un d'eux est modifié, les changements affectent " "également la :class:`ChainMap`." -#: ../Doc/library/collections.rst:69 +#: library/collections.rst:69 msgid "" "All of the usual dictionary methods are supported. In addition, there is a " "*maps* attribute, a method for creating new subcontexts, and a property for " @@ -207,7 +205,7 @@ msgstr "" "contextes et une propriété pour accéder à tous les dictionnaires sous-" "jacents excepté le premier :" -#: ../Doc/library/collections.rst:75 +#: library/collections.rst:75 msgid "" "A user updateable list of mappings. The list is ordered from first-searched " "to last-searched. It is the only stored state and can be modified to change " @@ -219,7 +217,7 @@ msgstr "" "pour changer l'ordre de recherche. La liste doit toujours contenir au moins " "un dictionnaire." -#: ../Doc/library/collections.rst:82 +#: library/collections.rst:82 msgid "" "Returns a new :class:`ChainMap` containing a new map followed by all of the " "maps in the current instance. If ``m`` is specified, it becomes the new map " @@ -236,11 +234,11 @@ msgstr "" "créer des sous-contextes qui peuvent être mis à jour sans altérer les " "valeurs dans les dictionnaires parents." -#: ../Doc/library/collections.rst:90 +#: library/collections.rst:90 msgid "The optional ``m`` parameter was added." msgstr "Ajout du paramètre optionnel ``m``." -#: ../Doc/library/collections.rst:95 +#: library/collections.rst:95 msgid "" "Property returning a new :class:`ChainMap` containing all of the maps in the " "current instance except the first one. This is useful for skipping the " @@ -257,7 +255,7 @@ msgstr "" "`super`. Une référence à ``d.parents`` est équivalente à : ``ChainMap(*d." "maps[1:])``." -#: ../Doc/library/collections.rst:103 +#: library/collections.rst:103 msgid "" "Note, the iteration order of a :class:`ChainMap()` is determined by scanning " "the mappings last to first::" @@ -265,7 +263,7 @@ msgstr "" "Notez que l'itération de :class:`ChainMap()` se fait en parcourant les " "tableaux de correspondances du dernier jusqu'au premier ::" -#: ../Doc/library/collections.rst:111 +#: library/collections.rst:111 msgid "" "This gives the same ordering as a series of :meth:`dict.update` calls " "starting with the last mapping::" @@ -273,7 +271,7 @@ msgstr "" "Cela produit le même ordre qu'une suite d'appels à :meth:`dict.update` en " "commençant par le dernier tableau de correspondances ::" -#: ../Doc/library/collections.rst:121 +#: library/collections.rst:121 msgid "" "The `MultiContext class `_ in the Enthought `CodeTools package " @@ -285,22 +283,22 @@ msgstr "" "github.com/enthought/codetools>`_ d'Enthought possède des options pour gérer " "l'écriture dans n'importe quel dictionnaire de la chaîne." -#: ../Doc/library/collections.rst:127 +#: library/collections.rst:127 msgid "" -"Django's `Context class `_ for templating is a read-only chain of mappings. It " "also features pushing and popping of contexts similar to the :meth:" "`~collections.ChainMap.new_child` method and the :attr:`~collections." "ChainMap.parents` property." msgstr "" -"La `classe de contexte de Django `_ pour la création de modèles est une " -"chaîne de dictionnaires en lecture seule. Elle comporte également des " -"fonctionnalités d'ajouts et de retraits de contextes similaires à la " -"méthode :meth:`~collections.ChainMap.new_child` et à la propriété :attr:" -"`~collections.ChainMap.parents`." +"La `classe de contexte de Django `_ pour la création de modèles est une chaîne de " +"dictionnaires en lecture seule. Elle comporte également des fonctionnalités " +"d'ajouts et de retraits de contextes similaires à la méthode :meth:" +"`~collections.ChainMap.new_child` et à la propriété :attr:`~collections." +"ChainMap.parents`." -#: ../Doc/library/collections.rst:134 +#: library/collections.rst:134 msgid "" "The `Nested Contexts recipe `_ " "has options to control whether writes and other mutations apply only to the " @@ -311,7 +309,7 @@ msgstr "" "mutations ne s'appliquent qu'au premier ou à un autre dictionnaire de la " "chaîne." -#: ../Doc/library/collections.rst:139 +#: library/collections.rst:139 msgid "" "A `greatly simplified read-only version of Chainmap `_." @@ -319,21 +317,21 @@ msgstr "" "Une `version grandement simplifiée de Chainmap en lecture seule `_." -#: ../Doc/library/collections.rst:144 +#: library/collections.rst:144 msgid ":class:`ChainMap` Examples and Recipes" msgstr "Exemples et cas pratiques utilisant :class:`ChainMap`" -#: ../Doc/library/collections.rst:146 +#: library/collections.rst:146 msgid "This section shows various approaches to working with chained maps." msgstr "" "Cette partie montre diverses approches afin de travailler avec les " "dictionnaires chaînés." -#: ../Doc/library/collections.rst:149 +#: library/collections.rst:149 msgid "Example of simulating Python's internal lookup chain::" msgstr "Exemple 1 : simulation de la chaîne de recherche interne de Python ::" -#: ../Doc/library/collections.rst:154 +#: library/collections.rst:154 msgid "" "Example of letting user specified command-line arguments take precedence " "over environment variables which in turn take precedence over default " @@ -342,15 +340,15 @@ msgstr "" "Exemple 2 : spécification d'une hiérarchie pour les options : ligne de " "commande, variable d'environnement, valeurs par défaut ::" -#: ../Doc/library/collections.rst:171 +#: library/collections.rst:171 msgid "" "Example patterns for using the :class:`ChainMap` class to simulate nested " "contexts::" msgstr "" "Exemple 3 : modèles pour simuler des contexte imbriqués avec la classe :" -"class:`ChainMap` ::" +"class:`ChainMap` ::" -#: ../Doc/library/collections.rst:190 +#: library/collections.rst:190 msgid "" "The :class:`ChainMap` class only makes updates (writes and deletions) to the " "first mapping in the chain while lookups will search the full chain. " @@ -363,11 +361,11 @@ msgstr "" "profondeur, on peut facilement faire une sous-classe qui met à jour les clés " "trouvées de la chaîne en profondeur ::" -#: ../Doc/library/collections.rst:221 +#: library/collections.rst:221 msgid ":class:`Counter` objects" msgstr "Objets :class:`Counter`" -#: ../Doc/library/collections.rst:223 +#: library/collections.rst:223 msgid "" "A counter tool is provided to support convenient and rapid tallies. For " "example::" @@ -375,7 +373,7 @@ msgstr "" "Ce module fournit un outil pour effectuer rapidement et facilement des " "dénombrements. Par exemple ::" -#: ../Doc/library/collections.rst:242 +#: library/collections.rst:242 msgid "" "A :class:`Counter` is a :class:`dict` subclass for counting hashable " "objects. It is a collection where elements are stored as dictionary keys and " @@ -390,7 +388,7 @@ msgstr "" "entiers relatifs (positifs, négatifs ou nuls). La classe :class:`Counter` " "est similaire aux sacs ou aux multiensembles dans d'autres langages." -#: ../Doc/library/collections.rst:248 +#: library/collections.rst:248 msgid "" "Elements are counted from an *iterable* or initialized from another " "*mapping* (or counter):" @@ -398,7 +396,7 @@ msgstr "" "Les éléments sont comptés à partir d'un itérable ou initialisés à partir " "d'un autre dictionnaire (ou compteur) :" -#: ../Doc/library/collections.rst:256 +#: library/collections.rst:256 msgid "" "Counter objects have a dictionary interface except that they return a zero " "count for missing items instead of raising a :exc:`KeyError`:" @@ -407,7 +405,7 @@ msgstr "" "qu'ils renvoient zéro au lieu de lever une exception :exc:`KeyError` pour " "des éléments manquants :" -#: ../Doc/library/collections.rst:263 +#: library/collections.rst:263 msgid "" "Setting a count to zero does not remove an element from a counter. Use " "``del`` to remove it entirely:" @@ -415,7 +413,7 @@ msgstr "" "Mettre un comptage à zéro pour un élément ne le retire pas de l'objet " "Counter. Il faut utiliser ``del`` pour le supprimer complètement :" -#: ../Doc/library/collections.rst:271 +#: library/collections.rst:271 msgid "" "As a :class:`dict` subclass, :class:`Counter` Inherited the capability to " "remember insertion order. Math operations on *Counter* objects also " @@ -423,8 +421,13 @@ msgid "" "encountered in the left operand and then by the order encountered in the " "right operand." msgstr "" +"Puisqu'elle est une sous-classe de :class:`dict`, :class:`Counter` conserve " +"aussi l'ordre d'insertion. Les opérations mathématiques sur les objets " +"*Counter* préservent aussi l'ordre des insertions. Les résultats sont " +"ordonnés d'abord en fonction de la recherche d'apparition pour l'opérande de " +"gauche, puis dans l'ordre d'apparition de l'opérande de droite." -#: ../Doc/library/collections.rst:277 +#: library/collections.rst:277 msgid "" "Counter objects support three methods beyond those available for all " "dictionaries:" @@ -432,20 +435,18 @@ msgstr "" "En plus des méthodes disponibles pour tous les dictionnaires, les objets " "compteurs gèrent trois méthodes supplémentaires :" -#: ../Doc/library/collections.rst:282 -#, fuzzy +#: library/collections.rst:282 msgid "" "Return an iterator over elements repeating each as many times as its count. " "Elements are returned in the order first encountered. If an element's count " "is less than one, :meth:`elements` will ignore it." msgstr "" "Renvoie un itérateur sur chaque élément en le répétant autant de fois que la " -"valeur du compteur associé. Les éléments sont renvoyés dans un ordre " -"arbitraire. Si le comptage d'un élément est strictement inférieur à 1, " -"alors :meth:`elements` l'ignore." +"valeur du compteur associé. Les éléments sont renvoyés dans l'ordre selon " +"lequel ils sont rencontrés pour la première fois. Si le comptage d'un " +"élément est strictement inférieur à 1, alors :meth:`elements` l'ignore." -#: ../Doc/library/collections.rst:292 -#, fuzzy +#: library/collections.rst:292 msgid "" "Return a list of the *n* most common elements and their counts from the most " "common to the least. If *n* is omitted or ``None``, :meth:`most_common` " @@ -455,10 +456,10 @@ msgstr "" "Renvoie une liste des *n* éléments les plus nombreux et leur valeur " "respective dans l'ordre décroissant. Si *n* n'est pas fourni ou vaut " "``None``, :meth:`most_common` renvoie *tous* les éléments du compteur. Les " -"éléments qui ont le même nombre d'occurrences sont ordonnés de manière " -"arbitraire :" +"éléments qui ont le même nombre d'occurrences sont ordonnés par l'ordre " +"selon lequel ils ont été rencontrés pour la première fois :" -#: ../Doc/library/collections.rst:302 +#: library/collections.rst:302 msgid "" "Elements are subtracted from an *iterable* or from another *mapping* (or " "counter). Like :meth:`dict.update` but subtracts counts instead of " @@ -469,7 +470,7 @@ msgstr "" "update` mais soustrait les nombres d'occurrences au lieu de les remplacer. " "Les entrées et sorties peuvent être négatives ou nulles." -#: ../Doc/library/collections.rst:314 +#: library/collections.rst:314 msgid "" "The usual dictionary methods are available for :class:`Counter` objects " "except for two which work differently for counters." @@ -478,13 +479,13 @@ msgstr "" "class:`Counter` à l'exception de deux méthodes qui fonctionnent différemment " "pour les compteurs." -#: ../Doc/library/collections.rst:319 +#: library/collections.rst:319 msgid "This class method is not implemented for :class:`Counter` objects." msgstr "" "Cette méthode de classe n'est pas implémentée pour les objets :class:" "`Counter`." -#: ../Doc/library/collections.rst:323 +#: library/collections.rst:323 msgid "" "Elements are counted from an *iterable* or added-in from another *mapping* " "(or counter). Like :meth:`dict.update` but adds counts instead of replacing " @@ -497,11 +498,11 @@ msgstr "" "De plus, l'itérable doit être une séquence d'éléments et non une séquence de " "paires ``(clé, valeur)``." -#: ../Doc/library/collections.rst:328 +#: library/collections.rst:328 msgid "Common patterns for working with :class:`Counter` objects::" msgstr "Opérations usuelles sur les objets :class:`Counter` ::" -#: ../Doc/library/collections.rst:340 +#: library/collections.rst:340 msgid "" "Several mathematical operations are provided for combining :class:`Counter` " "objects to produce multisets (counters that have counts greater than zero). " @@ -521,7 +522,7 @@ msgstr "" "comptages relatifs, mais la sortie exclut les résultats avec des comptages " "négatifs ou nuls." -#: ../Doc/library/collections.rst:358 +#: library/collections.rst:358 msgid "" "Unary addition and subtraction are shortcuts for adding an empty counter or " "subtracting from an empty counter." @@ -530,14 +531,14 @@ msgstr "" "raccourcis pour respectivement additionner un compteur avec un compteur vide " "ou et pour retrancher un compteur d'un compteur vide." -#: ../Doc/library/collections.rst:367 +#: library/collections.rst:367 msgid "" "Added support for unary plus, unary minus, and in-place multiset operations." msgstr "" "Ajout de la gestion des additions et soustractions unaires, et des " "remplacements dans les multiensembles." -#: ../Doc/library/collections.rst:372 +#: library/collections.rst:372 msgid "" "Counters were primarily designed to work with positive integers to represent " "running counts; however, care was taken to not unnecessarily preclude use " @@ -550,7 +551,7 @@ msgstr "" "n'ont pas été écartés. Pour vous aider dans ces cas particuliers, cette " "section documente la plage minimale et les restrictions de type." -#: ../Doc/library/collections.rst:377 +#: library/collections.rst:377 msgid "" "The :class:`Counter` class itself is a dictionary subclass with no " "restrictions on its keys and values. The values are intended to be numbers " @@ -561,7 +562,7 @@ msgstr "" "vocation à être des nombres représentants des comptages, mais il est " "*possible* de stocker n'importe quel type de valeur." -#: ../Doc/library/collections.rst:381 +#: library/collections.rst:381 msgid "" "The :meth:`~Counter.most_common` method requires only that the values be " "orderable." @@ -569,7 +570,7 @@ msgstr "" "La méthode :meth:`~Counter.most_common` exige uniquement que les valeurs " "soient ordonnables." -#: ../Doc/library/collections.rst:383 +#: library/collections.rst:383 msgid "" "For in-place operations such as ``c[key] += 1``, the value type need only " "support addition and subtraction. So fractions, floats, and decimals would " @@ -583,7 +584,7 @@ msgstr "" "même pour :meth:`~Counter.update` et :meth:`~Cointer.substract` qui " "acceptent des valeurs négatives ou nulles dans les entrées et sorties." -#: ../Doc/library/collections.rst:389 +#: library/collections.rst:389 msgid "" "The multiset methods are designed only for use cases with positive values. " "The inputs may be negative or zero, but only outputs with positive values " @@ -596,7 +597,7 @@ msgstr "" "positives sont créées. Il n'y a pas de restriction de type, mais les types " "des valeurs doivent gérer l'addition, la soustraction et la comparaison." -#: ../Doc/library/collections.rst:394 +#: library/collections.rst:394 msgid "" "The :meth:`~Counter.elements` method requires integer counts. It ignores " "zero and negative counts." @@ -604,7 +605,7 @@ msgstr "" "La méthode :meth:`~Counter.elements` exige des valeurs entières et ignore " "les valeurs négatives ou nulles." -#: ../Doc/library/collections.rst:399 +#: library/collections.rst:399 msgid "" "`Bag class `_ in Smalltalk." @@ -612,7 +613,7 @@ msgstr "" "`Bag class `_ dans Smalltalk." -#: ../Doc/library/collections.rst:402 +#: library/collections.rst:402 msgid "" "Wikipedia entry for `Multisets `_." msgstr "" @@ -620,7 +621,7 @@ msgstr "" "Multiensemble>`_ sur Wikipédia (ou `l'article en anglais `_)." -#: ../Doc/library/collections.rst:404 +#: library/collections.rst:404 msgid "" "`C++ multisets `_ tutorial with examples." @@ -628,7 +629,7 @@ msgstr "" "Des guides et exemples à propos des `multiensembles en C++ `_." -#: ../Doc/library/collections.rst:407 +#: library/collections.rst:407 msgid "" "For mathematical operations on multisets and their use cases, see *Knuth, " "Donald. The Art of Computer Programming Volume II, Section 4.6.3, Exercise " @@ -638,7 +639,7 @@ msgstr "" "applications, voir *Knuth, Donald. The Art of Computer Programming Volume " "II, Section 4.6.3, Exercise 19*." -#: ../Doc/library/collections.rst:411 +#: library/collections.rst:411 msgid "" "To enumerate all distinct multisets of a given size over a given set of " "elements, see :func:`itertools.combinations_with_replacement`::" @@ -647,11 +648,11 @@ msgstr "" "ensemble donné d'éléments, voir :func:`itertools." "combinations_with_replacement` ::" -#: ../Doc/library/collections.rst:418 +#: library/collections.rst:418 msgid ":class:`deque` objects" msgstr "Objets :class:`deque`" -#: ../Doc/library/collections.rst:422 +#: library/collections.rst:422 msgid "" "Returns a new deque object initialized left-to-right (using :meth:`append`) " "with data from *iterable*. If *iterable* is not specified, the new deque is " @@ -661,7 +662,7 @@ msgstr "" "meth:`append`) avec les données d'*iterable*. Si *iterable* n'est pas " "spécifié, alors la nouvelle *deque* est vide." -#: ../Doc/library/collections.rst:425 +#: library/collections.rst:425 msgid "" "Deques are a generalization of stacks and queues (the name is pronounced " "\"deck\" and is short for \"double-ended queue\"). Deques support thread-" @@ -676,7 +677,7 @@ msgstr "" "vue de la mémoire des deux côtés de la *deque*, avec approximativement la " "même performance en *O(1)* dans les deux sens." -#: ../Doc/library/collections.rst:430 +#: library/collections.rst:430 msgid "" "Though :class:`list` objects support similar operations, they are optimized " "for fast fixed-length operations and incur O(n) memory movement costs for " @@ -689,7 +690,7 @@ msgstr "" "et la position de la représentation des données sous-jacentes entraînent des " "coûts de déplacement de mémoire en *O(n)*." -#: ../Doc/library/collections.rst:436 +#: library/collections.rst:436 msgid "" "If *maxlen* is not specified or is ``None``, deques may grow to an arbitrary " "length. Otherwise, the deque is bounded to the specified maximum length. " @@ -708,32 +709,32 @@ msgstr "" "Elles sont aussi utiles pour le suivi de transactions et autres lots de " "données où seule l'activité récente est intéressante." -#: ../Doc/library/collections.rst:445 +#: library/collections.rst:445 msgid "Deque objects support the following methods:" msgstr "Les objets *deques* gèrent les méthodes suivantes :" -#: ../Doc/library/collections.rst:449 +#: library/collections.rst:449 msgid "Add *x* to the right side of the deque." msgstr "Ajoute *x* à l'extrémité droite de la *deque*." -#: ../Doc/library/collections.rst:454 +#: library/collections.rst:454 msgid "Add *x* to the left side of the deque." msgstr "Ajoute *x* à l'extrémité gauche de la *deque*." -#: ../Doc/library/collections.rst:459 +#: library/collections.rst:459 msgid "Remove all elements from the deque leaving it with length 0." msgstr "" "Supprime tous les éléments de la *deque* et la laisse avec une longueur de 0." -#: ../Doc/library/collections.rst:464 +#: library/collections.rst:464 msgid "Create a shallow copy of the deque." msgstr "Crée une copie superficielle de la *deque*." -#: ../Doc/library/collections.rst:471 +#: library/collections.rst:471 msgid "Count the number of deque elements equal to *x*." msgstr "Compte le nombre d'éléments de la *deque* égaux à *x*." -#: ../Doc/library/collections.rst:478 +#: library/collections.rst:478 msgid "" "Extend the right side of the deque by appending elements from the iterable " "argument." @@ -741,7 +742,7 @@ msgstr "" "Étend la *deque* en ajoutant les éléments de l'itérable en argument à son " "extrémité droite." -#: ../Doc/library/collections.rst:484 +#: library/collections.rst:484 msgid "" "Extend the left side of the deque by appending elements from *iterable*. " "Note, the series of left appends results in reversing the order of elements " @@ -751,7 +752,7 @@ msgstr "" "gauche. Dans ce cas, notez que la série d'ajouts inverse l'ordre des " "éléments de l'argument itérable." -#: ../Doc/library/collections.rst:491 +#: library/collections.rst:491 msgid "" "Return the position of *x* in the deque (at or after index *start* and " "before index *stop*). Returns the first match or raises :exc:`ValueError` " @@ -761,11 +762,11 @@ msgstr "" "jusqu'à *stop* exclus). Renvoie la première correspondance ou lève :exc:" "`ValueError` si aucune n'est trouvée." -#: ../Doc/library/collections.rst:500 +#: library/collections.rst:500 msgid "Insert *x* into the deque at position *i*." msgstr "Insère *x* dans la *deque* à la position *i*." -#: ../Doc/library/collections.rst:502 +#: library/collections.rst:502 msgid "" "If the insertion would cause a bounded deque to grow beyond *maxlen*, an :" "exc:`IndexError` is raised." @@ -773,7 +774,7 @@ msgstr "" "Si une insertion provoque un dépassement de la taille limitée d'une *deque*, " "alors elle lève une exception :exc:`IndexError`." -#: ../Doc/library/collections.rst:510 +#: library/collections.rst:510 msgid "" "Remove and return an element from the right side of the deque. If no " "elements are present, raises an :exc:`IndexError`." @@ -781,7 +782,7 @@ msgstr "" "Retire et renvoie un élément de l'extrémité droite de la *deque*. S'il n'y a " "aucun élément, lève une exception :exc:`IndexError`." -#: ../Doc/library/collections.rst:516 +#: library/collections.rst:516 msgid "" "Remove and return an element from the left side of the deque. If no elements " "are present, raises an :exc:`IndexError`." @@ -789,7 +790,7 @@ msgstr "" "Retire et renvoie un élément de l'extrémité gauche de la *deque*. S'il n'y a " "aucun élément, lève une exception :exc:`IndexError`." -#: ../Doc/library/collections.rst:522 +#: library/collections.rst:522 msgid "" "Remove the first occurrence of *value*. If not found, raises a :exc:" "`ValueError`." @@ -797,13 +798,13 @@ msgstr "" "Supprime la première occurrence de *value*. Si aucune occurrence n'est " "trouvée, lève une exception :exc:`ValueError`." -#: ../Doc/library/collections.rst:528 +#: library/collections.rst:528 msgid "Reverse the elements of the deque in-place and then return ``None``." msgstr "" "Inverse le sens des éléments de la *deque* sans créer de copie et renvoie " "``None``." -#: ../Doc/library/collections.rst:535 +#: library/collections.rst:535 msgid "" "Rotate the deque *n* steps to the right. If *n* is negative, rotate to the " "left." @@ -811,7 +812,7 @@ msgstr "" "Décale les éléments de la *deque* de *n* places vers la droite (le dernier " "élément revient au début). Si *n* est négatif, décale vers la gauche." -#: ../Doc/library/collections.rst:538 +#: library/collections.rst:538 msgid "" "When the deque is not empty, rotating one step to the right is equivalent to " "``d.appendleft(d.pop())``, and rotating one step to the left is equivalent " @@ -821,17 +822,16 @@ msgstr "" "équivaut à ``d.appendleft(d.pop())`` et un décalage d'une place vers la " "gauche est équivalent à ``d.append(d.popleft())``." -#: ../Doc/library/collections.rst:543 +#: library/collections.rst:543 msgid "Deque objects also provide one read-only attribute:" msgstr "" "Les objets *deques* fournissent également un attribut en lecture seule :" -#: ../Doc/library/collections.rst:547 +#: library/collections.rst:547 msgid "Maximum size of a deque or ``None`` if unbounded." msgstr "La taille maximale d'une *deque*, ou ``None`` si illimitée." -#: ../Doc/library/collections.rst:552 -#, fuzzy +#: library/collections.rst:552 msgid "" "In addition to the above, deques support iteration, pickling, ``len(d)``, " "``reversed(d)``, ``copy.copy(d)``, ``copy.deepcopy(d)``, membership testing " @@ -842,11 +842,11 @@ msgstr "" "En plus des méthodes précédentes, les *deques* gèrent l'itération, la " "sérialisation, ``len(d)``, ``reversed(d)``, ``copy.copy(d)``, ``copy." "deepcopy(d)``, le test d'appartenance avec l'opérateur :keyword:`in`, et les " -"références en indice comme ``d[-1]``. L'accès par indice est en *O(1)* aux " -"extrémités mais en *O(n)* au milieu. Pour des accès aléatoires rapides, il " -"est préférable d'utiliser des listes." +"références en indice telles que ``d[0]`` pour accéder au premier élément. " +"L'accès par indice est en *O(1)* aux extrémités mais en *O(n)* au milieu. " +"Pour des accès aléatoires rapides, il est préférable d'utiliser des listes." -#: ../Doc/library/collections.rst:558 +#: library/collections.rst:558 msgid "" "Starting in version 3.5, deques support ``__add__()``, ``__mul__()``, and " "``__imul__()``." @@ -854,20 +854,20 @@ msgstr "" "Depuis la version 3.5, les *deques* gèrent ``__add__()``, ``__mul__()`` et " "``__imul__()``." -#: ../Doc/library/collections.rst:561 +#: library/collections.rst:561 msgid "Example:" msgstr "Exemple :" -#: ../Doc/library/collections.rst:618 +#: library/collections.rst:618 msgid ":class:`deque` Recipes" msgstr "Cas pratiques utilisant :class:`deque`" -#: ../Doc/library/collections.rst:620 +#: library/collections.rst:620 msgid "This section shows various approaches to working with deques." msgstr "" "Cette partie montre diverses approches afin de travailler avec les *deques*." -#: ../Doc/library/collections.rst:622 +#: library/collections.rst:622 msgid "" "Bounded length deques provide functionality similar to the ``tail`` filter " "in Unix::" @@ -875,7 +875,7 @@ msgstr "" "Les *deques* à taille limitée apportent une fonctionnalité similaire au " "filtre ``tail`` d'Unix ::" -#: ../Doc/library/collections.rst:630 +#: library/collections.rst:630 msgid "" "Another approach to using deques is to maintain a sequence of recently added " "elements by appending to the right and popping to the left::" @@ -884,7 +884,7 @@ msgstr "" "d'éléments récemment ajoutés en les ajoutant à droite et en retirant les " "anciens par la gauche ::" -#: ../Doc/library/collections.rst:645 +#: library/collections.rst:645 msgid "" "A `round-robin scheduler `_ can be implemented with input iterators stored in a :" @@ -900,7 +900,7 @@ msgstr "" "avec la méthode :meth:`~deque.popleft` ; ou bien il peut être remis à la fin " "avec la méthode :meth:`~ deque.rotate` ::" -#: ../Doc/library/collections.rst:664 +#: library/collections.rst:664 msgid "" "The :meth:`~deque.rotate` method provides a way to implement :class:`deque` " "slicing and deletion. For example, a pure Python implementation of ``del " @@ -912,7 +912,7 @@ msgstr "" "utilise la méthode ``rotate()`` pour mettre en position les éléments à " "éjecter ::" -#: ../Doc/library/collections.rst:673 +#: library/collections.rst:673 msgid "" "To implement :class:`deque` slicing, use a similar approach applying :meth:" "`~deque.rotate` to bring a target element to the left side of the deque. " @@ -929,11 +929,11 @@ msgstr "" "aisé d'implémenter les manipulations des piles inspirées du Forth telles que " "``dup``, ``drop``, ``swap``, ``over``, ``pick``, ``rot`` et ``roll``." -#: ../Doc/library/collections.rst:683 +#: library/collections.rst:683 msgid ":class:`defaultdict` objects" msgstr "Objets :class:`defaultdict`" -#: ../Doc/library/collections.rst:687 +#: library/collections.rst:687 msgid "" "Returns a new dictionary-like object. :class:`defaultdict` is a subclass of " "the built-in :class:`dict` class. It overrides one method and adds one " @@ -946,7 +946,7 @@ msgstr "" "autres fonctionnalités sont les mêmes que celles des objets :class:`dict` et " "ne sont pas documentées ici." -#: ../Doc/library/collections.rst:692 +#: library/collections.rst:692 msgid "" "The first argument provides the initial value for the :attr:" "`default_factory` attribute; it defaults to ``None``. All remaining " @@ -959,7 +959,7 @@ msgstr "" "si on les passait au constructeur de :class:`dict`, y compris les arguments " "nommés." -#: ../Doc/library/collections.rst:698 +#: library/collections.rst:698 msgid "" ":class:`defaultdict` objects support the following method in addition to the " "standard :class:`dict` operations:" @@ -967,7 +967,7 @@ msgstr "" "En plus des opérations usuelles de :class:`dict`, les objets :class:" "`defaultdict` gèrent les méthodes supplémentaires suivantes :" -#: ../Doc/library/collections.rst:703 +#: library/collections.rst:703 msgid "" "If the :attr:`default_factory` attribute is ``None``, this raises a :exc:" "`KeyError` exception with the *key* as argument." @@ -975,7 +975,7 @@ msgstr "" "Si l'attribut :attr:`default_factory` est ``None``, lève une exception :exc:" "`KeyError` avec *key* comme argument." -#: ../Doc/library/collections.rst:706 +#: library/collections.rst:706 msgid "" "If :attr:`default_factory` is not ``None``, it is called without arguments " "to provide a default value for the given *key*, this value is inserted in " @@ -986,7 +986,7 @@ msgstr "" "Cette valeur est insérée dans le dictionnaire avec pour clé *key* et est " "renvoyée." -#: ../Doc/library/collections.rst:710 +#: library/collections.rst:710 msgid "" "If calling :attr:`default_factory` raises an exception this exception is " "propagated unchanged." @@ -994,7 +994,7 @@ msgstr "" "Si appeler :attr:`default_factory` lève une exception, celle-ci est " "transmise inchangée." -#: ../Doc/library/collections.rst:713 +#: library/collections.rst:713 msgid "" "This method is called by the :meth:`__getitem__` method of the :class:`dict` " "class when the requested key is not found; whatever it returns or raises is " @@ -1004,7 +1004,7 @@ msgstr "" "class:`dict` lorsque la clé demandée n'est pas trouvée. Ce qu'elle renvoie " "ou lève est alors renvoyé ou levé par :meth:`__getitem__`." -#: ../Doc/library/collections.rst:717 +#: library/collections.rst:717 msgid "" "Note that :meth:`__missing__` is *not* called for any operations besides :" "meth:`__getitem__`. This means that :meth:`get` will, like normal " @@ -1016,11 +1016,11 @@ msgstr "" "``None`` comme les dictionnaires natifs dans les cas triviaux et n'utilise " "pas :attr:`default_factory`." -#: ../Doc/library/collections.rst:723 +#: library/collections.rst:723 msgid ":class:`defaultdict` objects support the following instance variable:" msgstr "Les objets :class:`defaultdict` gèrent la variable d'instance :" -#: ../Doc/library/collections.rst:728 +#: library/collections.rst:728 msgid "" "This attribute is used by the :meth:`__missing__` method; it is initialized " "from the first argument to the constructor, if present, or to ``None``, if " @@ -1030,11 +1030,11 @@ msgstr "" "initialisé par le premier argument passé au constructeur, s'il est spécifié, " "sinon par ``None``." -#: ../Doc/library/collections.rst:734 +#: library/collections.rst:734 msgid ":class:`defaultdict` Examples" msgstr "Exemples utilisant :class:`defaultdict`" -#: ../Doc/library/collections.rst:736 +#: library/collections.rst:736 msgid "" "Using :class:`list` as the :attr:`~defaultdict.default_factory`, it is easy " "to group a sequence of key-value pairs into a dictionary of lists:" @@ -1043,7 +1043,7 @@ msgstr "" "le regroupement d'une séquence de paires clé-valeur en un dictionnaire de " "listes :" -#: ../Doc/library/collections.rst:747 +#: library/collections.rst:747 msgid "" "When each key is encountered for the first time, it is not already in the " "mapping; so an entry is automatically created using the :attr:`~defaultdict." @@ -1064,7 +1064,7 @@ msgstr "" "technique est plus simple et plus rapide qu'une technique équivalente " "utilisant :meth:`dict.setdefault` :" -#: ../Doc/library/collections.rst:762 +#: library/collections.rst:762 msgid "" "Setting the :attr:`~defaultdict.default_factory` to :class:`int` makes the :" "class:`defaultdict` useful for counting (like a bag or multiset in other " @@ -1074,7 +1074,7 @@ msgstr "" "classe :class:`defaultdict` pratique pour le comptage (comme un sac ou multi-" "ensemble dans d'autres langages) :" -#: ../Doc/library/collections.rst:774 +#: library/collections.rst:774 msgid "" "When a letter is first encountered, it is missing from the mapping, so the :" "attr:`~defaultdict.default_factory` function calls :func:`int` to supply a " @@ -1086,7 +1086,7 @@ msgstr "" "appelle :func:`int` pour mettre un nouveau compteur à zéro. L'incrémentation " "augmente ensuite le comptage pour chaque lettre." -#: ../Doc/library/collections.rst:778 +#: library/collections.rst:778 msgid "" "The function :func:`int` which always returns zero is just a special case of " "constant functions. A faster and more flexible way to create constant " @@ -1098,7 +1098,7 @@ msgstr "" "une fonction constante est d'utiliser une fonction lambda qui peut fournir " "n'importe quelle valeur constante (pas seulement zéro) :" -#: ../Doc/library/collections.rst:790 +#: library/collections.rst:790 msgid "" "Setting the :attr:`~defaultdict.default_factory` to :class:`set` makes the :" "class:`defaultdict` useful for building a dictionary of sets:" @@ -1106,13 +1106,13 @@ msgstr "" "Utiliser :class:`set` comme :attr:`~defaultdict.default_factory` rend la " "classe :class:`defaultdict` pratique pour créer un dictionnaire d'ensembles :" -#: ../Doc/library/collections.rst:803 +#: library/collections.rst:803 msgid ":func:`namedtuple` Factory Function for Tuples with Named Fields" msgstr "" ":func:`namedtuple`: fonction de construction pour *n-uplets* (*tuples*) avec " "des champs nommés" -#: ../Doc/library/collections.rst:805 +#: library/collections.rst:805 msgid "" "Named tuples assign meaning to each position in a tuple and allow for more " "readable, self-documenting code. They can be used wherever regular tuples " @@ -1124,7 +1124,7 @@ msgstr "" "partout où les tuples natifs sont utilisés, et ils ajoutent la possibilité " "d'accéder à leurs champs grâce à leur nom au lieu de leur index de position." -#: ../Doc/library/collections.rst:811 +#: library/collections.rst:811 msgid "" "Returns a new tuple subclass named *typename*. The new subclass is used to " "create tuple-like objects that have fields accessible by attribute lookup as " @@ -1140,7 +1140,7 @@ msgstr "" "méthode :meth:`__repr__` pratique qui liste le contenu du tuple au format " "``nom=valeur``." -#: ../Doc/library/collections.rst:817 +#: library/collections.rst:817 msgid "" "The *field_names* are a sequence of strings such as ``['x', 'y']``. " "Alternatively, *field_names* can be a single string with each fieldname " @@ -1151,7 +1151,7 @@ msgstr "" "sont séparés par un espace et/ou une virgule, par exemple ``'x y'`` ou ``'x, " "y'``." -#: ../Doc/library/collections.rst:821 +#: library/collections.rst:821 msgid "" "Any valid Python identifier may be used for a fieldname except for names " "starting with an underscore. Valid identifiers consist of letters, digits, " @@ -1165,7 +1165,7 @@ msgstr "" "`keyword` tel que ``class``, ``for``, ``return``, ``global``, ``pass`` ou " "``raise``." -#: ../Doc/library/collections.rst:827 +#: library/collections.rst:827 msgid "" "If *rename* is true, invalid fieldnames are automatically replaced with " "positional names. For example, ``['abc', 'def', 'ghi', 'abc']`` is " @@ -1177,7 +1177,7 @@ msgstr "" "'ghi', 'abc']`` est converti en ``['abc, '_1', 'ghi', '_3']`` afin " "d'éliminer le mot-clé ``def`` et le doublon de ``abc``." -#: ../Doc/library/collections.rst:832 +#: library/collections.rst:832 msgid "" "*defaults* can be ``None`` or an :term:`iterable` of default values. Since " "fields with a default value must come after any fields without a default, " @@ -1193,7 +1193,7 @@ msgstr "" "'z']`` et les valeurs par défaut ``(1, 2)``, alors ``x`` est un argument " "obligatoire tandis que ``y`` et ``y`` valent par défaut ``1`` et ``2``." -#: ../Doc/library/collections.rst:839 +#: library/collections.rst:839 msgid "" "If *module* is defined, the ``__module__`` attribute of the named tuple is " "set to that value." @@ -1201,7 +1201,7 @@ msgstr "" "Si *module* est spécifié, alors il est assigné à l'attribut ``__module__`` " "du tuple nommé." -#: ../Doc/library/collections.rst:842 +#: library/collections.rst:842 msgid "" "Named tuple instances do not have per-instance dictionaries, so they are " "lightweight and require no more memory than regular tuples." @@ -1209,11 +1209,11 @@ msgstr "" "Les instances de tuples nommés n'ont pas de dictionnaires propres, elles " "sont donc légères et ne requièrent pas plus de mémoire que les tuples natifs." -#: ../Doc/library/collections.rst:845 +#: library/collections.rst:845 msgid "Added support for *rename*." msgstr "Gestion de *rename*." -#: ../Doc/library/collections.rst:848 +#: library/collections.rst:848 msgid "" "The *verbose* and *rename* parameters became :ref:`keyword-only arguments " "`." @@ -1221,22 +1221,22 @@ msgstr "" "Les paramètres *verbose* et *rename* deviennent des :ref:`arguments " "obligatoirement nommés `." -#: ../Doc/library/collections.rst:852 +#: library/collections.rst:852 msgid "Added the *module* parameter." msgstr "Ajout du paramètre *module*." -#: ../Doc/library/collections.rst:855 +#: library/collections.rst:855 #, fuzzy msgid "Removed the *verbose* parameter and the :attr:`_source` attribute." msgstr "Suppression du paramètre *verbose* et de l'attribut :attr:`_source`." -#: ../Doc/library/collections.rst:858 +#: library/collections.rst:858 msgid "" "Added the *defaults* parameter and the :attr:`_field_defaults` attribute." msgstr "" "Ajout du paramètre *defaults* et de l'attribut :attr:`_field_defaults`." -#: ../Doc/library/collections.rst:878 +#: library/collections.rst:878 msgid "" "Named tuples are especially useful for assigning field names to result " "tuples returned by the :mod:`csv` or :mod:`sqlite3` modules::" @@ -1244,7 +1244,7 @@ msgstr "" "Les tuples nommés sont particulièrement utiles pour associer des noms de " "champs à des tuples renvoyés par les modules :mod:`csv` ou :mod:`sqlite3` ::" -#: ../Doc/library/collections.rst:894 +#: library/collections.rst:894 msgid "" "In addition to the methods inherited from tuples, named tuples support three " "additional methods and two attributes. To prevent conflicts with field " @@ -1254,14 +1254,14 @@ msgstr "" "trois méthodes et deux attributs supplémentaires. Pour éviter les conflits " "avec noms de champs, leurs noms commencent par un tiret bas." -#: ../Doc/library/collections.rst:900 +#: library/collections.rst:900 msgid "" "Class method that makes a new instance from an existing sequence or iterable." msgstr "" "Méthode de classe qui construit une nouvelle instance à partir d'une " "séquence ou d'un itérable existant." -#: ../Doc/library/collections.rst:910 +#: library/collections.rst:910 msgid "" "Return a new :class:`dict` which maps field names to their corresponding " "values:" @@ -1269,19 +1269,24 @@ msgstr "" "Renvoie un nouveau :class:`dict` qui associe chaque nom de champ à sa valeur " "correspondante :" -#: ../Doc/library/collections.rst:919 +#: library/collections.rst:919 msgid "Returns an :class:`OrderedDict` instead of a regular :class:`dict`." msgstr "Renvoie un :class:`OrderedDict` au lieu d'un :class:`dict` natif." -#: ../Doc/library/collections.rst:922 +#: library/collections.rst:922 msgid "" "Returns a regular :class:`dict` instead of an :class:`OrderedDict`. As of " "Python 3.7, regular dicts are guaranteed to be ordered. If the extra " "features of :class:`OrderedDict` are required, the suggested remediation is " "to cast the result to the desired type: ``OrderedDict(nt._asdict())``." msgstr "" +"renvoie un :class:`dict` natif plutôt qu'un :class:`OrderedDict`. À partir " +"de Python 3.7, les dictionnaires natifs garantissent la préservation de " +"l'ordre. Si les autres fonctionnalités d':class:`OrderedDict` sont " +"nécessaires, la solution préconisée est de convertir le résultat vers le " +"type souhaité : ``OrderedDict(nt._asdict())``." -#: ../Doc/library/collections.rst:931 +#: library/collections.rst:931 msgid "" "Return a new instance of the named tuple replacing specified fields with new " "values::" @@ -1289,7 +1294,7 @@ msgstr "" "Renvoie une nouvelle instance du tuple nommé en remplaçant les champs " "spécifiés par leurs nouvelles valeurs ::" -#: ../Doc/library/collections.rst:943 +#: library/collections.rst:943 msgid "" "Tuple of strings listing the field names. Useful for introspection and for " "creating new named tuple types from existing named tuples." @@ -1298,11 +1303,11 @@ msgstr "" "l'introspection et pour créer de nouveaux types de tuples nommés à partir " "d'existants." -#: ../Doc/library/collections.rst:958 +#: library/collections.rst:958 msgid "Dictionary mapping field names to default values." msgstr "Dictionnaire qui assigne les valeurs par défaut aux noms des champs." -#: ../Doc/library/collections.rst:968 +#: library/collections.rst:968 msgid "" "To retrieve a field whose name is stored in a string, use the :func:" "`getattr` function:" @@ -1310,16 +1315,15 @@ msgstr "" "Pour récupérer un champ dont le nom est une chaîne de caractères, utilisez " "la fonction :func:`getattr` :" -#: ../Doc/library/collections.rst:974 -#, fuzzy +#: library/collections.rst:974 msgid "" "To convert a dictionary to a named tuple, use the double-star-operator (as " "described in :ref:`tut-unpacking-arguments`):" msgstr "" -"Pour convertir un dictionnaire en tuple nommé, utilisez l'opérateur double-" -"étoile (comme expliqué dans :ref:`tut-unpacking-arguments`) :" +"Pour convertir un dictionnaire en *n*-uplet nommé, utilisez l'opérateur " +"double-étoile (comme expliqué dans :ref:`tut-unpacking-arguments`) :" -#: ../Doc/library/collections.rst:981 +#: library/collections.rst:981 msgid "" "Since a named tuple is a regular Python class, it is easy to add or change " "functionality with a subclass. Here is how to add a calculated field and a " @@ -1329,7 +1333,7 @@ msgstr "" "grâce à l'héritage puisqu'il s'agit de simples classes. Voici comment " "ajouter un champ calculé avec une longueur fixe d'affichage :" -#: ../Doc/library/collections.rst:1000 +#: library/collections.rst:1000 msgid "" "The subclass shown above sets ``__slots__`` to an empty tuple. This helps " "keep memory requirements low by preventing the creation of instance " @@ -1339,7 +1343,7 @@ msgstr "" "permet de garder une emprunte mémoire faible en empêchant la création de " "dictionnaire d'instance." -#: ../Doc/library/collections.rst:1003 +#: library/collections.rst:1003 msgid "" "Subclassing is not useful for adding new, stored fields. Instead, simply " "create a new named tuple type from the :attr:`~somenamedtuple._fields` " @@ -1349,7 +1353,7 @@ msgstr "" "préférable de simplement créer un nouveau type de tuple nommé avec " "l'attribut :attr:`~somenamedtuple._fields` :" -#: ../Doc/library/collections.rst:1008 +#: library/collections.rst:1008 msgid "" "Docstrings can be customized by making direct assignments to the ``__doc__`` " "fields:" @@ -1357,11 +1361,11 @@ msgstr "" "Les *docstrings* peuvent être personnalisées en modifiant directement " "l'attribut ``__doc__`` :" -#: ../Doc/library/collections.rst:1017 +#: library/collections.rst:1017 msgid "Property docstrings became writeable." msgstr "La propriété devient éditable." -#: ../Doc/library/collections.rst:1022 +#: library/collections.rst:1022 msgid "" "See :class:`typing.NamedTuple` for a way to add type hints for named " "tuples. It also provides an elegant notation using the :keyword:`class` " @@ -1369,9 +1373,9 @@ msgid "" msgstr "" "Voir :meth:`typing.NamedTuple` pour un moyen d'ajouter des indications de " "type pour les tuples nommés. Cela propose aussi une notation élégante " -"utilisant le mot-clé :keyword:`class` :" +"utilisant le mot-clé :keyword:`class` ::" -#: ../Doc/library/collections.rst:1031 +#: library/collections.rst:1031 msgid "" "See :meth:`types.SimpleNamespace` for a mutable namespace based on an " "underlying dictionary instead of a tuple." @@ -1379,7 +1383,7 @@ msgstr "" "Voir :meth:`types.SimpleNamespace` pour un espace de nommage muable basé sur " "un dictionnaire sous-jacent à la place d'un tuple." -#: ../Doc/library/collections.rst:1034 +#: library/collections.rst:1034 msgid "" "The :mod:`dataclasses` module provides a decorator and functions for " "automatically adding generated special methods to user-defined classes." @@ -1388,11 +1392,11 @@ msgstr "" "ajouter automatiquement des méthodes spéciales générées aux classes définies " "par l’utilisateur." -#: ../Doc/library/collections.rst:1039 +#: library/collections.rst:1039 msgid ":class:`OrderedDict` objects" msgstr "Objets :class:`OrderedDict`" -#: ../Doc/library/collections.rst:1041 +#: library/collections.rst:1041 msgid "" "Ordered dictionaries are just like regular dictionaries but have some extra " "capabilities relating to ordering operations. They have become less " @@ -1404,11 +1408,11 @@ msgstr "" "moins importants puisque la classe native :class:`dict` sait se souvenir de " "l'ordre d'insertion (cette fonctionnalité a été garantie par Python 3.7)." -#: ../Doc/library/collections.rst:1047 +#: library/collections.rst:1047 msgid "Some differences from :class:`dict` still remain:" msgstr "Quelques différences persistent vis-à-vis de :class:`dict` :" -#: ../Doc/library/collections.rst:1049 +#: library/collections.rst:1049 msgid "" "The regular :class:`dict` was designed to be very good at mapping " "operations. Tracking insertion order was secondary." @@ -1417,7 +1421,7 @@ msgstr "" "opérations de correspondance. Garder une trace de l'ordre d'insertion était " "secondaire." -#: ../Doc/library/collections.rst:1052 +#: library/collections.rst:1052 msgid "" "The :class:`OrderedDict` was designed to be good at reordering operations. " "Space efficiency, iteration speed, and the performance of update operations " @@ -1427,7 +1431,7 @@ msgstr "" "opérations de ré-arrangement. L'occupation mémoire, la vitesse de parcours " "et les performances de mise à jour étaient secondaires." -#: ../Doc/library/collections.rst:1056 +#: library/collections.rst:1056 msgid "" "Algorithmically, :class:`OrderedDict` can handle frequent reordering " "operations better than :class:`dict`. This makes it suitable for tracking " @@ -1440,13 +1444,13 @@ msgstr "" "com/@krishankantsinghal/my-first-blog-on-medium-583159139237>`_ pour *Least " "Recently Used* en anglais)." -#: ../Doc/library/collections.rst:1061 +#: library/collections.rst:1061 msgid "" "The equality operation for :class:`OrderedDict` checks for matching order." msgstr "" "Le test d'égalité de :class:`OrderedDict` vérifie si l'ordre correspond." -#: ../Doc/library/collections.rst:1063 +#: library/collections.rst:1063 msgid "" "The :meth:`popitem` method of :class:`OrderedDict` has a different " "signature. It accepts an optional argument to specify which item is popped." @@ -1455,7 +1459,7 @@ msgstr "" "différente. Elle accepte un argument optionnel pour spécifier quel élément " "doit être enlevé." -#: ../Doc/library/collections.rst:1066 +#: library/collections.rst:1066 msgid "" ":class:`OrderedDict` has a :meth:`move_to_end` method to efficiently " "reposition an element to an endpoint." @@ -1463,12 +1467,12 @@ msgstr "" ":class:`OrderedDict` possède une méthode :meth:`move_to_end` pour déplacer " "efficacement un élément à la fin." -#: ../Doc/library/collections.rst:1069 +#: library/collections.rst:1069 msgid "Until Python 3.8, :class:`dict` lacked a :meth:`__reversed__` method." msgstr "" "Avant Python 3.8, :class:`dict` n'a pas de méthode :meth:`__reversed__`." -#: ../Doc/library/collections.rst:1074 +#: library/collections.rst:1074 msgid "" "Return an instance of a :class:`dict` subclass that has methods specialized " "for rearranging dictionary order." @@ -1476,7 +1480,7 @@ msgstr "" "Renvoie une instance d'une sous-classe de :class:`dict` qui possède des " "méthodes spécialisées pour redéfinir l'ordre du dictionnaire." -#: ../Doc/library/collections.rst:1081 +#: library/collections.rst:1081 msgid "" "The :meth:`popitem` method for ordered dictionaries returns and removes a " "(key, value) pair. The pairs are returned in :abbr:`LIFO (last-in, first-" @@ -1490,7 +1494,7 @@ msgstr "" "paires sont renvoyées comme pour une file, c'est-à-dire premier entré, " "premier sorti (en anglais :abbr:`FIFO (first-in, first-out)`)." -#: ../Doc/library/collections.rst:1088 +#: library/collections.rst:1088 msgid "" "Move an existing *key* to either end of an ordered dictionary. The item is " "moved to the right end if *last* is true (the default) or to the beginning " @@ -1501,7 +1505,7 @@ msgstr "" "à gauche sinon. Lève une exception :exc:`KeyError` si la clé *key* n'est pas " "trouvée ::" -#: ../Doc/library/collections.rst:1103 +#: library/collections.rst:1103 msgid "" "In addition to the usual mapping methods, ordered dictionaries also support " "reverse iteration using :func:`reversed`." @@ -1509,7 +1513,7 @@ msgstr "" "En plus des méthodes usuelles des dictionnaires, les dictionnaires ordonnés " "gèrent l'itération en sens inverse grâce à :func:`reversed`." -#: ../Doc/library/collections.rst:1106 +#: library/collections.rst:1106 msgid "" "Equality tests between :class:`OrderedDict` objects are order-sensitive and " "are implemented as ``list(od1.items())==list(od2.items())``. Equality tests " @@ -1525,7 +1529,7 @@ msgstr "" "(comme les dictionnaires natifs). Cela permet substituer des objets :class:" "`OrderedDict` partout où les dictionnaires natifs sont utilisés." -#: ../Doc/library/collections.rst:1113 +#: library/collections.rst:1113 msgid "" "The items, keys, and values :term:`views ` of :class:" "`OrderedDict` now support reverse iteration using :func:`reversed`." @@ -1534,7 +1538,7 @@ msgstr "" "class:`OrderedDict` gèrent maintenant l'itération en sens inverse en " "utilisant :func:`reversed`." -#: ../Doc/library/collections.rst:1117 +#: library/collections.rst:1117 msgid "" "With the acceptance of :pep:`468`, order is retained for keyword arguments " "passed to the :class:`OrderedDict` constructor and its :meth:`update` method." @@ -1543,11 +1547,11 @@ msgstr "" "au constructeur et à la méthode :meth:`update` de :class:`OrderedDict` est " "conservé." -#: ../Doc/library/collections.rst:1123 +#: library/collections.rst:1123 msgid ":class:`OrderedDict` Examples and Recipes" msgstr "Exemples et cas pratiques utilisant :class:`OrderDict`" -#: ../Doc/library/collections.rst:1125 +#: library/collections.rst:1125 msgid "" "It is straightforward to create an ordered dictionary variant that remembers " "the order the keys were *last* inserted. If a new entry overwrites an " @@ -1559,7 +1563,7 @@ msgstr "" "entrée écrase une existante, la position d'insertion d'origine est modifiée " "et déplacée à la fin ::" -#: ../Doc/library/collections.rst:1137 +#: library/collections.rst:1137 msgid "" "An :class:`OrderedDict` would also be useful for implementing variants of :" "func:`functools.lru_cache`::" @@ -1567,11 +1571,11 @@ msgstr "" "Un :class:`OrderedDict` peut aussi être utile pour implémenter des variantes " "de :func:`functools.lru_cache` ::" -#: ../Doc/library/collections.rst:1160 +#: library/collections.rst:1162 msgid ":class:`UserDict` objects" msgstr "Objets :class:`UserDict`" -#: ../Doc/library/collections.rst:1162 +#: library/collections.rst:1164 msgid "" "The class, :class:`UserDict` acts as a wrapper around dictionary objects. " "The need for this class has been partially supplanted by the ability to " @@ -1584,7 +1588,7 @@ msgstr "" "travailler avec celle-ci car le dictionnaire sous-jacent est accessible " "comme attribut." -#: ../Doc/library/collections.rst:1170 +#: library/collections.rst:1172 msgid "" "Class that simulates a dictionary. The instance's contents are kept in a " "regular dictionary, which is accessible via the :attr:`data` attribute of :" @@ -1598,7 +1602,7 @@ msgstr "" "initialisé avec son contenu. Remarquez qu'une référence vers *initialdata* " "n'est pas conservée, ce qui permet de l'utiliser pour d'autres tâches." -#: ../Doc/library/collections.rst:1176 +#: library/collections.rst:1178 msgid "" "In addition to supporting the methods and operations of mappings, :class:" "`UserDict` instances provide the following attribute:" @@ -1606,18 +1610,18 @@ msgstr "" "En plus de gérer les méthodes et opérations des dictionnaires, les instance " "de :class:`UserDict` fournissent l'attribut suivant :" -#: ../Doc/library/collections.rst:1181 +#: library/collections.rst:1183 msgid "" "A real dictionary used to store the contents of the :class:`UserDict` class." msgstr "" "Un dictionnaire natif où est stocké le contenu de la classe :class:" "`UserDict`." -#: ../Doc/library/collections.rst:1187 +#: library/collections.rst:1189 msgid ":class:`UserList` objects" msgstr "Objets :class:`UserList`" -#: ../Doc/library/collections.rst:1189 +#: library/collections.rst:1191 msgid "" "This class acts as a wrapper around list objects. It is a useful base class " "for your own list-like classes which can inherit from them and override " @@ -1629,7 +1633,7 @@ msgstr "" "et surcharger les méthodes existantes ou en ajouter de nouvelles. Ainsi, on " "peut ajouter de nouveaux comportements aux listes." -#: ../Doc/library/collections.rst:1194 +#: library/collections.rst:1196 msgid "" "The need for this class has been partially supplanted by the ability to " "subclass directly from :class:`list`; however, this class can be easier to " @@ -1640,7 +1644,7 @@ msgstr "" "de travailler avec cette classe car la liste sous-jacente est accessible via " "un attribut." -#: ../Doc/library/collections.rst:1200 +#: library/collections.rst:1202 msgid "" "Class that simulates a list. The instance's contents are kept in a regular " "list, which is accessible via the :attr:`data` attribute of :class:" @@ -1654,7 +1658,7 @@ msgstr "" "*list* peut être un itérable, par exemple une liste native ou un objet :" "class:`UserList`." -#: ../Doc/library/collections.rst:1206 +#: library/collections.rst:1208 msgid "" "In addition to supporting the methods and operations of mutable sequences, :" "class:`UserList` instances provide the following attribute:" @@ -1662,7 +1666,7 @@ msgstr "" "En plus de gérer les méthodes et opérations des séquences muables, les " "instances de :class:`UserList` possèdent l'attribut suivant :" -#: ../Doc/library/collections.rst:1211 +#: library/collections.rst:1213 msgid "" "A real :class:`list` object used to store the contents of the :class:" "`UserList` class." @@ -1670,7 +1674,7 @@ msgstr "" "Un objet :class:`list` natif utilisé pour stocker le contenu de la classe :" "class:`UserList`." -#: ../Doc/library/collections.rst:1214 +#: library/collections.rst:1216 msgid "" "**Subclassing requirements:** Subclasses of :class:`UserList` are expected " "to offer a constructor which can be called with either no arguments or one " @@ -1686,7 +1690,7 @@ msgstr "" "constructeur doit pouvoir être appelé avec un unique paramètre, un objet " "séquence utilisé comme source de données." -#: ../Doc/library/collections.rst:1221 +#: library/collections.rst:1223 msgid "" "If a derived class does not wish to comply with this requirement, all of the " "special methods supported by this class will need to be overridden; please " @@ -1698,11 +1702,11 @@ msgstr "" "de consulter les sources pour obtenir des informations sur les méthodes qui " "doivent être fournies dans ce cas." -#: ../Doc/library/collections.rst:1227 +#: library/collections.rst:1229 msgid ":class:`UserString` objects" msgstr "Objets :class:`UserString`" -#: ../Doc/library/collections.rst:1229 +#: library/collections.rst:1231 msgid "" "The class, :class:`UserString` acts as a wrapper around string objects. The " "need for this class has been partially supplanted by the ability to subclass " @@ -1715,7 +1719,7 @@ msgstr "" "plus facile de travailler avec cette classe car la chaîne de caractère sous-" "jacente est accessible via un attribut." -#: ../Doc/library/collections.rst:1237 +#: library/collections.rst:1239 msgid "" "Class that simulates a string object. The instance's content is kept in a " "regular string object, which is accessible via the :attr:`data` attribute " @@ -1729,7 +1733,7 @@ msgstr "" "initialement une copie de *seq*, qui peut être n'importe quel objet " "convertible en chaîne de caractère avec la fonction native :func:`str`." -#: ../Doc/library/collections.rst:1244 +#: library/collections.rst:1246 msgid "" "In addition to supporting the methods and operations of strings, :class:" "`UserString` instances provide the following attribute:" @@ -1737,7 +1741,7 @@ msgstr "" "En plus de gérer les méthodes et opérations sur les chaînes de caractères, " "les instances de :class:`UserString` possèdent l'attribut suivant :" -#: ../Doc/library/collections.rst:1249 +#: library/collections.rst:1251 msgid "" "A real :class:`str` object used to store the contents of the :class:" "`UserString` class." @@ -1745,7 +1749,7 @@ msgstr "" "Un objet :class:`str` natif utilisé pour stocker le contenu de la classe :" "class:`UserString`." -#: ../Doc/library/collections.rst:1252 +#: library/collections.rst:1254 msgid "" "New methods ``__getnewargs__``, ``__rmod__``, ``casefold``, ``format_map``, " "``isprintable``, and ``maketrans``." diff --git a/library/compileall.po b/library/compileall.po index 7bbf2ebd3d..41540ab8af 100644 --- a/library/compileall.po +++ b/library/compileall.po @@ -17,6 +17,7 @@ msgstr "" #: ../Doc/library/compileall.rst:2 msgid ":mod:`compileall` --- Byte-compile Python libraries" msgstr "" +":mod:`compileall` — Génération du code intermédiaire des bibliothèques Python" #: ../Doc/library/compileall.rst:7 msgid "**Source code:** :source:`Lib/compileall.py`" @@ -30,16 +31,25 @@ msgid "" "installation time, which makes them available for use even by users who " "don't have write permission to the library directories." msgstr "" +"Ce module contient des fonctions qui facilitent l'installation de " +"bibliothèques Python. Elles compilent, sous forme de code intermédiaire " +"(*bytecode*), les fichiers source situés dans un dossier de votre choix. Ce " +"module est particulièrement utile pour générer les fichiers de code " +"intermédiaire lors de l'installation d'une bibliothèque, les rendant " +"disponibles même pour les utilisateurs qui n'ont pas les privilèges " +"d'écriture dans l'emplacement d'installation." #: ../Doc/library/compileall.rst:19 msgid "Command-line use" -msgstr "" +msgstr "Utilisation en ligne de commande" #: ../Doc/library/compileall.rst:21 msgid "" "This module can work as a script (using :program:`python -m compileall`) to " "compile Python sources." msgstr "" +"On peut se servir de ce module comme d'un script (avec :program:`python -m " +"compileall`) pour compiler les fichiers source Python." #: ../Doc/library/compileall.rst:29 msgid "" @@ -47,22 +57,33 @@ msgid "" "files, traversed recursively. If no argument is given, behave as if the " "command line was ``-l ``." msgstr "" +"Les arguments positionnels sont les fichiers à compiler. Ils peuvent aussi " +"être des dossiers, qui sont alors parcourus récursivement pour compiler tous " +"les fichiers de code :file:`.py` qu'ils contiennent. Lorsque le script ne " +"reçoit aucun argument, il fait comme s'il avait été appelé avec `-l `." #: ../Doc/library/compileall.rst:35 msgid "" "Do not recurse into subdirectories, only compile source code files directly " "contained in the named or implied directories." msgstr "" +"Compiler uniquement les fichiers situés directement dans les dossiers passés " +"en argument ou implicites, sans descendre récursivement dans les sous-" +"dossiers." #: ../Doc/library/compileall.rst:40 msgid "Force rebuild even if timestamps are up-to-date." -msgstr "" +msgstr "Forcer la recompilation même si les horodatages sont à jour." #: ../Doc/library/compileall.rst:44 msgid "" "Do not print the list of files compiled. If passed once, error messages will " "still be printed. If passed twice (``-qq``), all output is suppressed." msgstr "" +"Supprimer l'affichage des noms des fichiers compilés.Si cette option est " +"donnée une seule fois, les erreurs sont affichées malgré tout. Vous pouvez " +"les supprimer en passant l'option deux fois (c'est-à-dire avec ``-qq``)." #: ../Doc/library/compileall.rst:49 msgid "" @@ -72,12 +93,19 @@ msgid "" "where the source file does not exist at the time the byte-code file is " "executed." msgstr "" +"Ce nom de dossier est ajouté en tête du chemin de chaque fichier compilé. Il " +"aura une influence sur les traces d'appels pour les erreurs levées lors de " +"la compilation, et sera reflété dans les fichiers de code intermédiaire, " +"pour utilisation dans les traces d'appels et autres messages si le fichier " +"source n'existe pas au moment de l'exécution." #: ../Doc/library/compileall.rst:57 msgid "" "regex is used to search the full path to each file considered for " "compilation, and if the regex produces a match, the file is skipped." msgstr "" +"Exclut tous les fichiers dont les noms correspondent à l'expression " +"régulière *regex*." #: ../Doc/library/compileall.rst:62 msgid "" @@ -85,6 +113,8 @@ msgid "" "files and directories to compile. If ``list`` is ``-``, read lines from " "``stdin``." msgstr "" +"Ajoute chaque ligne du fichier *list* aux fichiers et dossiers à compiler. " +"*list* peut être ``-``, auquel cas le script lit l'entrée standard." #: ../Doc/library/compileall.rst:68 msgid "" @@ -93,6 +123,11 @@ msgid "" "is to write files to their :pep:`3147` locations and names, which allows " "byte-code files from multiple versions of Python to coexist." msgstr "" +"Utilise l'ancienne manière de nommer et placer les fichiers de code " +"intermédiaire, en écrasant éventuellement ceux générés par une autre version " +"de Python. Par défaut, les règles décrites dans la :pep:`3147` s'appliquent. " +"Elles permettent à différentes versions de l'interpréteur Python de " +"coexister en conservant chacune ses propres fichiers ``.pyc``." #: ../Doc/library/compileall.rst:75 msgid "" @@ -101,12 +136,19 @@ msgid "" "compileall -r 0` is equivalent to :program:`python -m compileall " " -l`." msgstr "" +"Règle le niveau de récursion maximal pour le parcours des sous-dossiers. " +"Lorsque cette option est fournie, ``-l`` est ignorée. :program:`python -m " +"compileall -r 0` revient au même que :program:`python -m " +"compileall -l`." #: ../Doc/library/compileall.rst:82 msgid "" "Use *N* workers to compile the files within the given directory. If ``0`` is " "used, then the result of :func:`os.cpu_count()` will be used." msgstr "" +"Effectue la compilation avec *N* processus parallèles. Si *N* vaut 0, autant " +"de processus sont créés que la machine dispose de processeurs (résultat de :" +"func:`os.cpu_count()`)." #: ../Doc/library/compileall.rst:88 msgid "" @@ -120,10 +162,20 @@ msgid "" "`SOURCE_DATE_EPOCH` environment variable is not set, and ``checked-hash`` if " "the ``SOURCE_DATE_EPOCH`` environment variable is set." msgstr "" +"Définit la manière dont les fichiers de code intermédiaire seront invalidés " +"au moment de l'exécution. Avec ``timestamp``, les fichiers ``.pyc`` générés " +"comportent l'horodatage de la source et sa taille. Avec ``checked-hash`` ou " +"``unchecked-hash``, ce seront des pyc utilisant le hachage, qui contiennent " +"une empreinte du code source plutôt qu'un horodatage. Voir :ref:`pyc-" +"invalidation` pour plus d'informations sur la manière dont Python valide les " +"fichiers de code intermédiaire conservés en cache lors de l'exécution. La " +"valeur par défaut est ``timestamp``. Cependant, si la variable " +"d'environnement :envvar:`SOURCE_DATE_EPOCH` a été réglée, elle devient " +"``checked-hash``." #: ../Doc/library/compileall.rst:99 msgid "Added the ``-i``, ``-b`` and ``-h`` options." -msgstr "" +msgstr "ajout des options ``-i``, ``-b`` et ``-h``." #: ../Doc/library/compileall.rst:102 msgid "" @@ -131,10 +183,13 @@ msgid "" "to a multilevel value. ``-b`` will always produce a byte-code file ending " "in ``.pyc``, never ``.pyo``." msgstr "" +"ajout des options ``-j``, ``-r`` et ``-qq`` (l'option ``-q`` peut donc " +"prendre plusieurs niveaux). ``-b`` produit toujours un fichier de code " +"intermédiaire portant l'extension ``.pyc``, et jamais ``.pyo``." #: ../Doc/library/compileall.rst:107 msgid "Added the ``--invalidation-mode`` option." -msgstr "" +msgstr "ajout de l'option ``--invalidation-mode``." #: ../Doc/library/compileall.rst:111 msgid "" @@ -142,6 +197,10 @@ msgid "" "the :func:`compile` function, because the Python interpreter itself already " "provides the option: :program:`python -O -m compileall`." msgstr "" +"Il n'y a pas d'option en ligne de commande pour contrôler le niveau " +"d'optimisation utilisé par la fonction :func:`compile`. Il suffit en effet " +"d'utiliser l'option ``-O`` de l'interpréteur Python lui-même : :program:" +"`python -O -m compileall`." #: ../Doc/library/compileall.rst:115 msgid "" @@ -150,10 +209,15 @@ msgid "" "if :func:`compile` is run with the same :attr:`sys.pycache_prefix` (if any) " "that will be used at runtime." msgstr "" +"De même, la fonction :func:`compile` utilise le réglage :attr:`sys." +"pycache_prefix`. Le code intermédiaire généré ne pourra servir que dans la " +"mesure où :func:`compile` est exécutée avec la même valeur de :attr:`sys." +"pycache_prefix` (si tant est qu'elle soit définie) que celle en vigueur au " +"moment d'exécuter le programme." #: ../Doc/library/compileall.rst:121 msgid "Public functions" -msgstr "" +msgstr "Fonctions publiques" #: ../Doc/library/compileall.rst:125 msgid "" @@ -161,6 +225,9 @@ msgid "" "py` files along the way. Return a true value if all the files compiled " "successfully, and a false value otherwise." msgstr "" +"Parcourt récursivement le dossier *dir*, en compilant tous les fichiers :" +"file:`.py`. Renvoie une valeur vraie si tous les fichiers ont été compilés " +"sans erreur, et une valeur fausse dans le cas contraire." #: ../Doc/library/compileall.rst:129 msgid "" @@ -176,12 +243,19 @@ msgid "" "where the source file does not exist at the time the byte-code file is " "executed." msgstr "" +"Si *ddir* est fourni, il est ajouté en tête du chemin de chaque fichier " +"compilé, ce qui modifie l'affichage des traces d'appels pour les erreurs qui " +"seraient levées lors de la compilation. De plus, il se retrouve dans les " +"fichiers de code intermédiaire, pour utilisation dans les traces et autres " +"messages si le fichier source n'existe pas au moment de l'exécution." #: ../Doc/library/compileall.rst:138 msgid "" "If *force* is true, modules are re-compiled even if the timestamps are up to " "date." msgstr "" +"Si *force* est vrai, les modules sont recompilés même si leurs horodatages " +"sont à jour." #: ../Doc/library/compileall.rst:141 msgid "" @@ -196,6 +270,10 @@ msgid "" "information are printed to standard out. Set to ``1``, only errors are " "printed. Set to ``2``, all output is suppressed." msgstr "" +"Si *quiet* est ``False`` ou bien ``0`` (la valeur par défaut), les noms de " +"fichiers et d'autres informations sont affichés sur la sortie standard. Avec " +"``1``, seules les erreurs sont affichées. Avec ``2``, aucune sortie n'est " +"émise." #: ../Doc/library/compileall.rst:149 ../Doc/library/compileall.rst:213 msgid "" @@ -205,6 +283,12 @@ msgid "" "names, which allows byte-code files from multiple versions of Python to " "coexist." msgstr "" +"Si *legacy* est vrai, les fichiers de code intermédiaire sont nommés et " +"placés selon l'ancienne méthode, en écrasant éventuellement ceux générés par " +"une autre version de Python. Par défaut, les règles décrites dans la :pep:" +"`3147` s'appliquent. Elles permettent à différentes versions de " +"l'interpréteur Python de coexister en conservant chacune ses propres " +"fichiers ``.pyc``." #: ../Doc/library/compileall.rst:155 ../Doc/library/compileall.rst:219 msgid "" @@ -221,6 +305,12 @@ msgid "" "cores in the system is used. If *workers* is lower than ``0``, a :exc:" "`ValueError` will be raised." msgstr "" +"*workers* est le nombre de tâches lancées en parallèle pour la compilation. " +"Par défaut, les fichiers sont compilés séquentiellement. Cette même " +"stratégie s'applique dans tous les cas lorsque le parallélisme n'est pas " +"possible sur la plateforme d'exécution. Si *workers* vaut 0, autant de " +"tâches sont lancées que le système comporte de cœurs. Si *workers* est " +"strictement négatif, une exception de type :exc:`ValueError` est levée." #: ../Doc/library/compileall.rst:165 ../Doc/library/compileall.rst:222 msgid "" @@ -228,19 +318,22 @@ msgid "" "PycInvalidationMode` enum and controls how the generated pycs are " "invalidated at runtime." msgstr "" +"*invalidation_mode* doit être un membre de l'énumération :class:`py_compile." +"PycInvalidationMode` et détermine la manière dont les fichiers :file:`.pyc` " +"sont invalidés lorsque l'interpréteur tente de les utiliser." #: ../Doc/library/compileall.rst:169 ../Doc/library/compileall.rst:251 msgid "Added the *legacy* and *optimize* parameter." -msgstr "" +msgstr "ajout des paramètres *legacy* et *optimize*." #: ../Doc/library/compileall.rst:172 msgid "Added the *workers* parameter." -msgstr "" +msgstr "ajout du paramètre *workers*." #: ../Doc/library/compileall.rst:175 ../Doc/library/compileall.rst:228 #: ../Doc/library/compileall.rst:254 msgid "*quiet* parameter was changed to a multilevel value." -msgstr "" +msgstr "le paramètre *quiet* peut prendre plusieurs niveaux." #: ../Doc/library/compileall.rst:178 ../Doc/library/compileall.rst:231 #: ../Doc/library/compileall.rst:257 @@ -248,6 +341,8 @@ msgid "" "The *legacy* parameter only writes out ``.pyc`` files, not ``.pyo`` files no " "matter what the value of *optimize* is." msgstr "" +"Lorsque le paramètre *legacy* est vrai, des fichiers ``.pyc``, et jamais ``." +"pyo``, sont générés, quel que soit le niveau d'optimisation." #: ../Doc/library/compileall.rst:182 msgid "Accepts a :term:`path-like object`." @@ -256,22 +351,27 @@ msgstr "Accepte un :term:`path-like object`." #: ../Doc/library/compileall.rst:185 ../Doc/library/compileall.rst:235 #: ../Doc/library/compileall.rst:261 msgid "The *invalidation_mode* parameter was added." -msgstr "" +msgstr "ajout du paramètre *invalidation_mode*." #: ../Doc/library/compileall.rst:188 ../Doc/library/compileall.rst:238 #: ../Doc/library/compileall.rst:264 msgid "The *invalidation_mode* parameter's default value is updated to None." msgstr "" +"La valeur par défaut du paramètre *invalidation_mode* est changée à ``None``." #: ../Doc/library/compileall.rst:191 msgid "Setting *workers* to 0 now chooses the optimal number of cores." msgstr "" +"Un nombre de processus adapté à la machine est choisi lorsque *workers* vaut " +"0." #: ../Doc/library/compileall.rst:196 msgid "" "Compile the file with path *fullname*. Return a true value if the file " "compiled successfully, and a false value otherwise." msgstr "" +"Compile le fichier dont le chemin est donné par *fullname*. Renvoie une " +"valeur vraie si et seulement si le fichier est compilé sans erreur." #: ../Doc/library/compileall.rst:199 msgid "" @@ -281,6 +381,11 @@ msgid "" "where the source file does not exist at the time the byte-code file is " "executed." msgstr "" +"Si *ddir* est fourni, il est ajouté en tête du chemin de chaque fichier " +"compilé, ce qui modifie l'affichage des traces pour les erreurs qui seraient " +"levées lors de la compilation. De plus, il se retrouve dans les fichiers de " +"code intermédiaire, pour utilisation dans les traces et autres messages si " +"le fichier source n'existe pas au moment de l'exécution." #: ../Doc/library/compileall.rst:205 msgid "" @@ -295,6 +400,9 @@ msgid "" "true value if all the files compiled successfully, and a false value " "otherwise." msgstr "" +"Compile tous les fichiers :file:`.py` contenus dans les dossiers de ``sys." +"path``. Renvoie une valeur vraie s'ils ont tous été compilés sans erreur, et " +"une valeur fausse dans le cas contraire." #: ../Doc/library/compileall.rst:246 msgid "" @@ -303,17 +411,23 @@ msgid "" "`compile_dir` function. Note that unlike the other compile functions, " "``maxlevels`` defaults to ``0``." msgstr "" +"Si *skip_curdir* est vrai (c'est le cas par défaut), le dossier courant est " +"exclu de la recherche. Les autres paramètres sont passés à :func:" +"`compile_dir`. Notez que contrairement aux autres fonctions de ce module, la " +"valeur par défaut de ``maxlevels`` est ``0``." #: ../Doc/library/compileall.rst:267 msgid "" "To force a recompile of all the :file:`.py` files in the :file:`Lib/` " "subdirectory and all its subdirectories::" msgstr "" +"Pour forcer la recompilation de tous les fichiers :file:`.py` dans le " +"dossier :file:`Lib/` et tous ses sous-dossiers ::" #: ../Doc/library/compileall.rst:284 msgid "Module :mod:`py_compile`" -msgstr "" +msgstr "Module :mod:`py_compile`" #: ../Doc/library/compileall.rst:285 msgid "Byte-compile a single source file." -msgstr "" +msgstr "Compiler un fichier source unique." diff --git a/library/concurrent.futures.po b/library/concurrent.futures.po index e19bba0425..da89744a36 100644 --- a/library/concurrent.futures.po +++ b/library/concurrent.futures.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,23 +14,24 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/library/concurrent.futures.rst:2 +#: library/concurrent.futures.rst:2 +#, fuzzy msgid ":mod:`concurrent.futures` --- Launching parallel tasks" -msgstr "" +msgstr ":mod:`concurrent.futures` -- Lancer des tâches en parallèle" -#: ../Doc/library/concurrent.futures.rst:9 +#: library/concurrent.futures.rst:9 msgid "" "**Source code:** :source:`Lib/concurrent/futures/thread.py` and :source:`Lib/" "concurrent/futures/process.py`" msgstr "" -#: ../Doc/library/concurrent.futures.rst:14 +#: library/concurrent.futures.rst:14 msgid "" "The :mod:`concurrent.futures` module provides a high-level interface for " "asynchronously executing callables." msgstr "" -#: ../Doc/library/concurrent.futures.rst:17 +#: library/concurrent.futures.rst:17 msgid "" "The asynchronous execution can be performed with threads, using :class:" "`ThreadPoolExecutor`, or separate processes, using :class:" @@ -38,38 +39,38 @@ msgid "" "by the abstract :class:`Executor` class." msgstr "" -#: ../Doc/library/concurrent.futures.rst:24 +#: library/concurrent.futures.rst:24 msgid "Executor Objects" msgstr "" -#: ../Doc/library/concurrent.futures.rst:28 +#: library/concurrent.futures.rst:28 msgid "" "An abstract class that provides methods to execute calls asynchronously. It " "should not be used directly, but through its concrete subclasses." msgstr "" -#: ../Doc/library/concurrent.futures.rst:33 +#: library/concurrent.futures.rst:33 msgid "" "Schedules the callable, *fn*, to be executed as ``fn(*args **kwargs)`` and " "returns a :class:`Future` object representing the execution of the " "callable. ::" msgstr "" -#: ../Doc/library/concurrent.futures.rst:43 +#: library/concurrent.futures.rst:43 msgid "Similar to :func:`map(func, *iterables) ` except:" msgstr "" -#: ../Doc/library/concurrent.futures.rst:45 +#: library/concurrent.futures.rst:45 msgid "the *iterables* are collected immediately rather than lazily;" msgstr "" -#: ../Doc/library/concurrent.futures.rst:47 +#: library/concurrent.futures.rst:47 msgid "" "*func* is executed asynchronously and several calls to *func* may be made " "concurrently." msgstr "" -#: ../Doc/library/concurrent.futures.rst:50 +#: library/concurrent.futures.rst:50 msgid "" "The returned iterator raises a :exc:`concurrent.futures.TimeoutError` if :" "meth:`~iterator.__next__` is called and the result isn't available after " @@ -78,13 +79,13 @@ msgid "" "is no limit to the wait time." msgstr "" -#: ../Doc/library/concurrent.futures.rst:56 +#: library/concurrent.futures.rst:56 msgid "" "If a *func* call raises an exception, then that exception will be raised " "when its value is retrieved from the iterator." msgstr "" -#: ../Doc/library/concurrent.futures.rst:59 +#: library/concurrent.futures.rst:59 msgid "" "When using :class:`ProcessPoolExecutor`, this method chops *iterables* into " "a number of chunks which it submits to the pool as separate tasks. The " @@ -94,11 +95,11 @@ msgid "" "size of 1. With :class:`ThreadPoolExecutor`, *chunksize* has no effect." msgstr "" -#: ../Doc/library/concurrent.futures.rst:67 +#: library/concurrent.futures.rst:67 msgid "Added the *chunksize* argument." msgstr "" -#: ../Doc/library/concurrent.futures.rst:72 +#: library/concurrent.futures.rst:72 msgid "" "Signal the executor that it should free any resources that it is using when " "the currently pending futures are done executing. Calls to :meth:`Executor." @@ -106,7 +107,7 @@ msgid "" "`RuntimeError`." msgstr "" -#: ../Doc/library/concurrent.futures.rst:77 +#: library/concurrent.futures.rst:77 msgid "" "If *wait* is ``True`` then this method will not return until all the pending " "futures are done executing and the resources associated with the executor " @@ -117,40 +118,40 @@ msgid "" "are done executing." msgstr "" -#: ../Doc/library/concurrent.futures.rst:85 +#: library/concurrent.futures.rst:85 msgid "" "You can avoid having to call this method explicitly if you use the :keyword:" "`with` statement, which will shutdown the :class:`Executor` (waiting as if :" "meth:`Executor.shutdown` were called with *wait* set to ``True``)::" msgstr "" -#: ../Doc/library/concurrent.futures.rst:99 +#: library/concurrent.futures.rst:99 msgid "ThreadPoolExecutor" msgstr "ThreadPoolExecutor" -#: ../Doc/library/concurrent.futures.rst:101 +#: library/concurrent.futures.rst:101 msgid "" ":class:`ThreadPoolExecutor` is an :class:`Executor` subclass that uses a " "pool of threads to execute calls asynchronously." msgstr "" -#: ../Doc/library/concurrent.futures.rst:104 +#: library/concurrent.futures.rst:104 msgid "" "Deadlocks can occur when the callable associated with a :class:`Future` " "waits on the results of another :class:`Future`. For example::" msgstr "" -#: ../Doc/library/concurrent.futures.rst:123 +#: library/concurrent.futures.rst:123 msgid "And::" msgstr "Et ::" -#: ../Doc/library/concurrent.futures.rst:137 +#: library/concurrent.futures.rst:137 msgid "" "An :class:`Executor` subclass that uses a pool of at most *max_workers* " "threads to execute calls asynchronously." msgstr "" -#: ../Doc/library/concurrent.futures.rst:140 +#: library/concurrent.futures.rst:140 msgid "" "*initializer* is an optional callable that is called at the start of each " "worker thread; *initargs* is a tuple of arguments passed to the " @@ -159,7 +160,7 @@ msgid "" "well as any attempt to submit more jobs to the pool." msgstr "" -#: ../Doc/library/concurrent.futures.rst:146 +#: library/concurrent.futures.rst:146 msgid "" "If *max_workers* is ``None`` or not given, it will default to the number of " "processors on the machine, multiplied by ``5``, assuming that :class:" @@ -168,19 +169,18 @@ msgid "" "`ProcessPoolExecutor`." msgstr "" -#: ../Doc/library/concurrent.futures.rst:154 +#: library/concurrent.futures.rst:154 msgid "" "The *thread_name_prefix* argument was added to allow users to control the :" "class:`threading.Thread` names for worker threads created by the pool for " "easier debugging." msgstr "" -#: ../Doc/library/concurrent.futures.rst:159 -#: ../Doc/library/concurrent.futures.rst:252 +#: library/concurrent.futures.rst:159 library/concurrent.futures.rst:253 msgid "Added the *initializer* and *initargs* arguments." msgstr "" -#: ../Doc/library/concurrent.futures.rst:162 +#: library/concurrent.futures.rst:162 msgid "" "Default value of *max_workers* is changed to ``min(32, os.cpu_count() + " "4)``. This default value preserves at least 5 workers for I/O bound tasks. " @@ -188,66 +188,67 @@ msgid "" "And it avoids using very large resources implicitly on many-core machines." msgstr "" -#: ../Doc/library/concurrent.futures.rst:168 +#: library/concurrent.futures.rst:168 msgid "" "ThreadPoolExecutor now reuses idle worker threads before starting " "*max_workers* worker threads too." msgstr "" -#: ../Doc/library/concurrent.futures.rst:175 +#: library/concurrent.futures.rst:175 msgid "ThreadPoolExecutor Example" msgstr "" -#: ../Doc/library/concurrent.futures.rst:207 +#: library/concurrent.futures.rst:207 msgid "ProcessPoolExecutor" msgstr "ProcessPoolExecutor" -#: ../Doc/library/concurrent.futures.rst:209 +#: library/concurrent.futures.rst:209 msgid "" "The :class:`ProcessPoolExecutor` class is an :class:`Executor` subclass that " "uses a pool of processes to execute calls asynchronously. :class:" "`ProcessPoolExecutor` uses the :mod:`multiprocessing` module, which allows " -"it to side-step the :term:`Global Interpreter Lock` but also means that only " -"picklable objects can be executed and returned." +"it to side-step the :term:`Global Interpreter Lock ` but also means that only picklable objects can be executed and " +"returned." msgstr "" -#: ../Doc/library/concurrent.futures.rst:215 +#: library/concurrent.futures.rst:216 msgid "" "The ``__main__`` module must be importable by worker subprocesses. This " "means that :class:`ProcessPoolExecutor` will not work in the interactive " "interpreter." msgstr "" -#: ../Doc/library/concurrent.futures.rst:218 +#: library/concurrent.futures.rst:219 msgid "" "Calling :class:`Executor` or :class:`Future` methods from a callable " "submitted to a :class:`ProcessPoolExecutor` will result in deadlock." msgstr "" -#: ../Doc/library/concurrent.futures.rst:223 +#: library/concurrent.futures.rst:224 msgid "" "An :class:`Executor` subclass that executes calls asynchronously using a " "pool of at most *max_workers* processes. If *max_workers* is ``None`` or " "not given, it will default to the number of processors on the machine. If " -"*max_workers* is lower or equal to ``0``, then a :exc:`ValueError` will be " -"raised. On Windows, *max_workers* must be equal or lower than ``61``. If it " -"is not then :exc:`ValueError` will be raised. If *max_workers* is ``None``, " -"then the default chosen will be at most ``61``, even if more processors are " -"available. *mp_context* can be a multiprocessing context or None. It will be " -"used to launch the workers. If *mp_context* is ``None`` or not given, the " -"default multiprocessing context is used." +"*max_workers* is less than or equal to ``0``, then a :exc:`ValueError` will " +"be raised. On Windows, *max_workers* must be less than or equal to ``61``. " +"If it is not then :exc:`ValueError` will be raised. If *max_workers* is " +"``None``, then the default chosen will be at most ``61``, even if more " +"processors are available. *mp_context* can be a multiprocessing context or " +"None. It will be used to launch the workers. If *mp_context* is ``None`` or " +"not given, the default multiprocessing context is used." msgstr "" -#: ../Doc/library/concurrent.futures.rst:236 +#: library/concurrent.futures.rst:237 msgid "" "*initializer* is an optional callable that is called at the start of each " "worker process; *initargs* is a tuple of arguments passed to the " "initializer. Should *initializer* raise an exception, all currently pending " "jobs will raise a :exc:`~concurrent.futures.process.BrokenProcessPool`, as " -"well any attempt to submit more jobs to the pool." +"well as any attempt to submit more jobs to the pool." msgstr "" -#: ../Doc/library/concurrent.futures.rst:242 +#: library/concurrent.futures.rst:243 msgid "" "When one of the worker processes terminates abruptly, a :exc:" "`BrokenProcessPool` error is now raised. Previously, behaviour was " @@ -255,34 +256,34 @@ msgid "" "or deadlock." msgstr "" -#: ../Doc/library/concurrent.futures.rst:248 +#: library/concurrent.futures.rst:249 msgid "" "The *mp_context* argument was added to allow users to control the " "start_method for worker processes created by the pool." msgstr "" -#: ../Doc/library/concurrent.futures.rst:258 +#: library/concurrent.futures.rst:259 msgid "ProcessPoolExecutor Example" msgstr "" -#: ../Doc/library/concurrent.futures.rst:296 +#: library/concurrent.futures.rst:297 msgid "Future Objects" msgstr "" -#: ../Doc/library/concurrent.futures.rst:298 +#: library/concurrent.futures.rst:299 msgid "" "The :class:`Future` class encapsulates the asynchronous execution of a " "callable. :class:`Future` instances are created by :meth:`Executor.submit`." msgstr "" -#: ../Doc/library/concurrent.futures.rst:303 +#: library/concurrent.futures.rst:304 msgid "" "Encapsulates the asynchronous execution of a callable. :class:`Future` " "instances are created by :meth:`Executor.submit` and should not be created " "directly except for testing." msgstr "" -#: ../Doc/library/concurrent.futures.rst:309 +#: library/concurrent.futures.rst:310 msgid "" "Attempt to cancel the call. If the call is currently being executed or " "finished running and cannot be cancelled then the method will return " @@ -290,22 +291,22 @@ msgid "" "``True``." msgstr "" -#: ../Doc/library/concurrent.futures.rst:316 +#: library/concurrent.futures.rst:317 msgid "Return ``True`` if the call was successfully cancelled." msgstr "" -#: ../Doc/library/concurrent.futures.rst:320 +#: library/concurrent.futures.rst:321 msgid "" "Return ``True`` if the call is currently being executed and cannot be " "cancelled." msgstr "" -#: ../Doc/library/concurrent.futures.rst:325 +#: library/concurrent.futures.rst:326 msgid "" "Return ``True`` if the call was successfully cancelled or finished running." msgstr "" -#: ../Doc/library/concurrent.futures.rst:330 +#: library/concurrent.futures.rst:331 msgid "" "Return the value returned by the call. If the call hasn't yet completed then " "this method will wait up to *timeout* seconds. If the call hasn't completed " @@ -314,18 +315,17 @@ msgid "" "``None``, there is no limit to the wait time." msgstr "" -#: ../Doc/library/concurrent.futures.rst:337 -#: ../Doc/library/concurrent.futures.rst:351 +#: library/concurrent.futures.rst:338 library/concurrent.futures.rst:352 msgid "" "If the future is cancelled before completing then :exc:`.CancelledError` " "will be raised." msgstr "" -#: ../Doc/library/concurrent.futures.rst:340 +#: library/concurrent.futures.rst:341 msgid "If the call raised, this method will raise the same exception." msgstr "" -#: ../Doc/library/concurrent.futures.rst:344 +#: library/concurrent.futures.rst:345 msgid "" "Return the exception raised by the call. If the call hasn't yet completed " "then this method will wait up to *timeout* seconds. If the call hasn't " @@ -334,18 +334,18 @@ msgid "" "*timeout* is not specified or ``None``, there is no limit to the wait time." msgstr "" -#: ../Doc/library/concurrent.futures.rst:354 +#: library/concurrent.futures.rst:355 msgid "If the call completed without raising, ``None`` is returned." msgstr "" -#: ../Doc/library/concurrent.futures.rst:358 +#: library/concurrent.futures.rst:359 msgid "" "Attaches the callable *fn* to the future. *fn* will be called, with the " "future as its only argument, when the future is cancelled or finishes " "running." msgstr "" -#: ../Doc/library/concurrent.futures.rst:362 +#: library/concurrent.futures.rst:363 msgid "" "Added callables are called in the order that they were added and are always " "called in a thread belonging to the process that added them. If the " @@ -354,26 +354,26 @@ msgid "" "behavior is undefined." msgstr "" -#: ../Doc/library/concurrent.futures.rst:368 +#: library/concurrent.futures.rst:369 msgid "" "If the future has already completed or been cancelled, *fn* will be called " "immediately." msgstr "" -#: ../Doc/library/concurrent.futures.rst:371 +#: library/concurrent.futures.rst:372 msgid "" "The following :class:`Future` methods are meant for use in unit tests and :" "class:`Executor` implementations." msgstr "" -#: ../Doc/library/concurrent.futures.rst:376 +#: library/concurrent.futures.rst:377 msgid "" "This method should only be called by :class:`Executor` implementations " "before executing the work associated with the :class:`Future` and by unit " "tests." msgstr "" -#: ../Doc/library/concurrent.futures.rst:380 +#: library/concurrent.futures.rst:381 msgid "" "If the method returns ``False`` then the :class:`Future` was cancelled, i." "e. :meth:`Future.cancel` was called and returned `True`. Any threads " @@ -381,49 +381,47 @@ msgid "" "or :func:`wait`) will be woken up." msgstr "" -#: ../Doc/library/concurrent.futures.rst:385 +#: library/concurrent.futures.rst:386 msgid "" "If the method returns ``True`` then the :class:`Future` was not cancelled " "and has been put in the running state, i.e. calls to :meth:`Future.running` " "will return `True`." msgstr "" -#: ../Doc/library/concurrent.futures.rst:389 +#: library/concurrent.futures.rst:390 msgid "" "This method can only be called once and cannot be called after :meth:`Future." "set_result` or :meth:`Future.set_exception` have been called." msgstr "" -#: ../Doc/library/concurrent.futures.rst:395 +#: library/concurrent.futures.rst:396 msgid "" "Sets the result of the work associated with the :class:`Future` to *result*." msgstr "" -#: ../Doc/library/concurrent.futures.rst:398 -#: ../Doc/library/concurrent.futures.rst:411 +#: library/concurrent.futures.rst:399 library/concurrent.futures.rst:412 msgid "" "This method should only be used by :class:`Executor` implementations and " "unit tests." msgstr "" -#: ../Doc/library/concurrent.futures.rst:401 -#: ../Doc/library/concurrent.futures.rst:414 +#: library/concurrent.futures.rst:402 library/concurrent.futures.rst:415 msgid "" "This method raises :exc:`concurrent.futures.InvalidStateError` if the :class:" "`Future` is already done." msgstr "" -#: ../Doc/library/concurrent.futures.rst:408 +#: library/concurrent.futures.rst:409 msgid "" "Sets the result of the work associated with the :class:`Future` to the :" "class:`Exception` *exception*." msgstr "" -#: ../Doc/library/concurrent.futures.rst:420 +#: library/concurrent.futures.rst:421 msgid "Module Functions" msgstr "" -#: ../Doc/library/concurrent.futures.rst:424 +#: library/concurrent.futures.rst:425 msgid "" "Wait for the :class:`Future` instances (possibly created by different :class:" "`Executor` instances) given by *fs* to complete. Returns a named 2-tuple of " @@ -433,14 +431,14 @@ msgid "" "running futures)." msgstr "" -#: ../Doc/library/concurrent.futures.rst:431 +#: library/concurrent.futures.rst:432 msgid "" "*timeout* can be used to control the maximum number of seconds to wait " "before returning. *timeout* can be an int or float. If *timeout* is not " "specified or ``None``, there is no limit to the wait time." msgstr "" -#: ../Doc/library/concurrent.futures.rst:435 +#: library/concurrent.futures.rst:436 msgid "" "*return_when* indicates when this function should return. It must be one of " "the following constants:" @@ -448,28 +446,28 @@ msgstr "" "*return_when* indique quand la fonction doit se terminer. Il peut prendre " "les valeurs suivantes :" -#: ../Doc/library/concurrent.futures.rst:441 +#: library/concurrent.futures.rst:442 msgid "Constant" msgstr "Constante" -#: ../Doc/library/concurrent.futures.rst:441 +#: library/concurrent.futures.rst:442 msgid "Description" msgstr "Description" -#: ../Doc/library/concurrent.futures.rst:443 +#: library/concurrent.futures.rst:444 msgid ":const:`FIRST_COMPLETED`" msgstr ":const:`FIRST_COMPLETED`" -#: ../Doc/library/concurrent.futures.rst:443 +#: library/concurrent.futures.rst:444 msgid "The function will return when any future finishes or is cancelled." msgstr "" "La fonction se termine lorsque n'importe quel futur se termine ou est annulé." -#: ../Doc/library/concurrent.futures.rst:446 +#: library/concurrent.futures.rst:447 msgid ":const:`FIRST_EXCEPTION`" msgstr ":const:`FIRST_EXCEPTION`" -#: ../Doc/library/concurrent.futures.rst:446 +#: library/concurrent.futures.rst:447 msgid "" "The function will return when any future finishes by raising an exception. " "If no future raises an exception then it is equivalent to :const:" @@ -479,16 +477,16 @@ msgstr "" "exception. Si aucun *futur* ne lève d'exception, équivaut à :const:" "`ALL_COMPLETED`." -#: ../Doc/library/concurrent.futures.rst:452 +#: library/concurrent.futures.rst:453 msgid ":const:`ALL_COMPLETED`" msgstr ":const:`ALL_COMPLETED`" -#: ../Doc/library/concurrent.futures.rst:452 +#: library/concurrent.futures.rst:453 msgid "The function will return when all futures finish or are cancelled." msgstr "" "La fonction se termine lorsque les *futurs* sont tous finis ou annulés." -#: ../Doc/library/concurrent.futures.rst:458 +#: library/concurrent.futures.rst:459 msgid "" "Returns an iterator over the :class:`Future` instances (possibly created by " "different :class:`Executor` instances) given by *fs* that yields futures as " @@ -502,49 +500,49 @@ msgid "" "wait time." msgstr "" -#: ../Doc/library/concurrent.futures.rst:472 +#: library/concurrent.futures.rst:473 msgid ":pep:`3148` -- futures - execute computations asynchronously" msgstr "" -#: ../Doc/library/concurrent.futures.rst:472 +#: library/concurrent.futures.rst:473 msgid "" "The proposal which described this feature for inclusion in the Python " "standard library." msgstr "" -#: ../Doc/library/concurrent.futures.rst:477 +#: library/concurrent.futures.rst:478 msgid "Exception classes" msgstr "" -#: ../Doc/library/concurrent.futures.rst:483 +#: library/concurrent.futures.rst:484 msgid "Raised when a future is cancelled." msgstr "" -#: ../Doc/library/concurrent.futures.rst:487 +#: library/concurrent.futures.rst:488 msgid "Raised when a future operation exceeds the given timeout." msgstr "" -#: ../Doc/library/concurrent.futures.rst:491 +#: library/concurrent.futures.rst:492 msgid "" "Derived from :exc:`RuntimeError`, this exception class is raised when an " "executor is broken for some reason, and cannot be used to submit or execute " "new tasks." msgstr "" -#: ../Doc/library/concurrent.futures.rst:499 +#: library/concurrent.futures.rst:500 msgid "" "Raised when an operation is performed on a future that is not allowed in the " "current state." msgstr "" -#: ../Doc/library/concurrent.futures.rst:508 +#: library/concurrent.futures.rst:509 msgid "" "Derived from :exc:`~concurrent.futures.BrokenExecutor`, this exception class " "is raised when one of the workers of a :class:`ThreadPoolExecutor` has " "failed initializing." msgstr "" -#: ../Doc/library/concurrent.futures.rst:518 +#: library/concurrent.futures.rst:519 msgid "" "Derived from :exc:`~concurrent.futures.BrokenExecutor` (formerly :exc:" "`RuntimeError`), this exception class is raised when one of the workers of " diff --git a/library/configparser.po b/library/configparser.po index fe60b478e7..20c6b6e89a 100644 --- a/library/configparser.po +++ b/library/configparser.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-09 17:54+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,57 +14,72 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/library/configparser.rst:2 +#: library/configparser.rst:2 msgid ":mod:`configparser` --- Configuration file parser" -msgstr "" +msgstr ":mod:`configparser` — Lecture et écriture de fichiers de configuration" -#: ../Doc/library/configparser.rst:14 +#: library/configparser.rst:14 msgid "**Source code:** :source:`Lib/configparser.py`" msgstr "**Code source :** :source:`Lib/configparser.py`" -#: ../Doc/library/configparser.rst:24 +#: library/configparser.rst:24 msgid "" "This module provides the :class:`ConfigParser` class which implements a " "basic configuration language which provides a structure similar to what's " "found in Microsoft Windows INI files. You can use this to write Python " "programs which can be customized by end users easily." msgstr "" +"Ce module fournit la classe :class:`ConfigParser`. Cette classe implémente " +"un langage de configuration basique, proche de ce que l'on peut trouver dans " +"les fichiers *INI* de Microsoft Windows. Vous pouvez utiliser ce module pour " +"écrire des programmes Python qui sont facilement configurables par " +"l'utilisateur final." -#: ../Doc/library/configparser.rst:31 +#: library/configparser.rst:31 msgid "" "This library does *not* interpret or write the value-type prefixes used in " "the Windows Registry extended version of INI syntax." msgstr "" +"Ce module *n'implémente pas* la version étendue de la syntaxe *INI* qui " +"permet de lire ou d'écrire des valeurs dans la base de registre Windows en " +"utilisant divers préfixes." -#: ../Doc/library/configparser.rst:38 +#: library/configparser.rst:38 msgid "Module :mod:`shlex`" -msgstr "" +msgstr "Module :mod:`shlex`" -#: ../Doc/library/configparser.rst:37 +#: library/configparser.rst:37 msgid "" "Support for creating Unix shell-like mini-languages which can be used as an " "alternate format for application configuration files." msgstr "" +"Ce module fournit les outils permettant de créer des mini-langages de " +"programmation ressemblant au shell Unix, qui peuvent être utilisés comme " +"alternative pour les fichiers de configuration d'une application." -#: ../Doc/library/configparser.rst:41 +#: library/configparser.rst:41 msgid "Module :mod:`json`" -msgstr "" +msgstr "Module :mod:`json`" -#: ../Doc/library/configparser.rst:41 +#: library/configparser.rst:41 msgid "" "The json module implements a subset of JavaScript syntax which can also be " "used for this purpose." msgstr "" +"Le module *json* implémente un sous-ensemble de la syntaxe JavaScript, qui " +"peut aussi être utilisée à cet effet." -#: ../Doc/library/configparser.rst:51 +#: library/configparser.rst:51 msgid "Quick Start" -msgstr "" +msgstr "Premiers pas" -#: ../Doc/library/configparser.rst:53 +#: library/configparser.rst:53 msgid "Let's take a very basic configuration file that looks like this:" msgstr "" +"Prenons pour exemple un fichier de configuration très simple ressemblant à " +"ceci :" -#: ../Doc/library/configparser.rst:70 +#: library/configparser.rst:70 msgid "" "The structure of INI files is described `in the following section " "<#supported-ini-file-structure>`_. Essentially, the file consists of " @@ -72,40 +87,62 @@ msgid "" "classes can read and write such files. Let's start by creating the above " "configuration file programmatically." msgstr "" +"La structure des fichiers *INI* est décrite dans la `section suivante " +"<#supported-ini-file-structure>`_. En bref, chaque fichier est constitué de " +"sections, chacune des sections comprenant des clés associées à des valeurs. " +"Les classes du module :mod:`configparser` peuvent écrire et lire de tels " +"fichiers. Commençons par le code qui permet de générer le fichier ci-dessus." -#: ../Doc/library/configparser.rst:94 +#: library/configparser.rst:94 msgid "" "As you can see, we can treat a config parser much like a dictionary. There " "are differences, `outlined later <#mapping-protocol-access>`_, but the " "behavior is very close to what you would expect from a dictionary." msgstr "" +"Comme vous pouvez le voir, nous pouvons manipuler l'instance renvoyée par " +"l'analyse du fichier de configuration comme s'il s'agissait d'un " +"dictionnaire. Il y a des différences, comme `explicité ci-dessous <#mapping-" +"protocol-access>`_, mais le comportement de l'instance est très proche de ce " +"que vous pourriez attendre d'un dictionnaire." -#: ../Doc/library/configparser.rst:98 +#: library/configparser.rst:98 msgid "" "Now that we have created and saved a configuration file, let's read it back " "and explore the data it holds." msgstr "" +"Nous venons de créer et sauvegarder un fichier de configuration. Voyons " +"maintenant comment nous pouvons le lire et accéder aux données qu'il " +"contient." -#: ../Doc/library/configparser.rst:133 +#: library/configparser.rst:133 msgid "" "As we can see above, the API is pretty straightforward. The only bit of " "magic involves the ``DEFAULT`` section which provides default values for all " "other sections [1]_. Note also that keys in sections are case-insensitive " "and stored in lowercase [1]_." msgstr "" +"Comme vous le voyez, l'API est assez simple à utiliser. La seule partie un " +"peu magique concerne la section ``DEFAULT``, qui fournit les valeurs par " +"défaut pour toutes les autres sections [1]_. Notez également que les clés à " +"l’intérieur des sections ne sont pas sensibles à la casse et qu'elles sont " +"stockées en minuscules. [1]_." -#: ../Doc/library/configparser.rst:140 +#: library/configparser.rst:140 msgid "Supported Datatypes" -msgstr "" +msgstr "Types de données prises en charge" -#: ../Doc/library/configparser.rst:142 +#: library/configparser.rst:142 msgid "" "Config parsers do not guess datatypes of values in configuration files, " "always storing them internally as strings. This means that if you need " "other datatypes, you should convert on your own:" msgstr "" +"Les lecteurs de configuration n'essayent jamais de deviner le type des " +"valeurs présentes dans les fichiers de configuration, et elles sont toujours " +"stockées en tant que chaînes de caractères. Ainsi, si vous avez besoin d'un " +"type différent, vous devez effectuer la conversion vous-même :" -#: ../Doc/library/configparser.rst:153 +#: library/configparser.rst:153 msgid "" "Since this task is so common, config parsers provide a range of handy getter " "methods to handle integers, floats and booleans. The last one is the most " @@ -115,26 +152,42 @@ msgid "" "and recognizes Boolean values from ``'yes'``/``'no'``, ``'on'``/``'off'``, " "``'true'``/``'false'`` and ``'1'``/``'0'`` [1]_. For example:" msgstr "" +"Puisque que cette tâche doit être fréquemment accomplie, les lecteurs de " +"configurations fournissent un ensemble d'accesseurs permettant de gérer les " +"entiers, les flottants et les booléens plus facilement. Le cas des booléens " +"est le plus pertinent. En effet, vous ne pouvez pas vous contenter " +"d'utiliser la fonction ``bool()`` directement puisque ``bool('False')`` " +"renvoie ``True``. C'est pourquoi les lecteurs fournissent également la " +"méthode :meth:`~ConfigParser.getboolean`. Cette méthode n'est pas sensible à " +"la casse et interprète correctement les valeurs booléennes associées aux " +"chaînes de caractères comme ``'yes'``-``'no'``, ``'on'``-``'off'``, " +"``'true'``-``'false'`` et ``'1'``-``'0'`` [1]_. Par exemple :" -#: ../Doc/library/configparser.rst:170 +#: library/configparser.rst:170 msgid "" "Apart from :meth:`~ConfigParser.getboolean`, config parsers also provide " "equivalent :meth:`~ConfigParser.getint` and :meth:`~ConfigParser.getfloat` " "methods. You can register your own converters and customize the provided " "ones. [1]_" msgstr "" +"En plus de :meth:`~ConfigParser.getboolean`, les lecteurs de configurations " +"fournissent également des méthodes similaires comme :meth:`~ConfigParser." +"getint` et :meth:`~ConfigParser.getfloat`. Vous pouvez enregistrer vos " +"propres convertisseurs et personnaliser ceux déjà fournis. [1]_" -#: ../Doc/library/configparser.rst:176 +#: library/configparser.rst:176 msgid "Fallback Values" -msgstr "" +msgstr "Valeurs de substitution" -#: ../Doc/library/configparser.rst:178 +#: library/configparser.rst:178 msgid "" "As with a dictionary, you can use a section's :meth:`get` method to provide " "fallback values:" msgstr "" +"Comme pour un dictionnaire, vous pouvez utiliser la méthode :meth:`get` " +"d'une section en spécifiant une valeur de substitution :" -#: ../Doc/library/configparser.rst:191 +#: library/configparser.rst:191 msgid "" "Please note that default values have precedence over fallback values. For " "instance, in our example the ``'CompressionLevel'`` key was specified only " @@ -142,27 +195,39 @@ msgid "" "``'topsecret.server.com'``, we will always get the default, even if we " "specify a fallback:" msgstr "" +"Notez que les valeurs par défaut sont prioritaires par rapport aux valeurs " +"de substitution. Dans note exemple, la valeur de la clé ``CompressionLevel`` " +"était spécifiée uniquement dans la section ``DEFAULT``. Si nous essayons de " +"la récupérer depuis la section ``'topsecret.server.com'``, nous obtenons la " +"valeur par défaut, même en ayant spécifié une valeur de substitution :" -#: ../Doc/library/configparser.rst:202 +#: library/configparser.rst:202 msgid "" "One more thing to be aware of is that the parser-level :meth:`get` method " "provides a custom, more complex interface, maintained for backwards " "compatibility. When using this method, a fallback value can be provided via " "the ``fallback`` keyword-only argument:" msgstr "" +"Il est important de savoir que la méthode :meth:`get` appelée au niveau de " +"l'analyseur fournit une interface particulière et plus complexe, qui est " +"maintenue pour des raisons de rétrocompatibilité. Vous pouvez fournir une " +"valeur de substitution via l'argument obligatoirement nommé ``fallback`` :" -#: ../Doc/library/configparser.rst:213 +#: library/configparser.rst:213 msgid "" "The same ``fallback`` argument can be used with the :meth:`~ConfigParser." "getint`, :meth:`~ConfigParser.getfloat` and :meth:`~ConfigParser.getboolean` " "methods, for example:" msgstr "" +"L'argument ``fallback`` peut être utilisé de la même façon avec les " +"méthodes :meth:`~ConfigParser.getint`, :meth:`~ConfigParser.getfloat` et :" +"meth:`~ConfigParser.getboolean`. Par exemple :" -#: ../Doc/library/configparser.rst:229 +#: library/configparser.rst:229 msgid "Supported INI File Structure" -msgstr "" +msgstr "Structure des fichiers *INI* prise en change" -#: ../Doc/library/configparser.rst:231 +#: library/configparser.rst:231 msgid "" "A configuration file consists of sections, each led by a ``[section]`` " "header, followed by key/value entries separated by a specific string (``=`` " @@ -173,38 +238,61 @@ msgid "" "indented deeper than the first line of the value. Depending on the parser's " "mode, blank lines may be treated as parts of multiline values or ignored." msgstr "" +"Un fichier de configuration est constitué de sections. Chacune des sections " +"commence par un en-tête ``[section]``, suivi d'une liste de définitions clés-" +"valeurs séparées par une chaîne de caractères spécifique (``=`` ou ``:`` par " +"défaut [1]_). Par défaut, les noms des sections sont sensibles à la casse " +"mais pas les clés [1]_. Les caractères d'espacement en début et en fin des " +"clés et des valeurs sont supprimés. Les valeurs peuvent être absentes, " +"auquel cas il est possible d'omettre le délimiteur entre clé et valeur. Les " +"valeurs peuvent s'étendre sur plusieurs lignes, à partir du moment où les " +"lignes supplémentaires sont plus indentées que la première ligne. Les lignes " +"vides peuvent être considérées comme faisant partie des valeurs multi " +"lignes, en fonction de la configuration de l'analyseur." -#: ../Doc/library/configparser.rst:240 +#: library/configparser.rst:240 msgid "" "Configuration files may include comments, prefixed by specific characters " "(``#`` and ``;`` by default [1]_). Comments may appear on their own on an " "otherwise empty line, possibly indented. [1]_" msgstr "" +"Les fichiers de configuration peuvent contenir des commentaires, préfixés " +"par des caractères spécifiques (``#`` et ``;`` par défaut [1]_). Les " +"commentaires peuvent apparaître à l'emplacement d'une ligne vide, et peuvent " +"aussi être indentés. [1]_" -#: ../Doc/library/configparser.rst:244 ../Doc/library/configparser.rst:307 +#: library/configparser.rst:307 msgid "For example:" -msgstr "Par exemple ::" +msgstr "Par exemple :" -#: ../Doc/library/configparser.rst:292 +#: library/configparser.rst:292 msgid "Interpolation of values" -msgstr "" +msgstr "Interpolation des valeurs" -#: ../Doc/library/configparser.rst:294 +#: library/configparser.rst:294 msgid "" "On top of the core functionality, :class:`ConfigParser` supports " "interpolation. This means values can be preprocessed before returning them " "from ``get()`` calls." msgstr "" +"La classe :class:`ConfigParser` prend en charge l’interpolation, en plus des " +"fonctionnalités de base. Cela signifie que les valeurs peuvent être traitées " +"avant d'être renvoyées par les appels aux méthodes ``get()``." -#: ../Doc/library/configparser.rst:302 +#: library/configparser.rst:302 msgid "" "The default implementation used by :class:`ConfigParser`. It enables values " "to contain format strings which refer to other values in the same section, " "or values in the special default section [1]_. Additional default values " "can be provided on initialization." msgstr "" +"Implémentation par défaut utilisée par la classe :class:`ConfigParser`. " +"Celle-ci permet aux valeurs de contenir des chaînes de formatage se référant " +"à d'autres valeurs dans la même section, ou bien à des valeurs dans la " +"section spéciale par défaut [1]_. D'autres valeurs par défaut peuvent être " +"fournies au moment de l'initialisation de cette classe." -#: ../Doc/library/configparser.rst:319 +#: library/configparser.rst:319 msgid "" "In the example above, :class:`ConfigParser` with *interpolation* set to " "``BasicInterpolation()`` would resolve ``%(home_dir)s`` to the value of " @@ -213,15 +301,25 @@ msgid "" "keys used in the chain of references do not have to be specified in any " "specific order in the configuration file." msgstr "" +"Dans l'exemple ci-dessus, une classe :class:`Configparser` dont l'attribut " +"*interpolation* vaut ``BasicInterpolation()`` interprète la chaîne de " +"caractères ``%(home_dir)s`` en utilisant la valeur de la clé ``home_dir`` " +"(``/Users`` dans ce cas). ``%(my_dir)s`` est interprétée comme ``/Users/" +"lumberjack``. Les interpolations sont effectuées à la volée. Ainsi, les clés " +"utilisées comme référence à l’intérieur des chaînes de formatage peuvent " +"être définies dans le fichier de configuration dans n'importe quel ordre." -#: ../Doc/library/configparser.rst:326 +#: library/configparser.rst:326 msgid "" -"With ``interpolation`` set to ``None``, the parser would simply return ``" -"%(my_dir)s/Pictures`` as the value of ``my_pictures`` and ``%(home_dir)s/" +"With ``interpolation`` set to ``None``, the parser would simply return " +"``%(my_dir)s/Pictures`` as the value of ``my_pictures`` and ``%(home_dir)s/" "lumberjack`` as the value of ``my_dir``." msgstr "" +"Si l'attribut ``interpolation`` vaut ``None``, le lecteur renvoie " +"``%(my_dir)s/Pictures`` comme valeur pour ``my_pictures`` et ``%(home_dir)s/" +"lumberjack`` comme valeur pour ``my_dir``." -#: ../Doc/library/configparser.rst:334 +#: library/configparser.rst:334 msgid "" "An alternative handler for interpolation which implements a more advanced " "syntax, used for instance in ``zc.buildout``. Extended interpolation is " @@ -230,30 +328,45 @@ msgid "" "`` part is omitted, interpolation defaults to the current section (and " "possibly the default values from the special section)." msgstr "" +"Autre façon de gérer l'interpolation en utilisant une syntaxe plus avancée, " +"utilisée par exemple par ``zc.buildout``. Cette syntaxe étendue utilise la " +"chaîne de formatage ``{section:option}}`` pour désigner une valeur " +"appartenant à une autre section. L'interpolation peut s'étendre sur " +"plusieurs niveaux. Par commodité, si la partie ``{section}`` est absente, " +"l'interpolation utilise la section courante par défaut (et, le cas échéant, " +"les valeurs de la section par défaut spéciale)." -#: ../Doc/library/configparser.rst:341 +#: library/configparser.rst:341 msgid "" "For example, the configuration specified above with basic interpolation, " "would look like this with extended interpolation:" msgstr "" +"Voici comment transformer la configuration ci-dessus avec la syntaxe " +"d'interpolation étendue :" -#: ../Doc/library/configparser.rst:354 +#: library/configparser.rst:354 msgid "Values from other sections can be fetched as well:" msgstr "" +"Vous pouvez également récupérer des valeurs appartenant aux autres sections :" -#: ../Doc/library/configparser.rst:376 +#: library/configparser.rst:376 msgid "Mapping Protocol Access" -msgstr "" +msgstr "Protocole d'accès associatif" -#: ../Doc/library/configparser.rst:380 +#: library/configparser.rst:380 msgid "" "Mapping protocol access is a generic name for functionality that enables " "using custom objects as if they were dictionaries. In case of :mod:" "`configparser`, the mapping interface implementation is using the " "``parser['section']['option']`` notation." msgstr "" +"Le terme « protocole d'accès associatif » est utilisé pour décrire la " +"fonctionnalité qui permet d'utiliser des objets personnalisés comme s'il " +"s'agissait de dictionnaires. Dans le cas du module :mod:`configparser`, " +"l’implémentation du protocole utilise la notation ``parser['section']" +"['option']``." -#: ../Doc/library/configparser.rst:385 +#: library/configparser.rst:385 msgid "" "``parser['section']`` in particular returns a proxy for the section's data " "in the parser. This means that the values are not copied but they are taken " @@ -261,16 +374,27 @@ msgid "" "values are changed on a section proxy, they are actually mutated in the " "original parser." msgstr "" +"En particulier, ``parser['section']`` renvoie un mandataire vers les données " +"de la section correspondantes dans l'analyseur. Cela signifie que les " +"valeurs ne sont pas copiées, mais prélevées depuis l'analyseur initial à la " +"demande. Plus important encore, lorsque les valeurs sont changées dans un " +"mandataire pour une section, elles sont en réalité changées dans l'analyseur " +"initial." -#: ../Doc/library/configparser.rst:391 +#: library/configparser.rst:391 msgid "" ":mod:`configparser` objects behave as close to actual dictionaries as " "possible. The mapping interface is complete and adheres to the :class:" "`~collections.abc.MutableMapping` ABC. However, there are a few differences " "that should be taken into account:" msgstr "" +"Les objets du module :mod:`configparser` se comportent le plus possible " +"comme des vrais dictionnaires. L'interface est complète et suit les " +"définitions fournies par la classe abstraite :class:`~collections.abc." +"MutableMapping`. Cependant, il faut prendre en compte un certain nombre de " +"différences :" -#: ../Doc/library/configparser.rst:396 +#: library/configparser.rst:396 msgid "" "By default, all keys in sections are accessible in a case-insensitive manner " "[1]_. E.g. ``for option in parser[\"section\"]`` yields only " @@ -278,8 +402,13 @@ msgid "" "default. At the same time, for a section that holds the key ``'a'``, both " "expressions return ``True``::" msgstr "" +"Par défaut, toutes les clés des sections sont accessibles sans respect de la " +"casse [1]_. Par exemple, ``for option in parser[\"section\"]`` renvoie " +"uniquement les clés telles que transformées par la méthode ``optionxform``, " +"c'est-à-dire des clés transformées en minuscules. De même, pour une section " +"contenant la clé ``a``, les deux expressions suivantes renvoient ``True`` ::" -#: ../Doc/library/configparser.rst:404 +#: library/configparser.rst:404 msgid "" "All sections include ``DEFAULTSECT`` values as well which means that ``." "clear()`` on a section may not leave the section visibly empty. This is " @@ -288,31 +417,43 @@ msgid "" "deleting causes the default value to be visible again. Trying to delete a " "default value causes a :exc:`KeyError`." msgstr "" +"Toutes les sections incluent en plus les valeurs de la section " +"``DEFAULTSECT``. Cela signifie qu'appeler ``clear()`` sur une section ne la " +"fera pas forcément apparaître vide. En effet, les valeurs par défaut ne " +"peuvent pas être supprimées de la section (car, techniquement, elles n'y " +"sont pas présentes). Si vous détruisez une valeur par défaut qui a été " +"écrasée dans une section, alors la valeur par défaut sera de nouveau " +"visible. Essayer de détruire une valeur par défaut lève l'exception :exc:" +"`KeyError`." -#: ../Doc/library/configparser.rst:411 +#: library/configparser.rst:411 msgid "``DEFAULTSECT`` cannot be removed from the parser:" -msgstr "" +msgstr "La section ``DEFAULTSECT`` ne peut pas être supprimée ::" -#: ../Doc/library/configparser.rst:413 +#: library/configparser.rst:413 msgid "trying to delete it raises :exc:`ValueError`," -msgstr "" +msgstr "l'exception :exc:`ValueError` est levée si on essaye de la supprimer ;" -#: ../Doc/library/configparser.rst:415 +#: library/configparser.rst:415 msgid "``parser.clear()`` leaves it intact," -msgstr "" +msgstr "appeler ``parser.clear()`` la laisse intacte ;" -#: ../Doc/library/configparser.rst:417 +#: library/configparser.rst:417 msgid "``parser.popitem()`` never returns it." -msgstr "" +msgstr "appeler ```parser.popitem()`` ne la renvoie jamais." -#: ../Doc/library/configparser.rst:419 +#: library/configparser.rst:419 msgid "" "``parser.get(section, option, **kwargs)`` - the second argument is **not** a " "fallback value. Note however that the section-level ``get()`` methods are " "compatible both with the mapping protocol and the classic configparser API." msgstr "" +"Le deuxième argument de ``parser.get(section, option, **kwargs)`` n'est " +"**pas** une valeur de substitution. Notez cependant que les méthodes " +"``get()`` fournies par les sections sont compatibles à la fois avec le " +"protocole associatif et avec l'API classique de *configparser*." -#: ../Doc/library/configparser.rst:423 +#: library/configparser.rst:423 msgid "" "``parser.items()`` is compatible with the mapping protocol (returns a list " "of *section_name*, *section_proxy* pairs including the DEFAULTSECT). " @@ -321,19 +462,29 @@ msgid "" "*value* pairs for a specified ``section``, with all interpolations expanded " "(unless ``raw=True`` is provided)." msgstr "" +"La méthode ``parser.items()`` est compatible avec le protocole d'accès " +"associatif et renvoie une liste de paires *section_name*, *section_proxy*, " +"en incluant la section *DEFAULTSECT*. Cependant, cette méthode peut aussi " +"être appelée avec des arguments : ``parser.items(section, raw, vars)``. Dans " +"ce cas, la méthode renvoie une liste de paires *option*, *value* pour la " +"section spécifiée, en interprétant les interpolations (à moins d'utiliser " +"``raw=True``)." -#: ../Doc/library/configparser.rst:430 +#: library/configparser.rst:430 msgid "" "The mapping protocol is implemented on top of the existing legacy API so " "that subclasses overriding the original interface still should have mappings " "working as expected." msgstr "" +"Le protocole d'accès est implémenté au-dessus de l'ancienne API. Ainsi, les " +"sous-classes qui écrasent des méthodes de l'interface originale se " +"comportent correctement du point de vue du protocole d'accès." -#: ../Doc/library/configparser.rst:436 +#: library/configparser.rst:436 msgid "Customizing Parser Behaviour" -msgstr "" +msgstr "Personnalisation du comportement de l'analyseur" -#: ../Doc/library/configparser.rst:438 +#: library/configparser.rst:438 msgid "" "There are nearly as many INI format variants as there are applications using " "it. :mod:`configparser` goes a long way to provide support for the largest " @@ -341,94 +492,136 @@ msgid "" "dictated by historical background and it's very likely that you will want to " "customize some of the features." msgstr "" +"Il existe pratiquement autant de variations du format *INI* que " +"d'applications qui l'utilisent. Le module :mod:`configparser` fait son " +"possible pour gérer le plus grand nombre de variantes raisonnables du style " +"*INI*. Le comportement par défaut est principalement contraint par des " +"raisons historiques. De ce fait, il est très probable qu'il soit nécessaire " +"de personnaliser certaines des fonctionnalités de ce module." -#: ../Doc/library/configparser.rst:444 +#: library/configparser.rst:444 msgid "" "The most common way to change the way a specific config parser works is to " "use the :meth:`__init__` options:" msgstr "" +"La méthode la plus fréquemment utilisée pour changer la façon dont se " +"comporte un analyseur est d’utiliser les options de la méthode :meth:" +"`__init__` :" -#: ../Doc/library/configparser.rst:447 +#: library/configparser.rst:447 msgid "*defaults*, default value: ``None``" -msgstr "" +msgstr "*defaults*, valeur par défaut : ``None``" -#: ../Doc/library/configparser.rst:449 +#: library/configparser.rst:449 msgid "" "This option accepts a dictionary of key-value pairs which will be initially " "put in the ``DEFAULT`` section. This makes for an elegant way to support " "concise configuration files that don't specify values which are the same as " "the documented default." msgstr "" +"Cette option accepte un dictionnaire de paires clé—valeurs qui seront " +"placées dans la section ``DEFAULT`` initialement. Ceci est une façon " +"élégante de prendre en charge des fichiers de configuration qui n'ont pas " +"besoin de spécifier de valeurs lorsque celles-ci sont identiques aux valeurs " +"par défaut documentées." -#: ../Doc/library/configparser.rst:454 +#: library/configparser.rst:454 msgid "" "Hint: if you want to specify default values for a specific section, use :" "meth:`read_dict` before you read the actual file." msgstr "" +"Conseil : utilisez la méthode :meth:`read_dict` avant de lire le ficher de " +"configuration si vous voulez spécifier des valeurs par défaut pour une " +"section spécifique." -#: ../Doc/library/configparser.rst:457 +#: library/configparser.rst:457 msgid "*dict_type*, default value: :class:`dict`" -msgstr "" +msgstr "*dict_type*, valeur par défaut : :class:`dict`" -#: ../Doc/library/configparser.rst:459 +#: library/configparser.rst:459 msgid "" "This option has a major impact on how the mapping protocol will behave and " "how the written configuration files look. With the standard dictionary, " "every section is stored in the order they were added to the parser. Same " "goes for options within sections." msgstr "" +"Cette option influe de manière importante sur la façon dont le protocole " +"d'accès associatif se comporte et ce à quoi ressemblent les fichiers de " +"configuration une fois écrits. Avec un dictionnaire standard, les sections " +"sont stockées dans l'ordre où elles ont été ajoutées à l'analyseur. Ceci est " +"également vrai pour les options à l'intérieur des sections." -#: ../Doc/library/configparser.rst:464 +#: library/configparser.rst:464 msgid "" "An alternative dictionary type can be used for example to sort sections and " "options on write-back." msgstr "" +"Si vous souhaitez classer les sections et les options lors de l'écriture par " +"exemple, vous pouvez utiliser un type de dictionnaire différent." -#: ../Doc/library/configparser.rst:467 +#: library/configparser.rst:467 msgid "" "Please note: there are ways to add a set of key-value pairs in a single " "operation. When you use a regular dictionary in those operations, the order " "of the keys will be ordered. For example:" msgstr "" +"À noter : il est possible d'ajouter un ensemble de paires clés—valeurs en " +"une seule opération. L'ordre des clés est préservé si vous utilisez un " +"dictionnaire standard pour cela. Par exemple :" -#: ../Doc/library/configparser.rst:489 +#: library/configparser.rst:489 msgid "*allow_no_value*, default value: ``False``" -msgstr "" +msgstr "*allow_no_value*, valeur par défaut : ``False``" -#: ../Doc/library/configparser.rst:491 +#: library/configparser.rst:491 msgid "" "Some configuration files are known to include settings without values, but " "which otherwise conform to the syntax supported by :mod:`configparser`. The " "*allow_no_value* parameter to the constructor can be used to indicate that " "such values should be accepted:" msgstr "" +"Certains fichiers de configurations sont connus pour contenir des options " +"sans valeur associée, tout en se conformant à la syntaxe prise en charge par " +"le module :mod:`configparser` par ailleurs. Pour indiquer que de telles " +"valeurs sont acceptables, utilisez le paramètre *allow_no_value* lors de la " +"construction de l'instance :" -#: ../Doc/library/configparser.rst:526 +#: library/configparser.rst:526 msgid "*delimiters*, default value: ``('=', ':')``" -msgstr "" +msgstr "*delimiters*, valeur par défaut : ``('=', ':')``" -#: ../Doc/library/configparser.rst:528 +#: library/configparser.rst:528 msgid "" "Delimiters are substrings that delimit keys from values within a section. " "The first occurrence of a delimiting substring on a line is considered a " "delimiter. This means values (but not keys) can contain the delimiters." msgstr "" +"Chaînes de caractères qui séparent les clés des valeurs à l'intérieur d'une " +"section. La première occurrence d'une telle chaîne à l'intérieur d'une ligne " +"est considérée comme un délimiteur. Cela signifie que les valeurs peuvent " +"contenir certains des délimiteurs (mais pas les clés)." -#: ../Doc/library/configparser.rst:532 +#: library/configparser.rst:532 msgid "" "See also the *space_around_delimiters* argument to :meth:`ConfigParser." "write`." msgstr "" +"Voir aussi l'argument *space_around_delimiters* de la méthode :meth:" +"`ConfigParser.write`." -#: ../Doc/library/configparser.rst:535 +#: library/configparser.rst:535 msgid "*comment_prefixes*, default value: ``('#', ';')``" msgstr "" +"*comment_prefixes* (préfixes de commentaire) — valeur par défaut : ``('#', " +"';')``" -#: ../Doc/library/configparser.rst:537 +#: library/configparser.rst:537 msgid "*inline_comment_prefixes*, default value: ``None``" msgstr "" +"*inline_comment_prefixes* (préfixes de commentaire en ligne) — valeur par " +"défaut : ``('#', ';')``" -#: ../Doc/library/configparser.rst:539 +#: library/configparser.rst:539 msgid "" "Comment prefixes are strings that indicate the start of a valid comment " "within a config file. *comment_prefixes* are used only on otherwise empty " @@ -437,14 +630,25 @@ msgid "" "well). By default inline comments are disabled and ``'#'`` and ``';'`` are " "used as prefixes for whole line comments." msgstr "" +"Les préfixes de commentaire indiquent le début d'un commentaire valide au " +"sein d'un fichier de configuration. Ils ne peuvent être utilisés qu'à " +"l'emplacement d'une ligne vide (potentiellement indentée). En revanche, les " +"préfixes de commentaires en ligne peuvent être utilisés après n'importe " +"quelle valeur valide (comme les noms des sections, les options et les lignes " +"vides). Par défaut, les commentaires en ligne sont désactivés et les " +"préfixes utilisés pour les commentaires à l'emplacement d'une ligne vide " +"sont `'#'`` et ``';'``." -#: ../Doc/library/configparser.rst:546 +#: library/configparser.rst:546 msgid "" "In previous versions of :mod:`configparser` behaviour matched " "``comment_prefixes=('#',';')`` and ``inline_comment_prefixes=(';',)``." msgstr "" +"Les précédentes versions du module :mod:`configparser` se comportent comme " +"en utilisant ``comment_prefixes=('#',';')`` et " +"``inline_comment_prefixes=(';',)``." -#: ../Doc/library/configparser.rst:550 +#: library/configparser.rst:550 msgid "" "Please note that config parsers don't support escaping of comment prefixes " "so using *inline_comment_prefixes* may prevent users from specifying option " @@ -453,30 +657,44 @@ msgid "" "storing comment prefix characters at the beginning of a line in multiline " "values is to interpolate the prefix, for example::" msgstr "" +"Notez que les analyseurs ne prennent pas en charge l'échappement des " +"préfixes de commentaires. Ainsi, l'utilisation de *inline_comment_prefixes* " +"peut empêcher les utilisateurs de spécifier des valeurs qui contiennent des " +"caractères utilisés comme préfixe de commentaire. Dans le doute, il est " +"recommandé de ne pas utiliser *inline_comment_prefixes*. Dans tous les cas, " +"la seule façon de stocker des préfixes de commentaires au début d'une valeur " +"multi lignes est d'interpoler ceux-ci, par exemple ::" -#: ../Doc/library/configparser.rst:596 +#: library/configparser.rst:596 msgid "*strict*, default value: ``True``" -msgstr "" +msgstr "*scrict*, valeur par défaut : ``True``" -#: ../Doc/library/configparser.rst:598 +#: library/configparser.rst:598 msgid "" "When set to ``True``, the parser will not allow for any section or option " "duplicates while reading from a single source (using :meth:`read_file`, :" "meth:`read_string` or :meth:`read_dict`). It is recommended to use strict " "parsers in new applications." msgstr "" +"Quand la valeur ``True`` est spécifiée, le parseur refuse toute section ou " +"option dupliquée lors de la lecture d'une source unique (lorsque :meth:" +"`read_file`, :meth:`read_string` ou :meth:`read_dict` sont utilisées). Il " +"est recommandé d'utiliser un mode de fonctionnement strict pour les " +"analyseurs employés par de nouvelles applications." -#: ../Doc/library/configparser.rst:603 +#: library/configparser.rst:603 msgid "" "In previous versions of :mod:`configparser` behaviour matched " "``strict=False``." msgstr "" +"Les versions précédentes du module :mod:`configparser` se comportent comme " +"en utilisant ``strict=False``." -#: ../Doc/library/configparser.rst:607 +#: library/configparser.rst:607 msgid "*empty_lines_in_values*, default value: ``True``" -msgstr "" +msgstr "*empty_lines_in_values*, valeur par défaut : ``True``" -#: ../Doc/library/configparser.rst:609 +#: library/configparser.rst:609 msgid "" "In config parsers, values can span multiple lines as long as they are " "indented more than the key that holds them. By default parsers also let " @@ -485,8 +703,15 @@ msgid "" "when configuration files get big and complex, it is easy for the user to " "lose track of the file structure. Take for instance:" msgstr "" +"Du point de vue des analyseurs, les valeurs peuvent s'étendre sur plusieurs " +"lignes à partir du moment où elles sont plus indentées que la clé qui les " +"contient. Par défaut les analyseurs autorisent les lignes vides à faire " +"partie de telles valeurs. Dans le même temps, les clés elles-mêmes peuvent " +"être indentées de façon à rendre le fichier plus lisible. En conséquence, il " +"est probable que l'utilisateur perde de vue la structure du fichier lorsque " +"celui-ci devient long et complexe. Prenez par exemple :" -#: ../Doc/library/configparser.rst:624 +#: library/configparser.rst:624 msgid "" "This can be especially problematic for the user to see if she's using a " "proportional font to edit the file. That is why when your application does " @@ -494,32 +719,40 @@ msgid "" "This will make empty lines split keys every time. In the example above, it " "would produce two keys, ``key`` and ``this``." msgstr "" +"Ceci est particulièrement problématique si l'utilisateur a configuré son " +"éditeur pour utiliser une police à chasse variable. C'est pourquoi il est " +"conseillé de ne pas prendre en charge les valeurs avec des lignes vides, à " +"moins que votre application en ait besoin. Dans ce cas, les lignes vides " +"sont toujours interprétées comme séparant des clés. Dans l'exemple ci-" +"dessus, cela produit deux clés : ``key`` et ``this``." -#: ../Doc/library/configparser.rst:630 +#: library/configparser.rst:630 msgid "" -"*default_section*, default value: ``configparser.DEFAULTSECT`` (that is: ``" -"\"DEFAULT\"``)" +"*default_section*, default value: ``configparser.DEFAULTSECT`` (that is: " +"``\"DEFAULT\"``)" msgstr "" +"*default_section*, valeur par défaut : ``configparser.DEFAULTSECT`` " +"(autrement dit : ``\"DEFAULT\"``)" -#: ../Doc/library/configparser.rst:633 +#: library/configparser.rst:633 msgid "" "The convention of allowing a special section of default values for other " "sections or interpolation purposes is a powerful concept of this library, " "letting users create complex declarative configurations. This section is " "normally called ``\"DEFAULT\"`` but this can be customized to point to any " -"other valid section name. Some typical values include: ``\"general\"`` or ``" -"\"common\"``. The name provided is used for recognizing default sections " +"other valid section name. Some typical values include: ``\"general\"`` or " +"``\"common\"``. The name provided is used for recognizing default sections " "when reading from any source and is used when writing configuration back to " "a file. Its current value can be retrieved using the ``parser_instance." "default_section`` attribute and may be modified at runtime (i.e. to convert " "files from one format to another)." msgstr "" -#: ../Doc/library/configparser.rst:644 +#: library/configparser.rst:644 msgid "*interpolation*, default value: ``configparser.BasicInterpolation``" msgstr "" -#: ../Doc/library/configparser.rst:646 +#: library/configparser.rst:646 msgid "" "Interpolation behaviour may be customized by providing a custom handler " "through the *interpolation* argument. ``None`` can be used to turn off " @@ -529,11 +762,11 @@ msgid "" "`RawConfigParser` has a default value of ``None``." msgstr "" -#: ../Doc/library/configparser.rst:653 +#: library/configparser.rst:653 msgid "*converters*, default value: not set" msgstr "" -#: ../Doc/library/configparser.rst:655 +#: library/configparser.rst:655 msgid "" "Config parsers provide option value getters that perform type conversion. " "By default :meth:`~ConfigParser.getint`, :meth:`~ConfigParser.getfloat`, " @@ -547,7 +780,7 @@ msgid "" "``parser_instance['section'].getdecimal('key', 0)``." msgstr "" -#: ../Doc/library/configparser.rst:666 +#: library/configparser.rst:666 msgid "" "If the converter needs to access the state of the parser, it can be " "implemented as a method on a config parser subclass. If the name of this " @@ -555,14 +788,14 @@ msgid "" "the dict-compatible form (see the ``getdecimal()`` example above)." msgstr "" -#: ../Doc/library/configparser.rst:671 +#: library/configparser.rst:671 msgid "" "More advanced customization may be achieved by overriding default values of " "these parser attributes. The defaults are defined on the classes, so they " "may be overridden by subclasses or by attribute assignment." msgstr "" -#: ../Doc/library/configparser.rst:677 +#: library/configparser.rst:677 msgid "" "By default when using :meth:`~ConfigParser.getboolean`, config parsers " "consider the following values ``True``: ``'1'``, ``'yes'``, ``'true'``, " @@ -570,14 +803,20 @@ msgid "" "``'off'``. You can override this by specifying a custom dictionary of " "strings and their Boolean outcomes. For example:" msgstr "" +"Par défaut, la méthode :meth:`~ConfigParser.getboolean` considère les " +"valeurs suivantes comme vraies : `'1'``, ``'yes'``, ``'true'``, ``'on'``, et " +"les valeurs suivantes comme fausses : ``'0'``, ``'no'``, ``'false'``, " +"``'off'``. Vous pouvez changer ce comportement en spécifiant votre propre " +"dictionnaire associant des chaînes de caractères à des valeurs booléennes. " +"Par exemple :" -#: ../Doc/library/configparser.rst:695 +#: library/configparser.rst:695 msgid "" "Other typical Boolean pairs include ``accept``/``reject`` or ``enabled``/" "``disabled``." msgstr "" -#: ../Doc/library/configparser.rst:700 +#: library/configparser.rst:701 msgid "" "This method transforms option names on every read, get, or set operation. " "The default converts the name to lowercase. This also means that when a " @@ -585,14 +824,14 @@ msgid "" "method if that's unsuitable. For example:" msgstr "" -#: ../Doc/library/configparser.rst:730 +#: library/configparser.rst:731 msgid "" "The optionxform function transforms option names to a canonical form. This " "should be an idempotent function: if the name is already in canonical form, " "it should be returned unchanged." msgstr "" -#: ../Doc/library/configparser.rst:737 +#: library/configparser.rst:738 msgid "" "A compiled regular expression used to parse section headers. The default " "matches ``[section]`` to the name ``\"section\"``. Whitespace is considered " @@ -601,18 +840,18 @@ msgid "" "example:" msgstr "" -#: ../Doc/library/configparser.rst:765 +#: library/configparser.rst:766 msgid "" "While ConfigParser objects also use an ``OPTCRE`` attribute for recognizing " "option lines, it's not recommended to override it because that would " "interfere with constructor options *allow_no_value* and *delimiters*." msgstr "" -#: ../Doc/library/configparser.rst:771 +#: library/configparser.rst:772 msgid "Legacy API Examples" msgstr "" -#: ../Doc/library/configparser.rst:773 +#: library/configparser.rst:774 msgid "" "Mainly because of backwards compatibility concerns, :mod:`configparser` " "provides also a legacy API with explicit ``get``/``set`` methods. While " @@ -621,29 +860,29 @@ msgid "" "advanced, low-level and downright counterintuitive." msgstr "" -#: ../Doc/library/configparser.rst:779 +#: library/configparser.rst:780 msgid "An example of writing to a configuration file::" msgstr "" -#: ../Doc/library/configparser.rst:802 +#: library/configparser.rst:803 msgid "An example of reading the configuration file again::" msgstr "" -#: ../Doc/library/configparser.rst:820 +#: library/configparser.rst:821 msgid "To get interpolation, use :class:`ConfigParser`::" msgstr "" -#: ../Doc/library/configparser.rst:853 +#: library/configparser.rst:854 msgid "" "Default values are available in both types of ConfigParsers. They are used " "in interpolation if an option used is not defined elsewhere. ::" msgstr "" -#: ../Doc/library/configparser.rst:871 +#: library/configparser.rst:872 msgid "ConfigParser Objects" msgstr "" -#: ../Doc/library/configparser.rst:875 +#: library/configparser.rst:876 msgid "" "The main configuration parser. When *defaults* is given, it is initialized " "into the dictionary of intrinsic defaults. When *dict_type* is given, it " @@ -651,7 +890,7 @@ msgid "" "the options within a section, and for the default values." msgstr "" -#: ../Doc/library/configparser.rst:880 +#: library/configparser.rst:881 msgid "" "When *delimiters* is given, it is used as the set of substrings that divide " "keys from values. When *comment_prefixes* is given, it will be used as the " @@ -660,7 +899,7 @@ msgid "" "as the set of substrings that prefix comments in non-empty lines." msgstr "" -#: ../Doc/library/configparser.rst:886 +#: library/configparser.rst:887 msgid "" "When *strict* is ``True`` (the default), the parser won't allow for any " "section or option duplicates while reading from a single source (file, " @@ -673,7 +912,7 @@ msgid "" "without the trailing delimiter." msgstr "" -#: ../Doc/library/configparser.rst:896 +#: library/configparser.rst:897 msgid "" "When *default_section* is given, it specifies the name for the special " "section holding default values for other sections and interpolation purposes " @@ -681,7 +920,7 @@ msgid "" "on runtime using the ``default_section`` instance attribute." msgstr "" -#: ../Doc/library/configparser.rst:901 +#: library/configparser.rst:902 msgid "" "Interpolation behaviour may be customized by providing a custom handler " "through the *interpolation* argument. ``None`` can be used to turn off " @@ -690,7 +929,7 @@ msgid "" "`dedicated documentation section <#interpolation-of-values>`_." msgstr "" -#: ../Doc/library/configparser.rst:907 +#: library/configparser.rst:908 msgid "" "All option names used in interpolation will be passed through the :meth:" "`optionxform` method just like any other option name reference. For " @@ -699,7 +938,7 @@ msgid "" "%(BAR)s`` are equivalent." msgstr "" -#: ../Doc/library/configparser.rst:913 +#: library/configparser.rst:914 msgid "" "When *converters* is given, it should be a dictionary where each key " "represents the name of a type converter and each value is a callable " @@ -708,44 +947,44 @@ msgid "" "object and section proxies." msgstr "" -#: ../Doc/library/configparser.rst:919 +#: library/configparser.rst:920 msgid "The default *dict_type* is :class:`collections.OrderedDict`." msgstr "" -#: ../Doc/library/configparser.rst:922 +#: library/configparser.rst:923 msgid "" "*allow_no_value*, *delimiters*, *comment_prefixes*, *strict*, " "*empty_lines_in_values*, *default_section* and *interpolation* were added." msgstr "" -#: ../Doc/library/configparser.rst:927 +#: library/configparser.rst:928 msgid "The *converters* argument was added." msgstr "" -#: ../Doc/library/configparser.rst:930 +#: library/configparser.rst:931 msgid "" "The *defaults* argument is read with :meth:`read_dict()`, providing " "consistent behavior across the parser: non-string keys and values are " "implicitly converted to strings." msgstr "" -#: ../Doc/library/configparser.rst:935 ../Doc/library/configparser.rst:1213 +#: library/configparser.rst:1214 msgid "" "The default *dict_type* is :class:`dict`, since it now preserves insertion " "order." msgstr "" -#: ../Doc/library/configparser.rst:941 +#: library/configparser.rst:942 msgid "Return a dictionary containing the instance-wide defaults." msgstr "" -#: ../Doc/library/configparser.rst:946 +#: library/configparser.rst:947 msgid "" "Return a list of the sections available; the *default section* is not " "included in the list." msgstr "" -#: ../Doc/library/configparser.rst:952 +#: library/configparser.rst:953 msgid "" "Add a section named *section* to the instance. If a section by the given " "name already exists, :exc:`DuplicateSectionError` is raised. If the " @@ -753,34 +992,34 @@ msgid "" "the section must be a string; if not, :exc:`TypeError` is raised." msgstr "" -#: ../Doc/library/configparser.rst:957 +#: library/configparser.rst:958 msgid "Non-string section names raise :exc:`TypeError`." msgstr "" -#: ../Doc/library/configparser.rst:963 +#: library/configparser.rst:964 msgid "" "Indicates whether the named *section* is present in the configuration. The " "*default section* is not acknowledged." msgstr "" -#: ../Doc/library/configparser.rst:969 +#: library/configparser.rst:970 msgid "Return a list of options available in the specified *section*." msgstr "" -#: ../Doc/library/configparser.rst:974 +#: library/configparser.rst:975 msgid "" "If the given *section* exists, and contains the given *option*, return :" "const:`True`; otherwise return :const:`False`. If the specified *section* " "is :const:`None` or an empty string, DEFAULT is assumed." msgstr "" -#: ../Doc/library/configparser.rst:981 +#: library/configparser.rst:982 msgid "" "Attempt to read and parse an iterable of filenames, returning a list of " "filenames which were successfully parsed." msgstr "" -#: ../Doc/library/configparser.rst:984 +#: library/configparser.rst:985 msgid "" "If *filenames* is a string, a :class:`bytes` object or a :term:`path-like " "object`, it is treated as a single filename. If a file named in *filenames* " @@ -791,7 +1030,7 @@ msgid "" "be read." msgstr "" -#: ../Doc/library/configparser.rst:993 +#: library/configparser.rst:994 msgid "" "If none of the named files exist, the :class:`ConfigParser` instance will " "contain an empty dataset. An application which requires initial values to " @@ -799,49 +1038,52 @@ msgid "" "`read_file` before calling :meth:`read` for any optional files::" msgstr "" -#: ../Doc/library/configparser.rst:1006 +#: library/configparser.rst:1007 msgid "" "The *encoding* parameter. Previously, all files were read using the default " "encoding for :func:`open`." msgstr "" -#: ../Doc/library/configparser.rst:1010 +#: library/configparser.rst:1011 +#, fuzzy msgid "The *filenames* parameter accepts a :term:`path-like object`." msgstr "" +"Le paramètre *filename* accepte un objet chemin-compatible :term:`path-like " +"object`." -#: ../Doc/library/configparser.rst:1013 +#: library/configparser.rst:1014 msgid "The *filenames* parameter accepts a :class:`bytes` object." msgstr "" -#: ../Doc/library/configparser.rst:1019 +#: library/configparser.rst:1020 msgid "" "Read and parse configuration data from *f* which must be an iterable " "yielding Unicode strings (for example files opened in text mode)." msgstr "" -#: ../Doc/library/configparser.rst:1022 +#: library/configparser.rst:1023 msgid "" "Optional argument *source* specifies the name of the file being read. If " "not given and *f* has a :attr:`name` attribute, that is used for *source*; " "the default is ``''``." msgstr "" -#: ../Doc/library/configparser.rst:1026 +#: library/configparser.rst:1027 msgid "Replaces :meth:`readfp`." msgstr "" -#: ../Doc/library/configparser.rst:1031 +#: library/configparser.rst:1032 msgid "Parse configuration data from a string." msgstr "" -#: ../Doc/library/configparser.rst:1033 +#: library/configparser.rst:1034 msgid "" "Optional argument *source* specifies a context-specific name of the string " "passed. If not given, ``''`` is used. This should commonly be a " "filesystem path or a URL." msgstr "" -#: ../Doc/library/configparser.rst:1042 +#: library/configparser.rst:1043 msgid "" "Load configuration from any object that provides a dict-like ``items()`` " "method. Keys are section names, values are dictionaries with keys and " @@ -850,17 +1092,17 @@ msgid "" "automatically converted to strings." msgstr "" -#: ../Doc/library/configparser.rst:1048 +#: library/configparser.rst:1049 msgid "" "Optional argument *source* specifies a context-specific name of the " "dictionary passed. If not given, ```` is used." msgstr "" -#: ../Doc/library/configparser.rst:1051 +#: library/configparser.rst:1052 msgid "This method can be used to copy state between parsers." msgstr "" -#: ../Doc/library/configparser.rst:1058 +#: library/configparser.rst:1059 msgid "" "Get an *option* value for the named *section*. If *vars* is provided, it " "must be a dictionary. The *option* is looked up in *vars* (if provided), " @@ -869,35 +1111,35 @@ msgid "" "provided as a *fallback* value." msgstr "" -#: ../Doc/library/configparser.rst:1064 +#: library/configparser.rst:1065 msgid "" "All the ``'%'`` interpolations are expanded in the return values, unless the " "*raw* argument is true. Values for interpolation keys are looked up in the " "same manner as the option." msgstr "" -#: ../Doc/library/configparser.rst:1068 +#: library/configparser.rst:1069 msgid "" "Arguments *raw*, *vars* and *fallback* are keyword only to protect users " "from trying to use the third argument as the *fallback* fallback (especially " "when using the mapping protocol)." msgstr "" -#: ../Doc/library/configparser.rst:1076 +#: library/configparser.rst:1077 msgid "" "A convenience method which coerces the *option* in the specified *section* " "to an integer. See :meth:`get` for explanation of *raw*, *vars* and " "*fallback*." msgstr "" -#: ../Doc/library/configparser.rst:1083 +#: library/configparser.rst:1084 msgid "" "A convenience method which coerces the *option* in the specified *section* " "to a floating point number. See :meth:`get` for explanation of *raw*, " "*vars* and *fallback*." msgstr "" -#: ../Doc/library/configparser.rst:1090 +#: library/configparser.rst:1091 msgid "" "A convenience method which coerces the *option* in the specified *section* " "to a Boolean value. Note that the accepted values for the option are " @@ -909,34 +1151,34 @@ msgid "" "*fallback*." msgstr "" -#: ../Doc/library/configparser.rst:1103 +#: library/configparser.rst:1104 msgid "" "When *section* is not given, return a list of *section_name*, " "*section_proxy* pairs, including DEFAULTSECT." msgstr "" -#: ../Doc/library/configparser.rst:1106 +#: library/configparser.rst:1107 msgid "" "Otherwise, return a list of *name*, *value* pairs for the options in the " "given *section*. Optional arguments have the same meaning as for the :meth:" "`get` method." msgstr "" -#: ../Doc/library/configparser.rst:1110 +#: library/configparser.rst:1111 msgid "" "Items present in *vars* no longer appear in the result. The previous " "behaviour mixed actual parser options with variables provided for " "interpolation." msgstr "" -#: ../Doc/library/configparser.rst:1118 +#: library/configparser.rst:1119 msgid "" "If the given section exists, set the given option to the specified value; " "otherwise raise :exc:`NoSectionError`. *option* and *value* must be " "strings; if not, :exc:`TypeError` is raised." msgstr "" -#: ../Doc/library/configparser.rst:1125 +#: library/configparser.rst:1126 msgid "" "Write a representation of the configuration to the specified :term:`file " "object`, which must be opened in text mode (accepting strings). This " @@ -945,20 +1187,20 @@ msgid "" "surrounded by spaces." msgstr "" -#: ../Doc/library/configparser.rst:1134 +#: library/configparser.rst:1135 msgid "" "Remove the specified *option* from the specified *section*. If the section " "does not exist, raise :exc:`NoSectionError`. If the option existed to be " "removed, return :const:`True`; otherwise return :const:`False`." msgstr "" -#: ../Doc/library/configparser.rst:1142 +#: library/configparser.rst:1143 msgid "" "Remove the specified *section* from the configuration. If the section in " "fact existed, return ``True``. Otherwise return ``False``." msgstr "" -#: ../Doc/library/configparser.rst:1148 +#: library/configparser.rst:1149 msgid "" "Transforms the option name *option* as found in an input file or as passed " "in by client code to the form that should be used in the internal " @@ -967,7 +1209,7 @@ msgid "" "of this name on instances to affect this behavior." msgstr "" -#: ../Doc/library/configparser.rst:1154 +#: library/configparser.rst:1155 msgid "" "You don't need to subclass the parser to use this method, you can also set " "it on an instance, to a function that takes a string argument and returns a " @@ -975,46 +1217,46 @@ msgid "" "sensitive::" msgstr "" -#: ../Doc/library/configparser.rst:1162 +#: library/configparser.rst:1163 msgid "" "Note that when reading configuration files, whitespace around the option " "names is stripped before :meth:`optionxform` is called." msgstr "" -#: ../Doc/library/configparser.rst:1168 +#: library/configparser.rst:1169 msgid "Use :meth:`read_file` instead." msgstr "" -#: ../Doc/library/configparser.rst:1171 +#: library/configparser.rst:1172 msgid "" ":meth:`readfp` now iterates on *fp* instead of calling ``fp.readline()``." msgstr "" -#: ../Doc/library/configparser.rst:1174 +#: library/configparser.rst:1175 msgid "" "For existing code calling :meth:`readfp` with arguments which don't support " "iteration, the following generator may be used as a wrapper around the file-" "like object::" msgstr "" -#: ../Doc/library/configparser.rst:1184 +#: library/configparser.rst:1185 msgid "" "Instead of ``parser.readfp(fp)`` use ``parser." "read_file(readline_generator(fp))``." msgstr "" -#: ../Doc/library/configparser.rst:1190 +#: library/configparser.rst:1191 msgid "" "The maximum depth for recursive interpolation for :meth:`get` when the *raw* " "parameter is false. This is relevant only when the default *interpolation* " "is used." msgstr "" -#: ../Doc/library/configparser.rst:1198 +#: library/configparser.rst:1199 msgid "RawConfigParser Objects" msgstr "" -#: ../Doc/library/configparser.rst:1208 +#: library/configparser.rst:1209 msgid "" "Legacy variant of the :class:`ConfigParser`. It has interpolation disabled " "by default and allows for non-string section names, option names, and values " @@ -1022,27 +1264,27 @@ msgid "" "``defaults=`` keyword argument handling." msgstr "" -#: ../Doc/library/configparser.rst:1218 +#: library/configparser.rst:1219 msgid "" "Consider using :class:`ConfigParser` instead which checks types of the " "values to be stored internally. If you don't want interpolation, you can " "use ``ConfigParser(interpolation=None)``." msgstr "" -#: ../Doc/library/configparser.rst:1225 +#: library/configparser.rst:1226 msgid "" "Add a section named *section* to the instance. If a section by the given " "name already exists, :exc:`DuplicateSectionError` is raised. If the " "*default section* name is passed, :exc:`ValueError` is raised." msgstr "" -#: ../Doc/library/configparser.rst:1229 +#: library/configparser.rst:1230 msgid "" "Type of *section* is not checked which lets users create non-string named " "sections. This behaviour is unsupported and may cause internal errors." msgstr "" -#: ../Doc/library/configparser.rst:1235 +#: library/configparser.rst:1236 msgid "" "If the given section exists, set the given option to the specified value; " "otherwise raise :exc:`NoSectionError`. While it is possible to use :class:" @@ -1052,7 +1294,7 @@ msgid "" "string values." msgstr "" -#: ../Doc/library/configparser.rst:1242 +#: library/configparser.rst:1243 msgid "" "This method lets users assign non-string values to keys internally. This " "behaviour is unsupported and will cause errors when attempting to write to a " @@ -1060,32 +1302,32 @@ msgid "" "not allow such assignments to take place." msgstr "" -#: ../Doc/library/configparser.rst:1249 +#: library/configparser.rst:1250 msgid "Exceptions" msgstr "Exceptions" -#: ../Doc/library/configparser.rst:1253 +#: library/configparser.rst:1254 msgid "Base class for all other :mod:`configparser` exceptions." msgstr "" -#: ../Doc/library/configparser.rst:1258 +#: library/configparser.rst:1259 msgid "Exception raised when a specified section is not found." msgstr "" -#: ../Doc/library/configparser.rst:1263 +#: library/configparser.rst:1264 msgid "" "Exception raised if :meth:`add_section` is called with the name of a section " "that is already present or in strict parsers when a section if found more " "than once in a single input file, string or dictionary." msgstr "" -#: ../Doc/library/configparser.rst:1267 +#: library/configparser.rst:1268 msgid "" "Optional ``source`` and ``lineno`` attributes and arguments to :meth:" "`__init__` were added." msgstr "" -#: ../Doc/library/configparser.rst:1274 +#: library/configparser.rst:1275 msgid "" "Exception raised by strict parsers if a single option appears twice during " "reading from a single file, string or dictionary. This catches misspellings " @@ -1093,58 +1335,58 @@ msgid "" "representing the same case-insensitive configuration key." msgstr "" -#: ../Doc/library/configparser.rst:1282 +#: library/configparser.rst:1283 msgid "" "Exception raised when a specified option is not found in the specified " "section." msgstr "" -#: ../Doc/library/configparser.rst:1288 +#: library/configparser.rst:1289 msgid "" "Base class for exceptions raised when problems occur performing string " "interpolation." msgstr "" -#: ../Doc/library/configparser.rst:1294 +#: library/configparser.rst:1295 msgid "" "Exception raised when string interpolation cannot be completed because the " "number of iterations exceeds :const:`MAX_INTERPOLATION_DEPTH`. Subclass of :" "exc:`InterpolationError`." msgstr "" -#: ../Doc/library/configparser.rst:1301 +#: library/configparser.rst:1302 msgid "" "Exception raised when an option referenced from a value does not exist. " "Subclass of :exc:`InterpolationError`." msgstr "" -#: ../Doc/library/configparser.rst:1307 +#: library/configparser.rst:1308 msgid "" "Exception raised when the source text into which substitutions are made does " "not conform to the required syntax. Subclass of :exc:`InterpolationError`." msgstr "" -#: ../Doc/library/configparser.rst:1313 +#: library/configparser.rst:1314 msgid "" "Exception raised when attempting to parse a file which has no section " "headers." msgstr "" -#: ../Doc/library/configparser.rst:1319 +#: library/configparser.rst:1320 msgid "Exception raised when errors occur attempting to parse a file." msgstr "" -#: ../Doc/library/configparser.rst:1321 +#: library/configparser.rst:1322 msgid "" "The ``filename`` attribute and :meth:`__init__` argument were renamed to " "``source`` for consistency." msgstr "" -#: ../Doc/library/configparser.rst:1327 +#: library/configparser.rst:1328 msgid "Footnotes" msgstr "Notes" -#: ../Doc/library/configparser.rst:1328 +#: library/configparser.rst:1329 msgid "" "Config parsers allow for heavy customization. If you are interested in " "changing the behaviour outlined by the footnote reference, consult the " diff --git a/library/contextlib.po b/library/contextlib.po index b594231a75..a85c46d967 100644 --- a/library/contextlib.po +++ b/library/contextlib.po @@ -15,18 +15,18 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.2.1\n" -#: ../Doc/library/contextlib.rst:2 +#: library/contextlib.rst:2 msgid "" ":mod:`!contextlib` --- Utilities for :keyword:`!with`\\ -statement contexts" msgstr "" ":mod:`!contextlib` — Utilitaires pour les contextes s'appuyant sur " "l'instruction :keyword:`!with`" -#: ../Doc/library/contextlib.rst:7 +#: library/contextlib.rst:7 msgid "**Source code:** :source:`Lib/contextlib.py`" msgstr "**Code source :** :source:`Lib/contextlib.py`" -#: ../Doc/library/contextlib.rst:11 +#: library/contextlib.rst:11 msgid "" "This module provides utilities for common tasks involving the :keyword:" "`with` statement. For more information see also :ref:`typecontextmanager` " @@ -36,15 +36,15 @@ msgstr "" "keyword:`with`. Pour plus d'informations voir aussi :ref:" "`typecontextmanager` et :ref:`context-managers`." -#: ../Doc/library/contextlib.rst:17 +#: library/contextlib.rst:17 msgid "Utilities" msgstr "Utilitaires" -#: ../Doc/library/contextlib.rst:19 +#: library/contextlib.rst:19 msgid "Functions and classes provided:" msgstr "Fonctions et classes fournies :" -#: ../Doc/library/contextlib.rst:23 +#: library/contextlib.rst:23 msgid "" "An :term:`abstract base class` for classes that implement :meth:`object." "__enter__` and :meth:`object.__exit__`. A default implementation for :meth:" @@ -59,7 +59,7 @@ msgstr "" "abstraite qui renvoie ``None`` par défaut. Voir aussi la définition de :ref:" "`typecontextmanager`." -#: ../Doc/library/contextlib.rst:34 +#: library/contextlib.rst:34 msgid "" "An :term:`abstract base class` for classes that implement :meth:`object." "__aenter__` and :meth:`object.__aexit__`. A default implementation for :meth:" @@ -74,7 +74,7 @@ msgstr "" "abstraite qui renvoie ``None`` par défaut. Voir aussi la définition de :ref:" "`async-context-managers`." -#: ../Doc/library/contextlib.rst:46 +#: library/contextlib.rst:46 msgid "" "This function is a :term:`decorator` that can be used to define a factory " "function for :keyword:`with` statement context managers, without needing to " @@ -85,7 +85,7 @@ msgstr "" "keyword:`with`, sans nécessiter de créer une classe ou des méthodes :meth:" "`__enter__` et :meth:`__exit__` séparées." -#: ../Doc/library/contextlib.rst:50 +#: library/contextlib.rst:50 msgid "" "While many objects natively support use in with statements, sometimes a " "resource needs to be managed that isn't a context manager in its own right, " @@ -97,7 +97,7 @@ msgstr "" "pas des gestionnaires de contextes, et qui n'implémentent pas de méthode " "``close()`` pour pouvoir être utilisées avec ``contextlib.closing``" -#: ../Doc/library/contextlib.rst:54 +#: library/contextlib.rst:54 msgid "" "An abstract example would be the following to ensure correct resource " "management::" @@ -105,19 +105,18 @@ msgstr "" "L'exemple abstrait suivant présente comment assurer une gestion correcte des " "ressources ::" -#: ../Doc/library/contextlib.rst:73 -#, fuzzy +#: library/contextlib.rst:73 msgid "" "The function being decorated must return a :term:`generator`-iterator when " "called. This iterator must yield exactly one value, which will be bound to " "the targets in the :keyword:`with` statement's :keyword:`!as` clause, if any." msgstr "" -"La fonction à décorer doit renvoyer un :term:`générateur-itérateur " -"` quand elle est appelée. Ce générateur ne doit produire " -"qu'une seule valeur, qui est récupérée dans le bloc :keyword:`with` à l'aide " -"de la clause :keyword:`!as` si précisée." +"La fonction à décorer doit renvoyer un :term:`générateur `-" +"itérateur quand elle est appelée. Ce générateur ne doit produire qu'une " +"seule valeur, qui est récupérée dans le bloc :keyword:`with` à l'aide de la " +"clause :keyword:`!as` si précisée." -#: ../Doc/library/contextlib.rst:77 +#: library/contextlib.rst:77 msgid "" "At the point where the generator yields, the block nested in the :keyword:" "`with` statement is executed. The generator is then resumed after the block " @@ -145,7 +144,7 @@ msgstr "" "l'instruction :keyword:`!with` que l'exception a été gérée, et l'exécution " "reprend sur l'instruction qui suit directement le bloc :keyword:`!with`." -#: ../Doc/library/contextlib.rst:89 +#: library/contextlib.rst:89 msgid "" ":func:`contextmanager` uses :class:`ContextDecorator` so the context " "managers it creates can be used as decorators as well as in :keyword:`with` " @@ -164,11 +163,11 @@ msgstr "" "`contextmanager` de remplir la condition de pouvoir être invoqués plusieurs " "fois afin d'être utilisés comme décorateurs)." -#: ../Doc/library/contextlib.rst:96 +#: library/contextlib.rst:96 msgid "Use of :class:`ContextDecorator`." msgstr "Utilisation de la classe :class:`ContextDecorator`." -#: ../Doc/library/contextlib.rst:102 +#: library/contextlib.rst:102 msgid "" "Similar to :func:`~contextlib.contextmanager`, but creates an :ref:" "`asynchronous context manager `." @@ -176,7 +175,7 @@ msgstr "" "Similaire à :func:`~contextlib.contextmanager`, mais crée un :ref:" "`gestionnaire de contexte asynchrone `." -#: ../Doc/library/contextlib.rst:105 +#: library/contextlib.rst:105 msgid "" "This function is a :term:`decorator` that can be used to define a factory " "function for :keyword:`async with` statement asynchronous context managers, " @@ -191,11 +190,11 @@ msgstr "" "doit être appliqué à une fonction renvoyant un :term:`asynchronous " "generator`." -#: ../Doc/library/contextlib.rst:111 +#: library/contextlib.rst:111 msgid "A simple example::" msgstr "Un exemple simple ::" -#: ../Doc/library/contextlib.rst:132 +#: library/contextlib.rst:132 msgid "" "Return a context manager that closes *thing* upon completion of the block. " "This is basically equivalent to::" @@ -203,11 +202,11 @@ msgstr "" "Renvoie un gestionnaire de contexte qui ferme *thing* à la fin du bloc. " "C'est essentiellement équivalent à ::" -#: ../Doc/library/contextlib.rst:144 +#: library/contextlib.rst:144 msgid "And lets you write code like this::" msgstr "Et cela vous permet d'écrire du code tel que ::" -#: ../Doc/library/contextlib.rst:153 +#: library/contextlib.rst:153 msgid "" "without needing to explicitly close ``page``. Even if an error occurs, " "``page.close()`` will be called when the :keyword:`with` block is exited." @@ -215,7 +214,7 @@ msgstr "" "sans besoin de fermer explicitement ``page``. Même si une erreur survient, " "``page.close()`` est appelée à la fermeture du bloc :keyword:`with`." -#: ../Doc/library/contextlib.rst:161 +#: library/contextlib.rst:161 msgid "" "Return a context manager that returns *enter_result* from ``__enter__``, but " "otherwise does nothing. It is intended to be used as a stand-in for an " @@ -225,11 +224,11 @@ msgstr "" "*enter_result*, mais ne fait rien d'autre. L'idée est de l'utiliser comme " "remplaçant pour un gestionnaire de contexte optionnel, par exemple ::" -#: ../Doc/library/contextlib.rst:175 +#: library/contextlib.rst:175 msgid "An example using *enter_result*::" msgstr "Un exemple utilisant *enter_result* ::" -#: ../Doc/library/contextlib.rst:193 +#: library/contextlib.rst:193 msgid "" "Return a context manager that suppresses any of the specified exceptions if " "they occur in the body of a with statement and then resumes execution with " @@ -239,7 +238,7 @@ msgstr "" "spécifiées si elles surviennent dans le corps du bloc *with*, et reprend " "l'exécution sur la première instruction qui suit la fin du bloc *with*." -#: ../Doc/library/contextlib.rst:197 +#: library/contextlib.rst:197 msgid "" "As with any other mechanism that completely suppresses exceptions, this " "context manager should be used only to cover very specific errors where " @@ -251,20 +250,19 @@ msgstr "" "très spécifiques d'erreurs où il est certain que continuer silencieusement " "l'exécution du programme est la bonne chose à faire." -#: ../Doc/library/contextlib.rst:202 +#: library/contextlib.rst:202 msgid "For example::" msgstr "Par exemple ::" -#: ../Doc/library/contextlib.rst:212 +#: library/contextlib.rst:212 msgid "This code is equivalent to::" msgstr "Ce code est équivalent à ::" -#: ../Doc/library/contextlib.rst:224 ../Doc/library/contextlib.rst:263 -#: ../Doc/library/contextlib.rst:273 +#: library/contextlib.rst:263 library/contextlib.rst:273 msgid "This context manager is :ref:`reentrant `." msgstr "Ce gestionnaire de contexte est :ref:`réentrant `." -#: ../Doc/library/contextlib.rst:231 +#: library/contextlib.rst:231 msgid "" "Context manager for temporarily redirecting :data:`sys.stdout` to another " "file or file-like object." @@ -272,7 +270,7 @@ msgstr "" "Gestionnaire de contexte servant à rediriger temporairement :data:`sys." "stdout` vers un autre fichier ou objet fichier-compatible." -#: ../Doc/library/contextlib.rst:234 +#: library/contextlib.rst:234 msgid "" "This tool adds flexibility to existing functions or classes whose output is " "hardwired to stdout." @@ -280,7 +278,7 @@ msgstr "" "Cet outil ajoute une certaine flexibilité aux fonctions ou classes " "existantes dont la sortie est envoyée vers la sortie standard." -#: ../Doc/library/contextlib.rst:237 +#: library/contextlib.rst:237 msgid "" "For example, the output of :func:`help` normally is sent to *sys.stdout*. " "You can capture that output in a string by redirecting the output to an :" @@ -290,7 +288,7 @@ msgstr "" "stdout*. Vous pouvez capturer cette sortie dans une chaîne de caractères en " "la redirigeant vers un objet :class:`io.StringIO` ::" -#: ../Doc/library/contextlib.rst:246 +#: library/contextlib.rst:246 msgid "" "To send the output of :func:`help` to a file on disk, redirect the output to " "a regular file::" @@ -298,11 +296,11 @@ msgstr "" "Pour envoyer la sortie de :func:`help` vers un fichier sur le disque, " "redirigez-la sur un fichier normal ::" -#: ../Doc/library/contextlib.rst:253 +#: library/contextlib.rst:253 msgid "To send the output of :func:`help` to *sys.stderr*::" msgstr "Pour envoyer la sortie de :func:`help` sur *sys.stderr* ::" -#: ../Doc/library/contextlib.rst:258 +#: library/contextlib.rst:258 msgid "" "Note that the global side effect on :data:`sys.stdout` means that this " "context manager is not suitable for use in library code and most threaded " @@ -316,7 +314,7 @@ msgstr "" "Cependant, cela reste une approche utile pour beaucoup de scripts " "utilitaires." -#: ../Doc/library/contextlib.rst:270 +#: library/contextlib.rst:270 msgid "" "Similar to :func:`~contextlib.redirect_stdout` but redirecting :data:`sys." "stderr` to another file or file-like object." @@ -324,14 +322,14 @@ msgstr "" "Similaire à :func:`~contextlib.redirect_stdout` mais redirige :data:`sys." "stderr` vers un autre fichier ou objet fichier-compatible." -#: ../Doc/library/contextlib.rst:280 +#: library/contextlib.rst:280 msgid "" "A base class that enables a context manager to also be used as a decorator." msgstr "" "Une classe mère qui permet à un gestionnaire de contexte d'être aussi " "utilisé comme décorateur." -#: ../Doc/library/contextlib.rst:282 +#: library/contextlib.rst:282 msgid "" "Context managers inheriting from ``ContextDecorator`` have to implement " "``__enter__`` and ``__exit__`` as normal. ``__exit__`` retains its optional " @@ -342,7 +340,7 @@ msgstr "" "conserve sa gestion optionnelle des exceptions même lors de l'utilisation en " "décorateur." -#: ../Doc/library/contextlib.rst:286 +#: library/contextlib.rst:286 msgid "" "``ContextDecorator`` is used by :func:`contextmanager`, so you get this " "functionality automatically." @@ -350,22 +348,22 @@ msgstr "" "``ContextDecorator`` est utilisé par :func:`contextmanager`, donc vous " "bénéficiez automatiquement de cette fonctionnalité." -#: ../Doc/library/contextlib.rst:289 +#: library/contextlib.rst:289 msgid "Example of ``ContextDecorator``::" msgstr "Exemple de ``ContextDecorator`` ::" -#: ../Doc/library/contextlib.rst:318 +#: library/contextlib.rst:318 msgid "" "This change is just syntactic sugar for any construct of the following form::" msgstr "" "Ce changement est simplement un sucre syntaxique pour les constructions de " "la forme suivante ::" -#: ../Doc/library/contextlib.rst:324 +#: library/contextlib.rst:324 msgid "``ContextDecorator`` lets you instead write::" msgstr "``ContextDecorator`` vous permet d'écrire à la place ::" -#: ../Doc/library/contextlib.rst:330 +#: library/contextlib.rst:330 msgid "" "It makes it clear that the ``cm`` applies to the whole function, rather than " "just a piece of it (and saving an indentation level is nice, too)." @@ -374,7 +372,7 @@ msgstr "" "seulement à un morceau en particulier (et gagner un niveau d'indentation est " "toujours appréciable)." -#: ../Doc/library/contextlib.rst:333 +#: library/contextlib.rst:333 msgid "" "Existing context managers that already have a base class can be extended by " "using ``ContextDecorator`` as a mixin class::" @@ -382,7 +380,7 @@ msgstr "" "Les gestionnaires de contexte existants qui ont déjà une classe mère peuvent " "être étendus en utilisant ``ContextDecorator`` comme une *mixin* ::" -#: ../Doc/library/contextlib.rst:346 +#: library/contextlib.rst:346 msgid "" "As the decorated function must be able to be called multiple times, the " "underlying context manager must support use in multiple :keyword:`with` " @@ -395,7 +393,7 @@ msgstr "" "construction d'origine avec de multiples instructions :keyword:`!with` au " "sein de la fonction doit être utilisée." -#: ../Doc/library/contextlib.rst:356 +#: library/contextlib.rst:356 msgid "" "A context manager that is designed to make it easy to programmatically " "combine other context managers and cleanup functions, especially those that " @@ -406,7 +404,7 @@ msgstr "" "nettoyage, spécifiquement ceux qui sont optionnels ou pilotés par des " "données d'entrée." -#: ../Doc/library/contextlib.rst:360 +#: library/contextlib.rst:360 msgid "" "For example, a set of files may easily be handled in a single with statement " "as follows::" @@ -414,7 +412,7 @@ msgstr "" "Par exemple, un ensemble de fichiers peut facilement être géré dans une " "unique instruction *with* comme suit ::" -#: ../Doc/library/contextlib.rst:369 +#: library/contextlib.rst:369 msgid "" "Each instance maintains a stack of registered callbacks that are called in " "reverse order when the instance is closed (either explicitly or implicitly " @@ -427,7 +425,7 @@ msgstr "" "que ces fonctions ne sont *pas* invoquées implicitement quand l'instance de " "la pile de contextes est collectée par le ramasse-miettes." -#: ../Doc/library/contextlib.rst:374 +#: library/contextlib.rst:374 msgid "" "This stack model is used so that context managers that acquire their " "resources in their ``__init__`` method (such as file objects) can be handled " @@ -437,7 +435,7 @@ msgstr "" "acquièrent leurs ressources dans leur méthode ``__init__`` (tels que les " "objets-fichiers) puissent être gérés correctement." -#: ../Doc/library/contextlib.rst:378 +#: library/contextlib.rst:378 msgid "" "Since registered callbacks are invoked in the reverse order of registration, " "this ends up behaving as if multiple nested :keyword:`with` statements had " @@ -453,7 +451,7 @@ msgstr "" "de rappel intérieure supprime ou remplace une exception, alors les fonctions " "extérieures reçoivent des arguments basés sur ce nouvel état." -#: ../Doc/library/contextlib.rst:385 +#: library/contextlib.rst:385 msgid "" "This is a relatively low level API that takes care of the details of " "correctly unwinding the stack of exit callbacks. It provides a suitable " @@ -465,7 +463,7 @@ msgstr "" "pour des gestionnaires de contexte de plus haut niveau qui manipulent la " "pile de sortie de manière spécifique à l'application." -#: ../Doc/library/contextlib.rst:394 +#: library/contextlib.rst:394 msgid "" "Enters a new context manager and adds its :meth:`__exit__` method to the " "callback stack. The return value is the result of the context manager's own :" @@ -475,7 +473,7 @@ msgstr "" "`__exit__` à la pile d'appels. La valeur de retour est le résultat de la " "méthode :meth:`__enter__` du gestionnaire de contexte donné." -#: ../Doc/library/contextlib.rst:398 +#: library/contextlib.rst:398 msgid "" "These context managers may suppress exceptions just as they normally would " "if used directly as part of a :keyword:`with` statement." @@ -484,13 +482,13 @@ msgstr "" "feraient normalement s'ils étaient utilisés directement derrière une " "instruction :keyword:`with`." -#: ../Doc/library/contextlib.rst:403 +#: library/contextlib.rst:403 msgid "Adds a context manager's :meth:`__exit__` method to the callback stack." msgstr "" "Ajoute la méthode :meth:`__exit__` d'un gestionnaire de contexte à la pile " "d'appels." -#: ../Doc/library/contextlib.rst:405 +#: library/contextlib.rst:405 msgid "" "As ``__enter__`` is *not* invoked, this method can be used to cover part of " "an :meth:`__enter__` implementation with a context manager's own :meth:" @@ -500,7 +498,7 @@ msgstr "" "pour couvrir une partie de l'implémentation de :meth:`__enter__` avec la " "propre méthode :meth:`__exit__` d'un gestionnaire de contexte." -#: ../Doc/library/contextlib.rst:409 +#: library/contextlib.rst:409 msgid "" "If passed an object that is not a context manager, this method assumes it is " "a callback with the same signature as a context manager's :meth:`__exit__` " @@ -511,7 +509,7 @@ msgstr "" "meth:`__exit__` des gestionnaires de contexte pour l'ajouter directement à " "la pile d'appels." -#: ../Doc/library/contextlib.rst:413 +#: library/contextlib.rst:413 msgid "" "By returning true values, these callbacks can suppress exceptions the same " "way context manager :meth:`__exit__` methods can." @@ -520,7 +518,7 @@ msgstr "" "exceptions de la même manière que le peuvent les méthodes :meth:`__exit__` " "des gestionnaires de contexte." -#: ../Doc/library/contextlib.rst:416 +#: library/contextlib.rst:416 msgid "" "The passed in object is returned from the function, allowing this method to " "be used as a function decorator." @@ -528,7 +526,7 @@ msgstr "" "L'objet passé en paramètre est renvoyé par la fonction, ce qui permet à la " "méthode d'être utilisée comme décorateur de fonction." -#: ../Doc/library/contextlib.rst:421 +#: library/contextlib.rst:421 msgid "" "Accepts an arbitrary callback function and arguments and adds it to the " "callback stack." @@ -536,7 +534,7 @@ msgstr "" "Accepte une fonction arbitraire et ses arguments et les ajoute à la pile des " "fonctions de rappel." -#: ../Doc/library/contextlib.rst:424 +#: library/contextlib.rst:424 msgid "" "Unlike the other methods, callbacks added this way cannot suppress " "exceptions (as they are never passed the exception details)." @@ -545,7 +543,7 @@ msgstr "" "cette manière ne peuvent pas supprimer les exceptions (puisqu'elles ne " "reçoivent jamais les détails de l'exception)." -#: ../Doc/library/contextlib.rst:427 +#: library/contextlib.rst:427 msgid "" "The passed in callback is returned from the function, allowing this method " "to be used as a function decorator." @@ -553,7 +551,7 @@ msgstr "" "La fonction passée en paramètre est renvoyée par la méthode, ce qui permet à " "la méthode d'être utilisée comme décorateur de fonction." -#: ../Doc/library/contextlib.rst:432 +#: library/contextlib.rst:432 msgid "" "Transfers the callback stack to a fresh :class:`ExitStack` instance and " "returns it. No callbacks are invoked by this operation - instead, they will " @@ -565,7 +563,7 @@ msgstr "" "la place, elles sont dorénavant invoquées quand la nouvelle pile sera close " "(soit explicitement soit implicitement à la fin d'un bloc :keyword:`with`)." -#: ../Doc/library/contextlib.rst:437 +#: library/contextlib.rst:437 msgid "" "For example, a group of files can be opened as an \"all or nothing\" " "operation as follows::" @@ -573,7 +571,7 @@ msgstr "" "Par exemple, un groupe de fichiers peut être ouvert comme une opération " "« tout ou rien » comme suit ::" -#: ../Doc/library/contextlib.rst:451 +#: library/contextlib.rst:451 msgid "" "Immediately unwinds the callback stack, invoking callbacks in the reverse " "order of registration. For any context managers and exit callbacks " @@ -584,7 +582,7 @@ msgstr "" "et fonction de sortie enregistré, les arguments passés indiqueront qu'aucune " "exception n'est survenue." -#: ../Doc/library/contextlib.rst:458 +#: library/contextlib.rst:458 msgid "" "An :ref:`asynchronous context manager `, similar to :" "class:`ExitStack`, that supports combining both synchronous and asynchronous " @@ -595,7 +593,7 @@ msgstr "" "de contexte synchrones et asynchrones, ainsi que la gestion de coroutines " "pour la logique de nettoyage." -#: ../Doc/library/contextlib.rst:463 +#: library/contextlib.rst:463 msgid "" "The :meth:`close` method is not implemented, :meth:`aclose` must be used " "instead." @@ -603,14 +601,14 @@ msgstr "" "La méthode :meth:`close` n'est pas implémentée, :meth:`aclose` doit plutôt " "être utilisée." -#: ../Doc/library/contextlib.rst:468 +#: library/contextlib.rst:468 msgid "" "Similar to :meth:`enter_context` but expects an asynchronous context manager." msgstr "" "Similaire à :meth:`enter_context` mais attend un gestionnaire de contexte " "asynchrone." -#: ../Doc/library/contextlib.rst:473 +#: library/contextlib.rst:473 msgid "" "Similar to :meth:`push` but expects either an asynchronous context manager " "or a coroutine function." @@ -618,24 +616,24 @@ msgstr "" "Similaire à :meth:`push` mais attend soit un gestionnaire de contexte " "asynchrone soit une fonction coroutine." -#: ../Doc/library/contextlib.rst:478 +#: library/contextlib.rst:478 msgid "Similar to :meth:`callback` but expects a coroutine function." msgstr "Similaire à :meth:`callback` mais attend une fonction coroutine." -#: ../Doc/library/contextlib.rst:482 +#: library/contextlib.rst:482 msgid "Similar to :meth:`close` but properly handles awaitables." msgstr "" "Similaire à :meth:`close` mais gère correctement les tâches asynchrones." -#: ../Doc/library/contextlib.rst:484 +#: library/contextlib.rst:484 msgid "Continuing the example for :func:`asynccontextmanager`::" msgstr "En continuité de l'exemple de :func:`asynccontextmanager` ::" -#: ../Doc/library/contextlib.rst:496 +#: library/contextlib.rst:496 msgid "Examples and Recipes" msgstr "Exemples et Recettes" -#: ../Doc/library/contextlib.rst:498 +#: library/contextlib.rst:498 msgid "" "This section describes some examples and recipes for making effective use of " "the tools provided by :mod:`contextlib`." @@ -643,11 +641,11 @@ msgstr "" "Cette section décrit quelques exemples et recettes pour décrire une " "utilisation réelle des outils fournis par :mod:`contextlib`." -#: ../Doc/library/contextlib.rst:503 +#: library/contextlib.rst:503 msgid "Supporting a variable number of context managers" msgstr "Gérer un nombre variable de gestionnaires de contexte" -#: ../Doc/library/contextlib.rst:505 +#: library/contextlib.rst:505 msgid "" "The primary use case for :class:`ExitStack` is the one given in the class " "documentation: supporting a variable number of context managers and other " @@ -664,7 +662,7 @@ msgstr "" "collection spécifique de fichiers de l'utilisateur), ou de certains " "gestionnaires de contexte qui peuvent être optionnels ::" -#: ../Doc/library/contextlib.rst:520 +#: library/contextlib.rst:520 msgid "" "As shown, :class:`ExitStack` also makes it quite easy to use :keyword:`with` " "statements to manage arbitrary resources that don't natively support the " @@ -674,11 +672,11 @@ msgstr "" "instructions :keyword:`with` pour gérer des ressources arbitraires qui ne " "gèrent pas nativement le protocole des gestionnaires de contexte." -#: ../Doc/library/contextlib.rst:526 +#: library/contextlib.rst:526 msgid "Catching exceptions from ``__enter__`` methods" msgstr "Attraper des exceptions depuis les méthodes ``__enter__``" -#: ../Doc/library/contextlib.rst:528 +#: library/contextlib.rst:528 msgid "" "It is occasionally desirable to catch exceptions from an ``__enter__`` " "method implementation, *without* inadvertently catching exceptions from the :" @@ -693,7 +691,7 @@ msgstr "" "`ExitStack`, les étapes du protocole des gestionnaires de contexte peuvent " "être légèrement séparées pour permettre le code suivant ::" -#: ../Doc/library/contextlib.rst:543 +#: library/contextlib.rst:543 msgid "" "Actually needing to do this is likely to indicate that the underlying API " "should be providing a direct resource management interface for use with :" @@ -712,11 +710,11 @@ msgstr "" "gestion de plusieurs situations qui ne peuvent pas être traitées directement " "dans une instruction :keyword:`with`." -#: ../Doc/library/contextlib.rst:553 +#: library/contextlib.rst:553 msgid "Cleaning up in an ``__enter__`` implementation" msgstr "Nettoyer dans une méthode ``__enter__``" -#: ../Doc/library/contextlib.rst:555 +#: library/contextlib.rst:555 msgid "" "As noted in the documentation of :meth:`ExitStack.push`, this method can be " "useful in cleaning up an already allocated resource if later steps in the :" @@ -726,7 +724,7 @@ msgstr "" "peut être utile pour nettoyer une ressource déjà allouée si les dernières " "étapes de l'implémentation de :meth:`__enter__` échouent." -#: ../Doc/library/contextlib.rst:559 +#: library/contextlib.rst:559 msgid "" "Here's an example of doing this for a context manager that accepts resource " "acquisition and release functions, along with an optional validation " @@ -736,11 +734,11 @@ msgstr "" "d'acquisition de ressources et de libération, avec une méthode de validation " "optionnelle, et qui les adapte au protocole des gestionnaires de contexte ::" -#: ../Doc/library/contextlib.rst:599 +#: library/contextlib.rst:599 msgid "Replacing any use of ``try-finally`` and flag variables" msgstr "Remplacer un ``try-finally`` avec une option variable" -#: ../Doc/library/contextlib.rst:601 +#: library/contextlib.rst:601 msgid "" "A pattern you will sometimes see is a ``try-finally`` statement with a flag " "variable to indicate whether or not the body of the ``finally`` clause " @@ -752,7 +750,7 @@ msgstr "" "ou non. Dans sa forme la plus simple (qui ne peut pas déjà être gérée avec " "juste une clause ``except``), cela ressemble à ::" -#: ../Doc/library/contextlib.rst:615 +#: library/contextlib.rst:615 msgid "" "As with any ``try`` statement based code, this can cause problems for " "development and review, because the setup code and the cleanup code can end " @@ -763,7 +761,7 @@ msgstr "" "codes d'installation et de nettoyage peuvent finir par être séparés par des " "sections de code arbitrairement longues." -#: ../Doc/library/contextlib.rst:619 +#: library/contextlib.rst:619 msgid "" ":class:`ExitStack` makes it possible to instead register a callback for " "execution at the end of a ``with`` statement, and then later decide to skip " @@ -773,7 +771,7 @@ msgstr "" "rappel pour être exécutée à la fin d'une instruction ``with``, et décider " "ensuite de passer l'exécution de cet appel ::" -#: ../Doc/library/contextlib.rst:631 +#: library/contextlib.rst:631 msgid "" "This allows the intended cleanup up behaviour to be made explicit up front, " "rather than requiring a separate flag variable." @@ -781,7 +779,7 @@ msgstr "" "Cela permet de rendre explicite dès le départ le comportement de nettoyage " "attendu, plutôt que de nécessiter une option séparée." -#: ../Doc/library/contextlib.rst:634 +#: library/contextlib.rst:634 msgid "" "If a particular application uses this pattern a lot, it can be simplified " "even further by means of a small helper class::" @@ -789,7 +787,7 @@ msgstr "" "Si une application particulière utilise beaucoup ce modèle, cela peut-être " "simplifié encore plus au moyen d'une petite classe d'aide ::" -#: ../Doc/library/contextlib.rst:652 +#: library/contextlib.rst:652 msgid "" "If the resource cleanup isn't already neatly bundled into a standalone " "function, then it is still possible to use the decorator form of :meth:" @@ -800,7 +798,7 @@ msgstr "" "`ExitStack.callback` pour déclarer la fonction de nettoyage de ressource en " "avance ::" -#: ../Doc/library/contextlib.rst:667 +#: library/contextlib.rst:667 msgid "" "Due to the way the decorator protocol works, a callback function declared " "this way cannot take any parameters. Instead, any resources to be released " @@ -811,12 +809,12 @@ msgstr "" "doivent être récupérées depuis l'extérieur comme des variables de fermeture " "(*closure*)." -#: ../Doc/library/contextlib.rst:673 +#: library/contextlib.rst:673 msgid "Using a context manager as a function decorator" msgstr "" "Utiliser un gestionnaire de contexte en tant que décorateur de fonction" -#: ../Doc/library/contextlib.rst:675 +#: library/contextlib.rst:675 msgid "" ":class:`ContextDecorator` makes it possible to use a context manager in both " "an ordinary ``with`` statement and also as a function decorator." @@ -825,7 +823,7 @@ msgstr "" "contexte à la fois ordinairement avec une instruction ``with`` ou comme un " "décorateur de fonction." -#: ../Doc/library/contextlib.rst:678 +#: library/contextlib.rst:678 msgid "" "For example, it is sometimes useful to wrap functions or groups of " "statements with a logger that can track the time of entry and time of exit. " @@ -840,17 +838,17 @@ msgstr "" "`ContextDecorator` fournit les deux fonctionnalités en une seule " "définition ::" -#: ../Doc/library/contextlib.rst:699 +#: library/contextlib.rst:699 msgid "Instances of this class can be used as both a context manager::" msgstr "" "Les instances de cette classe peuvent être utilisées comme gestionnaires de " "contexte ::" -#: ../Doc/library/contextlib.rst:705 +#: library/contextlib.rst:705 msgid "And also as a function decorator::" msgstr "Et comme décorateurs de fonctions ::" -#: ../Doc/library/contextlib.rst:712 +#: library/contextlib.rst:712 msgid "" "Note that there is one additional limitation when using context managers as " "function decorators: there's no way to access the return value of :meth:" @@ -862,11 +860,11 @@ msgstr "" "de retour de :meth:`__enter__`. Si cette valeur est nécessaire, il faut " "utiliser explicitement une instruction ``with``." -#: ../Doc/library/contextlib.rst:720 +#: library/contextlib.rst:720 msgid ":pep:`343` - The \"with\" statement" msgstr ":pep:`343` - The \"with\" statement" -#: ../Doc/library/contextlib.rst:720 +#: library/contextlib.rst:720 msgid "" "The specification, background, and examples for the Python :keyword:`with` " "statement." @@ -874,11 +872,11 @@ msgstr "" "La spécification, les motivations et des exemples de l'instruction :keyword:" "`with` en Python." -#: ../Doc/library/contextlib.rst:726 +#: library/contextlib.rst:726 msgid "Single use, reusable and reentrant context managers" msgstr "Gestionnaires de contexte à usage unique, réutilisables et réentrants" -#: ../Doc/library/contextlib.rst:728 +#: library/contextlib.rst:728 msgid "" "Most context managers are written in a way that means they can only be used " "effectively in a :keyword:`with` statement once. These single use context " @@ -891,7 +889,7 @@ msgstr "" "chaque fois qu'ils sont utilisés — tenter de les utiliser une seconde fois " "lève une exception ou ne fonctionne pas correctement." -#: ../Doc/library/contextlib.rst:734 +#: library/contextlib.rst:734 msgid "" "This common limitation means that it is generally advisable to create " "context managers directly in the header of the :keyword:`with` statement " @@ -902,7 +900,7 @@ msgstr "" "`with` où ils sont utilisés (comme montré dans tous les exemples " "d'utilisation au-dessus)." -#: ../Doc/library/contextlib.rst:738 +#: library/contextlib.rst:738 msgid "" "Files are an example of effectively single use context managers, since the " "first :keyword:`with` statement will close the file, preventing any further " @@ -913,7 +911,7 @@ msgstr "" "`with` ferme le fichier, empêchant d'autres opérations d'entrée/sortie " "d'être exécutées sur ce fichier." -#: ../Doc/library/contextlib.rst:742 +#: library/contextlib.rst:742 msgid "" "Context managers created using :func:`contextmanager` are also single use " "context managers, and will complain about the underlying generator failing " @@ -923,11 +921,11 @@ msgstr "" "usage unique, et se plaindront du fait que le générateur sous-jacent ne " "produise plus de valeur si vous essayez de les utiliser une seconde fois ::" -#: ../Doc/library/contextlib.rst:770 +#: library/contextlib.rst:770 msgid "Reentrant context managers" msgstr "Gestionnaires de contexte réentrants" -#: ../Doc/library/contextlib.rst:772 +#: library/contextlib.rst:772 msgid "" "More sophisticated context managers may be \"reentrant\". These context " "managers can not only be used in multiple :keyword:`with` statements, but " @@ -940,7 +938,7 @@ msgstr "" "l'intérieur* d'une instruction :keyword:`!with` qui utilise déjà ce même " "gestionnaire de contexte." -#: ../Doc/library/contextlib.rst:777 +#: library/contextlib.rst:777 msgid "" ":class:`threading.RLock` is an example of a reentrant context manager, as " "are :func:`suppress` and :func:`redirect_stdout`. Here's a very simple " @@ -950,7 +948,7 @@ msgstr "" "réentrant, comme le sont aussi :func:`suppress` et :func:`redirect_stdout`. " "Voici un très simple exemple d'utilisation réentrante ::" -#: ../Doc/library/contextlib.rst:796 +#: library/contextlib.rst:796 msgid "" "Real world examples of reentrancy are more likely to involve multiple " "functions calling each other and hence be far more complicated than this " @@ -960,7 +958,7 @@ msgstr "" "fonctions s'entre-appelant, et donc être bien plus compliqués que cet " "exemple." -#: ../Doc/library/contextlib.rst:800 +#: library/contextlib.rst:800 msgid "" "Note also that being reentrant is *not* the same thing as being thread " "safe. :func:`redirect_stdout`, for example, is definitely not thread safe, " @@ -972,18 +970,18 @@ msgstr "" "puisqu'il effectue des changements globaux sur l'état du système en " "branchant :data:`sys.stdout` sur différents flux." -#: ../Doc/library/contextlib.rst:809 +#: library/contextlib.rst:809 msgid "Reusable context managers" msgstr "Gestionnaires de contexte réutilisables" -#: ../Doc/library/contextlib.rst:811 +#: library/contextlib.rst:811 msgid "" -"Distinct from both single use and reentrant context managers are \"reusable" -"\" context managers (or, to be completely explicit, \"reusable, but not " -"reentrant\" context managers, since reentrant context managers are also " -"reusable). These context managers support being used multiple times, but " -"will fail (or otherwise not work correctly) if the specific context manager " -"instance has already been used in a containing with statement." +"Distinct from both single use and reentrant context managers are " +"\"reusable\" context managers (or, to be completely explicit, \"reusable, " +"but not reentrant\" context managers, since reentrant context managers are " +"also reusable). These context managers support being used multiple times, " +"but will fail (or otherwise not work correctly) if the specific context " +"manager instance has already been used in a containing with statement." msgstr "" "D'autres gestionnaires de contexte que ceux à usage unique et les réentrants " "sont les gestionnaires de contexte « réutilisables » (ou, pour être plus " @@ -994,7 +992,7 @@ msgstr "" "contexte référencée a déjà été utilisée dans une instruction *with* " "englobante." -#: ../Doc/library/contextlib.rst:818 +#: library/contextlib.rst:818 msgid "" ":class:`threading.Lock` is an example of a reusable, but not reentrant, " "context manager (for a reentrant lock, it is necessary to use :class:" @@ -1004,7 +1002,7 @@ msgstr "" "réutilisable mais pas réentrant (pour un verrou réentrant, il faut à la " "place utiliser :class:`threading.RLock`)." -#: ../Doc/library/contextlib.rst:822 +#: library/contextlib.rst:822 msgid "" "Another example of a reusable, but not reentrant, context manager is :class:" "`ExitStack`, as it invokes *all* currently registered callbacks when leaving " @@ -1015,7 +1013,7 @@ msgstr "" "actuellement enregistrées en quittant l'instruction *with*, sans regarder où " "ces fonctions ont été ajoutées ::" -#: ../Doc/library/contextlib.rst:853 +#: library/contextlib.rst:853 msgid "" "As the output from the example shows, reusing a single stack object across " "multiple with statements works correctly, but attempting to nest them will " @@ -1027,7 +1025,7 @@ msgstr "" "imbriquer fait que la pile est vidée à la fin du *with* le plus imbriqué, ce " "qui n'est probablement pas le comportement voulu." -#: ../Doc/library/contextlib.rst:858 +#: library/contextlib.rst:858 msgid "" "Using separate :class:`ExitStack` instances instead of reusing a single " "instance avoids that problem::" diff --git a/library/contextvars.po b/library/contextvars.po index 84834da9fc..9ec9665949 100644 --- a/library/contextvars.po +++ b/library/contextvars.po @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/library/contextvars.rst:2 msgid ":mod:`contextvars` --- Context Variables" -msgstr "" +msgstr ":mod:`contextvars` — Variables de contexte" #: ../Doc/library/contextvars.rst:11 msgid "" @@ -26,6 +26,12 @@ msgid "" "the :class:`~contextvars.Context` class should be used to manage the current " "context in asynchronous frameworks." msgstr "" +"Ce module fournit des API pour gérer, stocker et accéder à l'état local de " +"contexte. La classe :class:`~contextvars.ContextVar` est utilisée pour " +"déclarer et travailler avec les *Variables de contexte*. La fonction :func:" +"`~contextvars.copy_context` et la classe :class:`~contextvars.Context` " +"doivent être utilisées pour la gestion du contexte actuel dans les " +"cadriciels asynchrones." #: ../Doc/library/contextvars.rst:17 msgid "" @@ -33,23 +39,31 @@ msgid "" "func:`threading.local()` to prevent their state from bleeding to other code " "unexpectedly, when used in concurrent code." msgstr "" +"Les gestionnaires de contexte, quand ils ont un état et quand ils sont " +"utilisés dans du code s'exécutant de manière concurrente, doivent utiliser " +"les variables de contexte au lieu de :func:`threading.local()` pour empêcher " +"que leur état ne perturbe un autre fil de manière inattendue." #: ../Doc/library/contextvars.rst:21 msgid "See also :pep:`567` for additional details." -msgstr "" +msgstr "Voir aussi :pep:`567` pour plus de détails." #: ../Doc/library/contextvars.rst:27 msgid "Context Variables" -msgstr "" +msgstr "Variables de contexte" #: ../Doc/library/contextvars.rst:31 msgid "This class is used to declare a new Context Variable, e.g.::" msgstr "" +"Cette classe est utilisée pour déclarer une nouvelle variable de contexte, " +"p. ex. ::" #: ../Doc/library/contextvars.rst:35 msgid "" "The required *name* parameter is used for introspection and debug purposes." msgstr "" +"Le paramètre requis *name* est utilisé à des fins d'introspection et de " +"débogage." #: ../Doc/library/contextvars.rst:38 msgid "" @@ -57,6 +71,8 @@ msgid "" "`ContextVar.get` when no value for the variable is found in the current " "context." msgstr "" +"Le paramètre nommé *default* est renvoyé par :meth:`ContextVar.get` quand " +"aucune valeur n'est trouvée dans le contexte actuel pour la variable." #: ../Doc/library/contextvars.rst:42 msgid "" @@ -65,57 +81,77 @@ msgid "" "context variables which prevents context variables from being properly " "garbage collected." msgstr "" +"**Important :** les variables de contexte doivent être créées au plus haut " +"niveau du module et jamais dans des fermetures (*closures*). Les objets :" +"class:`Context` maintiennent des références fortes aux variables de contexte " +"ce qui empêche que les variables de contexte soient correctement nettoyées " +"par le ramasse-miette." #: ../Doc/library/contextvars.rst:49 msgid "The name of the variable. This is a read-only property." -msgstr "" +msgstr "Nom de la variable. Cette propriété est en lecture seule." #: ../Doc/library/contextvars.rst:55 msgid "Return a value for the context variable for the current context." -msgstr "" +msgstr "Renvoie la valeur de la variable de contexte pour le contexte actuel." #: ../Doc/library/contextvars.rst:57 msgid "" "If there is no value for the variable in the current context, the method " "will:" msgstr "" +"S'il n'y a pas de valeur pour la variable dans le contexte actuel, la " +"méthode :" #: ../Doc/library/contextvars.rst:60 msgid "" "return the value of the *default* argument of the method, if provided; or" msgstr "" +"renvoie la valeur de l'argument *default* passé à la méthode, s'il a été " +"fourni ;" #: ../Doc/library/contextvars.rst:63 msgid "" "return the default value for the context variable, if it was created with " "one; or" msgstr "" +"ou renvoie la valeur par défaut de la variable de contexte, si elle a été " +"créée avec une valeur par défaut ;" #: ../Doc/library/contextvars.rst:66 msgid "raise a :exc:`LookupError`." -msgstr "" +msgstr "ou lève une erreur :exc:`LookupError`." #: ../Doc/library/contextvars.rst:70 msgid "" "Call to set a new value for the context variable in the current context." msgstr "" +"Assigne une nouvelle valeur à la variable de contexte dans le contexte " +"actuel." #: ../Doc/library/contextvars.rst:73 msgid "" "The required *value* argument is the new value for the context variable." msgstr "" +"L'argument requis *value* est la nouvelle valeur pour la variable de " +"contexte." #: ../Doc/library/contextvars.rst:76 msgid "" "Returns a :class:`~contextvars.Token` object that can be used to restore the " "variable to its previous value via the :meth:`ContextVar.reset` method." msgstr "" +"Renvoie un objet :class:`~contextvars.Token` qui peut être utilisé pour " +"rétablir la variable à sa valeur précédente par la méthode :meth:`ContextVar." +"reset`." #: ../Doc/library/contextvars.rst:82 msgid "" "Reset the context variable to the value it had before the :meth:`ContextVar." "set` that created the *token* was used." msgstr "" +"Réinitialise la variable de contexte à la valeur qu'elle avait avant l'appel " +"de :meth:`ContextVar.set` qui a créé le *token*." #: ../Doc/library/contextvars.rst:85 msgid "For example::" @@ -127,12 +163,17 @@ msgid "" "be passed to the :meth:`ContextVar.reset` method to revert the value of the " "variable to what it was before the corresponding *set*." msgstr "" +"Les objets *Token* sont renvoyés par la méthode :meth:`ContextVar.set`. Ils " +"peuvent être passés à la méthode :meth:`ContextVar.reset` pour réaffecter la " +"valeur de la variable à ce qu'elle était avant le *set* correspondant." #: ../Doc/library/contextvars.rst:106 msgid "" "A read-only property. Points to the :class:`ContextVar` object that created " "the token." msgstr "" +"Propriété en lecture seule. Pointe vers l'objet :class:`ContextVar` qui a " +"créé le token." #: ../Doc/library/contextvars.rst:111 msgid "" @@ -140,44 +181,56 @@ msgid "" "`ContextVar.set` method call that created the token. It points to :attr:" "`Token.MISSING` is the variable was not set before the call." msgstr "" +"Propriété en lecture seule. Sa valeur est celle que la variable avait avant " +"l'appel à la méthode :meth:`ContextVar.set` qui a créé le jeton. Elle pointe " +"à :attr:`Token.MISSING` si la variable n'est pas définie avant l'appel." #: ../Doc/library/contextvars.rst:118 msgid "A marker object used by :attr:`Token.old_value`." -msgstr "" +msgstr "Objet marqueur utilisé par :attr:`Token.old_value`." #: ../Doc/library/contextvars.rst:122 msgid "Manual Context Management" -msgstr "" +msgstr "Gestion de contexte manuelle" #: ../Doc/library/contextvars.rst:126 msgid "Returns a copy of the current :class:`~contextvars.Context` object." -msgstr "" +msgstr "Renvoie une copie de l'objet :class:`~contextvars.Context` actuel." #: ../Doc/library/contextvars.rst:128 msgid "" "The following snippet gets a copy of the current context and prints all " "variables and their values that are set in it::" msgstr "" +"Le fragment de code qui suit obtient une copie du contexte actuel et affiche " +"toutes les variables avec leurs valeurs définies dans ce contexte." #: ../Doc/library/contextvars.rst:134 msgid "" "The function has an O(1) complexity, i.e. works equally fast for contexts " "with a few context variables and for contexts that have a lot of them." msgstr "" +"La fonction a une complexité O(1), c.-à-d. qu'elle fonctionne aussi " +"rapidement pour des contextes avec peu de variables de contexte que pour des " +"contextes qui en ont beaucoup." #: ../Doc/library/contextvars.rst:141 msgid "A mapping of :class:`ContextVars ` to their values." msgstr "" +"Tableau associatif entre :class:`ContextVars ` et leurs valeurs." #: ../Doc/library/contextvars.rst:143 msgid "" "``Context()`` creates an empty context with no values in it. To get a copy " "of the current context use the :func:`~contextvars.copy_context` function." msgstr "" +"``Context()`` crée un contexte vide ne contenant aucune valeur. Pour obtenir " +"une copie du contexte actuel, utilisez la fonction :func:`~contextvars." +"copy_context`." #: ../Doc/library/contextvars.rst:147 msgid "Context implements the :class:`collections.abc.Mapping` interface." -msgstr "" +msgstr "*Context* implémente l'interface :class:`collections.abc.Mapping`." #: ../Doc/library/contextvars.rst:151 msgid "" @@ -185,66 +238,85 @@ msgid "" "method is called on. Return the result of the execution or propagate an " "exception if one occurred." msgstr "" +"Exécute le code ``callable(*args, **kwargs)`` dans le contexte défini par " +"l'objet. Renvoie le résultat de l'exécution ou propage une exception s'il y " +"en a une qui s'est produite." #: ../Doc/library/contextvars.rst:155 msgid "" "Any changes to any context variables that *callable* makes will be contained " "in the context object::" msgstr "" +"Tout changement apporté aux variables de contexte effectué par *callable* " +"sera contenu dans l'objet de contexte ::" #: ../Doc/library/contextvars.rst:184 msgid "" "The method raises a :exc:`RuntimeError` when called on the same context " "object from more than one OS thread, or when called recursively." msgstr "" +"La méthode lève une :exc:`RuntimeError` quand elle est appelée sur le même " +"objet de contexte depuis plus qu'un fil d'exécution ou quand elle est " +"appelée récursivement." #: ../Doc/library/contextvars.rst:190 msgid "Return a shallow copy of the context object." -msgstr "" +msgstr "Renvoie une copie de surface de l'objet de contexte." #: ../Doc/library/contextvars.rst:194 msgid "" "Return ``True`` if the *context* has a value for *var* set; return ``False`` " "otherwise." msgstr "" +"Renvoie ``True`` si le *context* a une valeur pour *var* ; sinon renvoie " +"``False``." #: ../Doc/library/contextvars.rst:199 msgid "" "Return the value of the *var* :class:`ContextVar` variable. If the variable " "is not set in the context object, a :exc:`KeyError` is raised." msgstr "" +"Renvoie la valeur de la variable :class:`ContextVar` *var*. Si la variable " +"n'est pas définie dans l'objet de contexte, une :exc:`KeyError` est levée." #: ../Doc/library/contextvars.rst:205 msgid "" "Return the value for *var* if *var* has the value in the context object. " "Return *default* otherwise. If *default* is not given, return ``None``." msgstr "" +"Renvoie la valeur de *var* si *var* possède une valeur dans l'objet de " +"contexte. Renvoie *default* sinon (ou ``None`` si *default* n'est pas donné)." #: ../Doc/library/contextvars.rst:211 msgid "Return an iterator over the variables stored in the context object." msgstr "" +"Renvoie un itérateur sur les variables stockées dans l'objet de contexte." #: ../Doc/library/contextvars.rst:216 msgid "Return the number of variables set in the context object." -msgstr "" +msgstr "Renvoie le nombre de variables définies dans l'objet de contexte." #: ../Doc/library/contextvars.rst:220 msgid "Return a list of all variables in the context object." -msgstr "" +msgstr "Renvoie une liste de toutes les variables dans l'objet de contexte." #: ../Doc/library/contextvars.rst:224 msgid "Return a list of all variables' values in the context object." msgstr "" +"Renvoie une liste de toutes les valeurs des variables dans l'objet de " +"contexte." #: ../Doc/library/contextvars.rst:229 msgid "" "Return a list of 2-tuples containing all variables and their values in the " "context object." msgstr "" +"Renvoie une liste de paires contenant toutes les variables et leurs valeurs " +"dans l'objet de contexte." #: ../Doc/library/contextvars.rst:234 msgid "asyncio support" -msgstr "" +msgstr "Gestion avec *asyncio*" #: ../Doc/library/contextvars.rst:236 msgid "" @@ -253,3 +325,8 @@ msgid "" "server, that uses a context variable to make the address of a remote client " "available in the Task that handles that client::" msgstr "" +":mod:`asyncio` gère nativement les variables de contexte et elles sont " +"prêtes à être utilisées sans configuration supplémentaire. Par exemple, " +"voici un serveur *echo* simple qui utilise une variable de contexte pour que " +"l’adresse d'un client distant soit disponible dans le *Task* qui gère ce " +"client ::" diff --git a/library/crypt.po b/library/crypt.po index 0056b75019..961db05fef 100644 --- a/library/crypt.po +++ b/library/crypt.po @@ -14,15 +14,16 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/library/crypt.rst:2 +#: library/crypt.rst:2 msgid ":mod:`crypt` --- Function to check Unix passwords" msgstr "" -#: ../Doc/library/crypt.rst:12 +#: library/crypt.rst:12 +#, fuzzy msgid "**Source code:** :source:`Lib/crypt.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/pty.py`" -#: ../Doc/library/crypt.rst:20 +#: library/crypt.rst:20 msgid "" "This module implements an interface to the :manpage:`crypt(3)` routine, " "which is a one-way hash function based upon a modified DES algorithm; see " @@ -31,7 +32,7 @@ msgid "" "attempting to crack Unix passwords with a dictionary." msgstr "" -#: ../Doc/library/crypt.rst:28 +#: library/crypt.rst:28 msgid "" "Notice that the behavior of this module depends on the actual " "implementation of the :manpage:`crypt(3)` routine in the running system. " @@ -39,69 +40,70 @@ msgid "" "be available on this module." msgstr "" -#: ../Doc/library/crypt.rst:34 +#: library/crypt.rst:34 msgid ":ref:`Availability `: Unix. Not available on VxWorks." msgstr "" -#: ../Doc/library/crypt.rst:36 +#: library/crypt.rst:36 msgid "Hashing Methods" msgstr "" -#: ../Doc/library/crypt.rst:40 +#: library/crypt.rst:40 msgid "" "The :mod:`crypt` module defines the list of hashing methods (not all methods " "are available on all platforms):" msgstr "" -#: ../Doc/library/crypt.rst:45 +#: library/crypt.rst:45 msgid "" "A Modular Crypt Format method with 16 character salt and 86 character hash " "based on the SHA-512 hash function. This is the strongest method." msgstr "" -#: ../Doc/library/crypt.rst:50 +#: library/crypt.rst:50 msgid "" "Another Modular Crypt Format method with 16 character salt and 43 character " "hash based on the SHA-256 hash function." msgstr "" -#: ../Doc/library/crypt.rst:55 +#: library/crypt.rst:55 msgid "" "Another Modular Crypt Format method with 22 character salt and 31 character " "hash based on the Blowfish cipher." msgstr "" -#: ../Doc/library/crypt.rst:62 +#: library/crypt.rst:62 msgid "" "Another Modular Crypt Format method with 8 character salt and 22 character " "hash based on the MD5 hash function." msgstr "" -#: ../Doc/library/crypt.rst:67 +#: library/crypt.rst:67 msgid "" "The traditional method with a 2 character salt and 13 characters of hash. " "This is the weakest method." msgstr "" -#: ../Doc/library/crypt.rst:72 +#: library/crypt.rst:72 msgid "Module Attributes" msgstr "" -#: ../Doc/library/crypt.rst:78 +#: library/crypt.rst:78 msgid "" "A list of available password hashing algorithms, as ``crypt.METHOD_*`` " "objects. This list is sorted from strongest to weakest." msgstr "" -#: ../Doc/library/crypt.rst:84 +#: library/crypt.rst:84 msgid "Module Functions" msgstr "" -#: ../Doc/library/crypt.rst:86 +#: library/crypt.rst:86 +#, fuzzy msgid "The :mod:`crypt` module defines the following functions:" -msgstr "" +msgstr "Le module :mod:`pty` expose les fonctions suivantes :" -#: ../Doc/library/crypt.rst:90 +#: library/crypt.rst:90 msgid "" "*word* will usually be a user's password as typed at a prompt or in a " "graphical interface. The optional *salt* is either a string as returned " @@ -111,52 +113,52 @@ msgid "" "strongest method will be used (as returned by :func:`methods`)." msgstr "" -#: ../Doc/library/crypt.rst:98 +#: library/crypt.rst:98 msgid "" "Checking a password is usually done by passing the plain-text password as " "*word* and the full results of a previous :func:`crypt` call, which should " "be the same as the results of this call." msgstr "" -#: ../Doc/library/crypt.rst:102 +#: library/crypt.rst:102 msgid "" -"*salt* (either a random 2 or 16 character string, possibly prefixed with ``" -"$digit$`` to indicate the method) which will be used to perturb the " +"*salt* (either a random 2 or 16 character string, possibly prefixed with " +"``$digit$`` to indicate the method) which will be used to perturb the " "encryption algorithm. The characters in *salt* must be in the set ``[./a-zA-" -"Z0-9]``, with the exception of Modular Crypt Format which prefixes a ``$digit" -"$``." +"Z0-9]``, with the exception of Modular Crypt Format which prefixes a " +"``$digit$``." msgstr "" -#: ../Doc/library/crypt.rst:108 +#: library/crypt.rst:108 msgid "" "Returns the hashed password as a string, which will be composed of " "characters from the same alphabet as the salt." msgstr "" -#: ../Doc/library/crypt.rst:113 +#: library/crypt.rst:113 msgid "" "Since a few :manpage:`crypt(3)` extensions allow different values, with " "different sizes in the *salt*, it is recommended to use the full crypted " "password as salt when checking for a password." msgstr "" -#: ../Doc/library/crypt.rst:117 +#: library/crypt.rst:117 msgid "Accept ``crypt.METHOD_*`` values in addition to strings for *salt*." msgstr "" -#: ../Doc/library/crypt.rst:123 +#: library/crypt.rst:123 msgid "" "Return a randomly generated salt of the specified method. If no *method* is " "given, the strongest method available as returned by :func:`methods` is used." msgstr "" -#: ../Doc/library/crypt.rst:127 +#: library/crypt.rst:127 msgid "" "The return value is a string suitable for passing as the *salt* argument to :" "func:`crypt`." msgstr "" -#: ../Doc/library/crypt.rst:130 +#: library/crypt.rst:130 msgid "" "*rounds* specifies the number of rounds for ``METHOD_SHA256``, " "``METHOD_SHA512`` and ``METHOD_BLOWFISH``. For ``METHOD_SHA256`` and " @@ -166,22 +168,22 @@ msgid "" "sup:`31`), the default is ``4096`` (2\\ :sup:`12`)." msgstr "" -#: ../Doc/library/crypt.rst:140 +#: library/crypt.rst:140 msgid "Added the *rounds* parameter." msgstr "" -#: ../Doc/library/crypt.rst:145 +#: library/crypt.rst:145 msgid "Examples" msgstr "Exemples" -#: ../Doc/library/crypt.rst:147 +#: library/crypt.rst:147 msgid "" "A simple example illustrating typical use (a constant-time comparison " "operation is needed to limit exposure to timing attacks. :func:`hmac." "compare_digest` is suitable for this purpose)::" msgstr "" -#: ../Doc/library/crypt.rst:167 +#: library/crypt.rst:167 msgid "" "To generate a hash of a password using the strongest available method and " "check it against the original::" diff --git a/library/csv.po b/library/csv.po index f795edc1cb..1cc69cfee1 100644 --- a/library/csv.po +++ b/library/csv.po @@ -5,25 +5,25 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: 2019-11-01 23:50+0100\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" +"PO-Revision-Date: 2020-04-27 23:16+0200\n" "Last-Translator: Mathieu Dupuy \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2.3\n" +"X-Generator: Poedit 2.3\n" -#: ../Doc/library/csv.rst:2 +#: library/csv.rst:2 msgid ":mod:`csv` --- CSV File Reading and Writing" msgstr ":mod:`csv` — Lecture et écriture de fichiers CSV" -#: ../Doc/library/csv.rst:9 +#: library/csv.rst:9 msgid "**Source code:** :source:`Lib/csv.py`" msgstr "**Code source :** :source:`Lib/csv.py`" -#: ../Doc/library/csv.rst:17 +#: library/csv.rst:17 msgid "" "The so-called CSV (Comma Separated Values) format is the most common import " "and export format for spreadsheets and databases. CSV format was used for " @@ -48,7 +48,7 @@ msgstr "" "module unique puisse manipuler efficacement ces données, masquant au " "programmeur les détails de lecture/écriture des données." -#: ../Doc/library/csv.rst:28 +#: library/csv.rst:28 msgid "" "The :mod:`csv` module implements classes to read and write tabular data in " "CSV format. It allows programmers to say, \"write this data in the format " @@ -64,7 +64,7 @@ msgstr "" "Vous pouvez aussi décrire les formats CSV utilisés par d'autres application " "ou définir vos propres spécialisations." -#: ../Doc/library/csv.rst:35 +#: library/csv.rst:35 msgid "" "The :mod:`csv` module's :class:`reader` and :class:`writer` objects read and " "write sequences. Programmers can also read and write data in dictionary " @@ -75,25 +75,25 @@ msgstr "" "dictionnaire en utilisant les classes :class:`DictReader` et :class:" "`DictWriter`." -#: ../Doc/library/csv.rst:41 +#: library/csv.rst:41 msgid ":pep:`305` - CSV File API" msgstr ":pep:`305` ­— Interface des fichiers CSV" -#: ../Doc/library/csv.rst:42 +#: library/csv.rst:42 msgid "The Python Enhancement Proposal which proposed this addition to Python." msgstr "" "La proposition d'amélioration de Python (PEP) qui a proposé cet ajout au " "langage." -#: ../Doc/library/csv.rst:48 +#: library/csv.rst:48 msgid "Module Contents" msgstr "Contenu du module" -#: ../Doc/library/csv.rst:50 +#: library/csv.rst:50 msgid "The :mod:`csv` module defines the following functions:" msgstr "Le module :mod:`csv` définit les fonctions suivantes :" -#: ../Doc/library/csv.rst:58 +#: library/csv.rst:58 msgid "" "Return a reader object which will iterate over lines in the given *csvfile*. " "*csvfile* can be any object which supports the :term:`iterator` protocol and " @@ -123,7 +123,7 @@ msgstr "" "sur les dialectes et paramètres de formatage, voir la section :ref:`csv-fmt-" "params`." -#: ../Doc/library/csv.rst:71 +#: library/csv.rst:71 msgid "" "Each row read from the csv file is returned as a list of strings. No " "automatic data type conversion is performed unless the ``QUOTE_NONNUMERIC`` " @@ -136,12 +136,11 @@ msgstr "" "spécifiée (dans ce cas, les champs sans guillemets sont transformés en " "nombres flottants)." -#: ../Doc/library/csv.rst:75 ../Doc/library/csv.rst:105 -#: ../Doc/library/csv.rst:172 ../Doc/library/csv.rst:208 +#: library/csv.rst:105 library/csv.rst:212 msgid "A short usage example::" -msgstr "Un court exemple d'utilisation : ::" +msgstr "Un court exemple d'utilisation ::" -#: ../Doc/library/csv.rst:88 +#: library/csv.rst:88 msgid "" "Return a writer object responsible for converting the user's data into " "delimited strings on the given file-like object. *csvfile* can be any " @@ -180,7 +179,7 @@ msgstr "" "caractères sont transformées en chaînes par un appel à :func:`str` avant " "d'être écrites." -#: ../Doc/library/csv.rst:117 +#: library/csv.rst:117 msgid "" "Associate *dialect* with *name*. *name* must be a string. The dialect can " "be specified either by passing a sub-class of :class:`Dialect`, or by " @@ -195,7 +194,7 @@ msgstr "" "complets sur les dialectes et paramètres de formatage, voir la section :ref:" "`csv-fmt-params`." -#: ../Doc/library/csv.rst:126 +#: library/csv.rst:126 msgid "" "Delete the dialect associated with *name* from the dialect registry. An :" "exc:`Error` is raised if *name* is not a registered dialect name." @@ -203,7 +202,7 @@ msgstr "" "Supprime le dialecte associé à *name* depuis le registre des dialectes. " "Une :exc:`Error` est levée si *name* n'est pas un nom de dialecte enregistré." -#: ../Doc/library/csv.rst:132 +#: library/csv.rst:132 msgid "" "Return the dialect associated with *name*. An :exc:`Error` is raised if " "*name* is not a registered dialect name. This function returns an " @@ -213,11 +212,11 @@ msgstr "" "n'est pas un nom de dialecte enregistré. Cette fonction renvoie un objet :" "class:`Dialect` immuable." -#: ../Doc/library/csv.rst:138 +#: library/csv.rst:138 msgid "Return the names of all registered dialects." msgstr "Renvoie les noms de tous les dialectes enregistrés." -#: ../Doc/library/csv.rst:143 +#: library/csv.rst:143 msgid "" "Returns the current maximum field size allowed by the parser. If *new_limit* " "is given, this becomes the new limit." @@ -225,11 +224,11 @@ msgstr "" "Renvoie la taille de champ maximale courante autorisée par l'analyseur. Si " "*new_limit* est donnée, elle devient la nouvelle limite." -#: ../Doc/library/csv.rst:147 +#: library/csv.rst:147 msgid "The :mod:`csv` module defines the following classes:" msgstr "Le module :mod:`csv` définit les classes suivantes :" -#: ../Doc/library/csv.rst:152 +#: library/csv.rst:152 msgid "" "Create an object that operates like a regular reader but maps the " "information in each row to a :class:`dict` whose keys are given by the " @@ -239,7 +238,7 @@ msgstr "" "informations de chaque ligne dans un :class:`dict` dont les clés sont " "données par le paramètre optionnel *fieldnames*." -#: ../Doc/library/csv.rst:156 +#: library/csv.rst:156 msgid "" "The *fieldnames* parameter is a :term:`sequence`. If *fieldnames* is " "omitted, the values in the first row of file *f* will be used as the " @@ -251,19 +250,21 @@ msgstr "" "utilisées comme noms de champs. Sans se soucier de comment sont déterminés " "les noms de champs, le dictionnaire préserve leur ordre original." -#: ../Doc/library/csv.rst:161 +#: library/csv.rst:161 msgid "" "If a row has more fields than fieldnames, the remaining data is put in a " "list and stored with the fieldname specified by *restkey* (which defaults to " "``None``). If a non-blank row has fewer fields than fieldnames, the missing " -"values are filled-in with ``None``." +"values are filled-in with the value of *restval* (which defaults to " +"``None``)." msgstr "" "Si une ligne a plus de champs que *fieldnames*, les données excédentaires " "sont mises dans une liste stockée dans le champ spécifié par *restkey* " "(``None`` par défaut). Si une ligne non-vide a moins de champs que " -"*fieldnames*, les valeurs manquantes sont mises à ``None``." +"*fieldnames*, les valeurs manquantes sont remplacées par la valeur de " +"*restval* (``None`` par défaut)." -#: ../Doc/library/csv.rst:166 +#: library/csv.rst:167 msgid "" "All other optional or keyword arguments are passed to the underlying :class:" "`reader` instance." @@ -271,11 +272,15 @@ msgstr "" "Tous les autres arguments optionnels ou nommés sont passés à l'instance :" "class:`reader` sous-jacente." -#: ../Doc/library/csv.rst:169 +#: library/csv.rst:170 +msgid "Returned rows are now of type :class:`OrderedDict`." +msgstr "Les lignes renvoyées sont maintenant de type :class:`OrderedDict`." + +#: library/csv.rst:173 msgid "Returned rows are now of type :class:`dict`." msgstr "Les lignes renvoyées sont maintenant de type :class:`dict`." -#: ../Doc/library/csv.rst:190 +#: library/csv.rst:194 msgid "" "Create an object which operates like a regular writer but maps dictionaries " "onto output rows. The *fieldnames* parameter is a :mod:`sequence " @@ -303,7 +308,7 @@ msgstr "" "excédentaires du dictionnaire sont ignorées. Les autres arguments optionnels " "ou nommés sont passés à l'instance :class:`writer` sous-jacente." -#: ../Doc/library/csv.rst:205 +#: library/csv.rst:209 msgid "" "Note that unlike the :class:`DictReader` class, the *fieldnames* parameter " "of the :class:`DictWriter` class is not optional." @@ -311,7 +316,7 @@ msgstr "" "Notez que contrairement à la classe :class:`DictReader`, le paramètre " "*fieldnames* de :class:`DictWriter` n'est pas optionnel." -#: ../Doc/library/csv.rst:224 +#: library/csv.rst:228 msgid "" "The :class:`Dialect` class is a container class relied on primarily for its " "attributes, which are used to define the parameters for a specific :class:" @@ -321,7 +326,7 @@ msgstr "" "principalement pour ses attributs, qui servent à définir des paramètres pour " "des instances spécifiques de :class:`reader` ou :class:`writer`." -#: ../Doc/library/csv.rst:231 +#: library/csv.rst:235 msgid "" "The :class:`excel` class defines the usual properties of an Excel-generated " "CSV file. It is registered with the dialect name ``'excel'``." @@ -329,7 +334,7 @@ msgstr "" "La classe :class:`excel` définit les propriétés usuelles d'un fichier CSV " "généré par Excel. Elle est enregistrée avec le nom de dialecte ``'excel'``." -#: ../Doc/library/csv.rst:237 +#: library/csv.rst:241 msgid "" "The :class:`excel_tab` class defines the usual properties of an Excel-" "generated TAB-delimited file. It is registered with the dialect name " @@ -339,7 +344,7 @@ msgstr "" "CSV généré par Excel avec des tabulations comme séparateurs. Elle est " "enregistrée avec le nom de dialecte ``'excel-tab'``." -#: ../Doc/library/csv.rst:243 +#: library/csv.rst:247 msgid "" "The :class:`unix_dialect` class defines the usual properties of a CSV file " "generated on UNIX systems, i.e. using ``'\\n'`` as line terminator and " @@ -350,17 +355,17 @@ msgstr "" "marqueur de fin de ligne et délimitant tous les champs par des guillemets. " "Elle est enregistrée avec le nom de dialecte ``'unix'``." -#: ../Doc/library/csv.rst:252 +#: library/csv.rst:256 msgid "The :class:`Sniffer` class is used to deduce the format of a CSV file." msgstr "" "La classe :class:`Sniffer` est utilisée pour déduire le format d'un fichier " "CSV." -#: ../Doc/library/csv.rst:254 +#: library/csv.rst:258 msgid "The :class:`Sniffer` class provides two methods:" msgstr "La classe :class:`Sniffer` fournit deux méthodes :" -#: ../Doc/library/csv.rst:258 +#: library/csv.rst:262 msgid "" "Analyze the given *sample* and return a :class:`Dialect` subclass reflecting " "the parameters found. If the optional *delimiters* parameter is given, it " @@ -371,7 +376,7 @@ msgstr "" "*delimiters* est donné, il est interprété comme une chaîne contenant tous " "les caractères valides de séparation possibles." -#: ../Doc/library/csv.rst:266 +#: library/csv.rst:270 msgid "" "Analyze the sample text (presumed to be in CSV format) and return :const:" "`True` if the first row appears to be a series of column headers." @@ -379,21 +384,21 @@ msgstr "" "Analyse l'extrait de texte (présumé être au format CSV) et renvoie :const:" "`True` si la première ligne semble être une série d'en-têtes de colonnes." -#: ../Doc/library/csv.rst:269 +#: library/csv.rst:273 msgid "An example for :class:`Sniffer` use::" -msgstr "Un exemple d'utilisation de :class:`Sniffer` : ::" +msgstr "Un exemple d'utilisation de :class:`Sniffer` ::" -#: ../Doc/library/csv.rst:278 +#: library/csv.rst:282 msgid "The :mod:`csv` module defines the following constants:" msgstr "Le module :mod:`csv` définit les constantes suivantes :" -#: ../Doc/library/csv.rst:282 +#: library/csv.rst:286 msgid "Instructs :class:`writer` objects to quote all fields." msgstr "" "Indique aux objets :class:`writer` de délimiter tous les champs par des " "guillemets." -#: ../Doc/library/csv.rst:287 +#: library/csv.rst:291 msgid "" "Instructs :class:`writer` objects to only quote those fields which contain " "special characters such as *delimiter*, *quotechar* or any of the characters " @@ -403,19 +408,19 @@ msgstr "" "contenant un caractère spécial comme *delimiter*, *quotechar* ou n'importe " "quel caractère de *lineterminator*." -#: ../Doc/library/csv.rst:294 +#: library/csv.rst:298 msgid "Instructs :class:`writer` objects to quote all non-numeric fields." msgstr "" "Indique aux objets :class:`writer` de délimiter ainsi tous les champs non-" "numériques." -#: ../Doc/library/csv.rst:296 +#: library/csv.rst:300 msgid "Instructs the reader to convert all non-quoted fields to type *float*." msgstr "" "Indique au lecteur de convertir tous les champs non délimités par des " "guillemets vers des *float*." -#: ../Doc/library/csv.rst:301 +#: library/csv.rst:305 msgid "" "Instructs :class:`writer` objects to never quote fields. When the current " "*delimiter* occurs in output data it is preceded by the current *escapechar* " @@ -428,7 +433,7 @@ msgstr "" "pas précisé, le transcripteur lèvera une :exc:`Error` si un caractère " "nécessitant un échappement est rencontré." -#: ../Doc/library/csv.rst:306 +#: library/csv.rst:310 msgid "" "Instructs :class:`reader` to perform no special processing of quote " "characters." @@ -436,19 +441,19 @@ msgstr "" "Indique au :class:`reader` de ne pas opérer de traitement spécial sur les " "guillemets." -#: ../Doc/library/csv.rst:308 +#: library/csv.rst:312 msgid "The :mod:`csv` module defines the following exception:" msgstr "Le module :mod:`csv` définit les exceptions suivantes :" -#: ../Doc/library/csv.rst:313 +#: library/csv.rst:317 msgid "Raised by any of the functions when an error is detected." msgstr "Levée par les fonctions du module quand une erreur détectée." -#: ../Doc/library/csv.rst:318 +#: library/csv.rst:322 msgid "Dialects and Formatting Parameters" msgstr "Dialectes et paramètres de formatage" -#: ../Doc/library/csv.rst:320 +#: library/csv.rst:324 msgid "" "To make it easier to specify the format of input and output records, " "specific formatting parameters are grouped together into dialects. A " @@ -470,18 +475,18 @@ msgstr "" "paramètres de formatage individuels, qui ont les mêmes noms que les " "attributs de :class:`Dialect` définis ci-dessous." -#: ../Doc/library/csv.rst:330 +#: library/csv.rst:334 msgid "Dialects support the following attributes:" msgstr "Les dialectes supportent les attributs suivants :" -#: ../Doc/library/csv.rst:335 +#: library/csv.rst:339 msgid "" "A one-character string used to separate fields. It defaults to ``','``." msgstr "" "Une chaîne d'un seul caractère utilisée pour séparer les champs. Elle vaut " "``','`` par défaut." -#: ../Doc/library/csv.rst:340 +#: library/csv.rst:344 msgid "" "Controls how instances of *quotechar* appearing inside a field should " "themselves be quoted. When :const:`True`, the character is doubled. When :" @@ -493,7 +498,7 @@ msgstr "" "doublé. Quand il vaut :const:`False`, le caractère *escapechar* est utilisé " "comme préfixe à *quotechar*. Il vaut :const:`True` par défaut." -#: ../Doc/library/csv.rst:345 +#: library/csv.rst:349 msgid "" "On output, if *doublequote* is :const:`False` and no *escapechar* is set, :" "exc:`Error` is raised if a *quotechar* is found in a field." @@ -502,7 +507,7 @@ msgstr "" "n'est précisé, une :exc:`Error` est levée si un *quotechar* est trouvé dans " "le champ." -#: ../Doc/library/csv.rst:351 +#: library/csv.rst:355 msgid "" "A one-character string used by the writer to escape the *delimiter* if " "*quoting* is set to :const:`QUOTE_NONE` and the *quotechar* if *doublequote* " @@ -516,7 +521,7 @@ msgstr "" "retire toute signification spéciale au caractère qui le suit. Elle vaut par " "défaut :const:`None`, ce qui désactive l'échappement." -#: ../Doc/library/csv.rst:359 +#: library/csv.rst:363 msgid "" "The string used to terminate lines produced by the :class:`writer`. It " "defaults to ``'\\r\\n'``." @@ -524,7 +529,7 @@ msgstr "" "La chaîne utilisée pour terminer les lignes produites par un :class:" "`writer`. Elle vaut par défaut ``'\\r\\n'``." -#: ../Doc/library/csv.rst:364 +#: library/csv.rst:368 msgid "" "The :class:`reader` is hard-coded to recognise either ``'\\r'`` or ``'\\n'`` " "as end-of-line, and ignores *lineterminator*. This behavior may change in " @@ -534,7 +539,7 @@ msgstr "" "``'\\n'`` comme marqueurs de fin de ligne, et ignorer *lineterminator*. Ce " "comportement pourrait changer dans le futur." -#: ../Doc/library/csv.rst:371 +#: library/csv.rst:375 msgid "" "A one-character string used to quote fields containing special characters, " "such as the *delimiter* or *quotechar*, or which contain new-line " @@ -544,7 +549,7 @@ msgstr "" "des caractères spéciaux, comme *delimiter* ou *quotechar*, ou contenant un " "caractère de fin de ligne. Elle vaut ``'\"'`` par défaut." -#: ../Doc/library/csv.rst:378 +#: library/csv.rst:382 msgid "" "Controls when quotes should be generated by the writer and recognised by the " "reader. It can take on any of the :const:`QUOTE_\\*` constants (see " @@ -555,7 +560,7 @@ msgstr "" "const:`QUOTE_\\*` (voir la section :ref:`csv-contents`) et vaut par défaut :" "const:`QUOTE_MINIMAL`." -#: ../Doc/library/csv.rst:385 +#: library/csv.rst:389 msgid "" "When :const:`True`, whitespace immediately following the *delimiter* is " "ignored. The default is :const:`False`." @@ -563,7 +568,7 @@ msgstr "" "Quand il vaut :const:`True`, les espaces suivant directement *delimiter* " "sont ignorés. Il vaut :const:`False` par défaut." -#: ../Doc/library/csv.rst:391 +#: library/csv.rst:395 msgid "" "When ``True``, raise exception :exc:`Error` on bad CSV input. The default is " "``False``." @@ -571,11 +576,11 @@ msgstr "" "Quand il vaut ``True``, une exception :exc:`Error` est levée lors de " "mauvaises entrées CSV. Il vaut ``False`` par défaut." -#: ../Doc/library/csv.rst:395 +#: library/csv.rst:399 msgid "Reader Objects" msgstr "Objets lecteurs" -#: ../Doc/library/csv.rst:397 +#: library/csv.rst:401 msgid "" "Reader objects (:class:`DictReader` instances and objects returned by the :" "func:`reader` function) have the following public methods:" @@ -583,7 +588,7 @@ msgstr "" "Les objets lecteurs (instances de :class:`DictReader` ou objets renvoyés par " "la fonction :func:`reader`) ont les méthodes publiques suivantes :" -#: ../Doc/library/csv.rst:402 +#: library/csv.rst:406 msgid "" "Return the next row of the reader's iterable object as a list (if the object " "was returned from :func:`reader`) or a dict (if it is a :class:`DictReader` " @@ -595,15 +600,15 @@ msgstr "" "est un :class:`DictReader`), analysé suivant le dialecte courant. " "Généralement, vous devez appeler la méthode à l'aide de ``next(reader)``." -#: ../Doc/library/csv.rst:408 +#: library/csv.rst:412 msgid "Reader objects have the following public attributes:" msgstr "Les objets lecteurs ont les attributs publics suivants :" -#: ../Doc/library/csv.rst:412 +#: library/csv.rst:416 msgid "A read-only description of the dialect in use by the parser." msgstr "Une description en lecture seule du dialecte utilisé par l'analyseur." -#: ../Doc/library/csv.rst:417 +#: library/csv.rst:421 msgid "" "The number of lines read from the source iterator. This is not the same as " "the number of records returned, as records can span multiple lines." @@ -612,11 +617,11 @@ msgstr "" "au nombre d'enregistrements renvoyés, puisque certains enregistrements " "peuvent s'étendre sur plusieurs lignes." -#: ../Doc/library/csv.rst:421 +#: library/csv.rst:425 msgid "DictReader objects have the following public attribute:" msgstr "Les objets *DictReader* ont les attributs publics suivants :" -#: ../Doc/library/csv.rst:425 +#: library/csv.rst:429 msgid "" "If not passed as a parameter when creating the object, this attribute is " "initialized upon first access or when the first record is read from the file." @@ -625,11 +630,11 @@ msgstr "" "est initialisé lors du premier accès ou quand le premier enregistrement est " "lu depuis le fichier." -#: ../Doc/library/csv.rst:432 +#: library/csv.rst:436 msgid "Writer Objects" msgstr "Objets transcripteurs" -#: ../Doc/library/csv.rst:434 +#: library/csv.rst:438 msgid "" ":class:`Writer` objects (:class:`DictWriter` instances and objects returned " "by the :func:`writer` function) have the following public methods. A *row* " @@ -650,7 +655,7 @@ msgstr "" "quelques problèmes pour d'autres programmes qui liraient ces fichiers CSV " "(en supposant qu'ils supportent les nombres complexes)." -#: ../Doc/library/csv.rst:445 +#: library/csv.rst:449 msgid "" "Write the *row* parameter to the writer's file object, formatted according " "to the current dialect. Return the return value of the call to the *write* " @@ -660,11 +665,11 @@ msgstr "" "selon le dialecte courant. Renvoie la valeur de retour de l'appel à la " "méthode *write* de l'objet fichier sous-jacent." -#: ../Doc/library/csv.rst:449 +#: library/csv.rst:453 msgid "Added support of arbitrary iterables." msgstr "Ajout du support d'itérables arbitraires." -#: ../Doc/library/csv.rst:454 +#: library/csv.rst:458 msgid "" "Write all elements in *rows* (an iterable of *row* objects as described " "above) to the writer's file object, formatted according to the current " @@ -674,49 +679,55 @@ msgstr "" "précédemment) vers le fichier associé au transcripteur, formatés selon le " "dialecte courant." -#: ../Doc/library/csv.rst:458 +#: library/csv.rst:462 msgid "Writer objects have the following public attribute:" msgstr "Les objets transcripteurs ont les attributs publics suivants :" -#: ../Doc/library/csv.rst:463 +#: library/csv.rst:467 msgid "A read-only description of the dialect in use by the writer." msgstr "" "Une description en lecture seule du dialecte utilisé par le transcripteur." -#: ../Doc/library/csv.rst:466 +#: library/csv.rst:470 msgid "DictWriter objects have the following public method:" msgstr "Les objets *DictWriter* ont les attributs publics suivants :" -#: ../Doc/library/csv.rst:471 +#: library/csv.rst:475 msgid "" "Write a row with the field names (as specified in the constructor) to the " "writer's file object, formatted according to the current dialect. Return the " "return value of the :meth:`csvwriter.writerow` call used internally." msgstr "" +"Écrit une ligne avec le nom des en-têtes (comme définies dans le " +"constructeur) dans l'objet fichier associé au transcripteur, formatée selon " +"le dialecte courant. Renvoie la valeur de retour de l'appel :meth:`csvwriter." +"writerow` utilisé en interne." -#: ../Doc/library/csv.rst:476 +#: library/csv.rst:480 msgid "" ":meth:`writeheader` now also returns the value returned by the :meth:" "`csvwriter.writerow` method it uses internally." msgstr "" +":meth:`writeheader` renvoie maintenant aussi la valeur renvoyée par la " +"méthode :meth:`csvwriter.writerow` qu'il utilise en interne." -#: ../Doc/library/csv.rst:484 +#: library/csv.rst:488 msgid "Examples" msgstr "Exemples" -#: ../Doc/library/csv.rst:486 +#: library/csv.rst:490 msgid "The simplest example of reading a CSV file::" -msgstr "Le plus simple exemple de lecture d'un fichier CSV : ::" +msgstr "Le plus simple exemple de lecture d'un fichier CSV ::" -#: ../Doc/library/csv.rst:494 +#: library/csv.rst:498 msgid "Reading a file with an alternate format::" -msgstr "Lire un fichier avec un format alternatif : ::" +msgstr "Lire un fichier avec un format alternatif ::" -#: ../Doc/library/csv.rst:502 +#: library/csv.rst:506 msgid "The corresponding simplest possible writing example is::" -msgstr "Le plus simple exemple d'écriture correspondant est : ::" +msgstr "Le plus simple exemple d'écriture correspondant est ::" -#: ../Doc/library/csv.rst:509 +#: library/csv.rst:513 msgid "" "Since :func:`open` is used to open a CSV file for reading, the file will by " "default be decoded into unicode using the system default encoding (see :func:" @@ -727,9 +738,9 @@ msgstr "" "fichier sera par défaut décodé vers Unicode en utilisant l'encodage par " "défaut (voir :func:`locale.getpreferredencoding`). Pour décoder un fichier " "utilisant un encodage différent, utilisez l'argument ``encoding`` de " -"*open* : ::" +"*open* ::" -#: ../Doc/library/csv.rst:520 +#: library/csv.rst:524 msgid "" "The same applies to writing in something other than the system default " "encoding: specify the encoding argument when opening the output file." @@ -738,31 +749,31 @@ msgstr "" "par défaut du système : spécifiez l'encodage en argument lors de l'ouverture " "du fichier de sortie." -#: ../Doc/library/csv.rst:523 +#: library/csv.rst:527 msgid "Registering a new dialect::" -msgstr "Enregistrer un nouveau dialecte : ::" +msgstr "Enregistrer un nouveau dialecte ::" -#: ../Doc/library/csv.rst:530 +#: library/csv.rst:534 msgid "" "A slightly more advanced use of the reader --- catching and reporting " "errors::" msgstr "" "Un exemple d'utilisation un peu plus avancé du lecteur --- attrapant et " -"notifiant les erreurs : ::" +"notifiant les erreurs ::" -#: ../Doc/library/csv.rst:542 +#: library/csv.rst:546 msgid "" "And while the module doesn't directly support parsing strings, it can easily " "be done::" msgstr "" "Et bien que le module ne permette pas d'analyser directement des chaînes, " -"cela peut être fait facilement : ::" +"cela peut être fait facilement ::" -#: ../Doc/library/csv.rst:551 +#: library/csv.rst:555 msgid "Footnotes" msgstr "Notes" -#: ../Doc/library/csv.rst:552 +#: library/csv.rst:556 msgid "" "If ``newline=''`` is not specified, newlines embedded inside quoted fields " "will not be interpreted correctly, and on platforms that use ``\\r\\n`` " diff --git a/library/ctypes.po b/library/ctypes.po index d09cac840b..cd60ae3907 100644 --- a/library/ctypes.po +++ b/library/ctypes.po @@ -5,56 +5,73 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-12-05 23:16+0100\n" -"PO-Revision-Date: 2018-07-29 19:07+0200\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" +"PO-Revision-Date: 2020-04-27 22:21+0200\n" +"Last-Translator: Antoine Wecxsteen\n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.4\n" -#: ../Doc/library/ctypes.rst:2 +#: library/ctypes.rst:2 msgid ":mod:`ctypes` --- A foreign function library for Python" -msgstr "" +msgstr ":mod:`ctypes` — Bibliothèque Python d'appels à des fonctions externes" -#: ../Doc/library/ctypes.rst:11 +#: library/ctypes.rst:11 msgid "" ":mod:`ctypes` is a foreign function library for Python. It provides C " "compatible data types, and allows calling functions in DLLs or shared " "libraries. It can be used to wrap these libraries in pure Python." msgstr "" +":mod:`ctypes` est une bibliothèque d'appel à des fonctions externes en " +"python. Elle fournit des types de données compatibles avec le langage C et " +"permet d'appeler des fonctions depuis des DLL ou des bibliothèques " +"partagées, rendant ainsi possible l'interfaçage de ces bibliothèques avec du " +"pur code Python." -#: ../Doc/library/ctypes.rst:19 +#: library/ctypes.rst:19 msgid "ctypes tutorial" -msgstr "" +msgstr "Didacticiel de *ctypes*" -#: ../Doc/library/ctypes.rst:21 +#: library/ctypes.rst:21 msgid "" "Note: The code samples in this tutorial use :mod:`doctest` to make sure that " "they actually work. Since some code samples behave differently under Linux, " "Windows, or Mac OS X, they contain doctest directives in comments." msgstr "" +"Remarque : Les exemples de code de ce didacticiel utilisent :mod:`doctest` " +"pour s'assurer de leur propre bon fonctionnement. Vu que certains de ces " +"exemples ont un comportement différent en Linux, Windows ou Mac OS X, ils " +"contiennent des directives *doctest* dans les commentaires." -#: ../Doc/library/ctypes.rst:25 +#: library/ctypes.rst:25 msgid "" "Note: Some code samples reference the ctypes :class:`c_int` type. On " "platforms where ``sizeof(long) == sizeof(int)`` it is an alias to :class:" "`c_long`. So, you should not be confused if :class:`c_long` is printed if " "you would expect :class:`c_int` --- they are actually the same type." msgstr "" +"Remarque : Le type :class:`c_int` du module apparaît dans certains de ces " +"exemples. Sur les plates-formes où ``sizeof(long) == sizeof(int)``, ce type " +"est un alias de :class:`c_long`. Ne soyez donc pas surpris si :class:" +"`c_long` s'affiche là où vous vous attendiez à :class:`c_int` — il s'agit " +"bien du même type." -#: ../Doc/library/ctypes.rst:33 +#: library/ctypes.rst:33 msgid "Loading dynamic link libraries" -msgstr "" +msgstr "Chargement des DLL" -#: ../Doc/library/ctypes.rst:35 +#: library/ctypes.rst:35 msgid "" ":mod:`ctypes` exports the *cdll*, and on Windows *windll* and *oledll* " "objects, for loading dynamic link libraries." msgstr "" +":mod:`ctypes` fournit l'objet *cdll* pour charger des bibliothèques à liens " +"dynamiques (et les objets *windll* et *oledll* en Windows)." -#: ../Doc/library/ctypes.rst:38 +#: library/ctypes.rst:38 msgid "" "You load libraries by accessing them as attributes of these objects. *cdll* " "loads libraries which export functions using the standard ``cdecl`` calling " @@ -64,33 +81,51 @@ msgid "" "error code is used to automatically raise an :class:`OSError` exception when " "the function call fails." msgstr "" +"Une bibliothèque se charge en y accédant comme un attribut de ces objets. " +"*cdll* charge les bibliothèques qui exportent des fonctions utilisant la " +"convention d'appel standard ``cdecl``, alors que les bibliothèques qui se " +"chargent avec *windll* utilisent la convention d'appel ``stdcall``. *oledll* " +"utilise elle aussi la convention ``stdcall`` et suppose que les fonctions " +"renvoient un code d'erreur :c:type:`HRESULT` de Windows. Ce code d'erreur " +"est utilisé pour lever automatiquement une :class:`OSError` quand l'appel de " +"la fonction échoue." -#: ../Doc/library/ctypes.rst:46 +#: library/ctypes.rst:46 msgid "" "Windows errors used to raise :exc:`WindowsError`, which is now an alias of :" "exc:`OSError`." msgstr "" +"En Windows, les erreurs levaient auparavant une :exc:`WindowsError`, qui est " +"maintenant un alias de :exc:`OSError`." -#: ../Doc/library/ctypes.rst:51 +#: library/ctypes.rst:51 msgid "" "Here are some examples for Windows. Note that ``msvcrt`` is the MS standard " "C library containing most standard C functions, and uses the cdecl calling " "convention::" msgstr "" +"Voici quelques exemples Windows. ``msvcrt`` est la bibliothèque standard C " +"de Microsoft qui contient la plupart des fonctions standards C. Elle suit la " +"convention d'appel *cdecl* ::" -#: ../Doc/library/ctypes.rst:63 +#: library/ctypes.rst:63 msgid "Windows appends the usual ``.dll`` file suffix automatically." -msgstr "" +msgstr "Windows ajoute le suffixe habituel ``.dll`` automatiquement." -#: ../Doc/library/ctypes.rst:66 +#: library/ctypes.rst:66 msgid "" "Accessing the standard C library through ``cdll.msvcrt`` will use an " "outdated version of the library that may be incompatible with the one being " "used by Python. Where possible, use native Python functionality, or else " "import and use the ``msvcrt`` module." msgstr "" +"Accéder à la bibliothèque standard C par ``cdll.msvcrt`` utilise une version " +"obsolète de la bibliothèque qui peut avoir des problèmes de compatibilité " +"avec celle que Python utilise. Si possible, mieux vaut utiliser la " +"fonctionnalité native de Python, ou bien importer et utiliser le module " +"``msvcrt``." -#: ../Doc/library/ctypes.rst:71 +#: library/ctypes.rst:71 msgid "" "On Linux, it is required to specify the filename *including* the extension " "to load a library, so attribute access can not be used to load libraries. " @@ -98,16 +133,21 @@ msgid "" "you should load the library by creating an instance of CDLL by calling the " "constructor::" msgstr "" +"Pour charger une bibliothèque en Linux, il faut passer le nom du fichier " +"*avec* son extension. Il est donc impossible de charger une bibliothèque en " +"accédant à un attribut. Il faut utiliser la méthode :meth:`LoadLibrary` des " +"chargeurs de DLL, ou bien charger la bibliothèque en créant une instance de " +"*CDLL* en appelant son constructeur ::" -#: ../Doc/library/ctypes.rst:89 +#: library/ctypes.rst:89 msgid "Accessing functions from loaded dlls" -msgstr "" +msgstr "Accès aux fonctions des DLL chargées" -#: ../Doc/library/ctypes.rst:91 +#: library/ctypes.rst:91 msgid "Functions are accessed as attributes of dll objects::" -msgstr "" +msgstr "Les fonctions sont alors des attributs des objets DLL ::" -#: ../Doc/library/ctypes.rst:106 +#: library/ctypes.rst:106 msgid "" "Note that win32 system dlls like ``kernel32`` and ``user32`` often export " "ANSI as well as UNICODE versions of a function. The UNICODE version is " @@ -117,82 +157,111 @@ msgid "" "following C prototype, and a macro is used to expose one of them as " "``GetModuleHandle`` depending on whether UNICODE is defined or not::" msgstr "" +"Les DLL des systèmes *win32* comme ``kernel32`` et ``user32`` exportent " +"souvent une version ANSI et une version UNICODE d'une fonction. La version " +"UNICODE est exportée avec un ``W`` à la fin, et la version ANSI avec un " +"``A``. La fonction *win32* ``GetModuleHandle``, qui renvoie un *gestionnaire " +"de module* à partir de son nom, a le prototype C suivant (c'est une macro " +"qui décide d'exporter l'une ou l'autre à travers ``GetModuleHandle``, selon " +"qu'UNICODE est définie ou non) ::" -#: ../Doc/library/ctypes.rst:119 +#: library/ctypes.rst:119 msgid "" "*windll* does not try to select one of them by magic, you must access the " "version you need by specifying ``GetModuleHandleA`` or ``GetModuleHandleW`` " "explicitly, and then call it with bytes or string objects respectively." msgstr "" +"*windll* n'en choisit pas une par magie, il faut accéder à la bonne en " +"écrivant explicitement ``GetModuleHandleA`` ou ``GetModuleHandleW`` et en " +"les appelant ensuite avec des objets octets ou avec des chaînes de " +"caractères, respectivement." -#: ../Doc/library/ctypes.rst:123 +#: library/ctypes.rst:123 msgid "" "Sometimes, dlls export functions with names which aren't valid Python " "identifiers, like ``\"??2@YAPAXI@Z\"``. In this case you have to use :func:" "`getattr` to retrieve the function::" msgstr "" +"Les DLL exportent parfois des fonctions dont les noms ne sont pas des " +"identifiants Python valides, comme ``\"??2@YAPAXI@Z\"``. Dans ce cas, il " +"faut utiliser :func:`getattr` pour accéder à la fonction ::" -#: ../Doc/library/ctypes.rst:131 +#: library/ctypes.rst:131 msgid "" "On Windows, some dlls export functions not by name but by ordinal. These " "functions can be accessed by indexing the dll object with the ordinal " "number::" msgstr "" +"Sous Windows, certaines DLL exportent des fonctions à travers un indice " +"plutôt qu'à travers un nom. On accède à une fonction en indiçant l'objet DLL " +"avec son index ::" -#: ../Doc/library/ctypes.rst:148 +#: library/ctypes.rst:148 msgid "Calling functions" -msgstr "" +msgstr "Appel de fonctions" -#: ../Doc/library/ctypes.rst:150 +#: library/ctypes.rst:150 msgid "" "You can call these functions like any other Python callable. This example " "uses the ``time()`` function, which returns system time in seconds since the " "Unix epoch, and the ``GetModuleHandleA()`` function, which returns a win32 " "module handle." msgstr "" +"Ces fonctions s'appellent comme n'importe quel appelable Python. Cet exemple " +"utilise la fonction ``time()``, qui renvoie le temps en secondes du système " +"depuis l'*epoch* Unix, et la fonction ``GetModuleHandleA()``, qui renvoie un " +"gestionnaire de module *win32*." -#: ../Doc/library/ctypes.rst:155 +#: library/ctypes.rst:155 msgid "" "This example calls both functions with a ``NULL`` pointer (``None`` should " "be used as the ``NULL`` pointer)::" msgstr "" +"Cet exemple appelle les deux fonctions avec un pointeur ``NULL`` (on utilise " +"``None`` pour passer un pointeur ``NULL``) ::" -#: ../Doc/library/ctypes.rst:166 -msgid "" -":mod:`ctypes` may raise a :exc:`ValueError` after calling the function, if " -"it detects that an invalid number of arguments were passed. This behavior " -"should not be relied upon. It is deprecated in 3.6.2, and will be removed " -"in 3.7." -msgstr "" - -#: ../Doc/library/ctypes.rst:171 +#: library/ctypes.rst:164 msgid "" ":exc:`ValueError` is raised when you call an ``stdcall`` function with the " "``cdecl`` calling convention, or vice versa::" msgstr "" +"Une :exc:`ValueError` est levée quand on appelle une fonction ``stdcall`` " +"avec la convention d'appel ``cdecl`` et vice-versa ::" -#: ../Doc/library/ctypes.rst:186 +#: library/ctypes.rst:179 msgid "" "To find out the correct calling convention you have to look into the C " "header file or the documentation for the function you want to call." msgstr "" +"Pour déterminer la convention d'appel, il faut consulter l'en-tête C ou la " +"documentation de la fonction à appeler." -#: ../Doc/library/ctypes.rst:189 +#: library/ctypes.rst:182 msgid "" "On Windows, :mod:`ctypes` uses win32 structured exception handling to " "prevent crashes from general protection faults when functions are called " "with invalid argument values::" msgstr "" +"En Windows, :mod:`ctypes` tire profit de la gestion structurée des " +"exceptions (*structured exception handling*) *win32* pour empêcher les " +"plantages dus à des interruptions, afin de préserver la protection globale " +"(*general protection faults*) du système, lorsque des fonctions sont " +"appelées avec un nombre incorrect d'arguments ::" -#: ../Doc/library/ctypes.rst:199 +#: library/ctypes.rst:192 msgid "" "There are, however, enough ways to crash Python with :mod:`ctypes`, so you " "should be careful anyway. The :mod:`faulthandler` module can be helpful in " "debugging crashes (e.g. from segmentation faults produced by erroneous C " "library calls)." msgstr "" +"Cependant, il y a suffisamment de façons de faire planter Python avec :mod:" +"`ctypes`, donc il faut être prudent dans tous les cas. Le module :mod:" +"`faulthandler` est pratique pour déboguer les plantages (p. ex. dus à des " +"erreurs de segmentation produites par des appels erronés à la bibliothèque " +"C)." -#: ../Doc/library/ctypes.rst:204 +#: library/ctypes.rst:197 msgid "" "``None``, integers, bytes objects and (unicode) strings are the only native " "Python objects that can directly be used as parameters in these function " @@ -202,259 +271,275 @@ msgid "" "platforms default C :c:type:`int` type, their value is masked to fit into " "the C type." msgstr "" +"``None``, les entiers, les objets octets et les chaînes de caractères " +"(Unicode) sont les seuls types natifs de Python qui peuvent être directement " +"passés en paramètres de ces appels de fonctions. ``None`` est passé comme le " +"pointeur C ``NULL``, les objets octets et les chaînes de caractères sont " +"passés comme un pointeur sur le bloc mémoire qui contient la donnée (:c:type:" +"`char *` ou :c:type:`wchar_t *`). Les entiers Python sont passés comme le " +"type C :c:type:`int` par défaut de la plate-forme, un masque étant appliqué " +"pour qu'ils tiennent dans le type C." -#: ../Doc/library/ctypes.rst:211 +#: library/ctypes.rst:204 msgid "" "Before we move on calling functions with other parameter types, we have to " "learn more about :mod:`ctypes` data types." msgstr "" +"Avant de poursuivre sur l'appel de fonctions avec d'autres types de " +"paramètres, apprenons-en un peu plus sur les types de données de :mod:" +"`ctypes`." -#: ../Doc/library/ctypes.rst:218 ../Doc/library/ctypes.rst:2135 +#: library/ctypes.rst:2143 msgid "Fundamental data types" -msgstr "" +msgstr "Types de données fondamentaux" -#: ../Doc/library/ctypes.rst:220 +#: library/ctypes.rst:213 msgid ":mod:`ctypes` defines a number of primitive C compatible data types:" msgstr "" +":mod:`ctypes` définit plusieurs types de donnée de base compatibles avec le " +"C :" -#: ../Doc/library/ctypes.rst:223 +#: library/ctypes.rst:216 msgid "ctypes type" -msgstr "Type *ctype*" +msgstr "Types de *ctypes*" -#: ../Doc/library/ctypes.rst:223 +#: library/ctypes.rst:216 msgid "C type" msgstr "Type C" -#: ../Doc/library/ctypes.rst:223 +#: library/ctypes.rst:216 msgid "Python type" msgstr "Type Python" -#: ../Doc/library/ctypes.rst:225 +#: library/ctypes.rst:218 msgid ":class:`c_bool`" msgstr ":class:`c_bool`" -#: ../Doc/library/ctypes.rst:225 +#: library/ctypes.rst:218 msgid ":c:type:`_Bool`" msgstr ":c:type:`_Bool`" -#: ../Doc/library/ctypes.rst:225 +#: library/ctypes.rst:218 msgid "bool (1)" -msgstr "bool (1)" +msgstr "*bool* (1)" -#: ../Doc/library/ctypes.rst:227 +#: library/ctypes.rst:220 msgid ":class:`c_char`" msgstr ":class:`c_char`" -#: ../Doc/library/ctypes.rst:227 ../Doc/library/ctypes.rst:231 +#: library/ctypes.rst:224 msgid ":c:type:`char`" msgstr ":c:type:`char`" -#: ../Doc/library/ctypes.rst:227 +#: library/ctypes.rst:220 msgid "1-character bytes object" -msgstr "" +msgstr "objet octet (*bytes*) de 1 caractère" -#: ../Doc/library/ctypes.rst:229 +#: library/ctypes.rst:222 msgid ":class:`c_wchar`" msgstr ":class:`c_wchar`" -#: ../Doc/library/ctypes.rst:229 +#: library/ctypes.rst:222 msgid ":c:type:`wchar_t`" msgstr ":c:type:`wchar_t`" -#: ../Doc/library/ctypes.rst:229 +#: library/ctypes.rst:222 msgid "1-character string" -msgstr "" +msgstr "chaîne de caractères (*string*) de longueur 1" -#: ../Doc/library/ctypes.rst:231 +#: library/ctypes.rst:224 msgid ":class:`c_byte`" msgstr ":class:`c_byte`" -#: ../Doc/library/ctypes.rst:231 ../Doc/library/ctypes.rst:233 -#: ../Doc/library/ctypes.rst:235 ../Doc/library/ctypes.rst:237 -#: ../Doc/library/ctypes.rst:239 ../Doc/library/ctypes.rst:241 -#: ../Doc/library/ctypes.rst:243 ../Doc/library/ctypes.rst:245 -#: ../Doc/library/ctypes.rst:247 ../Doc/library/ctypes.rst:249 -#: ../Doc/library/ctypes.rst:252 ../Doc/library/ctypes.rst:254 +#: library/ctypes.rst:226 library/ctypes.rst:230 library/ctypes.rst:234 +#: library/ctypes.rst:238 library/ctypes.rst:242 library/ctypes.rst:247 msgid "int" msgstr "*int*" -#: ../Doc/library/ctypes.rst:233 +#: library/ctypes.rst:226 msgid ":class:`c_ubyte`" msgstr ":class:`c_ubyte`" -#: ../Doc/library/ctypes.rst:233 +#: library/ctypes.rst:226 msgid ":c:type:`unsigned char`" msgstr ":c:type:`unsigned char`" -#: ../Doc/library/ctypes.rst:235 +#: library/ctypes.rst:228 msgid ":class:`c_short`" msgstr ":class:`c_short`" -#: ../Doc/library/ctypes.rst:235 +#: library/ctypes.rst:228 msgid ":c:type:`short`" msgstr ":c:type:`short`" -#: ../Doc/library/ctypes.rst:237 +#: library/ctypes.rst:230 msgid ":class:`c_ushort`" msgstr ":class:`c_ushort`" -#: ../Doc/library/ctypes.rst:237 +#: library/ctypes.rst:230 msgid ":c:type:`unsigned short`" msgstr ":c:type:`unsigned short`" -#: ../Doc/library/ctypes.rst:239 +#: library/ctypes.rst:232 msgid ":class:`c_int`" msgstr ":class:`c_int`" -#: ../Doc/library/ctypes.rst:239 +#: library/ctypes.rst:232 msgid ":c:type:`int`" msgstr ":c:type:`int`" -#: ../Doc/library/ctypes.rst:241 +#: library/ctypes.rst:234 msgid ":class:`c_uint`" msgstr ":class:`c_uint`" -#: ../Doc/library/ctypes.rst:241 +#: library/ctypes.rst:234 msgid ":c:type:`unsigned int`" msgstr ":c:type:`unsigned int`" -#: ../Doc/library/ctypes.rst:243 +#: library/ctypes.rst:236 msgid ":class:`c_long`" msgstr ":class:`c_long`" -#: ../Doc/library/ctypes.rst:243 +#: library/ctypes.rst:236 msgid ":c:type:`long`" msgstr ":c:type:`long`" -#: ../Doc/library/ctypes.rst:245 +#: library/ctypes.rst:238 msgid ":class:`c_ulong`" msgstr ":class:`c_ulong`" -#: ../Doc/library/ctypes.rst:245 +#: library/ctypes.rst:238 msgid ":c:type:`unsigned long`" msgstr ":c:type:`unsigned long`" -#: ../Doc/library/ctypes.rst:247 +#: library/ctypes.rst:240 msgid ":class:`c_longlong`" msgstr ":class:`c_longlong`" -#: ../Doc/library/ctypes.rst:247 +#: library/ctypes.rst:240 msgid ":c:type:`__int64` or :c:type:`long long`" msgstr ":c:type:`__int64` ou :c:type:`long long`" -#: ../Doc/library/ctypes.rst:249 +#: library/ctypes.rst:242 msgid ":class:`c_ulonglong`" msgstr ":class:`c_ulonglong`" -#: ../Doc/library/ctypes.rst:249 +#: library/ctypes.rst:242 msgid ":c:type:`unsigned __int64` or :c:type:`unsigned long long`" -msgstr "" +msgstr ":c:type:`unsigned __int64` ou :c:type:`unsigned long long`" -#: ../Doc/library/ctypes.rst:252 +#: library/ctypes.rst:245 msgid ":class:`c_size_t`" msgstr ":class:`c_size_t`" -#: ../Doc/library/ctypes.rst:252 +#: library/ctypes.rst:245 msgid ":c:type:`size_t`" msgstr ":c:type:`size_t`" -#: ../Doc/library/ctypes.rst:254 +#: library/ctypes.rst:247 msgid ":class:`c_ssize_t`" msgstr ":class:`c_ssize_t`" -#: ../Doc/library/ctypes.rst:254 +#: library/ctypes.rst:247 msgid ":c:type:`ssize_t` or :c:type:`Py_ssize_t`" msgstr ":c:type:`ssize_t` ou :c:type:`Py_ssize_t`" -#: ../Doc/library/ctypes.rst:257 +#: library/ctypes.rst:250 msgid ":class:`c_float`" msgstr ":class:`c_float`" -#: ../Doc/library/ctypes.rst:257 +#: library/ctypes.rst:250 msgid ":c:type:`float`" msgstr ":c:type:`float`" -#: ../Doc/library/ctypes.rst:257 ../Doc/library/ctypes.rst:259 -#: ../Doc/library/ctypes.rst:261 +#: library/ctypes.rst:252 library/ctypes.rst:254 msgid "float" msgstr "*float*" -#: ../Doc/library/ctypes.rst:259 +#: library/ctypes.rst:252 msgid ":class:`c_double`" msgstr ":class:`c_double`" -#: ../Doc/library/ctypes.rst:259 +#: library/ctypes.rst:252 msgid ":c:type:`double`" msgstr ":c:type:`double`" -#: ../Doc/library/ctypes.rst:261 +#: library/ctypes.rst:254 msgid ":class:`c_longdouble`" msgstr ":class:`c_longdouble`" -#: ../Doc/library/ctypes.rst:261 +#: library/ctypes.rst:254 msgid ":c:type:`long double`" msgstr ":c:type:`long double`" -#: ../Doc/library/ctypes.rst:263 +#: library/ctypes.rst:256 msgid ":class:`c_char_p`" msgstr ":class:`c_char_p`" -#: ../Doc/library/ctypes.rst:263 +#: library/ctypes.rst:256 msgid ":c:type:`char *` (NUL terminated)" -msgstr ":c:type:`char *` (NUL terminated)" +msgstr ":c:type:`char *` (terminé par NUL)" -#: ../Doc/library/ctypes.rst:263 +#: library/ctypes.rst:256 msgid "bytes object or ``None``" -msgstr "objet *bytes* ou ``None``" +msgstr "objet octet (*bytes*) ou ``None``" -#: ../Doc/library/ctypes.rst:265 +#: library/ctypes.rst:258 msgid ":class:`c_wchar_p`" msgstr ":class:`c_wchar_p`" -#: ../Doc/library/ctypes.rst:265 +#: library/ctypes.rst:258 msgid ":c:type:`wchar_t *` (NUL terminated)" -msgstr ":c:type:`wchar_t *` (Terminé par NUL)" +msgstr ":c:type:`wchar_t *` (terminé par NUL)" -#: ../Doc/library/ctypes.rst:265 +#: library/ctypes.rst:258 msgid "string or ``None``" -msgstr "string ou ``None``" +msgstr "chaîne de caractères (*string*) ou ``None``" -#: ../Doc/library/ctypes.rst:267 +#: library/ctypes.rst:260 msgid ":class:`c_void_p`" msgstr ":class:`c_void_p`" -#: ../Doc/library/ctypes.rst:267 +#: library/ctypes.rst:260 msgid ":c:type:`void *`" msgstr ":c:type:`void *`" -#: ../Doc/library/ctypes.rst:267 +#: library/ctypes.rst:260 msgid "int or ``None``" -msgstr "``int`` ou ``None``" +msgstr "*int* ou ``None``" -#: ../Doc/library/ctypes.rst:271 +#: library/ctypes.rst:264 msgid "The constructor accepts any object with a truth value." -msgstr "" +msgstr "Le constructeur accepte n'importe quel objet convertible en booléen." -#: ../Doc/library/ctypes.rst:273 +#: library/ctypes.rst:266 msgid "" "All these types can be created by calling them with an optional initializer " "of the correct type and value::" msgstr "" +"Il est possible de créer chacun de ces types en les appelant avec une valeur " +"d'initialisation du bon type et avec une valeur cohérente ::" -#: ../Doc/library/ctypes.rst:284 +#: library/ctypes.rst:277 msgid "" "Since these types are mutable, their value can also be changed afterwards::" msgstr "" +"Ces types étant des muables, leur valeur peut aussi être modifiée après " +"coup ::" -#: ../Doc/library/ctypes.rst:296 +#: library/ctypes.rst:289 msgid "" "Assigning a new value to instances of the pointer types :class:`c_char_p`, :" "class:`c_wchar_p`, and :class:`c_void_p` changes the *memory location* they " "point to, *not the contents* of the memory block (of course not, because " "Python bytes objects are immutable)::" msgstr "" +"Affecter une nouvelle valeur à une instance de type pointeur — :class:" +"`c_char_p`, :class:`c_wchar_p` et :class:`c_void_p` — change *la zone " +"mémoire* sur laquelle elle pointe, et non *le contenu* de ce bloc mémoire " +"(c'est logique parce que les objets octets sont immuables en Python) ::" -#: ../Doc/library/ctypes.rst:316 +#: library/ctypes.rst:309 msgid "" "You should be careful, however, not to pass them to functions expecting " "pointers to mutable memory. If you need mutable memory blocks, ctypes has a :" @@ -463,8 +548,14 @@ msgid "" "``raw`` property; if you want to access it as NUL terminated string, use the " "``value`` property::" msgstr "" +"Cependant, prenez garde à ne pas en passer à des fonctions qui prennent en " +"paramètre des pointeurs sur de la mémoire modifiable. S'il vous faut de la " +"mémoire modifiable, *ctypes* fournit la fonction :func:" +"`create_string_buffer` qui en crée de plusieurs façons. L'attribut ``raw`` " +"permet d'accéder à (ou de modifier) un bloc mémoire ; l'attribut ``value`` " +"permet d'y accéder comme à une chaîne de caractères terminée par NUL ::" -#: ../Doc/library/ctypes.rst:340 +#: library/ctypes.rst:333 msgid "" "The :func:`create_string_buffer` function replaces the :func:`c_buffer` " "function (which is still available as an alias), as well as the :func:" @@ -472,70 +563,100 @@ msgid "" "memory block containing unicode characters of the C type :c:type:`wchar_t` " "use the :func:`create_unicode_buffer` function." msgstr "" +"La fonction :func:`create_string_buffer` remplace les fonctions :func:" +"`c_buffer` (qui en reste un alias) et :func:`c_string` des versions " +"antérieures de *ctypes*. La fonction :func:`create_unicode_buffer` crée un " +"bloc mémoire modifiable contenant des caractères Unicode du type C :c:type:" +"`wchar_t`." -#: ../Doc/library/ctypes.rst:350 +#: library/ctypes.rst:343 msgid "Calling functions, continued" -msgstr "" +msgstr "Appel de fonctions, suite" -#: ../Doc/library/ctypes.rst:352 +#: library/ctypes.rst:345 msgid "" "Note that printf prints to the real standard output channel, *not* to :data:" "`sys.stdout`, so these examples will only work at the console prompt, not " "from within *IDLE* or *PythonWin*::" msgstr "" +"*printf* utilise la vraie sortie standard, et non :data:`sys.stdout` ; les " +"exemples suivants ne fonctionnent donc que dans une invite de commande et " +"non depuis *IDLE* or *PythonWin* ::" -#: ../Doc/library/ctypes.rst:372 +#: library/ctypes.rst:365 msgid "" "As has been mentioned before, all Python types except integers, strings, and " "bytes objects have to be wrapped in their corresponding :mod:`ctypes` type, " "so that they can be converted to the required C data type::" msgstr "" +"Comme mentionné plus haut, tous les types Python (les entiers, les chaînes " +"de caractères et les objets octet exceptés) doivent être encapsulés dans " +"leur type :mod:`ctypes` correspondant pour pouvoir être convertis dans le " +"type C requis ::" -#: ../Doc/library/ctypes.rst:385 +#: library/ctypes.rst:378 msgid "Calling functions with your own custom data types" -msgstr "" +msgstr "Appel de fonctions avec des types de données personnalisés" -#: ../Doc/library/ctypes.rst:387 +#: library/ctypes.rst:380 msgid "" "You can also customize :mod:`ctypes` argument conversion to allow instances " "of your own classes be used as function arguments. :mod:`ctypes` looks for " "an :attr:`_as_parameter_` attribute and uses this as the function argument. " "Of course, it must be one of integer, string, or bytes::" msgstr "" +"Il est possible de personnaliser la conversion des arguments effectuée par :" +"mod:`ctypes` pour permettre de passer en argument des instances de vos " +"propres classes. :mod:`ctypes` recherche un attribut :attr:`_as_parameter_` " +"et le prend comme argument à la fonction. Bien entendu, cet attribut doit " +"être un entier, une chaîne de caractères ou des octets ::" -#: ../Doc/library/ctypes.rst:402 +#: library/ctypes.rst:395 msgid "" "If you don't want to store the instance's data in the :attr:`_as_parameter_` " "instance variable, you could define a :class:`property` which makes the " "attribute available on request." msgstr "" +"Si vous ne souhaitez pas stocker les données de l'instance dans la variable :" +"attr:`_as_parameter_` de l'instance, vous pouvez toujours définir une :class:" +"`propriété ` qui rend cet attribut disponible sur demande." -#: ../Doc/library/ctypes.rst:410 +#: library/ctypes.rst:403 msgid "Specifying the required argument types (function prototypes)" -msgstr "" +msgstr "Définition du type des arguments nécessaires (prototypes de fonction)" -#: ../Doc/library/ctypes.rst:412 +#: library/ctypes.rst:405 msgid "" "It is possible to specify the required argument types of functions exported " "from DLLs by setting the :attr:`argtypes` attribute." msgstr "" +"Il est possible de définir le type des arguments demandés par une fonction " +"exportée depuis une DLL en définissant son attribut :attr:`argtypes`." -#: ../Doc/library/ctypes.rst:415 +#: library/ctypes.rst:408 msgid "" ":attr:`argtypes` must be a sequence of C data types (the ``printf`` function " "is probably not a good example here, because it takes a variable number and " "different types of parameters depending on the format string, on the other " "hand this is quite handy to experiment with this feature)::" msgstr "" +":attr:`argtypes` doit être une séquence de types de données C (la fonction " +"``printf`` n'est probablement pas le meilleur exemple pour l'illustrer, car " +"elle accepte un nombre variable d'arguments de types eux aussi variables, " +"selon la chaîne de formatage ; cela dit, elle se révèle pratique pour tester " +"cette fonctionnalité) ::" -#: ../Doc/library/ctypes.rst:426 +#: library/ctypes.rst:419 msgid "" "Specifying a format protects against incompatible argument types (just as a " "prototype for a C function), and tries to convert the arguments to valid " "types::" msgstr "" +"Définir un format empêche de passer des arguments de type incompatible " +"(comme le fait le prototype d'une fonction C) et tente de convertir les " +"arguments en des types valides ::" -#: ../Doc/library/ctypes.rst:438 +#: library/ctypes.rst:431 msgid "" "If you have defined your own classes which you pass to function calls, you " "have to implement a :meth:`from_param` class method for them to be able to " @@ -547,32 +668,50 @@ msgid "" "the result should be an integer, string, bytes, a :mod:`ctypes` instance, or " "an object with an :attr:`_as_parameter_` attribute." msgstr "" - -#: ../Doc/library/ctypes.rst:452 +"Pour appeler une fonction avec votre propre classe définie dans la séquence :" +"attr:`argtypes`, il est nécessaire d'implémenter une méthode de classe :meth:" +"`from_param`. La méthode de classe :meth:`from_param` récupère l'objet " +"Python passé à la fonction et doit faire une vérification de type ou tout ce " +"qui est nécessaire pour s'assurer que l'objet est valide, puis renvoie " +"l'objet lui-même, son attribut :attr:`_as_parameter_`, ou tout ce que vous " +"voulez passer comme argument fonction C dans ce cas. Encore une fois, il " +"convient que le résultat soit un entier, une chaîne, des octets, une " +"instance :mod:`ctypes` ou un objet avec un attribut :attr:`_as_parameter_`." + +#: library/ctypes.rst:445 msgid "Return types" -msgstr "" +msgstr "Types de sortie" -#: ../Doc/library/ctypes.rst:454 +#: library/ctypes.rst:447 msgid "" "By default functions are assumed to return the C :c:type:`int` type. Other " "return types can be specified by setting the :attr:`restype` attribute of " "the function object." msgstr "" +"Le module suppose que toutes les fonctions renvoient par défaut un :c:type:" +"`int` C. Pour préciser un autre type de sortie, il faut définir l'attribut :" +"attr:`restype` de l'objet encapsulant la fonction." -#: ../Doc/library/ctypes.rst:458 +#: library/ctypes.rst:451 msgid "" "Here is a more advanced example, it uses the ``strchr`` function, which " "expects a string pointer and a char, and returns a pointer to a string::" msgstr "" +"Voici un exemple plus poussé. Celui-ci utilise la fonction ``strchr``, qui " +"prend en paramètres un pointeur vers une chaîne et un caractère. Elle " +"renvoie un pointeur sur une chaîne de caractères ::" -#: ../Doc/library/ctypes.rst:471 +#: library/ctypes.rst:464 msgid "" "If you want to avoid the ``ord(\"x\")`` calls above, you can set the :attr:" "`argtypes` attribute, and the second argument will be converted from a " "single character Python bytes object into a C char::" msgstr "" +"Pour économiser l'appel ``ord(\"x\")``, il est possible de définir " +"l'attribut :attr:`argtypes` ; le second argument, un objet octet à un seul " +"caractère, sera automatiquement converti en un caractère C ::" -#: ../Doc/library/ctypes.rst:489 +#: library/ctypes.rst:482 msgid "" "You can also use a callable Python object (a function or a class for " "example) as the :attr:`restype` attribute, if the foreign function returns " @@ -581,34 +720,52 @@ msgid "" "function call. This is useful to check for error return values and " "automatically raise an exception::" msgstr "" +"Si la fonction à interfacer renvoie un entier, l'attribut :attr:`restype` " +"peut aussi être un appelable (une fonction ou une classe par exemple). Dans " +"ce cas, l'appelable sera appelé avec l'entier renvoyé par la fonction et le " +"résultat de cet appel sera le résultat final de l'appel à la fonction. C'est " +"pratique pour vérifier les codes d'erreurs des valeurs de retour et lever " +"automatiquement des exceptions ::" -#: ../Doc/library/ctypes.rst:512 +#: library/ctypes.rst:505 msgid "" "``WinError`` is a function which will call Windows ``FormatMessage()`` api " "to get the string representation of an error code, and *returns* an " "exception. ``WinError`` takes an optional error code parameter, if no one is " "used, it calls :func:`GetLastError` to retrieve it." msgstr "" +"``WinError`` appelle l'API Windows ``FormatMessage()`` pour obtenir une " +"représentation de la chaîne de caractères qui correspond au code d'erreur, " +"et *renvoie* une exception. ``WinError`` prend en paramètre — optionnel — le " +"code d'erreur. Si celui-ci n'est pas passé, elle appelle :func:" +"`GetLastError` pour le récupérer." -#: ../Doc/library/ctypes.rst:517 +#: library/ctypes.rst:510 msgid "" "Please note that a much more powerful error checking mechanism is available " "through the :attr:`errcheck` attribute; see the reference manual for details." msgstr "" +"Notez cependant que l'attribut :attr:`errcheck` permet de vérifier bien plus " +"efficacement les erreurs ; référez-vous au manuel de référence pour plus de " +"précisions." -#: ../Doc/library/ctypes.rst:524 +#: library/ctypes.rst:517 msgid "Passing pointers (or: passing parameters by reference)" -msgstr "" +msgstr "Passage de pointeurs (passage de paramètres par référence)" -#: ../Doc/library/ctypes.rst:526 +#: library/ctypes.rst:519 msgid "" "Sometimes a C api function expects a *pointer* to a data type as parameter, " "probably to write into the corresponding location, or if the data is too " "large to be passed by value. This is also known as *passing parameters by " "reference*." msgstr "" +"Il arrive qu'une fonction C du code à interfacer requière un *pointeur* vers " +"un certain type de donnée en paramètre, typiquement pour écrire à l'endroit " +"correspondant ou si la donnée est trop grande pour pouvoir être passée par " +"valeur. Ce mécanisme est appelé *passage de paramètres par référence*." -#: ../Doc/library/ctypes.rst:530 +#: library/ctypes.rst:523 msgid "" ":mod:`ctypes` exports the :func:`byref` function which is used to pass " "parameters by reference. The same effect can be achieved with the :func:" @@ -616,78 +773,114 @@ msgid "" "constructs a real pointer object, so it is faster to use :func:`byref` if " "you don't need the pointer object in Python itself::" msgstr "" +":mod:`ctypes` contient la fonction :func:`byref` qui permet de passer des " +"paramètres par référence. La fonction :func:`pointer` a la même utilité, " +"mais fait plus de travail car :func:`pointer` construit un véritable objet " +"pointeur. Ainsi, si vous n'avez pas besoin de cet objet dans votre code " +"Python, utiliser :func:`byref` est plus performant ::" -#: ../Doc/library/ctypes.rst:552 +#: library/ctypes.rst:545 msgid "Structures and unions" -msgstr "" +msgstr "Structures et unions" -#: ../Doc/library/ctypes.rst:554 +#: library/ctypes.rst:547 msgid "" "Structures and unions must derive from the :class:`Structure` and :class:" "`Union` base classes which are defined in the :mod:`ctypes` module. Each " "subclass must define a :attr:`_fields_` attribute. :attr:`_fields_` must be " "a list of *2-tuples*, containing a *field name* and a *field type*." msgstr "" +"Les structures et les unions doivent hériter des classes de base :class:" +"`Structure` et :class:`Union` définies dans le module :mod:`ctypes`. Chaque " +"sous-classe doit définir un attribut :attr:`_fields_`. :attr:`_fields_` doit " +"être une liste de *paires*, contenant un *nom de champ* et un *type de " +"champ*." -#: ../Doc/library/ctypes.rst:559 +#: library/ctypes.rst:552 msgid "" "The field type must be a :mod:`ctypes` type like :class:`c_int`, or any " "other derived :mod:`ctypes` type: structure, union, array, pointer." msgstr "" +"Le type de champ doit être un type :mod:`ctypes` comme :class:`c_int` ou un " +"type :mod:`ctypes` dérivé : structure, union, tableau ou pointeur." -#: ../Doc/library/ctypes.rst:562 +#: library/ctypes.rst:555 msgid "" "Here is a simple example of a POINT structure, which contains two integers " "named *x* and *y*, and also shows how to initialize a structure in the " "constructor::" msgstr "" +"Voici un exemple simple : une structure POINT qui contient deux entiers *x* " +"et *y* et qui montre également comment instancier une structure avec le " +"constructeur ::" -#: ../Doc/library/ctypes.rst:582 +#: library/ctypes.rst:575 msgid "" "You can, however, build much more complicated structures. A structure can " "itself contain other structures by using a structure as a field type." msgstr "" +"Il est bien entendu possible de créer des structures plus complexes. Une " +"structure peut elle-même contenir d'autres structures en prenant une " +"structure comme type de champ." -#: ../Doc/library/ctypes.rst:585 +#: library/ctypes.rst:578 msgid "" "Here is a RECT structure which contains two POINTs named *upperleft* and " "*lowerright*::" msgstr "" +"Voici une structure RECT qui contient deux POINTs *upperleft* et " +"*lowerright* ::" -#: ../Doc/library/ctypes.rst:599 +#: library/ctypes.rst:592 msgid "" "Nested structures can also be initialized in the constructor in several " "ways::" msgstr "" +"Une structure encapsulée peut être instanciée par un constructeur de " +"plusieurs façons ::" -#: ../Doc/library/ctypes.rst:604 +#: library/ctypes.rst:597 msgid "" "Field :term:`descriptor`\\s can be retrieved from the *class*, they are " "useful for debugging because they can provide useful information::" msgstr "" +"Il est possible de récupérer les :term:`descripteurs ` des " +"champs depuis la *classe*. Ils sont importants pour déboguer car ils " +"contiennent des informations utiles ::" -#: ../Doc/library/ctypes.rst:618 +#: library/ctypes.rst:611 msgid "" ":mod:`ctypes` does not support passing unions or structures with bit-fields " "to functions by value. While this may work on 32-bit x86, it's not " "guaranteed by the library to work in the general case. Unions and " "structures with bit-fields should always be passed to functions by pointer." msgstr "" +":mod:`ctypes` ne prend pas en charge le passage par valeur des unions ou des " +"structures avec des champs de bits. Bien que cela puisse fonctionner sur des " +"architectures 32 bits avec un jeu d'instructions x86, ce n'est pas garanti " +"par la bibliothèque en général. Les unions et les structures avec des champs " +"de bits doivent toujours être passées par pointeur." -#: ../Doc/library/ctypes.rst:624 +#: library/ctypes.rst:617 msgid "Structure/union alignment and byte order" -msgstr "" +msgstr "Alignement et boutisme des structures et des unions" -#: ../Doc/library/ctypes.rst:626 +#: library/ctypes.rst:619 +#, fuzzy msgid "" "By default, Structure and Union fields are aligned in the same way the C " -"compiler does it. It is possible to override this behavior be specifying a :" +"compiler does it. It is possible to override this behavior by specifying a :" "attr:`_pack_` class attribute in the subclass definition. This must be set " "to a positive integer and specifies the maximum alignment for the fields. " "This is what ``#pragma pack(n)`` also does in MSVC." msgstr "" +"Par défaut les champs d'une *Structure* ou d'une *Union* sont alignés de la " +"même manière que le ferait un compilateur C. Ce comportement peut être " +"redéfini en définissant l'attribut :attr:`_pack_` dans la définition de la " +"sous-classe. Ce champ doit être un entier positif et vaut l'alignement " +"maximal des champs. C'est ce que fait ``#pragma pack(n)`` pour MSVC." -#: ../Doc/library/ctypes.rst:632 +#: library/ctypes.rst:625 msgid "" ":mod:`ctypes` uses the native byte order for Structures and Unions. To " "build structures with non-native byte order, you can use one of the :class:" @@ -695,92 +888,117 @@ msgid "" "`BigEndianUnion`, and :class:`LittleEndianUnion` base classes. These " "classes cannot contain pointer fields." msgstr "" +":mod:`ctypes` suit le boutisme natif pour les *Structure* et les *Union*. " +"Pour construire des structures avec un boutisme différent, utilisez les " +"classes de base :class:`BigEndianStructure`, :class:" +"`LittleEndianStructure`, :class:`BigEndianUnion` ou :class:" +"`LittleEndianUnion`. Ces classes ne peuvent pas avoir de champ pointeur." -#: ../Doc/library/ctypes.rst:642 +#: library/ctypes.rst:635 msgid "Bit fields in structures and unions" -msgstr "" +msgstr "Champs de bits dans les structures et les unions" -#: ../Doc/library/ctypes.rst:644 +#: library/ctypes.rst:637 msgid "" "It is possible to create structures and unions containing bit fields. Bit " "fields are only possible for integer fields, the bit width is specified as " "the third item in the :attr:`_fields_` tuples::" msgstr "" +"Il est possible de créer des structures et des unions contenant des champs " +"de bits. Seuls les entiers peuvent être des champs de bits, le nombre de " +"bits est défini dans le troisième champ du n-uplet :attr:`_fields_` ::" -#: ../Doc/library/ctypes.rst:662 +#: library/ctypes.rst:655 msgid "Arrays" -msgstr "" +msgstr "Tableaux" -#: ../Doc/library/ctypes.rst:664 +#: library/ctypes.rst:657 msgid "" "Arrays are sequences, containing a fixed number of instances of the same " "type." msgstr "" +"Les tableaux sont des séquences qui contiennent un nombre fixe d'instances " +"du même type." -#: ../Doc/library/ctypes.rst:666 +#: library/ctypes.rst:659 msgid "" "The recommended way to create array types is by multiplying a data type with " "a positive integer::" msgstr "" +"La meilleure façon de créer des tableaux consiste à multiplier le type de " +"donnée par un entier positif ::" -#: ../Doc/library/ctypes.rst:671 +#: library/ctypes.rst:664 msgid "" "Here is an example of a somewhat artificial data type, a structure " "containing 4 POINTs among other stuff::" msgstr "" +"Voici un exemple — un peu artificiel — d'une structure contenant, entre " +"autres, 4 POINTs ::" -#: ../Doc/library/ctypes.rst:687 +#: library/ctypes.rst:680 msgid "Instances are created in the usual way, by calling the class::" -msgstr "" +msgstr "Comme d'habitude, on crée les instances en appelant la classe ::" -#: ../Doc/library/ctypes.rst:693 +#: library/ctypes.rst:686 msgid "" "The above code print a series of ``0 0`` lines, because the array contents " "is initialized to zeros." msgstr "" +"Le code précédent affiche une suite de ``0 0`` car le contenu du tableau est " +"initialisé avec des zéros." -#: ../Doc/library/ctypes.rst:696 +#: library/ctypes.rst:689 msgid "Initializers of the correct type can also be specified::" -msgstr "" +msgstr "Des valeurs d'initialisation du bon type peuvent être passées ::" -#: ../Doc/library/ctypes.rst:712 +#: library/ctypes.rst:705 msgid "Pointers" -msgstr "" +msgstr "Pointeurs" -#: ../Doc/library/ctypes.rst:714 +#: library/ctypes.rst:707 msgid "" "Pointer instances are created by calling the :func:`pointer` function on a :" "mod:`ctypes` type::" msgstr "" +"On crée une instance de pointeur en appelant la fonction :func:`pointer` sur " +"un type :mod:`ctypes` ::" -#: ../Doc/library/ctypes.rst:722 +#: library/ctypes.rst:715 msgid "" "Pointer instances have a :attr:`~_Pointer.contents` attribute which returns " "the object to which the pointer points, the ``i`` object above::" msgstr "" +"Les instances de pointeurs ont un attribut :attr:`~_Pointer.contents` qui " +"renvoie l'objet pointé (l'objet ``i`` ci-dessus) ::" -#: ../Doc/library/ctypes.rst:729 +#: library/ctypes.rst:722 msgid "" "Note that :mod:`ctypes` does not have OOR (original object return), it " "constructs a new, equivalent object each time you retrieve an attribute::" msgstr "" +"Attention, :mod:`ctypes` ne fait pas de ROI (retour de l'objet initial). Il " +"crée un nouvel objet à chaque fois qu'on accède à un attribut ::" -#: ../Doc/library/ctypes.rst:738 +#: library/ctypes.rst:731 msgid "" "Assigning another :class:`c_int` instance to the pointer's contents " "attribute would cause the pointer to point to the memory location where this " "is stored::" msgstr "" +"Affecter une autre instance de :class:`c_int` à l'attribut *contents* du " +"pointeur fait pointer le pointeur vers l'adresse mémoire de cette nouvelle " +"instance ::" -#: ../Doc/library/ctypes.rst:750 +#: library/ctypes.rst:743 msgid "Pointer instances can also be indexed with integers::" -msgstr "" +msgstr "Il est possible d'indexer les pointeurs par des entiers ::" -#: ../Doc/library/ctypes.rst:756 +#: library/ctypes.rst:749 msgid "Assigning to an integer index changes the pointed to value::" -msgstr "" +msgstr "Affecter à travers un indice change la valeur pointée ::" -#: ../Doc/library/ctypes.rst:765 +#: library/ctypes.rst:758 msgid "" "It is also possible to use indexes different from 0, but you must know what " "you're doing, just as in C: You can access or change arbitrary memory " @@ -788,32 +1006,46 @@ msgid "" "a C function, and you *know* that the pointer actually points to an array " "instead of a single item." msgstr "" +"Si vous êtes sûr de vous, vous pouvez utiliser d'autres valeurs que 0, comme " +"en C : il est ainsi possible de modifier une zone mémoire de votre choix. De " +"manière générale cette fonctionnalité ne s'utilise que sur un pointeur " +"renvoyé par une fonction C, pointeur que vous *savez* pointer vers un " +"tableau et non sur un seul élément." -#: ../Doc/library/ctypes.rst:771 +#: library/ctypes.rst:764 msgid "" "Behind the scenes, the :func:`pointer` function does more than simply create " "pointer instances, it has to create pointer *types* first. This is done with " "the :func:`POINTER` function, which accepts any :mod:`ctypes` type, and " "returns a new type::" msgstr "" +"Sous le capot, la fonction :func:`pointer` fait plus que simplement créer " +"une instance de pointeur ; elle doit d'abord créer un type « pointeur " +"sur… ». Cela s'effectue avec la fonction :func:`POINTER`, qui prend en " +"paramètre n'importe quel type :mod:`ctypes` et renvoie un nouveau type ::" -#: ../Doc/library/ctypes.rst:787 +#: library/ctypes.rst:780 msgid "" "Calling the pointer type without an argument creates a ``NULL`` pointer. " "``NULL`` pointers have a ``False`` boolean value::" msgstr "" +"Appeler le pointeur sur type sans arguments crée un pointeur ``NULL``. Les " +"pointeurs ``NULL`` s'évaluent à ``False`` ::" -#: ../Doc/library/ctypes.rst:795 +#: library/ctypes.rst:788 msgid "" ":mod:`ctypes` checks for ``NULL`` when dereferencing pointers (but " "dereferencing invalid non-\\ ``NULL`` pointers would crash Python)::" msgstr "" +":mod:`ctypes` vérifie que le pointeur n'est pas ``NULL`` quand il en " +"déréférence un (mais déréférencer des pointeurs non ``NULL`` invalides fait " +"planter Python) ::" -#: ../Doc/library/ctypes.rst:814 +#: library/ctypes.rst:807 msgid "Type conversions" -msgstr "" +msgstr "Conversions de type" -#: ../Doc/library/ctypes.rst:816 +#: library/ctypes.rst:809 msgid "" "Usually, ctypes does strict type checking. This means, if you have " "``POINTER(c_int)`` in the :attr:`argtypes` list of a function or as the type " @@ -823,20 +1055,35 @@ msgid "" "instances instead of pointer types. So, for ``POINTER(c_int)``, ctypes " "accepts an array of c_int::" msgstr "" +"En général, *ctypes* respecte un typage fort. Cela signifie que si un " +"``POINTER(c_int)`` est présent dans la liste des :attr:`argtypes` d'une " +"fonction ou est le type d'un attribut membre dans une définition de " +"structure, seules des instances de ce type seront valides. Cette règle " +"comporte quelques exceptions pour lesquelles *ctypes* accepte d'autres " +"objets. Par exemple il est possible de passer des instances de tableau à " +"place de pointeurs, s'ils sont compatibles. Dans le cas de " +"``POINTER(c_int)``, *ctypes* accepte des tableaux de *c_int* ::" -#: ../Doc/library/ctypes.rst:837 +#: library/ctypes.rst:830 msgid "" "In addition, if a function argument is explicitly declared to be a pointer " "type (such as ``POINTER(c_int)``) in :attr:`argtypes`, an object of the " "pointed type (``c_int`` in this case) can be passed to the function. ctypes " "will apply the required :func:`byref` conversion in this case automatically." msgstr "" +"De plus, si un paramètre de fonction est déclaré explicitement de type " +"pointeur (comme ``POINTER(c_int)``) dans les :attr:`argtypes`, il est aussi " +"possible de passer un objet du type pointé — ici, ``c_int`` — à la fonction. " +"*ctypes* appelle alors automatiquement la fonction de conversion :func:" +"`byref`." -#: ../Doc/library/ctypes.rst:842 +#: library/ctypes.rst:835 msgid "To set a POINTER type field to ``NULL``, you can assign ``None``::" msgstr "" +"Pour mettre un champ de type *POINTER* à ``NULL``, il faut lui affecter " +"``None`` ::" -#: ../Doc/library/ctypes.rst:849 +#: library/ctypes.rst:842 msgid "" "Sometimes you have instances of incompatible types. In C, you can cast one " "type into another type. :mod:`ctypes` provides a :func:`cast` function " @@ -844,12 +1091,18 @@ msgid "" "accepts ``POINTER(c_int)`` pointers or :class:`c_int` arrays for its " "``values`` field, but not instances of other types::" msgstr "" +"Parfois il faut gérer des incompatibilités entre les types. En C, il est " +"possible de convertir un type en un autre. :mod:`ctypes` fournit la " +"fonction :func:`cast` qui permet la même chose. La structure ``Bar`` ci-" +"dessus accepte des pointeurs ``POINTER(c_int)`` ou des tableaux de :class:" +"`c_int` comme valeur pour le champ ``values``, mais pas des instances " +"d'autres types ::" -#: ../Doc/library/ctypes.rst:861 +#: library/ctypes.rst:854 msgid "For these cases, the :func:`cast` function is handy." -msgstr "" +msgstr "C'est là que la fonction :func:`cast` intervient." -#: ../Doc/library/ctypes.rst:863 +#: library/ctypes.rst:856 msgid "" "The :func:`cast` function can be used to cast a ctypes instance into a " "pointer to a different ctypes data type. :func:`cast` takes two parameters, " @@ -857,83 +1110,118 @@ msgid "" "ctypes pointer type. It returns an instance of the second argument, which " "references the same memory block as the first argument::" msgstr "" +"La fonction :func:`cast` permet de convertir une instance de *ctypes* en un " +"pointeur vers un type de données *ctypes* différent. :func:`cast` prend deux " +"paramètres : un objet *ctypes* qui est, ou qui peut être converti en, un " +"certain pointeur et un type pointeur de *ctypes*. Elle renvoie une instance " +"du second argument, qui pointe sur le même bloc mémoire que le premier " +"argument ::" -#: ../Doc/library/ctypes.rst:874 +#: library/ctypes.rst:867 msgid "" "So, :func:`cast` can be used to assign to the ``values`` field of ``Bar`` " "the structure::" msgstr "" +"Ainsi, la fonction :func:`cast` permet de remplir le champ ``values`` de la " +"structure ``Bar`` ::" -#: ../Doc/library/ctypes.rst:887 +#: library/ctypes.rst:880 msgid "Incomplete Types" -msgstr "" +msgstr "Types incomplets" -#: ../Doc/library/ctypes.rst:889 +#: library/ctypes.rst:882 msgid "" "*Incomplete Types* are structures, unions or arrays whose members are not " "yet specified. In C, they are specified by forward declarations, which are " "defined later::" msgstr "" +"Un *type incomplet* est une structure, une union ou un tableau dont les " +"membres ne sont pas encore définis. C'est l'équivalent d'une déclaration " +"avancée en C, où la définition est fournie plus tard ::" -#: ../Doc/library/ctypes.rst:900 +#: library/ctypes.rst:893 msgid "" "The straightforward translation into ctypes code would be this, but it does " "not work::" msgstr "" +"Une traduction naïve, mais invalide, en code *ctypes* ressemblerait à ça ::" -#: ../Doc/library/ctypes.rst:913 +#: library/ctypes.rst:906 msgid "" "because the new ``class cell`` is not available in the class statement " "itself. In :mod:`ctypes`, we can define the ``cell`` class and set the :attr:" "`_fields_` attribute later, after the class statement::" msgstr "" +"Cela ne fonctionne pas parce que la nouvelle ``class cell`` n'est pas " +"accessible dans la définition de la classe elle-même. Dans le module :mod:" +"`ctypes`, on définit la classe ``cell`` et on définira les :attr:`_fields_` " +"plus tard, après avoir défini la classe ::" -#: ../Doc/library/ctypes.rst:925 +#: library/ctypes.rst:918 +#, fuzzy msgid "" -"Lets try it. We create two instances of ``cell``, and let them point to each " -"other, and finally follow the pointer chain a few times::" +"Let's try it. We create two instances of ``cell``, and let them point to " +"each other, and finally follow the pointer chain a few times::" msgstr "" +"Essayons. Nous créons deux instances de ``cell``, les faisons pointer l'une " +"sur l'autre et enfin nous suivons quelques maillons de la chaîne de " +"pointeurs ::" -#: ../Doc/library/ctypes.rst:946 +#: library/ctypes.rst:939 msgid "Callback functions" -msgstr "" +msgstr "Fonctions de rappel" -#: ../Doc/library/ctypes.rst:948 +#: library/ctypes.rst:941 msgid "" ":mod:`ctypes` allows creating C callable function pointers from Python " "callables. These are sometimes called *callback functions*." msgstr "" +":mod:`ctypes` permet de créer des pointeurs de fonctions appelables par des " +"appelables Python. On les appelle parfois *fonctions de rappel*." -#: ../Doc/library/ctypes.rst:951 +#: library/ctypes.rst:944 msgid "" "First, you must create a class for the callback function. The class knows " "the calling convention, the return type, and the number and types of " "arguments this function will receive." msgstr "" +"Tout d'abord, il faut créer une classe pour la fonction de rappel. La classe " +"connaît la convention d'appel, le type de retour ainsi que le nombre et le " +"type de paramètres que la fonction accepte." -#: ../Doc/library/ctypes.rst:955 +#: library/ctypes.rst:948 msgid "" "The :func:`CFUNCTYPE` factory function creates types for callback functions " "using the ``cdecl`` calling convention. On Windows, the :func:`WINFUNCTYPE` " "factory function creates types for callback functions using the ``stdcall`` " "calling convention." msgstr "" +"La fabrique :func:`CFUNCTYPE` crée un type pour les fonctions de rappel qui " +"suivent la convention d'appel ``cdecl``. En Windows, c'est la fabrique :func:" +"`WINFUNCTYPE` qui crée un type pour les fonctions de rappel qui suivent la " +"convention d'appel ``stdcall``." -#: ../Doc/library/ctypes.rst:960 +#: library/ctypes.rst:953 msgid "" "Both of these factory functions are called with the result type as first " "argument, and the callback functions expected argument types as the " "remaining arguments." msgstr "" +"Le premier paramètre de ces deux fonctions est le type de retour, et les " +"suivants sont les types des arguments qu'attend la fonction de rappel." -#: ../Doc/library/ctypes.rst:964 +#: library/ctypes.rst:957 msgid "" "I will present an example here which uses the standard C library's :c:func:" "`qsort` function, that is used to sort items with the help of a callback " "function. :c:func:`qsort` will be used to sort an array of integers::" msgstr "" +"Intéressons-nous à un exemple tiré de la bibliothèque standard C : la " +"fonction :c:func:`qsort`. Celle-ci permet de classer des éléments par " +"l'emploi d'une fonction de rappel. Nous allons utiliser :c:func:`qsort` pour " +"ordonner un tableau d'entiers ::" -#: ../Doc/library/ctypes.rst:974 +#: library/ctypes.rst:967 msgid "" ":func:`qsort` must be called with a pointer to the data to sort, the number " "of items in the data array, the size of one item, and a pointer to the " @@ -942,45 +1230,64 @@ msgid "" "is smaller than the second, a zero if they are equal, and a positive integer " "otherwise." msgstr "" +":func:`qsort` doit être appelée avec un pointeur vers la donnée à ordonner, " +"le nombre d'éléments dans la donnée, la taille d'un élément et un pointeur " +"vers le comparateur, c.-à-d. la fonction de rappel. Cette fonction sera " +"invoquée avec deux pointeurs sur deux éléments et doit renvoyer un entier " +"négatif si le premier élément est plus petit que le second, zéro s'ils sont " +"égaux et un entier positif sinon." -#: ../Doc/library/ctypes.rst:980 +#: library/ctypes.rst:973 msgid "" "So our callback function receives pointers to integers, and must return an " "integer. First we create the ``type`` for the callback function::" msgstr "" +"Ainsi notre fonction de rappel reçoit des pointeurs vers des entiers et doit " +"renvoyer un entier. Créons d'abord le ``type`` pour la fonction de rappel ::" -#: ../Doc/library/ctypes.rst:986 +#: library/ctypes.rst:979 msgid "" "To get started, here is a simple callback that shows the values it gets " "passed::" msgstr "" +"Pour commencer, voici une fonction de rappel simple qui affiche les valeurs " +"qu'on lui passe ::" -#: ../Doc/library/ctypes.rst:996 +#: library/ctypes.rst:989 msgid "The result::" -msgstr "" +msgstr "Résultat ::" -#: ../Doc/library/ctypes.rst:1006 +#: library/ctypes.rst:999 msgid "Now we can actually compare the two items and return a useful result::" msgstr "" +"À présent, comparons pour de vrai les deux entiers et renvoyons un résultat " +"utile ::" -#: ../Doc/library/ctypes.rst:1021 +#: library/ctypes.rst:1014 msgid "As we can easily check, our array is sorted now::" msgstr "" +"Et comme il est facile de le voir, notre tableau est désormais classé ::" -#: ../Doc/library/ctypes.rst:1028 +#: library/ctypes.rst:1021 msgid "" "The function factories can be used as decorator factories, so we may as well " "write::" msgstr "" +"Ces fonctions peuvent aussi être utilisées comme des décorateurs ; il est " +"donc possible d'écrire ::" -#: ../Doc/library/ctypes.rst:1046 +#: library/ctypes.rst:1039 msgid "" "Make sure you keep references to :func:`CFUNCTYPE` objects as long as they " "are used from C code. :mod:`ctypes` doesn't, and if you don't, they may be " "garbage collected, crashing your program when a callback is made." msgstr "" +"Prenez garde à bien conserver une référence à un objet :func:`CFUNCTYPE` " +"tant que celui-ci est utilisé par le code C. :mod:`ctypes` ne le fait pas " +"tout seul et, si vous ne le faites pas, le ramasse-miette pourrait les " +"libérer, ce qui fera planter votre programme quand un appel sera fait." -#: ../Doc/library/ctypes.rst:1050 +#: library/ctypes.rst:1043 msgid "" "Also, note that if the callback function is called in a thread created " "outside of Python's control (e.g. by the foreign code that calls the " @@ -989,44 +1296,62 @@ msgid "" "with :class:`threading.local` will *not* survive across different callbacks, " "even when those calls are made from the same C thread." msgstr "" +"Notez aussi que si la fonction de rappel est appelée dans un fil d'exécution " +"créé hors de Python (p. ex. par du code externe qui appelle la fonction de " +"rappel), *ctypes* crée un nouveau fil Python « creux » à chaque fois. Ce " +"comportement est acceptable pour la plupart des cas d'utilisation, mais cela " +"implique que les valeurs stockées avec :class:`threading.local` ne seront " +"*pas* persistantes d'un appel à l'autre, même si les appels proviennent du " +"même fil d'exécution C." -#: ../Doc/library/ctypes.rst:1060 +#: library/ctypes.rst:1053 msgid "Accessing values exported from dlls" -msgstr "" +msgstr "Accès aux variables exportées depuis une DLL" -#: ../Doc/library/ctypes.rst:1062 +#: library/ctypes.rst:1055 msgid "" "Some shared libraries not only export functions, they also export variables. " "An example in the Python library itself is the :c:data:`Py_OptimizeFlag`, an " "integer set to 0, 1, or 2, depending on the :option:`-O` or :option:`-OO` " "flag given on startup." msgstr "" +"Certaines bibliothèques ne se contentent pas d'exporter des fonctions, elles " +"exportent aussi des variables. Par exemple, la bibliothèque Python exporte :" +"c:data:`Py_OptimizeFlag`, un entier valant 0, 1, ou 2 selon que l'option :" +"option:`-O` ou :option:`-OO` soit donnée au démarrage." -#: ../Doc/library/ctypes.rst:1067 +#: library/ctypes.rst:1060 msgid "" ":mod:`ctypes` can access values like this with the :meth:`in_dll` class " "methods of the type. *pythonapi* is a predefined symbol giving access to " "the Python C api::" msgstr "" +":mod:`ctypes` peut accéder à ce type de valeurs avec les méthodes de classe :" +"meth:`in_dll` du type considéré. *pythonapi* est un symbole prédéfini qui " +"donne accès à l'API C Python ::" -#: ../Doc/library/ctypes.rst:1076 +#: library/ctypes.rst:1069 msgid "" "If the interpreter would have been started with :option:`-O`, the sample " "would have printed ``c_long(1)``, or ``c_long(2)`` if :option:`-OO` would " "have been specified." msgstr "" +"Si l'interpréteur est lancé avec :option:`-O`, l'exemple affiche " +"``c_long(1)`` et ``c_long(2)`` avec :option:`-OO`." -#: ../Doc/library/ctypes.rst:1080 +#: library/ctypes.rst:1073 msgid "" "An extended example which also demonstrates the use of pointers accesses " "the :c:data:`PyImport_FrozenModules` pointer exported by Python." msgstr "" +"Le pointeur :c:data:`PyImport_FrozenModules` exposé par Python est un autre " +"exemple complet de l'utilisation de pointeurs." -#: ../Doc/library/ctypes.rst:1083 +#: library/ctypes.rst:1076 msgid "Quoting the docs for that value:" -msgstr "" +msgstr "Citons la documentation :" -#: ../Doc/library/ctypes.rst:1085 +#: library/ctypes.rst:1078 msgid "" "This pointer is initialized to point to an array of :c:type:`struct _frozen` " "records, terminated by one whose members are all ``NULL`` or zero. When a " @@ -1034,20 +1359,30 @@ msgid "" "could play tricks with this to provide a dynamically created collection of " "frozen modules." msgstr "" +"Ce pointeur est initialisé de manière à pointer sur un tableau d'entrées de :" +"c:type:`struct _frozen`, dont tous les membres de la dernière valent " +"``NULL`` ou zéro. Quand un module gelé est importé, il est cherché dans ce " +"tableau. Du code tiers peut jouer avec pour construire dynamiquement une " +"collection de module gelés." -#: ../Doc/library/ctypes.rst:1090 +#: library/ctypes.rst:1083 msgid "" "So manipulating this pointer could even prove useful. To restrict the " "example size, we show only how this table can be read with :mod:`ctypes`::" msgstr "" +"Donc manipuler ce pointeur peut même se révéler utile. Pour limiter la " +"taille de l'exemple, nous nous bornons à montrer comment lire ce tableau " +"avec :mod:`ctypes` ::" -#: ../Doc/library/ctypes.rst:1102 +#: library/ctypes.rst:1095 msgid "" "We have defined the :c:type:`struct _frozen` data type, so we can get the " "pointer to the table::" msgstr "" +"Le type de donnée :c:type:`struct _frozen` ayant été défini, nous pouvons " +"récupérer le pointeur vers le tableau ::" -#: ../Doc/library/ctypes.rst:1109 +#: library/ctypes.rst:1102 msgid "" "Since ``table`` is a ``pointer`` to the array of ``struct_frozen`` records, " "we can iterate over it, but we just have to make sure that our loop " @@ -1055,35 +1390,48 @@ msgid "" "crash with an access violation or whatever, so it's better to break out of " "the loop when we hit the ``NULL`` entry::" msgstr "" +"Puisque ``table`` est un ``pointer`` vers un tableau d'entrées de " +"``struct_frozen``, il est possible d'itérer dessus, mais il faut être " +"certain que la boucle se termine, car les pointeurs n'ont pas de taille. Tôt " +"ou tard, il planterait probablement avec une erreur de segmentation ou " +"autre, donc mieux vaut sortir de la boucle quand on lit l'entrée ``NULL`` ::" -#: ../Doc/library/ctypes.rst:1127 +#: library/ctypes.rst:1120 msgid "" "The fact that standard Python has a frozen module and a frozen package " -"(indicated by the negative size member) is not well known, it is only used " -"for testing. Try it out with ``import __hello__`` for example." +"(indicated by the negative ``size`` member) is not well known, it is only " +"used for testing. Try it out with ``import __hello__`` for example." msgstr "" +"Le fait que le standard Python possède un module et un paquet figés " +"(indiqués par la valeur négative du membre *size*) est peu connu, cela ne " +"sert qu'aux tests. Essayez avec ``import __hello__`` par exemple." -#: ../Doc/library/ctypes.rst:1135 +#: library/ctypes.rst:1128 msgid "Surprises" -msgstr "Surprises" +msgstr "Pièges" -#: ../Doc/library/ctypes.rst:1137 +#: library/ctypes.rst:1130 msgid "" "There are some edges in :mod:`ctypes` where you might expect something other " "than what actually happens." msgstr "" +"Il y a quelques cas tordus dans :mod:`ctypes` où on peut s'attendre à un " +"résultat différent de la réalité." -#: ../Doc/library/ctypes.rst:1140 +#: library/ctypes.rst:1133 msgid "Consider the following example::" -msgstr "" +msgstr "Examinons l'exemple suivant ::" -#: ../Doc/library/ctypes.rst:1160 +#: library/ctypes.rst:1153 msgid "" "Hm. We certainly expected the last statement to print ``3 4 1 2``. What " "happened? Here are the steps of the ``rc.a, rc.b = rc.b, rc.a`` line above::" msgstr "" +"Diantre. On s'attendait certainement à ce que le dernier résultat affiche " +"``3 4 1 2``. Que s'est-il passé ? Les étapes de la ligne ``rc.a, rc.b = rc." +"b, rc.a`` ci-dessus sont les suivantes ::" -#: ../Doc/library/ctypes.rst:1168 +#: library/ctypes.rst:1161 msgid "" "Note that ``temp0`` and ``temp1`` are objects still using the internal " "buffer of the ``rc`` object above. So executing ``rc.a = temp0`` copies the " @@ -1091,27 +1439,38 @@ msgid "" "the contents of ``temp1``. So, the last assignment ``rc.b = temp1``, doesn't " "have the expected effect." msgstr "" +"Les objets ``temp0`` et ``temp1`` utilisent encore le tampon interne de " +"l'objet ``rc`` ci-dessus. Donc exécuter ``rc.a = temp0`` copie le contenu du " +"tampon de ``temp0`` dans celui de ``rc``. Ce qui, par ricochet, modifie le " +"contenu de ``temp1``. Et donc, la dernière affectation, ``rc.b = temp1``, " +"n'a pas l'effet escompté." -#: ../Doc/library/ctypes.rst:1174 +#: library/ctypes.rst:1167 msgid "" "Keep in mind that retrieving sub-objects from Structure, Unions, and Arrays " "doesn't *copy* the sub-object, instead it retrieves a wrapper object " "accessing the root-object's underlying buffer." msgstr "" +"Gardez en tête qu'accéder au sous-objet depuis une *Structure*, une *Union* " +"ou un *Array* ne copie *pas* le sous-objet, mais crée un objet interface qui " +"accède au tampon sous-jacent de l'objet initial." -#: ../Doc/library/ctypes.rst:1178 +#: library/ctypes.rst:1171 msgid "" "Another example that may behave differently from what one would expect is " "this::" msgstr "" +"Un autre exemple de comportement *a priori* inattendu est le suivant ::" -#: ../Doc/library/ctypes.rst:1190 +#: library/ctypes.rst:1183 msgid "" "Objects instantiated from :class:`c_char_p` can only have their value set to " "bytes or integers." msgstr "" +"La valeur d'une instance de :class:`c_char_p` ne peut être initialisée " +"qu'avec un octet ou un entier." -#: ../Doc/library/ctypes.rst:1193 +#: library/ctypes.rst:1186 msgid "" "Why is it printing ``False``? ctypes instances are objects containing a " "memory block plus some :term:`descriptor`\\s accessing the contents of the " @@ -1119,17 +1478,24 @@ msgid "" "object itself, instead the ``contents`` of the object is stored. Accessing " "the contents again constructs a new Python object each time!" msgstr "" +"Pourquoi cela affiche-t'il ``False`` ? Les instances *ctypes* sont des " +"objets qui contiennent un bloc mémoire et des :term:`descriptor` qui donnent " +"accès au contenu du ce bloc. Stocker un objet Python dans le bloc mémoire ne " +"stocke pas l'objet même ; seuls ses ``contents`` le sont. Accéder au " +"``contents`` crée un nouvel objet Python à chaque fois !" -#: ../Doc/library/ctypes.rst:1203 +#: library/ctypes.rst:1196 msgid "Variable-sized data types" -msgstr "" +msgstr "Types de données à taille flottante" -#: ../Doc/library/ctypes.rst:1205 +#: library/ctypes.rst:1198 msgid "" ":mod:`ctypes` provides some support for variable-sized arrays and structures." msgstr "" +":mod:`ctypes` assure la prise en charge des tableaux et des structures à " +"taille flottante." -#: ../Doc/library/ctypes.rst:1207 +#: library/ctypes.rst:1200 msgid "" "The :func:`resize` function can be used to resize the memory buffer of an " "existing ctypes object. The function takes the object as first argument, " @@ -1137,36 +1503,52 @@ msgid "" "cannot be made smaller than the natural memory block specified by the " "objects type, a :exc:`ValueError` is raised if this is tried::" msgstr "" +"La fonction :func:`resize` permet de redimensionner la taille du tampon " +"mémoire d'un objet *ctypes* existant. Cette fonction prend l'objet comme " +"premier argument et la taille en octets désirée comme second. La taille du " +"tampon mémoire ne peut pas être inférieure à celle occupée par un objet " +"unitaire du type considéré. Une :exc:`ValueError` est levée si c'est le " +"cas ::" -#: ../Doc/library/ctypes.rst:1227 +#: library/ctypes.rst:1220 msgid "" "This is nice and fine, but how would one access the additional elements " "contained in this array? Since the type still only knows about 4 elements, " "we get errors accessing other elements::" msgstr "" +"Cela dit, comment accéder aux éléments supplémentaires contenus dans le " +"tableau ? Vu que le type ne connaît que 4 éléments, on obtient une erreur si " +"l'on accède aux suivants ::" -#: ../Doc/library/ctypes.rst:1239 +#: library/ctypes.rst:1232 msgid "" "Another way to use variable-sized data types with :mod:`ctypes` is to use " "the dynamic nature of Python, and (re-)define the data type after the " "required size is already known, on a case by case basis." msgstr "" +"Une autre approche pour utiliser des types de donnée à taille flottante " +"avec :mod:`ctypes` consiste à tirer profit de la nature intrinsèquement " +"dynamique de Python et de (re)définir le type de donnée une fois que la " +"taille demandée est connue, au cas-par-cas." -#: ../Doc/library/ctypes.rst:1247 +#: library/ctypes.rst:1240 msgid "ctypes reference" -msgstr "" +msgstr "Référence du module" -#: ../Doc/library/ctypes.rst:1253 +#: library/ctypes.rst:1246 msgid "Finding shared libraries" -msgstr "" +msgstr "Recherche de bibliothèques partagées" -#: ../Doc/library/ctypes.rst:1255 +#: library/ctypes.rst:1248 msgid "" "When programming in a compiled language, shared libraries are accessed when " "compiling/linking a program, and when the program is run." msgstr "" +"Les langages compilés ont besoin d'accéder aux bibliothèques partagées au " +"moment de la compilation, de l'édition de liens et pendant l'exécution du " +"programme." -#: ../Doc/library/ctypes.rst:1258 +#: library/ctypes.rst:1251 msgid "" "The purpose of the :func:`find_library` function is to locate a library in a " "way similar to what the compiler or runtime loader does (on platforms with " @@ -1174,82 +1556,146 @@ msgid "" "while the ctypes library loaders act like when a program is run, and call " "the runtime loader directly." msgstr "" +"Le but de la fonction :func:`find_library` est de trouver une bibliothèque " +"de la même façon que le ferait le compilateur ou le chargeur (sur les plates-" +"formes avec plusieurs versions de la même bibliothèque, la plus récente est " +"chargée), alors que les chargeurs de bibliothèques de *ctypes* se comportent " +"de la même façon qu'un programme qui s'exécute, et appellent directement le " +"chargeur." -#: ../Doc/library/ctypes.rst:1264 +#: library/ctypes.rst:1257 msgid "" "The :mod:`ctypes.util` module provides a function which can help to " "determine the library to load." msgstr "" +"Le module :mod:`ctypes.util` fournit une fonction pour déterminer quelle " +"bibliothèque charger." -#: ../Doc/library/ctypes.rst:1272 +#: library/ctypes.rst:1265 msgid "" "Try to find a library and return a pathname. *name* is the library name " "without any prefix like *lib*, suffix like ``.so``, ``.dylib`` or version " "number (this is the form used for the posix linker option :option:`!-l`). " "If no library can be found, returns ``None``." msgstr "" +"Tente de trouver une bibliothèque et en renvoie le chemin. *name* est le nom " +"de la bibliothèque sans préfixe — comme *lib* — ni suffixe — comme ``.so``, " +"``.dylib`` ou un numéro de version (c.-à-d. la même forme que l'option POSIX " +"de l'éditeur de lien :option:`!-l`). Si la fonction ne parvient pas à " +"trouver de bibliothèque, elle renvoie ``None``." -#: ../Doc/library/ctypes.rst:1277 ../Doc/library/ctypes.rst:1910 +#: library/ctypes.rst:1918 msgid "The exact functionality is system dependent." -msgstr "" +msgstr "Le mode opératoire exact dépend du système." -#: ../Doc/library/ctypes.rst:1279 +#: library/ctypes.rst:1272 msgid "" "On Linux, :func:`find_library` tries to run external programs (``/sbin/" "ldconfig``, ``gcc``, ``objdump`` and ``ld``) to find the library file. It " "returns the filename of the library file." msgstr "" +"Sous Linux, :func:`find_library` essaye de lancer des programmes externes " +"(``/sbin/ldconfig``, ``gcc``, ``objdump`` et ``ld``) pour trouver la " +"bibliothèque. Elle renvoie le nom de la bibliothèque sur le disque." -#: ../Doc/library/ctypes.rst:1283 +#: library/ctypes.rst:1276 msgid "" "On Linux, the value of the environment variable ``LD_LIBRARY_PATH`` is used " "when searching for libraries, if a library cannot be found by any other " "means." msgstr "" +"Sous Linux, si les autres moyens échouent, la fonction utilise la variable " +"d'environnement ``LD_LIBRARY_PATH`` pour trouver la bibliothèque." -#: ../Doc/library/ctypes.rst:1287 +#: library/ctypes.rst:1280 msgid "Here are some examples::" -msgstr "" +msgstr "Voici quelques exemples :" -#: ../Doc/library/ctypes.rst:1298 +#: library/ctypes.rst:1291 msgid "" "On OS X, :func:`find_library` tries several predefined naming schemes and " "paths to locate the library, and returns a full pathname if successful::" msgstr "" +"Sous OS X, :func:`find_library` regarde dans des chemins et conventions de " +"chemins prédéfinies pour trouver la bibliothèque et en renvoie le chemin " +"complet si elle la trouve :" -#: ../Doc/library/ctypes.rst:1312 +#: library/ctypes.rst:1305 msgid "" "On Windows, :func:`find_library` searches along the system search path, and " "returns the full pathname, but since there is no predefined naming scheme a " "call like ``find_library(\"c\")`` will fail and return ``None``." msgstr "" +"Sous Windows, :func:`find_library` examine le chemin de recherche du système " +"et renvoie le chemin complet de la bibliothèque, mais comme il n'existe pas " +"de convention de nommage, des appels comme ``find_library(\"c\")`` échouent " +"et renvoient ``None``." -#: ../Doc/library/ctypes.rst:1316 +#: library/ctypes.rst:1309 msgid "" "If wrapping a shared library with :mod:`ctypes`, it *may* be better to " "determine the shared library name at development time, and hardcode that " "into the wrapper module instead of using :func:`find_library` to locate the " "library at runtime." msgstr "" +"Si vous encapsulez une bibliothèque partagée avec :mod:`ctypes`, il est " +"*probablement* plus judicieux de déterminer le chemin de cette bibliothèque " +"lors du développement et de l'écrire en dur dans le module d'encapsulation, " +"plutôt que d'utiliser :func:`find_library` pour la trouver lors de " +"l'exécution." -#: ../Doc/library/ctypes.rst:1324 +#: library/ctypes.rst:1317 msgid "Loading shared libraries" -msgstr "" +msgstr "Chargement des bibliothèques partagées" -#: ../Doc/library/ctypes.rst:1326 +#: library/ctypes.rst:1319 msgid "" "There are several ways to load shared libraries into the Python process. " "One way is to instantiate one of the following classes:" msgstr "" +"Il y a plusieurs moyens de charger une bibliothèque partagée dans un " +"processus Python. L'un d'entre eux consiste à instancier une des classes " +"suivantes :" -#: ../Doc/library/ctypes.rst:1332 +#: library/ctypes.rst:1325 msgid "" "Instances of this class represent loaded shared libraries. Functions in " "these libraries use the standard C calling convention, and are assumed to " "return :c:type:`int`." msgstr "" +"Une instance de cette classe représente une bibliothèque partagée déjà " +"chargée. Les fonctions de cette bibliothèque utilisent la convention d'appel " +"C standard et doivent renvoyer un :c:type:`int`." + +#: library/ctypes.rst:1329 +msgid "" +"On Windows creating a :class:`CDLL` instance may fail even if the DLL name " +"exists. When a dependent DLL of the loaded DLL is not found, a :exc:" +"`OSError` error is raised with the message *\"[WinError 126] The specified " +"module could not be found\".* This error message does not contain the name " +"of the missing DLL because the Windows API does not return this information " +"making this error hard to diagnose. To resolve this error and determine " +"which DLL is not found, you need to find the list of dependent DLLs and " +"determine which one is not found using Windows debugging and tracing tools." +msgstr "" +"En Windows, créer une instance de :class:`CDLL` peut échouer, même si une " +"DLL du bon nom existe. Quand une des dépendances de la DLL à charger ne peut " +"pas être trouvée, une :exc:`OSError` est levée avec le message *\"[WinError " +"126] The specified module could not be found\".* Ce message d'erreur ne " +"contient pas le nom de la DLL manquante car l'API Windows ne fournit pas " +"cette information. Cela rend l'erreur délicate à analyser ; pour la " +"résoudre, il faut lister toutes les dépendances de la DLL et trouver celle " +"qui manque en utilisant des outils de débogage et de traçage Windows." + +#: library/ctypes.rst:1341 +msgid "" +"`Microsoft DUMPBIN tool `_ -- A tool to find DLL dependents." +msgstr "" +"`DUMPBIN `_ — un " +"utilitaire Microsoft pour lister les dépendances d'une DLL." -#: ../Doc/library/ctypes.rst:1339 +#: library/ctypes.rst:1347 msgid "" "Windows only: Instances of this class represent loaded shared libraries, " "functions in these libraries use the ``stdcall`` calling convention, and are " @@ -1258,44 +1704,66 @@ msgid "" "failed or succeeded, together with additional error code. If the return " "value signals a failure, an :class:`OSError` is automatically raised." msgstr "" +"En Windows seulement : une instance de cette classe représente une " +"bibliothèque partagée déjà chargée. Les fonctions de cette bibliothèque " +"utilisent la convention d'appel *stdcall*, et doivent renvoyer un code :" +"class:`HRESULT` (propre à Windows). Les valeurs de :class:`HRESULT` " +"contiennent des informations précisant si l'appel de la fonction a échoué ou " +"s'il a réussi, ainsi qu'un code d'erreur supplémentaire. Si la valeur de " +"retour signale un échec, une :class:`OSError` est levée automatiquement." -#: ../Doc/library/ctypes.rst:1346 +#: library/ctypes.rst:1354 msgid ":exc:`WindowsError` used to be raised." -msgstr "" +msgstr ":exc:`WindowsError` était levée auparavant." -#: ../Doc/library/ctypes.rst:1352 +#: library/ctypes.rst:1360 msgid "" "Windows only: Instances of this class represent loaded shared libraries, " "functions in these libraries use the ``stdcall`` calling convention, and are " "assumed to return :c:type:`int` by default." msgstr "" +"En Windows seulement : une instance de cette classe représente une " +"bibliothèque partagée déjà chargée. Les fonctions de cette bibliothèque " +"utilisent la convention d'appel *stdcall* et doivent renvoyer par défaut un :" +"c:type:`int`." -#: ../Doc/library/ctypes.rst:1356 +#: library/ctypes.rst:1364 msgid "" "On Windows CE only the standard calling convention is used, for convenience " "the :class:`WinDLL` and :class:`OleDLL` use the standard calling convention " "on this platform." msgstr "" +"Sous Windows CE, seule la convention d'appel standard est utilisée. Pour des " +"raisons pratiques, :class:`WinDLL` et :class:`OleDLL` utilisent la " +"convention d'appel standard sur cette plate-forme." -#: ../Doc/library/ctypes.rst:1360 +#: library/ctypes.rst:1368 msgid "" "The Python :term:`global interpreter lock` is released before calling any " "function exported by these libraries, and reacquired afterwards." msgstr "" +"Le :term:`verrou global de l'interpréteur ` Python " +"est relâché avant chaque appel d'une fonction exposée par ces bibliothèques " +"et ré-activé après." -#: ../Doc/library/ctypes.rst:1366 +#: library/ctypes.rst:1374 msgid "" "Instances of this class behave like :class:`CDLL` instances, except that the " "Python GIL is *not* released during the function call, and after the " "function execution the Python error flag is checked. If the error flag is " "set, a Python exception is raised." msgstr "" +"Cette classe est identique à :class:`CDLL`, à ceci près que le GIL n'est " +"*pas* relâché pendant l'appel de la fonction, et, qu'au terme de l'appel, le " +"drapeau d'erreur Python est vérifié. Si celui-ci est activé, une exception " +"Python est levée." -#: ../Doc/library/ctypes.rst:1371 +#: library/ctypes.rst:1379 msgid "Thus, this is only useful to call Python C api functions directly." msgstr "" +"Donc, cette classe ne sert qu'à appeler les fonctions de l'API C de Python." -#: ../Doc/library/ctypes.rst:1373 +#: library/ctypes.rst:1381 msgid "" "All these classes can be instantiated by calling them with at least one " "argument, the pathname of the shared library. If you have an existing " @@ -1304,16 +1772,26 @@ msgid "" "``LoadLibrary`` function is used to load the library into the process, and " "to get a handle to it." msgstr "" +"Toutes ces classes peuvent être instanciées en les appelant avec le chemin " +"de la bibliothèque partagée comme unique argument. Il est aussi possible de " +"passer un lien vers une bibliothèque déjà chargée en utilisant le paramètre " +"``handle``. Sinon, les fonctions ``dlopen`` ou ``LoadLibrary`` de la plate-" +"forme sous-jacente permettent de charger la bibliothèque dans le processus, " +"et d'en obtenir un lien." -#: ../Doc/library/ctypes.rst:1380 +#: library/ctypes.rst:1388 msgid "" "The *mode* parameter can be used to specify how the library is loaded. For " "details, consult the :manpage:`dlopen(3)` manpage. On Windows, *mode* is " "ignored. On posix systems, RTLD_NOW is always added, and is not " "configurable." msgstr "" +"Le mode de chargement de la bibliothèque est défini par le paramètre *mode*. " +"Pour plus de détails, référez-vous à l'entrée :manpage:`dlopen(3)` du " +"manuel. En Windows, *mode* est ignoré. Sur les systèmes POSIX, RTLD_NOW y " +"est toujours ajouté. Ceci n'est pas configurable." -#: ../Doc/library/ctypes.rst:1385 +#: library/ctypes.rst:1393 msgid "" "The *use_errno* parameter, when set to true, enables a ctypes mechanism that " "allows accessing the system :data:`errno` error number in a safe way. :mod:" @@ -1322,15 +1800,25 @@ msgid "" "the :data:`errno` value before the function call is swapped with the ctypes " "private copy, the same happens immediately after the function call." msgstr "" +"Le paramètre *use_errno*, lorsque défini à vrai, active un mécanisme de " +"*ctypes* qui permet d'accéder au numéro d'erreur :data:`errno` du système de " +"manière sécurisée. :mod:`ctypes` maintient une copie de :data:`errno` du " +"système dans chaque fil d'exécution. Si vous appelez des fonctions externes " +"créées avec ``use_errno=True``, la valeur de :data:`errno` avant l'appel de " +"la fonction est échangée avec la copie privée de *ctypes*. La même chose se " +"produit juste après l'appel de la fonction." -#: ../Doc/library/ctypes.rst:1392 +#: library/ctypes.rst:1400 msgid "" "The function :func:`ctypes.get_errno` returns the value of the ctypes " "private copy, and the function :func:`ctypes.set_errno` changes the ctypes " "private copy to a new value and returns the former value." msgstr "" +"La fonction :func:`ctypes.get_errno` renvoie la valeur de la copie privée de " +"*ctypes*. La fonction :func:`ctypes.set_errno` affecte une nouvelle valeur à " +"la copie privée et renvoie l'ancienne valeur." -#: ../Doc/library/ctypes.rst:1396 +#: library/ctypes.rst:1404 msgid "" "The *use_last_error* parameter, when set to true, enables the same mechanism " "for the Windows error code which is managed by the :func:`GetLastError` and :" @@ -1338,8 +1826,13 @@ msgid "" "and :func:`ctypes.set_last_error` are used to request and change the ctypes " "private copy of the windows error code." msgstr "" +"Définir le paramètre *use_last_error* à vrai active le même mécanisme pour " +"le code d'erreur de Windows qui est géré par les fonctions :func:" +"`GetLastError` et :func:`SetLastError` de l'API Windows ; :func:`ctypes." +"get_last_error` et :func:`ctypes.set_last_error` servent à obtenir et " +"modifier la copie privée *ctypes* de ce code d'erreur." -#: ../Doc/library/ctypes.rst:1402 +#: library/ctypes.rst:1410 msgid "" "The *winmode* parameter is used on Windows to specify how the library is " "loaded (since *mode* is ignored). It takes any value that is valid for the " @@ -1348,30 +1841,44 @@ msgid "" "such as DLL hijacking. Passing the full path to the DLL is the safest way to " "ensure the correct library and dependencies are loaded." msgstr "" +"Sous Windows, le paramètre *winmode* définit comment charger la bibliothèque " +"(puisque *mode* est ignoré). Il accepte toute valeur compatible avec le " +"drapeau ``LoadLibraryEx`` de l'API Win32. Lorsqu'il est omis, les drapeaux " +"par défaut sont ceux qui chargent la DLL de la manière la plus sécurisée " +"possible, afin d'éviter des problèmes comme le détournement de DLL. Passer " +"le chemin complet à la DLL reste le moyen le plus sûr de s'assurer que la " +"bonne bibliothèque et les bonnes dépendances sont chargées." -#: ../Doc/library/ctypes.rst:1409 +#: library/ctypes.rst:1417 msgid "Added *winmode* parameter." -msgstr "" +msgstr "Ajout du paramètre *winmode*." -#: ../Doc/library/ctypes.rst:1416 +#: library/ctypes.rst:1424 msgid "" "Flag to use as *mode* parameter. On platforms where this flag is not " "available, it is defined as the integer zero." msgstr "" +"Valeur possible pour le paramètre *mode*. Vaut zéro sur les plates-formes où " +"ce drapeau n'est pas disponible." -#: ../Doc/library/ctypes.rst:1423 +#: library/ctypes.rst:1431 msgid "" "Flag to use as *mode* parameter. On platforms where this is not available, " "it is the same as *RTLD_GLOBAL*." msgstr "" +"Valeur possible pour le paramètre *mode*. Vaut *RTLD_GLOBAL* sur les plates-" +"formes où ce drapeau n'est pas disponible." -#: ../Doc/library/ctypes.rst:1430 +#: library/ctypes.rst:1438 msgid "" "The default mode which is used to load shared libraries. On OSX 10.3, this " "is *RTLD_GLOBAL*, otherwise it is the same as *RTLD_LOCAL*." msgstr "" +"Mode de chargement par défaut des bibliothèques partagées. Vaut " +"*RTLD_GLOBAL* sur OSX 10.3 et *RTLD_LOCAL* sur les autres systèmes " +"d'exploitation." -#: ../Doc/library/ctypes.rst:1433 +#: library/ctypes.rst:1441 msgid "" "Instances of these classes have no public methods. Functions exported by " "the shared library can be accessed as attributes or by index. Please note " @@ -1379,126 +1886,165 @@ msgid "" "therefore accessing it repeatedly returns the same object each time. On the " "other hand, accessing it through an index returns a new object each time::" msgstr "" +"Les instances de ces classes n'ont pas de méthodes publiques ; on accède aux " +"fonctions de la bibliothèque partagée par attribut ou par indiçage. Notez " +"que les résultats des accès par attribut sont mis en cache, et donc des " +"accès consécutifs renvoient à chaque fois le même objet. Accéder à une " +"fonction par indice renvoie cependant chaque fois un nouvel objet :" -#: ../Doc/library/ctypes.rst:1446 +#: library/ctypes.rst:1454 msgid "" "The following public attributes are available, their name starts with an " "underscore to not clash with exported function names:" msgstr "" +"Les attributs publics suivants sont disponibles, leur nom commence par un " +"tiret bas pour éviter les conflits avec les noms des fonctions exportées :" -#: ../Doc/library/ctypes.rst:1452 +#: library/ctypes.rst:1460 msgid "The system handle used to access the library." -msgstr "" +msgstr "Le lien système d'accès à la bibliothèque." -#: ../Doc/library/ctypes.rst:1457 +#: library/ctypes.rst:1465 msgid "The name of the library passed in the constructor." -msgstr "" +msgstr "Nom de la bibliothèque donné au constructeur." -#: ../Doc/library/ctypes.rst:1459 +#: library/ctypes.rst:1467 msgid "" "Shared libraries can also be loaded by using one of the prefabricated " "objects, which are instances of the :class:`LibraryLoader` class, either by " "calling the :meth:`LoadLibrary` method, or by retrieving the library as " "attribute of the loader instance." msgstr "" +"Il est possible de charger une bibliothèque partagée soit en utilisant une " +"instance de la classe :class:`LibraryLoader`, soit en appelant la méthode :" +"meth:`LoadLibrary`, soit en récupérant la bibliothèque comme attribut de " +"l'instance du chargeur." -#: ../Doc/library/ctypes.rst:1467 +#: library/ctypes.rst:1475 msgid "" "Class which loads shared libraries. *dlltype* should be one of the :class:" "`CDLL`, :class:`PyDLL`, :class:`WinDLL`, or :class:`OleDLL` types." msgstr "" +"Classe pour charger une bibliothèque partagée. *dlltype* doit être de type :" +"class:`CDLL`, :class:`PyDLL`, :class:`WinDLL` ou :class:`OleDLL`." -#: ../Doc/library/ctypes.rst:1470 +#: library/ctypes.rst:1478 msgid "" ":meth:`__getattr__` has special behavior: It allows loading a shared library " "by accessing it as attribute of a library loader instance. The result is " "cached, so repeated attribute accesses return the same library each time." msgstr "" +":meth:`__getattr__` a un comportement particulier : elle charge une " +"bibliothèque quand on accède à un attribut du chargeur. Le résultat est mis " +"en cache, donc des accès consécutifs renvoient la même bibliothèque à chaque " +"fois." -#: ../Doc/library/ctypes.rst:1476 +#: library/ctypes.rst:1484 msgid "" "Load a shared library into the process and return it. This method always " "returns a new instance of the library." msgstr "" +"Charge une bibliothèque partagée dans le processus et la renvoie. Cette " +"méthode renvoie toujours une nouvelle instance de la bibliothèque." -#: ../Doc/library/ctypes.rst:1480 +#: library/ctypes.rst:1488 msgid "These prefabricated library loaders are available:" -msgstr "" +msgstr "Plusieurs chargeurs sont fournis :" -#: ../Doc/library/ctypes.rst:1485 +#: library/ctypes.rst:1493 msgid "Creates :class:`CDLL` instances." -msgstr "" +msgstr "Pour créer des instances de :class:`CDLL`." -#: ../Doc/library/ctypes.rst:1491 +#: library/ctypes.rst:1499 msgid "Windows only: Creates :class:`WinDLL` instances." -msgstr "" +msgstr "Pour créer des instances de :class:`WinDLL` (uniquement en Windows)." -#: ../Doc/library/ctypes.rst:1497 +#: library/ctypes.rst:1505 msgid "Windows only: Creates :class:`OleDLL` instances." -msgstr "" +msgstr "Pour créer des instances de :class:`OleDLL` (uniquement en Windows)." -#: ../Doc/library/ctypes.rst:1503 +#: library/ctypes.rst:1511 msgid "Creates :class:`PyDLL` instances." -msgstr "" +msgstr "Pour créer des instances de :class:`PyDLL`." -#: ../Doc/library/ctypes.rst:1506 +#: library/ctypes.rst:1514 msgid "" "For accessing the C Python api directly, a ready-to-use Python shared " "library object is available:" -msgstr "" +msgstr "Il existe un moyen rapide d'accéder directement à l'API C Python :" -#: ../Doc/library/ctypes.rst:1512 +#: library/ctypes.rst:1520 msgid "" "An instance of :class:`PyDLL` that exposes Python C API functions as " "attributes. Note that all these functions are assumed to return C :c:type:" "`int`, which is of course not always the truth, so you have to assign the " "correct :attr:`restype` attribute to use these functions." msgstr "" +"Une instance de :class:`PyDLL` dont les attributs sont les fonctions " +"exportées par l'API C Python. Toutes ces fonctions sont supposées renvoyer " +"un :c:type:`int` C, ce qui n'est bien entendu pas toujours le cas. Il faut " +"donc définir vous-même le bon attribut :attr:`restype` pour pouvoir les " +"utiliser." -#: ../Doc/library/ctypes.rst:None +#: library/ctypes.rst:None msgid "" "Raises an :ref:`auditing event ` ``ctypes.dlopen`` with argument " "``name``." msgstr "" +"Lève un :ref:`évènement d'audit ` ``ctypes.dlopen`` avec " +"l'argument ``name``." -#: ../Doc/library/ctypes.rst:1519 +#: library/ctypes.rst:1527 msgid "" "Loading a library through any of these objects raises an :ref:`auditing " "event ` ``ctypes.dlopen`` with string argument ``name``, the name " "used to load the library." msgstr "" +"Charger une bibliothèque à l'aide d'un de ces objets avec en argument " +"``name``, le nom de la bibliothèque (une chaîne de caractères), lève un :ref:" +"`évènement d'audit ` ``ctypes.dlopen``." -#: ../Doc/library/ctypes.rst:None +#: library/ctypes.rst:None msgid "" "Raises an :ref:`auditing event ` ``ctypes.dlsym`` with arguments " "``library``, ``name``." msgstr "" -#: ../Doc/library/ctypes.rst:1525 +# "Lève un :ref:`évènement d'audit ` ``ctypes.dlsym`` avec " +# "``library`` et ``name`` comme arguments." +#: library/ctypes.rst:1533 msgid "" "Accessing a function on a loaded library raises an auditing event ``ctypes." "dlsym`` with arguments ``library`` (the library object) and ``name`` (the " "symbol's name as a string or integer)." msgstr "" +"Accéder à une fonction d'une bibliothèque lève un évènement d'audit ``ctypes." +"dlsym`` avec ``library`` (l'objet bibliothèque) et ``name`` (le nom du " +"symbole — une chaîne de caractères ou un entier) comme arguments." -#: ../Doc/library/ctypes.rst:None +#: library/ctypes.rst:None msgid "" "Raises an :ref:`auditing event ` ``ctypes.dlsym/handle`` with " "arguments ``handle``, ``name``." msgstr "" -#: ../Doc/library/ctypes.rst:1531 +# "Lève un :ref:`évènement d'audit ` ``ctypes.dlsym/handle`` avec " +# "``handle`` et ``name`` comme arguments." +#: library/ctypes.rst:1539 msgid "" "In cases when only the library handle is available rather than the object, " "accessing a function raises an auditing event ``ctypes.dlsym/handle`` with " "arguments ``handle`` (the raw library handle) and ``name``." msgstr "" +"Si seul le lien sur la bibliothèque, et non l'objet, est disponible, accéder " +"à une fonction lève l'évènement d'audit ``ctypes.dlsym/handle`` avec " +"``handle`` (le lien vers la bibliothèque) et ``name`` comme arguments." -#: ../Doc/library/ctypes.rst:1538 +#: library/ctypes.rst:1546 msgid "Foreign functions" -msgstr "" +msgstr "Fonctions externes" -#: ../Doc/library/ctypes.rst:1540 +#: library/ctypes.rst:1548 msgid "" "As explained in the previous section, foreign functions can be accessed as " "attributes of loaded shared libraries. The function objects created in this " @@ -1506,30 +2052,43 @@ msgid "" "instances as arguments, and return the default result type specified by the " "library loader. They are instances of a private class:" msgstr "" +"Comme expliqué dans la section précédente, on peut accéder aux fonctions " +"externes au travers des attributs des bibliothèques partagées. Un objet " +"fonction créé de cette façon accepte par défaut un nombre quelconque " +"d'arguments qui peuvent être de n'importe quel type de données *ctypes*. Il " +"renvoie le type par défaut du chargeur de la bibliothèque. Ce sont des " +"instances de la classe privée :" -#: ../Doc/library/ctypes.rst:1549 +#: library/ctypes.rst:1557 msgid "Base class for C callable foreign functions." -msgstr "" +msgstr "Classe de base pour les fonctions externes C." -#: ../Doc/library/ctypes.rst:1551 +#: library/ctypes.rst:1559 msgid "" "Instances of foreign functions are also C compatible data types; they " "represent C function pointers." msgstr "" +"Une instance de fonction externe est également un type de donnée compatible " +"avec le C ; elle représente un pointeur vers une fonction." -#: ../Doc/library/ctypes.rst:1554 +#: library/ctypes.rst:1562 msgid "" "This behavior can be customized by assigning to special attributes of the " "foreign function object." msgstr "" +"Son comportement peut-être personnalisé en réaffectant les attributs " +"spécifiques de l'objet représentant la fonction externe." -#: ../Doc/library/ctypes.rst:1559 +#: library/ctypes.rst:1567 msgid "" "Assign a ctypes type to specify the result type of the foreign function. Use " "``None`` for :c:type:`void`, a function not returning anything." msgstr "" +"Fait correspondre le type de retour de la fonction externe à un type " +"*ctypes*. Dans le cas où la fonction ne renvoie rien (:c:type:`void`), " +"utilisez ``None``." -#: ../Doc/library/ctypes.rst:1562 +#: library/ctypes.rst:1570 msgid "" "It is possible to assign a callable Python object that is not a ctypes type, " "in this case the function is assumed to return a C :c:type:`int`, and the " @@ -1538,8 +2097,16 @@ msgid "" "or error checking use a ctypes data type as :attr:`restype` and assign a " "callable to the :attr:`errcheck` attribute." msgstr "" +"Il est aussi possible de passer n'importe quel un objet Python qui n'est pas " +"un type *ctypes* pourvu qu'il soit appelable. Dans ce cas, la fonction est " +"censée renvoyer un :c:type:`int` C et l'appelable sera appelé avec cet " +"entier, ce qui permet ainsi de faire des actions supplémentaires comme " +"vérifier un code d'erreur. Ce mécanisme est obsolète ; une façon plus souple " +"de faire des actions supplémentaires ou de la vérification consiste à " +"affecter un type *ctypes* à :attr:`restype` et à affecter un appelable à " +"l'attribut :attr:`errcheck`." -#: ../Doc/library/ctypes.rst:1571 +#: library/ctypes.rst:1579 msgid "" "Assign a tuple of ctypes types to specify the argument types that the " "function accepts. Functions using the ``stdcall`` calling convention can " @@ -1547,8 +2114,13 @@ msgid "" "tuple; functions using the C calling convention accept additional, " "unspecified arguments as well." msgstr "" +"Fait correspondre le type des arguments que la fonction accepte avec un *n*-" +"uplet de types *ctypes*. Les fonctions qui utilisent la convention d'appel " +"``stdcall`` ne peuvent être appelées qu'avec le même nombre d'arguments que " +"la taille du *n*-uplet mais les fonctions qui utilisent la convention " +"d'appel C acceptent aussi des arguments additionnels non-définis." -#: ../Doc/library/ctypes.rst:1577 +#: library/ctypes.rst:1585 msgid "" "When a foreign function is called, each actual argument is passed to the :" "meth:`from_param` class method of the items in the :attr:`argtypes` tuple, " @@ -1557,59 +2129,88 @@ msgid "" "attr:`argtypes` tuple will convert a string passed as argument into a bytes " "object using ctypes conversion rules." msgstr "" +"À l'appel d'une fonction externe, chaque argument est passé à la méthode de " +"classe :meth:`from_param` de l'élément correspondant dans le *n*-uplet des :" +"attr:`argtypes`. Cette méthode convertit l'argument initial en un objet que " +"la fonction externe peut comprendre. Par exemple, un :class:`c_char_p` dans " +"le *n*-uplet des :attr:`argtypes` va transformer la chaîne de caractères " +"passée en argument en un objet chaîne d'octets selon les règles de " +"conversion *ctypes*." -#: ../Doc/library/ctypes.rst:1584 +#: library/ctypes.rst:1592 msgid "" "New: It is now possible to put items in argtypes which are not ctypes types, " "but each item must have a :meth:`from_param` method which returns a value " "usable as argument (integer, string, ctypes instance). This allows defining " "adapters that can adapt custom objects as function parameters." msgstr "" +"Nouveau : il est maintenant possible de mettre des objets qui ne sont pas " +"des types de *ctypes* dans les *argtypes*, mais ceux-ci doivent avoir une " +"méthode :meth:`from_param` renvoyant une valeur qui peut être utilisée comme " +"un argument (entier, chaîne de caractères ou instance *ctypes*). Ceci permet " +"de créer des adaptateurs qui convertissent des objets arbitraires en des " +"paramètres de fonction." -#: ../Doc/library/ctypes.rst:1591 +#: library/ctypes.rst:1599 msgid "" "Assign a Python function or another callable to this attribute. The callable " "will be called with three or more arguments:" msgstr "" +"Définit une fonction Python ou tout autre appelable qui sera appelé avec " +"trois arguments ou plus :" -#: ../Doc/library/ctypes.rst:1598 +#: library/ctypes.rst:1606 msgid "" "*result* is what the foreign function returns, as specified by the :attr:" "`restype` attribute." msgstr "" +"*result* est la valeur de retour de la fonction externe, comme défini par " +"l'attribut :attr:`restype`." -#: ../Doc/library/ctypes.rst:1601 +#: library/ctypes.rst:1609 msgid "" "*func* is the foreign function object itself, this allows reusing the same " "callable object to check or post process the results of several functions." msgstr "" +"*func* est l'objet représentant la fonction externe elle-même. Cet accesseur " +"permet de réutiliser le même appelable pour vérifier le résultat de " +"plusieurs fonctions ou de faire des actions supplémentaires après leur " +"exécution." -#: ../Doc/library/ctypes.rst:1605 +#: library/ctypes.rst:1613 msgid "" "*arguments* is a tuple containing the parameters originally passed to the " "function call, this allows specializing the behavior on the arguments used." msgstr "" +"*arguments* est le *n*-uplet qui contient les paramètres initiaux passés à " +"la fonction, ceci permet de spécialiser le comportement des arguments " +"utilisés." -#: ../Doc/library/ctypes.rst:1609 +#: library/ctypes.rst:1617 msgid "" "The object that this function returns will be returned from the foreign " "function call, but it can also check the result value and raise an exception " "if the foreign function call failed." msgstr "" +"L'objet renvoyé par cette fonction est celui renvoyé par l'appel de la " +"fonction externe, mais il peut aussi vérifier la valeur du résultat et lever " +"une exception si l'appel a échoué." -#: ../Doc/library/ctypes.rst:1616 +#: library/ctypes.rst:1624 msgid "" "This exception is raised when a foreign function call cannot convert one of " "the passed arguments." msgstr "" +"Exception levée quand un appel à la fonction externe ne peut pas convertir " +"un des arguments qu'elle a reçus." -#: ../Doc/library/ctypes.rst:None +#: library/ctypes.rst:None msgid "" "Raises an :ref:`auditing event ` ``ctypes.seh_exception`` with " "argument ``code``." msgstr "" -#: ../Doc/library/ctypes.rst:1622 +#: library/ctypes.rst:1630 msgid "" "On Windows, when a foreign function call raises a system exception (for " "example, due to an access violation), it will be captured and replaced with " @@ -1617,25 +2218,34 @@ msgid "" "seh_exception`` with argument ``code`` will be raised, allowing an audit " "hook to replace the exception with its own." msgstr "" +"En Windows, quand un appel à une fonction externe lève une exception système " +"(par exemple, une erreur de segmentation), celle-ci est interceptée pour " +"être remplacée par l'exception Python correspondante. De plus, un évènement " +"d'audit ``ctypes.seh_exception`` est levé avec ``code`` en argument, ce qui " +"permet à un point d'entrée (*hook* en anglais) d'audit de remplacer " +"l'exception par une des siennes." -#: ../Doc/library/ctypes.rst:None +#: library/ctypes.rst:None msgid "" "Raises an :ref:`auditing event ` ``ctypes.call_function`` with " "arguments ``func_pointer``, ``arguments``." msgstr "" -#: ../Doc/library/ctypes.rst:1630 +#: library/ctypes.rst:1638 msgid "" "Some ways to invoke foreign function calls may raise an auditing event " "``ctypes.call_function`` with arguments ``function pointer`` and " "``arguments``." msgstr "" +"Certaines manières d'appeler des fonction externes peuvent lever des " +"évènements d'audit ``ctypes.call_function`` avec ``function pointer`` et " +"``arguments`` comme arguments." -#: ../Doc/library/ctypes.rst:1636 +#: library/ctypes.rst:1644 msgid "Function prototypes" -msgstr "" +msgstr "Prototypes de fonction" -#: ../Doc/library/ctypes.rst:1638 +#: library/ctypes.rst:1646 msgid "" "Foreign functions can also be created by instantiating function prototypes. " "Function prototypes are similar to function prototypes in C; they describe a " @@ -1645,8 +2255,17 @@ msgid "" "decorator factories, and as such, be applied to functions through the " "``@wrapper`` syntax. See :ref:`ctypes-callback-functions` for examples." msgstr "" +"Il est aussi possible de créer des fonctions externes en instanciant des " +"prototypes de fonction. Les prototypes de fonction ressemblent beaucoup aux " +"prototypes de fonctions en C ; ils décrivent une fonction (type de retour, " +"type des arguments, convention d'appel) sans préciser son implémentation. " +"Les fabriques de fonctions prennent en entrée le type de retour et le type " +"des arguments de la fonction, et peuvent être utilisées comme des " +"décorateurs-fabrique et ainsi s'appliquer à des fonctions avec la syntaxe " +"``@décorateur``. Ceci est illustré dans la section :ref:`ctypes-callback-" +"functions`." -#: ../Doc/library/ctypes.rst:1649 +#: library/ctypes.rst:1657 msgid "" "The returned function prototype creates functions that use the standard C " "calling convention. The function will release the GIL during the call. If " @@ -1654,8 +2273,13 @@ msgid "" "`errno` variable is exchanged with the real :data:`errno` value before and " "after the call; *use_last_error* does the same for the Windows error code." msgstr "" +"Renvoie un prototype de fonction qui crée des fonctions qui suivent la " +"convention d'appel standard C. Les fonctions libèreront le GIL lors de leur " +"exécution. Si *use_errno* est vrai, la copie privée *ctypes* de la variable " +"système :data:`errno` est échangée avec la vraie valeur de :data:`errno` " +"avant et après l'appel ; *use_last_error* a le même effet sous Windows." -#: ../Doc/library/ctypes.rst:1659 +#: library/ctypes.rst:1667 msgid "" "Windows only: The returned function prototype creates functions that use the " "``stdcall`` calling convention, except on Windows CE where :func:" @@ -1664,140 +2288,187 @@ msgid "" "meaning as above." msgstr "" -#: ../Doc/library/ctypes.rst:1668 +#: library/ctypes.rst:1676 msgid "" "The returned function prototype creates functions that use the Python " "calling convention. The function will *not* release the GIL during the call." msgstr "" +"Renvoie un prototype de fonction qui crée des fonctions qui suivent la " +"convention d'appel Python. Les fonctions ne libèreront *pas* le GIL lors de " +"leur exécution." -#: ../Doc/library/ctypes.rst:1671 +#: library/ctypes.rst:1679 msgid "" "Function prototypes created by these factory functions can be instantiated " "in different ways, depending on the type and number of the parameters in the " "call:" msgstr "" +"Il y a plusieurs façons d'instancier les prototypes de fonction créés par " +"ces fabriques, selon le type et le nombre de paramètres de l'appel :" -#: ../Doc/library/ctypes.rst:1679 +#: library/ctypes.rst:1687 msgid "" "Returns a foreign function at the specified address which must be an integer." msgstr "" +"Renvoie une fonction externe sur l'adresse donnée sous la forme d'un entier." -#: ../Doc/library/ctypes.rst:1686 +#: library/ctypes.rst:1694 msgid "" "Create a C callable function (a callback function) from a Python *callable*." msgstr "" +"Crée une fonction appelable depuis du code C (une fonction de rappel) d'un " +"appelable Python donné en paramètre." -#: ../Doc/library/ctypes.rst:1693 +#: library/ctypes.rst:1701 msgid "" "Returns a foreign function exported by a shared library. *func_spec* must be " "a 2-tuple ``(name_or_ordinal, library)``. The first item is the name of the " "exported function as string, or the ordinal of the exported function as " "small integer. The second item is the shared library instance." msgstr "" +"Renvoie une fonction externe exposée par une bibliothèque partagée. " +"*func_spec* est un couple ``(nom_ou_indice, bibliothèque)``. Le premier " +"élément est le nom de la fonction à passer comme une chaîne ou bien son " +"indice (dans la table des symboles) à passer comme un entier. Le second " +"élément est l'instance de la bibliothèque partagée." -#: ../Doc/library/ctypes.rst:1703 +#: library/ctypes.rst:1711 msgid "" "Returns a foreign function that will call a COM method. *vtbl_index* is the " "index into the virtual function table, a small non-negative integer. *name* " "is name of the COM method. *iid* is an optional pointer to the interface " "identifier which is used in extended error reporting." msgstr "" +"Renvoie une fonction qui appelle une méthode COM. *vtbl_index* est l'indice " +"de la fonction dans la table virtuelle, un petit entier positif. *name* est " +"le nom de la méthode COM. *iid* est un pointeur optionnel vers " +"l'identificateur de plateforme, qui est utilisé dans la remontée d'erreurs " +"étendue." -#: ../Doc/library/ctypes.rst:1708 +#: library/ctypes.rst:1716 msgid "" "COM methods use a special calling convention: They require a pointer to the " "COM interface as first argument, in addition to those parameters that are " "specified in the :attr:`argtypes` tuple." msgstr "" +"Les méthodes COM ont une convention d'appel particulière : elles requièrent " +"de passer un pointeur vers l'interface COM en premier argument, en sus des " +"arguments passés dans le *n*-uplet :attr:`argtypes`." -#: ../Doc/library/ctypes.rst:1712 +#: library/ctypes.rst:1720 msgid "" "The optional *paramflags* parameter creates foreign function wrappers with " "much more functionality than the features described above." msgstr "" +"Le paramètre optionnel *paramflags* crée une fabrique de fonction externes " +"avec des fonctionnalités supplémentaires par rapport à celles décrites ci-" +"dessus." -#: ../Doc/library/ctypes.rst:1715 +#: library/ctypes.rst:1723 msgid "*paramflags* must be a tuple of the same length as :attr:`argtypes`." -msgstr "" +msgstr "*paramflags* est un *n*-uplet de la même taille que :attr:`argtypes`." -#: ../Doc/library/ctypes.rst:1717 +#: library/ctypes.rst:1725 msgid "" "Each item in this tuple contains further information about a parameter, it " "must be a tuple containing one, two, or three items." msgstr "" +"Chaque élément de ce *n*-uplet contient des informations supplémentaires sur " +"le paramètre correspondant. Ce doit être aussi un *n*-uplet, avec un, deux " +"ou trois éléments." -#: ../Doc/library/ctypes.rst:1720 +#: library/ctypes.rst:1728 msgid "" "The first item is an integer containing a combination of direction flags for " "the parameter:" msgstr "" +"Le premier élément est un entier qui contient une combinaison de drapeaux " +"qui précisent le sens des paramètres (entrée ou sortie) :" -#: ../Doc/library/ctypes.rst:1724 +#: library/ctypes.rst:1732 msgid "1" msgstr "1" -#: ../Doc/library/ctypes.rst:1724 +#: library/ctypes.rst:1732 msgid "Specifies an input parameter to the function." -msgstr "" +msgstr "Paramètre d'entrée." -#: ../Doc/library/ctypes.rst:1727 +#: library/ctypes.rst:1735 msgid "2" msgstr "2" -#: ../Doc/library/ctypes.rst:1727 +#: library/ctypes.rst:1735 msgid "Output parameter. The foreign function fills in a value." -msgstr "" +msgstr "Paramètre de sortie. La fonction externe va modifier cette valeur." -#: ../Doc/library/ctypes.rst:1730 +#: library/ctypes.rst:1738 msgid "4" msgstr "4" -#: ../Doc/library/ctypes.rst:1730 +#: library/ctypes.rst:1738 msgid "Input parameter which defaults to the integer zero." -msgstr "" +msgstr "Paramètre d'entrée, valant 0 par défaut." -#: ../Doc/library/ctypes.rst:1732 +#: library/ctypes.rst:1740 msgid "" "The optional second item is the parameter name as string. If this is " "specified, the foreign function can be called with named parameters." msgstr "" +"Le deuxième élément (optionnel) est une chaîne de caractères représentant le " +"nom du paramètre. Si cet élément est donné, la fonction externe pourra être " +"appelée avec des paramètres nommés." -#: ../Doc/library/ctypes.rst:1735 +#: library/ctypes.rst:1743 msgid "The optional third item is the default value for this parameter." msgstr "" +"Le troisième élément (optionnel) est la valeur par défaut du paramètre." -#: ../Doc/library/ctypes.rst:1737 +#: library/ctypes.rst:1745 msgid "" "This example demonstrates how to wrap the Windows ``MessageBoxW`` function " "so that it supports default parameters and named arguments. The C " "declaration from the windows header file is this::" msgstr "" +"L'exemple suivant montre comment encapsuler la fonction Windows " +"``MessageBoxW`` afin que celle-ci prenne en charge des paramètres par défaut " +"et des arguments nommés. Sa déclaration C dans le fichier d'en-tête des " +"fenêtres est ::" -#: ../Doc/library/ctypes.rst:1748 ../Doc/library/ctypes.rst:1771 +#: library/ctypes.rst:1779 msgid "Here is the wrapping with :mod:`ctypes`::" -msgstr "" +msgstr "L'encapsulation :mod:`ctypes` correspondante est alors ::" -#: ../Doc/library/ctypes.rst:1756 +#: library/ctypes.rst:1764 msgid "The ``MessageBox`` foreign function can now be called in these ways::" msgstr "" +"La fonction ``MessageBox`` peut désormais être appelée des manières " +"suivantes ::" -#: ../Doc/library/ctypes.rst:1762 +#: library/ctypes.rst:1770 msgid "" "A second example demonstrates output parameters. The win32 " "``GetWindowRect`` function retrieves the dimensions of a specified window by " "copying them into ``RECT`` structure that the caller has to supply. Here is " "the C declaration::" msgstr "" +"L'exemple qui suit traite des paramètres en sortie. La fonction win32 " +"``GetWindowRect`` donne les dimensions d'une fenêtre en les copiant dans une " +"structure ``RECT`` que l'appelant doit fournir. Sa déclaration en C est ::" -#: ../Doc/library/ctypes.rst:1780 +#: library/ctypes.rst:1788 msgid "" "Functions with output parameters will automatically return the output " "parameter value if there is a single one, or a tuple containing the output " "parameter values when there are more than one, so the GetWindowRect function " "now returns a RECT instance, when called." msgstr "" +"Les fonctions avec des paramètres en sortie renvoient automatiquement la " +"valeur du paramètre de sortie s'il n'y en a qu'un seul, ou un *n*-uplet avec " +"les valeurs de sortie de chaque paramètre s'il y en a plusieurs. Ici, la " +"fonction *GetWindowRect* renvoie donc une instance de *RECT* quand elle est " +"appelée." -#: ../Doc/library/ctypes.rst:1785 +#: library/ctypes.rst:1793 msgid "" "Output parameters can be combined with the :attr:`errcheck` protocol to do " "further output processing and error checking. The win32 ``GetWindowRect`` " @@ -1805,8 +2476,13 @@ msgid "" "function could do the error checking, and raises an exception when the api " "call failed::" msgstr "" +"Il est possible de combiner des paramètres en sortie avec le protocole :attr:" +"`errcheck` pour post-traiter les sorties et faire de la vérification " +"d'erreur. La fonction de l'API win32 ``GetWindowRect`` renvoie un ``BOOL`` " +"pour indiquer le succès ou l'échec de l'exécution, donc cette fonction peut " +"vérifier le résultat et lever une exception quand l'appel à l'API a échoué ::" -#: ../Doc/library/ctypes.rst:1798 +#: library/ctypes.rst:1806 msgid "" "If the :attr:`errcheck` function returns the argument tuple it receives " "unchanged, :mod:`ctypes` continues the normal processing it does on the " @@ -1814,47 +2490,53 @@ msgid "" "instead of a ``RECT`` instance, you can retrieve the fields in the function " "and return them instead, the normal processing will no longer take place::" msgstr "" +"Si la fonction :attr:`errcheck` renvoie le *n*-uplet passé en paramètre sans " +"rien y changer, :mod:`ctypes` continue l'exécution habituelle des paramètres " +"en sortie. Si on préfère renvoyer un *n*-uplet de coordonnées au lieu de " +"renvoyer une instance de ``RECT``, il faut récupérer les champs " +"correspondants et les renvoyer en retour. Dans ce cas, l'exécution " +"habituelle n'a plus lieu ::" -#: ../Doc/library/ctypes.rst:1817 +#: library/ctypes.rst:1825 msgid "Utility functions" -msgstr "" +msgstr "Fonctions utilitaires" -#: ../Doc/library/ctypes.rst:1821 +#: library/ctypes.rst:1829 msgid "" "Returns the address of the memory buffer as integer. *obj* must be an " "instance of a ctypes type." msgstr "" -#: ../Doc/library/ctypes.rst:1824 +#: library/ctypes.rst:1832 msgid "" "Raises an :ref:`auditing event ` ``ctypes.addressof`` with " "argument ``obj``." msgstr "" -#: ../Doc/library/ctypes.rst:1829 +#: library/ctypes.rst:1837 msgid "" "Returns the alignment requirements of a ctypes type. *obj_or_type* must be a " "ctypes type or instance." msgstr "" -#: ../Doc/library/ctypes.rst:1835 +#: library/ctypes.rst:1843 msgid "" "Returns a light-weight pointer to *obj*, which must be an instance of a " "ctypes type. *offset* defaults to zero, and must be an integer that will be " "added to the internal pointer value." msgstr "" -#: ../Doc/library/ctypes.rst:1839 +#: library/ctypes.rst:1847 msgid "``byref(obj, offset)`` corresponds to this C code::" msgstr "" -#: ../Doc/library/ctypes.rst:1843 +#: library/ctypes.rst:1851 msgid "" "The returned object can only be used as a foreign function call parameter. " "It behaves similar to ``pointer(obj)``, but the construction is a lot faster." msgstr "" -#: ../Doc/library/ctypes.rst:1849 +#: library/ctypes.rst:1857 msgid "" "This function is similar to the cast operator in C. It returns a new " "instance of *type* which points to the same memory block as *obj*. *type* " @@ -1862,19 +2544,19 @@ msgid "" "as a pointer." msgstr "" -#: ../Doc/library/ctypes.rst:1857 +#: library/ctypes.rst:1865 msgid "" "This function creates a mutable character buffer. The returned object is a " "ctypes array of :class:`c_char`." msgstr "" -#: ../Doc/library/ctypes.rst:1860 +#: library/ctypes.rst:1868 msgid "" "*init_or_size* must be an integer which specifies the size of the array, or " "a bytes object which will be used to initialize the array items." msgstr "" -#: ../Doc/library/ctypes.rst:1863 +#: library/ctypes.rst:1871 msgid "" "If a bytes object is specified as first argument, the buffer is made one " "item larger than its length so that the last element in the array is a NUL " @@ -1883,25 +2565,25 @@ msgid "" "not be used." msgstr "" -#: ../Doc/library/ctypes.rst:1868 +#: library/ctypes.rst:1876 msgid "" "Raises an :ref:`auditing event ` ``ctypes.create_string_buffer`` " "with arguments ``init``, ``size``." msgstr "" -#: ../Doc/library/ctypes.rst:1873 +#: library/ctypes.rst:1881 msgid "" "This function creates a mutable unicode character buffer. The returned " "object is a ctypes array of :class:`c_wchar`." msgstr "" -#: ../Doc/library/ctypes.rst:1876 +#: library/ctypes.rst:1884 msgid "" "*init_or_size* must be an integer which specifies the size of the array, or " "a string which will be used to initialize the array items." msgstr "" -#: ../Doc/library/ctypes.rst:1879 +#: library/ctypes.rst:1887 msgid "" "If a string is specified as first argument, the buffer is made one item " "larger than the length of the string so that the last element in the array " @@ -1910,27 +2592,27 @@ msgid "" "should not be used." msgstr "" -#: ../Doc/library/ctypes.rst:1885 +#: library/ctypes.rst:1893 msgid "" "Raises an :ref:`auditing event ` ``ctypes.create_unicode_buffer`` " "with arguments ``init``, ``size``." msgstr "" -#: ../Doc/library/ctypes.rst:1890 +#: library/ctypes.rst:1898 msgid "" "Windows only: This function is a hook which allows implementing in-process " "COM servers with ctypes. It is called from the DllCanUnloadNow function " "that the _ctypes extension dll exports." msgstr "" -#: ../Doc/library/ctypes.rst:1897 +#: library/ctypes.rst:1905 msgid "" "Windows only: This function is a hook which allows implementing in-process " "COM servers with ctypes. It is called from the DllGetClassObject function " "that the ``_ctypes`` extension dll exports." msgstr "" -#: ../Doc/library/ctypes.rst:1905 +#: library/ctypes.rst:1913 msgid "" "Try to find a library and return a pathname. *name* is the library name " "without any prefix like ``lib``, suffix like ``.so``, ``.dylib`` or version " @@ -1938,92 +2620,92 @@ msgid "" "If no library can be found, returns ``None``." msgstr "" -#: ../Doc/library/ctypes.rst:1916 +#: library/ctypes.rst:1924 msgid "" "Windows only: return the filename of the VC runtime library used by Python, " "and by the extension modules. If the name of the library cannot be " "determined, ``None`` is returned." msgstr "" -#: ../Doc/library/ctypes.rst:1920 +#: library/ctypes.rst:1928 msgid "" "If you need to free memory, for example, allocated by an extension module " "with a call to the ``free(void *)``, it is important that you use the " "function in the same library that allocated the memory." msgstr "" -#: ../Doc/library/ctypes.rst:1927 +#: library/ctypes.rst:1935 msgid "" "Windows only: Returns a textual description of the error code *code*. If no " "error code is specified, the last error code is used by calling the Windows " "api function GetLastError." msgstr "" -#: ../Doc/library/ctypes.rst:1934 +#: library/ctypes.rst:1942 msgid "" "Windows only: Returns the last error code set by Windows in the calling " "thread. This function calls the Windows `GetLastError()` function directly, " "it does not return the ctypes-private copy of the error code." msgstr "" -#: ../Doc/library/ctypes.rst:1940 +#: library/ctypes.rst:1948 msgid "" "Returns the current value of the ctypes-private copy of the system :data:" "`errno` variable in the calling thread." msgstr "" -#: ../Doc/library/ctypes.rst:1943 +#: library/ctypes.rst:1951 msgid "" "Raises an :ref:`auditing event ` ``ctypes.get_errno`` with no " "arguments." msgstr "" -#: ../Doc/library/ctypes.rst:1947 +#: library/ctypes.rst:1955 msgid "" "Windows only: returns the current value of the ctypes-private copy of the " "system :data:`LastError` variable in the calling thread." msgstr "" -#: ../Doc/library/ctypes.rst:1950 +#: library/ctypes.rst:1958 msgid "" "Raises an :ref:`auditing event ` ``ctypes.get_last_error`` with no " "arguments." msgstr "" -#: ../Doc/library/ctypes.rst:1954 +#: library/ctypes.rst:1962 msgid "" "Same as the standard C memmove library function: copies *count* bytes from " "*src* to *dst*. *dst* and *src* must be integers or ctypes instances that " "can be converted to pointers." msgstr "" -#: ../Doc/library/ctypes.rst:1961 +#: library/ctypes.rst:1969 msgid "" "Same as the standard C memset library function: fills the memory block at " "address *dst* with *count* bytes of value *c*. *dst* must be an integer " "specifying an address, or a ctypes instance." msgstr "" -#: ../Doc/library/ctypes.rst:1968 +#: library/ctypes.rst:1976 msgid "" "This factory function creates and returns a new ctypes pointer type. Pointer " "types are cached and reused internally, so calling this function repeatedly " "is cheap. *type* must be a ctypes type." msgstr "" -#: ../Doc/library/ctypes.rst:1975 +#: library/ctypes.rst:1983 msgid "" "This function creates a new pointer instance, pointing to *obj*. The " "returned object is of the type ``POINTER(type(obj))``." msgstr "" -#: ../Doc/library/ctypes.rst:1978 +#: library/ctypes.rst:1986 msgid "" "Note: If you just want to pass a pointer to an object to a foreign function " "call, you should use ``byref(obj)`` which is much faster." msgstr "" -#: ../Doc/library/ctypes.rst:1984 +#: library/ctypes.rst:1992 msgid "" "This function resizes the internal memory buffer of *obj*, which must be an " "instance of a ctypes type. It is not possible to make the buffer smaller " @@ -2031,51 +2713,51 @@ msgid "" "but it is possible to enlarge the buffer." msgstr "" -#: ../Doc/library/ctypes.rst:1992 +#: library/ctypes.rst:2000 msgid "" "Set the current value of the ctypes-private copy of the system :data:`errno` " "variable in the calling thread to *value* and return the previous value." msgstr "" -#: ../Doc/library/ctypes.rst:1995 +#: library/ctypes.rst:2003 msgid "" "Raises an :ref:`auditing event ` ``ctypes.set_errno`` with " "argument ``errno``." msgstr "" -#: ../Doc/library/ctypes.rst:2000 +#: library/ctypes.rst:2008 msgid "" "Windows only: set the current value of the ctypes-private copy of the " "system :data:`LastError` variable in the calling thread to *value* and " "return the previous value." msgstr "" -#: ../Doc/library/ctypes.rst:2004 +#: library/ctypes.rst:2012 msgid "" "Raises an :ref:`auditing event ` ``ctypes.set_last_error`` with " "argument ``error``." msgstr "" -#: ../Doc/library/ctypes.rst:2009 +#: library/ctypes.rst:2017 msgid "" "Returns the size in bytes of a ctypes type or instance memory buffer. Does " "the same as the C ``sizeof`` operator." msgstr "" -#: ../Doc/library/ctypes.rst:2015 +#: library/ctypes.rst:2023 msgid "" "This function returns the C string starting at memory address *address* as a " "bytes object. If size is specified, it is used as size, otherwise the string " "is assumed to be zero-terminated." msgstr "" -#: ../Doc/library/ctypes.rst:2019 +#: library/ctypes.rst:2027 msgid "" "Raises an :ref:`auditing event ` ``ctypes.string_at`` with " "arguments ``address``, ``size``." msgstr "" -#: ../Doc/library/ctypes.rst:2024 +#: library/ctypes.rst:2032 msgid "" "Windows only: this function is probably the worst-named thing in ctypes. It " "creates an instance of OSError. If *code* is not specified, " @@ -2084,11 +2766,11 @@ msgid "" "error." msgstr "" -#: ../Doc/library/ctypes.rst:2030 +#: library/ctypes.rst:2038 msgid "An instance of :exc:`WindowsError` used to be created." msgstr "" -#: ../Doc/library/ctypes.rst:2036 +#: library/ctypes.rst:2044 msgid "" "This function returns the wide character string starting at memory address " "*address* as a string. If *size* is specified, it is used as the number of " @@ -2096,17 +2778,17 @@ msgid "" "terminated." msgstr "" -#: ../Doc/library/ctypes.rst:2041 +#: library/ctypes.rst:2049 msgid "" "Raises an :ref:`auditing event ` ``ctypes.wstring_at`` with " "arguments ``address``, ``size``." msgstr "" -#: ../Doc/library/ctypes.rst:2047 +#: library/ctypes.rst:2055 msgid "Data types" msgstr "Types de données" -#: ../Doc/library/ctypes.rst:2052 +#: library/ctypes.rst:2060 msgid "" "This non-public class is the common base class of all ctypes data types. " "Among other things, all ctypes type instances contain a memory block that " @@ -2116,13 +2798,13 @@ msgid "" "alive in case the memory block contains pointers." msgstr "" -#: ../Doc/library/ctypes.rst:2059 +#: library/ctypes.rst:2067 msgid "" "Common methods of ctypes data types, these are all class methods (to be " "exact, they are methods of the :term:`metaclass`):" msgstr "" -#: ../Doc/library/ctypes.rst:2064 +#: library/ctypes.rst:2072 msgid "" "This method returns a ctypes instance that shares the buffer of the *source* " "object. The *source* object must support the writeable buffer interface. " @@ -2131,13 +2813,13 @@ msgid "" "exc:`ValueError` is raised." msgstr "" -#: ../Doc/library/ctypes.rst:2070 ../Doc/library/ctypes.rst:2080 +#: library/ctypes.rst:2088 msgid "" "Raises an :ref:`auditing event ` ``ctypes.cdata/buffer`` with " "arguments ``pointer``, ``size``, ``offset``." msgstr "" -#: ../Doc/library/ctypes.rst:2074 +#: library/ctypes.rst:2082 msgid "" "This method creates a ctypes instance, copying the buffer from the *source* " "object buffer which must be readable. The optional *offset* parameter " @@ -2145,25 +2827,25 @@ msgid "" "If the source buffer is not large enough a :exc:`ValueError` is raised." msgstr "" -#: ../Doc/library/ctypes.rst:2084 +#: library/ctypes.rst:2092 msgid "" "This method returns a ctypes type instance using the memory specified by " "*address* which must be an integer." msgstr "" -#: ../Doc/library/ctypes.rst:None +#: library/ctypes.rst:None msgid "" "Raises an :ref:`auditing event ` ``ctypes.cdata`` with argument " "``address``." msgstr "" -#: ../Doc/library/ctypes.rst:2089 +#: library/ctypes.rst:2097 msgid "" "This method, and others that indirectly call this method, raises an :ref:" "`auditing event ` ``ctypes.cdata`` with argument ``address``." msgstr "" -#: ../Doc/library/ctypes.rst:2095 +#: library/ctypes.rst:2103 msgid "" "This method adapts *obj* to a ctypes type. It is called with the actual " "object used in a foreign function call when the type is present in the " @@ -2171,25 +2853,25 @@ msgid "" "be used as a function call parameter." msgstr "" -#: ../Doc/library/ctypes.rst:2100 +#: library/ctypes.rst:2108 msgid "" "All ctypes data types have a default implementation of this classmethod that " "normally returns *obj* if that is an instance of the type. Some types " "accept other objects as well." msgstr "" -#: ../Doc/library/ctypes.rst:2106 +#: library/ctypes.rst:2114 msgid "" "This method returns a ctypes type instance exported by a shared library. " "*name* is the name of the symbol that exports the data, *library* is the " "loaded shared library." msgstr "" -#: ../Doc/library/ctypes.rst:2110 +#: library/ctypes.rst:2118 msgid "Common instance variables of ctypes data types:" msgstr "" -#: ../Doc/library/ctypes.rst:2114 +#: library/ctypes.rst:2122 msgid "" "Sometimes ctypes data instances do not own the memory block they contain, " "instead they share part of the memory block of a base object. The :attr:" @@ -2197,13 +2879,13 @@ msgid "" "block." msgstr "" -#: ../Doc/library/ctypes.rst:2121 +#: library/ctypes.rst:2129 msgid "" "This read-only variable is true when the ctypes data instance has allocated " "the memory block itself, false otherwise." msgstr "" -#: ../Doc/library/ctypes.rst:2126 +#: library/ctypes.rst:2134 msgid "" "This member is either ``None`` or a dictionary containing Python objects " "that need to be kept alive so that the memory block contents is kept valid. " @@ -2211,7 +2893,7 @@ msgid "" "dictionary." msgstr "" -#: ../Doc/library/ctypes.rst:2139 +#: library/ctypes.rst:2147 msgid "" "This non-public class is the base class of all fundamental ctypes data " "types. It is mentioned here because it contains the common attributes of the " @@ -2220,11 +2902,11 @@ msgid "" "types that are not and do not contain pointers can now be pickled." msgstr "" -#: ../Doc/library/ctypes.rst:2145 +#: library/ctypes.rst:2153 msgid "Instances have a single attribute:" msgstr "" -#: ../Doc/library/ctypes.rst:2149 +#: library/ctypes.rst:2157 msgid "" "This attribute contains the actual value of the instance. For integer and " "pointer types, it is an integer, for character types, it is a single " @@ -2232,7 +2914,7 @@ msgid "" "bytes object or string." msgstr "" -#: ../Doc/library/ctypes.rst:2154 +#: library/ctypes.rst:2162 msgid "" "When the ``value`` attribute is retrieved from a ctypes instance, usually a " "new object is returned each time. :mod:`ctypes` does *not* implement " @@ -2240,7 +2922,7 @@ msgid "" "true for all other ctypes object instances." msgstr "" -#: ../Doc/library/ctypes.rst:2160 +#: library/ctypes.rst:2168 msgid "" "Fundamental data types, when returned as foreign function call results, or, " "for example, by retrieving structure field members or array items, are " @@ -2249,7 +2931,7 @@ msgid "" "receive a Python bytes object, *not* a :class:`c_char_p` instance." msgstr "" -#: ../Doc/library/ctypes.rst:2168 +#: library/ctypes.rst:2176 msgid "" "Subclasses of fundamental data types do *not* inherit this behavior. So, if " "a foreign functions :attr:`restype` is a subclass of :class:`c_void_p`, you " @@ -2257,25 +2939,25 @@ msgid "" "you can get the value of the pointer by accessing the ``value`` attribute." msgstr "" -#: ../Doc/library/ctypes.rst:2173 +#: library/ctypes.rst:2181 msgid "These are the fundamental ctypes data types:" msgstr "" -#: ../Doc/library/ctypes.rst:2177 +#: library/ctypes.rst:2185 msgid "" "Represents the C :c:type:`signed char` datatype, and interprets the value as " "small integer. The constructor accepts an optional integer initializer; no " "overflow checking is done." msgstr "" -#: ../Doc/library/ctypes.rst:2184 +#: library/ctypes.rst:2192 msgid "" "Represents the C :c:type:`char` datatype, and interprets the value as a " "single character. The constructor accepts an optional string initializer, " "the length of the string must be exactly one character." msgstr "" -#: ../Doc/library/ctypes.rst:2191 +#: library/ctypes.rst:2199 msgid "" "Represents the C :c:type:`char *` datatype when it points to a zero-" "terminated string. For a general character pointer that may also point to " @@ -2283,178 +2965,178 @@ msgid "" "integer address, or a bytes object." msgstr "" -#: ../Doc/library/ctypes.rst:2199 +#: library/ctypes.rst:2207 msgid "" "Represents the C :c:type:`double` datatype. The constructor accepts an " "optional float initializer." msgstr "" -#: ../Doc/library/ctypes.rst:2205 +#: library/ctypes.rst:2213 msgid "" "Represents the C :c:type:`long double` datatype. The constructor accepts an " "optional float initializer. On platforms where ``sizeof(long double) == " "sizeof(double)`` it is an alias to :class:`c_double`." msgstr "" -#: ../Doc/library/ctypes.rst:2211 +#: library/ctypes.rst:2219 msgid "" "Represents the C :c:type:`float` datatype. The constructor accepts an " "optional float initializer." msgstr "" -#: ../Doc/library/ctypes.rst:2217 +#: library/ctypes.rst:2225 msgid "" "Represents the C :c:type:`signed int` datatype. The constructor accepts an " "optional integer initializer; no overflow checking is done. On platforms " "where ``sizeof(int) == sizeof(long)`` it is an alias to :class:`c_long`." msgstr "" -#: ../Doc/library/ctypes.rst:2224 +#: library/ctypes.rst:2232 msgid "" "Represents the C 8-bit :c:type:`signed int` datatype. Usually an alias for :" "class:`c_byte`." msgstr "" -#: ../Doc/library/ctypes.rst:2230 +#: library/ctypes.rst:2238 msgid "" "Represents the C 16-bit :c:type:`signed int` datatype. Usually an alias " "for :class:`c_short`." msgstr "" -#: ../Doc/library/ctypes.rst:2236 +#: library/ctypes.rst:2244 msgid "" "Represents the C 32-bit :c:type:`signed int` datatype. Usually an alias " "for :class:`c_int`." msgstr "" -#: ../Doc/library/ctypes.rst:2242 +#: library/ctypes.rst:2250 msgid "" "Represents the C 64-bit :c:type:`signed int` datatype. Usually an alias " "for :class:`c_longlong`." msgstr "" -#: ../Doc/library/ctypes.rst:2248 +#: library/ctypes.rst:2256 msgid "" "Represents the C :c:type:`signed long` datatype. The constructor accepts an " "optional integer initializer; no overflow checking is done." msgstr "" -#: ../Doc/library/ctypes.rst:2254 +#: library/ctypes.rst:2262 msgid "" "Represents the C :c:type:`signed long long` datatype. The constructor " "accepts an optional integer initializer; no overflow checking is done." msgstr "" -#: ../Doc/library/ctypes.rst:2260 +#: library/ctypes.rst:2268 msgid "" "Represents the C :c:type:`signed short` datatype. The constructor accepts " "an optional integer initializer; no overflow checking is done." msgstr "" -#: ../Doc/library/ctypes.rst:2266 +#: library/ctypes.rst:2274 msgid "Represents the C :c:type:`size_t` datatype." msgstr "" -#: ../Doc/library/ctypes.rst:2271 +#: library/ctypes.rst:2279 msgid "Represents the C :c:type:`ssize_t` datatype." msgstr "" -#: ../Doc/library/ctypes.rst:2278 +#: library/ctypes.rst:2286 msgid "" "Represents the C :c:type:`unsigned char` datatype, it interprets the value " "as small integer. The constructor accepts an optional integer initializer; " "no overflow checking is done." msgstr "" -#: ../Doc/library/ctypes.rst:2285 +#: library/ctypes.rst:2293 msgid "" "Represents the C :c:type:`unsigned int` datatype. The constructor accepts " "an optional integer initializer; no overflow checking is done. On platforms " "where ``sizeof(int) == sizeof(long)`` it is an alias for :class:`c_ulong`." msgstr "" -#: ../Doc/library/ctypes.rst:2292 +#: library/ctypes.rst:2300 msgid "" "Represents the C 8-bit :c:type:`unsigned int` datatype. Usually an alias " "for :class:`c_ubyte`." msgstr "" -#: ../Doc/library/ctypes.rst:2298 +#: library/ctypes.rst:2306 msgid "" "Represents the C 16-bit :c:type:`unsigned int` datatype. Usually an alias " "for :class:`c_ushort`." msgstr "" -#: ../Doc/library/ctypes.rst:2304 +#: library/ctypes.rst:2312 msgid "" "Represents the C 32-bit :c:type:`unsigned int` datatype. Usually an alias " "for :class:`c_uint`." msgstr "" -#: ../Doc/library/ctypes.rst:2310 +#: library/ctypes.rst:2318 msgid "" "Represents the C 64-bit :c:type:`unsigned int` datatype. Usually an alias " "for :class:`c_ulonglong`." msgstr "" -#: ../Doc/library/ctypes.rst:2316 +#: library/ctypes.rst:2324 msgid "" "Represents the C :c:type:`unsigned long` datatype. The constructor accepts " "an optional integer initializer; no overflow checking is done." msgstr "" -#: ../Doc/library/ctypes.rst:2322 +#: library/ctypes.rst:2330 msgid "" "Represents the C :c:type:`unsigned long long` datatype. The constructor " "accepts an optional integer initializer; no overflow checking is done." msgstr "" -#: ../Doc/library/ctypes.rst:2328 +#: library/ctypes.rst:2336 msgid "" "Represents the C :c:type:`unsigned short` datatype. The constructor accepts " "an optional integer initializer; no overflow checking is done." msgstr "" -#: ../Doc/library/ctypes.rst:2334 +#: library/ctypes.rst:2342 msgid "" "Represents the C :c:type:`void *` type. The value is represented as " "integer. The constructor accepts an optional integer initializer." msgstr "" -#: ../Doc/library/ctypes.rst:2340 +#: library/ctypes.rst:2348 msgid "" "Represents the C :c:type:`wchar_t` datatype, and interprets the value as a " "single character unicode string. The constructor accepts an optional string " "initializer, the length of the string must be exactly one character." msgstr "" -#: ../Doc/library/ctypes.rst:2347 +#: library/ctypes.rst:2355 msgid "" "Represents the C :c:type:`wchar_t *` datatype, which must be a pointer to a " "zero-terminated wide character string. The constructor accepts an integer " "address, or a string." msgstr "" -#: ../Doc/library/ctypes.rst:2354 +#: library/ctypes.rst:2362 msgid "" "Represent the C :c:type:`bool` datatype (more accurately, :c:type:`_Bool` " "from C99). Its value can be ``True`` or ``False``, and the constructor " "accepts any object that has a truth value." msgstr "" -#: ../Doc/library/ctypes.rst:2361 +#: library/ctypes.rst:2369 msgid "" "Windows only: Represents a :c:type:`HRESULT` value, which contains success " "or error information for a function or method call." msgstr "" -#: ../Doc/library/ctypes.rst:2367 +#: library/ctypes.rst:2375 msgid "" "Represents the C :c:type:`PyObject *` datatype. Calling this without an " "argument creates a ``NULL`` :c:type:`PyObject *` pointer." msgstr "" -#: ../Doc/library/ctypes.rst:2370 +#: library/ctypes.rst:2378 msgid "" "The :mod:`ctypes.wintypes` module provides quite some other Windows specific " "data types, for example :c:type:`HWND`, :c:type:`WPARAM`, or :c:type:" @@ -2462,33 +3144,33 @@ msgid "" "also defined." msgstr "" -#: ../Doc/library/ctypes.rst:2378 +#: library/ctypes.rst:2386 msgid "Structured data types" -msgstr "" +msgstr "Types de données dérivés de Structure" -#: ../Doc/library/ctypes.rst:2383 +#: library/ctypes.rst:2391 msgid "Abstract base class for unions in native byte order." msgstr "" -#: ../Doc/library/ctypes.rst:2388 +#: library/ctypes.rst:2396 msgid "Abstract base class for structures in *big endian* byte order." msgstr "" -#: ../Doc/library/ctypes.rst:2393 +#: library/ctypes.rst:2401 msgid "Abstract base class for structures in *little endian* byte order." msgstr "" -#: ../Doc/library/ctypes.rst:2395 +#: library/ctypes.rst:2403 msgid "" "Structures with non-native byte order cannot contain pointer type fields, or " "any other data types containing pointer type fields." msgstr "" -#: ../Doc/library/ctypes.rst:2401 +#: library/ctypes.rst:2409 msgid "Abstract base class for structures in *native* byte order." msgstr "" -#: ../Doc/library/ctypes.rst:2403 +#: library/ctypes.rst:2411 msgid "" "Concrete structure and union types must be created by subclassing one of " "these types, and at least define a :attr:`_fields_` class variable. :mod:" @@ -2496,34 +3178,34 @@ msgid "" "the fields by direct attribute accesses. These are the" msgstr "" -#: ../Doc/library/ctypes.rst:2411 +#: library/ctypes.rst:2419 msgid "" "A sequence defining the structure fields. The items must be 2-tuples or 3-" "tuples. The first item is the name of the field, the second item specifies " "the type of the field; it can be any ctypes data type." msgstr "" -#: ../Doc/library/ctypes.rst:2415 +#: library/ctypes.rst:2423 msgid "" "For integer type fields like :class:`c_int`, a third optional item can be " "given. It must be a small positive integer defining the bit width of the " "field." msgstr "" -#: ../Doc/library/ctypes.rst:2419 +#: library/ctypes.rst:2427 msgid "" "Field names must be unique within one structure or union. This is not " "checked, only one field can be accessed when names are repeated." msgstr "" -#: ../Doc/library/ctypes.rst:2422 +#: library/ctypes.rst:2430 msgid "" "It is possible to define the :attr:`_fields_` class variable *after* the " "class statement that defines the Structure subclass, this allows creating " "data types that directly or indirectly reference themselves::" msgstr "" -#: ../Doc/library/ctypes.rst:2432 +#: library/ctypes.rst:2440 msgid "" "The :attr:`_fields_` class variable must, however, be defined before the " "type is first used (an instance is created, :func:`sizeof` is called on it, " @@ -2531,28 +3213,28 @@ msgid "" "raise an AttributeError." msgstr "" -#: ../Doc/library/ctypes.rst:2437 +#: library/ctypes.rst:2445 msgid "" "It is possible to define sub-subclasses of structure types, they inherit the " "fields of the base class plus the :attr:`_fields_` defined in the sub-" "subclass, if any." msgstr "" -#: ../Doc/library/ctypes.rst:2444 +#: library/ctypes.rst:2452 msgid "" "An optional small integer that allows overriding the alignment of structure " "fields in the instance. :attr:`_pack_` must already be defined when :attr:" "`_fields_` is assigned, otherwise it will have no effect." msgstr "" -#: ../Doc/library/ctypes.rst:2451 +#: library/ctypes.rst:2459 msgid "" "An optional sequence that lists the names of unnamed (anonymous) fields. :" "attr:`_anonymous_` must be already defined when :attr:`_fields_` is " "assigned, otherwise it will have no effect." msgstr "" -#: ../Doc/library/ctypes.rst:2455 +#: library/ctypes.rst:2463 msgid "" "The fields listed in this variable must be structure or union type fields. :" "mod:`ctypes` will create descriptors in the structure type that allows " @@ -2560,11 +3242,11 @@ msgid "" "structure or union field." msgstr "" -#: ../Doc/library/ctypes.rst:2460 +#: library/ctypes.rst:2468 msgid "Here is an example type (Windows)::" msgstr "" -#: ../Doc/library/ctypes.rst:2473 +#: library/ctypes.rst:2481 msgid "" "The ``TYPEDESC`` structure describes a COM data type, the ``vt`` field " "specifies which one of the union fields is valid. Since the ``u`` field is " @@ -2574,7 +3256,7 @@ msgid "" "temporary union instance::" msgstr "" -#: ../Doc/library/ctypes.rst:2485 +#: library/ctypes.rst:2493 msgid "" "It is possible to define sub-subclasses of structures, they inherit the " "fields of the base class. If the subclass definition has a separate :attr:" @@ -2582,7 +3264,7 @@ msgid "" "of the base class." msgstr "" -#: ../Doc/library/ctypes.rst:2490 +#: library/ctypes.rst:2498 msgid "" "Structure and union constructors accept both positional and keyword " "arguments. Positional arguments are used to initialize member fields in the " @@ -2592,15 +3274,15 @@ msgid "" "names not present in :attr:`_fields_`." msgstr "" -#: ../Doc/library/ctypes.rst:2501 +#: library/ctypes.rst:2509 msgid "Arrays and pointers" -msgstr "" +msgstr "Tableaux et pointeurs" -#: ../Doc/library/ctypes.rst:2505 +#: library/ctypes.rst:2513 msgid "Abstract base class for arrays." msgstr "Classe de base abstraite pour les *arrays*." -#: ../Doc/library/ctypes.rst:2507 +#: library/ctypes.rst:2515 msgid "" "The recommended way to create concrete array types is by multiplying any :" "mod:`ctypes` data type with a positive integer. Alternatively, you can " @@ -2610,34 +3292,34 @@ msgid "" "an :class:`Array`." msgstr "" -#: ../Doc/library/ctypes.rst:2517 +#: library/ctypes.rst:2525 msgid "" "A positive integer specifying the number of elements in the array. Out-of-" "range subscripts result in an :exc:`IndexError`. Will be returned by :func:" "`len`." msgstr "" -#: ../Doc/library/ctypes.rst:2524 +#: library/ctypes.rst:2532 msgid "Specifies the type of each element in the array." msgstr "Spécifie le type de chaque élément de l'*array*." -#: ../Doc/library/ctypes.rst:2527 +#: library/ctypes.rst:2535 msgid "" "Array subclass constructors accept positional arguments, used to initialize " "the elements in order." msgstr "" -#: ../Doc/library/ctypes.rst:2533 +#: library/ctypes.rst:2541 msgid "Private, abstract base class for pointers." msgstr "" -#: ../Doc/library/ctypes.rst:2535 +#: library/ctypes.rst:2543 msgid "" "Concrete pointer types are created by calling :func:`POINTER` with the type " "that will be pointed to; this is done automatically by :func:`pointer`." msgstr "" -#: ../Doc/library/ctypes.rst:2539 +#: library/ctypes.rst:2547 msgid "" "If a pointer points to an array, its elements can be read and written using " "standard subscript and slice accesses. Pointer objects have no size, so :" @@ -2646,12 +3328,23 @@ msgid "" "probably crash with an access violation (if you're lucky)." msgstr "" -#: ../Doc/library/ctypes.rst:2549 +#: library/ctypes.rst:2557 msgid "Specifies the type pointed to." msgstr "" -#: ../Doc/library/ctypes.rst:2553 +#: library/ctypes.rst:2561 msgid "" "Returns the object to which to pointer points. Assigning to this attribute " "changes the pointer to point to the assigned object." msgstr "" + +#~ msgid "" +#~ ":mod:`ctypes` may raise a :exc:`ValueError` after calling the function, " +#~ "if it detects that an invalid number of arguments were passed. This " +#~ "behavior should not be relied upon. It is deprecated in 3.6.2, and will " +#~ "be removed in 3.7." +#~ msgstr "" +#~ "Si, après avoir appelé une fonction, :mod:`ctypes` détecte qu'un nombre " +#~ "incorrect d'arguments a été passé, il peut lever une :exc:`ValueError`. " +#~ "Il ne faut pas se baser sur ce comportement ; celui-ci est obsolète " +#~ "depuis la version 3.6.2 et sera supprimé en 3.7." diff --git a/library/curses.ascii.po b/library/curses.ascii.po index 1e78556ae2..e192a656ba 100644 --- a/library/curses.ascii.po +++ b/library/curses.ascii.po @@ -82,8 +82,9 @@ msgid ":const:`ACK`" msgstr ":const:`ACK`" #: ../Doc/library/curses.ascii.rst:31 +#, fuzzy msgid "Acknowledgement" -msgstr "" +msgstr "Remerciements" #: ../Doc/library/curses.ascii.rst:33 msgid ":const:`BEL`" diff --git a/library/curses.po b/library/curses.po index f0339367d1..9e71671801 100644 --- a/library/curses.po +++ b/library/curses.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-09 17:54+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2018-07-04 11:32+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -15,17 +15,17 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 1.8.11\n" -#: ../Doc/library/curses.rst:2 +#: library/curses.rst:2 msgid ":mod:`curses` --- Terminal handling for character-cell displays" msgstr "" -#: ../Doc/library/curses.rst:14 +#: library/curses.rst:14 msgid "" "The :mod:`curses` module provides an interface to the curses library, the de-" "facto standard for portable advanced terminal handling." msgstr "" -#: ../Doc/library/curses.rst:17 +#: library/curses.rst:17 msgid "" "While curses is most widely used in the Unix environment, versions are " "available for Windows, DOS, and possibly other systems as well. This " @@ -33,19 +33,19 @@ msgid "" "curses library hosted on Linux and the BSD variants of Unix." msgstr "" -#: ../Doc/library/curses.rst:24 +#: library/curses.rst:24 msgid "" "Whenever the documentation mentions a *character* it can be specified as an " "integer, a one-character Unicode string or a one-byte byte string." msgstr "" -#: ../Doc/library/curses.rst:27 +#: library/curses.rst:27 msgid "" "Whenever the documentation mentions a *character string* it can be specified " "as a Unicode string or a byte string." msgstr "" -#: ../Doc/library/curses.rst:32 +#: library/curses.rst:32 msgid "" "Since version 5.4, the ncurses library decides how to interpret non-ASCII " "data using the ``nl_langinfo`` function. That means that you have to call :" @@ -54,79 +54,79 @@ msgid "" "default encoding::" msgstr "" -#: ../Doc/library/curses.rst:42 +#: library/curses.rst:42 msgid "Then use *code* as the encoding for :meth:`str.encode` calls." msgstr "" -#: ../Doc/library/curses.rst:47 +#: library/curses.rst:47 msgid "Module :mod:`curses.ascii`" msgstr "Module :mod:`curses.ascii`" -#: ../Doc/library/curses.rst:47 +#: library/curses.rst:47 msgid "" "Utilities for working with ASCII characters, regardless of your locale " "settings." msgstr "" -#: ../Doc/library/curses.rst:50 +#: library/curses.rst:50 msgid "Module :mod:`curses.panel`" msgstr "Module :mod:`curses.panel`" -#: ../Doc/library/curses.rst:50 +#: library/curses.rst:50 msgid "A panel stack extension that adds depth to curses windows." msgstr "" -#: ../Doc/library/curses.rst:53 +#: library/curses.rst:53 msgid "Module :mod:`curses.textpad`" msgstr "Module :mod:`curses.textpad`" -#: ../Doc/library/curses.rst:53 +#: library/curses.rst:53 msgid "" "Editable text widget for curses supporting :program:`Emacs`\\ -like " "bindings." msgstr "" -#: ../Doc/library/curses.rst:57 +#: library/curses.rst:57 msgid ":ref:`curses-howto`" msgstr ":ref:`curses-howto`" -#: ../Doc/library/curses.rst:56 +#: library/curses.rst:56 msgid "" "Tutorial material on using curses with Python, by Andrew Kuchling and Eric " "Raymond." msgstr "" -#: ../Doc/library/curses.rst:59 +#: library/curses.rst:59 msgid "" "The :source:`Tools/demo/` directory in the Python source distribution " "contains some example programs using the curses bindings provided by this " "module." msgstr "" -#: ../Doc/library/curses.rst:66 +#: library/curses.rst:66 msgid "Functions" msgstr "Fonctions" -#: ../Doc/library/curses.rst:68 +#: library/curses.rst:68 msgid "The module :mod:`curses` defines the following exception:" msgstr "" -#: ../Doc/library/curses.rst:73 +#: library/curses.rst:73 msgid "Exception raised when a curses library function returns an error." msgstr "" -#: ../Doc/library/curses.rst:77 +#: library/curses.rst:77 msgid "" "Whenever *x* or *y* arguments to a function or a method are optional, they " "default to the current cursor location. Whenever *attr* is optional, it " "defaults to :const:`A_NORMAL`." msgstr "" -#: ../Doc/library/curses.rst:81 +#: library/curses.rst:81 msgid "The module :mod:`curses` defines the following functions:" msgstr "" -#: ../Doc/library/curses.rst:86 +#: library/curses.rst:86 msgid "" "Return the output speed of the terminal in bits per second. On software " "terminal emulators it will have a fixed high value. Included for historical " @@ -134,17 +134,17 @@ msgid "" "and occasionally to change interfaces depending on the line speed." msgstr "" -#: ../Doc/library/curses.rst:94 +#: library/curses.rst:94 msgid "Emit a short attention sound." msgstr "" -#: ../Doc/library/curses.rst:99 +#: library/curses.rst:99 msgid "" "Return ``True`` or ``False``, depending on whether the programmer can change " "the colors displayed by the terminal." msgstr "" -#: ../Doc/library/curses.rst:105 +#: library/curses.rst:105 msgid "" "Enter cbreak mode. In cbreak mode (sometimes called \"rare\" mode) normal " "tty line buffering is turned off and characters are available to be read one " @@ -154,24 +154,24 @@ msgid "" "terminal in cbreak mode." msgstr "" -#: ../Doc/library/curses.rst:114 +#: library/curses.rst:114 msgid "" "Return the intensity of the red, green, and blue (RGB) components in the " -"color *color_number*, which must be between ``0`` and :const:`COLORS`. " +"color *color_number*, which must be between ``0`` and ``COLORS - 1``. " "Return a 3-tuple, containing the R,G,B values for the given color, which " "will be between ``0`` (no component) and ``1000`` (maximum amount of " "component)." msgstr "" -#: ../Doc/library/curses.rst:122 +#: library/curses.rst:122 msgid "" -"Return the attribute value for displaying text in the specified color. This " -"attribute value can be combined with :const:`A_STANDOUT`, :const:" -"`A_REVERSE`, and the other :const:`A_\\*` attributes. :func:`pair_number` " -"is the counterpart to this function." +"Return the attribute value for displaying text in the specified color pair. " +"Only the first 256 color pairs are supported. This attribute value can be " +"combined with :const:`A_STANDOUT`, :const:`A_REVERSE`, and the other :const:" +"`A_\\*` attributes. :func:`pair_number` is the counterpart to this function." msgstr "" -#: ../Doc/library/curses.rst:130 +#: library/curses.rst:131 msgid "" "Set the cursor state. *visibility* can be set to ``0``, ``1``, or ``2``, " "for invisible, normal, or very visible. If the terminal supports the " @@ -180,7 +180,7 @@ msgid "" "and the \"very visible\" mode is a block cursor." msgstr "" -#: ../Doc/library/curses.rst:139 +#: library/curses.rst:140 msgid "" "Save the current terminal mode as the \"program\" mode, the mode when the " "running program is using curses. (Its counterpart is the \"shell\" mode, " @@ -188,7 +188,7 @@ msgid "" "`reset_prog_mode` will restore this mode." msgstr "" -#: ../Doc/library/curses.rst:147 +#: library/curses.rst:148 msgid "" "Save the current terminal mode as the \"shell\" mode, the mode when the " "running program is not using curses. (Its counterpart is the \"program\" " @@ -196,11 +196,11 @@ msgid "" "func:`reset_shell_mode` will restore this mode." msgstr "" -#: ../Doc/library/curses.rst:155 +#: library/curses.rst:156 msgid "Insert an *ms* millisecond pause in output." msgstr "" -#: ../Doc/library/curses.rst:160 +#: library/curses.rst:161 msgid "" "Update the physical screen. The curses library keeps two data structures, " "one representing the current physical screen contents and a virtual screen " @@ -208,7 +208,7 @@ msgid "" "the physical screen to match the virtual screen." msgstr "" -#: ../Doc/library/curses.rst:165 +#: library/curses.rst:166 msgid "" "The virtual screen may be updated by a :meth:`~window.noutrefresh` call " "after write operations such as :meth:`~window.addstr` have been performed on " @@ -219,24 +219,24 @@ msgid "" "func:`!doupdate`." msgstr "" -#: ../Doc/library/curses.rst:175 +#: library/curses.rst:176 msgid "" "Enter echo mode. In echo mode, each character input is echoed to the screen " "as it is entered." msgstr "" -#: ../Doc/library/curses.rst:181 +#: library/curses.rst:182 msgid "De-initialize the library, and return terminal to normal status." msgstr "" -#: ../Doc/library/curses.rst:186 +#: library/curses.rst:187 msgid "" "Return the user's current erase character as a one-byte bytes object. Under " "Unix operating systems this is a property of the controlling tty of the " "curses program, and is not set by the curses library itself." msgstr "" -#: ../Doc/library/curses.rst:193 +#: library/curses.rst:194 msgid "" "The :func:`.filter` routine, if used, must be called before :func:`initscr` " "is called. The effect is that, during those calls, :envvar:`LINES` is set " @@ -247,23 +247,23 @@ msgid "" "time line editing without touching the rest of the screen." msgstr "" -#: ../Doc/library/curses.rst:203 +#: library/curses.rst:204 msgid "" "Flash the screen. That is, change it to reverse-video and then change it " "back in a short interval. Some people prefer such as 'visible bell' to the " "audible attention signal produced by :func:`beep`." msgstr "" -#: ../Doc/library/curses.rst:210 +#: library/curses.rst:211 msgid "" "Flush all input buffers. This throws away any typeahead that has been " "typed by the user and has not yet been processed by the program." msgstr "" -#: ../Doc/library/curses.rst:216 +#: library/curses.rst:217 msgid "" "After :meth:`~window.getch` returns :const:`KEY_MOUSE` to signal a mouse " -"event, this method should be call to retrieve the queued mouse event, " +"event, this method should be called to retrieve the queued mouse event, " "represented as a 5-tuple ``(id, x, y, z, bstate)``. *id* is an ID value used " "to distinguish multiple devices, and *x*, *y*, *z* are the event's " "coordinates. (*z* is currently unused.) *bstate* is an integer value whose " @@ -275,34 +275,34 @@ msgid "" "const:`BUTTON_ALT`." msgstr "" -#: ../Doc/library/curses.rst:230 +#: library/curses.rst:231 msgid "" "Return the current coordinates of the virtual screen cursor as a tuple ``(y, " "x)``. If :meth:`leaveok ` is currently ``True``, then " "return ``(-1, -1)``." msgstr "" -#: ../Doc/library/curses.rst:236 +#: library/curses.rst:237 msgid "" "Read window related data stored in the file by an earlier :func:`putwin` " "call. The routine then creates and initializes a new window using that data, " "returning the new window object." msgstr "" -#: ../Doc/library/curses.rst:243 +#: library/curses.rst:244 msgid "" "Return ``True`` if the terminal can display colors; otherwise, return " "``False``." msgstr "" -#: ../Doc/library/curses.rst:248 +#: library/curses.rst:249 msgid "" "Return ``True`` if the terminal has insert- and delete-character " "capabilities. This function is included for historical reasons only, as all " "modern software terminal emulators have such capabilities." msgstr "" -#: ../Doc/library/curses.rst:255 +#: library/curses.rst:256 msgid "" "Return ``True`` if the terminal has insert- and delete-line capabilities, or " "can simulate them using scrolling regions. This function is included for " @@ -310,13 +310,13 @@ msgid "" "capabilities." msgstr "" -#: ../Doc/library/curses.rst:263 +#: library/curses.rst:264 msgid "" "Take a key value *ch*, and return ``True`` if the current terminal type " "recognizes a key with that value." msgstr "" -#: ../Doc/library/curses.rst:269 +#: library/curses.rst:270 msgid "" "Used for half-delay mode, which is similar to cbreak mode in that characters " "typed by the user are immediately available to the program. However, after " @@ -325,55 +325,56 @@ msgid "" "``255``. Use :func:`nocbreak` to leave half-delay mode." msgstr "" -#: ../Doc/library/curses.rst:278 +#: library/curses.rst:279 msgid "" "Change the definition of a color, taking the number of the color to be " "changed followed by three RGB values (for the amounts of red, green, and " -"blue components). The value of *color_number* must be between ``0`` and :" -"const:`COLORS`. Each of *r*, *g*, *b*, must be a value between ``0`` and " +"blue components). The value of *color_number* must be between ``0`` and " +"`COLORS - 1`. Each of *r*, *g*, *b*, must be a value between ``0`` and " "``1000``. When :func:`init_color` is used, all occurrences of that color on " "the screen immediately change to the new definition. This function is a no-" "op on most terminals; it is active only if :func:`can_change_color` returns " "``True``." msgstr "" -#: ../Doc/library/curses.rst:289 +#: library/curses.rst:290 msgid "" "Change the definition of a color-pair. It takes three arguments: the number " "of the color-pair to be changed, the foreground color number, and the " "background color number. The value of *pair_number* must be between ``1`` " "and ``COLOR_PAIRS - 1`` (the ``0`` color pair is wired to white on black and " "cannot be changed). The value of *fg* and *bg* arguments must be between " -"``0`` and :const:`COLORS`. If the color-pair was previously initialized, " -"the screen is refreshed and all occurrences of that color-pair are changed " -"to the new definition." +"``0`` and ``COLORS - 1``, or, after calling :func:`use_default_colors`, " +"``-1``. If the color-pair was previously initialized, the screen is " +"refreshed and all occurrences of that color-pair are changed to the new " +"definition." msgstr "" -#: ../Doc/library/curses.rst:301 +#: library/curses.rst:303 msgid "" "Initialize the library. Return a :ref:`window ` " "object which represents the whole screen." msgstr "" -#: ../Doc/library/curses.rst:306 +#: library/curses.rst:308 msgid "" "If there is an error opening the terminal, the underlying curses library may " "cause the interpreter to exit." msgstr "" -#: ../Doc/library/curses.rst:312 +#: library/curses.rst:314 msgid "" "Return ``True`` if :func:`resize_term` would modify the window structure, " "``False`` otherwise." msgstr "" -#: ../Doc/library/curses.rst:318 +#: library/curses.rst:320 msgid "" "Return ``True`` if :func:`endwin` has been called (that is, the curses " "library has been deinitialized)." msgstr "" -#: ../Doc/library/curses.rst:324 +#: library/curses.rst:326 msgid "" "Return the name of the key numbered *k* as a bytes object. The name of a " "key generating printable ASCII character is the key's character. The name " @@ -384,27 +385,27 @@ msgid "" "character." msgstr "" -#: ../Doc/library/curses.rst:334 +#: library/curses.rst:336 msgid "" "Return the user's current line kill character as a one-byte bytes object. " "Under Unix operating systems this is a property of the controlling tty of " "the curses program, and is not set by the curses library itself." msgstr "" -#: ../Doc/library/curses.rst:341 +#: library/curses.rst:343 msgid "" "Return a bytes object containing the terminfo long name field describing the " "current terminal. The maximum length of a verbose description is 128 " "characters. It is defined only after the call to :func:`initscr`." msgstr "" -#: ../Doc/library/curses.rst:348 +#: library/curses.rst:350 msgid "" "If *flag* is ``True``, allow 8-bit characters to be input. If *flag* is " "``False``, allow only 7-bit chars." msgstr "" -#: ../Doc/library/curses.rst:354 +#: library/curses.rst:356 msgid "" "Set the maximum time in milliseconds that can elapse between press and " "release events in order for them to be recognized as a click, and return the " @@ -412,7 +413,7 @@ msgid "" "second." msgstr "" -#: ../Doc/library/curses.rst:361 +#: library/curses.rst:363 msgid "" "Set the mouse events to be reported, and return a tuple ``(availmask, " "oldmask)``. *availmask* indicates which of the specified mouse events can " @@ -421,17 +422,17 @@ msgid "" "never called, no mouse events are ever reported." msgstr "" -#: ../Doc/library/curses.rst:370 +#: library/curses.rst:372 msgid "Sleep for *ms* milliseconds." msgstr "" -#: ../Doc/library/curses.rst:375 +#: library/curses.rst:377 msgid "" "Create and return a pointer to a new pad data structure with the given " "number of lines and columns. Return a pad as a window object." msgstr "" -#: ../Doc/library/curses.rst:378 +#: library/curses.rst:380 msgid "" "A pad is like a window, except that it is not restricted by the screen size, " "and is not necessarily associated with a particular part of the screen. " @@ -447,35 +448,35 @@ msgid "" "to be displayed." msgstr "" -#: ../Doc/library/curses.rst:394 +#: library/curses.rst:396 msgid "" "Return a new :ref:`window `, whose left-upper corner " "is at ``(begin_y, begin_x)``, and whose height/width is *nlines*/*ncols*." msgstr "" -#: ../Doc/library/curses.rst:397 +#: library/curses.rst:399 msgid "" "By default, the window will extend from the specified position to the lower " "right corner of the screen." msgstr "" -#: ../Doc/library/curses.rst:403 +#: library/curses.rst:405 msgid "" "Enter newline mode. This mode translates the return key into newline on " "input, and translates newline into return and line-feed on output. Newline " "mode is initially on." msgstr "" -#: ../Doc/library/curses.rst:410 +#: library/curses.rst:412 msgid "" "Leave cbreak mode. Return to normal \"cooked\" mode with line buffering." msgstr "" -#: ../Doc/library/curses.rst:415 +#: library/curses.rst:417 msgid "Leave echo mode. Echoing of input characters is turned off." msgstr "" -#: ../Doc/library/curses.rst:420 +#: library/curses.rst:422 msgid "" "Leave newline mode. Disable translation of return into newline on input, " "and disable low-level translation of newline into newline/return on output " @@ -485,7 +486,7 @@ msgid "" "also, it will be able to detect the return key on input." msgstr "" -#: ../Doc/library/curses.rst:430 +#: library/curses.rst:432 msgid "" "When the :func:`!noqiflush` routine is used, normal flush of input and " "output queues associated with the ``INTR``, ``QUIT`` and ``SUSP`` characters " @@ -494,63 +495,63 @@ msgid "" "occurred, after the handler exits." msgstr "" -#: ../Doc/library/curses.rst:438 +#: library/curses.rst:440 msgid "Leave raw mode. Return to normal \"cooked\" mode with line buffering." msgstr "" -#: ../Doc/library/curses.rst:443 +#: library/curses.rst:445 msgid "" "Return a tuple ``(fg, bg)`` containing the colors for the requested color " -"pair. The value of *pair_number* must be between ``1`` and ``COLOR_PAIRS - " +"pair. The value of *pair_number* must be between ``0`` and ``COLOR_PAIRS - " "1``." msgstr "" -#: ../Doc/library/curses.rst:449 +#: library/curses.rst:451 msgid "" "Return the number of the color-pair set by the attribute value *attr*. :func:" "`color_pair` is the counterpart to this function." msgstr "" -#: ../Doc/library/curses.rst:455 +#: library/curses.rst:457 msgid "" "Equivalent to ``tputs(str, 1, putchar)``; emit the value of a specified " "terminfo capability for the current terminal. Note that the output of :func:" "`putp` always goes to standard output." msgstr "" -#: ../Doc/library/curses.rst:462 +#: library/curses.rst:464 msgid "" "If *flag* is ``False``, the effect is the same as calling :func:`noqiflush`. " "If *flag* is ``True``, or no argument is provided, the queues will be " "flushed when these control characters are read." msgstr "" -#: ../Doc/library/curses.rst:469 +#: library/curses.rst:471 msgid "" "Enter raw mode. In raw mode, normal line buffering and processing of " "interrupt, quit, suspend, and flow control keys are turned off; characters " "are presented to curses input functions one by one." msgstr "" -#: ../Doc/library/curses.rst:476 +#: library/curses.rst:478 msgid "" "Restore the terminal to \"program\" mode, as previously saved by :func:" "`def_prog_mode`." msgstr "" -#: ../Doc/library/curses.rst:482 +#: library/curses.rst:484 msgid "" "Restore the terminal to \"shell\" mode, as previously saved by :func:" "`def_shell_mode`." msgstr "" -#: ../Doc/library/curses.rst:488 +#: library/curses.rst:490 msgid "" "Restore the state of the terminal modes to what it was at the last call to :" "func:`savetty`." msgstr "" -#: ../Doc/library/curses.rst:494 +#: library/curses.rst:496 msgid "" "Backend function used by :func:`resizeterm`, performing most of the work; " "when resizing the windows, :func:`resize_term` blank-fills the areas that " @@ -560,26 +561,26 @@ msgid "" "to resize these without additional interaction with the application." msgstr "" -#: ../Doc/library/curses.rst:504 +#: library/curses.rst:506 msgid "" "Resize the standard and current windows to the specified dimensions, and " "adjusts other bookkeeping data used by the curses library that record the " "window dimensions (in particular the SIGWINCH handler)." msgstr "" -#: ../Doc/library/curses.rst:511 +#: library/curses.rst:513 msgid "" "Save the current state of the terminal modes in a buffer, usable by :func:" "`resetty`." msgstr "" -#: ../Doc/library/curses.rst:517 +#: library/curses.rst:519 msgid "" "Set the virtual screen cursor to *y*, *x*. If *y* and *x* are both ``-1``, " "then :meth:`leaveok ` is set ``True``." msgstr "" -#: ../Doc/library/curses.rst:523 +#: library/curses.rst:525 msgid "" "Initialize the terminal. *term* is a string giving the terminal name, or " "``None``; if omitted or ``None``, the value of the :envvar:`TERM` " @@ -588,14 +589,14 @@ msgid "" "descriptor for ``sys.stdout`` will be used." msgstr "" -#: ../Doc/library/curses.rst:532 +#: library/curses.rst:534 msgid "" "Must be called if the programmer wants to use colors, and before any other " "color manipulation routine is called. It is good practice to call this " "routine right after :func:`initscr`." msgstr "" -#: ../Doc/library/curses.rst:536 +#: library/curses.rst:538 msgid "" ":func:`start_color` initializes eight basic colors (black, red, green, " "yellow, blue, magenta, cyan, and white), and two global variables in the :" @@ -605,20 +606,20 @@ msgid "" "terminal was just turned on." msgstr "" -#: ../Doc/library/curses.rst:545 +#: library/curses.rst:547 msgid "" "Return a logical OR of all video attributes supported by the terminal. This " "information is useful when a curses program needs complete control over the " "appearance of the screen." msgstr "" -#: ../Doc/library/curses.rst:552 +#: library/curses.rst:554 msgid "" "Return the value of the environment variable :envvar:`TERM`, as a bytes " "object, truncated to 14 characters." msgstr "" -#: ../Doc/library/curses.rst:558 +#: library/curses.rst:560 msgid "" "Return the value of the Boolean capability corresponding to the terminfo " "capability name *capname* as an integer. Return the value ``-1`` if " @@ -626,7 +627,7 @@ msgid "" "from the terminal description." msgstr "" -#: ../Doc/library/curses.rst:566 +#: library/curses.rst:568 msgid "" "Return the value of the numeric capability corresponding to the terminfo " "capability name *capname* as an integer. Return the value ``-2`` if " @@ -634,7 +635,7 @@ msgid "" "from the terminal description." msgstr "" -#: ../Doc/library/curses.rst:574 +#: library/curses.rst:576 msgid "" "Return the value of the string capability corresponding to the terminfo " "capability name *capname* as a bytes object. Return ``None`` if *capname* " @@ -642,7 +643,7 @@ msgid "" "terminal description." msgstr "" -#: ../Doc/library/curses.rst:582 +#: library/curses.rst:584 msgid "" "Instantiate the bytes object *str* with the supplied parameters, where *str* " "should be a parameterized string obtained from the terminfo database. E.g. " @@ -650,13 +651,13 @@ msgid "" "exact result depending on terminal type." msgstr "" -#: ../Doc/library/curses.rst:590 +#: library/curses.rst:592 msgid "" "Specify that the file descriptor *fd* be used for typeahead checking. If " "*fd* is ``-1``, then no typeahead checking is done." msgstr "" -#: ../Doc/library/curses.rst:593 +#: library/curses.rst:595 msgid "" "The curses library does \"line-breakout optimization\" by looking for " "typeahead periodically while updating the screen. If input is found, and it " @@ -666,7 +667,7 @@ msgid "" "typeahead checking." msgstr "" -#: ../Doc/library/curses.rst:602 +#: library/curses.rst:604 msgid "" "Return a bytes object which is a printable representation of the character " "*ch*. Control characters are represented as a caret followed by the " @@ -674,35 +675,35 @@ msgid "" "are." msgstr "" -#: ../Doc/library/curses.rst:609 +#: library/curses.rst:611 msgid "Push *ch* so the next :meth:`~window.getch` will return it." msgstr "" -#: ../Doc/library/curses.rst:613 +#: library/curses.rst:615 msgid "Only one *ch* can be pushed before :meth:`!getch` is called." msgstr "" -#: ../Doc/library/curses.rst:618 +#: library/curses.rst:620 msgid "" "Update :envvar:`LINES` and :envvar:`COLS`. Useful for detecting manual " "screen resize." msgstr "" -#: ../Doc/library/curses.rst:625 +#: library/curses.rst:627 msgid "Push *ch* so the next :meth:`~window.get_wch` will return it." msgstr "" -#: ../Doc/library/curses.rst:629 +#: library/curses.rst:631 msgid "Only one *ch* can be pushed before :meth:`!get_wch` is called." msgstr "" -#: ../Doc/library/curses.rst:636 +#: library/curses.rst:638 msgid "" "Push a :const:`KEY_MOUSE` event onto the input queue, associating the given " "state data with it." msgstr "" -#: ../Doc/library/curses.rst:642 +#: library/curses.rst:644 msgid "" "If used, this function should be called before :func:`initscr` or newterm " "are called. When *flag* is ``False``, the values of lines and columns " @@ -712,7 +713,7 @@ msgid "" "to use the window size if :envvar:`LINES` and :envvar:`COLUMNS` are not set)." msgstr "" -#: ../Doc/library/curses.rst:652 +#: library/curses.rst:654 msgid "" "Allow use of default values for colors on terminals supporting this feature. " "Use this to support transparency in your application. The default color is " @@ -721,7 +722,7 @@ msgid "" "*x* to a red foreground color on the default background." msgstr "" -#: ../Doc/library/curses.rst:661 +#: library/curses.rst:663 msgid "" "Initialize curses and call another callable object, *func*, which should be " "the rest of your curses-using application. If the application raises an " @@ -735,50 +736,50 @@ msgid "" "echo, and disables the terminal keypad." msgstr "" -#: ../Doc/library/curses.rst:675 +#: library/curses.rst:677 msgid "Window Objects" msgstr "" -#: ../Doc/library/curses.rst:677 +#: library/curses.rst:679 msgid "" "Window objects, as returned by :func:`initscr` and :func:`newwin` above, " "have the following methods and attributes:" msgstr "" -#: ../Doc/library/curses.rst:684 +#: library/curses.rst:686 msgid "" "Paint character *ch* at ``(y, x)`` with attributes *attr*, overwriting any " -"character previously painter at that location. By default, the character " +"character previously painted at that location. By default, the character " "position and attributes are the current settings for the window object." msgstr "" -#: ../Doc/library/curses.rst:690 +#: library/curses.rst:692 msgid "" "Writing outside the window, subwindow, or pad raises a :exc:`curses.error`. " "Attempting to write to the lower right corner of a window, subwindow, or pad " "will cause an exception to be raised after the character is printed." msgstr "" -#: ../Doc/library/curses.rst:698 +#: library/curses.rst:700 msgid "" "Paint at most *n* characters of the character string *str* at ``(y, x)`` " "with attributes *attr*, overwriting anything previously on the display." msgstr "" -#: ../Doc/library/curses.rst:706 +#: library/curses.rst:708 msgid "" "Paint the character string *str* at ``(y, x)`` with attributes *attr*, " "overwriting anything previously on the display." msgstr "" -#: ../Doc/library/curses.rst:711 +#: library/curses.rst:713 msgid "" "Writing outside the window, subwindow, or pad raises :exc:`curses.error`. " "Attempting to write to the lower right corner of a window, subwindow, or pad " "will cause an exception to be raised after the string is printed." msgstr "" -#: ../Doc/library/curses.rst:715 +#: library/curses.rst:717 msgid "" "A `bug in ncurses `_, the backend for " "this Python module, can cause SegFaults when resizing windows. This is fixed " @@ -788,44 +789,44 @@ msgid "" "line." msgstr "" -#: ../Doc/library/curses.rst:725 +#: library/curses.rst:727 msgid "" "Remove attribute *attr* from the \"background\" set applied to all writes to " "the current window." msgstr "" -#: ../Doc/library/curses.rst:731 +#: library/curses.rst:733 msgid "" "Add attribute *attr* from the \"background\" set applied to all writes to " "the current window." msgstr "" -#: ../Doc/library/curses.rst:737 +#: library/curses.rst:739 msgid "" "Set the \"background\" set of attributes to *attr*. This set is initially " "``0`` (no attributes)." msgstr "" -#: ../Doc/library/curses.rst:743 +#: library/curses.rst:745 msgid "" "Set the background property of the window to the character *ch*, with " "attributes *attr*. The change is then applied to every character position " "in that window:" msgstr "" -#: ../Doc/library/curses.rst:747 +#: library/curses.rst:749 msgid "" "The attribute of every character in the window is changed to the new " "background attribute." msgstr "" -#: ../Doc/library/curses.rst:750 +#: library/curses.rst:752 msgid "" "Wherever the former background character appears, it is changed to the new " "background character." msgstr "" -#: ../Doc/library/curses.rst:756 +#: library/curses.rst:758 msgid "" "Set the window's background. A window's background consists of a character " "and any combination of attributes. The attribute part of the background is " @@ -836,128 +837,128 @@ msgid "" "delete line/character operations." msgstr "" -#: ../Doc/library/curses.rst:766 +#: library/curses.rst:768 msgid "" "Draw a border around the edges of the window. Each parameter specifies the " "character to use for a specific part of the border; see the table below for " "more details." msgstr "" -#: ../Doc/library/curses.rst:772 +#: library/curses.rst:774 msgid "" "A ``0`` value for any parameter will cause the default character to be used " "for that parameter. Keyword parameters can *not* be used. The defaults are " "listed in this table:" msgstr "" -#: ../Doc/library/curses.rst:777 +#: library/curses.rst:779 msgid "Parameter" msgstr "Paramètre" -#: ../Doc/library/curses.rst:777 +#: library/curses.rst:779 msgid "Description" msgstr "Description" -#: ../Doc/library/curses.rst:777 +#: library/curses.rst:779 msgid "Default value" msgstr "Valeur par défaut" -#: ../Doc/library/curses.rst:779 +#: library/curses.rst:781 msgid "*ls*" msgstr "*ls*" -#: ../Doc/library/curses.rst:779 +#: library/curses.rst:781 msgid "Left side" msgstr "" -#: ../Doc/library/curses.rst:779 ../Doc/library/curses.rst:781 +#: library/curses.rst:783 msgid ":const:`ACS_VLINE`" msgstr ":const:`ACS_VLINE`" -#: ../Doc/library/curses.rst:781 +#: library/curses.rst:783 msgid "*rs*" msgstr "*rs*" -#: ../Doc/library/curses.rst:781 +#: library/curses.rst:783 msgid "Right side" msgstr "" -#: ../Doc/library/curses.rst:783 +#: library/curses.rst:785 msgid "*ts*" msgstr "*ts*" -#: ../Doc/library/curses.rst:783 +#: library/curses.rst:785 msgid "Top" msgstr "" -#: ../Doc/library/curses.rst:783 ../Doc/library/curses.rst:785 +#: library/curses.rst:787 msgid ":const:`ACS_HLINE`" msgstr ":const:`ACS_HLINE`" -#: ../Doc/library/curses.rst:785 +#: library/curses.rst:787 msgid "*bs*" msgstr "*bs*" -#: ../Doc/library/curses.rst:785 +#: library/curses.rst:787 msgid "Bottom" msgstr "" -#: ../Doc/library/curses.rst:787 +#: library/curses.rst:789 msgid "*tl*" msgstr "*tl*" -#: ../Doc/library/curses.rst:787 +#: library/curses.rst:789 msgid "Upper-left corner" msgstr "" -#: ../Doc/library/curses.rst:787 +#: library/curses.rst:789 msgid ":const:`ACS_ULCORNER`" msgstr ":const:`ACS_ULCORNER`" -#: ../Doc/library/curses.rst:789 +#: library/curses.rst:791 msgid "*tr*" msgstr "" -#: ../Doc/library/curses.rst:789 +#: library/curses.rst:791 msgid "Upper-right corner" msgstr "" -#: ../Doc/library/curses.rst:789 +#: library/curses.rst:791 msgid ":const:`ACS_URCORNER`" msgstr ":const:`ACS_URCORNER`" -#: ../Doc/library/curses.rst:791 +#: library/curses.rst:793 msgid "*bl*" msgstr "" -#: ../Doc/library/curses.rst:791 +#: library/curses.rst:793 msgid "Bottom-left corner" msgstr "" -#: ../Doc/library/curses.rst:791 +#: library/curses.rst:793 msgid ":const:`ACS_LLCORNER`" msgstr ":const:`ACS_LLCORNER`" -#: ../Doc/library/curses.rst:793 +#: library/curses.rst:795 msgid "*br*" msgstr "" -#: ../Doc/library/curses.rst:793 +#: library/curses.rst:795 msgid "Bottom-right corner" msgstr "" -#: ../Doc/library/curses.rst:793 +#: library/curses.rst:795 msgid ":const:`ACS_LRCORNER`" msgstr ":const:`ACS_LRCORNER`" -#: ../Doc/library/curses.rst:799 +#: library/curses.rst:801 msgid "" "Similar to :meth:`border`, but both *ls* and *rs* are *vertch* and both *ts* " "and *bs* are *horch*. The default corner characters are always used by this " "function." msgstr "" -#: ../Doc/library/curses.rst:808 +#: library/curses.rst:810 msgid "" "Set the attributes of *num* characters at the current cursor position, or at " "position ``(y, x)`` if supplied. If *num* is not given or is ``-1``, the " @@ -967,45 +968,45 @@ msgid "" "be redisplayed by the next window refresh." msgstr "" -#: ../Doc/library/curses.rst:818 +#: library/curses.rst:820 msgid "" "Like :meth:`erase`, but also cause the whole window to be repainted upon " "next call to :meth:`refresh`." msgstr "" -#: ../Doc/library/curses.rst:824 +#: library/curses.rst:826 msgid "" "If *flag* is ``True``, the next call to :meth:`refresh` will clear the " "window completely." msgstr "" -#: ../Doc/library/curses.rst:830 +#: library/curses.rst:832 msgid "" "Erase from cursor to the end of the window: all lines below the cursor are " "deleted, and then the equivalent of :meth:`clrtoeol` is performed." msgstr "" -#: ../Doc/library/curses.rst:836 +#: library/curses.rst:838 msgid "Erase from cursor to the end of the line." msgstr "" -#: ../Doc/library/curses.rst:841 +#: library/curses.rst:843 msgid "" "Update the current cursor position of all the ancestors of the window to " "reflect the current cursor position of the window." msgstr "" -#: ../Doc/library/curses.rst:847 +#: library/curses.rst:849 msgid "Delete any character at ``(y, x)``." msgstr "" -#: ../Doc/library/curses.rst:852 +#: library/curses.rst:854 msgid "" "Delete the line under the cursor. All following lines are moved up by one " "line." msgstr "" -#: ../Doc/library/curses.rst:858 +#: library/curses.rst:860 msgid "" "An abbreviation for \"derive window\", :meth:`derwin` is the same as " "calling :meth:`subwin`, except that *begin_y* and *begin_x* are relative to " @@ -1013,13 +1014,13 @@ msgid "" "a window object for the derived window." msgstr "" -#: ../Doc/library/curses.rst:866 +#: library/curses.rst:868 msgid "" "Add character *ch* with attribute *attr*, and immediately call :meth:" "`refresh` on the window." msgstr "" -#: ../Doc/library/curses.rst:872 +#: library/curses.rst:874 msgid "" "Test whether the given pair of screen-relative character-cell coordinates " "are enclosed by the given window, returning ``True`` or ``False``. It is " @@ -1027,7 +1028,7 @@ msgid "" "location of a mouse event." msgstr "" -#: ../Doc/library/curses.rst:880 +#: library/curses.rst:882 msgid "" "Encoding used to encode method arguments (Unicode strings and characters). " "The encoding attribute is inherited from the parent window when a subwindow " @@ -1035,19 +1036,19 @@ msgid "" "encoding is used (see :func:`locale.getpreferredencoding`)." msgstr "" -#: ../Doc/library/curses.rst:890 +#: library/curses.rst:892 msgid "Clear the window." msgstr "" -#: ../Doc/library/curses.rst:895 +#: library/curses.rst:897 msgid "Return a tuple ``(y, x)`` of co-ordinates of upper-left corner." msgstr "" -#: ../Doc/library/curses.rst:900 +#: library/curses.rst:902 msgid "Return the given window's current background character/attribute pair." msgstr "" -#: ../Doc/library/curses.rst:905 +#: library/curses.rst:907 msgid "" "Get a character. Note that the integer returned does *not* have to be in " "ASCII range: function keys, keypad keys and so on are represented by numbers " @@ -1055,14 +1056,14 @@ msgid "" "otherwise wait until a key is pressed." msgstr "" -#: ../Doc/library/curses.rst:913 +#: library/curses.rst:915 msgid "" "Get a wide character. Return a character for most keys, or an integer for " "function keys, keypad keys, and other special keys. In no-delay mode, raise " "an exception if there is no input." msgstr "" -#: ../Doc/library/curses.rst:922 +#: library/curses.rst:924 msgid "" "Get a character, returning a string instead of an integer, as :meth:`getch` " "does. Function keys, keypad keys and other special keys return a multibyte " @@ -1070,35 +1071,35 @@ msgid "" "there is no input." msgstr "" -#: ../Doc/library/curses.rst:930 +#: library/curses.rst:932 msgid "Return a tuple ``(y, x)`` of the height and width of the window." msgstr "" -#: ../Doc/library/curses.rst:935 +#: library/curses.rst:937 msgid "" "Return the beginning coordinates of this window relative to its parent " "window as a tuple ``(y, x)``. Return ``(-1, -1)`` if this window has no " "parent." msgstr "" -#: ../Doc/library/curses.rst:945 +#: library/curses.rst:947 msgid "" "Read a bytes object from the user, with primitive line editing capacity." msgstr "" -#: ../Doc/library/curses.rst:950 +#: library/curses.rst:952 msgid "" "Return a tuple ``(y, x)`` of current cursor position relative to the " "window's upper-left corner." msgstr "" -#: ../Doc/library/curses.rst:957 +#: library/curses.rst:959 msgid "" "Display a horizontal line starting at ``(y, x)`` with length *n* consisting " "of the character *ch*." msgstr "" -#: ../Doc/library/curses.rst:963 +#: library/curses.rst:965 msgid "" "If *flag* is ``False``, curses no longer considers using the hardware insert/" "delete character feature of the terminal; if *flag* is ``True``, use of " @@ -1106,13 +1107,13 @@ msgid "" "initialized, use of character insert/delete is enabled by default." msgstr "" -#: ../Doc/library/curses.rst:971 +#: library/curses.rst:973 msgid "" "If *flag* is ``True``, :mod:`curses` will try and use hardware line editing " "facilities. Otherwise, line insertion/deletion are disabled." msgstr "" -#: ../Doc/library/curses.rst:977 +#: library/curses.rst:979 msgid "" "If *flag* is ``True``, any change in the window image automatically causes " "the window to be refreshed; you no longer have to call :meth:`refresh` " @@ -1120,19 +1121,19 @@ msgid "" "calls to wrefresh. This option is disabled by default." msgstr "" -#: ../Doc/library/curses.rst:985 +#: library/curses.rst:987 msgid "" "Return the character at the given position in the window. The bottom 8 bits " "are the character proper, and upper bits are the attributes." msgstr "" -#: ../Doc/library/curses.rst:992 +#: library/curses.rst:994 msgid "" "Paint character *ch* at ``(y, x)`` with attributes *attr*, moving the line " "from position *x* right by one character." msgstr "" -#: ../Doc/library/curses.rst:998 +#: library/curses.rst:1000 msgid "" "Insert *nlines* lines into the specified window above the current line. The " "*nlines* bottom lines are lost. For negative *nlines*, delete *nlines* " @@ -1141,13 +1142,13 @@ msgid "" "remains the same." msgstr "" -#: ../Doc/library/curses.rst:1007 +#: library/curses.rst:1009 msgid "" "Insert a blank line under the cursor. All following lines are moved down by " "one line." msgstr "" -#: ../Doc/library/curses.rst:1014 +#: library/curses.rst:1016 msgid "" "Insert a character string (as many characters as will fit on the line) " "before the character under the cursor, up to *n* characters. If *n* is " @@ -1157,7 +1158,7 @@ msgid "" "if specified)." msgstr "" -#: ../Doc/library/curses.rst:1024 +#: library/curses.rst:1026 msgid "" "Insert a character string (as many characters as will fit on the line) " "before the character under the cursor. All characters to the right of the " @@ -1166,7 +1167,7 @@ msgid "" "specified)." msgstr "" -#: ../Doc/library/curses.rst:1033 +#: library/curses.rst:1035 msgid "" "Return a bytes object of characters, extracted from the window starting at " "the current cursor position, or at *y*, *x* if specified. Attributes are " @@ -1174,76 +1175,76 @@ msgid "" "string at most *n* characters long (exclusive of the trailing NUL)." msgstr "" -#: ../Doc/library/curses.rst:1041 +#: library/curses.rst:1043 msgid "" "Return ``True`` if the specified line was modified since the last call to :" "meth:`refresh`; otherwise return ``False``. Raise a :exc:`curses.error` " "exception if *line* is not valid for the given window." msgstr "" -#: ../Doc/library/curses.rst:1048 +#: library/curses.rst:1050 msgid "" "Return ``True`` if the specified window was modified since the last call to :" "meth:`refresh`; otherwise return ``False``." msgstr "" -#: ../Doc/library/curses.rst:1054 +#: library/curses.rst:1056 msgid "" "If *flag* is ``True``, escape sequences generated by some keys (keypad, " "function keys) will be interpreted by :mod:`curses`. If *flag* is ``False``, " "escape sequences will be left as is in the input stream." msgstr "" -#: ../Doc/library/curses.rst:1061 +#: library/curses.rst:1063 msgid "" "If *flag* is ``True``, cursor is left where it is on update, instead of " "being at \"cursor position.\" This reduces cursor movement where possible. " "If possible the cursor will be made invisible." msgstr "" -#: ../Doc/library/curses.rst:1065 +#: library/curses.rst:1067 msgid "" "If *flag* is ``False``, cursor will always be at \"cursor position\" after " "an update." msgstr "" -#: ../Doc/library/curses.rst:1070 +#: library/curses.rst:1072 msgid "Move cursor to ``(new_y, new_x)``." msgstr "" -#: ../Doc/library/curses.rst:1075 +#: library/curses.rst:1077 msgid "" "Move the window inside its parent window. The screen-relative parameters of " "the window are not changed. This routine is used to display different parts " "of the parent window at the same physical position on the screen." msgstr "" -#: ../Doc/library/curses.rst:1082 +#: library/curses.rst:1084 msgid "Move the window so its upper-left corner is at ``(new_y, new_x)``." msgstr "" -#: ../Doc/library/curses.rst:1087 +#: library/curses.rst:1089 msgid "If *flag* is ``True``, :meth:`getch` will be non-blocking." msgstr "" -#: ../Doc/library/curses.rst:1092 +#: library/curses.rst:1094 msgid "If *flag* is ``True``, escape sequences will not be timed out." msgstr "" -#: ../Doc/library/curses.rst:1094 +#: library/curses.rst:1096 msgid "" "If *flag* is ``False``, after a few milliseconds, an escape sequence will " "not be interpreted, and will be left in the input stream as is." msgstr "" -#: ../Doc/library/curses.rst:1100 +#: library/curses.rst:1102 msgid "" "Mark for refresh but wait. This function updates the data structure " "representing the desired state of the window, but does not force an update " "of the physical screen. To accomplish that, call :func:`doupdate`." msgstr "" -#: ../Doc/library/curses.rst:1107 +#: library/curses.rst:1109 msgid "" "Overlay the window on top of *destwin*. The windows need not be the same " "size, only the overlapping region is copied. This copy is non-destructive, " @@ -1251,7 +1252,7 @@ msgid "" "contents of *destwin*." msgstr "" -#: ../Doc/library/curses.rst:1112 +#: library/curses.rst:1114 msgid "" "To get fine-grained control over the copied region, the second form of :meth:" "`overlay` can be used. *sminrow* and *smincol* are the upper-left " @@ -1259,7 +1260,7 @@ msgid "" "in the destination window." msgstr "" -#: ../Doc/library/curses.rst:1120 +#: library/curses.rst:1122 msgid "" "Overwrite the window on top of *destwin*. The windows need not be the same " "size, in which case only the overlapping region is copied. This copy is " @@ -1267,7 +1268,7 @@ msgid "" "the old contents of *destwin*." msgstr "" -#: ../Doc/library/curses.rst:1125 +#: library/curses.rst:1127 msgid "" "To get fine-grained control over the copied region, the second form of :meth:" "`overwrite` can be used. *sminrow* and *smincol* are the upper-left " @@ -1275,31 +1276,31 @@ msgid "" "the destination window." msgstr "" -#: ../Doc/library/curses.rst:1133 +#: library/curses.rst:1135 msgid "" "Write all data associated with the window into the provided file object. " "This information can be later retrieved using the :func:`getwin` function." msgstr "" -#: ../Doc/library/curses.rst:1139 +#: library/curses.rst:1141 msgid "" "Indicate that the *num* screen lines, starting at line *beg*, are corrupted " "and should be completely redrawn on the next :meth:`refresh` call." msgstr "" -#: ../Doc/library/curses.rst:1145 +#: library/curses.rst:1147 msgid "" "Touch the entire window, causing it to be completely redrawn on the next :" "meth:`refresh` call." msgstr "" -#: ../Doc/library/curses.rst:1151 +#: library/curses.rst:1153 msgid "" "Update the display immediately (sync actual screen with previous drawing/" "deleting methods)." msgstr "" -#: ../Doc/library/curses.rst:1154 +#: library/curses.rst:1156 msgid "" "The 6 optional arguments can only be specified when the window is a pad " "created with :func:`newpad`. The additional parameters are needed to " @@ -1314,7 +1315,7 @@ msgid "" "*smincol* are treated as if they were zero." msgstr "" -#: ../Doc/library/curses.rst:1168 +#: library/curses.rst:1170 msgid "" "Reallocate storage for a curses window to adjust its dimensions to the " "specified values. If either dimension is larger than the current values, " @@ -1322,11 +1323,11 @@ msgid "" "rendition (as set by :meth:`bkgdset`) merged into them." msgstr "" -#: ../Doc/library/curses.rst:1176 +#: library/curses.rst:1178 msgid "Scroll the screen or scrolling region upward by *lines* lines." msgstr "" -#: ../Doc/library/curses.rst:1181 +#: library/curses.rst:1183 msgid "" "Control what happens when the cursor of a window is moved off the edge of " "the window or scrolling region, either as a result of a newline action on " @@ -1336,54 +1337,54 @@ msgid "" "scrolling effect on the terminal, it is also necessary to call :meth:`idlok`." msgstr "" -#: ../Doc/library/curses.rst:1191 +#: library/curses.rst:1193 msgid "" "Set the scrolling region from line *top* to line *bottom*. All scrolling " "actions will take place in this region." msgstr "" -#: ../Doc/library/curses.rst:1197 +#: library/curses.rst:1199 msgid "" "Turn off the standout attribute. On some terminals this has the side effect " "of turning off all attributes." msgstr "" -#: ../Doc/library/curses.rst:1203 +#: library/curses.rst:1205 msgid "Turn on attribute *A_STANDOUT*." msgstr "" -#: ../Doc/library/curses.rst:1209 ../Doc/library/curses.rst:1216 +#: library/curses.rst:1218 msgid "" "Return a sub-window, whose upper-left corner is at ``(begin_y, begin_x)``, " "and whose width/height is *ncols*/*nlines*." msgstr "" -#: ../Doc/library/curses.rst:1219 +#: library/curses.rst:1221 msgid "" "By default, the sub-window will extend from the specified position to the " "lower right corner of the window." msgstr "" -#: ../Doc/library/curses.rst:1225 +#: library/curses.rst:1227 msgid "" "Touch each location in the window that has been touched in any of its " "ancestor windows. This routine is called by :meth:`refresh`, so it should " "almost never be necessary to call it manually." msgstr "" -#: ../Doc/library/curses.rst:1232 +#: library/curses.rst:1234 msgid "" "If *flag* is ``True``, then :meth:`syncup` is called automatically whenever " "there is a change in the window." msgstr "" -#: ../Doc/library/curses.rst:1238 +#: library/curses.rst:1240 msgid "" "Touch all locations in ancestors of the window that have been changed in " "the window." msgstr "" -#: ../Doc/library/curses.rst:1244 +#: library/curses.rst:1246 msgid "" "Set blocking or non-blocking read behavior for the window. If *delay* is " "negative, blocking read is used (which will wait indefinitely for input). " @@ -1393,7 +1394,7 @@ msgid "" "still no input at the end of that time." msgstr "" -#: ../Doc/library/curses.rst:1254 +#: library/curses.rst:1256 msgid "" "Pretend *count* lines have been changed, starting with line *start*. If " "*changed* is supplied, it specifies whether the affected lines are marked as " @@ -1401,51 +1402,51 @@ msgid "" "``=False``)." msgstr "" -#: ../Doc/library/curses.rst:1261 +#: library/curses.rst:1263 msgid "" "Pretend the whole window has been changed, for purposes of drawing " "optimizations." msgstr "" -#: ../Doc/library/curses.rst:1267 +#: library/curses.rst:1269 msgid "" "Mark all lines in the window as unchanged since the last call to :meth:" "`refresh`." msgstr "" -#: ../Doc/library/curses.rst:1274 +#: library/curses.rst:1276 msgid "" "Display a vertical line starting at ``(y, x)`` with length *n* consisting of " "the character *ch*." msgstr "" -#: ../Doc/library/curses.rst:1279 +#: library/curses.rst:1281 msgid "Constants" msgstr "Constantes" -#: ../Doc/library/curses.rst:1281 +#: library/curses.rst:1283 msgid "The :mod:`curses` module defines the following data members:" msgstr "" -#: ../Doc/library/curses.rst:1286 +#: library/curses.rst:1288 msgid "" "Some curses routines that return an integer, such as :meth:`~window." "getch`, return :const:`ERR` upon failure." msgstr "" -#: ../Doc/library/curses.rst:1292 +#: library/curses.rst:1294 msgid "" "Some curses routines that return an integer, such as :func:`napms`, " "return :const:`OK` upon success." msgstr "" -#: ../Doc/library/curses.rst:1298 +#: library/curses.rst:1300 msgid "" "A bytes object representing the current version of the module. Also " "available as :const:`__version__`." msgstr "" -#: ../Doc/library/curses.rst:1304 +#: library/curses.rst:1306 msgid "" "A named tuple containing the three components of the ncurses library " "version: *major*, *minor*, and *patch*. All values are integers. The " @@ -1453,966 +1454,965 @@ msgid "" "is equivalent to ``curses.ncurses_version.major`` and so on." msgstr "" -#: ../Doc/library/curses.rst:1309 +#: library/curses.rst:1311 msgid "Availability: if the ncurses library is used." msgstr "" -#: ../Doc/library/curses.rst:1314 +#: library/curses.rst:1316 msgid "" "Some constants are available to specify character cell attributes. The exact " "constants available are system dependent." msgstr "" -#: ../Doc/library/curses.rst:1318 +#: library/curses.rst:1320 msgid "Attribute" msgstr "Attribut" -#: ../Doc/library/curses.rst:1318 ../Doc/library/curses.rst:1366 -#: ../Doc/library/curses.rst:1610 +#: library/curses.rst:1368 library/curses.rst:1612 msgid "Meaning" msgstr "Signification" -#: ../Doc/library/curses.rst:1320 +#: library/curses.rst:1322 msgid "``A_ALTCHARSET``" msgstr "``A_ALTCHARSET``" -#: ../Doc/library/curses.rst:1320 +#: library/curses.rst:1322 msgid "Alternate character set mode" msgstr "" -#: ../Doc/library/curses.rst:1322 +#: library/curses.rst:1324 msgid "``A_BLINK``" msgstr "``A_BLINK``" -#: ../Doc/library/curses.rst:1322 +#: library/curses.rst:1324 msgid "Blink mode" msgstr "" -#: ../Doc/library/curses.rst:1324 +#: library/curses.rst:1326 msgid "``A_BOLD``" msgstr "``A_BOLD``" -#: ../Doc/library/curses.rst:1324 +#: library/curses.rst:1326 msgid "Bold mode" msgstr "" -#: ../Doc/library/curses.rst:1326 +#: library/curses.rst:1328 msgid "``A_DIM``" msgstr "``A_DIM``" -#: ../Doc/library/curses.rst:1326 +#: library/curses.rst:1328 msgid "Dim mode" msgstr "" -#: ../Doc/library/curses.rst:1328 +#: library/curses.rst:1330 msgid "``A_INVIS``" msgstr "``A_INVIS``" -#: ../Doc/library/curses.rst:1328 +#: library/curses.rst:1330 msgid "Invisible or blank mode" msgstr "" -#: ../Doc/library/curses.rst:1330 +#: library/curses.rst:1332 msgid "``A_ITALIC``" msgstr "``A_ITALIC``" -#: ../Doc/library/curses.rst:1330 +#: library/curses.rst:1332 msgid "Italic mode" msgstr "" -#: ../Doc/library/curses.rst:1332 +#: library/curses.rst:1334 msgid "``A_NORMAL``" msgstr "``A_NORMAL``" -#: ../Doc/library/curses.rst:1332 +#: library/curses.rst:1334 msgid "Normal attribute" msgstr "Attribut normal" -#: ../Doc/library/curses.rst:1334 +#: library/curses.rst:1336 msgid "``A_PROTECT``" msgstr "``A_PROTECT``" -#: ../Doc/library/curses.rst:1334 +#: library/curses.rst:1336 msgid "Protected mode" msgstr "" -#: ../Doc/library/curses.rst:1336 +#: library/curses.rst:1338 msgid "``A_REVERSE``" msgstr "``A_REVERSE``" -#: ../Doc/library/curses.rst:1336 +#: library/curses.rst:1338 msgid "Reverse background and foreground colors" msgstr "" -#: ../Doc/library/curses.rst:1339 +#: library/curses.rst:1341 msgid "``A_STANDOUT``" msgstr "``A_STANDOUT``" -#: ../Doc/library/curses.rst:1339 +#: library/curses.rst:1341 msgid "Standout mode" msgstr "" -#: ../Doc/library/curses.rst:1341 +#: library/curses.rst:1343 msgid "``A_UNDERLINE``" msgstr "``A_UNDERLINE``" -#: ../Doc/library/curses.rst:1341 +#: library/curses.rst:1343 msgid "Underline mode" msgstr "" -#: ../Doc/library/curses.rst:1343 +#: library/curses.rst:1345 msgid "``A_HORIZONTAL``" msgstr "``A_HORIZONTAL``" -#: ../Doc/library/curses.rst:1343 +#: library/curses.rst:1345 msgid "Horizontal highlight" msgstr "" -#: ../Doc/library/curses.rst:1345 +#: library/curses.rst:1347 msgid "``A_LEFT``" msgstr "``A_LEFT``" -#: ../Doc/library/curses.rst:1345 +#: library/curses.rst:1347 msgid "Left highlight" msgstr "" -#: ../Doc/library/curses.rst:1347 +#: library/curses.rst:1349 msgid "``A_LOW``" msgstr "``A_LOW``" -#: ../Doc/library/curses.rst:1347 +#: library/curses.rst:1349 msgid "Low highlight" msgstr "" -#: ../Doc/library/curses.rst:1349 +#: library/curses.rst:1351 msgid "``A_RIGHT``" msgstr "``A_RIGHT``" -#: ../Doc/library/curses.rst:1349 +#: library/curses.rst:1351 msgid "Right highlight" msgstr "" -#: ../Doc/library/curses.rst:1351 +#: library/curses.rst:1353 msgid "``A_TOP``" msgstr "``A_TOP``" -#: ../Doc/library/curses.rst:1351 +#: library/curses.rst:1353 msgid "Top highlight" msgstr "" -#: ../Doc/library/curses.rst:1353 +#: library/curses.rst:1355 msgid "``A_VERTICAL``" msgstr "``A_VERTICAL``" -#: ../Doc/library/curses.rst:1353 +#: library/curses.rst:1355 msgid "Vertical highlight" msgstr "" -#: ../Doc/library/curses.rst:1355 ../Doc/library/curses.rst:1371 +#: library/curses.rst:1373 msgid "``A_CHARTEXT``" msgstr "``A_CHARTEXT``" -#: ../Doc/library/curses.rst:1355 ../Doc/library/curses.rst:1371 +#: library/curses.rst:1373 msgid "Bit-mask to extract a character" msgstr "" -#: ../Doc/library/curses.rst:1359 +#: library/curses.rst:1361 msgid "``A_ITALIC`` was added." msgstr "" -#: ../Doc/library/curses.rst:1362 +#: library/curses.rst:1364 msgid "" "Several constants are available to extract corresponding attributes returned " "by some methods." msgstr "" -#: ../Doc/library/curses.rst:1366 +#: library/curses.rst:1368 msgid "Bit-mask" msgstr "" -#: ../Doc/library/curses.rst:1368 +#: library/curses.rst:1370 msgid "``A_ATTRIBUTES``" msgstr "``A_ATTRIBUTES``" -#: ../Doc/library/curses.rst:1368 +#: library/curses.rst:1370 msgid "Bit-mask to extract attributes" msgstr "" -#: ../Doc/library/curses.rst:1374 +#: library/curses.rst:1376 msgid "``A_COLOR``" msgstr "``A_COLOR``" -#: ../Doc/library/curses.rst:1374 +#: library/curses.rst:1376 msgid "Bit-mask to extract color-pair field information" msgstr "" -#: ../Doc/library/curses.rst:1378 +#: library/curses.rst:1380 msgid "" "Keys are referred to by integer constants with names starting with " "``KEY_``. The exact keycaps available are system dependent." msgstr "" -#: ../Doc/library/curses.rst:1384 +#: library/curses.rst:1386 msgid "Key constant" msgstr "" -#: ../Doc/library/curses.rst:1384 +#: library/curses.rst:1386 msgid "Key" -msgstr "" +msgstr "Clé" -#: ../Doc/library/curses.rst:1386 +#: library/curses.rst:1388 msgid "``KEY_MIN``" msgstr "``KEY_MIN``" -#: ../Doc/library/curses.rst:1386 +#: library/curses.rst:1388 msgid "Minimum key value" msgstr "" -#: ../Doc/library/curses.rst:1388 +#: library/curses.rst:1390 msgid "``KEY_BREAK``" msgstr "``KEY_BREAK``" -#: ../Doc/library/curses.rst:1388 +#: library/curses.rst:1390 msgid "Break key (unreliable)" msgstr "" -#: ../Doc/library/curses.rst:1390 +#: library/curses.rst:1392 msgid "``KEY_DOWN``" msgstr "``KEY_DOWN``" -#: ../Doc/library/curses.rst:1390 +#: library/curses.rst:1392 msgid "Down-arrow" msgstr "" -#: ../Doc/library/curses.rst:1392 +#: library/curses.rst:1394 msgid "``KEY_UP``" msgstr "``KEY_UP``" -#: ../Doc/library/curses.rst:1392 +#: library/curses.rst:1394 msgid "Up-arrow" msgstr "" -#: ../Doc/library/curses.rst:1394 +#: library/curses.rst:1396 msgid "``KEY_LEFT``" msgstr "``KEY_LEFT``" -#: ../Doc/library/curses.rst:1394 +#: library/curses.rst:1396 msgid "Left-arrow" msgstr "" -#: ../Doc/library/curses.rst:1396 +#: library/curses.rst:1398 msgid "``KEY_RIGHT``" msgstr "``KEY_RIGHT``" -#: ../Doc/library/curses.rst:1396 +#: library/curses.rst:1398 msgid "Right-arrow" msgstr "" -#: ../Doc/library/curses.rst:1398 +#: library/curses.rst:1400 msgid "``KEY_HOME``" msgstr "``KEY_HOME``" -#: ../Doc/library/curses.rst:1398 +#: library/curses.rst:1400 msgid "Home key (upward+left arrow)" msgstr "" -#: ../Doc/library/curses.rst:1400 +#: library/curses.rst:1402 msgid "``KEY_BACKSPACE``" msgstr "``KEY_BACKSPACE``" -#: ../Doc/library/curses.rst:1400 +#: library/curses.rst:1402 msgid "Backspace (unreliable)" msgstr "" -#: ../Doc/library/curses.rst:1402 +#: library/curses.rst:1404 msgid "``KEY_F0``" msgstr "``KEY_F0``" -#: ../Doc/library/curses.rst:1402 +#: library/curses.rst:1404 msgid "Function keys. Up to 64 function keys are supported." msgstr "" -#: ../Doc/library/curses.rst:1405 +#: library/curses.rst:1407 msgid "``KEY_Fn``" msgstr "``KEY_Fn``" -#: ../Doc/library/curses.rst:1405 +#: library/curses.rst:1407 msgid "Value of function key *n*" msgstr "" -#: ../Doc/library/curses.rst:1407 +#: library/curses.rst:1409 msgid "``KEY_DL``" msgstr "``KEY_DL``" -#: ../Doc/library/curses.rst:1407 +#: library/curses.rst:1409 msgid "Delete line" msgstr "" -#: ../Doc/library/curses.rst:1409 +#: library/curses.rst:1411 msgid "``KEY_IL``" msgstr "``KEY_IL``" -#: ../Doc/library/curses.rst:1409 +#: library/curses.rst:1411 msgid "Insert line" msgstr "" -#: ../Doc/library/curses.rst:1411 +#: library/curses.rst:1413 msgid "``KEY_DC``" msgstr "``KEY_DC``" -#: ../Doc/library/curses.rst:1411 +#: library/curses.rst:1413 msgid "Delete character" msgstr "" -#: ../Doc/library/curses.rst:1413 +#: library/curses.rst:1415 msgid "``KEY_IC``" msgstr "``KEY_IC``" -#: ../Doc/library/curses.rst:1413 +#: library/curses.rst:1415 msgid "Insert char or enter insert mode" msgstr "" -#: ../Doc/library/curses.rst:1415 +#: library/curses.rst:1417 msgid "``KEY_EIC``" msgstr "``KEY_EIC``" -#: ../Doc/library/curses.rst:1415 +#: library/curses.rst:1417 msgid "Exit insert char mode" msgstr "" -#: ../Doc/library/curses.rst:1417 +#: library/curses.rst:1419 msgid "``KEY_CLEAR``" msgstr "``KEY_CLEAR``" -#: ../Doc/library/curses.rst:1417 +#: library/curses.rst:1419 msgid "Clear screen" msgstr "" -#: ../Doc/library/curses.rst:1419 +#: library/curses.rst:1421 msgid "``KEY_EOS``" msgstr "``KEY_EOS``" -#: ../Doc/library/curses.rst:1419 +#: library/curses.rst:1421 msgid "Clear to end of screen" msgstr "" -#: ../Doc/library/curses.rst:1421 +#: library/curses.rst:1423 msgid "``KEY_EOL``" msgstr "``KEY_EOL``" -#: ../Doc/library/curses.rst:1421 +#: library/curses.rst:1423 msgid "Clear to end of line" msgstr "" -#: ../Doc/library/curses.rst:1423 +#: library/curses.rst:1425 msgid "``KEY_SF``" msgstr "``KEY_SF``" -#: ../Doc/library/curses.rst:1423 +#: library/curses.rst:1425 msgid "Scroll 1 line forward" msgstr "" -#: ../Doc/library/curses.rst:1425 +#: library/curses.rst:1427 msgid "``KEY_SR``" msgstr "``KEY_SR``" -#: ../Doc/library/curses.rst:1425 +#: library/curses.rst:1427 msgid "Scroll 1 line backward (reverse)" msgstr "" -#: ../Doc/library/curses.rst:1427 +#: library/curses.rst:1429 msgid "``KEY_NPAGE``" msgstr "``KEY_NPAGE``" -#: ../Doc/library/curses.rst:1427 +#: library/curses.rst:1429 msgid "Next page" msgstr "" -#: ../Doc/library/curses.rst:1429 +#: library/curses.rst:1431 msgid "``KEY_PPAGE``" msgstr "``KEY_PPAGE``" -#: ../Doc/library/curses.rst:1429 +#: library/curses.rst:1431 msgid "Previous page" msgstr "" -#: ../Doc/library/curses.rst:1431 +#: library/curses.rst:1433 msgid "``KEY_STAB``" msgstr "``KEY_STAB``" -#: ../Doc/library/curses.rst:1431 +#: library/curses.rst:1433 msgid "Set tab" msgstr "" -#: ../Doc/library/curses.rst:1433 +#: library/curses.rst:1435 msgid "``KEY_CTAB``" msgstr "``KEY_CTAB``" -#: ../Doc/library/curses.rst:1433 +#: library/curses.rst:1435 msgid "Clear tab" msgstr "" -#: ../Doc/library/curses.rst:1435 +#: library/curses.rst:1437 msgid "``KEY_CATAB``" msgstr "``KEY_CATAB``" -#: ../Doc/library/curses.rst:1435 +#: library/curses.rst:1437 msgid "Clear all tabs" msgstr "" -#: ../Doc/library/curses.rst:1437 +#: library/curses.rst:1439 msgid "``KEY_ENTER``" msgstr "``KEY_ENTER``" -#: ../Doc/library/curses.rst:1437 +#: library/curses.rst:1439 msgid "Enter or send (unreliable)" msgstr "" -#: ../Doc/library/curses.rst:1439 +#: library/curses.rst:1441 msgid "``KEY_SRESET``" msgstr "``KEY_SRESET``" -#: ../Doc/library/curses.rst:1439 +#: library/curses.rst:1441 msgid "Soft (partial) reset (unreliable)" msgstr "" -#: ../Doc/library/curses.rst:1441 +#: library/curses.rst:1443 msgid "``KEY_RESET``" msgstr "``KEY_RESET``" -#: ../Doc/library/curses.rst:1441 +#: library/curses.rst:1443 msgid "Reset or hard reset (unreliable)" msgstr "" -#: ../Doc/library/curses.rst:1443 +#: library/curses.rst:1445 msgid "``KEY_PRINT``" msgstr "``KEY_PRINT``" -#: ../Doc/library/curses.rst:1443 +#: library/curses.rst:1445 msgid "Print" msgstr "" -#: ../Doc/library/curses.rst:1445 +#: library/curses.rst:1447 msgid "``KEY_LL``" msgstr "``KEY_LL``" -#: ../Doc/library/curses.rst:1445 +#: library/curses.rst:1447 msgid "Home down or bottom (lower left)" msgstr "" -#: ../Doc/library/curses.rst:1447 +#: library/curses.rst:1449 msgid "``KEY_A1``" msgstr "``KEY_A1``" -#: ../Doc/library/curses.rst:1447 +#: library/curses.rst:1449 msgid "Upper left of keypad" msgstr "" -#: ../Doc/library/curses.rst:1449 +#: library/curses.rst:1451 msgid "``KEY_A3``" msgstr "``KEY_A3``" -#: ../Doc/library/curses.rst:1449 +#: library/curses.rst:1451 msgid "Upper right of keypad" msgstr "" -#: ../Doc/library/curses.rst:1451 +#: library/curses.rst:1453 msgid "``KEY_B2``" msgstr "``KEY_B2``" -#: ../Doc/library/curses.rst:1451 +#: library/curses.rst:1453 msgid "Center of keypad" msgstr "" -#: ../Doc/library/curses.rst:1453 +#: library/curses.rst:1455 msgid "``KEY_C1``" msgstr "``KEY_C1``" -#: ../Doc/library/curses.rst:1453 +#: library/curses.rst:1455 msgid "Lower left of keypad" msgstr "" -#: ../Doc/library/curses.rst:1455 +#: library/curses.rst:1457 msgid "``KEY_C3``" msgstr "``KEY_C3``" -#: ../Doc/library/curses.rst:1455 +#: library/curses.rst:1457 msgid "Lower right of keypad" msgstr "" -#: ../Doc/library/curses.rst:1457 +#: library/curses.rst:1459 msgid "``KEY_BTAB``" msgstr "``KEY_BTAB``" -#: ../Doc/library/curses.rst:1457 +#: library/curses.rst:1459 msgid "Back tab" msgstr "" -#: ../Doc/library/curses.rst:1459 +#: library/curses.rst:1461 msgid "``KEY_BEG``" msgstr "``KEY_BEG``" -#: ../Doc/library/curses.rst:1459 +#: library/curses.rst:1461 msgid "Beg (beginning)" msgstr "" -#: ../Doc/library/curses.rst:1461 +#: library/curses.rst:1463 msgid "``KEY_CANCEL``" msgstr "``KEY_CANCEL``" -#: ../Doc/library/curses.rst:1461 +#: library/curses.rst:1463 msgid "Cancel" msgstr "" -#: ../Doc/library/curses.rst:1463 +#: library/curses.rst:1465 msgid "``KEY_CLOSE``" msgstr "``KEY_CLOSE``" -#: ../Doc/library/curses.rst:1463 +#: library/curses.rst:1465 msgid "Close" msgstr "*Close*" -#: ../Doc/library/curses.rst:1465 +#: library/curses.rst:1467 msgid "``KEY_COMMAND``" msgstr "``KEY_COMMAND``" -#: ../Doc/library/curses.rst:1465 +#: library/curses.rst:1467 msgid "Cmd (command)" msgstr "" -#: ../Doc/library/curses.rst:1467 +#: library/curses.rst:1469 msgid "``KEY_COPY``" msgstr "``KEY_COPY``" -#: ../Doc/library/curses.rst:1467 +#: library/curses.rst:1469 msgid "Copy" msgstr "*Copy*" -#: ../Doc/library/curses.rst:1469 +#: library/curses.rst:1471 msgid "``KEY_CREATE``" msgstr "``KEY_CREATE``" -#: ../Doc/library/curses.rst:1469 +#: library/curses.rst:1471 msgid "Create" msgstr "" -#: ../Doc/library/curses.rst:1471 +#: library/curses.rst:1473 msgid "``KEY_END``" msgstr "``KEY_END``" -#: ../Doc/library/curses.rst:1471 +#: library/curses.rst:1473 msgid "End" msgstr "" -#: ../Doc/library/curses.rst:1473 +#: library/curses.rst:1475 msgid "``KEY_EXIT``" msgstr "``KEY_EXIT``" -#: ../Doc/library/curses.rst:1473 +#: library/curses.rst:1475 msgid "Exit" msgstr "*Exit*" -#: ../Doc/library/curses.rst:1475 +#: library/curses.rst:1477 msgid "``KEY_FIND``" msgstr "``KEY_FIND``" -#: ../Doc/library/curses.rst:1475 +#: library/curses.rst:1477 msgid "Find" msgstr "" -#: ../Doc/library/curses.rst:1477 +#: library/curses.rst:1479 msgid "``KEY_HELP``" msgstr "``KEY_HELP``" -#: ../Doc/library/curses.rst:1477 +#: library/curses.rst:1479 msgid "Help" msgstr "" -#: ../Doc/library/curses.rst:1479 +#: library/curses.rst:1481 msgid "``KEY_MARK``" msgstr "``KEY_MARK``" -#: ../Doc/library/curses.rst:1479 +#: library/curses.rst:1481 msgid "Mark" msgstr "" -#: ../Doc/library/curses.rst:1481 +#: library/curses.rst:1483 msgid "``KEY_MESSAGE``" msgstr "``KEY_MESSAGE``" -#: ../Doc/library/curses.rst:1481 +#: library/curses.rst:1483 msgid "Message" msgstr "" -#: ../Doc/library/curses.rst:1483 +#: library/curses.rst:1485 msgid "``KEY_MOVE``" msgstr "``KEY_MOVE``" -#: ../Doc/library/curses.rst:1483 +#: library/curses.rst:1485 msgid "Move" msgstr "" -#: ../Doc/library/curses.rst:1485 +#: library/curses.rst:1487 msgid "``KEY_NEXT``" msgstr "``KEY_NEXT``" -#: ../Doc/library/curses.rst:1485 +#: library/curses.rst:1487 msgid "Next" msgstr "" -#: ../Doc/library/curses.rst:1487 +#: library/curses.rst:1489 msgid "``KEY_OPEN``" msgstr "``KEY_OPEN``" -#: ../Doc/library/curses.rst:1487 +#: library/curses.rst:1489 msgid "Open" msgstr "" -#: ../Doc/library/curses.rst:1489 +#: library/curses.rst:1491 msgid "``KEY_OPTIONS``" msgstr "``KEY_OPTIONS``" -#: ../Doc/library/curses.rst:1489 +#: library/curses.rst:1491 msgid "Options" msgstr "Options" -#: ../Doc/library/curses.rst:1491 +#: library/curses.rst:1493 msgid "``KEY_PREVIOUS``" msgstr "``KEY_PREVIOUS``" -#: ../Doc/library/curses.rst:1491 +#: library/curses.rst:1493 msgid "Prev (previous)" msgstr "" -#: ../Doc/library/curses.rst:1493 +#: library/curses.rst:1495 msgid "``KEY_REDO``" msgstr "``KEY_REDO``" -#: ../Doc/library/curses.rst:1493 +#: library/curses.rst:1495 msgid "Redo" msgstr "*Redo*" -#: ../Doc/library/curses.rst:1495 +#: library/curses.rst:1497 msgid "``KEY_REFERENCE``" msgstr "``KEY_REFERENCE``" -#: ../Doc/library/curses.rst:1495 +#: library/curses.rst:1497 msgid "Ref (reference)" msgstr "" -#: ../Doc/library/curses.rst:1497 +#: library/curses.rst:1499 msgid "``KEY_REFRESH``" msgstr "``KEY_REFRESH``" -#: ../Doc/library/curses.rst:1497 +#: library/curses.rst:1499 msgid "Refresh" msgstr "" -#: ../Doc/library/curses.rst:1499 +#: library/curses.rst:1501 msgid "``KEY_REPLACE``" msgstr "``KEY_REPLACE``" -#: ../Doc/library/curses.rst:1499 +#: library/curses.rst:1501 msgid "Replace" msgstr "" -#: ../Doc/library/curses.rst:1501 +#: library/curses.rst:1503 msgid "``KEY_RESTART``" msgstr "``KEY_RESTART``" -#: ../Doc/library/curses.rst:1501 +#: library/curses.rst:1503 msgid "Restart" msgstr "" -#: ../Doc/library/curses.rst:1503 +#: library/curses.rst:1505 msgid "``KEY_RESUME``" msgstr "``KEY_RESUME``" -#: ../Doc/library/curses.rst:1503 +#: library/curses.rst:1505 msgid "Resume" msgstr "" -#: ../Doc/library/curses.rst:1505 +#: library/curses.rst:1507 msgid "``KEY_SAVE``" msgstr "``KEY_SAVE``" -#: ../Doc/library/curses.rst:1505 +#: library/curses.rst:1507 msgid "Save" msgstr "*Save*" -#: ../Doc/library/curses.rst:1507 +#: library/curses.rst:1509 msgid "``KEY_SBEG``" msgstr "``KEY_SBEG``" -#: ../Doc/library/curses.rst:1507 +#: library/curses.rst:1509 msgid "Shifted Beg (beginning)" msgstr "" -#: ../Doc/library/curses.rst:1509 +#: library/curses.rst:1511 msgid "``KEY_SCANCEL``" msgstr "``KEY_SCANCEL``" -#: ../Doc/library/curses.rst:1509 +#: library/curses.rst:1511 msgid "Shifted Cancel" msgstr "" -#: ../Doc/library/curses.rst:1511 +#: library/curses.rst:1513 msgid "``KEY_SCOMMAND``" msgstr "``KEY_SCOMMAND``" -#: ../Doc/library/curses.rst:1511 +#: library/curses.rst:1513 msgid "Shifted Command" msgstr "" -#: ../Doc/library/curses.rst:1513 +#: library/curses.rst:1515 msgid "``KEY_SCOPY``" msgstr "``KEY_SCOPY``" -#: ../Doc/library/curses.rst:1513 +#: library/curses.rst:1515 msgid "Shifted Copy" msgstr "" -#: ../Doc/library/curses.rst:1515 +#: library/curses.rst:1517 msgid "``KEY_SCREATE``" msgstr "``KEY_SCREATE``" -#: ../Doc/library/curses.rst:1515 +#: library/curses.rst:1517 msgid "Shifted Create" msgstr "" -#: ../Doc/library/curses.rst:1517 +#: library/curses.rst:1519 msgid "``KEY_SDC``" msgstr "``KEY_SDC``" -#: ../Doc/library/curses.rst:1517 +#: library/curses.rst:1519 msgid "Shifted Delete char" msgstr "" -#: ../Doc/library/curses.rst:1519 +#: library/curses.rst:1521 msgid "``KEY_SDL``" msgstr "``KEY_SDL``" -#: ../Doc/library/curses.rst:1519 +#: library/curses.rst:1521 msgid "Shifted Delete line" msgstr "" -#: ../Doc/library/curses.rst:1521 +#: library/curses.rst:1523 msgid "``KEY_SELECT``" msgstr "``KEY_SELECT``" -#: ../Doc/library/curses.rst:1521 +#: library/curses.rst:1523 msgid "Select" msgstr "" -#: ../Doc/library/curses.rst:1523 +#: library/curses.rst:1525 msgid "``KEY_SEND``" msgstr "``KEY_SEND``" -#: ../Doc/library/curses.rst:1523 +#: library/curses.rst:1525 msgid "Shifted End" msgstr "" -#: ../Doc/library/curses.rst:1525 +#: library/curses.rst:1527 msgid "``KEY_SEOL``" msgstr "``KEY_SEOL``" -#: ../Doc/library/curses.rst:1525 +#: library/curses.rst:1527 msgid "Shifted Clear line" msgstr "" -#: ../Doc/library/curses.rst:1527 +#: library/curses.rst:1529 msgid "``KEY_SEXIT``" msgstr "``KEY_SEXIT``" -#: ../Doc/library/curses.rst:1527 +#: library/curses.rst:1529 msgid "Shifted Exit" msgstr "" -#: ../Doc/library/curses.rst:1529 +#: library/curses.rst:1531 msgid "``KEY_SFIND``" msgstr "``KEY_SFIND``" -#: ../Doc/library/curses.rst:1529 +#: library/curses.rst:1531 msgid "Shifted Find" msgstr "" -#: ../Doc/library/curses.rst:1531 +#: library/curses.rst:1533 msgid "``KEY_SHELP``" msgstr "``KEY_SHELP``" -#: ../Doc/library/curses.rst:1531 +#: library/curses.rst:1533 msgid "Shifted Help" msgstr "" -#: ../Doc/library/curses.rst:1533 +#: library/curses.rst:1535 msgid "``KEY_SHOME``" msgstr "``KEY_SHOME``" -#: ../Doc/library/curses.rst:1533 +#: library/curses.rst:1535 msgid "Shifted Home" msgstr "" -#: ../Doc/library/curses.rst:1535 +#: library/curses.rst:1537 msgid "``KEY_SIC``" msgstr "``KEY_SIC``" -#: ../Doc/library/curses.rst:1535 +#: library/curses.rst:1537 msgid "Shifted Input" msgstr "" -#: ../Doc/library/curses.rst:1537 +#: library/curses.rst:1539 msgid "``KEY_SLEFT``" msgstr "``KEY_SLEFT``" -#: ../Doc/library/curses.rst:1537 +#: library/curses.rst:1539 msgid "Shifted Left arrow" msgstr "" -#: ../Doc/library/curses.rst:1539 +#: library/curses.rst:1541 msgid "``KEY_SMESSAGE``" msgstr "``KEY_SMESSAGE``" -#: ../Doc/library/curses.rst:1539 +#: library/curses.rst:1541 msgid "Shifted Message" msgstr "" -#: ../Doc/library/curses.rst:1541 +#: library/curses.rst:1543 msgid "``KEY_SMOVE``" msgstr "``KEY_SMOVE``" -#: ../Doc/library/curses.rst:1541 +#: library/curses.rst:1543 msgid "Shifted Move" msgstr "" -#: ../Doc/library/curses.rst:1543 +#: library/curses.rst:1545 msgid "``KEY_SNEXT``" msgstr "``KEY_SNEXT``" -#: ../Doc/library/curses.rst:1543 +#: library/curses.rst:1545 msgid "Shifted Next" msgstr "" -#: ../Doc/library/curses.rst:1545 +#: library/curses.rst:1547 msgid "``KEY_SOPTIONS``" msgstr "``KEY_SOPTIONS``" -#: ../Doc/library/curses.rst:1545 +#: library/curses.rst:1547 msgid "Shifted Options" msgstr "" -#: ../Doc/library/curses.rst:1547 +#: library/curses.rst:1549 msgid "``KEY_SPREVIOUS``" msgstr "``KEY_SPREVIOUS``" -#: ../Doc/library/curses.rst:1547 +#: library/curses.rst:1549 msgid "Shifted Prev" msgstr "" -#: ../Doc/library/curses.rst:1549 +#: library/curses.rst:1551 msgid "``KEY_SPRINT``" msgstr "``KEY_SPRINT``" -#: ../Doc/library/curses.rst:1549 +#: library/curses.rst:1551 msgid "Shifted Print" msgstr "" -#: ../Doc/library/curses.rst:1551 +#: library/curses.rst:1553 msgid "``KEY_SREDO``" msgstr "``KEY_SREDO``" -#: ../Doc/library/curses.rst:1551 +#: library/curses.rst:1553 msgid "Shifted Redo" msgstr "" -#: ../Doc/library/curses.rst:1553 +#: library/curses.rst:1555 msgid "``KEY_SREPLACE``" msgstr "``KEY_SREPLACE``" -#: ../Doc/library/curses.rst:1553 +#: library/curses.rst:1555 msgid "Shifted Replace" msgstr "" -#: ../Doc/library/curses.rst:1555 +#: library/curses.rst:1557 msgid "``KEY_SRIGHT``" msgstr "``KEY_SRIGHT``" -#: ../Doc/library/curses.rst:1555 +#: library/curses.rst:1557 msgid "Shifted Right arrow" msgstr "" -#: ../Doc/library/curses.rst:1557 +#: library/curses.rst:1559 msgid "``KEY_SRSUME``" msgstr "``KEY_SRSUME``" -#: ../Doc/library/curses.rst:1557 +#: library/curses.rst:1559 msgid "Shifted Resume" msgstr "" -#: ../Doc/library/curses.rst:1559 +#: library/curses.rst:1561 msgid "``KEY_SSAVE``" msgstr "``KEY_SSAVE``" -#: ../Doc/library/curses.rst:1559 +#: library/curses.rst:1561 msgid "Shifted Save" msgstr "" -#: ../Doc/library/curses.rst:1561 +#: library/curses.rst:1563 msgid "``KEY_SSUSPEND``" msgstr "``KEY_SSUSPEND``" -#: ../Doc/library/curses.rst:1561 +#: library/curses.rst:1563 msgid "Shifted Suspend" msgstr "" -#: ../Doc/library/curses.rst:1563 +#: library/curses.rst:1565 msgid "``KEY_SUNDO``" msgstr "``KEY_SUNDO``" -#: ../Doc/library/curses.rst:1563 +#: library/curses.rst:1565 msgid "Shifted Undo" msgstr "" -#: ../Doc/library/curses.rst:1565 +#: library/curses.rst:1567 msgid "``KEY_SUSPEND``" msgstr "``KEY_SUSPEND``" -#: ../Doc/library/curses.rst:1565 +#: library/curses.rst:1567 msgid "Suspend" msgstr "" -#: ../Doc/library/curses.rst:1567 +#: library/curses.rst:1569 msgid "``KEY_UNDO``" msgstr "``KEY_UNDO``" -#: ../Doc/library/curses.rst:1567 +#: library/curses.rst:1569 msgid "Undo" msgstr "*Undo*" -#: ../Doc/library/curses.rst:1569 +#: library/curses.rst:1571 msgid "``KEY_MOUSE``" msgstr "``KEY_MOUSE``" -#: ../Doc/library/curses.rst:1569 +#: library/curses.rst:1571 msgid "Mouse event has occurred" msgstr "" -#: ../Doc/library/curses.rst:1571 +#: library/curses.rst:1573 msgid "``KEY_RESIZE``" msgstr "``KEY_RESIZE``" -#: ../Doc/library/curses.rst:1571 +#: library/curses.rst:1573 msgid "Terminal resize event" msgstr "" -#: ../Doc/library/curses.rst:1573 +#: library/curses.rst:1575 msgid "``KEY_MAX``" msgstr "``KEY_MAX``" -#: ../Doc/library/curses.rst:1573 +#: library/curses.rst:1575 msgid "Maximum key value" msgstr "" -#: ../Doc/library/curses.rst:1576 +#: library/curses.rst:1578 msgid "" "On VT100s and their software emulations, such as X terminal emulators, there " "are normally at least four function keys (:const:`KEY_F1`, :const:`KEY_F2`, :" @@ -2423,64 +2423,63 @@ msgid "" "function keys); also, the following keypad mappings are standard:" msgstr "" -#: ../Doc/library/curses.rst:1585 +#: library/curses.rst:1587 msgid "Keycap" msgstr "" -#: ../Doc/library/curses.rst:1585 ../Doc/library/curses.rst:1702 -#: ../Doc/library/curses.rst:1826 +#: library/curses.rst:1704 library/curses.rst:1828 msgid "Constant" msgstr "Constante" -#: ../Doc/library/curses.rst:1587 +#: library/curses.rst:1589 msgid ":kbd:`Insert`" msgstr ":kbd:`Insert`" -#: ../Doc/library/curses.rst:1587 +#: library/curses.rst:1589 msgid "KEY_IC" msgstr "" -#: ../Doc/library/curses.rst:1589 +#: library/curses.rst:1591 msgid ":kbd:`Delete`" msgstr ":kbd:`Delete`" -#: ../Doc/library/curses.rst:1589 +#: library/curses.rst:1591 msgid "KEY_DC" msgstr "" -#: ../Doc/library/curses.rst:1591 +#: library/curses.rst:1593 msgid ":kbd:`Home`" msgstr ":kbd:`Home`" -#: ../Doc/library/curses.rst:1591 +#: library/curses.rst:1593 msgid "KEY_HOME" msgstr "KEY_HOME" -#: ../Doc/library/curses.rst:1593 +#: library/curses.rst:1595 msgid ":kbd:`End`" msgstr ":kbd:`End`" -#: ../Doc/library/curses.rst:1593 +#: library/curses.rst:1595 msgid "KEY_END" msgstr "KEY_END" -#: ../Doc/library/curses.rst:1595 +#: library/curses.rst:1597 msgid ":kbd:`Page Up`" msgstr ":kbd:`Page Up`" -#: ../Doc/library/curses.rst:1595 +#: library/curses.rst:1597 msgid "KEY_PPAGE" msgstr "KEY_PPAGE" -#: ../Doc/library/curses.rst:1597 +#: library/curses.rst:1599 msgid ":kbd:`Page Down`" msgstr ":kbd:`Page Down`" -#: ../Doc/library/curses.rst:1597 +#: library/curses.rst:1599 msgid "KEY_NPAGE" msgstr "KEY_NPAGE" -#: ../Doc/library/curses.rst:1600 +#: library/curses.rst:1602 msgid "" "The following table lists characters from the alternate character set. These " "are inherited from the VT100 terminal, and will generally be available on " @@ -2488,435 +2487,435 @@ msgid "" "available, curses falls back on a crude printable ASCII approximation." msgstr "" -#: ../Doc/library/curses.rst:1607 +#: library/curses.rst:1609 msgid "These are available only after :func:`initscr` has been called." msgstr "" -#: ../Doc/library/curses.rst:1610 +#: library/curses.rst:1612 msgid "ACS code" msgstr "" -#: ../Doc/library/curses.rst:1612 +#: library/curses.rst:1614 msgid "``ACS_BBSS``" msgstr "``ACS_BBSS``" -#: ../Doc/library/curses.rst:1612 +#: library/curses.rst:1614 msgid "alternate name for upper right corner" msgstr "" -#: ../Doc/library/curses.rst:1614 +#: library/curses.rst:1616 msgid "``ACS_BLOCK``" msgstr "``ACS_BLOCK``" -#: ../Doc/library/curses.rst:1614 +#: library/curses.rst:1616 msgid "solid square block" msgstr "" -#: ../Doc/library/curses.rst:1616 +#: library/curses.rst:1618 msgid "``ACS_BOARD``" msgstr "``ACS_BOARD``" -#: ../Doc/library/curses.rst:1616 +#: library/curses.rst:1618 msgid "board of squares" msgstr "" -#: ../Doc/library/curses.rst:1618 +#: library/curses.rst:1620 msgid "``ACS_BSBS``" msgstr "``ACS_BSBS``" -#: ../Doc/library/curses.rst:1618 +#: library/curses.rst:1620 msgid "alternate name for horizontal line" msgstr "" -#: ../Doc/library/curses.rst:1620 +#: library/curses.rst:1622 msgid "``ACS_BSSB``" msgstr "``ACS_BSSB``" -#: ../Doc/library/curses.rst:1620 +#: library/curses.rst:1622 msgid "alternate name for upper left corner" msgstr "" -#: ../Doc/library/curses.rst:1622 +#: library/curses.rst:1624 msgid "``ACS_BSSS``" msgstr "``ACS_BSSS``" -#: ../Doc/library/curses.rst:1622 +#: library/curses.rst:1624 msgid "alternate name for top tee" msgstr "" -#: ../Doc/library/curses.rst:1624 +#: library/curses.rst:1626 msgid "``ACS_BTEE``" msgstr "``ACS_BTEE``" -#: ../Doc/library/curses.rst:1624 +#: library/curses.rst:1626 msgid "bottom tee" msgstr "" -#: ../Doc/library/curses.rst:1626 +#: library/curses.rst:1628 msgid "``ACS_BULLET``" msgstr "``ACS_BULLET``" -#: ../Doc/library/curses.rst:1626 +#: library/curses.rst:1628 msgid "bullet" msgstr "" -#: ../Doc/library/curses.rst:1628 +#: library/curses.rst:1630 msgid "``ACS_CKBOARD``" msgstr "``ACS_CKBOARD``" -#: ../Doc/library/curses.rst:1628 +#: library/curses.rst:1630 msgid "checker board (stipple)" msgstr "" -#: ../Doc/library/curses.rst:1630 +#: library/curses.rst:1632 msgid "``ACS_DARROW``" msgstr "``ACS_DARROW``" -#: ../Doc/library/curses.rst:1630 +#: library/curses.rst:1632 msgid "arrow pointing down" msgstr "" -#: ../Doc/library/curses.rst:1632 +#: library/curses.rst:1634 msgid "``ACS_DEGREE``" msgstr "``ACS_DEGREE``" -#: ../Doc/library/curses.rst:1632 +#: library/curses.rst:1634 msgid "degree symbol" msgstr "" -#: ../Doc/library/curses.rst:1634 +#: library/curses.rst:1636 msgid "``ACS_DIAMOND``" msgstr "``ACS_DIAMOND``" -#: ../Doc/library/curses.rst:1634 +#: library/curses.rst:1636 msgid "diamond" msgstr "" -#: ../Doc/library/curses.rst:1636 +#: library/curses.rst:1638 msgid "``ACS_GEQUAL``" msgstr "``ACS_GEQUAL``" -#: ../Doc/library/curses.rst:1636 +#: library/curses.rst:1638 msgid "greater-than-or-equal-to" msgstr "" -#: ../Doc/library/curses.rst:1638 +#: library/curses.rst:1640 msgid "``ACS_HLINE``" msgstr "``ACS_HLINE``" -#: ../Doc/library/curses.rst:1638 +#: library/curses.rst:1640 msgid "horizontal line" msgstr "" -#: ../Doc/library/curses.rst:1640 +#: library/curses.rst:1642 msgid "``ACS_LANTERN``" msgstr "``ACS_LANTERN``" -#: ../Doc/library/curses.rst:1640 +#: library/curses.rst:1642 msgid "lantern symbol" msgstr "" -#: ../Doc/library/curses.rst:1642 +#: library/curses.rst:1644 msgid "``ACS_LARROW``" msgstr "``ACS_LARROW``" -#: ../Doc/library/curses.rst:1642 +#: library/curses.rst:1644 msgid "left arrow" msgstr "" -#: ../Doc/library/curses.rst:1644 +#: library/curses.rst:1646 msgid "``ACS_LEQUAL``" msgstr "``ACS_LEQUAL``" -#: ../Doc/library/curses.rst:1644 +#: library/curses.rst:1646 msgid "less-than-or-equal-to" msgstr "" -#: ../Doc/library/curses.rst:1646 +#: library/curses.rst:1648 msgid "``ACS_LLCORNER``" msgstr "``ACS_LLCORNER``" -#: ../Doc/library/curses.rst:1646 +#: library/curses.rst:1648 msgid "lower left-hand corner" msgstr "" -#: ../Doc/library/curses.rst:1648 +#: library/curses.rst:1650 msgid "``ACS_LRCORNER``" msgstr "``ACS_LRCORNER``" -#: ../Doc/library/curses.rst:1648 +#: library/curses.rst:1650 msgid "lower right-hand corner" msgstr "" -#: ../Doc/library/curses.rst:1650 +#: library/curses.rst:1652 msgid "``ACS_LTEE``" msgstr "``ACS_LTEE``" -#: ../Doc/library/curses.rst:1650 +#: library/curses.rst:1652 msgid "left tee" msgstr "" -#: ../Doc/library/curses.rst:1652 +#: library/curses.rst:1654 msgid "``ACS_NEQUAL``" msgstr "``ACS_NEQUAL``" -#: ../Doc/library/curses.rst:1652 +#: library/curses.rst:1654 msgid "not-equal sign" msgstr "" -#: ../Doc/library/curses.rst:1654 +#: library/curses.rst:1656 msgid "``ACS_PI``" msgstr "``ACS_PI``" -#: ../Doc/library/curses.rst:1654 +#: library/curses.rst:1656 msgid "letter pi" msgstr "" -#: ../Doc/library/curses.rst:1656 +#: library/curses.rst:1658 msgid "``ACS_PLMINUS``" msgstr "``ACS_PLMINUS``" -#: ../Doc/library/curses.rst:1656 +#: library/curses.rst:1658 msgid "plus-or-minus sign" msgstr "" -#: ../Doc/library/curses.rst:1658 +#: library/curses.rst:1660 msgid "``ACS_PLUS``" msgstr "``ACS_PLUS``" -#: ../Doc/library/curses.rst:1658 +#: library/curses.rst:1660 msgid "big plus sign" msgstr "" -#: ../Doc/library/curses.rst:1660 +#: library/curses.rst:1662 msgid "``ACS_RARROW``" msgstr "``ACS_RARROW``" -#: ../Doc/library/curses.rst:1660 +#: library/curses.rst:1662 msgid "right arrow" msgstr "" -#: ../Doc/library/curses.rst:1662 +#: library/curses.rst:1664 msgid "``ACS_RTEE``" msgstr "``ACS_RTEE``" -#: ../Doc/library/curses.rst:1662 +#: library/curses.rst:1664 msgid "right tee" msgstr "" -#: ../Doc/library/curses.rst:1664 +#: library/curses.rst:1666 msgid "``ACS_S1``" msgstr "``ACS_S1``" -#: ../Doc/library/curses.rst:1664 +#: library/curses.rst:1666 msgid "scan line 1" msgstr "" -#: ../Doc/library/curses.rst:1666 +#: library/curses.rst:1668 msgid "``ACS_S3``" msgstr "``ACS_S3``" -#: ../Doc/library/curses.rst:1666 +#: library/curses.rst:1668 msgid "scan line 3" msgstr "" -#: ../Doc/library/curses.rst:1668 +#: library/curses.rst:1670 msgid "``ACS_S7``" msgstr "``ACS_S7``" -#: ../Doc/library/curses.rst:1668 +#: library/curses.rst:1670 msgid "scan line 7" msgstr "" -#: ../Doc/library/curses.rst:1670 +#: library/curses.rst:1672 msgid "``ACS_S9``" msgstr "``ACS_S9``" -#: ../Doc/library/curses.rst:1670 +#: library/curses.rst:1672 msgid "scan line 9" msgstr "" -#: ../Doc/library/curses.rst:1672 +#: library/curses.rst:1674 msgid "``ACS_SBBS``" msgstr "``ACS_SBBS``" -#: ../Doc/library/curses.rst:1672 +#: library/curses.rst:1674 msgid "alternate name for lower right corner" msgstr "" -#: ../Doc/library/curses.rst:1674 +#: library/curses.rst:1676 msgid "``ACS_SBSB``" msgstr "``ACS_SBSB``" -#: ../Doc/library/curses.rst:1674 +#: library/curses.rst:1676 msgid "alternate name for vertical line" msgstr "" -#: ../Doc/library/curses.rst:1676 +#: library/curses.rst:1678 msgid "``ACS_SBSS``" msgstr "``ACS_SBSS``" -#: ../Doc/library/curses.rst:1676 +#: library/curses.rst:1678 msgid "alternate name for right tee" msgstr "" -#: ../Doc/library/curses.rst:1678 +#: library/curses.rst:1680 msgid "``ACS_SSBB``" msgstr "``ACS_SSBB``" -#: ../Doc/library/curses.rst:1678 +#: library/curses.rst:1680 msgid "alternate name for lower left corner" msgstr "" -#: ../Doc/library/curses.rst:1680 +#: library/curses.rst:1682 msgid "``ACS_SSBS``" msgstr "``ACS_SSBS``" -#: ../Doc/library/curses.rst:1680 +#: library/curses.rst:1682 msgid "alternate name for bottom tee" msgstr "" -#: ../Doc/library/curses.rst:1682 +#: library/curses.rst:1684 msgid "``ACS_SSSB``" msgstr "``ACS_SSSB``" -#: ../Doc/library/curses.rst:1682 +#: library/curses.rst:1684 msgid "alternate name for left tee" msgstr "" -#: ../Doc/library/curses.rst:1684 +#: library/curses.rst:1686 msgid "``ACS_SSSS``" msgstr "``ACS_SSSS``" -#: ../Doc/library/curses.rst:1684 +#: library/curses.rst:1686 msgid "alternate name for crossover or big plus" msgstr "" -#: ../Doc/library/curses.rst:1686 +#: library/curses.rst:1688 msgid "``ACS_STERLING``" msgstr "``ACS_STERLING``" -#: ../Doc/library/curses.rst:1686 +#: library/curses.rst:1688 msgid "pound sterling" msgstr "" -#: ../Doc/library/curses.rst:1688 +#: library/curses.rst:1690 msgid "``ACS_TTEE``" msgstr "``ACS_TTEE``" -#: ../Doc/library/curses.rst:1688 +#: library/curses.rst:1690 msgid "top tee" msgstr "" -#: ../Doc/library/curses.rst:1690 +#: library/curses.rst:1692 msgid "``ACS_UARROW``" msgstr "``ACS_UARROW``" -#: ../Doc/library/curses.rst:1690 +#: library/curses.rst:1692 msgid "up arrow" msgstr "" -#: ../Doc/library/curses.rst:1692 +#: library/curses.rst:1694 msgid "``ACS_ULCORNER``" msgstr "``ACS_ULCORNER``" -#: ../Doc/library/curses.rst:1692 +#: library/curses.rst:1694 msgid "upper left corner" msgstr "" -#: ../Doc/library/curses.rst:1694 +#: library/curses.rst:1696 msgid "``ACS_URCORNER``" msgstr "``ACS_URCORNER``" -#: ../Doc/library/curses.rst:1694 +#: library/curses.rst:1696 msgid "upper right corner" msgstr "" -#: ../Doc/library/curses.rst:1696 +#: library/curses.rst:1698 msgid "``ACS_VLINE``" msgstr "``ACS_VLINE``" -#: ../Doc/library/curses.rst:1696 +#: library/curses.rst:1698 msgid "vertical line" msgstr "" -#: ../Doc/library/curses.rst:1699 +#: library/curses.rst:1701 msgid "The following table lists the predefined colors:" msgstr "" -#: ../Doc/library/curses.rst:1702 +#: library/curses.rst:1704 msgid "Color" msgstr "" -#: ../Doc/library/curses.rst:1704 +#: library/curses.rst:1706 msgid "``COLOR_BLACK``" msgstr "``COLOR_BLACK``" -#: ../Doc/library/curses.rst:1704 +#: library/curses.rst:1706 msgid "Black" msgstr "" -#: ../Doc/library/curses.rst:1706 +#: library/curses.rst:1708 msgid "``COLOR_BLUE``" msgstr "``COLOR_BLUE``" -#: ../Doc/library/curses.rst:1706 +#: library/curses.rst:1708 msgid "Blue" msgstr "" -#: ../Doc/library/curses.rst:1708 +#: library/curses.rst:1710 msgid "``COLOR_CYAN``" msgstr "``COLOR_CYAN``" -#: ../Doc/library/curses.rst:1708 +#: library/curses.rst:1710 msgid "Cyan (light greenish blue)" msgstr "" -#: ../Doc/library/curses.rst:1710 +#: library/curses.rst:1712 msgid "``COLOR_GREEN``" msgstr "``COLOR_GREEN``" -#: ../Doc/library/curses.rst:1710 +#: library/curses.rst:1712 msgid "Green" msgstr "" -#: ../Doc/library/curses.rst:1712 +#: library/curses.rst:1714 msgid "``COLOR_MAGENTA``" msgstr "``COLOR_MAGENTA``" -#: ../Doc/library/curses.rst:1712 +#: library/curses.rst:1714 msgid "Magenta (purplish red)" msgstr "" -#: ../Doc/library/curses.rst:1714 +#: library/curses.rst:1716 msgid "``COLOR_RED``" msgstr "``COLOR_RED``" -#: ../Doc/library/curses.rst:1714 +#: library/curses.rst:1716 msgid "Red" msgstr "" -#: ../Doc/library/curses.rst:1716 +#: library/curses.rst:1718 msgid "``COLOR_WHITE``" msgstr "``COLOR_WHITE``" -#: ../Doc/library/curses.rst:1716 +#: library/curses.rst:1718 msgid "White" msgstr "" -#: ../Doc/library/curses.rst:1718 +#: library/curses.rst:1720 msgid "``COLOR_YELLOW``" msgstr "``COLOR_YELLOW``" -#: ../Doc/library/curses.rst:1718 +#: library/curses.rst:1720 msgid "Yellow" msgstr "" -#: ../Doc/library/curses.rst:1723 +#: library/curses.rst:1725 msgid ":mod:`curses.textpad` --- Text input widget for curses programs" msgstr "" -#: ../Doc/library/curses.rst:1731 +#: library/curses.rst:1733 msgid "" "The :mod:`curses.textpad` module provides a :class:`Textbox` class that " "handles elementary text editing in a curses window, supporting a set of " @@ -2926,11 +2925,11 @@ msgid "" "purposes." msgstr "" -#: ../Doc/library/curses.rst:1737 +#: library/curses.rst:1739 msgid "The module :mod:`curses.textpad` defines the following function:" msgstr "" -#: ../Doc/library/curses.rst:1742 +#: library/curses.rst:1744 msgid "" "Draw a rectangle. The first argument must be a window object; the remaining " "arguments are coordinates relative to that window. The second and third " @@ -2942,15 +2941,15 @@ msgid "" "will be drawn with ASCII dashes, vertical bars, and plus signs." msgstr "" -#: ../Doc/library/curses.rst:1755 +#: library/curses.rst:1757 msgid "Textbox objects" msgstr "" -#: ../Doc/library/curses.rst:1757 +#: library/curses.rst:1759 msgid "You can instantiate a :class:`Textbox` object as follows:" msgstr "" -#: ../Doc/library/curses.rst:1762 +#: library/curses.rst:1764 msgid "" "Return a textbox widget object. The *win* argument should be a curses :ref:" "`window ` object in which the textbox is to be " @@ -2959,11 +2958,13 @@ msgid "" "instance's :attr:`stripspaces` flag is initially on." msgstr "" -#: ../Doc/library/curses.rst:1768 +#: library/curses.rst:1770 +#, fuzzy msgid ":class:`Textbox` objects have the following methods:" msgstr "" +"Les objets de la classe :class:`TestLoader` ont les attributs suivants :" -#: ../Doc/library/curses.rst:1773 +#: library/curses.rst:1775 msgid "" "This is the entry point you will normally use. It accepts editing " "keystrokes until one of the termination keystrokes is entered. If " @@ -2974,167 +2975,167 @@ msgid "" "`stripspaces` attribute." msgstr "" -#: ../Doc/library/curses.rst:1784 +#: library/curses.rst:1786 msgid "" "Process a single command keystroke. Here are the supported special " "keystrokes:" msgstr "" -#: ../Doc/library/curses.rst:1788 ../Doc/library/curses.rst:1826 +#: library/curses.rst:1828 msgid "Keystroke" msgstr "" -#: ../Doc/library/curses.rst:1788 +#: library/curses.rst:1790 msgid "Action" -msgstr "" +msgstr "Action" -#: ../Doc/library/curses.rst:1790 +#: library/curses.rst:1792 msgid ":kbd:`Control-A`" msgstr ":kbd:`Control-A`" -#: ../Doc/library/curses.rst:1790 +#: library/curses.rst:1792 msgid "Go to left edge of window." msgstr "" -#: ../Doc/library/curses.rst:1792 ../Doc/library/curses.rst:1828 +#: library/curses.rst:1830 msgid ":kbd:`Control-B`" msgstr ":kbd:`Control-B`" -#: ../Doc/library/curses.rst:1792 +#: library/curses.rst:1794 msgid "Cursor left, wrapping to previous line if appropriate." msgstr "" -#: ../Doc/library/curses.rst:1795 +#: library/curses.rst:1797 msgid ":kbd:`Control-D`" msgstr ":kbd:`Control-D`" -#: ../Doc/library/curses.rst:1795 +#: library/curses.rst:1797 msgid "Delete character under cursor." msgstr "" -#: ../Doc/library/curses.rst:1797 +#: library/curses.rst:1799 msgid ":kbd:`Control-E`" msgstr ":kbd:`Control-E`" -#: ../Doc/library/curses.rst:1797 +#: library/curses.rst:1799 msgid "Go to right edge (stripspaces off) or end of line (stripspaces on)." msgstr "" -#: ../Doc/library/curses.rst:1800 ../Doc/library/curses.rst:1830 +#: library/curses.rst:1832 msgid ":kbd:`Control-F`" msgstr ":kbd:`Control-F`" -#: ../Doc/library/curses.rst:1800 +#: library/curses.rst:1802 msgid "Cursor right, wrapping to next line when appropriate." msgstr "" -#: ../Doc/library/curses.rst:1803 +#: library/curses.rst:1805 msgid ":kbd:`Control-G`" msgstr ":kbd:`Control-G`" -#: ../Doc/library/curses.rst:1803 +#: library/curses.rst:1805 msgid "Terminate, returning the window contents." msgstr "" -#: ../Doc/library/curses.rst:1805 +#: library/curses.rst:1807 msgid ":kbd:`Control-H`" msgstr ":kbd:`Control-H`" -#: ../Doc/library/curses.rst:1805 +#: library/curses.rst:1807 msgid "Delete character backward." msgstr "" -#: ../Doc/library/curses.rst:1807 +#: library/curses.rst:1809 msgid ":kbd:`Control-J`" msgstr ":kbd:`Control-J`" -#: ../Doc/library/curses.rst:1807 +#: library/curses.rst:1809 msgid "Terminate if the window is 1 line, otherwise insert newline." msgstr "" -#: ../Doc/library/curses.rst:1810 +#: library/curses.rst:1812 msgid ":kbd:`Control-K`" msgstr ":kbd:`Control-K`" -#: ../Doc/library/curses.rst:1810 +#: library/curses.rst:1812 msgid "If line is blank, delete it, otherwise clear to end of line." msgstr "" -#: ../Doc/library/curses.rst:1813 +#: library/curses.rst:1815 msgid ":kbd:`Control-L`" msgstr ":kbd:`Control-L`" -#: ../Doc/library/curses.rst:1813 +#: library/curses.rst:1815 msgid "Refresh screen." msgstr "" -#: ../Doc/library/curses.rst:1815 ../Doc/library/curses.rst:1834 +#: library/curses.rst:1836 msgid ":kbd:`Control-N`" msgstr ":kbd:`Control-N`" -#: ../Doc/library/curses.rst:1815 +#: library/curses.rst:1817 msgid "Cursor down; move down one line." msgstr "" -#: ../Doc/library/curses.rst:1817 +#: library/curses.rst:1819 msgid ":kbd:`Control-O`" msgstr ":kbd:`Control-O`" -#: ../Doc/library/curses.rst:1817 +#: library/curses.rst:1819 msgid "Insert a blank line at cursor location." msgstr "" -#: ../Doc/library/curses.rst:1819 ../Doc/library/curses.rst:1832 +#: library/curses.rst:1834 msgid ":kbd:`Control-P`" msgstr ":kbd:`Control-P`" -#: ../Doc/library/curses.rst:1819 +#: library/curses.rst:1821 msgid "Cursor up; move up one line." msgstr "" -#: ../Doc/library/curses.rst:1822 +#: library/curses.rst:1824 msgid "" "Move operations do nothing if the cursor is at an edge where the movement is " "not possible. The following synonyms are supported where possible:" msgstr "" -#: ../Doc/library/curses.rst:1828 +#: library/curses.rst:1830 msgid ":const:`KEY_LEFT`" msgstr ":const:`KEY_LEFT`" -#: ../Doc/library/curses.rst:1830 +#: library/curses.rst:1832 msgid ":const:`KEY_RIGHT`" msgstr ":const:`KEY_RIGHT`" -#: ../Doc/library/curses.rst:1832 +#: library/curses.rst:1834 msgid ":const:`KEY_UP`" msgstr ":const:`KEY_UP`" -#: ../Doc/library/curses.rst:1834 +#: library/curses.rst:1836 msgid ":const:`KEY_DOWN`" msgstr ":const:`KEY_DOWN`" -#: ../Doc/library/curses.rst:1836 +#: library/curses.rst:1838 msgid ":const:`KEY_BACKSPACE`" msgstr ":const:`KEY_BACKSPACE`" -#: ../Doc/library/curses.rst:1836 +#: library/curses.rst:1838 msgid ":kbd:`Control-h`" msgstr ":kbd:`Control-h`" -#: ../Doc/library/curses.rst:1839 +#: library/curses.rst:1841 msgid "" "All other keystrokes are treated as a command to insert the given character " "and move right (with line wrapping)." msgstr "" -#: ../Doc/library/curses.rst:1845 +#: library/curses.rst:1847 msgid "" "Return the window contents as a string; whether blanks in the window are " "included is affected by the :attr:`stripspaces` member." msgstr "" -#: ../Doc/library/curses.rst:1851 +#: library/curses.rst:1853 msgid "" "This attribute is a flag which controls the interpretation of blanks in the " "window. When it is on, trailing blanks on each line are ignored; any cursor " diff --git a/library/dataclasses.po b/library/dataclasses.po index 4b53f355ef..84d9d844ac 100644 --- a/library/dataclasses.po +++ b/library/dataclasses.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-15 18:54+0100\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2018-12-24 14:53+0100\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -15,15 +15,15 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.1.1\n" -#: ../Doc/library/dataclasses.rst:2 +#: library/dataclasses.rst:2 msgid ":mod:`dataclasses` --- Data Classes" msgstr ":mod:`dataclasses` — Classes de Données" -#: ../Doc/library/dataclasses.rst:10 +#: library/dataclasses.rst:10 msgid "**Source code:** :source:`Lib/dataclasses.py`" msgstr "**Code source :** :source:`Lib/dataclasses.py`" -#: ../Doc/library/dataclasses.rst:14 +#: library/dataclasses.rst:14 msgid "" "This module provides a decorator and functions for automatically adding " "generated :term:`special method`\\s such as :meth:`__init__` and :meth:" @@ -35,20 +35,20 @@ msgstr "" "`__init__` et :meth:`__repr__` dans les *Classes de Données* définies par " "l’utilisateur. Ces classes ont été décrites dans la :pep:`557`." -#: ../Doc/library/dataclasses.rst:19 +#: library/dataclasses.rst:19 msgid "" "The member variables to use in these generated methods are defined using :" "pep:`526` type annotations. For example this code::" msgstr "" "Les variables membres à utiliser dans ces méthodes générées sont définies en " -"utilisant les annotations de type :pep:`526`. Par exemple, ce code ::" +"utilisant les annotations de type :pep:`526`. Par exemple, ce code ::" -#: ../Doc/library/dataclasses.rst:32 +#: library/dataclasses.rst:34 msgid "Will add, among other things, a :meth:`__init__` that looks like::" msgstr "" -"Ajoute, entre autres choses, une méthode :meth:`__init__` qui ressemble à ::" +"Ajoute, entre autres choses, une méthode :meth:`__init__` qui ressemble à ::" -#: ../Doc/library/dataclasses.rst:39 +#: library/dataclasses.rst:41 msgid "" "Note that this method is automatically added to the class: it is not " "directly specified in the ``InventoryItem`` definition shown above." @@ -57,11 +57,11 @@ msgstr "" "la classe : elle n’est pas à écrire dans la définition de ``InventoryItem`` " "ci-dessus." -#: ../Doc/library/dataclasses.rst:45 +#: library/dataclasses.rst:47 msgid "Module-level decorators, classes, and functions" msgstr "Décorateurs, classes et fonctions au niveau du module" -#: ../Doc/library/dataclasses.rst:49 +#: library/dataclasses.rst:51 msgid "" "This function is a :term:`decorator` that is used to add generated :term:" "`special method`\\s to classes, as described below." @@ -70,20 +70,20 @@ msgstr "" "term:`méthodes spéciales ` générées aux classes, comme " "décrit ci-dessous." -#: ../Doc/library/dataclasses.rst:52 +#: library/dataclasses.rst:54 msgid "" "The :func:`dataclass` decorator examines the class to find ``field``\\s. A " "``field`` is defined as class variable that has a :term:`type annotation " "`. With two exceptions described below, nothing in :" "func:`dataclass` examines the type specified in the variable annotation." msgstr "" -"Le décorateur :func:`dataclass` examine la classe pour trouver des ``champs``" -"\\s. Un ``champ`` est défini comme une variable de classe qui possède une :" -"term:`annotation de type `. À deux exceptions près " -"décrites plus bas, il n’y a rien dans :func:`dataclass` qui examine le type " -"spécifié dans l’annotation de variable." +"Le décorateur :func:`dataclass` examine la classe pour trouver des " +"``champs``\\s. Un ``champ`` est défini comme une variable de classe qui " +"possède une :term:`annotation de type `. À deux " +"exceptions près décrites plus bas, il n’y a rien dans :func:`dataclass` qui " +"examine le type spécifié dans l’annotation de variable." -#: ../Doc/library/dataclasses.rst:58 +#: library/dataclasses.rst:60 msgid "" "The order of the fields in all of the generated methods is the order in " "which they appear in the class definition." @@ -91,13 +91,13 @@ msgstr "" "L’ordre des paramètres des méthodes générées est celui d’apparition des " "champs dans la définition de la classe." -#: ../Doc/library/dataclasses.rst:61 +#: library/dataclasses.rst:63 #, fuzzy msgid "" "The :func:`dataclass` decorator will add various \"dunder\" methods to the " "class, described below. If any of the added methods already exist on the " -"class, a :exc:`TypeError` will be raised. The decorator returns the same " -"class that is called on: no new class is created." +"class, the behavior depends on the parameter, as documented below. The " +"decorator returns the same class that is called on; no new class is created." msgstr "" "Le décorateur :func:`dataclass` ajoute diverses méthodes « spéciales » à la " "classe, décrites ci-après. Si l’une des méthodes ajoutées existe déjà dans " @@ -105,7 +105,7 @@ msgstr "" "dessous. Le décorateur renvoie la classe sur laquelle il est appelé ; il n’y " "a pas de nouvelle classe créée." -#: ../Doc/library/dataclasses.rst:66 +#: library/dataclasses.rst:69 msgid "" "If :func:`dataclass` is used just as a simple decorator with no parameters, " "it acts as if it has the default values documented in this signature. That " @@ -114,26 +114,26 @@ msgstr "" "Si :func:`dataclass` est utilisé comme simple décorateur sans paramètres, il " "se comporte comme si on l’avait appelé avec les valeurs par défaut présentes " "en signature. Ainsi, les trois usages suivants de :func:`dataclass` sont " -"équivalents ::" +"équivalents ::" -#: ../Doc/library/dataclasses.rst:83 +#: library/dataclasses.rst:86 msgid "The parameters to :func:`dataclass` are:" msgstr "Les paramètres de :func:`dataclass` sont :" -#: ../Doc/library/dataclasses.rst:85 +#: library/dataclasses.rst:88 msgid "" "``init``: If true (the default), a :meth:`__init__` method will be generated." msgstr "" "``init``: Si vrai (par défaut), une méthode :meth:`__init__` est générée." -#: ../Doc/library/dataclasses.rst:88 +#: library/dataclasses.rst:91 msgid "" "If the class already defines :meth:`__init__`, this parameter is ignored." msgstr "" "Si la classe définit déjà une méthode :meth:`__init__`, ce paramètre est " "ignoré." -#: ../Doc/library/dataclasses.rst:91 +#: library/dataclasses.rst:94 msgid "" "``repr``: If true (the default), a :meth:`__repr__` method will be " "generated. The generated repr string will have the class name and the name " @@ -149,14 +149,14 @@ msgstr "" "représentation ne sont pas inclus. Par exemple : " "``InventoryItem(name='widget', unit_price=3.0, quantity_on_hand=10)``." -#: ../Doc/library/dataclasses.rst:98 +#: library/dataclasses.rst:101 msgid "" "If the class already defines :meth:`__repr__`, this parameter is ignored." msgstr "" "Si la classe définit déjà une méthode :meth:`__repr__`, ce paramètre est " "ignoré." -#: ../Doc/library/dataclasses.rst:101 +#: library/dataclasses.rst:104 msgid "" "``eq``: If true (the default), an :meth:`__eq__` method will be generated. " "This method compares the class as if it were a tuple of its fields, in " @@ -167,13 +167,13 @@ msgstr "" "d’un tuple de ses champs, dans l’ordre. Les deux instances dans la " "comparaison doivent être de même type." -#: ../Doc/library/dataclasses.rst:106 +#: library/dataclasses.rst:109 msgid "If the class already defines :meth:`__eq__`, this parameter is ignored." msgstr "" "Si la classe définit déjà une méthode :meth:`__eq__`, ce paramètre est " "ignoré." -#: ../Doc/library/dataclasses.rst:109 +#: library/dataclasses.rst:112 msgid "" "``order``: If true (the default is ``False``), :meth:`__lt__`, :meth:" "`__le__`, :meth:`__gt__`, and :meth:`__ge__` methods will be generated. " @@ -188,17 +188,17 @@ msgstr "" "comparaison doit être de même type. Si ``order`` est vrai mais que ``eq`` " "est faux, une :exc:`ValueError` est levée." -#: ../Doc/library/dataclasses.rst:116 +#: library/dataclasses.rst:119 #, fuzzy msgid "" "If the class already defines any of :meth:`__lt__`, :meth:`__le__`, :meth:" -"`__gt__`, or :meth:`__ge__`, then :exc:`ValueError` is raised." +"`__gt__`, or :meth:`__ge__`, then :exc:`TypeError` is raised." msgstr "" "Si la classe définit déjà l’une des méthodes :meth:`__lt__`, :meth:" "`__le__`, :meth:`__gt__`, ou :meth:`__ge__`, alors une :exc:`TypeError` est " "levée." -#: ../Doc/library/dataclasses.rst:120 +#: library/dataclasses.rst:123 msgid "" "``unsafe_hash``: If ``False`` (the default), a :meth:`__hash__` method is " "generated according to how ``eq`` and ``frozen`` are set." @@ -206,7 +206,7 @@ msgstr "" "``unsafe_hash``: Si ``False`` (par défaut), une méthode :meth:`__hash__` est " "générée et son comportement dépend des valeurs de ``eq`` et ``frozen``." -#: ../Doc/library/dataclasses.rst:123 +#: library/dataclasses.rst:126 msgid "" ":meth:`__hash__` is used by built-in :meth:`hash()`, and when objects are " "added to hashed collections such as dictionaries and sets. Having a :meth:" @@ -223,7 +223,7 @@ msgstr "" "et du comportement de la méthode :meth:`__eq__`, et des valeurs des options " "``eq`` et ``frozen`` dans l’appel au décorateur :func:`dataclass`." -#: ../Doc/library/dataclasses.rst:130 +#: library/dataclasses.rst:133 msgid "" "By default, :func:`dataclass` will not implicitly add a :meth:`__hash__` " "method unless it is safe to do so. Neither will it add or change an " @@ -238,9 +238,9 @@ msgstr "" "signification particulière en Python, comme précisé dans la documentation " "de :meth:`__hash__`." -#: ../Doc/library/dataclasses.rst:136 +#: library/dataclasses.rst:139 msgid "" -"If :meth:`__hash__` is not explicit defined, or if it is set to ``None``, " +"If :meth:`__hash__` is not explicitly defined, or if it is set to ``None``, " "then :func:`dataclass` *may* add an implicit :meth:`__hash__` method. " "Although not recommended, you can force :func:`dataclass` to create a :meth:" "`__hash__` method with ``unsafe_hash=True``. This might be the case if your " @@ -249,13 +249,14 @@ msgid "" msgstr "" "Si :meth:`__hash__` n’est pas défini explicitement, ou s’il a pour valeur " "``None``, alors :func:`dataclass` *peut* ajouter une méthode :meth:" -"`__hash__` implicite. Bien que ce ne soit pas recommandé,, vous pouvez " +"`__hash__` implicite. Bien que ce ne soit pas recommandé, vous pouvez " "forcer :func:`dataclass` à créer une méthode :meth:`__hash__` en utilisant " "``unsafe_hash=True``. Cela pourrait être nécessaire si votre classe est " -"logiquement immuable mais qu’une mutation est tout de même possible. C’est " -"un cas très particulier qui doit être considéré avec la plus grande prudence." +"logiquement immuable mais qu’une mutation est tout de même possible. Il " +"s'agit là d'un cas particulier qui doit être considéré avec la plus grande " +"prudence." -#: ../Doc/library/dataclasses.rst:143 +#: library/dataclasses.rst:146 msgid "" "Here are the rules governing implicit creation of a :meth:`__hash__` " "method. Note that you cannot both have an explicit :meth:`__hash__` method " @@ -267,7 +268,7 @@ msgstr "" "méthode :meth:`__hash__` explicite dans votre *dataclass* et définir " "``unsafe_hash=True``; cela lèvera une :exc:`TypeError`." -#: ../Doc/library/dataclasses.rst:148 +#: library/dataclasses.rst:151 msgid "" "If ``eq`` and ``frozen`` are both true, by default :func:`dataclass` will " "generate a :meth:`__hash__` method for you. If ``eq`` is true and " @@ -279,44 +280,43 @@ msgid "" msgstr "" "Si ``eq`` et ``frozen`` sont tous deux vrais, :func:`dataclass` génère par " "défaut une méthode :meth:`__hash__` pour vous. Si ``eq`` est vrai mais que " -"``frozen`` est faux, :meth:`__hash__` est prends la valeur ``None``, " -"marquant la classe comme non-hachable (et c’est le cas, puisqu’elle est " -"modifiable). Si ``eq`` est faux, la méthode :meth:`__hash__` est laissée " -"intacte, ce qui veut dire que la méthode :meth:`__hash__` de la classe " -"parente sera utilisée (si la classe parente est :class:`object`, le " -"comportement est un hachage basé sur les id)." - -#: ../Doc/library/dataclasses.rst:156 -#, fuzzy +"``frozen`` est faux, :meth:`__hash__` prend la valeur ``None``, marquant la " +"classe comme non-hachable (et c’est le cas, puisqu’elle est modifiable). Si " +"``eq`` est faux, la méthode :meth:`__hash__` est laissée intacte, ce qui " +"veut dire que la méthode :meth:`__hash__` de la classe parente sera utilisée " +"(si la classe parente est :class:`object`, le comportement est un hachage " +"basé sur les id)." + +#: library/dataclasses.rst:159 msgid "" "``frozen``: If true (the default is ``False``), assigning to fields will " "generate an exception. This emulates read-only frozen instances. If :meth:" "`__setattr__` or :meth:`__delattr__` is defined in the class, then :exc:" "`TypeError` is raised. See the discussion below." msgstr "" -"``frozen``: Si vrai (faux par défaut), assigner une valeur à un champ lèvera " +"*frozen* : si vrai (faux par défaut), assigner une valeur à un champ lève " "une exception. Cela simule le comportement des instances figées en lecture " "seule. Si la méthode :meth:`__setattr__` ou :meth:`__delattr__` est définie " "sur la classe, alors une :exc:`TypeError` est levée. Voir la discussion ci-" "dessous." -#: ../Doc/library/dataclasses.rst:161 +#: library/dataclasses.rst:164 msgid "" "``field``\\s may optionally specify a default value, using normal Python " "syntax::" msgstr "" "Les ``field``\\s peuvent éventuellement spécifier une valeur par défaut, en " -"utilisant la syntaxe Python normale ::" +"utilisant la syntaxe Python normale ::" -#: ../Doc/library/dataclasses.rst:169 +#: library/dataclasses.rst:172 msgid "" "In this example, both ``a`` and ``b`` will be included in the added :meth:" "`__init__` method, which will be defined as::" msgstr "" "Dans cet exemple, ``a`` et ``b`` sont tous deux inclus dans la signature de " -"la méthode générée :meth:`__init__`, qui est définie comme suit ::" +"la méthode générée :meth:`__init__`, qui est définie comme suit ::" -#: ../Doc/library/dataclasses.rst:174 +#: library/dataclasses.rst:177 msgid "" ":exc:`TypeError` will be raised if a field without a default value follows a " "field with a default value. This is true either when this occurs in a " @@ -327,7 +327,7 @@ msgstr "" "une seule classe, mais également si c’est le résultat d’un héritage de " "classes." -#: ../Doc/library/dataclasses.rst:180 +#: library/dataclasses.rst:183 msgid "" "For common and simple use cases, no other functionality is required. There " "are, however, some dataclass features that require additional per-field " @@ -335,8 +335,13 @@ msgid "" "replace the default field value with a call to the provided :func:`field` " "function. For example::" msgstr "" +"Dans les cas les plus simples et courants, ce qui a été décrit jusqu'ici " +"suffit. Cependant, les classes de données possèdent des fonctionnalités " +"supplémentaires fondées sur des métadonnées propres à chaque champ. Pour " +"remplir ces métadonnées, il suffit de mettre un appel à la fonction :func:" +"`field` à la place de la valeur par défaut, comme dans cet exemple :" -#: ../Doc/library/dataclasses.rst:193 +#: library/dataclasses.rst:196 msgid "" "As shown above, the ``MISSING`` value is a sentinel object used to detect if " "the ``default`` and ``default_factory`` parameters are provided. This " @@ -344,18 +349,21 @@ msgid "" "should directly use the ``MISSING`` value." msgstr "" -#: ../Doc/library/dataclasses.rst:199 +#: library/dataclasses.rst:202 msgid "The parameters to :func:`field` are:" -msgstr "" +msgstr "Les paramètres de :func:`field` sont :" -#: ../Doc/library/dataclasses.rst:201 +#: library/dataclasses.rst:204 msgid "" "``default``: If provided, this will be the default value for this field. " "This is needed because the :meth:`field` call itself replaces the normal " "position of the default value." msgstr "" +"*default* : s'il est fourni, il devient la valeur par défaut du champ. " +"L'appel à :meth:`field` est mis à la place normale de la valeur par défaut, " +"d'où la nécessité de ce paramètre." -#: ../Doc/library/dataclasses.rst:205 +#: library/dataclasses.rst:208 msgid "" "``default_factory``: If provided, it must be a zero-argument callable that " "will be called when a default value is needed for this field. Among other " @@ -363,26 +371,38 @@ msgid "" "discussed below. It is an error to specify both ``default`` and " "``default_factory``." msgstr "" +"*default_factory* : s'il est fourni, ce doit être un objet appelable sans " +"argument. Il est alors appelé à chaque fois qu'il faut une valeur par défaut " +"pour le champ. Ceci permet, entre autres choses, de définir des champs dont " +"les valeurs par défaut sont muables. Une erreur se produit si *default* et " +"*default_factory* sont donnés tous les deux." -#: ../Doc/library/dataclasses.rst:211 +#: library/dataclasses.rst:214 msgid "" "``init``: If true (the default), this field is included as a parameter to " "the generated :meth:`__init__` method." msgstr "" +"*init* : si vrai (par défaut), la méthode :meth:`__init__` générée possède " +"un paramètre correspondant à ce champ." -#: ../Doc/library/dataclasses.rst:214 +#: library/dataclasses.rst:217 msgid "" "``repr``: If true (the default), this field is included in the string " "returned by the generated :meth:`__repr__` method." msgstr "" +"*repr* : si vrai (par défaut), le champ est inclus dans les chaînes " +"construites par la méthode :meth:`__repr__` générée." -#: ../Doc/library/dataclasses.rst:217 +#: library/dataclasses.rst:220 msgid "" "``compare``: If true (the default), this field is included in the generated " "equality and comparison methods (:meth:`__eq__`, :meth:`__gt__`, et al.)." msgstr "" +"*compare* : si vrai (par défaut), le champ est considéré dans les " +"comparaisons d'égalité et d'inégalité dans les méthodes générées :meth:" +"`__eq__`, :meth:`__gt__`, etc." -#: ../Doc/library/dataclasses.rst:221 +#: library/dataclasses.rst:224 msgid "" "``hash``: This can be a bool or ``None``. If true, this field is included " "in the generated :meth:`__hash__` method. If ``None`` (the default), use " @@ -390,8 +410,14 @@ msgid "" "field should be considered in the hash if it's used for comparisons. " "Setting this value to anything other than ``None`` is discouraged." msgstr "" +"*hash* : ce paramètre est un booléen ou ``None``. La valeur ``False`` force " +"la prise en compte du champ dans la méthode :meth:`__hash__` générée, alors " +"que ``False`` force son exclusion. ``None`` revient à mettre la même valeur " +"que *compare*, ce qui est en général correct : il faut inclure dans le " +"hachage les champs employés pour les comparaisons. Il est déconseillé de " +"mettre ce paramètre à autre chose que ``None``." -#: ../Doc/library/dataclasses.rst:228 +#: library/dataclasses.rst:231 msgid "" "One possible reason to set ``hash=False`` but ``compare=True`` would be if a " "field is expensive to compute a hash value for, that field is needed for " @@ -399,8 +425,14 @@ msgid "" "hash value. Even if a field is excluded from the hash, it will still be " "used for comparisons." msgstr "" +"Cependant, une raison légitime de mettre *hash* à ``False`` alors que " +"*compare* est à ``True`` est la concourance de trois facteurs : le champ est " +"coûteux à hacher ; il est nécessaire pour les comparaisons d'égalité ; et il " +"y a déjà d'autres champs qui participent au hachage des instances. À ce " +"moment, on peut alors se passer du champ dans le hachage tout en le faisant " +"participer aux comparaisons." -#: ../Doc/library/dataclasses.rst:234 +#: library/dataclasses.rst:237 msgid "" "``metadata``: This can be a mapping or None. None is treated as an empty " "dict. This value is wrapped in :func:`~types.MappingProxyType` to make it " @@ -409,8 +441,12 @@ msgid "" "Multiple third-parties can each have their own key, to use as a namespace in " "the metadata." msgstr "" +"*metadata* : ce paramètre est un tableau associatif (*mapping* en anglais). " +"La valeur par défaut de ``None`` est prise comme un dictionnaire vide. Le " +"tableau associatif devient accessible sur l'objet :class:`Field`, sous la " +"forme d'un :func:`~types.MappingProxyType` afin qu'il soit en lecture seule." -#: ../Doc/library/dataclasses.rst:242 +#: library/dataclasses.rst:245 msgid "" "If the default value of a field is specified by a call to :func:`field()`, " "then the class attribute for this field will be replaced by the specified " @@ -420,51 +456,73 @@ msgid "" "fields, just as if the default value itself were specified. For example, " "after::" msgstr "" +"Si la valeur par défaut d'un champ est donnée dans un appel à :func:`field` " +"(et pas directement), l'attribut correspondant de la classe est remplacé par " +"cette valeur. Si le paramètre *default* n'est pas passé, l'attribut est " +"simplement supprimé. De cette manière, après le passage du décorateur :func:" +"`dataclass`, les attributs de la classe contiennent les valeurs par défaut " +"des champs exactement comme si elles avaient été définies directement. Par " +"exemple :" -#: ../Doc/library/dataclasses.rst:258 +#: library/dataclasses.rst:261 msgid "" "The class attribute ``C.z`` will be ``10``, the class attribute ``C.t`` will " "be ``20``, and the class attributes ``C.x`` and ``C.y`` will not be set." msgstr "" +"Après l'exécution de ce code, l'attribut de classe ``C.z`` vaut ``10`` et " +"l'attribut ``C.t`` vaut ``20``, alors que les attributs ``C.x`` et ``C.y`` " +"n'existent pas." -#: ../Doc/library/dataclasses.rst:264 +#: library/dataclasses.rst:267 msgid "" ":class:`Field` objects describe each defined field. These objects are " "created internally, and are returned by the :func:`fields` module-level " "method (see below). Users should never instantiate a :class:`Field` object " "directly. Its documented attributes are:" msgstr "" +"Les objets :class:`Field` contiennent des informations sur les champs. Ils " +"sont créés en interne, et on y accède à l'aide de la méthode au niveau du " +"module :func:`fields` (voir plus bas). Les utilisateurs ne doivent jamais " +"instancier un objet :class:`Field` eux-mêmes. Les attributs documentés sont " +"les suivants :" -#: ../Doc/library/dataclasses.rst:269 +#: library/dataclasses.rst:272 msgid "``name``: The name of the field." -msgstr "" +msgstr "*name* : le nom du champ ;" -#: ../Doc/library/dataclasses.rst:271 +#: library/dataclasses.rst:274 msgid "``type``: The type of the field." -msgstr "" +msgstr "*type* : le type associé au champ par l'annotation ;" -#: ../Doc/library/dataclasses.rst:273 +#: library/dataclasses.rst:276 msgid "" "``default``, ``default_factory``, ``init``, ``repr``, ``hash``, ``compare``, " "and ``metadata`` have the identical meaning and values as they do in the :" "func:`field` declaration." msgstr "" -#: ../Doc/library/dataclasses.rst:277 +#: library/dataclasses.rst:280 msgid "" "Other attributes may exist, but they are private and must not be inspected " "or relied on." msgstr "" +"D'autres attributs peuvent exister, mais ils sont privés et ne sont pas " +"censés être inspectés. Le code ne doit jamais reposer sur eux." -#: ../Doc/library/dataclasses.rst:282 +#: library/dataclasses.rst:285 msgid "" "Returns a tuple of :class:`Field` objects that define the fields for this " "dataclass. Accepts either a dataclass, or an instance of a dataclass. " "Raises :exc:`TypeError` if not passed a dataclass or instance of one. Does " "not return pseudo-fields which are ``ClassVar`` or ``InitVar``." msgstr "" +"Renvoie un *n*-uplet d'objets :class:`Field` correspondant aux champs de " +"l'argument, à l'exclusion des pseudo-champs ``ClassVar`` ou ``InitVar``. " +"L'argument peut être soit une classe de données, soit une instance d'une " +"telle classe ; si ce n'est pas le cas, une exception :exc:`TypeError` est " +"levée." -#: ../Doc/library/dataclasses.rst:289 +#: library/dataclasses.rst:292 msgid "" "Converts the dataclass ``instance`` to a dict (by using the factory function " "``dict_factory``). Each dataclass is converted to a dict of its fields, as " @@ -472,22 +530,22 @@ msgid "" "into. For example::" msgstr "" -#: ../Doc/library/dataclasses.rst:309 ../Doc/library/dataclasses.rst:323 +#: library/dataclasses.rst:326 msgid "Raises :exc:`TypeError` if ``instance`` is not a dataclass instance." msgstr "" -#: ../Doc/library/dataclasses.rst:313 +#: library/dataclasses.rst:316 msgid "" "Converts the dataclass ``instance`` to a tuple (by using the factory " "function ``tuple_factory``). Each dataclass is converted to a tuple of its " "field values. dataclasses, dicts, lists, and tuples are recursed into." msgstr "" -#: ../Doc/library/dataclasses.rst:318 +#: library/dataclasses.rst:321 msgid "Continuing from the previous example::" -msgstr "" +msgstr "Pour continuer l'exemple précédent :" -#: ../Doc/library/dataclasses.rst:327 +#: library/dataclasses.rst:330 msgid "" "Creates a new dataclass with name ``cls_name``, fields as defined in " "``fields``, base classes as given in ``bases``, and initialized with a " @@ -499,19 +557,23 @@ msgid "" "`dataclass`." msgstr "" -#: ../Doc/library/dataclasses.rst:336 +#: library/dataclasses.rst:339 msgid "" "This function is not strictly required, because any Python mechanism for " "creating a new class with ``__annotations__`` can then apply the :func:" "`dataclass` function to convert that class to a dataclass. This function is " "provided as a convenience. For example::" msgstr "" +"Cette fonction est pratique mais pas absolument nécessaire, puisqu'il suffit " +"de créer par un moyen quelconque une classe avec l'attribut " +"``__annotation__`` et de lui appliquer la fonction :func:`dataclass`, qui la " +"convertit en une classe de données. Par exemple, ceci :" -#: ../Doc/library/dataclasses.rst:348 +#: library/dataclasses.rst:351 msgid "Is equivalent to::" -msgstr "" +msgstr "est équivalent à ::" -#: ../Doc/library/dataclasses.rst:361 +#: library/dataclasses.rst:364 msgid "" "Creates a new object of the same type of ``instance``, replacing fields with " "values from ``changes``. If ``instance`` is not a Data Class, raises :exc:" @@ -519,27 +581,35 @@ msgid "" "`TypeError`." msgstr "" -#: ../Doc/library/dataclasses.rst:366 +#: library/dataclasses.rst:369 msgid "" "The newly returned object is created by calling the :meth:`__init__` method " "of the dataclass. This ensures that :meth:`__post_init__`, if present, is " "also called." msgstr "" +"L'objet renvoyé est créé à l'aide de la méthode :meth:`__init__` de la " +"classe de données, ce qui garantit que :meth:`__post_init__` est appelée (si " +"elle existe)." -#: ../Doc/library/dataclasses.rst:370 +#: library/dataclasses.rst:373 msgid "" "Init-only variables without default values, if any exist, must be specified " "on the call to :func:`replace` so that they can be passed to :meth:" "`__init__` and :meth:`__post_init__`." msgstr "" +"Si un champ d'initialisation (voir plus bas) n'a pas de valeur par défaut, " +"il faut l'inclure dans l'appel à :func:`replace` afin qu'il soit passé à :" +"meth:`__init__` et :meth:`__post_init__`." -#: ../Doc/library/dataclasses.rst:374 +#: library/dataclasses.rst:377 msgid "" "It is an error for ``changes`` to contain any fields that are defined as " "having ``init=False``. A :exc:`ValueError` will be raised in this case." msgstr "" +"Si une clé de *changes* correspond à un champ défini avec ``init=False``, :" +"exc:`ValueError` est levée." -#: ../Doc/library/dataclasses.rst:378 +#: library/dataclasses.rst:381 msgid "" "Be forewarned about how ``init=False`` fields work during a call to :func:" "`replace`. They are not copied from the source object, but rather are " @@ -549,25 +619,37 @@ msgid "" "perhaps a custom ``replace()`` (or similarly named) method which handles " "instance copying." msgstr "" +"Prenez garde aux champs définis avec ``init=False`` dans un appel à :func:" +"`replace`. Ils ne sont pas copiés automatiquement de l'instance source. " +"C'est le rôle de :meth:`__post_init__` de les initialiser — ou pas. Les " +"champs avec ``init=False`` doivent rarement être utilisés et seulement à bon " +"escient. Si vous en avez, il peut être sage de traiter la copie des " +"instances par des constructeurs de classe alternatifs, ou bien une méthode " +"personnalisée ``replace()`` (ou un nom similaire)." -#: ../Doc/library/dataclasses.rst:389 +#: library/dataclasses.rst:392 msgid "" "Return ``True`` if its parameter is a dataclass or an instance of one, " "otherwise return ``False``." msgstr "" +"Renvoie ``True`` si l'argument est soit une classe de données, soit une " +"instance d'une telle classe. Sinon, renvoie ``False``." -#: ../Doc/library/dataclasses.rst:392 +#: library/dataclasses.rst:395 msgid "" "If you need to know if a class is an instance of a dataclass (and not a " "dataclass itself), then add a further check for ``not isinstance(obj, " "type)``::" msgstr "" +"Pour vérifier qu'un objet *obj* est une instance d'une classe de données, et " +"non pas lui-même une classe de données, ajoutez le test ``not " +"isinstance(obj, type)`` ::" -#: ../Doc/library/dataclasses.rst:400 +#: library/dataclasses.rst:403 msgid "Post-init processing" -msgstr "" +msgstr "Post-initialisation" -#: ../Doc/library/dataclasses.rst:402 +#: library/dataclasses.rst:405 msgid "" "The generated :meth:`__init__` code will call a method named :meth:" "`__post_init__`, if :meth:`__post_init__` is defined on the class. It will " @@ -576,25 +658,38 @@ msgid "" "order they were defined in the class. If no :meth:`__init__` method is " "generated, then :meth:`__post_init__` will not automatically be called." msgstr "" +"Après avoir initialisé l'objet, la méthode :meth:`__init__` générée appelle " +"la méthode :meth:`__post_init__`, si elle est définie. :meth:`__post_init__` " +"est habituellement appelée avec un simple ``self.__post_init__()``. " +"Cependant, si la classe comporte des champs d'initialisation (voir plus " +"bas), leurs valeurs sont aussi passées à :meth:`__post_init__` telles " +"qu'elles ont été fournies à :meth:`__init__`. Si la classe est créée avec " +"``init=False``, :meth:`__post_init__` n'est jamais appelée automatiquement." -#: ../Doc/library/dataclasses.rst:410 +#: library/dataclasses.rst:413 msgid "" "Among other uses, this allows for initializing field values that depend on " "one or more other fields. For example::" msgstr "" +"Cette méthode permet, entre autres, d'initialiser des champs qui dépendent " +"d'autres champs. Par exemple :" -#: ../Doc/library/dataclasses.rst:422 +#: library/dataclasses.rst:425 msgid "" "See the section below on init-only variables for ways to pass parameters to :" "meth:`__post_init__`. Also see the warning about how :func:`replace` " "handles ``init=False`` fields." msgstr "" +"Voir la section plus bas à propos des variables d'initialisation pour les " +"moyens de passer des paramètres à :meth:`__post_init__`. Voir également " +"l'avertissement sur le traitement par :func:`replace` des champs définis " +"avec ``init=False``." -#: ../Doc/library/dataclasses.rst:427 +#: library/dataclasses.rst:430 msgid "Class variables" -msgstr "" +msgstr "Variables de classe" -#: ../Doc/library/dataclasses.rst:429 +#: library/dataclasses.rst:432 msgid "" "One of two places where :func:`dataclass` actually inspects the type of a " "field is to determine if a field is a class variable as defined in :pep:" @@ -604,11 +699,11 @@ msgid "" "pseudo-fields are not returned by the module-level :func:`fields` function." msgstr "" -#: ../Doc/library/dataclasses.rst:438 +#: library/dataclasses.rst:441 msgid "Init-only variables" -msgstr "" +msgstr "Variables d'initialisation" -#: ../Doc/library/dataclasses.rst:440 +#: library/dataclasses.rst:443 msgid "" "The other place where :func:`dataclass` inspects a type annotation is to " "determine if a field is an init-only variable. It does this by seeing if " @@ -620,23 +715,27 @@ msgid "" "`__post_init__` method. They are not otherwise used by dataclasses." msgstr "" -#: ../Doc/library/dataclasses.rst:450 +#: library/dataclasses.rst:453 msgid "" "For example, suppose a field will be initialized from a database, if a value " "is not provided when creating the class::" msgstr "" +"On peut par exemple imaginer un champ initialisé à partir d'une base de " +"données s'il n'a pas reçu de valeur explicite :" -#: ../Doc/library/dataclasses.rst:465 +#: library/dataclasses.rst:468 msgid "" "In this case, :func:`fields` will return :class:`Field` objects for ``i`` " "and ``j``, but not for ``database``." msgstr "" +"Ici, :func:`fields` renvoie des objets :class:`Field` correspondant à ``i`` " +"et à ``j``, mais pas à ``database``." -#: ../Doc/library/dataclasses.rst:469 +#: library/dataclasses.rst:472 msgid "Frozen instances" -msgstr "" +msgstr "Instances figées" -#: ../Doc/library/dataclasses.rst:471 +#: library/dataclasses.rst:474 msgid "" "It is not possible to create truly immutable Python objects. However, by " "passing ``frozen=True`` to the :meth:`dataclass` decorator you can emulate " @@ -644,19 +743,27 @@ msgid "" "meth:`__delattr__` methods to the class. These methods will raise a :exc:" "`FrozenInstanceError` when invoked." msgstr "" +"Bien qu'il ne soit pas possible de créer des objets Python strictement " +"immuables, on peut rendre les instances d'une classe de données quasi " +"immuables en passant ``frozen=True`` au décorateur :meth:`dataclass`, ce qui " +"lui fait générer des méthodes :meth:`__setattr__` et :meth:`__delattr__`. " +"Celles-ci lèvent systématiquement l'exception :exc:`FrozenInstanceError`." -#: ../Doc/library/dataclasses.rst:477 +#: library/dataclasses.rst:480 msgid "" "There is a tiny performance penalty when using ``frozen=True``: :meth:" "`__init__` cannot use simple assignment to initialize fields, and must use :" "meth:`object.__setattr__`." msgstr "" +"Les performances sont légèrement moins bonnes avec ``frozen=True`` car :meth:" +"`__init__` doit passer par :meth:`object.__setattr__` au lieu de simples " +"affectations pour initialiser les champs." -#: ../Doc/library/dataclasses.rst:482 +#: library/dataclasses.rst:485 msgid "Inheritance" msgstr "Héritage" -#: ../Doc/library/dataclasses.rst:484 +#: library/dataclasses.rst:487 msgid "" "When the dataclass is being created by the :meth:`dataclass` decorator, it " "looks through all of the class's base classes in reverse MRO (that is, " @@ -667,61 +774,82 @@ msgid "" "ordered mapping of fields. Because the fields are in insertion order, " "derived classes override base classes. An example::" msgstr "" +"Au moment de la création d'une classe de données, le décorateur :meth:" +"`dataclass` parcourt toutes les classes mères dans l'ordre inverse de " +"résolution des méthodes (donc en commençant par :class:`object`). À chaque " +"fois qu'une classe de données est rencontrée, ses champs sont insérés dans " +"un tableau associatif ordonné. Pour finir, les champs de la classe elle-même " +"sont rajoutés. Toutes les méthodes générées utilisent en interne ce même " +"tableau associatif. Puisqu'il est ordonné, les champs des classes filles " +"écrasent ceux des classes mères. Voici un exemple :" -#: ../Doc/library/dataclasses.rst:504 +#: library/dataclasses.rst:507 msgid "" "The final list of fields is, in order, ``x``, ``y``, ``z``. The final type " "of ``x`` is ``int``, as specified in class ``C``." msgstr "" +"La liste finale des champs contient, dans l'ordre, ``x``, ``y``, ``z``. Le " +"type de ``x`` est ``int``, comme déclaré dans ``C``." -#: ../Doc/library/dataclasses.rst:507 +#: library/dataclasses.rst:510 msgid "The generated :meth:`__init__` method for ``C`` will look like::" -msgstr "" +msgstr "La méthode :meth:`__init__` générée pour ``C`` ressemble à :" -#: ../Doc/library/dataclasses.rst:512 +#: library/dataclasses.rst:515 msgid "Default factory functions" -msgstr "" +msgstr "Fabriques de valeurs par défaut" -#: ../Doc/library/dataclasses.rst:514 +#: library/dataclasses.rst:517 msgid "" "If a :func:`field` specifies a ``default_factory``, it is called with zero " "arguments when a default value for the field is needed. For example, to " "create a new instance of a list, use::" msgstr "" +"Le paramètre facultatif *default_factory* de :func:`field` est une fonction " +"qui est appelée sans argument pour fournir des valeurs par défaut. Par " +"exemple, voici comment donner la valeur par défaut d'une liste vide :" -#: ../Doc/library/dataclasses.rst:520 +#: library/dataclasses.rst:523 msgid "" "If a field is excluded from :meth:`__init__` (using ``init=False``) and the " "field also specifies ``default_factory``, then the default factory function " "will always be called from the generated :meth:`__init__` function. This " "happens because there is no other way to give the field an initial value." msgstr "" +"Si un champ avec fabrique est exclu de :meth:`__init__` (par " +"``init=False``), alors la fabrique est appelée par :meth:`__init__` pour " +"chaque nouvelle instance, puisque c'est le seul moyen d'obtenir une valeur à " +"laquelle initialiser le champ." -#: ../Doc/library/dataclasses.rst:527 +#: library/dataclasses.rst:530 msgid "Mutable default values" -msgstr "" +msgstr "Valeurs par défaut muables" -#: ../Doc/library/dataclasses.rst:529 +#: library/dataclasses.rst:532 msgid "" "Python stores default member variable values in class attributes. Consider " "this example, not using dataclasses::" msgstr "" +"En Python, les valeurs par défaut des attributs sont stockées dans des " +"attributs de la classe. Observez cet exemple, sans classe de données :" -#: ../Doc/library/dataclasses.rst:544 +#: library/dataclasses.rst:547 msgid "" "Note that the two instances of class ``C`` share the same class variable " "``x``, as expected." msgstr "" +"Comme attendu, les deux instances de ``C`` partagent le même objet pour " +"l'attribut ``x``." -#: ../Doc/library/dataclasses.rst:547 +#: library/dataclasses.rst:550 msgid "Using dataclasses, *if* this code was valid::" -msgstr "" +msgstr "Avec les classes de données, si ce code était valide :" -#: ../Doc/library/dataclasses.rst:555 +#: library/dataclasses.rst:558 msgid "it would generate code similar to::" -msgstr "" +msgstr "il générerait un code équivalent à :" -#: ../Doc/library/dataclasses.rst:566 +#: library/dataclasses.rst:569 msgid "" "This has the same issue as the original example using class ``C``. That is, " "two instances of class ``D`` that do not specify a value for ``x`` when " @@ -733,18 +861,24 @@ msgid "" "partial solution, but it does protect against many common errors." msgstr "" -#: ../Doc/library/dataclasses.rst:576 +#: library/dataclasses.rst:579 msgid "" "Using default factory functions is a way to create new instances of mutable " "types as default values for fields::" msgstr "" +"Pour qu'un champ d'un type muable soit par défaut initialisé à un nouvel " +"objet pour chaque instance, utilisez une fonction de fabrique :" -#: ../Doc/library/dataclasses.rst:586 +#: library/dataclasses.rst:589 msgid "Exceptions" msgstr "Exceptions" -#: ../Doc/library/dataclasses.rst:590 +#: library/dataclasses.rst:593 msgid "" "Raised when an implicitly defined :meth:`__setattr__` or :meth:`__delattr__` " -"is called on a dataclass which was defined with ``frozen=True``." +"is called on a dataclass which was defined with ``frozen=True``. It is a " +"subclass of :exc:`AttributeError`." msgstr "" +"Sous-classe de :exc:`AttributeError`, levée lorsqu'une méthode :meth:" +"`__setattr__` ou :meth:`__delattr__` définie implicitement est appelée dans " +"une classe de données définie avec ``frozen=True``." diff --git a/library/datetime.po b/library/datetime.po index b2e527648a..6ad3e81bc8 100644 --- a/library/datetime.po +++ b/library/datetime.po @@ -5,79 +5,82 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-12-05 23:16+0100\n" -"PO-Revision-Date: 2019-08-21 00:28+0200\n" -"Last-Translator: Jules Lasne \n" -"Language-Team: FRENCH \n" +"POT-Creation-Date: 2020-05-23 11:38+0200\n" +"PO-Revision-Date: 2020-06-01 17:38+0200\n" +"Last-Translator: Loc Cosnier \n" +"Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2.1\n" +"Plural-Forms: nplurals=2; plural=(n > 1)\n" +"X-Generator: Gtranslator 3.36.0\n" -#: ../Doc/library/datetime.rst:2 +#: library/datetime.rst:2 msgid ":mod:`datetime` --- Basic date and time types" msgstr ":mod:`datetime` — Types de base pour la date et l'heure" -#: ../Doc/library/datetime.rst:11 +#: library/datetime.rst:11 msgid "**Source code:** :source:`Lib/datetime.py`" msgstr "**Code source :** :source:`Lib/datetime.py`" -#: ../Doc/library/datetime.rst:17 -#, fuzzy +#: library/datetime.rst:17 msgid "" "The :mod:`datetime` module supplies classes for manipulating dates and times." -msgstr "Le module :mod:`datetime` exporte les constantes suivantes :" +msgstr "" +"Le module :mod:`datetime` fournit des classes permettant de manipuler les " +"dates et les heures." -#: ../Doc/library/datetime.rst:19 -#, fuzzy +#: library/datetime.rst:19 msgid "" "While date and time arithmetic is supported, the focus of the implementation " "is on efficient attribute extraction for output formatting and manipulation." msgstr "" -"Le module :mod:`datetime` fournit des classes pour manipuler de façon simple " -"ou plus complexe des dates et des heures. Bien que les calculs de date et " -"d'heure sont gérés, l'implémentation est essentiellement tournée vers " -"l'efficacité pour extraire des attributs pour les manipuler et les formater " -"pour l'affichage. Pour d'autres fonctionnalités associées, voir aussi les " -"modules :mod:`time` et :mod:`calendar`." +"Bien que les calculs de date et d'heure sont gérés, l'attention lors de " +"l'implémentation s'est essentiellement portée sur l'efficacité de " +"l'extraction des attributs en vue de leur manipulation et formatage pour " +"l'affichage." -#: ../Doc/library/datetime.rst:25 +#: library/datetime.rst:25 msgid "Module :mod:`calendar`" msgstr "Module :mod:`calendar`" -#: ../Doc/library/datetime.rst:25 +#: library/datetime.rst:25 msgid "General calendar related functions." msgstr "Fonctions génériques associées au calendrier." -#: ../Doc/library/datetime.rst:28 +#: library/datetime.rst:28 msgid "Module :mod:`time`" msgstr "Module :mod:`time`" -#: ../Doc/library/datetime.rst:28 +#: library/datetime.rst:28 msgid "Time access and conversions." -msgstr "Accès au données d'horaires et aux conversions associées." +msgstr "Accès aux données d'horaires et aux conversions associées." -#: ../Doc/library/datetime.rst:30 -#, fuzzy +#: library/datetime.rst:30 msgid "Package `dateutil `_" -msgstr "`dateutil.tz `_" +msgstr "Paquet `dateutil `_" -#: ../Doc/library/datetime.rst:31 +#: library/datetime.rst:31 msgid "Third-party library with expanded time zone and parsing support." msgstr "" +"Bibliothèque tierce avec prise en charge complète du fuseau horaire et de " +"l'analyse de dates sous forme textuelle." -#: ../Doc/library/datetime.rst:36 -#, fuzzy +#: library/datetime.rst:36 msgid "Aware and Naive Objects" -msgstr "Pour un objet avisé :" +msgstr "Objets avisés et naïfs" -#: ../Doc/library/datetime.rst:38 -msgid "Date and time objects may be categorized as \"aware\" or \"naive.\"" +#: library/datetime.rst:38 +msgid "" +"Date and time objects may be categorized as \"aware\" or \"naive\" depending " +"on whether or not they include timezone information." msgstr "" +"Les objets *date* et *time* peuvent être classés comme « avisés » ou " +"« naïfs » selon qu'ils contiennent ou non des informations sur le fuseau " +"horaire." -#: ../Doc/library/datetime.rst:40 -#, fuzzy +#: library/datetime.rst:41 msgid "" "With sufficient knowledge of applicable algorithmic and political time " "adjustments, such as time zone and daylight saving time information, an " @@ -85,14 +88,13 @@ msgid "" "object represents a specific moment in time that is not open to " "interpretation. [#]_" msgstr "" -"Un objet avisé possède suffisamment de connaissance des règles à appliquer " -"et des politiques d'ajustement de l'heure comme les informations sur les " -"fuseaux horaires et l'heure d'été pour se situer de façon relative par " -"rapport à d'autres objets avisés. Un objet avisé est utilisé pour représenté " -"un moment précis de l'histoire qui n'est pas ouvert à l'interprétation [#]_." +"Un objet **avisé** possède suffisamment de connaissance des règles à " +"appliquer et des politiques d'ajustement de l'heure comme les informations " +"sur les fuseaux horaires et l'heure d'été pour se situer de façon relative " +"par rapport à d'autres objets avisés. Un objet avisé est utilisé pour " +"représenter un instant précis qui n'est pas ouvert à l'interprétation [#]_." -#: ../Doc/library/datetime.rst:46 -#, fuzzy +#: library/datetime.rst:47 msgid "" "A **naive** object does not contain enough information to unambiguously " "locate itself relative to other date/time objects. Whether a naive object " @@ -102,7 +104,7 @@ msgid "" "objects are easy to understand and to work with, at the cost of ignoring " "some aspects of reality." msgstr "" -"Un objet naïf ne comporte pas assez d'informations pour se situer sans " +"Un objet **naïf** ne comporte pas assez d'informations pour se situer sans " "ambiguïté par rapport à d'autres objets *date/time*. Le fait qu'un objet " "naïf représente un Temps universel coordonné (UTC), une heure locale ou une " "heure dans un autre fuseau horaire dépend complètement du programme, tout " @@ -110,7 +112,7 @@ msgstr "" "le programme. Les objets naïfs sont simples à comprendre et il est aisé de " "travailler avec, au prix de négliger certains aspects de la réalité." -#: ../Doc/library/datetime.rst:53 +#: library/datetime.rst:54 msgid "" "For applications requiring aware objects, :class:`.datetime` and :class:`." "time` objects have an optional time zone information attribute, :attr:`!" @@ -119,9 +121,14 @@ msgid "" "offset from UTC time, the time zone name, and whether daylight saving time " "is in effect." msgstr "" +"Pour les applications nécessitant des objets avisés, les objets :class:`." +"datetime` et :class:`.time` ont un attribut facultatif renseignant le fuseau " +"horaire, :attr:`!tzinfo`, qui peut être une instance d'une sous-classe de la " +"classe abstraite :class:`tzinfo`. Ces objets :class:`tzinfo` regroupent des " +"informations sur le décalage par rapport à l'heure UTC, le nom du fuseau " +"horaire, et si l'heure d'été est en vigueur." -#: ../Doc/library/datetime.rst:59 -#, fuzzy +#: library/datetime.rst:60 msgid "" "Only one concrete :class:`tzinfo` class, the :class:`timezone` class, is " "supplied by the :mod:`datetime` module. The :class:`timezone` class can " @@ -131,30 +138,24 @@ msgid "" "across the world are more political than rational, change frequently, and " "there is no standard suitable for every application aside from UTC." msgstr "" -"Pour les applications qui nécessitent des objets avisés, les objets :class:`." -"datetime` et :class:`.time` ont un attribut optionnel d'information sur le " -"fuseau horaire, :attr:`!tzinfo`, qui peut être réglé sur une instance d'une " -"sous-classe de la classe abstraite :class:`tzinfo`. Ces objets :class:" -"`tzinfo` capturent l'information à propos du décalage avec le temps UTC, le " -"nom du fuseau horaire, et si l'heure d'été est effective. Notez qu'une " -"seule classe concrète :class:`tzinfo`, la classe :class:`timezone`, est " -"proposée par le module :mod:`datetime`. La classe :class:`timezone` " -"représente des fuseaux horaires simples avec un décalage fixe par rapport à " -"UTC, comme UTC lui-même ou les fuseaux EST et EDT d'Amérique du Nord. Gérer " -"des fuseaux horaires d'un niveau de détails plus avancé est à la charge de " -"l'application. Les règles d'ajustement du temps à travers le monde sont " -"plus politiques que rationnelles, changent fréquemment, et il n'y a pas de " -"standard qui vaille pour toute application, en dehors d'UTC." - -#: ../Doc/library/datetime.rst:68 +"Notez qu'une seule classe concrète :class:`tzinfo`, la classe :class:" +"`timezone`, est proposée par le module :mod:`datetime`. La classe :class:" +"`timezone` représente des fuseaux horaires simples avec un décalage fixe par " +"rapport à UTC, comme UTC lui-même ou les fuseaux EST et EDT d'Amérique du " +"Nord. Gérer des fuseaux horaires d'un niveau de détails plus avancé est à la " +"charge de l'application. Les règles d'ajustement du temps à travers le monde " +"sont plus politiques que rationnelles, changent fréquemment, et il n'y a pas " +"de standard qui vaille pour toute application, en dehors d'UTC." + +#: library/datetime.rst:69 msgid "Constants" msgstr "Constantes" -#: ../Doc/library/datetime.rst:70 +#: library/datetime.rst:71 msgid "The :mod:`datetime` module exports the following constants:" -msgstr "Le module :mod:`datetime` exporte les constantes suivantes :" +msgstr "Le module :mod:`datetime` exporte les constantes suivantes :" -#: ../Doc/library/datetime.rst:74 +#: library/datetime.rst:75 msgid "" "The smallest year number allowed in a :class:`date` or :class:`.datetime` " "object. :const:`MINYEAR` is ``1``." @@ -162,7 +163,7 @@ msgstr "" "Le numéro d'année le plus petit autorisé dans un objet :class:`date` ou :" "class:`datetime`. :const:`MINYEAR` vaut ``1``." -#: ../Doc/library/datetime.rst:80 +#: library/datetime.rst:81 msgid "" "The largest year number allowed in a :class:`date` or :class:`.datetime` " "object. :const:`MAXYEAR` is ``9999``." @@ -170,44 +171,43 @@ msgstr "" "Le numéro d'année le plus grand autorisé dans un objet :class:`date` ou :" "class:`datetime`. :const:`MAXYEAR` vaut ``9999``." -#: ../Doc/library/datetime.rst:84 +#: library/datetime.rst:85 msgid "Available Types" msgstr "Types disponibles" -#: ../Doc/library/datetime.rst:89 +#: library/datetime.rst:90 msgid "" "An idealized naive date, assuming the current Gregorian calendar always was, " "and always will be, in effect. Attributes: :attr:`year`, :attr:`month`, and :" "attr:`day`." msgstr "" "Une date naïve idéalisée, en supposant que le calendrier Grégorien actuel a " -"toujours existé et qu'il existera toujours. Attributs : :attr:`year`, :attr:" +"toujours existé et qu'il existera toujours. Attributs : :attr:`year`, :attr:" "`month` et :attr:`day`." -#: ../Doc/library/datetime.rst:97 -#, fuzzy +#: library/datetime.rst:98 msgid "" "An idealized time, independent of any particular day, assuming that every " -"day has exactly 24\\*60\\*60 seconds. (There is no notion of \"leap seconds" -"\" here.) Attributes: :attr:`hour`, :attr:`minute`, :attr:`second`, :attr:" -"`microsecond`, and :attr:`.tzinfo`." +"day has exactly 24\\*60\\*60 seconds. (There is no notion of \"leap " +"seconds\" here.) Attributes: :attr:`hour`, :attr:`minute`, :attr:`second`, :" +"attr:`microsecond`, and :attr:`.tzinfo`." msgstr "" "Un temps idéalisé, indépendant d'une date particulière, en supposant qu'une " "journée est composée d'exactement 24\\*60\\*60 secondes (il n'y a pas ici de " -"notion de \"seconde bissextile\"). Attributs : :attr:`hour`, :attr:" +"notion de « seconde intercalaire »). Attributs : :attr:`hour`, :attr:" "`minute`, :attr:`second`, :attr:`microsecond` et :attr:`tzinfo`." -#: ../Doc/library/datetime.rst:106 +#: library/datetime.rst:107 msgid "" "A combination of a date and a time. Attributes: :attr:`year`, :attr:" "`month`, :attr:`day`, :attr:`hour`, :attr:`minute`, :attr:`second`, :attr:" "`microsecond`, and :attr:`.tzinfo`." msgstr "" -"Une combinaison d'une date et d'une heure. Attributs : :attr:`year`, :attr:" +"Une combinaison d'une date et d'une heure. Attributs : :attr:`year`, :attr:" "`month`, :attr:`day`, :attr:`hour`, :attr:`minute`, :attr:`second`, :attr:" "`microsecond`, et :attr:`tzinfo`." -#: ../Doc/library/datetime.rst:114 +#: library/datetime.rst:115 msgid "" "A duration expressing the difference between two :class:`date`, :class:`." "time`, or :class:`.datetime` instances to microsecond resolution." @@ -215,7 +215,7 @@ msgstr "" "Une durée qui exprime la différence entre deux instances de :class:`date`, :" "class:`time` ou :class:`datetime` en microsecondes." -#: ../Doc/library/datetime.rst:121 +#: library/datetime.rst:122 #, fuzzy msgid "" "An abstract base class for time zone information objects. These are used by " @@ -229,7 +229,7 @@ msgstr "" "d'ajustement d'horaire (par exemple la prise en compte d'un fuseau horaire " "et/ou de l'heure d'été)." -#: ../Doc/library/datetime.rst:129 +#: library/datetime.rst:130 msgid "" "A class that implements the :class:`tzinfo` abstract base class as a fixed " "offset from the UTC." @@ -237,96 +237,106 @@ msgstr "" "Une classe qui implémente la classe de base abstraite :class:`tzinfo` en " "tant qu'offset fixe par rapport au temps UTC." -#: ../Doc/library/datetime.rst:134 ../Doc/library/datetime.rst:152 +#: library/datetime.rst:153 msgid "Objects of these types are immutable." msgstr "Les objets issus de ces types sont immuables." -#: ../Doc/library/datetime.rst:136 +#: library/datetime.rst:137 msgid "Subclass relationships::" msgstr "Relations entre les sous-classes ::" -#: ../Doc/library/datetime.rst:147 +#: library/datetime.rst:148 msgid "Common Properties" -msgstr "" +msgstr "Propriétés communes" -#: ../Doc/library/datetime.rst:149 +#: library/datetime.rst:150 msgid "" "The :class:`date`, :class:`.datetime`, :class:`.time`, and :class:`timezone` " "types share these common features:" msgstr "" +"Les types :class:`date`, :class:`.datetime`, :class:`.time`, et :class:" +"`timezone` partagent les caractéristiques suivantes :" -#: ../Doc/library/datetime.rst:153 +#: library/datetime.rst:154 msgid "" "Objects of these types are hashable, meaning that they can be used as " "dictionary keys." msgstr "" +"Les objets de ces types sont hachables, ce qui signifie qu'ils peuvent être " +"utilisés comme clés de dictionnaire." -#: ../Doc/library/datetime.rst:155 +#: library/datetime.rst:156 msgid "" "Objects of these types support efficient pickling via the :mod:`pickle` " "module." msgstr "" +"Les objets de ces types peuvent être sérialisés efficacement par le module :" +"mod:`pickle`." -#: ../Doc/library/datetime.rst:158 +#: library/datetime.rst:159 msgid "Determining if an Object is Aware or Naive" -msgstr "" +msgstr "Catégorisation d'un objet en « avisé » ou « naïf »" -#: ../Doc/library/datetime.rst:160 +#: library/datetime.rst:161 msgid "Objects of the :class:`date` type are always naive." msgstr "Les objets de type :class:`date` sont toujours naïfs." -#: ../Doc/library/datetime.rst:162 -#, fuzzy +#: library/datetime.rst:163 msgid "" "An object of type :class:`.time` or :class:`.datetime` may be aware or naive." -msgstr "Les objets de type :class:`date` sont toujours naïfs." +msgstr "" +"Un objet du type :class:`.time` ou :class:`.datetime` peut être avisé ou " +"naïf." -#: ../Doc/library/datetime.rst:164 +#: library/datetime.rst:165 msgid "A :class:`.datetime` object *d* is aware if both of the following hold:" msgstr "" +"Un objet :class:`.datetime` *d* est avisé si les deux conditions suivantes " +"vérifient :" -#: ../Doc/library/datetime.rst:166 +#: library/datetime.rst:167 msgid "``d.tzinfo`` is not ``None``" -msgstr "" +msgstr "``d.tzinfo`` ne vaut pas ``None``" -#: ../Doc/library/datetime.rst:167 +#: library/datetime.rst:168 msgid "``d.tzinfo.utcoffset(d)`` does not return ``None``" -msgstr "" +msgstr "``d.tzinfo.utcoffset(d)`` ne renvoie pas ``None``" -#: ../Doc/library/datetime.rst:169 +#: library/datetime.rst:170 msgid "Otherwise, *d* is naive." -msgstr "" +msgstr "Autrement, *d* est naïf." -#: ../Doc/library/datetime.rst:171 +#: library/datetime.rst:172 msgid "A :class:`.time` object *t* is aware if both of the following hold:" msgstr "" +"Un objet :class:`.time` *t* est avisé si les deux conditions suivantes " +"vérifient :" -#: ../Doc/library/datetime.rst:173 +#: library/datetime.rst:174 msgid "``t.tzinfo`` is not ``None``" -msgstr "" +msgstr "``t.tzinfo`` ne vaut pas ``None``" -#: ../Doc/library/datetime.rst:174 +#: library/datetime.rst:175 msgid "``t.tzinfo.utcoffset(None)`` does not return ``None``." -msgstr "" +msgstr "``t.tzinfo.utcoffset(None)`` ne renvoie pas ``None``." -#: ../Doc/library/datetime.rst:176 +#: library/datetime.rst:177 msgid "Otherwise, *t* is naive." -msgstr "" +msgstr "Autrement, *t* est naïf." -#: ../Doc/library/datetime.rst:178 -#, fuzzy +#: library/datetime.rst:179 msgid "" "The distinction between aware and naive doesn't apply to :class:`timedelta` " "objects." msgstr "" -"La distinction entre naïf et avisé ne s'applique pas aux objets de type :" +"La distinction entre avisé et naïf ne s'applique pas aux objets de type :" "class:`timedelta`." -#: ../Doc/library/datetime.rst:184 +#: library/datetime.rst:185 msgid ":class:`timedelta` Objects" msgstr "Objets :class:`timedelta`" -#: ../Doc/library/datetime.rst:186 +#: library/datetime.rst:187 msgid "" "A :class:`timedelta` object represents a duration, the difference between " "two dates or times." @@ -334,7 +344,7 @@ msgstr "" "Un objet :class:`timedelta` représente une durée, c'est-à-dire la différence " "entre deux dates ou heures." -#: ../Doc/library/datetime.rst:191 +#: library/datetime.rst:192 #, fuzzy msgid "" "All arguments are optional and default to ``0``. Arguments may be integers " @@ -344,32 +354,31 @@ msgstr "" "Les paramètres peuvent être des entiers ou des flottants et ils peuvent être " "positifs ou négatifs." -#: ../Doc/library/datetime.rst:194 -#, fuzzy +#: library/datetime.rst:195 msgid "" "Only *days*, *seconds* and *microseconds* are stored internally. Arguments " "are converted to those units:" msgstr "" "Seuls les *jours*, les *secondes* et les *microsecondes* sont stockés en " -"interne. Tous les paramètres sont convertis dans ces unités :" +"interne. Tous les paramètres sont convertis dans ces unités :" -#: ../Doc/library/datetime.rst:197 +#: library/datetime.rst:198 msgid "A millisecond is converted to 1000 microseconds." msgstr "Une milliseconde est convertie en 1000 microsecondes." -#: ../Doc/library/datetime.rst:198 +#: library/datetime.rst:199 msgid "A minute is converted to 60 seconds." msgstr "Une minute est convertie en 60 secondes." -#: ../Doc/library/datetime.rst:199 +#: library/datetime.rst:200 msgid "An hour is converted to 3600 seconds." msgstr "Une heure est convertie en 3600 secondes." -#: ../Doc/library/datetime.rst:200 +#: library/datetime.rst:201 msgid "A week is converted to 7 days." msgstr "Une semaine est convertie en 7 jours." -#: ../Doc/library/datetime.rst:202 +#: library/datetime.rst:203 msgid "" "and days, seconds and microseconds are then normalized so that the " "representation is unique, with" @@ -377,27 +386,29 @@ msgstr "" "et ensuite les jours, secondes et microsecondes sont normalisés pour que la " "représentation soit unique avec" -#: ../Doc/library/datetime.rst:205 +#: library/datetime.rst:206 msgid "``0 <= microseconds < 1000000``" msgstr "``0 <= microseconds < 1000000``" -#: ../Doc/library/datetime.rst:206 +#: library/datetime.rst:207 msgid "``0 <= seconds < 3600*24`` (the number of seconds in one day)" msgstr "``0 <= secondes < 3600*24`` (le nombre de secondes dans une journée)" -#: ../Doc/library/datetime.rst:207 +#: library/datetime.rst:208 msgid "``-999999999 <= days <= 999999999``" msgstr "``-999999999 <= days <= 999999999``" -#: ../Doc/library/datetime.rst:209 +#: library/datetime.rst:210 msgid "" "The following example illustrates how any arguments besides *days*, " "*seconds* and *microseconds* are \"merged\" and normalized into those three " "resulting attributes::" msgstr "" +"L'exemple suivant illustre comment tous les arguments autres que *days*, " +"*seconds* et *microseconds* sont « fusionnés » et normalisés dans ces trois " +"attributs résultants ::" -#: ../Doc/library/datetime.rst:227 -#, fuzzy +#: library/datetime.rst:228 msgid "" "If any argument is a float and there are fractional microseconds, the " "fractional microseconds left over from all arguments are combined and their " @@ -407,12 +418,12 @@ msgid "" msgstr "" "Si l'un des arguments est un flottant et qu'il y a des microsecondes " "décimales, les microsecondes décimales laissées par les arguments sont " -"combinées et leur somme est arrondie à la microseconde la plus proche (en " -"arrondissant les demis vers le nombre pair). Si aucun argument n'est " +"combinées et leur somme est arrondie à la microseconde la plus proche (en " +"arrondissant les demis vers le nombre pair). Si aucun argument n'est " "flottant, les processus de conversion et de normalisation seront exacts (pas " "d'informations perdues)." -#: ../Doc/library/datetime.rst:234 +#: library/datetime.rst:235 msgid "" "If the normalized value of days lies outside the indicated range, :exc:" "`OverflowError` is raised." @@ -420,26 +431,24 @@ msgstr "" "Si la valeur normalisée des jours déborde de l'intervalle indiqué, une :exc:" "`OverflowError` est levée." -#: ../Doc/library/datetime.rst:237 +#: library/datetime.rst:238 #, fuzzy msgid "" "Note that normalization of negative values may be surprising at first. For " "example::" msgstr "" "Notez que la normalisation de valeurs négatives peut être surprenante au " -"premier abord. Par exemple," +"premier abord. Par exemple ::" -#: ../Doc/library/datetime.rst:246 ../Doc/library/datetime.rst:540 -#: ../Doc/library/datetime.rst:1045 ../Doc/library/datetime.rst:1663 -#: ../Doc/library/datetime.rst:2257 +#: library/datetime.rst:541 library/datetime.rst:1662 library/datetime.rst:2256 msgid "Class attributes:" -msgstr "Attributs de la classe :" +msgstr "Attributs de la classe :" -#: ../Doc/library/datetime.rst:250 +#: library/datetime.rst:251 msgid "The most negative :class:`timedelta` object, ``timedelta(-999999999)``." msgstr "L'objet :class:`timedelta` le plus négatif, ``timedelta(-999999999)``." -#: ../Doc/library/datetime.rst:255 +#: library/datetime.rst:256 msgid "" "The most positive :class:`timedelta` object, ``timedelta(days=999999999, " "hours=23, minutes=59, seconds=59, microseconds=999999)``." @@ -447,7 +456,7 @@ msgstr "" "L'objet :class:`timedelta` le plus positif, ``timedelta(days=999999999, " "hours=23, minutes=59, seconds=59, microseconds=999999)``." -#: ../Doc/library/datetime.rst:261 +#: library/datetime.rst:262 msgid "" "The smallest possible difference between non-equal :class:`timedelta` " "objects, ``timedelta(microseconds=1)``." @@ -455,7 +464,7 @@ msgstr "" "La plus petite différence entre des objets :class:`timedelta` non égaux, " "``timedelta(microseconds=1)``." -#: ../Doc/library/datetime.rst:264 +#: library/datetime.rst:265 msgid "" "Note that, because of normalization, ``timedelta.max`` > ``-timedelta.min``. " "``-timedelta.max`` is not representable as a :class:`timedelta` object." @@ -464,63 +473,59 @@ msgstr "" "timedelta.min``. ``-timedelta.max`` n'est pas représentable sous la forme " "d'un objet :class:`timedelta`." -#: ../Doc/library/datetime.rst:267 ../Doc/library/datetime.rst:558 -#: ../Doc/library/datetime.rst:1065 ../Doc/library/datetime.rst:1683 +#: library/datetime.rst:559 library/datetime.rst:1682 msgid "Instance attributes (read-only):" -msgstr "Attributs de l'instance (en lecture seule) :" +msgstr "Attributs de l'instance (en lecture seule) :" -#: ../Doc/library/datetime.rst:270 +#: library/datetime.rst:271 msgid "Attribute" msgstr "Attribut" -#: ../Doc/library/datetime.rst:270 +#: library/datetime.rst:271 msgid "Value" msgstr "Valeur" -#: ../Doc/library/datetime.rst:272 +#: library/datetime.rst:273 msgid "``days``" msgstr "``days``" -#: ../Doc/library/datetime.rst:272 +#: library/datetime.rst:273 msgid "Between -999999999 and 999999999 inclusive" msgstr "Entre -999999999 et 999999999 inclus" -#: ../Doc/library/datetime.rst:274 +#: library/datetime.rst:275 msgid "``seconds``" msgstr "``seconds``" -#: ../Doc/library/datetime.rst:274 +#: library/datetime.rst:275 msgid "Between 0 and 86399 inclusive" msgstr "Entre 0 et 86399 inclus" -#: ../Doc/library/datetime.rst:276 +#: library/datetime.rst:277 msgid "``microseconds``" msgstr "``microseconds``" -#: ../Doc/library/datetime.rst:276 +#: library/datetime.rst:277 msgid "Between 0 and 999999 inclusive" msgstr "Entre 0 et 999999 inclus" -#: ../Doc/library/datetime.rst:279 ../Doc/library/datetime.rst:575 -#: ../Doc/library/datetime.rst:1118 +#: library/datetime.rst:576 library/datetime.rst:1117 msgid "Supported operations:" -msgstr "Opérations gérées :" +msgstr "Opérations gérées :" -#: ../Doc/library/datetime.rst:284 ../Doc/library/datetime.rst:578 -#: ../Doc/library/datetime.rst:1121 +#: library/datetime.rst:579 library/datetime.rst:1120 msgid "Operation" msgstr "Opération" -#: ../Doc/library/datetime.rst:284 ../Doc/library/datetime.rst:578 -#: ../Doc/library/datetime.rst:1121 +#: library/datetime.rst:579 library/datetime.rst:1120 msgid "Result" msgstr "Résultat" -#: ../Doc/library/datetime.rst:286 +#: library/datetime.rst:287 msgid "``t1 = t2 + t3``" msgstr "``t1 = t2 + t3``" -#: ../Doc/library/datetime.rst:286 +#: library/datetime.rst:287 msgid "" "Sum of *t2* and *t3*. Afterwards *t1*-*t2* == *t3* and *t1*-*t3* == *t2* are " "true. (1)" @@ -528,11 +533,11 @@ msgstr "" "Somme de *t2* et *t3*. Ensuite ``t1 - t2 == t3`` et ``t1 - t3 == t2`` sont " "des expressions vraies. (1)" -#: ../Doc/library/datetime.rst:289 +#: library/datetime.rst:290 msgid "``t1 = t2 - t3``" msgstr "``t1 = t2 - t3``" -#: ../Doc/library/datetime.rst:289 +#: library/datetime.rst:290 msgid "" "Difference of *t2* and *t3*. Afterwards *t1* == *t2* - *t3* and *t2* == *t1* " "+ *t3* are true. (1)(6)" @@ -540,11 +545,11 @@ msgstr "" "Différence entre *t2* et *t3*. Ensuite ``t1 == t2 - t3`` et ``t2 == t1 + " "t3`` sont des expressions vraies. (1)(6)" -#: ../Doc/library/datetime.rst:293 +#: library/datetime.rst:294 msgid "``t1 = t2 * i or t1 = i * t2``" msgstr "``t1 = t2 * i or t1 = i * t2``" -#: ../Doc/library/datetime.rst:293 +#: library/datetime.rst:294 msgid "" "Delta multiplied by an integer. Afterwards *t1* // i == *t2* is true, " "provided ``i != 0``." @@ -552,15 +557,15 @@ msgstr "" "Delta multiplié par un entier. Ensuite *t1* // i == *t2* est vrai, en " "admettant que ``i != 0``." -#: ../Doc/library/datetime.rst:297 +#: library/datetime.rst:298 msgid "In general, *t1* \\* i == *t1* \\* (i-1) + *t1* is true. (1)" msgstr "De manière générale, *t1* \\* i == *t1* \\* (i-1) + *t1* est vrai. (1)" -#: ../Doc/library/datetime.rst:300 +#: library/datetime.rst:301 msgid "``t1 = t2 * f or t1 = f * t2``" msgstr "``t1 = t2 * f or t1 = f * t2``" -#: ../Doc/library/datetime.rst:300 +#: library/datetime.rst:301 msgid "" "Delta multiplied by a float. The result is rounded to the nearest multiple " "of timedelta.resolution using round-half-to-even." @@ -569,11 +574,11 @@ msgstr "" "proche de ``timedelta.resolution`` en utilisant la règle de l'arrondi au " "pair le plus proche." -#: ../Doc/library/datetime.rst:304 +#: library/datetime.rst:305 msgid "``f = t2 / t3``" msgstr "``f = t2 / t3``" -#: ../Doc/library/datetime.rst:304 +#: library/datetime.rst:305 msgid "" "Division (3) of overall duration *t2* by interval unit *t3*. Returns a :" "class:`float` object." @@ -581,11 +586,11 @@ msgstr "" "Division (3) de la durée totale *t2* par l'unité d'intervalle *t3*. Renvoie " "un objet :class:`float`." -#: ../Doc/library/datetime.rst:308 +#: library/datetime.rst:309 msgid "``t1 = t2 / f or t1 = t2 / i``" msgstr "``t1 = t2 / f or t1 = t2 / i``" -#: ../Doc/library/datetime.rst:308 +#: library/datetime.rst:309 msgid "" "Delta divided by a float or an int. The result is rounded to the nearest " "multiple of timedelta.resolution using round-half-to-even." @@ -594,11 +599,11 @@ msgstr "" "multiple le plus proche de ``timedelta.resolution`` en utilisant la règle de " "l'arrondi au pair le plus proche." -#: ../Doc/library/datetime.rst:312 +#: library/datetime.rst:313 msgid "``t1 = t2 // i`` or ``t1 = t2 // t3``" msgstr "``t1 = t2 // i`` or ``t1 = t2 // t3``" -#: ../Doc/library/datetime.rst:312 +#: library/datetime.rst:313 #, fuzzy msgid "" "The floor is computed and the remainder (if any) is thrown away. In the " @@ -607,19 +612,19 @@ msgstr "" "Le quotient est calculé et le reste (s'il y en a un) est ignoré. Dans le " "second cas, un entier est renvoyé. (3)" -#: ../Doc/library/datetime.rst:316 +#: library/datetime.rst:317 msgid "``t1 = t2 % t3``" msgstr "``t1 = t2 % t3``" -#: ../Doc/library/datetime.rst:316 +#: library/datetime.rst:317 msgid "The remainder is computed as a :class:`timedelta` object. (3)" msgstr "Le reste est calculé comme un objet de type :class:`timedelta`. (3)" -#: ../Doc/library/datetime.rst:319 +#: library/datetime.rst:320 msgid "``q, r = divmod(t1, t2)``" msgstr "``q, r = divmod(t1, t2)``" -#: ../Doc/library/datetime.rst:319 +#: library/datetime.rst:320 msgid "" "Computes the quotient and the remainder: ``q = t1 // t2`` (3) and ``r = t1 % " "t2``. q is an integer and r is a :class:`timedelta` object." @@ -627,19 +632,19 @@ msgstr "" "Calcule le quotient et le reste : ``q = t1 // t2`` (3) et ``r = t1 % t2``. q " "est un entier et r est un objet :class:`timedelta`." -#: ../Doc/library/datetime.rst:324 +#: library/datetime.rst:325 msgid "``+t1``" msgstr "``+t1``" -#: ../Doc/library/datetime.rst:324 +#: library/datetime.rst:325 msgid "Returns a :class:`timedelta` object with the same value. (2)" msgstr "Renvoie un objet :class:`timedelta` avec la même valeur. (2)" -#: ../Doc/library/datetime.rst:327 +#: library/datetime.rst:328 msgid "``-t1``" msgstr "``-t1``" -#: ../Doc/library/datetime.rst:327 +#: library/datetime.rst:328 msgid "" "equivalent to :class:`timedelta`\\ (-*t1.days*, -*t1.seconds*, -*t1." "microseconds*), and to *t1*\\* -1. (1)(4)" @@ -647,11 +652,11 @@ msgstr "" "équivalent à :class:`timedelta`\\ (*-t1.days*, *-t1.seconds*, *-t1." "microseconds*), et à ``t1 * -1``. (1)(4)" -#: ../Doc/library/datetime.rst:332 +#: library/datetime.rst:333 msgid "``abs(t)``" msgstr "``abs(t)``" -#: ../Doc/library/datetime.rst:332 +#: library/datetime.rst:333 msgid "" "equivalent to +\\ *t* when ``t.days >= 0``, and to -*t* when ``t.days < 0``. " "(2)" @@ -659,11 +664,11 @@ msgstr "" "équivalent à ``+t`` quand ``t.days >= 0``, et à ``-t`` quand ``t.days < 0``. " "(2)" -#: ../Doc/library/datetime.rst:335 +#: library/datetime.rst:336 msgid "``str(t)``" msgstr "``str(t)``" -#: ../Doc/library/datetime.rst:335 +#: library/datetime.rst:336 msgid "" "Returns a string in the form ``[D day[s], ][H]H:MM:SS[.UUUUUU]``, where D is " "negative for negative ``t``. (5)" @@ -671,11 +676,11 @@ msgstr "" "Renvoie une chaîne de la forme ``[D day[s], ][H]H:MM:SS[.UUUUUU]``, où D est " "négatif pour ``t`` négatif. (5)" -#: ../Doc/library/datetime.rst:339 +#: library/datetime.rst:340 msgid "``repr(t)``" msgstr "``repr(t)``" -#: ../Doc/library/datetime.rst:339 +#: library/datetime.rst:340 msgid "" "Returns a string representation of the :class:`timedelta` object as a " "constructor call with canonical attribute values." @@ -683,42 +688,40 @@ msgstr "" "Renvoie une chaîne de la forme objet :class:`timedelta` comme un appel " "construit avec des valeurs d'attributs canoniques." -#: ../Doc/library/datetime.rst:345 ../Doc/library/datetime.rst:592 -#: ../Doc/library/datetime.rst:2469 +#: library/datetime.rst:593 library/datetime.rst:2468 msgid "Notes:" msgstr "Notes :" -#: ../Doc/library/datetime.rst:348 +#: library/datetime.rst:349 #, fuzzy msgid "This is exact but may overflow." msgstr "Ceci est exact, mais peut provoquer un débordement." -#: ../Doc/library/datetime.rst:351 +#: library/datetime.rst:352 #, fuzzy msgid "This is exact and cannot overflow." msgstr "Ceci est exact, et ne peut pas provoquer un débordement." -#: ../Doc/library/datetime.rst:354 +#: library/datetime.rst:355 msgid "Division by 0 raises :exc:`ZeroDivisionError`." msgstr "Une division par 0 provoque :exc:`ZeroDivisionError`." -#: ../Doc/library/datetime.rst:357 +#: library/datetime.rst:358 msgid "-*timedelta.max* is not representable as a :class:`timedelta` object." msgstr "" "*-timedelta.max* n'est pas représentable avec un objet :class:`timedelta`." -#: ../Doc/library/datetime.rst:360 -#, fuzzy +#: library/datetime.rst:361 msgid "" "String representations of :class:`timedelta` objects are normalized " "similarly to their internal representation. This leads to somewhat unusual " "results for negative timedeltas. For example::" msgstr "" "La représentation en chaîne de caractères des objets :class:`timedelta` est " -"normalisée similairement à leur représentation interne. Cela amène à des " -"résultats inhabituels pour des *timedeltas* négatifs. Par exemple :" +"normalisée similairement à leur représentation interne. Cela amène à des " +"résultats inhabituels pour des *timedeltas* négatifs. Par exemple ::" -#: ../Doc/library/datetime.rst:370 +#: library/datetime.rst:371 msgid "" "The expression ``t2 - t3`` will always be equal to the expression ``t2 + (-" "t3)`` except when t3 is equal to ``timedelta.max``; in that case the former " @@ -728,7 +731,7 @@ msgstr "" "sauf si *t3* vaut ``timedelta.max` ; dans ce cas, la première expression " "produit une valeur alors que la seconde lève une ``OverflowError``." -#: ../Doc/library/datetime.rst:374 +#: library/datetime.rst:375 #, fuzzy msgid "" "In addition to the operations listed above, :class:`timedelta` objects " @@ -739,8 +742,7 @@ msgstr "" "implémentent certaines additions et soustractions avec des objets :class:" "`date` et :class:`datetime` (voir ci-dessous)." -#: ../Doc/library/datetime.rst:378 -#, fuzzy +#: library/datetime.rst:379 msgid "" "Floor division and true division of a :class:`timedelta` object by another :" "class:`timedelta` object are now supported, as are remainder operations and " @@ -749,46 +751,48 @@ msgid "" msgstr "" "La division entière et la vraie division d'un objet :class:`timedelta` par " "un autre :class:`timedelta` sont maintenant gérées, comme le sont les " -"opérations de reste euclidien et la fonction :func:`divmod`. La vraie " +"opérations de reste euclidien et la fonction :func:`divmod`. La vraie " "division et la multiplication d'un objet :class:`timedelta` par un :class:" "`float` sont maintenant implémentées." -#: ../Doc/library/datetime.rst:385 -#, fuzzy +#: library/datetime.rst:386 msgid "" "Comparisons of :class:`timedelta` objects are supported, with some caveats." -msgstr "Renvoie un objet :class:`timedelta` avec la même valeur. (2)" +msgstr "" +"Les comparaisons des objets :class:`timedelta` sont gérées, avec quelques " +"réserves." -#: ../Doc/library/datetime.rst:387 +#: library/datetime.rst:388 msgid "" "The comparisons ``==`` or ``!=`` *always* return a :class:`bool`, no matter " "the type of the compared object::" msgstr "" +"Les comparaisons ``==`` ou ``!=`` renvoient *toujours* un :class:`bool`, " +"quel que soit le type de l'objet comparé ::" -#: ../Doc/library/datetime.rst:398 +#: library/datetime.rst:399 msgid "" "For all other comparisons (such as ``<`` and ``>``), when a :class:" "`timedelta` object is compared to an object of a different type, :exc:" "`TypeError` is raised::" msgstr "" +"Pour toutes les autres comparaisons (telles que ``<`` et ``>``), lorsqu'un " +"objet :class:`timedelta` est comparé à un objet d'un type différent, :exc:" +"`TypeError` est levée ::" -#: ../Doc/library/datetime.rst:409 -#, fuzzy +#: library/datetime.rst:410 msgid "" "In Boolean contexts, a :class:`timedelta` object is considered to be true if " "and only if it isn't equal to ``timedelta(0)``." msgstr "" -"Les objets :class:`timedelta` sont :term:`hashable` (utilisables comme clés " -"de dictionnaires), implémentent le protocole *pickle* et, dans un contexte " -"booléen, un :class:`timedelta` est considéré vrai si et seulement si il " -"n'est pas égal à ``timedelta(0)``." +"Dans les contextes booléens, un objet :class:`timedelta` est considéré comme " +"vrai si et seulement s'il n'est pas égal à ``timedelta(0)``." -#: ../Doc/library/datetime.rst:412 ../Doc/library/datetime.rst:621 -#: ../Doc/library/datetime.rst:1192 ../Doc/library/datetime.rst:1780 +#: library/datetime.rst:622 library/datetime.rst:1779 msgid "Instance methods:" -msgstr "Méthodes de l'instance :" +msgstr "Méthodes de l'instance :" -#: ../Doc/library/datetime.rst:416 +#: library/datetime.rst:417 msgid "" "Return the total number of seconds contained in the duration. Equivalent to " "``td / timedelta(seconds=1)``. For interval units other than seconds, use " @@ -799,7 +803,7 @@ msgstr "" "seconde, utilisez directement la division (par exemple, ``td / " "timedelta(microseconds=1)``)." -#: ../Doc/library/datetime.rst:420 +#: library/datetime.rst:421 msgid "" "Note that for very large time intervals (greater than 270 years on most " "platforms) this method will lose microsecond accuracy." @@ -808,88 +812,88 @@ msgstr "" "sur la plupart des plateformes), cette méthode perdra la précision des " "microsecondes." -#: ../Doc/library/datetime.rst:426 -#, fuzzy +#: library/datetime.rst:427 msgid "Examples of usage: :class:`timedelta`" -msgstr "Exemple d'utilisation de la classe :class:`date` :" +msgstr "Exemples d'utilisation de la classe :class:`timedelta` :" -#: ../Doc/library/datetime.rst:428 +#: library/datetime.rst:429 msgid "An additional example of normalization::" -msgstr "" +msgstr "Un exemple supplémentaire de normalisation ::" -#: ../Doc/library/datetime.rst:440 -#, fuzzy +#: library/datetime.rst:441 msgid "Examples of :class:`timedelta` arithmetic::" -msgstr "Objets :class:`timedelta`" +msgstr "Exemples d'arithmétique avec la classe :class:`timedelta` ::" -#: ../Doc/library/datetime.rst:459 +#: library/datetime.rst:460 msgid ":class:`date` Objects" msgstr "Objets :class:`date`" -#: ../Doc/library/datetime.rst:461 +#: library/datetime.rst:462 msgid "" "A :class:`date` object represents a date (year, month and day) in an " "idealized calendar, the current Gregorian calendar indefinitely extended in " "both directions." msgstr "" +"Un objet :class:`date` représente une date (année, mois et jour) dans un " +"calendrier idéal, le calendrier grégorien actuel étant indéfiniment étendu " +"dans les deux sens." -#: ../Doc/library/datetime.rst:465 +#: library/datetime.rst:466 msgid "" "January 1 of year 1 is called day number 1, January 2 of year 1 is called " "day number 2, and so on. [#]_" msgstr "" +"Le 1\\ :sup:`er` janvier de l'année 1 est appelé jour numéro 1, le 2 janvier " +"de l'année 1 est appelé jour numéro 2, et ainsi de suite. [#]_" -#: ../Doc/library/datetime.rst:470 -#, fuzzy +#: library/datetime.rst:471 msgid "" "All arguments are required. Arguments must be integers, in the following " "ranges:" msgstr "" -"Tous les arguments sont requis. Les arguments peuvent être des entiers, " -"dans les intervalles suivant :" +"Tous les arguments sont requis. Les arguments peuvent être des entiers, dans " +"les intervalles suivants :" -#: ../Doc/library/datetime.rst:473 +#: library/datetime.rst:474 msgid "``MINYEAR <= year <= MAXYEAR``" msgstr "``MINYEAR <= year <= MAXYEAR``" -#: ../Doc/library/datetime.rst:474 +#: library/datetime.rst:475 msgid "``1 <= month <= 12``" msgstr "``1 <= month <= 12``" -#: ../Doc/library/datetime.rst:475 +#: library/datetime.rst:476 msgid "``1 <= day <= number of days in the given month and year``" msgstr "``1 <= day <= nombre de jours dans le mois et l'année donnés``" -#: ../Doc/library/datetime.rst:477 ../Doc/library/datetime.rst:835 +#: library/datetime.rst:836 msgid "" "If an argument outside those ranges is given, :exc:`ValueError` is raised." msgstr "" "Si un argument est donné en dehors de ces intervalles, une :exc:`valueError` " "est levée." -#: ../Doc/library/datetime.rst:480 ../Doc/library/datetime.rst:840 +#: library/datetime.rst:841 msgid "Other constructors, all class methods:" msgstr "Autres constructeurs, méthodes de classe :" -#: ../Doc/library/datetime.rst:484 +#: library/datetime.rst:485 msgid "Return the current local date." -msgstr "" +msgstr "Renvoie la date locale courante." -#: ../Doc/library/datetime.rst:486 -#, fuzzy +#: library/datetime.rst:487 msgid "This is equivalent to ``date.fromtimestamp(time.time())``." -msgstr "" -"Renvoie la date locale courante. Cela est équivalent à ``date." -"fromtimestamp(time.time())``." +msgstr "Cela est équivalent à ``date.fromtimestamp(time.time())``." -#: ../Doc/library/datetime.rst:490 +#: library/datetime.rst:491 msgid "" "Return the local date corresponding to the POSIX timestamp, such as is " "returned by :func:`time.time`." msgstr "" +"Renvoie la date locale correspondant à l'horodatage POSIX, telle que " +"renvoyée par :func:`time.time`." -#: ../Doc/library/datetime.rst:493 -#, fuzzy +#: library/datetime.rst:494 msgid "" "This may raise :exc:`OverflowError`, if the timestamp is out of the range of " "values supported by the platform C :c:func:`localtime` function, and :exc:" @@ -898,16 +902,14 @@ msgid "" "that include leap seconds in their notion of a timestamp, leap seconds are " "ignored by :meth:`fromtimestamp`." msgstr "" -"Renvoie la date locale correspondant à l'horodatage (*timestamp* en anglais) " -"*POSIX*, tel que renvoyé par :func:`time.time`. Elle peut lever une :exc:" -"`OverflowError`, si l'horodatage est en dehors des bornes gérées par la " -"fonction C :c:func:`localtime` de la plateforme, et une :exc:`OSError` en " -"cas d'échec de :c:func:`localtime`. Il est commun d'être restreint aux " -"années entre 1970 et 2038. Notez que sur les systèmes non *POSIX* qui " -"incluent les secondes de décalage dans leur notion d'horodatage, ces " -"secondes sont ignorées par :meth:`fromtimestamp`." +"Elle peut lever une :exc:`OverflowError`, si l'horodatage est en dehors des " +"bornes gérées par la fonction C :c:func:`localtime` de la plateforme, et " +"une :exc:`OSError` en cas d'échec de :c:func:`localtime`. Il est commun " +"d'être restreint aux années entre 1970 et 2038. Notez que sur les systèmes " +"non *POSIX* qui incluent les secondes intercalaires dans leur notion " +"d'horodatage, ces secondes sont ignorées par :meth:`fromtimestamp`." -#: ../Doc/library/datetime.rst:500 +#: library/datetime.rst:501 msgid "" "Raise :exc:`OverflowError` instead of :exc:`ValueError` if the timestamp is " "out of the range of values supported by the platform C :c:func:`localtime` " @@ -919,29 +921,23 @@ msgstr "" "fonction C :c:func:`localtime` de la plateforme. Lève une :exc:`OSError` " "plutôt qu'une :exc:`ValueError` en cas d'échec de :c:func:`localtime`." -#: ../Doc/library/datetime.rst:509 -#, fuzzy +#: library/datetime.rst:510 msgid "" "Return the date corresponding to the proleptic Gregorian ordinal, where " "January 1 of year 1 has ordinal 1." msgstr "" "Renvoie la date correspondant à l'ordinal grégorien proleptique, où le 1er " -"janvier de l'an 1 a l'ordinal 1. :exc:`ValueError` est levée à moins que " -"``1 <= ordinal <= date.max.toordinal()``. Pour toute date *d*, ``date." -"fromordinal(d.toordinal()) == d``." +"janvier de l'an 1 a l'ordinal 1." -#: ../Doc/library/datetime.rst:512 -#, fuzzy +#: library/datetime.rst:513 msgid "" ":exc:`ValueError` is raised unless ``1 <= ordinal <= date.max.toordinal()``. " "For any date *d*, ``date.fromordinal(d.toordinal()) == d``." msgstr "" -"Renvoie la date correspondant à l'ordinal grégorien proleptique, où le 1er " -"janvier de l'an 1 a l'ordinal 1. :exc:`ValueError` est levée à moins que " -"``1 <= ordinal <= date.max.toordinal()``. Pour toute date *d*, ``date." -"fromordinal(d.toordinal()) == d``." +":exc:`ValueError` est levée à moins que ``1 <= ordinal <= date.max." +"toordinal()``. Pour toute date *d*, ``date.fromordinal(d.toordinal()) == d``." -#: ../Doc/library/datetime.rst:519 +#: library/datetime.rst:520 #, fuzzy msgid "" "Return a :class:`date` corresponding to a *date_string* given in the format " @@ -949,30 +945,35 @@ msgid "" msgstr "" "Renvoie une :class:`date` correspondant à *date_string* dans le format émis " "par :meth:`date.isoformat`. Spécifiquement, cette fonction gère des chaînes " -"dans le(s) format(s) ``YYYY-MM-DD``." +"dans le(s) format(s) ``YYYY-MM-DD`` ::" -#: ../Doc/library/datetime.rst:526 +#: library/datetime.rst:527 msgid "" "This is the inverse of :meth:`date.isoformat`. It only supports the format " "``YYYY-MM-DD``." msgstr "" +"C'est la réciproque de :meth:`date.isoformat`. Elle ne prend en charge que " +"le format ``YYYY-MM-DD``." -#: ../Doc/library/datetime.rst:534 +#: library/datetime.rst:535 msgid "" "Return a :class:`date` corresponding to the ISO calendar date specified by " "year, week and day. This is the inverse of the function :meth:`date." "isocalendar`." msgstr "" +"Renvoie une :class:`date` correspondant à la date du calendrier ISO définie " +"par l'année, la semaine et le jour. C'est la réciproque de la fonction :meth:" +"`date.isocalendar`." -#: ../Doc/library/datetime.rst:544 +#: library/datetime.rst:545 msgid "The earliest representable date, ``date(MINYEAR, 1, 1)``." msgstr "La plus vieille date représentable, ``date(MINYEAR, 1, 1)``." -#: ../Doc/library/datetime.rst:549 +#: library/datetime.rst:550 msgid "The latest representable date, ``date(MAXYEAR, 12, 31)``." msgstr "La dernière date représentable, ``date(MAXYEAR, 12, 31)``." -#: ../Doc/library/datetime.rst:554 +#: library/datetime.rst:555 msgid "" "The smallest possible difference between non-equal date objects, " "``timedelta(days=1)``." @@ -980,49 +981,49 @@ msgstr "" "La plus petite différence possible entre deux objets dates non-égaux, " "``timedelta(days=1)``." -#: ../Doc/library/datetime.rst:562 ../Doc/library/datetime.rst:1069 +#: library/datetime.rst:1068 msgid "Between :const:`MINYEAR` and :const:`MAXYEAR` inclusive." msgstr "Entre :const:`MINYEAR` et :const:`MAXYEAR` inclus." -#: ../Doc/library/datetime.rst:567 ../Doc/library/datetime.rst:1074 +#: library/datetime.rst:1073 msgid "Between 1 and 12 inclusive." msgstr "Entre 1 et 12 inclus." -#: ../Doc/library/datetime.rst:572 ../Doc/library/datetime.rst:1079 +#: library/datetime.rst:1078 msgid "Between 1 and the number of days in the given month of the given year." msgstr "Entre 1 et le nombre de jours du mois donné de l'année donnée." -#: ../Doc/library/datetime.rst:580 +#: library/datetime.rst:581 msgid "``date2 = date1 + timedelta``" msgstr "``date2 = date1 + timedelta``" -#: ../Doc/library/datetime.rst:580 +#: library/datetime.rst:581 #, fuzzy msgid "*date2* is ``timedelta.days`` days removed from *date1*. (1)" msgstr "" "*date2* est décalée de ``timedelta.days`` jours par rapport à *date1*. (1)" -#: ../Doc/library/datetime.rst:583 +#: library/datetime.rst:584 msgid "``date2 = date1 - timedelta``" msgstr "``date2 = date1 - timedelta``" -#: ../Doc/library/datetime.rst:583 +#: library/datetime.rst:584 msgid "Computes *date2* such that ``date2 + timedelta == date1``. (2)" msgstr "Calcule *date2* de façon à avoir ``date2 + timedelta == date1``. (2)" -#: ../Doc/library/datetime.rst:586 +#: library/datetime.rst:587 msgid "``timedelta = date1 - date2``" msgstr "``timedelta = date1 - date2``" -#: ../Doc/library/datetime.rst:586 ../Doc/library/datetime.rst:1127 +#: library/datetime.rst:1126 msgid "\\(3)" msgstr "\\(3)" -#: ../Doc/library/datetime.rst:588 +#: library/datetime.rst:589 msgid "``date1 < date2``" msgstr "``date1 < date2``" -#: ../Doc/library/datetime.rst:588 +#: library/datetime.rst:589 msgid "" "*date1* is considered less than *date2* when *date1* precedes *date2* in " "time. (4)" @@ -1030,8 +1031,7 @@ msgstr "" "*date1* est considérée comme inférieure à *date2* quand *date1* précède " "*date2* dans le temps. (4)" -#: ../Doc/library/datetime.rst:595 -#, fuzzy +#: library/datetime.rst:596 msgid "" "*date2* is moved forward in time if ``timedelta.days > 0``, or backward if " "``timedelta.days < 0``. Afterward ``date2 - date1 == timedelta.days``. " @@ -1040,27 +1040,25 @@ msgid "" "`MINYEAR` or larger than :const:`MAXYEAR`." msgstr "" "*date2* est déplacée en avant dans le temps si ``timedelta.days > 0``, ou en " -"arrière si ``timedelta.days < 0``. Après quoi ``date2 - date1 == timedelta." +"arrière si ``timedelta.days < 0``. Après quoi ``date2 - date1 == timedelta." "days``. ``timedelta.seconds`` et ``timedelta.microseconds`` sont ignorés. " "Une :exc:`OverflowError` est levée si ``date2.year`` devait être inférieure " "à :const:`MINYEAR` ou supérieure à :const:`MAXYEAR`." -#: ../Doc/library/datetime.rst:602 +#: library/datetime.rst:603 msgid "``timedelta.seconds`` and ``timedelta.microseconds`` are ignored." msgstr "``timedelta.seconds`` et ``timedelta.microseconds`` sont ignorés." -#: ../Doc/library/datetime.rst:605 -#, fuzzy +#: library/datetime.rst:606 msgid "" "This is exact, and cannot overflow. timedelta.seconds and timedelta." "microseconds are 0, and date2 + timedelta == date1 after." msgstr "" -"Cela est exact, et ne peut pas dépasser les bornes. ``timedelta.seconds`` " -"et ``timedelta.microseconds`` valent ``0``, et ``date2 + timedelta == " -"date1`` après cela." +"Cela est exact, et ne peut pas provoquer de débordement. ``timedelta." +"seconds`` et ``timedelta.microseconds`` valent ``0``, et ``date2 + timedelta " +"== date1`` après cela." -#: ../Doc/library/datetime.rst:609 -#, fuzzy +#: library/datetime.rst:610 msgid "" "In other words, ``date1 < date2`` if and only if ``date1.toordinal() < date2." "toordinal()``. Date comparison raises :exc:`TypeError` if the other " @@ -1076,67 +1074,69 @@ msgstr "" "< date2.toordinal()``. La comparaison de dates lève une :exc:`TypeError` si " "l'autre opérande n'est pas un objet :class:`date`. Cependant, " "``NotImplemented`` est renvoyé à la place si l'autre opérande a un attribut :" -"meth:`timetuple`. Cela permet à d'autres types d'objets dates d'avoir une " +"meth:`timetuple`. Cela permet à d'autres types d'objets dates d'avoir une " "chance d'implémenter une comparaison entre types différents. Sinon, quand un " "objet :class:`date` est comparé à un objet d'un type différent, une :exc:" -"`TypeError` est levée à moins que la comparaison soit ``==`` ou ``!=``. Ces " +"`TypeError` est levée à moins que la comparaison soit ``==`` ou ``!=``. Ces " "derniers cas renvoient respectivement :const:`False` et :const:`True`." -#: ../Doc/library/datetime.rst:619 -#, fuzzy +#: library/datetime.rst:620 msgid "" "In Boolean contexts, all :class:`date` objects are considered to be true." msgstr "" -"Dans un contexte booléen, un objet :class:`.time` est toujours considéré " +"Dans des contextes booléens, tous les objets :class:`date` sont considérés " "comme vrai." -#: ../Doc/library/datetime.rst:625 -#, fuzzy +#: library/datetime.rst:626 msgid "" "Return a date with the same value, except for those parameters given new " "values by whichever keyword arguments are specified." msgstr "" "Renvoie une date avec la même valeur, excepté pour les valeurs spécifiées " -"par arguments nommés. Par exemple, si ``d == date(2002, 12, 31)``, alors " -"``d.replace(day=26) == date(2002, 12, 26)``." +"par arguments nommés." -#: ../Doc/library/datetime.rst:628 ../Doc/library/datetime.rst:1823 +#: library/datetime.rst:1822 #, fuzzy msgid "Example::" -msgstr "Exemple :" +msgstr "Exemple ::" -#: ../Doc/library/datetime.rst:638 ../Doc/library/datetime.rst:1305 +#: library/datetime.rst:1304 msgid "" "Return a :class:`time.struct_time` such as returned by :func:`time." "localtime`." msgstr "" +"Renvoie une :class:`time.struct_time` telle que renvoyée par :func:`time." +"localtime`." -#: ../Doc/library/datetime.rst:640 +#: library/datetime.rst:641 msgid "The hours, minutes and seconds are 0, and the DST flag is -1." msgstr "" +"Les heures, minutes et secondes sont égales à 0 et le drapeau DST vaut -1." -#: ../Doc/library/datetime.rst:642 ../Doc/library/datetime.rst:1307 +#: library/datetime.rst:1306 msgid "``d.timetuple()`` is equivalent to::" -msgstr "" +msgstr "``d.timetuple()`` est équivalent à ::" -#: ../Doc/library/datetime.rst:646 +#: library/datetime.rst:647 msgid "" "where ``yday = d.toordinal() - date(d.year, 1, 1).toordinal() + 1`` is the " "day number within the current year starting with ``1`` for January 1st." msgstr "" +"où ``yday = d.toordinal() - date(d.year, 1, 1).toordinal() + 1`` est le " +"numéro du jour dans l'année courante commençant par ``1`` pour le 1\\ :sup:" +"`er` janvier." -#: ../Doc/library/datetime.rst:652 -#, fuzzy +#: library/datetime.rst:653 msgid "" "Return the proleptic Gregorian ordinal of the date, where January 1 of year " "1 has ordinal 1. For any :class:`date` object *d*, ``date.fromordinal(d." "toordinal()) == d``." msgstr "" "Renvoie l'ordinal grégorien proleptique de la date, où le 1er janvier de " -"l'an 1 a l'ordinal 1. Pour tout objet :class:`date` *d*, ``date." +"l'an 1 a l'ordinal 1. Pour tout objet :class:`date` *d*, ``date." "fromordinal(d.toordinal()) == d``." -#: ../Doc/library/datetime.rst:659 +#: library/datetime.rst:660 msgid "" "Return the day of the week as an integer, where Monday is 0 and Sunday is 6. " "For example, ``date(2002, 12, 4).weekday() == 2``, a Wednesday. See also :" @@ -1146,7 +1146,7 @@ msgstr "" "dimanche vaut 6. Par exemple, ``date(2002, 12, 4).weekday() == 2``, un " "mercredi. Voir aussi :meth:`isoweekday`." -#: ../Doc/library/datetime.rst:666 +#: library/datetime.rst:667 msgid "" "Return the day of the week as an integer, where Monday is 1 and Sunday is 7. " "For example, ``date(2002, 12, 4).isoweekday() == 3``, a Wednesday. See also :" @@ -1156,19 +1156,20 @@ msgstr "" "dimanche vaut 7. Par exemple, ``date(2002, 12, 4).isoweekday() == 3``, un " "mercredi. Voir aussi :meth:`weekday`, :meth:`isocalendar`." -#: ../Doc/library/datetime.rst:673 +#: library/datetime.rst:674 msgid "Return a 3-tuple, (ISO year, ISO week number, ISO weekday)." msgstr "" "Renvoie un *tuple* de 3 éléments, (année ISO, numéro de semaine ISO, jour de " "la semaine ISO)." -#: ../Doc/library/datetime.rst:675 +#: library/datetime.rst:676 msgid "" "The ISO calendar is a widely used variant of the Gregorian calendar. [#]_" msgstr "" +"Le calendrier ISO est une variante largement utilisée du calendrier " +"grégorien. [#]_" -#: ../Doc/library/datetime.rst:677 -#, fuzzy +#: library/datetime.rst:678 msgid "" "The ISO year consists of 52 or 53 full weeks, and where a week starts on a " "Monday and ends on a Sunday. The first week of an ISO year is the first " @@ -1177,61 +1178,53 @@ msgid "" "Gregorian year." msgstr "" "Une année ISO est composée de 52 ou 53 semaines pleines, où chaque semaine " -"débute un lundi et se termine un dimanche. La première semaine d'une année " +"débute un lundi et se termine un dimanche. La première semaine d'une année " "ISO est la première semaine calendaire (grégorienne) de l'année comportant " -"un jeudi. Elle est appelée la semaine numéro 1, et l'année ISO de ce " -"mercredi est la même que son année grégorienne." +"un jeudi. Elle est appelée la semaine numéro 1, et l'année ISO de ce jeudi " +"est la même que son année Grégorienne." -#: ../Doc/library/datetime.rst:682 -#, fuzzy +#: library/datetime.rst:683 msgid "" "For example, 2004 begins on a Thursday, so the first week of ISO year 2004 " "begins on Monday, 29 Dec 2003 and ends on Sunday, 4 Jan 2004::" msgstr "" "Par exemple, l'année 2004 débute un jeudi, donc la première semaine de " "l'année ISO 2004 débute le lundi 29 décembre 2003 et se termine le dimanche " -"4 janvier 2004, ainsi ``date(2003, 12, 29).isocalendar() == (2004, 1, 1)`` " -"et ``date(2004, 1, 4).isocalendar() == (2004, 1, 7)``." +"4 janvier 2004 ::" -#: ../Doc/library/datetime.rst:693 -#, fuzzy +#: library/datetime.rst:694 msgid "" "Return a string representing the date in ISO 8601 format, ``YYYY-MM-DD``::" msgstr "" "Renvoie une chaîne de caractères représentant la date au format ISO 8601, " -"\"YYYY-MM-DD\". Par exemple, ``date(2002, 12, 4).isoformat() == " -"'2002-12-04'``." +"\"YYYY-MM-DD\" ::" -#: ../Doc/library/datetime.rst:699 +#: library/datetime.rst:700 msgid "This is the inverse of :meth:`date.fromisoformat`." -msgstr "" +msgstr "C'est la réciproque de :meth:`date.fromisoformat`." -#: ../Doc/library/datetime.rst:703 +#: library/datetime.rst:704 msgid "For a date *d*, ``str(d)`` is equivalent to ``d.isoformat()``." msgstr "Pour une date *d*, ``str(d)`` est équivalent à ``d.isoformat()``." -#: ../Doc/library/datetime.rst:708 +#: library/datetime.rst:709 msgid "Return a string representing the date::" -msgstr "" +msgstr "Renvoie une chaîne de caractères représentant la date ::" -#: ../Doc/library/datetime.rst:714 ../Doc/library/datetime.rst:1491 +#: library/datetime.rst:1490 msgid "``d.ctime()`` is equivalent to::" -msgstr "" +msgstr "``d.ctime()`` est équivalent à ::" -#: ../Doc/library/datetime.rst:718 -#, fuzzy +#: library/datetime.rst:719 msgid "" "on platforms where the native C :c:func:`ctime` function (which :func:`time." "ctime` invokes, but which :meth:`date.ctime` does not invoke) conforms to " "the C standard." msgstr "" -"Renvoie une chaîne de caractères représentant la date, par exemple " -"``date(2002, 12, 4).ctime() == 'Wed Dec 4 00:00:00 2002'``. ``d.ctime()`` " -"est équivalent à ``time.ctime(time.mktime(d.timetuple()))`` sur les " -"plateformes où la fonction C native :c:func:`ctime` (que :func:`time.ctime` " -"invoque, mais pas :meth:`date.ctime`) est conforme au standard C." +"sur les plateformes où la fonction C native :c:func:`ctime` (que :func:`time." +"ctime` invoque, mais pas :meth:`date.ctime`) est conforme au standard C." -#: ../Doc/library/datetime.rst:725 +#: library/datetime.rst:726 msgid "" "Return a string representing the date, controlled by an explicit format " "string. Format codes referring to hours, minutes or seconds will see 0 " @@ -1243,7 +1236,7 @@ msgstr "" "heures, minutes ou secondes auront pour valeur 0. Pour une liste complète " "des directives de formatage, voir :ref:`strftime-strptime-behavior`." -#: ../Doc/library/datetime.rst:733 +#: library/datetime.rst:734 msgid "" "Same as :meth:`.date.strftime`. This makes it possible to specify a format " "string for a :class:`.date` object in :ref:`formatted string literals `__. This does not support parsing " -"arbitrary ISO 8601 strings - it is only intended as the inverse operation " -"of :meth:`datetime.isoformat`." +"parser.html#dateutil.parser.isoparse>`__." msgstr "" +"Ceci ne prend pas en charge l'analyse arbitraire des chaînes de caractères " +"ISO 8601 - il est uniquement destiné à l'opération réciproque de :meth:" +"`datetime.isoformat`. Un analyseur ISO 8601 plus complet, ``dateutil.parser." +"isoparse`` est disponible dans le paquet tiers `dateutil `__." -#: ../Doc/library/datetime.rst:1003 ../Doc/library/datetime.rst:1420 -#: ../Doc/library/datetime.rst:1767 -#, fuzzy +#: library/datetime.rst:1419 library/datetime.rst:1766 msgid "Examples::" -msgstr "Exemple :" +msgstr "Exemples ::" -#: ../Doc/library/datetime.rst:1022 +#: library/datetime.rst:1021 msgid "" "Return a :class:`.datetime` corresponding to the ISO calendar date specified " "by year, week and day. The non-date components of the datetime are populated " "with their normal default values. This is the inverse of the function :meth:" "`datetime.isocalendar`." msgstr "" +"Renvoie une classe :class:`.datetime` correspondant à la date du calendrier " +"ISO spécifiée par année, semaine et jour. Les composantes ne relevant pas de " +"la date de *datetime* sont renseignées avec leurs valeurs par défaut " +"normales. C'est la réciproque de la fonction :meth:`datetime.isocalendar`." -#: ../Doc/library/datetime.rst:1031 +#: library/datetime.rst:1030 msgid "" "Return a :class:`.datetime` corresponding to *date_string*, parsed according " "to *format*." msgstr "" +"Renvoie une classe :class:`.datetime` correspondant à *date_string*, " +"analysée selon *format*." -#: ../Doc/library/datetime.rst:1034 +#: library/datetime.rst:1033 msgid "This is equivalent to::" msgstr "C’est équivalent à ::" -#: ../Doc/library/datetime.rst:1038 -#, fuzzy +#: library/datetime.rst:1037 msgid "" ":exc:`ValueError` is raised if the date_string and format can't be parsed " "by :func:`time.strptime` or if it returns a value which isn't a time tuple. " "For a complete list of formatting directives, see :ref:`strftime-strptime-" "behavior`." msgstr "" -"Renvoie un :class:`.datetime` correspondant à la chaîne *date_string*, " -"analysée conformément à *format*. Cela est équivalent à ``datetime(*(time." -"strptime(date_string, format)[0:6]))``. Une :exc:`ValueError` est levée si " -"*date_string* et *format* ne peuvent être analysée par :func:`time.strptime` " -"ou si elle renvoie une valeur qui n'est pas un *tuple-temps*. Pour une liste " -"complète des directives de formatage, voir :ref:`strftime-strptime-behavior`." +"Une :exc:`ValueError` est levée si *date_string* et *format* ne peuvent être " +"analysés par :func:`time.strptime` ou si elle renvoie une valeur qui n'est " +"pas un *n*-uplet de temps. Pour une liste complète des directives de " +"formatage, voir :ref:`strftime-strptime-behavior`." -#: ../Doc/library/datetime.rst:1049 +#: library/datetime.rst:1048 msgid "" "The earliest representable :class:`.datetime`, ``datetime(MINYEAR, 1, 1, " "tzinfo=None)``." @@ -1681,7 +1671,7 @@ msgstr "" "Le plus ancien :class:`.datetime` représentable, ``datetime(MINYEAR, 1, 1, " "tzinfo=None)``." -#: ../Doc/library/datetime.rst:1055 +#: library/datetime.rst:1054 msgid "" "The latest representable :class:`.datetime`, ``datetime(MAXYEAR, 12, 31, 23, " "59, 59, 999999, tzinfo=None)``." @@ -1689,7 +1679,7 @@ msgstr "" "Le dernier :class:`.datetime` représentable, ``datetime(MAXYEAR, 12, 31, 23, " "59, 59, 999999, tzinfo=None)``." -#: ../Doc/library/datetime.rst:1061 +#: library/datetime.rst:1060 msgid "" "The smallest possible difference between non-equal :class:`.datetime` " "objects, ``timedelta(microseconds=1)``." @@ -1697,20 +1687,19 @@ msgstr "" "La plus petite différence possible entre deux objets :class:`.datetime` non-" "égaux, ``timedelta(microseconds=1)``." -#: ../Doc/library/datetime.rst:1084 ../Doc/library/datetime.rst:1687 +#: library/datetime.rst:1686 msgid "In ``range(24)``." msgstr "Dans ``range(24)``." -#: ../Doc/library/datetime.rst:1089 ../Doc/library/datetime.rst:1094 -#: ../Doc/library/datetime.rst:1692 ../Doc/library/datetime.rst:1697 +#: library/datetime.rst:1093 library/datetime.rst:1696 msgid "In ``range(60)``." msgstr "Dans ``range(60)``." -#: ../Doc/library/datetime.rst:1099 ../Doc/library/datetime.rst:1702 +#: library/datetime.rst:1701 msgid "In ``range(1000000)``." msgstr "Dans ``range(1000000)``." -#: ../Doc/library/datetime.rst:1104 +#: library/datetime.rst:1103 msgid "" "The object passed as the *tzinfo* argument to the :class:`.datetime` " "constructor, or ``None`` if none was passed." @@ -1718,8 +1707,7 @@ msgstr "" "L'objet passé en tant que paramètre *tzinfo* du constructeur de la classe :" "class:`.datetime` ou ``None`` si aucun n'a été donné." -#: ../Doc/library/datetime.rst:1110 ../Doc/library/datetime.rst:1713 -#, fuzzy +#: library/datetime.rst:1712 msgid "" "In ``[0, 1]``. Used to disambiguate wall times during a repeated interval. " "(A repeated interval occurs when clocks are rolled back at the end of " @@ -1727,44 +1715,42 @@ msgid "" "decreased for political reasons.) The value 0 (1) represents the earlier " "(later) of the two moments with the same wall time representation." msgstr "" -"``0`` ou ``1``. Utilisé pour désambiguïser les heures dans un intervalle " -"répété. (Un intervalle répété apparaît quand l'horloge est retardée à la " -"fin de l'heure d'été ou quand le décalage UTC du fuseau courant et " +"Dans ``[0, 1]``. Utilisé pour désambiguïser les heures dans un intervalle " +"répété. (Un intervalle répété apparaît quand l'horloge est retardée à la fin " +"de l'heure d'été ou quand le décalage horaire UTC du fuseau courant est " "décrémenté pour des raisons politiques.) La valeur 0 (1) représente le plus " "ancien (récent) des deux moments représentés par la même heure." -#: ../Doc/library/datetime.rst:1123 +#: library/datetime.rst:1122 msgid "``datetime2 = datetime1 + timedelta``" msgstr "``datetime2 = datetime1 + timedelta``" -#: ../Doc/library/datetime.rst:1123 ../Doc/library/datetime.rst:2305 -#: ../Doc/library/datetime.rst:2310 ../Doc/library/datetime.rst:2322 -#: ../Doc/library/datetime.rst:2327 ../Doc/library/datetime.rst:2387 -#: ../Doc/library/datetime.rst:2392 ../Doc/library/datetime.rst:2396 +#: library/datetime.rst:2304 library/datetime.rst:2321 +#: library/datetime.rst:2386 library/datetime.rst:2395 msgid "\\(1)" msgstr "\\(1)" -#: ../Doc/library/datetime.rst:1125 +#: library/datetime.rst:1124 msgid "``datetime2 = datetime1 - timedelta``" msgstr "``datetime2 = datetime1 - timedelta``" -#: ../Doc/library/datetime.rst:1125 ../Doc/library/datetime.rst:2338 +#: library/datetime.rst:2337 msgid "\\(2)" msgstr "\\(2)" -#: ../Doc/library/datetime.rst:1127 +#: library/datetime.rst:1126 msgid "``timedelta = datetime1 - datetime2``" msgstr "``timedelta = datetime1 - datetime2``" -#: ../Doc/library/datetime.rst:1129 +#: library/datetime.rst:1128 msgid "``datetime1 < datetime2``" msgstr "``datetime1 < datetime2``" -#: ../Doc/library/datetime.rst:1129 +#: library/datetime.rst:1128 msgid "Compares :class:`.datetime` to :class:`.datetime`. (4)" msgstr "Compare :class:`.datetime` à :class:`.datetime`. (4)" -#: ../Doc/library/datetime.rst:1134 +#: library/datetime.rst:1133 #, fuzzy msgid "" "datetime2 is a duration of timedelta removed from datetime1, moving forward " @@ -1784,7 +1770,7 @@ msgstr "" "qu'aucun ajustement de fuseau horaire n'est réalisé même si l'entrée est " "avisée." -#: ../Doc/library/datetime.rst:1143 +#: library/datetime.rst:1142 msgid "" "Computes the datetime2 such that datetime2 + timedelta == datetime1. As for " "addition, the result has the same :attr:`~.datetime.tzinfo` attribute as the " @@ -1796,7 +1782,7 @@ msgstr "" "que le *datetime* d'entrée, et aucun ajustement de fuseau horaire n'est " "réalisé même si l'entrée est avisée." -#: ../Doc/library/datetime.rst:1148 +#: library/datetime.rst:1147 #, fuzzy msgid "" "Subtraction of a :class:`.datetime` from a :class:`.datetime` is defined " @@ -1808,7 +1794,7 @@ msgstr "" "avisés. Si l'un est avisé et que l'autre est naïf, une :exc:`TypeError` est " "levée." -#: ../Doc/library/datetime.rst:1152 +#: library/datetime.rst:1151 #, fuzzy msgid "" "If both are naive, or both are aware and have the same :attr:`~.datetime." @@ -1822,7 +1808,7 @@ msgstr "" "``datetime2 + t == datetime1``. Aucun ajustement de fuseau horaire n'a lieu " "dans ce cas." -#: ../Doc/library/datetime.rst:1157 +#: library/datetime.rst:1156 #, fuzzy msgid "" "If both are aware and have different :attr:`~.datetime.tzinfo` attributes, " @@ -1837,7 +1823,7 @@ msgstr "" "a.utcoffset()) - (b.replace(tzinfo=None) - b.utcoffset())`` à l'exception " "que l'implémentation ne produit jamais de débordement." -#: ../Doc/library/datetime.rst:1163 +#: library/datetime.rst:1162 msgid "" "*datetime1* is considered less than *datetime2* when *datetime1* precedes " "*datetime2* in time." @@ -1845,7 +1831,7 @@ msgstr "" "*datetime1* est considéré inférieur à *datetime2* quand il le précède dans " "le temps." -#: ../Doc/library/datetime.rst:1166 +#: library/datetime.rst:1165 #, fuzzy msgid "" "If one comparand is naive and the other is aware, :exc:`TypeError` is raised " @@ -1856,7 +1842,7 @@ msgstr "" "une comparaison d'ordre est attendue. Pour les comparaisons d'égalité, les " "instances naïves ne sont jamais égales aux instances avisées." -#: ../Doc/library/datetime.rst:1170 +#: library/datetime.rst:1169 #, fuzzy msgid "" "If both comparands are aware, and have the same :attr:`~.datetime.tzinfo` " @@ -1873,7 +1859,7 @@ msgstr "" "premièrement ajustés en soustrayant leurs décalages UTC (obtenus depuis " "``self.utcoffset()``)." -#: ../Doc/library/datetime.rst:1176 +#: library/datetime.rst:1175 #, fuzzy msgid "" "Equality comparisons between aware and naive :class:`.datetime` instances " @@ -1882,7 +1868,7 @@ msgstr "" "Les comparaisons d'égalité entre des instances :class:`.datetime` naïves et " "avisées ne lèvent pas de :exc:`TypeError`." -#: ../Doc/library/datetime.rst:1182 +#: library/datetime.rst:1181 #, fuzzy msgid "" "In order to stop comparison from falling back to the default scheme of " @@ -1906,11 +1892,11 @@ msgstr "" "comparaison soit ``==`` ou ``!=``. Ces derniers cas renvoient " "respectivement :const:`False` et :const:`True`." -#: ../Doc/library/datetime.rst:1196 +#: library/datetime.rst:1195 msgid "Return :class:`date` object with same year, month and day." msgstr "Renvoie un objet :class:`date` avec les mêmes année, mois et jour." -#: ../Doc/library/datetime.rst:1201 +#: library/datetime.rst:1200 #, fuzzy msgid "" "Return :class:`.time` object with same hour, minute, second, microsecond and " @@ -1920,11 +1906,11 @@ msgstr "" "microseconde et *fold*. :attr:`.tzinfo` est ``None``. Voir aussi la " "méthode :meth:`timetz`." -#: ../Doc/library/datetime.rst:1204 ../Doc/library/datetime.rst:1213 +#: library/datetime.rst:1212 msgid "The fold value is copied to the returned :class:`.time` object." msgstr "La valeur *fold* est copiée vers l'objet :class:`.time` renvoyé." -#: ../Doc/library/datetime.rst:1210 +#: library/datetime.rst:1209 #, fuzzy msgid "" "Return :class:`.time` object with same hour, minute, second, microsecond, " @@ -1934,7 +1920,7 @@ msgstr "" "seconde, microseconde, *fold* et *tzinfo*. Voir aussi la méthode :meth:" "`time`." -#: ../Doc/library/datetime.rst:1221 +#: library/datetime.rst:1220 #, fuzzy msgid "" "Return a datetime with the same attributes, except for those attributes " @@ -1947,7 +1933,7 @@ msgstr "" "Notez que ``tzinfo=None`` peut être spécifié pour créer un *datetime* naïf " "depuis un *datetime* avisé sans conversion de la date ou de l'heure." -#: ../Doc/library/datetime.rst:1232 +#: library/datetime.rst:1231 msgid "" "Return a :class:`.datetime` object with new :attr:`.tzinfo` attribute *tz*, " "adjusting the date and time data so the result is the same UTC time as " @@ -1957,7 +1943,7 @@ msgstr "" "valant *tz*, ajustant la date et l'heure pour que le résultat soit le même " "temps UTC que *self*, mais dans le temps local au fuseau *tz*." -#: ../Doc/library/datetime.rst:1236 +#: library/datetime.rst:1235 #, fuzzy msgid "" "If provided, *tz* must be an instance of a :class:`tzinfo` subclass, and " @@ -1969,7 +1955,7 @@ msgstr "" "``None``. Si *self* est naïf, Python considère que le temps est exprimé " "dans le fuseau horaire du système." -#: ../Doc/library/datetime.rst:1240 +#: library/datetime.rst:1239 #, fuzzy msgid "" "If called without arguments (or with ``tz=None``) the system local timezone " @@ -1982,7 +1968,7 @@ msgstr "" "l'instance *datetime* convertie aura pour valeur une instance de :class:" "`timezone` avec le nom de fuseau et le décalage obtenus depuis l'OS." -#: ../Doc/library/datetime.rst:1245 +#: library/datetime.rst:1244 msgid "" "If ``self.tzinfo`` is *tz*, ``self.astimezone(tz)`` is equal to *self*: no " "adjustment of date or time data is performed. Else the result is local time " @@ -1996,7 +1982,7 @@ msgstr "" "après ``astz = dt.astimezone(tz)``, ``astz - astz.utcoffset()`` aura les " "mêmes données de date et d'heure que ``dt - dt.utcoffset()``." -#: ../Doc/library/datetime.rst:1251 +#: library/datetime.rst:1250 #, fuzzy msgid "" "If you merely want to attach a time zone object *tz* to a datetime *dt* " @@ -2010,7 +1996,7 @@ msgstr "" "d'un *datetime* *dt* avisé sans conversion des données de date et d'heure, " "utilisez ``dt.replace(tzinfo=None)``." -#: ../Doc/library/datetime.rst:1256 +#: library/datetime.rst:1255 msgid "" "Note that the default :meth:`tzinfo.fromutc` method can be overridden in a :" "class:`tzinfo` subclass to affect the result returned by :meth:`astimezone`. " @@ -2019,13 +2005,13 @@ msgstr "" "Notez que la méthode par défaut :meth:`tzinfo.fromutc` peut être redéfinie " "dans une sous-classe :class:`tzinfo` pour affecter le résultat renvoyé par :" "meth:`astimezone`. En ignorant les cas d'erreurs, :meth:`astimezone` se " -"comporte comme : ::" +"comporte comme ::" -#: ../Doc/library/datetime.rst:1268 +#: library/datetime.rst:1267 msgid "*tz* now can be omitted." msgstr "*tz* peut maintenant être omis." -#: ../Doc/library/datetime.rst:1271 +#: library/datetime.rst:1270 msgid "" "The :meth:`astimezone` method can now be called on naive instances that are " "presumed to represent system local time." @@ -2033,7 +2019,7 @@ msgstr "" "La méthode :meth:`astimezone` peut maintenant être appelée sur des instances " "naïves qui sont supposées représenter un temps local au système." -#: ../Doc/library/datetime.rst:1278 +#: library/datetime.rst:1277 msgid "" "If :attr:`.tzinfo` is ``None``, returns ``None``, else returns ``self.tzinfo." "utcoffset(self)``, and raises an exception if the latter doesn't return " @@ -2044,13 +2030,12 @@ msgstr "" "ne renvoie pas ``None`` ou un objet :class:`timedelta` d'une magnitude " "inférieure à un jour." -#: ../Doc/library/datetime.rst:1282 ../Doc/library/datetime.rst:1865 -#: ../Doc/library/datetime.rst:1971 ../Doc/library/datetime.rst:2217 -#: ../Doc/library/datetime.rst:2229 ../Doc/library/datetime.rst:2525 +#: library/datetime.rst:1864 library/datetime.rst:2216 +#: library/datetime.rst:2524 msgid "The UTC offset is not restricted to a whole number of minutes." msgstr "Le décalage UTC peut aussi être autre chose qu'un ensemble de minutes." -#: ../Doc/library/datetime.rst:1288 +#: library/datetime.rst:1287 msgid "" "If :attr:`.tzinfo` is ``None``, returns ``None``, else returns ``self.tzinfo." "dst(self)``, and raises an exception if the latter doesn't return ``None`` " @@ -2061,12 +2046,11 @@ msgstr "" "renvoie pas ``None`` ou un objet :class:`timedelta` d'une magnitude " "inférieure à un jour." -#: ../Doc/library/datetime.rst:1292 ../Doc/library/datetime.rst:1875 -#: ../Doc/library/datetime.rst:2025 +#: library/datetime.rst:1874 library/datetime.rst:2024 msgid "The DST offset is not restricted to a whole number of minutes." msgstr "Le décalage DST n'est pas restreint à des minutes entières." -#: ../Doc/library/datetime.rst:1298 +#: library/datetime.rst:1297 msgid "" "If :attr:`.tzinfo` is ``None``, returns ``None``, else returns ``self.tzinfo." "tzname(self)``, raises an exception if the latter doesn't return ``None`` or " @@ -2076,7 +2060,7 @@ msgstr "" "tzinfo.tzname(self)``, lève une exception si l'expression précédente ne " "renvoie pas ``None`` ou une chaîne de caractères," -#: ../Doc/library/datetime.rst:1313 +#: library/datetime.rst:1312 #, fuzzy msgid "" "where ``yday = d.toordinal() - date(d.year, 1, 1).toordinal() + 1`` is the " @@ -2097,7 +2081,7 @@ msgstr "" "une valeur non-nulle, :attr:`tm_isdst` est mise à ``1`` ; sinon :attr:" "`tm_isdst` est mise à ``0``." -#: ../Doc/library/datetime.rst:1324 +#: library/datetime.rst:1323 #, fuzzy msgid "" "If :class:`.datetime` instance *d* is naive, this is the same as ``d." @@ -2109,7 +2093,7 @@ msgstr "" "de ce que renvoie ``d.dst()``. L'heure d'été n'est jamais effective pour un " "temps UTC." -#: ../Doc/library/datetime.rst:1328 +#: library/datetime.rst:1327 #, fuzzy msgid "" "If *d* is aware, *d* is normalized to UTC time, by subtracting ``d." @@ -2124,7 +2108,7 @@ msgstr "" "`OverflowError` peut être levée si *d.year* vaut ``MINYEAR``ou ``MAXYEAR`` " "et que l'ajustement UTC fait dépasser les bornes." -#: ../Doc/library/datetime.rst:1337 +#: library/datetime.rst:1336 msgid "" "Because naive ``datetime`` objects are treated by many ``datetime`` methods " "as local times, it is preferred to use aware datetimes to represent times in " @@ -2133,28 +2117,33 @@ msgid "" "replace(tzinfo=timezone.utc)`` to make it aware, at which point you can use :" "meth:`.datetime.timetuple`." msgstr "" +"Comme les objets ``datetime`` naïfs sont traités par de nombreuses méthodes " +"``datetime`` comme des heures locales, il est préférable d'utiliser les " +"``datetime`` avisés pour représenter les heures en UTC ; par conséquent, " +"l'utilisation de ``utcfromtimetuple`` peut donner des résultats trompeurs. " +"Si vous disposez d'une ``datetime`` naïve représentant l'heure UTC, utilisez " +"``datetime.replace(tzinfo=timezone.utc)`` pour la rendre avisée, puis vous " +"pouvez utiliser :meth:`.datetime.timetuple`." -#: ../Doc/library/datetime.rst:1346 -#, fuzzy +#: library/datetime.rst:1345 msgid "" "Return the proleptic Gregorian ordinal of the date. The same as ``self." "date().toordinal()``." msgstr "" -"Renvoie l'ordinal du calendrier géorgien proleptique de cette date. " +"Renvoie l'ordinal du calendrier grégorien proleptique de cette date. " "Identique à ``self.date().toordinal()``." -#: ../Doc/library/datetime.rst:1351 -#, fuzzy +#: library/datetime.rst:1350 msgid "" "Return POSIX timestamp corresponding to the :class:`.datetime` instance. The " "return value is a :class:`float` similar to that returned by :func:`time." "time`." msgstr "" -"Renvoie l'horodatage (*timestamp* en anglais) *POSIX* correspondant à " -"l'instance :class:`.datetime`. La valeur renvoyée est un :class:`float` " -"similaire à ceux renvoyés par :func:`time.time`." +"Renvoie l'horodatage *POSIX* correspondant à l'instance :class:`.datetime`. " +"La valeur renvoyée est un :class:`float` similaire à ceux renvoyés par :func:" +"`time.time`." -#: ../Doc/library/datetime.rst:1355 +#: library/datetime.rst:1354 #, fuzzy msgid "" "Naive :class:`.datetime` instances are assumed to represent local time and " @@ -2170,14 +2159,14 @@ msgstr "" "plateformes, cette méthode peut lever une :exc:`OverflowError` pour les " "temps trop éloignés dans le passé ou le futur." -#: ../Doc/library/datetime.rst:1362 +#: library/datetime.rst:1361 msgid "" "For aware :class:`.datetime` instances, the return value is computed as::" msgstr "" "Pour les instances :class:`.datetime` avisées, la valeur renvoyée est " -"calculée comme suit : ::" +"calculée comme suit ::" -#: ../Doc/library/datetime.rst:1369 +#: library/datetime.rst:1368 msgid "" "The :meth:`timestamp` method uses the :attr:`.fold` attribute to " "disambiguate the times during a repeated interval." @@ -2185,7 +2174,7 @@ msgstr "" "La méthode :meth:`timestamp` utilise l'attribut :attr:`.fold` pour " "désambiguïser le temps dans un intervalle répété." -#: ../Doc/library/datetime.rst:1375 +#: library/datetime.rst:1374 #, fuzzy msgid "" "There is no method to obtain the POSIX timestamp directly from a naive :" @@ -2197,13 +2186,13 @@ msgstr "" "*POSIX* directement depuis une instance :class:`.datetime` naïve " "représentant un temps UTC. Si votre application utilise cette convention et " "que le fuseau horaire de votre système est UTC, vous pouvez obtenir " -"l'horodatage *POSIX* en fournissant ``tzinfo=timezone.utc`` : ::" +"l'horodatage *POSIX* en fournissant ``tzinfo=timezone.utc`` ::" -#: ../Doc/library/datetime.rst:1383 +#: library/datetime.rst:1382 msgid "or by calculating the timestamp directly::" -msgstr "ou en calculant l'horodatage (*timestamp* en anglais) directement : ::" +msgstr "ou en calculant l'horodatage (*timestamp* en anglais) directement ::" -#: ../Doc/library/datetime.rst:1389 +#: library/datetime.rst:1388 msgid "" "Return the day of the week as an integer, where Monday is 0 and Sunday is 6. " "The same as ``self.date().weekday()``. See also :meth:`isoweekday`." @@ -2212,7 +2201,7 @@ msgstr "" "dimanche vaut 6. Identique à ``self.date().weekday()``. Voir aussi :meth:" "`isoweekday`." -#: ../Doc/library/datetime.rst:1395 +#: library/datetime.rst:1394 msgid "" "Return the day of the week as an integer, where Monday is 1 and Sunday is 7. " "The same as ``self.date().isoweekday()``. See also :meth:`weekday`, :meth:" @@ -2222,7 +2211,7 @@ msgstr "" "dimanche vaut 7. Identique à ``self.date().isoweekday()``. Voir aussi :meth:" "`weekday`, :meth:`isocalendar`." -#: ../Doc/library/datetime.rst:1402 +#: library/datetime.rst:1401 #, fuzzy msgid "" "Return a 3-tuple, (ISO year, ISO week number, ISO weekday). The same as " @@ -2231,53 +2220,51 @@ msgstr "" "Renvoie un *tuple* de 3 éléments, (année ISO, numéro de semaine ISO, jour de " "la semaine ISO). Identique à ``self.date().isocalendar()``." -#: ../Doc/library/datetime.rst:1408 -#, fuzzy +#: library/datetime.rst:1407 msgid "Return a string representing the date and time in ISO 8601 format:" msgstr "" -"Renvoie une chaîne représentant la date et l'heure au format ISO 8601, *YYYY-" -"MM-DDTHH:MM:SS.ffffff* ou, si :attr:`microsecond` vaut 0, *YYYY-MM-DDTHH:MM:" -"SS*" +"Renvoie une chaîne représentant la date et l'heure au format ISO 8601 :" -#: ../Doc/library/datetime.rst:1410 +#: library/datetime.rst:1409 msgid "``YYYY-MM-DDTHH:MM:SS.ffffff``, if :attr:`microsecond` is not 0" -msgstr "" +msgstr "``YYYY-MM-DDTHH:MM:SS.ffffff``, si :attr:`microsecond` ne vaut pas 0" -#: ../Doc/library/datetime.rst:1411 +#: library/datetime.rst:1410 msgid "``YYYY-MM-DDTHH:MM:SS``, if :attr:`microsecond` is 0" -msgstr "" +msgstr "``YYYY-MM-DDTHH:MM:SS``, si :attr:`microsecond` vaut 0" -#: ../Doc/library/datetime.rst:1413 -#, fuzzy +#: library/datetime.rst:1412 msgid "" "If :meth:`utcoffset` does not return ``None``, a string is appended, giving " "the UTC offset:" msgstr "" -"Si :meth:`utcoffset` ne renvoie pas ``None``, :meth:`dst` ne doit pas non " -"plus renvoyer ``None``." +"Si :meth:`utcoffset` ne renvoie pas ``None``, une chaîne est ajoutée, " +"donnant le décalage UTC :" -#: ../Doc/library/datetime.rst:1416 +#: library/datetime.rst:1415 msgid "" "``YYYY-MM-DDTHH:MM:SS.ffffff+HH:MM[:SS[.ffffff]]``, if :attr:`microsecond` " "is not 0" msgstr "" +"``YYYY-MM-DDTHH:MM:SS.ffffff+HH:MM[:SS[.ffffff]]``, si :attr:`microsecond` " +"ne vaut pas 0" -#: ../Doc/library/datetime.rst:1418 +#: library/datetime.rst:1417 msgid "" "``YYYY-MM-DDTHH:MM:SS+HH:MM[:SS[.ffffff]]``, if :attr:`microsecond` is 0" msgstr "" +"``YYYY-MM-DDTHH:MM:SS+HH:MM[:SS[.ffffff]]``, si :attr:`microsecond` vaut 0" -#: ../Doc/library/datetime.rst:1428 -#, fuzzy +#: library/datetime.rst:1427 msgid "" "The optional argument *sep* (default ``'T'``) is a one-character separator, " "placed between the date and time portions of the result. For example::" msgstr "" -"L'argument optionnel *sep* (valant par défaut ``'T'``) est un séparateur " -"d'un caractère, placé entre les portions du résultat correspondant à la date " -"et à l'heure. Par exemple," +"L'argument optionnel *sep* (par défaut ``'T'``) est un séparateur d'un " +"caractère, placé entre les portions du résultat correspondant à la date et à " +"l'heure. Par exemple ::" -#: ../Doc/library/datetime.rst:1442 ../Doc/library/datetime.rst:1803 +#: library/datetime.rst:1802 msgid "" "The optional argument *timespec* specifies the number of additional " "components of the time to include (the default is ``'auto'``). It can be one " @@ -2287,7 +2274,7 @@ msgstr "" "additionnels de temps à inclure (par défaut ``'auto'``). Il peut valoir " "l'une des valeurs suivantes :" -#: ../Doc/library/datetime.rst:1446 ../Doc/library/datetime.rst:1807 +#: library/datetime.rst:1806 msgid "" "``'auto'``: Same as ``'seconds'`` if :attr:`microsecond` is 0, same as " "``'microseconds'`` otherwise." @@ -2295,18 +2282,17 @@ msgstr "" "``'auto'`` : Identique à ``'seconds'`` si :attr:`microsecond` vaut 0, à " "``'microseconds'`` sinon." -#: ../Doc/library/datetime.rst:1448 ../Doc/library/datetime.rst:1809 -#, fuzzy +#: library/datetime.rst:1808 msgid "``'hours'``: Include the :attr:`hour` in the two-digit ``HH`` format." -msgstr "``'hours'`` : Inclut :attr:`hour` au format à deux chiffres HH." +msgstr "``'hours'`` : Inclut :attr:`hour` au format à deux chiffres ``HH``." -#: ../Doc/library/datetime.rst:1449 ../Doc/library/datetime.rst:1810 -#, fuzzy +#: library/datetime.rst:1809 msgid "" "``'minutes'``: Include :attr:`hour` and :attr:`minute` in ``HH:MM`` format." -msgstr "``'minutes'`` : Inclut :attr:`hour` et :attr:`minute` au format HH:MM." +msgstr "" +"``'minutes'`` : Inclut :attr:`hour` et :attr:`minute` au format ``HH:MM``." -#: ../Doc/library/datetime.rst:1450 ../Doc/library/datetime.rst:1811 +#: library/datetime.rst:1810 #, fuzzy msgid "" "``'seconds'``: Include :attr:`hour`, :attr:`minute`, and :attr:`second` in " @@ -2315,7 +2301,7 @@ msgstr "" "``'seconds'`` : Inclut :attr:`hour`, :attr:`minute` et :attr:`second` au " "format ``HH:MM:SS``." -#: ../Doc/library/datetime.rst:1452 ../Doc/library/datetime.rst:1813 +#: library/datetime.rst:1812 #, fuzzy msgid "" "``'milliseconds'``: Include full time, but truncate fractional second part " @@ -2324,27 +2310,26 @@ msgstr "" "``'milliseconds'`` : Inclut le temps complet, mais tronque la partie " "fractionnaire des millisecondes, au format ``HH:MM:SS.sss``." -#: ../Doc/library/datetime.rst:1454 ../Doc/library/datetime.rst:1815 +#: library/datetime.rst:1814 #, fuzzy msgid "``'microseconds'``: Include full time in ``HH:MM:SS.ffffff`` format." msgstr "" "``'microseconds'`` : Inclut le temps complet, au format ``HH:MM:SS.ffffff``." -#: ../Doc/library/datetime.rst:1458 ../Doc/library/datetime.rst:1819 +#: library/datetime.rst:1818 msgid "Excluded time components are truncated, not rounded." msgstr "Les composants de temps exclus sont tronqués et non arrondis." -#: ../Doc/library/datetime.rst:1460 -#, fuzzy +#: library/datetime.rst:1459 msgid ":exc:`ValueError` will be raised on an invalid *timespec* argument::" msgstr "" -"Une :exc:`ValueError` sera levée en cas d'argument *timespec* invalide." +"Une :exc:`ValueError` est levée en cas d'argument *timespec* invalide ::" -#: ../Doc/library/datetime.rst:1470 ../Doc/library/datetime.rst:1834 +#: library/datetime.rst:1833 msgid "Added the *timespec* argument." msgstr "Ajout de l'argument *timespec*." -#: ../Doc/library/datetime.rst:1476 +#: library/datetime.rst:1475 msgid "" "For a :class:`.datetime` instance *d*, ``str(d)`` is equivalent to ``d." "isoformat(' ')``." @@ -2352,17 +2337,19 @@ msgstr "" "Pour une instance *d* de :class:`.datetime`, ``str(d)`` est équivalent à ``d." "isoformat(' ')``." -#: ../Doc/library/datetime.rst:1482 +#: library/datetime.rst:1481 msgid "Return a string representing the date and time::" -msgstr "" +msgstr "Renvoie une chaîne de caractères représentant la date et l'heure ::" -#: ../Doc/library/datetime.rst:1488 +#: library/datetime.rst:1487 msgid "" "The output string will *not* include time zone information, regardless of " "whether the input is aware or naive." msgstr "" +"La chaîne de caractères en sortie n'inclura *pas* d'informations sur le " +"fuseau horaire, que l'entrée soit avisée ou naïve." -#: ../Doc/library/datetime.rst:1495 +#: library/datetime.rst:1494 #, fuzzy msgid "" "on platforms where the native C :c:func:`ctime` function (which :func:`time." @@ -2375,7 +2362,7 @@ msgstr "" "plateformes où la fonction C native :c:func:`ctime` (que :func:`time.ctime` " "invoque, mais pas :meth:`date.ctime`) est conforme au standard C." -#: ../Doc/library/datetime.rst:1501 +#: library/datetime.rst:1500 #, fuzzy msgid "" "Return a string representing the date and time, controlled by an explicit " @@ -2386,7 +2373,7 @@ msgstr "" "de format explicite. Pour une liste complète des directives de formatage, " "voir :ref:`strftime-strptime-behavior`." -#: ../Doc/library/datetime.rst:1508 +#: library/datetime.rst:1507 #, fuzzy msgid "" "Same as :meth:`.datetime.strftime`. This makes it possible to specify a " @@ -2400,32 +2387,33 @@ msgstr "" "une liste complète des directives de formatage, voir :ref:`strftime-strptime-" "behavior`." -#: ../Doc/library/datetime.rst:1515 -#, fuzzy +#: library/datetime.rst:1514 msgid "Examples of Usage: :class:`.datetime`" -msgstr "Exemple d'utilisation de la classe :class:`date` :" +msgstr "Exemple d'utilisation de la classe :class:`.datetime` :" -#: ../Doc/library/datetime.rst:1517 -#, fuzzy +#: library/datetime.rst:1516 msgid "Examples of working with :class:`~datetime.datetime` objects:" -msgstr "Exemples d'utilisation des objets *datetime* :" +msgstr "Exemples d'utilisation des objets :class:`~datetime.datetime` :" -#: ../Doc/library/datetime.rst:1570 +#: library/datetime.rst:1569 msgid "" "The example below defines a :class:`tzinfo` subclass capturing time zone " "information for Kabul, Afghanistan, which used +4 UTC until 1945 and then " "+4:30 UTC thereafter::" msgstr "" +"L'exemple ci-dessous définit une sous-classe :class:`tzinfo` qui regroupe " +"des informations sur les fuseaux horaires pour Kaboul, en Afghanistan, qui a " +"utilisé +4 UTC jusqu'en 1945, puis +4:30 UTC par la suite ::" -#: ../Doc/library/datetime.rst:1617 +#: library/datetime.rst:1616 msgid "Usage of ``KabulTz`` from above::" -msgstr "" +msgstr "Utilisation de ``KabulTz`` cité plus haut ::" -#: ../Doc/library/datetime.rst:1643 +#: library/datetime.rst:1642 msgid ":class:`.time` Objects" msgstr "Objets :class:`.time`" -#: ../Doc/library/datetime.rst:1645 +#: library/datetime.rst:1644 #, fuzzy msgid "" "A :class:`time` object represents a (local) time of day, independent of any " @@ -2434,7 +2422,7 @@ msgstr "" "Un objet *time* représente une heure (locale) du jour, indépendante de tout " "jour particulier, et sujette à des ajustements par un objet :class:`tzinfo`." -#: ../Doc/library/datetime.rst:1650 +#: library/datetime.rst:1649 #, fuzzy msgid "" "All arguments are optional. *tzinfo* may be ``None``, or an instance of a :" @@ -2445,7 +2433,7 @@ msgstr "" "instance d'une sous-classe :class:`tzinfo`. Les autres arguments doivent " "être des nombres entiers, dans les intervalles suivants :" -#: ../Doc/library/datetime.rst:1660 +#: library/datetime.rst:1659 #, fuzzy msgid "" "If an argument outside those ranges is given, :exc:`ValueError` is raised. " @@ -2455,18 +2443,18 @@ msgstr "" "levée. Ils valent tous ``0`` par défaut, à l'exception de *tzinfo* qui " "vaut :const:`None`." -#: ../Doc/library/datetime.rst:1668 +#: library/datetime.rst:1667 msgid "The earliest representable :class:`.time`, ``time(0, 0, 0, 0)``." msgstr "" "Le plus petit objet :class:`.time` représentable, ``time(0, 0, 0, 0)``." -#: ../Doc/library/datetime.rst:1673 +#: library/datetime.rst:1672 msgid "The latest representable :class:`.time`, ``time(23, 59, 59, 999999)``." msgstr "" "Le plus grand objet :class:`.time` représentable, ``time(23, 59, 59, " "999999)``." -#: ../Doc/library/datetime.rst:1678 +#: library/datetime.rst:1677 msgid "" "The smallest possible difference between non-equal :class:`.time` objects, " "``timedelta(microseconds=1)``, although note that arithmetic on :class:`." @@ -2476,7 +2464,7 @@ msgstr "" "égaux, ``timedelta(microseconds=1)``, notez cependant que les objets :class:" "`.time` n'implémentent pas d'opérations arithmétiques." -#: ../Doc/library/datetime.rst:1707 +#: library/datetime.rst:1706 msgid "" "The object passed as the tzinfo argument to the :class:`.time` constructor, " "or ``None`` if none was passed." @@ -2484,7 +2472,7 @@ msgstr "" "L'objet passé comme argument *tzinfo* au constructeur de :class:`.time`, ou " "``None`` si aucune valeur n'a été passée." -#: ../Doc/library/datetime.rst:1721 +#: library/datetime.rst:1720 #, fuzzy msgid "" ":class:`.time` objects support comparison of :class:`.time` to :class:`." @@ -2499,7 +2487,7 @@ msgstr "" "`TypeError` est levée. Pour les égalités, les instances naïves ne sont " "jamais égales aux instances avisées." -#: ../Doc/library/datetime.rst:1727 +#: library/datetime.rst:1726 #, fuzzy msgid "" "If both comparands are aware, and have the same :attr:`~time.tzinfo` " @@ -2524,7 +2512,7 @@ msgstr "" "que la comparaison soit ``==`` ou ``!=``. Ces derniers cas renvoient " "respectivement :const:`False` et :const:`True`." -#: ../Doc/library/datetime.rst:1737 +#: library/datetime.rst:1736 #, fuzzy msgid "" "Equality comparisons between aware and naive :class:`~datetime.time` " @@ -2533,7 +2521,7 @@ msgstr "" "Les comparaisons d'égalité entre instances de :class:`~datetime.time` naïves " "et avisées ne lèvent pas de :exc:`TypeError`." -#: ../Doc/library/datetime.rst:1741 +#: library/datetime.rst:1740 #, fuzzy msgid "" "In Boolean contexts, a :class:`.time` object is always considered to be true." @@ -2541,7 +2529,7 @@ msgstr "" "Dans un contexte booléen, un objet :class:`.time` est toujours considéré " "comme vrai." -#: ../Doc/library/datetime.rst:1743 +#: library/datetime.rst:1742 #, fuzzy msgid "" "Before Python 3.5, a :class:`.time` object was considered to be false if it " @@ -2554,11 +2542,11 @@ msgstr "" "propice aux erreurs, il a été supprimé en Python 3.5. Voir :issue:`13936` " "pour les détails complets." -#: ../Doc/library/datetime.rst:1750 +#: library/datetime.rst:1749 msgid "Other constructor:" msgstr "Autre constructeur :" -#: ../Doc/library/datetime.rst:1754 +#: library/datetime.rst:1753 #, fuzzy msgid "" "Return a :class:`.time` corresponding to a *time_string* in one of the " @@ -2569,7 +2557,7 @@ msgstr "" "par :meth:`date.isoformat`. Spécifiquement, cette fonction gère des chaînes " "dans le(s) format(s) ``YYYY-MM-DD``." -#: ../Doc/library/datetime.rst:1764 +#: library/datetime.rst:1763 #, fuzzy msgid "" "This does *not* support parsing arbitrary ISO 8601 strings. It is only " @@ -2578,7 +2566,7 @@ msgstr "" "Ceci ne gère pas l'analyse arbitraire de chaînes ISO 8601, ceci est " "seulement destiné à l'opération inverse de :meth:`time.isoformat`." -#: ../Doc/library/datetime.rst:1785 +#: library/datetime.rst:1784 #, fuzzy msgid "" "Return a :class:`.time` with the same value, except for those attributes " @@ -2592,44 +2580,45 @@ msgstr "" "`.time` naïve à partir d'une instance :class:`.time` avisée, sans conversion " "des données de temps." -#: ../Doc/library/datetime.rst:1796 -#, fuzzy +#: library/datetime.rst:1795 msgid "Return a string representing the time in ISO 8601 format, one of:" msgstr "" -"Renvoie une chaîne de caractères représentant la date au format ISO 8601, " -"\"YYYY-MM-DD\". Par exemple, ``date(2002, 12, 4).isoformat() == " -"'2002-12-04'``." +"Renvoie une chaîne de caractères représentant la date au format ISO 8601 :" -#: ../Doc/library/datetime.rst:1798 +#: library/datetime.rst:1797 msgid "``HH:MM:SS.ffffff``, if :attr:`microsecond` is not 0" -msgstr "" +msgstr "``HH:MM:SS.ffffff``, si :attr:`microsecond` ne vaut pas 0" -#: ../Doc/library/datetime.rst:1799 +#: library/datetime.rst:1798 msgid "``HH:MM:SS``, if :attr:`microsecond` is 0" -msgstr "" +msgstr "``HH:MM:SS``, si :attr:`microsecond` vaut 0" -#: ../Doc/library/datetime.rst:1800 +#: library/datetime.rst:1799 msgid "" "``HH:MM:SS.ffffff+HH:MM[:SS[.ffffff]]``, if :meth:`utcoffset` does not " "return ``None``" msgstr "" +"``HH:MM:SS.ffffff+HH:MM[:SS[.ffffff]]``, si :meth:`utcoffset` ne renvoie pas " +"``None``" -#: ../Doc/library/datetime.rst:1801 +#: library/datetime.rst:1800 msgid "" "``HH:MM:SS+HH:MM[:SS[.ffffff]]``, if :attr:`microsecond` is 0 and :meth:" "`utcoffset` does not return ``None``" msgstr "" +"``HH:MM:SS+HH:MM[:SS[.ffffff]]``, si :attr:`microsecond` vaut 0 et :meth:" +"`utcoffset` ne renvoie pas ``None``" -#: ../Doc/library/datetime.rst:1821 +#: library/datetime.rst:1820 msgid ":exc:`ValueError` will be raised on an invalid *timespec* argument." msgstr "" "Une :exc:`ValueError` sera levée en cas d'argument *timespec* invalide." -#: ../Doc/library/datetime.rst:1840 +#: library/datetime.rst:1839 msgid "For a time *t*, ``str(t)`` is equivalent to ``t.isoformat()``." msgstr "Pour un temps *t*, ``str(t)`` est équivalent à ``t.isoformat()``." -#: ../Doc/library/datetime.rst:1845 +#: library/datetime.rst:1844 #, fuzzy msgid "" "Return a string representing the time, controlled by an explicit format " @@ -2640,7 +2629,7 @@ msgstr "" "chaîne de formatage explicite. Pour une liste complète des directives de " "formatage, voir :ref:`strftime-strptime-behavior`." -#: ../Doc/library/datetime.rst:1852 +#: library/datetime.rst:1851 #, fuzzy msgid "" "Same as :meth:`.time.strftime`. This makes it possible to specify a format " @@ -2654,7 +2643,7 @@ msgstr "" "liste complète des directives de formatage, voir :ref:`strftime-strptime-" "behavior`." -#: ../Doc/library/datetime.rst:1861 +#: library/datetime.rst:1860 msgid "" "If :attr:`.tzinfo` is ``None``, returns ``None``, else returns ``self.tzinfo." "utcoffset(None)``, and raises an exception if the latter doesn't return " @@ -2665,7 +2654,7 @@ msgstr "" "ne renvoie pas ``None`` ou un objet :class:`timedelta` d'une magnitude " "inférieure à un jour." -#: ../Doc/library/datetime.rst:1871 +#: library/datetime.rst:1870 msgid "" "If :attr:`.tzinfo` is ``None``, returns ``None``, else returns ``self.tzinfo." "dst(None)``, and raises an exception if the latter doesn't return ``None``, " @@ -2676,7 +2665,7 @@ msgstr "" "renvoie pas ``None`` ou un objet :class:`timedelta` d'une magnitude " "inférieure à un jour." -#: ../Doc/library/datetime.rst:1880 +#: library/datetime.rst:1879 msgid "" "If :attr:`.tzinfo` is ``None``, returns ``None``, else returns ``self.tzinfo." "tzname(None)``, or raises an exception if the latter doesn't return ``None`` " @@ -2686,28 +2675,30 @@ msgstr "" "tzinfo.tzname(None)``, et lève une exception si l'expression précédente ne " "renvoie pas ``None`` ou une chaîne de caractères." -#: ../Doc/library/datetime.rst:1885 -#, fuzzy +#: library/datetime.rst:1884 msgid "Examples of Usage: :class:`.time`" -msgstr "Exemple d'utilisation de la classe :class:`date` :" +msgstr "Exemples d'utilisation de :class:`.time`" -#: ../Doc/library/datetime.rst:1887 -#, fuzzy +#: library/datetime.rst:1886 msgid "Examples of working with a :class:`.time` object::" -msgstr "Exemples d'utilisation des objets *datetime* :" +msgstr "Exemples d'utilisation de l'objet :class:`.time` ::" -#: ../Doc/library/datetime.rst:1918 +#: library/datetime.rst:1917 msgid ":class:`tzinfo` Objects" msgstr "Objets :class:`tzinfo`" -#: ../Doc/library/datetime.rst:1922 +#: library/datetime.rst:1921 msgid "" "This is an abstract base class, meaning that this class should not be " "instantiated directly. Define a subclass of :class:`tzinfo` to capture " "information about a particular time zone." msgstr "" +"Il s'agit d'une classe de base abstraite, ce qui signifie que cette classe " +"ne doit pas être instanciée directement. Définissez une sous-classe de :" +"class:`tzinfo` pour capturer des informations sur un fuseau horaire " +"particulier." -#: ../Doc/library/datetime.rst:1926 +#: library/datetime.rst:1925 msgid "" "An instance of (a concrete subclass of) :class:`tzinfo` can be passed to the " "constructors for :class:`.datetime` and :class:`.time` objects. The latter " @@ -2723,7 +2714,7 @@ msgstr "" "temps local par rapport à UTC, le nom du fuseau horaire, le décalage d'heure " "d'été, tous relatifs à un objet de date ou d'heure qui leur est passé." -#: ../Doc/library/datetime.rst:1932 +#: library/datetime.rst:1931 #, fuzzy msgid "" "You need to derive a concrete subclass, and (at least) supply " @@ -2742,7 +2733,7 @@ msgstr "" "avec des décalages fixes par rapport à UTC, tels qu'UTC lui-même ou les nord-" "américains EST et EDT." -#: ../Doc/library/datetime.rst:1939 +#: library/datetime.rst:1938 #, fuzzy msgid "" "Special requirement for pickling: A :class:`tzinfo` subclass must have an :" @@ -2755,7 +2746,7 @@ msgstr "" "sans quoi un objet sérialisé ne pourrait pas toujours être désérialisé. " "C'est un prérequis technique qui pourrait être assoupli dans le futur." -#: ../Doc/library/datetime.rst:1944 +#: library/datetime.rst:1943 #, fuzzy msgid "" "A concrete subclass of :class:`tzinfo` may need to implement the following " @@ -2767,13 +2758,16 @@ msgstr "" "l'utilisation qui est faite des objets :mod:`datetime` avisés. Dans le " "doute, implémentez-les toutes." -#: ../Doc/library/datetime.rst:1951 +#: library/datetime.rst:1950 msgid "" "Return offset of local time from UTC, as a :class:`timedelta` object that is " "positive east of UTC. If local time is west of UTC, this should be negative." msgstr "" +"Renvoie le décalage de l'heure locale par rapport à UTC, sous la forme d'un " +"objet :class:`timedelta` qui est positif à l'est de UTC. Si l'heure locale " +"est à l'ouest de UTC, il doit être négatif." -#: ../Doc/library/datetime.rst:1954 +#: library/datetime.rst:1953 #, fuzzy msgid "" "This represents the *total* offset from UTC; for example, if a :class:" @@ -2794,9 +2788,9 @@ msgstr "" "objet :class:`timedelta` compris strictement entre ``-timedelta(hours=24)`` " "et ``timedelta(hours=24)`` (la magnitude du décalage doit être inférieure à " "un jour). La plupart des implémentations de :meth:`utcoffset` ressembleront " -"probablement à l'une des deux suivantes : ::" +"probablement à l'une des deux suivantes ::" -#: ../Doc/library/datetime.rst:1965 +#: library/datetime.rst:1964 msgid "" "If :meth:`utcoffset` does not return ``None``, :meth:`dst` should not return " "``None`` either." @@ -2804,7 +2798,7 @@ msgstr "" "Si :meth:`utcoffset` ne renvoie pas ``None``, :meth:`dst` ne doit pas non " "plus renvoyer ``None``." -#: ../Doc/library/datetime.rst:1968 +#: library/datetime.rst:1967 msgid "" "The default implementation of :meth:`utcoffset` raises :exc:" "`NotImplementedError`." @@ -2812,13 +2806,15 @@ msgstr "" "L'implémentation par défaut de :meth:`utcoffset` lève une :exc:" "`NotImplementedError`." -#: ../Doc/library/datetime.rst:1977 +#: library/datetime.rst:1976 msgid "" "Return the daylight saving time (DST) adjustment, as a :class:`timedelta` " "object or ``None`` if DST information isn't known." msgstr "" +"Renvoie le réglage de l'heure d'été (DST), sous la forme d'un objet :class:" +"`timedelta` ou ``None`` si l'information DST n'est pas connue." -#: ../Doc/library/datetime.rst:1981 +#: library/datetime.rst:1980 #, fuzzy msgid "" "Return ``timedelta(0)`` if DST is not in effect. If DST is in effect, return " @@ -2845,7 +2841,7 @@ msgstr "" "`dst` pour tenir compte des heures d'été quand elle traverse des fuseaux " "horaires." -#: ../Doc/library/datetime.rst:1991 +#: library/datetime.rst:1990 msgid "" "An instance *tz* of a :class:`tzinfo` subclass that models both standard and " "daylight times must be consistent in this sense:" @@ -2853,11 +2849,11 @@ msgstr "" "Une instance *tz* d'une sous-classe :class:`tzinfo` convenant à la fois pour " "une heure standard et une heure d'été doit être cohérente :" -#: ../Doc/library/datetime.rst:1994 +#: library/datetime.rst:1993 msgid "``tz.utcoffset(dt) - tz.dst(dt)``" msgstr "``tz.utcoffset(dt) - tz.dst(dt)``" -#: ../Doc/library/datetime.rst:1996 +#: library/datetime.rst:1995 #, fuzzy msgid "" "must return the same result for every :class:`.datetime` *dt* with ``dt." @@ -2881,26 +2877,26 @@ msgstr "" "l'implémentation par défaut de :meth:`tzinfo.fromutc` pour tout de même " "fonctionner correctement avec :meth:`astimezone`." -#: ../Doc/library/datetime.rst:2005 +#: library/datetime.rst:2004 msgid "" "Most implementations of :meth:`dst` will probably look like one of these " "two::" msgstr "" "La plupart des implémentations de :meth:`dst` ressembleront probablement à " -"l'une des deux suivantes : ::" +"l'une des deux suivantes ::" -#: ../Doc/library/datetime.rst:2011 +#: library/datetime.rst:2010 msgid "or::" -msgstr "ou  ::" +msgstr "ou ::" -#: ../Doc/library/datetime.rst:2023 +#: library/datetime.rst:2022 msgid "" "The default implementation of :meth:`dst` raises :exc:`NotImplementedError`." msgstr "" "L'implémentation par défaut de :meth:`dst` lève une :exc:" "`NotImplementedError`." -#: ../Doc/library/datetime.rst:2031 +#: library/datetime.rst:2030 #, fuzzy msgid "" "Return the time zone name corresponding to the :class:`.datetime` object " @@ -2924,7 +2920,7 @@ msgstr "" "renvoyer des noms différents en fonction de valeurs de *dt* spécifiques, en " "particulier si la classe :class:`tzinfo` tient compte de l'heure d'été." -#: ../Doc/library/datetime.rst:2041 +#: library/datetime.rst:2040 msgid "" "The default implementation of :meth:`tzname` raises :exc:" "`NotImplementedError`." @@ -2932,7 +2928,7 @@ msgstr "" "L'implémentation par défaut de :meth:`tzname` lève une :exc:" "`NotImplementedError`." -#: ../Doc/library/datetime.rst:2044 +#: library/datetime.rst:2043 #, fuzzy msgid "" "These methods are called by a :class:`.datetime` or :class:`.time` object, " @@ -2949,7 +2945,7 @@ msgstr "" "être prêtes à recevoir un argument ``None`` pour *dt*, ou une instance de :" "class:`.datetime`." -#: ../Doc/library/datetime.rst:2050 +#: library/datetime.rst:2049 #, fuzzy msgid "" "When ``None`` is passed, it's up to the class designer to decide the best " @@ -2965,7 +2961,7 @@ msgstr "" "``utcoffset(None)`` de renvoyer le décalage UTC standard, comme il n'existe " "aucune autre convention pour obtenir ce décalage." -#: ../Doc/library/datetime.rst:2056 +#: library/datetime.rst:2055 #, fuzzy msgid "" "When a :class:`.datetime` object is passed in response to a :class:`." @@ -2983,7 +2979,7 @@ msgstr "" "étant le temps local, et n'aient pas à se soucier des objets dans d'autres " "fuseaux horaires." -#: ../Doc/library/datetime.rst:2062 +#: library/datetime.rst:2061 msgid "" "There is one more :class:`tzinfo` method that a subclass may wish to " "override:" @@ -2991,7 +2987,7 @@ msgstr "" "Il y a une dernière méthode de :class:`tzinfo` que les sous-classes peuvent " "vouloir redéfinir :" -#: ../Doc/library/datetime.rst:2067 +#: library/datetime.rst:2066 #, fuzzy msgid "" "This is called from the default :class:`datetime.astimezone()` " @@ -3007,7 +3003,7 @@ msgstr "" "et d'heure, renvoyant un objet *datetime* équivalent à *self*, dans le temps " "local." -#: ../Doc/library/datetime.rst:2073 +#: library/datetime.rst:2072 #, fuzzy msgid "" "Most :class:`tzinfo` subclasses should be able to inherit the default :meth:" @@ -3034,15 +3030,15 @@ msgstr "" "ne pas produire les résultats attendus si le résultat est l'une des heures " "affectées par le changement d'heure." -#: ../Doc/library/datetime.rst:2084 +#: library/datetime.rst:2083 msgid "" "Skipping code for error cases, the default :meth:`fromutc` implementation " "acts like::" msgstr "" "En omettant le code des cas d'erreurs, l'implémentation par défaut de :meth:" -"`fromutc` se comporte comme suit : ::" +"`fromutc` se comporte comme suit ::" -#: ../Doc/library/datetime.rst:2102 +#: library/datetime.rst:2101 msgid "" "In the following :download:`tzinfo_examples.py <../includes/tzinfo_examples." "py>` file there are some examples of :class:`tzinfo` classes:" @@ -3050,7 +3046,7 @@ msgstr "" "Dans le fichier :download:`tzinfo_examples.py <../includes/tzinfo_examples." "py>` il y a des exemples de :class:`tzinfo` classes:" -#: ../Doc/library/datetime.rst:2108 +#: library/datetime.rst:2107 #, fuzzy msgid "" "Note that there are unavoidable subtleties twice per year in a :class:" @@ -3064,9 +3060,9 @@ msgstr "" "standard et d'été, au passage de l'une à l'autre. Concrètement, considérez " "le fuseau de l'est des États-Unis (UTC -0500), où EDT (heure d'été) débute à " "la minute qui suit 1:59 (EST) le second dimanche de mars, et se termine à la " -"minute qui suit 1:59 (EDT) le premier dimanche de novembre : ::" +"minute qui suit 1:59 (EDT) le premier dimanche de novembre ::" -#: ../Doc/library/datetime.rst:2122 +#: library/datetime.rst:2121 #, fuzzy msgid "" "When DST starts (the \"start\" line), the local wall clock leaps from 1:59 " @@ -3079,9 +3075,9 @@ msgstr "" "1:59 à 3:00. Une heure de la forme 2:MM n'a pas vraiment de sens ce jour " "là, donc ``astimezone(Eastern)`` ne délivrera pas de résultat avec ``hour " "== 2`` pour le jour où débute l'heure d'été. Par exemple, lors de la " -"transition du printemps 2016, nous obtenons" +"transition du printemps 2016, nous obtenons ::" -#: ../Doc/library/datetime.rst:2141 +#: library/datetime.rst:2140 #, fuzzy msgid "" "When DST ends (the \"end\" line), there's a potentially worse problem: " @@ -3107,9 +3103,9 @@ msgstr "" "temps UTC de la forme 5:MM et 6:MM sont tous deux associés à 1:MM quand " "convertis vers ce fuseau, mais les heures les plus anciennes ont l'attribut :" "attr:`~datetime.fold` à 0 et les plus récentes l'ont à 1. Par exemple, lors " -"de la transition de l'automne 2016, nous obtenons" +"de la transition de l'automne 2016, nous obtenons ::" -#: ../Doc/library/datetime.rst:2163 +#: library/datetime.rst:2162 #, fuzzy msgid "" "Note that the :class:`.datetime` instances that differ only by the value of " @@ -3119,7 +3115,7 @@ msgstr "" "valeur de leur attribut :attr:`~datetime.fold` sont considérées égales dans " "les comparaisons." -#: ../Doc/library/datetime.rst:2166 +#: library/datetime.rst:2165 msgid "" "Applications that can't bear wall-time ambiguities should explicitly check " "the value of the :attr:`~datetime.fold` attribute or avoid using hybrid :" @@ -3136,11 +3132,11 @@ msgstr "" "représentant uniquement le fuseau EST (de décalage fixe *-5h*) ou uniquement " "EDT (*-4h*))." -#: ../Doc/library/datetime.rst:2181 +#: library/datetime.rst:2180 msgid "`dateutil.tz `_" msgstr "`dateutil.tz `_" -#: ../Doc/library/datetime.rst:2175 +#: library/datetime.rst:2174 #, fuzzy msgid "" "The :mod:`datetime` module has a basic :class:`timezone` class (for handling " @@ -3151,7 +3147,7 @@ msgstr "" "décalages fixes par rapport à UTC et :attr:`timezone.utc` comme instance du " "fuseau horaire UTC." -#: ../Doc/library/datetime.rst:2179 +#: library/datetime.rst:2178 #, fuzzy msgid "" "*dateutil.tz* library brings the *IANA timezone database* (also known as the " @@ -3161,13 +3157,13 @@ msgstr "" "fuseaux horaires IANA* (*IANA timezone database*, aussi appelée base de " "données Olson) , et son utilisation est recommandée." -#: ../Doc/library/datetime.rst:2187 +#: library/datetime.rst:2186 msgid "`IANA timezone database `_" msgstr "" "`Base de données des fuseaux horaires de l'IANA `_" -#: ../Doc/library/datetime.rst:2184 +#: library/datetime.rst:2183 msgid "" "The Time Zone Database (often called tz, tzdata or zoneinfo) contains code " "and data that represent the history of local time for many representative " @@ -3182,17 +3178,20 @@ msgstr "" "politiques sur les bornes du fuseau, les décalages UTC, et les règles de " "passage à l'heure d'été." -#: ../Doc/library/datetime.rst:2194 +#: library/datetime.rst:2193 msgid ":class:`timezone` Objects" msgstr "Objets :class:`timezone`" -#: ../Doc/library/datetime.rst:2196 +#: library/datetime.rst:2195 msgid "" "The :class:`timezone` class is a subclass of :class:`tzinfo`, each instance " "of which represents a timezone defined by a fixed offset from UTC." msgstr "" +"La classe :class:`timezone` est une sous-classe de :class:`tzinfo`, dont " +"chaque instance représente un fuseau horaire défini par un décalage fixe par " +"rapport à UTC." -#: ../Doc/library/datetime.rst:2200 +#: library/datetime.rst:2199 #, fuzzy msgid "" "Objects of this class cannot be used to represent timezone information in " @@ -3206,7 +3205,7 @@ msgstr "" "emplacements où plusieurs décalages sont utilisés au cours de l'année ou où " "des changements historiques ont été opérés sur le temps civil." -#: ../Doc/library/datetime.rst:2207 +#: library/datetime.rst:2206 #, fuzzy msgid "" "The *offset* argument must be specified as a :class:`timedelta` object " @@ -3219,7 +3218,7 @@ msgstr "" "strictement compris entre ``-timedelta(hours=24)`` et " "``timedelta(hours=24)``, autrement une :exc:`ValueError` est levée." -#: ../Doc/library/datetime.rst:2212 +#: library/datetime.rst:2211 #, fuzzy msgid "" "The *name* argument is optional. If specified it must be a string that will " @@ -3229,13 +3228,15 @@ msgstr "" "caractères qui sera utilisée comme valeur de retour de la méthode :meth:" "`datetime.tzname`." -#: ../Doc/library/datetime.rst:2223 ../Doc/library/datetime.rst:2234 +#: library/datetime.rst:2233 msgid "" "Return the fixed value specified when the :class:`timezone` instance is " "constructed." msgstr "" +"Renvoie la valeur fixe spécifiée lorsque l'instance :class:`timezone` est " +"construite." -#: ../Doc/library/datetime.rst:2226 +#: library/datetime.rst:2225 #, fuzzy msgid "" "The *dt* argument is ignored. The return value is a :class:`timedelta` " @@ -3246,7 +3247,7 @@ msgstr "" "instance :class:`timedelta` égale à la différence entre le temps local et " "UTC." -#: ../Doc/library/datetime.rst:2237 +#: library/datetime.rst:2236 #, fuzzy msgid "" "If *name* is not provided in the constructor, the name returned by " @@ -3263,37 +3264,36 @@ msgstr "" "et HH et MM sont respectivement les représentations à deux chiffres de " "``offset.hours`` et ``offset.minutes``." -#: ../Doc/library/datetime.rst:2243 +#: library/datetime.rst:2242 #, fuzzy msgid "" -"Name generated from ``offset=timedelta(0)`` is now plain `'UTC'`, not ``'UTC" -"+00:00'``." +"Name generated from ``offset=timedelta(0)`` is now plain `'UTC'`, not " +"``'UTC+00:00'``." msgstr "" "Le nom généré à partir de ``offset=timedelta(0)`` est maintenant \"UTC\" " "plutôt que \"UTC+00:00\"." -#: ../Doc/library/datetime.rst:2250 +#: library/datetime.rst:2249 msgid "Always returns ``None``." msgstr "Renvoie toujours ``None``." -#: ../Doc/library/datetime.rst:2254 -#, fuzzy +#: library/datetime.rst:2253 msgid "" "Return ``dt + offset``. The *dt* argument must be an aware :class:`." "datetime` instance, with ``tzinfo`` set to ``self``." msgstr "" -"Renvoie ``dt + offset``. L'argument *dt* doit être une instance avisée de :" -"class:`datetime`, avec ``tzinfo`` valant ``self``." +"Renvoie ``dt + offset``. L'argument *dt* doit être une instance avisée de :" +"class:`.datetime`, avec ``tzinfo`` valant ``self``." -#: ../Doc/library/datetime.rst:2261 +#: library/datetime.rst:2260 msgid "The UTC timezone, ``timezone(timedelta(0))``." msgstr "Le fuseau horaire UTC, ``timezone(timedelta(0))``." -#: ../Doc/library/datetime.rst:2270 +#: library/datetime.rst:2269 msgid ":meth:`strftime` and :meth:`strptime` Behavior" msgstr "Comportement de :meth:`strftime` et :meth:`strptime`" -#: ../Doc/library/datetime.rst:2272 +#: library/datetime.rst:2271 #, fuzzy msgid "" ":class:`date`, :class:`.datetime`, and :class:`.time` objects all support a " @@ -3307,376 +3307,371 @@ msgstr "" "la fonction ``time.strftime(fmt, d.timetuple())`` du module :mod:`time`, " "bien que tous les objets ne comportent pas de méthode :meth:`timetuple`." -#: ../Doc/library/datetime.rst:2276 +#: library/datetime.rst:2275 msgid "" "Conversely, the :meth:`datetime.strptime` class method creates a :class:`." "datetime` object from a string representing a date and time and a " "corresponding format string." msgstr "" +"Inversement, la méthode de classe :meth:`datetime.strptime` crée un objet :" +"class:`.datetime` à partir d'une chaîne représentant une date et une heure, " +"et une chaîne de format correspondante." -#: ../Doc/library/datetime.rst:2280 +#: library/datetime.rst:2279 msgid "" "The table below provides a high-level comparison of :meth:`strftime` versus :" "meth:`strptime`:" msgstr "" +"Le tableau ci-dessous fournit une comparaison de haut niveau entre :meth:" +"`strftime` et :meth:`strptime` :" -#: ../Doc/library/datetime.rst:2284 -#, fuzzy +#: library/datetime.rst:2283 msgid "``strftime``" -msgstr "``str(t)``" +msgstr "``strftime``" -#: ../Doc/library/datetime.rst:2284 -#, fuzzy +#: library/datetime.rst:2283 msgid "``strptime``" -msgstr "``str(t)``" +msgstr "``strptime``" -#: ../Doc/library/datetime.rst:2286 +#: library/datetime.rst:2285 msgid "Usage" -msgstr "" +msgstr "Utilisation" -#: ../Doc/library/datetime.rst:2286 +#: library/datetime.rst:2285 msgid "Convert object to a string according to a given format" -msgstr "" +msgstr "Convertit un objet en une chaîne de caractères selon un format donné" -#: ../Doc/library/datetime.rst:2286 +#: library/datetime.rst:2285 msgid "" "Parse a string into a :class:`.datetime` object given a corresponding format" msgstr "" +"Analyse une chaîne de caractères dans un objet :class:`.datetime` en " +"fonction du format de correspondance donné" -#: ../Doc/library/datetime.rst:2288 +#: library/datetime.rst:2287 msgid "Type of method" -msgstr "" +msgstr "Type de méthode" -#: ../Doc/library/datetime.rst:2288 -#, fuzzy +#: library/datetime.rst:2287 msgid "Instance method" -msgstr "Méthodes de l'instance :" +msgstr "Méthode d'instance" -#: ../Doc/library/datetime.rst:2288 +#: library/datetime.rst:2287 msgid "Class method" -msgstr "" +msgstr "Méthode de classe" -#: ../Doc/library/datetime.rst:2290 +#: library/datetime.rst:2289 msgid "Method of" -msgstr "" +msgstr "Méthode de" -#: ../Doc/library/datetime.rst:2290 -#, fuzzy +#: library/datetime.rst:2289 msgid ":class:`date`; :class:`.datetime`; :class:`.time`" -msgstr "Compare :class:`.datetime` à :class:`.datetime`. (4)" +msgstr ":class:`date` ; :class:`.datetime` ; :class:`.time`" -#: ../Doc/library/datetime.rst:2290 -#, fuzzy +#: library/datetime.rst:2289 msgid ":class:`.datetime`" -msgstr "Objets :class:`.datetime`" +msgstr ":class:`.datetime`" -#: ../Doc/library/datetime.rst:2292 +#: library/datetime.rst:2291 msgid "Signature" -msgstr "" +msgstr "Signature" -#: ../Doc/library/datetime.rst:2292 -#, fuzzy +#: library/datetime.rst:2291 msgid "``strftime(format)``" -msgstr "``str(t)``" +msgstr "``strftime(format)``" -#: ../Doc/library/datetime.rst:2292 +#: library/datetime.rst:2291 msgid "``strptime(date_string, format)``" -msgstr "" +msgstr "``strptime(date_string, format)``" -#: ../Doc/library/datetime.rst:2297 -#, fuzzy +#: library/datetime.rst:2296 msgid ":meth:`strftime` and :meth:`strptime` Format Codes" -msgstr "Comportement de :meth:`strftime` et :meth:`strptime`" +msgstr "Codes de formatage de :meth:`strftime` et :meth:`strptime`" -#: ../Doc/library/datetime.rst:2299 -#, fuzzy +#: library/datetime.rst:2298 msgid "" "The following is a list of all the format codes that the 1989 C standard " "requires, and these work on all platforms with a standard C implementation." msgstr "" "La liste suivante est la liste de tous les codes de formatage requis par le " "standard C (version 1989), ils fonctionnent sur toutes les plateformes " -"possédant une implémentation de C standard. Notez que la version 1999 du " -"standard C a ajouté des codes de formatage additionnels." +"possédant une implémentation de C standard." -#: ../Doc/library/datetime.rst:2303 ../Doc/library/datetime.rst:2406 +#: library/datetime.rst:2405 msgid "Directive" msgstr "Directive" -#: ../Doc/library/datetime.rst:2303 ../Doc/library/datetime.rst:2406 +#: library/datetime.rst:2405 msgid "Meaning" msgstr "Signification" -#: ../Doc/library/datetime.rst:2303 ../Doc/library/datetime.rst:2406 +#: library/datetime.rst:2405 msgid "Example" msgstr "Exemple" -#: ../Doc/library/datetime.rst:2303 ../Doc/library/datetime.rst:2406 +#: library/datetime.rst:2405 msgid "Notes" msgstr "Notes" -#: ../Doc/library/datetime.rst:2305 +#: library/datetime.rst:2304 msgid "``%a``" msgstr "``%a``" -#: ../Doc/library/datetime.rst:2305 +#: library/datetime.rst:2304 msgid "Weekday as locale's abbreviated name." msgstr "Jour de la semaine abrégé dans la langue locale." -#: ../Doc/library/datetime.rst:0 +#: library/datetime.rst:0 msgid "Sun, Mon, ..., Sat (en_US);" msgstr "Sun, Mon, ..., Sat (en_US);" -#: ../Doc/library/datetime.rst:0 +#: library/datetime.rst:0 msgid "So, Mo, ..., Sa (de_DE)" msgstr "Lu, Ma, ..., Di (*fr_FR*)" -#: ../Doc/library/datetime.rst:2310 +#: library/datetime.rst:2309 msgid "``%A``" msgstr "``%A``" -#: ../Doc/library/datetime.rst:2310 +#: library/datetime.rst:2309 msgid "Weekday as locale's full name." msgstr "Jour de la semaine complet dans la langue locale." -#: ../Doc/library/datetime.rst:0 +#: library/datetime.rst:0 msgid "Sunday, Monday, ..., Saturday (en_US);" msgstr "*Sunday*, *Monday*, ..., *Saturday* (*en_US*);" -#: ../Doc/library/datetime.rst:0 +#: library/datetime.rst:0 msgid "Sonntag, Montag, ..., Samstag (de_DE)" msgstr "Lundi, Mardi, ..., Dimanche (*fr_FR*)" -#: ../Doc/library/datetime.rst:2315 +#: library/datetime.rst:2314 msgid "``%w``" msgstr "``%w``" -#: ../Doc/library/datetime.rst:2315 +#: library/datetime.rst:2314 msgid "Weekday as a decimal number, where 0 is Sunday and 6 is Saturday." msgstr "" "Jour de la semaine en chiffre, avec 0 pour le dimanche et 6 pour le samedi." -#: ../Doc/library/datetime.rst:2315 +#: library/datetime.rst:2314 msgid "0, 1, ..., 6" msgstr "0, 1, ..., 6" -#: ../Doc/library/datetime.rst:2319 +#: library/datetime.rst:2318 msgid "``%d``" msgstr "``%d``" -#: ../Doc/library/datetime.rst:2319 +#: library/datetime.rst:2318 msgid "Day of the month as a zero-padded decimal number." msgstr "Jour du mois sur deux chiffres." -#: ../Doc/library/datetime.rst:2319 +#: library/datetime.rst:2318 msgid "01, 02, ..., 31" msgstr "01, 02, ..., 31" -#: ../Doc/library/datetime.rst:2319 ../Doc/library/datetime.rst:2332 -#: ../Doc/library/datetime.rst:2335 ../Doc/library/datetime.rst:2341 -#: ../Doc/library/datetime.rst:2344 ../Doc/library/datetime.rst:2350 -#: ../Doc/library/datetime.rst:2368 +#: library/datetime.rst:2331 library/datetime.rst:2340 +#: library/datetime.rst:2349 library/datetime.rst:2367 msgid "\\(9)" msgstr "\\(9)" -#: ../Doc/library/datetime.rst:2322 +#: library/datetime.rst:2321 msgid "``%b``" msgstr "``%b``" -#: ../Doc/library/datetime.rst:2322 +#: library/datetime.rst:2321 msgid "Month as locale's abbreviated name." msgstr "Nom du mois abrégé dans la langue locale." -#: ../Doc/library/datetime.rst:0 +#: library/datetime.rst:0 msgid "Jan, Feb, ..., Dec (en_US);" msgstr "Jan, Feb, ..., Dec (*en_US*);" -#: ../Doc/library/datetime.rst:0 +#: library/datetime.rst:0 msgid "Jan, Feb, ..., Dez (de_DE)" msgstr "janv., févr., ..., déc. (*fr_FR*)" -#: ../Doc/library/datetime.rst:2327 +#: library/datetime.rst:2326 msgid "``%B``" msgstr "``%B``" -#: ../Doc/library/datetime.rst:2327 +#: library/datetime.rst:2326 msgid "Month as locale's full name." msgstr "Nom complet du mois dans la langue locale." -#: ../Doc/library/datetime.rst:0 +#: library/datetime.rst:0 msgid "January, February, ..., December (en_US);" msgstr "*January*, *February*, ..., *December* (*en_US*);" -#: ../Doc/library/datetime.rst:0 +#: library/datetime.rst:0 msgid "Januar, Februar, ..., Dezember (de_DE)" msgstr "janvier, février, ..., décembre (*fr_FR*)" -#: ../Doc/library/datetime.rst:2332 +#: library/datetime.rst:2331 msgid "``%m``" msgstr "``%m``" -#: ../Doc/library/datetime.rst:2332 +#: library/datetime.rst:2331 msgid "Month as a zero-padded decimal number." msgstr "Numéro du mois sur deux chiffres." -#: ../Doc/library/datetime.rst:2332 ../Doc/library/datetime.rst:2344 +#: library/datetime.rst:2343 msgid "01, 02, ..., 12" msgstr "01, 02, ..., 12" -#: ../Doc/library/datetime.rst:2335 +#: library/datetime.rst:2334 msgid "``%y``" msgstr "``%y``" -#: ../Doc/library/datetime.rst:2335 +#: library/datetime.rst:2334 msgid "Year without century as a zero-padded decimal number." msgstr "Année sur deux chiffres (sans le siècle)." -#: ../Doc/library/datetime.rst:2335 +#: library/datetime.rst:2334 msgid "00, 01, ..., 99" msgstr "00, 01, ..., 99" -#: ../Doc/library/datetime.rst:2338 +#: library/datetime.rst:2337 msgid "``%Y``" msgstr "``%Y``" -#: ../Doc/library/datetime.rst:2338 +#: library/datetime.rst:2337 msgid "Year with century as a decimal number." msgstr "Année complète sur quatre chiffres." -#: ../Doc/library/datetime.rst:2338 ../Doc/library/datetime.rst:2408 +#: library/datetime.rst:2407 msgid "0001, 0002, ..., 2013, 2014, ..., 9998, 9999" msgstr "0001, 0002, ..., 2013, 2014, ..., 9998, 9999" -#: ../Doc/library/datetime.rst:2341 +#: library/datetime.rst:2340 msgid "``%H``" msgstr "``%H``" -#: ../Doc/library/datetime.rst:2341 +#: library/datetime.rst:2340 msgid "Hour (24-hour clock) as a zero-padded decimal number." msgstr "Heure à deux chiffres de 00 à 23." -#: ../Doc/library/datetime.rst:2341 +#: library/datetime.rst:2340 msgid "00, 01, ..., 23" msgstr "00, 01, ..., 23" -#: ../Doc/library/datetime.rst:2344 +#: library/datetime.rst:2343 msgid "``%I``" msgstr "``%I``" -#: ../Doc/library/datetime.rst:2344 +#: library/datetime.rst:2343 msgid "Hour (12-hour clock) as a zero-padded decimal number." msgstr "Heure à deux chiffres pour les horloges 12h (01 à 12)." -#: ../Doc/library/datetime.rst:2347 +#: library/datetime.rst:2346 msgid "``%p``" msgstr "``%p``" -#: ../Doc/library/datetime.rst:2347 +#: library/datetime.rst:2346 msgid "Locale's equivalent of either AM or PM." msgstr "Équivalent local à AM/PM." -#: ../Doc/library/datetime.rst:0 +#: library/datetime.rst:0 msgid "AM, PM (en_US);" msgstr "AM, PM (en_US);" -#: ../Doc/library/datetime.rst:0 +#: library/datetime.rst:0 msgid "am, pm (de_DE)" msgstr "am, pm (de_DE)" -#: ../Doc/library/datetime.rst:2347 +#: library/datetime.rst:2346 msgid "\\(1), \\(3)" msgstr "\\(1), \\(3)" -#: ../Doc/library/datetime.rst:2350 +#: library/datetime.rst:2349 msgid "``%M``" msgstr "``%M``" -#: ../Doc/library/datetime.rst:2350 +#: library/datetime.rst:2349 msgid "Minute as a zero-padded decimal number." msgstr "Minutes sur deux chiffres." -#: ../Doc/library/datetime.rst:2350 ../Doc/library/datetime.rst:2353 +#: library/datetime.rst:2352 msgid "00, 01, ..., 59" msgstr "00, 01, ..., 59" -#: ../Doc/library/datetime.rst:2353 +#: library/datetime.rst:2352 msgid "``%S``" msgstr "``%S``" -#: ../Doc/library/datetime.rst:2353 +#: library/datetime.rst:2352 msgid "Second as a zero-padded decimal number." msgstr "Secondes sur deux chiffres." -#: ../Doc/library/datetime.rst:2353 +#: library/datetime.rst:2352 msgid "\\(4), \\(9)" msgstr "\\(4), \\(9)" -#: ../Doc/library/datetime.rst:2356 +#: library/datetime.rst:2355 msgid "``%f``" msgstr "``%f``" -#: ../Doc/library/datetime.rst:2356 +#: library/datetime.rst:2355 msgid "Microsecond as a decimal number, zero-padded on the left." msgstr "Microsecondes sur 6 chiffres." -#: ../Doc/library/datetime.rst:2356 +#: library/datetime.rst:2355 msgid "000000, 000001, ..., 999999" msgstr "000000, 000001, ..., 999999" -#: ../Doc/library/datetime.rst:2356 +#: library/datetime.rst:2355 msgid "\\(5)" msgstr "\\(5)" -#: ../Doc/library/datetime.rst:2360 ../Doc/library/datetime.rst:2523 +#: library/datetime.rst:2522 msgid "``%z``" msgstr "``%z``" -#: ../Doc/library/datetime.rst:2360 -#, fuzzy +#: library/datetime.rst:2359 msgid "" "UTC offset in the form ``±HHMM[SS[.ffffff]]`` (empty string if the object is " "naive)." msgstr "" -"Décalage UTC sous la forme ``±HHMM[SS[.ffffff]]`` (chaîne vide si l'instance " -"est naïve)." +"Décalage horaire UTC sous la forme ``±HHMM[SS[.ffffff]]`` (chaîne vide si " +"l'instance est naïve)." -#: ../Doc/library/datetime.rst:2360 +#: library/datetime.rst:2359 msgid "(empty), +0000, -0400, +1030, +063415, -030712.345216" msgstr "(vide), +0000, -0400, +1030, +063415, -030712.345216" -#: ../Doc/library/datetime.rst:2360 +#: library/datetime.rst:2359 msgid "\\(6)" msgstr "\\(6)" -#: ../Doc/library/datetime.rst:2365 ../Doc/library/datetime.rst:2538 +#: library/datetime.rst:2537 msgid "``%Z``" msgstr "``%Z``" -#: ../Doc/library/datetime.rst:2365 +#: library/datetime.rst:2364 msgid "Time zone name (empty string if the object is naive)." msgstr "Nom du fuseau horaire (chaîne vide si l'instance est naïve)." -#: ../Doc/library/datetime.rst:2365 +#: library/datetime.rst:2364 msgid "(empty), UTC, EST, CST" msgstr "(vide), UTC, EST, CST" -#: ../Doc/library/datetime.rst:2368 +#: library/datetime.rst:2367 msgid "``%j``" msgstr "``%j``" -#: ../Doc/library/datetime.rst:2368 +#: library/datetime.rst:2367 msgid "Day of the year as a zero-padded decimal number." msgstr "Numéro du jour dans l'année sur trois chiffres." -#: ../Doc/library/datetime.rst:2368 +#: library/datetime.rst:2367 msgid "001, 002, ..., 366" msgstr "001, 002, ..., 366" -#: ../Doc/library/datetime.rst:2371 +#: library/datetime.rst:2370 msgid "``%U``" msgstr "``%U``" -#: ../Doc/library/datetime.rst:2371 +#: library/datetime.rst:2370 msgid "" "Week number of the year (Sunday as the first day of the week) as a zero " "padded decimal number. All days in a new year preceding the first Sunday are " @@ -3686,19 +3681,19 @@ msgstr "" "premier jour de la semaine). Tous les jours de l'année précédent le premier " "dimanche sont considérés comme appartenant à la semaine 0." -#: ../Doc/library/datetime.rst:2371 ../Doc/library/datetime.rst:2379 +#: library/datetime.rst:2378 msgid "00, 01, ..., 53" msgstr "00, 01, ..., 53" -#: ../Doc/library/datetime.rst:2371 ../Doc/library/datetime.rst:2379 +#: library/datetime.rst:2378 msgid "\\(7), \\(9)" msgstr "\\(7), \\(9)" -#: ../Doc/library/datetime.rst:2379 +#: library/datetime.rst:2378 msgid "``%W``" msgstr "``%W``" -#: ../Doc/library/datetime.rst:2379 +#: library/datetime.rst:2378 msgid "" "Week number of the year (Monday as the first day of the week) as a decimal " "number. All days in a new year preceding the first Monday are considered to " @@ -3708,81 +3703,84 @@ msgstr "" "premier jour de la semaine). Tous les jours de l'année précédent le premier " "lundi sont considérés comme appartenant à la semaine 0." -#: ../Doc/library/datetime.rst:2387 +#: library/datetime.rst:2386 msgid "``%c``" msgstr "``%c``" -#: ../Doc/library/datetime.rst:2387 +#: library/datetime.rst:2386 msgid "Locale's appropriate date and time representation." msgstr "Représentation locale de la date et de l'heure." -#: ../Doc/library/datetime.rst:0 +#: library/datetime.rst:0 msgid "Tue Aug 16 21:30:00 1988 (en_US);" msgstr "Tue Aug 16 21:30:00 1988 (*en_US*);" -#: ../Doc/library/datetime.rst:0 +#: library/datetime.rst:0 msgid "Di 16 Aug 21:30:00 1988 (de_DE)" msgstr "mar. 16 août 1988 21:30:00 (*fr_FR*)" -#: ../Doc/library/datetime.rst:2392 +#: library/datetime.rst:2391 msgid "``%x``" msgstr "``%x``" -#: ../Doc/library/datetime.rst:2392 +#: library/datetime.rst:2391 msgid "Locale's appropriate date representation." msgstr "Représentation locale de la date." -#: ../Doc/library/datetime.rst:0 +#: library/datetime.rst:0 msgid "08/16/88 (None);" msgstr "08/16/88 (None);" -#: ../Doc/library/datetime.rst:0 +#: library/datetime.rst:0 msgid "08/16/1988 (en_US);" msgstr "08/16/1988 (*en_US*);" -#: ../Doc/library/datetime.rst:0 +#: library/datetime.rst:0 msgid "16.08.1988 (de_DE)" msgstr "16/08/1988 (*fr_FR*)" -#: ../Doc/library/datetime.rst:2396 +#: library/datetime.rst:2395 msgid "``%X``" msgstr "``%X``" -#: ../Doc/library/datetime.rst:2396 +#: library/datetime.rst:2395 msgid "Locale's appropriate time representation." msgstr "Représentation locale de l'heure." -#: ../Doc/library/datetime.rst:0 +#: library/datetime.rst:0 msgid "21:30:00 (en_US);" msgstr "21:30:00 (*en_US*) ;" -#: ../Doc/library/datetime.rst:0 +#: library/datetime.rst:0 msgid "21:30:00 (de_DE)" msgstr "21:30:00 (*fr_FR*)" -#: ../Doc/library/datetime.rst:2399 +#: library/datetime.rst:2398 msgid "``%%``" msgstr "``%%``" -#: ../Doc/library/datetime.rst:2399 +#: library/datetime.rst:2398 msgid "A literal ``'%'`` character." msgstr "Un caractère ``'%'`` littéral." -#: ../Doc/library/datetime.rst:2399 +#: library/datetime.rst:2398 msgid "%" msgstr "%" -#: ../Doc/library/datetime.rst:2402 +#: library/datetime.rst:2401 msgid "" "Several additional directives not required by the C89 standard are included " "for convenience. These parameters all correspond to ISO 8601 date values." msgstr "" +"Plusieurs directives supplémentaires non requises par la norme C89 sont " +"incluses pour des raisons de commodité. Ces paramètres correspondent tous " +"aux valeurs de date de la norme ISO 8601." -#: ../Doc/library/datetime.rst:2408 +#: library/datetime.rst:2407 msgid "``%G``" msgstr "``%G``" -#: ../Doc/library/datetime.rst:2408 +#: library/datetime.rst:2407 msgid "" "ISO 8601 year with century representing the year that contains the greater " "part of the ISO week (``%V``)." @@ -3790,27 +3788,27 @@ msgstr "" "Année complète ISO 8601 représentant l'année contenant la plus grande partie " "de la semaine ISO (``%V``)." -#: ../Doc/library/datetime.rst:2408 +#: library/datetime.rst:2407 msgid "\\(8)" msgstr "\\(8)" -#: ../Doc/library/datetime.rst:2413 +#: library/datetime.rst:2412 msgid "``%u``" msgstr "``%u``" -#: ../Doc/library/datetime.rst:2413 +#: library/datetime.rst:2412 msgid "ISO 8601 weekday as a decimal number where 1 is Monday." msgstr "Jour de la semaine ISO 8601 où 1 correspond au lundi." -#: ../Doc/library/datetime.rst:2413 +#: library/datetime.rst:2412 msgid "1, 2, ..., 7" msgstr "1, 2, ..., 7" -#: ../Doc/library/datetime.rst:2416 +#: library/datetime.rst:2415 msgid "``%V``" msgstr "``%V``" -#: ../Doc/library/datetime.rst:2416 +#: library/datetime.rst:2415 msgid "" "ISO 8601 week as a decimal number with Monday as the first day of the week. " "Week 01 is the week containing Jan 4." @@ -3818,15 +3816,15 @@ msgstr "" "Numéro de la semaine ISO 8601, avec lundi étant le premier jour de la " "semaine. La semaine 01 est la semaine contenant le 4 janvier." -#: ../Doc/library/datetime.rst:2416 +#: library/datetime.rst:2415 msgid "01, 02, ..., 53" msgstr "01, 02, ..., 53" -#: ../Doc/library/datetime.rst:2416 +#: library/datetime.rst:2415 msgid "\\(8), \\(9)" msgstr "\\(8), \\(9)" -#: ../Doc/library/datetime.rst:2423 +#: library/datetime.rst:2422 #, fuzzy msgid "" "These may not be available on all platforms when used with the :meth:" @@ -3843,7 +3841,7 @@ msgstr "" "directives d'année et de semaine précédentes. Appeler :meth:`strptime` avec " "des directives ISO 8601 incomplètes ou ambiguës lèvera une :exc:`ValueError`." -#: ../Doc/library/datetime.rst:2428 +#: library/datetime.rst:2427 #, fuzzy msgid "" "The full set of format codes supported varies across platforms, because " @@ -3857,15 +3855,15 @@ msgstr "" "voir un ensemble complet des codes de formatage implémentés par votre " "plateforme, consultez la documentation de :manpage:`strftime(3)`." -#: ../Doc/library/datetime.rst:2433 +#: library/datetime.rst:2432 msgid "``%G``, ``%u`` and ``%V`` were added." msgstr "``%G``, ``%u`` et ``%V`` ont été ajoutés." -#: ../Doc/library/datetime.rst:2437 +#: library/datetime.rst:2436 msgid "Technical Detail" -msgstr "" +msgstr "Détail technique" -#: ../Doc/library/datetime.rst:2439 +#: library/datetime.rst:2438 #, fuzzy msgid "" "Broadly speaking, ``d.strftime(fmt)`` acts like the :mod:`time` module's " @@ -3879,7 +3877,7 @@ msgstr "" "la fonction ``time.strftime(fmt, d.timetuple())`` du module :mod:`time`, " "bien que tous les objets ne comportent pas de méthode :meth:`timetuple`." -#: ../Doc/library/datetime.rst:2443 +#: library/datetime.rst:2442 msgid "" "For the :meth:`datetime.strptime` class method, the default value is " "``1900-01-01T00:00:00.000``: any components not specified in the format " @@ -3889,18 +3887,22 @@ msgstr "" "``1900-01-01T00:00:00.000`` : tous les composants non spécifiés dans la " "chaîne de formatage seront retirés de la valeur par défaut. [#]_" -#: ../Doc/library/datetime.rst:2447 +#: library/datetime.rst:2446 msgid "Using ``datetime.strptime(date_string, format)`` is equivalent to::" msgstr "" +"L'utilisation de ``datetime.strptime(date_string, format)`` équivaut à ::" -#: ../Doc/library/datetime.rst:2451 +#: library/datetime.rst:2450 msgid "" "except when the format includes sub-second components or timezone offset " "information, which are supported in ``datetime.strptime`` but are discarded " "by ``time.strptime``." msgstr "" +"sauf lorsque le format inclut des composantes de sous-secondes ou des " +"informations de décalage de fuseau horaire, qui sont prises en charge dans " +"``datetime.strptime`` mais pas par ``time.strptime``." -#: ../Doc/library/datetime.rst:2455 +#: library/datetime.rst:2454 #, fuzzy msgid "" "For :class:`.time` objects, the format codes for year, month, and day should " @@ -3913,7 +3915,7 @@ msgstr "" "possèdent pas de telles valeurs. S'ils sont tout de même utilisés, ``1900`` " "est substitué à l'année, et ``1`` au mois et au jour." -#: ../Doc/library/datetime.rst:2459 +#: library/datetime.rst:2458 #, fuzzy msgid "" "For :class:`date` objects, the format codes for hours, minutes, seconds, and " @@ -3925,7 +3927,7 @@ msgstr "" "les objets :class:`date` ne possèdent pas de telles valeurs. S'ils sont " "tous de même utilisés, ils sont substitués par ``0``." -#: ../Doc/library/datetime.rst:2463 +#: library/datetime.rst:2462 msgid "" "For the same reason, handling of format strings containing Unicode code " "points that can't be represented in the charset of the current locale is " @@ -3940,7 +3942,7 @@ msgstr "" "plateformes ``strftime`` lève une :exc:`UnicodeError` ou renvoie une chaîne " "vide." -#: ../Doc/library/datetime.rst:2472 +#: library/datetime.rst:2471 msgid "" "Because the format depends on the current locale, care should be taken when " "making assumptions about the output value. Field orderings will vary (for " @@ -3959,7 +3961,7 @@ msgstr "" "utilisez :meth:`locale.getlocale` pour déterminer l'encodage de la locale " "courante)." -#: ../Doc/library/datetime.rst:2481 +#: library/datetime.rst:2480 msgid "" "The :meth:`strptime` method can parse years in the full [1, 9999] range, but " "years < 1000 must be zero-filled to 4-digit width." @@ -3968,7 +3970,7 @@ msgstr "" "[1, 9999], mais toutes les années < 1000 doivent être représentées sur " "quatre chiffres." -#: ../Doc/library/datetime.rst:2484 +#: library/datetime.rst:2483 msgid "" "In previous versions, :meth:`strftime` method was restricted to years >= " "1900." @@ -3976,13 +3978,13 @@ msgstr "" "Dans les versions précédentes, la méthode :meth:`strftime` était limitée aux " "années >= 1900." -#: ../Doc/library/datetime.rst:2488 +#: library/datetime.rst:2487 msgid "" "In version 3.2, :meth:`strftime` method was restricted to years >= 1000." msgstr "" "En version 3.2, la méthode :meth:`strftime` était limitée aux années >= 1000." -#: ../Doc/library/datetime.rst:2493 +#: library/datetime.rst:2492 msgid "" "When used with the :meth:`strptime` method, the ``%p`` directive only " "affects the output hour field if the ``%I`` directive is used to parse the " @@ -3992,7 +3994,7 @@ msgstr "" "n'affecte l'heure extraite que si la directive ``%I`` est utilisée pour " "analyser l'heure." -#: ../Doc/library/datetime.rst:2497 +#: library/datetime.rst:2496 msgid "" "Unlike the :mod:`time` module, the :mod:`datetime` module does not support " "leap seconds." @@ -4000,7 +4002,7 @@ msgstr "" "À l'inverse du module :mod:`time`, le module :mod:`datetime` ne gère pas les " "secondes intercalaires." -#: ../Doc/library/datetime.rst:2501 +#: library/datetime.rst:2500 #, fuzzy msgid "" "When used with the :meth:`strptime` method, the ``%f`` directive accepts " @@ -4014,7 +4016,7 @@ msgstr "" "caractères de formatage du standard C (mais implémentée séparément dans les " "objets *datetime*, la rendant ainsi toujours disponible)." -#: ../Doc/library/datetime.rst:2508 +#: library/datetime.rst:2507 msgid "" "For a naive object, the ``%z`` and ``%Z`` format codes are replaced by empty " "strings." @@ -4022,17 +4024,17 @@ msgstr "" "Pour les objets naïfs, les codes de formatage ``%z`` et ``%Z`` sont " "remplacés par des chaînes vides." -#: ../Doc/library/datetime.rst:2511 +#: library/datetime.rst:2510 msgid "For an aware object:" msgstr "Pour un objet avisé :" -#: ../Doc/library/datetime.rst:2514 +#: library/datetime.rst:2513 #, fuzzy msgid "" ":meth:`utcoffset` is transformed into a string of the form ``±HHMM[SS[." "ffffff]]``, where ``HH`` is a 2-digit string giving the number of UTC offset " "hours, ``MM`` is a 2-digit string giving the number of UTC offset minutes, " -"SS is a 2-digit string giving the number of UTC offset seconds and " +"``SS`` is a 2-digit string giving the number of UTC offset seconds and " "``ffffff`` is a 6-digit string giving the number of UTC offset microseconds. " "The ``ffffff`` part is omitted when the offset is a whole number of seconds " "and both the ``ffffff`` and the ``SS`` part is omitted when the offset is a " @@ -4050,7 +4052,7 @@ msgstr "" "``timedelta(hours=-3, minutes=-30)``, ``%z`` est remplacé par la chaîne " "`'-0330'``." -#: ../Doc/library/datetime.rst:2528 +#: library/datetime.rst:2527 msgid "" "When the ``%z`` directive is provided to the :meth:`strptime` method, the " "UTC offsets can have a colon as a separator between hours, minutes and " @@ -4062,7 +4064,7 @@ msgstr "" "minutes et secondes. Par exemple, ``'+01:00:00'``, est analysé comme un " "décalage d'une heure. Par ailleurs, ``'Z'`` est identique à ``'+00:00'``." -#: ../Doc/library/datetime.rst:2536 +#: library/datetime.rst:2535 #, fuzzy msgid "" "If :meth:`tzname` returns ``None``, ``%Z`` is replaced by an empty string. " @@ -4072,7 +4074,7 @@ msgstr "" "vide. Autrement ``%Z`` est remplacé par la valeur renvoyée, qui doit être " "une chaîne." -#: ../Doc/library/datetime.rst:2540 +#: library/datetime.rst:2539 #, fuzzy msgid "" "When the ``%z`` directive is provided to the :meth:`strptime` method, an " @@ -4083,7 +4085,7 @@ msgstr "" "objet :class:`.datetime` avisé est construit. L'attribut ``tzinfo`` du " "résultat aura pour valeur une instance de :class:`timezone`." -#: ../Doc/library/datetime.rst:2546 +#: library/datetime.rst:2545 msgid "" "When used with the :meth:`strptime` method, ``%U`` and ``%W`` are only used " "in calculations when the day of the week and the calendar year (``%Y``) are " @@ -4093,7 +4095,7 @@ msgstr "" "et ``%W`` ne sont utilisées dans les calculs que si le jour de la semaine et " "l'année calendaire (``%Y``) sont spécifiés." -#: ../Doc/library/datetime.rst:2551 +#: library/datetime.rst:2550 msgid "" "Similar to ``%U`` and ``%W``, ``%V`` is only used in calculations when the " "day of the week and the ISO year (``%G``) are specified in a :meth:" @@ -4102,29 +4104,29 @@ msgid "" msgstr "" "De façon similaire à ``%U`` et ``%W``, ``%v`` n'est utilisé dans les calculs " "que lorsque le jour de la semaine et l'année ISO (``%G``) sont spécifiés " -"dans la chaîne de formatage :meth:`strptime`. Notez aussi que ``%G`` et ``" -"%Y`` ne sont pas interchangeables." +"dans la chaîne de formatage :meth:`strptime`. Notez aussi que ``%G`` et " +"``%Y`` ne sont pas interchangeables." -#: ../Doc/library/datetime.rst:2557 +#: library/datetime.rst:2556 msgid "" "When used with the :meth:`strptime` method, the leading zero is optional " "for formats ``%d``, ``%m``, ``%H``, ``%I``, ``%M``, ``%S``, ``%J``, ``%U``, " "``%W``, and ``%V``. Format ``%y`` does require a leading zero." msgstr "" "Quand cette directive est utilisée avec la méthode :meth:`strptime`, le zéro " -"d'entête est optionnel pour les formats ``%d``, ``%m``, ``%H``, ``%I``, ``" -"%M``, ``%S``, ``%J``, ``%U``, ``%W`` et ``%V``. Le format ``%y`` requiert un " -"zéro en entête." +"d'entête est optionnel pour les formats ``%d``, ``%m``, ``%H``, ``%I``, " +"``%M``, ``%S``, ``%J``, ``%U``, ``%W`` et ``%V``. Le format ``%y`` requiert " +"un zéro en entête." -#: ../Doc/library/datetime.rst:2562 +#: library/datetime.rst:2561 msgid "Footnotes" msgstr "Notes" -#: ../Doc/library/datetime.rst:2563 +#: library/datetime.rst:2562 msgid "If, that is, we ignore the effects of Relativity" msgstr "Si on ignore les effets de la Relativité" -#: ../Doc/library/datetime.rst:2565 +#: library/datetime.rst:2564 #, fuzzy msgid "" "This matches the definition of the \"proleptic Gregorian\" calendar in " @@ -4142,7 +4144,7 @@ msgstr "" "base de tous les calculs. Référez-vous au livre pour les algorithmes de " "conversion entre calendriers grégorien proleptique et les autres systèmes." -#: ../Doc/library/datetime.rst:2571 +#: library/datetime.rst:2570 #, fuzzy msgid "" "See R. H. van Gent's `guide to the mathematics of the ISO 8601 calendar " @@ -4153,7 +4155,7 @@ msgstr "" "grégorien. Voir https://www.staff.science.uu.nl/~gent0113/calendar/" "isocalendar.htm pour une bonne explication." -#: ../Doc/library/datetime.rst:2575 +#: library/datetime.rst:2574 msgid "" "Passing ``datetime.strptime('Feb 29', '%b %d')`` will fail since ``1900`` is " "not a leap year." @@ -4322,7 +4324,7 @@ msgstr "" #~ "microsecond`` vaut 0, ``HH:MM:SS+HH:MM[:SS[.ffffff]]``." #~ msgid "or ::" -#~ msgstr "ou ::" +#~ msgstr "ou ::" #~ msgid "" #~ "Conversely, the :meth:`datetime.strptime` class method creates a :class:`." diff --git a/library/dbm.po b/library/dbm.po index 04fdb83d07..dac69e8c04 100644 --- a/library/dbm.po +++ b/library/dbm.po @@ -19,8 +19,9 @@ msgid ":mod:`dbm` --- Interfaces to Unix \"databases\"" msgstr "" #: ../Doc/library/dbm.rst:7 +#, fuzzy msgid "**Source code:** :source:`Lib/dbm/__init__.py`" -msgstr "" +msgstr "**Source code:** :source:`Lib/html/__init__.py`" #: ../Doc/library/dbm.rst:11 msgid "" @@ -175,7 +176,7 @@ msgstr "" #: ../Doc/library/dbm.rst:121 msgid "Module :mod:`shelve`" -msgstr "" +msgstr "Module :mod:`shelve`" #: ../Doc/library/dbm.rst:122 msgid "Persistence module which stores non-string data." @@ -190,8 +191,9 @@ msgid ":mod:`dbm.gnu` --- GNU's reinterpretation of dbm" msgstr "" #: ../Doc/library/dbm.rst:135 +#, fuzzy msgid "**Source code:** :source:`Lib/dbm/gnu.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/bdb.py`" #: ../Doc/library/dbm.rst:139 msgid "" @@ -315,8 +317,9 @@ msgid ":mod:`dbm.ndbm` --- Interface based on ndbm" msgstr "" #: ../Doc/library/dbm.rst:247 +#, fuzzy msgid "**Source code:** :source:`Lib/dbm/ndbm.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/bdb.py`" #: ../Doc/library/dbm.rst:251 msgid "" @@ -372,8 +375,9 @@ msgid ":mod:`dbm.dumb` --- Portable DBM implementation" msgstr "" #: ../Doc/library/dbm.rst:312 +#, fuzzy msgid "**Source code:** :source:`Lib/dbm/dumb.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/bdb.py`" #: ../Doc/library/dbm.rst:318 msgid "" @@ -411,11 +415,15 @@ msgid "" msgstr "" #: ../Doc/library/dbm.rst:369 +#, fuzzy msgid "" "It is possible to crash the Python interpreter when loading a database with " "a sufficiently large/complex entry due to stack depth limitations in " "Python's AST compiler." msgstr "" +"Il est possible de faire planter l'interpréteur Python avec des chaînes " +"suffisamment grandes ou complexes lors de la compilation d'un objet AST dû à " +"la limitation de la profondeur de la pile d'appels." #: ../Doc/library/dbm.rst:373 msgid "" diff --git a/library/decimal.po b/library/decimal.po index 82841b3d1a..60820755fb 100644 --- a/library/decimal.po +++ b/library/decimal.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-03-11 12:59+0100\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2018-10-07 18:55+0200\n" "Last-Translator: \n" "Language-Team: FRENCH \n" @@ -15,15 +15,15 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 1.8.11\n" -#: ../Doc/library/decimal.rst:2 +#: library/decimal.rst:2 msgid ":mod:`decimal` --- Decimal fixed point and floating point arithmetic" msgstr ":mod:`decimal` — Arithmétique décimale en virgule fixe et flottante" -#: ../Doc/library/decimal.rst:15 +#: library/decimal.rst:15 msgid "**Source code:** :source:`Lib/decimal.py`" msgstr "**Code source :** :source:`Lib/decimal.py`" -#: ../Doc/library/decimal.rst:33 +#: library/decimal.rst:33 msgid "" "The :mod:`decimal` module provides support for fast correctly-rounded " "decimal floating point arithmetic. It offers several advantages over the :" @@ -33,7 +33,7 @@ msgstr "" "rapide et produisant des arrondis mathématiquement corrects. Il possède " "plusieurs avantages en comparaison au type :class:`float` :" -#: ../Doc/library/decimal.rst:37 +#: library/decimal.rst:37 msgid "" "Decimal \"is based on a floating-point model which was designed with people " "in mind, and necessarily has a paramount guiding principle -- computers must " @@ -47,7 +47,7 @@ msgstr "" "apprend à l'école » -- extrait (traduit) de la spécification de " "l'arithmétique décimale." -#: ../Doc/library/decimal.rst:42 +#: library/decimal.rst:42 msgid "" "Decimal numbers can be represented exactly. In contrast, numbers like :" "const:`1.1` and :const:`2.2` do not have exact representations in binary " @@ -61,7 +61,7 @@ msgstr "" "lorsqu'il saisit ``1.1 + 2.2``, ce qui se passe en arithmétique binaire à " "virgule flottante." -#: ../Doc/library/decimal.rst:47 +#: library/decimal.rst:47 msgid "" "The exactness carries over into arithmetic. In decimal floating point, " "``0.1 + 0.1 + 0.1 - 0.3`` is exactly equal to zero. In binary floating " @@ -78,7 +78,7 @@ msgstr "" "s'accumuler. Pour ces raisons ``decimal`` est le module utilisé pour des " "applications comptables ayant des contraintes strictes de fiabilité." -#: ../Doc/library/decimal.rst:54 +#: library/decimal.rst:54 msgid "" "The decimal module incorporates a notion of significant places so that " "``1.30 + 1.20`` is :const:`2.50`. The trailing zero is kept to indicate " @@ -95,7 +95,7 @@ msgstr "" "dans les facteurs. Par exemple, ``1.3 * 1.2`` donnerait :const:`1.56` tandis " "que ``1.30 * 1.20`` donnerait :const:`1.5600`." -#: ../Doc/library/decimal.rst:61 +#: library/decimal.rst:61 msgid "" "Unlike hardware based binary floating point, the decimal module has a user " "alterable precision (defaulting to 28 places) which can be as large as " @@ -106,7 +106,7 @@ msgstr "" "chiffres significatifs) qui peut être aussi élevée que nécessaire pour un " "problème donné :" -#: ../Doc/library/decimal.rst:73 +#: library/decimal.rst:73 msgid "" "Both binary and decimal floating point are implemented in terms of published " "standards. While the built-in float type exposes only a modest portion of " @@ -123,7 +123,7 @@ msgstr "" "possibilité de forcer une arithmétique exacte en utilisant des exceptions " "pour bloquer toute opération inexacte." -#: ../Doc/library/decimal.rst:80 +#: library/decimal.rst:80 msgid "" "The decimal module was designed to support \"without prejudice, both exact " "unrounded decimal arithmetic (sometimes called fixed-point arithmetic) and " @@ -135,7 +135,7 @@ msgstr "" "fixe) et à la fois une arithmétique en virgule flottante. » (extrait traduit " "de la spécification de l'arithmétique décimale)." -#: ../Doc/library/decimal.rst:85 +#: library/decimal.rst:85 msgid "" "The module design is centered around three concepts: the decimal number, " "the context for arithmetic, and signals." @@ -143,7 +143,7 @@ msgstr "" "Le module est conçu autour de trois concepts : le nombre décimal, le " "contexte arithmétique et les signaux." -#: ../Doc/library/decimal.rst:88 +#: library/decimal.rst:88 msgid "" "A decimal number is immutable. It has a sign, coefficient digits, and an " "exponent. To preserve significance, the coefficient digits do not truncate " @@ -157,7 +157,7 @@ msgstr "" "spéciales telles que :const:`Infinity`, :const:`-Infinity`, et :const:`NaN`. " "Le standard fait également la différence entre :const:`-0` et :const:`+0`." -#: ../Doc/library/decimal.rst:94 +#: library/decimal.rst:94 msgid "" "The context for arithmetic is an environment specifying precision, rounding " "rules, limits on exponents, flags indicating the results of operations, and " @@ -174,7 +174,7 @@ msgstr "" "const:`ROUND_FLOOR`, :const:`ROUND_HALF_DOWN`, :const:`ROUND_HALF_EVEN`, :" "const:`ROUND_HALF_UP`, :const:`ROUND_UP`, et :const:`ROUND_05UP`." -#: ../Doc/library/decimal.rst:101 +#: library/decimal.rst:101 msgid "" "Signals are groups of exceptional conditions arising during the course of " "computation. Depending on the needs of the application, signals may be " @@ -192,7 +192,7 @@ msgstr "" "`Rounded`, :const:`Subnormal`, :const:`Overflow`, :const:`Underflow` et :" "const:`FloatOperation`." -#: ../Doc/library/decimal.rst:108 +#: library/decimal.rst:108 msgid "" "For each signal there is a flag and a trap enabler. When a signal is " "encountered, its flag is set to one, then, if the trap enabler is set to " @@ -205,7 +205,7 @@ msgstr "" "donc les remettre à zéro avant de commencer un calcul qu'il souhaite " "surveiller." -#: ../Doc/library/decimal.rst:116 +#: library/decimal.rst:116 msgid "" "IBM's General Decimal Arithmetic Specification, `The General Decimal " "Arithmetic Specification `_." @@ -213,11 +213,11 @@ msgstr "" "La spécification d'IBM sur l'arithmétique décimale : `The General Decimal " "Arithmetic Specification `_." -#: ../Doc/library/decimal.rst:125 +#: library/decimal.rst:125 msgid "Quick-start Tutorial" msgstr "Introduction pratique" -#: ../Doc/library/decimal.rst:127 +#: library/decimal.rst:127 msgid "" "The usual start to using decimals is importing the module, viewing the " "current context with :func:`getcontext` and, if necessary, setting new " @@ -227,7 +227,7 @@ msgstr "" "`getcontext`, et si nécessaire configurer la précision, l'arrondi, et la " "gestion des signaux ::" -#: ../Doc/library/decimal.rst:139 +#: library/decimal.rst:139 msgid "" "Decimal instances can be constructed from integers, strings, floats, or " "tuples. Construction from an integer or a float performs an exact conversion " @@ -242,7 +242,7 @@ msgstr "" "const:`NaN` qui signifie en anglais « *Not a number* », en français « pas un " "nombre », des :const:`Infinity` positifs ou négatifs et :const:`-0` ::" -#: ../Doc/library/decimal.rst:163 +#: library/decimal.rst:163 msgid "" "If the :exc:`FloatOperation` signal is trapped, accidental mixing of " "decimals and floats in constructors or ordering comparisons raises an " @@ -252,7 +252,7 @@ msgstr "" "d'objets ``Decimal`` et de ``float`` dans les constructeurs ou des " "opérations de comparaisons, une exception est levée ::" -#: ../Doc/library/decimal.rst:182 +#: library/decimal.rst:182 msgid "" "The significance of a new Decimal is determined solely by the number of " "digits input. Context precision and rounding only come into play during " @@ -262,7 +262,7 @@ msgstr "" "déterminé entièrement par le nombre de chiffres saisis. La précision et les " "règles d'arrondis n'interviennent que lors d'opérations arithmétiques." -#: ../Doc/library/decimal.rst:199 +#: library/decimal.rst:199 msgid "" "If the internal limits of the C version are exceeded, constructing a decimal " "raises :class:`InvalidOperation`::" @@ -270,7 +270,7 @@ msgstr "" "Si les limites internes de la version en C sont dépassées, la construction " "d'un objet décimal lève l'exception :class:`InvalidOperation` ::" -#: ../Doc/library/decimal.rst:209 +#: library/decimal.rst:209 msgid "" "Decimals interact well with much of the rest of Python. Here is a small " "decimal floating point flying circus:" @@ -278,13 +278,13 @@ msgstr "" "Les objets ``Decimal`` interagissent très bien avec le reste de Python. " "Voici quelques exemple d'opérations avec des décimaux :" -#: ../Doc/library/decimal.rst:241 +#: library/decimal.rst:241 msgid "And some mathematical functions are also available to Decimal:" msgstr "" "Et certaines fonctions mathématiques sont également disponibles sur des " "instances de ``Decimal`` :" -#: ../Doc/library/decimal.rst:253 +#: library/decimal.rst:253 msgid "" "The :meth:`quantize` method rounds a number to a fixed exponent. This " "method is useful for monetary applications that often round results to a " @@ -294,7 +294,7 @@ msgstr "" "méthode est utile pour des applications monétaires qui arrondissent souvent " "un résultat à un nombre de chiffres significatifs exact :" -#: ../Doc/library/decimal.rst:262 +#: library/decimal.rst:262 msgid "" "As shown above, the :func:`getcontext` function accesses the current context " "and allows the settings to be changed. This approach meets the needs of " @@ -304,7 +304,7 @@ msgstr "" "actuel et permet de modifier les paramètres. Cette approche répond aux " "besoins de la plupart des applications." -#: ../Doc/library/decimal.rst:266 +#: library/decimal.rst:266 msgid "" "For more advanced work, it may be useful to create alternate contexts using " "the Context() constructor. To make an alternate active, use the :func:" @@ -314,7 +314,7 @@ msgstr "" "alternatifs en utilisant le constructeur de ``Context``. Pour activer cet " "objet ``Context``, utilisez la fonction :func:`setcontext`." -#: ../Doc/library/decimal.rst:270 +#: library/decimal.rst:270 msgid "" "In accordance with the standard, the :mod:`decimal` module provides two " "ready to use standard contexts, :const:`BasicContext` and :const:" @@ -326,7 +326,7 @@ msgstr "" "premier est particulièrement utile pour le débogage car beaucoup des pièges " "sont activés dans cet objet." -#: ../Doc/library/decimal.rst:299 +#: library/decimal.rst:299 msgid "" "Contexts also have signal flags for monitoring exceptional conditions " "encountered during computations. The flags remain set until explicitly " @@ -339,7 +339,7 @@ msgstr "" "zéro ces options avant chaque inspection de chaque calcul, avec la méthode :" "meth:`clear_flags`. ::" -#: ../Doc/library/decimal.rst:312 +#: library/decimal.rst:312 msgid "" "The *flags* entry shows that the rational approximation to :const:`Pi` was " "rounded (digits beyond the context precision were thrown away) and that the " @@ -350,7 +350,7 @@ msgstr "" "Context ont été tronqués) et que le résultat est différent (certains des " "chiffres tronqués étaient différents de zéro)." -#: ../Doc/library/decimal.rst:316 +#: library/decimal.rst:316 msgid "" "Individual traps are set using the dictionary in the :attr:`traps` field of " "a context:" @@ -358,7 +358,7 @@ msgstr "" "L'activation des pièges se fait en utilisant un dictionnaire dans " "l'attribut :attr:`traps` de l'objet Context :" -#: ../Doc/library/decimal.rst:331 +#: library/decimal.rst:331 msgid "" "Most programs adjust the current context only once, at the beginning of the " "program. And, in many applications, data is converted to :class:`Decimal` " @@ -373,15 +373,15 @@ msgstr "" "manipule la donnée de la même manière qu'avec les autres types numériques " "Python." -#: ../Doc/library/decimal.rst:343 +#: library/decimal.rst:343 msgid "Decimal objects" msgstr "Les objets Decimal" -#: ../Doc/library/decimal.rst:348 +#: library/decimal.rst:348 msgid "Construct a new :class:`Decimal` object based from *value*." msgstr "Construire un nouvel objet :class:`Decimal` à partir de *value*." -#: ../Doc/library/decimal.rst:350 +#: library/decimal.rst:350 msgid "" "*value* can be an integer, string, tuple, :class:`float`, or another :class:" "`Decimal` object. If no *value* is given, returns ``Decimal('0')``. If " @@ -395,7 +395,7 @@ msgstr "" "de caractère, elle doit correspondre à la syntaxe décimale en dehors des " "espaces de début et de fin, ou des tirets bas, qui sont enlevés ::" -#: ../Doc/library/decimal.rst:366 +#: library/decimal.rst:366 msgid "" "Other Unicode decimal digits are also permitted where ``digit`` appears " "above. These include decimal digits from various other alphabets (for " @@ -407,7 +407,7 @@ msgstr "" "exemple les chiffres indo-arabes ou Devanagari) ainsi que les chiffres de " "pleine largeur ``'\\uff10'`` jusqu'à ``'\\uff19'``." -#: ../Doc/library/decimal.rst:371 +#: library/decimal.rst:371 msgid "" "If *value* is a :class:`tuple`, it should have three components, a sign (:" "const:`0` for positive or :const:`1` for negative), a :class:`tuple` of " @@ -419,7 +419,7 @@ msgstr "" "et un entier représentant l'exposant. Par exemple, ``Decimal((0, (1, 4, 1, " "4), -3))`` construit l'objet ``Decimal('1.414')``." -#: ../Doc/library/decimal.rst:376 +#: library/decimal.rst:376 msgid "" "If *value* is a :class:`float`, the binary floating point value is " "losslessly converted to its exact decimal equivalent. This conversion can " @@ -433,7 +433,7 @@ msgstr "" "``Decimal(float('1.1'))`` devient " "``Decimal('1.100000000000000088817841970012523233890533447265625')``." -#: ../Doc/library/decimal.rst:382 +#: library/decimal.rst:382 msgid "" "The *context* precision does not affect how many digits are stored. That is " "determined exclusively by the number of digits in *value*. For example, " @@ -445,7 +445,7 @@ msgstr "" "dans *value*. Par exemple, ``Decimal('3.00000')`` enregistre les 5 zéros " "même si la précision du contexte est de 3." -#: ../Doc/library/decimal.rst:387 +#: library/decimal.rst:387 msgid "" "The purpose of the *context* argument is determining what to do if *value* " "is a malformed string. If the context traps :const:`InvalidOperation`, an " @@ -457,18 +457,18 @@ msgstr "" "`InvalidOperation` est activée, une exception est levée, sinon le " "constructeur renvoie un objet ``Decimal`` avec la valeur :const:`NaN`." -#: ../Doc/library/decimal.rst:392 +#: library/decimal.rst:392 msgid "Once constructed, :class:`Decimal` objects are immutable." msgstr "Une fois construit, les objets :class:`Decimal` sont immuables." -#: ../Doc/library/decimal.rst:394 +#: library/decimal.rst:394 msgid "" "The argument to the constructor is now permitted to be a :class:`float` " "instance." msgstr "" "L'argument du constructeur peut désormais être un objet :class:`float`." -#: ../Doc/library/decimal.rst:398 +#: library/decimal.rst:398 msgid "" ":class:`float` arguments raise an exception if the :exc:`FloatOperation` " "trap is set. By default the trap is off." @@ -476,7 +476,7 @@ msgstr "" "Un argument :class:`float` lève une exception si l'option :exc:" "`FloatOperation` est activé. Par défaut l'option ne l'est pas." -#: ../Doc/library/decimal.rst:402 +#: library/decimal.rst:402 msgid "" "Underscores are allowed for grouping, as with integral and floating-point " "literals in code." @@ -484,7 +484,7 @@ msgstr "" "Les tirets bas sont autorisés pour regrouper, tout comme pour l'arithmétique " "en virgule fixe et flottante." -#: ../Doc/library/decimal.rst:406 +#: library/decimal.rst:406 msgid "" "Decimal floating point objects share many properties with the other built-in " "numeric types such as :class:`float` and :class:`int`. All of the usual " @@ -501,7 +501,7 @@ msgstr "" "comparés, classés, et convertis vers un autre type (tel que :class:`float` " "ou :class:`int`)." -#: ../Doc/library/decimal.rst:413 +#: library/decimal.rst:413 msgid "" "There are some small differences between arithmetic on Decimal objects and " "arithmetic on integers and floats. When the remainder operator ``%`` is " @@ -511,9 +511,9 @@ msgstr "" "Il existe quelques différences mineures entre l'arithmétique entre les " "objets décimaux et l'arithmétique avec les entiers et les ``float``. Quand " "l'opérateur modulo ``%`` est appliqué sur des objets décimaux, le signe du " -"résultat est le signe du *dividend* plutôt que le signe du diviseur::" +"résultat est le signe du *dividend* plutôt que le signe du diviseur ::" -#: ../Doc/library/decimal.rst:423 +#: library/decimal.rst:423 msgid "" "The integer division operator ``//`` behaves analogously, returning the " "integer part of the true quotient (truncating towards zero) rather than its " @@ -521,9 +521,9 @@ msgid "" msgstr "" "L'opérateur division entière, ``//`` se comporte de la même manière, " "retournant la partie entière du quotient, plutôt que son arrondi, de manière " -"à préserver l'identité d'Euclide ``x == (x // y) * y + x % y``::" +"à préserver l'identité d'Euclide ``x == (x // y) * y + x % y`` ::" -#: ../Doc/library/decimal.rst:432 +#: library/decimal.rst:432 msgid "" "The ``%`` and ``//`` operators implement the ``remainder`` and ``divide-" "integer`` operations (respectively) as described in the specification." @@ -531,7 +531,7 @@ msgstr "" "Les opérateurs ``//`` et ``%`` implémentent la division entière et le reste " "(ou modulo), respectivement, tel que décrit dans la spécification." -#: ../Doc/library/decimal.rst:436 +#: library/decimal.rst:436 msgid "" "Decimal objects cannot generally be combined with floats or instances of :" "class:`fractions.Fraction` in arithmetic operations: an attempt to add a :" @@ -549,7 +549,7 @@ msgstr "" "`Decimal` avec les autres types numériques. Cela évite d'avoir des résultats " "absurdes lors des tests d'égalité entre différents types." -#: ../Doc/library/decimal.rst:444 +#: library/decimal.rst:444 msgid "" "Mixed-type comparisons between :class:`Decimal` instances and other numeric " "types are now fully supported." @@ -557,13 +557,13 @@ msgstr "" "Les comparaisons inter-types entre :class:`Decimal` et les autres types " "numériques sont désormais intégralement gérés." -#: ../Doc/library/decimal.rst:448 +#: library/decimal.rst:448 msgid "" "In addition to the standard numeric properties, decimal floating point " "objects also have a number of specialized methods:" msgstr "" -#: ../Doc/library/decimal.rst:454 +#: library/decimal.rst:454 msgid "" "Return the adjusted exponent after shifting out the coefficient's rightmost " "digits until only the lead digit remains: ``Decimal('321e+5').adjusted()`` " @@ -571,14 +571,14 @@ msgid "" "digit with respect to the decimal point." msgstr "" -#: ../Doc/library/decimal.rst:461 +#: library/decimal.rst:461 msgid "" "Return a pair ``(n, d)`` of integers that represent the given :class:" "`Decimal` instance as a fraction, in lowest terms and with a positive " "denominator::" msgstr "" -#: ../Doc/library/decimal.rst:468 +#: library/decimal.rst:468 msgid "" "The conversion is exact. Raise OverflowError on infinities and ValueError " "on NaNs." @@ -586,33 +586,33 @@ msgstr "" "La conversion est exacte. Lève une ``OverflowError`` sur l'infini et " "``ValueError`` sur les ``Nan``'s." -#: ../Doc/library/decimal.rst:475 +#: library/decimal.rst:475 msgid "" "Return a :term:`named tuple` representation of the number: " "``DecimalTuple(sign, digits, exponent)``." msgstr "" -#: ../Doc/library/decimal.rst:481 +#: library/decimal.rst:481 msgid "" "Return the canonical encoding of the argument. Currently, the encoding of " "a :class:`Decimal` instance is always canonical, so this operation returns " "its argument unchanged." msgstr "" -#: ../Doc/library/decimal.rst:487 +#: library/decimal.rst:487 msgid "" "Compare the values of two Decimal instances. :meth:`compare` returns a " "Decimal instance, and if either operand is a NaN then the result is a NaN::" msgstr "" -#: ../Doc/library/decimal.rst:498 +#: library/decimal.rst:498 msgid "" "This operation is identical to the :meth:`compare` method, except that all " "NaNs signal. That is, if neither operand is a signaling NaN then any quiet " "NaN operand is treated as though it were a signaling NaN." msgstr "" -#: ../Doc/library/decimal.rst:504 +#: library/decimal.rst:504 msgid "" "Compare two operands using their abstract representation rather than their " "numerical value. Similar to the :meth:`compare` method, but the result " @@ -621,7 +621,7 @@ msgid "" "unequal in this ordering:" msgstr "" -#: ../Doc/library/decimal.rst:513 +#: library/decimal.rst:513 msgid "" "Quiet and signaling NaNs are also included in the total ordering. The " "result of this function is ``Decimal('0')`` if both operands have the same " @@ -631,15 +631,14 @@ msgid "" "details of the total order." msgstr "" -#: ../Doc/library/decimal.rst:520 ../Doc/library/decimal.rst:531 -#: ../Doc/library/decimal.rst:559 ../Doc/library/decimal.rst:834 +#: library/decimal.rst:531 library/decimal.rst:834 msgid "" "This operation is unaffected by context and is quiet: no flags are changed " "and no rounding is performed. As an exception, the C version may raise " "InvalidOperation if the second operand cannot be converted exactly." msgstr "" -#: ../Doc/library/decimal.rst:526 +#: library/decimal.rst:526 msgid "" "Compare two operands using their abstract representation rather than their " "value as in :meth:`compare_total`, but ignoring the sign of each operand. " @@ -647,42 +646,42 @@ msgid "" "copy_abs())``." msgstr "" -#: ../Doc/library/decimal.rst:537 +#: library/decimal.rst:537 msgid "" "Just returns self, this method is only to comply with the Decimal " "Specification." msgstr "" -#: ../Doc/library/decimal.rst:542 +#: library/decimal.rst:542 msgid "" "Return the absolute value of the argument. This operation is unaffected by " "the context and is quiet: no flags are changed and no rounding is performed." msgstr "" -#: ../Doc/library/decimal.rst:548 +#: library/decimal.rst:548 msgid "" "Return the negation of the argument. This operation is unaffected by the " "context and is quiet: no flags are changed and no rounding is performed." msgstr "" -#: ../Doc/library/decimal.rst:553 +#: library/decimal.rst:553 msgid "" "Return a copy of the first operand with the sign set to be the same as the " "sign of the second operand. For example:" msgstr "" -#: ../Doc/library/decimal.rst:565 +#: library/decimal.rst:565 msgid "" "Return the value of the (natural) exponential function ``e**x`` at the given " "number. The result is correctly rounded using the :const:`ROUND_HALF_EVEN` " "rounding mode." msgstr "" -#: ../Doc/library/decimal.rst:576 +#: library/decimal.rst:576 msgid "Classmethod that converts a float to a decimal number, exactly." msgstr "" -#: ../Doc/library/decimal.rst:578 +#: library/decimal.rst:578 msgid "" "Note `Decimal.from_float(0.1)` is not the same as `Decimal('0.1')`. Since " "0.1 is not exactly representable in binary floating point, the value is " @@ -691,92 +690,113 @@ msgid "" "`0.1000000000000000055511151231257827021181583404541015625`." msgstr "" -#: ../Doc/library/decimal.rst:584 +#: library/decimal.rst:584 msgid "" "From Python 3.2 onwards, a :class:`Decimal` instance can also be constructed " "directly from a :class:`float`." msgstr "" -#: ../Doc/library/decimal.rst:602 +#: library/decimal.rst:602 msgid "" "Fused multiply-add. Return self*other+third with no rounding of the " "intermediate product self*other." msgstr "" -#: ../Doc/library/decimal.rst:610 +#: library/decimal.rst:610 msgid "" "Return :const:`True` if the argument is canonical and :const:`False` " "otherwise. Currently, a :class:`Decimal` instance is always canonical, so " "this operation always returns :const:`True`." msgstr "" +"Renvoie :const:`True` si l'argument est sous forme canonique et :const:" +"`False` sinon. Actuellement, une instance :class:`Decimal` est toujours " +"canonique, donc cette opération renvoie toujours :const:`True`." -#: ../Doc/library/decimal.rst:616 +#: library/decimal.rst:616 msgid "" "Return :const:`True` if the argument is a finite number, and :const:`False` " "if the argument is an infinity or a NaN." msgstr "" +"Renvoie :const:`True` si l'argument est un nombre fini et :const:`False` si " +"l'argument est un infini ou NaN." -#: ../Doc/library/decimal.rst:621 +#: library/decimal.rst:621 msgid "" "Return :const:`True` if the argument is either positive or negative infinity " "and :const:`False` otherwise." msgstr "" +"Renvoie :const:`True` si l'argument est un infini positif ou négatif et :" +"const:`False` sinon." -#: ../Doc/library/decimal.rst:626 +#: library/decimal.rst:626 msgid "" "Return :const:`True` if the argument is a (quiet or signaling) NaN and :" "const:`False` otherwise." msgstr "" +"Renvoie :const:`True` si l'argument est un NaN (signalétique ou silencieux) " +"et :const:`False` sinon." -#: ../Doc/library/decimal.rst:631 +#: library/decimal.rst:631 msgid "" "Return :const:`True` if the argument is a *normal* finite number. Return :" "const:`False` if the argument is zero, subnormal, infinite or a NaN." msgstr "" -#: ../Doc/library/decimal.rst:636 +#: library/decimal.rst:636 msgid "" "Return :const:`True` if the argument is a quiet NaN, and :const:`False` " "otherwise." msgstr "" +"Renvoie :const:`True` si l'argument est un NaN silencieux et :const:`False` " +"sinon." -#: ../Doc/library/decimal.rst:641 +#: library/decimal.rst:641 msgid "" "Return :const:`True` if the argument has a negative sign and :const:`False` " "otherwise. Note that zeros and NaNs can both carry signs." msgstr "" +"Renvoie :const:`True` si l'argument est négatif et :const:`False` sinon. " +"Notez que les zéros et les NaNs peuvent être signés." -#: ../Doc/library/decimal.rst:646 +#: library/decimal.rst:646 msgid "" "Return :const:`True` if the argument is a signaling NaN and :const:`False` " "otherwise." msgstr "" +"Renvoie :const:`True` si l'argument est un NaN signalétique et :const:" +"`False` sinon." -#: ../Doc/library/decimal.rst:651 +#: library/decimal.rst:651 msgid "" "Return :const:`True` if the argument is subnormal, and :const:`False` " "otherwise." msgstr "" -#: ../Doc/library/decimal.rst:656 +#: library/decimal.rst:656 msgid "" "Return :const:`True` if the argument is a (positive or negative) zero and :" "const:`False` otherwise." msgstr "" +"Renvoie :const:`True` si l'argument est un zéro (positif ou négatif) et :" +"const:`False` sinon." -#: ../Doc/library/decimal.rst:661 +#: library/decimal.rst:661 msgid "" "Return the natural (base e) logarithm of the operand. The result is " "correctly rounded using the :const:`ROUND_HALF_EVEN` rounding mode." msgstr "" +"Renvoie le logarithme naturel (base e) de l'opérande. Le résultat est " +"arrondi avec le mode :const:`ROUND_HALF_EVEN`." -#: ../Doc/library/decimal.rst:666 +#: library/decimal.rst:666 msgid "" "Return the base ten logarithm of the operand. The result is correctly " "rounded using the :const:`ROUND_HALF_EVEN` rounding mode." msgstr "" +"Renvoie le logarithme en base 10 de l'opérande. Le résultat est arrondi avec " +"le mode :const:`ROUND_HALF_EVEN`." -#: ../Doc/library/decimal.rst:671 +#: library/decimal.rst:671 msgid "" "For a nonzero number, return the adjusted exponent of its operand as a :" "class:`Decimal` instance. If the operand is a zero then ``Decimal('-" @@ -784,74 +804,74 @@ msgid "" "the operand is an infinity then ``Decimal('Infinity')`` is returned." msgstr "" -#: ../Doc/library/decimal.rst:679 +#: library/decimal.rst:679 msgid "" ":meth:`logical_and` is a logical operation which takes two *logical " "operands* (see :ref:`logical_operands_label`). The result is the digit-wise " "``and`` of the two operands." msgstr "" -#: ../Doc/library/decimal.rst:685 +#: library/decimal.rst:685 msgid "" ":meth:`logical_invert` is a logical operation. The result is the digit-wise " "inversion of the operand." msgstr "" -#: ../Doc/library/decimal.rst:690 +#: library/decimal.rst:690 msgid "" ":meth:`logical_or` is a logical operation which takes two *logical operands* " "(see :ref:`logical_operands_label`). The result is the digit-wise ``or`` of " "the two operands." msgstr "" -#: ../Doc/library/decimal.rst:696 +#: library/decimal.rst:696 msgid "" ":meth:`logical_xor` is a logical operation which takes two *logical " "operands* (see :ref:`logical_operands_label`). The result is the digit-wise " "exclusive or of the two operands." msgstr "" -#: ../Doc/library/decimal.rst:702 +#: library/decimal.rst:702 msgid "" "Like ``max(self, other)`` except that the context rounding rule is applied " "before returning and that :const:`NaN` values are either signaled or ignored " "(depending on the context and whether they are signaling or quiet)." msgstr "" -#: ../Doc/library/decimal.rst:709 +#: library/decimal.rst:709 msgid "" "Similar to the :meth:`.max` method, but the comparison is done using the " "absolute values of the operands." msgstr "" -#: ../Doc/library/decimal.rst:714 +#: library/decimal.rst:714 msgid "" "Like ``min(self, other)`` except that the context rounding rule is applied " "before returning and that :const:`NaN` values are either signaled or ignored " "(depending on the context and whether they are signaling or quiet)." msgstr "" -#: ../Doc/library/decimal.rst:721 +#: library/decimal.rst:721 msgid "" "Similar to the :meth:`.min` method, but the comparison is done using the " "absolute values of the operands." msgstr "" -#: ../Doc/library/decimal.rst:726 +#: library/decimal.rst:726 msgid "" "Return the largest number representable in the given context (or in the " "current thread's context if no context is given) that is smaller than the " "given operand." msgstr "" -#: ../Doc/library/decimal.rst:732 +#: library/decimal.rst:732 msgid "" "Return the smallest number representable in the given context (or in the " "current thread's context if no context is given) that is larger than the " "given operand." msgstr "" -#: ../Doc/library/decimal.rst:738 +#: library/decimal.rst:738 msgid "" "If the two operands are unequal, return the number closest to the first " "operand in the direction of the second operand. If both operands are " @@ -859,7 +879,7 @@ msgid "" "be the same as the sign of the second operand." msgstr "" -#: ../Doc/library/decimal.rst:745 +#: library/decimal.rst:745 msgid "" "Normalize the number by stripping the rightmost trailing zeros and " "converting any result equal to :const:`Decimal('0')` to :const:" @@ -869,63 +889,67 @@ msgid "" "``Decimal('32.1')``." msgstr "" -#: ../Doc/library/decimal.rst:754 +#: library/decimal.rst:754 msgid "" "Return a string describing the *class* of the operand. The returned value " "is one of the following ten strings." msgstr "" -#: ../Doc/library/decimal.rst:757 +#: library/decimal.rst:757 msgid "``\"-Infinity\"``, indicating that the operand is negative infinity." -msgstr "" +msgstr "``\"-Infinity\"``, indiquant que l'opérande est l'infini négatif ;" -#: ../Doc/library/decimal.rst:758 +#: library/decimal.rst:758 msgid "" "``\"-Normal\"``, indicating that the operand is a negative normal number." msgstr "" -#: ../Doc/library/decimal.rst:759 +#: library/decimal.rst:759 msgid "" "``\"-Subnormal\"``, indicating that the operand is negative and subnormal." msgstr "" -#: ../Doc/library/decimal.rst:760 +#: library/decimal.rst:760 msgid "``\"-Zero\"``, indicating that the operand is a negative zero." -msgstr "" +msgstr "``\"-Zero\"``, indiquant que l'opérande est un zéro négatif ;" -#: ../Doc/library/decimal.rst:761 +#: library/decimal.rst:761 msgid "``\"+Zero\"``, indicating that the operand is a positive zero." -msgstr "" +msgstr "``\"+Zero\"``, indiquant que l'opérande est un zéro positif ;" -#: ../Doc/library/decimal.rst:762 +#: library/decimal.rst:762 msgid "" "``\"+Subnormal\"``, indicating that the operand is positive and subnormal." msgstr "" -#: ../Doc/library/decimal.rst:763 +#: library/decimal.rst:763 msgid "" "``\"+Normal\"``, indicating that the operand is a positive normal number." msgstr "" -#: ../Doc/library/decimal.rst:764 +#: library/decimal.rst:764 msgid "``\"+Infinity\"``, indicating that the operand is positive infinity." -msgstr "" +msgstr "``\"+Infinity\"``, indiquant que l'opérande est l'infini positif ;" -#: ../Doc/library/decimal.rst:765 +#: library/decimal.rst:765 msgid "``\"NaN\"``, indicating that the operand is a quiet NaN (Not a Number)." msgstr "" +"``\"NaN\"``, indiquant que l'opérande est un NaN (*Not a Number*, pas un " +"nombre) silencieux ;" -#: ../Doc/library/decimal.rst:766 +#: library/decimal.rst:766 msgid "``\"sNaN\"``, indicating that the operand is a signaling NaN." msgstr "" +"``\"sNaN\"``, indiquant que l'opérande est un NaN (*Not a Number*, pas un " +"nombre) signalétique." -#: ../Doc/library/decimal.rst:770 +#: library/decimal.rst:770 msgid "" "Return a value equal to the first operand after rounding and having the " "exponent of the second operand." msgstr "" -#: ../Doc/library/decimal.rst:776 +#: library/decimal.rst:776 msgid "" "Unlike other operations, if the length of the coefficient after the quantize " "operation would be greater than precision, then an :const:`InvalidOperation` " @@ -933,13 +957,13 @@ msgid "" "quantized exponent is always equal to that of the right-hand operand." msgstr "" -#: ../Doc/library/decimal.rst:782 +#: library/decimal.rst:782 msgid "" "Also unlike other operations, quantize never signals Underflow, even if the " "result is subnormal and inexact." msgstr "" -#: ../Doc/library/decimal.rst:785 +#: library/decimal.rst:785 msgid "" "If the exponent of the second operand is larger than that of the first then " "rounding may be necessary. In this case, the rounding mode is determined by " @@ -948,19 +972,19 @@ msgid "" "context is used." msgstr "" -#: ../Doc/library/decimal.rst:791 +#: library/decimal.rst:791 msgid "" "An error is returned whenever the resulting exponent is greater than :attr:" "`Emax` or less than :attr:`Etiny`." msgstr "" -#: ../Doc/library/decimal.rst:796 +#: library/decimal.rst:796 msgid "" "Return ``Decimal(10)``, the radix (base) in which the :class:`Decimal` class " "does all its arithmetic. Included for compatibility with the specification." msgstr "" -#: ../Doc/library/decimal.rst:802 +#: library/decimal.rst:802 msgid "" "Return the remainder from dividing *self* by *other*. This differs from " "``self % other`` in that the sign of the remainder is chosen so as to " @@ -969,11 +993,11 @@ msgid "" "other``, and if two integers are equally near then the even one is chosen." msgstr "" -#: ../Doc/library/decimal.rst:809 +#: library/decimal.rst:809 msgid "If the result is zero then its sign will be the sign of *self*." msgstr "" -#: ../Doc/library/decimal.rst:820 +#: library/decimal.rst:820 msgid "" "Return the result of rotating the digits of the first operand by an amount " "specified by the second operand. The second operand must be an integer in " @@ -985,20 +1009,20 @@ msgid "" "are unchanged." msgstr "" -#: ../Doc/library/decimal.rst:831 +#: library/decimal.rst:831 msgid "" "Test whether self and other have the same exponent or whether both are :" "const:`NaN`." msgstr "" -#: ../Doc/library/decimal.rst:840 +#: library/decimal.rst:840 msgid "" "Return the first operand with exponent adjusted by the second. Equivalently, " "return the first operand multiplied by ``10**other``. The second operand " "must be an integer." msgstr "" -#: ../Doc/library/decimal.rst:846 +#: library/decimal.rst:846 msgid "" "Return the result of shifting the digits of the first operand by an amount " "specified by the second operand. The second operand must be an integer in " @@ -1009,34 +1033,34 @@ msgid "" "exponent of the first operand are unchanged." msgstr "" -#: ../Doc/library/decimal.rst:856 +#: library/decimal.rst:856 msgid "Return the square root of the argument to full precision." msgstr "" -#: ../Doc/library/decimal.rst:861 ../Doc/library/decimal.rst:1437 +#: library/decimal.rst:1440 msgid "" "Convert to a string, using engineering notation if an exponent is needed." msgstr "" -#: ../Doc/library/decimal.rst:863 ../Doc/library/decimal.rst:1439 +#: library/decimal.rst:1442 msgid "" "Engineering notation has an exponent which is a multiple of 3. This can " "leave up to 3 digits to the left of the decimal place and may require the " "addition of either one or two trailing zeros." msgstr "" -#: ../Doc/library/decimal.rst:867 +#: library/decimal.rst:867 msgid "" "For example, this converts ``Decimal('123E+1')`` to ``Decimal('1.23E+3')``." msgstr "" -#: ../Doc/library/decimal.rst:871 +#: library/decimal.rst:871 msgid "" "Identical to the :meth:`to_integral_value` method. The ``to_integral`` name " "has been kept for compatibility with older versions." msgstr "" -#: ../Doc/library/decimal.rst:876 +#: library/decimal.rst:876 msgid "" "Round to the nearest integer, signaling :const:`Inexact` or :const:`Rounded` " "as appropriate if rounding occurs. The rounding mode is determined by the " @@ -1044,18 +1068,18 @@ msgid "" "parameter is given then the rounding mode of the current context is used." msgstr "" -#: ../Doc/library/decimal.rst:884 +#: library/decimal.rst:884 msgid "" "Round to the nearest integer without signaling :const:`Inexact` or :const:" "`Rounded`. If given, applies *rounding*; otherwise, uses the rounding " "method in either the supplied *context* or the current context." msgstr "" -#: ../Doc/library/decimal.rst:892 +#: library/decimal.rst:892 msgid "Logical operands" msgstr "" -#: ../Doc/library/decimal.rst:894 +#: library/decimal.rst:894 msgid "" "The :meth:`logical_and`, :meth:`logical_invert`, :meth:`logical_or`, and :" "meth:`logical_xor` methods expect their arguments to be *logical operands*. " @@ -1063,38 +1087,38 @@ msgid "" "are both zero, and whose digits are all either :const:`0` or :const:`1`." msgstr "" -#: ../Doc/library/decimal.rst:906 +#: library/decimal.rst:906 msgid "Context objects" msgstr "" -#: ../Doc/library/decimal.rst:908 +#: library/decimal.rst:908 msgid "" "Contexts are environments for arithmetic operations. They govern precision, " "set rules for rounding, determine which signals are treated as exceptions, " "and limit the range for exponents." msgstr "" -#: ../Doc/library/decimal.rst:912 +#: library/decimal.rst:912 msgid "" "Each thread has its own current context which is accessed or changed using " "the :func:`getcontext` and :func:`setcontext` functions:" msgstr "" -#: ../Doc/library/decimal.rst:918 +#: library/decimal.rst:918 msgid "Return the current context for the active thread." msgstr "" -#: ../Doc/library/decimal.rst:923 +#: library/decimal.rst:923 msgid "Set the current context for the active thread to *c*." msgstr "" -#: ../Doc/library/decimal.rst:925 +#: library/decimal.rst:925 msgid "" "You can also use the :keyword:`with` statement and the :func:`localcontext` " "function to temporarily change the active context." msgstr "" -#: ../Doc/library/decimal.rst:930 +#: library/decimal.rst:930 msgid "" "Return a context manager that will set the current context for the active " "thread to a copy of *ctx* on entry to the with-statement and restore the " @@ -1102,20 +1126,20 @@ msgid "" "specified, a copy of the current context is used." msgstr "" -#: ../Doc/library/decimal.rst:935 +#: library/decimal.rst:935 msgid "" "For example, the following code sets the current decimal precision to 42 " "places, performs a calculation, and then automatically restores the previous " "context::" msgstr "" -#: ../Doc/library/decimal.rst:945 +#: library/decimal.rst:945 msgid "" "New contexts can also be created using the :class:`Context` constructor " "described below. In addition, the module provides three pre-made contexts:" msgstr "" -#: ../Doc/library/decimal.rst:951 +#: library/decimal.rst:951 msgid "" "This is a standard context defined by the General Decimal Arithmetic " "Specification. Precision is set to nine. Rounding is set to :const:" @@ -1124,12 +1148,12 @@ msgid "" "`Subnormal`." msgstr "" -#: ../Doc/library/decimal.rst:957 +#: library/decimal.rst:957 msgid "" "Because many of the traps are enabled, this context is useful for debugging." msgstr "" -#: ../Doc/library/decimal.rst:962 +#: library/decimal.rst:962 msgid "" "This is a standard context defined by the General Decimal Arithmetic " "Specification. Precision is set to nine. Rounding is set to :const:" @@ -1137,7 +1161,7 @@ msgid "" "exceptions are not raised during computations)." msgstr "" -#: ../Doc/library/decimal.rst:967 +#: library/decimal.rst:967 msgid "" "Because the traps are disabled, this context is useful for applications that " "prefer to have result value of :const:`NaN` or :const:`Infinity` instead of " @@ -1145,7 +1169,7 @@ msgid "" "presence of conditions that would otherwise halt the program." msgstr "" -#: ../Doc/library/decimal.rst:975 +#: library/decimal.rst:975 msgid "" "This context is used by the :class:`Context` constructor as a prototype for " "new contexts. Changing a field (such a precision) has the effect of " @@ -1153,7 +1177,7 @@ msgid "" "constructor." msgstr "" -#: ../Doc/library/decimal.rst:979 +#: library/decimal.rst:979 msgid "" "This context is most useful in multi-threaded environments. Changing one of " "the fields before threads are started has the effect of setting system-wide " @@ -1161,65 +1185,65 @@ msgid "" "as it would require thread synchronization to prevent race conditions." msgstr "" -#: ../Doc/library/decimal.rst:984 +#: library/decimal.rst:984 msgid "" "In single threaded environments, it is preferable to not use this context at " "all. Instead, simply create contexts explicitly as described below." msgstr "" -#: ../Doc/library/decimal.rst:987 +#: library/decimal.rst:987 msgid "" -"The default values are :attr:`prec`\\ =\\ :const:`28`, :attr:`rounding`\\ =" -"\\ :const:`ROUND_HALF_EVEN`, and enabled traps for :class:`Overflow`, :class:" -"`InvalidOperation`, and :class:`DivisionByZero`." +"The default values are :attr:`prec`\\ =\\ :const:`28`, :attr:`rounding`\\ " +"=\\ :const:`ROUND_HALF_EVEN`, and enabled traps for :class:`Overflow`, :" +"class:`InvalidOperation`, and :class:`DivisionByZero`." msgstr "" -#: ../Doc/library/decimal.rst:992 +#: library/decimal.rst:992 msgid "" "In addition to the three supplied contexts, new contexts can be created with " "the :class:`Context` constructor." msgstr "" -#: ../Doc/library/decimal.rst:998 +#: library/decimal.rst:998 msgid "" "Creates a new context. If a field is not specified or is :const:`None`, the " "default values are copied from the :const:`DefaultContext`. If the *flags* " "field is not specified or is :const:`None`, all flags are cleared." msgstr "" -#: ../Doc/library/decimal.rst:1002 +#: library/decimal.rst:1002 msgid "" "*prec* is an integer in the range [:const:`1`, :const:`MAX_PREC`] that sets " "the precision for arithmetic operations in the context." msgstr "" -#: ../Doc/library/decimal.rst:1005 +#: library/decimal.rst:1005 msgid "" "The *rounding* option is one of the constants listed in the section " "`Rounding Modes`_." msgstr "" -#: ../Doc/library/decimal.rst:1008 +#: library/decimal.rst:1008 msgid "" "The *traps* and *flags* fields list any signals to be set. Generally, new " "contexts should only set traps and leave the flags clear." msgstr "" -#: ../Doc/library/decimal.rst:1011 +#: library/decimal.rst:1011 msgid "" "The *Emin* and *Emax* fields are integers specifying the outer limits " "allowable for exponents. *Emin* must be in the range [:const:`MIN_EMIN`, :" "const:`0`], *Emax* in the range [:const:`0`, :const:`MAX_EMAX`]." msgstr "" -#: ../Doc/library/decimal.rst:1015 +#: library/decimal.rst:1015 msgid "" "The *capitals* field is either :const:`0` or :const:`1` (the default). If " "set to :const:`1`, exponents are printed with a capital :const:`E`; " "otherwise, a lowercase :const:`e` is used: :const:`Decimal('6.02e+23')`." msgstr "" -#: ../Doc/library/decimal.rst:1019 +#: library/decimal.rst:1019 msgid "" "The *clamp* field is either :const:`0` (the default) or :const:`1`. If set " "to :const:`1`, the exponent ``e`` of a :class:`Decimal` instance " @@ -1233,13 +1257,13 @@ msgid "" "significant trailing zeros. For example::" msgstr "" -#: ../Doc/library/decimal.rst:1034 +#: library/decimal.rst:1034 msgid "" "A *clamp* value of :const:`1` allows compatibility with the fixed-width " "decimal interchange formats specified in IEEE 754." msgstr "" -#: ../Doc/library/decimal.rst:1037 +#: library/decimal.rst:1037 msgid "" "The :class:`Context` class defines several general purpose methods as well " "as a large number of methods for doing arithmetic directly in a given " @@ -1252,30 +1276,30 @@ msgid "" "a Decimal instance is accepted." msgstr "" -#: ../Doc/library/decimal.rst:1050 +#: library/decimal.rst:1050 msgid "Resets all of the flags to :const:`0`." msgstr "" -#: ../Doc/library/decimal.rst:1054 +#: library/decimal.rst:1054 msgid "Resets all of the traps to :const:`0`." msgstr "" -#: ../Doc/library/decimal.rst:1060 +#: library/decimal.rst:1060 msgid "Return a duplicate of the context." msgstr "" -#: ../Doc/library/decimal.rst:1064 +#: library/decimal.rst:1064 msgid "Return a copy of the Decimal instance num." msgstr "" -#: ../Doc/library/decimal.rst:1068 +#: library/decimal.rst:1068 msgid "" "Creates a new Decimal instance from *num* but using *self* as context. " "Unlike the :class:`Decimal` constructor, the context precision, rounding " "method, flags, and traps are applied to the conversion." msgstr "" -#: ../Doc/library/decimal.rst:1072 +#: library/decimal.rst:1072 msgid "" "This is useful because constants are often given to a greater precision than " "is needed by the application. Another benefit is that rounding immediately " @@ -1284,14 +1308,14 @@ msgid "" "sum can change the result:" msgstr "" -#: ../Doc/library/decimal.rst:1086 +#: library/decimal.rst:1086 msgid "" "This method implements the to-number operation of the IBM specification. If " "the argument is a string, no leading or trailing whitespace or underscores " "are permitted." msgstr "" -#: ../Doc/library/decimal.rst:1092 +#: library/decimal.rst:1092 msgid "" "Creates a new Decimal instance from a float *f* but rounding using *self* as " "the context. Unlike the :meth:`Decimal.from_float` class method, the " @@ -1299,18 +1323,18 @@ msgid "" "conversion." msgstr "" -#: ../Doc/library/decimal.rst:1112 +#: library/decimal.rst:1112 msgid "" "Returns a value equal to ``Emin - prec + 1`` which is the minimum exponent " "value for subnormal results. When underflow occurs, the exponent is set to :" "const:`Etiny`." msgstr "" -#: ../Doc/library/decimal.rst:1118 +#: library/decimal.rst:1118 msgid "Returns a value equal to ``Emax - prec + 1``." msgstr "" -#: ../Doc/library/decimal.rst:1120 +#: library/decimal.rst:1120 msgid "" "The usual approach to working with decimals is to create :class:`Decimal` " "instances and then apply arithmetic operations which take place within the " @@ -1320,189 +1344,191 @@ msgid "" "recounted here." msgstr "" -#: ../Doc/library/decimal.rst:1130 +#: library/decimal.rst:1130 msgid "Returns the absolute value of *x*." msgstr "Renvoie la valeur absolue de *x*." -#: ../Doc/library/decimal.rst:1135 +#: library/decimal.rst:1135 msgid "Return the sum of *x* and *y*." -msgstr "" +msgstr "Renvoie la somme de *x* et *y*." -#: ../Doc/library/decimal.rst:1140 +#: library/decimal.rst:1140 msgid "Returns the same Decimal object *x*." msgstr "" -#: ../Doc/library/decimal.rst:1145 +#: library/decimal.rst:1145 msgid "Compares *x* and *y* numerically." msgstr "" -#: ../Doc/library/decimal.rst:1150 +#: library/decimal.rst:1150 msgid "Compares the values of the two operands numerically." msgstr "" -#: ../Doc/library/decimal.rst:1155 +#: library/decimal.rst:1155 msgid "Compares two operands using their abstract representation." msgstr "" -#: ../Doc/library/decimal.rst:1160 +#: library/decimal.rst:1160 msgid "" "Compares two operands using their abstract representation, ignoring sign." msgstr "" -#: ../Doc/library/decimal.rst:1165 +#: library/decimal.rst:1165 msgid "Returns a copy of *x* with the sign set to 0." msgstr "" -#: ../Doc/library/decimal.rst:1170 +#: library/decimal.rst:1170 msgid "Returns a copy of *x* with the sign inverted." -msgstr "" +msgstr "Renvoie une copie de *x* mais de signe opposé." -#: ../Doc/library/decimal.rst:1175 +#: library/decimal.rst:1175 msgid "Copies the sign from *y* to *x*." -msgstr "" +msgstr "Copie le signe de *y* vers *x*." -#: ../Doc/library/decimal.rst:1180 +#: library/decimal.rst:1180 msgid "Return *x* divided by *y*." -msgstr "" +msgstr "Renvoie *x* divisé par *y*." -#: ../Doc/library/decimal.rst:1185 +#: library/decimal.rst:1185 msgid "Return *x* divided by *y*, truncated to an integer." -msgstr "" +msgstr "Renvoie *x* divisé par *y*, tronqué comme entier." -#: ../Doc/library/decimal.rst:1190 +#: library/decimal.rst:1190 msgid "Divides two numbers and returns the integer part of the result." -msgstr "" +msgstr "Renvoie la partie entière de la division entre deux nombres." -#: ../Doc/library/decimal.rst:1195 +#: library/decimal.rst:1195 msgid "Returns `e ** x`." msgstr "" -#: ../Doc/library/decimal.rst:1200 +#: library/decimal.rst:1200 msgid "Returns *x* multiplied by *y*, plus *z*." -msgstr "" +msgstr "Renvoie *x* multiplié par *y*, plus *z*." -#: ../Doc/library/decimal.rst:1205 +#: library/decimal.rst:1205 msgid "Returns ``True`` if *x* is canonical; otherwise returns ``False``." msgstr "" -#: ../Doc/library/decimal.rst:1210 +#: library/decimal.rst:1210 msgid "Returns ``True`` if *x* is finite; otherwise returns ``False``." msgstr "" -#: ../Doc/library/decimal.rst:1215 +#: library/decimal.rst:1215 msgid "Returns ``True`` if *x* is infinite; otherwise returns ``False``." -msgstr "" +msgstr "Renvoie ``True`` si *x* est infini et ``False`` sinon." -#: ../Doc/library/decimal.rst:1220 +#: library/decimal.rst:1220 msgid "Returns ``True`` if *x* is a qNaN or sNaN; otherwise returns ``False``." msgstr "" +"Renvoie ``True`` si *x* est un NaN (silencieux ou signalétique) et ``False`` " +"sinon." -#: ../Doc/library/decimal.rst:1225 +#: library/decimal.rst:1225 msgid "" "Returns ``True`` if *x* is a normal number; otherwise returns ``False``." msgstr "" -#: ../Doc/library/decimal.rst:1230 +#: library/decimal.rst:1230 msgid "Returns ``True`` if *x* is a quiet NaN; otherwise returns ``False``." -msgstr "" +msgstr "Renvoie ``True`` si *x* est un NaN silencieux et ``False`` sinon." -#: ../Doc/library/decimal.rst:1235 +#: library/decimal.rst:1235 msgid "Returns ``True`` if *x* is negative; otherwise returns ``False``." -msgstr "" +msgstr "Renvoie ``True`` si *x* est négatif et ``False`` sinon." -#: ../Doc/library/decimal.rst:1240 +#: library/decimal.rst:1240 msgid "" "Returns ``True`` if *x* is a signaling NaN; otherwise returns ``False``." -msgstr "" +msgstr "Renvoie ``True`` si *x* est un NaN signalétique et ``False`` sinon." -#: ../Doc/library/decimal.rst:1245 +#: library/decimal.rst:1245 msgid "Returns ``True`` if *x* is subnormal; otherwise returns ``False``." msgstr "" -#: ../Doc/library/decimal.rst:1250 +#: library/decimal.rst:1250 msgid "Returns ``True`` if *x* is a zero; otherwise returns ``False``." -msgstr "" +msgstr "Renvoie ``True`` si *x* est un zéro et ``False`` sinon." -#: ../Doc/library/decimal.rst:1255 +#: library/decimal.rst:1255 msgid "Returns the natural (base e) logarithm of *x*." -msgstr "" +msgstr "Renvoie le logarithme naturel (en base e) de *x*." -#: ../Doc/library/decimal.rst:1260 +#: library/decimal.rst:1260 msgid "Returns the base 10 logarithm of *x*." -msgstr "" +msgstr "Renvoie le logarithme en base 10 de *x*." -#: ../Doc/library/decimal.rst:1265 +#: library/decimal.rst:1265 msgid "Returns the exponent of the magnitude of the operand's MSD." msgstr "" -#: ../Doc/library/decimal.rst:1270 +#: library/decimal.rst:1270 msgid "Applies the logical operation *and* between each operand's digits." msgstr "" -#: ../Doc/library/decimal.rst:1275 +#: library/decimal.rst:1275 msgid "Invert all the digits in *x*." msgstr "" -#: ../Doc/library/decimal.rst:1280 +#: library/decimal.rst:1280 msgid "Applies the logical operation *or* between each operand's digits." msgstr "" -#: ../Doc/library/decimal.rst:1285 +#: library/decimal.rst:1285 msgid "Applies the logical operation *xor* between each operand's digits." msgstr "" -#: ../Doc/library/decimal.rst:1290 +#: library/decimal.rst:1290 msgid "Compares two values numerically and returns the maximum." -msgstr "" +msgstr "Renvoie le maximum entre les deux valeurs numériques." -#: ../Doc/library/decimal.rst:1295 ../Doc/library/decimal.rst:1305 +#: library/decimal.rst:1305 msgid "Compares the values numerically with their sign ignored." msgstr "" -#: ../Doc/library/decimal.rst:1300 +#: library/decimal.rst:1300 msgid "Compares two values numerically and returns the minimum." msgstr "" -#: ../Doc/library/decimal.rst:1310 +#: library/decimal.rst:1310 msgid "Minus corresponds to the unary prefix minus operator in Python." msgstr "" -#: ../Doc/library/decimal.rst:1315 +#: library/decimal.rst:1315 msgid "Return the product of *x* and *y*." -msgstr "" +msgstr "Renvoie la multiplication de *x* avec *y*." -#: ../Doc/library/decimal.rst:1320 +#: library/decimal.rst:1320 msgid "Returns the largest representable number smaller than *x*." msgstr "" -#: ../Doc/library/decimal.rst:1325 +#: library/decimal.rst:1325 msgid "Returns the smallest representable number larger than *x*." msgstr "" -#: ../Doc/library/decimal.rst:1330 +#: library/decimal.rst:1330 msgid "Returns the number closest to *x*, in direction towards *y*." msgstr "" -#: ../Doc/library/decimal.rst:1335 +#: library/decimal.rst:1335 msgid "Reduces *x* to its simplest form." -msgstr "" +msgstr "Réduit *x* à sa forme la plus simple." -#: ../Doc/library/decimal.rst:1340 +#: library/decimal.rst:1340 msgid "Returns an indication of the class of *x*." msgstr "" -#: ../Doc/library/decimal.rst:1345 +#: library/decimal.rst:1345 msgid "" "Plus corresponds to the unary prefix plus operator in Python. This " "operation applies the context precision and rounding, so it is *not* an " "identity operation." msgstr "" -#: ../Doc/library/decimal.rst:1352 +#: library/decimal.rst:1352 msgid "Return ``x`` to the power of ``y``, reduced modulo ``modulo`` if given." msgstr "" -#: ../Doc/library/decimal.rst:1354 +#: library/decimal.rst:1354 msgid "" "With two arguments, compute ``x**y``. If ``x`` is negative then ``y`` must " "be integral. The result will be inexact unless ``y`` is integral and the " @@ -1511,36 +1537,42 @@ msgid "" "in the Python version." msgstr "" -#: ../Doc/library/decimal.rst:1360 +#: library/decimal.rst:1360 +msgid "" +"``Decimal(0) ** Decimal(0)`` results in ``InvalidOperation``, and if " +"``InvalidOperation`` is not trapped, then results in ``Decimal('NaN')``." +msgstr "" + +#: library/decimal.rst:1363 msgid "" "The C module computes :meth:`power` in terms of the correctly-rounded :meth:" "`exp` and :meth:`ln` functions. The result is well-defined but only \"almost " "always correctly-rounded\"." msgstr "" -#: ../Doc/library/decimal.rst:1365 +#: library/decimal.rst:1368 msgid "" "With three arguments, compute ``(x**y) % modulo``. For the three argument " "form, the following restrictions on the arguments hold:" msgstr "" -#: ../Doc/library/decimal.rst:1368 +#: library/decimal.rst:1371 msgid "all three arguments must be integral" msgstr "" -#: ../Doc/library/decimal.rst:1369 +#: library/decimal.rst:1372 msgid "``y`` must be nonnegative" -msgstr "" +msgstr "``y`` ne doit pas être négatif ;" -#: ../Doc/library/decimal.rst:1370 +#: library/decimal.rst:1373 msgid "at least one of ``x`` or ``y`` must be nonzero" -msgstr "" +msgstr "au moins l'un de ``x`` ou ``y`` doit être différent de zéro ;" -#: ../Doc/library/decimal.rst:1371 +#: library/decimal.rst:1374 msgid "``modulo`` must be nonzero and have at most 'precision' digits" msgstr "" -#: ../Doc/library/decimal.rst:1373 +#: library/decimal.rst:1376 msgid "" "The value resulting from ``Context.power(x, y, modulo)`` is equal to the " "value that would be obtained by computing ``(x**y) % modulo`` with unbounded " @@ -1549,160 +1581,175 @@ msgid "" "result is always exact." msgstr "" -#: ../Doc/library/decimal.rst:1383 +#: library/decimal.rst:1386 msgid "Returns a value equal to *x* (rounded), having the exponent of *y*." msgstr "" -#: ../Doc/library/decimal.rst:1388 +#: library/decimal.rst:1391 msgid "Just returns 10, as this is Decimal, :)" -msgstr "" +msgstr "Renvoie 10 car c'est Decimal, :)" -#: ../Doc/library/decimal.rst:1393 +#: library/decimal.rst:1396 msgid "Returns the remainder from integer division." -msgstr "" +msgstr "Donne le reste de la division entière." -#: ../Doc/library/decimal.rst:1395 +#: library/decimal.rst:1398 msgid "" "The sign of the result, if non-zero, is the same as that of the original " "dividend." msgstr "" -#: ../Doc/library/decimal.rst:1401 +#: library/decimal.rst:1404 msgid "" "Returns ``x - y * n``, where *n* is the integer nearest the exact value of " "``x / y`` (if the result is 0 then its sign will be the sign of *x*)." msgstr "" -#: ../Doc/library/decimal.rst:1407 +#: library/decimal.rst:1410 msgid "Returns a rotated copy of *x*, *y* times." msgstr "" -#: ../Doc/library/decimal.rst:1412 +#: library/decimal.rst:1415 msgid "Returns ``True`` if the two operands have the same exponent." -msgstr "" +msgstr "Renvoie ``True`` si les deux opérandes ont le même exposant." -#: ../Doc/library/decimal.rst:1417 +#: library/decimal.rst:1420 msgid "Returns the first operand after adding the second value its exp." msgstr "" -#: ../Doc/library/decimal.rst:1422 +#: library/decimal.rst:1425 msgid "Returns a shifted copy of *x*, *y* times." msgstr "" -#: ../Doc/library/decimal.rst:1427 +#: library/decimal.rst:1430 msgid "Square root of a non-negative number to context precision." msgstr "" -#: ../Doc/library/decimal.rst:1432 +#: library/decimal.rst:1435 msgid "Return the difference between *x* and *y*." msgstr "" -#: ../Doc/library/decimal.rst:1446 +#: library/decimal.rst:1449 msgid "Rounds to an integer." msgstr "" -#: ../Doc/library/decimal.rst:1451 +#: library/decimal.rst:1454 msgid "Converts a number to a string using scientific notation." msgstr "" -#: ../Doc/library/decimal.rst:1458 +#: library/decimal.rst:1461 msgid "Constants" msgstr "Constantes" -#: ../Doc/library/decimal.rst:1460 +#: library/decimal.rst:1463 msgid "" "The constants in this section are only relevant for the C module. They are " "also included in the pure Python version for compatibility." msgstr "" +"Les constantes de cette section ne sont pertinentes que pour le module C. " +"Elles sont aussi incluses pour le compatibilité dans la version en Python " +"pur." -#: ../Doc/library/decimal.rst:1464 +#: library/decimal.rst:1467 msgid "32-bit" msgstr "32-bit" -#: ../Doc/library/decimal.rst:1464 +#: library/decimal.rst:1467 msgid "64-bit" msgstr "64-bit" -#: ../Doc/library/decimal.rst:1466 ../Doc/library/decimal.rst:1468 +#: library/decimal.rst:1471 msgid ":const:`425000000`" msgstr ":const:`425000000`" -#: ../Doc/library/decimal.rst:1466 ../Doc/library/decimal.rst:1468 +#: library/decimal.rst:1471 msgid ":const:`999999999999999999`" msgstr ":const:`999999999999999999`" -#: ../Doc/library/decimal.rst:1470 +#: library/decimal.rst:1473 msgid ":const:`-425000000`" msgstr ":const:`-425000000`" -#: ../Doc/library/decimal.rst:1470 +#: library/decimal.rst:1473 msgid ":const:`-999999999999999999`" msgstr ":const:`-999999999999999999`" -#: ../Doc/library/decimal.rst:1472 +#: library/decimal.rst:1475 msgid ":const:`-849999999`" msgstr ":const:`-849999999`" -#: ../Doc/library/decimal.rst:1472 +#: library/decimal.rst:1475 msgid ":const:`-1999999999999999997`" msgstr ":const:`-1999999999999999997`" -#: ../Doc/library/decimal.rst:1478 +#: library/decimal.rst:1481 msgid "" -"The default value is ``True``. If Python is compiled without threads, the C " -"version automatically disables the expensive thread local context machinery. " -"In this case, the value is ``False``." +"The value is ``True``. Deprecated, because Python now always has threads." msgstr "" +"La valeur est ``True``. Déprécié, parce que maintenant Python possède " +"toujours des fils d'exécution." -#: ../Doc/library/decimal.rst:1483 -msgid "Rounding modes" +#: library/decimal.rst:1487 +msgid "" +"The default value is ``True``. If Python is compiled ``--without-decimal-" +"contextvar``, the C version uses a thread-local rather than a coroutine-" +"local context and the value is ``False``. This is slightly faster in some " +"nested context scenarios." +msgstr "" + +#: library/decimal.rst:1491 +msgid "backported to 3.7 and 3.8" msgstr "" -#: ../Doc/library/decimal.rst:1487 +#: library/decimal.rst:1495 +msgid "Rounding modes" +msgstr "Modes d'arrondi" + +#: library/decimal.rst:1499 msgid "Round towards :const:`Infinity`." msgstr "" -#: ../Doc/library/decimal.rst:1491 +#: library/decimal.rst:1503 msgid "Round towards zero." msgstr "" -#: ../Doc/library/decimal.rst:1495 +#: library/decimal.rst:1507 msgid "Round towards :const:`-Infinity`." msgstr "" -#: ../Doc/library/decimal.rst:1499 +#: library/decimal.rst:1511 msgid "Round to nearest with ties going towards zero." msgstr "" -#: ../Doc/library/decimal.rst:1503 +#: library/decimal.rst:1515 msgid "Round to nearest with ties going to nearest even integer." msgstr "" -#: ../Doc/library/decimal.rst:1507 +#: library/decimal.rst:1519 msgid "Round to nearest with ties going away from zero." msgstr "" -#: ../Doc/library/decimal.rst:1511 +#: library/decimal.rst:1523 msgid "Round away from zero." msgstr "" -#: ../Doc/library/decimal.rst:1515 +#: library/decimal.rst:1527 msgid "" "Round away from zero if last digit after rounding towards zero would have " "been 0 or 5; otherwise round towards zero." msgstr "" -#: ../Doc/library/decimal.rst:1522 +#: library/decimal.rst:1534 msgid "Signals" -msgstr "" +msgstr "Signaux" -#: ../Doc/library/decimal.rst:1524 +#: library/decimal.rst:1536 msgid "" "Signals represent conditions that arise during computation. Each corresponds " "to one context flag and one context trap enabler." msgstr "" -#: ../Doc/library/decimal.rst:1527 +#: library/decimal.rst:1539 msgid "" "The context flag is set whenever the condition is encountered. After the " "computation, flags may be checked for informational purposes (for instance, " @@ -1710,7 +1757,7 @@ msgid "" "sure to clear all flags before starting the next computation." msgstr "" -#: ../Doc/library/decimal.rst:1532 +#: library/decimal.rst:1544 msgid "" "If the context's trap enabler is set for the signal, then the condition " "causes a Python exception to be raised. For example, if the :class:" @@ -1718,26 +1765,26 @@ msgid "" "raised upon encountering the condition." msgstr "" -#: ../Doc/library/decimal.rst:1540 +#: library/decimal.rst:1552 msgid "Altered an exponent to fit representation constraints." msgstr "" -#: ../Doc/library/decimal.rst:1542 +#: library/decimal.rst:1554 msgid "" "Typically, clamping occurs when an exponent falls outside the context's :" "attr:`Emin` and :attr:`Emax` limits. If possible, the exponent is reduced " "to fit by adding zeros to the coefficient." msgstr "" -#: ../Doc/library/decimal.rst:1549 +#: library/decimal.rst:1561 msgid "Base class for other signals and a subclass of :exc:`ArithmeticError`." msgstr "" -#: ../Doc/library/decimal.rst:1554 +#: library/decimal.rst:1566 msgid "Signals the division of a non-infinite number by zero." msgstr "" -#: ../Doc/library/decimal.rst:1556 +#: library/decimal.rst:1568 msgid "" "Can occur with division, modulo division, or when raising a number to a " "negative power. If this signal is not trapped, returns :const:`Infinity` " @@ -1745,32 +1792,32 @@ msgid "" "calculation." msgstr "" -#: ../Doc/library/decimal.rst:1563 +#: library/decimal.rst:1575 msgid "Indicates that rounding occurred and the result is not exact." msgstr "" -#: ../Doc/library/decimal.rst:1565 +#: library/decimal.rst:1577 msgid "" "Signals when non-zero digits were discarded during rounding. The rounded " "result is returned. The signal flag or trap is used to detect when results " "are inexact." msgstr "" -#: ../Doc/library/decimal.rst:1572 +#: library/decimal.rst:1584 msgid "An invalid operation was performed." msgstr "" -#: ../Doc/library/decimal.rst:1574 +#: library/decimal.rst:1586 msgid "" "Indicates that an operation was requested that does not make sense. If not " "trapped, returns :const:`NaN`. Possible causes include::" msgstr "" -#: ../Doc/library/decimal.rst:1590 +#: library/decimal.rst:1602 msgid "Numerical overflow." -msgstr "" +msgstr "Débordement numérique." -#: ../Doc/library/decimal.rst:1592 +#: library/decimal.rst:1604 msgid "" "Indicates the exponent is larger than :attr:`Emax` after rounding has " "occurred. If not trapped, the result depends on the rounding mode, either " @@ -1779,11 +1826,11 @@ msgid "" "`Rounded` are also signaled." msgstr "" -#: ../Doc/library/decimal.rst:1601 +#: library/decimal.rst:1613 msgid "Rounding occurred though possibly no information was lost." msgstr "" -#: ../Doc/library/decimal.rst:1603 +#: library/decimal.rst:1615 msgid "" "Signaled whenever rounding discards digits; even if those digits are zero " "(such as rounding :const:`5.00` to :const:`5.0`). If not trapped, returns " @@ -1791,31 +1838,31 @@ msgid "" "digits." msgstr "" -#: ../Doc/library/decimal.rst:1611 +#: library/decimal.rst:1623 msgid "Exponent was lower than :attr:`Emin` prior to rounding." msgstr "" -#: ../Doc/library/decimal.rst:1613 +#: library/decimal.rst:1625 msgid "" "Occurs when an operation result is subnormal (the exponent is too small). If " "not trapped, returns the result unchanged." msgstr "" -#: ../Doc/library/decimal.rst:1619 +#: library/decimal.rst:1631 msgid "Numerical underflow with result rounded to zero." msgstr "" -#: ../Doc/library/decimal.rst:1621 +#: library/decimal.rst:1633 msgid "" "Occurs when a subnormal result is pushed to zero by rounding. :class:" "`Inexact` and :class:`Subnormal` are also signaled." msgstr "" -#: ../Doc/library/decimal.rst:1627 +#: library/decimal.rst:1639 msgid "Enable stricter semantics for mixing floats and Decimals." msgstr "" -#: ../Doc/library/decimal.rst:1629 +#: library/decimal.rst:1641 msgid "" "If the signal is not trapped (default), mixing floats and Decimals is " "permitted in the :class:`~decimal.Decimal` constructor, :meth:`~decimal." @@ -1826,26 +1873,26 @@ msgid "" "Context.create_decimal_from_float` do not set the flag." msgstr "" -#: ../Doc/library/decimal.rst:1637 +#: library/decimal.rst:1649 msgid "" "Otherwise (the signal is trapped), only equality comparisons and explicit " "conversions are silent. All other mixed operations raise :exc:" "`FloatOperation`." msgstr "" -#: ../Doc/library/decimal.rst:1641 +#: library/decimal.rst:1653 msgid "The following table summarizes the hierarchy of signals::" msgstr "" -#: ../Doc/library/decimal.rst:1662 +#: library/decimal.rst:1674 msgid "Floating Point Notes" msgstr "" -#: ../Doc/library/decimal.rst:1666 +#: library/decimal.rst:1678 msgid "Mitigating round-off error with increased precision" msgstr "" -#: ../Doc/library/decimal.rst:1668 +#: library/decimal.rst:1680 msgid "" "The use of decimal floating point eliminates decimal representation error " "(making it possible to represent :const:`0.1` exactly); however, some " @@ -1853,7 +1900,7 @@ msgid "" "fixed precision." msgstr "" -#: ../Doc/library/decimal.rst:1672 +#: library/decimal.rst:1684 msgid "" "The effects of round-off error can be amplified by the addition or " "subtraction of nearly offsetting quantities resulting in loss of " @@ -1862,24 +1909,24 @@ msgid "" "of the associative and distributive properties of addition:" msgstr "" -#: ../Doc/library/decimal.rst:1696 +#: library/decimal.rst:1708 msgid "" "The :mod:`decimal` module makes it possible to restore the identities by " "expanding the precision sufficiently to avoid loss of significance:" msgstr "" -#: ../Doc/library/decimal.rst:1716 +#: library/decimal.rst:1728 msgid "Special values" msgstr "" -#: ../Doc/library/decimal.rst:1718 +#: library/decimal.rst:1730 msgid "" "The number system for the :mod:`decimal` module provides special values " "including :const:`NaN`, :const:`sNaN`, :const:`-Infinity`, :const:" "`Infinity`, and two zeros, :const:`+0` and :const:`-0`." msgstr "" -#: ../Doc/library/decimal.rst:1722 +#: library/decimal.rst:1734 msgid "" "Infinities can be constructed directly with: ``Decimal('Infinity')``. Also, " "they can arise from dividing by zero when the :exc:`DivisionByZero` signal " @@ -1888,14 +1935,14 @@ msgid "" "representable number." msgstr "" -#: ../Doc/library/decimal.rst:1727 +#: library/decimal.rst:1739 msgid "" "The infinities are signed (affine) and can be used in arithmetic operations " "where they get treated as very large, indeterminate numbers. For instance, " "adding a constant to infinity gives another infinite result." msgstr "" -#: ../Doc/library/decimal.rst:1731 +#: library/decimal.rst:1743 msgid "" "Some operations are indeterminate and return :const:`NaN`, or if the :exc:" "`InvalidOperation` signal is trapped, raise an exception. For example, " @@ -1906,14 +1953,14 @@ msgid "" "the calculation to proceed while flagging specific results as invalid." msgstr "" -#: ../Doc/library/decimal.rst:1739 +#: library/decimal.rst:1751 msgid "" "A variant is :const:`sNaN` which signals rather than remaining quiet after " "every operation. This is a useful return value when an invalid result needs " "to interrupt a calculation for special handling." msgstr "" -#: ../Doc/library/decimal.rst:1743 +#: library/decimal.rst:1755 msgid "" "The behavior of Python's comparison operators can be a little surprising " "where a :const:`NaN` is involved. A test for equality where one of the " @@ -1930,7 +1977,7 @@ msgid "" "methods instead." msgstr "" -#: ../Doc/library/decimal.rst:1756 +#: library/decimal.rst:1768 msgid "" "The signed zeros can result from calculations that underflow. They keep the " "sign that would have resulted if the calculation had been carried out to " @@ -1938,7 +1985,7 @@ msgid "" "negative zeros are treated as equal and their sign is informational." msgstr "" -#: ../Doc/library/decimal.rst:1761 +#: library/decimal.rst:1773 msgid "" "In addition to the two signed zeros which are distinct yet equal, there are " "various representations of zero with differing precisions yet equivalent in " @@ -1947,11 +1994,11 @@ msgid "" "that the following calculation returns a value equal to zero:" msgstr "" -#: ../Doc/library/decimal.rst:1776 +#: library/decimal.rst:1788 msgid "Working with threads" msgstr "" -#: ../Doc/library/decimal.rst:1778 +#: library/decimal.rst:1790 msgid "" "The :func:`getcontext` function accesses a different :class:`Context` object " "for each thread. Having separate thread contexts means that threads may " @@ -1959,20 +2006,20 @@ msgid "" "other threads." msgstr "" -#: ../Doc/library/decimal.rst:1782 +#: library/decimal.rst:1794 msgid "" "Likewise, the :func:`setcontext` function automatically assigns its target " "to the current thread." msgstr "" -#: ../Doc/library/decimal.rst:1785 +#: library/decimal.rst:1797 msgid "" "If :func:`setcontext` has not been called before :func:`getcontext`, then :" "func:`getcontext` will automatically create a new context for use in the " "current thread." msgstr "" -#: ../Doc/library/decimal.rst:1789 +#: library/decimal.rst:1801 msgid "" "The new context is copied from a prototype context called *DefaultContext*. " "To control the defaults so that each thread will use the same values " @@ -1981,21 +2028,21 @@ msgid "" "a race condition between threads calling :func:`getcontext`. For example::" msgstr "" -#: ../Doc/library/decimal.rst:1814 +#: library/decimal.rst:1826 msgid "Recipes" msgstr "Cas pratiques" -#: ../Doc/library/decimal.rst:1816 +#: library/decimal.rst:1828 msgid "" "Here are a few recipes that serve as utility functions and that demonstrate " "ways to work with the :class:`Decimal` class::" msgstr "" -#: ../Doc/library/decimal.rst:1971 +#: library/decimal.rst:1983 msgid "Decimal FAQ" msgstr "FAQ *decimal*" -#: ../Doc/library/decimal.rst:1973 +#: library/decimal.rst:1985 msgid "" "Q. It is cumbersome to type ``decimal.Decimal('1234.5')``. Is there a way " "to minimize typing when using the interactive interpreter?" @@ -2003,45 +2050,55 @@ msgstr "" "Q. C'est fastidieux de taper ``decimal.Decimal('1234.5')``. Y a-t-il un " "moyen de réduire la frappe quand on utilise l'interpréteur interactif ?" -#: ../Doc/library/decimal.rst:1976 +#: library/decimal.rst:1988 msgid "A. Some users abbreviate the constructor to just a single letter:" msgstr "" "R. Certains utilisateurs abrègent le constructeur en une seule lettre :" -#: ../Doc/library/decimal.rst:1982 +#: library/decimal.rst:1994 msgid "" "Q. In a fixed-point application with two decimal places, some inputs have " "many places and need to be rounded. Others are not supposed to have excess " "digits and need to be validated. What methods should be used?" msgstr "" -#: ../Doc/library/decimal.rst:1986 +#: library/decimal.rst:1998 msgid "" "A. The :meth:`quantize` method rounds to a fixed number of decimal places. " "If the :const:`Inexact` trap is set, it is also useful for validation:" msgstr "" -#: ../Doc/library/decimal.rst:2004 +#: library/decimal.rst:2016 msgid "" "Q. Once I have valid two place inputs, how do I maintain that invariant " "throughout an application?" msgstr "" +"Q. Une fois que mes entrées sont à deux décimales valides, comment maintenir " +"cet invariant dans l'application ?" -#: ../Doc/library/decimal.rst:2007 +#: library/decimal.rst:2019 msgid "" "A. Some operations like addition, subtraction, and multiplication by an " "integer will automatically preserve fixed point. Others operations, like " "division and non-integer multiplication, will change the number of decimal " "places and need to be followed-up with a :meth:`quantize` step:" msgstr "" +"R. Certaines opérations comme l'addition, la soustraction et la " +"multiplication par un entier préservent automatiquement la virgule fixe. " +"D'autres opérations, comme la division et la multiplication par des non-" +"entiers, changent le nombre de décimales et doivent être suivies d'une " +"étape :meth:`quantize` :" -#: ../Doc/library/decimal.rst:2025 +#: library/decimal.rst:2037 msgid "" "In developing fixed-point applications, it is convenient to define functions " "to handle the :meth:`quantize` step:" msgstr "" +"Lors du développement d'applications en virgule fixe, il est pratique de " +"définir des fonctions pour gérer cette étape de quantification par :meth:" +"`quantize` :" -#: ../Doc/library/decimal.rst:2038 +#: library/decimal.rst:2050 msgid "" "Q. There are many ways to express the same value. The numbers :const:" "`200`, :const:`200.000`, :const:`2E2`, and :const:`.02E+4` all have the same " @@ -2049,19 +2106,19 @@ msgid "" "recognizable canonical value?" msgstr "" -#: ../Doc/library/decimal.rst:2043 +#: library/decimal.rst:2055 msgid "" "A. The :meth:`normalize` method maps all equivalent values to a single " "representative:" msgstr "" -#: ../Doc/library/decimal.rst:2050 +#: library/decimal.rst:2062 msgid "" "Q. Some decimal values always print with exponential notation. Is there a " "way to get a non-exponential representation?" msgstr "" -#: ../Doc/library/decimal.rst:2053 +#: library/decimal.rst:2065 msgid "" "A. For some values, exponential notation is the only way to express the " "number of significant places in the coefficient. For example, expressing :" @@ -2069,31 +2126,31 @@ msgid "" "original's two-place significance." msgstr "" -#: ../Doc/library/decimal.rst:2058 +#: library/decimal.rst:2070 msgid "" "If an application does not care about tracking significance, it is easy to " "remove the exponent and trailing zeroes, losing significance, but keeping " "the value unchanged:" msgstr "" -#: ../Doc/library/decimal.rst:2068 +#: library/decimal.rst:2080 msgid "Q. Is there a way to convert a regular float to a :class:`Decimal`?" msgstr "" -#: ../Doc/library/decimal.rst:2070 +#: library/decimal.rst:2082 msgid "" "A. Yes, any binary floating point number can be exactly expressed as a " "Decimal though an exact conversion may take more precision than intuition " "would suggest:" msgstr "" -#: ../Doc/library/decimal.rst:2079 +#: library/decimal.rst:2091 msgid "" "Q. Within a complex calculation, how can I make sure that I haven't gotten a " "spurious result because of insufficient precision or rounding anomalies." msgstr "" -#: ../Doc/library/decimal.rst:2082 +#: library/decimal.rst:2094 msgid "" "A. The decimal module makes it easy to test results. A best practice is to " "re-run calculations using greater precision and with various rounding modes. " @@ -2101,14 +2158,14 @@ msgid "" "issues, ill-conditioned inputs, or a numerically unstable algorithm." msgstr "" -#: ../Doc/library/decimal.rst:2087 +#: library/decimal.rst:2099 msgid "" "Q. I noticed that context precision is applied to the results of operations " "but not to the inputs. Is there anything to watch out for when mixing " "values of different precisions?" msgstr "" -#: ../Doc/library/decimal.rst:2091 +#: library/decimal.rst:2103 msgid "" "A. Yes. The principle is that all values are considered to be exact and so " "is the arithmetic on those values. Only the results are rounded. The " @@ -2117,23 +2174,23 @@ msgid "" "haven't been rounded:" msgstr "" -#: ../Doc/library/decimal.rst:2104 +#: library/decimal.rst:2116 msgid "" "The solution is either to increase precision or to force rounding of inputs " "using the unary plus operation:" msgstr "" -#: ../Doc/library/decimal.rst:2113 +#: library/decimal.rst:2125 msgid "" "Alternatively, inputs can be rounded upon creation using the :meth:`Context." "create_decimal` method:" msgstr "" -#: ../Doc/library/decimal.rst:2119 +#: library/decimal.rst:2131 msgid "Q. Is the CPython implementation fast for large numbers?" msgstr "" -#: ../Doc/library/decimal.rst:2121 +#: library/decimal.rst:2133 msgid "" "A. Yes. In the CPython and PyPy3 implementations, the C/CFFI versions of " "the decimal module integrate the high speed `libmpdec \n" -"Language-Team: FRENCH \n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" +"PO-Revision-Date: 2020-05-18 22:51+0200\n" +"Last-Translator: Loc Cosnier \n" +"Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1)\n" +"X-Generator: Gtranslator 3.36.0\n" -#: ../Doc/library/difflib.rst:2 +#: library/difflib.rst:2 msgid ":mod:`difflib` --- Helpers for computing deltas" -msgstr "" +msgstr ":mod:`difflib` — Utilitaires pour le calcul des deltas" -#: ../Doc/library/difflib.rst:11 +#: library/difflib.rst:11 msgid "**Source code:** :source:`Lib/difflib.py`" msgstr "**Code source:** :source:`Lib/difflib.py`" -#: ../Doc/library/difflib.rst:20 +#: library/difflib.rst:20 +#, fuzzy msgid "" "This module provides classes and functions for comparing sequences. It can " -"be used for example, for comparing files, and can produce difference " -"information in various formats, including HTML and context and unified " +"be used for example, for comparing files, and can produce information about " +"file differences in various formats, including HTML and context and unified " "diffs. For comparing directories and files, see also, the :mod:`filecmp` " "module." msgstr "" +"Ce module fournit des classes et des fonctions permettant de comparer des " +"séquences. Il peut être utilisé, par exemple, pour comparer des fichiers et " +"peut produire des informations sur les différences dans divers formats, y " +"compris HTML et les différences contextuelles et unifiées. Pour la " +"comparaison de répertoires et de fichiers, voir aussi le module :mod:" +"`filecmp`." -#: ../Doc/library/difflib.rst:28 +#: library/difflib.rst:29 msgid "" "This is a flexible class for comparing pairs of sequences of any type, so " "long as the sequence elements are :term:`hashable`. The basic algorithm " @@ -46,8 +55,22 @@ msgid "" "minimal edit sequences, but does tend to yield matches that \"look right\" " "to people." msgstr "" - -#: ../Doc/library/difflib.rst:40 +"C'est une classe flexible permettant de comparer des séquences deux à deux " +"de n'importe quel type, tant que les éléments des séquences sont :term:" +"`hachables `. L'algorithme de base est antérieur, et un peu plus " +"sophistiqué, à un algorithme publié à la fin des années 1980 par Ratcliff et " +"Obershelp sous le nom hyperbolique de *gestalt pattern matching*. L'idée est " +"de trouver la plus longue sous-séquence d'appariement contiguë qui ne " +"contient pas d'éléments « indésirables » ; ces éléments « indésirables » " +"sont ceux qui sont inintéressants dans un certain sens, comme les lignes " +"blanches ou les espaces. (Le traitement des éléments indésirables est une " +"extension de l'algorithme de Ratcliff et Obershelp). La même idée est " +"ensuite appliquée récursivement aux morceaux des séquences à gauche et à " +"droite de la sous-séquence correspondante. Cela ne donne pas des séquences " +"de montage minimales, mais tend à donner des correspondances qui « semblent " +"correctes » pour les gens." + +#: library/difflib.rst:41 msgid "" "**Timing:** The basic Ratcliff-Obershelp algorithm is cubic time in the " "worst case and quadratic time in the expected case. :class:`SequenceMatcher` " @@ -55,8 +78,14 @@ msgid "" "dependent in a complicated way on how many elements the sequences have in " "common; best case time is linear." msgstr "" +"**Compléxité temporelle :** l'algorithme de base de Ratcliff-Obershelp est " +"de complexité cubique dans le pire cas et de complexité quadratique dans le " +"cas attendu. :class:`SequenceMatcher` est de complexité quadratique pour le " +"pire cas et son comportement dans le cas attendu dépend de façon complexe du " +"nombre d'éléments que les séquences ont en commun ; le temps dans le " +"meilleur cas est linéaire." -#: ../Doc/library/difflib.rst:46 +#: library/difflib.rst:47 msgid "" "**Automatic junk heuristic:** :class:`SequenceMatcher` supports a heuristic " "that automatically treats certain sequence items as junk. The heuristic " @@ -67,124 +96,165 @@ msgid "" "This heuristic can be turned off by setting the ``autojunk`` argument to " "``False`` when creating the :class:`SequenceMatcher`." msgstr "" - -#: ../Doc/library/difflib.rst:54 ../Doc/library/difflib.rst:387 +"**Heuristique automatique des indésirables:** :class:`SequenceMatcher` " +"utilise une heuristique qui traite automatiquement certains éléments de la " +"séquence comme indésirables. L'heuristique compte combien de fois chaque " +"élément individuel apparaît dans la séquence. Si les doublons d'un élément " +"(après le premier) représentent plus de 1 % de la séquence et que la " +"séquence compte au moins 200 éléments, cet élément est marqué comme " +"« populaire » et est traité comme indésirable aux fins de la comparaison des " +"séquences. Cette heuristique peut être désactivée en réglant l'argument " +"``autojunk`` sur ``False`` lors de la création de la classe :class:" +"`SequenceMatcher`." + +#: library/difflib.rst:388 msgid "The *autojunk* parameter." -msgstr "" +msgstr "Le paramètre *autojunk*." -#: ../Doc/library/difflib.rst:60 +#: library/difflib.rst:61 msgid "" "This is a class for comparing sequences of lines of text, and producing " "human-readable differences or deltas. Differ uses :class:`SequenceMatcher` " "both to compare sequences of lines, and to compare sequences of characters " "within similar (near-matching) lines." msgstr "" +"Il s'agit d'une classe permettant de comparer des séquences de lignes de " +"texte et de produire des différences ou deltas humainement lisibles. " +"*Differ* utilise :class:`SequenceMatcher` à la fois pour comparer des " +"séquences de lignes, et pour comparer des séquences de caractères dans des " +"lignes similaires (quasi-correspondantes)." -#: ../Doc/library/difflib.rst:65 +#: library/difflib.rst:66 msgid "Each line of a :class:`Differ` delta begins with a two-letter code:" msgstr "" +"Chaque ligne d'un delta :class:`Differ` commence par un code de deux " +"lettres :" -#: ../Doc/library/difflib.rst:68 +#: library/difflib.rst:69 msgid "Code" msgstr "Code" -#: ../Doc/library/difflib.rst:68 ../Doc/library/difflib.rst:494 +#: library/difflib.rst:495 msgid "Meaning" msgstr "Signification" -#: ../Doc/library/difflib.rst:70 +#: library/difflib.rst:71 msgid "``'- '``" msgstr "``'- '``" -#: ../Doc/library/difflib.rst:70 +#: library/difflib.rst:71 msgid "line unique to sequence 1" -msgstr "" +msgstr "ligne n'appartenant qu'à la séquence 1" -#: ../Doc/library/difflib.rst:72 +#: library/difflib.rst:73 msgid "``'+ '``" msgstr "``'+ '``" -#: ../Doc/library/difflib.rst:72 +#: library/difflib.rst:73 msgid "line unique to sequence 2" -msgstr "" +msgstr "ligne n'appartenant qu'à la séquence 2" -#: ../Doc/library/difflib.rst:74 +#: library/difflib.rst:75 msgid "``' '``" msgstr "``' '``" -#: ../Doc/library/difflib.rst:74 +#: library/difflib.rst:75 msgid "line common to both sequences" -msgstr "" +msgstr "ligne commune aux deux séquences" -#: ../Doc/library/difflib.rst:76 +#: library/difflib.rst:77 msgid "``'? '``" msgstr "``'? '``" -#: ../Doc/library/difflib.rst:76 +#: library/difflib.rst:77 msgid "line not present in either input sequence" -msgstr "" +msgstr "ligne non présente dans l'une ou l'autre des séquences d'entrée" -#: ../Doc/library/difflib.rst:79 +#: library/difflib.rst:80 msgid "" "Lines beginning with '``?``' attempt to guide the eye to intraline " "differences, and were not present in either input sequence. These lines can " "be confusing if the sequences contain tab characters." msgstr "" +"Les lignes commençant par ``'?'`` tentent de guider l'œil vers les " +"différences intralignes, et n'étaient présentes dans aucune des séquences " +"d'entrée. Ces lignes peuvent être déroutantes si les séquences contiennent " +"des caractères de tabulation." -#: ../Doc/library/difflib.rst:86 +#: library/difflib.rst:87 msgid "" "This class can be used to create an HTML table (or a complete HTML file " "containing the table) showing a side by side, line by line comparison of " "text with inter-line and intra-line change highlights. The table can be " "generated in either full or contextual difference mode." msgstr "" +"Cette classe peut être utilisée pour créer un tableau HTML (ou un fichier " +"HTML complet contenant le tableau) montrant une comparaison côte à côte, " +"ligne par ligne, du texte avec les changements inter-lignes et intralignes. " +"Le tableau peut être généré en mode de différence complet ou contextuel." -#: ../Doc/library/difflib.rst:91 +#: library/difflib.rst:92 msgid "The constructor for this class is:" -msgstr "" +msgstr "Le constructeur pour cette classe est :" -#: ../Doc/library/difflib.rst:96 +#: library/difflib.rst:97 msgid "Initializes instance of :class:`HtmlDiff`." -msgstr "" +msgstr "Initialise l'instance de :class:`HtmlDiff`." -#: ../Doc/library/difflib.rst:98 +#: library/difflib.rst:99 msgid "" "*tabsize* is an optional keyword argument to specify tab stop spacing and " "defaults to ``8``." msgstr "" +"*tabsize* est un mot-clé optionnel pour spécifier l'espacement des " +"tabulations et sa valeur par défaut est ``8``." -#: ../Doc/library/difflib.rst:101 +#: library/difflib.rst:102 msgid "" "*wrapcolumn* is an optional keyword to specify column number where lines are " "broken and wrapped, defaults to ``None`` where lines are not wrapped." msgstr "" +"*wrapcolumn* est un mot-clé optionnel pour spécifier le numéro de la colonne " +"où les lignes sont coupées pour être ré-agencées, la valeur par défaut est " +"``None`` lorsque les lignes ne sont pas ré-agencées." -#: ../Doc/library/difflib.rst:104 +#: library/difflib.rst:105 msgid "" "*linejunk* and *charjunk* are optional keyword arguments passed into :func:" "`ndiff` (used by :class:`HtmlDiff` to generate the side by side HTML " "differences). See :func:`ndiff` documentation for argument default values " "and descriptions." msgstr "" +"*linejunk* et *charjunk* sont des arguments de mots-clés optionnels passés " +"dans :func:`ndiff` (utilisés par :class:`HtmlDiff` pour générer les " +"différences HTML côte à côte). Voir la documentation de :func:`ndiff` pour " +"les valeurs par défaut des arguments et les descriptions." -#: ../Doc/library/difflib.rst:108 +#: library/difflib.rst:109 msgid "The following methods are public:" -msgstr "" +msgstr "Les méthodes suivantes sont publiques :" -#: ../Doc/library/difflib.rst:113 +#: library/difflib.rst:114 msgid "" "Compares *fromlines* and *tolines* (lists of strings) and returns a string " "which is a complete HTML file containing a table showing line by line " "differences with inter-line and intra-line changes highlighted." msgstr "" +"Compare *fromlines* et *tolines* (listes de chaînes de caractères) et " +"renvoie une chaîne de caractères qui est un fichier HTML complet contenant " +"un tableau montrant les différences ligne par ligne avec les changements " +"inter-lignes et intralignes mis en évidence." -#: ../Doc/library/difflib.rst:117 +#: library/difflib.rst:118 msgid "" "*fromdesc* and *todesc* are optional keyword arguments to specify from/to " "file column header strings (both default to an empty string)." msgstr "" +"*fromdesc* et *todesc* sont des arguments mot-clé optionnels pour spécifier " +"les chaînes d'en-tête des colonnes *from/to* du fichier (les deux sont des " +"chaînes vides par défaut)." -#: ../Doc/library/difflib.rst:120 +#: library/difflib.rst:121 msgid "" "*context* and *numlines* are both optional keyword arguments. Set *context* " "to ``True`` when contextual differences are to be shown, else the default is " @@ -196,52 +266,83 @@ msgid "" "hyperlinks to place the next difference highlight at the top of the browser " "without any leading context)." msgstr "" +"*context* et *numlines* sont tous deux des arguments mots-clés facultatifs. " +"Mettre *context* à ``True`` lorsque les différences contextuelles doivent " +"être affichées, sinon la valeur par défaut est ``False`` pour afficher les " +"fichiers complets. Les *numlines* ont pour valeur par défaut ``5``. Lorsque " +"*context* est `True``, *numlines* contrôle le nombre de lignes de contexte " +"qui entourent les différences mise en évidence. Lorsque *context* est " +"``False``, *numlines* contrôle le nombre de lignes qui sont affichées avant " +"un surlignage de différence lors de l'utilisation des hyperliens " +"« suivants » (un réglage à zéro ferait en sorte que les hyperliens " +"« suivants » placeraient le surlignage de différence suivant en haut du " +"navigateur sans aucun contexte introductif)." -#: ../Doc/library/difflib.rst:131 +#: library/difflib.rst:132 msgid "" "*fromdesc* and *todesc* are interpreted as unescaped HTML and should be " "properly escaped while receiving input from untrusted sources." msgstr "" +"*fromdesc* et *todesc* sont interprétés comme du HTML non échappé et doivent " +"être correctement échappés lors de la réception de données provenant de " +"sources non fiables." -#: ../Doc/library/difflib.rst:134 +#: library/difflib.rst:135 msgid "" "*charset* keyword-only argument was added. The default charset of HTML " "document changed from ``'ISO-8859-1'`` to ``'utf-8'``." msgstr "" +"l'argument mot-clé *charset* a été ajouté. Le jeu de caractères par défaut " +"du document HTML est passé de ``'ISO-8859-1'`` à ``'utf-8'``." -#: ../Doc/library/difflib.rst:140 +#: library/difflib.rst:141 msgid "" "Compares *fromlines* and *tolines* (lists of strings) and returns a string " "which is a complete HTML table showing line by line differences with inter-" "line and intra-line changes highlighted." msgstr "" +"Compare *fromlines* et *tolines* (listes de chaînes) et renvoie une chaîne " +"qui est un tableau HTML complet montrant les différences ligne par ligne " +"avec les changements inter-lignes et intralignes mis en évidence." -#: ../Doc/library/difflib.rst:144 +#: library/difflib.rst:145 msgid "" "The arguments for this method are the same as those for the :meth:" "`make_file` method." msgstr "" +"Les arguments pour cette méthode sont les mêmes que ceux de la méthode :meth:" +"`make_file`." -#: ../Doc/library/difflib.rst:147 +#: library/difflib.rst:148 msgid "" ":file:`Tools/scripts/diff.py` is a command-line front-end to this class and " "contains a good example of its use." msgstr "" +":file:`Tools/scripts/diff.py` est un frontal en ligne de commande de cette " +"classe et contient un bon exemple de son utilisation." -#: ../Doc/library/difflib.rst:153 +#: library/difflib.rst:154 msgid "" "Compare *a* and *b* (lists of strings); return a delta (a :term:`generator` " "generating the delta lines) in context diff format." msgstr "" +"Compare *a* et *b* (listes de chaînes de caractères) ; renvoie un delta (un :" +"term:`generateur ` générant les lignes delta) dans un format de " +"différence de contexte." -#: ../Doc/library/difflib.rst:156 +#: library/difflib.rst:157 +#, fuzzy msgid "" "Context diffs are a compact way of showing just the lines that have changed " "plus a few lines of context. The changes are shown in a before/after " "style. The number of context lines is set by *n* which defaults to three." msgstr "" +"Les différences de contexte sont une façon compacte de montrer seulement les " +"lignes qui ont changé plus quelques lignes de contexte. Les changements " +"sont affichés dans un style avant/après. Le nombre de lignes de contexte " +"est défini par *n*, qui est de trois par défaut." -#: ../Doc/library/difflib.rst:160 +#: library/difflib.rst:161 msgid "" "By default, the diff control lines (those with ``***`` or ``---``) are " "created with a trailing newline. This is helpful so that inputs created " @@ -249,14 +350,22 @@ msgid "" "with :func:`io.IOBase.writelines` since both the inputs and outputs have " "trailing newlines." msgstr "" +"Par défaut, les lignes de contrôle de la différence (celles avec ``***`` ou " +"``---``) sont créées avec un saut de ligne à la fin. Ceci est utile pour que " +"les entrées créées à partir de :func:`io.IOBase.readlines` résultent en des " +"différences qui peuvent être utilisées avec :func:`io.IOBase.writelines` " +"puisque les entrées et les sorties ont des nouvelles lignes de fin." -#: ../Doc/library/difflib.rst:166 ../Doc/library/difflib.rst:297 +#: library/difflib.rst:298 msgid "" "For inputs that do not have trailing newlines, set the *lineterm* argument " "to ``\"\"`` so that the output will be uniformly newline free." msgstr "" +"Pour les entrées qui n'ont pas de retour à la ligne, mettre l'argument " +"*lineterm* à ``\"\"`` afin que la sortie soit uniformément sans retour à la " +"ligne." -#: ../Doc/library/difflib.rst:169 ../Doc/library/difflib.rst:300 +#: library/difflib.rst:301 msgid "" "The context diff format normally has a header for filenames and modification " "times. Any or all of these may be specified using strings for *fromfile*, " @@ -264,12 +373,20 @@ msgid "" "normally expressed in the ISO 8601 format. If not specified, the strings " "default to blanks." msgstr "" +"Le format de contexte de différence comporte normalement un en-tête pour les " +"noms de fichiers et les heures de modification. Tout ou partie de ces " +"éléments peuvent être spécifiés en utilisant les chaînes de caractères " +"*fromfile*, *tofile*, *fromfiledate* et *tofiledate*. Les heures de " +"modification sont normalement exprimées dans le format ISO 8601. Si elles ne " +"sont pas spécifiées, les chaînes de caractères sont par défaut vierges." -#: ../Doc/library/difflib.rst:192 ../Doc/library/difflib.rst:321 +#: library/difflib.rst:322 msgid "See :ref:`difflib-interface` for a more detailed example." msgstr "" +"Voir :ref:`une interface de ligne de commandes pour difflib ` pour un exemple plus détaillé." -#: ../Doc/library/difflib.rst:197 +#: library/difflib.rst:198 msgid "" "Return a list of the best \"good enough\" matches. *word* is a sequence for " "which close matches are desired (typically a string), and *possibilities* is " @@ -277,37 +394,37 @@ msgid "" "strings)." msgstr "" -#: ../Doc/library/difflib.rst:201 +#: library/difflib.rst:202 msgid "" "Optional argument *n* (default ``3``) is the maximum number of close matches " "to return; *n* must be greater than ``0``." msgstr "" -#: ../Doc/library/difflib.rst:204 +#: library/difflib.rst:205 msgid "" "Optional argument *cutoff* (default ``0.6``) is a float in the range [0, 1]. " "Possibilities that don't score at least that similar to *word* are ignored." msgstr "" -#: ../Doc/library/difflib.rst:207 +#: library/difflib.rst:208 msgid "" "The best (no more than *n*) matches among the possibilities are returned in " "a list, sorted by similarity score, most similar first." msgstr "" -#: ../Doc/library/difflib.rst:223 +#: library/difflib.rst:224 msgid "" "Compare *a* and *b* (lists of strings); return a :class:`Differ`\\ -style " "delta (a :term:`generator` generating the delta lines)." msgstr "" -#: ../Doc/library/difflib.rst:226 +#: library/difflib.rst:227 msgid "" "Optional keyword parameters *linejunk* and *charjunk* are filtering " "functions (or ``None``):" msgstr "" -#: ../Doc/library/difflib.rst:229 +#: library/difflib.rst:230 msgid "" "*linejunk*: A function that accepts a single string argument, and returns " "true if the string is junk, or false if not. The default is ``None``. There " @@ -318,7 +435,7 @@ msgid "" "this usually works better than using this function." msgstr "" -#: ../Doc/library/difflib.rst:237 +#: library/difflib.rst:238 msgid "" "*charjunk*: A function that accepts a character (a string of length 1), and " "returns if the character is junk, or false if not. The default is module-" @@ -326,33 +443,33 @@ msgid "" "characters (a blank or tab; it's a bad idea to include newline in this!)." msgstr "" -#: ../Doc/library/difflib.rst:242 +#: library/difflib.rst:243 msgid "" ":file:`Tools/scripts/ndiff.py` is a command-line front-end to this function." msgstr "" -#: ../Doc/library/difflib.rst:260 +#: library/difflib.rst:261 msgid "Return one of the two sequences that generated a delta." msgstr "" -#: ../Doc/library/difflib.rst:262 +#: library/difflib.rst:263 msgid "" "Given a *sequence* produced by :meth:`Differ.compare` or :func:`ndiff`, " "extract lines originating from file 1 or 2 (parameter *which*), stripping " "off line prefixes." msgstr "" -#: ../Doc/library/difflib.rst:266 +#: library/difflib.rst:267 msgid "Example:" msgstr "Exemple :" -#: ../Doc/library/difflib.rst:283 +#: library/difflib.rst:284 msgid "" "Compare *a* and *b* (lists of strings); return a delta (a :term:`generator` " "generating the delta lines) in unified diff format." msgstr "" -#: ../Doc/library/difflib.rst:286 +#: library/difflib.rst:287 msgid "" "Unified diffs are a compact way of showing just the lines that have changed " "plus a few lines of context. The changes are shown in an inline style " @@ -360,7 +477,7 @@ msgid "" "set by *n* which defaults to three." msgstr "" -#: ../Doc/library/difflib.rst:291 +#: library/difflib.rst:292 msgid "" "By default, the diff control lines (those with ``---``, ``+++``, or ``@@``) " "are created with a trailing newline. This is helpful so that inputs created " @@ -369,14 +486,14 @@ msgid "" "trailing newlines." msgstr "" -#: ../Doc/library/difflib.rst:325 +#: library/difflib.rst:326 msgid "" "Compare *a* and *b* (lists of bytes objects) using *dfunc*; yield a sequence " "of delta lines (also bytes) in the format returned by *dfunc*. *dfunc* must " "be a callable, typically either :func:`unified_diff` or :func:`context_diff`." msgstr "" -#: ../Doc/library/difflib.rst:330 +#: library/difflib.rst:331 msgid "" "Allows you to compare data with unknown or inconsistent encoding. All inputs " "except *n* must be bytes objects, not str. Works by losslessly converting " @@ -386,42 +503,42 @@ msgid "" "unknown/inconsistent encodings as *a* and *b*." msgstr "" -#: ../Doc/library/difflib.rst:341 +#: library/difflib.rst:342 msgid "" "Return ``True`` for ignorable lines. The line *line* is ignorable if *line* " "is blank or contains a single ``'#'``, otherwise it is not ignorable. Used " "as a default for parameter *linejunk* in :func:`ndiff` in older versions." msgstr "" -#: ../Doc/library/difflib.rst:348 +#: library/difflib.rst:349 msgid "" "Return ``True`` for ignorable characters. The character *ch* is ignorable " "if *ch* is a space or tab, otherwise it is not ignorable. Used as a default " "for parameter *charjunk* in :func:`ndiff`." msgstr "" -#: ../Doc/library/difflib.rst:356 +#: library/difflib.rst:357 msgid "" "`Pattern Matching: The Gestalt Approach `_" msgstr "" -#: ../Doc/library/difflib.rst:356 +#: library/difflib.rst:357 msgid "" "Discussion of a similar algorithm by John W. Ratcliff and D. E. Metzener. " "This was published in `Dr. Dobb's Journal `_ in " "July, 1988." msgstr "" -#: ../Doc/library/difflib.rst:363 +#: library/difflib.rst:364 msgid "SequenceMatcher Objects" msgstr "" -#: ../Doc/library/difflib.rst:365 +#: library/difflib.rst:366 msgid "The :class:`SequenceMatcher` class has this constructor:" msgstr "" -#: ../Doc/library/difflib.rst:370 +#: library/difflib.rst:371 msgid "" "Optional argument *isjunk* must be ``None`` (the default) or a one-argument " "function that takes a sequence element and returns true if and only if the " @@ -430,26 +547,26 @@ msgid "" "ignored. For example, pass::" msgstr "" -#: ../Doc/library/difflib.rst:378 +#: library/difflib.rst:379 msgid "" "if you're comparing lines as sequences of characters, and don't want to " "synch up on blanks or hard tabs." msgstr "" -#: ../Doc/library/difflib.rst:381 +#: library/difflib.rst:382 msgid "" "The optional arguments *a* and *b* are sequences to be compared; both " "default to empty strings. The elements of both sequences must be :term:" "`hashable`." msgstr "" -#: ../Doc/library/difflib.rst:384 +#: library/difflib.rst:385 msgid "" "The optional argument *autojunk* can be used to disable the automatic junk " "heuristic." msgstr "" -#: ../Doc/library/difflib.rst:390 +#: library/difflib.rst:391 msgid "" "SequenceMatcher objects get three data attributes: *bjunk* is the set of " "elements of *b* for which *isjunk* is ``True``; *bpopular* is the set of non-" @@ -459,19 +576,19 @@ msgid "" "`set_seqs` or :meth:`set_seq2`." msgstr "" -#: ../Doc/library/difflib.rst:397 +#: library/difflib.rst:398 msgid "The *bjunk* and *bpopular* attributes." msgstr "" -#: ../Doc/library/difflib.rst:400 +#: library/difflib.rst:401 msgid ":class:`SequenceMatcher` objects have the following methods:" msgstr "" -#: ../Doc/library/difflib.rst:404 +#: library/difflib.rst:405 msgid "Set the two sequences to be compared." msgstr "" -#: ../Doc/library/difflib.rst:406 +#: library/difflib.rst:407 msgid "" ":class:`SequenceMatcher` computes and caches detailed information about the " "second sequence, so if you want to compare one sequence against many " @@ -479,23 +596,23 @@ msgid "" "call :meth:`set_seq1` repeatedly, once for each of the other sequences." msgstr "" -#: ../Doc/library/difflib.rst:414 +#: library/difflib.rst:415 msgid "" "Set the first sequence to be compared. The second sequence to be compared " "is not changed." msgstr "" -#: ../Doc/library/difflib.rst:420 +#: library/difflib.rst:421 msgid "" "Set the second sequence to be compared. The first sequence to be compared " "is not changed." msgstr "" -#: ../Doc/library/difflib.rst:426 +#: library/difflib.rst:427 msgid "Find longest matching block in ``a[alo:ahi]`` and ``b[blo:bhi]``." msgstr "" -#: ../Doc/library/difflib.rst:428 +#: library/difflib.rst:429 msgid "" "If *isjunk* was omitted or ``None``, :meth:`find_longest_match` returns " "``(i, j, k)`` such that ``a[i:i+k]`` is equal to ``b[j:j+k]``, where ``alo " @@ -507,7 +624,7 @@ msgid "" "that starts earliest in *b*." msgstr "" -#: ../Doc/library/difflib.rst:441 +#: library/difflib.rst:442 msgid "" "If *isjunk* was provided, first the longest matching block is determined as " "above, but with the additional restriction that no junk element appears in " @@ -516,7 +633,7 @@ msgid "" "junk except as identical junk happens to be adjacent to an interesting match." msgstr "" -#: ../Doc/library/difflib.rst:448 +#: library/difflib.rst:449 msgid "" "Here's the same example as before, but considering blanks to be junk. That " "prevents ``' abcd'`` from matching the ``' abcd'`` at the tail end of the " @@ -524,22 +641,22 @@ msgid "" "matches the leftmost ``'abcd'`` in the second sequence:" msgstr "" -#: ../Doc/library/difflib.rst:457 +#: library/difflib.rst:458 msgid "If no blocks match, this returns ``(alo, blo, 0)``." msgstr "" -#: ../Doc/library/difflib.rst:459 +#: library/difflib.rst:460 msgid "This method returns a :term:`named tuple` ``Match(a, b, size)``." msgstr "" -#: ../Doc/library/difflib.rst:464 +#: library/difflib.rst:465 msgid "" "Return list of triples describing non-overlapping matching subsequences. " -"Each triple is of the form ``(i, j, n)``, and means that ``a[i:i+n] == b[j:j" -"+n]``. The triples are monotonically increasing in *i* and *j*." +"Each triple is of the form ``(i, j, n)``, and means that ``a[i:i+n] == b[j:" +"j+n]``. The triples are monotonically increasing in *i* and *j*." msgstr "" -#: ../Doc/library/difflib.rst:469 +#: library/difflib.rst:470 msgid "" "The last triple is a dummy, and has the value ``(len(a), len(b), 0)``. It " "is the only triple with ``n == 0``. If ``(i, j, n)`` and ``(i', j', n')`` " @@ -548,7 +665,7 @@ msgid "" "triples always describe non-adjacent equal blocks." msgstr "" -#: ../Doc/library/difflib.rst:486 +#: library/difflib.rst:487 msgid "" "Return list of 5-tuples describing how to turn *a* into *b*. Each tuple is " "of the form ``(tag, i1, i2, j1, j2)``. The first tuple has ``i1 == j1 == " @@ -556,101 +673,101 @@ msgid "" "tuple, and, likewise, *j1* equal to the previous *j2*." msgstr "" -#: ../Doc/library/difflib.rst:491 +#: library/difflib.rst:492 msgid "The *tag* values are strings, with these meanings:" msgstr "" -#: ../Doc/library/difflib.rst:494 +#: library/difflib.rst:495 msgid "Value" msgstr "Valeur" -#: ../Doc/library/difflib.rst:496 +#: library/difflib.rst:497 msgid "``'replace'``" msgstr "``'replace'``" -#: ../Doc/library/difflib.rst:496 +#: library/difflib.rst:497 msgid "``a[i1:i2]`` should be replaced by ``b[j1:j2]``." msgstr "" -#: ../Doc/library/difflib.rst:499 +#: library/difflib.rst:500 msgid "``'delete'``" msgstr "``'delete'``" -#: ../Doc/library/difflib.rst:499 +#: library/difflib.rst:500 msgid "``a[i1:i2]`` should be deleted. Note that ``j1 == j2`` in this case." msgstr "" -#: ../Doc/library/difflib.rst:502 +#: library/difflib.rst:503 msgid "``'insert'``" msgstr "``'insert'``" -#: ../Doc/library/difflib.rst:502 +#: library/difflib.rst:503 msgid "" "``b[j1:j2]`` should be inserted at ``a[i1:i1]``. Note that ``i1 == i2`` in " "this case." msgstr "" -#: ../Doc/library/difflib.rst:506 +#: library/difflib.rst:507 msgid "``'equal'``" msgstr "``'equal'``" -#: ../Doc/library/difflib.rst:506 +#: library/difflib.rst:507 msgid "``a[i1:i2] == b[j1:j2]`` (the sub-sequences are equal)." msgstr "" -#: ../Doc/library/difflib.rst:510 +#: library/difflib.rst:511 msgid "For example::" msgstr "Par exemple ::" -#: ../Doc/library/difflib.rst:527 +#: library/difflib.rst:528 msgid "Return a :term:`generator` of groups with up to *n* lines of context." msgstr "" -#: ../Doc/library/difflib.rst:529 +#: library/difflib.rst:530 msgid "" "Starting with the groups returned by :meth:`get_opcodes`, this method splits " "out smaller change clusters and eliminates intervening ranges which have no " "changes." msgstr "" -#: ../Doc/library/difflib.rst:533 +#: library/difflib.rst:534 msgid "The groups are returned in the same format as :meth:`get_opcodes`." msgstr "" -#: ../Doc/library/difflib.rst:538 +#: library/difflib.rst:539 msgid "" "Return a measure of the sequences' similarity as a float in the range [0, 1]." msgstr "" -#: ../Doc/library/difflib.rst:541 +#: library/difflib.rst:542 msgid "" "Where T is the total number of elements in both sequences, and M is the " "number of matches, this is 2.0\\*M / T. Note that this is ``1.0`` if the " "sequences are identical, and ``0.0`` if they have nothing in common." msgstr "" -#: ../Doc/library/difflib.rst:545 +#: library/difflib.rst:546 msgid "" "This is expensive to compute if :meth:`get_matching_blocks` or :meth:" "`get_opcodes` hasn't already been called, in which case you may want to try :" "meth:`quick_ratio` or :meth:`real_quick_ratio` first to get an upper bound." msgstr "" -#: ../Doc/library/difflib.rst:552 +#: library/difflib.rst:553 msgid "" "Caution: The result of a :meth:`ratio` call may depend on the order of the " "arguments. For instance::" msgstr "" -#: ../Doc/library/difflib.rst:563 +#: library/difflib.rst:564 msgid "Return an upper bound on :meth:`ratio` relatively quickly." msgstr "" -#: ../Doc/library/difflib.rst:568 +#: library/difflib.rst:569 msgid "Return an upper bound on :meth:`ratio` very quickly." msgstr "" -#: ../Doc/library/difflib.rst:571 +#: library/difflib.rst:572 msgid "" "The three methods that return the ratio of matching to total characters can " "give different results due to differing levels of approximation, although :" @@ -658,57 +775,57 @@ msgid "" "as :meth:`ratio`:" msgstr "" -#: ../Doc/library/difflib.rst:588 +#: library/difflib.rst:589 msgid "SequenceMatcher Examples" msgstr "" -#: ../Doc/library/difflib.rst:590 +#: library/difflib.rst:591 msgid "This example compares two strings, considering blanks to be \"junk\":" msgstr "" -#: ../Doc/library/difflib.rst:596 +#: library/difflib.rst:597 msgid "" ":meth:`ratio` returns a float in [0, 1], measuring the similarity of the " "sequences. As a rule of thumb, a :meth:`ratio` value over 0.6 means the " "sequences are close matches:" msgstr "" -#: ../Doc/library/difflib.rst:603 +#: library/difflib.rst:604 msgid "" "If you're only interested in where the sequences match, :meth:" "`get_matching_blocks` is handy:" msgstr "" -#: ../Doc/library/difflib.rst:612 +#: library/difflib.rst:613 msgid "" "Note that the last tuple returned by :meth:`get_matching_blocks` is always a " "dummy, ``(len(a), len(b), 0)``, and this is the only case in which the last " "tuple element (number of elements matched) is ``0``." msgstr "" -#: ../Doc/library/difflib.rst:616 +#: library/difflib.rst:617 msgid "" "If you want to know how to change the first sequence into the second, use :" "meth:`get_opcodes`:" msgstr "" -#: ../Doc/library/difflib.rst:627 +#: library/difflib.rst:628 msgid "" "The :func:`get_close_matches` function in this module which shows how simple " "code building on :class:`SequenceMatcher` can be used to do useful work." msgstr "" -#: ../Doc/library/difflib.rst:631 +#: library/difflib.rst:632 msgid "" "`Simple version control recipe `_ for a small application built with :class:`SequenceMatcher`." msgstr "" -#: ../Doc/library/difflib.rst:639 +#: library/difflib.rst:640 msgid "Differ Objects" msgstr "" -#: ../Doc/library/difflib.rst:641 +#: library/difflib.rst:642 msgid "" "Note that :class:`Differ`\\ -generated deltas make no claim to be " "**minimal** diffs. To the contrary, minimal diffs are often counter-" @@ -718,31 +835,31 @@ msgid "" "longer diff." msgstr "" -#: ../Doc/library/difflib.rst:647 +#: library/difflib.rst:648 msgid "The :class:`Differ` class has this constructor:" msgstr "" -#: ../Doc/library/difflib.rst:652 +#: library/difflib.rst:654 msgid "" "Optional keyword parameters *linejunk* and *charjunk* are for filter " "functions (or ``None``):" msgstr "" -#: ../Doc/library/difflib.rst:655 +#: library/difflib.rst:657 msgid "" "*linejunk*: A function that accepts a single string argument, and returns " "true if the string is junk. The default is ``None``, meaning that no line " "is considered junk." msgstr "" -#: ../Doc/library/difflib.rst:659 +#: library/difflib.rst:661 msgid "" "*charjunk*: A function that accepts a single character argument (a string of " "length 1), and returns true if the character is junk. The default is " "``None``, meaning that no character is considered junk." msgstr "" -#: ../Doc/library/difflib.rst:663 +#: library/difflib.rst:665 msgid "" "These junk-filtering functions speed up matching to find differences and do " "not cause any differing lines or characters to be ignored. Read the " @@ -750,17 +867,17 @@ msgid "" "*isjunk* parameter for an explanation." msgstr "" -#: ../Doc/library/difflib.rst:669 +#: library/difflib.rst:671 msgid "" ":class:`Differ` objects are used (deltas generated) via a single method:" msgstr "" -#: ../Doc/library/difflib.rst:674 +#: library/difflib.rst:676 msgid "" "Compare two sequences of lines, and generate the delta (a sequence of lines)." msgstr "" -#: ../Doc/library/difflib.rst:676 +#: library/difflib.rst:678 msgid "" "Each sequence must contain individual single-line strings ending with " "newlines. Such sequences can be obtained from the :meth:`~io.IOBase." @@ -769,11 +886,11 @@ msgid "" "IOBase.writelines` method of a file-like object." msgstr "" -#: ../Doc/library/difflib.rst:687 +#: library/difflib.rst:689 msgid "Differ Example" msgstr "" -#: ../Doc/library/difflib.rst:689 +#: library/difflib.rst:691 msgid "" "This example compares two texts. First we set up the texts, sequences of " "individual single-line strings ending with newlines (such sequences can also " @@ -781,34 +898,34 @@ msgid "" "objects):" msgstr "" -#: ../Doc/library/difflib.rst:708 +#: library/difflib.rst:710 msgid "Next we instantiate a Differ object:" msgstr "" -#: ../Doc/library/difflib.rst:712 +#: library/difflib.rst:714 msgid "" "Note that when instantiating a :class:`Differ` object we may pass functions " "to filter out line and character \"junk.\" See the :meth:`Differ` " "constructor for details." msgstr "" -#: ../Doc/library/difflib.rst:716 +#: library/difflib.rst:718 msgid "Finally, we compare the two:" msgstr "" -#: ../Doc/library/difflib.rst:720 +#: library/difflib.rst:722 msgid "``result`` is a list of strings, so let's pretty-print it:" msgstr "" -#: ../Doc/library/difflib.rst:735 +#: library/difflib.rst:737 msgid "As a single multi-line string it looks like this:" msgstr "" -#: ../Doc/library/difflib.rst:754 +#: library/difflib.rst:756 msgid "A command-line interface to difflib" msgstr "" -#: ../Doc/library/difflib.rst:756 +#: library/difflib.rst:758 msgid "" "This example shows how to use difflib to create a ``diff``-like utility. It " "is also contained in the Python source distribution, as :file:`Tools/scripts/" diff --git a/library/dis.po b/library/dis.po index 86bbb8e17c..529129011a 100644 --- a/library/dis.po +++ b/library/dis.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2019-07-18 21:03+0200\n" "Last-Translator: Aya Keddam \n" "Language-Team: FRENCH \n" @@ -15,15 +15,15 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.2.1\n" -#: ../Doc/library/dis.rst:2 +#: library/dis.rst:2 msgid ":mod:`dis` --- Disassembler for Python bytecode" msgstr ":mod:`dis` – Désassembleur pour le code intermédiaire de Python" -#: ../Doc/library/dis.rst:7 +#: library/dis.rst:7 msgid "**Source code:** :source:`Lib/dis.py`" msgstr "**Code source :** :source:`Lib/dis.py`" -#: ../Doc/library/dis.rst:11 +#: library/dis.rst:11 msgid "" "The :mod:`dis` module supports the analysis of CPython :term:`bytecode` by " "disassembling it. The CPython bytecode which this module takes as an input " @@ -35,7 +35,7 @@ msgstr "" "prend en paramètre, est défini dans le fichier :file:`Include/opcode.h` et " "est utilisé par le compilateur et l'interpréteur." -#: ../Doc/library/dis.rst:18 +#: library/dis.rst:18 msgid "" "Bytecode is an implementation detail of the CPython interpreter. No " "guarantees are made that bytecode will not be added, removed, or changed " @@ -48,7 +48,7 @@ msgstr "" "cette bibliothèque ne fonctionne pas nécessairement sur les machines " "virtuelles Python ni les différentes versions de Python." -#: ../Doc/library/dis.rst:23 +#: library/dis.rst:23 msgid "" "Use 2 bytes for each instruction. Previously the number of bytes varied by " "instruction." @@ -56,11 +56,11 @@ msgstr "" "Utilisez 2 bits pour chaque instruction. Avant, le nombre de bits variait " "par instruction." -#: ../Doc/library/dis.rst:28 +#: library/dis.rst:28 msgid "Example: Given the function :func:`myfunc`::" msgstr "Exemple : Etant donné la fonction :func:`myfunc` ::" -#: ../Doc/library/dis.rst:33 +#: library/dis.rst:33 msgid "" "the following command can be used to display the disassembly of :func:" "`myfunc`::" @@ -68,15 +68,15 @@ msgstr "" "la commande suivante peut-être utilisé pour afficher le désassemblage de :" "func:`myfunc` ::" -#: ../Doc/library/dis.rst:42 +#: library/dis.rst:42 msgid "(The \"2\" is a line number)." msgstr "(Le \"2\" est un numéro de ligne)." -#: ../Doc/library/dis.rst:45 +#: library/dis.rst:45 msgid "Bytecode analysis" msgstr "Analyse du code intermédiaire" -#: ../Doc/library/dis.rst:49 +#: library/dis.rst:49 msgid "" "The bytecode analysis API allows pieces of Python code to be wrapped in a :" "class:`Bytecode` object that provides easy access to details of the compiled " @@ -86,7 +86,7 @@ msgstr "" "code en Python dans une classe :class:`Bytecode`, qui permet un accès facile " "aux détails du code compilé." -#: ../Doc/library/dis.rst:56 +#: library/dis.rst:56 msgid "" "Analyse the bytecode corresponding to a function, generator, asynchronous " "generator, coroutine, method, string of source code, or a code object (as " @@ -97,7 +97,7 @@ msgstr "" "caractères du code source, ou bien une classe (comme retourne la fonction :" "func:`compile`)." -#: ../Doc/library/dis.rst:60 +#: library/dis.rst:60 msgid "" "This is a convenience wrapper around many of the functions listed below, " "most notably :func:`get_instructions`, as iterating over a :class:`Bytecode` " @@ -108,7 +108,7 @@ msgstr "" "instance de la classe :class:`Bytecode` rend les opérations du code " "intermédiaire des instances de :class:`Instruction`." -#: ../Doc/library/dis.rst:64 ../Doc/library/dis.rst:225 +#: library/dis.rst:225 msgid "" "If *first_line* is not ``None``, it indicates the line number that should be " "reported for the first source line in the disassembled code. Otherwise, the " @@ -120,7 +120,7 @@ msgstr "" "Autrement, les informations sur la ligne source sont prises directement à " "partir de la classe du code désassemblé." -#: ../Doc/library/dis.rst:69 +#: library/dis.rst:69 msgid "" "If *current_offset* is not ``None``, it refers to an instruction offset in " "the disassembled code. Setting this means :meth:`.dis` will display a " @@ -131,7 +131,7 @@ msgstr "" "dire que :meth:`.dis` va générer un marqueur de \" l'instruction en cours\" " "contre le code d'opération donné." -#: ../Doc/library/dis.rst:75 +#: library/dis.rst:75 msgid "" "Construct a :class:`Bytecode` instance from the given traceback, setting " "*current_offset* to the instruction responsible for the exception." @@ -139,15 +139,15 @@ msgstr "" "Construisez une instance :class:`Bytecode` à partir de la trace d'appel, en " "mettant *current_offet* à l'instruction responsable de l'exception." -#: ../Doc/library/dis.rst:80 +#: library/dis.rst:80 msgid "The compiled code object." msgstr "Le code compilé objet." -#: ../Doc/library/dis.rst:84 +#: library/dis.rst:84 msgid "The first source line of the code object (if available)" msgstr "La première ligne source du code objet (si disponible)" -#: ../Doc/library/dis.rst:88 +#: library/dis.rst:88 msgid "" "Return a formatted view of the bytecode operations (the same as printed by :" "func:`dis.dis`, but returned as a multi-line string)." @@ -156,7 +156,7 @@ msgstr "" "celle envoyée par :func:`dis.dis`, mais comme une chaîne de caractères de " "plusieurs lignes )." -#: ../Doc/library/dis.rst:93 +#: library/dis.rst:93 msgid "" "Return a formatted multi-line string with detailed information about the " "code object, like :func:`code_info`." @@ -164,21 +164,20 @@ msgstr "" "Retourne une chaîne de caractères de plusieurs lignes formatée avec des " "informations détaillées sur l'objet code comme :func:`code_info`." -#: ../Doc/library/dis.rst:96 ../Doc/library/dis.rst:130 -#: ../Doc/library/dis.rst:176 +#: library/dis.rst:130 library/dis.rst:176 msgid "This can now handle coroutine and asynchronous generator objects." msgstr "" "Cette version supporte la coroutine et les objets générateurs asynchrones." -#: ../Doc/library/dis.rst:99 +#: library/dis.rst:99 msgid "Example::" msgstr "Exemple ::" -#: ../Doc/library/dis.rst:112 +#: library/dis.rst:112 msgid "Analysis functions" msgstr "Analyse de fonctions" -#: ../Doc/library/dis.rst:114 +#: library/dis.rst:114 msgid "" "The :mod:`dis` module also defines the following analysis functions that " "convert the input directly to the desired output. They can be useful if only " @@ -190,7 +189,7 @@ msgstr "" "peuvent être utiles si il n'y a qu'une seule opération à effectuer, la " "représentation intermédiaire objet n'étant donc pas utile dans ce cas:" -#: ../Doc/library/dis.rst:120 +#: library/dis.rst:120 msgid "" "Return a formatted multi-line string with detailed code object information " "for the supplied function, generator, asynchronous generator, coroutine, " @@ -201,7 +200,7 @@ msgstr "" "générateurs asynchrone, coroutine, la méthode, la chaine de caractères du " "code source ou objet." -#: ../Doc/library/dis.rst:124 +#: library/dis.rst:124 msgid "" "Note that the exact contents of code info strings are highly implementation " "dependent and they may change arbitrarily across Python VMs or Python " @@ -212,7 +211,7 @@ msgstr "" "peuvent changer arbitrairement sous machines virtuelles Python ou les " "versions de Python." -#: ../Doc/library/dis.rst:136 +#: library/dis.rst:136 msgid "" "Print detailed code object information for the supplied function, method, " "source code string or code object to *file* (or ``sys.stdout`` if *file* is " @@ -222,7 +221,7 @@ msgstr "" "méthode, la chaîne de caractère du code source ou du code objet à *file* (ou " "bien ``sys.stdout`` si *file* n'est pas spécifié)." -#: ../Doc/library/dis.rst:140 +#: library/dis.rst:140 msgid "" "This is a convenient shorthand for ``print(code_info(x), file=file)``, " "intended for interactive exploration at the interpreter prompt." @@ -231,12 +230,11 @@ msgstr "" "principalement fait pour l'exploration interactive sur l'invite de " "l'interpréteur." -#: ../Doc/library/dis.rst:145 ../Doc/library/dis.rst:170 -#: ../Doc/library/dis.rst:189 ../Doc/library/dis.rst:213 +#: library/dis.rst:170 library/dis.rst:213 msgid "Added *file* parameter." msgstr "Ajout du paramètre *file*." -#: ../Doc/library/dis.rst:151 +#: library/dis.rst:151 msgid "" "Disassemble the *x* object. *x* can denote either a module, a class, a " "method, a function, a generator, an asynchronous generator, a coroutine, a " @@ -265,8 +263,7 @@ msgstr "" "`compile` avant qu'elles ne soient désassemblées. Si aucun objet n'est " "fourni, cette fonction désassemble les dernières traces d'appel." -#: ../Doc/library/dis.rst:164 ../Doc/library/dis.rst:186 -#: ../Doc/library/dis.rst:210 +#: library/dis.rst:186 library/dis.rst:210 msgid "" "The disassembly is written as text to the supplied *file* argument if " "provided and to ``sys.stdout`` otherwise." @@ -274,7 +271,7 @@ msgstr "" "Le désassemblage est envoyé sous forme de texte à l'argument du fichier " "*file* si il est fourni, et à ``sys.stdout`` sinon." -#: ../Doc/library/dis.rst:167 +#: library/dis.rst:167 msgid "" "The maximal depth of recursion is limited by *depth* unless it is ``None``. " "``depth=0`` means no recursion." @@ -282,13 +279,13 @@ msgstr "" "La profondeur maximale de récursion est limitée par *depth* sauf si elle " "correspond à ``None``. ``depth=0`` indique qu'il n'y a pas de récursion." -#: ../Doc/library/dis.rst:173 +#: library/dis.rst:173 msgid "Implemented recursive disassembling and added *depth* parameter." msgstr "" "Le désassemblage récursif a été implémenté, et le paramètre *depth* a été " "ajouté." -#: ../Doc/library/dis.rst:182 +#: library/dis.rst:182 msgid "" "Disassemble the top-of-stack function of a traceback, using the last " "traceback if none was passed. The instruction causing the exception is " @@ -298,7 +295,7 @@ msgstr "" "la dernière trace d'appels si rien n'a été envoyé. L'instruction à l'origine " "de l'exception est indiquée." -#: ../Doc/library/dis.rst:196 +#: library/dis.rst:196 msgid "" "Disassemble a code object, indicating the last instruction if *lasti* was " "provided. The output is divided in the following columns:" @@ -306,35 +303,35 @@ msgstr "" "Désassemble un code objet, en indiquant la dernière instruction si *lasti* " "est fournie. La sortie est répartie sur les colonnes suivantes :" -#: ../Doc/library/dis.rst:199 +#: library/dis.rst:199 msgid "the line number, for the first instruction of each line" msgstr "le numéro de ligne, pour la première instruction de chaque ligne" -#: ../Doc/library/dis.rst:200 +#: library/dis.rst:200 msgid "the current instruction, indicated as ``-->``," msgstr "l'instruction en cours, indiquée par ``-->``," -#: ../Doc/library/dis.rst:201 +#: library/dis.rst:201 msgid "a labelled instruction, indicated with ``>>``," msgstr "une instruction libellée, indiquée par ``> >``," -#: ../Doc/library/dis.rst:202 +#: library/dis.rst:202 msgid "the address of the instruction," msgstr "l'adresse de l'instruction," -#: ../Doc/library/dis.rst:203 +#: library/dis.rst:203 msgid "the operation code name," msgstr "le nom de le code d'opération," -#: ../Doc/library/dis.rst:204 +#: library/dis.rst:204 msgid "operation parameters, and" msgstr "paramètres de l'opération, et" -#: ../Doc/library/dis.rst:205 +#: library/dis.rst:205 msgid "interpretation of the parameters in parentheses." msgstr "interprétation des paramètres entre parenthèses." -#: ../Doc/library/dis.rst:207 +#: library/dis.rst:207 msgid "" "The parameter interpretation recognizes local and global variable names, " "constant values, branch targets, and compare operators." @@ -343,7 +340,7 @@ msgstr "" "globales, des valeurs constantes, des branchements cibles, et des opérateurs " "de comparaison." -#: ../Doc/library/dis.rst:219 +#: library/dis.rst:219 msgid "" "Return an iterator over the instructions in the supplied function, method, " "source code string or code object." @@ -351,7 +348,7 @@ msgstr "" "Retourne un itérateur sur les instructions dans la fonction fournie, la " "méthode, les chaînes de caractères du code source ou objet." -#: ../Doc/library/dis.rst:222 +#: library/dis.rst:222 msgid "" "The iterator generates a series of :class:`Instruction` named tuples giving " "the details of each operation in the supplied code." @@ -359,7 +356,7 @@ msgstr "" "Cet itérateur génère une série de n-uplets de :class:`Instruction` qui " "donnent les détails de chacune des opérations dans le code fourni." -#: ../Doc/library/dis.rst:235 +#: library/dis.rst:235 msgid "" "This generator function uses the ``co_firstlineno`` and ``co_lnotab`` " "attributes of the code object *code* to find the offsets which are starts of " @@ -368,23 +365,23 @@ msgid "" "to decode it." msgstr "" -#: ../Doc/library/dis.rst:241 +#: library/dis.rst:241 msgid "Line numbers can be decreasing. Before, they were always increasing." msgstr "" "Les numéros de lignes peuvent être décroissants. Avant, ils étaient toujours " "croissants." -#: ../Doc/library/dis.rst:247 +#: library/dis.rst:247 msgid "" -"Detect all offsets in the code object *code* which are jump targets, and " -"return a list of these offsets." +"Detect all offsets in the raw compiled bytecode string *code* which are jump " +"targets, and return a list of these offsets." msgstr "" -#: ../Doc/library/dis.rst:253 +#: library/dis.rst:253 msgid "Compute the stack effect of *opcode* with argument *oparg*." msgstr "" -#: ../Doc/library/dis.rst:255 +#: library/dis.rst:255 msgid "" "If the code has a jump target and *jump* is ``True``, :func:`~stack_effect` " "will return the stack effect of jumping. If *jump* is ``False``, it will " @@ -392,16 +389,16 @@ msgid "" "it will return the maximal stack effect of both cases." msgstr "" -#: ../Doc/library/dis.rst:262 +#: library/dis.rst:262 #, fuzzy msgid "Added *jump* parameter." msgstr "Ajout du paramètre *file*." -#: ../Doc/library/dis.rst:269 +#: library/dis.rst:269 msgid "Python Bytecode Instructions" msgstr "Les instructions du code intermédiaire en Python" -#: ../Doc/library/dis.rst:271 +#: library/dis.rst:271 msgid "" "The :func:`get_instructions` function and :class:`Bytecode` class provide " "details of bytecode instructions as :class:`Instruction` instances:" @@ -410,11 +407,11 @@ msgstr "" "des détails sur le code intermédiaire des instructions comme :class:" "`Instruction` instances:" -#: ../Doc/library/dis.rst:276 +#: library/dis.rst:276 msgid "Details for a bytecode operation" msgstr "Détails sur le code intermédiaire de l'opération" -#: ../Doc/library/dis.rst:280 +#: library/dis.rst:280 msgid "" "numeric code for operation, corresponding to the opcode values listed below " "and the bytecode values in the :ref:`opcode_collections`." @@ -423,185 +420,185 @@ msgstr "" "dessous et les valeurs du code intermédiaire dans la :ref:" "`opcode_collections`." -#: ../Doc/library/dis.rst:286 +#: library/dis.rst:286 msgid "human readable name for operation" msgstr "nom lisible/compréhensible de l'opération" -#: ../Doc/library/dis.rst:291 +#: library/dis.rst:291 msgid "numeric argument to operation (if any), otherwise ``None``" msgstr "le cas échéant, argument numérique de l'opération sinon ``None``" -#: ../Doc/library/dis.rst:296 +#: library/dis.rst:296 msgid "resolved arg value (if known), otherwise same as arg" msgstr "" -#: ../Doc/library/dis.rst:301 +#: library/dis.rst:301 msgid "human readable description of operation argument" msgstr "" -#: ../Doc/library/dis.rst:306 +#: library/dis.rst:306 msgid "start index of operation within bytecode sequence" msgstr "" -#: ../Doc/library/dis.rst:311 +#: library/dis.rst:311 msgid "line started by this opcode (if any), otherwise ``None``" msgstr "" -#: ../Doc/library/dis.rst:316 +#: library/dis.rst:316 msgid "``True`` if other code jumps to here, otherwise ``False``" msgstr "" -#: ../Doc/library/dis.rst:321 +#: library/dis.rst:321 msgid "" "The Python compiler currently generates the following bytecode instructions." msgstr "" -#: ../Doc/library/dis.rst:324 +#: library/dis.rst:324 msgid "**General instructions**" msgstr "" -#: ../Doc/library/dis.rst:328 +#: library/dis.rst:328 msgid "Do nothing code. Used as a placeholder by the bytecode optimizer." msgstr "" -#: ../Doc/library/dis.rst:333 +#: library/dis.rst:333 msgid "Removes the top-of-stack (TOS) item." msgstr "" -#: ../Doc/library/dis.rst:338 +#: library/dis.rst:338 msgid "Swaps the two top-most stack items." msgstr "" -#: ../Doc/library/dis.rst:343 +#: library/dis.rst:343 msgid "" "Lifts second and third stack item one position up, moves top down to " "position three." msgstr "" -#: ../Doc/library/dis.rst:349 +#: library/dis.rst:349 msgid "" -"Lifts second, third and forth stack items one position up, moves top down to " -"position four." +"Lifts second, third and fourth stack items one position up, moves top down " +"to position four." msgstr "" -#: ../Doc/library/dis.rst:357 +#: library/dis.rst:357 msgid "Duplicates the reference on top of the stack." msgstr "" -#: ../Doc/library/dis.rst:364 +#: library/dis.rst:364 msgid "" "Duplicates the two references on top of the stack, leaving them in the same " "order." msgstr "" -#: ../Doc/library/dis.rst:370 +#: library/dis.rst:370 msgid "**Unary operations**" msgstr "" -#: ../Doc/library/dis.rst:372 +#: library/dis.rst:372 msgid "" "Unary operations take the top of the stack, apply the operation, and push " "the result back on the stack." msgstr "" -#: ../Doc/library/dis.rst:377 +#: library/dis.rst:377 msgid "Implements ``TOS = +TOS``." msgstr "" -#: ../Doc/library/dis.rst:382 +#: library/dis.rst:382 msgid "Implements ``TOS = -TOS``." msgstr "" -#: ../Doc/library/dis.rst:387 +#: library/dis.rst:387 msgid "Implements ``TOS = not TOS``." msgstr "" -#: ../Doc/library/dis.rst:392 +#: library/dis.rst:392 msgid "Implements ``TOS = ~TOS``." msgstr "" -#: ../Doc/library/dis.rst:397 +#: library/dis.rst:397 msgid "Implements ``TOS = iter(TOS)``." msgstr "" -#: ../Doc/library/dis.rst:402 +#: library/dis.rst:402 msgid "" "If ``TOS`` is a :term:`generator iterator` or :term:`coroutine` object it is " "left as is. Otherwise, implements ``TOS = iter(TOS)``." msgstr "" -#: ../Doc/library/dis.rst:408 +#: library/dis.rst:408 msgid "**Binary operations**" msgstr "" -#: ../Doc/library/dis.rst:410 +#: library/dis.rst:410 msgid "" "Binary operations remove the top of the stack (TOS) and the second top-most " "stack item (TOS1) from the stack. They perform the operation, and put the " "result back on the stack." msgstr "" -#: ../Doc/library/dis.rst:416 +#: library/dis.rst:416 msgid "Implements ``TOS = TOS1 ** TOS``." msgstr "" -#: ../Doc/library/dis.rst:421 +#: library/dis.rst:421 msgid "Implements ``TOS = TOS1 * TOS``." msgstr "" -#: ../Doc/library/dis.rst:426 +#: library/dis.rst:426 msgid "Implements ``TOS = TOS1 @ TOS``." msgstr "" -#: ../Doc/library/dis.rst:433 +#: library/dis.rst:433 msgid "Implements ``TOS = TOS1 // TOS``." msgstr "" -#: ../Doc/library/dis.rst:438 +#: library/dis.rst:438 msgid "Implements ``TOS = TOS1 / TOS``." msgstr "" -#: ../Doc/library/dis.rst:443 +#: library/dis.rst:443 msgid "Implements ``TOS = TOS1 % TOS``." msgstr "" -#: ../Doc/library/dis.rst:448 +#: library/dis.rst:448 msgid "Implements ``TOS = TOS1 + TOS``." msgstr "" -#: ../Doc/library/dis.rst:453 +#: library/dis.rst:453 msgid "Implements ``TOS = TOS1 - TOS``." msgstr "" -#: ../Doc/library/dis.rst:458 +#: library/dis.rst:458 msgid "Implements ``TOS = TOS1[TOS]``." msgstr "" -#: ../Doc/library/dis.rst:463 +#: library/dis.rst:463 msgid "Implements ``TOS = TOS1 << TOS``." msgstr "" -#: ../Doc/library/dis.rst:468 +#: library/dis.rst:468 msgid "Implements ``TOS = TOS1 >> TOS``." msgstr "" -#: ../Doc/library/dis.rst:473 +#: library/dis.rst:473 msgid "Implements ``TOS = TOS1 & TOS``." msgstr "" -#: ../Doc/library/dis.rst:478 +#: library/dis.rst:478 msgid "Implements ``TOS = TOS1 ^ TOS``." msgstr "" -#: ../Doc/library/dis.rst:483 +#: library/dis.rst:483 msgid "Implements ``TOS = TOS1 | TOS``." msgstr "" -#: ../Doc/library/dis.rst:486 +#: library/dis.rst:486 msgid "**In-place operations**" msgstr "" -#: ../Doc/library/dis.rst:488 +#: library/dis.rst:488 msgid "" "In-place operations are like binary operations, in that they remove TOS and " "TOS1, and push the result back on the stack, but the operation is done in-" @@ -609,92 +606,92 @@ msgid "" "to be) the original TOS1." msgstr "" -#: ../Doc/library/dis.rst:495 +#: library/dis.rst:495 msgid "Implements in-place ``TOS = TOS1 ** TOS``." msgstr "" -#: ../Doc/library/dis.rst:500 +#: library/dis.rst:500 msgid "Implements in-place ``TOS = TOS1 * TOS``." msgstr "" -#: ../Doc/library/dis.rst:505 +#: library/dis.rst:505 msgid "Implements in-place ``TOS = TOS1 @ TOS``." msgstr "" -#: ../Doc/library/dis.rst:512 +#: library/dis.rst:512 msgid "Implements in-place ``TOS = TOS1 // TOS``." msgstr "" -#: ../Doc/library/dis.rst:517 +#: library/dis.rst:517 msgid "Implements in-place ``TOS = TOS1 / TOS``." msgstr "" -#: ../Doc/library/dis.rst:522 +#: library/dis.rst:522 msgid "Implements in-place ``TOS = TOS1 % TOS``." msgstr "" -#: ../Doc/library/dis.rst:527 +#: library/dis.rst:527 msgid "Implements in-place ``TOS = TOS1 + TOS``." msgstr "" -#: ../Doc/library/dis.rst:532 +#: library/dis.rst:532 msgid "Implements in-place ``TOS = TOS1 - TOS``." msgstr "" -#: ../Doc/library/dis.rst:537 +#: library/dis.rst:537 msgid "Implements in-place ``TOS = TOS1 << TOS``." msgstr "" -#: ../Doc/library/dis.rst:542 +#: library/dis.rst:542 msgid "Implements in-place ``TOS = TOS1 >> TOS``." msgstr "" -#: ../Doc/library/dis.rst:547 +#: library/dis.rst:547 msgid "Implements in-place ``TOS = TOS1 & TOS``." msgstr "" -#: ../Doc/library/dis.rst:552 +#: library/dis.rst:552 msgid "Implements in-place ``TOS = TOS1 ^ TOS``." msgstr "" -#: ../Doc/library/dis.rst:557 +#: library/dis.rst:557 msgid "Implements in-place ``TOS = TOS1 | TOS``." msgstr "" -#: ../Doc/library/dis.rst:562 +#: library/dis.rst:562 msgid "Implements ``TOS1[TOS] = TOS2``." msgstr "" -#: ../Doc/library/dis.rst:567 +#: library/dis.rst:567 msgid "Implements ``del TOS1[TOS]``." msgstr "" -#: ../Doc/library/dis.rst:570 +#: library/dis.rst:570 msgid "**Coroutine opcodes**" msgstr "" -#: ../Doc/library/dis.rst:574 +#: library/dis.rst:574 msgid "" "Implements ``TOS = get_awaitable(TOS)``, where ``get_awaitable(o)`` returns " "``o`` if ``o`` is a coroutine object or a generator object with the " "CO_ITERABLE_COROUTINE flag, or resolves ``o.__await__``." msgstr "" -#: ../Doc/library/dis.rst:584 +#: library/dis.rst:584 msgid "Implements ``TOS = TOS.__aiter__()``." msgstr "" -#: ../Doc/library/dis.rst:587 +#: library/dis.rst:587 msgid "Returning awaitable objects from ``__aiter__`` is no longer supported." msgstr "" -#: ../Doc/library/dis.rst:594 +#: library/dis.rst:594 msgid "" "Implements ``PUSH(get_awaitable(TOS.__anext__()))``. See ``GET_AWAITABLE`` " "for details about ``get_awaitable``" msgstr "" -#: ../Doc/library/dis.rst:602 +#: library/dis.rst:602 msgid "" "Terminates an :keyword:`async for` loop. Handles an exception raised when " "awaiting a next item. If TOS is :exc:`StopAsyncIteration` pop 7 values from " @@ -703,48 +700,48 @@ msgid "" "exception handler block is removed from the block stack." msgstr "" -#: ../Doc/library/dis.rst:613 +#: library/dis.rst:613 msgid "" "Resolves ``__aenter__`` and ``__aexit__`` from the object on top of the " "stack. Pushes ``__aexit__`` and result of ``__aenter__()`` to the stack." msgstr "" -#: ../Doc/library/dis.rst:621 +#: library/dis.rst:621 msgid "Creates a new frame object." msgstr "" -#: ../Doc/library/dis.rst:627 +#: library/dis.rst:627 msgid "**Miscellaneous opcodes**" msgstr "" -#: ../Doc/library/dis.rst:631 +#: library/dis.rst:631 msgid "" "Implements the expression statement for the interactive mode. TOS is " "removed from the stack and printed. In non-interactive mode, an expression " "statement is terminated with :opcode:`POP_TOP`." msgstr "" -#: ../Doc/library/dis.rst:638 +#: library/dis.rst:638 msgid "" "Calls ``set.add(TOS1[-i], TOS)``. Used to implement set comprehensions." msgstr "" -#: ../Doc/library/dis.rst:643 +#: library/dis.rst:643 msgid "" -"Calls ``list.append(TOS[-i], TOS)``. Used to implement list comprehensions." +"Calls ``list.append(TOS1[-i], TOS)``. Used to implement list comprehensions." msgstr "" -#: ../Doc/library/dis.rst:648 +#: library/dis.rst:648 msgid "" "Calls ``dict.__setitem__(TOS1[-i], TOS1, TOS)``. Used to implement dict " "comprehensions." msgstr "" -#: ../Doc/library/dis.rst:652 +#: library/dis.rst:652 msgid "Map value is TOS and map key is TOS1. Before, those were reversed." msgstr "" -#: ../Doc/library/dis.rst:655 +#: library/dis.rst:655 msgid "" "For all of the :opcode:`SET_ADD`, :opcode:`LIST_APPEND` and :opcode:" "`MAP_ADD` instructions, while the added value or key/value pair is popped " @@ -752,19 +749,19 @@ msgid "" "further iterations of the loop." msgstr "" -#: ../Doc/library/dis.rst:663 +#: library/dis.rst:663 msgid "Returns with TOS to the caller of the function." msgstr "" -#: ../Doc/library/dis.rst:668 +#: library/dis.rst:668 msgid "Pops TOS and yields it from a :term:`generator`." msgstr "" -#: ../Doc/library/dis.rst:673 +#: library/dis.rst:673 msgid "Pops TOS and delegates to it as a subiterator from a :term:`generator`." msgstr "" -#: ../Doc/library/dis.rst:680 +#: library/dis.rst:680 msgid "" "Checks whether ``__annotations__`` is defined in ``locals()``, if not it is " "set up to an empty ``dict``. This opcode is only emitted if a class or " @@ -772,20 +769,20 @@ msgid "" "statically." msgstr "" -#: ../Doc/library/dis.rst:690 +#: library/dis.rst:690 msgid "" "Loads all symbols not starting with ``'_'`` directly from the module TOS to " "the local namespace. The module is popped after loading all names. This " "opcode implements ``from module import *``." msgstr "" -#: ../Doc/library/dis.rst:697 +#: library/dis.rst:697 msgid "" "Removes one block from the block stack. Per frame, there is a stack of " "blocks, denoting :keyword:`try` statements, and such." msgstr "" -#: ../Doc/library/dis.rst:703 +#: library/dis.rst:703 msgid "" "Removes one block from the block stack. The popped block must be an " "exception handler block, as implicitly created when entering an except " @@ -793,20 +790,20 @@ msgid "" "last three popped values are used to restore the exception state." msgstr "" -#: ../Doc/library/dis.rst:711 +#: library/dis.rst:711 msgid "" "Cleans up the value stack and the block stack. If *preserve_tos* is not " "``0`` TOS first is popped from the stack and pushed on the stack after " "performing other stack operations:" msgstr "" -#: ../Doc/library/dis.rst:715 +#: library/dis.rst:715 msgid "" "If TOS is ``NULL`` or an integer (pushed by :opcode:`BEGIN_FINALLY` or :" "opcode:`CALL_FINALLY`) it is popped from the stack." msgstr "" -#: ../Doc/library/dis.rst:717 +#: library/dis.rst:717 msgid "" "If TOS is an exception type (pushed when an exception has been raised) 6 " "values are popped from the stack, the last three popped values are used to " @@ -814,40 +811,40 @@ msgid "" "block stack." msgstr "" -#: ../Doc/library/dis.rst:722 +#: library/dis.rst:722 msgid "" "It is similar to :opcode:`END_FINALLY`, but doesn't change the bytecode " "counter nor raise an exception. Used for implementing :keyword:`break`, :" "keyword:`continue` and :keyword:`return` in the :keyword:`finally` block." msgstr "" -#: ../Doc/library/dis.rst:731 +#: library/dis.rst:731 msgid "" "Pushes ``NULL`` onto the stack for using it in :opcode:`END_FINALLY`, :" "opcode:`POP_FINALLY`, :opcode:`WITH_CLEANUP_START` and :opcode:" "`WITH_CLEANUP_FINISH`. Starts the :keyword:`finally` block." msgstr "" -#: ../Doc/library/dis.rst:740 +#: library/dis.rst:740 msgid "" "Terminates a :keyword:`finally` clause. The interpreter recalls whether the " "exception has to be re-raised or execution has to be continued depending on " "the value of TOS." msgstr "" -#: ../Doc/library/dis.rst:744 +#: library/dis.rst:744 msgid "" "If TOS is ``NULL`` (pushed by :opcode:`BEGIN_FINALLY`) continue from the " "next instruction. TOS is popped." msgstr "" -#: ../Doc/library/dis.rst:746 +#: library/dis.rst:746 msgid "" "If TOS is an integer (pushed by :opcode:`CALL_FINALLY`), sets the bytecode " "counter to TOS. TOS is popped." msgstr "" -#: ../Doc/library/dis.rst:748 +#: library/dis.rst:748 msgid "" "If TOS is an exception type (pushed when an exception has been raised) 6 " "values are popped from the stack, the first three popped values are used to " @@ -856,13 +853,13 @@ msgid "" "stack." msgstr "" -#: ../Doc/library/dis.rst:757 +#: library/dis.rst:757 msgid "" "Pushes :func:`builtins.__build_class__` onto the stack. It is later called " "by :opcode:`CALL_FUNCTION` to construct a class." msgstr "" -#: ../Doc/library/dis.rst:763 +#: library/dis.rst:763 msgid "" "This opcode performs several operations before a with block starts. First, " "it loads :meth:`~object.__exit__` from the context manager and pushes it " @@ -874,12 +871,12 @@ msgid "" "or :opcode:`UNPACK_SEQUENCE`)." msgstr "" -#: ../Doc/library/dis.rst:777 +#: library/dis.rst:777 msgid "" "Starts cleaning up the stack when a :keyword:`with` statement block exits." msgstr "" -#: ../Doc/library/dis.rst:779 +#: library/dis.rst:779 msgid "" "At the top of the stack are either ``NULL`` (pushed by :opcode:" "`BEGIN_FINALLY`) or 6 values pushed if an exception has been raised in the " @@ -887,7 +884,7 @@ msgid "" "meth:`~object.__aexit__` bound method." msgstr "" -#: ../Doc/library/dis.rst:784 +#: library/dis.rst:784 msgid "" "If TOS is ``NULL``, calls ``SECOND(None, None, None)``, removes the function " "from the stack, leaving TOS, and pushes ``None`` to the stack. Otherwise " @@ -896,49 +893,49 @@ msgid "" "pushes the result of the call." msgstr "" -#: ../Doc/library/dis.rst:793 +#: library/dis.rst:793 msgid "" "Finishes cleaning up the stack when a :keyword:`with` statement block exits." msgstr "" -#: ../Doc/library/dis.rst:795 +#: library/dis.rst:795 msgid "" "TOS is result of ``__exit__()`` or ``__aexit__()`` function call pushed by :" "opcode:`WITH_CLEANUP_START`. SECOND is ``None`` or an exception type " "(pushed when an exception has been raised)." msgstr "" -#: ../Doc/library/dis.rst:799 +#: library/dis.rst:799 msgid "" "Pops two values from the stack. If SECOND is not None and TOS is true " "unwinds the EXCEPT_HANDLER block which was created when the exception was " "caught and pushes ``NULL`` to the stack." msgstr "" -#: ../Doc/library/dis.rst:804 +#: library/dis.rst:804 msgid "All of the following opcodes use their arguments." msgstr "" -#: ../Doc/library/dis.rst:808 +#: library/dis.rst:808 msgid "" "Implements ``name = TOS``. *namei* is the index of *name* in the attribute :" "attr:`co_names` of the code object. The compiler tries to use :opcode:" "`STORE_FAST` or :opcode:`STORE_GLOBAL` if possible." msgstr "" -#: ../Doc/library/dis.rst:815 +#: library/dis.rst:815 msgid "" "Implements ``del name``, where *namei* is the index into :attr:`co_names` " "attribute of the code object." msgstr "" -#: ../Doc/library/dis.rst:821 +#: library/dis.rst:821 msgid "" "Unpacks TOS into *count* individual values, which are put onto the stack " "right-to-left." msgstr "" -#: ../Doc/library/dis.rst:827 +#: library/dis.rst:827 msgid "" "Implements assignment with a starred target: Unpacks an iterable in TOS into " "individual values, where the total number of values can be smaller than the " @@ -946,136 +943,136 @@ msgid "" "leftover items." msgstr "" -#: ../Doc/library/dis.rst:832 +#: library/dis.rst:832 msgid "" "The low byte of *counts* is the number of values before the list value, the " "high byte of *counts* the number of values after it. The resulting values " "are put onto the stack right-to-left." msgstr "" -#: ../Doc/library/dis.rst:839 +#: library/dis.rst:839 msgid "" "Implements ``TOS.name = TOS1``, where *namei* is the index of name in :attr:" "`co_names`." msgstr "" -#: ../Doc/library/dis.rst:845 +#: library/dis.rst:845 msgid "" "Implements ``del TOS.name``, using *namei* as index into :attr:`co_names`." msgstr "" -#: ../Doc/library/dis.rst:850 +#: library/dis.rst:850 msgid "Works as :opcode:`STORE_NAME`, but stores the name as a global." msgstr "" -#: ../Doc/library/dis.rst:855 +#: library/dis.rst:855 msgid "Works as :opcode:`DELETE_NAME`, but deletes a global name." msgstr "" -#: ../Doc/library/dis.rst:860 +#: library/dis.rst:860 msgid "Pushes ``co_consts[consti]`` onto the stack." msgstr "" -#: ../Doc/library/dis.rst:865 +#: library/dis.rst:865 msgid "Pushes the value associated with ``co_names[namei]`` onto the stack." msgstr "" -#: ../Doc/library/dis.rst:870 +#: library/dis.rst:870 msgid "" "Creates a tuple consuming *count* items from the stack, and pushes the " "resulting tuple onto the stack." msgstr "" -#: ../Doc/library/dis.rst:876 +#: library/dis.rst:876 msgid "Works as :opcode:`BUILD_TUPLE`, but creates a list." msgstr "" -#: ../Doc/library/dis.rst:881 +#: library/dis.rst:881 msgid "Works as :opcode:`BUILD_TUPLE`, but creates a set." msgstr "" -#: ../Doc/library/dis.rst:886 +#: library/dis.rst:886 msgid "" "Pushes a new dictionary object onto the stack. Pops ``2 * count`` items so " "that the dictionary holds *count* entries: ``{..., TOS3: TOS2, TOS1: TOS}``." msgstr "" -#: ../Doc/library/dis.rst:890 +#: library/dis.rst:890 msgid "" "The dictionary is created from stack items instead of creating an empty " "dictionary pre-sized to hold *count* items." msgstr "" -#: ../Doc/library/dis.rst:897 +#: library/dis.rst:897 msgid "" -"The version of :opcode:`BUILD_MAP` specialized for constant keys. *count* " -"values are consumed from the stack. The top element on the stack contains a " -"tuple of keys." +"The version of :opcode:`BUILD_MAP` specialized for constant keys. Pops the " +"top element on the stack which contains a tuple of keys, then starting from " +"``TOS1``, pops *count* values to form values in the built dictionary." msgstr "" -#: ../Doc/library/dis.rst:906 +#: library/dis.rst:906 msgid "" "Concatenates *count* strings from the stack and pushes the resulting string " "onto the stack." msgstr "" -#: ../Doc/library/dis.rst:914 +#: library/dis.rst:914 msgid "" "Pops *count* iterables from the stack, joins them in a single tuple, and " "pushes the result. Implements iterable unpacking in tuple displays ``(*x, " "*y, *z)``." msgstr "" -#: ../Doc/library/dis.rst:923 +#: library/dis.rst:923 msgid "" "This is similar to :opcode:`BUILD_TUPLE_UNPACK`, but is used for ``f(*x, *y, " "*z)`` call syntax. The stack item at position ``count + 1`` should be the " "corresponding callable ``f``." msgstr "" -#: ../Doc/library/dis.rst:932 +#: library/dis.rst:932 msgid "" "This is similar to :opcode:`BUILD_TUPLE_UNPACK`, but pushes a list instead " "of tuple. Implements iterable unpacking in list displays ``[*x, *y, *z]``." msgstr "" -#: ../Doc/library/dis.rst:941 +#: library/dis.rst:941 msgid "" "This is similar to :opcode:`BUILD_TUPLE_UNPACK`, but pushes a set instead of " "tuple. Implements iterable unpacking in set displays ``{*x, *y, *z}``." msgstr "" -#: ../Doc/library/dis.rst:950 +#: library/dis.rst:950 msgid "" "Pops *count* mappings from the stack, merges them into a single dictionary, " "and pushes the result. Implements dictionary unpacking in dictionary " "displays ``{**x, **y, **z}``." msgstr "" -#: ../Doc/library/dis.rst:959 +#: library/dis.rst:959 msgid "" "This is similar to :opcode:`BUILD_MAP_UNPACK`, but is used for ``f(**x, **y, " "**z)`` call syntax. The stack item at position ``count + 2`` should be the " "corresponding callable ``f``." msgstr "" -#: ../Doc/library/dis.rst:964 +#: library/dis.rst:964 msgid "" "The position of the callable is determined by adding 2 to the opcode " "argument instead of encoding it in the second byte of the argument." msgstr "" -#: ../Doc/library/dis.rst:971 +#: library/dis.rst:971 msgid "Replaces TOS with ``getattr(TOS, co_names[namei])``." msgstr "" -#: ../Doc/library/dis.rst:976 +#: library/dis.rst:976 msgid "" "Performs a Boolean operation. The operation name can be found in " "``cmp_op[opname]``." msgstr "" -#: ../Doc/library/dis.rst:982 +#: library/dis.rst:982 msgid "" "Imports the module ``co_names[namei]``. TOS and TOS1 are popped and provide " "the *fromlist* and *level* arguments of :func:`__import__`. The module " @@ -1084,42 +1081,42 @@ msgid "" "modifies the namespace." msgstr "" -#: ../Doc/library/dis.rst:991 +#: library/dis.rst:991 msgid "" "Loads the attribute ``co_names[namei]`` from the module found in TOS. The " "resulting object is pushed onto the stack, to be subsequently stored by a :" "opcode:`STORE_FAST` instruction." msgstr "" -#: ../Doc/library/dis.rst:998 +#: library/dis.rst:998 msgid "Increments bytecode counter by *delta*." msgstr "" -#: ../Doc/library/dis.rst:1003 +#: library/dis.rst:1003 msgid "If TOS is true, sets the bytecode counter to *target*. TOS is popped." msgstr "" -#: ../Doc/library/dis.rst:1010 +#: library/dis.rst:1010 msgid "If TOS is false, sets the bytecode counter to *target*. TOS is popped." msgstr "" -#: ../Doc/library/dis.rst:1017 +#: library/dis.rst:1017 msgid "" "If TOS is true, sets the bytecode counter to *target* and leaves TOS on the " "stack. Otherwise (TOS is false), TOS is popped." msgstr "" -#: ../Doc/library/dis.rst:1025 +#: library/dis.rst:1025 msgid "" "If TOS is false, sets the bytecode counter to *target* and leaves TOS on the " "stack. Otherwise (TOS is true), TOS is popped." msgstr "" -#: ../Doc/library/dis.rst:1033 +#: library/dis.rst:1033 msgid "Set bytecode counter to *target*." msgstr "" -#: ../Doc/library/dis.rst:1038 +#: library/dis.rst:1038 msgid "" "TOS is an :term:`iterator`. Call its :meth:`~iterator.__next__` method. If " "this yields a new value, push it on the stack (leaving the iterator below " @@ -1127,37 +1124,37 @@ msgid "" "code counter is incremented by *delta*." msgstr "" -#: ../Doc/library/dis.rst:1046 +#: library/dis.rst:1046 msgid "Loads the global named ``co_names[namei]`` onto the stack." msgstr "" -#: ../Doc/library/dis.rst:1051 +#: library/dis.rst:1051 msgid "" "Pushes a try block from a try-finally or try-except clause onto the block " "stack. *delta* points to the finally block or the first except block." msgstr "" -#: ../Doc/library/dis.rst:1057 +#: library/dis.rst:1057 msgid "" "Pushes the address of the next instruction onto the stack and increments " "bytecode counter by *delta*. Used for calling the finally block as a " "\"subroutine\"." msgstr "" -#: ../Doc/library/dis.rst:1066 +#: library/dis.rst:1066 msgid "" "Pushes a reference to the local ``co_varnames[var_num]`` onto the stack." msgstr "" -#: ../Doc/library/dis.rst:1071 +#: library/dis.rst:1071 msgid "Stores TOS into the local ``co_varnames[var_num]``." msgstr "" -#: ../Doc/library/dis.rst:1076 +#: library/dis.rst:1076 msgid "Deletes local ``co_varnames[var_num]``." msgstr "" -#: ../Doc/library/dis.rst:1081 +#: library/dis.rst:1081 msgid "" "Pushes a reference to the cell contained in slot *i* of the cell and free " "variable storage. The name of the variable is ``co_cellvars[i]`` if *i* is " @@ -1165,52 +1162,52 @@ msgid "" "len(co_cellvars)]``." msgstr "" -#: ../Doc/library/dis.rst:1089 +#: library/dis.rst:1089 msgid "" "Loads the cell contained in slot *i* of the cell and free variable storage. " "Pushes a reference to the object the cell contains on the stack." msgstr "" -#: ../Doc/library/dis.rst:1095 +#: library/dis.rst:1095 msgid "" "Much like :opcode:`LOAD_DEREF` but first checks the locals dictionary before " "consulting the cell. This is used for loading free variables in class " "bodies." msgstr "" -#: ../Doc/library/dis.rst:1104 +#: library/dis.rst:1104 msgid "" "Stores TOS into the cell contained in slot *i* of the cell and free variable " "storage." msgstr "" -#: ../Doc/library/dis.rst:1110 +#: library/dis.rst:1110 msgid "" "Empties the cell contained in slot *i* of the cell and free variable " "storage. Used by the :keyword:`del` statement." msgstr "" -#: ../Doc/library/dis.rst:1118 +#: library/dis.rst:1118 msgid "" "Raises an exception using one of the 3 forms of the ``raise`` statement, " "depending on the value of *argc*:" msgstr "" -#: ../Doc/library/dis.rst:1121 +#: library/dis.rst:1121 msgid "0: ``raise`` (re-raise previous exception)" msgstr "" -#: ../Doc/library/dis.rst:1122 +#: library/dis.rst:1122 msgid "1: ``raise TOS`` (raise exception instance or type at ``TOS``)" msgstr "" -#: ../Doc/library/dis.rst:1123 +#: library/dis.rst:1123 msgid "" "2: ``raise TOS1 from TOS`` (raise exception instance or type at ``TOS1`` " "with ``__cause__`` set to ``TOS``)" msgstr "" -#: ../Doc/library/dis.rst:1129 +#: library/dis.rst:1129 msgid "" "Calls a callable object with positional arguments. *argc* indicates the " "number of positional arguments. The top of the stack contains positional " @@ -1220,11 +1217,11 @@ msgid "" "arguments, and pushes the return value returned by the callable object." msgstr "" -#: ../Doc/library/dis.rst:1137 +#: library/dis.rst:1137 msgid "This opcode is used only for calls with positional arguments." msgstr "" -#: ../Doc/library/dis.rst:1143 +#: library/dis.rst:1143 msgid "" "Calls a callable object with positional (if any) and keyword arguments. " "*argc* indicates the total number of positional and keyword arguments. The " @@ -1237,13 +1234,13 @@ msgid "" "object." msgstr "" -#: ../Doc/library/dis.rst:1153 +#: library/dis.rst:1153 msgid "" "Keyword arguments are packed in a tuple instead of a dictionary, *argc* " "indicates the total number of arguments." msgstr "" -#: ../Doc/library/dis.rst:1160 +#: library/dis.rst:1160 msgid "" "Calls a callable object with variable set of positional and keyword " "arguments. If the lowest bit of *flags* is set, the top of the stack " @@ -1259,64 +1256,66 @@ msgid "" "value returned by the callable object." msgstr "" -#: ../Doc/library/dis.rst:1179 +#: library/dis.rst:1179 msgid "" -"Loads a method named ``co_names[namei]`` from TOS object. TOS is popped and " -"method and TOS are pushed when interpreter can call unbound method directly. " -"TOS will be used as the first argument (``self``) by :opcode:`CALL_METHOD`. " -"Otherwise, ``NULL`` and method is pushed (method is bound method or " -"something else)." +"Loads a method named ``co_names[namei]`` from the TOS object. TOS is popped. " +"This bytecode distinguishes two cases: if TOS has a method with the correct " +"name, the bytecode pushes the unbound method and TOS. TOS will be used as " +"the first argument (``self``) by :opcode:`CALL_METHOD` when calling the " +"unbound method. Otherwise, ``NULL`` and the object return by the attribute " +"lookup are pushed." msgstr "" -#: ../Doc/library/dis.rst:1190 +#: library/dis.rst:1191 msgid "" -"Calls a method. *argc* is number of positional arguments. Keyword arguments " -"are not supported. This opcode is designed to be used with :opcode:" -"`LOAD_METHOD`. Positional arguments are on top of the stack. Below them, " -"two items described in :opcode:`LOAD_METHOD` on the stack. All of them are " -"popped and return value is pushed." +"Calls a method. *argc* is the number of positional arguments. Keyword " +"arguments are not supported. This opcode is designed to be used with :" +"opcode:`LOAD_METHOD`. Positional arguments are on top of the stack. Below " +"them, the two items described in :opcode:`LOAD_METHOD` are on the stack " +"(either ``self`` and an unbound method object or ``NULL`` and an arbitrary " +"callable). All of them are popped and the return value is pushed." msgstr "" -#: ../Doc/library/dis.rst:1201 +#: library/dis.rst:1203 msgid "" "Pushes a new function object on the stack. From bottom to top, the consumed " "stack must consist of values if the argument carries a specified flag value" msgstr "" -#: ../Doc/library/dis.rst:1204 +#: library/dis.rst:1206 msgid "" "``0x01`` a tuple of default values for positional-only and positional-or-" "keyword parameters in positional order" msgstr "" -#: ../Doc/library/dis.rst:1206 +#: library/dis.rst:1208 msgid "``0x02`` a dictionary of keyword-only parameters' default values" msgstr "" -#: ../Doc/library/dis.rst:1207 +#: library/dis.rst:1209 msgid "``0x04`` an annotation dictionary" msgstr "" -#: ../Doc/library/dis.rst:1208 +#: library/dis.rst:1210 msgid "``0x08`` a tuple containing cells for free variables, making a closure" msgstr "" -#: ../Doc/library/dis.rst:1209 +#: library/dis.rst:1211 msgid "the code associated with the function (at TOS1)" msgstr "" -#: ../Doc/library/dis.rst:1210 +#: library/dis.rst:1212 msgid "the :term:`qualified name` of the function (at TOS)" msgstr "" -#: ../Doc/library/dis.rst:1217 +#: library/dis.rst:1219 msgid "" "Pushes a slice object on the stack. *argc* must be 2 or 3. If it is 2, " "``slice(TOS1, TOS)`` is pushed; if it is 3, ``slice(TOS2, TOS1, TOS)`` is " "pushed. See the :func:`slice` built-in function for more information." msgstr "" -#: ../Doc/library/dis.rst:1224 +#: library/dis.rst:1226 msgid "" "Prefixes any opcode which has an argument too big to fit into the default " "one byte. *ext* holds an additional byte which act as higher bits in the " @@ -1324,86 +1323,86 @@ msgid "" "allowed, forming an argument from two-byte to four-byte." msgstr "" -#: ../Doc/library/dis.rst:1232 +#: library/dis.rst:1234 msgid "" "Used for implementing formatted literal strings (f-strings). Pops an " "optional *fmt_spec* from the stack, then a required *value*. *flags* is " "interpreted as follows:" msgstr "" -#: ../Doc/library/dis.rst:1236 +#: library/dis.rst:1238 msgid "``(flags & 0x03) == 0x00``: *value* is formatted as-is." msgstr "" -#: ../Doc/library/dis.rst:1237 +#: library/dis.rst:1239 msgid "" "``(flags & 0x03) == 0x01``: call :func:`str` on *value* before formatting it." msgstr "" -#: ../Doc/library/dis.rst:1239 +#: library/dis.rst:1241 msgid "" "``(flags & 0x03) == 0x02``: call :func:`repr` on *value* before formatting " "it." msgstr "" -#: ../Doc/library/dis.rst:1241 +#: library/dis.rst:1243 msgid "" "``(flags & 0x03) == 0x03``: call :func:`ascii` on *value* before formatting " "it." msgstr "" -#: ../Doc/library/dis.rst:1243 +#: library/dis.rst:1245 msgid "" "``(flags & 0x04) == 0x04``: pop *fmt_spec* from the stack and use it, else " "use an empty *fmt_spec*." msgstr "" -#: ../Doc/library/dis.rst:1246 +#: library/dis.rst:1248 msgid "" "Formatting is performed using :c:func:`PyObject_Format`. The result is " "pushed on the stack." msgstr "" -#: ../Doc/library/dis.rst:1254 +#: library/dis.rst:1256 msgid "" "This is not really an opcode. It identifies the dividing line between " "opcodes which don't use their argument and those that do (``< " "HAVE_ARGUMENT`` and ``>= HAVE_ARGUMENT``, respectively)." msgstr "" -#: ../Doc/library/dis.rst:1258 +#: library/dis.rst:1260 msgid "" "Now every instruction has an argument, but opcodes ``< HAVE_ARGUMENT`` " "ignore it. Before, only opcodes ``>= HAVE_ARGUMENT`` had an argument." msgstr "" -#: ../Doc/library/dis.rst:1266 +#: library/dis.rst:1268 msgid "Opcode collections" msgstr "" -#: ../Doc/library/dis.rst:1268 +#: library/dis.rst:1270 msgid "" "These collections are provided for automatic introspection of bytecode " "instructions:" msgstr "" -#: ../Doc/library/dis.rst:1273 +#: library/dis.rst:1275 msgid "Sequence of operation names, indexable using the bytecode." msgstr "" -#: ../Doc/library/dis.rst:1278 +#: library/dis.rst:1280 msgid "Dictionary mapping operation names to bytecodes." msgstr "" -#: ../Doc/library/dis.rst:1283 +#: library/dis.rst:1285 msgid "Sequence of all compare operation names." msgstr "" -#: ../Doc/library/dis.rst:1288 +#: library/dis.rst:1290 msgid "Sequence of bytecodes that access a constant." msgstr "" -#: ../Doc/library/dis.rst:1293 +#: library/dis.rst:1295 msgid "" "Sequence of bytecodes that access a free variable (note that 'free' in this " "context refers to names in the current scope that are referenced by inner " @@ -1411,22 +1410,22 @@ msgid "" "does *not* include references to global or builtin scopes)." msgstr "" -#: ../Doc/library/dis.rst:1301 +#: library/dis.rst:1303 msgid "Sequence of bytecodes that access an attribute by name." msgstr "" -#: ../Doc/library/dis.rst:1306 +#: library/dis.rst:1308 msgid "Sequence of bytecodes that have a relative jump target." msgstr "" -#: ../Doc/library/dis.rst:1311 +#: library/dis.rst:1313 msgid "Sequence of bytecodes that have an absolute jump target." msgstr "" -#: ../Doc/library/dis.rst:1316 +#: library/dis.rst:1318 msgid "Sequence of bytecodes that access a local variable." msgstr "" -#: ../Doc/library/dis.rst:1321 +#: library/dis.rst:1323 msgid "Sequence of bytecodes of Boolean operations." msgstr "" diff --git a/library/doctest.po b/library/doctest.po index 326f2eb4b9..cdda6fa46c 100644 --- a/library/doctest.po +++ b/library/doctest.po @@ -14,63 +14,82 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/library/doctest.rst:2 +#: library/doctest.rst:2 msgid ":mod:`doctest` --- Test interactive Python examples" -msgstr "" +msgstr ":mod:`doctest` — Exemples de tests interactifs en Python" -#: ../Doc/library/doctest.rst:12 +#: library/doctest.rst:12 msgid "**Source code:** :source:`Lib/doctest.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/doctest.py`" -#: ../Doc/library/doctest.rst:16 +#: library/doctest.rst:16 msgid "" "The :mod:`doctest` module searches for pieces of text that look like " "interactive Python sessions, and then executes those sessions to verify that " "they work exactly as shown. There are several common ways to use doctest:" msgstr "" +"Le module :mod:`doctest` cherche des extraits de texte ressemblant à des " +"sessions Python interactives avant de les exécuter, de façon à vérifier que " +"le fonctionnement correspond exactement à la description. Voici quelques cas " +"d'utilisation de *doctest* :" -#: ../Doc/library/doctest.rst:20 +#: library/doctest.rst:20 msgid "" "To check that a module's docstrings are up-to-date by verifying that all " "interactive examples still work as documented." msgstr "" +"Vérifier que les *docstrings* d'un module sont à jour en vérifiant que tous " +"les exemples interactifs fonctionnent toujours tels que décrits." -#: ../Doc/library/doctest.rst:23 +#: library/doctest.rst:23 msgid "" "To perform regression testing by verifying that interactive examples from a " "test file or a test object work as expected." msgstr "" +"Réaliser un test de régression en vérifiant que les exemples interactifs " +"provenant d'un fichier de test ou d'un objet de test fonctionnent comme " +"prévu." -#: ../Doc/library/doctest.rst:26 +#: library/doctest.rst:26 msgid "" "To write tutorial documentation for a package, liberally illustrated with " "input-output examples. Depending on whether the examples or the expository " "text are emphasized, this has the flavor of \"literate testing\" or " "\"executable documentation\"." msgstr "" +"Rédiger de la documentation sous forme de tutoriel pour un paquet, avec une " +"abondance d'exemples ayant des entrées et des sorties. On pourrait voir ça " +"comme des tests « dans le texte » ou de la « documentation exécutable », " +"selon le point de vue." -#: ../Doc/library/doctest.rst:31 +#: library/doctest.rst:31 msgid "Here's a complete but small example module::" -msgstr "" +msgstr "Voici un petit exemple d'un module qui soit tout de même complet ::" -#: ../Doc/library/doctest.rst:88 +#: library/doctest.rst:88 msgid "" "If you run :file:`example.py` directly from the command line, :mod:`doctest` " "works its magic:" msgstr "" +"L'exécution du fichier :file:`example.py` directement à partir de la ligne " +"de commande démontre la magie de :mod:`doctest` :" -#: ../Doc/library/doctest.rst:96 +#: library/doctest.rst:96 msgid "" "There's no output! That's normal, and it means all the examples worked. " "Pass ``-v`` to the script, and :mod:`doctest` prints a detailed log of what " "it's trying, and prints a summary at the end:" msgstr "" +"Il n'y a pas de sortie ! C'est normal, cela signifie que tous les exemples " +"fonctionnent. Passez ``-v`` au script pour que :mod:`doctest` affiche un " +"journal détaillé de ce qui a été essayé, avant d'afficher un résumé à la " +"fin :" -#: ../Doc/library/doctest.rst:114 +#: library/doctest.rst:114 msgid "And so on, eventually ending with:" -msgstr "" +msgstr "Et ainsi de suite, jusqu'à ce qu'on atteigne :" -#: ../Doc/library/doctest.rst:133 +#: library/doctest.rst:133 msgid "" "That's all you need to know to start making productive use of :mod:" "`doctest`! Jump in. The following sections provide full details. Note that " @@ -78,143 +97,204 @@ msgid "" "libraries. Especially useful examples can be found in the standard test " "file :file:`Lib/test/test_doctest.py`." msgstr "" +"C'est tout ce dont vous avez besoin pour pouvoir commencer une utilisation " +"productive de :mod:`doctest` ! Allez-y. Les sections suivantes donnent tous " +"les détails. Notez qu'il y a plusieurs exemples de *doctests* dans la suite " +"de tests de la bibliothèque standard de Python et dans les autres " +"bibliothèques. Des exemples particulièrement utiles se situent dans le " +"fichier de test standard :file:`Lib/test/test_doctest.py`." -#: ../Doc/library/doctest.rst:143 +#: library/doctest.rst:143 msgid "Simple Usage: Checking Examples in Docstrings" -msgstr "" +msgstr "Utilisation simple : vérifier des exemples dans des *docstrings*" -#: ../Doc/library/doctest.rst:145 +#: library/doctest.rst:145 msgid "" "The simplest way to start using doctest (but not necessarily the way you'll " "continue to do it) is to end each module :mod:`M` with::" msgstr "" +"Le plus simple pour commencer à utiliser *doctest* (mais pas nécessairement " +"la façon avec laquelle vous continuerez) est de terminer chaque module :mod:" +"`M` avec ::" -#: ../Doc/library/doctest.rst:152 +#: library/doctest.rst:152 msgid ":mod:`doctest` then examines docstrings in module :mod:`M`." -msgstr "" +msgstr ":mod:`doctest` examine alors les *docstrings* dans le module :mod:`M`." -#: ../Doc/library/doctest.rst:154 +#: library/doctest.rst:154 msgid "" "Running the module as a script causes the examples in the docstrings to get " "executed and verified::" msgstr "" +"Exécuter le module comme un script a comme conséquence d'exécuter et de " +"vérifier les exemples dans les *docstrings* ::" -#: ../Doc/library/doctest.rst:159 +#: library/doctest.rst:159 msgid "" "This won't display anything unless an example fails, in which case the " "failing example(s) and the cause(s) of the failure(s) are printed to stdout, " "and the final line of output is ``***Test Failed*** N failures.``, where *N* " "is the number of examples that failed." msgstr "" +"Ceci n'affiche rien à moins qu'un exemple échoue ; le cas échéant, les " +"exemples défaillants et les causes du ou des échecs sont affichés sur " +"*stdout*, et la ligne finale de la sortie est ``***Test Failed*** *N " +"failures*.``, où *N* est le nombre d'exemples défaillants." -#: ../Doc/library/doctest.rst:164 +#: library/doctest.rst:164 msgid "Run it with the ``-v`` switch instead::" -msgstr "" +msgstr "À la place, exécutez-la avec l'option de ligne de commande ``-v`` ::" -#: ../Doc/library/doctest.rst:168 +#: library/doctest.rst:168 msgid "" "and a detailed report of all examples tried is printed to standard output, " "along with assorted summaries at the end." msgstr "" +"alors, un rapport détaillé de tous les exemples faisant partie de l'essai " +"est affiché sur la sortie standard, accompagné à la fin de leurs résumés." -#: ../Doc/library/doctest.rst:171 +#: library/doctest.rst:171 msgid "" "You can force verbose mode by passing ``verbose=True`` to :func:`testmod`, " "or prohibit it by passing ``verbose=False``. In either of those cases, " "``sys.argv`` is not examined by :func:`testmod` (so passing ``-v`` or not " "has no effect)." msgstr "" +"Vous pouvez activer le mode verbeux en passant ``verbose=True`` à :func:" +"`testmod`, ou vous le désactiver en lui passant ``verbose=False``. Dans ces " +"deux cas, ``sys.argv`` n'est pas inspecté par :func:`testmod` (ainsi, lui " +"passer ``-v`` ou pas n'a aucun effet)." -#: ../Doc/library/doctest.rst:176 +#: library/doctest.rst:176 msgid "" "There is also a command line shortcut for running :func:`testmod`. You can " "instruct the Python interpreter to run the doctest module directly from the " "standard library and pass the module name(s) on the command line::" msgstr "" +"Il y a un raccourci pour exécuter :func:`testmod` à partir de la ligne de " +"commande. Vous demandez à l'interpréteur Python d'exécuter le module " +"*doctest* directement à partir de la bibliothèque standard afin de passer le " +"ou les noms des modules à partir de la ligne de commande ainsi ::" -#: ../Doc/library/doctest.rst:182 +#: library/doctest.rst:182 msgid "" "This will import :file:`example.py` as a standalone module and run :func:" "`testmod` on it. Note that this may not work correctly if the file is part " "of a package and imports other submodules from that package." msgstr "" +"Ceci importera :file:`example.py` comme un module autonome et exécutera :" +"func:`testmod` sur celui-ci. Notez que ceci peut ne pas fonctionner si le " +"fichier fait partie d'un paquet et importe d'autres sous-modules de ce " +"paquet." -#: ../Doc/library/doctest.rst:186 +#: library/doctest.rst:186 msgid "" "For more information on :func:`testmod`, see section :ref:`doctest-basic-" "api`." msgstr "" +"Pour plus d'informations sur :func:`testmod`, consultez la section :ref:" +"`doctest-basic-api`." -#: ../Doc/library/doctest.rst:192 +#: library/doctest.rst:192 msgid "Simple Usage: Checking Examples in a Text File" -msgstr "" +msgstr "Utilisation simple : vérifier des exemples dans un fichier texte" -#: ../Doc/library/doctest.rst:194 +#: library/doctest.rst:194 msgid "" "Another simple application of doctest is testing interactive examples in a " "text file. This can be done with the :func:`testfile` function::" msgstr "" +"Une autre application simple de *doctest* est de tester des exemples " +"interactifs dans un fichier texte. Ceci est fait avec la fonction :func:" +"`testfile` ::" -#: ../Doc/library/doctest.rst:200 +#: library/doctest.rst:200 msgid "" "That short script executes and verifies any interactive Python examples " "contained in the file :file:`example.txt`. The file content is treated as " "if it were a single giant docstring; the file doesn't need to contain a " "Python program! For example, perhaps :file:`example.txt` contains this:" msgstr "" +"Ce court script exécute et vérifie chacun des exemples Python interactifs " +"contenus dans le fichier :file:`example.txt`. Le contenu du fichier est " +"traité comme une seule *docstring* géante ; le fichier n'a pas besoin de " +"contenir un programme Python ! Par exemple, prenons un fichier :file:" +"`example.txt` contenant :" -#: ../Doc/library/doctest.rst:223 +#: library/doctest.rst:223 msgid "" "Running ``doctest.testfile(\"example.txt\")`` then finds the error in this " "documentation::" msgstr "" +"Exécuter ``doctest.testfile(\"example.txt\")`` recherche les erreurs dans " +"cette documentation ::" -#: ../Doc/library/doctest.rst:234 +#: library/doctest.rst:234 msgid "" "As with :func:`testmod`, :func:`testfile` won't display anything unless an " "example fails. If an example does fail, then the failing example(s) and the " "cause(s) of the failure(s) are printed to stdout, using the same format as :" "func:`testmod`." msgstr "" +"Comme pour :func:`testmod`, :func:`testfile` n'affichera rien sauf si un " +"exemple échoue. Si un exemple échoue, alors le ou les exemples défaillants " +"et leurs causes sont affichés sur *stdout*, dans le même format que :func:" +"`testmod`." -#: ../Doc/library/doctest.rst:239 +#: library/doctest.rst:239 msgid "" "By default, :func:`testfile` looks for files in the calling module's " "directory. See section :ref:`doctest-basic-api` for a description of the " "optional arguments that can be used to tell it to look for files in other " "locations." msgstr "" +"Par défaut, :func:`testfile` cherche les fichiers dans le répertoire où se " +"situe le module qui l'appelle. Consultez la section :ref:`doctest-basic-api` " +"pour une description des options de ligne de commande à utiliser afin de " +"chercher dans d'autres répertoires." -#: ../Doc/library/doctest.rst:243 +#: library/doctest.rst:243 msgid "" "Like :func:`testmod`, :func:`testfile`'s verbosity can be set with the ``-" "v`` command-line switch or with the optional keyword argument *verbose*." msgstr "" +"Comme pour :func:`testmod`, la verbosité de :func:`testfile` peut être " +"ajustée avec l'option de ligne de commande ``-v`` ou avec le mot clé " +"*verbose*." -#: ../Doc/library/doctest.rst:247 +#: library/doctest.rst:247 msgid "" "There is also a command line shortcut for running :func:`testfile`. You can " "instruct the Python interpreter to run the doctest module directly from the " "standard library and pass the file name(s) on the command line::" msgstr "" +"Il y a un raccourci pour exécuter :func:`testfile` à partir de la ligne de " +"commande. Demandez à l'interpréteur Python d'exécuter le module *doctest* " +"directement à partir de la bibliothèque standard et de passer le ou les noms " +"des modules à partir de la ligne de commande ainsi ::" -#: ../Doc/library/doctest.rst:253 +#: library/doctest.rst:253 msgid "" "Because the file name does not end with :file:`.py`, :mod:`doctest` infers " "that it must be run with :func:`testfile`, not :func:`testmod`." msgstr "" +"Puisque le nom du fichier ne se termine pas par :file:`.py`, :mod:`doctest` " +"en déduit qu'il s'exécute à l'aide de :func:`testfile`, et non pas :func:" +"`testmod`." -#: ../Doc/library/doctest.rst:256 +#: library/doctest.rst:256 msgid "" "For more information on :func:`testfile`, see section :ref:`doctest-basic-" "api`." msgstr "" +"Pour plus d'information sur :func:`testfile`, consultez la section :ref:" +"`doctest-basic-api`." -#: ../Doc/library/doctest.rst:262 +#: library/doctest.rst:262 msgid "How It Works" -msgstr "" +msgstr "Comment ça marche" -#: ../Doc/library/doctest.rst:264 +#: library/doctest.rst:264 msgid "" "This section examines in detail how doctest works: which docstrings it looks " "at, how it finds interactive examples, what execution context it uses, how " @@ -223,18 +303,29 @@ msgid "" "examples; for information about actually running doctest on these examples, " "see the following sections." msgstr "" +"Cette section examine en détail le fonctionnement de *doctest* : quelles " +"*docstrings* sont considérées, comment sont trouvés les exemples " +"interactifs, quel est le contexte d'exécution sélectionné, comment les " +"exceptions sont gérées, et de quelles façons les options de ligne de " +"commande peuvent être utilisées pour définir le comportement. Ceci est " +"l'information dont vous avez besoin pour écrire des exemples *doctest* ; " +"pour de l'information sur l'exécution de *doctest* sur ces exemples, " +"consultez les sections suivantes." -#: ../Doc/library/doctest.rst:275 +#: library/doctest.rst:275 msgid "Which Docstrings Are Examined?" -msgstr "" +msgstr "Quelles *docstrings* sont considérées ?" -#: ../Doc/library/doctest.rst:277 +#: library/doctest.rst:277 msgid "" "The module docstring, and all function, class and method docstrings are " "searched. Objects imported into the module are not searched." msgstr "" +"Les *docstrings* du module, de toutes les fonctions, classes, et méthodes " +"sont cherchées. Les objets qui sont importés dans le module ne sont pas " +"cherchés." -#: ../Doc/library/doctest.rst:280 +#: library/doctest.rst:280 msgid "" "In addition, if ``M.__test__`` exists and \"is true\", it must be a dict, " "and each entry maps a (string) name to a function object, class object, or " @@ -242,44 +333,62 @@ msgid "" "searched, and strings are treated as if they were docstrings. In output, a " "key ``K`` in ``M.__test__`` appears with name ::" msgstr "" +"De plus, si ``M.__test__`` existe et qu'il est vrai, il doit être un *dict* " +"dont chaque élément lie un nom (chaîne de caractère) à un objet (fonction, " +"classe, chaîne de caractère). Les *docstrings* d'objets fonctions et classes " +"trouvées dans ``M.__test__`` sont cherchés, et les chaînes de caractères " +"sont traitées comme si elles étaient des *docstrings*. En sortie, une clé " +"``K`` dans ``M.__test__`` apparaît avec le nom ::" -#: ../Doc/library/doctest.rst:288 +#: library/doctest.rst:288 msgid "" "Any classes found are recursively searched similarly, to test docstrings in " "their contained methods and nested classes." msgstr "" +"Toute classe trouvée est ainsi cherchée récursivement, afin de tester les " +"*docstrings* contenues dans leurs méthodes et leurs classes imbriquées." -#: ../Doc/library/doctest.rst:299 +#: library/doctest.rst:299 msgid "How are Docstring Examples Recognized?" -msgstr "" +msgstr "Comment les exemples *docstring* sont-ils identifiés ?" -#: ../Doc/library/doctest.rst:301 +#: library/doctest.rst:301 msgid "" "In most cases a copy-and-paste of an interactive console session works fine, " "but doctest isn't trying to do an exact emulation of any specific Python " "shell." msgstr "" +"Dans la plupart des cas, un copier-coller d'une séance interactive de " +"console fonctionne bien, mais *doctest* n'essaye pas de faire une simulation " +"exacte d'un *shell* Python spécifique." -#: ../Doc/library/doctest.rst:326 +#: library/doctest.rst:326 msgid "" "Any expected output must immediately follow the final ``'>>> '`` or ``'... " "'`` line containing the code, and the expected output (if any) extends to " "the next ``'>>> '`` or all-whitespace line." msgstr "" +"Toute sortie souhaitée doit immédiatement suivre le dernier ``'>>> '`` ou le " +"dernier ``'... '`` contenant le code, et la sortie souhaitée, s'il y en a " +"une, s'étend jusqu'au prochain ``'>>> '`` ou à la prochaine ligne vide." -#: ../Doc/library/doctest.rst:330 +#: library/doctest.rst:330 msgid "The fine print:" -msgstr "" +msgstr "En détail :" -#: ../Doc/library/doctest.rst:332 +#: library/doctest.rst:332 msgid "" "Expected output cannot contain an all-whitespace line, since such a line is " "taken to signal the end of expected output. If expected output does contain " "a blank line, put ```` in your doctest example each place a blank " "line is expected." msgstr "" +"La sortie souhaitée ne peut pas contenir une ligne vide, puisque contenir " +"une telle ligne signale la fin de la sortie souhaitée. Si la sortie " +"souhaitée doit contenir une ligne vide, ajoutez ```` dans votre " +"exemple *doctest* à chaque endroit où une ligne vide est souhaitée." -#: ../Doc/library/doctest.rst:337 +#: library/doctest.rst:337 msgid "" "All hard tab characters are expanded to spaces, using 8-column tab stops. " "Tabs in output generated by the tested code are not modified. Because any " @@ -293,43 +402,71 @@ msgid "" "different algorithm for handling tabs by writing a custom :class:" "`DocTestParser` class." msgstr "" - -#: ../Doc/library/doctest.rst:349 +"Tous les caractères de tabulation insécables (*hard tab characters*) sont " +"convertis en espaces, en utilisant des taquets de tabulation de 8 espaces. " +"Les tabulations se trouvant dans la sortie générée par le code test ne sont " +"pas modifiées. Comme tout caractère de tabulation insécable *est* converti, " +"ceci veut dire que si le code de sortie inclut des caractères de tabulation " +"insécables, alors la seule façon que le *doctest* peut réussir est si " +"l'option :const:`NORMALIZE_WHITESPACE` ou si :ref:`directive ` a cours. De façon alternative, le test peut être ré-écrit afin " +"de capturer la sortie et de la comparer à un ensemble de valeurs attendues, " +"et ce, en tant qu'étape du test. Cette gestion des tabulations à la source a " +"été obtenue suite à un processus d'essais et d'erreurs ; il a été démontré " +"que c'était là la façon de les gérer qui soit la moins susceptible de " +"générer des erreurs. Il est possible d'utiliser un algorithme différent pour " +"la gestion des tabulations en rédigeant une classe sur mesure :class:" +"`DocTestParser`." + +#: library/doctest.rst:349 msgid "" "Output to stdout is captured, but not output to stderr (exception tracebacks " "are captured via a different means)." msgstr "" +"La sortie vers *stdout* est capturée, mais pas la sortie vers *stderr* (les " +"traces d'appel sont capturées par d'autres moyens)." -#: ../Doc/library/doctest.rst:352 +#: library/doctest.rst:352 msgid "" "If you continue a line via backslashing in an interactive session, or for " "any other reason use a backslash, you should use a raw docstring, which will " "preserve your backslashes exactly as you type them::" msgstr "" +"Si vous souhaitez conserver les barres obliques inversées telles quelles " +"lorsque vous terminez une ligne avec une barre oblique inversée dans une " +"séance interactive, ou quand vous utilisez une telle barre pour toute autre " +"raison, vous devez utiliser une *docstring* brute ::" -#: ../Doc/library/doctest.rst:361 +#: library/doctest.rst:361 msgid "" "Otherwise, the backslash will be interpreted as part of the string. For " "example, the ``\\n`` above would be interpreted as a newline character. " "Alternatively, you can double each backslash in the doctest version (and not " "use a raw string)::" msgstr "" +"Sinon, la barre oblique inversée est interprétée comme faisant partie de la " +"chaîne de caractères. Par exemple, le ``\\n`` ci-dessus est interprété comme " +"un caractère de saut de ligne. De façon alternative, vous pouvez doubler " +"chaque barre oblique inversée dans la version *doctest* (et n'utilisez pas " +"dans ce cas de *docstring* brute) ::" -#: ../Doc/library/doctest.rst:370 +#: library/doctest.rst:370 msgid "The starting column doesn't matter::" -msgstr "" +msgstr "La colonne de départ n'a pas d'importance ::" -#: ../Doc/library/doctest.rst:377 +#: library/doctest.rst:377 msgid "" "and as many leading whitespace characters are stripped from the expected " "output as appeared in the initial ``'>>> '`` line that started the example." msgstr "" +"et autant d'espaces sont retirés de la sortie attendue qu'il y avait " +"d'espaces avant la ligne commençant par ``'>>> '``." -#: ../Doc/library/doctest.rst:384 +#: library/doctest.rst:384 msgid "What's the Execution Context?" -msgstr "" +msgstr "Quel est le contexte d'exécution ?" -#: ../Doc/library/doctest.rst:386 +#: library/doctest.rst:386 msgid "" "By default, each time :mod:`doctest` finds a docstring to test, it uses a " "*shallow copy* of :mod:`M`'s globals, so that running tests doesn't change " @@ -339,18 +476,30 @@ msgid "" "names defined earlier in the docstring being run. Examples cannot see names " "defined in other docstrings." msgstr "" +"Par défaut, chaque fois que :mod:`doctest` trouve une *docstring* à tester, " +"il utilise une *copie superficielle* des variables globales de :mod:`M`, de " +"telle façon que l'exécution de tests ne change pas les variables globales " +"réelles du module et que l'exécution d'un unique test dans :mod:`M` ne " +"puisse laisser traîner des miettes pouvant accidentellement causer la " +"réussite d'un autre test. Ceci signifie que les exemples peuvent utiliser " +"librement n'importe quel nom défini au niveau supérieur dans :mod:`M` ainsi " +"que les noms définis précédemment dans la *docstring* en cours d'exécution. " +"Les exemples ne peuvent voir les noms définis dans d'autres *docstrings*." -#: ../Doc/library/doctest.rst:394 +#: library/doctest.rst:394 msgid "" "You can force use of your own dict as the execution context by passing " "``globs=your_dict`` to :func:`testmod` or :func:`testfile` instead." msgstr "" +"Vous pouvez forcer l'utilisation de votre propre *dict* comme contexte " +"d'exécution en passant ``globs=your_dict`` à :func:`testmod` ou encore, à :" +"func:`testfile`." -#: ../Doc/library/doctest.rst:401 +#: library/doctest.rst:401 msgid "What About Exceptions?" -msgstr "" +msgstr "Qu'en est-il des exceptions ?" -#: ../Doc/library/doctest.rst:403 +#: library/doctest.rst:403 msgid "" "No problem, provided that the traceback is the only output produced by the " "example: just paste in the traceback. [#]_ Since tracebacks contain details " @@ -358,53 +507,78 @@ msgid "" "numbers), this is one case where doctest works hard to be flexible in what " "it accepts." msgstr "" +"Pas de problèmes, tant que la trace d'appels est la seule sortie produite " +"par l'exemple : il suffit d'ajouter la trace. [#]_ Comme les traces d'appels " +"contiennent des détails qui sont sujets à changement rapide (par exemple, le " +"chemin exact vers un fichier et les numéros de ligne), ceci est un cas où " +"*doctest* fait un effort pour être flexible dans ce qu'il accepte." -#: ../Doc/library/doctest.rst:409 +#: library/doctest.rst:409 msgid "Simple example::" -msgstr "" +msgstr "Exemple simple ::" -#: ../Doc/library/doctest.rst:416 +#: library/doctest.rst:416 msgid "" "That doctest succeeds if :exc:`ValueError` is raised, with the ``list." "remove(x): x not in list`` detail as shown." msgstr "" +"Ce *doctest* réussit si :exc:`ValueError` est levée, avec le détail ``list." +"remote(x): x not in list`` tel que montré." -#: ../Doc/library/doctest.rst:419 +#: library/doctest.rst:419 msgid "" "The expected output for an exception must start with a traceback header, " "which may be either of the following two lines, indented the same as the " "first line of the example::" msgstr "" +"La sortie attendue pour une exception doit commencer par un en-tête de trace " +"d'appels, qui peut être l'une des deux lignes suivantes, avec la même " +"indentation que la première ligne de l'exemple ::" -#: ../Doc/library/doctest.rst:426 +#: library/doctest.rst:426 msgid "" "The traceback header is followed by an optional traceback stack, whose " "contents are ignored by doctest. The traceback stack is typically omitted, " "or copied verbatim from an interactive session." msgstr "" +"L'en-tête de la trace d'appels est suivi par une pile optionnelle de trace " +"d'appels, dont le contenu est ignoré par *doctest*. La trace d'appels est " +"habituellement omise, ou est copiée verbatim à partir d'une séance " +"interactive." -#: ../Doc/library/doctest.rst:430 +#: library/doctest.rst:430 msgid "" "The traceback stack is followed by the most interesting part: the line(s) " "containing the exception type and detail. This is usually the last line of " "a traceback, but can extend across multiple lines if the exception has a " "multi-line detail::" msgstr "" +"La pile de trace d'appels est suivie par la partie la plus intéressante : la " +"ou les lignes contenant le type et le détail de l'exception. Ceci est " +"habituellement la dernière ligne de la trace d'appels ; dans le cas où " +"l'exception a un détail sur plusieurs lignes, il est possible de prolonger " +"sur plusieurs lignes ::" -#: ../Doc/library/doctest.rst:442 +#: library/doctest.rst:442 msgid "" "The last three lines (starting with :exc:`ValueError`) are compared against " "the exception's type and detail, and the rest are ignored." msgstr "" +"Les trois dernières lignes (en commençant par :exc:`ValueError`) sont " +"comparées avec le type et le détail de l'exception ; tout le reste est " +"ignoré." -#: ../Doc/library/doctest.rst:445 +#: library/doctest.rst:445 msgid "" "Best practice is to omit the traceback stack, unless it adds significant " "documentation value to the example. So the last example is probably better " "as::" msgstr "" +"La pratique optimale est d'omettre la pile de trace d'appels, à moins que " +"celle-ci ait une valeur significative de documentation de l'exemple. Ainsi, " +"le dernier exemple est probablement meilleur tel qui suit ::" -#: ../Doc/library/doctest.rst:455 +#: library/doctest.rst:455 msgid "" "Note that tracebacks are treated very specially. In particular, in the " "rewritten example, the use of ``...`` is independent of doctest's :const:" @@ -412,12 +586,20 @@ msgid "" "just as well be three (or three hundred) commas or digits, or an indented " "transcript of a Monty Python skit." msgstr "" +"Prenez note que les traces d'appels sont traitées de façon vraiment " +"particulière. Précisément, dans l'exemple ré-écrit, l'utilisation de ``...`` " +"est indépendante de l'option *doctest* :const:`ELLIPSIS`. Les points de " +"suspension dans cet exemple peuvent être omis, ou peuvent aussi être trois " +"(ou trois cents) virgules ou chiffres, ou une retranscription indentée d'une " +"parodie de Monty Python." -#: ../Doc/library/doctest.rst:461 +#: library/doctest.rst:461 msgid "Some details you should read once, but won't need to remember:" msgstr "" +"Quelques détails que vous devriez lire une fois, mais que vous pouvez " +"oublier :" -#: ../Doc/library/doctest.rst:463 +#: library/doctest.rst:463 msgid "" "Doctest can't guess whether your expected output came from an exception " "traceback or from ordinary printing. So, e.g., an example that expects " @@ -426,8 +608,15 @@ msgid "" "ordinary output rarely begins with a traceback header line, so this doesn't " "create real problems." msgstr "" +"*Doctest* ne peut pas deviner si votre sortie attendue provient d'une trace " +"d'appels issue d'une exception ou d'un affichage ordinaire. Ainsi, si nous " +"avons un exemple s'attendant à obtenir ``ValueError: 42 is prime``, celui-ci " +"réussira peu importe si :exc:`ValueError` est réellement levée ou si " +"l'exemple affiche simplement ce texte de trace d'appels. Dans la pratique, " +"une sortie ordinaire commence rarement par une ligne d'en-tête de trace " +"d'appels ; ainsi, ceci ne pose pas de vrai problème." -#: ../Doc/library/doctest.rst:470 +#: library/doctest.rst:470 msgid "" "Each line of the traceback stack (if present) must be indented further than " "the first line of the example, *or* start with a non-alphanumeric character. " @@ -435,15 +624,25 @@ msgid "" "with an alphanumeric is taken to be the start of the exception detail. Of " "course this does the right thing for genuine tracebacks." msgstr "" +"Chaque ligne de la trace d'appel (s'il y en a) doit soit être indentée d'un " +"niveau supplémentaire au niveau de la première ligne de l'exemple *ou* doit " +"commencer par un caractère qui ne soit pas alphanumérique. La première ligne " +"suivant l'en-tête de la trace d'appels qui soit indentée similairement et " +"qui commence par un caractère alphanumérique est comprise comme étant le " +"début du détail de l'exception. Bien sûr, ceci fait la chose adéquate pour " +"les traces d'appels véritables." -#: ../Doc/library/doctest.rst:476 +#: library/doctest.rst:476 msgid "" "When the :const:`IGNORE_EXCEPTION_DETAIL` doctest option is specified, " "everything following the leftmost colon and any module information in the " "exception name is ignored." msgstr "" +"Lorsque l'option de *doctest* :const:`IGNORE_EXCEPTION_DETAIL` est définie, " +"tout ce qui suit le point-virgule se trouvant le plus à gauche ainsi que " +"toute information liée au module dans le nom de l'exception sont ignorés." -#: ../Doc/library/doctest.rst:480 +#: library/doctest.rst:480 msgid "" "The interactive shell omits the traceback header line for some :exc:" "`SyntaxError`\\ s. But doctest uses the traceback header line to " @@ -451,26 +650,37 @@ msgid "" "need to test a :exc:`SyntaxError` that omits the traceback header, you will " "need to manually add the traceback header line to your test example." msgstr "" +"Le shell interactif omet la ligne d'en-tête de la trace d'appels pour " +"certaines erreurs :exc:`SyntaxError`. Ceci étant dit, *doctest* utilise la " +"ligne d'en-tête de la trace d'appels afin de faire une distinction entre les " +"exceptions et les autres types d'erreurs. Ainsi, dans les rares cas où vous " +"avez besoin de tester une erreur :exc:`SyntaxError` qui omet l'en-tête de la " +"trace d'appels, il vous est nécessaire d'ajouter manuellement la ligne d'en-" +"tête de la trace d'appels à l'exemple de test." -#: ../Doc/library/doctest.rst:488 +#: library/doctest.rst:488 msgid "" "For some :exc:`SyntaxError`\\ s, Python displays the character position of " "the syntax error, using a ``^`` marker::" msgstr "" -#: ../Doc/library/doctest.rst:497 +#: library/doctest.rst:497 msgid "" "Since the lines showing the position of the error come before the exception " "type and detail, they are not checked by doctest. For example, the " "following test would pass, even though it puts the ``^`` marker in the wrong " "location::" msgstr "" +"Comme les lignes dénotant la position de l'erreur précèdent le type et le " +"détail de l'exception, elles ne sont pas vérifiées par *doctest*. Par " +"exemple, le test suivant réussira, même si le marqueur ``^`` n'est pas à la " +"bonne place ::" -#: ../Doc/library/doctest.rst:513 +#: library/doctest.rst:513 msgid "Option Flags" -msgstr "" +msgstr "Options de ligne de commande" -#: ../Doc/library/doctest.rst:515 +#: library/doctest.rst:515 msgid "" "A number of option flags control various aspects of doctest's behavior. " "Symbolic names for the flags are supplied as module constants, which can be :" @@ -479,18 +689,28 @@ msgid "" "and may be passed to the doctest command line interface via the ``-o`` " "option." msgstr "" +"Un ensemble d'options de ligne de commande contrôle différents aspects du " +"comportement de *doctest*. Pour les options, des noms symboliques sont " +"fournis comme des constantes de module, qui peuvent être composés par un OU " +"bit à bit (:ref:`bitwise ORed `) et passés à diverses fonctions. " +"Les noms peuvent aussi être utilisés dans des :ref:`instructions doctest " +"`, et peuvent être passés à l'interface de ligne de " +"commande de *doctest* à l'aide de l'option ``-o``." -#: ../Doc/library/doctest.rst:521 +#: library/doctest.rst:521 msgid "The ``-o`` command line option." -msgstr "" +msgstr "L'option de ligne de commande ``-o``." -#: ../Doc/library/doctest.rst:524 +#: library/doctest.rst:524 msgid "" "The first group of options define test semantics, controlling aspects of how " "doctest decides whether actual output matches an example's expected output:" msgstr "" +"Le premier groupe d'options définit les sémantiques de test, de façon à " +"contrôler comment *doctest* décide si la sortie obtenue correspond à la " +"sortie attendue de l'exemple :" -#: ../Doc/library/doctest.rst:530 +#: library/doctest.rst:530 msgid "" "By default, if an expected output block contains just ``1``, an actual " "output block containing just ``1`` or just ``True`` is considered to be a " @@ -501,8 +721,18 @@ msgid "" "output still work in these cases. This option will probably go away, but " "not for several years." msgstr "" +"Par défaut, si un bloc de sortie attendu contient uniquement un ``1``, un " +"vrai bloc de sortie contenant uniquement un ``1`` ou un ``True`` sera " +"considéré comme étant une correspondance ; de façon similaire, nous avons " +"une correspondance pour ``0`` et ``False``. Lorsque l'option :const:" +"`DONT_ACCEPT_TRUE_FOR_1` est précisée, aucune de ces substitutions n'est " +"acceptée. Le comportement par défaut s'ajuste au fait que Python a changé le " +"type de renvoi de plusieurs fonctions, passant de nombres entiers à des " +"booléens ; les *doctests* s'attendant à une sortie de \"petit " +"entier\" (*little integer*) fonctionnent encore dans ces cas. Cette option " +"disparaîtra probablement, mais pas avant plusieurs années." -#: ../Doc/library/doctest.rst:542 +#: library/doctest.rst:542 msgid "" "By default, if an expected output block contains a line containing only the " "string ````, then that line will match a blank line in the actual " @@ -510,8 +740,15 @@ msgid "" "is the only way to communicate that a blank line is expected. When :const:" "`DONT_ACCEPT_BLANKLINE` is specified, this substitution is not allowed." msgstr "" +"Par défaut, si un bloc de sortie attendue contient une ligne contenant " +"uniquement la chaîne de caractères ````, alors cette ligne sera " +"en correspondance avec une ligne vide dans la sortie réelle. Puisqu'une " +"véritable ligne vide permet de délimiter la sortie attendue, ceci est la " +"seule façon de communiquer qu'une ligne vide est souhaitée. Lorsque " +"l'option :const:`DONT_ACCEPT_BLANKLINE` est précisée, cette substitution " +"n'est pas permise." -#: ../Doc/library/doctest.rst:551 +#: library/doctest.rst:551 msgid "" "When specified, all sequences of whitespace (blanks and newlines) are " "treated as equal. Any sequence of whitespace within the expected output " @@ -520,8 +757,16 @@ msgid "" "useful when a line of expected output is very long, and you want to wrap it " "across multiple lines in your source." msgstr "" +"Lorsque précisé, toutes les séquences de caractères d'espacement et de " +"caractères de saut de ligne sont traitées comme équivalentes. Toute séquence " +"de caractères d'espacement à l'intérieur de la sortie attendue correspondra " +"alors à toute séquence de caractères d'espacement à l'intérieur de la sortie " +"réelle. Par défaut, les caractères d'espacement doivent correspondre de " +"façon exacte. L'option :const:`NORMALIZE_WHITESPACE` est particulièrement " +"utile lorsqu'une ligne de sortie attendue est très longue, et que l'on " +"souhaite la répartir sur plusieurs lignes dans le fichier source." -#: ../Doc/library/doctest.rst:562 +#: library/doctest.rst:562 msgid "" "When specified, an ellipsis marker (``...``) in the expected output can " "match any substring in the actual output. This includes substrings that " @@ -529,8 +774,16 @@ msgid "" "this simple. Complicated uses can lead to the same kinds of \"oops, it " "matched too much!\" surprises that ``.*`` is prone to in regular expressions." msgstr "" +"Lorsque précisé, un marqueur de points de suspension (``...``) dans la " +"sortie attendue peut correspondre à n'importe quelle partie de chaîne de " +"caractères dans la sortie réelle. Ceci inclut les parties qui traversent les " +"frontières de lignes, ainsi que les parties vides de chaînes de caractères ; " +"ainsi, il est préférable d'en faire une utilisation simple. Les usages " +"complexes mènent aux mêmes surprises du type \"oups, il y avait trop de " +"correspondances !\" que l'utilisation de ``.*`` dans les expressions " +"régulières." -#: ../Doc/library/doctest.rst:571 +#: library/doctest.rst:571 msgid "" "When specified, an example that expects an exception passes if an exception " "of the expected type is raised, even if the exception detail does not " @@ -538,15 +791,24 @@ msgid "" "the actual exception raised is ``ValueError: 3*14``, but will fail, e.g., " "if :exc:`TypeError` is raised." msgstr "" +"Lorsque précisé, un exemple qui s'attend à une exception réussit le test si " +"une exception du type attendu est levée, même si le détail de l'exception ne " +"correspond pas. Par exemple, un exemple s'attendant à ``ValueError: 42`` " +"réussira si l'exception réellement levée est ``ValueError: 3*14``, mais " +"échouera si par exemple :exc:`TypeError` est levée." -#: ../Doc/library/doctest.rst:577 +#: library/doctest.rst:577 msgid "" "It will also ignore the module name used in Python 3 doctest reports. Hence " "both of these variations will work with the flag specified, regardless of " "whether the test is run under Python 2.7 or Python 3.2 (or later versions)::" msgstr "" +"Il fera fi du nom de module utilisé dans les rapports *doctest* de Python 3. " +"Ainsi, ces deux variations fonctionneront avec l'option précisée, peu " +"importe si le test est exécuté avec Python 2.7 ou Python 3.2 (ou des " +"versions ultérieures) ::" -#: ../Doc/library/doctest.rst:589 +#: library/doctest.rst:589 msgid "" "Note that :const:`ELLIPSIS` can also be used to ignore the details of the " "exception message, but such a test may still fail based on whether or not " @@ -557,21 +819,36 @@ msgid "" "support :ref:`doctest directives ` and ignore them as " "irrelevant comments). For example::" msgstr "" +"Prendre note que :const:`ELLIPSIS` peut aussi être utilisée afin d'ignorer " +"les détails du message d'exception, mais un tel test peut tout de même " +"échouer si les détails du module sont affichés comme faisant partie du nom " +"de l'exception. L'utilisation de :const:`IGNORE_EXCEPTION_DETAIL` et des " +"détails de Python 2.3 est aussi la seule façon claire d'écrire un *doctest* " +"qui ne se soucie pas du détail d'exception tout en continuant de réussir, et " +"ce, pour Python 2.3 ou antérieur (ces versions ne supportent pas les :ref:" +"`instructions doctest `, les ignorant et les traitant " +"comme des commentaires sans pertinence). Par exemple ::" -#: ../Doc/library/doctest.rst:603 +#: library/doctest.rst:603 msgid "" "passes under Python 2.3 and later Python versions with the flag specified, " "even though the detail changed in Python 2.4 to say \"does not\" instead of " "\"doesn't\"." msgstr "" +"réussit sous Python 2.3 ainsi que pour les versions ultérieures de Python, " +"avec l'option précisée, même si le détail a été changé dans Python 2.4 pour " +"mentionner *\"does not\"* plutôt que *\"doesn't\"* (ne fait pas)." -#: ../Doc/library/doctest.rst:607 +#: library/doctest.rst:607 msgid "" ":const:`IGNORE_EXCEPTION_DETAIL` now also ignores any information relating " "to the module containing the exception under test." msgstr "" +"Maintenant, :const:`IGNORE_EXCEPTION_DETAIL` permet aussi d'ignorer toute " +"information liée au module contenant l'exception qui est en train d'être " +"testée." -#: ../Doc/library/doctest.rst:614 +#: library/doctest.rst:614 msgid "" "When specified, do not run the example at all. This can be useful in " "contexts where doctest examples serve as both documentation and test cases, " @@ -579,33 +856,50 @@ msgid "" "be checked. E.g., the example's output might be random; or the example " "might depend on resources which would be unavailable to the test driver." msgstr "" +"Lorsque précisé, cesse complètement l'exécution de tous les exemples. Ceci " +"peut être utile dans des contextes où les exemples *doctest* sont à la fois " +"de la documentation et des cas de tests, et qu'un exemple doit être inclus " +"pour des raisons de documentation, mais ne devrait pas être vérifié. Par " +"exemple, la sortie de l'exemple doit être aléatoire ; ou encore, lorsque " +"l'exemple peut dépendre de ressources inatteignables pour l'exécuteur de " +"test." -#: ../Doc/library/doctest.rst:620 +#: library/doctest.rst:620 msgid "" "The SKIP flag can also be used for temporarily \"commenting out\" examples." msgstr "" +"L'option *SKIP* peut aussi être utilisée temporairement afin de commenter " +"des exemples et d'en empêcher l'exécution." -#: ../Doc/library/doctest.rst:625 +#: library/doctest.rst:625 msgid "A bitmask or'ing together all the comparison flags above." msgstr "" +"Un masque binaire effectuant une composition avec OU de toutes les options " +"de comparaisons ci-dessus." -#: ../Doc/library/doctest.rst:627 +#: library/doctest.rst:627 msgid "The second group of options controls how test failures are reported:" msgstr "" +"Le deuxième groupe d'options détermine comment les échecs de tests sont " +"signalés :" -#: ../Doc/library/doctest.rst:632 +#: library/doctest.rst:632 msgid "" "When specified, failures that involve multi-line expected and actual outputs " "are displayed using a unified diff." msgstr "" +"Lorsque précisé, les défaillances qui font intervenir des sorties attendues " +"et réelles multi-lignes sont affichées dans une *diff* unifiée." -#: ../Doc/library/doctest.rst:638 +#: library/doctest.rst:638 msgid "" "When specified, failures that involve multi-line expected and actual outputs " "will be displayed using a context diff." msgstr "" +"Lorsque précisé, les défaillances qui font intervenir des sorties attendues " +"et réelles multi-lignes sont affichées dans une *diff* de contexte." -#: ../Doc/library/doctest.rst:644 +#: library/doctest.rst:644 msgid "" "When specified, differences are computed by ``difflib.Differ``, using the " "same algorithm as the popular :file:`ndiff.py` utility. This is the only " @@ -614,8 +908,15 @@ msgid "" "output contains letter ``l``, a line is inserted with a caret marking the " "mismatching column positions." msgstr "" +"Lorsque précisé, les différences sont obtenues grâce à ``difflib.Differ``, " +"en utilisant le même algorithme que le populaire utilitaire :file:`ndiff." +"py`. Ceci est la seule méthode qui puisse faire la différence à l'intérieur " +"des lignes ainsi que parmi les lignes prises conjointement. Par exemple, si " +"une ligne de sortie attendue contient le chiffre ``1`` alors que la sortie " +"réelle contient la lettre ``l``, une ligne est insérée avec un marqueur " +"caret démarquant les positions de colonnes où il n'y a pas de correspondance." -#: ../Doc/library/doctest.rst:653 +#: library/doctest.rst:653 msgid "" "When specified, display the first failing example in each doctest, but " "suppress output for all remaining examples. This will prevent doctest from " @@ -625,32 +926,52 @@ msgid "" "remaining examples are still run, and still count towards the total number " "of failures reported; only the output is suppressed." msgstr "" +"Lorsque précisé, le premier exemple défaillant de chaque *doctest* est " +"affiché, mais la sortie est supprimée pour tous les autres exemples. Ceci " +"empêche *doctest* de rapporter les exemples adéquats qui échouent du fait " +"d'échecs précédents ; ceci peut aussi cacher des exemples inadéquats qui " +"échouent de façon indépendante au premier échec. Lorsque :const:" +"`REPORT_ONLY_FIRST_FAILURE` est précisé, les exemples restants sont toujours " +"exécutés, et sont toujours comptabilisés dans le nombre total des lignes " +"échouant ; seulement la sortie est omise." -#: ../Doc/library/doctest.rst:664 +#: library/doctest.rst:664 msgid "" "When specified, exit after the first failing example and don't attempt to " "run the remaining examples. Thus, the number of failures reported will be at " "most 1. This flag may be useful during debugging, since examples after the " "first failure won't even produce debugging output." msgstr "" +"Lorsque précisé, mettre fin à l'exécution après le premier exemple " +"défaillant et ne pas essayer d'exécuter les exemples restants. Ainsi, le " +"nombre d'échecs rapporté sera au plus un (1). Cette option peut être utile " +"durant le débogage, étant donné que les exemples suivant le premier échec ne " +"produiront aucune sortie de débogage." -#: ../Doc/library/doctest.rst:669 +#: library/doctest.rst:669 msgid "" "The doctest command line accepts the option ``-f`` as a shorthand for ``-o " "FAIL_FAST``." msgstr "" +"La ligne de commande de *doctest* accepte l'option ``-f`` comme un raccourci " +"de ``-o FAIL_FAST``." -#: ../Doc/library/doctest.rst:677 +#: library/doctest.rst:677 msgid "A bitmask or'ing together all the reporting flags above." msgstr "" +"Un masque binaire effectuant une composition avec le OU de toutes les " +"options de signalement ci-dessus." -#: ../Doc/library/doctest.rst:680 +#: library/doctest.rst:680 msgid "" "There is also a way to register new option flag names, though this isn't " "useful unless you intend to extend :mod:`doctest` internals via subclassing:" msgstr "" +"Il y a aussi une façon d'enregistrer des nouveaux noms d'option, quoique " +"ceci n'est pas utile sauf dans le cas où vous devez faire une extension pour " +"le code interne de :mod:`doctest` par le biais d'une sous-classe :" -#: ../Doc/library/doctest.rst:686 +#: library/doctest.rst:686 msgid "" "Create a new option flag with a given name, and return the new flag's " "integer value. :func:`register_optionflag` can be used when subclassing :" @@ -658,36 +979,50 @@ msgid "" "are supported by your subclasses. :func:`register_optionflag` should always " "be called using the following idiom::" msgstr "" +"Crée une nouvelle option avec un nom donné, et renvoie la valeur en nombre " +"entier de la nouvelle option. La fonction :func:`register_optionflag` peut " +"être utilisée lors de la création de sous-classes à partir de :class:" +"`OutputChecker` ou :class:`DocTestRunner` pour créer de nouvelles options " +"qui sont supportées par vos sous-classes. La fonction :func:" +"`register_optionflag` devrait toujours être appelée par l'expression " +"suivante ::" -#: ../Doc/library/doctest.rst:702 +#: library/doctest.rst:702 msgid "Directives" -msgstr "" +msgstr "Instructions" -#: ../Doc/library/doctest.rst:704 +#: library/doctest.rst:704 msgid "" "Doctest directives may be used to modify the :ref:`option flags ` for an individual example. Doctest directives are special Python " "comments following an example's source code:" msgstr "" +"Les instructions *doctest* peuvent être utilisées afin de modifier les :ref:" +"`options ` pour un exemple individuel. Les instructions " +"*doctest* sont des commentaires Python spéciaux suivant le code source d'un " +"exemple :" -#: ../Doc/library/doctest.rst:715 +#: library/doctest.rst:715 msgid "" "Whitespace is not allowed between the ``+`` or ``-`` and the directive " "option name. The directive option name can be any of the option flag names " "explained above." msgstr "" -#: ../Doc/library/doctest.rst:719 +#: library/doctest.rst:719 msgid "" "An example's doctest directives modify doctest's behavior for that single " "example. Use ``+`` to enable the named behavior, or ``-`` to disable it." msgstr "" +"Les instructions d'un exemple *doctest* modifient le comportement de " +"*doctest* et ce, seulement pour cet exemple. Utilisez ``+`` pour activer le " +"comportement nommé, ou ``-`` pour le désactiver." -#: ../Doc/library/doctest.rst:722 +#: library/doctest.rst:722 msgid "For example, this test passes::" msgstr "" -#: ../Doc/library/doctest.rst:728 +#: library/doctest.rst:728 msgid "" "Without the directive it would fail, both because the actual output doesn't " "have two blanks before the single-digit list elements, and because the " @@ -695,26 +1030,26 @@ msgid "" "a directive to do so::" msgstr "" -#: ../Doc/library/doctest.rst:736 +#: library/doctest.rst:736 msgid "" "Multiple directives can be used on a single physical line, separated by " "commas::" msgstr "" -#: ../Doc/library/doctest.rst:742 +#: library/doctest.rst:742 msgid "" "If multiple directive comments are used for a single example, then they are " "combined::" msgstr "" -#: ../Doc/library/doctest.rst:749 +#: library/doctest.rst:749 msgid "" "As the previous example shows, you can add ``...`` lines to your example " "containing only directives. This can be useful when an example is too long " "for a directive to comfortably fit on the same line::" msgstr "" -#: ../Doc/library/doctest.rst:757 +#: library/doctest.rst:757 msgid "" "Note that since all options are disabled by default, and directives apply " "only to the example they appear in, enabling options (via ``+`` in a " @@ -723,12 +1058,20 @@ msgid "" "defaults. In such cases, disabling an option via ``-`` in a directive can " "be useful." msgstr "" +"Prendre note que puisque toutes les options sont désactivées par défaut, et " +"comme les instructions s'appliquent uniquement aux exemples dans lesquelles " +"elles apparaissent, activer les options (par le biais de ``+`` dans une " +"instruction) est habituellement le seul choix ayant du sens. Toutefois, les " +"options peuvent aussi être passées aux fonctions qui exécutent les " +"*doctests*, définissant de nouvelles valeurs par défaut. Dans de tels cas, " +"désactiver une option par l'utilisation de ``-`` dans une instruction peut " +"être utile." -#: ../Doc/library/doctest.rst:767 +#: library/doctest.rst:767 msgid "Warnings" msgstr "Avertissements" -#: ../Doc/library/doctest.rst:769 +#: library/doctest.rst:769 msgid "" ":mod:`doctest` is serious about requiring exact matches in expected output. " "If even a single character doesn't match, the test fails. This will " @@ -737,85 +1080,112 @@ msgid "" "doesn't guarantee that the element is printed in any particular order, so a " "test like ::" msgstr "" +"Le module :mod:`doctest` est rigoureux pour ce qui est d'inclure des " +"correspondances exactes dans la sortie attendue. Si un seul caractère ne " +"correspond pas, le test échoue. Ceci vous surprendra probablement quelques " +"fois, alors que vous apprenez exactement ce que Python garantit et ne " +"garantit pas pour qui est des sorties. Par exemple, lorsqu'on affiche un " +"ensemble (set), Python ne garantit pas que les éléments sont affichés dans " +"un ordre particulier ; ainsi un test tel que ::" -#: ../Doc/library/doctest.rst:778 +#: library/doctest.rst:778 msgid "is vulnerable! One workaround is to do ::" -msgstr "" +msgstr "est vulnérable ! Une alternative est de faire ::" -#: ../Doc/library/doctest.rst:783 +#: library/doctest.rst:783 msgid "instead. Another is to do ::" -msgstr "" +msgstr "à la place. Une autre façon de faire est ::" -#: ../Doc/library/doctest.rst:791 +#: library/doctest.rst:791 msgid "" "Before Python 3.6, when printing a dict, Python did not guarantee that the " "key-value pairs was printed in any particular order." msgstr "" +"Avant Python 3.6, lorsque Python affichait un *dict*, il ne garantissait pas " +"que les paires clés-valeurs suivaient un ordre particulier." -#: ../Doc/library/doctest.rst:794 +#: library/doctest.rst:794 msgid "There are others, but you get the idea." -msgstr "" +msgstr "Il y en a d'autres, mais vous saisissez l'idée." -#: ../Doc/library/doctest.rst:796 +#: library/doctest.rst:796 msgid "" "Another bad idea is to print things that embed an object address, like ::" msgstr "" -#: ../Doc/library/doctest.rst:804 +#: library/doctest.rst:804 msgid "" "The :const:`ELLIPSIS` directive gives a nice approach for the last example::" msgstr "" -#: ../Doc/library/doctest.rst:809 +#: library/doctest.rst:809 msgid "" "Floating-point numbers are also subject to small output variations across " "platforms, because Python defers to the platform C library for float " "formatting, and C libraries vary widely in quality here. ::" msgstr "" +"Les nombres à virgule flottante sont aussi sujets à de petites variations à " +"la sortie, tout dépendamment de la plateforme utilisée, étant donné que " +"Python s'en remet à la bibliothèque de la plateforme C pour la mise-en-forme " +"des *floats*, et les bibliothèques C varient grandement pour ce qui de leur " +"qualité sur ce point. ::" -#: ../Doc/library/doctest.rst:820 +#: library/doctest.rst:820 msgid "" "Numbers of the form ``I/2.**J`` are safe across all platforms, and I often " "contrive doctest examples to produce numbers of that form::" msgstr "" -#: ../Doc/library/doctest.rst:826 +#: library/doctest.rst:826 msgid "" "Simple fractions are also easier for people to understand, and that makes " "for better documentation." msgstr "" +"Les fractions simples sont aussi plus faciles à comprendre, et cela fait une " +"meilleure documentation." -#: ../Doc/library/doctest.rst:833 +#: library/doctest.rst:833 msgid "Basic API" -msgstr "" +msgstr "API de base" -#: ../Doc/library/doctest.rst:835 +#: library/doctest.rst:835 msgid "" "The functions :func:`testmod` and :func:`testfile` provide a simple " "interface to doctest that should be sufficient for most basic uses. For a " "less formal introduction to these two functions, see sections :ref:`doctest-" "simple-testmod` and :ref:`doctest-simple-testfile`." msgstr "" +"Les fonctions :func:`testmod` et :func:`testfile` fournissent une interface " +"simple pour *doctest* qui est suffisante pour les cas d'usage les plus " +"élémentaires. Pour une introduction moins formelle à ces deux fonctions, " +"voir les sections :ref:`doctest-simple-testmod` et :ref:`doctest-simple-" +"testfile`." -#: ../Doc/library/doctest.rst:843 +#: library/doctest.rst:843 msgid "" "All arguments except *filename* are optional, and should be specified in " "keyword form." msgstr "" +"Tous les arguments sauf *filename* sont optionnels, et doivent être précisés " +"sous forme lettrée." -#: ../Doc/library/doctest.rst:846 +#: library/doctest.rst:846 msgid "" "Test examples in the file named *filename*. Return ``(failure_count, " "test_count)``." msgstr "" +"Teste les exemples dans le fichier nommé *filename*. Renvoie " +"``(failure_count, test_count)``." -#: ../Doc/library/doctest.rst:849 +#: library/doctest.rst:849 msgid "" "Optional argument *module_relative* specifies how the filename should be " "interpreted:" msgstr "" +"L'argument optionnel *module_relative* précise comment le nom de fichier " +"doit être interprété :" -#: ../Doc/library/doctest.rst:852 +#: library/doctest.rst:852 msgid "" "If *module_relative* is ``True`` (the default), then *filename* specifies an " "OS-independent module-relative path. By default, this path is relative to " @@ -824,21 +1194,34 @@ msgid "" "should use ``/`` characters to separate path segments, and may not be an " "absolute path (i.e., it may not begin with ``/``)." msgstr "" +"Si *module_relative* prend la valeur ``True`` (la valeur par défaut), alors " +"*filename* précise un chemin relatif au module qui soit indépendant du " +"système d'exploitation (*OS*). Par défaut, ce chemin est relatif au " +"répertoire du module appelant ; mais si l'argument *package* est précisé, " +"alors il est relatif à ce paquet. Pour garantir l'indépendance quant au " +"système d'exploitation, *filename* doit utiliser des caractères ``/`` pour " +"séparer chaque segment de chemin, et ne peut pas être un chemin absolu " +"(c'est-à-dire qu'il ne peut pas commencer par ``/``)." -#: ../Doc/library/doctest.rst:859 +#: library/doctest.rst:859 msgid "" "If *module_relative* is ``False``, then *filename* specifies an OS-specific " "path. The path may be absolute or relative; relative paths are resolved " "with respect to the current working directory." msgstr "" +"Si *module_relative* prend la valeur ``False``, alors *filename* précise un " +"chemin en fonction du système d'exploitation. Le chemin peut être absolu ou " +"relatif ; les chemins relatifs sont résolus en rapport au répertoire actif." -#: ../Doc/library/doctest.rst:863 +#: library/doctest.rst:863 msgid "" "Optional argument *name* gives the name of the test; by default, or if " "``None``, ``os.path.basename(filename)`` is used." msgstr "" +"L'option *name* désigne le nom du test ; par défaut, ou si ``None`` est " +"passé en argument, ``os.path.basename(filename)`` est utilisé." -#: ../Doc/library/doctest.rst:866 +#: library/doctest.rst:866 msgid "" "Optional argument *package* is a Python package or the name of a Python " "package whose directory should be used as the base directory for a module-" @@ -846,16 +1229,26 @@ msgid "" "directory is used as the base directory for module-relative filenames. It " "is an error to specify *package* if *module_relative* is ``False``." msgstr "" +"L'option *package* est un paquet Python ou le nom d'un paquet Python dont le " +"répertoire doit être utilisé comme le répertoire principal pour un nom de " +"fichier lié à un module. Si aucun paquet n'est spécifié, le répertoire du " +"module appelé à l'exécution est utilisé comme le répertoire principal pour " +"les noms de fichiers liés au module. C'est une erreur que de spécifier " +"*package* si *module_relative* a ``False`` comme valeur." -#: ../Doc/library/doctest.rst:872 +#: library/doctest.rst:872 msgid "" "Optional argument *globs* gives a dict to be used as the globals when " "executing examples. A new shallow copy of this dict is created for the " "doctest, so its examples start with a clean slate. By default, or if " "``None``, a new empty dict is used." msgstr "" +"L'option *globs* spécifie un *dict* à utiliser comme *globals* lorsque des " +"exemples sont exécutés. Une copie superficielle de ce *dict* est créée pour " +"le *doctest* ; ainsi, ces exemples commencent avec un état vide. Par défaut, " +"ou si ``None`` est passé en argument, un nouveau *dict* vide est utilisé." -#: ../Doc/library/doctest.rst:877 +#: library/doctest.rst:877 msgid "" "Optional argument *extraglobs* gives a dict merged into the globals used to " "execute examples. This works like :meth:`dict.update`: if *globs* and " @@ -867,85 +1260,131 @@ msgid "" "passing an *extraglobs* dict mapping the generic name to the subclass to be " "tested." msgstr "" +"L'option *extraglobs* spécifie un *dict* intégré dans les variables globales " +"utilisées pour exécuter l'exemple. Ceci fonctionne comme :meth:`dict." +"update` : si *globs* et *extraglobs* ont une clé commune, la valeur associée " +"à *extraglobs* apparaît dans le *dict* combiné. Par défaut, ou si ``None`` " +"est passé en argument, aucune variable globale supplémentaire est utilisée. " +"Ceci est une fonctionnalité avancée qui permet la configuration des " +"*doctests*. Par exemple, un *doctest* peut être rédigé pour une classe de " +"base, en utilisant un nom générique pour la classe, puis réutilisé afin de " +"tester un nombre indéfini de sous-classes en passant un *dict* *extraglobs* " +"reliant le nom générique à la sous-classe qui doit être testée." -#: ../Doc/library/doctest.rst:886 +#: library/doctest.rst:886 msgid "" "Optional argument *verbose* prints lots of stuff if true, and prints only " "failures if false; by default, or if ``None``, it's true if and only if ``'-" "v'`` is in ``sys.argv``." msgstr "" +"L'option *verbose* affiche une grande quantité d'information si elle est " +"vraie, et affiche uniquement les défaillances si elle est fausse ; par " +"défaut, ou si ``None``, celle-ci est vraie si et seulement si ``-v`` est " +"présent dans ``sys.argv``." -#: ../Doc/library/doctest.rst:890 +#: library/doctest.rst:890 msgid "" "Optional argument *report* prints a summary at the end when true, else " "prints nothing at the end. In verbose mode, the summary is detailed, else " "the summary is very brief (in fact, empty if all tests passed)." msgstr "" +"L'option *report* affiche un résumé à la fin lorsque vraie ; sinon, rien " +"n'est affiché à la fin. En mode *verbose*, le résumé est détaillé, sinon le " +"résumé est très bref (en fait, vide si tous les tests ont réussi)." -#: ../Doc/library/doctest.rst:894 +#: library/doctest.rst:894 msgid "" "Optional argument *optionflags* (default value 0) takes the :ref:`bitwise OR " "` of option flags. See section :ref:`doctest-options`." msgstr "" +"L'option *optionflags* (dont la valeur par défaut est de zéro) calcule la " +"valeur :ref:`bitwise OR ` des options de ligne de commande. Voir la " +"section :ref:`doctest-options`." -#: ../Doc/library/doctest.rst:898 +#: library/doctest.rst:898 msgid "" "Optional argument *raise_on_error* defaults to false. If true, an exception " "is raised upon the first failure or unexpected exception in an example. " "This allows failures to be post-mortem debugged. Default behavior is to " "continue running examples." msgstr "" +"L'option *raise_on_error* est fausse par défaut. Si elle est vraie, une " +"exception est levée à la première défaillance ou à la première exception qui " +"ne soit prévue dans l'exemple. Ceci permet aux défaillances d'être analysées " +"lors d'un post-mortem. Le comportement par défaut est de poursuivre " +"l'exécution des exemples." -#: ../Doc/library/doctest.rst:903 ../Doc/library/doctest.rst:1043 +#: library/doctest.rst:1043 msgid "" "Optional argument *parser* specifies a :class:`DocTestParser` (or subclass) " "that should be used to extract tests from the files. It defaults to a " "normal parser (i.e., ``DocTestParser()``)." msgstr "" +"L'option *parser* définit une classe ou une sous-classe :class:" +"`DocTestParser` qui doit être utilisée pour extraire les tests des fichiers. " +"Par défaut, on utilise un analyseur normal (c'est-à-dire, " +"``DocTestParser()``)." -#: ../Doc/library/doctest.rst:907 ../Doc/library/doctest.rst:1047 +#: library/doctest.rst:1047 msgid "" "Optional argument *encoding* specifies an encoding that should be used to " "convert the file to unicode." msgstr "" +"L'option *encoding* définit un encodage à utiliser pour convertir le fichier " +"en format *unicode*." -#: ../Doc/library/doctest.rst:913 +#: library/doctest.rst:913 msgid "" "All arguments are optional, and all except for *m* should be specified in " "keyword form." msgstr "" +"Toutes les options sont facultatives, et toutes sauf *m* doivent être " +"définies en format lettré." -#: ../Doc/library/doctest.rst:916 +#: library/doctest.rst:916 msgid "" "Test examples in docstrings in functions and classes reachable from module " "*m* (or module :mod:`__main__` if *m* is not supplied or is ``None``), " "starting with ``m.__doc__``." msgstr "" +"Ceci teste les exemples en *docstrings* dans les fonctions et les classes " +"accessibles depuis le module *m* (ou depuis le module :mod:`__main__` si *m* " +"n'a pas été défini ou est ``None``), en commençant par ``m.__doc__``." -#: ../Doc/library/doctest.rst:920 +#: library/doctest.rst:920 msgid "" "Also test examples reachable from dict ``m.__test__``, if it exists and is " "not ``None``. ``m.__test__`` maps names (strings) to functions, classes and " "strings; function and class docstrings are searched for examples; strings " "are searched directly, as if they were docstrings." msgstr "" +"Ceci teste aussi les exemples accessibles depuis le *dict* ``m.__test__``, " +"si et seulement s'il existe et qu'il n'est pas ``None``. Le *dict* ``m." +"__test__`` associe des noms (chaînes de caractères) à des fonctions, des " +"classes et des chaînes de caractères ; les *docstrings* de fonctions et de " +"classes sont fouillées pour des exemples ; les chaînes de caractères sont " +"fouillées directement, comme si elles étaient des *docstrings*." -#: ../Doc/library/doctest.rst:925 +#: library/doctest.rst:925 msgid "" "Only docstrings attached to objects belonging to module *m* are searched." msgstr "" +"Seulement les *docstrings* attribuées à des objets appartenant au module *m* " +"sont fouillées." -#: ../Doc/library/doctest.rst:927 +#: library/doctest.rst:927 msgid "Return ``(failure_count, test_count)``." -msgstr "" +msgstr "Renvoie ``(failure_count, test_count)``." -#: ../Doc/library/doctest.rst:929 +#: library/doctest.rst:929 msgid "" "Optional argument *name* gives the name of the module; by default, or if " "``None``, ``m.__name__`` is used." msgstr "" +"L'option *name* donne le nom du module ; par défaut, ou si ``None``, ``m." +"__name__`` est utilisé." -#: ../Doc/library/doctest.rst:932 +#: library/doctest.rst:932 msgid "" "Optional argument *exclude_empty* defaults to false. If true, objects for " "which no doctests are found are excluded from consideration. The default is " @@ -954,57 +1393,83 @@ msgid "" "output for objects with no tests. The *exclude_empty* argument to the newer :" "class:`DocTestFinder` constructor defaults to true." msgstr "" +"L'option *exclude_empty* prend la valeur faux par défaut. Si la valeur est " +"vraie, les objets pour lesquels aucun *doctest* n'est trouvé ne sont pas " +"pris en compte. Le défaut est un bricolage permettant la compatibilité à " +"rebours, de façon à ce que le code qui utilise toujours :meth:`doctest." +"master.summarize` en conjonction avec :func:`testmod` puisse continuer " +"d'obtenir des sorties pour les objets n'ayant aucun test. L'option " +"*exclude_empty* dans le constructeur de la classe plus récente :class:" +"`DocTestFinder` prend vrai comme valeur par défaut." -#: ../Doc/library/doctest.rst:939 +#: library/doctest.rst:939 msgid "" "Optional arguments *extraglobs*, *verbose*, *report*, *optionflags*, " "*raise_on_error*, and *globs* are the same as for function :func:`testfile` " "above, except that *globs* defaults to ``m.__dict__``." msgstr "" +"Les options *extraglobs*, *verbose*, *report*, *optionflags*, " +"*raise_on_error*, et *globs* sont les mêmes que pour la fonction :func:" +"`testfile` ci-dessus, sauf pour *globs*, qui est ``m.__dict__`` par défaut." -#: ../Doc/library/doctest.rst:946 +#: library/doctest.rst:946 msgid "" "Test examples associated with object *f*; for example, *f* may be a string, " "a module, a function, or a class object." msgstr "" +"Les exemples de test associés à l'objet *f* ; par exemple, *f* peut être une " +"chaîne de caractères, un module, une fonction, ou un objet de classe." -#: ../Doc/library/doctest.rst:949 +#: library/doctest.rst:949 msgid "" "A shallow copy of dictionary argument *globs* is used for the execution " "context." msgstr "" +"Une copie superficielle de l'argument-dictionnaire *globs* est utilisée pour " +"le contexte d'exécution." -#: ../Doc/library/doctest.rst:951 +#: library/doctest.rst:951 msgid "" -"Optional argument *name* is used in failure messages, and defaults to ``" -"\"NoName\"``." +"Optional argument *name* is used in failure messages, and defaults to " +"``\"NoName\"``." msgstr "" +"L'option *name* est utilisée pour les messages d'échec, et prend " +"``\"NoName\"`` comme valeur par défaut." -#: ../Doc/library/doctest.rst:954 +#: library/doctest.rst:954 msgid "" "If optional argument *verbose* is true, output is generated even if there " "are no failures. By default, output is generated only in case of an example " "failure." msgstr "" +"Si l'option *verbose* est vraie, les sorties sont générées même s'il n'y a " +"aucun échec. Par défaut, la sortie est générée seulement si un exemple " +"échoue." -#: ../Doc/library/doctest.rst:957 +#: library/doctest.rst:957 msgid "" "Optional argument *compileflags* gives the set of flags that should be used " "by the Python compiler when running the examples. By default, or if " "``None``, flags are deduced corresponding to the set of future features " "found in *globs*." msgstr "" +"L'option *compileflags* donne l'ensemble des options qui doit être utilisée " +"par le compilateur Python lorsqu'il exécute les exemples. Par défaut, ou si " +"``None``, les options sont inférées à partir de l'ensemble des " +"fonctionnalités futures trouvées dans *globs*." -#: ../Doc/library/doctest.rst:961 +#: library/doctest.rst:961 msgid "" "Optional argument *optionflags* works as for function :func:`testfile` above." msgstr "" +"L'option *optionflags* fonctionne similairement à la fonction :func:" +"`testfile` ci-dessus." -#: ../Doc/library/doctest.rst:967 +#: library/doctest.rst:967 msgid "Unittest API" -msgstr "" +msgstr "API de tests unitaires" -#: ../Doc/library/doctest.rst:969 +#: library/doctest.rst:969 msgid "" "As your collection of doctest'ed modules grows, you'll want a way to run all " "their doctests systematically. :mod:`doctest` provides two functions that " @@ -1012,20 +1477,33 @@ msgid "" "files containing doctests. To integrate with :mod:`unittest` test " "discovery, include a :func:`load_tests` function in your test module::" msgstr "" +"Au fur et à mesure que la collection de modules testés avec *doctest* " +"s'agrandira, vous allez souhaiter avoir une façon d'exécuter " +"systématiquement tous les *doctests*. Le module :mod:`doctest` fournit deux " +"fonctions qui peuvent être utilisées afin de créer des suites de tests " +"unitaires :mod:`unittest` à partir des modules et des fichiers textes " +"contenant des *doctests*. Afin d'intégrer la découverte fournie par :mod:" +"`unittest`, il suffit d'ajouter une fonction :func:`load_tests` dans votre " +"module de test ::" -#: ../Doc/library/doctest.rst:983 +#: library/doctest.rst:983 msgid "" "There are two main functions for creating :class:`unittest.TestSuite` " "instances from text files and modules with doctests:" msgstr "" +"Il y a deux fonctions principales pour créer des instances de la classe :" +"class:`unittest.TestSuite` à partir de fichiers textes et de modules ayant " +"des *doctests* :" -#: ../Doc/library/doctest.rst:989 +#: library/doctest.rst:989 msgid "" "Convert doctest tests from one or more text files to a :class:`unittest." "TestSuite`." msgstr "" +"Convertit des tests *doctest* à partir d'un ou plusieurs fichiers vers une " +"classe :class:`unittest.TestSuite`." -#: ../Doc/library/doctest.rst:992 +#: library/doctest.rst:992 msgid "" "The returned :class:`unittest.TestSuite` is to be run by the unittest " "framework and runs the interactive examples in each file. If an example in " @@ -1033,22 +1511,32 @@ msgid "" "`failureException` exception is raised showing the name of the file " "containing the test and a (sometimes approximate) line number." msgstr "" +"La classe renvoyée :class:`unittest.TestSuite` doit être exécutée dans le " +"cadriciel de tests unitaires et exécute les exemples interactifs trouvés " +"dans chaque fichier. Si un exemple de n'importe quel fichier échoue, alors " +"le test unitaire de synthèse échoue aussi, et une exception :exc:" +"`failureException` est levée, affichant le nom du fichier contenant le test " +"et un numéro de ligne (celui-ci est parfois approximatif)." -#: ../Doc/library/doctest.rst:998 +#: library/doctest.rst:998 msgid "Pass one or more paths (as strings) to text files to be examined." msgstr "" +"Passe un ou plusieurs chemins (sous forme de chaînes de caractères) à des " +"fichiers textes afin d'être vérifiés." -#: ../Doc/library/doctest.rst:1000 +#: library/doctest.rst:1000 msgid "Options may be provided as keyword arguments:" -msgstr "" +msgstr "Les options peuvent être fournies comme des options lettrées :" -#: ../Doc/library/doctest.rst:1002 +#: library/doctest.rst:1002 msgid "" "Optional argument *module_relative* specifies how the filenames in *paths* " "should be interpreted:" msgstr "" +"L'option *module_relative* précise comment les noms de fichiers dans *paths* " +"doivent être interprétés :" -#: ../Doc/library/doctest.rst:1005 +#: library/doctest.rst:1005 msgid "" "If *module_relative* is ``True`` (the default), then each filename in " "*paths* specifies an OS-independent module-relative path. By default, this " @@ -1058,15 +1546,26 @@ msgid "" "segments, and may not be an absolute path (i.e., it may not begin with ``/" "``)." msgstr "" +"Si *module_relative* a ``True`` comme valeur (valeur par défaut), alors " +"chaque nom de fichier dans *paths* précise un chemin relatif au module qui " +"soit indépendant du système d'exploitation. Par défaut, ce chemin est " +"relatif au répertoire du module appelant ; mais si l'option *package* est " +"précisée, alors il est relatif à ce paquet. Afin de garantir l'indépendance " +"face au système d'exploitation, chaque nom de fichier doit utiliser des " +"caractères ``/`` afin de séparer les segments de chemin, et ne peut pas être " +"un chemin absolu (c'est-à-dire, il ne peut pas commencer par ``/``)." -#: ../Doc/library/doctest.rst:1013 +#: library/doctest.rst:1013 msgid "" "If *module_relative* is ``False``, then each filename in *paths* specifies " "an OS-specific path. The path may be absolute or relative; relative paths " "are resolved with respect to the current working directory." msgstr "" +"Si *module_relative* prend la valeur ``False``, alors *filename* précise un " +"chemin en fonction du système d'exploitation. Le chemin peut être absolu ou " +"relatif ; les chemins relatifs sont résolus en rapport au répertoire actif." -#: ../Doc/library/doctest.rst:1017 +#: library/doctest.rst:1017 msgid "" "Optional argument *package* is a Python package or the name of a Python " "package whose directory should be used as the base directory for module-" @@ -1075,49 +1574,79 @@ msgid "" "filenames. It is an error to specify *package* if *module_relative* is " "``False``." msgstr "" +"L'option *package* est un paquet Python ou le nom d'un paquet Python dont le " +"répertoire dont être utilisé comme le répertoire principal pour un nom de " +"fichier dans *paths* qui soit lié à un module. Si aucun paquet n'est " +"spécifié, le répertoire du module appelé à l'exécution est utilisé comme le " +"répertoire principal pour les noms de fichiers liés au module. C'est une " +"erreur que de spécifier *package* si *module_relative* a ``False`` comme " +"valeur." -#: ../Doc/library/doctest.rst:1024 +#: library/doctest.rst:1024 msgid "" "Optional argument *setUp* specifies a set-up function for the test suite. " "This is called before running the tests in each file. The *setUp* function " "will be passed a :class:`DocTest` object. The setUp function can access the " "test globals as the *globs* attribute of the test passed." msgstr "" +"L'option *setUp* précise une fonction de mise-en-place pour la suite de " +"tests. Ceci est appelé avant l'exécution des tests dans chaque fichier. La " +"fonction *setUp* est passée à un objet :class:`DocTest`. La fonction *setUp* " +"peut accéder aux valeurs globales du test par le biais de l'attribut *globs* " +"du test passé." -#: ../Doc/library/doctest.rst:1029 +#: library/doctest.rst:1029 msgid "" "Optional argument *tearDown* specifies a tear-down function for the test " "suite. This is called after running the tests in each file. The *tearDown* " "function will be passed a :class:`DocTest` object. The setUp function can " "access the test globals as the *globs* attribute of the test passed." msgstr "" +"L'option *tearDown* précise une fonction de démolition pour la suite de " +"tests. Celle-ci est appelée après avoir exécuté les tests dans chaque " +"fichier. La fonction *tearDown* est passée à un objet :class:`DocTest`. La " +"fonction *setUp* peut accéder aux valeurs globales du test par l'attribut " +"*globs* du test passé." -#: ../Doc/library/doctest.rst:1034 ../Doc/library/doctest.rst:1068 +#: library/doctest.rst:1068 msgid "" "Optional argument *globs* is a dictionary containing the initial global " "variables for the tests. A new copy of this dictionary is created for each " "test. By default, *globs* is a new empty dictionary." msgstr "" +"L'option *globs* est un dictionnaire contenant les variables globales " +"initiales pour les tests. Une nouvelle copie de ce dictionnaire est créée " +"pour chaque test. Par défaut, *globs* est un nouveau dictionnaire vide." -#: ../Doc/library/doctest.rst:1038 +#: library/doctest.rst:1038 msgid "" "Optional argument *optionflags* specifies the default doctest options for " "the tests, created by or-ing together individual option flags. See section :" "ref:`doctest-options`. See function :func:`set_unittest_reportflags` below " "for a better way to set reporting options." msgstr "" +"Les options *optionflags* précisent les options par défaut de *doctest* pour " +"les tests, créées en composant par un OU les différentes options " +"individuelles. Voir la section :ref:`doctest-options`. Voir la fonction :" +"func:`set_unittest_reportflags` ci-dessous pour une meilleure façon de " +"préciser des options de rapport." -#: ../Doc/library/doctest.rst:1050 +#: library/doctest.rst:1050 msgid "" "The global ``__file__`` is added to the globals provided to doctests loaded " "from a text file using :func:`DocFileSuite`." msgstr "" +"La valeur globale ``__file__`` est ajoutée aux valeurs globales fournies par " +"les *doctests*, ceux-ci étant téléchargés d'un fichier texte utilisant la " +"fonction :func:`DocFileSuite`." -#: ../Doc/library/doctest.rst:1056 +#: library/doctest.rst:1056 msgid "Convert doctest tests for a module to a :class:`unittest.TestSuite`." msgstr "" +"Convertit les tests *doctest* pour un module donné à une classe :class:" +"`unittest.TestSuite`." -#: ../Doc/library/doctest.rst:1058 +#: library/doctest.rst:1058 msgid "" "The returned :class:`unittest.TestSuite` is to be run by the unittest " "framework and runs each doctest in the module. If any of the doctests fail, " @@ -1125,43 +1654,64 @@ msgid "" "exception is raised showing the name of the file containing the test and a " "(sometimes approximate) line number." msgstr "" +"La classe renvoyée :class:`unittest.TestSuite` doit être exécutée par le " +"cadriciel de test unitaire, afin d'exécuter chaque *doctest* dans le module. " +"Si n'importe lequel des *doctests* échoue, alors le test unitaire de " +"synthèse échoue, et une exception :exc:`failureException` est levée, " +"affichant le nom du fichier contenant le test et un numéro de ligne pouvant " +"être approximatif." -#: ../Doc/library/doctest.rst:1064 +#: library/doctest.rst:1064 msgid "" "Optional argument *module* provides the module to be tested. It can be a " "module object or a (possibly dotted) module name. If not specified, the " "module calling this function is used." msgstr "" +"L'option *module* fournit le module qui sera testé. Il peut prendre la forme " +"d'un objet-module ou celle du nom d'un module (possiblement *dotted*). Si " +"non-précisée, le module appelant cette fonction est utilisé." -#: ../Doc/library/doctest.rst:1072 +#: library/doctest.rst:1072 msgid "" "Optional argument *extraglobs* specifies an extra set of global variables, " "which is merged into *globs*. By default, no extra globals are used." msgstr "" +"L'option *extraglobs* précise un ensemble supplémentaire de variables " +"globales, à fusionner avec *globs*. Par défaut, aucune variable globale " +"supplémentaire est utilisée." -#: ../Doc/library/doctest.rst:1075 +#: library/doctest.rst:1075 msgid "" "Optional argument *test_finder* is the :class:`DocTestFinder` object (or a " "drop-in replacement) that is used to extract doctests from the module." msgstr "" +"L'option *test_finder* est l'instance de :class:`DocTestFinder` (ou un " +"remplacement *drop-in*) qui est utilisée pour extraire les *doctests* à " +"partir du module." -#: ../Doc/library/doctest.rst:1078 +#: library/doctest.rst:1078 msgid "" "Optional arguments *setUp*, *tearDown*, and *optionflags* are the same as " "for function :func:`DocFileSuite` above." msgstr "" +"Les options *setUp*, *tearDown* et *optionflags* sont les mêmes que pour la " +"fonction :func:`DocFileSuite` ci-dessus." -#: ../Doc/library/doctest.rst:1081 +#: library/doctest.rst:1081 msgid "This function uses the same search technique as :func:`testmod`." msgstr "" +"Cette fonction utilise la même technique de recherche que :func:`testmod`." -#: ../Doc/library/doctest.rst:1083 +#: library/doctest.rst:1083 msgid "" ":func:`DocTestSuite` returns an empty :class:`unittest.TestSuite` if " "*module* contains no docstrings instead of raising :exc:`ValueError`." msgstr "" +"La fonction :func:`DocTestSuite` renvoie une instance vide de la classe :" +"class:`unittest.TestSuite` si *module* ne contient aucune *docstring*, et " +"ce, au lieu de lever l'exception :exc:`ValueError`." -#: ../Doc/library/doctest.rst:1088 +#: library/doctest.rst:1088 msgid "" "Under the covers, :func:`DocTestSuite` creates a :class:`unittest.TestSuite` " "out of :class:`doctest.DocTestCase` instances, and :class:`DocTestCase` is a " @@ -1169,15 +1719,24 @@ msgid "" "documented here (it's an internal detail), but studying its code can answer " "questions about the exact details of :mod:`unittest` integration." msgstr "" +"Sous le capot, :func:`DocTestSuite` crée une classe :class:`unittest." +"TestSuite` à partir d'instances de :class:`doctest.DocTestCase` ; de plus, :" +"class:`DocTestCase` est une sous-classe de :class:`unittest.TestCase`. La " +"classe :class:`DocTestCase` n'est pas documentée ici (c'est un détail " +"interne), mais l'étude de son code peut répondre à des questions concernant " +"les détails exacts de l'intégration du module :mod:`doctest`." -#: ../Doc/library/doctest.rst:1094 +#: library/doctest.rst:1094 msgid "" "Similarly, :func:`DocFileSuite` creates a :class:`unittest.TestSuite` out " "of :class:`doctest.DocFileCase` instances, and :class:`DocFileCase` is a " "subclass of :class:`DocTestCase`." msgstr "" +"De la même façon, :func:`DocFileSuite` crée une classe :class:`unittest." +"TestSuite` à partir des instances :class:`doctest.DocFileCase`, où :class:" +"`DocFileCase` est une sous-classe de :class:`DocTestCase`." -#: ../Doc/library/doctest.rst:1098 +#: library/doctest.rst:1098 msgid "" "So both ways of creating a :class:`unittest.TestSuite` run instances of :" "class:`DocTestCase`. This is important for a subtle reason: when you run :" @@ -1189,24 +1748,43 @@ msgid "" "specified by command line options), but there's no way to pass options " "through :mod:`unittest` to :mod:`doctest` test runners." msgstr "" - -#: ../Doc/library/doctest.rst:1108 +"Ainsi, les deux façons de créer une :class:`unittest.TestSuite` utilisent " +"des instances de la classe :class:`DocTestCase`. Ceci est important pour une " +"raison subtile : lorsque vous exécutez par vous-même des fonctions :mod:" +"`doctest`, vous pouvez contrôler les options :mod:`doctest` qui sont " +"utilisées de façon directe, en passant des options aux fonctions :mod:" +"`doctest`. Toutefois, si vous écrivez un cadriciel :mod:`unittest`, alors :" +"mod:`unittest` a le contrôle final de quand et de comment les tests sont " +"exécutés. La personne qui écrit le cadriciel souhaite habituellement " +"contrôler les options de rapport de :mod:`doctest` (qui sont peut-être, par " +"exemple, spécifiées en options de ligne de commande), sauf qu'il n'y a pas " +"de moyen de spécifier des options à l'attention des exécuteurs de test de :" +"mod:`doctest` à partir de :mod:`unittest`." + +#: library/doctest.rst:1108 msgid "" "For this reason, :mod:`doctest` also supports a notion of :mod:`doctest` " "reporting flags specific to :mod:`unittest` support, via this function:" msgstr "" +"Pour cette raison, :mod:`doctest` implémente le concept d'options de rapport " +"de :mod:`doctest` qui soit spécifique à :mod:`unittest`, par le biais de " +"cette fonction :" -#: ../Doc/library/doctest.rst:1114 +#: library/doctest.rst:1114 msgid "Set the :mod:`doctest` reporting flags to use." msgstr "" +"Voir les options de ligne de commandes de :mod:`doctest` pour l'utilisation." -#: ../Doc/library/doctest.rst:1116 +#: library/doctest.rst:1116 msgid "" "Argument *flags* takes the :ref:`bitwise OR ` of option flags. See " "section :ref:`doctest-options`. Only \"reporting flags\" can be used." msgstr "" +"L'argument *flags* prend la :ref:`composition OU bit à bit ` des " +"arguments. Voir la section :ref:`doctest-options`. Ce sont uniquement les " +"\"options de rapport\" qui peuvent être utilisées." -#: ../Doc/library/doctest.rst:1119 +#: library/doctest.rst:1119 msgid "" "This is a module-global setting, and affects all future doctests run by " "module :mod:`unittest`: the :meth:`runTest` method of :class:`DocTestCase` " @@ -1219,18 +1797,32 @@ msgid "" "were specified when the :class:`DocTestCase` instance was constructed, :mod:" "`doctest`'s :mod:`unittest` reporting flags are ignored." msgstr "" - -#: ../Doc/library/doctest.rst:1130 +"Ceci est un paramètre au niveau global du module, et affecte tous les futurs " +"*doctests* exécutés par le module :mod:`unittest` : la méthode :meth:" +"`runTest` de :class:`DocTestCase` prend en compte les options précisées pour " +"le cas de test lorsque l'instance de la classe :class:`DocTestCase` a été " +"construite. Si aucune option de rapport n'a été précisée (ce qui est le cas " +"typique et attendu), les options de rapport du module :mod:`unitest` de :mod:" +"`doctest` sont :ref:`` vers les options, et " +"les options obtenues sont passées à l'instance de la classe :class:" +"`DocTestRunner` créée pour exécuter le *doctest*. Si une seule option de " +"rapport a été précisée lorsque l'instance de :class:`DocTestCase` a été " +"construite, les options de rapport du module :mod:`unittest` de :mod:" +"`doctest` sont ignorées." + +#: library/doctest.rst:1130 msgid "" "The value of the :mod:`unittest` reporting flags in effect before the " "function was called is returned by the function." msgstr "" +"La valeur prise par les options de rapport de :mod:`unittest` et ce, avant " +"que la fonction n'ait été appelée, est renvoyée par la fonction." -#: ../Doc/library/doctest.rst:1137 +#: library/doctest.rst:1137 msgid "Advanced API" -msgstr "" +msgstr "API avancé" -#: ../Doc/library/doctest.rst:1139 +#: library/doctest.rst:1139 msgid "" "The basic API is a simple wrapper that's intended to make doctest easy to " "use. It is fairly flexible, and should meet most users' needs; however, if " @@ -1238,85 +1830,91 @@ msgid "" "doctest's capabilities, then you should use the advanced API." msgstr "" -#: ../Doc/library/doctest.rst:1144 +#: library/doctest.rst:1144 msgid "" "The advanced API revolves around two container classes, which are used to " "store the interactive examples extracted from doctest cases:" msgstr "" -#: ../Doc/library/doctest.rst:1147 +#: library/doctest.rst:1147 msgid "" ":class:`Example`: A single Python :term:`statement`, paired with its " "expected output." msgstr "" +":class:`Example` : Un unique :term:`statement` Python, pris conjointement " +"avec sa sortie attendue." -#: ../Doc/library/doctest.rst:1150 +#: library/doctest.rst:1150 msgid "" ":class:`DocTest`: A collection of :class:`Example`\\ s, typically extracted " "from a single docstring or text file." msgstr "" +":class:`DocTest` : Une collection de :class:`Example`, habituellement " +"extraits d'une seule *docstring* ou fichier texte." -#: ../Doc/library/doctest.rst:1153 +#: library/doctest.rst:1153 msgid "" "Additional processing classes are defined to find, parse, and run, and check " "doctest examples:" msgstr "" -#: ../Doc/library/doctest.rst:1156 +#: library/doctest.rst:1156 msgid "" ":class:`DocTestFinder`: Finds all docstrings in a given module, and uses a :" "class:`DocTestParser` to create a :class:`DocTest` from every docstring that " "contains interactive examples." msgstr "" -#: ../Doc/library/doctest.rst:1160 +#: library/doctest.rst:1160 msgid "" ":class:`DocTestParser`: Creates a :class:`DocTest` object from a string " "(such as an object's docstring)." msgstr "" -#: ../Doc/library/doctest.rst:1163 +#: library/doctest.rst:1163 msgid "" ":class:`DocTestRunner`: Executes the examples in a :class:`DocTest`, and " "uses an :class:`OutputChecker` to verify their output." msgstr "" -#: ../Doc/library/doctest.rst:1166 +#: library/doctest.rst:1166 msgid "" ":class:`OutputChecker`: Compares the actual output from a doctest example " "with the expected output, and decides whether they match." msgstr "" -#: ../Doc/library/doctest.rst:1169 +#: library/doctest.rst:1169 msgid "" "The relationships among these processing classes are summarized in the " "following diagram::" msgstr "" -#: ../Doc/library/doctest.rst:1185 +#: library/doctest.rst:1185 msgid "DocTest Objects" -msgstr "" +msgstr "Objets *doctest*" -#: ../Doc/library/doctest.rst:1190 +#: library/doctest.rst:1190 msgid "" "A collection of doctest examples that should be run in a single namespace. " "The constructor arguments are used to initialize the attributes of the same " "names." msgstr "" -#: ../Doc/library/doctest.rst:1194 +#: library/doctest.rst:1194 msgid "" ":class:`DocTest` defines the following attributes. They are initialized by " "the constructor, and should not be modified directly." msgstr "" +":class:`DocTest` définit les attributs suivants. Ils sont initialisés par le " +"constructeur, et ne doivent pas être modifiés directement." -#: ../Doc/library/doctest.rst:1200 +#: library/doctest.rst:1200 msgid "" "A list of :class:`Example` objects encoding the individual interactive " "Python examples that should be run by this test." msgstr "" -#: ../Doc/library/doctest.rst:1206 +#: library/doctest.rst:1206 msgid "" "The namespace (aka globals) that the examples should be run in. This is a " "dictionary mapping names to values. Any changes to the namespace made by " @@ -1324,57 +1922,57 @@ msgid "" "`globs` after the test is run." msgstr "" -#: ../Doc/library/doctest.rst:1214 +#: library/doctest.rst:1214 msgid "" "A string name identifying the :class:`DocTest`. Typically, this is the name " "of the object or file that the test was extracted from." msgstr "" -#: ../Doc/library/doctest.rst:1220 +#: library/doctest.rst:1220 msgid "" "The name of the file that this :class:`DocTest` was extracted from; or " "``None`` if the filename is unknown, or if the :class:`DocTest` was not " "extracted from a file." msgstr "" -#: ../Doc/library/doctest.rst:1227 +#: library/doctest.rst:1227 msgid "" "The line number within :attr:`filename` where this :class:`DocTest` begins, " "or ``None`` if the line number is unavailable. This line number is zero-" "based with respect to the beginning of the file." msgstr "" -#: ../Doc/library/doctest.rst:1234 +#: library/doctest.rst:1234 msgid "" "The string that the test was extracted from, or ``None`` if the string is " "unavailable, or if the test was not extracted from a string." msgstr "" -#: ../Doc/library/doctest.rst:1241 +#: library/doctest.rst:1241 msgid "Example Objects" -msgstr "" +msgstr "Exemples d'objets" -#: ../Doc/library/doctest.rst:1246 +#: library/doctest.rst:1246 msgid "" "A single interactive example, consisting of a Python statement and its " "expected output. The constructor arguments are used to initialize the " "attributes of the same names." msgstr "" -#: ../Doc/library/doctest.rst:1251 +#: library/doctest.rst:1251 msgid "" ":class:`Example` defines the following attributes. They are initialized by " "the constructor, and should not be modified directly." msgstr "" -#: ../Doc/library/doctest.rst:1257 +#: library/doctest.rst:1257 msgid "" "A string containing the example's source code. This source code consists of " "a single Python statement, and always ends with a newline; the constructor " "adds a newline when necessary." msgstr "" -#: ../Doc/library/doctest.rst:1264 +#: library/doctest.rst:1264 msgid "" "The expected output from running the example's source code (either from " "stdout, or a traceback in case of exception). :attr:`want` ends with a " @@ -1382,7 +1980,7 @@ msgid "" "The constructor adds a newline when necessary." msgstr "" -#: ../Doc/library/doctest.rst:1272 +#: library/doctest.rst:1272 msgid "" "The exception message generated by the example, if the example is expected " "to generate an exception; or ``None`` if it is not expected to generate an " @@ -1391,20 +1989,20 @@ msgid "" "unless it's ``None``. The constructor adds a newline if needed." msgstr "" -#: ../Doc/library/doctest.rst:1281 +#: library/doctest.rst:1281 msgid "" "The line number within the string containing this example where the example " "begins. This line number is zero-based with respect to the beginning of the " "containing string." msgstr "" -#: ../Doc/library/doctest.rst:1288 +#: library/doctest.rst:1288 msgid "" "The example's indentation in the containing string, i.e., the number of " "space characters that precede the example's first prompt." msgstr "" -#: ../Doc/library/doctest.rst:1294 +#: library/doctest.rst:1294 msgid "" "A dictionary mapping from option flags to ``True`` or ``False``, which is " "used to override default options for this example. Any option flags not " @@ -1413,11 +2011,11 @@ msgid "" "are set." msgstr "" -#: ../Doc/library/doctest.rst:1303 +#: library/doctest.rst:1303 msgid "DocTestFinder objects" -msgstr "" +msgstr "Objets *DocTestFinder*" -#: ../Doc/library/doctest.rst:1308 +#: library/doctest.rst:1308 msgid "" "A processing class used to extract the :class:`DocTest`\\ s that are " "relevant to a given object, from its docstring and the docstrings of its " @@ -1425,48 +2023,48 @@ msgid "" "classes, functions, methods, staticmethods, classmethods, and properties." msgstr "" -#: ../Doc/library/doctest.rst:1313 +#: library/doctest.rst:1313 msgid "" "The optional argument *verbose* can be used to display the objects searched " "by the finder. It defaults to ``False`` (no output)." msgstr "" -#: ../Doc/library/doctest.rst:1316 +#: library/doctest.rst:1316 msgid "" "The optional argument *parser* specifies the :class:`DocTestParser` object " "(or a drop-in replacement) that is used to extract doctests from docstrings." msgstr "" -#: ../Doc/library/doctest.rst:1319 +#: library/doctest.rst:1319 msgid "" "If the optional argument *recurse* is false, then :meth:`DocTestFinder.find` " "will only examine the given object, and not any contained objects." msgstr "" -#: ../Doc/library/doctest.rst:1322 +#: library/doctest.rst:1322 msgid "" "If the optional argument *exclude_empty* is false, then :meth:`DocTestFinder." "find` will include tests for objects with empty docstrings." msgstr "" -#: ../Doc/library/doctest.rst:1326 +#: library/doctest.rst:1326 msgid ":class:`DocTestFinder` defines the following method:" -msgstr "" +msgstr "La classe :class:`DocTestFinder` définit la méthode suivante :" -#: ../Doc/library/doctest.rst:1331 +#: library/doctest.rst:1331 msgid "" "Return a list of the :class:`DocTest`\\ s that are defined by *obj*'s " "docstring, or by any of its contained objects' docstrings." msgstr "" -#: ../Doc/library/doctest.rst:1334 +#: library/doctest.rst:1334 msgid "" "The optional argument *name* specifies the object's name; this name will be " "used to construct names for the returned :class:`DocTest`\\ s. If *name* is " "not specified, then ``obj.__name__`` is used." msgstr "" -#: ../Doc/library/doctest.rst:1338 +#: library/doctest.rst:1338 msgid "" "The optional parameter *module* is the module that contains the given " "object. If the module is not specified or is ``None``, then the test finder " @@ -1474,26 +2072,26 @@ msgid "" "module is used:" msgstr "" -#: ../Doc/library/doctest.rst:1342 +#: library/doctest.rst:1342 msgid "As a default namespace, if *globs* is not specified." msgstr "" -#: ../Doc/library/doctest.rst:1344 +#: library/doctest.rst:1344 msgid "" "To prevent the DocTestFinder from extracting DocTests from objects that are " "imported from other modules. (Contained objects with modules other than " "*module* are ignored.)" msgstr "" -#: ../Doc/library/doctest.rst:1348 +#: library/doctest.rst:1348 msgid "To find the name of the file containing the object." -msgstr "" +msgstr "Afin de trouver le nom du fichier contenant l'objet." -#: ../Doc/library/doctest.rst:1350 +#: library/doctest.rst:1350 msgid "To help find the line number of the object within its file." msgstr "" -#: ../Doc/library/doctest.rst:1352 +#: library/doctest.rst:1352 msgid "" "If *module* is ``False``, no attempt to find the module will be made. This " "is obscure, of use mostly in testing doctest itself: if *module* is " @@ -1502,7 +2100,7 @@ msgid "" "contained objects will (recursively) be searched for doctests." msgstr "" -#: ../Doc/library/doctest.rst:1358 +#: library/doctest.rst:1358 msgid "" "The globals for each :class:`DocTest` is formed by combining *globs* and " "*extraglobs* (bindings in *extraglobs* override bindings in *globs*). A new " @@ -1512,34 +2110,39 @@ msgid "" "defaults to ``{}``." msgstr "" -#: ../Doc/library/doctest.rst:1369 +#: library/doctest.rst:1369 msgid "DocTestParser objects" -msgstr "" +msgstr "Objets *DocTestParser*" -#: ../Doc/library/doctest.rst:1374 +#: library/doctest.rst:1374 msgid "" "A processing class used to extract interactive examples from a string, and " "use them to create a :class:`DocTest` object." msgstr "" -#: ../Doc/library/doctest.rst:1378 ../Doc/library/doctest.rst:1446 +#: library/doctest.rst:1446 msgid ":class:`DocTestParser` defines the following methods:" -msgstr "" +msgstr "La classe :class:`DocTestFinder` définit les méthodes suivantes :" -#: ../Doc/library/doctest.rst:1383 +#: library/doctest.rst:1383 msgid "" "Extract all doctest examples from the given string, and collect them into a :" "class:`DocTest` object." msgstr "" +"Extrait tous les exemples de *doctests* à partir de la chaîne de caractère " +"donnée, et les réunit dans un objet :class:`DocTest`." -#: ../Doc/library/doctest.rst:1386 +#: library/doctest.rst:1386 msgid "" "*globs*, *name*, *filename*, and *lineno* are attributes for the new :class:" "`DocTest` object. See the documentation for :class:`DocTest` for more " "information." msgstr "" +"Notez que *globs*, *name*, *filname* et *lineno* sont des attributs pour le " +"nouvel objet :class:`DocTest`. Voir la documentation pour :class:`DocTest` " +"pour plus d'information." -#: ../Doc/library/doctest.rst:1393 +#: library/doctest.rst:1393 msgid "" "Extract all doctest examples from the given string, and return them as a " "list of :class:`Example` objects. Line numbers are 0-based. The optional " @@ -1547,7 +2150,7 @@ msgid "" "error messages." msgstr "" -#: ../Doc/library/doctest.rst:1400 +#: library/doctest.rst:1400 msgid "" "Divide the given string into examples and intervening text, and return them " "as a list of alternating :class:`Example`\\ s and strings. Line numbers for " @@ -1555,17 +2158,17 @@ msgid "" "name identifying this string, and is only used for error messages." msgstr "" -#: ../Doc/library/doctest.rst:1409 +#: library/doctest.rst:1409 msgid "DocTestRunner objects" -msgstr "" +msgstr "Objets *DocTestRunner*" -#: ../Doc/library/doctest.rst:1414 +#: library/doctest.rst:1414 msgid "" "A processing class used to execute and verify the interactive examples in a :" "class:`DocTest`." msgstr "" -#: ../Doc/library/doctest.rst:1417 +#: library/doctest.rst:1417 msgid "" "The comparison between expected outputs and actual outputs is done by an :" "class:`OutputChecker`. This comparison may be customized with a number of " @@ -1575,7 +2178,7 @@ msgid "" "constructor." msgstr "" -#: ../Doc/library/doctest.rst:1423 +#: library/doctest.rst:1423 msgid "" "The test runner's display output can be controlled in two ways. First, an " "output function can be passed to :meth:`TestRunner.run`; this function will " @@ -1586,14 +2189,14 @@ msgid "" "`report_unexpected_exception`, and :meth:`report_failure`." msgstr "" -#: ../Doc/library/doctest.rst:1431 +#: library/doctest.rst:1431 msgid "" "The optional keyword argument *checker* specifies the :class:`OutputChecker` " "object (or drop-in replacement) that should be used to compare the expected " "outputs to the actual outputs of doctest examples." msgstr "" -#: ../Doc/library/doctest.rst:1435 +#: library/doctest.rst:1435 msgid "" "The optional keyword argument *verbose* controls the :class:" "`DocTestRunner`'s verbosity. If *verbose* is ``True``, then information is " @@ -1602,56 +2205,56 @@ msgid "" "verbose output is used iff the command-line switch ``-v`` is used." msgstr "" -#: ../Doc/library/doctest.rst:1441 +#: library/doctest.rst:1441 msgid "" "The optional keyword argument *optionflags* can be used to control how the " "test runner compares expected output to actual output, and how it displays " "failures. For more information, see section :ref:`doctest-options`." msgstr "" -#: ../Doc/library/doctest.rst:1451 +#: library/doctest.rst:1451 msgid "" "Report that the test runner is about to process the given example. This " "method is provided to allow subclasses of :class:`DocTestRunner` to " "customize their output; it should not be called directly." msgstr "" -#: ../Doc/library/doctest.rst:1455 +#: library/doctest.rst:1455 msgid "" "*example* is the example about to be processed. *test* is the test " "*containing example*. *out* is the output function that was passed to :meth:" "`DocTestRunner.run`." msgstr "" -#: ../Doc/library/doctest.rst:1462 +#: library/doctest.rst:1462 msgid "" "Report that the given example ran successfully. This method is provided to " "allow subclasses of :class:`DocTestRunner` to customize their output; it " "should not be called directly." msgstr "" -#: ../Doc/library/doctest.rst:1466 ../Doc/library/doctest.rst:1477 +#: library/doctest.rst:1477 msgid "" "*example* is the example about to be processed. *got* is the actual output " "from the example. *test* is the test containing *example*. *out* is the " "output function that was passed to :meth:`DocTestRunner.run`." msgstr "" -#: ../Doc/library/doctest.rst:1473 +#: library/doctest.rst:1473 msgid "" "Report that the given example failed. This method is provided to allow " "subclasses of :class:`DocTestRunner` to customize their output; it should " "not be called directly." msgstr "" -#: ../Doc/library/doctest.rst:1484 +#: library/doctest.rst:1484 msgid "" "Report that the given example raised an unexpected exception. This method is " "provided to allow subclasses of :class:`DocTestRunner` to customize their " "output; it should not be called directly." msgstr "" -#: ../Doc/library/doctest.rst:1488 +#: library/doctest.rst:1488 msgid "" "*example* is the example about to be processed. *exc_info* is a tuple " "containing information about the unexpected exception (as returned by :func:" @@ -1659,13 +2262,13 @@ msgid "" "output function that was passed to :meth:`DocTestRunner.run`." msgstr "" -#: ../Doc/library/doctest.rst:1496 +#: library/doctest.rst:1496 msgid "" "Run the examples in *test* (a :class:`DocTest` object), and display the " "results using the writer function *out*." msgstr "" -#: ../Doc/library/doctest.rst:1499 +#: library/doctest.rst:1499 msgid "" "The examples are run in the namespace ``test.globs``. If *clear_globs* is " "true (the default), then this namespace will be cleared after the test runs, " @@ -1673,39 +2276,39 @@ msgid "" "after the test completes, then use *clear_globs=False*." msgstr "" -#: ../Doc/library/doctest.rst:1504 +#: library/doctest.rst:1504 msgid "" "*compileflags* gives the set of flags that should be used by the Python " "compiler when running the examples. If not specified, then it will default " "to the set of future-import flags that apply to *globs*." msgstr "" -#: ../Doc/library/doctest.rst:1508 +#: library/doctest.rst:1508 msgid "" "The output of each example is checked using the :class:`DocTestRunner`'s " "output checker, and the results are formatted by the :meth:`DocTestRunner." "report_\\*` methods." msgstr "" -#: ../Doc/library/doctest.rst:1515 +#: library/doctest.rst:1515 msgid "" "Print a summary of all the test cases that have been run by this " "DocTestRunner, and return a :term:`named tuple` ``TestResults(failed, " "attempted)``." msgstr "" -#: ../Doc/library/doctest.rst:1518 +#: library/doctest.rst:1518 msgid "" "The optional *verbose* argument controls how detailed the summary is. If " "the verbosity is not specified, then the :class:`DocTestRunner`'s verbosity " "is used." msgstr "" -#: ../Doc/library/doctest.rst:1525 +#: library/doctest.rst:1525 msgid "OutputChecker objects" -msgstr "" +msgstr "Objets *OutputChecker*" -#: ../Doc/library/doctest.rst:1530 +#: library/doctest.rst:1530 msgid "" "A class used to check the whether the actual output from a doctest example " "matches the expected output. :class:`OutputChecker` defines two methods: :" @@ -1714,11 +2317,11 @@ msgid "" "string describing the differences between two outputs." msgstr "" -#: ../Doc/library/doctest.rst:1537 +#: library/doctest.rst:1537 msgid ":class:`OutputChecker` defines the following methods:" -msgstr "" +msgstr "La classe :class:`OutputChecker` définit les méthodes suivantes :" -#: ../Doc/library/doctest.rst:1541 +#: library/doctest.rst:1541 msgid "" "Return ``True`` iff the actual output from an example (*got*) matches the " "expected output (*want*). These strings are always considered to match if " @@ -1727,28 +2330,31 @@ msgid "" "`doctest-options` for more information about option flags." msgstr "" -#: ../Doc/library/doctest.rst:1550 +#: library/doctest.rst:1550 msgid "" "Return a string describing the differences between the expected output for a " "given example (*example*) and the actual output (*got*). *optionflags* is " "the set of option flags used to compare *want* and *got*." msgstr "" -#: ../Doc/library/doctest.rst:1558 +#: library/doctest.rst:1558 msgid "Debugging" -msgstr "" +msgstr "Débogage" -#: ../Doc/library/doctest.rst:1560 +#: library/doctest.rst:1560 msgid "Doctest provides several mechanisms for debugging doctest examples:" msgstr "" +"*Doctest* fournit plusieurs mécanismes pour déboguer des exemples *doctest* :" -#: ../Doc/library/doctest.rst:1562 +#: library/doctest.rst:1562 msgid "" "Several functions convert doctests to executable Python programs, which can " "be run under the Python debugger, :mod:`pdb`." msgstr "" +"Plusieurs fonctions convertissent les *doctests* en programmes Python " +"exécutables, qui peuvent être exécutés grâce au débogueur Python, :mod:`pdb`." -#: ../Doc/library/doctest.rst:1565 +#: library/doctest.rst:1565 msgid "" "The :class:`DebugRunner` class is a subclass of :class:`DocTestRunner` that " "raises an exception for the first failing example, containing information " @@ -1756,13 +2362,13 @@ msgid "" "debugging on the example." msgstr "" -#: ../Doc/library/doctest.rst:1570 +#: library/doctest.rst:1570 msgid "" "The :mod:`unittest` cases generated by :func:`DocTestSuite` support the :" "meth:`debug` method defined by :class:`unittest.TestCase`." msgstr "" -#: ../Doc/library/doctest.rst:1573 +#: library/doctest.rst:1573 msgid "" "You can add a call to :func:`pdb.set_trace` in a doctest example, and you'll " "drop into the Python debugger when that line is executed. Then you can " @@ -1770,21 +2376,21 @@ msgid "" "`a.py` contains just this module docstring::" msgstr "" -#: ../Doc/library/doctest.rst:1588 +#: library/doctest.rst:1588 msgid "Then an interactive Python session may look like this::" -msgstr "" +msgstr "Alors une séance interactive de Python peut ressembler à ceci ::" -#: ../Doc/library/doctest.rst:1621 +#: library/doctest.rst:1621 msgid "" "Functions that convert doctests to Python code, and possibly run the " "synthesized code under the debugger:" msgstr "" -#: ../Doc/library/doctest.rst:1627 +#: library/doctest.rst:1627 msgid "Convert text with examples to a script." -msgstr "" +msgstr "Convertit du texte contenant des exemples en un script." -#: ../Doc/library/doctest.rst:1629 +#: library/doctest.rst:1629 msgid "" "Argument *s* is a string containing doctest examples. The string is " "converted to a Python script, where doctest examples in *s* are converted to " @@ -1792,22 +2398,25 @@ msgid "" "generated script is returned as a string. For example, ::" msgstr "" -#: ../Doc/library/doctest.rst:1644 +#: library/doctest.rst:1644 msgid "displays::" msgstr "" -#: ../Doc/library/doctest.rst:1654 +#: library/doctest.rst:1654 msgid "" "This function is used internally by other functions (see below), but can " "also be useful when you want to transform an interactive Python session into " "a Python script." msgstr "" +"Cette fonction est utilisée à l'interne par d'autres fonctions (voir ci-" +"bas), mais peut aussi être utile lorsque l'on souhaite transformer une " +"séance interactive de Python en script Python." -#: ../Doc/library/doctest.rst:1661 +#: library/doctest.rst:1661 msgid "Convert the doctest for an object to a script." -msgstr "" +msgstr "Convertit en script l'objet *doctest*." -#: ../Doc/library/doctest.rst:1663 +#: library/doctest.rst:1663 msgid "" "Argument *module* is a module object, or dotted name of a module, containing " "the object whose doctests are of interest. Argument *name* is the name " @@ -1817,17 +2426,19 @@ msgid "" "module :file:`a.py` contains a top-level function :func:`f`, then ::" msgstr "" -#: ../Doc/library/doctest.rst:1673 +#: library/doctest.rst:1673 msgid "" "prints a script version of function :func:`f`'s docstring, with doctests " "converted to code, and the rest placed in comments." msgstr "" +"affiche une version script de la *docstring* de la fonction :func:`f`, avec " +"des *doctests* convertis en code, et le reste dans les commentaires." -#: ../Doc/library/doctest.rst:1679 +#: library/doctest.rst:1679 msgid "Debug the doctests for an object." -msgstr "" +msgstr "Débogue les *doctests* pour un objet." -#: ../Doc/library/doctest.rst:1681 +#: library/doctest.rst:1681 msgid "" "The *module* and *name* arguments are the same as for function :func:" "`testsource` above. The synthesized Python script for the named object's " @@ -1835,13 +2446,15 @@ msgid "" "the control of the Python debugger, :mod:`pdb`." msgstr "" -#: ../Doc/library/doctest.rst:1686 +#: library/doctest.rst:1686 msgid "" "A shallow copy of ``module.__dict__`` is used for both local and global " "execution context." msgstr "" +"Une copie superficielle de ``module.__dict__`` est utilisée à la fois pour " +"les contextes d'exécution locaux et globaux." -#: ../Doc/library/doctest.rst:1689 +#: library/doctest.rst:1689 msgid "" "Optional argument *pm* controls whether post-mortem debugging is used. If " "*pm* has a true value, the script file is run directly, and the debugger " @@ -1853,30 +2466,39 @@ msgid "" "to :func:`pdb.run`." msgstr "" -#: ../Doc/library/doctest.rst:1700 +#: library/doctest.rst:1700 msgid "Debug the doctests in a string." -msgstr "" +msgstr "Débogue les *doctests* dans une chaîne de caractères." -#: ../Doc/library/doctest.rst:1702 +#: library/doctest.rst:1702 msgid "" "This is like function :func:`debug` above, except that a string containing " "doctest examples is specified directly, via the *src* argument." msgstr "" +"Ceci est similaire à la fonction :func:`debug` décrite ci-haut, mis-à-part " +"qu'une chaîne de caractères contenant des exemples *doctest* est définie " +"directement, par l'option *src*." -#: ../Doc/library/doctest.rst:1705 +#: library/doctest.rst:1705 msgid "" "Optional argument *pm* has the same meaning as in function :func:`debug` " "above." msgstr "" +"L'option *pm* a la même définition que dans la fonction :func:`debug` ci-" +"haut." -#: ../Doc/library/doctest.rst:1707 +#: library/doctest.rst:1707 msgid "" "Optional argument *globs* gives a dictionary to use as both local and global " "execution context. If not specified, or ``None``, an empty dictionary is " "used. If specified, a shallow copy of the dictionary is used." msgstr "" +"L'option *globs* définit un dictionnaire à utiliser comme contexte " +"d'exécution global et local. Si elle n'est pas définie, ou si ``None``, un " +"dictionnaire vide est utilisé. Si définie, une copie superficielle du " +"dictionnaire est utilisée." -#: ../Doc/library/doctest.rst:1712 +#: library/doctest.rst:1712 msgid "" "The :class:`DebugRunner` class, and the special exceptions it may raise, are " "of most interest to testing framework authors, and will only be sketched " @@ -1884,7 +2506,7 @@ msgid "" "(which is a doctest!) for more details:" msgstr "" -#: ../Doc/library/doctest.rst:1720 +#: library/doctest.rst:1720 msgid "" "A subclass of :class:`DocTestRunner` that raises an exception as soon as a " "failure is encountered. If an unexpected exception occurs, an :exc:" @@ -1894,89 +2516,107 @@ msgid "" "the actual output." msgstr "" -#: ../Doc/library/doctest.rst:1727 +#: library/doctest.rst:1727 msgid "" "For information about the constructor parameters and methods, see the " "documentation for :class:`DocTestRunner` in section :ref:`doctest-advanced-" "api`." msgstr "" +"Pour de l'information sur les paramètres et méthodes du constructeur, voir " +"la documentation pour la classe :class:`DocTestrunner` dans la section :reF:" +"`doctest-advanced-api`." -#: ../Doc/library/doctest.rst:1730 +#: library/doctest.rst:1730 msgid "" "There are two exceptions that may be raised by :class:`DebugRunner` " "instances:" msgstr "" +"Il y a deux exceptions qui peuvent être levées par des instances :class:" +"`DebugRunner` :" -#: ../Doc/library/doctest.rst:1735 +#: library/doctest.rst:1735 msgid "" "An exception raised by :class:`DocTestRunner` to signal that a doctest " "example's actual output did not match its expected output. The constructor " "arguments are used to initialize the attributes of the same names." msgstr "" +"Une exception levée par :class:`DocTestRunner` pour signaler que la sortie " +"obtenue suite à un exemple *doctest* ne correspond pas à la sortie attendue. " +"Les arguments du constructeur sont utilisés pour initialiser les attributs " +"des mêmes noms." -#: ../Doc/library/doctest.rst:1739 +#: library/doctest.rst:1739 msgid ":exc:`DocTestFailure` defines the following attributes:" -msgstr "" +msgstr ":exc:`DocTestFailure` définit les attributs suivants :" -#: ../Doc/library/doctest.rst:1744 ../Doc/library/doctest.rst:1768 +#: library/doctest.rst:1768 msgid "The :class:`DocTest` object that was being run when the example failed." msgstr "" +"L'objet issu de la classe :class:`DocTest` qui était en cours d'exécution " +"lorsque l'exemple a échoué." -#: ../Doc/library/doctest.rst:1749 ../Doc/library/doctest.rst:1773 +#: library/doctest.rst:1773 msgid "The :class:`Example` that failed." -msgstr "" +msgstr "L'exemple :class:`Example` qui a échoué." -#: ../Doc/library/doctest.rst:1754 +#: library/doctest.rst:1754 msgid "The example's actual output." -msgstr "" +msgstr "La sortie obtenue par l'exécution de l'exemple." -#: ../Doc/library/doctest.rst:1759 +#: library/doctest.rst:1759 msgid "" "An exception raised by :class:`DocTestRunner` to signal that a doctest " "example raised an unexpected exception. The constructor arguments are used " "to initialize the attributes of the same names." msgstr "" +"Une exception levée par :class:`DocTestRunner` afin de signaler qu'un " +"exemple *doctest* a levé une exception inattendue. Les arguments du " +"constructeur sont utilisés pour initialiser les attributs des mêmes noms." -#: ../Doc/library/doctest.rst:1763 +#: library/doctest.rst:1763 msgid ":exc:`UnexpectedException` defines the following attributes:" -msgstr "" +msgstr ":exc:`UnexpectedException` définit les attributs suivants :" -#: ../Doc/library/doctest.rst:1778 +#: library/doctest.rst:1778 msgid "" "A tuple containing information about the unexpected exception, as returned " "by :func:`sys.exc_info`." msgstr "" +"Un n-uplet contenant l'information au sujet de l'exception inattendue, telle " +"que retourné par :func:`sys.exc_info`." -#: ../Doc/library/doctest.rst:1785 +#: library/doctest.rst:1785 msgid "Soapbox" -msgstr "" +msgstr "Éditorial" -#: ../Doc/library/doctest.rst:1787 +#: library/doctest.rst:1787 msgid "" "As mentioned in the introduction, :mod:`doctest` has grown to have three " "primary uses:" msgstr "" +"Comme mentionné dans l'introduction, :mod:`doctest` a présentement trois " +"usages principaux :" -#: ../Doc/library/doctest.rst:1790 +#: library/doctest.rst:1790 msgid "Checking examples in docstrings." -msgstr "" +msgstr "Vérifier les exemples dans les *docstrings*." -#: ../Doc/library/doctest.rst:1792 +#: library/doctest.rst:1792 msgid "Regression testing." -msgstr "" +msgstr "Test de régression." -#: ../Doc/library/doctest.rst:1794 +#: library/doctest.rst:1794 msgid "Executable documentation / literate testing." -msgstr "" +msgstr "De la documentation exécutable / des tests littéraires." -#: ../Doc/library/doctest.rst:1796 +#: library/doctest.rst:1796 msgid "" "These uses have different requirements, and it is important to distinguish " "them. In particular, filling your docstrings with obscure test cases makes " "for bad documentation." msgstr "" -#: ../Doc/library/doctest.rst:1800 +#: library/doctest.rst:1800 msgid "" "When writing a docstring, choose docstring examples with care. There's an " "art to this that needs to be learned---it may not be natural at first. " @@ -1988,7 +2628,7 @@ msgid "" "\"harmless\" change." msgstr "" -#: ../Doc/library/doctest.rst:1808 +#: library/doctest.rst:1808 msgid "" "Doctest also makes an excellent tool for regression testing, especially if " "you don't skimp on explanatory text. By interleaving prose and examples, it " @@ -2009,13 +2649,13 @@ msgid "" "different results, blurring the distinction between testing and explaining." msgstr "" -#: ../Doc/library/doctest.rst:1826 +#: library/doctest.rst:1826 msgid "" "Regression testing is best confined to dedicated objects or files. There " "are several options for organizing tests:" msgstr "" -#: ../Doc/library/doctest.rst:1829 +#: library/doctest.rst:1829 msgid "" "Write text files containing test cases as interactive examples, and test the " "files using :func:`testfile` or :func:`DocFileSuite`. This is recommended, " @@ -2023,7 +2663,7 @@ msgid "" "doctest." msgstr "" -#: ../Doc/library/doctest.rst:1834 +#: library/doctest.rst:1834 msgid "" "Define functions named ``_regrtest_topic`` that consist of single " "docstrings, containing test cases for the named topics. These functions can " @@ -2031,27 +2671,36 @@ msgid "" "test file." msgstr "" -#: ../Doc/library/doctest.rst:1838 +#: library/doctest.rst:1838 msgid "" "Define a ``__test__`` dictionary mapping from regression test topics to " "docstrings containing test cases." msgstr "" -#: ../Doc/library/doctest.rst:1841 +#: library/doctest.rst:1841 msgid "" "When you have placed your tests in a module, the module can itself be the " "test runner. When a test fails, you can arrange for your test runner to re-" "run only the failing doctest while you debug the problem. Here is a minimal " "example of such a test runner::" msgstr "" +"Lorsque vous placez vos tests dans un module, le module lui-même peut être " +"l'exécuteur de tests. Lorsqu'un test échoue, vous pouvez signifier à votre " +"exécuteur de tests de rouler une seconde fois uniquement les tests qui " +"échouent et ce, tant que vous travaillez sur le problème. Voici un exemple " +"minimal d'un test exécuteur de tests ::" -#: ../Doc/library/doctest.rst:1863 +#: library/doctest.rst:1863 msgid "Footnotes" msgstr "Notes" -#: ../Doc/library/doctest.rst:1864 +#: library/doctest.rst:1864 msgid "" "Examples containing both expected output and an exception are not supported. " "Trying to guess where one ends and the other begins is too error-prone, and " "that also makes for a confusing test." msgstr "" +"Les exemples contenant à la fois la sortie attendue et une exception ne sont " +"pas supportés. Tenter de deviner où finit l'un et où commence l'autre peut " +"mener à plusieurs erreurs, en plus d'être un test qui soit source de " +"confusion." diff --git a/library/email.charset.po b/library/email.charset.po index d1005bf887..aaac8e479d 100644 --- a/library/email.charset.po +++ b/library/email.charset.po @@ -19,8 +19,9 @@ msgid ":mod:`email.charset`: Representing character sets" msgstr "" #: ../Doc/library/email.charset.rst:7 +#, fuzzy msgid "**Source code:** :source:`Lib/email/charset.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/email/parser.py`" #: ../Doc/library/email.charset.rst:11 msgid "" diff --git a/library/email.compat32-message.po b/library/email.compat32-message.po index 973247aaea..67798e1a76 100644 --- a/library/email.compat32-message.po +++ b/library/email.compat32-message.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-15 18:54+0100\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,13 +14,13 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/library/email.compat32-message.rst:4 +#: library/email.compat32-message.rst:4 msgid "" ":mod:`email.message.Message`: Representing an email message using the :data:" "`~email.policy.compat32` API" msgstr "" -#: ../Doc/library/email.compat32-message.rst:12 +#: library/email.compat32-message.rst:12 msgid "" "The :class:`Message` class is very similar to the :class:`~email.message." "EmailMessage` class, without the methods added by that class, and with the " @@ -30,11 +30,11 @@ msgid "" "legacy code." msgstr "" -#: ../Doc/library/email.compat32-message.rst:19 +#: library/email.compat32-message.rst:19 msgid "The philosophy and structure of the two classes is otherwise the same." msgstr "" -#: ../Doc/library/email.compat32-message.rst:21 +#: library/email.compat32-message.rst:21 msgid "" "This document describes the behavior under the default (for :class:" "`Message`) policy :attr:`~email.policy.Compat32`. If you are going to use " @@ -42,10 +42,10 @@ msgid "" "class instead." msgstr "" -#: ../Doc/library/email.compat32-message.rst:25 +#: library/email.compat32-message.rst:25 msgid "" "An email message consists of *headers* and a *payload*. Headers must be :" -"rfc:`5233` style names and values, where the field name and value are " +"rfc:`5322` style names and values, where the field name and value are " "separated by a colon. The colon is not part of either the field name or the " "field value. The payload may be a simple text message, or a binary object, " "or a structured sequence of sub-messages each with their own set of headers " @@ -54,7 +54,7 @@ msgid "" "`message/rfc822`." msgstr "" -#: ../Doc/library/email.compat32-message.rst:34 +#: library/email.compat32-message.rst:34 msgid "" "The conceptual model provided by a :class:`Message` object is that of an " "ordered dictionary of headers with additional methods for accessing both " @@ -64,7 +64,7 @@ msgid "" "methods must be used to access them." msgstr "" -#: ../Doc/library/email.compat32-message.rst:41 +#: library/email.compat32-message.rst:41 msgid "" "The :class:`Message` pseudo-dictionary is indexed by the header names, which " "must be ASCII values. The values of the dictionary are strings that are " @@ -78,11 +78,11 @@ msgid "" "mimetype:`multipart/\\*` and :mimetype:`message/rfc822`)." msgstr "" -#: ../Doc/library/email.compat32-message.rst:52 +#: library/email.compat32-message.rst:52 msgid "Here are the methods of the :class:`Message` class:" msgstr "" -#: ../Doc/library/email.compat32-message.rst:57 +#: library/email.compat32-message.rst:57 msgid "" "If *policy* is specified (it must be an instance of a :mod:`~email.policy` " "class) use the rules it specifies to update and serialize the representation " @@ -92,11 +92,11 @@ msgid "" "`~email.policy` documentation." msgstr "" -#: ../Doc/library/email.compat32-message.rst:64 +#: library/email.compat32-message.rst:64 msgid "The *policy* keyword argument was added." msgstr "" -#: ../Doc/library/email.compat32-message.rst:69 +#: library/email.compat32-message.rst:69 msgid "" "Return the entire message flattened as a string. When optional *unixfrom* " "is true, the envelope header is included in the returned string. *unixfrom* " @@ -109,15 +109,14 @@ msgid "" "*policy* will be passed to the ``Generator``." msgstr "" -#: ../Doc/library/email.compat32-message.rst:79 -#: ../Doc/library/email.compat32-message.rst:121 +#: library/email.compat32-message.rst:79 library/email.compat32-message.rst:121 msgid "" "Flattening the message may trigger changes to the :class:`Message` if " "defaults need to be filled in to complete the transformation to a string " "(for example, MIME boundaries may be generated or modified)." msgstr "" -#: ../Doc/library/email.compat32-message.rst:83 +#: library/email.compat32-message.rst:83 msgid "" "Note that this method is provided as a convenience and may not always format " "the message the way you want. For example, by default it does not do the " @@ -127,7 +126,7 @@ msgid "" "method directly. For example::" msgstr "" -#: ../Doc/library/email.compat32-message.rst:97 +#: library/email.compat32-message.rst:97 msgid "" "If the message object contains binary data that is not encoded according to " "RFC standards, the non-compliant data will be replaced by unicode \"unknown " @@ -135,17 +134,17 @@ msgid "" "generator.BytesGenerator`.)" msgstr "" -#: ../Doc/library/email.compat32-message.rst:102 +#: library/email.compat32-message.rst:102 msgid "the *policy* keyword argument was added." msgstr "" -#: ../Doc/library/email.compat32-message.rst:107 +#: library/email.compat32-message.rst:107 msgid "" "Equivalent to :meth:`.as_string()`. Allows ``str(msg)`` to produce a string " "containing the formatted message." msgstr "" -#: ../Doc/library/email.compat32-message.rst:113 +#: library/email.compat32-message.rst:113 msgid "" "Return the entire message flattened as a bytes object. When optional " "*unixfrom* is true, the envelope header is included in the returned string. " @@ -155,7 +154,7 @@ msgid "" "specified *policy* will be passed to the ``BytesGenerator``." msgstr "" -#: ../Doc/library/email.compat32-message.rst:125 +#: library/email.compat32-message.rst:125 msgid "" "Note that this method is provided as a convenience and may not always format " "the message the way you want. For example, by default it does not do the " @@ -165,13 +164,13 @@ msgid "" "flatten` method directly. For example::" msgstr "" -#: ../Doc/library/email.compat32-message.rst:145 +#: library/email.compat32-message.rst:145 msgid "" "Equivalent to :meth:`.as_bytes()`. Allows ``bytes(msg)`` to produce a bytes " "object containing the formatted message." msgstr "" -#: ../Doc/library/email.compat32-message.rst:153 +#: library/email.compat32-message.rst:153 msgid "" "Return ``True`` if the message's payload is a list of sub-\\ :class:" "`Message` objects, otherwise return ``False``. When :meth:`is_multipart` " @@ -182,18 +181,18 @@ msgid "" "return ``True`` when the :class:`Message` is of type ``message/rfc822``.)" msgstr "" -#: ../Doc/library/email.compat32-message.rst:165 +#: library/email.compat32-message.rst:165 msgid "" "Set the message's envelope header to *unixfrom*, which should be a string." msgstr "" -#: ../Doc/library/email.compat32-message.rst:170 +#: library/email.compat32-message.rst:170 msgid "" "Return the message's envelope header. Defaults to ``None`` if the envelope " "header was never set." msgstr "" -#: ../Doc/library/email.compat32-message.rst:176 +#: library/email.compat32-message.rst:176 msgid "" "Add the given *payload* to the current payload, which must be ``None`` or a " "list of :class:`Message` objects before the call. After the call, the " @@ -202,14 +201,14 @@ msgid "" "instead." msgstr "" -#: ../Doc/library/email.compat32-message.rst:182 +#: library/email.compat32-message.rst:182 msgid "" "This is a legacy method. On the :class:`~email.emailmessage.EmailMessage` " "class its functionality is replaced by :meth:`~email.message.EmailMessage." "set_content` and the related ``make`` and ``add`` methods." msgstr "" -#: ../Doc/library/email.compat32-message.rst:190 +#: library/email.compat32-message.rst:190 msgid "" "Return the current payload, which will be a list of :class:`Message` objects " "when :meth:`is_multipart` is ``True``, or a string when :meth:`is_multipart` " @@ -217,7 +216,7 @@ msgid "" "modify the message's payload in place." msgstr "" -#: ../Doc/library/email.compat32-message.rst:195 +#: library/email.compat32-message.rst:195 msgid "" "With optional argument *i*, :meth:`get_payload` will return the *i*-th " "element of the payload, counting from zero, if :meth:`is_multipart` is " @@ -227,7 +226,7 @@ msgid "" "exc:`TypeError` is raised." msgstr "" -#: ../Doc/library/email.compat32-message.rst:202 +#: library/email.compat32-message.rst:202 msgid "" "Optional *decode* is a flag indicating whether the payload should be decoded " "or not, according to the :mailheader:`Content-Transfer-Encoding` header. " @@ -243,7 +242,7 @@ msgid "" "or :class:`~email.errors.InvalidBase64CharactersDefect`, respectively)." msgstr "" -#: ../Doc/library/email.compat32-message.rst:216 +#: library/email.compat32-message.rst:216 msgid "" "When *decode* is ``False`` (the default) the body is returned as a string " "without decoding the :mailheader:`Content-Transfer-Encoding`. However, for " @@ -254,28 +253,28 @@ msgid "" "the email package, the body is decoded using the default ASCII charset." msgstr "" -#: ../Doc/library/email.compat32-message.rst:225 +#: library/email.compat32-message.rst:225 msgid "" "This is a legacy method. On the :class:`~email.emailmessage.EmailMessage` " "class its functionality is replaced by :meth:`~email.message.EmailMessage." "get_content` and :meth:`~email.message.EmailMessage.iter_parts`." msgstr "" -#: ../Doc/library/email.compat32-message.rst:233 +#: library/email.compat32-message.rst:233 msgid "" "Set the entire message object's payload to *payload*. It is the client's " "responsibility to ensure the payload invariants. Optional *charset* sets " "the message's default character set; see :meth:`set_charset` for details." msgstr "" -#: ../Doc/library/email.compat32-message.rst:237 +#: library/email.compat32-message.rst:237 msgid "" "This is a legacy method. On the :class:`~email.emailmessage.EmailMessage` " "class its functionality is replaced by :meth:`~email.message.EmailMessage." "set_content`." msgstr "" -#: ../Doc/library/email.compat32-message.rst:244 +#: library/email.compat32-message.rst:244 msgid "" "Set the character set of the payload to *charset*, which can either be a :" "class:`~email.charset.Charset` instance (see :mod:`email.charset`), a string " @@ -286,7 +285,7 @@ msgid "" "Anything else will generate a :exc:`TypeError`." msgstr "" -#: ../Doc/library/email.compat32-message.rst:252 +#: library/email.compat32-message.rst:252 msgid "" "If there is no existing :mailheader:`MIME-Version` header one will be " "added. If there is no existing :mailheader:`Content-Type` header, one will " @@ -303,26 +302,26 @@ msgid "" "not modified." msgstr "" -#: ../Doc/library/email.compat32-message.rst:266 +#: library/email.compat32-message.rst:266 msgid "" "This is a legacy method. On the :class:`~email.emailmessage.EmailMessage` " "class its functionality is replaced by the *charset* parameter of the :meth:" "`email.emailmessage.EmailMessage.set_content` method." msgstr "" -#: ../Doc/library/email.compat32-message.rst:274 +#: library/email.compat32-message.rst:274 msgid "" "Return the :class:`~email.charset.Charset` instance associated with the " "message's payload." msgstr "" -#: ../Doc/library/email.compat32-message.rst:277 +#: library/email.compat32-message.rst:277 msgid "" "This is a legacy method. On the :class:`~email.emailmessage.EmailMessage` " "class it always returns ``None``." msgstr "" -#: ../Doc/library/email.compat32-message.rst:282 +#: library/email.compat32-message.rst:282 msgid "" "The following methods implement a mapping-like interface for accessing the " "message's :rfc:`2822` headers. Note that there are some semantic " @@ -335,19 +334,19 @@ msgid "" "deleted and then re-added are always appended to the end of the header list." msgstr "" -#: ../Doc/library/email.compat32-message.rst:292 +#: library/email.compat32-message.rst:292 msgid "" "These semantic differences are intentional and are biased toward maximal " "convenience." msgstr "" -#: ../Doc/library/email.compat32-message.rst:295 +#: library/email.compat32-message.rst:295 msgid "" "Note that in all cases, any envelope header present in the message is not " "included in the mapping interface." msgstr "" -#: ../Doc/library/email.compat32-message.rst:298 +#: library/email.compat32-message.rst:298 msgid "" "In a model generated from bytes, any header values that (in contravention of " "the RFCs) contain non-ASCII bytes will, when retrieved through this " @@ -355,25 +354,25 @@ msgid "" "charset of `unknown-8bit`." msgstr "" -#: ../Doc/library/email.compat32-message.rst:306 +#: library/email.compat32-message.rst:306 msgid "Return the total number of headers, including duplicates." msgstr "" -#: ../Doc/library/email.compat32-message.rst:311 +#: library/email.compat32-message.rst:311 msgid "" "Return ``True`` if the message object has a field named *name*. Matching is " "done case-insensitively and *name* should not include the trailing colon. " "Used for the ``in`` operator, e.g.::" msgstr "" -#: ../Doc/library/email.compat32-message.rst:321 +#: library/email.compat32-message.rst:321 msgid "" "Return the value of the named header field. *name* should not include the " "colon field separator. If the header is missing, ``None`` is returned; a :" "exc:`KeyError` is never raised." msgstr "" -#: ../Doc/library/email.compat32-message.rst:325 +#: library/email.compat32-message.rst:325 msgid "" "Note that if the named field appears more than once in the message's " "headers, exactly which of those field values will be returned is undefined. " @@ -381,59 +380,59 @@ msgid "" "headers." msgstr "" -#: ../Doc/library/email.compat32-message.rst:333 +#: library/email.compat32-message.rst:333 msgid "" "Add a header to the message with field name *name* and value *val*. The " "field is appended to the end of the message's existing fields." msgstr "" -#: ../Doc/library/email.compat32-message.rst:336 +#: library/email.compat32-message.rst:336 msgid "" "Note that this does *not* overwrite or delete any existing header with the " "same name. If you want to ensure that the new header is the only one " "present in the message with field name *name*, delete the field first, e.g.::" msgstr "" -#: ../Doc/library/email.compat32-message.rst:346 +#: library/email.compat32-message.rst:346 msgid "" "Delete all occurrences of the field with name *name* from the message's " "headers. No exception is raised if the named field isn't present in the " "headers." msgstr "" -#: ../Doc/library/email.compat32-message.rst:353 +#: library/email.compat32-message.rst:353 msgid "Return a list of all the message's header field names." msgstr "" -#: ../Doc/library/email.compat32-message.rst:358 +#: library/email.compat32-message.rst:358 msgid "Return a list of all the message's field values." msgstr "" -#: ../Doc/library/email.compat32-message.rst:363 +#: library/email.compat32-message.rst:363 msgid "" "Return a list of 2-tuples containing all the message's field headers and " "values." msgstr "" -#: ../Doc/library/email.compat32-message.rst:369 +#: library/email.compat32-message.rst:369 msgid "" "Return the value of the named header field. This is identical to :meth:" "`__getitem__` except that optional *failobj* is returned if the named header " "is missing (defaults to ``None``)." msgstr "" -#: ../Doc/library/email.compat32-message.rst:373 +#: library/email.compat32-message.rst:373 msgid "Here are some additional useful methods:" msgstr "" -#: ../Doc/library/email.compat32-message.rst:378 +#: library/email.compat32-message.rst:378 msgid "" "Return a list of all the values for the field named *name*. If there are no " "such named headers in the message, *failobj* is returned (defaults to " "``None``)." msgstr "" -#: ../Doc/library/email.compat32-message.rst:385 +#: library/email.compat32-message.rst:385 msgid "" "Extended header setting. This method is similar to :meth:`__setitem__` " "except that additional header parameters can be provided as keyword " @@ -441,7 +440,7 @@ msgid "" "value for the header." msgstr "" -#: ../Doc/library/email.compat32-message.rst:390 +#: library/email.compat32-message.rst:390 msgid "" "For each item in the keyword argument dictionary *_params*, the key is taken " "as the parameter name, with underscores converted to dashes (since dashes " @@ -458,30 +457,30 @@ msgid "" "``None``." msgstr "" -#: ../Doc/library/email.compat32-message.rst:404 +#: library/email.compat32-message.rst:404 msgid "Here's an example::" msgstr "" -#: ../Doc/library/email.compat32-message.rst:408 +#: library/email.compat32-message.rst:408 msgid "This will add a header that looks like ::" msgstr "" -#: ../Doc/library/email.compat32-message.rst:412 +#: library/email.compat32-message.rst:412 msgid "An example with non-ASCII characters::" msgstr "" -#: ../Doc/library/email.compat32-message.rst:417 +#: library/email.compat32-message.rst:417 msgid "Which produces ::" msgstr "" -#: ../Doc/library/email.compat32-message.rst:424 +#: library/email.compat32-message.rst:424 msgid "" "Replace a header. Replace the first header found in the message that " "matches *_name*, retaining header order and field name case. If no matching " "header was found, a :exc:`KeyError` is raised." msgstr "" -#: ../Doc/library/email.compat32-message.rst:431 +#: library/email.compat32-message.rst:431 msgid "" "Return the message's content type. The returned string is coerced to lower " "case of the form :mimetype:`maintype/subtype`. If there was no :mailheader:" @@ -491,7 +490,7 @@ msgid "" "return a value." msgstr "" -#: ../Doc/library/email.compat32-message.rst:438 +#: library/email.compat32-message.rst:438 msgid "" ":rfc:`2045` defines a message's default type to be :mimetype:`text/plain` " "unless it appears inside a :mimetype:`multipart/digest` container, in which " @@ -500,19 +499,19 @@ msgid "" "the default type be :mimetype:`text/plain`." msgstr "" -#: ../Doc/library/email.compat32-message.rst:447 +#: library/email.compat32-message.rst:447 msgid "" "Return the message's main content type. This is the :mimetype:`maintype` " "part of the string returned by :meth:`get_content_type`." msgstr "" -#: ../Doc/library/email.compat32-message.rst:453 +#: library/email.compat32-message.rst:453 msgid "" "Return the message's sub-content type. This is the :mimetype:`subtype` part " "of the string returned by :meth:`get_content_type`." msgstr "" -#: ../Doc/library/email.compat32-message.rst:459 +#: library/email.compat32-message.rst:459 msgid "" "Return the default content type. Most messages have a default content type " "of :mimetype:`text/plain`, except for messages that are subparts of :" @@ -520,14 +519,14 @@ msgid "" "content type of :mimetype:`message/rfc822`." msgstr "" -#: ../Doc/library/email.compat32-message.rst:467 +#: library/email.compat32-message.rst:467 msgid "" "Set the default content type. *ctype* should either be :mimetype:`text/" "plain` or :mimetype:`message/rfc822`, although this is not enforced. The " "default content type is not stored in the :mailheader:`Content-Type` header." msgstr "" -#: ../Doc/library/email.compat32-message.rst:475 +#: library/email.compat32-message.rst:475 msgid "" "Return the message's :mailheader:`Content-Type` parameters, as a list. The " "elements of the returned list are 2-tuples of key/value pairs, as split on " @@ -537,22 +536,22 @@ msgid "" "`get_param` and is unquoted if optional *unquote* is ``True`` (the default)." msgstr "" -#: ../Doc/library/email.compat32-message.rst:483 +#: library/email.compat32-message.rst:483 msgid "" "Optional *failobj* is the object to return if there is no :mailheader:" "`Content-Type` header. Optional *header* is the header to search instead " "of :mailheader:`Content-Type`." msgstr "" -#: ../Doc/library/email.compat32-message.rst:487 -#: ../Doc/library/email.compat32-message.rst:525 +#: library/email.compat32-message.rst:487 +#: library/email.compat32-message.rst:525 msgid "" "This is a legacy method. On the :class:`~email.emailmessage.EmailMessage` " "class its functionality is replaced by the *params* property of the " "individual header objects returned by the header access methods." msgstr "" -#: ../Doc/library/email.compat32-message.rst:495 +#: library/email.compat32-message.rst:495 msgid "" "Return the value of the :mailheader:`Content-Type` header's parameter " "*param* as a string. If the message has no :mailheader:`Content-Type` " @@ -560,13 +559,13 @@ msgid "" "(defaults to ``None``)." msgstr "" -#: ../Doc/library/email.compat32-message.rst:500 +#: library/email.compat32-message.rst:500 msgid "" "Optional *header* if given, specifies the message header to use instead of :" "mailheader:`Content-Type`." msgstr "" -#: ../Doc/library/email.compat32-message.rst:503 +#: library/email.compat32-message.rst:503 msgid "" "Parameter keys are always compared case insensitively. The return value can " "either be a string, or a 3-tuple if the parameter was :rfc:`2231` encoded. " @@ -576,7 +575,7 @@ msgid "" "``us-ascii`` charset. You can usually ignore ``LANGUAGE``." msgstr "" -#: ../Doc/library/email.compat32-message.rst:511 +#: library/email.compat32-message.rst:511 msgid "" "If your application doesn't care whether the parameter was encoded as in :" "rfc:`2231`, you can collapse the parameter value by calling :func:`email." @@ -585,14 +584,14 @@ msgid "" "value is a tuple, or the original string unquoted if it isn't. For example::" msgstr "" -#: ../Doc/library/email.compat32-message.rst:521 +#: library/email.compat32-message.rst:521 msgid "" "In any case, the parameter value (either the returned string, or the " "``VALUE`` item in the 3-tuple) is always unquoted, unless *unquote* is set " "to ``False``." msgstr "" -#: ../Doc/library/email.compat32-message.rst:534 +#: library/email.compat32-message.rst:534 msgid "" "Set a parameter in the :mailheader:`Content-Type` header. If the parameter " "already exists in the header, its value will be replaced with *value*. If " @@ -601,14 +600,14 @@ msgid "" "value will be appended as per :rfc:`2045`." msgstr "" -#: ../Doc/library/email.compat32-message.rst:540 +#: library/email.compat32-message.rst:540 msgid "" "Optional *header* specifies an alternative header to :mailheader:`Content-" "Type`, and all parameters will be quoted as necessary unless optional " "*requote* is ``False`` (the default is ``True``)." msgstr "" -#: ../Doc/library/email.compat32-message.rst:544 +#: library/email.compat32-message.rst:544 msgid "" "If optional *charset* is specified, the parameter will be encoded according " "to :rfc:`2231`. Optional *language* specifies the RFC 2231 language, " @@ -616,18 +615,18 @@ msgid "" "strings." msgstr "" -#: ../Doc/library/email.compat32-message.rst:549 +#: library/email.compat32-message.rst:549 msgid "" "If *replace* is ``False`` (the default) the header is moved to the end of " "the list of headers. If *replace* is ``True``, the header will be updated " "in place." msgstr "" -#: ../Doc/library/email.compat32-message.rst:553 +#: library/email.compat32-message.rst:553 msgid "``replace`` keyword was added." msgstr "" -#: ../Doc/library/email.compat32-message.rst:558 +#: library/email.compat32-message.rst:558 msgid "" "Remove the given parameter completely from the :mailheader:`Content-Type` " "header. The header will be re-written in place without the parameter or its " @@ -636,14 +635,14 @@ msgid "" "mailheader:`Content-Type`." msgstr "" -#: ../Doc/library/email.compat32-message.rst:567 +#: library/email.compat32-message.rst:567 msgid "" "Set the main type and subtype for the :mailheader:`Content-Type` header. " "*type* must be a string in the form :mimetype:`maintype/subtype`, otherwise " "a :exc:`ValueError` is raised." msgstr "" -#: ../Doc/library/email.compat32-message.rst:571 +#: library/email.compat32-message.rst:571 msgid "" "This method replaces the :mailheader:`Content-Type` header, keeping all the " "parameters in place. If *requote* is ``False``, this leaves the existing " @@ -651,20 +650,20 @@ msgid "" "default)." msgstr "" -#: ../Doc/library/email.compat32-message.rst:576 +#: library/email.compat32-message.rst:576 msgid "" "An alternative header can be specified in the *header* argument. When the :" "mailheader:`Content-Type` header is set a :mailheader:`MIME-Version` header " "is also added." msgstr "" -#: ../Doc/library/email.compat32-message.rst:580 +#: library/email.compat32-message.rst:580 msgid "" "This is a legacy method. On the :class:`~email.emailmessage.EmailMessage` " "class its functionality is replaced by the ``make_`` and ``add_`` methods." msgstr "" -#: ../Doc/library/email.compat32-message.rst:587 +#: library/email.compat32-message.rst:587 msgid "" "Return the value of the ``filename`` parameter of the :mailheader:`Content-" "Disposition` header of the message. If the header does not have a " @@ -674,7 +673,7 @@ msgid "" "always be unquoted as per :func:`email.utils.unquote`." msgstr "" -#: ../Doc/library/email.compat32-message.rst:598 +#: library/email.compat32-message.rst:598 msgid "" "Return the value of the ``boundary`` parameter of the :mailheader:`Content-" "Type` header of the message, or *failobj* if either the header is missing, " @@ -682,7 +681,7 @@ msgid "" "unquoted as per :func:`email.utils.unquote`." msgstr "" -#: ../Doc/library/email.compat32-message.rst:606 +#: library/email.compat32-message.rst:606 msgid "" "Set the ``boundary`` parameter of the :mailheader:`Content-Type` header to " "*boundary*. :meth:`set_boundary` will always quote *boundary* if " @@ -690,7 +689,7 @@ msgid "" "object has no :mailheader:`Content-Type` header." msgstr "" -#: ../Doc/library/email.compat32-message.rst:611 +#: library/email.compat32-message.rst:611 msgid "" "Note that using this method is subtly different than deleting the old :" "mailheader:`Content-Type` header and adding a new one with the new boundary " @@ -700,28 +699,28 @@ msgid "" "the original :mailheader:`Content-Type` header." msgstr "" -#: ../Doc/library/email.compat32-message.rst:621 +#: library/email.compat32-message.rst:621 msgid "" "Return the ``charset`` parameter of the :mailheader:`Content-Type` header, " "coerced to lower case. If there is no :mailheader:`Content-Type` header, or " "if that header has no ``charset`` parameter, *failobj* is returned." msgstr "" -#: ../Doc/library/email.compat32-message.rst:625 +#: library/email.compat32-message.rst:625 msgid "" "Note that this method differs from :meth:`get_charset` which returns the :" "class:`~email.charset.Charset` instance for the default encoding of the " "message body." msgstr "" -#: ../Doc/library/email.compat32-message.rst:631 +#: library/email.compat32-message.rst:631 msgid "" "Return a list containing the character set names in the message. If the " "message is a :mimetype:`multipart`, then the list will contain one element " "for each subpart in the payload, otherwise, it will be a list of length 1." msgstr "" -#: ../Doc/library/email.compat32-message.rst:635 +#: library/email.compat32-message.rst:635 msgid "" "Each item in the list will be a string which is the value of the ``charset`` " "parameter in the :mailheader:`Content-Type` header for the represented " @@ -730,7 +729,7 @@ msgid "" "then that item in the returned list will be *failobj*." msgstr "" -#: ../Doc/library/email.compat32-message.rst:645 +#: library/email.compat32-message.rst:645 msgid "" "Return the lowercased value (without parameters) of the message's :" "mailheader:`Content-Disposition` header if it has one, or ``None``. The " @@ -738,7 +737,7 @@ msgid "" "the message follows :rfc:`2183`." msgstr "" -#: ../Doc/library/email.compat32-message.rst:654 +#: library/email.compat32-message.rst:654 msgid "" "The :meth:`walk` method is an all-purpose generator which can be used to " "iterate over all the parts and subparts of a message object tree, in depth-" @@ -746,13 +745,13 @@ msgid "" "in a ``for`` loop; each iteration returns the next subpart." msgstr "" -#: ../Doc/library/email.compat32-message.rst:659 +#: library/email.compat32-message.rst:659 msgid "" "Here's an example that prints the MIME type of every part of a multipart " "message structure:" msgstr "" -#: ../Doc/library/email.compat32-message.rst:685 +#: library/email.compat32-message.rst:685 msgid "" "``walk`` iterates over the subparts of any part where :meth:`is_multipart` " "returns ``True``, even though ``msg.get_content_maintype() == 'multipart'`` " @@ -760,21 +759,21 @@ msgid "" "``_structure`` debug helper function:" msgstr "" -#: ../Doc/library/email.compat32-message.rst:712 +#: library/email.compat32-message.rst:712 msgid "" "Here the ``message`` parts are not ``multiparts``, but they do contain " "subparts. ``is_multipart()`` returns ``True`` and ``walk`` descends into the " "subparts." msgstr "" -#: ../Doc/library/email.compat32-message.rst:717 +#: library/email.compat32-message.rst:717 msgid "" ":class:`Message` objects can also optionally contain two instance " "attributes, which can be used when generating the plain text of a MIME " "message." msgstr "" -#: ../Doc/library/email.compat32-message.rst:723 +#: library/email.compat32-message.rst:723 msgid "" "The format of a MIME document allows for some text between the blank line " "following the headers, and the first multipart boundary string. Normally, " @@ -784,7 +783,7 @@ msgid "" "can become visible." msgstr "" -#: ../Doc/library/email.compat32-message.rst:730 +#: library/email.compat32-message.rst:730 msgid "" "The *preamble* attribute contains this leading extra-armor text for MIME " "documents. When the :class:`~email.parser.Parser` discovers some text after " @@ -796,26 +795,26 @@ msgid "" "parser` and :mod:`email.generator` for details." msgstr "" -#: ../Doc/library/email.compat32-message.rst:740 +#: library/email.compat32-message.rst:740 msgid "" "Note that if the message object has no preamble, the *preamble* attribute " "will be ``None``." msgstr "" -#: ../Doc/library/email.compat32-message.rst:746 +#: library/email.compat32-message.rst:746 msgid "" "The *epilogue* attribute acts the same way as the *preamble* attribute, " "except that it contains text that appears between the last boundary and the " "end of the message." msgstr "" -#: ../Doc/library/email.compat32-message.rst:750 +#: library/email.compat32-message.rst:750 msgid "" "You do not need to set the epilogue to the empty string in order for the :" "class:`~email.generator.Generator` to print a newline at the end of the file." msgstr "" -#: ../Doc/library/email.compat32-message.rst:757 +#: library/email.compat32-message.rst:757 msgid "" "The *defects* attribute contains a list of all the problems found when " "parsing this message. See :mod:`email.errors` for a detailed description of " diff --git a/library/email.errors.po b/library/email.errors.po index 83db2a2a55..f08fcf0312 100644 --- a/library/email.errors.po +++ b/library/email.errors.po @@ -16,17 +16,19 @@ msgstr "" #: ../Doc/library/email.errors.rst:2 msgid ":mod:`email.errors`: Exception and Defect classes" -msgstr "" +msgstr ":mod:`email.errors` : exceptions et classes pour les anomalies" #: ../Doc/library/email.errors.rst:7 msgid "**Source code:** :source:`Lib/email/errors.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/email/errors.py`" #: ../Doc/library/email.errors.rst:11 msgid "" "The following exception classes are defined in the :mod:`email.errors` " "module:" msgstr "" +"Les classes d'exception suivantes sont définies dans le module :mod:`email." +"errors` :" #: ../Doc/library/email.errors.rst:16 msgid "" @@ -34,6 +36,9 @@ msgid "" "raise. It is derived from the standard :exc:`Exception` class and defines " "no additional methods." msgstr "" +"Exception de base, dont héritent toutes les exceptions du paquet :mod:" +"`email`. Cette classe hérite de la classe native :exc:`Exception` et ne " +"définit aucune méthode additionnelle." #: ../Doc/library/email.errors.rst:23 msgid "" @@ -41,6 +46,9 @@ msgid "" "Parser` class. It is derived from :exc:`MessageError`. This class is also " "used internally by the parser used by :mod:`~email.headerregistry`." msgstr "" +"Exception de base pour les exceptions levées par la classe :class:`~email." +"parser.Parser`. Elle hérite de :exc:`MessageError`. Cette classe est aussi " +"utilisée en interne par l'analyseur de :mod:`~email.headerregistry`." #: ../Doc/library/email.errors.rst:31 msgid "" @@ -53,10 +61,19 @@ msgid "" "header (that is, there is what is supposed to be a continuation line that " "has no leading whitespace and looks like a header)." msgstr "" +"Cette exception, dérivée de :exc:`MessageParseError`, est levée sous " +"différentes conditions lors de l'analyse des en-têtes :rfc:`5322` du " +"message. Lorsque la méthode :meth:`~email.message.EmailMessage." +"set_boundary` est invoquée, elle lève cette erreur si le type du contenu est " +"inconnu. La classe :class:`~email.header.Header` lève cette exception pour " +"certains types d'erreurs provenant du décodage base64. Elle la lève aussi " +"quand un en-tête est créé et qu'il semble contenir un en-tête imbriqué, " +"c'est-à-dire que la ligne qui suit ressemble à un en-tête et ne commence pas " +"par des caractères d'espacement." #: ../Doc/library/email.errors.rst:43 msgid "Deprecated and no longer used." -msgstr "" +msgstr "Obsolète, n'est plus utilisé." #: ../Doc/library/email.errors.rst:48 msgid "" @@ -66,6 +83,12 @@ msgid "" "`multipart` or missing. :exc:`MultipartConversionError` multiply inherits " "from :exc:`MessageError` and the built-in :exc:`TypeError`." msgstr "" +"Cette exception est levée quand le contenu, que la méthode :meth:" +"`add_payload` essaie d'ajouter à l'objet :class:`~email.message.Message`, " +"est déjà un scalaire et que le type principal du message :mailheader:" +"`Content-Type` est manquant ou différent de :mimetype:`multipart`. :exc:" +"`MultipartConversionError` hérite à la fois de :exc:`MessageError` et de :" +"exc:`TypeError`." #: ../Doc/library/email.errors.rst:54 msgid "" @@ -75,6 +98,11 @@ msgid "" "derived from :class:`~email.mime.nonmultipart.MIMENonMultipart` (e.g. :class:" "`~email.mime.image.MIMEImage`)." msgstr "" +"Comme la méthode :meth:`Message.add_payload` est obsolète, cette exception " +"est rarement utilisée. Néanmoins, elle peut être levée si la méthode :meth:" +"`~email.message.Message.attach` est invoquée sur une instance de classe " +"dérivée de :class:`~email.mime.nonmultipart.MIMENonMultipart` (p. ex. :class:" +"`~email.mime.image.MIMEImage`)." #: ../Doc/library/email.errors.rst:62 msgid "" @@ -85,41 +113,60 @@ msgid "" "nested message object would have a defect, but the containing messages would " "not." msgstr "" +"Voici la liste des anomalies que peut identifier :class:`~email.parser." +"FeedParser` pendant l'analyse des messages. Notez que les anomalies sont " +"signalées à l'endroit où elles sont détectées : par exemple, dans le cas " +"d'une malformation de l'en-tête d'un message imbriqué dans un message de " +"type :mimetype:`multipart/alternative`, l'anomalie est signalée sur le " +"message imbriqué seulement." #: ../Doc/library/email.errors.rst:68 msgid "" "All defect classes are subclassed from :class:`email.errors.MessageDefect`." msgstr "" +"Toutes les anomalies sont des sous-classes de :class:`email.errors." +"MessageDefect`." #: ../Doc/library/email.errors.rst:70 msgid "" ":class:`NoBoundaryInMultipartDefect` -- A message claimed to be a multipart, " "but had no :mimetype:`boundary` parameter." msgstr "" +":class:`NoBoundaryInMultipartDefect` — Un message qui prétend être composite " +"(*multipart* en anglais), mais qui ne contient pas de séparateur :mimetype:" +"`boundary`." #: ../Doc/library/email.errors.rst:73 msgid "" ":class:`StartBoundaryNotFoundDefect` -- The start boundary claimed in the :" "mailheader:`Content-Type` header was never found." msgstr "" +":class:`StartBoundaryNotFoundDefect` — Le message ne contient pas le " +"séparateur de départ indiqué dans le :mailheader:`Content-Type`." #: ../Doc/library/email.errors.rst:76 msgid "" ":class:`CloseBoundaryNotFoundDefect` -- A start boundary was found, but no " "corresponding close boundary was ever found." msgstr "" +":class:`CloseBoundaryNotFoundDefect` — Le séparateur de départ a été trouvé, " +"mais pas le séparateur de fin correspondant." #: ../Doc/library/email.errors.rst:81 msgid "" ":class:`FirstHeaderLineIsContinuationDefect` -- The message had a " "continuation line as its first header line." msgstr "" +":class:`FirstHeaderLineIsContinuationDefect` — La première ligne de l'en-" +"tête du message est une ligne de continuation." #: ../Doc/library/email.errors.rst:84 msgid "" ":class:`MisplacedEnvelopeHeaderDefect` - A \"Unix From\" header was found in " "the middle of a header block." msgstr "" +":class:`MisplacedEnvelopeHeaderDefect` — Un en-tête *Unix From* est présent " +"à l'intérieur d'un bloc d'en-tête." #: ../Doc/library/email.errors.rst:87 msgid "" @@ -127,16 +174,21 @@ msgid "" "headers that had no leading white space but contained no ':'. Parsing " "continues assuming that the line represents the first line of the body." msgstr "" +":class:`MissingHeaderBodySeparatorDefect` — Une ligne d'en-tête ne contient " +"pas de caractères d'espacement au début et aucun « : ». L'analyse continue " +"en supposant qu'il s'agit donc de la première ligne du corps du message." #: ../Doc/library/email.errors.rst:93 msgid "" ":class:`MalformedHeaderDefect` -- A header was found that was missing a " "colon, or was otherwise malformed." msgstr "" +":class:`MalformedHeaderDefect` -- Un en-tête est mal formé ou il manque un " +"« : »." #: ../Doc/library/email.errors.rst:96 msgid "This defect has not been used for several Python versions." -msgstr "" +msgstr "Cette anomalie est obsolète depuis plusieurs versions de Python." #: ../Doc/library/email.errors.rst:99 msgid "" @@ -146,6 +198,10 @@ msgid "" "return ``False`` even though its content type claims to be :mimetype:" "`multipart`." msgstr "" +":class:`MultipartInvariantViolationDefect` — Le message indique être de " +"type :mimetype:`multipart`, mais aucune pièce jointe n'a été trouvée. Notez " +"que, dans ce cas, la méthode :meth:`~email.message.Message.is_multipart` " +"peut renvoyer ``False`` même si le type de contenu est :mimetype:`multipart`." #: ../Doc/library/email.errors.rst:104 msgid "" @@ -153,6 +209,9 @@ msgid "" "encoded bytes, the padding was not correct. Enough padding is added to " "perform the decode, but the resulting decoded bytes may be invalid." msgstr "" +":class:`InvalidBase64PaddingDefect` — Remplissage incorrect d'un bloc " +"d'octets encodés en base64. Des caractères de remplissage ont été ajoutés " +"pour permettre le décodage, mais le résultat du décodage peut être invalide." #: ../Doc/library/email.errors.rst:108 msgid "" @@ -160,6 +219,10 @@ msgid "" "encoded bytes, characters outside the base64 alphabet were encountered. The " "characters are ignored, but the resulting decoded bytes may be invalid." msgstr "" +":class:`InvalidBase64CharactersDefect` — Des caractères n'appartenant pas à " +"l'alphabet base64 ont été rencontrés lors du décodage d'un bloc d'octets " +"encodés en base64. Les caractères ont été ignorés, mais le résultat du " +"décodage peut être invalide." #: ../Doc/library/email.errors.rst:112 msgid "" @@ -167,3 +230,6 @@ msgid "" "encoded bytes, the number of non-padding base64 characters was invalid (1 " "more than a multiple of 4). The encoded block was kept as-is." msgstr "" +":class:`InvalidBase64LengthDefect` — Le nombre de caractères (autres que de " +"remplissage) d'un bloc d'octets encodés en base64 est invalide (1 de plus " +"qu'un multiple de 4). Le bloc encodé n'a pas été modifié." diff --git a/library/email.generator.po b/library/email.generator.po index 9f872754f3..4326da071f 100644 --- a/library/email.generator.po +++ b/library/email.generator.po @@ -19,8 +19,9 @@ msgid ":mod:`email.generator`: Generating MIME documents" msgstr "" #: ../Doc/library/email.generator.rst:7 +#, fuzzy msgid "**Source code:** :source:`Lib/email/generator.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/email/iterators.py`" #: ../Doc/library/email.generator.rst:11 msgid "" diff --git a/library/email.header.po b/library/email.header.po index 2811f3083c..62c10c2242 100644 --- a/library/email.header.po +++ b/library/email.header.po @@ -14,15 +14,16 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/library/email.header.rst:2 +#: library/email.header.rst:2 msgid ":mod:`email.header`: Internationalized headers" msgstr "" -#: ../Doc/library/email.header.rst:7 +#: library/email.header.rst:7 +#, fuzzy msgid "**Source code:** :source:`Lib/email/header.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/email/encoders.py`" -#: ../Doc/library/email.header.rst:11 +#: library/email.header.rst:11 msgid "" "This module is part of the legacy (``Compat32``) email API. In the current " "API encoding and decoding of headers is handled transparently by the " @@ -32,7 +33,7 @@ msgid "" "headers." msgstr "" -#: ../Doc/library/email.header.rst:17 +#: library/email.header.rst:17 msgid "" "The remaining text in this section is the original documentation of the " "module." @@ -40,7 +41,7 @@ msgstr "" "Le texte restant de cette section est la documentation originale de ce " "module." -#: ../Doc/library/email.header.rst:19 +#: library/email.header.rst:19 msgid "" ":rfc:`2822` is the base standard that describes the format of email " "messages. It derives from the older :rfc:`822` standard which came into " @@ -49,7 +50,7 @@ msgid "" "bit ASCII characters." msgstr "" -#: ../Doc/library/email.header.rst:24 +#: library/email.header.rst:24 msgid "" "Of course, as email has been deployed worldwide, it has become " "internationalized, such that language specific character sets can now be " @@ -61,7 +62,7 @@ msgid "" "these standards in its :mod:`email.header` and :mod:`email.charset` modules." msgstr "" -#: ../Doc/library/email.header.rst:33 +#: library/email.header.rst:33 msgid "" "If you want to include non-ASCII characters in your email headers, say in " "the :mailheader:`Subject` or :mailheader:`To` fields, you should use the :" @@ -71,7 +72,7 @@ msgid "" "header` module. For example::" msgstr "" -#: ../Doc/library/email.header.rst:50 +#: library/email.header.rst:50 msgid "" "Notice here how we wanted the :mailheader:`Subject` field to contain a non-" "ASCII character? We did this by creating a :class:`Header` instance and " @@ -81,17 +82,17 @@ msgid "" "mail readers would show this header using the embedded ISO-8859-1 character." msgstr "" -#: ../Doc/library/email.header.rst:57 +#: library/email.header.rst:57 msgid "Here is the :class:`Header` class description:" msgstr "" -#: ../Doc/library/email.header.rst:62 +#: library/email.header.rst:62 msgid "" "Create a MIME-compliant header that can contain strings in different " "character sets." msgstr "" -#: ../Doc/library/email.header.rst:65 +#: library/email.header.rst:65 msgid "" "Optional *s* is the initial header value. If ``None`` (the default), the " "initial header value is not set. You can later append to the header with :" @@ -99,7 +100,7 @@ msgid "" "class:`str`, but see the :meth:`append` documentation for semantics." msgstr "" -#: ../Doc/library/email.header.rst:70 +#: library/email.header.rst:70 msgid "" "Optional *charset* serves two purposes: it has the same meaning as the " "*charset* argument to the :meth:`append` method. It also sets the default " @@ -109,7 +110,7 @@ msgid "" "charset and as the default for subsequent :meth:`append` calls." msgstr "" -#: ../Doc/library/email.header.rst:77 +#: library/email.header.rst:77 msgid "" "The maximum line length can be specified explicitly via *maxlinelen*. For " "splitting the first line to a shorter value (to account for the field header " @@ -119,7 +120,7 @@ msgid "" "for the first line of a long, split header." msgstr "" -#: ../Doc/library/email.header.rst:84 +#: library/email.header.rst:84 msgid "" "Optional *continuation_ws* must be :rfc:`2822`\\ -compliant folding " "whitespace, and is usually either a space or a hard tab character. This " @@ -127,16 +128,16 @@ msgid "" "defaults to a single space character." msgstr "" -#: ../Doc/library/email.header.rst:89 +#: library/email.header.rst:89 msgid "" "Optional *errors* is passed straight through to the :meth:`append` method." msgstr "" -#: ../Doc/library/email.header.rst:94 +#: library/email.header.rst:94 msgid "Append the string *s* to the MIME header." msgstr "" -#: ../Doc/library/email.header.rst:96 +#: library/email.header.rst:96 msgid "" "Optional *charset*, if given, should be a :class:`~email.charset.Charset` " "instance (see :mod:`email.charset`) or the name of a character set, which " @@ -145,7 +146,7 @@ msgid "" "used." msgstr "" -#: ../Doc/library/email.header.rst:102 +#: library/email.header.rst:102 msgid "" "*s* may be an instance of :class:`bytes` or :class:`str`. If it is an " "instance of :class:`bytes`, then *charset* is the encoding of that byte " @@ -153,13 +154,13 @@ msgid "" "decoded with that character set." msgstr "" -#: ../Doc/library/email.header.rst:107 +#: library/email.header.rst:107 msgid "" "If *s* is an instance of :class:`str`, then *charset* is a hint specifying " "the character set of the characters in the string." msgstr "" -#: ../Doc/library/email.header.rst:110 +#: library/email.header.rst:110 msgid "" "In either case, when producing an :rfc:`2822`\\ -compliant header using :rfc:" "`2047` rules, the string will be encoded using the output codec of the " @@ -167,20 +168,20 @@ msgid "" "UnicodeError will be raised." msgstr "" -#: ../Doc/library/email.header.rst:115 +#: library/email.header.rst:115 msgid "" "Optional *errors* is passed as the errors argument to the decode call if *s* " "is a byte string." msgstr "" -#: ../Doc/library/email.header.rst:121 +#: library/email.header.rst:121 msgid "" "Encode a message header into an RFC-compliant format, possibly wrapping long " "lines and encapsulating non-ASCII parts in base64 or quoted-printable " "encodings." msgstr "" -#: ../Doc/library/email.header.rst:125 +#: library/email.header.rst:125 msgid "" "Optional *splitchars* is a string containing characters which should be " "given extra weight by the splitting algorithm during normal header " @@ -193,31 +194,31 @@ msgid "" "Splitchars does not affect :RFC:`2047` encoded lines." msgstr "" -#: ../Doc/library/email.header.rst:135 +#: library/email.header.rst:135 msgid "" "*maxlinelen*, if given, overrides the instance's value for the maximum line " "length." msgstr "" -#: ../Doc/library/email.header.rst:138 +#: library/email.header.rst:138 msgid "" "*linesep* specifies the characters used to separate the lines of the folded " -"header. It defaults to the most useful value for Python application code (``" -"\\n``), but ``\\r\\n`` can be specified in order to produce headers with RFC-" -"compliant line separators." +"header. It defaults to the most useful value for Python application code " +"(``\\n``), but ``\\r\\n`` can be specified in order to produce headers with " +"RFC-compliant line separators." msgstr "" -#: ../Doc/library/email.header.rst:143 +#: library/email.header.rst:143 msgid "Added the *linesep* argument." msgstr "" -#: ../Doc/library/email.header.rst:147 +#: library/email.header.rst:147 msgid "" "The :class:`Header` class also provides a number of methods to support " "standard operators and built-in functions." msgstr "" -#: ../Doc/library/email.header.rst:152 +#: library/email.header.rst:152 msgid "" "Returns an approximation of the :class:`Header` as a string, using an " "unlimited line length. All pieces are converted to unicode using the " @@ -226,34 +227,34 @@ msgid "" "error handler." msgstr "" -#: ../Doc/library/email.header.rst:158 +#: library/email.header.rst:158 msgid "Added handling for the ``'unknown-8bit'`` charset." msgstr "" -#: ../Doc/library/email.header.rst:164 +#: library/email.header.rst:164 msgid "" "This method allows you to compare two :class:`Header` instances for equality." msgstr "" -#: ../Doc/library/email.header.rst:170 +#: library/email.header.rst:170 msgid "" "This method allows you to compare two :class:`Header` instances for " "inequality." msgstr "" -#: ../Doc/library/email.header.rst:173 +#: library/email.header.rst:173 msgid "" "The :mod:`email.header` module also provides the following convenient " "functions." msgstr "" -#: ../Doc/library/email.header.rst:178 +#: library/email.header.rst:178 msgid "" "Decode a message header value without converting the character set. The " "header value is in *header*." msgstr "" -#: ../Doc/library/email.header.rst:181 +#: library/email.header.rst:181 msgid "" "This function returns a list of ``(decoded_string, charset)`` pairs " "containing each of the decoded parts of the header. *charset* is ``None`` " @@ -261,24 +262,24 @@ msgid "" "containing the name of the character set specified in the encoded string." msgstr "" -#: ../Doc/library/email.header.rst:186 +#: library/email.header.rst:186 msgid "Here's an example::" msgstr "" -#: ../Doc/library/email.header.rst:195 +#: library/email.header.rst:195 msgid "" "Create a :class:`Header` instance from a sequence of pairs as returned by :" "func:`decode_header`." msgstr "" -#: ../Doc/library/email.header.rst:198 +#: library/email.header.rst:198 msgid "" ":func:`decode_header` takes a header value string and returns a sequence of " "pairs of the format ``(decoded_string, charset)`` where *charset* is the " "name of the character set." msgstr "" -#: ../Doc/library/email.header.rst:202 +#: library/email.header.rst:202 msgid "" "This function takes one of those sequence of pairs and returns a :class:" "`Header` instance. Optional *maxlinelen*, *header_name*, and " diff --git a/library/email.headerregistry.po b/library/email.headerregistry.po index 1a93327ef8..d3bc6d95e1 100644 --- a/library/email.headerregistry.po +++ b/library/email.headerregistry.po @@ -14,19 +14,19 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/library/email.headerregistry.rst:2 +#: library/email.headerregistry.rst:2 msgid ":mod:`email.headerregistry`: Custom Header Objects" msgstr "" -#: ../Doc/library/email.headerregistry.rst:10 +#: library/email.headerregistry.rst:10 msgid "**Source code:** :source:`Lib/email/headerregistry.py`" msgstr "" -#: ../Doc/library/email.headerregistry.rst:14 +#: library/email.headerregistry.rst:14 msgid "[1]_" msgstr "" -#: ../Doc/library/email.headerregistry.rst:16 +#: library/email.headerregistry.rst:16 msgid "" "Headers are represented by customized subclasses of :class:`str`. The " "particular class used to represent a given header is determined by the :attr:" @@ -38,7 +38,7 @@ msgid "" "applications to add their own custom header types." msgstr "" -#: ../Doc/library/email.headerregistry.rst:25 +#: library/email.headerregistry.rst:25 msgid "" "When using any of the policy objects derived from :data:`~email.policy." "EmailPolicy`, all headers are produced by :class:`.HeaderRegistry` and have :" @@ -52,7 +52,7 @@ msgid "" "behavior for use by more complex applications." msgstr "" -#: ../Doc/library/email.headerregistry.rst:36 +#: library/email.headerregistry.rst:36 msgid "" "The sections below first document the header base classes and their " "attributes, followed by the API for modifying the behavior of :class:`." @@ -60,25 +60,25 @@ msgid "" "parsed from structured headers." msgstr "" -#: ../Doc/library/email.headerregistry.rst:44 +#: library/email.headerregistry.rst:44 msgid "" "*name* and *value* are passed to ``BaseHeader`` from the :attr:`~email." "policy.EmailPolicy.header_factory` call. The string value of any header " "object is the *value* fully decoded to unicode." msgstr "" -#: ../Doc/library/email.headerregistry.rst:48 +#: library/email.headerregistry.rst:48 msgid "This base class defines the following read-only properties:" msgstr "" -#: ../Doc/library/email.headerregistry.rst:53 +#: library/email.headerregistry.rst:53 msgid "" "The name of the header (the portion of the field before the ':'). This is " "exactly the value passed in the :attr:`~email.policy.EmailPolicy." "header_factory` call for *name*; that is, case is preserved." msgstr "" -#: ../Doc/library/email.headerregistry.rst:61 +#: library/email.headerregistry.rst:61 msgid "" "A tuple of :exc:`~email.errors.HeaderDefect` instances reporting any RFC " "compliance problems found during parsing. The email package tries to be " @@ -86,7 +86,7 @@ msgid "" "module for a discussion of the types of defects that may be reported." msgstr "" -#: ../Doc/library/email.headerregistry.rst:69 +#: library/email.headerregistry.rst:69 msgid "" "The maximum number of headers of this type that can have the same ``name``. " "A value of ``None`` means unlimited. The ``BaseHeader`` value for this " @@ -94,14 +94,14 @@ msgid "" "override this value as needed." msgstr "" -#: ../Doc/library/email.headerregistry.rst:74 +#: library/email.headerregistry.rst:74 msgid "" "``BaseHeader`` also provides the following method, which is called by the " "email library code and should not in general be called by application " "programs:" msgstr "" -#: ../Doc/library/email.headerregistry.rst:80 +#: library/email.headerregistry.rst:80 msgid "" "Return a string containing :attr:`~email.policy.Policy.linesep` characters " "as required to correctly fold the header according to *policy*. A :attr:" @@ -111,7 +111,7 @@ msgid "" "`2047` encoded." msgstr "" -#: ../Doc/library/email.headerregistry.rst:88 +#: library/email.headerregistry.rst:88 msgid "" "``BaseHeader`` by itself cannot be used to create a header object. It " "defines a protocol that each specialized header cooperates with in order to " @@ -120,7 +120,7 @@ msgid "" "method is called as follows::" msgstr "" -#: ../Doc/library/email.headerregistry.rst:96 +#: library/email.headerregistry.rst:96 msgid "" "``kwds`` is a dictionary containing one pre-initialized key, ``defects``. " "``defects`` is an empty list. The parse method should append any detected " @@ -133,7 +133,7 @@ msgid "" "values." msgstr "" -#: ../Doc/library/email.headerregistry.rst:105 +#: library/email.headerregistry.rst:105 msgid "" "``BaseHeader``'s ``__new__`` then creates the header instance, and calls its " "``init`` method. The specialized class only needs to provide an ``init`` " @@ -141,14 +141,14 @@ msgid "" "``BaseHeader`` itself. Such an ``init`` method should look like this::" msgstr "" -#: ../Doc/library/email.headerregistry.rst:114 +#: library/email.headerregistry.rst:114 msgid "" "That is, anything extra that the specialized class puts in to the ``kwds`` " "dictionary should be removed and handled, and the remaining contents of " "``kw`` (and ``args``) passed to the ``BaseHeader`` ``init`` method." msgstr "" -#: ../Doc/library/email.headerregistry.rst:121 +#: library/email.headerregistry.rst:121 msgid "" "An \"unstructured\" header is the default type of header in :rfc:`5322`. Any " "header that does not have a specified syntax is treated as unstructured. " @@ -156,7 +156,7 @@ msgid "" "header." msgstr "" -#: ../Doc/library/email.headerregistry.rst:126 +#: library/email.headerregistry.rst:126 msgid "" "In :rfc:`5322`, an unstructured header is a run of arbitrary text in the " "ASCII character set. :rfc:`2047`, however, has an :rfc:`5322` compatible " @@ -169,24 +169,23 @@ msgid "" "such as invalid characters within the encoded words or the non-encoded text." msgstr "" -#: ../Doc/library/email.headerregistry.rst:136 +#: library/email.headerregistry.rst:136 msgid "This header type provides no additional attributes." msgstr "" -#: ../Doc/library/email.headerregistry.rst:141 +#: library/email.headerregistry.rst:141 msgid "" ":rfc:`5322` specifies a very specific format for dates within email headers. " "The ``DateHeader`` parser recognizes that date format, as well as " -"recognizing a number of variant forms that are sometimes found \"in the wild" -"\"." +"recognizing a number of variant forms that are sometimes found \"in the " +"wild\"." msgstr "" -#: ../Doc/library/email.headerregistry.rst:146 -#: ../Doc/library/email.headerregistry.rst:188 +#: library/email.headerregistry.rst:146 library/email.headerregistry.rst:188 msgid "This header type provides the following additional attributes:" msgstr "" -#: ../Doc/library/email.headerregistry.rst:150 +#: library/email.headerregistry.rst:150 msgid "" "If the header value can be recognized as a valid date of one form or " "another, this attribute will contain a :class:`~datetime.datetime` instance " @@ -198,20 +197,20 @@ msgid "" "`datetime.timezone` to record the timezone offset." msgstr "" -#: ../Doc/library/email.headerregistry.rst:160 +#: library/email.headerregistry.rst:160 msgid "" "The ``decoded`` value of the header is determined by formatting the " "``datetime`` according to the :rfc:`5322` rules; that is, it is set to::" msgstr "" -#: ../Doc/library/email.headerregistry.rst:165 +#: library/email.headerregistry.rst:165 msgid "" "When creating a ``DateHeader``, *value* may be :class:`~datetime.datetime` " "instance. This means, for example, that the following code is valid and " "does what one would expect::" msgstr "" -#: ../Doc/library/email.headerregistry.rst:171 +#: library/email.headerregistry.rst:171 msgid "" "Because this is a naive ``datetime`` it will be interpreted as a UTC " "timestamp, and the resulting value will have a timezone of ``-0000``. Much " @@ -219,19 +218,19 @@ msgid "" "mod:`~email.utils` module::" msgstr "" -#: ../Doc/library/email.headerregistry.rst:178 +#: library/email.headerregistry.rst:178 msgid "" "This example sets the date header to the current time and date using the " "current timezone offset." msgstr "" -#: ../Doc/library/email.headerregistry.rst:184 +#: library/email.headerregistry.rst:184 msgid "" "Address headers are one of the most complex structured header types. The " "``AddressHeader`` class provides a generic interface to any address header." msgstr "" -#: ../Doc/library/email.headerregistry.rst:193 +#: library/email.headerregistry.rst:193 msgid "" "A tuple of :class:`.Group` objects encoding the addresses and groups found " "in the header value. Addresses that are not part of a group are represented " @@ -239,7 +238,7 @@ msgid "" "is ``None``." msgstr "" -#: ../Doc/library/email.headerregistry.rst:201 +#: library/email.headerregistry.rst:201 msgid "" "A tuple of :class:`.Address` objects encoding all of the individual " "addresses from the header value. If the header value contains any groups, " @@ -248,7 +247,7 @@ msgid "" "\"flattened\" into a one dimensional list)." msgstr "" -#: ../Doc/library/email.headerregistry.rst:207 +#: library/email.headerregistry.rst:207 msgid "" "The ``decoded`` value of the header will have all encoded words decoded to " "unicode. :class:`~encodings.idna` encoded domain names are also decoded to " @@ -256,7 +255,7 @@ msgid "" "`str` value of the elements of the ``groups`` attribute with ``', '``." msgstr "" -#: ../Doc/library/email.headerregistry.rst:213 +#: library/email.headerregistry.rst:213 msgid "" "A list of :class:`.Address` and :class:`.Group` objects in any combination " "may be used to set the value of an address header. ``Group`` objects whose " @@ -265,12 +264,12 @@ msgid "" "obtained from the ``groups`` attribute of the source header." msgstr "" -#: ../Doc/library/email.headerregistry.rst:222 +#: library/email.headerregistry.rst:222 msgid "" "A subclass of :class:`.AddressHeader` that adds one additional attribute:" msgstr "" -#: ../Doc/library/email.headerregistry.rst:228 +#: library/email.headerregistry.rst:228 msgid "" "The single address encoded by the header value. If the header value " "actually contains more than one address (which would be a violation of the " @@ -278,14 +277,14 @@ msgid "" "result in a :exc:`ValueError`." msgstr "" -#: ../Doc/library/email.headerregistry.rst:234 +#: library/email.headerregistry.rst:234 msgid "" "Many of the above classes also have a ``Unique`` variant (for example, " "``UniqueUnstructuredHeader``). The only difference is that in the " "``Unique`` variant, :attr:`~.BaseHeader.max_count` is set to 1." msgstr "" -#: ../Doc/library/email.headerregistry.rst:241 +#: library/email.headerregistry.rst:241 msgid "" "There is really only one valid value for the :mailheader:`MIME-Version` " "header, and that is ``1.0``. For future proofing, this header class " @@ -294,20 +293,20 @@ msgid "" "the following attributes:" msgstr "" -#: ../Doc/library/email.headerregistry.rst:249 +#: library/email.headerregistry.rst:249 msgid "" "The version number as a string, with any whitespace and/or comments removed." msgstr "" -#: ../Doc/library/email.headerregistry.rst:254 +#: library/email.headerregistry.rst:254 msgid "The major version number as an integer" msgstr "" -#: ../Doc/library/email.headerregistry.rst:258 +#: library/email.headerregistry.rst:258 msgid "The minor version number as an integer" msgstr "" -#: ../Doc/library/email.headerregistry.rst:263 +#: library/email.headerregistry.rst:263 msgid "" "MIME headers all start with the prefix 'Content-'. Each specific header has " "a certain value, described under the class for that header. Some can also " @@ -315,41 +314,41 @@ msgid "" "class serves as a base for all the MIME headers that take parameters." msgstr "" -#: ../Doc/library/email.headerregistry.rst:270 +#: library/email.headerregistry.rst:270 msgid "A dictionary mapping parameter names to parameter values." msgstr "" -#: ../Doc/library/email.headerregistry.rst:275 +#: library/email.headerregistry.rst:275 msgid "" "A :class:`ParameterizedMIMEHeader` class that handles the :mailheader:" "`Content-Type` header." msgstr "" -#: ../Doc/library/email.headerregistry.rst:280 +#: library/email.headerregistry.rst:280 msgid "The content type string, in the form ``maintype/subtype``." msgstr "" -#: ../Doc/library/email.headerregistry.rst:289 +#: library/email.headerregistry.rst:289 msgid "" "A :class:`ParameterizedMIMEHeader` class that handles the :mailheader:" "`Content-Disposition` header." msgstr "" -#: ../Doc/library/email.headerregistry.rst:294 +#: library/email.headerregistry.rst:294 msgid "``inline`` and ``attachment`` are the only valid values in common use." msgstr "" -#: ../Doc/library/email.headerregistry.rst:299 +#: library/email.headerregistry.rst:299 msgid "Handles the :mailheader:`Content-Transfer-Encoding` header." msgstr "" -#: ../Doc/library/email.headerregistry.rst:303 +#: library/email.headerregistry.rst:303 msgid "" "Valid values are ``7bit``, ``8bit``, ``base64``, and ``quoted-printable``. " "See :rfc:`2045` for more information." msgstr "" -#: ../Doc/library/email.headerregistry.rst:312 +#: library/email.headerregistry.rst:312 msgid "" "This is the factory used by :class:`~email.policy.EmailPolicy` by default. " "``HeaderRegistry`` builds the class used to create a header instance " @@ -362,151 +361,146 @@ msgid "" "class's ``__bases__`` list." msgstr "" -#: ../Doc/library/email.headerregistry.rst:322 +#: library/email.headerregistry.rst:322 msgid "The default mappings are:" msgstr "" -#: ../Doc/library/email.headerregistry.rst:0 +#: library/email.headerregistry.rst:0 msgid "subject" msgstr "" -#: ../Doc/library/email.headerregistry.rst:324 +#: library/email.headerregistry.rst:324 msgid "UniqueUnstructuredHeader" msgstr "UniqueUnstructuredHeader" -#: ../Doc/library/email.headerregistry.rst:0 +#: library/email.headerregistry.rst:0 msgid "date" msgstr "" -#: ../Doc/library/email.headerregistry.rst:325 -#: ../Doc/library/email.headerregistry.rst:327 +#: library/email.headerregistry.rst:325 library/email.headerregistry.rst:327 msgid "UniqueDateHeader" msgstr "UniqueDateHeader" -#: ../Doc/library/email.headerregistry.rst:0 +#: library/email.headerregistry.rst:0 msgid "resent-date" msgstr "" -#: ../Doc/library/email.headerregistry.rst:326 +#: library/email.headerregistry.rst:326 msgid "DateHeader" msgstr "DateHeader" -#: ../Doc/library/email.headerregistry.rst:0 +#: library/email.headerregistry.rst:0 msgid "orig-date" msgstr "" -#: ../Doc/library/email.headerregistry.rst:0 +#: library/email.headerregistry.rst:0 msgid "sender" msgstr "" -#: ../Doc/library/email.headerregistry.rst:328 +#: library/email.headerregistry.rst:328 msgid "UniqueSingleAddressHeader" msgstr "UniqueSingleAddressHeader" -#: ../Doc/library/email.headerregistry.rst:0 +#: library/email.headerregistry.rst:0 msgid "resent-sender" msgstr "" -#: ../Doc/library/email.headerregistry.rst:329 +#: library/email.headerregistry.rst:329 msgid "SingleAddressHeader" msgstr "SingleAddressHeader" -#: ../Doc/library/email.headerregistry.rst:0 +#: library/email.headerregistry.rst:0 msgid "to" msgstr "" -#: ../Doc/library/email.headerregistry.rst:330 -#: ../Doc/library/email.headerregistry.rst:332 -#: ../Doc/library/email.headerregistry.rst:334 -#: ../Doc/library/email.headerregistry.rst:336 -#: ../Doc/library/email.headerregistry.rst:338 +#: library/email.headerregistry.rst:330 library/email.headerregistry.rst:332 +#: library/email.headerregistry.rst:334 library/email.headerregistry.rst:336 +#: library/email.headerregistry.rst:338 msgid "UniqueAddressHeader" msgstr "UniqueAddressHeader" -#: ../Doc/library/email.headerregistry.rst:0 +#: library/email.headerregistry.rst:0 msgid "resent-to" msgstr "" -#: ../Doc/library/email.headerregistry.rst:331 -#: ../Doc/library/email.headerregistry.rst:333 -#: ../Doc/library/email.headerregistry.rst:335 -#: ../Doc/library/email.headerregistry.rst:337 +#: library/email.headerregistry.rst:331 library/email.headerregistry.rst:333 +#: library/email.headerregistry.rst:335 library/email.headerregistry.rst:337 msgid "AddressHeader" msgstr "AddressHeader" -#: ../Doc/library/email.headerregistry.rst:0 +#: library/email.headerregistry.rst:0 msgid "cc" msgstr "" -#: ../Doc/library/email.headerregistry.rst:0 +#: library/email.headerregistry.rst:0 msgid "resent-cc" msgstr "" -#: ../Doc/library/email.headerregistry.rst:0 +#: library/email.headerregistry.rst:0 msgid "bcc" msgstr "" -#: ../Doc/library/email.headerregistry.rst:0 +#: library/email.headerregistry.rst:0 msgid "resent-bcc" msgstr "" -#: ../Doc/library/email.headerregistry.rst:0 +#: library/email.headerregistry.rst:0 msgid "from" msgstr "" -#: ../Doc/library/email.headerregistry.rst:0 +#: library/email.headerregistry.rst:0 msgid "resent-from" msgstr "" -#: ../Doc/library/email.headerregistry.rst:0 +#: library/email.headerregistry.rst:0 msgid "reply-to" msgstr "" -#: ../Doc/library/email.headerregistry.rst:0 +#: library/email.headerregistry.rst:0 msgid "mime-version" msgstr "" -#: ../Doc/library/email.headerregistry.rst:339 +#: library/email.headerregistry.rst:339 msgid "MIMEVersionHeader" msgstr "" -#: ../Doc/library/email.headerregistry.rst:0 +#: library/email.headerregistry.rst:0 msgid "content-type" msgstr "" -#: ../Doc/library/email.headerregistry.rst:340 +#: library/email.headerregistry.rst:340 msgid "ContentTypeHeader" msgstr "ContentTypeHeader" -#: ../Doc/library/email.headerregistry.rst:0 +#: library/email.headerregistry.rst:0 msgid "content-disposition" msgstr "" -#: ../Doc/library/email.headerregistry.rst:341 +#: library/email.headerregistry.rst:341 msgid "ContentDispositionHeader" msgstr "" -#: ../Doc/library/email.headerregistry.rst:0 +#: library/email.headerregistry.rst:0 msgid "content-transfer-encoding" msgstr "" -#: ../Doc/library/email.headerregistry.rst:342 +#: library/email.headerregistry.rst:342 msgid "ContentTransferEncodingHeader" msgstr "" -#: ../Doc/library/email.headerregistry.rst:0 +#: library/email.headerregistry.rst:0 msgid "message-id" msgstr "" -#: ../Doc/library/email.headerregistry.rst:343 +#: library/email.headerregistry.rst:343 msgid "MessageIDHeader" msgstr "MessageIDHeader" -#: ../Doc/library/email.headerregistry.rst:345 +#: library/email.headerregistry.rst:345 msgid "``HeaderRegistry`` has the following methods:" msgstr "" -#: ../Doc/library/email.headerregistry.rst:350 +#: library/email.headerregistry.rst:350 msgid "" "*name* is the name of the header to be mapped. It will be converted to " "lower case in the registry. *cls* is the specialized class to be used, " @@ -514,11 +508,11 @@ msgid "" "that match *name*." msgstr "" -#: ../Doc/library/email.headerregistry.rst:358 +#: library/email.headerregistry.rst:358 msgid "Construct and return a class to handle creating a *name* header." msgstr "" -#: ../Doc/library/email.headerregistry.rst:363 +#: library/email.headerregistry.rst:363 msgid "" "Retrieves the specialized header associated with *name* from the registry " "(using *default_class* if *name* does not appear in the registry) and " @@ -527,30 +521,30 @@ msgid "" "the class instance created thereby." msgstr "" -#: ../Doc/library/email.headerregistry.rst:370 +#: library/email.headerregistry.rst:370 msgid "" "The following classes are the classes used to represent data parsed from " "structured headers and can, in general, be used by an application program to " "construct structured values to assign to specific headers." msgstr "" -#: ../Doc/library/email.headerregistry.rst:377 +#: library/email.headerregistry.rst:377 msgid "" "The class used to represent an email address. The general form of an " "address is::" msgstr "" -#: ../Doc/library/email.headerregistry.rst:382 +#: library/email.headerregistry.rst:382 msgid "or::" msgstr "ou ::" -#: ../Doc/library/email.headerregistry.rst:386 +#: library/email.headerregistry.rst:386 msgid "" "where each part must conform to specific syntax rules spelled out in :rfc:" "`5322`." msgstr "" -#: ../Doc/library/email.headerregistry.rst:389 +#: library/email.headerregistry.rst:389 msgid "" "As a convenience *addr_spec* can be specified instead of *username* and " "*domain*, in which case *username* and *domain* will be parsed from the " @@ -560,48 +554,48 @@ msgid "" "*not* allowed in the username portion of the address." msgstr "" -#: ../Doc/library/email.headerregistry.rst:398 +#: library/email.headerregistry.rst:398 msgid "" "The display name portion of the address, if any, with all quoting removed. " "If the address does not have a display name, this attribute will be an empty " "string." msgstr "" -#: ../Doc/library/email.headerregistry.rst:404 +#: library/email.headerregistry.rst:404 msgid "The ``username`` portion of the address, with all quoting removed." msgstr "" -#: ../Doc/library/email.headerregistry.rst:408 +#: library/email.headerregistry.rst:408 msgid "The ``domain`` portion of the address." msgstr "" -#: ../Doc/library/email.headerregistry.rst:412 +#: library/email.headerregistry.rst:412 msgid "" "The ``username@domain`` portion of the address, correctly quoted for use as " "a bare address (the second form shown above). This attribute is not mutable." msgstr "" -#: ../Doc/library/email.headerregistry.rst:418 +#: library/email.headerregistry.rst:418 msgid "" "The ``str`` value of the object is the address quoted according to :rfc:" "`5322` rules, but with no Content Transfer Encoding of any non-ASCII " "characters." msgstr "" -#: ../Doc/library/email.headerregistry.rst:422 +#: library/email.headerregistry.rst:422 msgid "" "To support SMTP (:rfc:`5321`), ``Address`` handles one special case: if " "``username`` and ``domain`` are both the empty string (or ``None``), then " "the string value of the ``Address`` is ``<>``." msgstr "" -#: ../Doc/library/email.headerregistry.rst:429 +#: library/email.headerregistry.rst:429 msgid "" "The class used to represent an address group. The general form of an " "address group is::" msgstr "" -#: ../Doc/library/email.headerregistry.rst:434 +#: library/email.headerregistry.rst:434 msgid "" "As a convenience for processing lists of addresses that consist of a mixture " "of groups and single addresses, a ``Group`` may also be used to represent " @@ -609,20 +603,20 @@ msgid "" "``None`` and providing a list of the single address as *addresses*." msgstr "" -#: ../Doc/library/email.headerregistry.rst:441 +#: library/email.headerregistry.rst:441 msgid "" "The ``display_name`` of the group. If it is ``None`` and there is exactly " "one ``Address`` in ``addresses``, then the ``Group`` represents a single " "address that is not in a group." msgstr "" -#: ../Doc/library/email.headerregistry.rst:447 +#: library/email.headerregistry.rst:447 msgid "" "A possibly empty tuple of :class:`.Address` objects representing the " "addresses in the group." msgstr "" -#: ../Doc/library/email.headerregistry.rst:452 +#: library/email.headerregistry.rst:452 msgid "" "The ``str`` value of a ``Group`` is formatted according to :rfc:`5322`, but " "with no Content Transfer Encoding of any non-ASCII characters. If " @@ -631,11 +625,11 @@ msgid "" "that single ``Address``." msgstr "" -#: ../Doc/library/email.headerregistry.rst:460 +#: library/email.headerregistry.rst:460 msgid "Footnotes" msgstr "Notes" -#: ../Doc/library/email.headerregistry.rst:461 +#: library/email.headerregistry.rst:461 msgid "" "Originally added in 3.3 as a :term:`provisional module `" msgstr "" diff --git a/library/email.message.po b/library/email.message.po index e4bc309717..f1021a4a11 100644 --- a/library/email.message.po +++ b/library/email.message.po @@ -19,8 +19,9 @@ msgid ":mod:`email.message`: Representing an email message" msgstr "" #: ../Doc/library/email.message.rst:10 +#, fuzzy msgid "**Source code:** :source:`Lib/email/message.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/email/parser.py`" #: ../Doc/library/email.message.rst:14 msgid "[1]_" @@ -342,7 +343,7 @@ msgstr "" #: ../Doc/library/email.message.rst:287 msgid "Here is an example::" -msgstr "Voici un exemple : ::" +msgstr "Voici un exemple ::" #: ../Doc/library/email.message.rst:291 msgid "This will add a header that looks like ::" diff --git a/library/email.po b/library/email.po index ed6dc53348..4e0c34c378 100644 --- a/library/email.po +++ b/library/email.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,21 +14,21 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/library/email.rst:2 +#: library/email.rst:2 msgid ":mod:`email` --- An email and MIME handling package" msgstr ":mod:`email` — Un paquet de gestion des e-mails et MIME" -#: ../Doc/library/email.rst:11 +#: library/email.rst:11 msgid "**Source code:** :source:`Lib/email/__init__.py`" msgstr "**Code source:** :source:`Lib/email/__init__.py`" -#: ../Doc/library/email.rst:15 +#: library/email.rst:15 msgid "" "The :mod:`email` package is a library for managing email messages. It is " "specifically *not* designed to do any sending of email messages to SMTP (:" "rfc:`2821`), NNTP, or other servers; those are functions of modules such as :" "mod:`smtplib` and :mod:`nntplib`. The :mod:`email` package attempts to be " -"as RFC-compliant as possible, supporting :rfc:`5233` and :rfc:`6532`, as " +"as RFC-compliant as possible, supporting :rfc:`5322` and :rfc:`6532`, as " "well as such MIME-related RFCs as :rfc:`2045`, :rfc:`2046`, :rfc:`2047`, :" "rfc:`2183`, and :rfc:`2231`." msgstr "" @@ -36,11 +36,11 @@ msgstr "" "spécifiquement conçu pour ne pas gérer les envois d'e-mails vers SMTP (:rfc:" "`2821`), NNTP, ou autres serveurs ; ces fonctions sont du ressort " "des modules comme :mod:`smtplib` et :mod:`nntplib`. Le paquet :mod:`email` " -"tente de respecter les RFC autant que possible, il gère :rfc:`5233` et :rfc:" +"tente de respecter les RFC autant que possible, il gère :rfc:`5322` et :rfc:" "`6532`, ainsi que les RFCs en rapport avec les MIME comme :rfc:`2045`, :rfc:" "`2046`, :rfc:`2047`, :rfc:`2183`, et :rfc:`2231`." -#: ../Doc/library/email.rst:23 +#: library/email.rst:23 msgid "" "The overall structure of the email package can be divided into three major " "components, plus a fourth component that controls the behavior of the other " @@ -49,7 +49,7 @@ msgstr "" "Ce paquet peut être divisé entre trois composants majeurs, et un quatrième " "composant qui contrôle le comportement des trois autres." -#: ../Doc/library/email.rst:27 +#: library/email.rst:27 msgid "" "The central component of the package is an \"object model\" that represents " "email messages. An application interacts with the package primarily through " @@ -71,7 +71,7 @@ msgstr "" "composants MIME, le modèle d'objet d'e-mail est une structure arborescente " "d'objets qui fournit tout à l'API de :class:`~email.message.EmailMessage`." -#: ../Doc/library/email.rst:37 +#: library/email.rst:37 msgid "" "The other two major components of the package are the :mod:`~email.parser` " "and the :mod:`~email.generator`. The parser takes the serialized version of " @@ -92,7 +92,7 @@ msgstr "" "déconseillée car il est très facile de finir avec des messages invalides " "d'une manière ou d'une autre)." -#: ../Doc/library/email.rst:46 +#: library/email.rst:46 msgid "" "The control component is the :mod:`~email.policy` module. Every :class:" "`~email.message.EmailMessage`, every :mod:`~email.generator`, and every :mod:" @@ -119,7 +119,7 @@ msgstr "" "de le sérialiser en utilisant une configuration SMTP standard quand on " "l'envoie vers un serveur d'e-mail." -#: ../Doc/library/email.rst:58 +#: library/email.rst:58 msgid "" "The email package does its best to hide the details of the various governing " "RFCs from the application. Conceptually the application should be able to " @@ -150,7 +150,7 @@ msgstr "" "couramment utilisés dans les logiciels internet modernes (et non uniquement " "les e-mails), les développeurs sont généralement familiers de ce concept." -#: ../Doc/library/email.rst:71 +#: library/email.rst:71 msgid "" "The following sections describe the functionality of the :mod:`email` " "package. We start with the :mod:`~email.message` object model, which is the " @@ -166,7 +166,7 @@ msgstr "" "couvrons les contrôles :mod:`~email.policy`, qui complètent le traitement " "des principaux composants de la bibliothèque." -#: ../Doc/library/email.rst:78 +#: library/email.rst:78 msgid "" "The next three sections cover the exceptions the package may raise and the " "defects (non-compliance with the RFCs) that the :mod:`~email.parser` may " @@ -187,7 +187,7 @@ msgstr "" "et elles documentent aussi leurs API pour pouvoir les étendre, ce qui ne " "manquera pas d'intéresser les applications avancées." -#: ../Doc/library/email.rst:87 +#: library/email.rst:87 msgid "" "Following those is a set of examples of using the fundamental parts of the " "APIs covered in the preceding sections." @@ -195,7 +195,7 @@ msgstr "" "Ci-dessous se trouve un ensemble d'exemples d'utilisations des éléments " "fondamentaux des API couvertes dans les sections précédentes." -#: ../Doc/library/email.rst:90 +#: library/email.rst:90 msgid "" "The foregoing represent the modern (unicode friendly) API of the email " "package. The remaining sections, starting with the :class:`~email.message." @@ -218,7 +218,7 @@ msgstr "" "toujours l'API :mod:`~email.policy.compat32` pour des raisons de " "rétrocompatibilité." -#: ../Doc/library/email.rst:100 +#: library/email.rst:100 msgid "" "Docs reorganized and rewritten to promote the new :class:`~email.message." "EmailMessage`/:class:`~email.policy.EmailPolicy` API." @@ -226,51 +226,51 @@ msgstr "" "Documents réorganisés et réécrits pour promouvoir la nouvelle API :class:" "`~email.message.EmailMessage`/:class:`~email.policy.EmailPolicy`." -#: ../Doc/library/email.rst:105 +#: library/email.rst:105 msgid "Contents of the :mod:`email` package documentation:" msgstr "Contenus de la documentation du paquet :mod:`email` :" -#: ../Doc/library/email.rst:120 +#: library/email.rst:120 msgid "Legacy API:" msgstr "API héritée :" -#: ../Doc/library/email.rst:136 +#: library/email.rst:136 msgid "Module :mod:`smtplib`" msgstr "Module :mod:`smtplib`" -#: ../Doc/library/email.rst:136 +#: library/email.rst:136 msgid "SMTP (Simple Mail Transport Protocol) client" msgstr "Client SMTP (*Simple Mail Transport Protocol*)" -#: ../Doc/library/email.rst:139 +#: library/email.rst:139 msgid "Module :mod:`poplib`" msgstr "Module :mod:`poplib`" -#: ../Doc/library/email.rst:139 +#: library/email.rst:139 msgid "POP (Post Office Protocol) client" msgstr "Client POP (*Post Office Protocol*)" -#: ../Doc/library/email.rst:142 +#: library/email.rst:142 msgid "Module :mod:`imaplib`" msgstr "Module :mod:`imaplib`" -#: ../Doc/library/email.rst:142 +#: library/email.rst:142 msgid "IMAP (Internet Message Access Protocol) client" msgstr "Client IMAP (*Internet Message Access Protocol*)" -#: ../Doc/library/email.rst:145 +#: library/email.rst:145 msgid "Module :mod:`nntplib`" msgstr "Module :mod:`nntplib`" -#: ../Doc/library/email.rst:145 +#: library/email.rst:145 msgid "NNTP (Net News Transport Protocol) client" msgstr "Client NNTP (*Net News Transport Protocol*)" -#: ../Doc/library/email.rst:149 +#: library/email.rst:149 msgid "Module :mod:`mailbox`" msgstr "Module :mod:`mailbox`" -#: ../Doc/library/email.rst:148 +#: library/email.rst:148 msgid "" "Tools for creating, reading, and managing collections of messages on disk " "using a variety standard formats." @@ -278,10 +278,10 @@ msgstr "" "Outils pour créer, lire et gérer des messages regroupés sur disque en " "utilisant des formats standards variés." -#: ../Doc/library/email.rst:151 +#: library/email.rst:151 msgid "Module :mod:`smtpd`" msgstr "Module :mod:`smtpd`" -#: ../Doc/library/email.rst:152 +#: library/email.rst:152 msgid "SMTP server framework (primarily useful for testing)" msgstr "Cadriciel pour serveur SMTP (principalement utile pour tester)" diff --git a/library/email.policy.po b/library/email.policy.po index a205132bc7..525a98086a 100644 --- a/library/email.policy.po +++ b/library/email.policy.po @@ -14,15 +14,15 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/library/email.policy.rst:2 +#: library/email.policy.rst:2 msgid ":mod:`email.policy`: Policy Objects" msgstr "" -#: ../Doc/library/email.policy.rst:12 +#: library/email.policy.rst:12 msgid "**Source code:** :source:`Lib/email/policy.py`" msgstr "" -#: ../Doc/library/email.policy.rst:16 +#: library/email.policy.rst:16 msgid "" "The :mod:`email` package's prime focus is the handling of email messages as " "described by the various email and MIME RFCs. However, the general format " @@ -37,13 +37,13 @@ msgid "" "violate the standards." msgstr "" -#: ../Doc/library/email.policy.rst:28 +#: library/email.policy.rst:28 msgid "" "Policy objects give the email package the flexibility to handle all these " "disparate use cases." msgstr "" -#: ../Doc/library/email.policy.rst:31 +#: library/email.policy.rst:31 msgid "" "A :class:`Policy` object encapsulates a set of attributes and methods that " "control the behavior of various components of the email package during use. :" @@ -52,7 +52,7 @@ msgid "" "defaults are described below." msgstr "" -#: ../Doc/library/email.policy.rst:37 +#: library/email.policy.rst:37 msgid "" "There is a default policy used by all classes in the email package. For all " "of the :mod:`~email.parser` classes and the related convenience functions, " @@ -63,14 +63,14 @@ msgid "" "the email package." msgstr "" -#: ../Doc/library/email.policy.rst:44 +#: library/email.policy.rst:44 msgid "" "This default value for the *policy* keyword to :class:`~email.message." "EmailMessage` is the :class:`EmailPolicy` policy, via its pre-defined " "instance :data:`~default`." msgstr "" -#: ../Doc/library/email.policy.rst:48 +#: library/email.policy.rst:48 msgid "" "When a :class:`~email.message.Message` or :class:`~email.message." "EmailMessage` object is created, it acquires a policy. If the message is " @@ -82,7 +82,7 @@ msgid "" "to the generator that will override the one stored on the message object." msgstr "" -#: ../Doc/library/email.policy.rst:57 +#: library/email.policy.rst:57 msgid "" "The default value for the *policy* keyword for the :mod:`email.parser` " "classes and the parser convenience functions **will be changing** in a " @@ -91,7 +91,7 @@ msgid "" "described in the :mod:`~email.parser` module." msgstr "" -#: ../Doc/library/email.policy.rst:63 +#: library/email.policy.rst:63 msgid "" "The first part of this documentation covers the features of :class:`Policy`, " "an :term:`abstract base class` that defines the features that are common to " @@ -103,7 +103,7 @@ msgid "" "backward compatible behavior and features, respectively." msgstr "" -#: ../Doc/library/email.policy.rst:72 +#: library/email.policy.rst:72 msgid "" ":class:`Policy` instances are immutable, but they can be cloned, accepting " "the same keyword arguments as the class constructor and returning a new :" @@ -111,14 +111,14 @@ msgid "" "specified attributes values changed." msgstr "" -#: ../Doc/library/email.policy.rst:77 +#: library/email.policy.rst:77 msgid "" "As an example, the following code could be used to read an email message " "from a file on disk and pass it to the system ``sendmail`` program on a Unix " "system:" msgstr "" -#: ../Doc/library/email.policy.rst:113 +#: library/email.policy.rst:113 msgid "" "Here we are telling :class:`~email.generator.BytesGenerator` to use the RFC " "correct line separator characters when creating the binary string to feed " @@ -126,7 +126,7 @@ msgid "" "line separators." msgstr "" -#: ../Doc/library/email.policy.rst:118 +#: library/email.policy.rst:118 msgid "" "Some email package methods accept a *policy* keyword argument, allowing the " "policy to be overridden for that method. For example, the following code " @@ -135,20 +135,20 @@ msgid "" "line separators for the platform on which it is running::" msgstr "" -#: ../Doc/library/email.policy.rst:129 +#: library/email.policy.rst:129 msgid "" "Policy objects can also be combined using the addition operator, producing a " "policy object whose settings are a combination of the non-default values of " "the summed objects::" msgstr "" -#: ../Doc/library/email.policy.rst:137 +#: library/email.policy.rst:137 msgid "" "This operation is not commutative; that is, the order in which the objects " "are added matters. To illustrate::" msgstr "" -#: ../Doc/library/email.policy.rst:152 +#: library/email.policy.rst:152 msgid "" "This is the :term:`abstract base class` for all policy classes. It provides " "default implementations for a couple of trivial methods, as well as the " @@ -156,7 +156,7 @@ msgid "" "the constructor semantics." msgstr "" -#: ../Doc/library/email.policy.rst:157 +#: library/email.policy.rst:157 msgid "" "The constructor of a policy class can be passed various keyword arguments. " "The arguments that may be specified are any non-method properties on this " @@ -165,48 +165,48 @@ msgid "" "corresponding attribute." msgstr "" -#: ../Doc/library/email.policy.rst:163 +#: library/email.policy.rst:163 msgid "" "This class defines the following properties, and thus values for the " "following may be passed in the constructor of any policy class:" msgstr "" -#: ../Doc/library/email.policy.rst:169 +#: library/email.policy.rst:169 msgid "" "The maximum length of any line in the serialized output, not counting the " "end of line character(s). Default is 78, per :rfc:`5322`. A value of ``0`` " "or :const:`None` indicates that no line wrapping should be done at all." msgstr "" -#: ../Doc/library/email.policy.rst:177 +#: library/email.policy.rst:177 msgid "" "The string to be used to terminate lines in serialized output. The default " "is ``\\n`` because that's the internal end-of-line discipline used by " "Python, though ``\\r\\n`` is required by the RFCs." msgstr "" -#: ../Doc/library/email.policy.rst:184 +#: library/email.policy.rst:184 msgid "" "Controls the type of Content Transfer Encodings that may be or are required " "to be used. The possible values are:" msgstr "" -#: ../Doc/library/email.policy.rst:190 +#: library/email.policy.rst:190 msgid "``7bit``" msgstr "``7bit``" -#: ../Doc/library/email.policy.rst:190 +#: library/email.policy.rst:190 msgid "" "all data must be \"7 bit clean\" (ASCII-only). This means that where " "necessary data will be encoded using either quoted-printable or base64 " "encoding." msgstr "" -#: ../Doc/library/email.policy.rst:194 +#: library/email.policy.rst:194 msgid "``8bit``" msgstr "``8bit``" -#: ../Doc/library/email.policy.rst:194 +#: library/email.policy.rst:194 msgid "" "data is not constrained to be 7 bit clean. Data in headers is still " "required to be ASCII-only and so will be encoded (see :meth:`fold_binary` " @@ -214,7 +214,7 @@ msgid "" "the ``8bit`` CTE." msgstr "" -#: ../Doc/library/email.policy.rst:200 +#: library/email.policy.rst:200 msgid "" "A ``cte_type`` value of ``8bit`` only works with ``BytesGenerator``, not " "``Generator``, because strings cannot contain binary data. If a " @@ -222,71 +222,71 @@ msgid "" "it will act as if ``cte_type`` is ``7bit``." msgstr "" -#: ../Doc/library/email.policy.rst:208 +#: library/email.policy.rst:208 msgid "" "If :const:`True`, any defects encountered will be raised as errors. If :" "const:`False` (the default), defects will be passed to the :meth:" "`register_defect` method." msgstr "" -#: ../Doc/library/email.policy.rst:215 +#: library/email.policy.rst:215 msgid "" "If :const:`True`, lines starting with *\"From \"* in the body are escaped by " "putting a ``>`` in front of them. This parameter is used when the message is " "being serialized by a generator. Default: :const:`False`." msgstr "" -#: ../Doc/library/email.policy.rst:220 +#: library/email.policy.rst:220 msgid "The *mangle_from_* parameter." msgstr "" -#: ../Doc/library/email.policy.rst:226 +#: library/email.policy.rst:226 msgid "" "A factory function for constructing a new empty message object. Used by the " "parser when building messages. Defaults to ``None``, in which case :class:" "`~email.message.Message` is used." msgstr "" -#: ../Doc/library/email.policy.rst:232 +#: library/email.policy.rst:232 msgid "" "The following :class:`Policy` method is intended to be called by code using " "the email library to create policy instances with custom settings:" msgstr "" -#: ../Doc/library/email.policy.rst:238 +#: library/email.policy.rst:238 msgid "" "Return a new :class:`Policy` instance whose attributes have the same values " "as the current instance, except where those attributes are given new values " "by the keyword arguments." msgstr "" -#: ../Doc/library/email.policy.rst:243 +#: library/email.policy.rst:243 msgid "" "The remaining :class:`Policy` methods are called by the email package code, " "and are not intended to be called by an application using the email package. " "A custom policy must implement all of these methods." msgstr "" -#: ../Doc/library/email.policy.rst:250 +#: library/email.policy.rst:250 msgid "" "Handle a *defect* found on *obj*. When the email package calls this method, " "*defect* will always be a subclass of :class:`~email.errors.Defect`." msgstr "" -#: ../Doc/library/email.policy.rst:254 +#: library/email.policy.rst:254 msgid "" "The default implementation checks the :attr:`raise_on_defect` flag. If it " "is ``True``, *defect* is raised as an exception. If it is ``False`` (the " "default), *obj* and *defect* are passed to :meth:`register_defect`." msgstr "" -#: ../Doc/library/email.policy.rst:261 +#: library/email.policy.rst:261 msgid "" "Register a *defect* on *obj*. In the email package, *defect* will always be " "a subclass of :class:`~email.errors.Defect`." msgstr "" -#: ../Doc/library/email.policy.rst:264 +#: library/email.policy.rst:264 msgid "" "The default implementation calls the ``append`` method of the ``defects`` " "attribute of *obj*. When the email package calls :attr:`handle_defect`, " @@ -296,11 +296,11 @@ msgid "" "defects in parsed messages will raise unexpected errors." msgstr "" -#: ../Doc/library/email.policy.rst:274 +#: library/email.policy.rst:274 msgid "Return the maximum allowed number of headers named *name*." msgstr "" -#: ../Doc/library/email.policy.rst:276 +#: library/email.policy.rst:276 msgid "" "Called when a header is added to an :class:`~email.message.EmailMessage` or :" "class:`~email.message.Message` object. If the returned value is not ``0`` " @@ -308,7 +308,7 @@ msgid "" "greater than or equal to the value returned, a :exc:`ValueError` is raised." msgstr "" -#: ../Doc/library/email.policy.rst:282 +#: library/email.policy.rst:282 msgid "" "Because the default behavior of ``Message.__setitem__`` is to append the " "value to the list of headers, it is easy to create duplicate headers without " @@ -318,11 +318,11 @@ msgid "" "faithfully produce as many headers as exist in the message being parsed.)" msgstr "" -#: ../Doc/library/email.policy.rst:290 +#: library/email.policy.rst:290 msgid "The default implementation returns ``None`` for all header names." msgstr "" -#: ../Doc/library/email.policy.rst:295 +#: library/email.policy.rst:295 msgid "" "The email package calls this method with a list of strings, each string " "ending with the line separation characters found in the source being " @@ -332,7 +332,7 @@ msgid "" "the parsed header." msgstr "" -#: ../Doc/library/email.policy.rst:302 +#: library/email.policy.rst:302 msgid "" "If an implementation wishes to retain compatibility with the existing email " "package policies, *name* should be the case preserved name (all characters " @@ -341,16 +341,15 @@ msgid "" "stripped of leading whitespace." msgstr "" -#: ../Doc/library/email.policy.rst:308 +#: library/email.policy.rst:308 msgid "*sourcelines* may contain surrogateescaped binary data." msgstr "" -#: ../Doc/library/email.policy.rst:310 ../Doc/library/email.policy.rst:326 -#: ../Doc/library/email.policy.rst:342 +#: library/email.policy.rst:326 library/email.policy.rst:342 msgid "There is no default implementation" msgstr "" -#: ../Doc/library/email.policy.rst:315 +#: library/email.policy.rst:315 msgid "" "The email package calls this method with the name and value provided by the " "application program when the application program is modifying a ``Message`` " @@ -359,14 +358,14 @@ msgid "" "``Message`` to represent the header." msgstr "" -#: ../Doc/library/email.policy.rst:321 +#: library/email.policy.rst:321 msgid "" "If an implementation wishes to retain compatibility with the existing email " "package policies, the *name* and *value* should be strings or string " "subclasses that do not change the content of the passed in arguments." msgstr "" -#: ../Doc/library/email.policy.rst:331 +#: library/email.policy.rst:331 msgid "" "The email package calls this method with the *name* and *value* currently " "stored in the ``Message`` when that header is requested by the application " @@ -377,13 +376,13 @@ msgid "" "returned to the application." msgstr "" -#: ../Doc/library/email.policy.rst:339 +#: library/email.policy.rst:339 msgid "" "*value* may contain surrogateescaped binary data. There should be no " "surrogateescaped binary data in the value returned by the method." msgstr "" -#: ../Doc/library/email.policy.rst:347 +#: library/email.policy.rst:347 msgid "" "The email package calls this method with the *name* and *value* currently " "stored in the ``Message`` for a given header. The method should return a " @@ -393,32 +392,32 @@ msgid "" "discussion of the rules for folding email headers." msgstr "" -#: ../Doc/library/email.policy.rst:354 +#: library/email.policy.rst:354 msgid "" "*value* may contain surrogateescaped binary data. There should be no " "surrogateescaped binary data in the string returned by the method." msgstr "" -#: ../Doc/library/email.policy.rst:360 +#: library/email.policy.rst:360 msgid "" "The same as :meth:`fold`, except that the returned value should be a bytes " "object rather than a string." msgstr "" -#: ../Doc/library/email.policy.rst:363 +#: library/email.policy.rst:363 msgid "" "*value* may contain surrogateescaped binary data. These could be converted " "back into binary data in the returned bytes object." msgstr "" -#: ../Doc/library/email.policy.rst:370 +#: library/email.policy.rst:370 msgid "" "This concrete :class:`Policy` provides behavior that is intended to be fully " "compliant with the current email RFCs. These include (but are not limited " "to) :rfc:`5322`, :rfc:`2047`, and the current MIME RFCs." msgstr "" -#: ../Doc/library/email.policy.rst:374 +#: library/email.policy.rst:374 msgid "" "This policy adds new header parsing and folding algorithms. Instead of " "simple strings, headers are ``str`` subclasses with attributes that depend " @@ -426,23 +425,23 @@ msgid "" "implement :rfc:`2047` and :rfc:`5322`." msgstr "" -#: ../Doc/library/email.policy.rst:379 +#: library/email.policy.rst:379 msgid "" "The default value for the :attr:`~email.policy.Policy.message_factory` " "attribute is :class:`~email.message.EmailMessage`." msgstr "" -#: ../Doc/library/email.policy.rst:382 +#: library/email.policy.rst:382 msgid "" "In addition to the settable attributes listed above that apply to all " "policies, this policy adds the following additional attributes:" msgstr "" -#: ../Doc/library/email.policy.rst:385 +#: library/email.policy.rst:385 msgid "[1]_" msgstr "" -#: ../Doc/library/email.policy.rst:390 +#: library/email.policy.rst:390 msgid "" "If ``False``, follow :rfc:`5322`, supporting non-ASCII characters in headers " "by encoding them as \"encoded words\". If ``True``, follow :rfc:`6532` and " @@ -450,7 +449,7 @@ msgid "" "passed to SMTP servers that support the ``SMTPUTF8`` extension (:rfc:`6531`)." msgstr "" -#: ../Doc/library/email.policy.rst:399 +#: library/email.policy.rst:399 msgid "" "If the value for a header in the ``Message`` object originated from a :mod:" "`~email.parser` (as opposed to being set by a program), this attribute " @@ -458,37 +457,37 @@ msgid "" "transforming the message back into serialized form. The possible values are:" msgstr "" -#: ../Doc/library/email.policy.rst:406 +#: library/email.policy.rst:406 msgid "``none``" msgstr "``none``" -#: ../Doc/library/email.policy.rst:406 +#: library/email.policy.rst:406 msgid "all source values use original folding" msgstr "" -#: ../Doc/library/email.policy.rst:408 +#: library/email.policy.rst:408 msgid "``long``" msgstr "``long``" -#: ../Doc/library/email.policy.rst:408 +#: library/email.policy.rst:408 msgid "" "source values that have any line that is longer than ``max_line_length`` " "will be refolded" msgstr "" -#: ../Doc/library/email.policy.rst:411 +#: library/email.policy.rst:411 msgid "``all``" msgstr "``all``" -#: ../Doc/library/email.policy.rst:411 +#: library/email.policy.rst:411 msgid "all values are refolded." msgstr "" -#: ../Doc/library/email.policy.rst:414 +#: library/email.policy.rst:414 msgid "The default is ``long``." msgstr "" -#: ../Doc/library/email.policy.rst:419 +#: library/email.policy.rst:419 msgid "" "A callable that takes two arguments, ``name`` and ``value``, where ``name`` " "is a header field name and ``value`` is an unfolded header field value, and " @@ -499,7 +498,7 @@ msgid "" "custom parsing will be added in the future." msgstr "" -#: ../Doc/library/email.policy.rst:430 +#: library/email.policy.rst:430 msgid "" "An object with at least two methods: get_content and set_content. When the :" "meth:`~email.message.EmailMessage.get_content` or :meth:`~email.message." @@ -510,20 +509,20 @@ msgid "" "``content_manager`` is set to :data:`~email.contentmanager.raw_data_manager`." msgstr "" -#: ../Doc/library/email.policy.rst:442 ../Doc/library/email.policy.rst:600 +#: library/email.policy.rst:600 msgid "" "The class provides the following concrete implementations of the abstract " "methods of :class:`Policy`:" msgstr "" -#: ../Doc/library/email.policy.rst:448 +#: library/email.policy.rst:448 msgid "" "Returns the value of the :attr:`~email.headerregistry.BaseHeader.max_count` " "attribute of the specialized class used to represent the header with the " "given name." msgstr "" -#: ../Doc/library/email.policy.rst:456 ../Doc/library/email.policy.rst:606 +#: library/email.policy.rst:606 msgid "" "The name is parsed as everything up to the '``:``' and returned unmodified. " "The value is determined by stripping leading whitespace off the remainder of " @@ -531,7 +530,7 @@ msgid "" "trailing carriage return or linefeed characters." msgstr "" -#: ../Doc/library/email.policy.rst:464 +#: library/email.policy.rst:464 msgid "" "The name is returned unchanged. If the input value has a ``name`` attribute " "and it matches *name* ignoring case, the value is returned unchanged. " @@ -540,7 +539,7 @@ msgid "" "``ValueError`` is raised if the input value contains CR or LF characters." msgstr "" -#: ../Doc/library/email.policy.rst:474 +#: library/email.policy.rst:474 msgid "" "If the value has a ``name`` attribute, it is returned to unmodified. " "Otherwise the *name*, and the *value* with any CR or LF characters removed, " @@ -549,7 +548,7 @@ msgid "" "character glyph." msgstr "" -#: ../Doc/library/email.policy.rst:483 +#: library/email.policy.rst:483 msgid "" "Header folding is controlled by the :attr:`refold_source` policy setting. A " "value is considered to be a 'source value' if and only if it does not have a " @@ -561,7 +560,7 @@ msgid "" "current policy." msgstr "" -#: ../Doc/library/email.policy.rst:492 +#: library/email.policy.rst:492 msgid "" "Source values are split into lines using :meth:`~str.splitlines`. If the " "value is not to be refolded, the lines are rejoined using the ``linesep`` " @@ -571,13 +570,13 @@ msgid "" "using the ``unknown-8bit`` charset." msgstr "" -#: ../Doc/library/email.policy.rst:502 +#: library/email.policy.rst:502 msgid "" "The same as :meth:`fold` if :attr:`~Policy.cte_type` is ``7bit``, except " "that the returned value is bytes." msgstr "" -#: ../Doc/library/email.policy.rst:505 +#: library/email.policy.rst:505 msgid "" "If :attr:`~Policy.cte_type` is ``8bit``, non-ASCII binary data is converted " "back into bytes. Headers with binary data are not refolded, regardless of " @@ -585,7 +584,7 @@ msgid "" "binary data consists of single byte characters or multibyte characters." msgstr "" -#: ../Doc/library/email.policy.rst:512 +#: library/email.policy.rst:512 msgid "" "The following instances of :class:`EmailPolicy` provide defaults suitable " "for specific application domains. Note that in the future the behavior of " @@ -593,20 +592,20 @@ msgid "" "conform even more closely to the RFCs relevant to their domains." msgstr "" -#: ../Doc/library/email.policy.rst:520 +#: library/email.policy.rst:520 msgid "" "An instance of ``EmailPolicy`` with all defaults unchanged. This policy " -"uses the standard Python ``\\n`` line endings rather than the RFC-correct ``" -"\\r\\n``." +"uses the standard Python ``\\n`` line endings rather than the RFC-correct " +"``\\r\\n``." msgstr "" -#: ../Doc/library/email.policy.rst:527 +#: library/email.policy.rst:527 msgid "" "Suitable for serializing messages in conformance with the email RFCs. Like " "``default``, but with ``linesep`` set to ``\\r\\n``, which is RFC compliant." msgstr "" -#: ../Doc/library/email.policy.rst:534 +#: library/email.policy.rst:534 msgid "" "The same as ``SMTP`` except that :attr:`~EmailPolicy.utf8` is ``True``. " "Useful for serializing messages to a message store without using encoded " @@ -615,46 +614,46 @@ msgid "" "SMTP.send_message` method handles this automatically)." msgstr "" -#: ../Doc/library/email.policy.rst:543 +#: library/email.policy.rst:543 msgid "" "Suitable for serializing headers with for use in HTTP traffic. Like " "``SMTP`` except that ``max_line_length`` is set to ``None`` (unlimited)." msgstr "" -#: ../Doc/library/email.policy.rst:549 +#: library/email.policy.rst:549 msgid "" "Convenience instance. The same as ``default`` except that " "``raise_on_defect`` is set to ``True``. This allows any policy to be made " "strict by writing::" msgstr "" -#: ../Doc/library/email.policy.rst:556 +#: library/email.policy.rst:556 msgid "" "With all of these :class:`EmailPolicies <.EmailPolicy>`, the effective API " "of the email package is changed from the Python 3.2 API in the following " "ways:" msgstr "" -#: ../Doc/library/email.policy.rst:559 +#: library/email.policy.rst:559 msgid "" "Setting a header on a :class:`~email.message.Message` results in that header " "being parsed and a header object created." msgstr "" -#: ../Doc/library/email.policy.rst:562 +#: library/email.policy.rst:562 msgid "" "Fetching a header value from a :class:`~email.message.Message` results in " "that header being parsed and a header object created and returned." msgstr "" -#: ../Doc/library/email.policy.rst:566 +#: library/email.policy.rst:566 msgid "" "Any header object, or any header that is refolded due to the policy " "settings, is folded using an algorithm that fully implements the RFC folding " "algorithms, including knowing where encoded words are required and allowed." msgstr "" -#: ../Doc/library/email.policy.rst:571 +#: library/email.policy.rst:571 msgid "" "From the application view, this means that any header obtained through the :" "class:`~email.message.EmailMessage` is a header object with extra " @@ -664,13 +663,13 @@ msgid "" "the unicode string into the correct RFC encoded form." msgstr "" -#: ../Doc/library/email.policy.rst:578 +#: library/email.policy.rst:578 msgid "" "The header objects and their attributes are described in :mod:`~email." "headerregistry`." msgstr "" -#: ../Doc/library/email.policy.rst:585 +#: library/email.policy.rst:585 msgid "" "This concrete :class:`Policy` is the backward compatibility policy. It " "replicates the behavior of the email package in Python 3.2. The :mod:" @@ -679,28 +678,28 @@ msgid "" "of the email package is to maintain compatibility with Python 3.2." msgstr "" -#: ../Doc/library/email.policy.rst:591 +#: library/email.policy.rst:591 msgid "" "The following attributes have values that are different from the :class:" "`Policy` default:" msgstr "" -#: ../Doc/library/email.policy.rst:597 +#: library/email.policy.rst:597 msgid "The default is ``True``." msgstr "" -#: ../Doc/library/email.policy.rst:614 +#: library/email.policy.rst:614 msgid "The name and value are returned unmodified." msgstr "" -#: ../Doc/library/email.policy.rst:619 +#: library/email.policy.rst:619 msgid "" "If the value contains binary data, it is converted into a :class:`~email." "header.Header` object using the ``unknown-8bit`` charset. Otherwise it is " "returned unmodified." msgstr "" -#: ../Doc/library/email.policy.rst:626 +#: library/email.policy.rst:626 msgid "" "Headers are folded using the :class:`~email.header.Header` folding " "algorithm, which preserves existing line breaks in the value, and wraps each " @@ -708,7 +707,7 @@ msgid "" "encoded using the ``unknown-8bit`` charset." msgstr "" -#: ../Doc/library/email.policy.rst:634 +#: library/email.policy.rst:634 msgid "" "Headers are folded using the :class:`~email.header.Header` folding " "algorithm, which preserves existing line breaks in the value, and wraps each " @@ -718,17 +717,17 @@ msgid "" "and any (RFC invalid) binary data it may contain." msgstr "" -#: ../Doc/library/email.policy.rst:644 +#: library/email.policy.rst:644 msgid "" "An instance of :class:`Compat32`, providing backward compatibility with the " "behavior of the email package in Python 3.2." msgstr "" -#: ../Doc/library/email.policy.rst:649 +#: library/email.policy.rst:649 msgid "Footnotes" msgstr "Notes" -#: ../Doc/library/email.policy.rst:650 +#: library/email.policy.rst:650 msgid "" "Originally added in 3.3 as a :term:`provisional feature `." diff --git a/library/email.utils.po b/library/email.utils.po index 5cd3f15f09..2142e3e2d7 100644 --- a/library/email.utils.po +++ b/library/email.utils.po @@ -19,8 +19,9 @@ msgid ":mod:`email.utils`: Miscellaneous utilities" msgstr "" #: ../Doc/library/email.utils.rst:7 +#, fuzzy msgid "**Source code:** :source:`Lib/email/utils.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/email/parser.py`" #: ../Doc/library/email.utils.rst:11 msgid "" diff --git a/library/ensurepip.po b/library/ensurepip.po index 7955d92416..18665f144a 100644 --- a/library/ensurepip.po +++ b/library/ensurepip.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" +"POT-Creation-Date: 2020-02-04 10:00+0100\n" "PO-Revision-Date: 2017-08-10 00:59+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -17,7 +17,7 @@ msgstr "" #: ../Doc/library/ensurepip.rst:2 msgid ":mod:`ensurepip` --- Bootstrapping the ``pip`` installer" -msgstr "" +msgstr ":mod:`ensurepip` — Amorçage de l'installateur ``pip``" #: ../Doc/library/ensurepip.rst:12 msgid "" @@ -28,6 +28,12 @@ msgid "" "is bundled with maintenance and feature releases of the CPython reference " "interpreter." msgstr "" +"Le module :mod:`ensurepip` met en place l'installateur ``pip`` dans un " +"environnement Python, classique ou virtuel. Ce principe d'amorçage a été " +"choisi car ``pip`` est un projet séparé de Python avec son propre cycle de " +"versions. Il permet en particulier d'embarquer la version la plus récente de " +"``pip`` dans les mises à jour de maintenance de l'interpréteur CPython comme " +"dans les nouvelles versions principales." #: ../Doc/library/ensurepip.rst:19 msgid "" @@ -36,12 +42,19 @@ msgid "" "needed if installing ``pip`` was skipped when installing Python (or when " "creating a virtual environment) or after explicitly uninstalling ``pip``." msgstr "" +"Dans la plupart des cas, il n'est pas nécessaire de recourir à ce module. " +"``pip`` est le plus souvent déjà installé pour vous. Cependant, " +"``ensurepip`` peut s'avérer utile si l'installation de ``pip`` a été sautée " +"au moment de l'installation de Python (ou en créant un environnement " +"virtuel), ou bien si ``pip`` a été désinstallé par l'utilisateur." #: ../Doc/library/ensurepip.rst:27 msgid "" "This module *does not* access the internet. All of the components needed to " "bootstrap ``pip`` are included as internal parts of the package." msgstr "" +"Ce module n'accède *pas* au réseau. Tout ce qu'il faut pour amorcer ``pip`` " +"est compris dans le paquet." #: ../Doc/library/ensurepip.rst:34 msgid ":ref:`installing-index`" @@ -49,28 +62,33 @@ msgstr ":ref:`installing-index`" #: ../Doc/library/ensurepip.rst:34 msgid "The end user guide for installing Python packages" -msgstr "" +msgstr "Guide de l'utilisateur final pour installer des paquets Python" #: ../Doc/library/ensurepip.rst:36 msgid ":pep:`453`: Explicit bootstrapping of pip in Python installations" msgstr "" +":pep:`453` : Amorçage explicite de pip dans les installations de Python" #: ../Doc/library/ensurepip.rst:37 msgid "The original rationale and specification for this module." msgstr "" +"Les motivations pour l'ajout de ce module et sa spécification d'origine" #: ../Doc/library/ensurepip.rst:41 +#, fuzzy msgid "Command line interface" -msgstr "" +msgstr "Interface en ligne de commande" #: ../Doc/library/ensurepip.rst:43 msgid "" "The command line interface is invoked using the interpreter's ``-m`` switch." msgstr "" +"On fait appel à l'interface en ligne de commande à l'aide de l'option ``-m`` " +"de l'interpréteur." #: ../Doc/library/ensurepip.rst:45 msgid "The simplest possible invocation is::" -msgstr "" +msgstr "L'invocation la plus simple est ::" #: ../Doc/library/ensurepip.rst:49 msgid "" @@ -87,6 +105,9 @@ msgid "" "virtual environment). The installation location can be controlled through " "two additional command line options:" msgstr "" +"``pip`` est installé par défaut dans l'environnement virtuel courant, s'il y " +"en a un, ou bien dans le dossier ``site-packages`` du système. L'emplacement " +"d'installation se règle à travers deux options :" #: ../Doc/library/ensurepip.rst:61 msgid "" @@ -94,6 +115,9 @@ msgid "" "rather than the root of the currently active virtual environment (if any) or " "the default root for the current Python installation." msgstr "" +"``--root `` : installe ``pip`` sur un chemin relatif à la racine " +"*dossier* au lieu de la racine de l'environnement virtuel ou la racine par " +"défaut de l'installation de Python." #: ../Doc/library/ensurepip.rst:64 msgid "" @@ -101,6 +125,9 @@ msgid "" "than globally for the current Python installation (this option is not " "permitted inside an active virtual environment)." msgstr "" +"``--user`` : installe ``pip`` dans le dossier ``site-packages`` propre à " +"l'utilisateur au lieu du dossier global de l'installation de Python. Cette " +"option n'est pas valide dans un environnement virtuel." #: ../Doc/library/ensurepip.rst:68 msgid "" @@ -108,34 +135,40 @@ msgid "" "stands for the version of Python used to invoke ``ensurepip``). The scripts " "installed can be controlled through two additional command line options:" msgstr "" +"Par défaut, les commandes ``pipX`` et ``pipX.Y`` sont créées (où X.Y est la " +"version de Python avec laquelle ``ensurepip`` est utilisé). Cela se contrôle " +"par deux options supplémentaires :" #: ../Doc/library/ensurepip.rst:73 msgid "" "``--altinstall``: if an alternate installation is requested, the ``pipX`` " "script will *not* be installed." msgstr "" +"``--altinstall`` : dans ce mode d'« installation parallèle », seule la " +"commande ``pipX.Y`` est ajoutée, et pas la commande ``pipX``." -#: ../Doc/library/ensurepip.rst:77 -msgid "``--default-pip``: if a \"default pip\" installation is requested, the" -msgstr "" - -#: ../Doc/library/ensurepip.rst:77 +#: ../Doc/library/ensurepip.rst:76 msgid "" +"``--default-pip``: if a \"default pip\" installation is requested, the " "``pip`` script will be installed in addition to the two regular scripts." msgstr "" +"``--default-pip`` : ce mode d'« installation de la version par défaut » crée " +"la commande ``pip`` en plus de ``pipX`` et ``pipX.Y``." #: ../Doc/library/ensurepip.rst:79 msgid "" "Providing both of the script selection options will trigger an exception." -msgstr "" +msgstr "Combiner ces deux options conduit à une exception." #: ../Doc/library/ensurepip.rst:83 msgid "Module API" -msgstr "" +msgstr "API du module" #: ../Doc/library/ensurepip.rst:85 msgid ":mod:`ensurepip` exposes two functions for programmatic use:" msgstr "" +"Le module :mod:`ensurepip` définit deux fonctions pour utilisation dans les " +"programmes :" #: ../Doc/library/ensurepip.rst:89 msgid "" @@ -146,6 +179,7 @@ msgstr "" #: ../Doc/library/ensurepip.rst:96 msgid "Bootstraps ``pip`` into the current or designated environment." msgstr "" +"Amorce ``pip`` dans l'environnement courant ou un environnement spécifique." #: ../Doc/library/ensurepip.rst:98 msgid "" @@ -153,6 +187,9 @@ msgid "" "*root* is ``None``, then installation uses the default install location for " "the current environment." msgstr "" +"Passer *root* permet de changer la racine du chemin d'installation. Si " +"*root* vaut ``None`` (la valeur par défaut), l'installation se fait dans la " +"racine par défaut pour l'environnement courant." #: ../Doc/library/ensurepip.rst:102 msgid "" @@ -165,39 +202,52 @@ msgid "" "*user* indicates whether to use the user scheme rather than installing " "globally." msgstr "" +"Si *user* vaut vrai, ``pip`` est mis dans des chemins qui le rendent " +"disponible pour cet utilisateur uniquement, et non pour tous les " +"utilisateurs de l'installation de Python." #: ../Doc/library/ensurepip.rst:108 msgid "" "By default, the scripts ``pipX`` and ``pipX.Y`` will be installed (where X.Y " "stands for the current version of Python)." msgstr "" +"Par défaut, les commandes créées sont ``pipX`` et ``pipX.Y`` (où X.Y est la " +"version de Python)." #: ../Doc/library/ensurepip.rst:111 msgid "If *altinstall* is set, then ``pipX`` will *not* be installed." -msgstr "" +msgstr "Si *altinstall* vaut vrai, ``pipX`` n'est pas créée." #: ../Doc/library/ensurepip.rst:113 msgid "" "If *default_pip* is set, then ``pip`` will be installed in addition to the " "two regular scripts." msgstr "" +"Si *default_pip* vaut vrai, la commande ``pip`` est créée en plus des deux " +"autres." #: ../Doc/library/ensurepip.rst:116 msgid "" "Setting both *altinstall* and *default_pip* will trigger :exc:`ValueError`." msgstr "" +"Le fait de combiner *altinstall* et *default_pip* lève l'exception :exc:" +"`ValueError`." #: ../Doc/library/ensurepip.rst:119 msgid "" "*verbosity* controls the level of output to :data:`sys.stdout` from the " "bootstrapping operation." msgstr "" +"*verbosity* règle le niveau de verbosité des messages émis sur :data:`sys." +"stdout` pendant l'amorçage." #: ../Doc/library/ensurepip.rst:123 msgid "" "Raises an :ref:`auditing event ` ``ensurepip.bootstrap`` with " "argument ``root``." msgstr "" +"Cette fonction lève un :ref:`événement d'audit ` ``ensurepip." +"bootstrap`` avec l'argument ``root``." #: ../Doc/library/ensurepip.rst:126 msgid "" @@ -205,6 +255,9 @@ msgid "" "environ``. Invoking the command line interface in a subprocess instead " "allows these side effects to be avoided." msgstr "" +"Le processus d'amorçage a des effets de bord sur ``sys.path`` et ``os." +"environ``. Pour les éviter, on peut appeler l'interface en ligne de commande " +"dans un sous-processus." #: ../Doc/library/ensurepip.rst:132 msgid "" @@ -213,3 +266,7 @@ msgid "" "be present by default (as the dependencies may be removed in a future " "version of ``pip``)." msgstr "" +"L'amorçage peut installer des modules supplémentaires qui sont requis pour " +"``pip``. Les autres programmes ne doivent pas prendre pour acquise la " +"présence de ces modules, car ``pip`` pourrait dans une version future se " +"passer de ces dépendances." diff --git a/library/enum.po b/library/enum.po index acc2d28b9a..0ba4ede2cf 100644 --- a/library/enum.po +++ b/library/enum.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2019-12-11 11:26+0100\n" "Last-Translator: Antoine Wecxsteen\n" "Language-Team: FRENCH \n" @@ -15,15 +15,15 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 1.8.7.1\n" -#: ../Doc/library/enum.rst:2 +#: library/enum.rst:2 msgid ":mod:`enum` --- Support for enumerations" msgstr ":mod:`enum` — Énumerations" -#: ../Doc/library/enum.rst:14 +#: library/enum.rst:14 msgid "**Source code:** :source:`Lib/enum.py`" msgstr "**Code source :** :source:`Lib/enum.py`" -#: ../Doc/library/enum.rst:18 +#: library/enum.rst:18 msgid "" "An enumeration is a set of symbolic names (members) bound to unique, " "constant values. Within an enumeration, the members can be compared by " @@ -34,11 +34,25 @@ msgstr "" "peuvent être comparés entre eux et il est possible d'itérer sur " "l'énumération elle-même." -#: ../Doc/library/enum.rst:24 +#: library/enum.rst:22 +msgid "Case of Enum Members" +msgstr "Convention de nommage pour les membres d'une **Enum**" + +#: library/enum.rst:24 +msgid "" +"Because Enums are used to represent constants we recommend using UPPER_CASE " +"names for enum members, and will be using that style in our examples." +msgstr "" +"Puisque les **Enums** sont utilisées pour représenter des constantes, il est " +"recommandé d'utiliser des majuscules (format ``MAJUSCULE_AVEC_SOULIGNÉS``) " +"pour leurs membres. Cette convention de style sera utilisée dans les " +"exemples." + +#: library/enum.rst:30 msgid "Module Contents" msgstr "Contenu du module" -#: ../Doc/library/enum.rst:26 +#: library/enum.rst:32 msgid "" "This module defines four enumeration classes that can be used to define " "unique sets of names and values: :class:`Enum`, :class:`IntEnum`, :class:" @@ -50,7 +64,7 @@ msgstr "" "class:`Flag` et :class:`IntFlag`. Il fournit également un décorateur, :func:" "`unique`, ainsi qu'une classe utilitaire, :class:`auto`." -#: ../Doc/library/enum.rst:33 +#: library/enum.rst:39 msgid "" "Base class for creating enumerated constants. See section `Functional API`_ " "for an alternate construction syntax." @@ -58,7 +72,7 @@ msgstr "" "Classe de base pour créer une énumération de constantes. Voir la section " "`API par fonction`_ pour une syntaxe alternative de construction." -#: ../Doc/library/enum.rst:38 +#: library/enum.rst:44 msgid "" "Base class for creating enumerated constants that are also subclasses of :" "class:`int`." @@ -66,7 +80,7 @@ msgstr "" "Classe de base pour créer une énumération de constantes qui sont également " "des sous-classes de :class:`int`." -#: ../Doc/library/enum.rst:43 +#: library/enum.rst:49 msgid "" "Base class for creating enumerated constants that can be combined using the " "bitwise operators without losing their :class:`IntFlag` membership. :class:" @@ -77,7 +91,7 @@ msgstr "" "qualité de :class:`IntFlag`. Les membres de :class:`IntFlag` sont aussi des " "sous-classes de :class:`int`." -#: ../Doc/library/enum.rst:49 +#: library/enum.rst:55 msgid "" "Base class for creating enumerated constants that can be combined using the " "bitwise operations without losing their :class:`Flag` membership." @@ -86,28 +100,31 @@ msgstr "" "combinées avec des opérateurs de comparaison bit-à-bit, sans perdre leur " "qualité de :class:`Flag`." -#: ../Doc/library/enum.rst:54 +#: library/enum.rst:61 msgid "" "Enum class decorator that ensures only one name is bound to any one value." msgstr "" "Décorateur de classe qui garantit qu'une valeur ne puisse être associée qu'à " "un seul nom." -#: ../Doc/library/enum.rst:58 -msgid "Instances are replaced with an appropriate value for Enum members." +#: library/enum.rst:65 +#, fuzzy +msgid "" +"Instances are replaced with an appropriate value for Enum members. Initial " +"value starts at 1." msgstr "" "Les instances de cette classe remplacent les membres d'une *Enum* par une " "valeur appropriée." -#: ../Doc/library/enum.rst:60 +#: library/enum.rst:67 msgid "``Flag``, ``IntFlag``, ``auto``" msgstr "``Flag``, ``IntFlag``, ``auto``" -#: ../Doc/library/enum.rst:64 +#: library/enum.rst:71 msgid "Creating an Enum" msgstr "Création d'une *Enum*" -#: ../Doc/library/enum.rst:66 +#: library/enum.rst:73 msgid "" "Enumerations are created using the :keyword:`class` syntax, which makes them " "easy to read and write. An alternative creation method is described in " @@ -117,13 +134,13 @@ msgstr "" "Une énumération est créée comme une :keyword:`class`, ce qui la rend facile " "à lire et à écrire. Une autre méthode de création est décrite dans `API par " "fonction`_. Pour définir une énumération, il faut hériter de :class:`Enum` " -"de la manière suivante : ::" +"de la manière suivante ::" -#: ../Doc/library/enum.rst:78 +#: library/enum.rst:85 msgid "Enum member values" msgstr "Valeurs des membres d'une *Enum*" -#: ../Doc/library/enum.rst:80 +#: library/enum.rst:87 msgid "" "Member values can be anything: :class:`int`, :class:`str`, etc.. If the " "exact value is unimportant you may use :class:`auto` instances and an " @@ -135,15 +152,15 @@ msgstr "" "instances de :class:`auto` et une valeur appropriée sera choisie pour vous. " "Soyez vigilant si vous mélangez :class:`auto` avec d'autres valeurs." -#: ../Doc/library/enum.rst:85 +#: library/enum.rst:92 msgid "Nomenclature" msgstr "Nomenclature" -#: ../Doc/library/enum.rst:87 +#: library/enum.rst:94 msgid "The class :class:`Color` is an *enumeration* (or *enum*)" msgstr "La classe :class:`Color` est une *énumération* (ou un *enum*)." -#: ../Doc/library/enum.rst:88 +#: library/enum.rst:95 msgid "" "The attributes :attr:`Color.RED`, :attr:`Color.GREEN`, etc., are " "*enumeration members* (or *enum members*) and are functionally constants." @@ -152,7 +169,7 @@ msgstr "" "*membres de l'énumération* (ou les *membres de l'enum*) et sont " "fonctionnellement des constantes." -#: ../Doc/library/enum.rst:90 +#: library/enum.rst:97 msgid "" "The enum members have *names* and *values* (the name of :attr:`Color.RED` is " "``RED``, the value of :attr:`Color.BLUE` is ``3``, etc.)" @@ -160,7 +177,7 @@ msgstr "" "Les membres de *l'enum* ont chacun un *nom* et une *valeur* ; le nom de :" "attr:`Color.RED` est ``RED``, la valeur de :attr:`Color.BLUE` est ``3``, etc." -#: ../Doc/library/enum.rst:96 +#: library/enum.rst:103 msgid "" "Even though we use the :keyword:`class` syntax to create Enums, Enums are " "not normal Python classes. See `How are Enums different?`_ for more details." @@ -169,44 +186,43 @@ msgstr "" "énumérations, les *Enums* ne sont pas des vraies classes Python. Voir `En " "quoi les Enums sont différentes ?`_ pour plus de détails." -#: ../Doc/library/enum.rst:100 +#: library/enum.rst:107 msgid "Enumeration members have human readable string representations::" msgstr "" "Les membres d'une énumération ont une représentation en chaîne de caractères " -"compréhensible par un humain : ::" +"compréhensible par un humain ::" -#: ../Doc/library/enum.rst:105 +#: library/enum.rst:112 msgid "...while their ``repr`` has more information::" -msgstr "… tandis que leur ``repr`` contient plus d'informations : ::" +msgstr "… tandis que leur ``repr`` contient plus d'informations ::" -#: ../Doc/library/enum.rst:110 +#: library/enum.rst:117 msgid "The *type* of an enumeration member is the enumeration it belongs to::" -msgstr "" -"Le *type* d'un membre est l'énumération auquel ce membre appartient : ::" +msgstr "Le *type* d'un membre est l'énumération auquel ce membre appartient ::" -#: ../Doc/library/enum.rst:118 +#: library/enum.rst:125 msgid "Enum members also have a property that contains just their item name::" -msgstr "Les membres ont également un attribut qui contient leur nom : ::" +msgstr "Les membres ont également un attribut qui contient leur nom ::" -#: ../Doc/library/enum.rst:123 +#: library/enum.rst:130 msgid "Enumerations support iteration, in definition order::" msgstr "" "Les énumérations sont itérables, l'ordre d'itération est celui dans lequel " -"les membres sont déclarés : ::" +"les membres sont déclarés ::" -#: ../Doc/library/enum.rst:139 +#: library/enum.rst:146 msgid "" "Enumeration members are hashable, so they can be used in dictionaries and " "sets::" msgstr "" "Les membres d'une énumération sont hachables, ils peuvent ainsi être " -"utilisés dans des dictionnaires ou des ensembles : ::" +"utilisés dans des dictionnaires ou des ensembles ::" -#: ../Doc/library/enum.rst:149 +#: library/enum.rst:156 msgid "Programmatic access to enumeration members and their attributes" msgstr "Accès dynamique aux membres et à leurs attributs" -#: ../Doc/library/enum.rst:151 +#: library/enum.rst:158 msgid "" "Sometimes it's useful to access members in enumerations programmatically (i." "e. situations where ``Color.RED`` won't do because the exact color is not " @@ -215,27 +231,27 @@ msgstr "" "Il est parfois utile de pouvoir accéder dynamiquement aux membres d'une " "énumération (p. ex. dans des situations où il ne suffit pas d'utiliser " "``Color.RED`` car la couleur précise n'est pas connue à l'écriture du " -"programme). ``Enum`` permet de tels accès : ::" +"programme). ``Enum`` permet de tels accès ::" -#: ../Doc/library/enum.rst:160 +#: library/enum.rst:167 msgid "If you want to access enum members by *name*, use item access::" msgstr "" -"Pour accéder aux membres par leur *nom*, utilisez l'accès par indexation : ::" +"Pour accéder aux membres par leur *nom*, utilisez l'accès par indexation ::" -#: ../Doc/library/enum.rst:167 +#: library/enum.rst:174 msgid "If you have an enum member and need its :attr:`name` or :attr:`value`::" -msgstr "Pour obtenir l'attribut :attr:`name` ou :attr:`value` d'un membre : ::" +msgstr "Pour obtenir l'attribut :attr:`name` ou :attr:`value` d'un membre ::" -#: ../Doc/library/enum.rst:177 +#: library/enum.rst:184 msgid "Duplicating enum members and values" msgstr "Duplication de membres et de valeurs" -#: ../Doc/library/enum.rst:179 +#: library/enum.rst:186 msgid "Having two enum members with the same name is invalid::" msgstr "" -"Il n'est pas possible d'avoir deux membres du même nom dans un *enum* : ::" +"Il n'est pas possible d'avoir deux membres du même nom dans un *enum* ::" -#: ../Doc/library/enum.rst:189 +#: library/enum.rst:196 msgid "" "However, two enum members are allowed to have the same value. Given two " "members A and B with the same value (and A defined first), B is an alias to " @@ -245,9 +261,9 @@ msgstr "" "Cependant deux membres peuvent avoir la même valeur. Si deux membres A et B " "ont la même valeur (et que A est défini en premier), B sera un alias de A. " "Un accès par valeur avec la valeur commune à A et B renverra A. Un accès à B " -"par nom renverra aussi A : ::" +"par nom renverra aussi A ::" -#: ../Doc/library/enum.rst:209 +#: library/enum.rst:216 msgid "" "Attempting to create a member with the same name as an already defined " "attribute (another member, a method, etc.) or attempting to create an " @@ -257,11 +273,11 @@ msgstr "" "défini (un autre membre, une méthode, etc.) ou de créer un attribut avec le " "nom d'un membre." -#: ../Doc/library/enum.rst:215 +#: library/enum.rst:222 msgid "Ensuring unique enumeration values" msgstr "Coercition d'unicité des valeurs d'une énumération" -#: ../Doc/library/enum.rst:217 +#: library/enum.rst:224 msgid "" "By default, enumerations allow multiple names as aliases for the same value. " "When this behavior isn't desired, the following decorator can be used to " @@ -272,7 +288,7 @@ msgstr "" "décorateur suivant pour s'assurer que chaque valeur n'est utilisée qu'une " "seule fois au sein de l'énumération : ::" -#: ../Doc/library/enum.rst:223 +#: library/enum.rst:230 msgid "" "A :keyword:`class` decorator specifically for enumerations. It searches an " "enumeration's :attr:`__members__` gathering any aliases it finds; if any are " @@ -280,46 +296,51 @@ msgid "" msgstr "" "Un décorateur de :keyword:`class` spécifique aux énumérations. Il examine " "l'attribut :attr:`__members__` d'une énumération et recherche des alias ; " -"s'il en trouve, l'exception :exc:`ValueError` est levée avec des détails : ::" +"s'il en trouve, l'exception :exc:`ValueError` est levée avec des détails ::" -#: ../Doc/library/enum.rst:241 +#: library/enum.rst:248 msgid "Using automatic values" msgstr "Valeurs automatiques" -#: ../Doc/library/enum.rst:243 +#: library/enum.rst:250 msgid "If the exact value is unimportant you can use :class:`auto`::" msgstr "" "Si la valeur exacte n'a pas d'importance, vous pouvez utiliser :class:" -"`auto` : ::" +"`auto` ::" -#: ../Doc/library/enum.rst:254 +#: library/enum.rst:261 msgid "" "The values are chosen by :func:`_generate_next_value_`, which can be " "overridden::" msgstr "" "Les valeurs sont déterminées par :func:`_generate_next_value_`, qui peut " -"être redéfinie : ::" +"être redéfinie ::" -#: ../Doc/library/enum.rst:272 +#: library/enum.rst:279 msgid "" -"The goal of the default :meth:`_generate_next_value_` methods is to provide " +"The goal of the default :meth:`_generate_next_value_` method is to provide " "the next :class:`int` in sequence with the last :class:`int` provided, but " "the way it does this is an implementation detail and may change." msgstr "" -"La méthode par défaut :meth:`_generate_next_value_` doit fournir le :class:" -"`int` suivant de la séquence en fonction du dernier :class:`int` fourni, " -"mais la séquence générée dépend de l'implémentation Python." +"La méthode :meth:`_generate_next_value_` doit renvoyer le prochain :class:" +"`int` de la séquence à partir du dernier :class:`int` fourni, mais " +"l'implémentation de cette fonction peut changer." + +#: library/enum.rst:285 +msgid "" +"The :meth:`_generate_next_value_` method must be defined before any members." +msgstr "" +"La méthode :meth:`_generate_next_value_` doit être définie avant tout membre." -#: ../Doc/library/enum.rst:277 +#: library/enum.rst:288 msgid "Iteration" msgstr "Itération" -#: ../Doc/library/enum.rst:279 +#: library/enum.rst:290 msgid "Iterating over the members of an enum does not provide the aliases::" -msgstr "" -"Itérer sur les membres d'une énumération ne parcourt pas les alias : ::" +msgstr "Itérer sur les membres d'une énumération ne parcourt pas les alias ::" -#: ../Doc/library/enum.rst:284 +#: library/enum.rst:295 msgid "" "The special attribute ``__members__`` is a read-only ordered mapping of " "names to members. It includes all names defined in the enumeration, " @@ -327,38 +348,38 @@ msgid "" msgstr "" "L'attribut spécial ``__members__`` est un dictionnaire en lecture seule " "ordonné qui fait correspondre les noms aux membres. Il inclut tous les noms " -"définis dans l'énumération, alias compris ::" +"définis dans l'énumération, alias compris ::" -#: ../Doc/library/enum.rst:296 +#: library/enum.rst:307 msgid "" "The ``__members__`` attribute can be used for detailed programmatic access " "to the enumeration members. For example, finding all the aliases::" msgstr "" "L'attribut ``__members__`` peut servir à accéder dynamiquement aux membres " -"de l'énumération. Par exemple, pour trouver tous les alias : ::" +"de l'énumération. Par exemple, pour trouver tous les alias ::" -#: ../Doc/library/enum.rst:304 +#: library/enum.rst:315 msgid "Comparisons" msgstr "Comparaisons" -#: ../Doc/library/enum.rst:306 +#: library/enum.rst:317 msgid "Enumeration members are compared by identity::" -msgstr "Les membres d'une énumération sont comparés par identité : ::" +msgstr "Les membres d'une énumération sont comparés par identité ::" -#: ../Doc/library/enum.rst:315 +#: library/enum.rst:326 msgid "" "Ordered comparisons between enumeration values are *not* supported. Enum " "members are not integers (but see `IntEnum`_ below)::" msgstr "" "Les comparaisons d'ordre entre les valeurs d'une énumération n'existent " "*pas* ; les membres d'un *enum* ne sont pas des entiers (voir cependant " -"`IntEnum`_ ci-dessous) : ::" +"`IntEnum`_ ci-dessous) ::" -#: ../Doc/library/enum.rst:323 +#: library/enum.rst:334 msgid "Equality comparisons are defined though::" -msgstr "A contrario, les comparaisons d'égalité existent : ::" +msgstr "A contrario, les comparaisons d'égalité existent ::" -#: ../Doc/library/enum.rst:332 +#: library/enum.rst:343 msgid "" "Comparisons against non-enumeration values will always compare not equal " "(again, :class:`IntEnum` was explicitly designed to behave differently, see " @@ -366,13 +387,13 @@ msgid "" msgstr "" "Les comparaisons avec des valeurs ne provenant pas d'énumérations sont " "toujours fausses (ici encore, :class:`IntEnum` a été conçue pour fonctionner " -"différemment, voir ci-dessous) : ::" +"différemment, voir ci-dessous) ::" -#: ../Doc/library/enum.rst:341 +#: library/enum.rst:352 msgid "Allowed members and attributes of enumerations" msgstr "Membres et attributs autorisés dans une énumération" -#: ../Doc/library/enum.rst:343 +#: library/enum.rst:354 msgid "" "The examples above use integers for enumeration values. Using integers is " "short and handy (and provided by default by the `Functional API`_), but not " @@ -387,19 +408,19 @@ msgstr "" "toutefois possible de donner une valeur arbitraire aux énumérations, si " "cette valeur est *vraiment* significative." -#: ../Doc/library/enum.rst:349 +#: library/enum.rst:360 msgid "" "Enumerations are Python classes, and can have methods and special methods as " "usual. If we have this enumeration::" msgstr "" "Les énumérations sont des classes Python et peuvent donc avoir des méthodes " -"et des méthodes spéciales. L'énumération suivante : ::" +"et des méthodes spéciales. L'énumération suivante ::" -#: ../Doc/library/enum.rst:369 +#: library/enum.rst:380 msgid "Then::" -msgstr "amène : ::" +msgstr "amène ::" -#: ../Doc/library/enum.rst:378 +#: library/enum.rst:389 msgid "" "The rules for what is allowed are as follows: names that start and end with " "a single underscore are reserved by enum and cannot be used; all other " @@ -416,7 +437,7 @@ msgstr "" "méthodes sont aussi des descripteurs) et des noms de variable listés dans :" "attr:`_ignore_`." -#: ../Doc/library/enum.rst:385 +#: library/enum.rst:396 msgid "" "Note: if your enumeration defines :meth:`__new__` and/or :meth:`__init__` " "then whatever value(s) were given to the enum member will be passed into " @@ -426,11 +447,11 @@ msgstr "" "alors la (ou les) valeur affectée au membre sera passée à ces méthodes. Voir " "l'exemple de `Planet`_." -#: ../Doc/library/enum.rst:391 +#: library/enum.rst:402 msgid "Restricted Enum subclassing" msgstr "Restrictions sur l'héritage" -#: ../Doc/library/enum.rst:393 +#: library/enum.rst:404 msgid "" "A new :class:`Enum` class must have one base Enum class, up to one concrete " "data type, and as many :class:`object`-based mixin classes as needed. The " @@ -439,21 +460,21 @@ msgstr "" "Une nouvelle classe :class:`Enum` doit avoir une classe *Enum* de base, au " "plus un type de données concret et autant de classes de mélange (basées sur :" "class:`object`) que nécessaire. L'ordre de ces classes de base est le " -"suivant : ::" +"suivant ::" -#: ../Doc/library/enum.rst:400 +#: library/enum.rst:411 msgid "" "Also, subclassing an enumeration is allowed only if the enumeration does not " "define any members. So this is forbidden::" msgstr "" "Hériter d'une énumération n'est permis que si cette énumération ne définit " -"aucun membre. Le code suivant n'est pas autorisé : ::" +"aucun membre. Le code suivant n'est pas autorisé ::" -#: ../Doc/library/enum.rst:410 +#: library/enum.rst:421 msgid "But this is allowed::" -msgstr "Mais celui-ci est correct : ::" +msgstr "Mais celui-ci est correct ::" -#: ../Doc/library/enum.rst:421 +#: library/enum.rst:432 msgid "" "Allowing subclassing of enums that define members would lead to a violation " "of some important invariants of types and instances. On the other hand, it " @@ -465,15 +486,15 @@ msgstr "" "d'autoriser un groupe d'énumérations à partager un comportement commun (voir " "par exemple `OrderedEnum`_)." -#: ../Doc/library/enum.rst:428 +#: library/enum.rst:439 msgid "Pickling" msgstr "Sérialisation" -#: ../Doc/library/enum.rst:430 +#: library/enum.rst:441 msgid "Enumerations can be pickled and unpickled::" msgstr "Les énumérations peuvent être sérialisées et déserialisées ::" -#: ../Doc/library/enum.rst:437 +#: library/enum.rst:448 msgid "" "The usual restrictions for pickling apply: picklable enums must be defined " "in the top level of a module, since unpickling requires them to be " @@ -484,7 +505,7 @@ msgstr "" "module car la déserialisation nécessite que ces *enums* puissent être " "importés depuis ce module." -#: ../Doc/library/enum.rst:443 +#: library/enum.rst:454 msgid "" "With pickle protocol version 4 it is possible to easily pickle enums nested " "in other classes." @@ -492,7 +513,7 @@ msgstr "" "Depuis la version 4 du protocole de *pickle*, il est possible de sérialiser " "facilement des *enums* imbriqués dans d'autres classes." -#: ../Doc/library/enum.rst:446 +#: library/enum.rst:457 msgid "" "It is possible to modify how Enum members are pickled/unpickled by defining :" "meth:`__reduce_ex__` in the enumeration class." @@ -500,17 +521,17 @@ msgstr "" "Redéfinir la méthode :meth:`__reduce_ex__` permet de modifier la " "sérialisation ou la dé-sérialisation des membres d'une énumération." -#: ../Doc/library/enum.rst:451 +#: library/enum.rst:462 msgid "Functional API" msgstr "API par fonction" -#: ../Doc/library/enum.rst:453 +#: library/enum.rst:464 msgid "" "The :class:`Enum` class is callable, providing the following functional API::" msgstr "" -"La :class:`Enum` est appelable et implémente l'API par fonction suivante : ::" +"La :class:`Enum` est appelable et implémente l'API par fonction suivante ::" -#: ../Doc/library/enum.rst:465 +#: library/enum.rst:476 msgid "" "The semantics of this API resemble :class:`~collections.namedtuple`. The " "first argument of the call to :class:`Enum` is the name of the enumeration." @@ -518,7 +539,7 @@ msgstr "" "La sémantique de cette API est similaire à :class:`~collections.namedtuple`. " "Le premier argument de l'appel à :class:`Enum` est le nom de l'énumération." -#: ../Doc/library/enum.rst:468 +#: library/enum.rst:479 msgid "" "The second argument is the *source* of enumeration member names. It can be " "a whitespace-separated string of names, a sequence of names, a sequence of 2-" @@ -537,9 +558,9 @@ msgstr "" "énumérations ; les autres affectent automatiquement des entiers en " "commençant par 1 (le paramètre ``start`` permet de changer la valeur de " "départ). Ceci renvoie une nouvelle classe dérivée de :class:`Enum`. En " -"d'autres termes, la déclaration de :class:`Animal` ci-dessus équivaut à : ::" +"d'autres termes, la déclaration de :class:`Animal` ci-dessus équivaut à ::" -#: ../Doc/library/enum.rst:484 +#: library/enum.rst:495 msgid "" "The reason for defaulting to ``1`` as the starting number and not ``0`` is " "that ``0`` is ``False`` in a boolean sense, but enum members all evaluate to " @@ -549,7 +570,7 @@ msgstr "" "booléen vaut ``False`` alors que tous les membres d'une *enum* valent " "``True``." -#: ../Doc/library/enum.rst:488 +#: library/enum.rst:499 msgid "" "Pickling enums created with the functional API can be tricky as frame stack " "implementation details are used to try and figure out which module the " @@ -563,9 +584,9 @@ msgstr "" "l'énumération est créée (p. ex. elle échouera avec les fonctions utilitaires " "provenant d'un module séparé et peut ne pas fonctionner avec IronPython ou " "Jython). La solution consiste à préciser explicitement le nom du module " -"comme ceci : ::" +"comme ceci ::" -#: ../Doc/library/enum.rst:498 +#: library/enum.rst:509 msgid "" "If ``module`` is not supplied, and Enum cannot determine what it is, the new " "Enum members will not be unpicklable; to keep errors closer to the source, " @@ -575,7 +596,7 @@ msgstr "" "nouveaux membres de *l'Enum* ne seront pas déserialisables ; pour garder les " "erreurs au plus près de leur origine, la sérialisation sera désactivée." -#: ../Doc/library/enum.rst:502 +#: library/enum.rst:513 msgid "" "The new pickle protocol 4 also, in some circumstances, relies on :attr:" "`~definition.__qualname__` being set to the location where pickle will be " @@ -586,90 +607,90 @@ msgstr "" "cas, sur le fait que :attr:`~definition.__qualname__` pointe sur l'endroit " "où *pickle* peut trouver la classe. Par exemple, si la classe était " "disponible depuis la classe *SomeData* dans l'espace de nom de plus haut " -"niveau : ::" +"niveau ::" -#: ../Doc/library/enum.rst:509 +#: library/enum.rst:520 msgid "The complete signature is::" -msgstr "La signature complète est la suivante : ::" +msgstr "La signature complète est la suivante ::" -#: ../Doc/library/enum.rst:0 +#: library/enum.rst:0 msgid "value" msgstr "value" -#: ../Doc/library/enum.rst:513 +#: library/enum.rst:524 msgid "What the new Enum class will record as its name." msgstr "Le nom de la la nouvelle classe *Enum*." -#: ../Doc/library/enum.rst:0 +#: library/enum.rst:0 msgid "names" msgstr "names" -#: ../Doc/library/enum.rst:515 +#: library/enum.rst:526 msgid "" "The Enum members. This can be a whitespace or comma separated string " "(values will start at 1 unless otherwise specified)::" msgstr "" "Les membres de l'énumération. Une chaîne de caractères séparés par des " "espaces ou des virgules (la valeur de départ est fixée à 1, sauf si " -"spécifiée autrement) : ::" +"spécifiée autrement) ::" -#: ../Doc/library/enum.rst:520 +#: library/enum.rst:531 msgid "or an iterator of names::" -msgstr "ou un itérateur sur les noms : ::" +msgstr "ou un itérateur sur les noms ::" -#: ../Doc/library/enum.rst:524 +#: library/enum.rst:535 msgid "or an iterator of (name, value) pairs::" -msgstr "ou un itérateur sur les tuples (nom, valeur) : ::" +msgstr "ou un itérateur sur les tuples (nom, valeur) ::" -#: ../Doc/library/enum.rst:528 +#: library/enum.rst:539 msgid "or a mapping::" -msgstr "ou une correspondance : ::" +msgstr "ou une correspondance ::" -#: ../Doc/library/enum.rst:0 +#: library/enum.rst:0 msgid "module" msgstr "module" -#: ../Doc/library/enum.rst:532 +#: library/enum.rst:543 msgid "name of module where new Enum class can be found." msgstr "nom du module dans lequel la classe *Enum* se trouve." -#: ../Doc/library/enum.rst:0 +#: library/enum.rst:0 msgid "qualname" msgstr "qualname" -#: ../Doc/library/enum.rst:534 +#: library/enum.rst:545 msgid "where in module new Enum class can be found." msgstr "localisation de la nouvelle classe *Enum* dans le module." -#: ../Doc/library/enum.rst:0 +#: library/enum.rst:0 msgid "type" msgstr "type" -#: ../Doc/library/enum.rst:536 +#: library/enum.rst:547 msgid "type to mix in to new Enum class." msgstr "le type à mélanger dans la nouvelle classe *Enum*." -#: ../Doc/library/enum.rst:0 +#: library/enum.rst:0 msgid "start" msgstr "start" -#: ../Doc/library/enum.rst:538 +#: library/enum.rst:549 msgid "number to start counting at if only names are passed in." msgstr "index de départ si uniquement des noms sont passés." -#: ../Doc/library/enum.rst:540 +#: library/enum.rst:551 msgid "The *start* parameter was added." msgstr "Ajout du paramètre *start*." -#: ../Doc/library/enum.rst:545 +#: library/enum.rst:556 msgid "Derived Enumerations" msgstr "Énumérations dérivées" -#: ../Doc/library/enum.rst:548 +#: library/enum.rst:559 msgid "IntEnum" msgstr "IntEnum" -#: ../Doc/library/enum.rst:550 +#: library/enum.rst:561 msgid "" "The first variation of :class:`Enum` that is provided is also a subclass of :" "class:`int`. Members of an :class:`IntEnum` can be compared to integers; by " @@ -679,28 +700,28 @@ msgstr "" "La première version dérivée de :class:`Enum` qui existe est aussi une sous-" "classe de :class:`int`. Les membres de :class:`IntEnum` peuvent être " "comparés à des entiers et, par extension, les comparaisons entre des " -"énumérations entières de type différent sont possibles : ::" +"énumérations entières de type différent sont possibles ::" -#: ../Doc/library/enum.rst:571 +#: library/enum.rst:582 msgid "" "However, they still can't be compared to standard :class:`Enum` " "enumerations::" msgstr "" "Elles ne peuvent cependant toujours pas être comparées à des énumérations " -"standards de :class:`Enum` : ::" +"standards de :class:`Enum` ::" -#: ../Doc/library/enum.rst:584 +#: library/enum.rst:595 msgid "" ":class:`IntEnum` values behave like integers in other ways you'd expect::" msgstr "" "Les valeurs de :class:`IntEnum` se comportent comme des entiers, comme on " -"pouvait s'y attendre : ::" +"pouvait s'y attendre ::" -#: ../Doc/library/enum.rst:595 +#: library/enum.rst:606 msgid "IntFlag" msgstr "IntFlag" -#: ../Doc/library/enum.rst:597 +#: library/enum.rst:608 msgid "" "The next variation of :class:`Enum` provided, :class:`IntFlag`, is also " "based on :class:`int`. The difference being :class:`IntFlag` members can be " @@ -720,15 +741,15 @@ msgstr "" "`IntFlag`, autre qu'un opérateur bit-à-bit lui fait perdre sa qualité de :" "class:`IntFlag`." -#: ../Doc/library/enum.rst:607 +#: library/enum.rst:618 msgid "Sample :class:`IntFlag` class::" -msgstr "Exemple d'une classe :class:`IntFlag` : ::" +msgstr "Exemple d'une classe :class:`IntFlag` ::" -#: ../Doc/library/enum.rst:623 +#: library/enum.rst:634 msgid "It is also possible to name the combinations::" -msgstr "Il est aussi possible de nommer les combinaisons : ::" +msgstr "Il est aussi possible de nommer les combinaisons ::" -#: ../Doc/library/enum.rst:635 +#: library/enum.rst:646 msgid "" "Another important difference between :class:`IntFlag` and :class:`Enum` is " "that if no flags are set (the value is 0), its boolean evaluation is :data:" @@ -736,21 +757,21 @@ msgid "" msgstr "" "Une autre différence importante entre :class:`IntFlag` et :class:`Enum` est " "que, si aucune option n'est activée (la valeur vaut 0), son évaluation " -"booléenne est :data:`False` : ::" +"booléenne est :data:`False` ::" -#: ../Doc/library/enum.rst:643 +#: library/enum.rst:654 msgid "" "Because :class:`IntFlag` members are also subclasses of :class:`int` they " "can be combined with them::" msgstr "" "Comme les membres d'une classe :class:`IntFlag` héritent aussi de :class:" -"`int`, ils peuvent être combinés avec eux : ::" +"`int`, ils peuvent être combinés avec eux ::" -#: ../Doc/library/enum.rst:651 +#: library/enum.rst:662 msgid "Flag" msgstr "Option" -#: ../Doc/library/enum.rst:653 +#: library/enum.rst:664 msgid "" "The last variation is :class:`Flag`. Like :class:`IntFlag`, :class:`Flag` " "members can be combined using the bitwise operators (&, \\|, ^, ~). Unlike :" @@ -768,32 +789,32 @@ msgstr "" "recommandé d'utiliser :class:`auto` comme valeur et de laisser :class:`Flag` " "choisir une valeur appropriée." -#: ../Doc/library/enum.rst:662 +#: library/enum.rst:673 msgid "" "Like :class:`IntFlag`, if a combination of :class:`Flag` members results in " "no flags being set, the boolean evaluation is :data:`False`::" msgstr "" "Comme avec :class:`IntFlag`, si une combinaison de membres d'une classe :" "class:`Flag` n'active aucune option, l'évaluation booléenne de la " -"comparaison est :data:`False` : ::" +"comparaison est :data:`False` ::" -#: ../Doc/library/enum.rst:676 +#: library/enum.rst:687 msgid "" "Individual flags should have values that are powers of two (1, 2, 4, " "8, ...), while combinations of flags won't::" msgstr "" "Les options de base doivent avoir des puissances de deux pour valeurs (1, 2, " -"4, 8, ...) mais pas les combinaisons : ::" +"4, 8, ...) mais pas les combinaisons ::" -#: ../Doc/library/enum.rst:688 +#: library/enum.rst:699 msgid "" "Giving a name to the \"no flags set\" condition does not change its boolean " "value::" msgstr "" "Donner un nom à la valeur « aucune option activée » ne change pas sa valeur " -"booléenne : ::" +"booléenne ::" -#: ../Doc/library/enum.rst:704 +#: library/enum.rst:715 msgid "" "For the majority of new code, :class:`Enum` and :class:`Flag` are strongly " "recommended, since :class:`IntEnum` and :class:`IntFlag` break some semantic " @@ -812,19 +833,19 @@ msgstr "" "pas ; par exemple quand des constantes entières sont remplacées par des " "énumérations, ou pour l’interopérabilité avec d'autres systèmes." -#: ../Doc/library/enum.rst:714 +#: library/enum.rst:725 msgid "Others" msgstr "Autres" -#: ../Doc/library/enum.rst:716 +#: library/enum.rst:727 msgid "" "While :class:`IntEnum` is part of the :mod:`enum` module, it would be very " "simple to implement independently::" msgstr "" "Bien que :class:`IntEnum` fasse partie du module :mod:`enum`, elle serait " -"très simple à implémenter hors de ce module : ::" +"très simple à implémenter hors de ce module ::" -#: ../Doc/library/enum.rst:722 +#: library/enum.rst:733 msgid "" "This demonstrates how similar derived enumerations can be defined; for " "example a :class:`StrEnum` that mixes in :class:`str` instead of :class:" @@ -834,11 +855,11 @@ msgstr "" "exemple une classe :class:`StrEnum` qui dériverait de :class:`str` au lieu " "de :class:`int`." -#: ../Doc/library/enum.rst:725 +#: library/enum.rst:736 msgid "Some rules:" msgstr "Quelques règles :" -#: ../Doc/library/enum.rst:727 +#: library/enum.rst:738 msgid "" "When subclassing :class:`Enum`, mix-in types must appear before :class:" "`Enum` itself in the sequence of bases, as in the :class:`IntEnum` example " @@ -848,7 +869,7 @@ msgstr "" "avant la classe :class:`Enum` elle-même dans la liste des classes de base, " "comme dans l'exemple de :class:`IntEnum` ci-dessus." -#: ../Doc/library/enum.rst:730 +#: library/enum.rst:741 msgid "" "While :class:`Enum` can have members of any type, once you mix in an " "additional type, all the members must have values of that type, e.g. :class:" @@ -862,7 +883,7 @@ msgstr "" "s'applique pas aux types de mélange qui ne font qu'ajouter des méthodes et " "ne définissent pas de type de données, tels :class:`int` ou :class:`str`. " -#: ../Doc/library/enum.rst:735 +#: library/enum.rst:746 msgid "" "When another data type is mixed in, the :attr:`value` attribute is *not the " "same* as the enum member itself, although it is equivalent and will compare " @@ -872,53 +893,62 @@ msgstr "" "*pas* identique au membre de l'énumération lui-même, bien qu'ils soient " "équivalents et égaux en comparaison." -#: ../Doc/library/enum.rst:738 +#: library/enum.rst:749 msgid "" "%-style formatting: `%s` and `%r` call the :class:`Enum` class's :meth:" -"`__str__` and :meth:`__repr__` respectively; other codes (such as `%i` or `" -"%h` for IntEnum) treat the enum member as its mixed-in type." +"`__str__` and :meth:`__repr__` respectively; other codes (such as `%i` or " +"`%h` for IntEnum) treat the enum member as its mixed-in type." msgstr "" "Formatage de style *%* : `%s` et `%r` appellent respectivement les méthodes :" "meth:`__str__` et :meth:`__repr__` de la classe :class:`Enum` ; les autres " "codes, comme `%i` ou `%h` pour *IntEnum*, s'appliquent au membre comme si " "celui-ci était converti en son type de mélange." -#: ../Doc/library/enum.rst:741 +#: library/enum.rst:752 msgid "" ":ref:`Formatted string literals `, :meth:`str.format`, and :func:" -"`format` will use the mixed-in type's :meth:`__format__`. If the :class:" -"`Enum` class's :func:`str` or :func:`repr` is desired, use the `!s` or `!r` " -"format codes." -msgstr "" -":ref:`Chaînes de caractères formatées littérales ` : :meth:`str." -"format` et :func:`format` appellent la méthode :meth:`__format__` du type de " -"mélange. Pour appeler les fonctions :func:`str` ou :func:`repr` de la " -"classe :class:`Enum`, il faut utiliser les codes de formatage `!s` ou `!r`." - -#: ../Doc/library/enum.rst:747 +"`format` will use the mixed-in type's :meth:`__format__` unless :meth:" +"`__str__` or :meth:`__format__` is overridden in the subclass, in which case " +"the overridden methods or :class:`Enum` methods will be used. Use the !s " +"and !r format codes to force usage of the :class:`Enum` class's :meth:" +"`__str__` and :meth:`__repr__` methods." +msgstr "" +"Les :ref:`chaînes littérales formatées ` : :meth:`str.format` et :" +"func:`format` appellent la méthode :meth:`__format__` du type dérivé à moins " +"que :meth:`__str__` ou :meth:`__format__` soit surchargée dans la sous-" +"classe, auquel cas les méthodes surchargées ou celles de la classe :class:" +"`Enum` seront utilisées. Pour appeler les méthodes :meth:`__str__` ou :meth:" +"`__repr__` de la classe :class:`Enum`, il faut utiliser les codes de " +"formatage ``!s`` ou ``!r``." + +#: library/enum.rst:760 msgid "When to use :meth:`__new__` vs. :meth:`__init__`" msgstr "Quand utiliser :meth:`__new__` ou :meth:`__init__`" -#: ../Doc/library/enum.rst:749 +#: library/enum.rst:762 msgid "" ":meth:`__new__` must be used whenever you want to customize the actual value " "of the :class:`Enum` member. Any other modifications may go in either :meth:" "`__new__` or :meth:`__init__`, with :meth:`__init__` being preferred." msgstr "" +":meth:`__new__` doit être utilisé dès que vous souhaitez personnaliser la " +"valeur effective des membres d'un :class:`Enum`. Tout autre modification " +"peut autant aller dans :meth:`__new__` que dans :meth:`__init__`, mais " +"l'usage de :meth:`__init__` est recommandé." -#: ../Doc/library/enum.rst:753 +#: library/enum.rst:766 msgid "" "For example, if you want to pass several items to the constructor, but only " "want one of them to be the value::" msgstr "" "Par exemple, si vous voulez passer plusieurs éléments au constructeur, mais " -"qu'un seul d'entre eux soit la valeur ::" +"qu'un seul d'entre eux soit la valeur ::" -#: ../Doc/library/enum.rst:779 +#: library/enum.rst:792 msgid "Interesting examples" msgstr "Exemples intéressants" -#: ../Doc/library/enum.rst:781 +#: library/enum.rst:794 msgid "" "While :class:`Enum`, :class:`IntEnum`, :class:`IntFlag`, and :class:`Flag` " "are expected to cover the majority of use-cases, they cannot cover them " @@ -931,11 +961,11 @@ msgstr "" "réutilisées telles quelles, ou peuvent servir d'exemple pour développer vos " "propres énumérations." -#: ../Doc/library/enum.rst:788 +#: library/enum.rst:801 msgid "Omitting values" msgstr "Omettre les valeurs" -#: ../Doc/library/enum.rst:790 +#: library/enum.rst:803 msgid "" "In many use-cases one doesn't care what the actual value of an enumeration " "is. There are several ways to define this type of simple enumeration:" @@ -944,19 +974,19 @@ msgstr "" "d'importance. Il y a plusieurs façons de définir ce type d'énumération " "simple :" -#: ../Doc/library/enum.rst:793 +#: library/enum.rst:806 msgid "use instances of :class:`auto` for the value" msgstr "affecter des instances de :class:`auto` aux valeurs" -#: ../Doc/library/enum.rst:794 +#: library/enum.rst:807 msgid "use instances of :class:`object` as the value" msgstr "affecter des instances de :class:`object` aux valeurs" -#: ../Doc/library/enum.rst:795 +#: library/enum.rst:808 msgid "use a descriptive string as the value" msgstr "affecter des chaînes de caractères aux valeurs pour les décrire" -#: ../Doc/library/enum.rst:796 +#: library/enum.rst:809 msgid "" "use a tuple as the value and a custom :meth:`__new__` to replace the tuple " "with an :class:`int` value" @@ -964,7 +994,7 @@ msgstr "" "affecter un n-uplet aux valeurs et définir une méthode :meth:`__new__` pour " "remplacer les n-uplets avec un :class:`int`" -#: ../Doc/library/enum.rst:799 +#: library/enum.rst:812 msgid "" "Using any of these methods signifies to the user that these values are not " "important, and also enables one to add, remove, or reorder members without " @@ -974,49 +1004,65 @@ msgstr "" "pas d'importance. Cela permet aussi d'ajouter, de supprimer ou de ré-" "ordonner les membres sans avoir à ré-énumérer les membres existants." -#: ../Doc/library/enum.rst:803 +#: library/enum.rst:816 msgid "" "Whichever method you choose, you should provide a :meth:`repr` that also " "hides the (unimportant) value::" msgstr "" "Quelle que soit la méthode choisie, il faut fournir une méthode :meth:`repr` " -"qui masque les valeurs (pas importantes de toute façon) : ::" +"qui masque les valeurs (pas importantes de toute façon) ::" -#: ../Doc/library/enum.rst:813 +#: library/enum.rst:826 msgid "Using :class:`auto`" msgstr "Avec :class:`auto`" -#: ../Doc/library/enum.rst:815 +#: library/enum.rst:828 msgid "Using :class:`auto` would look like::" -msgstr "On utilise :class:`auto` de la manière suivante : ::" +msgstr "On utilise :class:`auto` de la manière suivante ::" -#: ../Doc/library/enum.rst:827 +#: library/enum.rst:840 msgid "Using :class:`object`" msgstr "Avec :class:`object`" -#: ../Doc/library/enum.rst:829 +#: library/enum.rst:842 msgid "Using :class:`object` would look like::" -msgstr "On utilise :class:`object` de la manière suivante : ::" +msgstr "On utilise :class:`object` de la manière suivante ::" -#: ../Doc/library/enum.rst:841 +#: library/enum.rst:854 msgid "Using a descriptive string" msgstr "Avec une chaîne de caractères de description" -#: ../Doc/library/enum.rst:843 +#: library/enum.rst:856 msgid "Using a string as the value would look like::" -msgstr "On utilise une chaîne de caractères de la manière suivante : ::" +msgstr "On utilise une chaîne de caractères de la manière suivante ::" -#: ../Doc/library/enum.rst:857 +#: library/enum.rst:870 msgid "Using a custom :meth:`__new__`" msgstr "Avec une méthode ad-hoc :meth:`__new__`" -#: ../Doc/library/enum.rst:859 +#: library/enum.rst:872 msgid "Using an auto-numbering :meth:`__new__` would look like::" msgstr "" "On utilise une méthode :meth:`__new__` d'énumération de la manière " -"suivante : ::" +"suivante ::" + +#: library/enum.rst:891 +msgid "" +"To make a more general purpose ``AutoNumber``, add ``*args`` to the " +"signature::" +msgstr "" +"Pour définir un ``AutoNumber`` plus générique, ajoutez ``*args`` à la " +"signature ::" + +#: library/enum.rst:901 +msgid "" +"Then when you inherit from ``AutoNumber`` you can write your own " +"``__init__`` to handle any extra arguments::" +msgstr "" +"Ainsi, quand vous héritez d'``AutoNumber``, vous pouvez définir ``__init__`` " +"pour gérer tout argument supplémentaire ::" -#: ../Doc/library/enum.rst:881 +#: library/enum.rst:920 msgid "" "The :meth:`__new__` method, if defined, is used during creation of the Enum " "members; it is then replaced by Enum's :meth:`__new__` which is used after " @@ -1027,11 +1073,11 @@ msgstr "" "`__new__` de *Enum*, qui est utilisée après la création de la classe pour la " "recherche des membres existants." -#: ../Doc/library/enum.rst:887 +#: library/enum.rst:926 msgid "OrderedEnum" msgstr "OrderedEnum" -#: ../Doc/library/enum.rst:889 +#: library/enum.rst:928 msgid "" "An ordered enumeration that is not based on :class:`IntEnum` and so " "maintains the normal :class:`Enum` invariants (such as not being comparable " @@ -1040,20 +1086,20 @@ msgstr "" "Une énumération ordonnée qui n'est pas basée sur :class:`IntEnum` et qui, " "par conséquent, respecte les invariants classiques de :class:`Enum` (comme " "par exemple l'impossibilité de pouvoir être comparée à d'autres " -"énumérations) ::" +"énumérations) ::" -#: ../Doc/library/enum.rst:923 +#: library/enum.rst:962 msgid "DuplicateFreeEnum" msgstr "DuplicateFreeEnum" -#: ../Doc/library/enum.rst:925 +#: library/enum.rst:964 msgid "" "Raises an error if a duplicate member name is found instead of creating an " "alias::" msgstr "" -"Lève une erreur si un membre est dupliqué, plutôt que de créer un alias : ::" +"Lève une erreur si un membre est dupliqué, plutôt que de créer un alias ::" -#: ../Doc/library/enum.rst:950 +#: library/enum.rst:989 msgid "" "This is a useful example for subclassing Enum to add or change other " "behaviors as well as disallowing aliases. If the only desired change is " @@ -1063,31 +1109,31 @@ msgstr "" "des comportements comme interdire les alias. Si vous ne souhaitez " "qu'interdire les alias, il suffit d'utiliser le décorateur :func:`unique`." -#: ../Doc/library/enum.rst:956 +#: library/enum.rst:995 msgid "Planet" msgstr "Planet" -#: ../Doc/library/enum.rst:958 +#: library/enum.rst:997 msgid "" "If :meth:`__new__` or :meth:`__init__` is defined the value of the enum " "member will be passed to those methods::" msgstr "" "Si :meth:`__new__` ou :meth:`__init__` sont définies, la valeur du membre de " -"l'énumération sera passée à ces méthodes : ::" +"l'énumération sera passée à ces méthodes ::" -#: ../Doc/library/enum.rst:986 +#: library/enum.rst:1025 msgid "TimePeriod" msgstr "TimePeriod" -#: ../Doc/library/enum.rst:988 +#: library/enum.rst:1027 msgid "An example to show the :attr:`_ignore_` attribute in use::" -msgstr "Exemple d'utilisation de l'attribut :attr:`_ignore_` : ::" +msgstr "Exemple d'utilisation de l'attribut :attr:`_ignore_` ::" -#: ../Doc/library/enum.rst:1005 +#: library/enum.rst:1044 msgid "How are Enums different?" msgstr "En quoi les *Enums* sont différentes ?" -#: ../Doc/library/enum.rst:1007 +#: library/enum.rst:1046 msgid "" "Enums have a custom metaclass that affects many aspects of both derived Enum " "classes and their instances (members)." @@ -1095,11 +1141,11 @@ msgstr "" "Les *enums* ont une métaclasse spéciale qui affecte de nombreux aspects des " "classes dérivées de *Enum* et de leur instances (membres)." -#: ../Doc/library/enum.rst:1012 +#: library/enum.rst:1051 msgid "Enum Classes" msgstr "Classes *Enum*" -#: ../Doc/library/enum.rst:1014 +#: library/enum.rst:1053 msgid "" "The :class:`EnumMeta` metaclass is responsible for providing the :meth:" "`__contains__`, :meth:`__dir__`, :meth:`__iter__` and other methods that " @@ -1117,11 +1163,11 @@ msgstr "" "finale :class:`Enum` sont correctes (comme :meth:`__new__`, :meth:" "`__getnewargs__`, :meth:`__str__` et :meth:`__repr__`)." -#: ../Doc/library/enum.rst:1024 +#: library/enum.rst:1063 msgid "Enum Members (aka instances)" msgstr "Membres d'Enum (c.-à-d. instances)" -#: ../Doc/library/enum.rst:1026 +#: library/enum.rst:1065 msgid "" "The most interesting thing about Enum members is that they are singletons. :" "class:`EnumMeta` creates them all while it is creating the :class:`Enum` " @@ -1136,15 +1182,15 @@ msgstr "" "membres déjà existantes pour être sûr de ne jamais en instancier de " "nouvelles." -#: ../Doc/library/enum.rst:1034 +#: library/enum.rst:1073 msgid "Finer Points" msgstr "Aspects approfondis" -#: ../Doc/library/enum.rst:1037 +#: library/enum.rst:1076 msgid "Supported ``__dunder__`` names" msgstr "Noms de la forme ``__dunder__`` disponibles" -#: ../Doc/library/enum.rst:1039 +#: library/enum.rst:1078 msgid "" ":attr:`__members__` is a read-only ordered mapping of ``member_name``:" "``member`` items. It is only available on the class." @@ -1152,7 +1198,7 @@ msgstr "" ":attr:`__members__` est un dictionnaire en lecture seule ordonné d'éléments " "``nom_du_membre`` / ``membre``. Il n'est disponible que depuis la classe." -#: ../Doc/library/enum.rst:1042 +#: library/enum.rst:1081 msgid "" ":meth:`__new__`, if specified, must create and return the enum members; it " "is also a very good idea to set the member's :attr:`_value_` appropriately. " @@ -1163,22 +1209,22 @@ msgstr "" "du membre est également conseillé. Une fois que tous les membres ont été " "créés, cette méthode n'est plus utilisée." -#: ../Doc/library/enum.rst:1048 +#: library/enum.rst:1087 msgid "Supported ``_sunder_`` names" msgstr "Noms de la forme ``_sunder_`` disponibles" -#: ../Doc/library/enum.rst:1050 +#: library/enum.rst:1089 msgid "``_name_`` -- name of the member" msgstr "``_name_`` -- nom du membre" -#: ../Doc/library/enum.rst:1051 +#: library/enum.rst:1090 msgid "" "``_value_`` -- value of the member; can be set / modified in ``__new__``" msgstr "" "``_value_`` -- valeur du membre ; il est possible d'y accéder ou de la muer " "dans ``__new__``" -#: ../Doc/library/enum.rst:1053 +#: library/enum.rst:1092 msgid "" "``_missing_`` -- a lookup function used when a value is not found; may be " "overridden" @@ -1186,7 +1232,7 @@ msgstr "" "``_missing_`` -- une fonction de recherche qui est appelée quand la valeur " "n'est pas trouvée ; elle peut être redéfinie" -#: ../Doc/library/enum.rst:1055 +#: library/enum.rst:1094 msgid "" "``_ignore_`` -- a list of names, either as a :func:`list` or a :func:`str`, " "that will not be transformed into members, and will be removed from the " @@ -1196,7 +1242,7 @@ msgstr "" "`str`, qui ne seront pas transformés en membres, et seront supprimés de la " "classe résultante" -#: ../Doc/library/enum.rst:1058 +#: library/enum.rst:1097 msgid "" "``_order_`` -- used in Python 2/3 code to ensure member order is consistent " "(class attribute, removed during class creation)" @@ -1205,7 +1251,7 @@ msgstr "" "membres est cohérent (attribut de classe, supprimé durant la création de la " "classe)" -#: ../Doc/library/enum.rst:1060 +#: library/enum.rst:1099 msgid "" "``_generate_next_value_`` -- used by the `Functional API`_ and by :class:" "`auto` to get an appropriate value for an enum member; may be overridden" @@ -1214,15 +1260,15 @@ msgstr "" "class:`auto` pour obtenir une valeur appropriée à affecter à un membre de " "*l'enum* ; elle peut être redéfinie" -#: ../Doc/library/enum.rst:1064 +#: library/enum.rst:1103 msgid "``_missing_``, ``_order_``, ``_generate_next_value_``" msgstr "``_missing_``, ``_order_``, ``_generate_next_value_``" -#: ../Doc/library/enum.rst:1065 +#: library/enum.rst:1104 msgid "``_ignore_``" msgstr "``_ignore_``" -#: ../Doc/library/enum.rst:1067 +#: library/enum.rst:1106 msgid "" "To help keep Python 2 / Python 3 code in sync an :attr:`_order_` attribute " "can be provided. It will be checked against the actual order of the " @@ -1230,9 +1276,9 @@ msgid "" msgstr "" "Pour faciliter la transition de Python 2 en Python 3, l'attribut :attr:" "`_order_` peut être défini. Il sera comparé au véritable ordre de " -"l'énumération et lève une erreur si les deux ne correspondent pas : ::" +"l'énumération et lève une erreur si les deux ne correspondent pas ::" -#: ../Doc/library/enum.rst:1083 +#: library/enum.rst:1122 msgid "" "In Python 2 code the :attr:`_order_` attribute is necessary as definition " "order is lost before it can be recorded." @@ -1240,11 +1286,11 @@ msgstr "" "En Python 2, l'attribut :attr:`_order_` est indispensable car l'ordre de la " "définition est perdu avant de pouvoir être enregistré." -#: ../Doc/library/enum.rst:1087 +#: library/enum.rst:1126 msgid "``Enum`` member type" msgstr "Type des membres de ``Enum``" -#: ../Doc/library/enum.rst:1089 +#: library/enum.rst:1128 msgid "" ":class:`Enum` members are instances of their :class:`Enum` class, and are " "normally accessed as ``EnumClass.member``. Under certain circumstances they " @@ -1259,13 +1305,13 @@ msgstr "" "est fortement déconseillé car cette indirection est susceptible d'échouer, " "ou pire, de ne pas renvoyer le membre de la classe :class:`Enum` désiré " "(c'est une autre bonne raison pour définir tous les noms des membres en " -"majuscules) : ::" +"majuscules) ::" -#: ../Doc/library/enum.rst:1110 +#: library/enum.rst:1149 msgid "Boolean value of ``Enum`` classes and members" msgstr "Valeur booléenne des classes ``Enum`` et de leurs membres" -#: ../Doc/library/enum.rst:1112 +#: library/enum.rst:1151 msgid "" ":class:`Enum` members that are mixed with non-:class:`Enum` types (such as :" "class:`int`, :class:`str`, etc.) are evaluated according to the mixed-in " @@ -1277,17 +1323,17 @@ msgstr "" "class:`Enum` (comme :class:`int`, :class:`str`, etc.) sont évalués selon les " "règles du type de mélange. Sinon, tous les membres valent :data:`True`. Pour " "faire dépendre l'évaluation booléenne de votre propre *Enum* de la valeur du " -"membre, il faut ajouter le code suivant à votre classe : ::" +"membre, il faut ajouter le code suivant à votre classe ::" -#: ../Doc/library/enum.rst:1121 +#: library/enum.rst:1160 msgid ":class:`Enum` classes always evaluate as :data:`True`." msgstr "Les classes :class:`Enum` valent toujours :data:`True`." -#: ../Doc/library/enum.rst:1125 +#: library/enum.rst:1164 msgid "``Enum`` classes with methods" msgstr "Classes ``Enum`` avec des méthodes" -#: ../Doc/library/enum.rst:1127 +#: library/enum.rst:1166 msgid "" "If you give your :class:`Enum` subclass extra methods, like the `Planet`_ " "class above, those methods will show up in a :func:`dir` of the member, but " @@ -1295,17 +1341,17 @@ msgid "" msgstr "" "Si votre classe :class:`Enum` contient des méthodes supplémentaires, comme " "la classe `Planet`_ ci-dessus, elles s'afficheront avec un appel à :func:" -"`dir` sur le membre, mais pas avec un appel sur la classe : ::" +"`dir` sur le membre, mais pas avec un appel sur la classe ::" -#: ../Doc/library/enum.rst:1138 +#: library/enum.rst:1177 msgid "Combining members of ``Flag``" msgstr "Combinaison de membres de ``Flag``" -#: ../Doc/library/enum.rst:1140 +#: library/enum.rst:1179 msgid "" "If a combination of Flag members is not named, the :func:`repr` will include " "all named flags and all named combinations of flags that are in the value::" msgstr "" "Si une valeur issue de la combinaison de membres de *Flag* n'est pas " "associée explicitement à un membre, la fonction :func:`repr` inclut tous les " -"membres et toutes les combinaisons de membres présents dans cette valeur : ::" +"membres et toutes les combinaisons de membres présents dans cette valeur ::" diff --git a/library/exceptions.po b/library/exceptions.po index 272ce6ab65..007201b526 100644 --- a/library/exceptions.po +++ b/library/exceptions.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-05-23 16:48+0200\n" -"PO-Revision-Date: 2019-06-10 15:49+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" +"PO-Revision-Date: 2020-05-30 23:32+0200\n" "Last-Translator: Jules Lasne \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -15,11 +15,11 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.2.3\n" -#: ../Doc/library/exceptions.rst:4 +#: library/exceptions.rst:4 msgid "Built-in Exceptions" msgstr "Exceptions natives" -#: ../Doc/library/exceptions.rst:10 +#: library/exceptions.rst:10 msgid "" "In Python, all exceptions must be instances of a class that derives from :" "class:`BaseException`. In a :keyword:`try` statement with an :keyword:" @@ -35,12 +35,12 @@ msgstr "" "mères). Deux classes qui ne sont pas liées par héritage ne sont jamais " "équivalentes, même si elles ont le même nom." -#: ../Doc/library/exceptions.rst:19 +#: library/exceptions.rst:19 msgid "" "The built-in exceptions listed below can be generated by the interpreter or " -"built-in functions. Except where mentioned, they have an \"associated value" -"\" indicating the detailed cause of the error. This may be a string or a " -"tuple of several items of information (e.g., an error code and a string " +"built-in functions. Except where mentioned, they have an \"associated " +"value\" indicating the detailed cause of the error. This may be a string or " +"a tuple of several items of information (e.g., an error code and a string " "explaining the code). The associated value is usually passed as arguments " "to the exception class's constructor." msgstr "" @@ -51,7 +51,7 @@ msgstr "" "d'erreur ou un message explicatif). Cette valeur associée est généralement " "donnée en argument du constructeur de la classe." -#: ../Doc/library/exceptions.rst:26 +#: library/exceptions.rst:26 msgid "" "User code can raise built-in exceptions. This can be used to test an " "exception handler or to report an error condition \"just like\" the " @@ -65,7 +65,7 @@ msgstr "" "exception ; mais attention car rien n'empêche du code utilisateur de lever " "une erreur inappropriée." -#: ../Doc/library/exceptions.rst:31 +#: library/exceptions.rst:31 msgid "" "The built-in exception classes can be subclassed to define new exceptions; " "programmers are encouraged to derive new exceptions from the :exc:" @@ -77,10 +77,10 @@ msgstr "" "nouvelles exceptions ; les programmeurs sont encouragés à faire dériver les " "nouvelles exceptions de la classe :exc:`Exception` ou d'une de ses sous-" "classes, et non de :exc:`BaseException`. Plus d'informations sur la " -"définition des exceptions sont disponibles dans le Tutoriel Python sous :ref:" -"`tut-userexceptions`." +"définition des exceptions sont disponibles dans le Tutoriel Python au " +"chapitre :ref:`tut-userexceptions`." -#: ../Doc/library/exceptions.rst:37 +#: library/exceptions.rst:37 msgid "" "When raising (or re-raising) an exception in an :keyword:`except` or :" "keyword:`finally` clause :attr:`__context__` is automatically set to the " @@ -90,42 +90,44 @@ msgid "" msgstr "" "En levant (ou levant à nouveau) une exception dans une clause :keyword:" "`except` ou :keyword:`finally`, :attr:`__context__` est automatiquement " -"assigné à la dernière exception capturée ; si la nouvelle exception n'est " +"assigné à la dernière exception interceptée ; si la nouvelle exception n'est " "pas gérée, la trace d'appels affichée inclut la ou les exception(s) " "d'origine et l'exception finale." -#: ../Doc/library/exceptions.rst:43 +#: library/exceptions.rst:43 +#, fuzzy msgid "" "When raising a new exception (rather than using a bare ``raise`` to re-raise " "the exception currently being handled), the implicit exception context can " -"be supplemented with an explicit cause by using :keyword:`from` with :" +"be supplemented with an explicit cause by using :keyword:`from` with :" "keyword:`raise`::" msgstr "" "En levant une nouvelle exception (plutôt que d'utiliser un simple ``raise`` " "pour lever à nouveau l'exception en cours de traitement), le contexte " "implicite d'exception peut être complété par une cause explicite en " -"utilisant :keyword:`from` avec :keyword:`raise`: ::" - -#: ../Doc/library/exceptions.rst:50 -msgid "" -"The expression following :keyword:`from` must be an exception or ``None``. " -"It will be set as :attr:`__cause__` on the raised exception. Setting :attr:" -"`__cause__` also implicitly sets the :attr:`__suppress_context__` attribute " -"to ``True``, so that using ``raise new_exc from None`` effectively replaces " -"the old exception with the new one for display purposes (e.g. converting :" -"exc:`KeyError` to :exc:`AttributeError`), while leaving the old exception " -"available in :attr:`__context__` for introspection when debugging." -msgstr "" -"L'expression suivant :keyword:`from` doit être une exception ou ``None``. " -"Elle sera assignée en tant que :attr:`__cause__` dans l'exception levée. " -"Changer :attr:`__cause__` change aussi implicitement l'attribut :attr:" +"utilisant :keyword:`from` avec :keyword:`raise` ::" + +#: library/exceptions.rst:50 +msgid "" +"The expression following :keyword:`from` must be an exception or " +"``None``. It will be set as :attr:`__cause__` on the raised exception. " +"Setting :attr:`__cause__` also implicitly sets the :attr:" +"`__suppress_context__` attribute to ``True``, so that using ``raise new_exc " +"from None`` effectively replaces the old exception with the new one for " +"display purposes (e.g. converting :exc:`KeyError` to :exc:`AttributeError`), " +"while leaving the old exception available in :attr:`__context__` for " +"introspection when debugging." +msgstr "" +"L'expression suivant :keyword:`from` doit être une exception ou " +"``None``. Elle sera assignée en tant que :attr:`__cause__` dans l'exception " +"levée. Changer :attr:`__cause__` change aussi implicitement l'attribut :attr:" "`__suppress_context__` à ``True``, de sorte que l'utilisation de ``raise " "new_exc from None`` remplace bien l'ancienne exception avec la nouvelle à " -"des fins d'affichage (e.g., convertir :exc:`KeyError` en :exc:" +"des fins d'affichage (par exemple, convertir :exc:`KeyError` en :exc:" "`AttributeError`), tout en laissant l'ancienne exception disponible dans :" "attr:`__context__` pour introspection lors du débogage." -#: ../Doc/library/exceptions.rst:59 +#: library/exceptions.rst:59 msgid "" "The default traceback display code shows these chained exceptions in " "addition to the traceback for the exception itself. An explicitly chained " @@ -134,13 +136,13 @@ msgid "" "is :const:`None` and :attr:`__suppress_context__` is false." msgstr "" "Le code d'affichage par défaut de la trace d'appels montre ces exceptions " -"chaînées en plus de la trace de l'exception elle-même. Une exception chaînée " -"explicitement dans :attr:`__cause__` est toujours affichée si présente. Une " -"exception implicitement chaînée dans :attr:`__context__` n'est affichée que " -"si :attr:`__cause__` est :const:`None` et :attr:`__suppress_context__` est " -"faux." +"chaînées en plus de la trace de l'exception elle-même. Si elle est présente, " +"une exception chaînée explicitement dans :attr:`__cause__` est toujours " +"affichée. Une exception implicitement chaînée dans :attr:`__context__` n'est " +"affichée que si :attr:`__cause__` est :const:`None` et :attr:" +"`__suppress_context__` est faux." -#: ../Doc/library/exceptions.rst:65 +#: library/exceptions.rst:65 msgid "" "In either case, the exception itself is always shown after any chained " "exceptions so that the final line of the traceback always shows the last " @@ -150,11 +152,11 @@ msgstr "" "les exceptions enchaînées, de sorte que la dernière ligne de la trace " "d'appels montre toujours la dernière exception qui a été levée." -#: ../Doc/library/exceptions.rst:71 +#: library/exceptions.rst:71 msgid "Base classes" msgstr "Classes de base" -#: ../Doc/library/exceptions.rst:73 +#: library/exceptions.rst:73 msgid "" "The following exceptions are used mostly as base classes for other " "exceptions." @@ -162,7 +164,7 @@ msgstr "" "Les exceptions suivantes sont utilisées principalement en tant que classes " "de base pour d'autres exceptions." -#: ../Doc/library/exceptions.rst:77 +#: library/exceptions.rst:77 msgid "" "The base class for all built-in exceptions. It is not meant to be directly " "inherited by user-defined classes (for that, use :exc:`Exception`). If :" @@ -176,7 +178,7 @@ msgstr "" "classe, la représentation du ou des argument(s) de l'instance est retournée, " "ou la chaîne vide s'il n'y avait pas d'arguments." -#: ../Doc/library/exceptions.rst:85 +#: library/exceptions.rst:85 msgid "" "The tuple of arguments given to the exception constructor. Some built-in " "exceptions (like :exc:`OSError`) expect a certain number of arguments and " @@ -189,16 +191,16 @@ msgstr "" "*tuple*, alors que d'autres ne sont généralement appelées qu'avec une seule " "chaîne de caractères rendant un message d'erreur." -#: ../Doc/library/exceptions.rst:92 +#: library/exceptions.rst:92 msgid "" "This method sets *tb* as the new traceback for the exception and returns the " "exception object. It is usually used in exception handling code like this::" msgstr "" "Cette méthode définit *tb* en tant que nouvelle trace d'appels pour " "l'exception et retourne l'objet exception. Elle est généralement utilisée " -"dans du code de gestion d'exceptions comme ceci: ::" +"dans du code de gestion d'exceptions comme ceci ::" -#: ../Doc/library/exceptions.rst:105 +#: library/exceptions.rst:105 msgid "" "All built-in, non-system-exiting exceptions are derived from this class. " "All user-defined exceptions should also be derived from this class." @@ -207,7 +209,7 @@ msgstr "" "dérivent de cette classe. Toutes les exceptions définies par l'utilisateur " "devraient également être dérivées de cette classe." -#: ../Doc/library/exceptions.rst:111 +#: library/exceptions.rst:111 msgid "" "The base class for those built-in exceptions that are raised for various " "arithmetic errors: :exc:`OverflowError`, :exc:`ZeroDivisionError`, :exc:" @@ -217,7 +219,7 @@ msgstr "" "erreurs arithmétiques : :exc:`OverflowError`, :exc:`ZeroDivisionError`, :exc:" "`FloatingPointError`." -#: ../Doc/library/exceptions.rst:118 +#: library/exceptions.rst:118 msgid "" "Raised when a :ref:`buffer ` related operation cannot be " "performed." @@ -225,7 +227,7 @@ msgstr "" "Levée lorsqu'une opération liée à un :ref:`tampon ` ne peut " "pas être exécutée." -#: ../Doc/library/exceptions.rst:124 +#: library/exceptions.rst:124 msgid "" "The base class for the exceptions that are raised when a key or index used " "on a mapping or sequence is invalid: :exc:`IndexError`, :exc:`KeyError`. " @@ -236,19 +238,19 @@ msgstr "" "invalide : :exc:`IndexError`, :exc:`KeyError`. Peut être levée directement " "par :func:`codecs.lookup`." -#: ../Doc/library/exceptions.rst:130 +#: library/exceptions.rst:130 msgid "Concrete exceptions" msgstr "Exceptions concrètes" -#: ../Doc/library/exceptions.rst:132 +#: library/exceptions.rst:132 msgid "The following exceptions are the exceptions that are usually raised." msgstr "Les exceptions suivantes sont celles qui sont habituellement levées." -#: ../Doc/library/exceptions.rst:138 +#: library/exceptions.rst:138 msgid "Raised when an :keyword:`assert` statement fails." msgstr "Levée lorsqu'une instruction :keyword:`assert` échoue." -#: ../Doc/library/exceptions.rst:143 +#: library/exceptions.rst:143 msgid "" "Raised when an attribute reference (see :ref:`attribute-references`) or " "assignment fails. (When an object does not support attribute references or " @@ -258,7 +260,7 @@ msgstr "" "`attribute-references`) échoue. (Lorsqu'un objet ne supporte pas du tout la " "référence ou l'assignation d'attribut, :exc:`TypeError` est levé.)" -#: ../Doc/library/exceptions.rst:150 +#: library/exceptions.rst:150 msgid "" "Raised when the :func:`input` function hits an end-of-file condition (EOF) " "without reading any data. (N.B.: the :meth:`io.IOBase.read` and :meth:`io." @@ -269,11 +271,11 @@ msgstr "" "read` et :meth:`io.IOBase.readline` retournent une chaîne vide lorsqu'elles " "atteignent EOF.)" -#: ../Doc/library/exceptions.rst:157 +#: library/exceptions.rst:157 msgid "Not currently used." msgstr "N’est pas utilisé pour le moment." -#: ../Doc/library/exceptions.rst:162 +#: library/exceptions.rst:162 msgid "" "Raised when a :term:`generator` or :term:`coroutine` is closed; see :meth:" "`generator.close` and :meth:`coroutine.close`. It directly inherits from :" @@ -285,7 +287,7 @@ msgstr "" "de :exc:`BaseException` au lieu de :exc:`Exception` puisqu'il ne s'agit pas " "techniquement d'une erreur." -#: ../Doc/library/exceptions.rst:170 +#: library/exceptions.rst:170 msgid "" "Raised when the :keyword:`import` statement has troubles trying to load a " "module. Also raised when the \"from list\" in ``from ... import`` has a " @@ -295,7 +297,7 @@ msgstr "" "de charger un module. Également levée lorsque Python ne trouve pas un nom " "dans ``from ... import``." -#: ../Doc/library/exceptions.rst:174 +#: library/exceptions.rst:174 msgid "" "The :attr:`name` and :attr:`path` attributes can be set using keyword-only " "arguments to the constructor. When set they represent the name of the module " @@ -308,11 +310,11 @@ msgstr "" "tenté d'être importé et le chemin d'accès au fichier qui a déclenché " "l'exception." -#: ../Doc/library/exceptions.rst:179 +#: library/exceptions.rst:179 msgid "Added the :attr:`name` and :attr:`path` attributes." msgstr "Ajout des attributs :attr:`name` et :attr:`path`." -#: ../Doc/library/exceptions.rst:184 +#: library/exceptions.rst:184 msgid "" "A subclass of :exc:`ImportError` which is raised by :keyword:`import` when a " "module could not be located. It is also raised when ``None`` is found in :" @@ -322,7 +324,7 @@ msgstr "" "lorsqu'un module n'a pas pu être localisé. Elle est généralement levée quand " "``None`` est trouvé dans :data:`sys.modules`." -#: ../Doc/library/exceptions.rst:193 +#: library/exceptions.rst:193 msgid "" "Raised when a sequence subscript is out of range. (Slice indices are " "silently truncated to fall in the allowed range; if an index is not an " @@ -332,7 +334,7 @@ msgstr "" "tranches (*slices*) sont tronqués silencieusement pour tomber dans la plage " "autorisée ; si un indice n'est pas un entier, :exc:`TypeError` est levée.)" -#: ../Doc/library/exceptions.rst:202 +#: library/exceptions.rst:202 msgid "" "Raised when a mapping (dictionary) key is not found in the set of existing " "keys." @@ -340,7 +342,7 @@ msgstr "" "Levée lorsqu'une clef (de dictionnaire) n'est pas trouvée dans l'ensemble " "des clefs existantes." -#: ../Doc/library/exceptions.rst:209 +#: library/exceptions.rst:209 msgid "" "Raised when the user hits the interrupt key (normally :kbd:`Control-C` or :" "kbd:`Delete`). During execution, a check for interrupts is made regularly. " @@ -351,11 +353,11 @@ msgstr "" "Levée lorsque l'utilisateur appuie sur la touche d'interruption " "(normalement :kbd:`Control-C` or :kbd:`Delete`). Pendant l'exécution, un " "contrôle des interruptions est effectué régulièrement. L'exception hérite " -"de :exc:`BaseException` afin de ne pas être accidentellement capturée par du " -"code qui capture :exc:`Exception` et ainsi empêcher l'interpréteur de " +"de :exc:`BaseException` afin de ne pas être accidentellement interceptée par " +"du code qui intercepte :exc:`Exception` et ainsi empêcher l'interpréteur de " "quitter." -#: ../Doc/library/exceptions.rst:218 +#: library/exceptions.rst:218 msgid "" "Raised when an operation runs out of memory but the situation may still be " "rescued (by deleting some objects). The associated value is a string " @@ -374,7 +376,7 @@ msgstr "" "une exception pour qu'une pile d'appels puisse être affichée, dans le cas où " "un programme en cours d'exécution en était la cause." -#: ../Doc/library/exceptions.rst:229 +#: library/exceptions.rst:229 msgid "" "Raised when a local or global name is not found. This applies only to " "unqualified names. The associated value is an error message that includes " @@ -384,7 +386,7 @@ msgstr "" "qu'aux noms non qualifiés. La valeur associée est un message d'erreur qui " "inclut le nom qui n'a pas pu être trouvé." -#: ../Doc/library/exceptions.rst:236 +#: library/exceptions.rst:236 msgid "" "This exception is derived from :exc:`RuntimeError`. In user defined base " "classes, abstract methods should raise this exception when they require " @@ -397,7 +399,7 @@ msgstr "" "méthode, ou lorsque la classe est en cours de développement pour indiquer " "que l'implémentation concrète doit encore être ajoutée." -#: ../Doc/library/exceptions.rst:243 +#: library/exceptions.rst:243 msgid "" "It should not be used to indicate that an operator or method is not meant to " "be supported at all -- in that case either leave the operator / method " @@ -408,7 +410,7 @@ msgstr "" "laissez soit l'opérateur / la méthode non défini, soit, s'il s'agit d'une " "sous-classe, assignez-le à :data:`None`." -#: ../Doc/library/exceptions.rst:249 +#: library/exceptions.rst:249 msgid "" "``NotImplementedError`` and ``NotImplemented`` are not interchangeable, even " "though they have similar names and purposes. See :data:`NotImplemented` for " @@ -418,18 +420,18 @@ msgstr "" "même s'ils ont des noms et des objectifs similaires. Voir :data:" "`NotImplemented` pour des détails sur la façon de les utiliser." -#: ../Doc/library/exceptions.rst:258 +#: library/exceptions.rst:258 msgid "" "This exception is raised when a system function returns a system-related " -"error, including I/O failures such as \"file not found\" or \"disk full" -"\" (not for illegal argument types or other incidental errors)." +"error, including I/O failures such as \"file not found\" or \"disk " +"full\" (not for illegal argument types or other incidental errors)." msgstr "" "Cette exception est levée lorsqu'une fonction système retourne une erreur " "liée au système, incluant les erreurs entrées-sorties telles que \"fichier " "non trouvé\" ou \"disque plein\" (pas pour les types d'arguments illégaux ou " "d'autres erreurs accidentelles)." -#: ../Doc/library/exceptions.rst:262 +#: library/exceptions.rst:262 msgid "" "The second form of the constructor sets the corresponding attributes, " "described below. The attributes default to :const:`None` if not specified. " @@ -443,7 +445,7 @@ msgstr "" "l'attribut :attr:`~BaseException.args` contient seulement un *tuple* à deux " "valeurs des deux premiers arguments du constructeur." -#: ../Doc/library/exceptions.rst:268 +#: library/exceptions.rst:268 msgid "" "The constructor often actually returns a subclass of :exc:`OSError`, as " "described in `OS exceptions`_ below. The particular subclass depends on the " @@ -457,11 +459,11 @@ msgstr "" "de la construction d':exc:`OSError` directement ou via un alias, et n'est " "pas hérité lors du sous-classement." -#: ../Doc/library/exceptions.rst:276 +#: library/exceptions.rst:276 msgid "A numeric error code from the C variable :c:data:`errno`." msgstr "Code d'erreur numérique de la variable C :c:data:`errno`." -#: ../Doc/library/exceptions.rst:280 +#: library/exceptions.rst:280 msgid "" "Under Windows, this gives you the native Windows error code. The :attr:`." "errno` attribute is then an approximate translation, in POSIX terms, of that " @@ -471,7 +473,7 @@ msgstr "" "errno` est alors une traduction approximative, en termes POSIX, de ce code " "d'erreur natif." -#: ../Doc/library/exceptions.rst:284 +#: library/exceptions.rst:284 msgid "" "Under Windows, if the *winerror* constructor argument is an integer, the :" "attr:`.errno` attribute is determined from the Windows error code, and the " @@ -483,7 +485,7 @@ msgstr "" "et l'argument *errno* est ignoré. Sur d'autres plateformes, l'argument " "*winerror* est ignoré, et l'attribut :attr:`winerror` n'existe pas." -#: ../Doc/library/exceptions.rst:292 +#: library/exceptions.rst:292 msgid "" "The corresponding error message, as provided by the operating system. It is " "formatted by the C functions :c:func:`perror` under POSIX, and :c:func:" @@ -493,7 +495,7 @@ msgstr "" "d'exploitation. Il est formaté par les fonctions C :c:func:`perror` sous " "POSIX, et :c:func:`FormatMessage` sous Windows." -#: ../Doc/library/exceptions.rst:300 +#: library/exceptions.rst:300 msgid "" "For exceptions that involve a file system path (such as :func:`open` or :" "func:`os.unlink`), :attr:`filename` is the file name passed to the function. " @@ -507,7 +509,7 @@ msgstr "" "à deux chemins d'accès au système de fichiers (comme :func:`os.rename`), :" "attr:`filename2` correspond au deuxième nom de fichier passé à la fonction." -#: ../Doc/library/exceptions.rst:307 +#: library/exceptions.rst:307 msgid "" ":exc:`EnvironmentError`, :exc:`IOError`, :exc:`WindowsError`, :exc:`socket." "error`, :exc:`select.error` and :exc:`mmap.error` have been merged into :exc:" @@ -517,7 +519,7 @@ msgstr "" "error`, :exc:`select.error` et :exc:`mmap.error` ont fusionnées en :exc:" "`OSError`, et le constructeur peut renvoyer une sous-classe." -#: ../Doc/library/exceptions.rst:313 +#: library/exceptions.rst:313 msgid "" "The :attr:`filename` attribute is now the original file name passed to the " "function, instead of the name encoded to or decoded from the filesystem " @@ -529,7 +531,7 @@ msgstr "" "système de fichiers. De plus, l'argument du constructeur et attribut " "*filename2* a été ajouté." -#: ../Doc/library/exceptions.rst:322 +#: library/exceptions.rst:322 msgid "" "Raised when the result of an arithmetic operation is too large to be " "represented. This cannot occur for integers (which would rather raise :exc:" @@ -546,7 +548,7 @@ msgstr "" "normalisation de la gestion des exceptions de virgule flottante en C, la " "plupart des opérations en virgule flottante ne sont pas vérifiées." -#: ../Doc/library/exceptions.rst:332 +#: library/exceptions.rst:332 msgid "" "This exception is derived from :exc:`RuntimeError`. It is raised when the " "interpreter detects that the maximum recursion depth (see :func:`sys." @@ -556,11 +558,11 @@ msgstr "" "l'interpréteur détecte que la profondeur de récursivité maximale (voir :func:" "`sys.getrecursionlimit`) est dépassée." -#: ../Doc/library/exceptions.rst:336 +#: library/exceptions.rst:336 msgid "Previously, a plain :exc:`RuntimeError` was raised." msgstr "Auparavant, une simple :exc:`RuntimeError` était levée." -#: ../Doc/library/exceptions.rst:342 +#: library/exceptions.rst:342 msgid "" "This exception is raised when a weak reference proxy, created by the :func:" "`weakref.proxy` function, is used to access an attribute of the referent " @@ -573,7 +575,7 @@ msgstr "" "Pour plus d'informations sur les pointeurs faibles, voir le module :mod:" "`weakref`." -#: ../Doc/library/exceptions.rst:350 +#: library/exceptions.rst:350 msgid "" "Raised when an error is detected that doesn't fall in any of the other " "categories. The associated value is a string indicating what precisely went " @@ -583,7 +585,7 @@ msgstr "" "détectée. La valeur associée est une chaîne de caractères indiquant " "précisément ce qui s'est mal passé." -#: ../Doc/library/exceptions.rst:357 +#: library/exceptions.rst:357 msgid "" "Raised by built-in function :func:`next` and an :term:`iterator`\\'s :meth:" "`~iterator.__next__` method to signal that there are no further items " @@ -593,7 +595,7 @@ msgstr "" "__next__` d'un :term:`iterator` (itérateur) pour signaler qu'il n'y a pas " "d'autres éléments produits par l'itérateur." -#: ../Doc/library/exceptions.rst:361 +#: library/exceptions.rst:361 msgid "" "The exception object has a single attribute :attr:`value`, which is given as " "an argument when constructing the exception, and defaults to :const:`None`." @@ -602,7 +604,7 @@ msgstr "" "argument lors de la construction de l'exception, et vaut :const:`None` par " "défaut." -#: ../Doc/library/exceptions.rst:365 +#: library/exceptions.rst:365 msgid "" "When a :term:`generator` or :term:`coroutine` function returns, a new :exc:" "`StopIteration` instance is raised, and the value returned by the function " @@ -613,7 +615,7 @@ msgstr "" "valeur retournée par la fonction est passée au paramètre :attr:`value` du " "constructeur de l'exception." -#: ../Doc/library/exceptions.rst:370 +#: library/exceptions.rst:370 msgid "" "If a generator code directly or indirectly raises :exc:`StopIteration`, it " "is converted into a :exc:`RuntimeError` (retaining the :exc:`StopIteration` " @@ -623,7 +625,7 @@ msgstr "" "`StopIteration`, elle est convertie en :exc:`RuntimeError` (en conservant :" "exc:`StopIteration` comme cause de la nouvelle exception)." -#: ../Doc/library/exceptions.rst:374 +#: library/exceptions.rst:374 msgid "" "Added ``value`` attribute and the ability for generator functions to use it " "to return a value." @@ -631,7 +633,7 @@ msgstr "" "Ajout de l'attribut ``value`` et de la possibilité pour les fonctions de " "générateur de l'utiliser pour retourner une valeur." -#: ../Doc/library/exceptions.rst:378 +#: library/exceptions.rst:378 msgid "" "Introduced the RuntimeError transformation via ``from __future__ import " "generator_stop``, see :pep:`479`." @@ -639,7 +641,7 @@ msgstr "" "Introduit la transformation des erreurs RuntimeError via ``from __future__ " "import generator_stop``, cf. :pep:`479`." -#: ../Doc/library/exceptions.rst:382 +#: library/exceptions.rst:382 msgid "" "Enable :pep:`479` for all code by default: a :exc:`StopIteration` error " "raised in a generator is transformed into a :exc:`RuntimeError`." @@ -648,7 +650,7 @@ msgstr "" "`StopIteration` est levée dans un générateur elle est transformée en une :" "exc:`RuntimeError`." -#: ../Doc/library/exceptions.rst:388 +#: library/exceptions.rst:388 msgid "" "Must be raised by :meth:`__anext__` method of an :term:`asynchronous " "iterator` object to stop the iteration." @@ -656,7 +658,7 @@ msgstr "" "Doit être levée par la méthode :meth:`__anext__` d'un objet :term:" "`asynchronous iterator` pour arrêter l'itération." -#: ../Doc/library/exceptions.rst:395 +#: library/exceptions.rst:395 msgid "" "Raised when the parser encounters a syntax error. This may occur in an :" "keyword:`import` statement, in a call to the built-in functions :func:`exec` " @@ -668,18 +670,36 @@ msgstr "" "fonctions natives :func:`exec` ou :func:`eval`, ou lors de la lecture du " "script initial ou de l'entrée standard (également de manière interactive)." -#: ../Doc/library/exceptions.rst:400 +#: library/exceptions.rst:400 +msgid "" +"The :func:`str` of the exception instance returns only the error message." +msgstr "" + +#: library/exceptions.rst:404 +msgid "The name of the file the syntax error occurred in." +msgstr "Le nom du fichier dans lequel l'erreur de syntaxe a été rencontrée." + +#: library/exceptions.rst:408 msgid "" -"Instances of this class have attributes :attr:`filename`, :attr:`lineno`, :" -"attr:`offset` and :attr:`text` for easier access to the details. :func:" -"`str` of the exception instance returns only the message." +"Which line number in the file the error occurred in. This is 1-indexed: the " +"first line in the file has a ``lineno`` of 1." msgstr "" -"Les instances de cette classe ont des attributs :attr:`filename`, :attr:" -"`lineno`, :attr:`offset` et :attr:`text` pour accéder plus facilement aux " -"détails. La représentation :func:`str` de l'instance de l'exception retourne " -"seulement le message." +"Le numéro de la ligne dans le fichier où l'erreur s'est produite. L'indiçage " +"commence à 1 : ``lineno`` vaut 1 pour la première ligne du fichier." -#: ../Doc/library/exceptions.rst:407 +#: library/exceptions.rst:413 +msgid "" +"The column in the line where the error occurred. This is 1-indexed: the " +"first character in the line has an ``offset`` of 1." +msgstr "" +"La colonne dans la ligne où l'erreur s'est produite. L'indiçage commence à " +"1 : ``offset`` vaut 1 pour le premier caractère de la ligne." + +#: library/exceptions.rst:418 +msgid "The source code text involved in the error." +msgstr "Le texte du code source impliqué dans l'erreur." + +#: library/exceptions.rst:423 msgid "" "Base class for syntax errors related to incorrect indentation. This is a " "subclass of :exc:`SyntaxError`." @@ -687,7 +707,7 @@ msgstr "" "Classe de base pour les erreurs de syntaxe liées à une indentation " "incorrecte. C'est une sous-classe de :exc:`SyntaxError`." -#: ../Doc/library/exceptions.rst:413 +#: library/exceptions.rst:429 msgid "" "Raised when indentation contains an inconsistent use of tabs and spaces. " "This is a subclass of :exc:`IndentationError`." @@ -695,7 +715,7 @@ msgstr "" "Levée lorsqu'une indentation contient une utilisation incohérente des " "tabulations et des espaces. C'est une sous-classe de :exc:`IndentationError`." -#: ../Doc/library/exceptions.rst:419 +#: library/exceptions.rst:435 msgid "" "Raised when the interpreter finds an internal error, but the situation does " "not look so serious to cause it to abandon all hope. The associated value is " @@ -706,7 +726,7 @@ msgstr "" "espoir. La valeur associée est une chaîne de caractères indiquant l'erreur " "qui est survenue (en termes bas niveau)." -#: ../Doc/library/exceptions.rst:423 +#: library/exceptions.rst:439 msgid "" "You should report this to the author or maintainer of your Python " "interpreter. Be sure to report the version of the Python interpreter (``sys." @@ -720,7 +740,7 @@ msgstr "" "interactive), le message d'erreur exact (la valeur associée à l'exception) " "et si possible le code source du programme qui a déclenché l'erreur." -#: ../Doc/library/exceptions.rst:432 +#: library/exceptions.rst:448 msgid "" "This exception is raised by the :func:`sys.exit` function. It inherits " "from :exc:`BaseException` instead of :exc:`Exception` so that it is not " @@ -735,8 +755,8 @@ msgid "" msgstr "" "Cette exception est levée par la fonction :func:`sys.exit`. Elle hérite de :" "exc:`BaseException` au lieu d':exc:`Exception` pour ne pas qu'elle soit " -"accidentellement capturée par du code qui capture :exc:`Exception`. Cela " -"permet à l'exception de se propager correctement et de faire quitter " +"interceptée accidentellement par du code qui intercepte :exc:`Exception`. " +"Cela permet à l'exception de se propager correctement et de faire quitter " "l'interpréteur. Lorsqu'elle n'est pas gérée, l'interpréteur Python quitte ; " "aucune trace d'appels n'est affichée. Le constructeur accepte le même " "argument optionnel passé à :func:`sys.exit`. Si la valeur est un entier, " @@ -745,7 +765,7 @@ msgstr "" "autre type (comme une chaîne de caractères), la valeur de l'objet est " "affichée et l'état de sortie est un." -#: ../Doc/library/exceptions.rst:443 +#: library/exceptions.rst:459 msgid "" "A call to :func:`sys.exit` is translated into an exception so that clean-up " "handlers (:keyword:`finally` clauses of :keyword:`try` statements) can be " @@ -762,7 +782,7 @@ msgstr "" "immédiatement (par exemple, dans le processus enfant après un appel à :func:" "`os.fork`)." -#: ../Doc/library/exceptions.rst:452 +#: library/exceptions.rst:468 msgid "" "The exit status or error message that is passed to the constructor. " "(Defaults to ``None``.)" @@ -770,7 +790,7 @@ msgstr "" "L'état de sortie ou le message d'erreur passé au constructeur. (``None`` par " "défaut.)" -#: ../Doc/library/exceptions.rst:458 +#: library/exceptions.rst:474 msgid "" "Raised when an operation or function is applied to an object of " "inappropriate type. The associated value is a string giving details about " @@ -780,7 +800,7 @@ msgstr "" "inapproprié. La valeur associée est une chaîne de caractères donnant des " "détails sur le type d'inadéquation." -#: ../Doc/library/exceptions.rst:461 +#: library/exceptions.rst:477 msgid "" "This exception may be raised by user code to indicate that an attempted " "operation on an object is not supported, and is not meant to be. If an " @@ -793,7 +813,7 @@ msgstr "" "donnée mais n'a pas encore fourni une implémentation, lever :exc:" "`NotImplementedError` est plus approprié." -#: ../Doc/library/exceptions.rst:466 +#: library/exceptions.rst:482 msgid "" "Passing arguments of the wrong type (e.g. passing a :class:`list` when an :" "class:`int` is expected) should result in a :exc:`TypeError`, but passing " @@ -805,7 +825,7 @@ msgstr "" "le passage d'arguments avec la mauvaise valeur (e.g. un nombre en dehors des " "limites attendues) devrait résulter en une :exc:`ValueError`." -#: ../Doc/library/exceptions.rst:473 +#: library/exceptions.rst:489 msgid "" "Raised when a reference is made to a local variable in a function or method, " "but no value has been bound to that variable. This is a subclass of :exc:" @@ -815,7 +835,7 @@ msgstr "" "ou une méthode, mais qu'aucune valeur n'a été liée à cette variable. C'est " "une sous-classe de :exc:`NameError`." -#: ../Doc/library/exceptions.rst:480 +#: library/exceptions.rst:496 msgid "" "Raised when a Unicode-related encoding or decoding error occurs. It is a " "subclass of :exc:`ValueError`." @@ -823,7 +843,7 @@ msgstr "" "Levée lorsqu'une erreur d'encodage ou de décodage liée à Unicode se produit. " "C'est une sous-classe de :exc:`ValueError`." -#: ../Doc/library/exceptions.rst:483 +#: library/exceptions.rst:499 msgid "" ":exc:`UnicodeError` has attributes that describe the encoding or decoding " "error. For example, ``err.object[err.start:err.end]`` gives the particular " @@ -833,27 +853,27 @@ msgstr "" "décodage. Par exemple, ``err.object[err.start:err.end]`` donne l'entrée " "particulière invalide sur laquelle le codec a échoué." -#: ../Doc/library/exceptions.rst:489 +#: library/exceptions.rst:505 msgid "The name of the encoding that raised the error." msgstr "Le nom de l'encodage qui a provoqué l'erreur." -#: ../Doc/library/exceptions.rst:493 +#: library/exceptions.rst:509 msgid "A string describing the specific codec error." msgstr "Une chaîne de caractères décrivant l'erreur de codec spécifique." -#: ../Doc/library/exceptions.rst:497 +#: library/exceptions.rst:513 msgid "The object the codec was attempting to encode or decode." msgstr "L'objet que le codec essayait d'encoder ou de décoder." -#: ../Doc/library/exceptions.rst:501 +#: library/exceptions.rst:517 msgid "The first index of invalid data in :attr:`object`." msgstr "Le premier index des données invalides dans :attr:`object`." -#: ../Doc/library/exceptions.rst:505 +#: library/exceptions.rst:521 msgid "The index after the last invalid data in :attr:`object`." msgstr "L'index après la dernière donnée invalide dans :attr:`object`." -#: ../Doc/library/exceptions.rst:510 +#: library/exceptions.rst:526 msgid "" "Raised when a Unicode-related error occurs during encoding. It is a " "subclass of :exc:`UnicodeError`." @@ -861,7 +881,7 @@ msgstr "" "Levée lorsqu'une erreur liée à Unicode se produit durant l'encodage. C'est " "une sous-classe d':exc:`UnicodeError`." -#: ../Doc/library/exceptions.rst:516 +#: library/exceptions.rst:532 msgid "" "Raised when a Unicode-related error occurs during decoding. It is a " "subclass of :exc:`UnicodeError`." @@ -869,7 +889,7 @@ msgstr "" "Levée lorsqu'une erreur liée à Unicode se produit durant le décodage. C'est " "une sous-classe d':exc:`UnicodeError`." -#: ../Doc/library/exceptions.rst:522 +#: library/exceptions.rst:538 msgid "" "Raised when a Unicode-related error occurs during translating. It is a " "subclass of :exc:`UnicodeError`." @@ -877,7 +897,7 @@ msgstr "" "Levée lorsqu'une erreur liée à Unicode se produit durant la traduction. " "C'est une sous-classe d':exc:`UnicodeError`." -#: ../Doc/library/exceptions.rst:528 +#: library/exceptions.rst:544 msgid "" "Raised when an operation or function receives an argument that has the right " "type but an inappropriate value, and the situation is not described by a " @@ -887,7 +907,7 @@ msgstr "" "le bon type mais une valeur inappropriée, et que la situation n'est pas " "décrite par une exception plus précise telle que :exc:`IndexError`." -#: ../Doc/library/exceptions.rst:535 +#: library/exceptions.rst:551 msgid "" "Raised when the second argument of a division or modulo operation is zero. " "The associated value is a string indicating the type of the operands and the " @@ -897,7 +917,7 @@ msgstr "" "est zéro. La valeur associée est une chaîne indiquant le type des opérandes " "et de l'opération." -#: ../Doc/library/exceptions.rst:540 +#: library/exceptions.rst:556 msgid "" "The following exceptions are kept for compatibility with previous versions; " "starting from Python 3.3, they are aliases of :exc:`OSError`." @@ -905,15 +925,15 @@ msgstr "" "Les exceptions suivantes sont conservées pour la compatibilité avec les " "anciennes versions ; depuis Python 3.3, ce sont des alias d':exc:`OSError`." -#: ../Doc/library/exceptions.rst:549 +#: library/exceptions.rst:565 msgid "Only available on Windows." msgstr "Seulement disponible sous Windows." -#: ../Doc/library/exceptions.rst:553 +#: library/exceptions.rst:569 msgid "OS exceptions" msgstr "Exceptions système" -#: ../Doc/library/exceptions.rst:555 +#: library/exceptions.rst:571 msgid "" "The following exceptions are subclasses of :exc:`OSError`, they get raised " "depending on the system error code." @@ -921,7 +941,7 @@ msgstr "" "Les exceptions suivantes sont des sous-classes d':exc:`OSError`, elles sont " "levées en fonction du code d'erreur système." -#: ../Doc/library/exceptions.rst:560 +#: library/exceptions.rst:576 msgid "" "Raised when an operation would block on an object (e.g. socket) set for non-" "blocking operation. Corresponds to :c:data:`errno` ``EAGAIN``, ``EALREADY``, " @@ -931,7 +951,7 @@ msgstr "" "configuré pour une opération non-bloquante. Correspond à :c:data:`errno` " "``EAGAIN``, ``EALREADY``, ``EWOULDBLOCK`` et ``EINPROGRESS``." -#: ../Doc/library/exceptions.rst:565 +#: library/exceptions.rst:581 msgid "" "In addition to those of :exc:`OSError`, :exc:`BlockingIOError` can have one " "more attribute:" @@ -939,7 +959,7 @@ msgstr "" "En plus de ceux de :exc:`OSError`, :exc:`BlockingIOError` peut avoir un " "attribut de plus :" -#: ../Doc/library/exceptions.rst:570 +#: library/exceptions.rst:586 msgid "" "An integer containing the number of characters written to the stream before " "it blocked. This attribute is available when using the buffered I/O classes " @@ -949,7 +969,7 @@ msgstr "" "qu'il ne soit bloqué. Cet attribut est disponible lors de l'utilisation des " "classes tampon entrées-sorties du module :mod:`io`." -#: ../Doc/library/exceptions.rst:576 +#: library/exceptions.rst:592 msgid "" "Raised when an operation on a child process failed. Corresponds to :c:data:" "`errno` ``ECHILD``." @@ -957,11 +977,11 @@ msgstr "" "Levée lorsqu'une opération sur un processus enfant a échoué. Correspond à :c:" "data:`errno` ``ECHILD``." -#: ../Doc/library/exceptions.rst:581 +#: library/exceptions.rst:597 msgid "A base class for connection-related issues." msgstr "Une classe de base pour les problèmes de connexion." -#: ../Doc/library/exceptions.rst:583 +#: library/exceptions.rst:599 msgid "" "Subclasses are :exc:`BrokenPipeError`, :exc:`ConnectionAbortedError`, :exc:" "`ConnectionRefusedError` and :exc:`ConnectionResetError`." @@ -970,7 +990,7 @@ msgstr "" "`ConnectionAbortedError`, :exc:`ConnectionRefusedError` et :exc:" "`ConnectionResetError`." -#: ../Doc/library/exceptions.rst:588 +#: library/exceptions.rst:604 msgid "" "A subclass of :exc:`ConnectionError`, raised when trying to write on a pipe " "while the other end has been closed, or trying to write on a socket which " @@ -982,7 +1002,7 @@ msgstr "" "un connecteur (*socket* en anglais) qui a été fermé pour l'écriture. " "Correspond à :c:data:`errno` ``EPIPE`` et ``ESHUTDOWN``." -#: ../Doc/library/exceptions.rst:595 +#: library/exceptions.rst:611 msgid "" "A subclass of :exc:`ConnectionError`, raised when a connection attempt is " "aborted by the peer. Corresponds to :c:data:`errno` ``ECONNABORTED``." @@ -991,7 +1011,7 @@ msgstr "" "connexion est interrompue par le pair. Correspond à :c:data:`errno` " "``ECONNABORTED``." -#: ../Doc/library/exceptions.rst:601 +#: library/exceptions.rst:617 msgid "" "A subclass of :exc:`ConnectionError`, raised when a connection attempt is " "refused by the peer. Corresponds to :c:data:`errno` ``ECONNREFUSED``." @@ -1000,7 +1020,7 @@ msgstr "" "connexion est refusée par le pair. Correspond à :c:data:`errno` " "``ECONNREFUSED``." -#: ../Doc/library/exceptions.rst:607 +#: library/exceptions.rst:623 msgid "" "A subclass of :exc:`ConnectionError`, raised when a connection is reset by " "the peer. Corresponds to :c:data:`errno` ``ECONNRESET``." @@ -1008,7 +1028,7 @@ msgstr "" "Une sous-classe de :exc:`ConnectionError`, levée lorsqu'une connexion est " "réinitialisée par le pair. Correspond à :c:data:`errno` ``ECONNRESET``." -#: ../Doc/library/exceptions.rst:613 +#: library/exceptions.rst:629 msgid "" "Raised when trying to create a file or directory which already exists. " "Corresponds to :c:data:`errno` ``EEXIST``." @@ -1016,7 +1036,7 @@ msgstr "" "Levée en essayant de créer un fichier ou un répertoire qui existe déjà. " "Correspond à :c:data:`errno` ``EEXIST``." -#: ../Doc/library/exceptions.rst:618 +#: library/exceptions.rst:634 msgid "" "Raised when a file or directory is requested but doesn't exist. Corresponds " "to :c:data:`errno` ``ENOENT``." @@ -1024,7 +1044,7 @@ msgstr "" "Levée lorsqu'un fichier ou répertoire est demandé mais n'existe pas. " "Correspond à :c:data:`errno` ``ENOENT``." -#: ../Doc/library/exceptions.rst:623 +#: library/exceptions.rst:639 msgid "" "Raised when a system call is interrupted by an incoming signal. Corresponds " "to :c:data:`errno` :py:data:`~errno.EINTR`." @@ -1032,7 +1052,7 @@ msgstr "" "Levée lorsqu'un appel système est interrompu par un signal entrant. " "Correspond à :c:data:`errno` :py:data:`~errno.EINTR`." -#: ../Doc/library/exceptions.rst:626 +#: library/exceptions.rst:642 msgid "" "Python now retries system calls when a syscall is interrupted by a signal, " "except if the signal handler raises an exception (see :pep:`475` for the " @@ -1042,7 +1062,7 @@ msgstr "" "un signal, sauf si le gestionnaire de signal lève une exception (voir :pep:" "`475` pour les raisons), au lieu de lever :exc:`InterruptedError`." -#: ../Doc/library/exceptions.rst:633 +#: library/exceptions.rst:649 msgid "" "Raised when a file operation (such as :func:`os.remove`) is requested on a " "directory. Corresponds to :c:data:`errno` ``EISDIR``." @@ -1050,7 +1070,7 @@ msgstr "" "Levée lorsqu'une opération sur un fichier (comme :func:`os.remove`) est " "demandée sur un répertoire. Correspond à :c:data:`errno` ``EISDIR``." -#: ../Doc/library/exceptions.rst:639 +#: library/exceptions.rst:655 msgid "" "Raised when a directory operation (such as :func:`os.listdir`) is requested " "on something which is not a directory. Corresponds to :c:data:`errno` " @@ -1060,7 +1080,7 @@ msgstr "" "demandée sur autre chose qu'un répertoire. Correspond à :c:data:`errno` " "``ENOTDIR``." -#: ../Doc/library/exceptions.rst:645 +#: library/exceptions.rst:661 msgid "" "Raised when trying to run an operation without the adequate access rights - " "for example filesystem permissions. Corresponds to :c:data:`errno` " @@ -1070,7 +1090,7 @@ msgstr "" "adéquats — par exemple les permissions du système de fichiers. Correspond à :" "c:data:`errno` ``EACCES`` et ``EPERM``." -#: ../Doc/library/exceptions.rst:651 +#: library/exceptions.rst:667 msgid "" "Raised when a given process doesn't exist. Corresponds to :c:data:`errno` " "``ESRCH``." @@ -1078,7 +1098,7 @@ msgstr "" "Levée lorsqu'un processus donné n'existe pas. Correspond à :c:data:`errno` " "``ESRCH``." -#: ../Doc/library/exceptions.rst:656 +#: library/exceptions.rst:672 msgid "" "Raised when a system function timed out at the system level. Corresponds to :" "c:data:`errno` ``ETIMEDOUT``." @@ -1086,19 +1106,19 @@ msgstr "" "Levée lorsqu'une fonction système a expiré au niveau système. Correspond à :" "c:data:`errno` ``ETIMEDOUT``." -#: ../Doc/library/exceptions.rst:659 +#: library/exceptions.rst:675 msgid "All the above :exc:`OSError` subclasses were added." msgstr "Toutes les sous-classes d':exc:`OSError` ci-dessus ont été ajoutées." -#: ../Doc/library/exceptions.rst:665 +#: library/exceptions.rst:681 msgid ":pep:`3151` - Reworking the OS and IO exception hierarchy" msgstr ":pep:`3151` -- Refonte de la hiérarchie des exceptions système et IO" -#: ../Doc/library/exceptions.rst:671 +#: library/exceptions.rst:687 msgid "Warnings" msgstr "Avertissements" -#: ../Doc/library/exceptions.rst:673 +#: library/exceptions.rst:689 msgid "" "The following exceptions are used as warning categories; see the :ref:" "`warning-categories` documentation for more details." @@ -1106,16 +1126,16 @@ msgstr "" "Les exceptions suivantes sont utilisées comme catégories d'avertissement ; " "voir :mod:`warning-categories` pour plus d'informations." -#: ../Doc/library/exceptions.rst:678 +#: library/exceptions.rst:694 msgid "Base class for warning categories." msgstr "Classe de base pour les catégories d'avertissement." -#: ../Doc/library/exceptions.rst:683 +#: library/exceptions.rst:699 msgid "Base class for warnings generated by user code." msgstr "" "Classe de base pour les avertissements générés par du code utilisateur." -#: ../Doc/library/exceptions.rst:688 +#: library/exceptions.rst:704 msgid "" "Base class for warnings about deprecated features when those warnings are " "intended for other Python developers." @@ -1123,7 +1143,7 @@ msgstr "" "Classe de base pour les avertissements sur les fonctionnalités obsolètes, " "lorsque ces avertissements sont destinés aux autres développeurs Python." -#: ../Doc/library/exceptions.rst:694 +#: library/exceptions.rst:710 msgid "" "Base class for warnings about features which are obsolete and expected to be " "deprecated in the future, but are not deprecated at the moment." @@ -1132,7 +1152,7 @@ msgstr "" "indiquent que la fonctionnalité peut encore être utilisée actuellement, mais " "qu'elle sera supprimée dans le futur." -#: ../Doc/library/exceptions.rst:698 +#: library/exceptions.rst:714 msgid "" "This class is rarely used as emitting a warning about a possible upcoming " "deprecation is unusual, and :exc:`DeprecationWarning` is preferred for " @@ -1142,17 +1162,17 @@ msgstr "" "d’une obsolescence à venir est inhabituel, et :exc:`DeprecationWarning` est " "préféré pour les obsolescences actuelles." -#: ../Doc/library/exceptions.rst:705 +#: library/exceptions.rst:721 msgid "Base class for warnings about dubious syntax." msgstr "Classe de base pour les avertissements sur de la syntaxe douteuse." -#: ../Doc/library/exceptions.rst:710 +#: library/exceptions.rst:726 msgid "Base class for warnings about dubious runtime behavior." msgstr "" "Classe de base pour les avertissements sur les comportements d'exécution " "douteux." -#: ../Doc/library/exceptions.rst:715 +#: library/exceptions.rst:731 msgid "" "Base class for warnings about deprecated features when those warnings are " "intended for end users of applications that are written in Python." @@ -1161,24 +1181,24 @@ msgstr "" "seront obsolètes dans le futur quand ces avertissements destinés aux " "utilisateurs finaux des applications écrites en Python." -#: ../Doc/library/exceptions.rst:721 +#: library/exceptions.rst:737 msgid "Base class for warnings about probable mistakes in module imports." msgstr "" "Classe de base pour les avertissements sur des erreurs probables dans les " "importations de modules." -#: ../Doc/library/exceptions.rst:726 +#: library/exceptions.rst:742 msgid "Base class for warnings related to Unicode." msgstr "Classe de base pour les avertissements liés à l'Unicode." -#: ../Doc/library/exceptions.rst:731 +#: library/exceptions.rst:747 msgid "" "Base class for warnings related to :class:`bytes` and :class:`bytearray`." msgstr "" "Classe de base pour les avertissements liés à :class:`bytes` et :class:" "`bytearray`." -#: ../Doc/library/exceptions.rst:736 +#: library/exceptions.rst:752 msgid "" "Base class for warnings related to resource usage. Ignored by the default " "warning filters." @@ -1186,14 +1206,24 @@ msgstr "" "Classe de base pour les avertissements liés à l'utilisation de ressources. " "Ignorée par les filtres d’avertissements par défaut." -#: ../Doc/library/exceptions.rst:744 +#: library/exceptions.rst:760 msgid "Exception hierarchy" msgstr "Hiérarchie des exceptions" -#: ../Doc/library/exceptions.rst:746 +#: library/exceptions.rst:762 msgid "The class hierarchy for built-in exceptions is:" msgstr "La hiérarchie de classes pour les exceptions natives est la suivante :" +#~ msgid "" +#~ "Instances of this class have attributes :attr:`filename`, :attr:" +#~ "`lineno`, :attr:`offset` and :attr:`text` for easier access to the " +#~ "details. :func:`str` of the exception instance returns only the message." +#~ msgstr "" +#~ "Les instances de cette classe ont des attributs :attr:`filename`, :attr:" +#~ "`lineno`, :attr:`offset` et :attr:`text` pour accéder plus facilement aux " +#~ "détails. La représentation :func:`str` de l'instance de l'exception " +#~ "retourne seulement le message." + #~ msgid "" #~ "PendingDeprecationWarning was introduced as an \"ignored by default\" " #~ "version of DeprecationWarning. But :exc:`DeprecationWarning` is also " diff --git a/library/fcntl.po b/library/fcntl.po index af0e3ddc85..d87346c5af 100644 --- a/library/fcntl.po +++ b/library/fcntl.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-09 17:54+0200\n" +"POT-Creation-Date: 2020-05-23 11:38+0200\n" "PO-Revision-Date: 2017-08-10 00:59+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -76,13 +76,19 @@ msgstr "" msgid "If the :c:func:`fcntl` fails, an :exc:`OSError` is raised." msgstr "" -#: ../Doc/library/fcntl.rst:63 +#: ../Doc/library/fcntl.rst:60 +msgid "" +"Raises an :ref:`auditing event ` ``fcntl.fcntl`` with arguments " +"``fd``, ``cmd``, ``arg``." +msgstr "" + +#: ../Doc/library/fcntl.rst:65 msgid "" "This function is identical to the :func:`~fcntl.fcntl` function, except that " "the argument handling is even more complicated." msgstr "" -#: ../Doc/library/fcntl.rst:66 +#: ../Doc/library/fcntl.rst:68 msgid "" "The *request* parameter is limited to values that can fit in 32-bits. " "Additional constants of interest for use as the *request* argument can be " @@ -90,26 +96,26 @@ msgid "" "relevant C header files." msgstr "" -#: ../Doc/library/fcntl.rst:71 +#: ../Doc/library/fcntl.rst:73 msgid "" "The parameter *arg* can be one of an integer, an object supporting the read-" "only buffer interface (like :class:`bytes`) or an object supporting the read-" "write buffer interface (like :class:`bytearray`)." msgstr "" -#: ../Doc/library/fcntl.rst:75 +#: ../Doc/library/fcntl.rst:77 msgid "" "In all but the last case, behaviour is as for the :func:`~fcntl.fcntl` " "function." msgstr "" -#: ../Doc/library/fcntl.rst:78 +#: ../Doc/library/fcntl.rst:80 msgid "" "If a mutable buffer is passed, then the behaviour is determined by the value " "of the *mutate_flag* parameter." msgstr "" -#: ../Doc/library/fcntl.rst:81 +#: ../Doc/library/fcntl.rst:83 msgid "" "If it is false, the buffer's mutability is ignored and behaviour is as for a " "read-only buffer, except that the 1024 byte limit mentioned above is avoided " @@ -117,7 +123,7 @@ msgid "" "system wants to put there, things should work." msgstr "" -#: ../Doc/library/fcntl.rst:86 +#: ../Doc/library/fcntl.rst:88 msgid "" "If *mutate_flag* is true (the default), then the buffer is (in effect) " "passed to the underlying :func:`ioctl` system call, the latter's return code " @@ -128,15 +134,21 @@ msgid "" "copied back into the supplied buffer." msgstr "" -#: ../Doc/library/fcntl.rst:94 +#: ../Doc/library/fcntl.rst:96 msgid "If the :c:func:`ioctl` fails, an :exc:`OSError` exception is raised." msgstr "" -#: ../Doc/library/fcntl.rst:96 +#: ../Doc/library/fcntl.rst:98 msgid "An example::" msgstr "Un exemple ::" -#: ../Doc/library/fcntl.rst:112 +#: ../Doc/library/fcntl.rst:111 +msgid "" +"Raises an :ref:`auditing event ` ``fcntl.ioctl`` with arguments " +"``fd``, ``request``, ``arg``." +msgstr "" + +#: ../Doc/library/fcntl.rst:116 msgid "" "Perform the lock operation *operation* on file descriptor *fd* (file objects " "providing a :meth:`~io.IOBase.fileno` method are accepted as well). See the " @@ -144,11 +156,17 @@ msgid "" "function is emulated using :c:func:`fcntl`.)" msgstr "" -#: ../Doc/library/fcntl.rst:117 +#: ../Doc/library/fcntl.rst:121 msgid "If the :c:func:`flock` fails, an :exc:`OSError` exception is raised." msgstr "" -#: ../Doc/library/fcntl.rst:122 +#: ../Doc/library/fcntl.rst:123 +msgid "" +"Raises an :ref:`auditing event ` ``fcntl.flock`` with arguments " +"``fd``, ``operation``." +msgstr "" + +#: ../Doc/library/fcntl.rst:128 msgid "" "This is essentially a wrapper around the :func:`~fcntl.fcntl` locking calls. " "*fd* is the file descriptor (file objects providing a :meth:`~io.IOBase." @@ -156,19 +174,19 @@ msgid "" "*cmd* is one of the following values:" msgstr "" -#: ../Doc/library/fcntl.rst:127 +#: ../Doc/library/fcntl.rst:133 msgid ":const:`LOCK_UN` -- unlock" msgstr "" -#: ../Doc/library/fcntl.rst:128 +#: ../Doc/library/fcntl.rst:134 msgid ":const:`LOCK_SH` -- acquire a shared lock" msgstr "" -#: ../Doc/library/fcntl.rst:129 +#: ../Doc/library/fcntl.rst:135 msgid ":const:`LOCK_EX` -- acquire an exclusive lock" msgstr "" -#: ../Doc/library/fcntl.rst:131 +#: ../Doc/library/fcntl.rst:137 msgid "" "When *cmd* is :const:`LOCK_SH` or :const:`LOCK_EX`, it can also be bitwise " "ORed with :const:`LOCK_NB` to avoid blocking on lock acquisition. If :const:" @@ -180,38 +198,44 @@ msgid "" "for writing." msgstr "" -#: ../Doc/library/fcntl.rst:140 +#: ../Doc/library/fcntl.rst:146 msgid "" "*len* is the number of bytes to lock, *start* is the byte offset at which " "the lock starts, relative to *whence*, and *whence* is as with :func:`io." "IOBase.seek`, specifically:" msgstr "" -#: ../Doc/library/fcntl.rst:144 +#: ../Doc/library/fcntl.rst:150 msgid ":const:`0` -- relative to the start of the file (:data:`os.SEEK_SET`)" msgstr "" -#: ../Doc/library/fcntl.rst:145 +#: ../Doc/library/fcntl.rst:151 msgid "" ":const:`1` -- relative to the current buffer position (:data:`os.SEEK_CUR`)" msgstr "" -#: ../Doc/library/fcntl.rst:146 +#: ../Doc/library/fcntl.rst:152 msgid ":const:`2` -- relative to the end of the file (:data:`os.SEEK_END`)" msgstr "" -#: ../Doc/library/fcntl.rst:148 +#: ../Doc/library/fcntl.rst:154 msgid "" "The default for *start* is 0, which means to start at the beginning of the " "file. The default for *len* is 0 which means to lock to the end of the " "file. The default for *whence* is also 0." msgstr "" -#: ../Doc/library/fcntl.rst:152 +#: ../Doc/library/fcntl.rst:158 +msgid "" +"Raises an :ref:`auditing event ` ``fcntl.lockf`` with arguments " +"``fd``, ``cmd``, ``len``, ``start``, ``whence``." +msgstr "" + +#: ../Doc/library/fcntl.rst:160 msgid "Examples (all on a SVR4 compliant system)::" msgstr "" -#: ../Doc/library/fcntl.rst:162 +#: ../Doc/library/fcntl.rst:170 msgid "" "Note that in the first example the return value variable *rv* will hold an " "integer value; in the second example it will hold a :class:`bytes` object. " @@ -219,11 +243,11 @@ msgid "" "therefore using the :func:`flock` call may be better." msgstr "" -#: ../Doc/library/fcntl.rst:173 +#: ../Doc/library/fcntl.rst:181 msgid "Module :mod:`os`" msgstr "Module :mod:`os`" -#: ../Doc/library/fcntl.rst:171 +#: ../Doc/library/fcntl.rst:179 msgid "" "If the locking flags :data:`~os.O_SHLOCK` and :data:`~os.O_EXLOCK` are " "present in the :mod:`os` module (on BSD only), the :func:`os.open` function " diff --git a/library/filecmp.po b/library/filecmp.po index c8219a5379..48e5a701c7 100644 --- a/library/filecmp.po +++ b/library/filecmp.po @@ -278,4 +278,4 @@ msgid "" msgstr "" "Voici un exemple simplifié d'utilisation de l'attribut ``subdirs`` pour " "effectuer une recherche récursive dans deux répertoires afin d'afficher des " -"fichiers communs différents ::" +"fichiers communs différents ::" diff --git a/library/fileinput.po b/library/fileinput.po index d4f3c9abe5..d5e1111826 100644 --- a/library/fileinput.po +++ b/library/fileinput.po @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/library/fileinput.rst:2 msgid ":mod:`fileinput` --- Iterate over lines from multiple input streams" -msgstr "" +msgstr ":mod:`fileinput` — Parcourt les lignes provenant de plusieurs entrées" #: ../Doc/library/fileinput.rst:10 msgid "**Source code:** :source:`Lib/fileinput.py`" @@ -28,10 +28,13 @@ msgid "" "over standard input or a list of files. If you just want to read or write " "one file see :func:`open`." msgstr "" +"Ce module offre une classe auxiliaire et des fonctions pour lire facilement " +"l'entrée standard ou bien les fichiers d'une liste. Si vous n'avez besoin de " +"lire ou écrire qu'un seul fichier, il suffit de :func:`open`." #: ../Doc/library/fileinput.rst:18 msgid "The typical use is::" -msgstr "" +msgstr "Ce module s'utilise le plus couramment comme ceci :" #: ../Doc/library/fileinput.rst:24 msgid "" @@ -42,6 +45,12 @@ msgid "" "it as the first argument to :func:`.input`. A single file name is also " "allowed." msgstr "" +"Ce code traite une à une les lignes des fichiers de ``sys.argv[1:]``. Si " +"cette liste est vide (pas d'argument en ligne de commande), il lit l'entrée " +"standard. Le nom de fichier ``'-'`` est équivalent à l'entrée standard (les " +"arguments facultatifs *mode* et *openhook* sont ignorés dans ce cas). On " +"peut aussi passer la liste des fichiers comme argument à :func:`.input`, " +"voire un nom de fichier unique." #: ../Doc/library/fileinput.rst:30 msgid "" @@ -50,10 +59,17 @@ msgid "" "`FileInput`. If an I/O error occurs during opening or reading a file, :exc:" "`OSError` is raised." msgstr "" +"Par défaut, tous les fichiers sont ouverts en mode texte. On peut changer ce " +"comportement à l'aide du paramètre *mode* de la fonction :func:`.input` ou " +"du constructeur de :class:`FileInput`. Si une erreur d'entrée-sortie se " +"produit durant l'ouverture ou la lecture d'un fichier, l'exception :exc:" +"`OSError` est levée." #: ../Doc/library/fileinput.rst:35 msgid ":exc:`IOError` used to be raised; it is now an alias of :exc:`OSError`." msgstr "" +":exc:`IOError` était levée auparavant, elle est devenue un alias de :exc:" +"`OSError`." #: ../Doc/library/fileinput.rst:38 msgid "" @@ -61,6 +77,10 @@ msgid "" "return no lines, except perhaps for interactive use, or if it has been " "explicitly reset (e.g. using ``sys.stdin.seek(0)``)." msgstr "" +"Si ``sys.stdin`` apparaît plus d'une fois dans la liste, toutes les lignes " +"sont consommées dès la première fois, sauf éventuellement en cas d'usage " +"interactif ou si le flux d'entrée standard a été modifié dans l'intervalle " +"(par exemple avec ``sys.stdin.seek(0)``)." #: ../Doc/library/fileinput.rst:42 msgid "" @@ -68,12 +88,18 @@ msgid "" "in the list of filenames is noticeable at all is when the last file opened " "is empty." msgstr "" +"Les fichiers vides sont ouverts et refermés immédiatement. Ils ne sont pas " +"détectables dans la liste des fichiers, sauf éventuellement dans le cas où " +"le dernier fichier est vide." #: ../Doc/library/fileinput.rst:46 msgid "" "Lines are returned with any newlines intact, which means that the last line " "in a file may not have one." msgstr "" +"Les caractères de saut de ligne sont préservés, donc toutes les lignes se " +"terminent par un saut de ligne, sauf éventuellement la dernière ligne d'un " +"fichier." #: ../Doc/library/fileinput.rst:49 msgid "" @@ -86,7 +112,7 @@ msgstr "" #: ../Doc/library/fileinput.rst:55 msgid "The following function is the primary interface of this module:" -msgstr "" +msgstr "La fonction suivante constitue l'interface principale du module :" #: ../Doc/library/fileinput.rst:60 msgid "" @@ -95,6 +121,11 @@ msgid "" "to use during iteration. The parameters to this function will be passed " "along to the constructor of the :class:`FileInput` class." msgstr "" +"Crée une instance de :class:`FileInput`, qui devient l'état global pour " +"toutes les fonctions du module. Elle est également renvoyée afin que " +"l'utilisateur puisse la parcourir comme un objet itérable. Tous les " +"paramètres de cette fonction sont transmis au constructeur de :class:" +"`FileInput`." #: ../Doc/library/fileinput.rst:65 msgid "" @@ -102,32 +133,44 @@ msgid "" "keyword:`with` statement. In this example, *input* is closed after the :" "keyword:`!with` statement is exited, even if an exception occurs::" msgstr "" +"Les instances de :class:`FileInput` peuvent s'utiliser comme gestionnaires " +"de contexte, avec l'instruction :keyword:`with`. Dans le code suivant, " +"*input* est fermé lorsque le bloc :keyword:`!with` se termine, y compris si " +"une exception l'a interrompu." #: ../Doc/library/fileinput.rst:73 ../Doc/library/fileinput.rst:166 msgid "Can be used as a context manager." -msgstr "" +msgstr "prise en charge du protocole de gestionnaire de contexte." #: ../Doc/library/fileinput.rst:76 msgid "The keyword parameters *mode* and *openhook* are now keyword-only." -msgstr "" +msgstr "les paramètres *mode* et *openhook* doivent être nommés." #: ../Doc/library/fileinput.rst:80 msgid "" "The following functions use the global state created by :func:`fileinput." "input`; if there is no active state, :exc:`RuntimeError` is raised." msgstr "" +"Toutes les fonctions suivantes font appel à l'état global du module mis en " +"place par :func:`fileinput.input`. L'absence de cet état déclenche " +"l'exception :exc:`RuntimeError`." #: ../Doc/library/fileinput.rst:86 msgid "" "Return the name of the file currently being read. Before the first line has " "been read, returns ``None``." msgstr "" +"Renvoie le nom du fichier en train d'être lu, ou ``None`` avant la lecture " +"de la toute première ligne." #: ../Doc/library/fileinput.rst:92 msgid "" "Return the integer \"file descriptor\" for the current file. When no file is " "opened (before the first line and between files), returns ``-1``." msgstr "" +"Renvoie le descripteur de fichier (sous forme d'entier) utilisé pour lire le " +"fichier courant. Si aucun fichier n'est ouvert (avant la première ligne et " +"entre les fichiers), le résultat est ``-1``." #: ../Doc/library/fileinput.rst:98 msgid "" @@ -135,6 +178,10 @@ msgid "" "Before the first line has been read, returns ``0``. After the last line of " "the last file has been read, returns the line number of that line." msgstr "" +"Renvoie le numéro de la ligne qui vient d'être lue, en commençant par la " +"première ligne du premier fichier. Avant cette toute première ligne, renvoie " +"``0``. Après la dernière ligne du dernier fichier, renvoie le numéro de " +"cette ligne." #: ../Doc/library/fileinput.rst:105 msgid "" @@ -142,18 +189,25 @@ msgid "" "read, returns ``0``. After the last line of the last file has been read, " "returns the line number of that line within the file." msgstr "" +"Renvoie le numéro de ligne relatif au fichier courant. Avant la toute " +"première ligne, renvoie ``0``. Après la toute dernière ligne, renvoie le " +"numéro de cette ligne par rapport à son fichier source." #: ../Doc/library/fileinput.rst:112 msgid "" "Return ``True`` if the line just read is the first line of its file, " "otherwise return ``False``." msgstr "" +"Renvoie ``True`` ou ``False`` selon que la ligne qui vient d'être lue est la " +"première du fichier." #: ../Doc/library/fileinput.rst:118 msgid "" "Return ``True`` if the last line was read from ``sys.stdin``, otherwise " "return ``False``." msgstr "" +"``True`` ou ``False`` selon que la dernière ligne lue provenait de ``sys." +"stdin`` ou non." #: ../Doc/library/fileinput.rst:124 msgid "" @@ -165,16 +219,27 @@ msgid "" "file. After the last line of the last file has been read, this function has " "no effect." msgstr "" +"Ferme le fichier courant et laisse la lecture se poursuivre au début du " +"suivant (ou se terminer si c'était le dernier fichier ; dans ce cas cette " +"fonction ne fait rien). Les lignes court-circuitées ne comptent pas dans les " +"numéros des lignes des fichiers suivants. Le nom du fichier courant n'est " +"pas modifié immédiatement, mais seulement après que la première ligne du " +"fichier suivant a été lue. Cette fonction n'a pas d'effet avant la lecture " +"de la première ligne (elle ne peut pas sauter le premier fichier)." #: ../Doc/library/fileinput.rst:134 msgid "Close the sequence." msgstr "" +"Ferme le fichier courant et termine la lecture en sautant les fichiers " +"suivants." #: ../Doc/library/fileinput.rst:136 msgid "" "The class which implements the sequence behavior provided by the module is " "available for subclassing as well:" msgstr "" +"La classe qui implémente ce comportement du module est publique. On peut en " +"créer des classes filles." #: ../Doc/library/fileinput.rst:142 msgid "" @@ -200,6 +265,10 @@ msgid "" "*filename* and *mode*, and returns an accordingly opened file-like object. " "You cannot use *inplace* and *openhook* together." msgstr "" +"S'il est fourni, l'argument *openhook* est une fonction. Elle est appelée " +"avec les paramètres *filename* et *mode*, et renvoie un objet fichier-" +"compatible ouvert selon *mode*. Notez que *openhook* et *inplace* sont " +"mutuellement exclusifs." #: ../Doc/library/fileinput.rst:158 msgid "" @@ -207,18 +276,22 @@ msgid "" "keyword:`with` statement. In this example, *input* is closed after the :" "keyword:`!with` statement is exited, even if an exception occurs::" msgstr "" +"Les objets :class:`FileInput` peuvent aussi fonctionner comme gestionnaires " +"de contexte dans un bloc :keyword:`with`. Dans l'exemple suivant, *input* " +"est fermé à la fin du bloc :keyword:`!with`, même arrêté par une exception." #: ../Doc/library/fileinput.rst:169 msgid "The ``'rU'`` and ``'U'`` modes." -msgstr "" +msgstr "modes ``'rU'`` et ``'U'``." #: ../Doc/library/fileinput.rst:172 msgid "Support for :meth:`__getitem__` method is deprecated." -msgstr "" +msgstr "accès à un indice avec :meth:`__getitem__`." #: ../Doc/library/fileinput.rst:175 msgid "The keyword parameter *mode* and *openhook* are now keyword-only." msgstr "" +"les paramètres *mode* et *openhook* doivent impérativement être nommés." #: ../Doc/library/fileinput.rst:180 msgid "" @@ -233,10 +306,22 @@ msgid "" "extension is ``'.bak'`` and it is deleted when the output file is closed. " "In-place filtering is disabled when standard input is read." msgstr "" +"**Filtrage sur place optionnel :** si ``inplace=True`` est passé à :func:" +"`fileinput.input` ou au constructeur de :class:`FileInput`, chaque fichier " +"d'entrée est déplacé vers une sauvegarde et la sortie standard est redirigée " +"vers le fichier lui-même, ce qui permet d'écrire des filtres qui modifient " +"directement les fichiers existants. Si le paramètre *backup* est fourni, il " +"donne l'extension des fichiers de sauvegarde. Dans ce cas, la sauvegarde est " +"conservée après l'opération. Par défaut, les fichiers de sauvegarde ont " +"l'extension ``'.bak'`` et sont supprimés dès que le fichier de sortie est " +"fermé. Si un fichier existe avec le même nom que la sauvegarde, il est " +"écrasé. Le filtrage sur place ne fait rien pour l'entrée standard." #: ../Doc/library/fileinput.rst:192 msgid "The two following opening hooks are provided by this module:" msgstr "" +"Les deux fonctions suivantes fournissent des valeurs prédéfinies pour " +"*openhook*." #: ../Doc/library/fileinput.rst:196 msgid "" @@ -245,6 +330,11 @@ msgid "" "modules. If the filename extension is not ``'.gz'`` or ``'.bz2'``, the file " "is opened normally (ie, using :func:`open` without any decompression)." msgstr "" +"Ouvre de façon transparente les fichiers compressés avec gzip ou bzip2, à " +"l'aide des modules :mod:`gzip` et :mod:`bz2`. Les fichiers compressés sont " +"reconnus aux extensions ``'.gz'`` et ``'.bz2'``. Tous les fichiers qui n'ont " +"pas l'une de ces deux extensions sont ouverts normalement (avec :func:" +"`open`, sans décompression)." #: ../Doc/library/fileinput.rst:201 msgid "" @@ -257,13 +347,18 @@ msgid "" "Returns a hook which opens each file with :func:`open`, using the given " "*encoding* and *errors* to read the file." msgstr "" +"Renvoie une fonction qui ouvre les fichiers en passant à :func:`open` les " +"arguments *encoding* et *errors*. Le résultat peut être exploité à travers " +"le point d'entrée automatique *openhook*." #: ../Doc/library/fileinput.rst:209 msgid "" "Usage example: ``fi = fileinput.FileInput(openhook=fileinput." "hook_encoded(\"utf-8\", \"surrogateescape\"))``" msgstr "" +"Exemple d'utilisation : ``fi = fileinput.FileInput(openhook=fileinput." +"hook_encoded(\"utf-8\", \"surrogateescape\"))``." #: ../Doc/library/fileinput.rst:213 msgid "Added the optional *errors* parameter." -msgstr "" +msgstr "ajout du paramètre facultatif *errors*." diff --git a/library/fnmatch.po b/library/fnmatch.po index d32e63888e..c4aa823394 100644 --- a/library/fnmatch.po +++ b/library/fnmatch.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2019-02-21 17:34+0100\n" "Last-Translator: Julien VITARD \n" "Language-Team: FRENCH \n" @@ -15,15 +15,15 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.0.2\n" -#: ../Doc/library/fnmatch.rst:2 +#: library/fnmatch.rst:2 msgid ":mod:`fnmatch` --- Unix filename pattern matching" msgstr ":mod:`fnmatch` — Filtrage par motif des noms de fichiers Unix" -#: ../Doc/library/fnmatch.rst:7 +#: library/fnmatch.rst:7 msgid "**Source code:** :source:`Lib/fnmatch.py`" msgstr "**Code source :** :source:`Lib/fnmatch.py`" -#: ../Doc/library/fnmatch.rst:15 +#: library/fnmatch.rst:15 msgid "" "This module provides support for Unix shell-style wildcards, which are *not* " "the same as regular expressions (which are documented in the :mod:`re` " @@ -34,47 +34,47 @@ msgstr "" "régulières (documentés dans le module :mod:`re`). Les caractères spéciaux " "utilisés comme caractères de remplacement de style shell sont :" -#: ../Doc/library/fnmatch.rst:27 +#: library/fnmatch.rst:27 msgid "Pattern" msgstr "Motif" -#: ../Doc/library/fnmatch.rst:27 +#: library/fnmatch.rst:27 msgid "Meaning" msgstr "Signification" -#: ../Doc/library/fnmatch.rst:29 +#: library/fnmatch.rst:29 msgid "``*``" msgstr "``*``" -#: ../Doc/library/fnmatch.rst:29 +#: library/fnmatch.rst:29 msgid "matches everything" msgstr "reconnaît n'importe quoi" -#: ../Doc/library/fnmatch.rst:31 +#: library/fnmatch.rst:31 msgid "``?``" msgstr "``?``" -#: ../Doc/library/fnmatch.rst:31 +#: library/fnmatch.rst:31 msgid "matches any single character" msgstr "reconnaît n'importe quel caractère unique" -#: ../Doc/library/fnmatch.rst:33 +#: library/fnmatch.rst:33 msgid "``[seq]``" msgstr "``[seq]``" -#: ../Doc/library/fnmatch.rst:33 +#: library/fnmatch.rst:33 msgid "matches any character in *seq*" msgstr "reconnaît n'importe quel caractère dans *seq*" -#: ../Doc/library/fnmatch.rst:35 +#: library/fnmatch.rst:35 msgid "``[!seq]``" msgstr "``[!seq]``" -#: ../Doc/library/fnmatch.rst:35 +#: library/fnmatch.rst:35 msgid "matches any character not in *seq*" msgstr "reconnaît n'importe quel caractère qui n'est pas dans *seq*" -#: ../Doc/library/fnmatch.rst:38 +#: library/fnmatch.rst:38 msgid "" "For a literal match, wrap the meta-characters in brackets. For example, " "``'[?]'`` matches the character ``'?'``." @@ -82,7 +82,7 @@ msgstr "" "Pour une correspondance littérale, il faut entourer le métacaractère par des " "crochets. Par exemple, ``'[?]'`` reconnaît le caractère ``'?'``." -#: ../Doc/library/fnmatch.rst:43 +#: library/fnmatch.rst:43 msgid "" "Note that the filename separator (``'/'`` on Unix) is *not* special to this " "module. See module :mod:`glob` for pathname expansion (:mod:`glob` uses :" @@ -97,7 +97,7 @@ msgstr "" "commençant par un point ne sont pas traités de manière spéciale par ce " "module, et sont reconnus par les motifs ``*`` et ``?``." -#: ../Doc/library/fnmatch.rst:52 +#: library/fnmatch.rst:52 msgid "" "Test whether the *filename* string matches the *pattern* string, returning :" "const:`True` or :const:`False`. Both parameters are case-normalized using :" @@ -111,7 +111,7 @@ msgstr "" "`fnmatchcase` peut être utilisée pour réaliser une comparaison sensible à la " "casse, indépendamment du système d'exploitation." -#: ../Doc/library/fnmatch.rst:58 +#: library/fnmatch.rst:58 msgid "" "This example will print all file names in the current directory with the " "extension ``.txt``::" @@ -119,7 +119,7 @@ msgstr "" "Cet exemple affiche tous les noms de fichiers du répertoire courant ayant " "pour extension ``.txt`` ::" -#: ../Doc/library/fnmatch.rst:71 +#: library/fnmatch.rst:71 msgid "" "Test whether *filename* matches *pattern*, returning :const:`True` or :const:" "`False`; the comparison is case-sensitive and does not apply :func:`os.path." @@ -129,17 +129,18 @@ msgstr "" "`True` ou :const:`False` ; la comparaison est sensible à la casse et " "n'utilise pas la fonction :func:`os.path.normcase`." -#: ../Doc/library/fnmatch.rst:78 +#: library/fnmatch.rst:78 +#, fuzzy msgid "" -"Return the subset of the list of *names* that match *pattern*. It is the " -"same as ``[n for n in names if fnmatch(n, pattern)]``, but implemented more " -"efficiently." +"Construct a list from those elements of the iterable *names* that match " +"*pattern*. It is the same as ``[n for n in names if fnmatch(n, pattern)]``, " +"but implemented more efficiently." msgstr "" "Renvoie un sous-ensemble de la liste *names* correspondant au motif " "*pattern*. Similaire à ``[n for n in names if fnmatch(n, pattern)]``, mais " "implémenté plus efficacement." -#: ../Doc/library/fnmatch.rst:84 +#: library/fnmatch.rst:84 msgid "" "Return the shell-style *pattern* converted to a regular expression for using " "with :func:`re.match`." @@ -147,14 +148,14 @@ msgstr "" "Renvoie le motif *pattern*, de style shell, converti en une expression " "régulière utilisable avec :func:`re.match`." -#: ../Doc/library/fnmatch.rst:87 +#: library/fnmatch.rst:87 msgid "Example:" msgstr "Exemple :" -#: ../Doc/library/fnmatch.rst:101 +#: library/fnmatch.rst:101 msgid "Module :mod:`glob`" msgstr "Module :mod:`glob`" -#: ../Doc/library/fnmatch.rst:102 +#: library/fnmatch.rst:102 msgid "Unix shell-style path expansion." msgstr "Recherche de chemins de style shell Unix" diff --git a/library/fractions.po b/library/fractions.po index b35c580bd6..3498ba1671 100644 --- a/library/fractions.po +++ b/library/fractions.po @@ -122,6 +122,8 @@ msgid "" "Return a tuple of two integers, whose ratio is equal to the Fraction and " "with a positive denominator." msgstr "" +"Renvoie un *n*-uplet de deux entiers, dont le quotient est égal à la " +"fraction et dont le dénominateur est positif." #: ../Doc/library/fractions.rst:106 msgid "" diff --git a/library/frameworks.po b/library/frameworks.po index 13870b892e..dcbab08add 100644 --- a/library/frameworks.po +++ b/library/frameworks.po @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/library/frameworks.rst:5 msgid "Program Frameworks" -msgstr "*Frameworks* d'applications" +msgstr "Cadriciels d'applications" #: ../Doc/library/frameworks.rst:7 msgid "" @@ -24,9 +24,10 @@ msgid "" "dictate the structure of your program. Currently the modules described " "here are all oriented toward writing command-line interfaces." msgstr "" -"Les modules décrits dans ce chapitre sont des *frameworks* qui encadreront " -"la structure de vos programmes. Actuellement tous les modules décrits ici " -"sont destinés à écrire des interfaces en ligne de commande." +"Les modules décrits dans ce chapitre sont des cadriciels (*frameworks*, en " +"anglais) qui encadreront la structure de vos programmes. Actuellement tous " +"les modules décrits ici sont destinés à écrire des interfaces en ligne de " +"commande." #: ../Doc/library/frameworks.rst:11 msgid "The full list of modules described in this chapter is:" diff --git a/library/ftplib.po b/library/ftplib.po index 4b3a4f125d..04472fb9b1 100644 --- a/library/ftplib.po +++ b/library/ftplib.po @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/library/ftplib.rst:2 msgid ":mod:`ftplib` --- FTP protocol client" -msgstr "" +msgstr ":mod:`ftplib` — Le protocole client FTP" #: ../Doc/library/ftplib.rst:7 msgid "**Source code:** :source:`Lib/ftplib.py`" @@ -34,7 +34,7 @@ msgstr "" #: ../Doc/library/ftplib.rst:22 msgid "Here's a sample session using the :mod:`ftplib` module::" -msgstr "" +msgstr "Voici un exemple de session utilisant le module :mod:`ftplib` ::" #: ../Doc/library/ftplib.rst:42 msgid "The module defines the following items:" @@ -55,10 +55,12 @@ msgstr "" #: ../Doc/library/ftplib.rst:55 msgid "The :class:`FTP` class supports the :keyword:`with` statement, e.g.:" msgstr "" +"La classe :class:`FTP` peut s'utiliser avec l'instruction :keyword:`with`, " +"p. ex.:" #: ../Doc/library/ftplib.rst:69 msgid "Support for the :keyword:`with` statement was added." -msgstr "" +msgstr "La prise en charge de l'instruction :keyword:`with` a été ajoutée." #: ../Doc/library/ftplib.rst:72 ../Doc/library/ftplib.rst:93 #: ../Doc/library/ftplib.rst:196 @@ -99,23 +101,27 @@ msgstr "" #: ../Doc/library/ftplib.rst:108 msgid "Here's a sample session using the :class:`FTP_TLS` class::" -msgstr "" +msgstr "Voici un exemple de session utilisant la classe :class:`FTP_TLS` ::" #: ../Doc/library/ftplib.rst:121 msgid "Exception raised when an unexpected reply is received from the server." -msgstr "" +msgstr "Exception levée lorsqu'une réponse inattendue est reçue du serveur." #: ../Doc/library/ftplib.rst:126 msgid "" "Exception raised when an error code signifying a temporary error (response " "codes in the range 400--499) is received." msgstr "" +"Exception levée lorsqu'un code d'erreur signifiant une erreur temporaire " +"(code de réponse dans l'intervalle 400-499) est reçu." #: ../Doc/library/ftplib.rst:132 msgid "" "Exception raised when an error code signifying a permanent error (response " "codes in the range 500--599) is received." msgstr "" +"Exception levée lorsqu'un code d'erreur signifiant une erreur permanente " +"(code de réponse dans l'intervalle 500-599) est reçu." #: ../Doc/library/ftplib.rst:138 msgid "" @@ -123,6 +129,9 @@ msgid "" "the response specifications of the File Transfer Protocol, i.e. begin with a " "digit in the range 1--5." msgstr "" +"Exception levée lorsqu'une réponse reçue du serveur ne correspond pas aux à " +"la spécification de File Transfer Protocol, c.-à-d. qu'elle doit commencer " +"par un chiffre dans l'intervalle 1-5." #: ../Doc/library/ftplib.rst:145 msgid "" @@ -158,6 +167,7 @@ msgstr "" #: ../Doc/library/ftplib.rst:168 msgid ":class:`FTP` instances have the following methods:" msgstr "" +"Les instances de la classe :class:`FTP` possèdent les méthodes suivantes :" #: ../Doc/library/ftplib.rst:173 msgid "" @@ -335,10 +345,17 @@ msgid "" "directory). Multiple arguments can be used to pass non-standard options to " "the ``NLST`` command." msgstr "" +"Renvoie une liste de noms de fichiers comme celle que renvoie la commande " +"``NLST``. Le paramètre optionnel *argument* est une liste de dossiers (la " +"valeur par défaut est le répertoire courant du serveur). Plusieurs " +"paramètres peuvent être utilisés pour passer des paramètres non standards à " +"la commande ``NLST``." #: ../Doc/library/ftplib.rst:343 ../Doc/library/ftplib.rst:355 msgid "If your server supports the command, :meth:`mlsd` offers a better API." msgstr "" +"La commande :meth:`mlsd` offre une meilleure API si votre serveur sait la " +"gérer." #: ../Doc/library/ftplib.rst:348 msgid "" @@ -353,6 +370,7 @@ msgstr "" #: ../Doc/library/ftplib.rst:360 msgid "Rename file *fromname* on the server to *toname*." msgstr "" +"Renomme le fichier portant le nom *fromname* en *toname* sur le serveur." #: ../Doc/library/ftplib.rst:365 msgid "" @@ -367,15 +385,15 @@ msgstr "" #: ../Doc/library/ftplib.rst:377 msgid "Create a new directory on the server." -msgstr "" +msgstr "Crée un nouveau dossier sur le serveur." #: ../Doc/library/ftplib.rst:382 msgid "Return the pathname of the current directory on the server." -msgstr "" +msgstr "Renvoie le chemin d'accès au répertoire courant sur le serveur." #: ../Doc/library/ftplib.rst:387 msgid "Remove the directory named *dirname* on the server." -msgstr "" +msgstr "Supprime le dossier portant le nom *dirname* sur le serveur." #: ../Doc/library/ftplib.rst:392 msgid "" @@ -438,8 +456,8 @@ msgstr "" #: ../Doc/library/ftplib.rst:445 msgid "Set up secure data connection." -msgstr "" +msgstr "Établit une connexion de données sécurisée." #: ../Doc/library/ftplib.rst:449 msgid "Set up clear text data connection." -msgstr "" +msgstr "Établit une connexion de données non sécurisées." diff --git a/library/functions.po b/library/functions.po index dab019c6de..2d2a60743f 100644 --- a/library/functions.po +++ b/library/functions.po @@ -5,21 +5,22 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-12-05 23:16+0100\n" -"PO-Revision-Date: 2019-06-01 23:07+0200\n" -"Last-Translator: Jules Lasne \n" -"Language-Team: FRENCH \n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" +"PO-Revision-Date: 2023-03-23 10:14+0100\n" +"Last-Translator: Loc Cosnier \n" +"Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2.1\n" +"Plural-Forms: nplurals=2; plural=(n > 1)\n" +"X-Generator: Gtranslator 3.36.0\n" -#: ../Doc/library/functions.rst:5 ../Doc/library/functions.rst:11 +#: library/functions.rst:11 msgid "Built-in Functions" msgstr "Fonctions natives" -#: ../Doc/library/functions.rst:7 +#: library/functions.rst:7 msgid "" "The Python interpreter has a number of functions and types built into it " "that are always available. They are listed here in alphabetical order." @@ -27,325 +28,324 @@ msgstr "" "L'interpréteur Python propose quelques fonctions et types natifs qui sont " "toujours disponibles. Ils sont listés ici par ordre alphabétique." -#: ../Doc/library/functions.rst:13 +#: library/functions.rst:13 msgid ":func:`abs`" msgstr ":func:`abs`" -#: ../Doc/library/functions.rst:13 +#: library/functions.rst:13 msgid ":func:`delattr`" msgstr ":func:`delattr`" -#: ../Doc/library/functions.rst:13 +#: library/functions.rst:13 msgid ":func:`hash`" msgstr ":func:`hash`" -#: ../Doc/library/functions.rst:13 +#: library/functions.rst:13 msgid "|func-memoryview|_" msgstr "|func-memoryview|_" -#: ../Doc/library/functions.rst:13 +#: library/functions.rst:13 msgid "|func-set|_" msgstr "|func-set|_" -#: ../Doc/library/functions.rst:14 +#: library/functions.rst:14 msgid ":func:`all`" msgstr ":func:`all`" -#: ../Doc/library/functions.rst:14 +#: library/functions.rst:14 msgid "|func-dict|_" msgstr "|func-dict|_" -#: ../Doc/library/functions.rst:14 +#: library/functions.rst:14 msgid ":func:`help`" msgstr ":func:`help`" -#: ../Doc/library/functions.rst:14 +#: library/functions.rst:14 msgid ":func:`min`" msgstr ":func:`min`" -#: ../Doc/library/functions.rst:14 +#: library/functions.rst:14 msgid ":func:`setattr`" msgstr ":func:`setattr`" -#: ../Doc/library/functions.rst:15 +#: library/functions.rst:15 msgid ":func:`any`" msgstr ":func:`any`" -#: ../Doc/library/functions.rst:15 +#: library/functions.rst:15 msgid ":func:`dir`" msgstr ":func:`dir`" -#: ../Doc/library/functions.rst:15 +#: library/functions.rst:15 msgid ":func:`hex`" msgstr ":func:`hex`" -#: ../Doc/library/functions.rst:15 +#: library/functions.rst:15 msgid ":func:`next`" msgstr ":func:`next`" -#: ../Doc/library/functions.rst:15 +#: library/functions.rst:15 msgid ":func:`slice`" msgstr ":func:`slice`" -#: ../Doc/library/functions.rst:16 +#: library/functions.rst:16 msgid ":func:`ascii`" msgstr ":func:`ascii`" -#: ../Doc/library/functions.rst:16 +#: library/functions.rst:16 msgid ":func:`divmod`" msgstr ":func:`divmod`" -#: ../Doc/library/functions.rst:16 +#: library/functions.rst:16 msgid ":func:`id`" msgstr ":func:`id`" -#: ../Doc/library/functions.rst:16 +#: library/functions.rst:16 msgid ":func:`object`" msgstr ":func:`object`" -#: ../Doc/library/functions.rst:16 +#: library/functions.rst:16 msgid ":func:`sorted`" msgstr ":func:`sorted`" -#: ../Doc/library/functions.rst:17 +#: library/functions.rst:17 msgid ":func:`bin`" msgstr ":func:`bin`" -#: ../Doc/library/functions.rst:17 +#: library/functions.rst:17 msgid ":func:`enumerate`" msgstr ":func:`enumerate`" -#: ../Doc/library/functions.rst:17 +#: library/functions.rst:17 msgid ":func:`input`" msgstr ":func:`input`" -#: ../Doc/library/functions.rst:17 +#: library/functions.rst:17 msgid ":func:`oct`" msgstr ":func:`oct`" -#: ../Doc/library/functions.rst:17 +#: library/functions.rst:17 msgid ":func:`staticmethod`" msgstr ":func:`staticmethod`" -#: ../Doc/library/functions.rst:18 +#: library/functions.rst:18 msgid ":func:`bool`" msgstr ":func:`bool`" -#: ../Doc/library/functions.rst:18 +#: library/functions.rst:18 msgid ":func:`eval`" msgstr ":func:`eval`" -#: ../Doc/library/functions.rst:18 +#: library/functions.rst:18 msgid ":func:`int`" msgstr ":func:`int`" -#: ../Doc/library/functions.rst:18 +#: library/functions.rst:18 msgid ":func:`open`" msgstr ":func:`open`" -#: ../Doc/library/functions.rst:18 +#: library/functions.rst:18 msgid "|func-str|_" msgstr "|func-str|_" -#: ../Doc/library/functions.rst:19 +#: library/functions.rst:19 msgid ":func:`breakpoint`" msgstr ":func:`breakpoint`" -#: ../Doc/library/functions.rst:19 +#: library/functions.rst:19 msgid ":func:`exec`" msgstr ":func:`exec`" -#: ../Doc/library/functions.rst:19 +#: library/functions.rst:19 msgid ":func:`isinstance`" msgstr ":func:`isinstance`" -#: ../Doc/library/functions.rst:19 +#: library/functions.rst:19 msgid ":func:`ord`" msgstr ":func:`ord`" -#: ../Doc/library/functions.rst:19 +#: library/functions.rst:19 msgid ":func:`sum`" msgstr ":func:`sum`" -#: ../Doc/library/functions.rst:20 +#: library/functions.rst:20 msgid "|func-bytearray|_" msgstr "|func-bytearray|_" -#: ../Doc/library/functions.rst:20 +#: library/functions.rst:20 msgid ":func:`filter`" msgstr ":func:`filter`" -#: ../Doc/library/functions.rst:20 +#: library/functions.rst:20 msgid ":func:`issubclass`" msgstr ":func:`issubclass`" -#: ../Doc/library/functions.rst:20 +#: library/functions.rst:20 msgid ":func:`pow`" msgstr ":func:`pow`" -#: ../Doc/library/functions.rst:20 +#: library/functions.rst:20 msgid ":func:`super`" msgstr ":func:`super`" -#: ../Doc/library/functions.rst:21 +#: library/functions.rst:21 msgid "|func-bytes|_" msgstr "|func-bytes|_" -#: ../Doc/library/functions.rst:21 +#: library/functions.rst:21 msgid ":func:`float`" msgstr ":func:`float`" -#: ../Doc/library/functions.rst:21 +#: library/functions.rst:21 msgid ":func:`iter`" msgstr ":func:`iter`" -#: ../Doc/library/functions.rst:21 +#: library/functions.rst:21 msgid ":func:`print`" msgstr ":func:`print`" -#: ../Doc/library/functions.rst:21 +#: library/functions.rst:21 msgid "|func-tuple|_" msgstr "|func-tuple|_" -#: ../Doc/library/functions.rst:22 +#: library/functions.rst:22 msgid ":func:`callable`" msgstr ":func:`callable`" -#: ../Doc/library/functions.rst:22 +#: library/functions.rst:22 msgid ":func:`format`" msgstr ":func:`format`" -#: ../Doc/library/functions.rst:22 +#: library/functions.rst:22 msgid ":func:`len`" msgstr ":func:`len`" -#: ../Doc/library/functions.rst:22 +#: library/functions.rst:22 msgid ":func:`property`" msgstr ":func:`property`" -#: ../Doc/library/functions.rst:22 +#: library/functions.rst:22 msgid ":func:`type`" msgstr ":func:`type`" -#: ../Doc/library/functions.rst:23 +#: library/functions.rst:23 msgid ":func:`chr`" msgstr ":func:`chr`" -#: ../Doc/library/functions.rst:23 +#: library/functions.rst:23 msgid "|func-frozenset|_" msgstr "|func-frozenset|_" -#: ../Doc/library/functions.rst:23 +#: library/functions.rst:23 msgid "|func-list|_" msgstr "|func-list|_" -#: ../Doc/library/functions.rst:23 +#: library/functions.rst:23 msgid "|func-range|_" msgstr "|func-range|_" -#: ../Doc/library/functions.rst:23 +#: library/functions.rst:23 msgid ":func:`vars`" msgstr ":func:`vars`" -#: ../Doc/library/functions.rst:24 +#: library/functions.rst:24 msgid ":func:`classmethod`" msgstr ":func:`classmethod`" -#: ../Doc/library/functions.rst:24 +#: library/functions.rst:24 msgid ":func:`getattr`" msgstr ":func:`getattr`" -#: ../Doc/library/functions.rst:24 +#: library/functions.rst:24 msgid ":func:`locals`" msgstr ":func:`locals`" -#: ../Doc/library/functions.rst:24 +#: library/functions.rst:24 msgid ":func:`repr`" msgstr ":func:`repr`" -#: ../Doc/library/functions.rst:24 +#: library/functions.rst:24 msgid ":func:`zip`" msgstr ":func:`zip`" -#: ../Doc/library/functions.rst:25 +#: library/functions.rst:25 msgid ":func:`compile`" msgstr ":func:`compile`" -#: ../Doc/library/functions.rst:25 +#: library/functions.rst:25 msgid ":func:`globals`" msgstr ":func:`globals`" -#: ../Doc/library/functions.rst:25 +#: library/functions.rst:25 msgid ":func:`map`" msgstr ":func:`map`" -#: ../Doc/library/functions.rst:25 +#: library/functions.rst:25 msgid ":func:`reversed`" msgstr ":func:`reversed`" -#: ../Doc/library/functions.rst:25 +#: library/functions.rst:25 msgid ":func:`__import__`" msgstr ":func:`__import__`" -#: ../Doc/library/functions.rst:26 +#: library/functions.rst:26 msgid ":func:`complex`" msgstr ":func:`complex`" -#: ../Doc/library/functions.rst:26 +#: library/functions.rst:26 msgid ":func:`hasattr`" msgstr ":func:`hasattr`" -#: ../Doc/library/functions.rst:26 +#: library/functions.rst:26 msgid ":func:`max`" msgstr ":func:`max`" -#: ../Doc/library/functions.rst:26 +#: library/functions.rst:26 msgid ":func:`round`" msgstr ":func:`round`" -#: ../Doc/library/functions.rst:45 -#, fuzzy +#: library/functions.rst:45 msgid "" "Return the absolute value of a number. The argument may be an integer or a " "floating point number. If the argument is a complex number, its magnitude " "is returned. If *x* defines :meth:`__abs__`, ``abs(x)`` returns ``x." "__abs__()``." msgstr "" -"Donne la valeur absolue d'un nombre. L'argument peut être un nombre entier " +"Renvoie la valeur absolue d'un nombre. L'argument peut être un nombre entier " "ou un nombre à virgule flottante. Si l'argument est un nombre complexe, son " -"`module `_ est " -"donné." +"module est renvoyé. Si *x* définit :meth:`__abs__`, ``abs(x)`` renvoie ``x." +"__abs__()``." -#: ../Doc/library/functions.rst:53 +#: library/functions.rst:53 msgid "" "Return ``True`` if all elements of the *iterable* are true (or if the " "iterable is empty). Equivalent to::" msgstr "" -"Donne ``True`` si tous les éléments de *iterable* sont vrais (ou s'il est " +"Renvoie ``True`` si tous les éléments de *iterable* sont vrais (ou s'il est " "vide), équivaut à ::" -#: ../Doc/library/functions.rst:65 +#: library/functions.rst:65 msgid "" "Return ``True`` if any element of the *iterable* is true. If the iterable " "is empty, return ``False``. Equivalent to::" msgstr "" -"Donne ``True`` si au moins un élément de *iterable* est vrai. Faux est aussi " -"donné dans le cas où *iterable* est vide, équivaut à ::" +"Renvoie ``True`` si au moins un élément de *iterable* est vrai. Faux est " +"renvoyé dans le cas où *iterable* est vide, équivaut à ::" -#: ../Doc/library/functions.rst:77 +#: library/functions.rst:77 msgid "" "As :func:`repr`, return a string containing a printable representation of an " "object, but escape the non-ASCII characters in the string returned by :func:" "`repr` using ``\\x``, ``\\u`` or ``\\U`` escapes. This generates a string " "similar to that returned by :func:`repr` in Python 2." msgstr "" -"Donne, tout comme :func:`repr`, une chaîne contenant une représentation " -"affichable d'un objet, en transformant les caractères non ASCII donnés par :" -"func:`repr` en utilisant des séquences d'échappement ``\\x``, ``\\u`` ou ``" -"\\U``. Cela génère une chaîne similaire à ce que renvoie :func:`repr` dans " -"Python 2." +"Renvoie, tout comme :func:`repr`, une chaîne contenant une représentation " +"affichable d'un objet, en transformant les caractères non ASCII renvoyés " +"par :func:`repr` en utilisant des séquences d'échappement ``\\x``, ``\\u`` " +"ou ``\\U``. Cela génère une chaîne similaire à ce que renvoie :func:`repr` " +"dans Python 2." -#: ../Doc/library/functions.rst:85 +#: library/functions.rst:85 msgid "" "Convert an integer number to a binary string prefixed with \"0b\". The " "result is a valid Python expression. If *x* is not a Python :class:`int` " @@ -355,21 +355,20 @@ msgstr "" "Convertit un nombre entier en binaire dans une chaîne avec le préfixe " "``0b``. Le résultat est une expression Python valide. Si *x* n'est pas un :" "class:`int`, il doit définir une méthode :meth:`__index__` donnant un nombre " -"entier, voici quelques exemples :" +"entier, voici quelques exemples :" -#: ../Doc/library/functions.rst:95 +#: library/functions.rst:95 msgid "" "If prefix \"0b\" is desired or not, you can use either of the following ways." msgstr "" "Que le préfixe ``0b`` soit souhaité ou non, vous pouvez utiliser les moyens " "suivants." -#: ../Doc/library/functions.rst:102 ../Doc/library/functions.rst:750 -#: ../Doc/library/functions.rst:1030 +#: library/functions.rst:751 library/functions.rst:1041 msgid "See also :func:`format` for more information." msgstr "Voir aussi :func:`format` pour plus d'information." -#: ../Doc/library/functions.rst:107 +#: library/functions.rst:107 msgid "" "Return a Boolean value, i.e. one of ``True`` or ``False``. *x* is converted " "using the standard :ref:`truth testing procedure `. If *x* is false " @@ -378,20 +377,19 @@ msgid "" "It cannot be subclassed further. Its only instances are ``False`` and " "``True`` (see :ref:`bltin-boolean-values`)." msgstr "" -"Donne une valeur booléenne, c'est à dire soit ``True``, soit ``False``. *x* " -"est converti en utilisant la :ref:`procédure standard d'évaluation de valeur " -"de vérité`. Si *x* est faux, ou omis, elle donne ``False``, sinon, " -"elle donne ``True``. La classe :class:`bool` hérite de la classe :class:" -"`int` (voir :ref:`typesnumeric`). Il n'est pas possible d'en hériter. Ses " -"seules instances sont ``False`` et ``True`` (voir :ref:`bltin-boolean-" +"Renvoie une valeur booléenne, c'est-à-dire soit ``True``, soit ``False``. " +"*x* est converti en utilisant la :ref:`procédure standard d'évaluation de " +"valeur de vérité`. Si *x* est faux, ou omis, elle renvoie ``False``, " +"sinon, elle renvoie ``True``. La classe :class:`bool` hérite de la classe :" +"class:`int` (voir :ref:`typesnumeric`). Il n'est pas possible d'en hériter. " +"Ses seules instances sont ``False`` et ``True`` (voir :ref:`bltin-boolean-" "values`)." -#: ../Doc/library/functions.rst:116 ../Doc/library/functions.rst:625 -#: ../Doc/library/functions.rst:832 +#: library/functions.rst:626 library/functions.rst:835 msgid "*x* is now a positional-only parameter." msgstr "*x* est désormais un argument exclusivement optionnel." -#: ../Doc/library/functions.rst:121 +#: library/functions.rst:121 msgid "" "This function drops you into the debugger at the call site. Specifically, " "it calls :func:`sys.breakpointhook`, passing ``args`` and ``kws`` straight " @@ -403,43 +401,45 @@ msgid "" "you to drop into the debugger of choice." msgstr "" "Cette fonction vous place dans le débogueur lorsqu'elle est appelée. Plus " -"précisément, elle appelle :func:`sys.breakpointhook`, en lui passant les " -"arguments ``args`` et ``kws``. Par défaut, ``sys.breakpointhook()`` " -"appelle :func:`pdb.set_trace()` qui n'attend aucun argument. Dans ce cas, " -"c'est purement une fonction de commodité donc vous n'avez pas à importer " +"précisément, elle appelle :func:`sys.breakpointhook`, en lui passant les " +"arguments ``args`` et ``kws``. Par défaut, ``sys.breakpointhook()`` appelle :" +"func:`pdb.set_trace()` qui n'attend aucun argument. Dans ce cas, c'est " +"purement une fonction de commodité donc vous n'avez pas à importer " "explicitement :mod:`pdb` ou à taper plus de code pour entrer dans le " -"débogueur. Cependant, :func:`sys.breakpointhook` peut-être paramétré pour " +"débogueur. Cependant, :func:`sys.breakpointhook` peut-être paramétré pour " "une autre fonction et :func:`breakpoint` l'appellera automatiquement, vous " "permettant ainsi de basculer dans le débogueur de votre choix." -#: ../Doc/library/functions.rst:132 +#: library/functions.rst:132 msgid "" "Raises an :ref:`auditing event ` ``builtins.breakpoint`` with " "argument ``breakpointhook``." msgstr "" +"Lève un :ref:`auditing event ` ``builtins.breakpoint`` avec " +"l'argument ``breakpointhook``." -#: ../Doc/library/functions.rst:139 +#: library/functions.rst:139 msgid "" "Return a new array of bytes. The :class:`bytearray` class is a mutable " "sequence of integers in the range 0 <= x < 256. It has most of the usual " "methods of mutable sequences, described in :ref:`typesseq-mutable`, as well " "as most methods that the :class:`bytes` type has, see :ref:`bytes-methods`." msgstr "" -"Donne un nouveau tableau d'octets. La classe :class:`bytearray` est une " -"séquence muable de nombre entiers dans l'intervalle 0 <= x < 256. Il possède " -"la plupart des méthodes des séquences variables, décrites dans :ref:" +"Renvoie un nouveau tableau d'octets. La classe :class:`bytearray` est une " +"séquence muable de nombres entiers dans l'intervalle 0 <= x < 256. Il " +"possède la plupart des méthodes des séquences variables, décrites dans :ref:" "`typesseq-mutable`, ainsi que la plupart des méthodes de la classe :class:" "`bytes`, voir :ref:`bytes-methods`." -#: ../Doc/library/functions.rst:144 +#: library/functions.rst:144 msgid "" "The optional *source* parameter can be used to initialize the array in a few " "different ways:" msgstr "" "Le paramètre optionnel *source* peut être utilisé pour initialiser l'*array* " -"de quelques manières différentes :" +"de quelques manières différentes :" -#: ../Doc/library/functions.rst:147 +#: library/functions.rst:147 msgid "" "If it is a *string*, you must also give the *encoding* (and optionally, " "*errors*) parameters; :func:`bytearray` then converts the string to bytes " @@ -449,7 +449,7 @@ msgstr "" "l'encodage (et éventuellement *errors*). La fonction :func:`bytearray` " "convertit ensuite la chaîne en *bytes* via la méthode :meth:`str.encode`." -#: ../Doc/library/functions.rst:151 +#: library/functions.rst:151 msgid "" "If it is an *integer*, the array will have that size and will be initialized " "with null bytes." @@ -457,15 +457,16 @@ msgstr "" "Si c'est un *entier*, l'*array* aura cette taille et sera initialisé de " "*null bytes*." -#: ../Doc/library/functions.rst:154 +#: library/functions.rst:154 msgid "" -"If it is an object conforming to the *buffer* interface, a read-only buffer " -"of the object will be used to initialize the bytes array." +"If it is an object conforming to the :ref:`buffer interface " +"`, a read-only buffer of the object will be used to " +"initialize the bytes array." msgstr "" -"Si c'est un objet conforme à l'interface *buffer*, un *buffer* en lecture " -"seule de l'objet sera utilisé pour initialiser l'*array*." +"si c'est un objet conforme à :ref:`l'interface tampon `, un " +"tampon en lecture seule de l'objet est utilisé pour initialiser le tableau ;" -#: ../Doc/library/functions.rst:157 +#: library/functions.rst:157 msgid "" "If it is an *iterable*, it must be an iterable of integers in the range ``0 " "<= x < 256``, which are used as the initial contents of the array." @@ -474,46 +475,45 @@ msgstr "" "l'intervalle ``0 <= x < 256``, qui seront utilisés pour initialiser le " "contenu de l'*array*." -#: ../Doc/library/functions.rst:160 +#: library/functions.rst:160 msgid "Without an argument, an array of size 0 is created." msgstr "Sans argument, un *array* de taille vide est crée." -#: ../Doc/library/functions.rst:162 +#: library/functions.rst:162 msgid "See also :ref:`binaryseq` and :ref:`typebytearray`." msgstr "Voir :ref:`binaryseq` et :ref:`typebytearray`." -#: ../Doc/library/functions.rst:169 +#: library/functions.rst:169 msgid "" "Return a new \"bytes\" object, which is an immutable sequence of integers in " "the range ``0 <= x < 256``. :class:`bytes` is an immutable version of :" "class:`bytearray` -- it has the same non-mutating methods and the same " "indexing and slicing behavior." msgstr "" -"Donne un nouvel objet *bytes*, qui est une séquence immuable de nombre " +"Renvoie un nouvel objet *bytes*, qui est une séquence immuable de nombre " "entiers dans l'intervalle ``0 <= x <= 256``. Les :class:`bytes` est une " "version immuable de :class:`bytearray` -- avec les mêmes méthodes d'accès, " "et le même comportement lors de l'indexation ou la découpe." -#: ../Doc/library/functions.rst:174 +#: library/functions.rst:174 msgid "" "Accordingly, constructor arguments are interpreted as for :func:`bytearray`." msgstr "" "En conséquence, les arguments du constructeur sont les mêmes que pour :func:" "`bytearray`." -#: ../Doc/library/functions.rst:176 +#: library/functions.rst:176 msgid "Bytes objects can also be created with literals, see :ref:`strings`." msgstr "" "Les objets *bytes* peuvent aussi être créés à partir de littéraux, voir :ref:" "`strings`." -#: ../Doc/library/functions.rst:178 +#: library/functions.rst:178 msgid "See also :ref:`binaryseq`, :ref:`typebytes`, and :ref:`bytes-methods`." msgstr "" "Voir aussi :ref:`binaryseq`, :ref:`typebytes`, et :ref:`bytes-methods`." -#: ../Doc/library/functions.rst:183 -#, fuzzy +#: library/functions.rst:183 msgid "" "Return :const:`True` if the *object* argument appears callable, :const:" "`False` if not. If this returns ``True``, it is still possible that a call " @@ -521,22 +521,22 @@ msgid "" "that classes are callable (calling a class returns a new instance); " "instances are callable if their class has a :meth:`__call__` method." msgstr "" -"Donne :const:`True` si l'argument *object* semble être appelable, sinon :" -"const:`False`. Lorsqu'elle donne vrai, il reste une éventualité pour qu'un " -"appel échoue, cependant, lorsqu'elle donne faux, il ne sera jamais possible " -"d'appeler *object*. Notez que les classes sont appelables (appeler une " -"classe donne une nouvelle instance). Les instances sont appelables si leur " -"classe définit une méthode :meth:`__call__`." +"Renvoie :const:`True` si l'argument *object* semble être appelable, sinon :" +"const:`False`. Lorsqu'elle renvoie ``True``, il est toujours possible qu'un " +"appel échoue, cependant, lorsqu'elle renvoie ``False``, il ne sera jamais " +"possible d'appeler *object*. Notez que les classes sont appelables (appeler " +"une classe donne une nouvelle instance). Les instances sont appelables si " +"leur classe définit une méthode :meth:`__call__`." -#: ../Doc/library/functions.rst:189 +#: library/functions.rst:189 msgid "" "This function was first removed in Python 3.0 and then brought back in " "Python 3.2." msgstr "" -"Cette fonction à d'abord été supprimée avec Python 3.0 puis elle à été " +"Cette fonction a d'abord été supprimée avec Python 3.0 puis elle a été " "remise dans Python 3.2." -#: ../Doc/library/functions.rst:196 +#: library/functions.rst:196 msgid "" "Return the string representing a character whose Unicode code point is the " "integer *i*. For example, ``chr(97)`` returns the string ``'a'``, while " @@ -547,7 +547,7 @@ msgstr "" "de caractères ``'a'``, tandis que ``chr(8364)`` renvoie ``'€'``. Il s'agit " "de l'inverse de :func:`ord`." -#: ../Doc/library/functions.rst:200 +#: library/functions.rst:200 msgid "" "The valid range for the argument is from 0 through 1,114,111 (0x10FFFF in " "base 16). :exc:`ValueError` will be raised if *i* is outside that range." @@ -556,11 +556,11 @@ msgstr "" "(``0x10FFFF`` en base 16). Une exception :exc:`ValueError` sera levée si *i* " "est en dehors de l'intervalle." -#: ../Doc/library/functions.rst:206 +#: library/functions.rst:206 msgid "Transform a method into a class method." msgstr "Transforme une méthode en méthode de classe." -#: ../Doc/library/functions.rst:208 +#: library/functions.rst:208 msgid "" "A class method receives the class as implicit first argument, just like an " "instance method receives the instance. To declare a class method, use this " @@ -570,15 +570,15 @@ msgstr "" "tout comme une méthode d'instance reçoit l'instance. Voici comment déclarer " "une méthode de classe ::" -#: ../Doc/library/functions.rst:216 +#: library/functions.rst:216 msgid "" "The ``@classmethod`` form is a function :term:`decorator` -- see :ref:" "`function` for details." msgstr "" -"La forme ``@classmethod`` est un :term:`decorator` de fonction — consultez :" -"ref:`function` pour plus de détails." +"La forme ``@classmethod`` est un :term:`décorateur ` de fonction " +"— consultez :ref:`function` pour plus de détails." -#: ../Doc/library/functions.rst:219 +#: library/functions.rst:219 msgid "" "A class method can be called either on the class (such as ``C.f()``) or on " "an instance (such as ``C().f()``). The instance is ignored except for its " @@ -590,21 +590,21 @@ msgstr "" "sa classe. Si la méthode est appelée sur une instance de classe fille, c'est " "la classe fille qui sera donnée en premier argument implicite." -#: ../Doc/library/functions.rst:224 +#: library/functions.rst:224 msgid "" "Class methods are different than C++ or Java static methods. If you want " "those, see :func:`staticmethod`." msgstr "" "Les méthodes de classe sont différentes des méthodes statiques du C++ ou du " -"Java. Si c'est elles sont vous avez besoin, regardez du côté de :func:" +"Java. Si ce sont elles dont vous avez besoin, regardez du côté de :func:" "`staticmethod`." -#: ../Doc/library/functions.rst:227 +#: library/functions.rst:227 msgid "For more information on class methods, see :ref:`types`." msgstr "" "Pour plus d'informations sur les méthodes de classe, consultez :ref:`types`." -#: ../Doc/library/functions.rst:232 +#: library/functions.rst:232 msgid "" "Compile the *source* into a code or AST object. Code objects can be " "executed by :func:`exec` or :func:`eval`. *source* can either be a normal " @@ -616,17 +616,17 @@ msgstr "" "chaîne, un objet *bytes*, ou un objet AST. Consultez la documentation du " "module :mod:`ast` pour des informations sur la manipulation d'objets AST." -#: ../Doc/library/functions.rst:237 +#: library/functions.rst:237 msgid "" "The *filename* argument should give the file from which the code was read; " "pass some recognizable value if it wasn't read from a file (``''`` " "is commonly used)." msgstr "" -"L'argument *filename* doit nommer le fichier duquel le code à été lu. Donnez " +"L'argument *filename* doit nommer le fichier duquel le code a été lu. Donnez " "quelque chose de reconnaissable lorsqu'il n'a pas été lu depuis un fichier " "(typiquement ``\"\"``)." -#: ../Doc/library/functions.rst:241 +#: library/functions.rst:241 msgid "" "The *mode* argument specifies what kind of code must be compiled; it can be " "``'exec'`` if *source* consists of a sequence of statements, ``'eval'`` if " @@ -634,13 +634,13 @@ msgid "" "single interactive statement (in the latter case, expression statements that " "evaluate to something other than ``None`` will be printed)." msgstr "" -"L'argument *mode* indique quel type de code doit être compilé : ``'exec'`` " +"L'argument *mode* indique quel type de code doit être compilé : ``'exec'`` " "si source est une suite d'instructions, ``'eval'`` pour une seule " -"expression, ou ``'single'`` si il ne contient qu'une instruction interactive " +"expression, ou ``'single'`` s'il ne contient qu'une instruction interactive " "(dans ce dernier cas, les résultats d'expressions donnant autre chose que " "``None`` seront affichés)." -#: ../Doc/library/functions.rst:247 +#: library/functions.rst:247 msgid "" "The optional arguments *flags* and *dont_inherit* control which :ref:`future " "statements ` affect the compilation of *source*. If neither is " @@ -662,7 +662,7 @@ msgstr "" "un entier différent de zéro, *flags* est utilisé seul -- les instructions " "futures déclarées autour de l'appel à *compile* sont ignorées." -#: ../Doc/library/functions.rst:257 +#: library/functions.rst:257 msgid "" "Future statements are specified by bits which can be bitwise ORed together " "to specify multiple statements. The bitfield required to specify a given " @@ -676,7 +676,7 @@ msgstr "" "l'attribut :attr:`~__future__._Feature.compiler_flag` de la classe :class:" "`~__future__.Feature` du module :mod:`__future__`." -#: ../Doc/library/functions.rst:262 +#: library/functions.rst:262 msgid "" "The optional argument *flags* also controls whether the compiled source is " "allowed to contain top-level ``await``, ``async for`` and ``async with``. " @@ -684,8 +684,13 @@ msgid "" "object has ``CO_COROUTINE`` set in ``co_code``, and can be interactively " "executed via ``await eval(code_object)``." msgstr "" +"L'argument optionnel *flags* contrôle également si la source compilée est " +"autorisée à contenir des ``await``, des ``async for`` et des ``async with`` " +"de haut niveau. Lorsque le bit ``ast.PyCF_ALLOW_TOP_LEVEL_AWAIT`` est " +"activé, l'objet code renvoyé a ``CO_COROUTINE`` activé dans ``co_code``, et " +"peut être exécuté de manière interactive via ``await eval(code_object)``." -#: ../Doc/library/functions.rst:268 +#: library/functions.rst:268 msgid "" "The argument *optimize* specifies the optimization level of the compiler; " "the default value of ``-1`` selects the optimization level of the " @@ -695,12 +700,12 @@ msgid "" msgstr "" "L'argument *optimize* indique le niveau d'optimisation du compilateur. La " "valeur par défaut est ``-1`` qui prend le niveau d'optimisation de " -"l'interpréteur tel que reçu via l'option :option:`-O`. Les niveau explicites " -"sont : ``0`` (pas d'optimisation, ``__debug__`` est ``True``), ``1`` (les " -"``assert`` sont supprimés, ``__debug__`` est ``False``) ou ``2`` (les " -"*docstrings* sont également supprimés)." +"l'interpréteur tel que reçu via l'option :option:`-O`. Les niveaux " +"explicites sont : ``0`` (pas d'optimisation, ``__debug__`` est ``True``), " +"``1`` (les ``assert`` sont supprimés, ``__debug__`` est ``False``) ou ``2`` " +"(les *docstrings* sont également supprimés)." -#: ../Doc/library/functions.rst:274 +#: library/functions.rst:274 msgid "" "This function raises :exc:`SyntaxError` if the compiled source is invalid, " "and :exc:`ValueError` if the source contains null bytes." @@ -708,7 +713,7 @@ msgstr "" "Cette fonction lève une :exc:`SyntaxError` si la source n'est pas valide, " "et :exc:`ValueError` si la source contient des octets *null*." -#: ../Doc/library/functions.rst:277 +#: library/functions.rst:277 msgid "" "If you want to parse Python code into its AST representation, see :func:`ast." "parse`." @@ -716,20 +721,26 @@ msgstr "" "Si vous voulez transformer du code Python en sa représentation AST, voyez :" "func:`ast.parse`." -#: ../Doc/library/functions.rst:None +#: library/functions.rst:None +#, fuzzy msgid "" "Raises an :ref:`auditing event ` ``compile`` with arguments " "``source``, ``filename``." msgstr "" +"Lève un :ref:`évènement d'audit ` ``compile`` avec les arguments " +"``source`` et ``filename``." -#: ../Doc/library/functions.rst:282 +#: library/functions.rst:282 msgid "" "Raises an :ref:`auditing event ` ``compile`` with arguments " "``source`` and ``filename``. This event may also be raised by implicit " "compilation." msgstr "" +"Lève un :ref:`auditing event ` ``compile`` avec les arguments " +"``source`` et ``filename``. Cet événement peut également être levé par une " +"compilation implicite." -#: ../Doc/library/functions.rst:288 +#: library/functions.rst:288 msgid "" "When compiling a string with multi-line code in ``'single'`` or ``'eval'`` " "mode, input must be terminated by at least one newline character. This is " @@ -741,7 +752,7 @@ msgstr "" "retour à la ligne. Cela permet de faciliter la distinction entre les " "instructions complètes et incomplètes dans le module :mod:`code`." -#: ../Doc/library/functions.rst:295 +#: library/functions.rst:295 msgid "" "It is possible to crash the Python interpreter with a sufficiently large/" "complex string when compiling to an AST object due to stack depth " @@ -751,7 +762,7 @@ msgstr "" "suffisamment grandes ou complexes lors de la compilation d'un objet AST à " "cause de la limitation de la profondeur de la pile d'appels." -#: ../Doc/library/functions.rst:299 +#: library/functions.rst:299 msgid "" "Allowed use of Windows and Mac newlines. Also input in ``'exec'`` mode does " "not have to end in a newline anymore. Added the *optimize* parameter." @@ -760,7 +771,7 @@ msgstr "" "chaîne donnée à ``'exec'`` n'a plus besoin de terminer par un retour à la " "ligne. Ajout du paramètre *optimize*." -#: ../Doc/library/functions.rst:303 +#: library/functions.rst:303 msgid "" "Previously, :exc:`TypeError` was raised when null bytes were encountered in " "*source*." @@ -768,13 +779,16 @@ msgstr "" "Précédemment, l'exception :exc:`TypeError` était levée quand un caractère " "nul était rencontré dans *source*." -#: ../Doc/library/functions.rst:307 +#: library/functions.rst:307 msgid "" "``ast.PyCF_ALLOW_TOP_LEVEL_AWAIT`` can now be passed in flags to enable " "support for top-level ``await``, ``async for``, and ``async with``." msgstr "" +"``ast.PyCF_ALLOW_TOP_LEVEL_AWAIT`` peut maintenant être passée à *flags* " +"pour permettre une gestion de ``await``, ``async for``, et ``async with`` de " +"haut niveau." -#: ../Doc/library/functions.rst:314 +#: library/functions.rst:314 msgid "" "Return a complex number with the value *real* + *imag*\\*1j or convert a " "string or number to a complex number. If the first parameter is a string, " @@ -785,24 +799,29 @@ msgid "" "conversion like :class:`int` and :class:`float`. If both arguments are " "omitted, returns ``0j``." msgstr "" -"Donne un nombre complexe de valeur ``real + imag\\*1j``, ou convertit une " +"Renvoie un nombre complexe de valeur ``real + imag*1j``, ou convertit une " "chaîne ou un nombre en nombre complexe. Si le premier paramètre est une " "chaîne, il sera interprété comme un nombre complexe et la fonction doit être " -"appelée dans second paramètre. Le second paramètre ne peut jamais être une " +"appelée sans second paramètre. Le second paramètre ne peut jamais être une " "chaîne. Chaque argument peut être de n'importe quel type numérique (même " "complexe). Si *imag* est omis, sa valeur par défaut est zéro, le " "constructeur effectue alors une simple conversion numérique comme le font :" -"class:`int` ou :class:`float`. Si aucun argument n'est fourni, donne ``0j``." +"class:`int` ou :class:`float`. Si aucun argument n'est fourni, renvoie " +"``0j``." -#: ../Doc/library/functions.rst:323 +#: library/functions.rst:323 msgid "" "For a general Python object ``x``, ``complex(x)`` delegates to ``x." "__complex__()``. If ``__complex__()`` is not defined then it falls back to :" "meth:`__float__`. If ``__float__()`` is not defined then it falls back to :" "meth:`__index__`." msgstr "" +"Pour un objet Python général ``x``, ``complex(x)`` délègue à ``x." +"__complex__()``. Si ``__complex__()`` n'est pas défini, alors il délègue à :" +"meth:`__float__`. Si ``__float__()`` n'est pas défini, alors il délègue à :" +"meth:`__index__`." -#: ../Doc/library/functions.rst:330 +#: library/functions.rst:330 msgid "" "When converting from a string, the string must not contain whitespace around " "the central ``+`` or ``-`` operator. For example, ``complex('1+2j')`` is " @@ -813,24 +832,25 @@ msgstr "" "``complex('1+2j')`` est bon, mais ``complex('1 + 2j')`` lève une :exc:" "`ValueError`." -#: ../Doc/library/functions.rst:335 +#: library/functions.rst:335 msgid "The complex type is described in :ref:`typesnumeric`." msgstr "Le type complexe est décrit dans :ref:`typesnumeric`." -#: ../Doc/library/functions.rst:337 ../Doc/library/functions.rst:622 -#: ../Doc/library/functions.rst:829 +#: library/functions.rst:623 library/functions.rst:832 msgid "Grouping digits with underscores as in code literals is allowed." msgstr "" "Les chiffres peuvent être groupés avec des tirets bas comme dans les " "expressions littérales." -#: ../Doc/library/functions.rst:340 +#: library/functions.rst:340 msgid "" "Falls back to :meth:`__index__` if :meth:`__complex__` and :meth:`__float__` " "are not defined." msgstr "" +"Revient à :meth:`__index__` si :meth:`__complex__` et :meth:`__float__` ne " +"sont pas définis." -#: ../Doc/library/functions.rst:347 +#: library/functions.rst:347 msgid "" "This is a relative of :func:`setattr`. The arguments are an object and a " "string. The string must be the name of one of the object's attributes. The " @@ -842,7 +862,7 @@ msgstr "" "fonction supprime l'attribut nommé, si l'objet l'y autorise. Par exemple " "``delattr(x, 'foobar')`` est l'équivalent de ``del x.foobar``." -#: ../Doc/library/functions.rst:359 +#: library/functions.rst:359 msgid "" "Create a new dictionary. The :class:`dict` object is the dictionary class. " "See :class:`dict` and :ref:`typesmapping` for documentation about this class." @@ -851,7 +871,7 @@ msgstr "" "dictionnaire. Voir :class:`dict` et :ref:`typesmapping` pour vous documenter " "sur cette classe." -#: ../Doc/library/functions.rst:362 +#: library/functions.rst:362 msgid "" "For other containers see the built-in :class:`list`, :class:`set`, and :" "class:`tuple` classes, as well as the :mod:`collections` module." @@ -859,7 +879,7 @@ msgstr "" "Pour les autres conteneurs, voir les classes natives :class:`list`, :class:" "`set`, et :class:`typle`. ainsi que le module :mod:`collections`." -#: ../Doc/library/functions.rst:368 +#: library/functions.rst:368 msgid "" "Without arguments, return the list of names in the current local scope. " "With an argument, attempt to return a list of valid attributes for that " @@ -869,19 +889,19 @@ msgstr "" "Avec un argument, elle essaye de donner une liste d'attributs valides pour " "cet objet." -#: ../Doc/library/functions.rst:371 +#: library/functions.rst:371 msgid "" "If the object has a method named :meth:`__dir__`, this method will be called " "and must return the list of attributes. This allows objects that implement a " "custom :func:`__getattr__` or :func:`__getattribute__` function to customize " "the way :func:`dir` reports their attributes." msgstr "" -"Si l'objet à une méthode :meth:`__dir__`, elle est appelée et doit donner " +"Si l'objet a une méthode :meth:`__dir__`, elle est appelée et doit donner " "une liste d'attributs. Cela permet aux objets implémentant :func:" "`__getattr__` ou :func:`__getattribute__` de personnaliser ce que donnera :" "func:`dir`." -#: ../Doc/library/functions.rst:376 +#: library/functions.rst:376 msgid "" "If the object does not provide :meth:`__dir__`, the function tries its best " "to gather information from the object's :attr:`~object.__dict__` attribute, " @@ -895,7 +915,7 @@ msgstr "" "n'est pas nécessairement complète, et peut être inadaptée quand l'objet a " "un :func:`__getattr__` personnalisé." -#: ../Doc/library/functions.rst:381 +#: library/functions.rst:381 msgid "" "The default :func:`dir` mechanism behaves differently with different types " "of objects, as it attempts to produce the most relevant, rather than " @@ -903,9 +923,9 @@ msgid "" msgstr "" "Le mécanisme par défaut de :func:`dir` se comporte différemment avec " "différents types d'objets, car elle préfère donner une information " -"pertinente plutôt qu'exhaustive :" +"pertinente plutôt qu'exhaustive :" -#: ../Doc/library/functions.rst:385 +#: library/functions.rst:385 msgid "" "If the object is a module object, the list contains the names of the " "module's attributes." @@ -913,7 +933,7 @@ msgstr "" "Si l'objet est un module, la liste contiendra les noms des attributs du " "module." -#: ../Doc/library/functions.rst:388 +#: library/functions.rst:388 msgid "" "If the object is a type or class object, the list contains the names of its " "attributes, and recursively of the attributes of its bases." @@ -921,7 +941,7 @@ msgstr "" "Si l'objet est un type ou une classe, la liste contiendra les noms de ses " "attributs, et récursivement, des attributs de ses parents." -#: ../Doc/library/functions.rst:391 +#: library/functions.rst:391 msgid "" "Otherwise, the list contains the object's attributes' names, the names of " "its class's attributes, and recursively of the attributes of its class's " @@ -931,11 +951,11 @@ msgstr "" "attributs de la classe, et récursivement des attributs des parents de la " "classe." -#: ../Doc/library/functions.rst:395 +#: library/functions.rst:395 msgid "The resulting list is sorted alphabetically. For example:" -msgstr "La liste donnée est triée par ordre alphabétique, par exemple :" +msgstr "La liste donnée est triée par ordre alphabétique, par exemple :" -#: ../Doc/library/functions.rst:414 +#: library/functions.rst:414 msgid "" "Because :func:`dir` is supplied primarily as a convenience for use at an " "interactive prompt, it tries to supply an interesting set of names more than " @@ -949,7 +969,7 @@ msgstr "" "aussi changer d'une version à l'autre. Par exemple, les attributs de méta-" "classes ne sont pas données lorsque l'argument est une classe." -#: ../Doc/library/functions.rst:424 +#: library/functions.rst:424 msgid "" "Take two (non complex) numbers as arguments and return a pair of numbers " "consisting of their quotient and remainder when using integer division. " @@ -969,7 +989,7 @@ msgstr "" "b + a % b`` est très proche de *a*. Si ``a % b`` est différent de zéro, il a " "le même signe que *b*, et ``0 <= abs(a % b) < abs(b)``." -#: ../Doc/library/functions.rst:436 +#: library/functions.rst:436 msgid "" "Return an enumerate object. *iterable* must be a sequence, an :term:" "`iterator`, or some other object which supports iteration. The :meth:" @@ -977,28 +997,27 @@ msgid "" "returns a tuple containing a count (from *start* which defaults to 0) and " "the values obtained from iterating over *iterable*." msgstr "" -"Donne un objet énumérant. *iterable* doit être une séquence, un :term:" -"`iterator`, ou tout autre objet supportant l'itération. La méthode :meth:" -"`~iterator.__next__` de l'itérateur donné par :func:`enumerate` donne un " -"tuple contenant un compte (démarrant à *start*, 0 par défaut) et les valeurs " -"obtenues de l'itération sur *iterable*." +"Renvoie un objet énumérant. *iterable* doit être une séquence, un :term:" +"`itérateur `, ou tout autre objet supportant l'itération. La " +"méthode :meth:`~iterator.__next__` de l'itérateur donné par :func:" +"`enumerate` renvoie un n-uplet contenant un compte (démarrant à *start*, 0 " +"par défaut) et les valeurs obtenues de l'itération sur *iterable*." -#: ../Doc/library/functions.rst:448 +#: library/functions.rst:448 msgid "Equivalent to::" msgstr "Équivalent à ::" -#: ../Doc/library/functions.rst:459 +#: library/functions.rst:459 msgid "" "The arguments are a string and optional globals and locals. If provided, " "*globals* must be a dictionary. If provided, *locals* can be any mapping " "object." msgstr "" -"Les arguments sont : une chaîne, et optionnellement des locales et des " +"Les arguments sont : une chaîne, et optionnellement des locales et des " "globales. S'il est fourni, *globals* doit être un dictionnaire. S'il est " "fourni, *locals* peut être n'importe quel objet *mapping*." -#: ../Doc/library/functions.rst:463 -#, fuzzy +#: library/functions.rst:463 msgid "" "The *expression* argument is parsed and evaluated as a Python expression " "(technically speaking, a condition list) using the *globals* and *locals* " @@ -1018,23 +1037,25 @@ msgstr "" "(techniquement, une *condition list*) en utilisant les dictionnaires " "*globals* et *locals* comme espaces de nommage globaux et locaux. Si le " "dictionnaire *globals* est présent mais ne contient pas de valeur pour la " -"clé ``'__builtins__'``, une référence au dictionnaire du module :mod:" +"clé ``__builtins__``, une référence au dictionnaire du module :mod:" "`builtins` y est inséré avant qu'*expression* ne soit évalué. Cela signifie " -"qu'*expression* à normalement un accès complet à tout le module :mod:" +"qu'*expression* a normalement un accès complet à tout le module :mod:" "`builtins`, et que les environnements restreints sont propagés. Si le " "dictionnaire *locals* est omis, sa valeur par défaut est le dictionnaire " "*globals*. Si les deux dictionnaires sont omis, l'expression est exécutée " -"dans l'environnement où :func:`eval` est appelé. La valeur donnée par *eval* " -"est le résultat de l'expression évaluée. Les erreurs de syntaxe sont " -"rapportées via des exceptions. Exemple :" +"avec les dictionnaires *globals* et *locals* dans l'environnement où :func:" +"`eval` est appelée. Note, *eval()* n'a pas accès aux :term:`portées " +"imbriquées ` (non locales) dans l'environnement englobant." -#: ../Doc/library/functions.rst:477 +#: library/functions.rst:477 msgid "" "The return value is the result of the evaluated expression. Syntax errors " "are reported as exceptions. Example:" msgstr "" +"La valeur de retour est le résultat de l'expression évaluée. Les erreurs de " +"syntaxe sont signalées comme des exceptions. Exemple :" -#: ../Doc/library/functions.rst:484 +#: library/functions.rst:484 msgid "" "This function can also be used to execute arbitrary code objects (such as " "those created by :func:`compile`). In this case pass a code object instead " @@ -1043,22 +1064,22 @@ msgid "" msgstr "" "Cette fonction peut aussi être utilisée pour exécuter n'importe quel objet " "code (tel que ceux créés par :func:`compile`). Dans ce cas, donnez un objet " -"code plutôt qu'une chaîne. Si l'objet code à été compilé avec ``'exec'`` en " -"argument pour *mode*, :func:`eval` donnera ``None``." +"code plutôt qu'une chaîne. Si l'objet code a été compilé avec l'argument " +"*mode* à ``'exec'``, :func:`eval` donnera ``None``." -#: ../Doc/library/functions.rst:489 +#: library/functions.rst:489 msgid "" "Hints: dynamic execution of statements is supported by the :func:`exec` " "function. The :func:`globals` and :func:`locals` functions returns the " "current global and local dictionary, respectively, which may be useful to " "pass around for use by :func:`eval` or :func:`exec`." msgstr "" -"Conseils : L'exécution dynamique d'instructions est gérée par la fonction :" -"func:`exec`. Les fonctions :func:`globals` et :func:`locals` donnent " +"Conseils : L'exécution dynamique d'instructions est gérée par la fonction :" +"func:`exec`. Les fonctions :func:`globals` et :func:`locals` renvoient " "respectivement les dictionnaires globaux et locaux, qui peuvent être utiles " "lors de l'usage de :func:`eval` et :func:`exec`." -#: ../Doc/library/functions.rst:494 +#: library/functions.rst:494 msgid "" "See :func:`ast.literal_eval` for a function that can safely evaluate strings " "with expressions containing only literals." @@ -1067,19 +1088,25 @@ msgstr "" "peut évaluer en toute sécurité des chaînes avec des expressions ne contenant " "que des valeurs littérales." -#: ../Doc/library/functions.rst:None +#: library/functions.rst:None +#, fuzzy msgid "" "Raises an :ref:`auditing event ` ``exec`` with argument " "``code_object``." msgstr "" +"Lève un :ref:`évènement d'audit ` ``exec`` avec l'argument " +"``code_object``." -#: ../Doc/library/functions.rst:499 ../Doc/library/functions.rst:534 +#: library/functions.rst:535 msgid "" "Raises an :ref:`auditing event ` ``exec`` with the code object as " "the argument. Code compilation events may also be raised." msgstr "" +"Lève un :ref:`auditing event ` ``exec`` avec l'objet de code comme " +"argument. Les événements de compilation de code peuvent également être levés." -#: ../Doc/library/functions.rst:506 +#: library/functions.rst:506 +#, fuzzy msgid "" "This function supports dynamic execution of Python code. *object* must be " "either a string or a code object. If it is a string, the string is parsed " @@ -1087,22 +1114,22 @@ msgid "" "error occurs). [#]_ If it is a code object, it is simply executed. In all " "cases, the code that's executed is expected to be valid as file input (see " "the section \"File input\" in the Reference Manual). Be aware that the :" -"keyword:`return` and :keyword:`yield` statements may not be used outside of " -"function definitions even within the context of code passed to the :func:" -"`exec` function. The return value is ``None``." +"keyword:`nonlocal`, :keyword:`yield`, and :keyword:`return` statements may " +"not be used outside of function definitions even within the context of code " +"passed to the :func:`exec` function. The return value is ``None``." msgstr "" "Cette fonction permet l'exécution dynamique de code Python. *object* doit " "être soit une chaîne soit un objet code. Si c'est une chaîne, elle est " "d'abord analysée en une suite d'instructions Python qui sont ensuite " "exécutés (sauf erreur de syntaxe). [#]_ Si c'est un objet code, il est " -"simplement exécuté. dans tous les cas, le code fourni doit être valide selon " +"simplement exécuté. Dans tous les cas, le code fourni doit être valide selon " "les mêmes critères que s'il était un script dans un fichier (voir la section " -"\"File Input\" dans le manuel). Gardez en tête que les mots clefs :keyword:" +"\"File Input\" dans le manuel). Gardez en tête que les mots clés :keyword:" "`return` et :keyword:`yield` ne peuvent pas être utilisés en dehors d'une " -"fonction, même dans du code passé à :func:`exec`. La fonction donne ``None``." +"fonction, même dans du code passé à :func:`exec`. La fonction renvoie " +"``None``." -#: ../Doc/library/functions.rst:516 -#, fuzzy +#: library/functions.rst:517 msgid "" "In all cases, if the optional parts are omitted, the code is executed in the " "current scope. If only *globals* is provided, it must be a dictionary (and " @@ -1116,15 +1143,15 @@ msgid "" msgstr "" "Dans tous les cas, si les arguments optionnels sont omis, le code est " "exécuté dans le contexte actuel. Si seul *globals* est fourni, il doit être " -"un dictionnaire qui sera utilisé pour les globales et les locales. Si les " -"deux sont fournis, ils sont utilisés respectivement pour les variables " -"globales et locales. *locales* peut être n'importe quel objet ``mapping``. " -"Souvenez vous qu'au niveau d'un module, les dictionnaires des locales et des " -"globales ne sont qu'un. Si ``exec`` reçoit deux objets distincts dans " -"*globals* et *locals*, le code sera exécuté comme s'il était inclus dans une " -"définition de classe." +"un dictionnaire (et pas une sous-classe de dictionnaire) utilisé pour les " +"variables globales et locales. Si les deux sont fournis, ils sont utilisés " +"respectivement pour les variables globales et locales. *locales* peut être " +"n'importe quel objet de correspondance. Souvenez vous qu'au niveau d'un " +"module, les dictionnaires des locales et des globales ne sont qu'un. Si " +"``exec`` reçoit deux objets distincts dans *globals* et *locals*, le code " +"est exécuté comme s'il était inclus dans une définition de classe." -#: ../Doc/library/functions.rst:526 +#: library/functions.rst:527 msgid "" "If the *globals* dictionary does not contain a value for the key " "``__builtins__``, a reference to the dictionary of the built-in module :mod:" @@ -1132,36 +1159,36 @@ msgid "" "builtins are available to the executed code by inserting your own " "``__builtins__`` dictionary into *globals* before passing it to :func:`exec`." msgstr "" -"Si le dictionnaire *globals* ne contient pas de valeur pour la clef " +"Si le dictionnaire *globals* ne contient pas de valeur pour la clé " "``__builtins__``, une référence au dictionnaire du module :mod:`builtins` y " "est inséré. Cela vous permet de contrôler quelles fonctions natives sont " "exposées au code exécuté en insérant votre propre dictionnaire " "``__builtins__`` dans *globals* avant de le donner à :func:`exec`." -#: ../Doc/library/functions.rst:539 +#: library/functions.rst:540 msgid "" "The built-in functions :func:`globals` and :func:`locals` return the current " "global and local dictionary, respectively, which may be useful to pass " "around for use as the second and third argument to :func:`exec`." msgstr "" -"Les fonctions natives :func:`globals` et :func:`locals` donnent " +"Les fonctions natives :func:`globals` et :func:`locals` renvoient " "respectivement les dictionnaires globaux et locaux, qui peuvent être utiles " "en deuxième et troisième argument de :func:`exec`." -#: ../Doc/library/functions.rst:545 +#: library/functions.rst:546 msgid "" "The default *locals* act as described for function :func:`locals` below: " "modifications to the default *locals* dictionary should not be attempted. " "Pass an explicit *locals* dictionary if you need to see effects of the code " "on *locals* after function :func:`exec` returns." msgstr "" -"La valeur par défaut pour *locals* se comporte comme la fonction :func:" -"`locals`: Il est déconseillé de modifier le dictionnaire *locals* par " +"La valeur par défaut pour *locals* se comporte comme la fonction :func:" +"`locals` : Il est déconseillé de modifier le dictionnaire *locals* par " "défaut. Donnez un dictionnaire explicitement à *locals* si vous désirez " "observer l'effet du code sur les variables locales, après que :func:`exec` " "soit terminée." -#: ../Doc/library/functions.rst:553 +#: library/functions.rst:554 msgid "" "Construct an iterator from those elements of *iterable* for which *function* " "returns true. *iterable* may be either a sequence, a container which " @@ -1170,37 +1197,37 @@ msgid "" "removed." msgstr "" "Construit un itérateur depuis les éléments d'*iterable* pour lesquels " -"*function* donne vrai. *iterable* peut aussi bien être une séquence, un " -"conteneur qui supporte l'itération, ou un itérateur. Si *function* est " -"``None``, la fonction identité est prise, c'est à dire que tous les éléments " +"*function* renvoie ``True``. *iterable* peut aussi bien être une séquence, " +"un conteneur qui supporte l'itération, ou un itérateur. Si *function* est " +"``None``, la fonction identité est prise, c'est-à-dire que tous les éléments " "faux d'*iterable* sont supprimés." -#: ../Doc/library/functions.rst:559 +#: library/functions.rst:560 msgid "" "Note that ``filter(function, iterable)`` is equivalent to the generator " "expression ``(item for item in iterable if function(item))`` if function is " "not ``None`` and ``(item for item in iterable if item)`` if function is " "``None``." msgstr "" -"Notez que ``filter(fonction, iterable)`` est l'équivalent du générateur " -"``(item for item in iterable if fonction(item))`` si *fonction* n'est pas " +"Notez que ``filter(function, iterable)`` est l'équivalent du générateur " +"``(item for item in iterable if function(item))`` si *function* n'est pas " "``None`` et de ``(item for item in iterable if item)`` si *function* est " "``None``." -#: ../Doc/library/functions.rst:564 +#: library/functions.rst:565 msgid "" "See :func:`itertools.filterfalse` for the complementary function that " "returns elements of *iterable* for which *function* returns false." msgstr "" "Voir :func:`itertools.filterfalse` pour la fonction complémentaire qui donne " -"les éléments d'*iterable* pour lesquels *fonction* donne ``False``." +"les éléments d'*iterable* pour lesquels *function* renvoie ``False``." -#: ../Doc/library/functions.rst:574 +#: library/functions.rst:575 msgid "Return a floating point number constructed from a number or string *x*." msgstr "" -"Donne un nombre a virgule flottante depuis un nombre ou une chaîne *x*." +"Renvoie un nombre a virgule flottante depuis un nombre ou une chaîne *x*." -#: ../Doc/library/functions.rst:576 +#: library/functions.rst:577 msgid "" "If the argument is a string, it should contain a decimal number, optionally " "preceded by a sign, and optionally embedded in whitespace. The optional " @@ -1216,9 +1243,9 @@ msgstr "" "d'effet sur la valeur produite. L'argument peut aussi être une chaîne " "représentant un NaN (*Not-a-Number*), l'infini positif, ou l'infini négatif. " "Plus précisément, l'argument doit se conformer à la grammaire suivante, " -"après que les espaces en début et fin de chaîne aient été retirés :" +"après que les espaces en début et fin de chaîne aient été retirées :" -#: ../Doc/library/functions.rst:591 +#: library/functions.rst:592 msgid "" "Here ``floatnumber`` is the form of a Python floating-point literal, " "described in :ref:`floating`. Case is not significant, so, for example, " @@ -1230,7 +1257,7 @@ msgstr "" "exemple, ``\"inf\"``, ``\" Inf\"``, ``\"INFINITY\"``, et ``\" iNfiNity\"`` " "sont tous des orthographes valides pour un infini positif." -#: ../Doc/library/functions.rst:596 +#: library/functions.rst:597 msgid "" "Otherwise, if the argument is an integer or a floating point number, a " "floating point number with the same value (within Python's floating point " @@ -1243,32 +1270,33 @@ msgstr "" "dehors de l'intervalle d'un nombre a virgule flottante pour Python, :exc:" "`OverflowError` est levée." -#: ../Doc/library/functions.rst:601 -#, fuzzy +#: library/functions.rst:602 msgid "" "For a general Python object ``x``, ``float(x)`` delegates to ``x." "__float__()``. If ``__float__()`` is not defined then it falls back to :" "meth:`__index__`." msgstr "" -"Pour un objet Python ``x``, ``float(x)`` est délégué à ``x.__float__()``." +"Pour un objet Python général ``x``, ``float(x)`` est délégué à ``x." +"__float__()``. Si ``__float__()`` n'est pas défini alors il est délégué à :" +"meth:`__index__`." -#: ../Doc/library/functions.rst:605 +#: library/functions.rst:606 msgid "If no argument is given, ``0.0`` is returned." -msgstr "Dans argument, ``0.0`` est donné." +msgstr "Sans argument, ``0.0`` est renvoyé." -#: ../Doc/library/functions.rst:607 +#: library/functions.rst:608 msgid "Examples::" msgstr "Exemples ::" -#: ../Doc/library/functions.rst:620 +#: library/functions.rst:621 msgid "The float type is described in :ref:`typesnumeric`." msgstr "Le type *float* est décrit dans :ref:`typesnumeric`." -#: ../Doc/library/functions.rst:628 +#: library/functions.rst:629 msgid "Falls back to :meth:`__index__` if :meth:`__float__` is not defined." -msgstr "" +msgstr "Revient à :meth:`__index__` si :meth:`__float__` n'est pas défini." -#: ../Doc/library/functions.rst:638 +#: library/functions.rst:639 msgid "" "Convert a *value* to a \"formatted\" representation, as controlled by " "*format_spec*. The interpretation of *format_spec* will depend on the type " @@ -1278,9 +1306,9 @@ msgstr "" "Convertit une valeur en sa représentation \"formatée\", tel que décrit par " "*format_spec*. L'interprétation de *format_spec* dépend du type de la " "valeur, cependant il existe une syntaxe standard utilisée par la plupart des " -"types natifs : :ref:`formatspec`." +"types natifs : :ref:`formatspec`." -#: ../Doc/library/functions.rst:643 +#: library/functions.rst:644 msgid "" "The default *format_spec* is an empty string which usually gives the same " "effect as calling :func:`str(value) `." @@ -1288,7 +1316,7 @@ msgstr "" "Par défaut, *format_spec* est une chaîne vide qui généralement donne le même " "effet qu'appeler :func:`str(value) `." -#: ../Doc/library/functions.rst:646 +#: library/functions.rst:647 msgid "" "A call to ``format(value, format_spec)`` is translated to ``type(value)." "__format__(value, format_spec)`` which bypasses the instance dictionary when " @@ -1302,9 +1330,9 @@ msgstr "" "l'instance lors de la recherche de la méthode :meth:`__fornat__`. Une " "exception :exc:`TypeError` est levée si la recherche de la méthode atteint :" "mod:`object` et que *format_spec* n'est pas vide, ou si soit *format_spec* " -"soit la le résultat ne sont pas des chaînes." +"soit le résultat ne sont pas des chaînes." -#: ../Doc/library/functions.rst:653 +#: library/functions.rst:654 msgid "" "``object().__format__(format_spec)`` raises :exc:`TypeError` if " "*format_spec* is not an empty string." @@ -1312,17 +1340,17 @@ msgstr "" "``object().__format__(format_spec)`` lève :exc:`TypeError` si *format_spec* " "n'est pas une chaîne vide." -#: ../Doc/library/functions.rst:662 +#: library/functions.rst:663 msgid "" "Return a new :class:`frozenset` object, optionally with elements taken from " "*iterable*. ``frozenset`` is a built-in class. See :class:`frozenset` and :" "ref:`types-set` for documentation about this class." msgstr "" -"Donne un nouveau :class:`frozenset`, dont les objets sont éventuellement " +"Renvoie un nouveau :class:`frozenset`, dont les objets sont éventuellement " "tirés d'*iterable*. ``frozenset`` est une classe native. Voir :class:" -"`frozenset` et :ref:`types-set` pour leurs documentation." +"`frozenset` et :ref:`types-set` pour la documentation sur cette classe." -#: ../Doc/library/functions.rst:666 +#: library/functions.rst:667 msgid "" "For other containers see the built-in :class:`set`, :class:`list`, :class:" "`tuple`, and :class:`dict` classes, as well as the :mod:`collections` module." @@ -1331,7 +1359,7 @@ msgstr "" "`list`, :class:`tuple`, et :class:`dict`, ainsi que le module :mod:" "`collections`." -#: ../Doc/library/functions.rst:673 +#: library/functions.rst:674 msgid "" "Return the value of the named attribute of *object*. *name* must be a " "string. If the string is the name of one of the object's attributes, the " @@ -1340,51 +1368,51 @@ msgid "" "exist, *default* is returned if provided, otherwise :exc:`AttributeError` is " "raised." msgstr "" -"Donne la valeur de l'attribut nommé *name* de l'objet *object*. *name* doit " -"être une chaîne. Si la chaîne est le nom d'un des attributs de l'objet, le " -"résultat est la valeur de cet attribut. Par exemple, ``getattr(x, " +"Renvoie la valeur de l'attribut nommé *name* de l'objet *object*. *name* " +"doit être une chaîne. Si la chaîne est le nom d'un des attributs de l'objet, " +"le résultat est la valeur de cet attribut. Par exemple, ``getattr(x, " "'foobar')`` est équivalent à ``x.foobar``. Si l'attribut n'existe pas, et " "que *default* est fourni, il est renvoyé, sinon l'exception :exc:" "`AttributeError` est levée." -#: ../Doc/library/functions.rst:682 +#: library/functions.rst:683 msgid "" "Return a dictionary representing the current global symbol table. This is " "always the dictionary of the current module (inside a function or method, " "this is the module where it is defined, not the module from which it is " "called)." msgstr "" -"Donne une représentation de la table de symboles globaux sous forme d'un " +"Renvoie une représentation de la table de symboles globaux sous forme d'un " "dictionnaire. C'est toujours le dictionnaire du module courant (dans une " "fonction ou méthode, c'est le module où elle est définie, et non le module " "d'où elle est appelée)." -#: ../Doc/library/functions.rst:689 +#: library/functions.rst:690 msgid "" "The arguments are an object and a string. The result is ``True`` if the " "string is the name of one of the object's attributes, ``False`` if not. " "(This is implemented by calling ``getattr(object, name)`` and seeing whether " "it raises an :exc:`AttributeError` or not.)" msgstr "" -"Les arguments sont : un objet et une chaîne. Le résultat est ``True`` si la " +"Les arguments sont : un objet et une chaîne. Le résultat est ``True`` si la " "chaîne est le nom d'un des attributs de l'objet, sinon ``False``. " "(L'implémentation appelle ``getattr(object, name)`` et regarde si une " -"exception :exc:`AttributeError` à été levée.)" +"exception :exc:`AttributeError` a été levée.)" -#: ../Doc/library/functions.rst:697 +#: library/functions.rst:698 msgid "" "Return the hash value of the object (if it has one). Hash values are " "integers. They are used to quickly compare dictionary keys during a " "dictionary lookup. Numeric values that compare equal have the same hash " "value (even if they are of different types, as is the case for 1 and 1.0)." msgstr "" -"Donne la valeur de *hash* d'un objet (s'il en a une). Les valeurs de *hash* " -"sont des entiers. Elles sont utilisées pour comparer rapidement des clefs de " -"dictionnaire lors de leur recherche. Les valeurs numériques égales ont le " -"même *hash* (même si leurs types sont différents, comme pour ``1`` et " +"Renvoie la valeur de *hash* d'un objet (s'il en a une). Les valeurs de " +"*hash* sont des entiers. Elles sont utilisées pour comparer rapidement des " +"clés de dictionnaire lors de leur recherche. Les valeurs numériques égales " +"ont le même *hash* (même si leurs types sont différents, comme pour ``1`` et " "``1.0``)." -#: ../Doc/library/functions.rst:704 +#: library/functions.rst:705 msgid "" "For objects with custom :meth:`__hash__` methods, note that :func:`hash` " "truncates the return value based on the bit width of the host machine. See :" @@ -1394,7 +1422,7 @@ msgstr "" "func:`hash` tronque la valeur donnée en fonction du nombre de bits de la " "machine hôte. Voir :meth:`__hash__` pour plus d'informations." -#: ../Doc/library/functions.rst:710 +#: library/functions.rst:711 msgid "" "Invoke the built-in help system. (This function is intended for interactive " "use.) If no argument is given, the interactive help system starts on the " @@ -1404,13 +1432,14 @@ msgid "" "argument is any other kind of object, a help page on the object is generated." msgstr "" "Invoque le système d'aide natif. (Cette fonction est destinée à l'usage en " -"mode interactif.) Soi aucun argument n'est fourni, le système d'aide démarre " -"dans l'interpréteur. Si l'argument est une chaîne, un module, une fonction, " -"une classe, une méthode, un mot clef, ou un sujet de documentation pourtant " -"ce nom est recherché, et une page d'aide est affichée sur la console. Si " -"l'argument est d'un autre type, une page d'aide sur cet objet est générée." +"mode interactif.) Si aucun argument n'est fourni, le système d'aide démarre " +"dans l'interpréteur. Si l'argument est une chaîne, celle-ci est recherchée " +"comme le nom d'un module, d'une fonction, d'une classe, d'une méthode, d'un " +"mot clé, ou d'un sujet de documentation, et une page d'aide est affichée sur " +"la console. Si l'argument est d'un autre type, une page d'aide sur cet objet " +"est générée." -#: ../Doc/library/functions.rst:717 +#: library/functions.rst:718 msgid "" "Note that if a slash(/) appears in the parameter list of a function, when " "invoking :func:`help`, it means that the parameters prior to the slash are " @@ -1423,22 +1452,22 @@ msgstr "" "plus d'informations, voir :ref:`La FAQ sur les arguments positionels `." -#: ../Doc/library/functions.rst:722 +#: library/functions.rst:723 msgid "" "This function is added to the built-in namespace by the :mod:`site` module." msgstr "" "Cette fonction est ajoutée à l'espace de nommage natif par le module :mod:" "`site`." -#: ../Doc/library/functions.rst:724 +#: library/functions.rst:725 msgid "" "Changes to :mod:`pydoc` and :mod:`inspect` mean that the reported signatures " "for callables are now more comprehensive and consistent." msgstr "" "Les changements aux modules :mod:`pydoc` et :mod:`inspect` rendent les " -"signatures des appelables plus compréhensible et cohérente." +"signatures des appelables plus compréhensibles et cohérentes." -#: ../Doc/library/functions.rst:731 +#: library/functions.rst:732 msgid "" "Convert an integer number to a lowercase hexadecimal string prefixed with " "\"0x\". If *x* is not a Python :class:`int` object, it has to define an :" @@ -1448,16 +1477,17 @@ msgstr "" "pas un :class:`int`, il doit définir une méthode :meth:`__index__` qui " "renvoie un entier. Quelques exemples :" -#: ../Doc/library/functions.rst:740 +#: library/functions.rst:741 msgid "" "If you want to convert an integer number to an uppercase or lower " "hexadecimal string with prefix or not, you can use either of the following " "ways:" msgstr "" "Si vous voulez convertir un nombre entier en chaîne hexadécimale, en " -"majuscule ou non, préfixée ou non, vous pouvez utiliser les moyens suivants :" +"majuscule ou non, préfixée ou non, vous pouvez utiliser l'une des méthodes " +"suivantes :" -#: ../Doc/library/functions.rst:752 +#: library/functions.rst:753 msgid "" "See also :func:`int` for converting a hexadecimal string to an integer using " "a base of 16." @@ -1465,7 +1495,7 @@ msgstr "" "Voir aussi :func:`int` pour convertir une chaîne hexadécimale en un entier " "en lui spécifiant 16 comme base." -#: ../Doc/library/functions.rst:757 +#: library/functions.rst:758 msgid "" "To obtain a hexadecimal string representation for a float, use the :meth:" "`float.hex` method." @@ -1473,18 +1503,26 @@ msgstr "" "Pour obtenir une représentation hexadécimale sous forme de chaîne d'un " "nombre à virgule flottante, utilisez la méthode :meth:`float.hex`." -#: ../Doc/library/functions.rst:763 +#: library/functions.rst:764 msgid "" "Return the \"identity\" of an object. This is an integer which is " "guaranteed to be unique and constant for this object during its lifetime. " "Two objects with non-overlapping lifetimes may have the same :func:`id` " "value." msgstr "" -"Donne l'\"identité\" d'un objet. C'est un nombre entier garanti unique et " -"constant pour cet objet durant sa durée de vie. Deux objets sont les durées " +"Renvoie l'\"identité\" d'un objet. C'est un nombre entier garanti unique et " +"constant pour cet objet durant sa durée de vie. Deux objets dont les durées " "de vie ne se chevauchent pas peuvent partager le même :func:`id`." -#: ../Doc/library/functions.rst:773 +#: library/functions.rst:771 +msgid "" +"Raises an :ref:`auditing event ` ``builtins.id`` with argument " +"``id``." +msgstr "" +"Lève un :ref:`évènement d'audit ` ``builtins.id`` avec l'argument " +"``id``." + +#: library/functions.rst:776 msgid "" "If the *prompt* argument is present, it is written to standard output " "without a trailing newline. The function then reads a line from input, " @@ -1492,11 +1530,11 @@ msgid "" "When EOF is read, :exc:`EOFError` is raised. Example::" msgstr "" "Si l'argument *prompt* est donné, il est écrit sur la sortie standard sans " -"le retour à la ligne final. La fonction lis ensuite une ligne sur l'entrée " +"le retour à la ligne final. La fonction lit ensuite une ligne sur l'entrée " "standard et la convertit en chaîne (supprimant le retour à la ligne final) " -"quelle donne. Lorsque EOF est lu, :exc:`EOFError` est levée. Exemple ::" +"quelle renvoie. Lorsque EOF est lu, :exc:`EOFError` est levée. Exemple ::" -#: ../Doc/library/functions.rst:783 +#: library/functions.rst:786 msgid "" "If the :mod:`readline` module was loaded, then :func:`input` will use it to " "provide elaborate line editing and history features." @@ -1504,32 +1542,41 @@ msgstr "" "Si le module :mod:`readline` est chargé, :func:`input` l'utilisera pour " "fournir des fonctionnalités d'édition et d'historique élaborées." -#: ../Doc/library/functions.rst:None +#: library/functions.rst:None +#, fuzzy msgid "" "Raises an :ref:`auditing event ` ``builtins.input`` with argument " "``prompt``." msgstr "" +"Lève un :ref:`évènement d'audit ` ``builtins.input`` avec " +"l'argument ``prompt``." -#: ../Doc/library/functions.rst:788 +#: library/functions.rst:791 msgid "" "Raises an :ref:`auditing event ` ``builtins.input`` with argument " "``prompt`` before reading input" msgstr "" +"Lève un :ref:`auditing event ` ``builtins.input`` avec l'argument " +"``prompt`` avant de lire l'entrée." -#: ../Doc/library/functions.rst:None +#: library/functions.rst:None +#, fuzzy msgid "" "Raises an :ref:`auditing event ` ``builtins.input/result`` with " "argument ``result``." msgstr "" +"Lève un :ref:`évènement d'audit ` ``builtins.input/result`` avec " +"l'argument ``result``." -#: ../Doc/library/functions.rst:793 +#: library/functions.rst:796 msgid "" "Raises an auditing event ``builtins.input/result`` with the result after " "successfully reading input." msgstr "" +"Lève un événement d'audit ``builtins.input/result`` avec le résultat après " +"avoir lu avec succès l'entrée." -#: ../Doc/library/functions.rst:800 -#, fuzzy +#: library/functions.rst:803 msgid "" "Return an integer object constructed from a number or string *x*, or return " "``0`` if no arguments are given. If *x* defines :meth:`__int__`, ``int(x)`` " @@ -1537,13 +1584,14 @@ msgid "" "__index__()``. If *x* defines :meth:`__trunc__`, it returns ``x." "__trunc__()``. For floating point numbers, this truncates towards zero." msgstr "" -"Donne un entier construit depuis un nombre ou une chaîne *x*, ou ``0`` si " +"Renvoie un entier construit depuis un nombre ou une chaîne *x*, ou ``0`` si " "aucun argument n'est fourni. Si *x* définit une méthode :meth:`__int__`, " -"``int(x)`` renvoie ``x.__int__()``. Si *x* définit :meth:`__trunc__`, " +"``int(x)`` renvoie ``x.__int__()``. Si *x* définit :meth:`__index__`, " +"``int(x)`` renvoie ``x.__index__()`` Si *x* définit :meth:`__trunc__`, " "``int(x)`` renvoie ``x.__trunc__()``. Les nombres à virgule flottante sont " "tronqués vers zéro." -#: ../Doc/library/functions.rst:807 +#: library/functions.rst:810 msgid "" "If *x* is not a number or if *base* is given, then *x* must be a string, :" "class:`bytes`, or :class:`bytearray` instance representing an :ref:`integer " @@ -1558,10 +1606,10 @@ msgid "" "``int('010', 0)`` is not legal, while ``int('010')`` is, as well as " "``int('010', 8)``." msgstr "" -"Si *x* n'est pas un nombre ou si *base* est fourni, alors *x* doit être une " +"Si *x* n'est pas un nombre ou si *base* est fourni, alors *x* doit être une " "chaîne, un :class:`bytes`, ou un :class:`bytearray` représentant un :ref:" "`entier littéral ` de base *base*. Le littéral peut être précédé " -"d'un ``+`` ou d'un ``-`` (sans être séparés par un espace), et peut être " +"d'un ``+`` ou d'un ``-`` (sans être séparés par un espace), et peut être " "entouré d'espaces. Un littéral de base *n* est composé des symboles de 0 à " "n-1 où ``a`` jusqu'à ``z`` (ou ``A`` à ``Z``) représentent les valeurs de 10 " "à 35. La *base* par défaut est 10. Les valeurs autorisées pour *base* sont 0 " @@ -1572,11 +1620,11 @@ msgstr "" "0)`` n'est pas légal, alors que ``int('010')`` l'est tout comme ``int('010', " "8)``." -#: ../Doc/library/functions.rst:820 +#: library/functions.rst:823 msgid "The integer type is described in :ref:`typesnumeric`." msgstr "Le type des entiers est décrit dans :ref:`typesnumeric`." -#: ../Doc/library/functions.rst:822 +#: library/functions.rst:825 msgid "" "If *base* is not an instance of :class:`int` and the *base* object has a :" "meth:`base.__index__ ` method, that method is called to " @@ -1589,12 +1637,21 @@ msgstr "" "meth:`base.__int__ ` au lieu de :meth:`base.__index__ " "`." -#: ../Doc/library/functions.rst:835 +#: library/functions.rst:838 msgid "Falls back to :meth:`__index__` if :meth:`__int__` is not defined." +msgstr "Revient à :meth:`__index__` si :meth:`__int__` n'est pas défini." + +#: library/functions.rst:841 +msgid "" +":class:`int` string inputs and string representations can be limited to help " +"avoid denial of service attacks. A :exc:`ValueError` is raised when the " +"limit is exceeded while converting a string *x* to an :class:`int` or when " +"converting an :class:`int` into a string would exceed the limit. See the :" +"ref:`integer string conversion length limitation ` " +"documentation." msgstr "" -#: ../Doc/library/functions.rst:841 -#, fuzzy +#: library/functions.rst:852 msgid "" "Return ``True`` if the *object* argument is an instance of the *classinfo* " "argument, or of a (direct, indirect or :term:`virtual `. Si *object* n'est pas un objet du type donné, la fonction donne " -"toujours ``False``. Si *classinfo* est un *tuple* de types (ou " -"récursivement, d'autres *tuples*), donne ``True`` si *object* est une " +"Renvoie ``True`` si *object* est une instance de *classinfo*, ou d'une de " +"ses classes filles, directe, indirecte, ou :term:`abstraite `. Si *object* n'est pas un objet du type donné, la fonction renvoie " +"toujours ``False``. Si *classinfo* est un n-uplet de types (ou " +"récursivement, d'autres n-uplets), renvoie ``True`` si *object* est une " "instance de n'importe quel de ces types. Si *classinfo* n'est ni un type ni " -"un *tuple* de types (et récursivement), une exception :exc:`TypeError` est " +"un n-uplet de types (et récursivement), une exception :exc:`TypeError` est " "levée." -#: ../Doc/library/functions.rst:853 -#, fuzzy +#: library/functions.rst:864 msgid "" "Return ``True`` if *class* is a subclass (direct, indirect or :term:`virtual " "`) of *classinfo*. A class is considered a subclass of " @@ -1622,13 +1678,13 @@ msgid "" "entry in *classinfo* will be checked. In any other case, a :exc:`TypeError` " "exception is raised." msgstr "" -"Donne ``True`` si *class* est une classe fille (directe, indirecte, ou :term:" -"`virtual `) de *classinfo*. Une classe est considérée " -"sous-classe d'elle même. *classinfo* peut être un tuple de classes, dans ce " -"cas la vérification sera faite pour chaque classe de *classinfo*. Dans tous " -"les autres cas, :exc:`TypeError` est levée." +"Renvoie ``True`` si *class* est une classe fille (directe, indirecte ou :" +"term:`abstraite `) de *classinfo*. Une classe est " +"considérée sous-classe d'elle-même. *classinfo* peut être un n-uplet de " +"classes, dans ce cas la vérification sera faite pour chaque classe de " +"*classinfo*. Dans tous les autres cas, :exc:`TypeError` est levée." -#: ../Doc/library/functions.rst:862 +#: library/functions.rst:873 msgid "" "Return an :term:`iterator` object. The first argument is interpreted very " "differently depending on the presence of the second argument. Without a " @@ -1642,23 +1698,23 @@ msgid "" "__next__` method; if the value returned is equal to *sentinel*, :exc:" "`StopIteration` will be raised, otherwise the value will be returned." msgstr "" -"Donne un objet :term:`iterator`. Le premier argument est interprété très " -"différemment en fonction de la présence du second argument. Sans second " -"argument, *object* doit être une collection d'objets supportant le protocole " -"d'itération (la méthode :meth:`__iter__`), ou supportant le protocole des " -"séquences (la méthode :meth:`getitem`, avec des nombres entiers commençant " -"par ``0`` comme argument). S'il ne supporte aucun de ces protocoles, :exc:" -"`TypeError` est levée. Si le second argument *sentinel* est fourni, *objet* " -"doit être appelable. L'itérateur créé dans ce cas appellera *object* dans " -"argument à chaque appel de :meth:`~iterator.__next__`, si la valeur reçue " -"est égale à *sentinel* :exc:`StopIteration` est levée, autrement la valeur " -"est donnée." - -#: ../Doc/library/functions.rst:875 +"Renvoie un objet :term:`itérateur `. Le premier argument est " +"interprété très différemment en fonction de la présence du second argument. " +"Sans second argument, *object* doit être une collection d'objets supportant " +"le protocole d'itération (la méthode :meth:`__iter__`), ou supportant le " +"protocole des séquences (la méthode :meth:`getitem`, avec des nombres " +"entiers commençant par ``0`` comme argument). S'il ne supporte aucun de ces " +"protocoles, :exc:`TypeError` est levée. Si le second argument *sentinel* est " +"fourni, *objet* doit être appelable. L'itérateur créé dans ce cas appellera " +"*object* sans argument à chaque appel de :meth:`~iterator.__next__`, si la " +"valeur reçue est égale à *sentinel* :exc:`StopIteration` est levée, " +"autrement la valeur est renvoyée." + +#: library/functions.rst:886 msgid "See also :ref:`typeiter`." msgstr "Voir aussi :ref:`typeiter`." -#: ../Doc/library/functions.rst:877 +#: library/functions.rst:888 msgid "" "One useful application of the second form of :func:`iter` is to build a " "block-reader. For example, reading fixed-width blocks from a binary database " @@ -1668,17 +1724,17 @@ msgstr "" "construire un lecteur par blocs. Par exemple, lire des blocs de taille fixe " "d'une base de donnée binaire jusqu'à ce que la fin soit atteinte ::" -#: ../Doc/library/functions.rst:889 +#: library/functions.rst:900 msgid "" "Return the length (the number of items) of an object. The argument may be a " "sequence (such as a string, bytes, tuple, list, or range) or a collection " "(such as a dictionary, set, or frozen set)." msgstr "" -"Donne la longueur (nombre d'éléments) d'un objet. L'argument peut être une " -"séquence (tel qu'une chaîne, un objet ``bytes``, ``tuple``, ``list`` ou " +"Renvoie la longueur (nombre d'éléments) d'un objet. L'argument peut être une " +"séquence (tel qu'une chaîne, un objet ``bytes``, ``tuple``, ``list`` ou " "``range``) ou une collection (tel qu'un ``dict``, ``set`` ou ``frozenset``)." -#: ../Doc/library/functions.rst:898 +#: library/functions.rst:909 msgid "" "Rather than being a function, :class:`list` is actually a mutable sequence " "type, as documented in :ref:`typesseq-list` and :ref:`typesseq`." @@ -1686,20 +1742,20 @@ msgstr "" "Plutôt qu'être une fonction, :class:`list` est en fait un type de séquence " "variable, tel que documenté dans :ref:`typesseq-list` et :ref:`typesseq`." -#: ../Doc/library/functions.rst:904 +#: library/functions.rst:915 msgid "" "Update and return a dictionary representing the current local symbol table. " "Free variables are returned by :func:`locals` when it is called in function " "blocks, but not in class blocks. Note that at the module level, :func:" "`locals` and :func:`globals` are the same dictionary." msgstr "" -"Met à jour et donne un dictionnaire représentant la table des symboles " -"locaux. Les variables libres sont données par :func:`locals` lorsqu'elle est " -"appelée dans le corps d'une fonction, mais pas dans le corps d'une classe. " -"Notez qu’au niveau d’un module, :func:`locals` :func:`globals` sont le même " -"dictionnaire." +"Met à jour et renvoie un dictionnaire représentant la table des symboles " +"locaux. Les variables libres sont renvoyés par :func:`locals` lorsqu'elle " +"est appelée dans le corps d'une fonction, mais pas dans le corps d'une " +"classe. Notez qu’au niveau d’un module, :func:`locals` et :func:`globals` " +"sont le même dictionnaire." -#: ../Doc/library/functions.rst:910 +#: library/functions.rst:921 msgid "" "The contents of this dictionary should not be modified; changes may not " "affect the values of local and free variables used by the interpreter." @@ -1708,7 +1764,7 @@ msgstr "" "peuvent ne pas affecter les valeurs des variables locales ou libres " "utilisées par l'interpréteur." -#: ../Doc/library/functions.rst:915 +#: library/functions.rst:926 msgid "" "Return an iterator that applies *function* to every item of *iterable*, " "yielding the results. If additional *iterable* arguments are passed, " @@ -1717,33 +1773,34 @@ msgid "" "the shortest iterable is exhausted. For cases where the function inputs are " "already arranged into argument tuples, see :func:`itertools.starmap`\\." msgstr "" -"Donne un itérateur appliquant *function* à chaque élément de *iterable*, et " -"donnant ses résultats au fur et à mesure avec ``yield``. Si d'autres " +"Renvoie un itérateur appliquant *function* à chaque élément de *iterable*, " +"et donnant ses résultats au fur et à mesure avec ``yield``. Si d'autres " "*iterable* sont fournis, *function* doit prendre autant d'arguments, et sera " "appelée avec les éléments de tous les itérables en parallèle. Avec plusieurs " "itérables, l'itération s'arrête avec l'itérable le plus court. Pour les cas " -"où les arguments seraient déjà rangés sous forme de tuples, voir :func:" +"où les arguments seraient déjà rangés sous forme de n-uplets, voir :func:" "`itertools.starmap`." -#: ../Doc/library/functions.rst:926 +#: library/functions.rst:937 msgid "" "Return the largest item in an iterable or the largest of two or more " "arguments." msgstr "" -"Donne l'élément le plus grand dans un itérable, ou l'argument le plus grand " -"parmi au moins deux arguments." +"Renvoie l'élément le plus grand dans un itérable, ou l'argument le plus " +"grand parmi au moins deux arguments." -#: ../Doc/library/functions.rst:929 +#: library/functions.rst:940 msgid "" "If one positional argument is provided, it should be an :term:`iterable`. " "The largest item in the iterable is returned. If two or more positional " "arguments are provided, the largest of the positional arguments is returned." msgstr "" -"Si un seul argument positionnel est fourni, il doit être :term:`iterable`. " -"Le plus grand élément de l'itérable est donné. Si au moins deux arguments " -"positionnels sont fournis, l'argument le plus grand sera donné." +"Si un seul argument positionnel est fourni, il doit être :term:`itérable " +"`. Le plus grand élément de l'itérable est renvoyé. Si au moins " +"deux arguments positionnels sont fournis, l'argument le plus grand sera " +"renvoyé." -#: ../Doc/library/functions.rst:934 ../Doc/library/functions.rst:971 +#: library/functions.rst:982 msgid "" "There are two optional keyword-only arguments. The *key* argument specifies " "a one-argument ordering function like that used for :meth:`list.sort`. The " @@ -1751,13 +1808,13 @@ msgid "" "empty. If the iterable is empty and *default* is not provided, a :exc:" "`ValueError` is raised." msgstr "" -"Elle accepte deux arguments par mot clef optionnels. L'argument *key* " +"Elle accepte deux arguments par mot clé optionnels. L'argument *key* " "spécifie une fonction à un argument permettant de trier comme pour :meth:" "`list.sort`. L'argument *default* quant à lui fournit un objet à donner si " "l'itérable fourni est vide. Si l'itérable est vide et que *default* n'est " "pas fourni, :exc:`ValueError` est levée." -#: ../Doc/library/functions.rst:940 +#: library/functions.rst:951 msgid "" "If multiple items are maximal, the function returns the first one " "encountered. This is consistent with other sort-stability preserving tools " @@ -1765,86 +1822,86 @@ msgid "" "nlargest(1, iterable, key=keyfunc)``." msgstr "" "Si plusieurs éléments représentent la plus grande valeur, le premier " -"rencontré est donné. C'est cohérent avec d'autres outils préservant une " +"rencontré est renvoyé. C'est cohérent avec d'autres outils préservant une " "stabilité lors du tri, tel que ``sorted(iterable, key=keyfunc, reverse=True)" "[0]`` et ``heapq.nlargest(1, iterable, key=keyfunc)``." -#: ../Doc/library/functions.rst:945 ../Doc/library/functions.rst:982 +#: library/functions.rst:993 msgid "The *default* keyword-only argument." -msgstr "L'argument exclusivement par mot clef *default*." +msgstr "L'argument exclusivement par mot clé *default*." -#: ../Doc/library/functions.rst:948 ../Doc/library/functions.rst:985 +#: library/functions.rst:996 msgid "The *key* can be ``None``." -msgstr "" +msgstr "l'argument *key* peut être ``None``." -#: ../Doc/library/functions.rst:956 +#: library/functions.rst:967 msgid "" "Return a \"memory view\" object created from the given argument. See :ref:" "`typememoryview` for more information." msgstr "" -"Donne une \"vue mémoire\" (*memory view*) créée depuis l'argument. Voir :ref:" -"`typememoryview` pour plus d'informations." +"Renvoie une \"vue mémoire\" (*memory view*) créée depuis l'argument. Voir :" +"ref:`typememoryview` pour plus d'informations." -#: ../Doc/library/functions.rst:963 +#: library/functions.rst:974 msgid "" "Return the smallest item in an iterable or the smallest of two or more " "arguments." msgstr "" -"Donne le plus petit élément d'un itérable ou le plus petit d'au moins deux " +"Renvoie le plus petit élément d'un itérable ou le plus petit d'au moins deux " "arguments." -#: ../Doc/library/functions.rst:966 +#: library/functions.rst:977 msgid "" "If one positional argument is provided, it should be an :term:`iterable`. " "The smallest item in the iterable is returned. If two or more positional " "arguments are provided, the smallest of the positional arguments is returned." msgstr "" -"Si un seul argument est fourni, il doit être :term:`iterable`. Le plus petit " -"élément de l'itérable est donné. Si au moins deux arguments positionnels " -"sont fournis le plus petit argument positionnel est donné." +"Si un seul argument est fourni, il doit être :term:`itérable `. Le " +"plus petit élément de l'itérable est renvoyé. Si au moins deux arguments " +"positionnels sont fournis, le plus petit argument positionnel est renvoyé." -#: ../Doc/library/functions.rst:977 +#: library/functions.rst:988 msgid "" "If multiple items are minimal, the function returns the first one " "encountered. This is consistent with other sort-stability preserving tools " "such as ``sorted(iterable, key=keyfunc)[0]`` and ``heapq.nsmallest(1, " "iterable, key=keyfunc)``." msgstr "" -"Si plusieurs éléments sont minimaux, la fonction donne le premier. C'est " +"Si plusieurs éléments sont minimaux, la fonction renvoie le premier. C'est " "cohérent avec d'autres outils préservant une stabilité lors du tri, tel que " "``sorted(iterable, key=keyfunc)[0]`` et ``heapq.nsmallest(1, iterable, " "key=keyfunc)``." -#: ../Doc/library/functions.rst:991 +#: library/functions.rst:1002 msgid "" "Retrieve the next item from the *iterator* by calling its :meth:`~iterator." "__next__` method. If *default* is given, it is returned if the iterator is " "exhausted, otherwise :exc:`StopIteration` is raised." msgstr "" "Donne l'élément suivant d'*iterator* en appelant sa méthode :meth:`~iterator." -"__next__`. Si *default* est fourni, il sera donné si l'itérateur est épousé, " -"sinon :exc:`StopIteration` est levée." +"__next__`. Si *default* est fourni, il sera renvoyé si l'itérateur est " +"épuisé, sinon :exc:`StopIteration` est levée." -#: ../Doc/library/functions.rst:998 +#: library/functions.rst:1009 msgid "" "Return a new featureless object. :class:`object` is a base for all classes. " "It has the methods that are common to all instances of Python classes. This " "function does not accept any arguments." msgstr "" -"Donne un objet vide. :class:`object` est la classe parente de toute les " +"Renvoie un objet vide. :class:`object` est la classe parente de toutes les " "classes. C'est elle qui porte les méthodes communes à toutes les instances " "de classes en Python. Cette fonction n'accepte aucun argument." -#: ../Doc/library/functions.rst:1004 +#: library/functions.rst:1015 msgid "" ":class:`object` does *not* have a :attr:`~object.__dict__`, so you can't " "assign arbitrary attributes to an instance of the :class:`object` class." msgstr "" ":class:`object` n'a *pas* d'attribut :attr:`~object.__dict__`, vous ne " -"pouvez donc pas assigner d'attributs arbitraire à une instance d':class:" +"pouvez donc pas assigner d'attributs arbitraires à une instance d':class:" "`object`." -#: ../Doc/library/functions.rst:1010 +#: library/functions.rst:1021 msgid "" "Convert an integer number to an octal string prefixed with \"0o\". The " "result is a valid Python expression. If *x* is not a Python :class:`int` " @@ -1852,27 +1909,29 @@ msgid "" "integer. For example:" msgstr "" "Convertit un entier en sa représentation octale dans une chaîne préfixée de " -"``0o``. Le résultat est une expression Python valide. Si *x* n'est pas un " +"``0o``. Le résultat est une expression Python valide. Si *x* n'est pas un " "objet :class:`int`, il doit définir une méthode :meth:`__index__` qui donne " -"un entier, par exemple :" +"un entier, par exemple :" -#: ../Doc/library/functions.rst:1020 +#: library/functions.rst:1031 msgid "" "If you want to convert an integer number to octal string either with prefix " "\"0o\" or not, you can use either of the following ways." msgstr "" "Si vous voulez convertir un nombre entier en chaîne octale, avec ou sans le " -"préfixe ``0o``, vous pouvez utiliser les moyens suivants." +"préfixe ``0o``, vous pouvez utiliser l'une des méthodes suivantes." -#: ../Doc/library/functions.rst:1037 +#: library/functions.rst:1048 msgid "" "Open *file* and return a corresponding :term:`file object`. If the file " -"cannot be opened, an :exc:`OSError` is raised." +"cannot be opened, an :exc:`OSError` is raised. See :ref:`tut-files` for more " +"examples of how to use this function." msgstr "" -"Ouvre *file* et donne un :term:`file object` correspondant. Si le fichier ne " -"peut pas être ouvert, une :exc:`OSError` est levée." +"Ouvre *file* et donne un :term:`objet fichier ` correspondant. " +"Si le fichier ne peut pas être ouvert, une :exc:`OSError` est levée. Voir :" +"ref:`tut-files` pour plus d'exemple d'utilisation de cette fonction." -#: ../Doc/library/functions.rst:1040 +#: library/functions.rst:1052 msgid "" "*file* is a :term:`path-like object` giving the pathname (absolute or " "relative to the current working directory) of the file to be opened or an " @@ -1880,13 +1939,13 @@ msgid "" "given, it is closed when the returned I/O object is closed, unless *closefd* " "is set to ``False``.)" msgstr "" -"*file* est un :term:`path-like object` donnant le chemin (absolu ou relatif " -"au répertoire courant) du fichier à ouvrir ou un nombre entier représentant " -"le descripteur de fichier à envelopper. (Si un descripteur de fichier est " -"donné, il sera fermé en même temps que l'objet *I/O* renvoyé, sauf si " -"*closefd* est mis à ``False``.)" +"*file* est un :term:`objet simili-chemin ` donnant le " +"chemin (absolu ou relatif au répertoire courant) du fichier à ouvrir ou un " +"nombre entier représentant le descripteur de fichier à envelopper. (Si un " +"descripteur de fichier est donné, il sera fermé en même temps que l'objet *I/" +"O* renvoyé, sauf si *closefd* est mis à ``False``.)" -#: ../Doc/library/functions.rst:1046 +#: library/functions.rst:1058 msgid "" "*mode* is an optional string that specifies the mode in which the file is " "opened. It defaults to ``'r'`` which means open for reading in text mode. " @@ -1907,88 +1966,87 @@ msgstr "" "certains systèmes Unix signifie que *toutes* les écritures seront des ajouts " "en fin de fichier peu importe la position demandée). En mode texte, si " "*encoding* n'est pas spécifié l'encodage utilisé est dépendant de la " -"plateforme : ``locale.getpreferredencoding(False)`` est appelée pour obtenir " +"plateforme : ``locale.getpreferredencoding(False)`` est appelée pour obtenir " "l'encodage de la locale actuelle. (Pour lire et écrire des octets bruts, " "utilisez le mode binaire en laissant *encoding* non spécifié.) Les modes " -"disponibles sont :" +"disponibles sont :" -#: ../Doc/library/functions.rst:1063 +#: library/functions.rst:1075 msgid "Character" msgstr "Caractère" -#: ../Doc/library/functions.rst:1063 +#: library/functions.rst:1075 msgid "Meaning" msgstr "Signification" -#: ../Doc/library/functions.rst:1065 +#: library/functions.rst:1077 msgid "``'r'``" msgstr "``'r'``" -#: ../Doc/library/functions.rst:1065 +#: library/functions.rst:1077 msgid "open for reading (default)" msgstr "ouvre en lecture (par défaut)" -#: ../Doc/library/functions.rst:1066 +#: library/functions.rst:1078 msgid "``'w'``" msgstr "``'w'``" -#: ../Doc/library/functions.rst:1066 +#: library/functions.rst:1078 msgid "open for writing, truncating the file first" msgstr "ouvre en écriture, tronquant le fichier" -#: ../Doc/library/functions.rst:1067 +#: library/functions.rst:1079 msgid "``'x'``" msgstr "``'x'``" -#: ../Doc/library/functions.rst:1067 +#: library/functions.rst:1079 msgid "open for exclusive creation, failing if the file already exists" msgstr "ouvre pour une création exclusive, échouant si le fichier existe déjà" -#: ../Doc/library/functions.rst:1068 +#: library/functions.rst:1080 msgid "``'a'``" msgstr "``'a'``" -#: ../Doc/library/functions.rst:1068 +#: library/functions.rst:1080 msgid "open for writing, appending to the end of the file if it exists" msgstr "ouvre en écriture, ajoutant à la fin du fichier s'il existe" -#: ../Doc/library/functions.rst:1069 +#: library/functions.rst:1081 msgid "``'b'``" msgstr "``'b'``" -#: ../Doc/library/functions.rst:1069 +#: library/functions.rst:1081 msgid "binary mode" msgstr "mode binaire" -#: ../Doc/library/functions.rst:1070 +#: library/functions.rst:1082 msgid "``'t'``" msgstr "``'t'``" -#: ../Doc/library/functions.rst:1070 +#: library/functions.rst:1082 msgid "text mode (default)" msgstr "mode texte (par défaut)" -#: ../Doc/library/functions.rst:1071 +#: library/functions.rst:1083 msgid "``'+'``" msgstr "``'+'``" -#: ../Doc/library/functions.rst:1071 -#, fuzzy +#: library/functions.rst:1083 msgid "open for updating (reading and writing)" -msgstr "ouvre un fichier pour le modifier (lire et écrire)" +msgstr "ouvre en modification (lecture et écriture)" -#: ../Doc/library/functions.rst:1074 +#: library/functions.rst:1086 #, fuzzy msgid "" "The default mode is ``'r'`` (open for reading text, synonym of ``'rt'``). " "Modes ``'w+'`` and ``'w+b'`` open and truncate the file. Modes ``'r+'`` and " "``'r+b'`` open the file with no truncation." msgstr "" -"Les mode par défaut est ``'r'`` (ouvrir pour lire du texte, synonyme de " -"``'rt'``). Pour un accès en lecture écriture binaire, le mode ``'w+b'`` " -"ouvre et vide le fichier. ``'r+b'`` ouvre le fichier sans le vider." +"Le mode par défaut est ``'r'`` (ouvrir pour lire du texte, synonyme de " +"``'rt'``). Les modes ``'w+'`` et ``'w+b'`` ouvrent et vident le fichier. Les " +"modes ``'r+'`` et ``'r+b'`` ouvrent le fichier sans le vider." -#: ../Doc/library/functions.rst:1078 +#: library/functions.rst:1090 msgid "" "As mentioned in the :ref:`io-overview`, Python distinguishes between binary " "and text I/O. Files opened in binary mode (including ``'b'`` in the *mode* " @@ -1999,14 +2057,14 @@ msgid "" "specified *encoding* if given." msgstr "" "Tel que mentionné dans :ref:`io-overview`, Python fait la différence entre " -"les I/O binaire et texte. Les fichiers ouverts en mode binaire (avec ``'b'`` " -"dans *mode*) donnent leur contenu sous forme de :class:`bytes` sans " -"décodage. En mode texte (par défaut, ou lorsque ``'t'`` est dans le *mode*), " -"le contenu du fichier est donné sous forme de :class:`str`, les octets ayant " -"été décodés au préalable en utilisant un encodage déduit de l'environnement " -"ou *encoding* s'il est donné." +"les entrées-sorties binaires et textes. Les fichiers ouverts en mode binaire " +"(avec ``'b'`` dans *mode*) donnent leur contenu sous forme de :class:`bytes` " +"sans décodage. En mode texte (par défaut, ou lorsque ``'t'`` est dans le " +"*mode*), le contenu du fichier est donné sous forme de :class:`str`, les " +"octets ayant été décodés au préalable en utilisant un encodage déduit de " +"l'environnement ou *encoding* s'il est donné." -#: ../Doc/library/functions.rst:1086 +#: library/functions.rst:1098 msgid "" "There is an additional mode character permitted, ``'U'``, which no longer " "has any effect, and is considered deprecated. It previously enabled :term:" @@ -2016,21 +2074,22 @@ msgid "" msgstr "" "Il y a un mode « caractères » supplémentaire autorisé, ``’U’``, qui n'a plus " "d'effet, et est considéré comme obsolète. Auparavant, il activait les :term:" -"`universal newlines` en mode texte, qui est devenu le comportement par " -"défaut dans Python 3.0. Référez-vous à la documentation du paramètre :ref:" -"`newline ` pour plus de détails." +"`retours à la ligne universels ` en mode texte, qui est " +"devenu le comportement par défaut dans Python 3.0. Référez-vous à la " +"documentation du paramètre :ref:`newline ` pour plus " +"de détails." -#: ../Doc/library/functions.rst:1094 +#: library/functions.rst:1106 msgid "" "Python doesn't depend on the underlying operating system's notion of text " "files; all the processing is done by Python itself, and is therefore " "platform-independent." msgstr "" "Python ne dépend pas de l'éventuelle notion de fichier texte du système sous-" -"jacent, tout le traitement est effectué par Python lui même, et est ainsi " +"jacent, tout le traitement est effectué par Python lui-même, et est ainsi " "indépendant de la plateforme." -#: ../Doc/library/functions.rst:1098 +#: library/functions.rst:1110 msgid "" "*buffering* is an optional integer used to set the buffering policy. Pass 0 " "to switch buffering off (only allowed in binary mode), 1 to select line " @@ -2043,32 +2102,32 @@ msgstr "" "binaire), 1 pour avoir un *buffer* travaillant ligne par ligne (seulement " "disponible en mode texte), ou un entier supérieur à 1 pour donner la taille " "en octets d'un tampon de taille fixe. Sans l'argument *buffering*, les " -"comportements par défaut sont les suivants :" +"comportements par défaut sont les suivants :" -#: ../Doc/library/functions.rst:1104 +#: library/functions.rst:1116 msgid "" "Binary files are buffered in fixed-size chunks; the size of the buffer is " "chosen using a heuristic trying to determine the underlying device's \"block " "size\" and falling back on :attr:`io.DEFAULT_BUFFER_SIZE`. On many systems, " "the buffer will typically be 4096 or 8192 bytes long." msgstr "" -"Les fichiers binaires sont les dans un tampon de taille fixe, dont la taille " +"Les fichiers binaires sont mis dans un tampon de taille fixe, dont la taille " "est choisie par une heuristique essayant de déterminer la taille des blocs " "du système sous-jacent, ou en utilisant par défaut :attr:`io." "DEFAULT_BUFFER_SIZE`. Sur de nombreux systèmes, le tampon sera de 4096 ou " "8192 octets." -#: ../Doc/library/functions.rst:1109 +#: library/functions.rst:1121 msgid "" "\"Interactive\" text files (files for which :meth:`~io.IOBase.isatty` " "returns ``True``) use line buffering. Other text files use the policy " "described above for binary files." msgstr "" "Les fichiers texte \"interactifs\" (fichiers pour lesquels :meth:`io.IOBase." -"isatty` donne ``True``) utilisent un tampon par lignes. Les autres fichiers " -"texte sont traités comme les fichiers binaires." +"isatty` renvoie ``True``) utilisent un tampon par lignes. Les autres " +"fichiers texte sont traités comme les fichiers binaires." -#: ../Doc/library/functions.rst:1113 +#: library/functions.rst:1125 msgid "" "*encoding* is the name of the encoding used to decode or encode the file. " "This should only be used in text mode. The default encoding is platform " @@ -2079,10 +2138,11 @@ msgstr "" "*encoding* est le nom de l'encodage utilisé pour encoder ou décoder le " "fichier. Il doit seulement être utilisé en mode texte. L'encodage par défaut " "dépend de la plateforme (ce que :func:`locale.getpreferredencoding` donne), " -"mais n'importe quel :term:`text encoding` supporté par Python peut être " -"utilisé. Voir :mod:`codecs` pour une liste des encodages supportés." +"mais n'importe quel :term:`encodage de texte ` pris en charge " +"par Python peut être utilisé. Voir :mod:`codecs` pour une liste des " +"encodages pris en charge." -#: ../Doc/library/functions.rst:1120 +#: library/functions.rst:1132 msgid "" "*errors* is an optional string that specifies how encoding and decoding " "errors are to be handled—this cannot be used in binary mode. A variety of " @@ -2091,13 +2151,13 @@ msgid "" "register_error` is also valid. The standard names include:" msgstr "" "*errors* est une chaîne facultative spécifiant comment les erreurs " -"d'encodage et de décodages sont gérées, ce n'est pas utilisable en mode " -"binaire. Pléthore gestionnaires d'erreurs standards sont disponibles (listés " -"sous :ref:`error-handlers`), aussi, tout nom de gestionnaire d'erreur " -"enregistré avec :func:`codecs.register_error` est aussi un argument valide. " -"Les noms standards sont :" +"d'encodage et de décodage sont gérées, ce n'est pas utilisable en mode " +"binaire. De nombreux gestionnaires d'erreurs standards sont disponibles " +"(listés sous :ref:`error-handlers`), aussi, tout nom de gestionnaire " +"d'erreur enregistré avec :func:`codecs.register_error` est aussi un argument " +"valide. Les noms standards sont :" -#: ../Doc/library/functions.rst:1128 +#: library/functions.rst:1140 msgid "" "``'strict'`` to raise a :exc:`ValueError` exception if there is an encoding " "error. The default value of ``None`` has the same effect." @@ -2105,7 +2165,7 @@ msgstr "" "``'strict'`` pour lever une :exc:`ValueError` si une erreur d'encodage est " "rencontrée. La valeur par défaut, ``None``, a le même effet." -#: ../Doc/library/functions.rst:1132 +#: library/functions.rst:1144 msgid "" "``'ignore'`` ignores errors. Note that ignoring encoding errors can lead to " "data loss." @@ -2113,7 +2173,7 @@ msgstr "" "``'ignore'`` ignore les erreurs. Notez qu'ignorer les erreurs d'encodage " "peut mener à des pertes de données." -#: ../Doc/library/functions.rst:1135 +#: library/functions.rst:1147 msgid "" "``'replace'`` causes a replacement marker (such as ``'?'``) to be inserted " "where there is malformed data." @@ -2121,7 +2181,7 @@ msgstr "" "``'replace'`` insère un marqueur de substitution (tel que ``'?'``) en place " "des données mal formées." -#: ../Doc/library/functions.rst:1138 +#: library/functions.rst:1150 msgid "" "``'surrogateescape'`` will represent any incorrect bytes as code points in " "the Unicode Private Use Area ranging from U+DC80 to U+DCFF. These private " @@ -2136,7 +2196,7 @@ msgstr "" "l'écriture de la donnée. C'est utile pour traiter des fichiers d'un encodage " "inconnu." -#: ../Doc/library/functions.rst:1145 +#: library/functions.rst:1157 msgid "" "``'xmlcharrefreplace'`` is only supported when writing to a file. Characters " "not supported by the encoding are replaced with the appropriate XML " @@ -2146,7 +2206,7 @@ msgstr "" "Les caractères non gérés par l'encodage sont remplacés par une référence de " "caractère XML ``&#nnn;``." -#: ../Doc/library/functions.rst:1149 +#: library/functions.rst:1161 msgid "" "``'backslashreplace'`` replaces malformed data by Python's backslashed " "escape sequences." @@ -2154,7 +2214,7 @@ msgstr "" "``'backslashreplace'`` remplace les données mal formées par des séquences " "d'échappement Python (utilisant des *backslash*)." -#: ../Doc/library/functions.rst:1152 +#: library/functions.rst:1164 msgid "" "``'namereplace'`` (also only supported when writing) replaces unsupported " "characters with ``\\N{...}`` escape sequences." @@ -2162,17 +2222,18 @@ msgstr "" "``'namereplace'`` (aussi supporté lors de l'écriture) remplace les " "caractères non supportés par des séquences d'échappement ``\\N{...}``." -#: ../Doc/library/functions.rst:1160 +#: library/functions.rst:1172 msgid "" "*newline* controls how :term:`universal newlines` mode works (it only " "applies to text mode). It can be ``None``, ``''``, ``'\\n'``, ``'\\r'``, " "and ``'\\r\\n'``. It works as follows:" msgstr "" -"*newline* contrôle comment le mode :term:`universal newlines` fonctionne " -"(seulement en mode texte). Il eut être ``None``, ``''``, ``'\\n'``, " -"``'\\r'``, et ``'\\r\\n'``. Il fonctionne comme suit :" +"*newline* contrôle comment le mode :term:`retours à la ligne universels " +"` fonctionne (seulement en mode texte). Il peut être " +"``None``, ``''``, ``'\\n'``, ``'\\r'``, et ``'\\r\\n'``. Il fonctionne comme " +"suit :" -#: ../Doc/library/functions.rst:1164 +#: library/functions.rst:1176 msgid "" "When reading input from the stream, if *newline* is ``None``, universal " "newlines mode is enabled. Lines in the input can end in ``'\\n'``, " @@ -2183,14 +2244,14 @@ msgid "" "given string, and the line ending is returned to the caller untranslated." msgstr "" "Lors de la lecture, si *newline* est ``None``, le mode *universal newlines* " -"est activé. Les lignes lues peuvent terminer par ``'\\n'``, ``'\\r'``, ou " -"``'\\r\\n'``, qui sont remplacés par ``'\\n'``, avant d'être données à " +"est activé. Les lignes lues peuvent se terminer par ``'\\n'``, ``'\\r'``, ou " +"``'\\r\\n'``, et sont remplacés par ``'\\n'``, avant d'être retournés à " "l'appelant. S'il vaut ``'*'``, le mode *universal newline* est activé mais " -"les fin de lignes ne sont pas remplacés. S'il a n'importe quel autre valeur " -"autorisée, les lignes sont seulement terminées par la chaîne donnée, qui est " -"rendue tel qu'elle." +"les fins de ligne ne sont pas remplacées. S'il a n'importe quelle autre " +"valeur autorisée, les lignes sont seulement terminées par la chaîne donnée, " +"qui est rendue telle qu'elle." -#: ../Doc/library/functions.rst:1172 +#: library/functions.rst:1184 msgid "" "When writing output to the stream, if *newline* is ``None``, any ``'\\n'`` " "characters written are translated to the system default line separator, :" @@ -2199,12 +2260,12 @@ msgid "" "characters written are translated to the given string." msgstr "" "Lors de l'écriture, si *newline* est ``None``, chaque ``'\\n'`` est remplacé " -"par le séparateur de lignes par défaut du système :data:`os.linesep`. Si " -"*newline* est ``*`` ou ``'\\n'`` aucun remplacent n'est effectué. Si " +"par le séparateur de lignes par défaut du système :data:`os.linesep`. Si " +"*newline* est ``*`` ou ``'\\n'`` aucun remplacement n'est effectué. Si " "*newline* est un autre caractère valide, chaque ``'\\n'`` sera remplacé par " "la chaîne donnée." -#: ../Doc/library/functions.rst:1178 +#: library/functions.rst:1190 msgid "" "If *closefd* is ``False`` and a file descriptor rather than a filename was " "given, the underlying file descriptor will be kept open when the file is " @@ -2216,7 +2277,7 @@ msgstr "" "le fichier sera fermé. Si un nom de fichier est donné, *closefd* doit rester " "``True`` (la valeur par défaut) sans quoi une erreur est levée." -#: ../Doc/library/functions.rst:1183 +#: library/functions.rst:1195 msgid "" "A custom opener can be used by passing a callable as *opener*. The " "underlying file descriptor for the file object is then obtained by calling " @@ -2226,17 +2287,17 @@ msgid "" msgstr "" "Un *opener* personnalisé peut être utilisé en fournissant un appelable comme " "*opener*. Le descripteur de fichier de cet objet fichier sera alors obtenu " -"en appelant *opener* avec (*file*, *flags*). *opener* doit donner un " -"descripteur de fichier ouvert (fournir :mod:`os.open` en temps qu'*opener* " +"en appelant *opener* avec (*file*, *flags*). *opener* doit renvoyer un " +"descripteur de fichier ouvert (fournir :mod:`os.open` en tant qu'*opener* " "aura le même effet que donner ``None``)." -#: ../Doc/library/functions.rst:1189 +#: library/functions.rst:1201 msgid "The newly created file is :ref:`non-inheritable `." msgstr "" "Il n'est :ref:`pas possible d'hériter du fichier ` " "nouvellement créé." -#: ../Doc/library/functions.rst:1191 +#: library/functions.rst:1203 msgid "" "The following example uses the :ref:`dir_fd ` parameter of the :func:" "`os.open` function to open a file relative to a given directory::" @@ -2244,7 +2305,7 @@ msgstr "" "L'exemple suivant utilise le paramètre :ref:`dir_fd ` de la " "fonction :func:`os.open` pour ouvrir un fichier relatif au dossier courant ::" -#: ../Doc/library/functions.rst:1204 +#: library/functions.rst:1216 msgid "" "The type of :term:`file object` returned by the :func:`open` function " "depends on the mode. When :func:`open` is used to open a file in a text " @@ -2258,19 +2319,19 @@ msgid "" "disabled, the raw stream, a subclass of :class:`io.RawIOBase`, :class:`io." "FileIO`, is returned." msgstr "" -"Le type de :term:`file object` donné par la fonction :func:`open` dépend du " -"mode. Lorsque :func:`open` est utilisé pour ouvrir un fichier en mode texte " -"(``w``, ``r``, ``wt``, ``rt``, etc.), il donne une classe fille de :class:" -"`io.TextIOBase` (spécifiquement : :class:`io.TextIOWrapper`). Lors de " -"l'ouverture d'un fichier en mode binaire avec tampon, la classe donnée sera " -"une fille de :class:`io.BufferedIOBase`. La classe exacte varie : en lecture " -"en mode binaire elle donne une :class:`io.BufferedReader`, en écriture et " -"ajout en mode binaire c'est une :class:`io.BufferedWriter`, et en lecture/" -"écriture, c'est une :class:`io.BufferedRandom`. Lorsque le tampon est " -"désactivé, le flux brut, une classe fille de :class:`io.RawIOBase`, :class:" -"`io.FileIO` est donnée." +"Le type d'\\ :term:`objet fichier ` renvoyé par la fonction :" +"func:`open` dépend du mode. Lorsque :func:`open` est utilisé pour ouvrir un " +"fichier en mode texte (``w``, ``r``, ``wt``, ``rt``, etc.), il renvoie une " +"classe fille de :class:`io.TextIOBase` (spécifiquement : :class:`io." +"TextIOWrapper`). Lors de l'ouverture d'un fichier en mode binaire avec " +"tampon, la classe renvoyée sera une fille de :class:`io.BufferedIOBase`. La " +"classe exacte varie : en lecture en mode binaire elle renvoie une :class:`io." +"BufferedReader`, en écriture et ajout en mode binaire c'est une :class:`io." +"BufferedWriter`, et en lecture/écriture, c'est une :class:`io." +"BufferedRandom`. Lorsque le tampon est désactivé, le flux brut, une classe " +"fille de :class:`io.RawIOBase`, :class:`io.FileIO` est renvoyée." -#: ../Doc/library/functions.rst:1225 +#: library/functions.rst:1237 msgid "" "See also the file handling modules, such as, :mod:`fileinput`, :mod:`io` " "(where :func:`open` is declared), :mod:`os`, :mod:`os.path`, :mod:" @@ -2280,33 +2341,37 @@ msgstr "" "`fileinput`, :mod:`io` (où :func:`open` est déclarée), :mod:`os`, :mod:`os." "path`, :mod:`tmpfile`, et :mod:`shutil`." -#: ../Doc/library/functions.rst:1230 +#: library/functions.rst:1242 msgid "" "Raises an :ref:`auditing event ` ``open`` with arguments ``file``, " "``mode``, ``flags``." msgstr "" +"Lève un :ref:`auditing event ` ``open`` avec les arguments " +"``file``, ``mode``, ``flags``." -#: ../Doc/library/functions.rst:1231 +#: library/functions.rst:1243 msgid "" "The ``mode`` and ``flags`` arguments may have been modified or inferred from " "the original call." msgstr "" +"Les arguments ``mode`` et ``flags`` peuvent avoir été modifiés ou déduits de " +"l'appel original." -#: ../Doc/library/functions.rst:1237 +#: library/functions.rst:1249 msgid "The *opener* parameter was added." msgstr "Le paramètre *opener* a été ajouté." -#: ../Doc/library/functions.rst:1238 +#: library/functions.rst:1250 msgid "The ``'x'`` mode was added." msgstr "Le mode ``'x'`` a été ajouté." -#: ../Doc/library/functions.rst:1239 +#: library/functions.rst:1251 msgid ":exc:`IOError` used to be raised, it is now an alias of :exc:`OSError`." msgstr "" ":exc:`IOError` était normalement levée, elle est maintenant un alias de :exc:" "`OSError`." -#: ../Doc/library/functions.rst:1240 +#: library/functions.rst:1252 msgid "" ":exc:`FileExistsError` is now raised if the file opened in exclusive " "creation mode (``'x'``) already exists." @@ -2314,15 +2379,15 @@ msgstr "" ":exc:`FileExistsError` est maintenant levée si le fichier ouvert en mode " "création exclusive (``'x'``) existe déjà." -#: ../Doc/library/functions.rst:1246 +#: library/functions.rst:1258 msgid "The file is now non-inheritable." msgstr "Il n'est plus possible d'hériter de *file*." -#: ../Doc/library/functions.rst:1250 +#: library/functions.rst:1262 msgid "The ``'U'`` mode." msgstr "Le mode ``'U'``." -#: ../Doc/library/functions.rst:1255 +#: library/functions.rst:1267 msgid "" "If the system call is interrupted and the signal handler does not raise an " "exception, the function now retries the system call instead of raising an :" @@ -2332,15 +2397,15 @@ msgstr "" "aucune exception, la fonction réessaye l'appel système au lieu de lever une :" "exc:`InterruptedError` (voir la :pep:`475` à propos du raisonnement)." -#: ../Doc/library/functions.rst:1258 +#: library/functions.rst:1270 msgid "The ``'namereplace'`` error handler was added." msgstr "Le gestionnaire d'erreurs ``'namereplace'`` a été ajouté." -#: ../Doc/library/functions.rst:1263 +#: library/functions.rst:1275 msgid "Support added to accept objects implementing :class:`os.PathLike`." msgstr "Ajout du support des objets implémentant :class:`os.PathLike`." -#: ../Doc/library/functions.rst:1264 +#: library/functions.rst:1276 msgid "" "On Windows, opening a console buffer may return a subclass of :class:`io." "RawIOBase` other than :class:`io.FileIO`." @@ -2348,7 +2413,7 @@ msgstr "" "Sous Windows, ouvrir un *buffer* du terminal peut renvoyer une sous-classe " "de :class:`io.RawIOBase` autre que :class:`io.FileIO`." -#: ../Doc/library/functions.rst:1269 +#: library/functions.rst:1281 msgid "" "Given a string representing one Unicode character, return an integer " "representing the Unicode code point of that character. For example, " @@ -2356,24 +2421,23 @@ msgid "" "``8364``. This is the inverse of :func:`chr`." msgstr "" "Renvoie le nombre entier représentant le code Unicode du caractère " -"représenté par la chaîne donnée. Par exemple, ``ord('a')`` renvoie le " -"nombre entier ``97`` et ``ord('€')`` (symbole Euro) renvoie ``8364``. Il " -"s'agit de l'inverse de :func:`chr`." +"représenté par la chaîne donnée. Par exemple, ``ord('a')`` renvoie le nombre " +"entier ``97`` et ``ord('€')`` (symbole Euro) renvoie ``8364``. Il s'agit de " +"l'inverse de :func:`chr`." -#: ../Doc/library/functions.rst:1277 -#, fuzzy +#: library/functions.rst:1289 msgid "" "Return *base* to the power *exp*; if *mod* is present, return *base* to the " "power *exp*, modulo *mod* (computed more efficiently than ``pow(base, exp) % " "mod``). The two-argument form ``pow(base, exp)`` is equivalent to using the " "power operator: ``base**exp``." msgstr "" -"Donne *x* puissance *y*, et si *z* est présent, donne *x* puissance *y* " -"modulo *z* (calculé de manière plus efficiente que ``pow(x, y) % z``). La " -"forme à deux arguments est équivalent à ``x**y``." +"Renvoie *base* puissance *exp* et, si *mod* est présent, donne *base* " +"puissance *exp* modulo *mod* (calculé de manière plus efficiente que " +"``pow(base, exp) % mod``). La forme à deux arguments ``pow(base, exp)`` est " +"équivalente à l'opérateur puissance : ``base**exp``." -#: ../Doc/library/functions.rst:1282 -#, fuzzy +#: library/functions.rst:1294 msgid "" "The arguments must have numeric types. With mixed operand types, the " "coercion rules for binary arithmetic operators apply. For :class:`int` " @@ -2388,11 +2452,9 @@ msgstr "" "`int`, le résultat sera de même type que les opérandes (après coercition) " "sauf si le second argument est négatif, dans ce cas, les arguments sont " "convertis en ``float``, et le résultat sera un ``float`` aussi. Par exemple, " -"``10**2`` donne ``100``, alors que ``10**-2`` donne ``0.01``. Si le second " -"argument est négatif, le troisième doit être omis. Si *z* est fourni, *x* et " -"*y* doivent être des entiers et *y* positif." +"``10**2`` donne ``100``, alors que ``10**-2`` donne ``0.01``." -#: ../Doc/library/functions.rst:1289 +#: library/functions.rst:1301 msgid "" "For :class:`int` operands *base* and *exp*, if *mod* is present, *mod* must " "also be of integer type and *mod* must be nonzero. If *mod* is present and " @@ -2400,23 +2462,33 @@ msgid "" "``pow(inv_base, -exp, mod)`` is returned, where *inv_base* is an inverse to " "*base* modulo *mod*." msgstr "" +"Pour des opérandes *base* et *exp* de type :class:`int`, si *mod* est " +"présent, *mod* doit également être de type entier et *mod* doit être non " +"nul. Si *mod* est présent et que *exp* est négatif, *base* et *mod* doivent " +"être premiers entre eux. Dans ce cas, ``pow(inv_base, -exp, mod)`` est " +"renvoyé, où *inv_base* est un inverse de *base* modulo *mod*." -#: ../Doc/library/functions.rst:1295 +#: library/functions.rst:1307 msgid "Here's an example of computing an inverse for ``38`` modulo ``97``::" -msgstr "" +msgstr "Voici un exemple de calcul d'un inverse de ``38`` modulo ``97`` ::" -#: ../Doc/library/functions.rst:1302 +#: library/functions.rst:1314 msgid "" "For :class:`int` operands, the three-argument form of ``pow`` now allows the " "second argument to be negative, permitting computation of modular inverses." msgstr "" +"Pour les opérandes :class:`int`, la forme à trois arguments de ``pow`` " +"permet maintenant au deuxième argument d'être négatif, permettant le calcul " +"des inverses modulaires." -#: ../Doc/library/functions.rst:1307 +#: library/functions.rst:1319 msgid "" "Allow keyword arguments. Formerly, only positional arguments were supported." msgstr "" +"Autorise les arguments par mots-clés. Auparavant, seuls les arguments " +"positionnels étaient autorisés." -#: ../Doc/library/functions.rst:1314 +#: library/functions.rst:1326 msgid "" "Print *objects* to the text stream *file*, separated by *sep* and followed " "by *end*. *sep*, *end*, *file* and *flush*, if present, must be given as " @@ -2424,9 +2496,9 @@ msgid "" msgstr "" "Écrit *objects* dans le flux texte *file*, séparés par *sep* et suivis de " "*end*. *sep*, *end*, *file*, et *flush*, s'ils sont présents, doivent être " -"données par mot clef." +"données par mot clé." -#: ../Doc/library/functions.rst:1318 +#: library/functions.rst:1330 msgid "" "All non-keyword arguments are converted to strings like :func:`str` does and " "written to the stream, separated by *sep* and followed by *end*. Both *sep* " @@ -2436,24 +2508,24 @@ msgid "" msgstr "" "Tous les arguments positionnels sont convertis en chaîne comme le fait :func:" "`str`, puis écrits sur le flux, séparés par *sep* et terminés par *end*. " -"*sep* et *end* doivent être des chaînes, ou ``None`` , indiquant de prendre " +"*sep* et *end* doivent être des chaînes, ou ``None``, indiquant de prendre " "les valeurs par défaut. Si aucun *objects* n'est donné :func:`print` écris " "seulement *end*." -#: ../Doc/library/functions.rst:1324 +#: library/functions.rst:1336 msgid "" "The *file* argument must be an object with a ``write(string)`` method; if it " "is not present or ``None``, :data:`sys.stdout` will be used. Since printed " "arguments are converted to text strings, :func:`print` cannot be used with " "binary mode file objects. For these, use ``file.write(...)`` instead." msgstr "" -"L'argument *file* doit être un objet avec une méthode ``write(string)``; " +"L'argument *file* doit être un objet avec une méthode ``write(string)`` ; " "s'il n'est pas fourni, ou vaut ``None``, :data:`sys.stdout` sera utilisé. " "Puisque les arguments affichés sont convertis en chaîne, :func:`print` ne " -"peut pas être utilisé avec des fichiers ouverts en mode binaire. Pour ceux " +"peut pas être utilisé avec des fichiers ouverts en mode binaire. Pour ceux-" "ci utilisez plutôt ``file.write(...)``." -#: ../Doc/library/functions.rst:1329 +#: library/functions.rst:1341 msgid "" "Whether output is buffered is usually determined by *file*, but if the " "*flush* keyword argument is true, the stream is forcibly flushed." @@ -2461,30 +2533,30 @@ msgstr "" "Que la sortie utilise un *buffer* ou non est souvent décidé par *file*, mais " "si l'argument *flush* est vrai, le tampon du flux est vidé explicitement." -#: ../Doc/library/functions.rst:1332 +#: library/functions.rst:1344 msgid "Added the *flush* keyword argument." -msgstr "Ajout de l'argument par mot clef *flush*." +msgstr "Ajout de l'argument par mot clé *flush*." -#: ../Doc/library/functions.rst:1338 +#: library/functions.rst:1350 msgid "Return a property attribute." -msgstr "Donne un attribut propriété." +msgstr "Renvoie un attribut propriété." -#: ../Doc/library/functions.rst:1340 +#: library/functions.rst:1352 msgid "" "*fget* is a function for getting an attribute value. *fset* is a function " "for setting an attribute value. *fdel* is a function for deleting an " "attribute value. And *doc* creates a docstring for the attribute." msgstr "" "*fget* est une fonction permettant d'obtenir la valeur d'un attribut. *fset* " -"est une fonction pour en définir la valeur. *fdel* quand à elle permet de " +"est une fonction pour en définir la valeur. *fdel* quant à elle permet de " "supprimer la valeur d'un attribut, et *doc* créé une *docstring* pour " "l'attribut." -#: ../Doc/library/functions.rst:1344 +#: library/functions.rst:1356 msgid "A typical use is to define a managed attribute ``x``::" -msgstr "Une utilisation typique : définir un attribut managé ``x`` ::" +msgstr "Une utilisation typique : définir un attribut managé ``x`` ::" -#: ../Doc/library/functions.rst:1361 +#: library/functions.rst:1373 msgid "" "If *c* is an instance of *C*, ``c.x`` will invoke the getter, ``c.x = " "value`` will invoke the setter and ``del c.x`` the deleter." @@ -2492,7 +2564,7 @@ msgstr "" "Si *c* est une instance de *C*, ``c.x`` appellera le *getter*, ``c.x = " "value`` invoquera le *setter*, et ``del x`` le *deleter*." -#: ../Doc/library/functions.rst:1364 +#: library/functions.rst:1376 msgid "" "If given, *doc* will be the docstring of the property attribute. Otherwise, " "the property will copy *fget*'s docstring (if it exists). This makes it " @@ -2502,31 +2574,31 @@ msgstr "" "S'il est donné, *doc* sera la *docstring* de l'attribut. Autrement la " "propriété copiera celle de *fget* (si elle existe). Cela rend possible la " "création de propriétés en lecture seule en utilisant simplement :func:" -"`property` comme un :term:`decorator` ::" +"`property` comme un :term:`décorateur ` ::" -#: ../Doc/library/functions.rst:1377 +#: library/functions.rst:1389 msgid "" -"The ``@property`` decorator turns the :meth:`voltage` method into a \"getter" -"\" for a read-only attribute with the same name, and it sets the docstring " -"for *voltage* to \"Get the current voltage.\"" +"The ``@property`` decorator turns the :meth:`voltage` method into a " +"\"getter\" for a read-only attribute with the same name, and it sets the " +"docstring for *voltage* to \"Get the current voltage.\"" msgstr "" "Le décorateur ``@property`` transforme la méthode :meth:`voltage` en un " "*getter* d'un attribut du même nom, et donne *\"Get the current voltage\"* " "comme *docstring* de *voltage*." -#: ../Doc/library/functions.rst:1381 +#: library/functions.rst:1393 msgid "" "A property object has :attr:`~property.getter`, :attr:`~property.setter`, " "and :attr:`~property.deleter` methods usable as decorators that create a " "copy of the property with the corresponding accessor function set to the " "decorated function. This is best explained with an example::" msgstr "" -"Un objet propriété à les méthodes :attr:`~property.getter`, :attr:`~property." +"Un objet propriété a les méthodes :attr:`~property.getter`, :attr:`~property." "setter` et :attr:`~property.deleter` utilisables comme décorateurs créant " "une copie de la propriété avec les accesseurs correspondants définis par la " "fonction de décoration. C'est plus clair avec un exemple ::" -#: ../Doc/library/functions.rst:1403 +#: library/functions.rst:1415 msgid "" "This code is exactly equivalent to the first example. Be sure to give the " "additional functions the same name as the original property (``x`` in this " @@ -2536,19 +2608,19 @@ msgstr "" "donner aux fonctions additionnelles le même nom que la propriété (``x`` dans " "ce cas.)" -#: ../Doc/library/functions.rst:1407 +#: library/functions.rst:1419 msgid "" "The returned property object also has the attributes ``fget``, ``fset``, and " "``fdel`` corresponding to the constructor arguments." msgstr "" -"L'objet propriété donné à aussi les attributs ``fget``, ``fset`` et ``fdel`` " -"correspondant correspondants aux arguments du constructeur." +"L'objet propriété renvoyé à aussi les attributs ``fget``, ``fset`` et " +"``fdel`` correspondants aux arguments du constructeur." -#: ../Doc/library/functions.rst:1410 +#: library/functions.rst:1422 msgid "The docstrings of property objects are now writeable." msgstr "Les *docstrings* des objets propriété peuvent maintenant être écrits." -#: ../Doc/library/functions.rst:1419 +#: library/functions.rst:1431 msgid "" "Rather than being a function, :class:`range` is actually an immutable " "sequence type, as documented in :ref:`typesseq-range` and :ref:`typesseq`." @@ -2556,7 +2628,7 @@ msgstr "" "Plutôt qu'être une fonction, :class:`range` est en fait une séquence " "immuable, tel que documenté dans :ref:`typesseq-range` et :ref:`typesseq`." -#: ../Doc/library/functions.rst:1425 +#: library/functions.rst:1437 msgid "" "Return a string containing a printable representation of an object. For " "many types, this function makes an attempt to return a string that would " @@ -2566,37 +2638,37 @@ msgid "" "including the name and address of the object. A class can control what this " "function returns for its instances by defining a :meth:`__repr__` method." msgstr "" -"Donne une chaîne contenant une représentation affichable de l'objet. Pour de " -"nombreux types, cette fonction essaye de donner une chaîne qui donnera à son " -"tour un objet de mène valeur lorsqu'elle est passée à :func:`eval`, sinon la " -"représentation sera une chaîne entourée de chevrons contenant le nom du type " -"et quelques informations supplémentaires souvent le nom et l'adresse de " -"l'objet. Une classe peut contrôler ce que cette fonction donne pour ses " -"instances en définissant une méthode :meth:`__repr__`." +"Renvoie une chaîne contenant une représentation affichable de l'objet. Pour " +"de nombreux types, cette fonction essaye de renvoyer une chaîne qui donnera " +"à son tour un objet de même valeur lorsqu'elle est passée à :func:`eval`, " +"sinon la représentation sera une chaîne entourée de chevrons contenant le " +"nom du type et quelques informations supplémentaires, souvent le nom et " +"l'adresse de l'objet. Une classe peut contrôler ce que cette fonction " +"renvoie pour ses instances en définissant une méthode :meth:`__repr__`." -#: ../Doc/library/functions.rst:1436 +#: library/functions.rst:1448 msgid "" "Return a reverse :term:`iterator`. *seq* must be an object which has a :" "meth:`__reversed__` method or supports the sequence protocol (the :meth:" "`__len__` method and the :meth:`__getitem__` method with integer arguments " "starting at ``0``)." msgstr "" -"Donne un :term:`iterator` inversé. *seq* doit être un objet ayant une " -"méthode :meth:`__reverse__` ou supportant le protocole séquence (la méthode :" -"meth:`__len__` et la méthode :meth:`__getitem__` avec des arguments entiers " -"commençant à zéro)." +"Renvoie un :term:`itérateur ` inversé. *seq* doit être un objet " +"ayant une méthode :meth:`__reverse__` ou supportant le protocole séquence " +"(la méthode :meth:`__len__` et la méthode :meth:`__getitem__` avec des " +"arguments entiers commençant à zéro)." -#: ../Doc/library/functions.rst:1444 +#: library/functions.rst:1456 msgid "" "Return *number* rounded to *ndigits* precision after the decimal point. If " "*ndigits* is omitted or is ``None``, it returns the nearest integer to its " "input." msgstr "" "Renvoie *number* arrondi avec une précision de *ndigits* chiffres après la " -"virgule. Si *ndigits* est omis (ou est ``None``), l'entier le plus proche " +"virgule. Si *ndigits* est omis (ou est ``None``), l'entier le plus proche " "est renvoyé." -#: ../Doc/library/functions.rst:1448 +#: library/functions.rst:1460 msgid "" "For the built-in types supporting :func:`round`, values are rounded to the " "closest multiple of 10 to the power minus *ndigits*; if two multiples are " @@ -2614,7 +2686,7 @@ msgstr "" "zéro, ou négatif). La valeur renvoyée est un entier si *ndigits* n'est pas " "donné, (ou est ``None``). Sinon elle est du même type que *number*." -#: ../Doc/library/functions.rst:1457 +#: library/functions.rst:1469 msgid "" "For a general Python object ``number``, ``round`` delegates to ``number." "__round__``." @@ -2622,7 +2694,7 @@ msgstr "" "Pour tout autre objet Python ``number``, ``round`` délègue à ``number." "__round__``." -#: ../Doc/library/functions.rst:1462 +#: library/functions.rst:1474 msgid "" "The behavior of :func:`round` for floats can be surprising: for example, " "``round(2.675, 2)`` gives ``2.67`` instead of the expected ``2.68``. This is " @@ -2631,32 +2703,32 @@ msgid "" "information." msgstr "" "Le comportement de :func:`round` avec les nombres à virgule flottante peut " -"être surprenant : par exemple ``round(2.675, 2)`` donne ``2.67`` au lieu de " -"``2.68``. Ce n'est pas un bug, mais dû au fait que la plupart des fractions " -"de décimaux ne peuvent pas être représentés exactement en nombre a virgule " -"flottante. Voir :ref:`tut-fp-issues` pour plus d'information." +"être surprenant : par exemple ``round(2.675, 2)`` donne ``2.67`` au lieu de " +"``2.68``. Ce n'est pas un bogue, mais dû au fait que la plupart des " +"fractions de décimaux ne peuvent pas être représentés exactement en nombre a " +"virgule flottante. Voir :ref:`tut-fp-issues` pour plus d'information." -#: ../Doc/library/functions.rst:1473 +#: library/functions.rst:1485 msgid "" "Return a new :class:`set` object, optionally with elements taken from " "*iterable*. ``set`` is a built-in class. See :class:`set` and :ref:`types-" "set` for documentation about this class." msgstr "" -"Donne un nouveau :class:`set`, dont les éléments peuvent être extraits " +"Renvoie un nouveau :class:`set`, dont les éléments peuvent être extraits " "d'*iterable*. ``set`` est une classe native. Voir :class:`set` et :ref:" "`types-set` pour la documentation de cette classe." -#: ../Doc/library/functions.rst:1477 +#: library/functions.rst:1489 msgid "" "For other containers see the built-in :class:`frozenset`, :class:`list`, :" "class:`tuple`, and :class:`dict` classes, as well as the :mod:`collections` " "module." msgstr "" -"D'autres conteneurs existent, typiquement : :class:`frozenset`, :class:" +"D'autres conteneurs existent, typiquement : :class:`frozenset`, :class:" "`list`, :class:`tuple`, et :class:`dict`, ainsi que le module :mod:" "`collections`." -#: ../Doc/library/functions.rst:1484 +#: library/functions.rst:1496 msgid "" "This is the counterpart of :func:`getattr`. The arguments are an object, a " "string and an arbitrary value. The string may name an existing attribute or " @@ -2664,13 +2736,13 @@ msgid "" "the object allows it. For example, ``setattr(x, 'foobar', 123)`` is " "equivalent to ``x.foobar = 123``." msgstr "" -"C'est le complément de :func:`getattr`. Les arguments sont : un objet, une " +"C'est le complément de :func:`getattr`. Les arguments sont : un objet, une " "chaîne, et une valeur de type arbitraire. La chaîne peut nommer un attribut " "existant ou un nouvel attribut. La fonction assigne la valeur à l'attribut, " "si l'objet l'autorise. Par exemple, ``setattr(x, 'foobar', 123)`` équivaut à " "``x.foobar = 123``." -#: ../Doc/library/functions.rst:1496 +#: library/functions.rst:1508 msgid "" "Return a :term:`slice` object representing the set of indices specified by " "``range(start, stop, step)``. The *start* and *step* arguments default to " @@ -2683,38 +2755,39 @@ msgid "" "i]``. See :func:`itertools.islice` for an alternate version that returns an " "iterator." msgstr "" -"Donne un objet :class:`slice` représentant un ensemble d'indices spécifiés " -"par ``range(start, stop, step)``. Les arguments *start* et *step* valent " -"``None`` par défaut. Les objets *slice* (tranches) ont les attributs " -"suivants en lecture seule : :attr:`~slice.start`, :attr:`~slice.stop`, et :" +"Renvoie une :term:`tranche ` représentant un ensemble d'indices " +"spécifiés par ``range(start, stop, step)``. Les arguments *start* et *step* " +"valent ``None`` par défaut. Les objets « tranches » ont les attributs " +"suivants en lecture seule : :attr:`~slice.start`, :attr:`~slice.stop`, et :" "attr:`~slice.step` qui valent simplement les trois arguments (ou leurs " -"valeur par défaut). Ils n'ont pas d'autres fonctionnalité explicite, " +"valeurs par défaut). Ils n'ont pas d'autre fonctionnalité explicite, " "cependant ils sont utilisés par *Numerical Python* et d'autres bibliothèques " -"tierces. Les objets *slice* sont aussi générés par la notation par indices " -"étendue. Par exemple ``a[start:stop:step]`` ou ``a[start:stop, i]``. Voir :" -"func:`itertools.islice` pour une version alternative donnant un itérateur." +"tierces. Les objets « tranches » sont aussi générés par la notation par " +"indice étendue. Par exemple ``a[start:stop:step]`` ou ``a[start:stop, i]``. " +"Voir :func:`itertools.islice` pour une version alternative renvoyant un " +"itérateur." -#: ../Doc/library/functions.rst:1509 +#: library/functions.rst:1521 msgid "Return a new sorted list from the items in *iterable*." -msgstr "Donne une nouvelle liste triée depuis les éléments d'*iterable*." +msgstr "Renvoie une nouvelle liste triée depuis les éléments d'*iterable*." -#: ../Doc/library/functions.rst:1511 +#: library/functions.rst:1523 msgid "" "Has two optional arguments which must be specified as keyword arguments." -msgstr "A deux arguments optionnels qui doivent être fournis par mot clef." +msgstr "A deux arguments optionnels qui doivent être fournis par mot clé." -#: ../Doc/library/functions.rst:1513 +#: library/functions.rst:1525 msgid "" "*key* specifies a function of one argument that is used to extract a " "comparison key from each element in *iterable* (for example, ``key=str." "lower``). The default value is ``None`` (compare the elements directly)." msgstr "" -"*key* spécifie une fonction d'un argument utilisé pour extraire une clef de " +"*key* spécifie une fonction d'un argument utilisé pour extraire une clé de " "comparaison de chaque élément de l'itérable (par exemple, ``key=str." "lower``). La valeur par défaut est ``None`` (compare les éléments " "directement)." -#: ../Doc/library/functions.rst:1517 +#: library/functions.rst:1529 msgid "" "*reverse* is a boolean value. If set to ``True``, then the list elements " "are sorted as if each comparison were reversed." @@ -2722,7 +2795,7 @@ msgstr "" "*reverse*, une valeur booléenne. Si elle est ``True``, la liste d'éléments " "est triée comme si toutes les comparaisons étaient inversées." -#: ../Doc/library/functions.rst:1520 +#: library/functions.rst:1532 msgid "" "Use :func:`functools.cmp_to_key` to convert an old-style *cmp* function to a " "*key* function." @@ -2730,7 +2803,7 @@ msgstr "" "Utilisez :func:`functools.cmp_to_key` pour convertir l'ancienne notation " "*cmp* en une fonction *key*." -#: ../Doc/library/functions.rst:1523 +#: library/functions.rst:1535 msgid "" "The built-in :func:`sorted` function is guaranteed to be stable. A sort is " "stable if it guarantees not to change the relative order of elements that " @@ -2738,21 +2811,21 @@ msgid "" "example, sort by department, then by salary grade)." msgstr "" "La fonction native :func:`sorted` est garantie stable. Un tri est stable " -"s'il garantie de ne pas changer l'ordre relatif des éléments égaux entre " -"eux. C'est utile pour trier en plusieurs passes, par exemple par département " +"s'il garantit de ne pas changer l'ordre relatif des éléments égaux entre " +"eux. C'est utile pour trier en plusieurs passes (par exemple par département " "puis par salaire)." -#: ../Doc/library/functions.rst:1528 +#: library/functions.rst:1540 msgid "" "For sorting examples and a brief sorting tutorial, see :ref:`sortinghowto`." msgstr "" "Pour des exemples de tris et un bref tutoriel, consultez :ref:`sortinghowto`." -#: ../Doc/library/functions.rst:1532 +#: library/functions.rst:1544 msgid "Transform a method into a static method." msgstr "Transforme une méthode en méthode statique." -#: ../Doc/library/functions.rst:1534 +#: library/functions.rst:1546 msgid "" "A static method does not receive an implicit first argument. To declare a " "static method, use this idiom::" @@ -2760,15 +2833,15 @@ msgstr "" "Une méthode statique ne reçoit pas de premier argument implicitement. Voilà " "comment déclarer une méthode statique ::" -#: ../Doc/library/functions.rst:1541 +#: library/functions.rst:1553 msgid "" "The ``@staticmethod`` form is a function :term:`decorator` -- see :ref:" "`function` for details." msgstr "" -"La forme ``@staticmethod`` est un :term:`decorator` de fonction. Consultez :" -"ref:`function` pour plus de détails." +"La forme ``@staticmethod`` est un :term:`décorateur ` de " +"fonction. Consultez :ref:`function` pour plus de détails." -#: ../Doc/library/functions.rst:1544 +#: library/functions.rst:1556 msgid "" "A static method can be called either on the class (such as ``C.f()``) or on " "an instance (such as ``C().f()``)." @@ -2776,7 +2849,7 @@ msgstr "" "Elle peut être appelée soit sur une classe (tel que ``C.f()``) ou sur une " "instance (tel que ``C().f()``)." -#: ../Doc/library/functions.rst:1547 +#: library/functions.rst:1559 msgid "" "Static methods in Python are similar to those found in Java or C++. Also " "see :func:`classmethod` for a variant that is useful for creating alternate " @@ -2786,7 +2859,7 @@ msgstr "" "ou en C++. Consultez :func:`classmethod` pour une variante utile pour créer " "des constructeurs alternatifs." -#: ../Doc/library/functions.rst:1551 +#: library/functions.rst:1563 msgid "" "Like all decorators, it is also possible to call ``staticmethod`` as a " "regular function and do something with its result. This is needed in some " @@ -2800,39 +2873,37 @@ msgstr "" "depuis le corps d'une classe, et souhaiteriez éviter sa transformation en " "méthode d'instance. Pour ces cas, faites comme suit ::" -#: ../Doc/library/functions.rst:1560 +#: library/functions.rst:1572 msgid "For more information on static methods, see :ref:`types`." msgstr "" "Pour plus d'informations sur les méthodes statiques, consultez :ref:`types`." -#: ../Doc/library/functions.rst:1571 +#: library/functions.rst:1583 msgid "" "Return a :class:`str` version of *object*. See :func:`str` for details." msgstr "" -"Donne une version sous forme de :class:`str` d'*object*. Voir :func:`str` " +"Renvoie une version d'*object* sous forme de :class:`str`. Voir :func:`str` " "pour plus de détails." -#: ../Doc/library/functions.rst:1573 +#: library/functions.rst:1585 msgid "" "``str`` is the built-in string :term:`class`. For general information about " "strings, see :ref:`textseq`." msgstr "" -"``str`` est la :term:`class` native des chaînes de caractères. Pour des " -"informations générales à propos des chaînes, consultez :ref:`textseq`." +"``str`` est la :term:`classe ` native des chaînes de caractères. Pour " +"des informations générales à propos des chaînes, consultez :ref:`textseq`." -#: ../Doc/library/functions.rst:1579 -#, fuzzy +#: library/functions.rst:1591 msgid "" "Sums *start* and the items of an *iterable* from left to right and returns " "the total. The *iterable*'s items are normally numbers, and the start value " "is not allowed to be a string." msgstr "" -"Additionne *start* et les éléments d'*iterable* de gauche à droite et en " -"donne le total. *start* vaut ``0`` par défaut. Les éléments d'*iterable* " -"sont normalement des nombres, et la valeur de *start* ne peut pas être une " -"chaîne." +"Additionne *start* et les éléments d'un *iterable* de gauche à droite et en " +"donne le total. Les éléments de `iterable` sont normalement des nombres, et " +"la valeur de *start* ne peut pas être une chaîne de caractères." -#: ../Doc/library/functions.rst:1583 +#: library/functions.rst:1595 msgid "" "For some use cases, there are good alternatives to :func:`sum`. The " "preferred, fast way to concatenate a sequence of strings is by calling ``''." @@ -2846,51 +2917,52 @@ msgstr "" "meilleure précision, voir :func:`math.fsum`. Pour concaténer une série " "d'itérables, utilisez plutôt :func:`itertools.chain`." -#: ../Doc/library/functions.rst:1589 -#, fuzzy +#: library/functions.rst:1601 msgid "The *start* parameter can be specified as a keyword argument." -msgstr "A deux arguments optionnels qui doivent être fournis par mot clef." +msgstr "Le paramètre *start* peut être spécifié comme un argument de mot-clé." -#: ../Doc/library/functions.rst:1594 -#, fuzzy +#: library/functions.rst:1606 msgid "" "Return a proxy object that delegates method calls to a parent or sibling " "class of *type*. This is useful for accessing inherited methods that have " "been overridden in a class." msgstr "" -"Donne un objet mandataire (*proxy object* en anglais) déléguant les appels " -"de méthode à une classe parente ou sœur de type *type*. C'est utile pour " -"accéder à des méthodes héritées et substituées dans la classe. L'ordre de " -"recherche est le même que celui utilisé par :func:`getattr` sauf que *type* " -"lui même est sauté." +"Renvoie un objet mandataire (*proxy object* en anglais) déléguant les appels " +"de méthode à une classe parente ou sœur de *type*. C'est utile pour accéder " +"aux méthodes héritées qui ont été remplacées dans une classe." -#: ../Doc/library/functions.rst:1598 +#: library/functions.rst:1610 msgid "" "The *object-or-type* determines the :term:`method resolution order` to be " "searched. The search starts from the class right after the *type*." msgstr "" +"Le *object-or-type* détermine quel :term:`ordre de résolution des méthodes " +"` est utilisé pour la recherche. La recherche " +"commence à partir de la classe qui suit immédiatement le *type*." -#: ../Doc/library/functions.rst:1602 +#: library/functions.rst:1614 msgid "" "For example, if :attr:`~class.__mro__` of *object-or-type* is ``D -> B -> C -" "> A -> object`` and the value of *type* is ``B``, then :func:`super` " "searches ``C -> A -> object``." msgstr "" +"Par exemple, si :attr:`~class.__mro__` de *object-or-type* est ``D -> B -> C " +"-> A -> object`` et la valeur de *type* est ``B``, alors :func:`super` " +"recherche ``C -> A -> object``." -#: ../Doc/library/functions.rst:1606 -#, fuzzy +#: library/functions.rst:1618 msgid "" "The :attr:`~class.__mro__` attribute of the *object-or-type* lists the " "method resolution search order used by both :func:`getattr` and :func:" "`super`. The attribute is dynamic and can change whenever the inheritance " "hierarchy is updated." msgstr "" -"L'attribut :attr:`~class.__mro__` de *type* liste l'ordre de recherche de la " -"méthode de résolution utilisée par :func:`getattr` et :func:`super`. " -"L'attribut est dynamique et peut changer lorsque la hiérarchie d'héritage " -"est modifiée." +"L'attribut :attr:`~class.__mro__` de *object-or-type* liste l'ordre de " +"recherche de la méthode de résolution utilisée par :func:`getattr` et :func:" +"`super`. L'attribut est dynamique et peut changer lorsque la hiérarchie " +"d'héritage est modifiée." -#: ../Doc/library/functions.rst:1611 +#: library/functions.rst:1623 msgid "" "If the second argument is omitted, the super object returned is unbound. If " "the second argument is an object, ``isinstance(obj, type)`` must be true. " @@ -2902,7 +2974,7 @@ msgstr "" "le second argument est un type, ``issubclass(type2, type)`` doit être vrai " "(c'est utile pour les méthodes de classe)." -#: ../Doc/library/functions.rst:1616 +#: library/functions.rst:1628 msgid "" "There are two typical use cases for *super*. In a class hierarchy with " "single inheritance, *super* can be used to refer to parent classes without " @@ -2915,17 +2987,18 @@ msgstr "" "maintenable. Cet usage se rapproche de l'usage de *super* dans d'autres " "langages de programmation." -#: ../Doc/library/functions.rst:1621 +#: library/functions.rst:1633 +#, fuzzy msgid "" "The second use case is to support cooperative multiple inheritance in a " "dynamic execution environment. This use case is unique to Python and is not " "found in statically compiled languages or languages that only support single " "inheritance. This makes it possible to implement \"diamond diagrams\" where " "multiple base classes implement the same method. Good design dictates that " -"this method have the same calling signature in every case (because the order " -"of calls is determined at runtime, because that order adapts to changes in " -"the class hierarchy, and because that order can include sibling classes that " -"are unknown prior to runtime)." +"such implementations have the same calling signature in every case (because " +"the order of calls is determined at runtime, because that order adapts to " +"changes in the class hierarchy, and because that order can include sibling " +"classes that are unknown prior to runtime)." msgstr "" "Le second est la gestion d'héritage multiple coopératif dans un " "environnement d'exécution dynamique. Cet usage est unique à Python, il ne se " @@ -2933,24 +3006,27 @@ msgstr "" "gérant que l'héritage simple. Cela rend possible d'implémenter un héritage " "en diamant dans lequel plusieurs classes parentes implémentent la même " "méthode. Une bonne conception implique que chaque méthode doit avoir la même " -"signature lors de leur appels dans tous les cas (parce que l'ordre des " -"appels est déterminée à l'exécution, parce que l'ordre s'adapte aux " -"changements dans la hiérarchie, et parce que l'ordre peut inclure des " -"classes sœurs inconnues avant l'exécution)." +"signature lors de leur appel dans tous les cas (parce que l'ordre des appels " +"est déterminée à l'exécution, parce que l'ordre s'adapte aux changements " +"dans la hiérarchie, et parce que l'ordre peut inclure des classes sœurs " +"inconnues avant l'exécution)." -#: ../Doc/library/functions.rst:1631 +#: library/functions.rst:1643 msgid "For both use cases, a typical superclass call looks like this::" msgstr "" "Dans tous les cas, un appel typique à une classe parente ressemble à ::" -#: ../Doc/library/functions.rst:1638 +#: library/functions.rst:1650 msgid "" "In addition to method lookups, :func:`super` also works for attribute " "lookups. One possible use case for this is calling :term:`descriptors " "` in a parent or sibling class." msgstr "" +"En plus de la recherche de méthodes, :func:`super` fonctionne également pour " +"la recherche d'attributs. Un cas d'utilisation possible est l'appel d'un :" +"term:`descripteur ` d'une classe parente ou sœur." -#: ../Doc/library/functions.rst:1642 +#: library/functions.rst:1654 msgid "" "Note that :func:`super` is implemented as part of the binding process for " "explicit dotted attribute lookups such as ``super().__getitem__(name)``. It " @@ -2967,7 +3043,7 @@ msgstr "" "n'est pas défini pour les recherches implicites via des instructions ou des " "opérateurs tel que ``super()[name]``." -#: ../Doc/library/functions.rst:1649 +#: library/functions.rst:1661 msgid "" "Also note that, aside from the zero argument form, :func:`super` is not " "limited to use inside methods. The two argument form specifies the " @@ -2976,7 +3052,7 @@ msgid "" "necessary details to correctly retrieve the class being defined, as well as " "accessing the current instance for ordinary methods." msgstr "" -"Notez aussi que, en dehors de sa forme sans arguments, la :func:`super` peut " +"Notez aussi que, en dehors de sa forme sans arguments, :func:`super` peut " "être utilisée en dehors des méthodes. La forme à deux arguments est précise " "et donne tous les arguments exactement, donnant les références appropriées. " "La forme sans arguments fonctionne seulement à l'intérieur d'une définition " @@ -2984,7 +3060,7 @@ msgstr "" "propos de la classe en cours de définition, ainsi qu'accéder à l'instance " "courante pour les méthodes ordinaires." -#: ../Doc/library/functions.rst:1656 +#: library/functions.rst:1668 msgid "" "For practical suggestions on how to design cooperative classes using :func:" "`super`, see `guide to using super() `_." -#: ../Doc/library/functions.rst:1665 +#: library/functions.rst:1677 msgid "" "Rather than being a function, :class:`tuple` is actually an immutable " "sequence type, as documented in :ref:`typesseq-tuple` and :ref:`typesseq`." @@ -3002,50 +3078,65 @@ msgstr "" "Plutôt qu'être une fonction, :class:`tuple` est en fait un type de séquence " "immuable, tel que documenté dans :ref:`typesseq-tuple` et :ref:`typesseq`." -#: ../Doc/library/functions.rst:1674 +#: library/functions.rst:1686 msgid "" "With one argument, return the type of an *object*. The return value is a " "type object and generally the same object as returned by :attr:`object." "__class__ `." msgstr "" -"Avec un argument, donne le type d'*object*. La valeur donnée est un objet " -"type et généralement la même que la valeur de l'attribut :attr:`object." +"Avec un argument, renvoie le type d'*object*. La valeur renvoyée est un " +"objet type et généralement la même que la valeur de l'attribut :attr:`object." "__class__ `." -#: ../Doc/library/functions.rst:1678 +#: library/functions.rst:1690 msgid "" "The :func:`isinstance` built-in function is recommended for testing the type " "of an object, because it takes subclasses into account." msgstr "" "La fonction native :func:`isinstance` est recommandée pour tester le type " -"d'un objet car elle prend en compte l'héritage." +"d'un objet, car elle prend en compte l'héritage." -#: ../Doc/library/functions.rst:1682 +#: library/functions.rst:1694 +#, fuzzy msgid "" "With three arguments, return a new type object. This is essentially a " "dynamic form of the :keyword:`class` statement. The *name* string is the " -"class name and becomes the :attr:`~definition.__name__` attribute; the " -"*bases* tuple itemizes the base classes and becomes the :attr:`~class." -"__bases__` attribute; and the *dict* dictionary is the namespace containing " -"definitions for class body and is copied to a standard dictionary to become " -"the :attr:`~object.__dict__` attribute. For example, the following two " -"statements create identical :class:`type` objects:" +"class name and becomes the :attr:`~definition.__name__` attribute. The " +"*bases* tuple contains the base classes and becomes the :attr:`~class." +"__bases__` attribute; if empty, :class:`object`, the ultimate base of all " +"classes, is added. The *dict* dictionary contains attribute and method " +"definitions for the class body; it may be copied or wrapped before becoming " +"the :attr:`~object.__dict__` attribute. The following two statements create " +"identical :class:`type` objects:" msgstr "" "Avec trois arguments, renvoie un nouveau type. C'est essentiellement une " "forme dynamique de l'instruction :keyword:`class`. La chaîne *name* est le " -"nom de la classe et deviendra l'attribut :attr:`~definition.__name__` ; le " -"*tuple* *bases* contient les classes mères et deviendra l'attribut :attr:" +"nom de la classe et deviendra l'attribut :attr:`~definition.__name__` ; le n-" +"uplet *bases* contient les classes mères et deviendra l'attribut :attr:" "`~class.__bases__` ; et le dictionnaire *dict* est l'espace de nommage " "contenant les définitions du corps de la classe, il est copié vers un " "dictionnaire standard pour devenir l'attribut :attr:`~object.__dict__`. Par " "exemple, les deux instructions suivantes créent deux instances identiques " "de :class:`type` :" -#: ../Doc/library/functions.rst:1696 +#: library/functions.rst:1709 msgid "See also :ref:`bltin-type-objects`." msgstr "Voir aussi :ref:`bltin-type-objects`." -#: ../Doc/library/functions.rst:1698 +#: library/functions.rst:1711 +msgid "" +"Keyword arguments provided to the three argument form are passed to the " +"appropriate metaclass machinery (usually :meth:`~object.__init_subclass__`) " +"in the same way that keywords in a class definition (besides *metaclass*) " +"would." +msgstr "" + +#: library/functions.rst:1716 +#, fuzzy +msgid "See also :ref:`class-customization`." +msgstr "Voir aussi :ref:`typeiter`." + +#: library/functions.rst:1718 msgid "" "Subclasses of :class:`type` which don't override ``type.__new__`` may no " "longer use the one-argument form to get the type of an object." @@ -3054,7 +3145,7 @@ msgstr "" "ne devraient plus utiliser la forme à un argument pour récupérer le type " "d'un objet." -#: ../Doc/library/functions.rst:1704 +#: library/functions.rst:1724 msgid "" "Return the :attr:`~object.__dict__` attribute for a module, class, instance, " "or any other object with a :attr:`~object.__dict__` attribute." @@ -3063,20 +3154,20 @@ msgstr "" "instance ou de n'importe quel objet avec un attribut :attr:`~object." "__dict__`." -#: ../Doc/library/functions.rst:1707 +#: library/functions.rst:1727 msgid "" "Objects such as modules and instances have an updateable :attr:`~object." "__dict__` attribute; however, other objects may have write restrictions on " "their :attr:`~object.__dict__` attributes (for example, classes use a :class:" "`types.MappingProxyType` to prevent direct dictionary updates)." msgstr "" -"Les objets tels que les modules et les instances on un attribut :attr:" +"Les objets tels que les modules et les instances ont un attribut :attr:" "`~object.__dict__` modifiable ; Cependant, d'autres objets peuvent avoir des " "restrictions en écriture sur leurs attributs :attr:`~object.__dict__` (par " -"exemple, les classes utilisent un :class:`types.MappingProxyType` pour " +"exemple, les classes utilisent un :class:`types.MappingProxyType` pour " "éviter les modifications directes du dictionnaire)." -#: ../Doc/library/functions.rst:1712 +#: library/functions.rst:1732 msgid "" "Without an argument, :func:`vars` acts like :func:`locals`. Note, the " "locals dictionary is only useful for reads since updates to the locals " @@ -3086,11 +3177,18 @@ msgstr "" "dictionnaire des variables locales n'est utile qu'en lecture, car ses " "écritures sont ignorées." -#: ../Doc/library/functions.rst:1719 +#: library/functions.rst:1736 +msgid "" +"A :exc:`TypeError` exception is raised if an object is specified but it " +"doesn't have a :attr:`~object.__dict__` attribute (for example, if its class " +"defines the :attr:`~object.__slots__` attribute)." +msgstr "" + +#: library/functions.rst:1742 msgid "Make an iterator that aggregates elements from each of the iterables." msgstr "Construit un itérateur agrégeant les éléments de tous les itérables." -#: ../Doc/library/functions.rst:1721 +#: library/functions.rst:1744 msgid "" "Returns an iterator of tuples, where the *i*-th tuple contains the *i*-th " "element from each of the argument sequences or iterables. The iterator " @@ -3098,13 +3196,13 @@ msgid "" "argument, it returns an iterator of 1-tuples. With no arguments, it returns " "an empty iterator. Equivalent to::" msgstr "" -"Donne un itérateur de tuples, où le *i*-ième tuple contiens le *i*-ième " -"élément de chacune des séquences ou itérables fournis. L'itérateur s'arrête " -"lorsque le plus petit itérable fourni est épuisé. Avec un seul argument " -"itérable, elle donne un itérateur sur des *tuples* d'un élément. Sans " -"arguments, elle donne un itérateur vide. Équivalent à ::" +"Renvoie un itérateur de n-uplets, où le *i*\\ :sup:`e` n-uplet contient le " +"*i*\\ :sup:`e` élément de chacune des séquences ou itérables fournis. " +"L'itérateur s'arrête lorsque le plus petit itérable fourni est épuisé. Avec " +"un seul argument itérable, elle renvoie un itérateur sur des n-uplets d'un " +"élément. Sans argument, elle renvoie un itérateur vide. Équivalent à ::" -#: ../Doc/library/functions.rst:1740 +#: library/functions.rst:1763 msgid "" "The left-to-right evaluation order of the iterables is guaranteed. This " "makes possible an idiom for clustering a data series into n-length groups " @@ -3112,13 +3210,13 @@ msgid "" "so that each output tuple has the result of ``n`` calls to the iterator. " "This has the effect of dividing the input into n-length chunks." msgstr "" -"Il est garanti que les itérables soient évalués de gauche a droite. Cela " +"Il est garanti que les itérables soient évalués de gauche à droite. Cela " "rend possible de grouper une séquence de données en groupes de taille *n* " "via ``zip(*[iter(s)]*n)``. Cela duplique le *même* itérateur ``n`` fois tel " -"que le tuple obtenu contient le résultat de ``n`` appels à l'itérateur. Cela " -"a pour effet de diviser la séquence en morceaux de taille *n*." +"que le n-uplet obtenu contient le résultat de ``n`` appels à l'itérateur. " +"Cela a pour effet de diviser la séquence en morceaux de taille *n*." -#: ../Doc/library/functions.rst:1746 +#: library/functions.rst:1769 msgid "" ":func:`zip` should only be used with unequal length inputs when you don't " "care about trailing, unmatched values from the longer iterables. If those " @@ -3126,10 +3224,10 @@ msgid "" msgstr "" ":func:`zip` ne devrait être utilisée avec des itérables de longueur " "différente que lorsque les dernières données des itérables les plus longs " -"peuvent être ignorées. Si c'est valeurs sont importantes, utilisez plutôt :" +"peuvent être ignorées. Si ces valeurs sont importantes, utilisez plutôt :" "func:`itertools.zip_longest`." -#: ../Doc/library/functions.rst:1750 +#: library/functions.rst:1773 msgid "" ":func:`zip` in conjunction with the ``*`` operator can be used to unzip a " "list::" @@ -3137,7 +3235,7 @@ msgstr "" ":func:`zip` peut être utilisée conjointement avec l'opérateur ``*`` pour " "dézipper une liste ::" -#: ../Doc/library/functions.rst:1771 +#: library/functions.rst:1794 msgid "" "This is an advanced function that is not needed in everyday Python " "programming, unlike :func:`importlib.import_module`." @@ -3145,7 +3243,7 @@ msgstr "" "C'est une fonction avancée qui n'est pas fréquemment nécessaire, " "contrairement à :func:`importlib.import_module`." -#: ../Doc/library/functions.rst:1774 +#: library/functions.rst:1797 msgid "" "This function is invoked by the :keyword:`import` statement. It can be " "replaced (by importing the :mod:`builtins` module and assigning to " @@ -3159,13 +3257,14 @@ msgstr "" "Cette fonction est invoquée via l'instruction :keyword:`import`. Elle peut " "être remplacée (en important le module :mod:`builtins` et en y remplaçant " "``builtins.__import__``) afin de changer la sémantique de l'instruction :" -"keyword:`!import`, mais c'est extrêmement déconseillé car il est plus simple " -"d'utiliser des points d'entrées pour les importations (*import hooks*, voir " -"la :pep:`302`) pour le même résultat sans gêner du code s'attendant à " -"trouver l'implémentation par défaut. L'usage direct de :func:`__import__` " -"est aussi déconseillé en faveur de :func:`importlib.import_module`." +"keyword:`!import`, mais c'est extrêmement déconseillé, car il est plus " +"simple d'utiliser des points d'entrées pour les importations (*import " +"hooks*, voir la :pep:`302`) pour le même résultat sans gêner du code " +"s'attendant à trouver l'implémentation par défaut. L'usage direct de :func:" +"`__import__` est aussi déconseillé en faveur de :func:`importlib." +"import_module`." -#: ../Doc/library/functions.rst:1783 +#: library/functions.rst:1806 msgid "" "The function imports the module *name*, potentially using the given " "*globals* and *locals* to determine how to interpret the name in a package " @@ -3181,7 +3280,7 @@ msgstr "" "l'argument *locals* et n'utilise *globals* que pour déterminer le contexte " "du paquet de l'instruction :keyword:`import`." -#: ../Doc/library/functions.rst:1790 +#: library/functions.rst:1813 msgid "" "*level* specifies whether to use absolute or relative imports. ``0`` (the " "default) means only perform absolute imports. Positive values for *level* " @@ -3194,7 +3293,7 @@ msgstr "" "positive indique le nombre de dossiers parents relativement au dossier du " "module appelant :func:`__import__` (voir la :pep:`328`)." -#: ../Doc/library/functions.rst:1796 +#: library/functions.rst:1819 msgid "" "When the *name* variable is of the form ``package.module``, normally, the " "top-level package (the name up till the first dot) is returned, *not* the " @@ -3202,31 +3301,31 @@ msgid "" "given, the module named by *name* is returned." msgstr "" "Lorsque la variable *name* est de la forme ``package.module``, normalement, " -"le paquet le plus haut (le nom jusqu'au premier point) est donné, et *pas* " +"le paquet le plus haut (le nom jusqu'au premier point) est renvoyé, et *pas* " "le module nommé par *name*. Cependant, lorsqu'un argument *fromlist* est " -"fourni, le module nommé par *name* est donné." +"fourni, le module nommé par *name* est renvoyé." -#: ../Doc/library/functions.rst:1801 +#: library/functions.rst:1824 msgid "" "For example, the statement ``import spam`` results in bytecode resembling " "the following code::" msgstr "" -"Par exemple, l'instruction ``import spam`` donne un code intermédiaire " +"Par exemple, l'instruction ``import spam`` renvoie un code intermédiaire " "(*bytecode* en anglais) ressemblant au code suivant ::" -#: ../Doc/library/functions.rst:1806 +#: library/functions.rst:1829 msgid "The statement ``import spam.ham`` results in this call::" -msgstr "L'instruction ``import ham.ham`` appelle ::" +msgstr "L'instruction ``import spam.ham`` appelle ::" -#: ../Doc/library/functions.rst:1810 +#: library/functions.rst:1833 msgid "" "Note how :func:`__import__` returns the toplevel module here because this is " "the object that is bound to a name by the :keyword:`import` statement." msgstr "" -"Notez comment :func:`__import__` donne le module le plus haut ici parce que " -"c'est l'objet lié à un nom par l'instruction :keyword:`import`." +"Notez comment :func:`__import__` renvoie le module le plus haut ici parce " +"que c'est l'objet lié à un nom par l'instruction :keyword:`import`." -#: ../Doc/library/functions.rst:1813 +#: library/functions.rst:1836 msgid "" "On the other hand, the statement ``from spam.ham import eggs, sausage as " "saus`` results in ::" @@ -3234,16 +3333,16 @@ msgstr "" "En revanche, l'instruction ``from spam.ham import eggs, sausage as saus`` " "donne ::" -#: ../Doc/library/functions.rst:1820 +#: library/functions.rst:1843 msgid "" "Here, the ``spam.ham`` module is returned from :func:`__import__`. From " "this object, the names to import are retrieved and assigned to their " "respective names." msgstr "" -"Ici le module ``spam.ham`` est donné par :func:`__import__`. De cet objet, " +"Ici le module ``spam.ham`` est renvoyé par :func:`__import__`. De cet objet, " "les noms à importer sont récupérés et assignés à leurs noms respectifs." -#: ../Doc/library/functions.rst:1824 +#: library/functions.rst:1847 msgid "" "If you simply want to import a module (potentially within a package) by " "name, use :func:`importlib.import_module`." @@ -3251,7 +3350,7 @@ msgstr "" "Si vous voulez simplement importer un module (potentiellement dans un " "paquet) par son nom, utilisez :func:`importlib.import_module`." -#: ../Doc/library/functions.rst:1827 +#: library/functions.rst:1850 msgid "" "Negative values for *level* are no longer supported (which also changes the " "default value to 0)." @@ -3259,11 +3358,11 @@ msgstr "" "Des valeurs négatives pour *level* ne sont plus gérées (ce qui change la " "valeur par défaut pour 0)." -#: ../Doc/library/functions.rst:1833 +#: library/functions.rst:1856 msgid "Footnotes" msgstr "Notes" -#: ../Doc/library/functions.rst:1834 +#: library/functions.rst:1857 msgid "" "Note that the parser only accepts the Unix-style end of line convention. If " "you are reading the code from a file, make sure to use newline conversion " diff --git a/library/functools.po b/library/functools.po index 627a97068a..fd0434ebea 100644 --- a/library/functools.po +++ b/library/functools.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" +"POT-Creation-Date: 2020-05-23 11:38+0200\n" "PO-Revision-Date: 2019-12-11 11:16+0100\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -15,7 +15,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.0.2\n" -#: ../Doc/library/functools.rst:2 +#: library/functools.rst:2 msgid "" ":mod:`functools` --- Higher-order functions and operations on callable " "objects" @@ -23,11 +23,11 @@ msgstr "" ":mod:`functools` --- Fonctions de haut niveau et opérations sur des objets " "appelables" -#: ../Doc/library/functools.rst:13 +#: library/functools.rst:13 msgid "**Source code:** :source:`Lib/functools.py`" msgstr "**Code source :** :source:`Lib/functools.py`" -#: ../Doc/library/functools.rst:17 +#: library/functools.rst:17 msgid "" "The :mod:`functools` module is for higher-order functions: functions that " "act on or return other functions. In general, any callable object can be " @@ -38,11 +38,11 @@ msgstr "" "tout objet appelable peut être utilisé comme une fonction pour les besoins " "de ce module." -#: ../Doc/library/functools.rst:21 +#: library/functools.rst:21 msgid "The :mod:`functools` module defines the following functions:" msgstr "Le module :mod:`functools` définit les fonctions suivantes :" -#: ../Doc/library/functools.rst:25 +#: library/functools.rst:25 msgid "" "Transform a method of a class into a property whose value is computed once " "and then cached as a normal attribute for the life of the instance. Similar " @@ -50,12 +50,11 @@ msgid "" "computed properties of instances that are otherwise effectively immutable." msgstr "" -#: ../Doc/library/functools.rst:30 ../Doc/library/functools.rst:70 -#: ../Doc/library/functools.rst:276 +#: library/functools.rst:70 library/functools.rst:275 msgid "Example::" msgstr "Exemple ::" -#: ../Doc/library/functools.rst:48 +#: library/functools.rst:48 msgid "" "This decorator requires that the ``__dict__`` attribute on each instance be " "a mutable mapping. This means it will not work with some types, such as " @@ -65,7 +64,7 @@ msgid "" "don't provide a ``__dict__`` attribute at all)." msgstr "" -#: ../Doc/library/functools.rst:58 +#: library/functools.rst:58 msgid "" "Transform an old-style comparison function to a :term:`key function`. Used " "with tools that accept key functions (such as :func:`sorted`, :func:`min`, :" @@ -81,7 +80,7 @@ msgstr "" "portage de fonctions python 2 utilisant des fonctions de comparaison vers " "Python 3." -#: ../Doc/library/functools.rst:65 +#: library/functools.rst:65 msgid "" "A comparison function is any callable that accept two arguments, compares " "them, and returns a negative number for less-than, zero for equality, or a " @@ -94,13 +93,13 @@ msgstr "" "un appelable qui prend un argument et retourne une autre valeur qui sera " "utilisée comme clé de tri." -#: ../Doc/library/functools.rst:74 +#: library/functools.rst:74 msgid "" "For sorting examples and a brief sorting tutorial, see :ref:`sortinghowto`." msgstr "" "Pour des exemples de tris et un bref tutoriel, consultez :ref:`sortinghowto`." -#: ../Doc/library/functools.rst:82 +#: library/functools.rst:82 msgid "" "Decorator to wrap a function with a memoizing callable that saves up to the " "*maxsize* most recent calls. It can save time when an expensive or I/O " @@ -111,7 +110,7 @@ msgstr "" "une fonction coûteuse en ressources est souvent appelée avec les mêmes " "arguments." -#: ../Doc/library/functools.rst:86 +#: library/functools.rst:86 msgid "" "Since a dictionary is used to cache results, the positional and keyword " "arguments to the function must be hashable." @@ -119,7 +118,7 @@ msgstr "" "Comme un dictionnaire est utilisé pour mettre en cache les résultats, les " "arguments positionnels et nommés de la fonction doivent être hachables." -#: ../Doc/library/functools.rst:89 +#: library/functools.rst:89 msgid "" "Distinct argument patterns may be considered to be distinct calls with " "separate cache entries. For example, `f(a=1, b=2)` and `f(b=2, a=1)` differ " @@ -130,24 +129,25 @@ msgstr "" "`f(a=1, b=2)` et `f(b=2, a=1)` n'ont pas leurs arguments dans le même ordre, " "ce qui peut conduire à des entrées séparées dans le cache." -#: ../Doc/library/functools.rst:94 +#: library/functools.rst:94 msgid "" "If *user_function* is specified, it must be a callable. This allows the " "*lru_cache* decorator to be applied directly to a user function, leaving the " "*maxsize* at its default value of 128::" msgstr "" +"Si *user_function* est défini, ce doit être un appelable. Ceci permet à " +"*lru_cache* d'être appliqué directement sur une fonction de l'utilisateur, " +"sans préciser *maxsize* (qui est alors défini à sa valeur par défaut, 128) ::" -#: ../Doc/library/functools.rst:103 +#: library/functools.rst:103 msgid "" "If *maxsize* is set to ``None``, the LRU feature is disabled and the cache " -"can grow without bound. The LRU feature performs best when *maxsize* is a " -"power-of-two." +"can grow without bound." msgstr "" "Si *maxsize* est à ``None``, la fonctionnalité LRU est désactivée et le " -"cache peut grossir sans limite. La fonctionnalité LRU fonctionne mieux " -"quand *maxsize* est une puissance de deux." +"cache peut grossir sans limite." -#: ../Doc/library/functools.rst:107 +#: library/functools.rst:106 msgid "" "If *typed* is set to true, function arguments of different types will be " "cached separately. For example, ``f(3)`` and ``f(3.0)`` will be treated as " @@ -157,7 +157,7 @@ msgstr "" "séparément. Par exemple, ``f(3)`` et ``f(3.0)`` seront considérés comme des " "appels distincts avec des résultats distincts." -#: ../Doc/library/functools.rst:111 +#: library/functools.rst:110 msgid "" "To help measure the effectiveness of the cache and tune the *maxsize* " "parameter, the wrapped function is instrumented with a :func:`cache_info` " @@ -171,7 +171,7 @@ msgstr "" "*misses*, *maxsize* et *currsize*. Dans un environnement *multithread*, les " "succès et échecs d'appel du cache sont approximatifs." -#: ../Doc/library/functools.rst:117 +#: library/functools.rst:116 msgid "" "The decorator also provides a :func:`cache_clear` function for clearing or " "invalidating the cache." @@ -179,7 +179,7 @@ msgstr "" "Le décorateur fournit également une fonction :func:`cache_clear` pour vider " "ou invalider le cache." -#: ../Doc/library/functools.rst:120 +#: library/functools.rst:119 msgid "" "The original underlying function is accessible through the :attr:" "`__wrapped__` attribute. This is useful for introspection, for bypassing " @@ -189,7 +189,7 @@ msgstr "" "`__wrapped__`. Ceci est utile pour l'introspection, pour outrepasser le " "cache, ou pour ré-englober la fonction avec un cache différent." -#: ../Doc/library/functools.rst:124 +#: library/functools.rst:123 msgid "" "An `LRU (least recently used) cache `_ works best when the most recent calls are the " @@ -206,7 +206,7 @@ msgstr "" "limite du cache permet de s'assurer que le cache ne grossisse pas sans " "limite sur les processus longs comme les serveurs web." -#: ../Doc/library/functools.rst:131 +#: library/functools.rst:130 msgid "" "In general, the LRU cache should only be used when you want to reuse " "previously computed values. Accordingly, it doesn't make sense to cache " @@ -219,11 +219,11 @@ msgstr "" "mutable distinct à chaque appel ou des fonctions *impures* telles que ``!" "time()`` ou ``!random()``." -#: ../Doc/library/functools.rst:136 +#: library/functools.rst:135 msgid "Example of an LRU cache for static web content::" msgstr "Exemple d'un cache LRU pour du contenu web statique ::" -#: ../Doc/library/functools.rst:155 +#: library/functools.rst:154 msgid "" "Example of efficiently computing `Fibonacci numbers `_ using a cache to implement a `dynamic " @@ -234,16 +234,15 @@ msgstr "" "technique de `programmation dynamique `_ ::" -#: ../Doc/library/functools.rst:175 +#: library/functools.rst:174 msgid "Added the *typed* option." msgstr "L'option *typed* a été ajoutée." -#: ../Doc/library/functools.rst:178 -#, fuzzy +#: library/functools.rst:177 msgid "Added the *user_function* option." -msgstr "L'option *typed* a été ajoutée." +msgstr "Ajout de l'option *user_function*." -#: ../Doc/library/functools.rst:183 +#: library/functools.rst:182 msgid "" "Given a class defining one or more rich comparison ordering methods, this " "class decorator supplies the rest. This simplifies the effort involved in " @@ -253,7 +252,7 @@ msgstr "" "riches, ce décorateur de classe fournit le reste. Ceci simplifie l'effort à " "fournir dans la spécification de toutes les opérations de comparaison riche :" -#: ../Doc/library/functools.rst:187 +#: library/functools.rst:186 msgid "" "The class must define one of :meth:`__lt__`, :meth:`__le__`, :meth:`__gt__`, " "or :meth:`__ge__`. In addition, the class should supply an :meth:`__eq__` " @@ -263,11 +262,11 @@ msgstr "" "`__le__`, :meth:`__gt__`, or :meth:`__ge__`. De plus, la classe doit fournir " "une méthode :meth:`__eq__`." -#: ../Doc/library/functools.rst:191 +#: library/functools.rst:190 msgid "For example::" msgstr "Par exemple ::" -#: ../Doc/library/functools.rst:211 +#: library/functools.rst:210 msgid "" "While this decorator makes it easy to create well behaved totally ordered " "types, it *does* come at the cost of slower execution and more complex stack " @@ -282,7 +281,7 @@ msgstr "" "méthodes de comparaison riches résoudra normalement vos problèmes de " "rapidité." -#: ../Doc/library/functools.rst:220 +#: library/functools.rst:219 msgid "" "Returning NotImplemented from the underlying comparison function for " "unrecognised types is now supported." @@ -290,7 +289,7 @@ msgstr "" "Retourner NotImplemented dans les fonction de comparaison sous-jacentes pour " "les types non reconnus est maintenant supporté." -#: ../Doc/library/functools.rst:226 +#: library/functools.rst:225 msgid "" "Return a new :ref:`partial object` which when called will " "behave like *func* called with the positional arguments *args* and keyword " @@ -304,13 +303,13 @@ msgstr "" "à l'appel, ils sont ajoutés à *args*. Si plus d'arguments nommés sont " "fournis, ils étendent et surchargent *keywords*. À peu près équivalent à ::" -#: ../Doc/library/functools.rst:242 +#: library/functools.rst:241 msgid "" -"The :func:`partial` is used for partial function application which \"freezes" -"\" some portion of a function's arguments and/or keywords resulting in a new " -"object with a simplified signature. For example, :func:`partial` can be " -"used to create a callable that behaves like the :func:`int` function where " -"the *base* argument defaults to two:" +"The :func:`partial` is used for partial function application which " +"\"freezes\" some portion of a function's arguments and/or keywords resulting " +"in a new object with a simplified signature. For example, :func:`partial` " +"can be used to create a callable that behaves like the :func:`int` function " +"where the *base* argument defaults to two:" msgstr "" ":func:`partial` est utilisé pour une application de fonction partielle qui " "\"gèle\" une portion des arguments et/ou mots-clés d'une fonction donnant un " @@ -318,7 +317,7 @@ msgstr "" "peut être utilisé pour créer un appelable qui se comporte comme la fonction :" "func:`int` ou l'argument *base* est deux par défaut :" -#: ../Doc/library/functools.rst:257 +#: library/functools.rst:256 msgid "" "Return a new :class:`partialmethod` descriptor which behaves like :class:" "`partial` except that it is designed to be used as a method definition " @@ -328,7 +327,7 @@ msgstr "" "comme :class:`partial` sauf qu'il est fait pour être utilisé comme une " "définition de méthode plutôt que d'être appelé directement." -#: ../Doc/library/functools.rst:261 +#: library/functools.rst:260 msgid "" "*func* must be a :term:`descriptor` or a callable (objects which are both, " "like normal functions, are handled as descriptors)." @@ -336,7 +335,7 @@ msgstr "" "*func* doit être un :term:`descriptor` ou un appelable (les objets qui sont " "les deux, comme les fonction normales, sont gérés comme des descripteurs)." -#: ../Doc/library/functools.rst:264 +#: library/functools.rst:263 msgid "" "When *func* is a descriptor (such as a normal Python function, :func:" "`classmethod`, :func:`staticmethod`, :func:`abstractmethod` or another " @@ -350,7 +349,7 @@ msgstr "" "au descripteur sous-jacent, et un :ref:`objet partiel ` " "approprié est renvoyé comme résultat." -#: ../Doc/library/functools.rst:270 +#: library/functools.rst:269 msgid "" "When *func* is a non-descriptor callable, an appropriate bound method is " "created dynamically. This behaves like a normal Python function when used as " @@ -364,8 +363,7 @@ msgstr "" "premier argument positionnel, avant les *args* et *keywords* fournis au " "constructeur :class:`partialmethod`." -#: ../Doc/library/functools.rst:301 -#, fuzzy +#: library/functools.rst:300 msgid "" "Apply *function* of two arguments cumulatively to the items of *iterable*, " "from left to right, so as to reduce the iterable to a single value. For " @@ -378,26 +376,28 @@ msgid "" "the first item is returned." msgstr "" "Applique *function* avec deux arguments cumulativement aux éléments de " -"*sequence*, de gauche à droite, pour réduire la séquence à une valeur " -"unique. Par exemple, ``reduce(lambda x, y: x+y, [1, 2, 3, 4, 5])`` calcule " -"``((((1+2)+3)+4)+5)``. Le premier argument, *x*, et la valeur de cumul et le " -"deuxième, *y*, est la valeur de mise à jour depuis *sequence*. Si " +"*iterable*, de gauche à droite, pour réduire la séquence à une valeur " +"unique. Par exemple, ``reduce(lambda x, y: x+y, [1, 2, 3, 4, 5])`` calcule " +"``((((1+2)+3)+4)+5)``. L'argument de gauche, *x*, est la valeur de cumul et " +"celui de droite, *y*, est la valeur mise à jour depuis *iterable*. Si " "l'argument optionnel *initializer* est présent, il est placé avant les " "éléments de la séquence dans le calcul, et sert de valeur par défaut quand " -"la séquence est vide. Si *initializer* n'est pas renseigné et que " -"*sequence* ne contient qu'un élément, le premier élément est retourné." +"la séquence est vide. Si *initializer* n'est pas renseigné et que *iterable* " +"ne contient qu'un élément, le premier élément est renvoyé." -#: ../Doc/library/functools.rst:310 +#: library/functools.rst:309 msgid "Roughly equivalent to::" -msgstr "Sensiblement équivalent à : ::" +msgstr "Sensiblement équivalent à ::" -#: ../Doc/library/functools.rst:322 +#: library/functools.rst:321 msgid "" "See :func:`itertools.accumulate` for an iterator that yields all " "intermediate values." msgstr "" +"Voir :func:`itertools.accumulate` pour un itérateur qui génère toutes les " +"valeurs intermédiaires." -#: ../Doc/library/functools.rst:327 +#: library/functools.rst:326 msgid "" "Transform a function into a :term:`single-dispatch ` :term:" "`generic function`." @@ -405,7 +405,7 @@ msgstr "" "Transforme une fonction en une :term:`fonction générique ` :term:`single-dispatch `." -#: ../Doc/library/functools.rst:330 +#: library/functools.rst:329 msgid "" "To define a generic function, decorate it with the ``@singledispatch`` " "decorator. Note that the dispatch happens on the type of the first argument, " @@ -415,7 +415,7 @@ msgstr "" "``@singledispatch``. Noter que la distribution est effectuée sur le type du " "premier argument, donc la fonction doit être créée en conséquence ::" -#: ../Doc/library/functools.rst:341 +#: library/functools.rst:340 msgid "" "To add overloaded implementations to the function, use the :func:`register` " "attribute of the generic function. It is a decorator. For functions " @@ -427,7 +427,7 @@ msgstr "" "Pour les fonctions annotées avec des types, le décorateur infère le type du " "premier argument automatiquement ::" -#: ../Doc/library/functools.rst:359 +#: library/functools.rst:358 msgid "" "For code which doesn't use type annotations, the appropriate type argument " "can be passed explicitly to the decorator itself::" @@ -435,7 +435,7 @@ msgstr "" "Pour le code qui n’utilise pas les indications de type, le type souhaité " "peut être passé explicitement en argument au décorateur ::" -#: ../Doc/library/functools.rst:370 +#: library/functools.rst:369 msgid "" "To enable registering lambdas and pre-existing functions, the :func:" "`register` attribute can be used in a functional form::" @@ -443,7 +443,7 @@ msgstr "" "Pour permettre l'enregistrement de *lambdas* et de fonctions pré-existantes, " "l'attribut :func:`register` peut être utilisé sous forme fonctionnelle ::" -#: ../Doc/library/functools.rst:378 +#: library/functools.rst:377 msgid "" "The :func:`register` attribute returns the undecorated function which " "enables decorator stacking, pickling, as well as creating unit tests for " @@ -453,7 +453,7 @@ msgstr "" "d'empiler les décorateurs, la sérialisation, et la création de tests " "unitaires pour chaque variante indépendamment ::" -#: ../Doc/library/functools.rst:392 +#: library/functools.rst:391 msgid "" "When called, the generic function dispatches on the type of the first " "argument::" @@ -461,7 +461,7 @@ msgstr "" "Quand elle est appelée, la fonction générique distribue sur le type du " "premier argument ::" -#: ../Doc/library/functools.rst:412 +#: library/functools.rst:411 msgid "" "Where there is no registered implementation for a specific type, its method " "resolution order is used to find a more generic implementation. The original " @@ -474,7 +474,7 @@ msgstr "" "est enregistrée pour le type d'``object``, et elle sera utilisée si aucune " "implémentation n'est trouvée." -#: ../Doc/library/functools.rst:418 +#: library/functools.rst:417 msgid "" "To check which implementation will the generic function choose for a given " "type, use the ``dispatch()`` attribute::" @@ -482,7 +482,7 @@ msgstr "" "Pour vérifier quelle implémentation la fonction générique choisira pour un " "type donné, utiliser l'attribut ``dispatch()`` ::" -#: ../Doc/library/functools.rst:426 +#: library/functools.rst:425 msgid "" "To access all registered implementations, use the read-only ``registry`` " "attribute::" @@ -490,21 +490,20 @@ msgstr "" "Pour accéder à toutes les implémentations enregistrées, utiliser l'attribut " "en lecture seule ``registry`` ::" -#: ../Doc/library/functools.rst:440 +#: library/functools.rst:439 msgid "The :func:`register` attribute supports using type annotations." msgstr "" "L’attribut :func:`register` gère l’utilisation des indications de type." -#: ../Doc/library/functools.rst:446 -#, fuzzy +#: library/functools.rst:445 msgid "" "Transform a method into a :term:`single-dispatch ` :term:" "`generic function`." msgstr "" -"Transforme une fonction en une :term:`fonction générique ` :term:`single-dispatch `." +"Transforme une méthode en une :term:`fonction générique ` :" +"term:`single-dispatch `." -#: ../Doc/library/functools.rst:449 +#: library/functools.rst:448 #, fuzzy msgid "" "To define a generic method, decorate it with the ``@singledispatchmethod`` " @@ -515,7 +514,7 @@ msgstr "" "``@singledispatch``. Noter que la distribution est effectuée sur le type du " "premier argument, donc la fonction doit être créée en conséquence ::" -#: ../Doc/library/functools.rst:466 +#: library/functools.rst:465 msgid "" "``@singledispatchmethod`` supports nesting with other decorators such as " "``@classmethod``. Note that to allow for ``dispatcher.register``, " @@ -523,13 +522,13 @@ msgid "" "``Negator`` class with the ``neg`` methods being class bound::" msgstr "" -#: ../Doc/library/functools.rst:487 +#: library/functools.rst:486 msgid "" "The same pattern can be used for other similar decorators: ``staticmethod``, " "``abstractmethod``, and others." msgstr "" -#: ../Doc/library/functools.rst:495 +#: library/functools.rst:494 msgid "" "Update a *wrapper* function to look like the *wrapped* function. The " "optional arguments are tuples to specify which attributes of the original " @@ -554,7 +553,7 @@ msgstr "" "met à jour le ``__dict__`` de la fonction englobante, c'est-à-dire le " "dictionnaire de l'instance)." -#: ../Doc/library/functools.rst:505 +#: library/functools.rst:504 msgid "" "To allow access to the original function for introspection and other " "purposes (e.g. bypassing a caching decorator such as :func:`lru_cache`), " @@ -566,7 +565,7 @@ msgstr "" "func:`lru_cache`), cette fonction ajoute automatiquement un attribut " "``__wrapped__`` qui référence la fonction englobée." -#: ../Doc/library/functools.rst:510 +#: library/functools.rst:509 msgid "" "The main intended use for this function is in :term:`decorator` functions " "which wrap the decorated function and return the wrapper. If the wrapper " @@ -580,7 +579,7 @@ msgstr "" "décorateur, au lieu de la définition originale, métadonnées souvent bien " "moins utiles." -#: ../Doc/library/functools.rst:516 +#: library/functools.rst:515 msgid "" ":func:`update_wrapper` may be used with callables other than functions. Any " "attributes named in *assigned* or *updated* that are missing from the object " @@ -594,20 +593,20 @@ msgstr "" "dans la fonction englobante). :exc:`AttributeError` est toujours levée si le " "fonction englobante elle même a des attributs non existants dans *updated*." -#: ../Doc/library/functools.rst:522 +#: library/functools.rst:521 msgid "Automatic addition of the ``__wrapped__`` attribute." msgstr "Ajout automatique de l'attribut ``__wrapped__``." -#: ../Doc/library/functools.rst:525 +#: library/functools.rst:524 msgid "Copying of the ``__annotations__`` attribute by default." msgstr "Copie de l'attribut ``__annotations__`` par défaut." -#: ../Doc/library/functools.rst:528 +#: library/functools.rst:527 msgid "Missing attributes no longer trigger an :exc:`AttributeError`." msgstr "" "Les attributs manquants ne lèvent plus d'exception :exc:`AttributeError`." -#: ../Doc/library/functools.rst:531 +#: library/functools.rst:530 msgid "" "The ``__wrapped__`` attribute now always refers to the wrapped function, " "even if that function defined a ``__wrapped__`` attribute. (see :issue:" @@ -616,7 +615,7 @@ msgstr "" "L'attribut ``__wrapped__`` renvoie toujours la fonction englobée, même si " "cette fonction définit un attribut ``__wrapped__``. (voir :issue:`17482`)" -#: ../Doc/library/functools.rst:539 +#: library/functools.rst:538 msgid "" "This is a convenience function for invoking :func:`update_wrapper` as a " "function decorator when defining a wrapper function. It is equivalent to " @@ -628,7 +627,7 @@ msgstr "" "C'est équivalent à ``partial(update_wrapper, wrapped=wrapped, " "assigned=assigned, updated=updated)``. Par exemple ::" -#: ../Doc/library/functools.rst:565 +#: library/functools.rst:564 msgid "" "Without the use of this decorator factory, the name of the example function " "would have been ``'wrapper'``, and the docstring of the original :func:" @@ -638,11 +637,11 @@ msgstr "" "d'exemple aurait été ``'wrapper'``, et la chaîne de documentation de la " "fonction :func:`example` originale aurait été perdue." -#: ../Doc/library/functools.rst:573 +#: library/functools.rst:572 msgid ":class:`partial` Objects" msgstr "Objets :class:`partial`" -#: ../Doc/library/functools.rst:575 +#: library/functools.rst:574 msgid "" ":class:`partial` objects are callable objects created by :func:`partial`. " "They have three read-only attributes:" @@ -650,7 +649,7 @@ msgstr "" "Les objets :class:`partial` sont des objets appelables créés par :func:" "`partial`. Ils ont trois attributs en lecture seule :" -#: ../Doc/library/functools.rst:581 +#: library/functools.rst:580 msgid "" "A callable object or function. Calls to the :class:`partial` object will be " "forwarded to :attr:`func` with new arguments and keywords." @@ -658,7 +657,7 @@ msgstr "" "Un objet ou une fonction appelable. Les appels à l'objet :class:`partial` " "seront transmis à :attr:`func` avec les nouveaux arguments et mots-clés." -#: ../Doc/library/functools.rst:587 +#: library/functools.rst:586 msgid "" "The leftmost positional arguments that will be prepended to the positional " "arguments provided to a :class:`partial` object call." @@ -666,7 +665,7 @@ msgstr "" "Les arguments positionnels qui seront ajoutés avant les arguments fournis " "lors de l'appel d'un objet :class:`partial`." -#: ../Doc/library/functools.rst:593 +#: library/functools.rst:592 msgid "" "The keyword arguments that will be supplied when the :class:`partial` object " "is called." @@ -674,7 +673,7 @@ msgstr "" "Les arguments nommés qui seront fournis quand l'objet :class:`partial` est " "appelé." -#: ../Doc/library/functools.rst:596 +#: library/functools.rst:595 msgid "" ":class:`partial` objects are like :class:`function` objects in that they are " "callable, weak referencable, and can have attributes. There are some " diff --git a/library/gc.po b/library/gc.po index ac72e3211a..0fa4a8b1da 100644 --- a/library/gc.po +++ b/library/gc.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-15 18:54+0100\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,11 +14,11 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/library/gc.rst:2 +#: library/gc.rst:2 msgid ":mod:`gc` --- Garbage Collector interface" -msgstr "" +msgstr ":mod:`gc` — Interface du ramasse-miettes" -#: ../Doc/library/gc.rst:12 +#: library/gc.rst:12 msgid "" "This module provides an interface to the optional garbage collector. It " "provides the ability to disable the collector, tune the collection " @@ -31,32 +31,49 @@ msgid "" "this includes ``gc.DEBUG_SAVEALL``, causing garbage-collected objects to be " "saved in gc.garbage for inspection." msgstr "" - -#: ../Doc/library/gc.rst:23 +"Ce module constitue une interface au ramasse-miettes facultatif. Il permet " +"de désactiver le ramasse-miettes ou de régler la fréquence des passages. Il " +"fournit des options de débogage, et donne aussi accès aux objets qui ne " +"peuvent pas être détruits bien qu'ils aient été détectés comme non " +"référencés. Le ramasse-miettes vient en complément du système de comptage de " +"références, et peut donc être désactivé pour du code qui ne crée aucun cycle " +"de références. On le désactive avec ``gc.disable()``. Pour remonter à la " +"source d'une fuite de mémoire, utilisez ``gc.set_debug(gc.DEBUG_LEAK)``. " +"Notez que ``gc.DEBUG_LEAK`` inclut ``gc.DEBUG_SAVEALL``. Cette dernière " +"option fait que les objets inatteignables, au lieu d'être détruits, sont " +"placés dans la liste ``gc.garbage`` pour pouvoir y être examinés." + +#: library/gc.rst:23 msgid "The :mod:`gc` module provides the following functions:" -msgstr "" +msgstr "Le module :mod:`gc` contient les fonctions suivantes :" -#: ../Doc/library/gc.rst:28 +#: library/gc.rst:28 msgid "Enable automatic garbage collection." -msgstr "" +msgstr "Active le ramasse-miettes." -#: ../Doc/library/gc.rst:33 +#: library/gc.rst:33 msgid "Disable automatic garbage collection." -msgstr "" +msgstr "Désactive le ramasse-miettes." -#: ../Doc/library/gc.rst:38 +#: library/gc.rst:38 msgid "Return ``True`` if automatic collection is enabled." msgstr "" +"Renvoie ``True`` ou ``False`` selon que le ramasse-miettes est activé ou non." -#: ../Doc/library/gc.rst:43 +#: library/gc.rst:43 msgid "" "With no arguments, run a full collection. The optional argument " "*generation* may be an integer specifying which generation to collect (from " "0 to 2). A :exc:`ValueError` is raised if the generation number is " "invalid. The number of unreachable objects found is returned." msgstr "" +"Déclenche un passage du ramasse-miettes. En l'absence d'argument, un passage " +"complet est effectué. Le paramètre *generation* permet de le limiter à une " +"génération entre 0 et 2. Une exception :exc:`ValueError` est levée si le " +"numéro de la génération n'est pas valide. Cette fonction renvoie le nombre " +"d'objets inatteignables qui ont été détectés." -#: ../Doc/library/gc.rst:48 +#: library/gc.rst:48 msgid "" "The free lists maintained for a number of built-in types are cleared " "whenever a full collection or collection of the highest generation (2) is " @@ -64,59 +81,87 @@ msgid "" "implementation, in particular :class:`float`." msgstr "" -#: ../Doc/library/gc.rst:56 +#: library/gc.rst:56 msgid "" "Set the garbage collection debugging flags. Debugging information will be " "written to ``sys.stderr``. See below for a list of debugging flags which " "can be combined using bit operations to control debugging." msgstr "" +"Change les options de débogage du ramasse-miettes, qui activent l'écriture " +"d'informations sur ``sys.stderr``. Une liste d'options se trouve plus bas. " +"Les options peuvent se combiner par les opérateurs bit à bit." -#: ../Doc/library/gc.rst:63 +#: library/gc.rst:63 msgid "Return the debugging flags currently set." -msgstr "" +msgstr "Renvoie les options de débogage actives." -#: ../Doc/library/gc.rst:68 +#: library/gc.rst:68 msgid "" "Returns a list of all objects tracked by the collector, excluding the list " "returned. If *generation* is not None, return only the objects tracked by " "the collector that are in that generation." msgstr "" +"Renvoie la liste des objets suivis par le ramasse-miettes, à l'exclusion de " +"cette liste elle-même. Le paramètre facultatif *generation* restreint la " +"liste aux objets d'une génération particulière." -#: ../Doc/library/gc.rst:72 +#: library/gc.rst:72 msgid "New *generation* parameter." +msgstr "ajout du paramètre *generation*." + +#: library/gc.rst:75 +msgid "" +"Raises an :ref:`auditing event ` ``gc.get_objects`` with argument " +"``generation``." msgstr "" +"Lève un :ref:`événement d'audit ` ``gc.get_objects`` avec " +"l'argument ``generation``." -#: ../Doc/library/gc.rst:77 +#: library/gc.rst:79 msgid "" "Return a list of three per-generation dictionaries containing collection " "statistics since interpreter start. The number of keys may change in the " "future, but currently each dictionary will contain the following items:" msgstr "" +"Renvoie une liste de trois dictionnaires, un par génération. Ils contiennent " +"des statistiques sur l'action du ramasse-miettes depuis le lancement de " +"l'interpréteur. Les clés actuellement présentes sont les suivantes (d'autres " +"pourraient être ajoutées dans des versions ultérieures) :" -#: ../Doc/library/gc.rst:82 +#: library/gc.rst:84 msgid "``collections`` is the number of times this generation was collected;" msgstr "" +"``collections``, le nombre de fois où cette génération a été examinée par le " +"ramasse-miettes ;" -#: ../Doc/library/gc.rst:84 +#: library/gc.rst:86 msgid "" "``collected`` is the total number of objects collected inside this " "generation;" msgstr "" +"``collected``, le nombre total d'objets qui ont été détruits alors qu'ils " +"étaient dans cette génération ;" -#: ../Doc/library/gc.rst:87 +#: library/gc.rst:89 msgid "" "``uncollectable`` is the total number of objects which were found to be " "uncollectable (and were therefore moved to the :data:`garbage` list) inside " "this generation." msgstr "" +"``uncollectable``, le nombre total d'objets qui ont été identifiés comme " +"indestructibles (et donc ajoutés à la liste :data:`garbage`) au sein de " +"cette génération." -#: ../Doc/library/gc.rst:96 +#: library/gc.rst:98 msgid "" "Set the garbage collection thresholds (the collection frequency). Setting " "*threshold0* to zero disables collection." msgstr "" +"Règle les seuils de déclenchement du ramasse-miettes, qui déterminent sa " +"fréquence de passage. Si *threshold0* est mis à zéro, le ramasse-miettes ne " +"passe jamais." -#: ../Doc/library/gc.rst:99 +#: library/gc.rst:101 msgid "" "The GC classifies objects into three generations depending on how many " "collection sweeps they have survived. New objects are placed in the " @@ -129,47 +174,87 @@ msgid "" "*threshold0*, collection starts. Initially only generation ``0`` is " "examined. If generation ``0`` has been examined more than *threshold1* " "times since generation ``1`` has been examined, then generation ``1`` is " -"examined as well. Similarly, *threshold2* controls the number of " -"collections of generation ``1`` before collecting generation ``2``." -msgstr "" - -#: ../Doc/library/gc.rst:116 +"examined as well. With the third generation, things are a bit more " +"complicated, see `Collecting the oldest generation `_ for more " +"information." +msgstr "" +"Les objets sont répartis en trois générations en fonction du nombre de " +"passages du ramasse-miettes qui les ont laissés intacts. Les objets " +"fraîchement créés sont placés dans la génération la plus jeune, numéro 0. À " +"chaque fois qu'un objet persiste à la suite d'un passage du ramasse-miettes, " +"il monte d'une génération, ceci jusqu'à la génération 2, la plus âgée. Le " +"ramasse-miettes se déclenche en fonction du nombre d'allocations et de " +"destructions depuis le passage précédent : lorsque les allocations moins les " +"destructions font plus que *threshold0*, un passage est initié. Lors des " +"premiers passages, seule la génération 0 est inspectée. La génération 1 est " +"examinée périodiquement, lorsque le nombre de passages sur la génération 0 " +"depuis le dernier passage ayant aussi examiné la génération 1 vient à " +"excéder *threshold1*. Les règles pour la génération 2 sont plus complexes. " +"Pour avoir des détails, voir `Collecting the oldest generation `_ " +"(dans le guide du développeur, en anglais)." + +#: library/gc.rst:118 msgid "" "Return the current collection counts as a tuple of ``(count0, count1, " "count2)``." msgstr "" +"Renvoie un triplet des nombres totaux de passages effectués par génération." -#: ../Doc/library/gc.rst:122 +#: library/gc.rst:124 msgid "" "Return the current collection thresholds as a tuple of ``(threshold0, " "threshold1, threshold2)``." msgstr "" +"Renvoie les seuils de passage sous la forme du triplet ``(threshold0, " +"threshold1, threshold2)``." -#: ../Doc/library/gc.rst:128 +#: library/gc.rst:130 msgid "" "Return the list of objects that directly refer to any of objs. This function " "will only locate those containers which support garbage collection; " "extension types which do refer to other objects but do not support garbage " "collection will not be found." msgstr "" +"Renvoie la liste des objets qui contiennent directement une référence à l'un " +"quelconque des arguments. Il est à noter que cette fonction prend uniquement " +"en compte les objets suivis par le ramasse-miettes, ce qui exclut les " +"instances de certains types d'extension qui contiennent bien des références " +"sans pour autant prendre en charge le ramassage des miettes." -#: ../Doc/library/gc.rst:133 +#: library/gc.rst:135 msgid "" "Note that objects which have already been dereferenced, but which live in " "cycles and have not yet been collected by the garbage collector can be " "listed among the resulting referrers. To get only currently live objects, " "call :func:`collect` before calling :func:`get_referrers`." msgstr "" +"La liste renvoyée peut contenir des objets déjà isolés, mais maintenus en " +"mémoire à cause d'un cycle. Pour les exclure, appelez :func:`collect` juste " +"avant :func:`get_referrers`." -#: ../Doc/library/gc.rst:138 +#: library/gc.rst:141 msgid "" "Care must be taken when using objects returned by :func:`get_referrers` " "because some of them could still be under construction and hence in a " "temporarily invalid state. Avoid using :func:`get_referrers` for any purpose " "other than debugging." msgstr "" +"La manipulation des objets renvoyés par :func:`get_referrers` est hasardeuse " +"car ils risquent d'être encore en cours d'initialisation, donc dans un état " +"temporairement instable. Mieux vaut réserver :func:`get_referrers` au " +"débogage." -#: ../Doc/library/gc.rst:146 +#: library/gc.rst:146 +msgid "" +"Raises an :ref:`auditing event ` ``gc.get_referrers`` with " +"argument ``objs``." +msgstr "" +"Lève un :ref:`événement d'audit ` ``gc.get_referrers`` avec " +"l'argument ``objs``." + +#: library/gc.rst:151 msgid "" "Return a list of objects directly referred to by any of the arguments. The " "referents returned are those objects visited by the arguments' C-level :c:" @@ -180,8 +265,27 @@ msgid "" "example, if an integer is directly reachable from an argument, that integer " "object may or may not appear in the result list." msgstr "" +"Renvoie une liste des objets pointés par les références que contiennent les " +"arguments. Ils sont déterminés en appelant, si présente, la méthode C :c:" +"member:`~PyTypeObject.tp_traverse` de chaque argument, qui visite les objets " +"auxquels cet argument fait référence. Il est à noter que :c:member:" +"`~PyTypeObject.tp_traverse` n'est définie que par les objets qui gèrent le " +"ramassage des miettes, et n'a l'obligation de visiter que les objets qui " +"peuvent potentiellement faire partie d'un cycle. Ainsi, la liste renvoyée " +"par cette fonction ne contient par forcément tous les objets qu'il est " +"possible d'atteindre à partir des arguments. Par exemple, si l'un des " +"arguments contient un entier, ce dernier objet peut être présent ou non dans " +"la liste." + +#: library/gc.rst:159 +msgid "" +"Raises an :ref:`auditing event ` ``gc.get_referents`` with " +"argument ``objs``." +msgstr "" +"Lève un :ref:`événement d'audit ` ``gc.get_referents`` avec " +"l'argument ``objs``." -#: ../Doc/library/gc.rst:157 +#: library/gc.rst:163 msgid "" "Returns ``True`` if the object is currently tracked by the garbage " "collector, ``False`` otherwise. As a general rule, instances of atomic " @@ -190,8 +294,15 @@ msgid "" "present in order to suppress the garbage collector footprint of simple " "instances (e.g. dicts containing only atomic keys and values)::" msgstr "" +"Renvoie ``True`` ou ``False`` selon que l'argument est suivi ou non par le " +"ramasse-miettes. En règle générale, les objets atomiques ne sont pas suivis, " +"tandis que les objets non-atomiques, tels que les conteneurs et instances de " +"classes définies par l'utilisateur, le sont. Cependant, certains types " +"présentent des optimisations qui permettent de se passer avantageusement du " +"ramasse-miettes dans les cas simples, comme les dictionnaires dont toutes " +"les clés et valeurs sont atomiques :" -#: ../Doc/library/gc.rst:182 +#: library/gc.rst:188 msgid "" "Freeze all the objects tracked by gc - move them to a permanent generation " "and ignore all the future collections. This can be used before a POSIX " @@ -201,145 +312,192 @@ msgid "" "in parent process and freeze before fork and enable gc in child process." msgstr "" -#: ../Doc/library/gc.rst:194 +#: library/gc.rst:200 msgid "" "Unfreeze the objects in the permanent generation, put them back into the " "oldest generation." msgstr "" -#: ../Doc/library/gc.rst:202 +#: library/gc.rst:208 msgid "Return the number of objects in the permanent generation." msgstr "" -#: ../Doc/library/gc.rst:207 +#: library/gc.rst:213 msgid "" "The following variables are provided for read-only access (you can mutate " "the values but should not rebind them):" msgstr "" +"Les variables suivantes sont publiques, mais elles ne sont pas censées être " +"modifiées (vous pouvez les muter, mais pas les redéfinir)." -#: ../Doc/library/gc.rst:212 +#: library/gc.rst:218 msgid "" "A list of objects which the collector found to be unreachable but could not " "be freed (uncollectable objects). Starting with Python 3.4, this list " "should be empty most of the time, except when using instances of C extension " "types with a non-``NULL`` ``tp_del`` slot." msgstr "" +"Liste des objets indestructibles, que le ramasse-miettes n'a pas pu éliminer " +"bien qu'ils soient inatteignables. Depuis Python 3.4, cette liste demeure la " +"plupart du temps vide. Elle peut se remplir si le programme fait appel à des " +"types d'extension définis en C avec un champ ``tp_del`` différent de " +"``NULL``." -#: ../Doc/library/gc.rst:217 +#: library/gc.rst:223 msgid "" "If :const:`DEBUG_SAVEALL` is set, then all unreachable objects will be added " "to this list rather than freed." msgstr "" +"Si :const:`DEBUG_SAVEALL` est actif, tous les objets inatteignables sont " +"ajoutés à cette liste au lieu d'être détruits." -#: ../Doc/library/gc.rst:220 +#: library/gc.rst:226 msgid "" "If this list is non-empty at :term:`interpreter shutdown`, a :exc:" "`ResourceWarning` is emitted, which is silent by default. If :const:" "`DEBUG_UNCOLLECTABLE` is set, in addition all uncollectable objects are " "printed." msgstr "" +"Si cette liste n'est pas vide lors de l':term:`arrêt de l'interpréteur " +"`, un :exc:`ResourceWarning` est émis (les " +"avertissements de ce type sont silencieux par défaut). De plus, si :const:" +"`DEBUG_UNCOLLECTABLE` est actif, tous les objets indestructibles sont " +"affichés." -#: ../Doc/library/gc.rst:226 +#: library/gc.rst:232 msgid "" "Following :pep:`442`, objects with a :meth:`__del__` method don't end up in :" "attr:`gc.garbage` anymore." msgstr "" +"en application de la :pep:`442`, les objets qui définissent une méthode :" +"meth:`__del__` ne finissent plus dans :attr:`gc.garbage`." -#: ../Doc/library/gc.rst:232 +#: library/gc.rst:238 msgid "" "A list of callbacks that will be invoked by the garbage collector before and " "after collection. The callbacks will be called with two arguments, *phase* " "and *info*." msgstr "" +"Liste de fonctions de rappel lancées par le ramasse-miettes avant et après " +"un passage. Elles prennent deux arguments, *phase* et *info*." -#: ../Doc/library/gc.rst:236 +#: library/gc.rst:242 msgid "*phase* can be one of two values:" -msgstr "" +msgstr "*phase* peut prendre deux valeurs :" -#: ../Doc/library/gc.rst:238 +#: library/gc.rst:244 msgid "\"start\": The garbage collection is about to start." -msgstr "" +msgstr "``\"start\"`` lorsque le passage du ramasse-miettes est imminent." -#: ../Doc/library/gc.rst:240 +#: library/gc.rst:246 msgid "\"stop\": The garbage collection has finished." msgstr "" +"``\"stop\"`` lorsque le passage du ramasse-miettes vient de se terminer." -#: ../Doc/library/gc.rst:242 +#: library/gc.rst:248 msgid "" "*info* is a dict providing more information for the callback. The following " "keys are currently defined:" msgstr "" +"*info* est un dictionnaire qui donne plus d'informations à la fonction de " +"rappel. Les clés suivantes sont actuellement présentes :" -#: ../Doc/library/gc.rst:245 +#: library/gc.rst:251 msgid "\"generation\": The oldest generation being collected." -msgstr "" +msgstr "``\"generation\"``, la génération la plus âgée intégrée à ce passage ;" -#: ../Doc/library/gc.rst:247 +#: library/gc.rst:253 msgid "" "\"collected\": When *phase* is \"stop\", the number of objects successfully " "collected." msgstr "" +"``\"collected\"`` : si *phase* vaut ``\"stop\"``, le nombre d'objets " +"détruits avec succès ;" -#: ../Doc/library/gc.rst:250 +#: library/gc.rst:256 msgid "" "\"uncollectable\": When *phase* is \"stop\", the number of objects that " "could not be collected and were put in :data:`garbage`." msgstr "" +"``\"uncollectable\"`` : si *phase* vaut ``\"stop\"``, le nombre d'objets " +"indestructibles ajoutés à :data:`garbage`." -#: ../Doc/library/gc.rst:253 +#: library/gc.rst:259 msgid "" "Applications can add their own callbacks to this list. The primary use " "cases are:" msgstr "" +"Toute application peut ajouter ses propres fonctions de rappel à cette " +"liste. Voici les principales applications :" -#: ../Doc/library/gc.rst:256 +#: library/gc.rst:262 msgid "" "Gathering statistics about garbage collection, such as how often various " "generations are collected, and how long the collection takes." msgstr "" +"Faire des statistiques sur le passage du ramasse-miettes, par exemple la " +"fréquence à laquelle chaque génération est examinée, ou bien le temps d'un " +"passage ;" -#: ../Doc/library/gc.rst:260 +#: library/gc.rst:266 msgid "" "Allowing applications to identify and clear their own uncollectable types " "when they appear in :data:`garbage`." msgstr "" +"Identifier les types définis par une application dont les instances " +"s'ajoutent à :data:`garbage` car elles sont indestructibles." -#: ../Doc/library/gc.rst:266 +#: library/gc.rst:272 msgid "The following constants are provided for use with :func:`set_debug`:" msgstr "" +"Les constantes suivantes définissent les options de débogage que l'on peut " +"passer à :func:`set_debug` :" -#: ../Doc/library/gc.rst:271 +#: library/gc.rst:277 msgid "" "Print statistics during collection. This information can be useful when " "tuning the collection frequency." msgstr "" +"Affiche des statistiques durant les passages du ramasse-miettes. Utile pour " +"pouvoir régler la fréquence des passages." -#: ../Doc/library/gc.rst:277 +#: library/gc.rst:283 msgid "Print information on collectable objects found." -msgstr "" +msgstr "Affiche des informations sur les objets détruits." -#: ../Doc/library/gc.rst:282 +#: library/gc.rst:288 msgid "" "Print information of uncollectable objects found (objects which are not " "reachable but cannot be freed by the collector). These objects will be " "added to the ``garbage`` list." msgstr "" +"Affiche des informations sur les objets indestructibles (ceux qui sont " +"ajoutés à la liste ``garbage``, qui sont inatteignables mais dont la mémoire " +"ne peut pas être libérée)." -#: ../Doc/library/gc.rst:286 +#: library/gc.rst:292 msgid "" "Also print the contents of the :data:`garbage` list at :term:`interpreter " "shutdown`, if it isn't empty." msgstr "" +"Affiche également le contenu de :data:`garbage` à l':term:`arrêt de " +"l'interpréteur `, pour peu que cette liste ne soit pas " +"vide." -#: ../Doc/library/gc.rst:292 +#: library/gc.rst:298 msgid "" "When set, all unreachable objects found will be appended to *garbage* rather " "than being freed. This can be useful for debugging a leaking program." msgstr "" +"Lorsque cette option est active, les objets inatteignables sont ajoutés à la " +"liste *garbage* au lieu d'être supprimés. Ceci est utile pour déboguer une " +"fuite de mémoire." -#: ../Doc/library/gc.rst:298 +#: library/gc.rst:304 msgid "" "The debugging flags necessary for the collector to print information about a " "leaking program (equal to ``DEBUG_COLLECTABLE | DEBUG_UNCOLLECTABLE | " "DEBUG_SAVEALL``)." msgstr "" +"Combinaison des options utiles au débogage d'une fuite de mémoire. Il s'agit " +"d'un raccourci pour ``DEBUG_COLLECTABLE|DEBUG_UNCOLLECTABLE|DEBUG_SAVEALL``." diff --git a/library/gettext.po b/library/gettext.po index 807b75a5db..2ed1f53c0b 100644 --- a/library/gettext.po +++ b/library/gettext.po @@ -5,25 +5,25 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: 2019-05-23 23:30+0200\n" +"POT-Creation-Date: 2020-05-23 11:38+0200\n" +"PO-Revision-Date: 2020-01-13 17:57+0100\n" "Last-Translator: Jules Lasne \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2.1\n" +"X-Generator: Poedit 2.2.4\n" -#: ../Doc/library/gettext.rst:2 +#: library/gettext.rst:2 msgid ":mod:`gettext` --- Multilingual internationalization services" msgstr ":mod:`gettext` — Services d'internationalisation multilingue" -#: ../Doc/library/gettext.rst:10 +#: library/gettext.rst:10 msgid "**Source code:** :source:`Lib/gettext.py`" msgstr "**Code source :** :source:`Lib/gettext.py`" -#: ../Doc/library/gettext.rst:14 +#: library/gettext.rst:14 msgid "" "The :mod:`gettext` module provides internationalization (I18N) and " "localization (L10N) services for your Python modules and applications. It " @@ -42,18 +42,18 @@ msgstr "" "une langue naturelle, puis de fournir un catalogue de traductions pour les " "lancer ensuite dans d'autres langues naturelles." -#: ../Doc/library/gettext.rst:22 +#: library/gettext.rst:22 msgid "" "Some hints on localizing your Python modules and applications are also given." msgstr "" "Quelques astuces sur la localisation de vos modules et applications Python " "sont également données." -#: ../Doc/library/gettext.rst:26 +#: library/gettext.rst:26 msgid "GNU :program:`gettext` API" msgstr "API GNU :program:`gettext`" -#: ../Doc/library/gettext.rst:28 +#: library/gettext.rst:28 msgid "" "The :mod:`gettext` module defines the following API, which is very similar " "to the GNU :program:`gettext` API. If you use this API you will affect the " @@ -71,8 +71,7 @@ msgstr "" "module Python ou si votre application a besoin de changer de langue à la " "volée, il est plus judicieux d'utiliser l'API basée sur des classes." -#: ../Doc/library/gettext.rst:39 -#, fuzzy +#: library/gettext.rst:39 msgid "" "Bind the *domain* to the locale directory *localedir*. More concretely, :" "mod:`gettext` will look for binary :file:`.mo` files for the given domain " @@ -84,11 +83,11 @@ msgstr "" "Lie *domain* au répertoire *localedir* des localisations. Plus " "spécifiquement, :mod:`gettext` va chercher les fichiers binaires :file:`.mo` " "pour un domaine donné, en utilisant le chemin suivant (sous Unix) : :file:" -"`{localedir}/{language}/LC_MESSAGES/{domain}.mo`, où *languages* est contenu " -"respectivement dans l'une des variables d'environnement suivantes : :envvar:" +"`{localedir}/{language}/LC_MESSAGES/{domain}.mo`, où *language* est " +"recherché dans l'une des variables d'environnement suivantes : :envvar:" "`LANGUAGE`, :envvar:`LC_ALL`, :envvar:`LC_MESSAGES` et :envvar:`LANG`." -#: ../Doc/library/gettext.rst:45 +#: library/gettext.rst:45 msgid "" "If *localedir* is omitted or ``None``, then the current binding for *domain* " "is returned. [#]_" @@ -96,7 +95,7 @@ msgstr "" "Si *localedir* n'est pas renseigné ou vaut ``None``, alors le lien actuel de " "*domain* est renvoyé. [#]_" -#: ../Doc/library/gettext.rst:51 +#: library/gettext.rst:51 msgid "" "Bind the *domain* to *codeset*, changing the encoding of byte strings " "returned by the :func:`lgettext`, :func:`ldgettext`, :func:`lngettext` and :" @@ -108,7 +107,7 @@ msgstr "" "`lngettext` et :func:`ldngettext`. Si *codeset* n'est pas renseigné, alors " "le lien actuel est renvoyé." -#: ../Doc/library/gettext.rst:61 +#: library/gettext.rst:61 msgid "" "Change or query the current global domain. If *domain* is ``None``, then " "the current global domain is returned, otherwise the global domain is set to " @@ -118,7 +117,7 @@ msgstr "" "alors le domaine global actuel est renvoyé. Sinon, le domaine global est " "positionné à *domain*, puis renvoyé." -#: ../Doc/library/gettext.rst:69 +#: library/gettext.rst:69 msgid "" "Return the localized translation of *message*, based on the current global " "domain, language, and locale directory. This function is usually aliased " @@ -129,13 +128,13 @@ msgstr "" "est typiquement renommée :func:`_` dans le namespace courant (voir les " "exemples ci-dessous)." -#: ../Doc/library/gettext.rst:76 +#: library/gettext.rst:76 msgid "" "Like :func:`.gettext`, but look the message up in the specified *domain*." msgstr "" "Comme :func:`gettext`, mais cherche le message dans le domaine spécifié." -#: ../Doc/library/gettext.rst:81 +#: library/gettext.rst:81 msgid "" "Like :func:`.gettext`, but consider plural forms. If a translation is found, " "apply the plural formula to *n*, and return the resulting message (some " @@ -148,7 +147,7 @@ msgstr "" "pluriel). Si aucune traduction n'a été trouvée, renvoie *singular* si *n* " "vaut 1, *plural* sinon." -#: ../Doc/library/gettext.rst:86 +#: library/gettext.rst:86 msgid "" "The Plural formula is taken from the catalog header. It is a C or Python " "expression that has a free variable *n*; the expression evaluates to the " @@ -164,26 +163,23 @@ msgstr "" "gettext.html>`__ pour la syntaxe précise à utiliser dans les fichiers :file:" "`.po` et pour les formules dans différents langues." -#: ../Doc/library/gettext.rst:96 +#: library/gettext.rst:96 msgid "" "Like :func:`ngettext`, but look the message up in the specified *domain*." msgstr "" "Comme :func:`ngettext`, mais cherche le message dans le domaine spécifié." -#: ../Doc/library/gettext.rst:104 -#, fuzzy +#: library/gettext.rst:104 msgid "" "Similar to the corresponding functions without the ``p`` in the prefix (that " "is, :func:`gettext`, :func:`dgettext`, :func:`ngettext`, :func:`dngettext`), " "but the translation is restricted to the given message *context*." msgstr "" -"Équivalent aux fonctions correspondantes non préfixées par ``l`` (:func:`." -"gettext`, :func:`dgettext`, :func:`ngettext` et :func:`dngettext`), mais la " -"traduction est retournée en tant que chaîne d'octets, encodée avec " -"l'encodage du système si aucun autre n'a été explicitement défini avec :func:" -"`bind_textdomain_codeset`." +"Semblable aux fonctions correspondantes sans le ``p`` dans le préfixe (c'est-" +"à-dire :func:`gettext`, :func:`dgettext`, :func:`ngettext` et :func:" +"`dngettext`), mais la traduction est limitée au *context* du message donné." -#: ../Doc/library/gettext.rst:116 +#: library/gettext.rst:116 msgid "" "Equivalent to the corresponding functions without the ``l`` prefix (:func:`." "gettext`, :func:`dgettext`, :func:`ngettext` and :func:`dngettext`), but the " @@ -197,8 +193,7 @@ msgstr "" "l'encodage du système si aucun autre n'a été explicitement défini avec :func:" "`bind_textdomain_codeset`." -#: ../Doc/library/gettext.rst:124 -#, fuzzy +#: library/gettext.rst:124 msgid "" "These functions should be avoided in Python 3, because they return encoded " "bytes. It's much better to use alternatives which return Unicode strings " @@ -208,16 +203,13 @@ msgid "" "with the translated strings." msgstr "" "Ces fonctions sont à éviter en Python 3 car elles renvoient des octets " -"encodés. Il est préférable d'utiliser des alternatives qui renvoient de " +"encodés. Il est préférable d'utiliser des alternatives qui renvoient de " "l'Unicode, puisque beaucoup d'applications Python voudront manipuler du " -"texte lisible par des humains plutôt que des octets. En outre, il est " +"texte lisible par des humains plutôt que des octets. En outre, il est " "possible que vous obteniez des exceptions non prévues liées à Unicode s'il y " -"a des soucis d'encodage avec les chaînes de caractères traduites. Il est " -"d'ailleurs probable que les fonctions ``l*()`` deviennent obsolètes dans les " -"versions futures de Python à cause de leurs problèmes et limitations " -"inhérents." +"a des soucis d'encodage avec les chaînes de caractères traduites." -#: ../Doc/library/gettext.rst:134 +#: library/gettext.rst:134 msgid "" "Note that GNU :program:`gettext` also defines a :func:`dcgettext` method, " "but this was deemed not useful and so it is currently unimplemented." @@ -226,15 +218,15 @@ msgstr "" "elle a été considérée comme inutile et donc actuellement marquée comme non " "implémentée." -#: ../Doc/library/gettext.rst:137 +#: library/gettext.rst:137 msgid "Here's an example of typical usage for this API::" -msgstr "Voici un exemple classique d'utilisation de cette API : ::" +msgstr "Voici un exemple classique d'utilisation de cette API ::" -#: ../Doc/library/gettext.rst:148 +#: library/gettext.rst:148 msgid "Class-based API" msgstr "API basée sur les classes" -#: ../Doc/library/gettext.rst:150 +#: library/gettext.rst:150 msgid "" "The class-based API of the :mod:`gettext` module gives you more flexibility " "and greater convenience than the GNU :program:`gettext` API. It is the " @@ -253,7 +245,7 @@ msgstr "" "de cette classe \"translations\" peuvent également s'installer dans l'espace " "de nommage natif en tant que fonction :func:`_`." -#: ../Doc/library/gettext.rst:160 +#: library/gettext.rst:160 msgid "" "This function implements the standard :file:`.mo` file search algorithm. It " "takes a *domain*, identical to what :func:`textdomain` takes. Optional " @@ -266,7 +258,7 @@ msgstr "" "func:`bindtextdomain`. Le paramètre optionnel *langages* est une liste de " "chaînes de caractères correspondants au code d'une langue." -#: ../Doc/library/gettext.rst:165 +#: library/gettext.rst:165 msgid "" "If *localedir* is not given, then the default system locale directory is " "used. [#]_ If *languages* is not given, then the following environment " @@ -285,7 +277,7 @@ msgstr "" "langues, séparées par des deux-points, qui sera utilisée pour générer la " "liste des codes de langues attendue." -#: ../Doc/library/gettext.rst:173 +#: library/gettext.rst:173 msgid "" ":func:`find` then expands and normalizes the languages, and then iterates " "through them, searching for an existing file built of these components:" @@ -294,11 +286,11 @@ msgstr "" "sur la liste obtenue afin de trouver un fichier de traduction existant et " "correspondant :" -#: ../Doc/library/gettext.rst:176 +#: library/gettext.rst:176 msgid ":file:`{localedir}/{language}/LC_MESSAGES/{domain}.mo`" msgstr ":file:`{localedir}/{language}/LC_MESSAGES/{domain}.mo`" -#: ../Doc/library/gettext.rst:178 +#: library/gettext.rst:178 msgid "" "The first such file name that exists is returned by :func:`find`. If no such " "file is found, then ``None`` is returned. If *all* is given, it returns a " @@ -310,7 +302,7 @@ msgstr "" "renvoyée la liste de tous les noms de fichiers, dans l'ordre dans lequel ils " "apparaissent dans *languages* ou dans les variables d'environnement." -#: ../Doc/library/gettext.rst:186 +#: library/gettext.rst:186 msgid "" "Return a :class:`*Translations` instance based on the *domain*, *localedir*, " "and *languages*, which are first passed to :func:`find` to get a list of the " @@ -332,7 +324,7 @@ msgstr "" "chaînes de caractères traduites, dans les méthodes :meth:`~NullTranslations." "lgettext` et :meth:`~NullTranslations.lngettext`." -#: ../Doc/library/gettext.rst:196 +#: library/gettext.rst:196 msgid "" "If multiple files are found, later files are used as fallbacks for earlier " "ones. To allow setting the fallback, :func:`copy.copy` is used to clone each " @@ -344,7 +336,7 @@ msgstr "" "`copy.copy` est utilisé pour copier chaque objet traduit depuis le cache ; " "les vraies données de l'instance étant toujours recopiées dans le cache." -#: ../Doc/library/gettext.rst:201 +#: library/gettext.rst:201 msgid "" "If no :file:`.mo` file is found, this function raises :exc:`OSError` if " "*fallback* is false (which is the default), and returns a :class:" @@ -355,17 +347,17 @@ msgstr "" "*fallback* vaut *True* et une instance :class:`NullTranslations` est " "renvoyée." -#: ../Doc/library/gettext.rst:205 +#: library/gettext.rst:205 msgid ":exc:`IOError` used to be raised instead of :exc:`OSError`." msgstr "" "Avant, c'était l'exception :exc:`IOError` qui était levée, au lieu de :exc:" "`OSError`." -#: ../Doc/library/gettext.rst:209 ../Doc/library/gettext.rst:232 +#: library/gettext.rst:232 msgid "The *codeset* parameter." -msgstr "" +msgstr "Le paramètre *codeset*." -#: ../Doc/library/gettext.rst:214 +#: library/gettext.rst:214 msgid "" "This installs the function :func:`_` in Python's builtins namespace, based " "on *domain*, *localedir*, and *codeset* which are passed to the function :" @@ -375,7 +367,7 @@ msgstr "" "en se basant sur *domain*, *localedir* et *codeset*, qui sont passés en " "argument de la fonction :func:`translation`." -#: ../Doc/library/gettext.rst:218 +#: library/gettext.rst:218 msgid "" "For the *names* parameter, please see the description of the translation " "object's :meth:`~NullTranslations.install` method." @@ -383,16 +375,16 @@ msgstr "" "Concernant le paramètre *names*, se référer à la description de la méthode :" "meth:`~NullTranslations.install`." -#: ../Doc/library/gettext.rst:221 +#: library/gettext.rst:221 msgid "" "As seen below, you usually mark the strings in your application that are " "candidates for translation, by wrapping them in a call to the :func:`_` " "function, like this::" msgstr "" "Habituellement, la fonction :func:`_` est appliquée aux chaînes de " -"caractères qui doivent être traduites comme suit : ::" +"caractères qui doivent être traduites comme suit ::" -#: ../Doc/library/gettext.rst:227 +#: library/gettext.rst:227 msgid "" "For convenience, you want the :func:`_` function to be installed in Python's " "builtins namespace, so it is easily accessible in all modules of your " @@ -402,11 +394,11 @@ msgstr "" "l'espace de nommage natif de Python pour la rendre plus accessible dans tous " "les modules de votre application." -#: ../Doc/library/gettext.rst:236 +#: library/gettext.rst:236 msgid "The :class:`NullTranslations` class" msgstr "La classe :class:`NullTranslations`" -#: ../Doc/library/gettext.rst:238 +#: library/gettext.rst:238 msgid "" "Translation classes are what actually implement the translation of original " "source file message strings to translated message strings. The base class " @@ -421,7 +413,7 @@ msgstr "" "spécifiques à la traduction. Voici les méthodes de :class:`!" "NullTranslations` :" -#: ../Doc/library/gettext.rst:247 +#: library/gettext.rst:247 msgid "" "Takes an optional :term:`file object` *fp*, which is ignored by the base " "class. Initializes \"protected\" instance variables *_info* and *_charset* " @@ -435,7 +427,7 @@ msgstr "" "*_fallback* qui est définie au travers de :meth:`add_fallback`. Puis " "appelle ``self._parse(fp)`` si *fp* ne vaut pas ``None``." -#: ../Doc/library/gettext.rst:255 +#: library/gettext.rst:255 msgid "" "No-op in the base class, this method takes file object *fp*, and reads the " "data from the file, initializing its message catalog. If you have an " @@ -447,7 +439,7 @@ msgstr "" "catalogue de messages dont le format n'est pas pris en charge, vous devriez " "surcharger cette méthode pour analyser votre format." -#: ../Doc/library/gettext.rst:263 +#: library/gettext.rst:263 msgid "" "Add *fallback* as the fallback object for the current translation object. A " "translation object should consult the fallback if it cannot provide a " @@ -457,7 +449,7 @@ msgstr "" "courant. Un objet de traduction devrait interroger cet objet de " "substitution s'il ne peut fournir une traduction pour un message donné." -#: ../Doc/library/gettext.rst:270 +#: library/gettext.rst:270 msgid "" "If a fallback has been set, forward :meth:`!gettext` to the fallback. " "Otherwise, return *message*. Overridden in derived classes." @@ -465,7 +457,7 @@ msgstr "" "Si un objet de substitution a été défini, transmet :meth:`!gettext` à celui-" "ci. Sinon, renvoie *message*. Surchargé dans les classes dérivées." -#: ../Doc/library/gettext.rst:276 +#: library/gettext.rst:276 msgid "" "If a fallback has been set, forward :meth:`!ngettext` to the fallback. " "Otherwise, return *singular* if *n* is 1; return *plural* otherwise. " @@ -475,25 +467,23 @@ msgstr "" "ci. Sinon, renvoie *singular* si *n* vaut 1, *plural* sinon. Surchargé " "dans les classes dérivées." -#: ../Doc/library/gettext.rst:283 -#, fuzzy +#: library/gettext.rst:283 msgid "" "If a fallback has been set, forward :meth:`pgettext` to the fallback. " "Otherwise, return the translated message. Overridden in derived classes." msgstr "" -"Si un objet de substitution a été défini, transmet :meth:`!gettext` à celui-" -"ci. Sinon, renvoie *message*. Surchargé dans les classes dérivées." +"Si un objet de substitution a été défini, transmet :meth:`pgettext` à celui-" +"ci. Sinon, renvoie le message traduit. Surchargé dans les classes dérivées." -#: ../Doc/library/gettext.rst:291 -#, fuzzy +#: library/gettext.rst:291 msgid "" "If a fallback has been set, forward :meth:`npgettext` to the fallback. " "Otherwise, return the translated message. Overridden in derived classes." msgstr "" -"Si un objet de substitution a été défini, transmet :meth:`!gettext` à celui-" -"ci. Sinon, renvoie *message*. Surchargé dans les classes dérivées." +"Si un objet de substitution a été défini, transmet :meth:`npgettext` à celui-" +"ci. Sinon, renvoie le message traduit. Surchargé dans les classes dérivées." -#: ../Doc/library/gettext.rst:300 +#: library/gettext.rst:300 msgid "" "Equivalent to :meth:`.gettext` and :meth:`.ngettext`, but the translation is " "returned as a byte string encoded in the preferred system encoding if no " @@ -505,7 +495,7 @@ msgstr "" "système si aucun autre n'a été défini avec :meth:`set_output_charset`. " "Surchargé dans les classes dérivées." -#: ../Doc/library/gettext.rst:307 ../Doc/library/gettext.rst:463 +#: library/gettext.rst:463 msgid "" "These methods should be avoided in Python 3. See the warning for the :func:" "`lgettext` function." @@ -513,7 +503,7 @@ msgstr "" "L'utilisation de ces méthodes doivent être évitée en Python 3. Voir " "l'avertissement de la fonction :func:`lgettext`." -#: ../Doc/library/gettext.rst:315 +#: library/gettext.rst:315 msgid "" "Return the \"protected\" :attr:`_info` variable, a dictionary containing the " "metadata found in the message catalog file." @@ -521,11 +511,11 @@ msgstr "" "Renvoie l'attribut \"protégé\" :attr:`_info`, dictionnaire contenant les " "métadonnées trouvées dans le fichier de catalogue de messages." -#: ../Doc/library/gettext.rst:321 +#: library/gettext.rst:321 msgid "Return the encoding of the message catalog file." msgstr "Renvoie l'encodage du fichier du catalogue de messages." -#: ../Doc/library/gettext.rst:326 +#: library/gettext.rst:326 msgid "" "Return the encoding used to return translated messages in :meth:`.lgettext` " "and :meth:`.lngettext`." @@ -533,11 +523,11 @@ msgstr "" "Renvoie l'encodage utilisé par :meth:`.lgettext` et :meth:`.lngettext` pour " "la traduction des messages." -#: ../Doc/library/gettext.rst:334 +#: library/gettext.rst:334 msgid "Change the encoding used to return translated messages." msgstr "Modifie l'encodage utilisé pour la traduction des messages." -#: ../Doc/library/gettext.rst:341 +#: library/gettext.rst:341 msgid "" "This method installs :meth:`.gettext` into the built-in namespace, binding " "it to ``_``." @@ -545,8 +535,7 @@ msgstr "" "Cette méthode positionne :meth:`.gettext` dans l'espace de nommage natif, en " "le liant à ``_``." -#: ../Doc/library/gettext.rst:344 -#, fuzzy +#: library/gettext.rst:344 msgid "" "If the *names* parameter is given, it must be a sequence containing the " "names of functions you want to install in the builtins namespace in addition " @@ -555,10 +544,11 @@ msgid "" msgstr "" "Si le paramètre *names* est renseigné, celui-ci doit être une séquence " "contenant les noms des fonctions que vous souhaitez positionner dans " -"l'espace de nommage natif, en plus de :func:`_`. Les noms pris en charge " -"sont ``'gettext'``, ``'ngettext'``, ``'lgettext'`` et ``'lngettext'``." +"l'espace de nommage natif, en plus de :func:`_`. Les noms pris en charge " +"sont ``'gettext'``, ``'ngettext'``, ``'pgettext'``, ``'npgettext'``, " +"``'lgettext'`` et ``'lngettext'``." -#: ../Doc/library/gettext.rst:349 +#: library/gettext.rst:349 msgid "" "Note that this is only one way, albeit the most convenient way, to make the :" "func:`_` function available to your application. Because it affects the " @@ -571,9 +561,9 @@ msgstr "" "cela affecte toute l'application, et plus particulièrement l'espace de " "nommage natif, les modules localisés ne devraient jamais y positionner :func:" "`_`. Au lieu de cela, ces derniers doivent plutôt utiliser le code suivant " -"pour rendre :func:`_` accessible par leurs modules : ::" +"pour rendre :func:`_` accessible par leurs modules ::" -#: ../Doc/library/gettext.rst:359 +#: library/gettext.rst:359 msgid "" "This puts :func:`_` only in the module's global namespace and so only " "affects calls within this module." @@ -581,15 +571,15 @@ msgstr "" "Cela met :func:`_` dans l'espace de nommage global du module uniquement et " "donc n'affectera ses appels que dans ce module." -#: ../Doc/library/gettext.rst:362 +#: library/gettext.rst:362 msgid "Added ``'pgettext'`` and ``'npgettext'``." -msgstr "" +msgstr "Ajout de ``'pgettext'`` et ``'npgettext'``." -#: ../Doc/library/gettext.rst:367 +#: library/gettext.rst:367 msgid "The :class:`GNUTranslations` class" msgstr "La classe :class:`GNUTranslations`" -#: ../Doc/library/gettext.rst:369 +#: library/gettext.rst:369 msgid "" "The :mod:`gettext` module provides one additional class derived from :class:" "`NullTranslations`: :class:`GNUTranslations`. This class overrides :meth:" @@ -601,7 +591,7 @@ msgstr "" "surcharge :meth:`_parse` pour permettre de lire les fichiers GNU :program:" "`gettext` :file:`.mo` au format petit et gros-boutiste." -#: ../Doc/library/gettext.rst:374 +#: library/gettext.rst:374 msgid "" ":class:`GNUTranslations` parses optional metadata out of the translation " "catalog. It is convention with GNU :program:`gettext` to include metadata as " @@ -619,14 +609,14 @@ msgstr "" "paires de la forme ``clef: valeur`` comme définie par la :rfc:`822`, et doit " "contenir la clef ``Project-Id-Version``. Si la clef ``Content-Type`` est " "trouvée dans une métadonnée, alors la propriété ``charset`` (jeu de " -"caractères) est utilisée pour initialiser la variable d'instance \"protégée" -"\" :attr:`_charset`, sinon cette dernière est positionnée à ``None``. Si " -"l'encodage du jeu de caractères est spécifié, tous les messages " +"caractères) est utilisée pour initialiser la variable d'instance " +"\"protégée\" :attr:`_charset`, sinon cette dernière est positionnée à " +"``None``. Si l'encodage du jeu de caractères est spécifié, tous les messages " "(identifiants et chaînes de caractères) lus depuis le catalogue sont " "convertis en chaînes Unicode via cet encodage, ou via l'encodage ASCII si " "non renseigné." -#: ../Doc/library/gettext.rst:384 +#: library/gettext.rst:384 msgid "" "Since message ids are read as Unicode strings too, all :meth:`*gettext` " "methods will assume message ids as Unicode strings, not byte strings." @@ -635,7 +625,7 @@ msgstr "" "chaînes Unicode, toutes les méthodes :meth:`*gettext` les considéreront " "ainsi, et pas comme des chaînes d'octets." -#: ../Doc/library/gettext.rst:387 +#: library/gettext.rst:387 msgid "" "The entire set of key/value pairs are placed into a dictionary and set as " "the \"protected\" :attr:`_info` instance variable." @@ -643,7 +633,7 @@ msgstr "" "La totalité des paires clef / valeur est insérée dans un dictionnaire et " "représente la variable d'instance \"protégée\" :attr:`_info`." -#: ../Doc/library/gettext.rst:390 +#: library/gettext.rst:390 msgid "" "If the :file:`.mo` file's magic number is invalid, the major version number " "is unexpected, or if other problems occur while reading the file, " @@ -654,14 +644,14 @@ msgstr "" "lecture du fichier, instancier une classe :class:`GNUTranslations` peut " "lever une exception :exc:`OSError`." -#: ../Doc/library/gettext.rst:396 +#: library/gettext.rst:396 msgid "" "The following methods are overridden from the base class implementation:" msgstr "" "Les méthodes suivantes, provenant de l'implémentation de la classe de base, " "ont été surchargée :" -#: ../Doc/library/gettext.rst:400 +#: library/gettext.rst:400 msgid "" "Look up the *message* id in the catalog and return the corresponding message " "string, as a Unicode string. If there is no entry in the catalog for the " @@ -675,7 +665,7 @@ msgstr "" "défini, la recherche est transmise à la méthode :meth:`~NullTranslations." "gettext` du substitut. Sinon, l'identifiant de *message* est renvoyé." -#: ../Doc/library/gettext.rst:409 +#: library/gettext.rst:409 msgid "" "Do a plural-forms lookup of a message id. *singular* is used as the message " "id for purposes of lookup in the catalog, while *n* is used to determine " @@ -686,7 +676,7 @@ msgstr "" "catalogue, alors que *n* permet de savoir quelle forme plurielle utiliser. " "La chaîne de caractère du message renvoyée est une chaîne Unicode." -#: ../Doc/library/gettext.rst:413 +#: library/gettext.rst:413 msgid "" "If the message id is not found in the catalog, and a fallback is specified, " "the request is forwarded to the fallback's :meth:`~NullTranslations." @@ -698,12 +688,11 @@ msgstr "" "`~NullTranslations.ngettext` du substitut. Sinon, est renvoyé *singular* " "lorsque *n* vaut 1, *plural* dans tous les autres cas." -#: ../Doc/library/gettext.rst:418 +#: library/gettext.rst:418 msgid "Here is an example::" -msgstr "Voici un exemple : ::" +msgstr "Voici un exemple ::" -#: ../Doc/library/gettext.rst:430 -#, fuzzy +#: library/gettext.rst:430 msgid "" "Look up the *context* and *message* id in the catalog and return the " "corresponding message string, as a Unicode string. If there is no entry in " @@ -711,38 +700,36 @@ msgid "" "the look up is forwarded to the fallback's :meth:`pgettext` method. " "Otherwise, the *message* id is returned." msgstr "" -"Recherche l'identifiant de *message* dans le catalogue et renvoie le message " -"de la chaîne de caractères correspondante comme une chaîne Unicode. Si " -"aucun identifiant n'a été trouvé pour *message* et qu'un substitut a été " -"défini, la recherche est transmise à la méthode :meth:`~NullTranslations." -"gettext` du substitut. Sinon, l'identifiant de *message* est renvoyé." +"Recherche le *contexte* et l'identifiant de *message* dans le catalogue et " +"renvoie le message de la chaîne de caractères correspondante comme une " +"chaîne Unicode. Si aucun identifiant n'a été trouvé pour l'identifiant du " +"*message* et du *context* et qu'un substitut a été défini, la recherche est " +"transmise à la méthode :meth:`pgettext` du substitut. Sinon, l'identifiant " +"de *message* est renvoyé." -#: ../Doc/library/gettext.rst:441 -#, fuzzy +#: library/gettext.rst:441 msgid "" "Do a plural-forms lookup of a message id. *singular* is used as the message " "id for purposes of lookup in the catalog, while *n* is used to determine " "which plural form to use." msgstr "" "Effectue une recherche sur les formes plurielles de l'identifiant d'un " -"message. *singular* est utilisé pour la recherche de l'identifiant dans le " -"catalogue, alors que *n* permet de savoir quelle forme plurielle utiliser. " -"La chaîne de caractère du message renvoyée est une chaîne Unicode." +"message. *singular* est utilisé pour la recherche de l'identifiant dans le " +"catalogue, alors que *n* permet de savoir quelle forme plurielle utiliser." -#: ../Doc/library/gettext.rst:445 -#, fuzzy +#: library/gettext.rst:445 msgid "" "If the message id for *context* is not found in the catalog, and a fallback " "is specified, the request is forwarded to the fallback's :meth:`npgettext` " "method. Otherwise, when *n* is 1 *singular* is returned, and *plural* is " "returned in all other cases." msgstr "" -"Si l'identifiant du message n'est pas trouvé dans le catalogue et qu'un " -"substitut a été spécifié, la requête est transmise à la méthode :meth:" -"`~NullTranslations.ngettext` du substitut. Sinon, est renvoyé *singular* " +"Si l'identifiant du message pour le *context* n'est pas trouvé dans le " +"catalogue et qu'un substitut a été spécifié, la requête est transmise à la " +"méthode :meth:`npgettext` du substitut. Sinon, est renvoyé *singular* " "lorsque *n* vaut 1, *plural* dans tous les autres cas." -#: ../Doc/library/gettext.rst:456 +#: library/gettext.rst:456 msgid "" "Equivalent to :meth:`.gettext` and :meth:`.ngettext`, but the translation is " "returned as a byte string encoded in the preferred system encoding if no " @@ -754,11 +741,11 @@ msgstr "" "système si aucun autre n'a été défini avec :meth:`~NullTranslations." "set_output_charset`." -#: ../Doc/library/gettext.rst:470 +#: library/gettext.rst:470 msgid "Solaris message catalog support" msgstr "Support du catalogue de message de Solaris" -#: ../Doc/library/gettext.rst:472 +#: library/gettext.rst:472 msgid "" "The Solaris operating system defines its own binary :file:`.mo` file format, " "but since no documentation can be found on this format, it is not supported " @@ -768,20 +755,20 @@ msgstr "" "binaire :file:`.mo`, mais pour l'heure, puisqu'on ne peut trouver de " "documentation sur ce format, il n'est pas géré." -#: ../Doc/library/gettext.rst:478 +#: library/gettext.rst:478 msgid "The Catalog constructor" msgstr "Le constructeur *Catalog*" -#: ../Doc/library/gettext.rst:482 +#: library/gettext.rst:482 msgid "" "GNOME uses a version of the :mod:`gettext` module by James Henstridge, but " "this version has a slightly different API. Its documented usage was::" msgstr "" "GNOME utilise une version du module :mod:`gettext` de James Henstridge, mais " "qui a une API légèrement différente. D'après la documentation, elle " -"s'utilise ainsi : ::" +"s'utilise ainsi ::" -#: ../Doc/library/gettext.rst:490 +#: library/gettext.rst:490 msgid "" "For compatibility with this older module, the function :func:`Catalog` is an " "alias for the :func:`translation` function described above." @@ -789,7 +776,7 @@ msgstr "" "Pour des raisons de compatibilité avec cet ancien module, la fonction :func:" "`Catalog` est un alias de la fonction :func:`translation` décrite ci-dessous." -#: ../Doc/library/gettext.rst:493 +#: library/gettext.rst:493 msgid "" "One difference between this module and Henstridge's: his catalog objects " "supported access through a mapping API, but this appears to be unused and so " @@ -799,11 +786,11 @@ msgstr "" "catalogue étaient accessibles depuis un schéma de l'API, mais cela semblait " "ne pas être utilisé et donc n'est pas pris en charge." -#: ../Doc/library/gettext.rst:499 +#: library/gettext.rst:499 msgid "Internationalizing your programs and modules" msgstr "Internationaliser vos programmes et modules" -#: ../Doc/library/gettext.rst:501 +#: library/gettext.rst:501 msgid "" "Internationalization (I18N) refers to the operation by which a program is " "made aware of multiple languages. Localization (L10N) refers to the " @@ -817,33 +804,33 @@ msgstr "" "locales, une fois celui-ci internationalisé. Afin de fournir du texte " "multilingue à votre programme Python, les étapes suivantes sont nécessaires :" -#: ../Doc/library/gettext.rst:507 +#: library/gettext.rst:507 msgid "" "prepare your program or module by specially marking translatable strings" msgstr "" "préparer votre programme ou module en marquant spécifiquement les chaînes à " "traduire" -#: ../Doc/library/gettext.rst:509 +#: library/gettext.rst:509 msgid "" "run a suite of tools over your marked files to generate raw messages catalogs" msgstr "" "lancer une suite d'outils sur les fichiers contenant des chaînes à traduire " "pour générer des catalogues de messages brut" -#: ../Doc/library/gettext.rst:511 +#: library/gettext.rst:511 msgid "create language-specific translations of the message catalogs" msgstr "" "créer les traductions spécifiques à une langue des catalogues de messages" -#: ../Doc/library/gettext.rst:513 +#: library/gettext.rst:513 msgid "" "use the :mod:`gettext` module so that message strings are properly translated" msgstr "" "utiliser le module :mod:`gettext` pour que les chaînes de caractères soient " "bien traduites" -#: ../Doc/library/gettext.rst:515 +#: library/gettext.rst:515 msgid "" "In order to prepare your code for I18N, you need to look at all the strings " "in your files. Any string that needs to be translated should be marked by " @@ -853,9 +840,9 @@ msgstr "" "Afin de préparer votre code à être traduit (*I18N*), vous devrez rechercher " "toutes les chaînes de caractères de vos fichiers. À chaque chaîne de " "caractères à traduire doit être appliqué le marqueur ``_('...')`` --- c'est-" -"à-dire en appelant la fonction :func:`_`. Par exemple : ::" +"à-dire en appelant la fonction :func:`_`. Par exemple ::" -#: ../Doc/library/gettext.rst:524 +#: library/gettext.rst:524 msgid "" "In this example, the string ``'writing a log message'`` is marked as a " "candidate for translation, while the strings ``'mylog.txt'`` and ``'w'`` are " @@ -864,7 +851,7 @@ msgstr "" "Dans cet exemple, la chaîne ``'writing a log message'`` est maquée comme " "traduite, contrairement aux chaînes ``'mylog.txt'`` et ``'w'``." -#: ../Doc/library/gettext.rst:527 +#: library/gettext.rst:527 msgid "" "There are a few tools to extract the strings meant for translation. The " "original GNU :program:`gettext` only supported C or C++ source code but its " @@ -887,7 +874,7 @@ msgstr "" "François Pinard, nommé :program:`xpot`, fait de même et est disponible dans " "son `paquet po-utils `__." -#: ../Doc/library/gettext.rst:537 +#: library/gettext.rst:537 msgid "" "(Python also includes pure-Python versions of these programs, called :" "program:`pygettext.py` and :program:`msgfmt.py`; some Python distributions " @@ -911,7 +898,7 @@ msgstr "" "besoin du paquet GNU :program:`gettext` pour internationaliser vos " "applications en Python.)" -#: ../Doc/library/gettext.rst:549 +#: library/gettext.rst:549 msgid "" ":program:`xgettext`, :program:`pygettext`, and similar tools generate :file:" "`.po` files that are message catalogs. They are structured human-readable " @@ -924,7 +911,7 @@ msgstr "" "contiennent toutes les chaînes du code source marquées comme traduisible, " "ainsi que leur traduction à utiliser." -#: ../Doc/library/gettext.rst:555 +#: library/gettext.rst:555 msgid "" "Copies of these :file:`.po` files are then handed over to the individual " "human translators who write translations for every supported natural " @@ -943,7 +930,7 @@ msgstr "" "fichiers :file:`.mo` sont utilisés par le module :mod:`gettext` pour la " "traduction lors de l'exécution." -#: ../Doc/library/gettext.rst:564 +#: library/gettext.rst:564 msgid "" "How you use the :mod:`gettext` module in your code depends on whether you " "are internationalizing a single module or your entire application. The next " @@ -953,11 +940,11 @@ msgstr "" "de si vous internationalisez un seul module ou l'ensemble de votre " "application. Les deux sections suivantes traitent chacune des cas." -#: ../Doc/library/gettext.rst:570 +#: library/gettext.rst:570 msgid "Localizing your module" msgstr "Localiser votre module" -#: ../Doc/library/gettext.rst:572 +#: library/gettext.rst:572 msgid "" "If you are localizing your module, you must take care not to make global " "changes, e.g. to the built-in namespace. You should not use the GNU :program:" @@ -967,7 +954,7 @@ msgstr "" "globaux, e.g. dans l'espace de nommage natif. Vous ne devriez pas utiliser " "l’API GNU :program:`gettext` mais plutôt celle basée sur les classes." -#: ../Doc/library/gettext.rst:576 +#: library/gettext.rst:576 msgid "" "Let's say your module is called \"spam\" and the module's various natural " "language translation :file:`.mo` files reside in :file:`/usr/share/locale` " @@ -977,13 +964,13 @@ msgstr "" "Disons que votre module s'appelle \"spam\" et que les fichiers :file:`.mo` " "de traduction dans les différentes langues naturelles soient dans :file:`/" "usr/share/locale` au format GNU :program:`gettext`. Voici ce que vous " -"pouvez alors mettre en haut de votre module : ::" +"pouvez alors mettre en haut de votre module ::" -#: ../Doc/library/gettext.rst:587 +#: library/gettext.rst:587 msgid "Localizing your application" msgstr "Localiser votre application" -#: ../Doc/library/gettext.rst:589 +#: library/gettext.rst:589 msgid "" "If you are localizing your application, you can install the :func:`_` " "function globally into the built-in namespace, usually in the main driver " @@ -996,27 +983,27 @@ msgstr "" "fichiers de votre application de n'utiliser que ``_('...')`` sans devoir le " "redéfinir explicitement dans chaque fichier." -#: ../Doc/library/gettext.rst:594 +#: library/gettext.rst:594 msgid "" "In the simple case then, you need only add the following bit of code to the " "main driver file of your application::" msgstr "" "Dans ce cas, vous n'aurez à ajouter que le bout de code suivant au fichier " -"principal de votre application : ::" +"principal de votre application ::" -#: ../Doc/library/gettext.rst:600 +#: library/gettext.rst:600 msgid "" "If you need to set the locale directory, you can pass it into the :func:" "`install` function::" msgstr "" "Si vous avez besoin de définir le dossier des localisations, vous pouvez le " -"mettre en argument de la fonction :func:`install` : ::" +"mettre en argument de la fonction :func:`install` ::" -#: ../Doc/library/gettext.rst:608 +#: library/gettext.rst:608 msgid "Changing languages on the fly" msgstr "Changer de langue à la volée" -#: ../Doc/library/gettext.rst:610 +#: library/gettext.rst:610 msgid "" "If your program needs to support many languages at the same time, you may " "want to create multiple translation instances and then switch between them " @@ -1024,13 +1011,13 @@ msgid "" msgstr "" "Si votre programme a besoin de prendre en charge plusieurs langues en même " "temps, vous pouvez créer plusieurs instances de traduction, puis basculer " -"entre elles de façon explicite, comme ceci : ::" +"entre elles de façon explicite, comme ceci ::" -#: ../Doc/library/gettext.rst:631 +#: library/gettext.rst:631 msgid "Deferred translations" msgstr "Traductions différées" -#: ../Doc/library/gettext.rst:633 +#: library/gettext.rst:633 msgid "" "In most coding situations, strings are translated where they are coded. " "Occasionally however, you need to mark strings for translation, but defer " @@ -1039,9 +1026,9 @@ msgstr "" "Dans la plupart des cas, en programmation, les chaînes de caractères sont " "traduites à l'endroit où on les écrit. Cependant, il peut arriver que vous " "ayez besoin de traduire une chaîne de caractères un peu plus loin. Un " -"exemple classique est : ::" +"exemple classique est ::" -#: ../Doc/library/gettext.rst:646 +#: library/gettext.rst:646 msgid "" "Here, you want to mark the strings in the ``animals`` list as being " "translatable, but you don't actually want to translate them until they are " @@ -1050,11 +1037,11 @@ msgstr "" "Ici, vous voulez marquer les chaînes de caractères de la liste ``animals`` " "comme étant traduisibles, mais ne les traduire qu'au moment de les afficher." -#: ../Doc/library/gettext.rst:650 +#: library/gettext.rst:650 msgid "Here is one way you can handle this situation::" -msgstr "Voici un moyen de gérer ce cas : ::" +msgstr "Voici un moyen de gérer ce cas ::" -#: ../Doc/library/gettext.rst:666 +#: library/gettext.rst:666 msgid "" "This works because the dummy definition of :func:`_` simply returns the " "string unchanged. And this dummy definition will temporarily override any " @@ -1069,7 +1056,7 @@ msgstr "" "Attention toutefois si vous avez déjà une autre définition de :func:`_` dans " "l'espace de nommage local." -#: ../Doc/library/gettext.rst:672 +#: library/gettext.rst:672 msgid "" "Note that the second use of :func:`_` will not identify \"a\" as being " "translatable to the :program:`gettext` program, because the parameter is not " @@ -1079,11 +1066,11 @@ msgstr "" "comme traduisible par le programme :program:`gettext` car ce n'est pas un " "chaîne au sens propre." -#: ../Doc/library/gettext.rst:676 +#: library/gettext.rst:676 msgid "Another way to handle this is with the following example::" -msgstr "Voici une autre solution : ::" +msgstr "Voici une autre solution ::" -#: ../Doc/library/gettext.rst:690 +#: library/gettext.rst:690 msgid "" "In this case, you are marking translatable strings with the function :func:" "`N_`, which won't conflict with any definition of :func:`_`. However, you " @@ -1103,11 +1090,11 @@ msgstr "" "commande :option:`!-k`. Le choix du nom :func:`N_` ici est totalement " "arbitraire et aurait très bien pu être :func:`MarqueurDeTraduction`." -#: ../Doc/library/gettext.rst:701 +#: library/gettext.rst:701 msgid "Acknowledgements" msgstr "Remerciements" -#: ../Doc/library/gettext.rst:703 +#: library/gettext.rst:703 msgid "" "The following people contributed code, feedback, design suggestions, " "previous implementations, and valuable experience to the creation of this " @@ -1117,62 +1104,62 @@ msgstr "" "participé aux suggestions de conception et aux implémentations précédentes, " "et ont partagé leur expérience précieuse pour la création de ce module :" -#: ../Doc/library/gettext.rst:706 +#: library/gettext.rst:706 msgid "Peter Funk" msgstr "Peter Funk" -#: ../Doc/library/gettext.rst:708 +#: library/gettext.rst:708 msgid "James Henstridge" msgstr "James Henstridge" -#: ../Doc/library/gettext.rst:710 +#: library/gettext.rst:710 msgid "Juan David Ibáñez Palomar" msgstr "Juan David Ibáñez Palomar" -#: ../Doc/library/gettext.rst:712 +#: library/gettext.rst:712 msgid "Marc-André Lemburg" msgstr "Marc-André Lemburg" -#: ../Doc/library/gettext.rst:714 +#: library/gettext.rst:714 msgid "Martin von Löwis" msgstr "Martin von Löwis" -#: ../Doc/library/gettext.rst:716 +#: library/gettext.rst:716 msgid "François Pinard" msgstr "François Pinard" -#: ../Doc/library/gettext.rst:718 +#: library/gettext.rst:718 msgid "Barry Warsaw" msgstr "Barry Warsaw" -#: ../Doc/library/gettext.rst:720 +#: library/gettext.rst:720 msgid "Gustavo Niemeyer" msgstr "Gustavo Niemeyer" -#: ../Doc/library/gettext.rst:723 +#: library/gettext.rst:723 msgid "Footnotes" msgstr "Notes" -#: ../Doc/library/gettext.rst:724 +#: library/gettext.rst:724 msgid "" "The default locale directory is system dependent; for example, on RedHat " "Linux it is :file:`/usr/share/locale`, but on Solaris it is :file:`/usr/lib/" "locale`. The :mod:`gettext` module does not try to support these system " -"dependent defaults; instead its default is :file:`{sys.prefix}/share/locale` " -"(see :data:`sys.prefix`). For this reason, it is always best to call :func:" -"`bindtextdomain` with an explicit absolute path at the start of your " -"application." +"dependent defaults; instead its default is :file:`{sys.base_prefix}/share/" +"locale` (see :data:`sys.base_prefix`). For this reason, it is always best to " +"call :func:`bindtextdomain` with an explicit absolute path at the start of " +"your application." msgstr "" "Le dossier par défaut pour les localisations dépend du système : par " "exemple, sur RedHat c'est :file:`/usr/share/locale`, mais sur Solaris c'est :" "file:`/usr/lib/locale`. Le module :mod:`gettext` n'essaie pas de prendre en " "charge ce paramètre système dépendant du système d'exploitation, mais " -"utilise le dossier :file:`{sys.prefix}/share/locale` (voir :data:`sys." -"prefix`). C'est pour cette raison qu'il est toujours préférable d'appeler :" -"func:`bindtextdomain` en donnant explicitement un chemin absolu au début de " -"votre application." +"utilise le dossier :file:`{sys.base_prefix}/share/locale` (voir :data:`sys." +"base_prefix`). C'est pour cette raison qu'il est toujours préférable " +"d'appeler :func:`bindtextdomain` en donnant explicitement un chemin absolu " +"au début de votre application." -#: ../Doc/library/gettext.rst:732 +#: library/gettext.rst:732 msgid "See the footnote for :func:`bindtextdomain` above." msgstr "Voir la note de :func:`bindtextdomain` ci-dessus." diff --git a/library/glob.po b/library/glob.po index 7c0f59c338..21e0e86c9b 100644 --- a/library/glob.po +++ b/library/glob.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-09 17:54+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2018-09-28 12:40+0200\n" "Last-Translator: Julien VITARD \n" "Language-Team: FRENCH \n" @@ -15,16 +15,16 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 1.8.11\n" -#: ../Doc/library/glob.rst:2 +#: library/glob.rst:2 msgid ":mod:`glob` --- Unix style pathname pattern expansion" msgstr "" ":mod:`glob` --- Recherche de chemins de style Unix selon certains motifs" -#: ../Doc/library/glob.rst:7 +#: library/glob.rst:7 msgid "**Source code:** :source:`Lib/glob.py`" msgstr "**Code source :** :source:`Lib/glob.py`" -#: ../Doc/library/glob.rst:21 +#: library/glob.rst:21 msgid "" "The :mod:`glob` module finds all the pathnames matching a specified pattern " "according to the rules used by the Unix shell, although results are returned " @@ -48,7 +48,7 @@ msgstr "" "remplacer le tilde et les variables shell, nous vous conseillons d'utiliser " "les fonctions :func:`os.path.expanduser` et :func:`os.path.expandvars`.)" -#: ../Doc/library/glob.rst:31 +#: library/glob.rst:31 msgid "" "For a literal match, wrap the meta-characters in brackets. For example, " "``'[?]'`` matches the character ``'?'``." @@ -56,13 +56,13 @@ msgstr "" "Pour une correspondance littérale, il faut entourer le métacaractère par des " "crochets. Par exemple, ``'[?]'`` reconnaît le caractère ``'?'``." -#: ../Doc/library/glob.rst:36 +#: library/glob.rst:36 msgid "The :mod:`pathlib` module offers high-level path objects." msgstr "" "Le module :mod:`pathlib` offre une représentation objet de haut niveau des " "chemins." -#: ../Doc/library/glob.rst:41 +#: library/glob.rst:41 #, fuzzy msgid "" "Return a possibly-empty list of path names that match *pathname*, which must " @@ -70,7 +70,9 @@ msgid "" "absolute (like :file:`/usr/src/Python-1.5/Makefile`) or relative (like :file:" "`../../Tools/\\*/\\*.gif`), and can contain shell-style wildcards. Broken " "symlinks are included in the results (as in the shell). Whether or not the " -"results are sorted depends on the file system." +"results are sorted depends on the file system. If a file that satisfies " +"conditions is removed or added during the call of this function, whether a " +"path name for that file be included is unspecified." msgstr "" "Renvoie une liste, potentiellement vide, de chemins correspondant au motif " "*pathname*, qui doit être une chaîne de caractères contenant la " @@ -80,26 +82,27 @@ msgstr "" "symboliques cassés sont aussi inclus dans les résultats (comme pour le " "shell)." -#: ../Doc/library/glob.rst:51 -#, fuzzy +#: library/glob.rst:53 msgid "" "If *recursive* is true, the pattern \"``**``\" will match any files and zero " "or more directories, subdirectories and symbolic links to directories. If " "the pattern is followed by an :data:`os.sep` or :data:`os.altsep` then files " "will not match." msgstr "" -"Si *recursive* est vrai, le motif \"``**``\" reconnaît tous les fichiers et, " -"zéro ou plus répertoires et sous-répertoires. Si le motif est suivi par un " -"caractère de séparation ``os.sep``, seuls les répertoires et sous-" -"répertoires sont reconnus." +"Si *recursive* est vrai, le motif \"``**``\" reconnaît tous les fichiers, " +"aucun ou plusieurs répertoires, sous-répertoires et liens symboliques aux " +"répertoires. Si le motif est suivi par :data:`os.sep` ou :data:`os.altsep` " +"alors les fichiers ne sont pas inclus dans le résultat." -#: ../Doc/library/glob.rst:57 ../Doc/library/glob.rst:71 +#: library/glob.rst:73 msgid "" "Raises an :ref:`auditing event ` ``glob.glob`` with arguments " "``pathname``, ``recursive``." msgstr "" +"Lève un :ref:`évènement d'audit ` ``glob.glob`` avec les arguments " +"``pathname``, ``recursive``." -#: ../Doc/library/glob.rst:59 +#: library/glob.rst:61 msgid "" "Using the \"``**``\" pattern in large directory trees may consume an " "inordinate amount of time." @@ -107,11 +110,11 @@ msgstr "" "Utiliser le motif \"``**``\" dans de grandes arborescences de dossier peut " "consommer une quantité de temps démesurée." -#: ../Doc/library/glob.rst:62 +#: library/glob.rst:64 msgid "Support for recursive globs using \"``**``\"." msgstr "Gestion des chemins récursifs utilisant le motif \"``**``\"." -#: ../Doc/library/glob.rst:68 +#: library/glob.rst:70 msgid "" "Return an :term:`iterator` which yields the same values as :func:`glob` " "without actually storing them all simultaneously." @@ -119,7 +122,7 @@ msgstr "" "Renvoie un :term:`iterator` qui produit les mêmes valeurs que :func:`glob`, " "sans toutes les charger en mémoire simultanément." -#: ../Doc/library/glob.rst:76 +#: library/glob.rst:78 msgid "" "Escape all special characters (``'?'``, ``'*'`` and ``'['``). This is useful " "if you want to match an arbitrary literal string that may have special " @@ -134,7 +137,7 @@ msgstr "" "Windows ``escape('//?/c:/Quo vadis?.txt')`` renvoie ``'//?/c:/Quo vadis[?]." "txt'``." -#: ../Doc/library/glob.rst:85 +#: library/glob.rst:87 msgid "" "For example, consider a directory containing the following files: :file:`1." "gif`, :file:`2.txt`, :file:`card.gif` and a subdirectory :file:`sub` which " @@ -148,7 +151,7 @@ msgstr "" "les résultats suivants. Notons que les composantes principales des chemins " "sont préservées. ::" -#: ../Doc/library/glob.rst:103 +#: library/glob.rst:105 msgid "" "If the directory contains files starting with ``.`` they won't be matched by " "default. For example, consider a directory containing :file:`card.gif` and :" @@ -158,11 +161,11 @@ msgstr "" "reconnus par défaut. Par exemple, considérons un répertoire contenant :file:" "`card.gif` et :file:`.card.gif` ::" -#: ../Doc/library/glob.rst:115 +#: library/glob.rst:117 msgid "Module :mod:`fnmatch`" msgstr "Module :mod:`fnmatch`" -#: ../Doc/library/glob.rst:116 +#: library/glob.rst:118 msgid "Shell-style filename (not path) expansion" msgstr "" "Recherche de noms de fichiers de style shell (ne concerne pas les chemins)" diff --git a/library/grp.po b/library/grp.po index aaee3abc58..1513fd627b 100644 --- a/library/grp.po +++ b/library/grp.po @@ -133,13 +133,18 @@ msgid "Module :mod:`pwd`" msgstr "Module :mod:`pwd`" #: ../Doc/library/grp.rst:64 +#, fuzzy msgid "An interface to the user database, similar to this." -msgstr "" +msgstr "Interface pour la base de données des groupes, similaire à celle-ci." #: ../Doc/library/grp.rst:66 +#, fuzzy msgid "Module :mod:`spwd`" -msgstr "" +msgstr "Module :mod:`pwd`" #: ../Doc/library/grp.rst:67 +#, fuzzy msgid "An interface to the shadow password database, similar to this." msgstr "" +"Interface pour la base de données (normale) des mots de passe, semblable à " +"ceci." diff --git a/library/gzip.po b/library/gzip.po index 8bfa0f46a1..5c58f75e8c 100644 --- a/library/gzip.po +++ b/library/gzip.po @@ -367,22 +367,22 @@ msgstr "Exemples d'utilisation" #: ../Doc/library/gzip.rst:191 msgid "Example of how to read a compressed file::" -msgstr "Exemple montrant comment lire un fichier compressé : ::" +msgstr "Exemple montrant comment lire un fichier compressé ::" #: ../Doc/library/gzip.rst:197 msgid "Example of how to create a compressed GZIP file::" -msgstr "Exemple montrant comment créer un fichier GZIP : ::" +msgstr "Exemple montrant comment créer un fichier GZIP ::" #: ../Doc/library/gzip.rst:204 msgid "Example of how to GZIP compress an existing file::" msgstr "" -"Exemple montrant comment compresser dans un GZIP un fichier existant : ::" +"Exemple montrant comment compresser dans un GZIP un fichier existant ::" #: ../Doc/library/gzip.rst:212 msgid "Example of how to GZIP compress a binary string::" msgstr "" "Exemple montrant comment compresser dans un GZIP un binaire dans une " -"chaîne : ::" +"chaîne ::" #: ../Doc/library/gzip.rst:221 msgid "Module :mod:`zlib`" diff --git a/library/hashlib.po b/library/hashlib.po index a0b082322b..00f0ec5ea3 100644 --- a/library/hashlib.po +++ b/library/hashlib.po @@ -6,25 +6,25 @@ msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-11-29 16:06+0100\n" -"PO-Revision-Date: 2019-12-11 11:17+0100\n" +"PO-Revision-Date: 2020-04-27 22:47+0200\n" "Last-Translator: Jules Lasne \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2.1\n" +"X-Generator: Poedit 2.2.3\n" -#: ../Doc/library/hashlib.rst:2 +#: library/hashlib.rst:2 msgid ":mod:`hashlib` --- Secure hashes and message digests" msgstr "" ":mod:`hashlib` --- Algorithmes de hachage sécurisés et synthèse de messages" -#: ../Doc/library/hashlib.rst:10 +#: library/hashlib.rst:10 msgid "**Source code:** :source:`Lib/hashlib.py`" msgstr "**Code source :** :source:`Lib/hashlib.py`" -#: ../Doc/library/hashlib.rst:23 +#: library/hashlib.rst:23 msgid "" "This module implements a common interface to many different secure hash and " "message digest algorithms. Included are the FIPS secure hash algorithms " @@ -42,7 +42,7 @@ msgstr "" "appelés\" algorithmes de synthèse de messages\". Le terme moderne est " "\"algorithme de hachage sécurisé\"." -#: ../Doc/library/hashlib.rst:32 +#: library/hashlib.rst:32 msgid "" "If you want the adler32 or crc32 hash functions, they are available in the :" "mod:`zlib` module." @@ -50,19 +50,19 @@ msgstr "" "Si vous préférez utiliser les fonctions de hachage *adler32* ou *crc32*, " "elles sont disponibles dans le module :mod:`zlib`." -#: ../Doc/library/hashlib.rst:37 +#: library/hashlib.rst:37 msgid "" -"Some algorithms have known hash collision weaknesses, refer to the \"See also" -"\" section at the end." +"Some algorithms have known hash collision weaknesses, refer to the \"See " +"also\" section at the end." msgstr "" "Certains algorithmes ont des faiblesses connues relatives à la collision, se " "référer à la section \"Voir aussi\" à la fin." -#: ../Doc/library/hashlib.rst:44 +#: library/hashlib.rst:44 msgid "Hash algorithms" msgstr "Algorithmes de hachage" -#: ../Doc/library/hashlib.rst:46 +#: library/hashlib.rst:46 msgid "" "There is one constructor method named for each type of :dfn:`hash`. All " "return a hash object with the same simple interface. For example: use :func:" @@ -75,13 +75,13 @@ msgstr "" "Il y a un constructeur nommé selon chaque type de :dfn:`hash`. Tous " "retournent un objet haché avec la même interface. Par exemple : utilisez :" "func:`sha256` pour créer un objet haché de type SHA-256. Vous pouvez " -"maintenant utilisez cet objet :term:`bytes-like objects ` " +"maintenant utiliser cet objet :term:`bytes-like objects ` " "(normalement des :class:`bytes`) en utilisant la méthode :meth:`update`. À " "tout moment vous pouvez demander le :dfn:`digest` de la concaténation des " "données fournies en utilisant les méthodes :meth:`digest` ou :meth:" "`hexdigest`." -#: ../Doc/library/hashlib.rst:56 +#: library/hashlib.rst:56 msgid "" "For better multithreading performance, the Python :term:`GIL` is released " "for data larger than 2047 bytes at object creation or on update." @@ -90,7 +90,7 @@ msgstr "" "`GIL` Python est relâché pour des données dont la taille est supérieure à " "2047 octets lors de leur création ou leur mise à jour." -#: ../Doc/library/hashlib.rst:61 +#: library/hashlib.rst:61 msgid "" "Feeding string objects into :meth:`update` is not supported, as hashes work " "on bytes, not on characters." @@ -99,7 +99,7 @@ msgstr "" "pas implémenté, comme les fonctions de hachages travaillent sur des *bytes* " "et pas sur des caractères." -#: ../Doc/library/hashlib.rst:66 +#: library/hashlib.rst:66 msgid "" "Constructors for hash algorithms that are always present in this module are :" "func:`sha1`, :func:`sha224`, :func:`sha256`, :func:`sha384`, :func:" @@ -120,7 +120,7 @@ msgstr "" "formes les fonctions :func:`sha3_224`, :func:`sha3_256`, :func:`sha3_384`, :" "func:`sha3_512`, :func:`shake_128`, :func:`shake_256` sont aussi disponibles." -#: ../Doc/library/hashlib.rst:76 +#: library/hashlib.rst:76 msgid "" "SHA3 (Keccak) and SHAKE constructors :func:`sha3_224`, :func:`sha3_256`, :" "func:`sha3_384`, :func:`sha3_512`, :func:`shake_128`, :func:`shake_256`." @@ -129,11 +129,11 @@ msgstr "" "`sha3_256`, :func:`sha3_384`, :func:`sha3_512`, :func:`shake_128`, :func:" "`shake_256`." -#: ../Doc/library/hashlib.rst:80 +#: library/hashlib.rst:80 msgid ":func:`blake2b` and :func:`blake2s` were added." msgstr "Les fonctions :func:`blake2b` et :func:`blake2s` ont été ajoutées." -#: ../Doc/library/hashlib.rst:83 +#: library/hashlib.rst:83 msgid "" "For example, to obtain the digest of the byte string ``b'Nobody inspects the " "spammish repetition'``::" @@ -141,11 +141,11 @@ msgstr "" "Par exemple, pour obtenir l'empreinte de la chaîne ``b'Nobody inspects the " "spammish repetition'`` ::" -#: ../Doc/library/hashlib.rst:97 +#: library/hashlib.rst:97 msgid "More condensed:" msgstr "En plus condensé ::" -#: ../Doc/library/hashlib.rst:104 +#: library/hashlib.rst:104 msgid "" "Is a generic constructor that takes the string *name* of the desired " "algorithm as its first parameter. It also exists to allow access to the " @@ -159,15 +159,15 @@ msgstr "" "librairie OpenSSL peut offrir. Les constructeurs nommés sont beaucoup plus " "rapides que :func:`new` et doivent être privilégiés." -#: ../Doc/library/hashlib.rst:110 +#: library/hashlib.rst:110 msgid "Using :func:`new` with an algorithm provided by OpenSSL:" msgstr "En utilisant :func:`new` avec un algorithme fourni par OpenSSL ::" -#: ../Doc/library/hashlib.rst:117 +#: library/hashlib.rst:117 msgid "Hashlib provides the following constant attributes:" msgstr "*Hashlib* fournit les constantes suivantes ::" -#: ../Doc/library/hashlib.rst:121 +#: library/hashlib.rst:121 msgid "" "A set containing the names of the hash algorithms guaranteed to be supported " "by this module on all platforms. Note that 'md5' is in this list despite " @@ -179,7 +179,7 @@ msgstr "" "dans cette liste malgré certains éditeurs qui offrent une implémentation " "Python de la librairie compatible FIPS l'excluant." -#: ../Doc/library/hashlib.rst:130 +#: library/hashlib.rst:130 msgid "" "A set containing the names of the hash algorithms that are available in the " "running Python interpreter. These names will be recognized when passed to :" @@ -193,7 +193,7 @@ msgstr "" "ensemble. Le même algorithme peut apparaître plusieurs fois dans cet " "ensemble sous un nom différent (grâce à OpenSSL)." -#: ../Doc/library/hashlib.rst:138 +#: library/hashlib.rst:138 msgid "" "The following values are provided as constant attributes of the hash objects " "returned by the constructors:" @@ -201,19 +201,19 @@ msgstr "" "Les valeurs suivantes sont fournis en tant qu'attributs constants des objets " "hachés retournés par les constructeurs ::" -#: ../Doc/library/hashlib.rst:144 +#: library/hashlib.rst:144 msgid "The size of the resulting hash in bytes." msgstr "La taille du *hash* résultant en octets." -#: ../Doc/library/hashlib.rst:148 +#: library/hashlib.rst:148 msgid "The internal block size of the hash algorithm in bytes." msgstr "La taille interne d'un bloc de l'algorithme de hachage en octets." -#: ../Doc/library/hashlib.rst:150 +#: library/hashlib.rst:150 msgid "A hash object has the following attributes:" msgstr "L'objet haché possède les attributs suivants ::" -#: ../Doc/library/hashlib.rst:154 +#: library/hashlib.rst:154 msgid "" "The canonical name of this hash, always lowercase and always suitable as a " "parameter to :func:`new` to create another hash of this type." @@ -222,7 +222,7 @@ msgstr "" "transmissible à la fonction :func:`new` pour créer un autre objet haché de " "ce type." -#: ../Doc/library/hashlib.rst:157 +#: library/hashlib.rst:157 msgid "" "The name attribute has been present in CPython since its inception, but " "until Python 3.4 was not formally specified, so may not exist on some " @@ -232,11 +232,11 @@ msgstr "" "pas spécifié formellement jusqu'à Python 3.4, il peut ne pas exister sur " "certaines plate-formes." -#: ../Doc/library/hashlib.rst:162 +#: library/hashlib.rst:162 msgid "A hash object has the following methods:" msgstr "L'objet haché possède les méthodes suivantes ::" -#: ../Doc/library/hashlib.rst:167 +#: library/hashlib.rst:167 msgid "" "Update the hash object with the :term:`bytes-like object`. Repeated calls " "are equivalent to a single call with the concatenation of all the arguments: " @@ -246,7 +246,7 @@ msgstr "" "sont équivalent à la concaténation de tous les arguments : ``m.update(a); m." "update(b)`` est équivalent à ``m.update(a+b)``." -#: ../Doc/library/hashlib.rst:172 +#: library/hashlib.rst:172 msgid "" "The Python GIL is released to allow other threads to run while hash updates " "on data larger than 2047 bytes is taking place when using hash algorithms " @@ -257,7 +257,7 @@ msgstr "" "larges que 2047 octets, lorsque les algorithmes fournis par OpenSSL sont " "utilisés." -#: ../Doc/library/hashlib.rst:180 +#: library/hashlib.rst:180 msgid "" "Return the digest of the data passed to the :meth:`update` method so far. " "This is a bytes object of size :attr:`digest_size` which may contain bytes " @@ -267,7 +267,7 @@ msgstr "" "un objet de type *bytes* de taille :attr:`digest_size` qui contient des " "octets dans l'intervalle 0 à 255." -#: ../Doc/library/hashlib.rst:187 ../Doc/library/hashlib.rst:215 +#: library/hashlib.rst:215 msgid "" "Like :meth:`digest` except the digest is returned as a string object of " "double length, containing only hexadecimal digits. This may be used to " @@ -278,7 +278,7 @@ msgstr "" "hexadécimaux. Cela peut être utilisé pour échanger sans risque des valeurs " "dans les *e-mails* ou dans les environnements non binaires." -#: ../Doc/library/hashlib.rst:194 +#: library/hashlib.rst:194 msgid "" "Return a copy (\"clone\") of the hash object. This can be used to " "efficiently compute the digests of data sharing a common initial substring." @@ -287,11 +287,11 @@ msgstr "" "calculer efficacement les *digests* de données partageant des sous-chaînes " "communes." -#: ../Doc/library/hashlib.rst:199 +#: library/hashlib.rst:199 msgid "SHAKE variable length digests" msgstr "Synthèse de messages de taille variable SHAKE" -#: ../Doc/library/hashlib.rst:201 +#: library/hashlib.rst:201 msgid "" "The :func:`shake_128` and :func:`shake_256` algorithms provide variable " "length digests with length_in_bits//2 up to 128 or 256 bits of security. As " @@ -304,7 +304,7 @@ msgstr "" "longueur. Les longueurs maximales ne sont pas limitées par l'algorithme " "SHAKE." -#: ../Doc/library/hashlib.rst:208 +#: library/hashlib.rst:208 msgid "" "Return the digest of the data passed to the :meth:`update` method so far. " "This is a bytes object of size *length* which may contain bytes in the whole " @@ -314,17 +314,17 @@ msgstr "" "un objet de type *bytes* de taille *length* qui contient des octets dans " "l'intervalle 0 à 255." -#: ../Doc/library/hashlib.rst:221 +#: library/hashlib.rst:221 msgid "Key derivation" msgstr "Dérivation de clé" -#: ../Doc/library/hashlib.rst:223 +#: library/hashlib.rst:223 msgid "" "Key derivation and key stretching algorithms are designed for secure " "password hashing. Naive algorithms such as ``sha1(password)`` are not " "resistant against brute-force attacks. A good password hashing function must " -"be tunable, slow, and include a `salt `_." +"be tunable, slow, and include a `salt `_." msgstr "" "Les algorithmes de dérivation de clés et d'étirement de clés sont conçus " "pour le hachage sécurisé de mots de passe. Des algorithmes naïfs comme " @@ -332,7 +332,7 @@ msgstr "" "bonne fonction de hachage doit être paramétrable, lente, et inclure un `sel " "`_." -#: ../Doc/library/hashlib.rst:231 +#: library/hashlib.rst:231 msgid "" "The function provides PKCS#5 password-based key derivation function 2. It " "uses HMAC as pseudorandom function." @@ -341,7 +341,7 @@ msgstr "" "Cryptographic Standards #5 v2.0*). Elle utilise HMAC comme fonction de " "pseudo-aléatoire." -#: ../Doc/library/hashlib.rst:234 +#: library/hashlib.rst:234 msgid "" "The string *hash_name* is the desired name of the hash digest algorithm for " "HMAC, e.g. 'sha1' or 'sha256'. *password* and *salt* are interpreted as " @@ -356,7 +356,7 @@ msgstr "" "``1024``). *salt* doit être de 16 octets ou plus provenant d'une source " "correcte, e.g. :func:`os.urandom`." -#: ../Doc/library/hashlib.rst:240 +#: library/hashlib.rst:240 msgid "" "The number of *iterations* should be chosen based on the hash algorithm and " "computing power. As of 2013, at least 100,000 iterations of SHA-256 are " @@ -366,7 +366,7 @@ msgstr "" "hachage et de la puissance de calcul. En 2013, au moins 100000 itérations de " "SHA-256 sont recommandées." -#: ../Doc/library/hashlib.rst:244 +#: library/hashlib.rst:244 msgid "" "*dklen* is the length of the derived key. If *dklen* is ``None`` then the " "digest size of the hash algorithm *hash_name* is used, e.g. 64 for SHA-512." @@ -375,7 +375,7 @@ msgstr "" "taille du message de l'algorithme de hachage *hash_name* est utilisé, e.g. " "64 pour SHA-512." -#: ../Doc/library/hashlib.rst:256 +#: library/hashlib.rst:256 msgid "" "A fast implementation of *pbkdf2_hmac* is available with OpenSSL. The " "Python implementation uses an inline version of :mod:`hmac`. It is about " @@ -385,7 +385,7 @@ msgstr "" "L'implémentation Python utilise une version anonyme de :mod:`hmac`. Elle est " "trois fois plus lente et ne libère pas le GIL." -#: ../Doc/library/hashlib.rst:262 +#: library/hashlib.rst:262 msgid "" "The function provides scrypt password-based key derivation function as " "defined in :rfc:`7914`." @@ -393,7 +393,7 @@ msgstr "" "La fonction fournit la fonction de dérivation de clé *scrypt* comme définie " "dans :rfc:`7914`." -#: ../Doc/library/hashlib.rst:265 +#: library/hashlib.rst:265 msgid "" "*password* and *salt* must be :term:`bytes-like objects `. Applications and libraries should limit *password* to a sensible " @@ -405,7 +405,7 @@ msgstr "" "longueur raisonnable (e.g. 1024). *salt* doit être de 16 octets ou plus " "provenant d'une source correcte, e.g. :func:`os.urandom`." -#: ../Doc/library/hashlib.rst:270 +#: library/hashlib.rst:270 msgid "" "*n* is the CPU/Memory cost factor, *r* the block size, *p* parallelization " "factor and *maxmem* limits memory (OpenSSL 1.1.0 defaults to 32 MiB). " @@ -415,15 +415,15 @@ msgstr "" "facteur de parallélisation et *maxmem* limite la mémoire (OpenSSL 1.1.0 " "limite à 32 MB par défaut). *dklen* est la longueur de la clé dérivée." -#: ../Doc/library/hashlib.rst:275 +#: library/hashlib.rst:275 msgid ":ref:`Availability `: OpenSSL 1.1+." msgstr ":ref:`Disponibilité ` : OpenSSL 1.1+." -#: ../Doc/library/hashlib.rst:280 +#: library/hashlib.rst:280 msgid "BLAKE2" msgstr "BLAKE2" -#: ../Doc/library/hashlib.rst:287 +#: library/hashlib.rst:287 msgid "" "BLAKE2_ is a cryptographic hash function defined in :rfc:`7693` that comes " "in two flavors:" @@ -431,7 +431,7 @@ msgstr "" "BLAKE2_ est une fonction de hachage cryptographique définie dans la :rfc:" "`7693` et disponible en deux versions ::" -#: ../Doc/library/hashlib.rst:290 +#: library/hashlib.rst:290 msgid "" "**BLAKE2b**, optimized for 64-bit platforms and produces digests of any size " "between 1 and 64 bytes," @@ -439,15 +439,15 @@ msgstr "" "**BLAKE2b**, optimisée pour les plates-formes 64-bit et produisant des " "messages de toutes tailles entre 1 et 64 octets," -#: ../Doc/library/hashlib.rst:293 +#: library/hashlib.rst:293 msgid "" "**BLAKE2s**, optimized for 8- to 32-bit platforms and produces digests of " "any size between 1 and 32 bytes." msgstr "" -"**BLAKE2b**, optimisée pour les plates-formes de 8 à 32-bit et produisant " +"**BLAKE2s**, optimisée pour les plates-formes de 8 à 32-bit et produisant " "des messages de toutes tailles entre 1 et 32 octets." -#: ../Doc/library/hashlib.rst:296 +#: library/hashlib.rst:296 msgid "" "BLAKE2 supports **keyed mode** (a faster and simpler replacement for HMAC_), " "**salted hashing**, **personalization**, and **tree hashing**." @@ -456,7 +456,7 @@ msgstr "" "rapide et plus simple pour HMAC_), **salted hashing**, **personalization**, " "et **tree hashing**." -#: ../Doc/library/hashlib.rst:299 +#: library/hashlib.rst:299 msgid "" "Hash objects from this module follow the API of standard library's :mod:" "`hashlib` objects." @@ -464,15 +464,15 @@ msgstr "" "Les objets hachés de ce module suivent l'API des objets du module :mod:" "`hashlib` de la librairie standard." -#: ../Doc/library/hashlib.rst:304 +#: library/hashlib.rst:304 msgid "Creating hash objects" msgstr "Création d'objets hachés" -#: ../Doc/library/hashlib.rst:306 +#: library/hashlib.rst:306 msgid "New hash objects are created by calling constructor functions:" msgstr "Les nouveaux objets hachés sont créés en appelant les constructeurs ::" -#: ../Doc/library/hashlib.rst:318 +#: library/hashlib.rst:318 msgid "" "These functions return the corresponding hash objects for calculating " "BLAKE2b or BLAKE2s. They optionally take these general parameters:" @@ -480,7 +480,7 @@ msgstr "" "Ces fonctions produisent l'objet haché correspondant aux calculs de BLAKE2b " "ou BLAKE2s. Elles prennent ces paramètres optionnels ::" -#: ../Doc/library/hashlib.rst:321 +#: library/hashlib.rst:321 msgid "" "*data*: initial chunk of data to hash, which must be :term:`bytes-like " "object`. It can be passed only as positional argument." @@ -488,11 +488,11 @@ msgstr "" "*data*: morceau initial de données à hacher, qui doit être un objet de type :" "term:`bytes-like object`. Il peut être passé comme argument positionnel." -#: ../Doc/library/hashlib.rst:324 +#: library/hashlib.rst:324 msgid "*digest_size*: size of output digest in bytes." msgstr "*digest_size*: taille en sortie du message en octets." -#: ../Doc/library/hashlib.rst:326 +#: library/hashlib.rst:326 msgid "" "*key*: key for keyed hashing (up to 64 bytes for BLAKE2b, up to 32 bytes for " "BLAKE2s)." @@ -500,7 +500,7 @@ msgstr "" "*key*: clé pour les code d'authentification de message *keyed hashing* " "(jusqu'à 64 octets pour BLAKE2b, jusqu'à 32 octets pour BLAKE2s)." -#: ../Doc/library/hashlib.rst:329 +#: library/hashlib.rst:329 msgid "" "*salt*: salt for randomized hashing (up to 16 bytes for BLAKE2b, up to 8 " "bytes for BLAKE2s)." @@ -508,7 +508,7 @@ msgstr "" "*salt*: sel pour le hachage randomisé *randomized hashing* (jusqu'à 16 " "octets pour BLAKE2b, jusqu'à 8 octets pour BLAKE2s)." -#: ../Doc/library/hashlib.rst:332 +#: library/hashlib.rst:332 msgid "" "*person*: personalization string (up to 16 bytes for BLAKE2b, up to 8 bytes " "for BLAKE2s)." @@ -516,57 +516,57 @@ msgstr "" "*person*: chaîne de personnalisation (jusqu'à 16 octets pour BLAKE2b, " "jusqu'à 8 octets pour BLAKE2s)." -#: ../Doc/library/hashlib.rst:335 +#: library/hashlib.rst:335 msgid "The following table shows limits for general parameters (in bytes):" msgstr "" "Le tableau suivant présente les limites des paramètres généraux (en " "octets) ::" -#: ../Doc/library/hashlib.rst:338 +#: library/hashlib.rst:338 msgid "Hash" msgstr "Hash" -#: ../Doc/library/hashlib.rst:338 +#: library/hashlib.rst:338 msgid "digest_size" msgstr "digest_size" -#: ../Doc/library/hashlib.rst:338 +#: library/hashlib.rst:338 msgid "len(key)" msgstr "len(key)" -#: ../Doc/library/hashlib.rst:338 +#: library/hashlib.rst:338 msgid "len(salt)" msgstr "len(salt)" -#: ../Doc/library/hashlib.rst:338 +#: library/hashlib.rst:338 msgid "len(person)" msgstr "len(person)" -#: ../Doc/library/hashlib.rst:340 +#: library/hashlib.rst:340 msgid "BLAKE2b" msgstr "BLAKE2b" -#: ../Doc/library/hashlib.rst:340 +#: library/hashlib.rst:340 msgid "64" msgstr "64" -#: ../Doc/library/hashlib.rst:340 +#: library/hashlib.rst:340 msgid "16" msgstr "16" -#: ../Doc/library/hashlib.rst:341 +#: library/hashlib.rst:341 msgid "BLAKE2s" msgstr "BLAKE2s" -#: ../Doc/library/hashlib.rst:341 +#: library/hashlib.rst:341 msgid "32" msgstr "32" -#: ../Doc/library/hashlib.rst:341 +#: library/hashlib.rst:341 msgid "8" msgstr "8" -#: ../Doc/library/hashlib.rst:346 +#: library/hashlib.rst:346 msgid "" "BLAKE2 specification defines constant lengths for salt and personalization " "parameters, however, for convenience, this implementation accepts byte " @@ -583,24 +583,24 @@ msgstr "" "``b'salt'`` et ``b'salt\\x00'`` sont la même valeur (Ce n'est pas le cas " "pour *key*.)" -#: ../Doc/library/hashlib.rst:353 +#: library/hashlib.rst:353 msgid "These sizes are available as module `constants`_ described below." msgstr "" "Ces tailles sont disponibles comme `constants`_ du module et décrites ci-" "dessous." -#: ../Doc/library/hashlib.rst:355 +#: library/hashlib.rst:355 msgid "" "Constructor functions also accept the following tree hashing parameters:" msgstr "" "Les fonctions constructeur acceptent aussi les paramètres suivants pour le " "*tree hashing* ::" -#: ../Doc/library/hashlib.rst:357 +#: library/hashlib.rst:357 msgid "*fanout*: fanout (0 to 255, 0 if unlimited, 1 in sequential mode)." msgstr "*fanout*: *fanout* (0 à 255, 0 si illimité, 1 en mode séquentiel)." -#: ../Doc/library/hashlib.rst:359 +#: library/hashlib.rst:359 msgid "" "*depth*: maximal depth of tree (1 to 255, 255 if unlimited, 1 in sequential " "mode)." @@ -608,7 +608,7 @@ msgstr "" "*depth*: profondeur maximale de l'arbre (1 à 255, 255 si illimité, 1 en mode " "séquentiel)." -#: ../Doc/library/hashlib.rst:362 +#: library/hashlib.rst:362 msgid "" "*leaf_size*: maximal byte length of leaf (0 to 2**32-1, 0 if unlimited or in " "sequential mode)." @@ -616,7 +616,7 @@ msgstr "" "*leaf_size*: taille maximale en octets d'une feuille (0 à 2**32-1, 0 si " "illimité ou en mode séquentiel)." -#: ../Doc/library/hashlib.rst:365 +#: library/hashlib.rst:365 msgid "" "*node_offset*: node offset (0 to 2**64-1 for BLAKE2b, 0 to 2**48-1 for " "BLAKE2s, 0 for the first, leftmost, leaf, or in sequential mode)." @@ -624,14 +624,14 @@ msgstr "" "*node_offset*: décalage de nœud (0 à 2**64-1 pour BLAKE2b, 0 à 2**48-1 pour " "BLAKE2s, 0 pour la première feuille la plus à gauche, ou en mode séquentiel)." -#: ../Doc/library/hashlib.rst:368 +#: library/hashlib.rst:368 msgid "" "*node_depth*: node depth (0 to 255, 0 for leaves, or in sequential mode)." msgstr "" "*node_depth*: profondeur de nœuds (0 à 255, 0 pour les feuilles, ou en mode " "séquentiel)." -#: ../Doc/library/hashlib.rst:370 +#: library/hashlib.rst:370 msgid "" "*inner_size*: inner digest size (0 to 64 for BLAKE2b, 0 to 32 for BLAKE2s, 0 " "in sequential mode)." @@ -639,7 +639,7 @@ msgstr "" "*inner_size*: taille interne du message (0 à 64 pour BLAKE2b, 0 à 32 pour " "BLAKE2s, 0 en mode séquentiel)." -#: ../Doc/library/hashlib.rst:373 +#: library/hashlib.rst:373 msgid "" "*last_node*: boolean indicating whether the processed node is the last one " "(`False` for sequential mode)." @@ -647,7 +647,7 @@ msgstr "" "*last_node*: booléen indiquant si le nœud traité est le dernier (`False` " "pour le mode séquentiel)." -#: ../Doc/library/hashlib.rst:379 +#: library/hashlib.rst:379 msgid "" "See section 2.10 in `BLAKE2 specification `_ for comprehensive review of tree hashing." @@ -655,38 +655,38 @@ msgstr "" "Voir section 2.10 dans `BLAKE2 specification `_ pour une approche compréhensive du *tree hashing*." -#: ../Doc/library/hashlib.rst:385 +#: library/hashlib.rst:385 msgid "Constants" msgstr "Constantes" -#: ../Doc/library/hashlib.rst:390 +#: library/hashlib.rst:390 msgid "Salt length (maximum length accepted by constructors)." msgstr "Longueur du sel (longueur maximale acceptée par les constructeurs)." -#: ../Doc/library/hashlib.rst:396 +#: library/hashlib.rst:396 msgid "" "Personalization string length (maximum length accepted by constructors)." msgstr "" "Longueur de la chaîne de personnalisation (longueur maximale acceptée par " "les constructeurs)." -#: ../Doc/library/hashlib.rst:402 +#: library/hashlib.rst:402 msgid "Maximum key size." msgstr "Taille maximale de clé." -#: ../Doc/library/hashlib.rst:408 +#: library/hashlib.rst:408 msgid "Maximum digest size that the hash function can output." msgstr "Taille maximale du message que peut fournir la fonction de hachage." -#: ../Doc/library/hashlib.rst:412 +#: library/hashlib.rst:412 msgid "Examples" msgstr "Exemples" -#: ../Doc/library/hashlib.rst:415 +#: library/hashlib.rst:415 msgid "Simple hashing" msgstr "Hachage simple" -#: ../Doc/library/hashlib.rst:417 +#: library/hashlib.rst:417 msgid "" "To calculate hash of some data, you should first construct a hash object by " "calling the appropriate constructor function (:func:`blake2b` or :func:" @@ -701,7 +701,7 @@ msgstr "" "l'empreinte du message en appelant la méthode :meth:`digest` (ou :meth:" "`hexdigest` pour les chaînes hexadécimales)." -#: ../Doc/library/hashlib.rst:430 +#: library/hashlib.rst:430 msgid "" "As a shortcut, you can pass the first chunk of data to update directly to " "the constructor as the positional argument:" @@ -709,7 +709,7 @@ msgstr "" "Pour raccourcir, vous pouvez passer directement au constructeur, comme " "argument positionnel, le premier morceau du message à mettre à jour ::" -#: ../Doc/library/hashlib.rst:437 +#: library/hashlib.rst:437 msgid "" "You can call :meth:`hash.update` as many times as you need to iteratively " "update the hash:" @@ -717,11 +717,11 @@ msgstr "" "Vous pouvez appeler la méthode :meth:`hash.update` autant de fois que " "nécessaire pour mettre à jour le *hash* de manière itérative ::" -#: ../Doc/library/hashlib.rst:450 +#: library/hashlib.rst:450 msgid "Using different digest sizes" msgstr "Usage de tailles d'empreintes différentes" -#: ../Doc/library/hashlib.rst:452 +#: library/hashlib.rst:452 msgid "" "BLAKE2 has configurable size of digests up to 64 bytes for BLAKE2b and up to " "32 bytes for BLAKE2s. For example, to replace SHA-1 with BLAKE2b without " @@ -732,7 +732,7 @@ msgstr "" "par BLAKE2b sans changer la taille de la sortie, nous pouvons dire à BLAKE2b " "de produire une empreinte de 20 octets ::" -#: ../Doc/library/hashlib.rst:466 +#: library/hashlib.rst:466 msgid "" "Hash objects with different digest sizes have completely different outputs " "(shorter hashes are *not* prefixes of longer hashes); BLAKE2b and BLAKE2s " @@ -743,11 +743,11 @@ msgstr "" "de *hash* plus longs); BLAKE2b et BLAKE2s produisent des sorties différentes " "même si les longueurs des sorties sont les mêmes ::" -#: ../Doc/library/hashlib.rst:482 +#: library/hashlib.rst:482 msgid "Keyed hashing" msgstr "Code d'authentification de message" -#: ../Doc/library/hashlib.rst:484 +#: library/hashlib.rst:484 msgid "" "Keyed hashing can be used for authentication as a faster and simpler " "replacement for `Hash-based message authentication code `_)" @@ -852,7 +852,7 @@ msgstr "" "(`NIST SP-800-106 \"Randomized Hashing for Digital Signatures\" `_, article en anglais)" -#: ../Doc/library/hashlib.rst:568 +#: library/hashlib.rst:568 msgid "" "In BLAKE2 the salt is processed as a one-time input to the hash function " "during initialization, rather than as an input to each compression function." @@ -860,7 +860,7 @@ msgstr "" "Dans BLAKE2, le sel est passé une seule fois lors de l'initialisation de la " "fonction de hachage, plutôt qu'à chaque appel d'une fonction de compression." -#: ../Doc/library/hashlib.rst:573 +#: library/hashlib.rst:573 msgid "" "*Salted hashing* (or just hashing) with BLAKE2 or any other general-purpose " "cryptographic hash function, such as SHA-256, is not suitable for hashing " @@ -871,11 +871,11 @@ msgstr "" "mots de passe. Voir `BLAKE2 FAQ `_ pour plus " "d'informations." -#: ../Doc/library/hashlib.rst:596 +#: library/hashlib.rst:596 msgid "Personalization" msgstr "Personnalisation" -#: ../Doc/library/hashlib.rst:598 +#: library/hashlib.rst:598 msgid "" "Sometimes it is useful to force hash function to produce different digests " "for the same input for different purposes. Quoting the authors of the Skein " @@ -885,7 +885,7 @@ msgstr "" "différentes empreintes de message d'une même entrée pour différentes " "utilisations. Pour citer les auteurs de la fonction de hachage Skein  ::" -#: ../Doc/library/hashlib.rst:602 +#: library/hashlib.rst:602 msgid "" "We recommend that all application designers seriously consider doing this; " "we have seen many protocols where a hash that is computed in one part of the " @@ -902,7 +902,7 @@ msgstr "" "prendre en entrée le même *hash*. Personnaliser chaque fonction de hachage " "utilisée dans le protocole stoppe immédiatement ce genre d'attaque." -#: ../Doc/library/hashlib.rst:609 +#: library/hashlib.rst:609 msgid "" "(`The Skein Hash Function Family `_, p. 21)" @@ -910,12 +910,12 @@ msgstr "" "(`The Skein Hash Function Family `_, p. 21, article en anglais)" -#: ../Doc/library/hashlib.rst:613 +#: library/hashlib.rst:613 msgid "BLAKE2 can be personalized by passing bytes to the *person* argument::" msgstr "" "BLAKE2 peut être personnalisé en passant des *bytes* à l'argument *person* ::" -#: ../Doc/library/hashlib.rst:627 +#: library/hashlib.rst:627 msgid "" "Personalization together with the keyed mode can also be used to derive " "different keys from a single one." @@ -923,17 +923,17 @@ msgstr "" "La personnalisation et le *keyed mode* peuvent être utilisés ensemble pour " "dériver différentes clés à partir d'une seule." -#: ../Doc/library/hashlib.rst:641 +#: library/hashlib.rst:641 msgid "Tree mode" msgstr "Mode Arbre" -#: ../Doc/library/hashlib.rst:643 +#: library/hashlib.rst:643 msgid "Here's an example of hashing a minimal tree with two leaf nodes::" msgstr "" "L'exemple ci-dessous présente comment hacher un arbre minimal avec deux " "nœuds terminaux ::" -#: ../Doc/library/hashlib.rst:649 +#: library/hashlib.rst:649 msgid "" "This example uses 64-byte internal digests, and returns the 32-byte final " "digest::" @@ -941,11 +941,11 @@ msgstr "" "Cet exemple utilise en interne des empreintes de 64 octets, et produit " "finalement des empreintes 32 octets ::" -#: ../Doc/library/hashlib.rst:679 +#: library/hashlib.rst:679 msgid "Credits" msgstr "Crédits" -#: ../Doc/library/hashlib.rst:681 +#: library/hashlib.rst:681 msgid "" "BLAKE2_ was designed by *Jean-Philippe Aumasson*, *Samuel Neves*, *Zooko " "Wilcox-O'Hearn*, and *Christian Winnerlein* based on SHA-3_ finalist BLAKE_ " @@ -957,7 +957,7 @@ msgstr "" "créé par *Jean-Philippe Aumasson*, *Luca Henzen*, *Willi Meier*, et *Raphael " "C.-W. Phan*." -#: ../Doc/library/hashlib.rst:686 +#: library/hashlib.rst:686 msgid "" "It uses core algorithm from ChaCha_ cipher designed by *Daniel J. " "Bernstein*." @@ -965,7 +965,7 @@ msgstr "" "Il utilise le cœur de l'algorithme de chiffrement de ChaCha_ conçu par " "*Daniel J. Bernstein*." -#: ../Doc/library/hashlib.rst:688 +#: library/hashlib.rst:688 msgid "" "The stdlib implementation is based on pyblake2_ module. It was written by " "*Dmitry Chestnykh* based on C implementation written by *Samuel Neves*. The " @@ -976,12 +976,12 @@ msgstr "" "l'implémentation C écrite par *Samuel Neves*. La documentation a été copiée " "depuis pyblake2_ et écrite par *Dmitry Chestnykh*." -#: ../Doc/library/hashlib.rst:692 +#: library/hashlib.rst:692 msgid "The C code was partly rewritten for Python by *Christian Heimes*." msgstr "" "Le code C a été partiellement réécrit pour Python par *Christian Heimes*." -#: ../Doc/library/hashlib.rst:694 +#: library/hashlib.rst:694 msgid "" "The following public domain dedication applies for both C hash function " "implementation, extension code, and this documentation:" @@ -989,7 +989,7 @@ msgstr "" "Le transfert dans le domaine publique s'applique pour l'implémentation C de " "la fonction de hachage, ses extensions et cette documentation ::" -#: ../Doc/library/hashlib.rst:697 +#: library/hashlib.rst:697 msgid "" "To the extent possible under law, the author(s) have dedicated all copyright " "and related and neighboring rights to this software to the public domain " @@ -1000,7 +1000,7 @@ msgstr "" "domaine public dans le monde entier. Ce logiciel est distribué sans aucune " "garantie." -#: ../Doc/library/hashlib.rst:701 +#: library/hashlib.rst:701 msgid "" "You should have received a copy of the CC0 Public Domain Dedication along " "with this software. If not, see https://creativecommons.org/publicdomain/" @@ -1010,7 +1010,7 @@ msgstr "" "Domain Dedication*. Sinon, voir https://creativecommons.org/publicdomain/" "zero/1.0/." -#: ../Doc/library/hashlib.rst:705 +#: library/hashlib.rst:705 msgid "" "The following people have helped with development or contributed their " "changes to the project and the public domain according to the Creative " @@ -1020,38 +1020,38 @@ msgstr "" "modification du projet et au domaine public selon la licence Creative " "Commons Public Domain Dedication 1.0 Universal ::" -#: ../Doc/library/hashlib.rst:709 +#: library/hashlib.rst:709 msgid "*Alexandr Sokolovskiy*" msgstr "*Alexandr Sokolovskiy*" -#: ../Doc/library/hashlib.rst:723 +#: library/hashlib.rst:723 msgid "Module :mod:`hmac`" msgstr "Module :mod:`hmac`" -#: ../Doc/library/hashlib.rst:723 +#: library/hashlib.rst:723 msgid "A module to generate message authentication codes using hashes." msgstr "" "Un module pour générer des codes d'authentification utilisant des *hash*." -#: ../Doc/library/hashlib.rst:726 +#: library/hashlib.rst:726 msgid "Module :mod:`base64`" msgstr "Module :mod:`base64`" -#: ../Doc/library/hashlib.rst:726 +#: library/hashlib.rst:726 msgid "Another way to encode binary hashes for non-binary environments." msgstr "" "Un autre moyen d'encoder des *hash* binaires dans des environnements non " "binaires." -#: ../Doc/library/hashlib.rst:729 +#: library/hashlib.rst:729 msgid "https://blake2.net" msgstr "https://blake2.net" -#: ../Doc/library/hashlib.rst:729 +#: library/hashlib.rst:729 msgid "Official BLAKE2 website." msgstr "Site officiel de BLAKE2." -#: ../Doc/library/hashlib.rst:732 +#: library/hashlib.rst:732 msgid "" "https://csrc.nist.gov/csrc/media/publications/fips/180/2/archive/2002-08-01/" "documents/fips180-2.pdf" @@ -1059,11 +1059,11 @@ msgstr "" "https://csrc.nist.gov/csrc/media/publications/fips/180/2/archive/2002-08-01/" "documents/fips180-2.pdf" -#: ../Doc/library/hashlib.rst:732 +#: library/hashlib.rst:732 msgid "The FIPS 180-2 publication on Secure Hash Algorithms." msgstr "La publication FIPS 180-2 sur les algorithmes de hachage sécurisés." -#: ../Doc/library/hashlib.rst:736 +#: library/hashlib.rst:736 msgid "" "https://en.wikipedia.org/wiki/" "Cryptographic_hash_function#Cryptographic_hash_algorithms" @@ -1071,7 +1071,7 @@ msgstr "" "https://en.wikipedia.org/wiki/" "Cryptographic_hash_function#Cryptographic_hash_algorithms" -#: ../Doc/library/hashlib.rst:735 +#: library/hashlib.rst:735 msgid "" "Wikipedia article with information on which algorithms have known issues and " "what that means regarding their use." @@ -1079,10 +1079,10 @@ msgstr "" "Article Wikipedia contenant les informations relatives aux algorithmes ayant " "des problèmes et leur interprétation au regard de leur utilisation." -#: ../Doc/library/hashlib.rst:738 +#: library/hashlib.rst:738 msgid "https://www.ietf.org/rfc/rfc2898.txt" msgstr "https://www.ietf.org/rfc/rfc2898.txt" -#: ../Doc/library/hashlib.rst:739 +#: library/hashlib.rst:739 msgid "PKCS #5: Password-Based Cryptography Specification Version 2.0" msgstr "PKCS #5: Password-Based Cryptography Specification Version 2.0" diff --git a/library/heapq.po b/library/heapq.po index 2bc38bbe47..c0be357671 100644 --- a/library/heapq.po +++ b/library/heapq.po @@ -15,15 +15,15 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.2.1\n" -#: ../Doc/library/heapq.rst:2 +#: library/heapq.rst:2 msgid ":mod:`heapq` --- Heap queue algorithm" msgstr ":mod:`heapq` — File de priorité basée sur un tas" -#: ../Doc/library/heapq.rst:12 +#: library/heapq.rst:12 msgid "**Source code:** :source:`Lib/heapq.py`" msgstr "**Code source :** :source:`Lib/heapq.py`" -#: ../Doc/library/heapq.rst:16 +#: library/heapq.rst:16 msgid "" "This module provides an implementation of the heap queue algorithm, also " "known as the priority queue algorithm." @@ -31,7 +31,7 @@ msgstr "" "Ce module expose une implémentation de l'algorithme de file de priorité, " "basée sur un tas." -#: ../Doc/library/heapq.rst:19 +#: library/heapq.rst:19 msgid "" "Heaps are binary trees for which every parent node has a value less than or " "equal to any of its children. This implementation uses arrays for which " @@ -48,7 +48,7 @@ msgstr "" "considérés comme porteur d'une valeur infinie. L'intérêt du tas est que son " "plus petit élément est toujours la racine, ``tas[0]``." -#: ../Doc/library/heapq.rst:26 +#: library/heapq.rst:26 msgid "" "The API below differs from textbook heap algorithms in two aspects: (a) We " "use zero-based indexing. This makes the relationship between the index for " @@ -58,25 +58,25 @@ msgid "" "\"max heap\" is more common in texts because of its suitability for in-place " "sorting)." msgstr "" -"L'API ci-dessous diffère de la file de priorité classique par deux aspects : " -"(a) L'indiçage commence à zéro. Cela complexifie légèrement la relation " +"L'API ci-dessous diffère de la file de priorité classique par deux aspects : " +"(a) l'indiçage commence à zéro. Cela complexifie légèrement la relation " "entre l'indice d'un nœud et les indices de ses fils mais est alignée avec " "l'indiçage commençant à zéro que Python utilise. (b) La méthode *pop* " -"renvoie le plus petit élément et non le plus grand (appelé « tas-min » dans " -"les manuels scolaires ; le « tas-max » étant généralement plus courant dans " +"renvoie le plus petit élément et non le plus grand (appelé « tas-min » dans " +"les manuels scolaires ; le « tas-max » étant généralement plus courant dans " "la littérature car il permet le classement sans tampon)." -#: ../Doc/library/heapq.rst:33 +#: library/heapq.rst:33 msgid "" "These two make it possible to view the heap as a regular Python list without " "surprises: ``heap[0]`` is the smallest item, and ``heap.sort()`` maintains " "the heap invariant!" msgstr "" "Ces deux points permettent d'aborder le tas comme une liste Python standard " -"sans surprise : ``heap[0]`` est le plus petit élément tandis que ``heap." -"sort()`` ne modifie pas le tas !" +"sans surprise : ``heap[0]`` est le plus petit élément et ``heap.sort()`` " +"conserve l'invariant du tas !" -#: ../Doc/library/heapq.rst:37 +#: library/heapq.rst:37 msgid "" "To create a heap, use a list initialized to ``[]``, or you can transform a " "populated list into a heap via function :func:`heapify`." @@ -85,17 +85,17 @@ msgstr "" "une liste existante et transformez la en tas à l'aide de la fonction :func:" "`heapify`." -#: ../Doc/library/heapq.rst:40 +#: library/heapq.rst:40 msgid "The following functions are provided:" -msgstr "Les fonctions suivantes sont fournies :" +msgstr "Les fonctions suivantes sont fournies :" -#: ../Doc/library/heapq.rst:45 +#: library/heapq.rst:45 msgid "Push the value *item* onto the *heap*, maintaining the heap invariant." msgstr "" "Introduit la valeur *item* dans le tas *heap*, en conservant l'invariance du " "tas." -#: ../Doc/library/heapq.rst:50 +#: library/heapq.rst:50 msgid "" "Pop and return the smallest item from the *heap*, maintaining the heap " "invariant. If the heap is empty, :exc:`IndexError` is raised. To access " @@ -105,7 +105,7 @@ msgstr "" "le tas est vide, une exception :exc:`IndexError` est levée. Pour accéder au " "plus petit élément sans le retirer, utilisez ``heap[0]``." -#: ../Doc/library/heapq.rst:57 +#: library/heapq.rst:57 msgid "" "Push *item* on the heap, then pop and return the smallest item from the " "*heap*. The combined action runs more efficiently than :func:`heappush` " @@ -115,13 +115,13 @@ msgstr "" "de *heap*. Cette action combinée est plus efficace que :func:`heappush` " "suivie par un appel séparé à :func:`heappop`." -#: ../Doc/library/heapq.rst:64 +#: library/heapq.rst:64 msgid "Transform list *x* into a heap, in-place, in linear time." msgstr "" "Transforme une liste *x* en un tas, sans utiliser de tampon et en temps " "linéaire." -#: ../Doc/library/heapq.rst:69 +#: library/heapq.rst:69 msgid "" "Pop and return the smallest item from the *heap*, and also push the new " "*item*. The heap size doesn't change. If the heap is empty, :exc:" @@ -131,7 +131,7 @@ msgstr "" "*item*. La taille du tas ne change pas. Si le tas est vide, une exception :" "exc:`IndexError` est levée." -#: ../Doc/library/heapq.rst:72 +#: library/heapq.rst:72 msgid "" "This one step operation is more efficient than a :func:`heappop` followed " "by :func:`heappush` and can be more appropriate when using a fixed-size " @@ -143,7 +143,7 @@ msgstr "" "est de taille fixe. La combinaison *pop*/*push* renvoie toujours un élément " "du tas et le remplace par *item*." -#: ../Doc/library/heapq.rst:77 +#: library/heapq.rst:77 msgid "" "The value returned may be larger than the *item* added. If that isn't " "desired, consider using :func:`heappushpop` instead. Its push/pop " @@ -155,12 +155,12 @@ msgstr "" "Sa combinaison *push*/*pop* renvoie le plus petit élément des deux valeurs " "et laisse la plus grande sur le tas." -#: ../Doc/library/heapq.rst:83 +#: library/heapq.rst:83 msgid "The module also offers three general purpose functions based on heaps." msgstr "" "Ce module contient également trois fonctions génériques utilisant les tas." -#: ../Doc/library/heapq.rst:88 +#: library/heapq.rst:88 msgid "" "Merge multiple sorted inputs into a single sorted output (for example, merge " "timestamped entries from multiple log files). Returns an :term:`iterator` " @@ -170,7 +170,7 @@ msgstr "" "exemple, fusionne des entrées datées provenant de multiples journaux " "applicatifs). Renvoie un :term:`iterator` sur les valeurs ordonnées." -#: ../Doc/library/heapq.rst:92 +#: library/heapq.rst:92 msgid "" "Similar to ``sorted(itertools.chain(*iterables))`` but returns an iterable, " "does not pull the data into memory all at once, and assumes that each of the " @@ -180,12 +180,12 @@ msgstr "" "itérable, ne stocke pas toutes les données en mémoire en une fois et suppose " "que chaque flux d'entrée est déjà classé (en ordre croissant)." -#: ../Doc/library/heapq.rst:96 +#: library/heapq.rst:96 msgid "" "Has two optional arguments which must be specified as keyword arguments." msgstr "A deux arguments optionnels qui doivent être fournis par mot clef." -#: ../Doc/library/heapq.rst:98 +#: library/heapq.rst:98 msgid "" "*key* specifies a :term:`key function` of one argument that is used to " "extract a comparison key from each input element. The default value is " @@ -195,7 +195,7 @@ msgstr "" "une clef de comparaison de chaque élément de la liste. La valeur par défaut " "est ``None`` (compare les éléments directement)." -#: ../Doc/library/heapq.rst:102 +#: library/heapq.rst:102 msgid "" "*reverse* is a boolean value. If set to ``True``, then the input elements " "are merged as if each comparison were reversed. To achieve behavior similar " @@ -208,11 +208,11 @@ msgstr "" "chain(*iterables), reverse=True)``, tous les itérables doivent être classés " "par ordre décroissant." -#: ../Doc/library/heapq.rst:107 +#: library/heapq.rst:107 msgid "Added the optional *key* and *reverse* parameters." msgstr "Ajout des paramètres optionnels *key* et *reverse*." -#: ../Doc/library/heapq.rst:113 +#: library/heapq.rst:113 msgid "" "Return a list with the *n* largest elements from the dataset defined by " "*iterable*. *key*, if provided, specifies a function of one argument that " @@ -224,9 +224,9 @@ msgstr "" "défini par *iterable*. Si l'option *key* est fournie, celle-ci spécifie une " "fonction à un argument qui est utilisée pour extraire la clé de comparaison " "de chaque élément dans *iterable* (par exemple, ``key=str.lower``). " -"Équivalent à : ``sorted(iterable, key=key, reverse=True)[:n]``." +"Équivalent à : ``sorted(iterable, key=key, reverse=True)[:n]``." -#: ../Doc/library/heapq.rst:122 +#: library/heapq.rst:122 msgid "" "Return a list with the *n* smallest elements from the dataset defined by " "*iterable*. *key*, if provided, specifies a function of one argument that " @@ -238,9 +238,9 @@ msgstr "" "défini par *iterable*. Si l'option *key* est fournie, celle-ci spécifie une " "fonction à un argument qui est utilisée pour extraire la clé de comparaison " "de chaque élément dans *iterable* (par exemple, ``key=str.lower``). " -"Équivalent à : ``sorted(iterable, key=key)[:n]``." +"Équivalent à : ``sorted(iterable, key=key)[:n]``." -#: ../Doc/library/heapq.rst:128 +#: library/heapq.rst:128 msgid "" "The latter two functions perform best for smaller values of *n*. For larger " "values, it is more efficient to use the :func:`sorted` function. Also, when " @@ -255,11 +255,11 @@ msgstr "" "utiliser ces fonctions de façon répétée, il est préférable de transformer " "l'itérable en tas." -#: ../Doc/library/heapq.rst:136 +#: library/heapq.rst:136 msgid "Basic Examples" msgstr "Exemples simples" -#: ../Doc/library/heapq.rst:138 +#: library/heapq.rst:138 msgid "" "A `heapsort `_ can be implemented by " "pushing all values onto a heap and then popping off the smallest values one " @@ -269,7 +269,7 @@ msgstr "" "implémenté en introduisant toutes les valeurs dans un tas puis en effectuant " "l'extraction des éléments un par un ::" -#: ../Doc/library/heapq.rst:151 +#: library/heapq.rst:151 msgid "" "This is similar to ``sorted(iterable)``, but unlike :func:`sorted`, this " "implementation is not stable." @@ -277,37 +277,37 @@ msgstr "" "Ceci est similaire à ``sorted(iterable)`` mais, contrairement à :func:" "`sorted`, cette implémentation n'est pas stable." -#: ../Doc/library/heapq.rst:154 +#: library/heapq.rst:154 msgid "" "Heap elements can be tuples. This is useful for assigning comparison values " "(such as task priorities) alongside the main record being tracked::" msgstr "" -"Les éléments d'un tas peuvent être des n-uplets. C'est pratique pour " +"Les éléments d'un tas peuvent être des *n*-uplets. C'est pratique pour " "assigner des valeurs de comparaison (par exemple, des priorités de tâches) " -"en plus de l'élément qui est suivi ::" +"en plus de l'élément qui est suivi ::" -#: ../Doc/library/heapq.rst:167 +#: library/heapq.rst:167 msgid "Priority Queue Implementation Notes" msgstr "Notes d'implémentation de la file de priorité" -#: ../Doc/library/heapq.rst:169 +#: library/heapq.rst:169 msgid "" "A `priority queue `_ is common " "use for a heap, and it presents several implementation challenges:" msgstr "" -"Une `file de priorité `_ est une application courante des tas et présente plusieurs défis " -"d'implémentation :" +"Une `file de priorité `_ est une application courante des tas et présente " +"plusieurs défis d'implémentation :" -#: ../Doc/library/heapq.rst:172 +#: library/heapq.rst:172 msgid "" "Sort stability: how do you get two tasks with equal priorities to be " "returned in the order they were originally added?" msgstr "" -"Stabilité du classement : comment s'assurer que deux tâches avec la même " -"priorité sont renvoyées dans l'ordre de leur ajout ?" +"Stabilité du classement : comment s'assurer que deux tâches avec la même " +"priorité sont renvoyées dans l'ordre de leur ajout ?" -#: ../Doc/library/heapq.rst:175 +#: library/heapq.rst:175 msgid "" "Tuple comparison breaks for (priority, task) pairs if the priorities are " "equal and the tasks do not have a default comparison order." @@ -315,23 +315,23 @@ msgstr "" "La comparaison des couples (priorité, tâche) échoue si les priorités sont " "identiques et que les tâches n'ont pas de relation d'ordre par défaut." -#: ../Doc/library/heapq.rst:178 +#: library/heapq.rst:178 msgid "" "If the priority of a task changes, how do you move it to a new position in " "the heap?" msgstr "" "Si la priorité d'une tâche change, comment la déplacer à sa nouvelle " -"position dans le tas ?" +"position dans le tas ?" -#: ../Doc/library/heapq.rst:181 +#: library/heapq.rst:181 msgid "" "Or if a pending task needs to be deleted, how do you find it and remove it " "from the queue?" msgstr "" "Si une tâche en attente doit être supprimée, comment la trouver et la " -"supprimer de la file ?" +"supprimer de la file ?" -#: ../Doc/library/heapq.rst:184 +#: library/heapq.rst:184 msgid "" "A solution to the first two challenges is to store entries as 3-element list " "including the priority, an entry count, and the task. The entry count " @@ -347,7 +347,7 @@ msgstr "" "comparaison des triplets ne va jamais chercher à comparer des tâches entre " "elles." -#: ../Doc/library/heapq.rst:190 +#: library/heapq.rst:190 msgid "" "Another solution to the problem of non-comparable tasks is to create a " "wrapper class that ignores the task item and only compares the priority " @@ -355,9 +355,9 @@ msgid "" msgstr "" "Une autre solution au fait que les tâches ne possèdent pas de relation " "d'ordre est de créer une classe d'encapsulation qui ignore l'élément tâche " -"et ne compare que le champ priorité ::" +"et ne compare que le champ priorité ::" -#: ../Doc/library/heapq.rst:201 +#: library/heapq.rst:201 msgid "" "The remaining challenges revolve around finding a pending task and making " "changes to its priority or removing it entirely. Finding a task can be done " @@ -367,7 +367,7 @@ msgstr "" "priorité ou la supprimer. Trouver une tâche peut être réalisé à l'aide d'un " "dictionnaire pointant vers une entrée dans la file." -#: ../Doc/library/heapq.rst:205 +#: library/heapq.rst:205 msgid "" "Removing the entry or changing its priority is more difficult because it " "would break the heap structure invariants. So, a possible solution is to " @@ -376,13 +376,13 @@ msgstr "" "Supprimer une entrée ou changer sa priorité est plus difficile puisque cela " "romprait l'invariant de la structure de tas. Une solution possible est de " "marquer l'entrée comme supprimée et d'ajouter une nouvelle entrée avec sa " -"priorité modifiée ::" +"priorité modifiée ::" -#: ../Doc/library/heapq.rst:239 +#: library/heapq.rst:239 msgid "Theory" msgstr "Théorie" -#: ../Doc/library/heapq.rst:241 +#: library/heapq.rst:241 msgid "" "Heaps are arrays for which ``a[k] <= a[2*k+1]`` and ``a[k] <= a[2*k+2]`` for " "all *k*, counting elements from 0. For the sake of comparison, non-existing " @@ -395,15 +395,15 @@ msgstr "" "étant infinis. L'intérêt des tas est que ``a[0]`` est toujours leur plus " "petit élément." -#: ../Doc/library/heapq.rst:246 +#: library/heapq.rst:246 msgid "" "The strange invariant above is meant to be an efficient memory " "representation for a tournament. The numbers below are *k*, not ``a[k]``::" msgstr "" "L'invariant étrange ci-dessus est une représentation efficace en mémoire " -"d'un tournoi. Les nombres ci-dessous sont *k* et non ``a[k]`` ::" +"d'un tournoi. Les nombres ci-dessous sont *k* et non ``a[k]`` ::" -#: ../Doc/library/heapq.rst:259 +#: library/heapq.rst:259 msgid "" "In the tree above, each cell *k* is topping ``2*k+1`` and ``2*k+2``. In a " "usual binary tournament we see in sports, each cell is the winner over the " @@ -415,19 +415,19 @@ msgid "" "two cells it tops contain three different items, but the top cell \"wins\" " "over the two topped cells." msgstr "" -"Dans l'arbre ci-dessus, chaque nœud *k* a pour enfants ``2*k+1`` et ``2*k" -"+2``. Dans les tournois binaires habituels dans les compétitions sportives, " -"chaque nœud est le vainqueur des deux nœuds inférieurs et nous pouvons " -"tracer le chemin du vainqueur le long de l'arbre afin de voir qui étaient " -"ses adversaires. Cependant, dans de nombreuses applications informatiques de " -"ces tournois, nous n'avons pas besoin de produire l'historique du vainqueur. " -"Afin d'occuper moins de mémoire, on remplace le vainqueur lors de sa " -"promotion par un autre élément à un plus bas niveau. La règle devient alors " -"qu'un nœud et les deux nœuds qu'il chapeaute contiennent trois éléments " -"différents, mais le nœud supérieur « gagne » contre les deux nœuds " -"inférieurs." +"Dans l'arbre ci-dessus, chaque nœud *k* a pour enfants ``2*k+1`` et " +"``2*k+2``. Dans les tournois binaires habituels dans les compétitions " +"sportives, chaque nœud est le vainqueur des deux nœuds inférieurs et nous " +"pouvons tracer le chemin du vainqueur le long de l'arbre afin de voir qui " +"étaient ses adversaires. Cependant, dans de nombreuses applications " +"informatiques de ces tournois, nous n'avons pas besoin de produire " +"l'historique du vainqueur. Afin d'occuper moins de mémoire, on remplace le " +"vainqueur lors de sa promotion par un autre élément à un plus bas niveau. La " +"règle devient alors qu'un nœud et les deux nœuds qu'il chapeaute contiennent " +"trois éléments différents, mais le nœud supérieur « gagne » contre les deux " +"nœuds inférieurs." -#: ../Doc/library/heapq.rst:268 +#: library/heapq.rst:268 msgid "" "If this heap invariant is protected at all time, index 0 is clearly the " "overall winner. The simplest algorithmic way to remove it and find the " @@ -439,7 +439,7 @@ msgid "" msgstr "" "Si cet invariant de tas est vérifié à tout instant, alors l'élément à " "l'indice 0 est le vainqueur global. L'algorithme le plus simple pour le " -"retirer et trouver le vainqueur « suivant » consiste à déplacer un perdant " +"retirer et trouver le vainqueur « suivant » consiste à déplacer un perdant " "(par exemple le nœud 30 dans le diagramme ci-dessus) à la position 0, puis à " "faire redescendre cette nouvelle racine dans l'arbre en échangeant sa valeur " "avec celle d'un de ses fils jusqu'à ce que l'invariant soit rétabli. Cette " @@ -447,29 +447,29 @@ msgstr "" "l'arbre. En itérant sur tous les éléments, le classement s'effectue en O(n " "log n) opérations." -#: ../Doc/library/heapq.rst:275 +#: library/heapq.rst:275 msgid "" "A nice feature of this sort is that you can efficiently insert new items " -"while the sort is going on, provided that the inserted items are not \"better" -"\" than the last 0'th element you extracted. This is especially useful in " -"simulation contexts, where the tree holds all incoming events, and the \"win" -"\" condition means the smallest scheduled time. When an event schedules " -"other events for execution, they are scheduled into the future, so they can " -"easily go into the heap. So, a heap is a good structure for implementing " -"schedulers (this is what I used for my MIDI sequencer :-)." -msgstr "" -"Une propriété agréable de cet algorithme est qu'il possible d'insérer " +"while the sort is going on, provided that the inserted items are not " +"\"better\" than the last 0'th element you extracted. This is especially " +"useful in simulation contexts, where the tree holds all incoming events, and " +"the \"win\" condition means the smallest scheduled time. When an event " +"schedules other events for execution, they are scheduled into the future, so " +"they can easily go into the heap. So, a heap is a good structure for " +"implementing schedulers (this is what I used for my MIDI sequencer :-)." +msgstr "" +"Une propriété agréable de cet algorithme est qu'il est possible d'insérer " "efficacement de nouveaux éléments en cours de classement, du moment que les " -"éléments insérés ne sont pas « meilleurs » que le dernier élément qui a été " +"éléments insérés ne sont pas « meilleurs » que le dernier élément qui a été " "extrait. Ceci s'avère très utile dans des simulations où l'arbre contient la " -"liste des événements arrivants et que la condition de « victoire » est le " +"liste des événements arrivants et que la condition de « victoire » est le " "plus petit temps d'exécution planifié. Lorsqu'un événement programme " "l'exécution d'autres événements, ceux-ci sont planifiés pour le futur et " "peuvent donc rejoindre le tas. Ainsi, le tas est une bonne structure pour " "implémenter un ordonnanceur (et c'est ce que j'ai utilisé pour mon " "séquenceur MIDI ☺)." -#: ../Doc/library/heapq.rst:284 +#: library/heapq.rst:284 msgid "" "Various structures for implementing schedulers have been extensively " "studied, and heaps are good for this, as they are reasonably speedy, the " @@ -478,12 +478,12 @@ msgid "" "efficient overall, yet the worst cases might be terrible." msgstr "" "Plusieurs structures ont été étudiées en détail pour implémenter des " -"ordonnanceurs et les tas sont bien adaptés : ils sont raisonnablement " +"ordonnanceurs et les tas sont bien adaptés : ils sont raisonnablement " "rapides, leur vitesse est presque constante et le pire cas ne diffère pas " "trop du cas moyen. S'il existe des représentations qui sont plus efficaces " "en général, les pires cas peuvent être terriblement mauvais." -#: ../Doc/library/heapq.rst:290 +#: library/heapq.rst:290 msgid "" "Heaps are also very useful in big disk sorts. You most probably all know " "that a big sort implies producing \"runs\" (which are pre-sorted sequences, " @@ -509,7 +509,7 @@ msgstr "" "de la mémoire pour une entrée aléatoire et bien mieux pour une entrée " "approximativement triée." -#: ../Doc/library/heapq.rst:300 +#: library/heapq.rst:300 msgid "" "Moreover, if you output the 0'th item on disk and get an input which may not " "fit in the current tournament (because the value \"wins\" over the last " @@ -521,14 +521,14 @@ msgid "" msgstr "" "Qui plus est, si vous écrivez l'élément 0 sur le disque et que vous recevez " "en entrée un élément qui n'est pas adapté au tournoi actuel (parce que sa " -"valeur « gagne » par rapport à la dernière valeur de sortie), alors il ne " +"valeur « gagne » par rapport à la dernière valeur de sortie), alors il ne " "peut pas être stocké dans le tas donc la taille de ce dernier diminue. La " "mémoire libérée peut être réutilisée immédiatement pour progressivement " "construire un deuxième tas, qui croit à la même vitesse que le premier " "décroît. Lorsque le premier tas a complètement disparu, vous échangez les " -"tas et démarrez une nouvelle séquence. Malin et plutôt efficace !" +"tas et démarrez une nouvelle séquence. Malin et plutôt efficace !" -#: ../Doc/library/heapq.rst:308 +#: library/heapq.rst:308 msgid "" "In a word, heaps are useful memory structures to know. I use them in a few " "applications, and I think it is good to keep a 'heap' module around. :-)" @@ -537,11 +537,11 @@ msgstr "" "connaître. Je les utilise dans quelques applications et je pense qu'il est " "bon de garder le module *heap* sous le coude. ☺" -#: ../Doc/library/heapq.rst:312 +#: library/heapq.rst:312 msgid "Footnotes" msgstr "Notes" -#: ../Doc/library/heapq.rst:313 +#: library/heapq.rst:313 msgid "" "The disk balancing algorithms which are current, nowadays, are more annoying " "than clever, and this is a consequence of the seeking capabilities of the " @@ -559,8 +559,8 @@ msgstr "" "que de la lecture séquentielle, comme les gros lecteurs à bandes, le besoin " "était différent et il fallait être malin pour s'assurer (bien à l'avance) " "que chaque mouvement de bande serait le plus efficace possible (c'est-à-dire " -"participerait au mieux à l'« avancée » de la fusion). Certaines cassettes " +"participerait au mieux à l'« avancée » de la fusion). Certaines cassettes " "pouvaient même lire à l'envers et cela était aussi utilisé pour éviter de " "remonter dans le temps. Croyez-moi, les bons tris sur bandes étaient " -"spectaculaires à regarder ! Depuis la nuit des temps, trier a toujours été " -"le Grand Art ! ☺" +"spectaculaires à regarder ! Depuis la nuit des temps, trier a toujours été " +"le Grand Art ! ☺" diff --git a/library/hmac.po b/library/hmac.po index 6c62c6ed01..b2fb91b2fa 100644 --- a/library/hmac.po +++ b/library/hmac.po @@ -5,18 +5,21 @@ msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-11-15 18:54+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2020-05-23 11:38+0200\n" +"PO-Revision-Date: 2020-04-27 22:24+0200\n" +"Last-Translator: Mathieu Dupuy \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.3\n" #: ../Doc/library/hmac.rst:2 msgid ":mod:`hmac` --- Keyed-Hashing for Message Authentication" msgstr "" +":mod:`hmac` — Authentification de messages par hachage en combinaison avec " +"une clé secrète" #: ../Doc/library/hmac.rst:10 msgid "**Source code:** :source:`Lib/hmac.py`" @@ -25,6 +28,7 @@ msgstr "**Code source :** :source:`Lib/hmac.py`" #: ../Doc/library/hmac.rst:14 msgid "This module implements the HMAC algorithm as described by :rfc:`2104`." msgstr "" +"Ce module implémente l'algorithme HMAC tel que décrit par la :rfc:`2104`." #: ../Doc/library/hmac.rst:19 msgid "" @@ -34,6 +38,13 @@ msgid "" "object to use. It may be any name suitable to :func:`hashlib.new`. Despite " "its argument position, it is required." msgstr "" +"Renvoie un nouvel objet HMAC. *key* est un objet *byte* ou *bytearray* " +"représentant la clé secrète. Si *msg* est présent, un appel à " +"``update(msg)`` est effectué. *digestmod* permet de choisir l’algorithme à " +"utiliser par l’objet HMAC, il accepte un nom de fonction de hachage (peut " +"être tout ce qui convient à :func:`hashlib.new`), un constructeur de " +"fonction de hachage ou un module implémentant la PEP 247. Bien qu’il soit " +"après *msg*, *digestmod* est un paramètre obligatoire." #: ../Doc/library/hmac.rst:25 msgid "" @@ -41,6 +52,9 @@ msgid "" "of any type supported by :mod:`hashlib`. Parameter *digestmod* can be the " "name of a hash algorithm." msgstr "" +"Le paramètre *key* peut être un *byte* ou un objet *bytearray*. Le paramètre " +"*msg* peut être de n'importe quel type pris en charge par :mod:`hashlib`. Le " +"paramètre *digestmod* peut être le nom d'un algorithme de hachage." #: ../Doc/library/hmac.rst:33 msgid "" @@ -48,6 +62,10 @@ msgid "" "parameter is now required. Pass it as a keyword argument to avoid " "awkwardness when you do not have an initial msg." msgstr "" +"MD5 en tant qu’algorithme cryptographique par défaut implicite pour " +"*digestmod* est obsolète. Le paramètre *digestmod* est maintenant requis. " +"Passez-le en argument nommé pour éviter la bizarrerie que ça donnerait quand " +"vous n'avez pas un *msg* initial." #: ../Doc/library/hmac.rst:38 msgid "" @@ -57,6 +75,12 @@ msgid "" "The parameters *key*, *msg*, and *digest* have the same meaning as in :func:" "`~hmac.new`." msgstr "" +"Renvoie le code d'authentification de *msg*, pour la clé secrète *key* et à " +"l'algorithme *digest* donné. La fonction est équivalente à ``HMAC(key, msg, " +"digest).digest()``, mais elle utilise une implémentation optimisée en C ou " +"*inline*, qui est plus rapide pour les messages dont la taille leur permet " +"de tenir en mémoire vive. Les paramètres *key*, *msg* et *digest* ont la " +"même signification que pour :func:`~hmac.new`." #: ../Doc/library/hmac.rst:44 msgid "" @@ -64,10 +88,13 @@ msgid "" "when *digest* is a string and name of a digest algorithm, which is supported " "by OpenSSL." msgstr "" +"Détail d'implémentation CPython, l'implémentation C optimisée n'est utilisée " +"que lorsque le *digest* est une chaîne de caractères et le nom d'un " +"algorithme de hachage implémenté dans OpenSSL." #: ../Doc/library/hmac.rst:51 msgid "An HMAC object has the following methods:" -msgstr "" +msgstr "Un objet HMAC a les méthodes suivantes :" #: ../Doc/library/hmac.rst:55 msgid "" @@ -75,10 +102,14 @@ msgid "" "single call with the concatenation of all the arguments: ``m.update(a); m." "update(b)`` is equivalent to ``m.update(a + b)``." msgstr "" +"Met à jour l'objet HMAC avec *msg*. Des appels répétés sont équivalents à un " +"seul appel avec la concaténation de tous les arguments : ``m.update(a); m." +"update(b)`` est équivalent à ``m.update(a + b)``." #: ../Doc/library/hmac.rst:59 msgid "Parameter *msg* can be of any type supported by :mod:`hashlib`." msgstr "" +"Le paramètre *msg* peut être de n'importe quel type géré par :mod:`hashlib`." #: ../Doc/library/hmac.rst:65 msgid "" @@ -87,6 +118,10 @@ msgid "" "given to the constructor. It may contain non-ASCII bytes, including NUL " "bytes." msgstr "" +"Renvoie le condensat des octets passés à la méthode :meth:`update` jusque " +"là. L'objet *bytes* renvoyé sera de la même longueur que la *digest_size* de " +"la fonction de hachage donnée au constructeur. Il peut contenir des octets " +"qui ne sont pas dans la table ASCII, y compris des octets NUL." #: ../Doc/library/hmac.rst:72 msgid "" @@ -95,6 +130,10 @@ msgid "" "`compare_digest` function instead of the ``==`` operator to reduce the " "vulnerability to timing attacks." msgstr "" +"Si vous devez vérifier la sortie de :meth:`digest` avec un condensat obtenu " +"par ailleurs par un service extérieur durant une routine de vérification, il " +"est recommandé d'utiliser la fonction :func:`compare_digest` au lieu de " +"l'opérateur ``==`` afin de réduire la vulnérabilité aux attaques temporelles." #: ../Doc/library/hmac.rst:80 msgid "" @@ -102,6 +141,10 @@ msgid "" "length containing only hexadecimal digits. This may be used to exchange the " "value safely in email or other non-binary environments." msgstr "" +"Comme :meth:`digest` sauf que ce condensat est renvoyé en tant que chaîne de " +"caractères de taille doublée contenant seulement des chiffres hexadécimaux. " +"Cela permet d’échanger le résultat sans problèmes par e-mail ou dans " +"d'autres environnements ne gérant pas les données binaires." #: ../Doc/library/hmac.rst:86 msgid "" @@ -110,6 +153,11 @@ msgid "" "`compare_digest` function instead of the ``==`` operator to reduce the " "vulnerability to timing attacks." msgstr "" +"Si l'on compare la sortie de :meth:`hexdigest` avec celle d'un condensat " +"connu obtenu par un service extérieur durant une routine de vérification, il " +"est recommandé d'utiliser la fonction :func:`compare_digest` au lieu de " +"l'opérateur ``==`` afin de réduire la vulnérabilité aux attaques basées sur " +"les temps de réponse." #: ../Doc/library/hmac.rst:94 msgid "" @@ -117,14 +165,21 @@ msgid "" "efficiently compute the digests of strings that share a common initial " "substring." msgstr "" +"Renvoie une copie (un clone) de l'objet HMAC. C'est utile pour calculer de " +"manière efficace les empreintes cryptographiques de chaînes de caractères " +"qui ont en commun une sous-chaîne initiale." #: ../Doc/library/hmac.rst:98 msgid "A hash object has the following attributes:" -msgstr "L'objet haché possède les attributs suivants ::" +msgstr "" +"Un objet *code d'authentification de message* (HMAC) possède les attributs " +"suivants :" #: ../Doc/library/hmac.rst:102 msgid "The size of the resulting HMAC digest in bytes." msgstr "" +"La taille du code d'authentification (c.-à-d. de l'empreinte " +"cryptographique) en octets." #: ../Doc/library/hmac.rst:106 msgid "The internal block size of the hash algorithm in bytes." @@ -133,10 +188,12 @@ msgstr "La taille interne d'un bloc de l'algorithme de hachage en octets." #: ../Doc/library/hmac.rst:112 msgid "The canonical name of this HMAC, always lowercase, e.g. ``hmac-md5``." msgstr "" +"Le nom canonique de ce HMAC, toujours en lettres minuscules, par exemple " +"``hmac-md5``." #: ../Doc/library/hmac.rst:117 msgid "This module also provides the following helper function:" -msgstr "" +msgstr "Ce module fournit également la fonction utilitaire suivante :" #: ../Doc/library/hmac.rst:121 msgid "" @@ -146,6 +203,12 @@ msgid "" "either :class:`str` (ASCII only, as e.g. returned by :meth:`HMAC." "hexdigest`), or a :term:`bytes-like object`." msgstr "" +"Renvoie ``a == b``. Cette fonction a été conçue pour prévenir les attaques " +"temporelles en évitant l'implémentation de courts-circuits basés sur le " +"contenu, ce qui la rend appropriée pour de la cryptographie. *a* et *b* " +"doivent être du même type : soit :class:`str` (caractères ASCII seulement, " +"comme retourné par :meth:`HMAC.hexdigest` par exemple), ou :term:`bytes-like " +"object`." #: ../Doc/library/hmac.rst:129 msgid "" @@ -153,11 +216,14 @@ msgid "" "attack could theoretically reveal information about the types and lengths of " "*a* and *b*—but not their values." msgstr "" +"Si *a* et *b* sont de longueurs différentes ou si une erreur se produit, une " +"attaque temporelle pourrait en théorie obtenir des informations sur les " +"types et longueurs de *a* et de *b*, mais pas sur leurs valeurs." #: ../Doc/library/hmac.rst:138 msgid "Module :mod:`hashlib`" -msgstr "" +msgstr "Module :mod:`hashlib`" #: ../Doc/library/hmac.rst:139 msgid "The Python module providing secure hash functions." -msgstr "" +msgstr "Le module Python fournissant des fonctions de hachage sécurisé." diff --git a/library/html.parser.po b/library/html.parser.po index a5029943f6..11e07930a9 100644 --- a/library/html.parser.po +++ b/library/html.parser.po @@ -14,104 +14,141 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/library/html.parser.rst:2 +#: library/html.parser.rst:2 msgid ":mod:`html.parser` --- Simple HTML and XHTML parser" -msgstr "" +msgstr ":mod:`html.parser`— Un analyseur syntaxique simple pour HTML et XHTML" -#: ../Doc/library/html.parser.rst:7 +#: library/html.parser.rst:7 msgid "**Source code:** :source:`Lib/html/parser.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/html/parser.py`" -#: ../Doc/library/html.parser.rst:15 +#: library/html.parser.rst:15 msgid "" "This module defines a class :class:`HTMLParser` which serves as the basis " "for parsing text files formatted in HTML (HyperText Mark-up Language) and " "XHTML." msgstr "" +"Ce module définit une classe :class:`HTMLParser` qui sert de base pour " +"l'analyse syntaxique de fichiers texte formatés HTML (*HyperText Mark-up " +"Language*, le « langage de balisage hypertexte ») et XHTML (*EXtensible " +"HyperText Markup Language*, le « langage extensible de balisage " +"hypertexte »)." -#: ../Doc/library/html.parser.rst:20 +#: library/html.parser.rst:20 msgid "Create a parser instance able to parse invalid markup." msgstr "" +"Crée une instance d'analyseur capable de traiter tout balisage, même " +"invalide." -#: ../Doc/library/html.parser.rst:22 +#: library/html.parser.rst:22 msgid "" "If *convert_charrefs* is ``True`` (the default), all character references " "(except the ones in ``script``/``style`` elements) are automatically " "converted to the corresponding Unicode characters." msgstr "" +"Si *convert_charrefs* est ``True`` (valeur par défaut), toute référence de " +"caractère (sauf ceux enchâssés dans des éléments ``script``/``style``) est " +"automatiquement convertie en son caractère Unicode." -#: ../Doc/library/html.parser.rst:26 +#: library/html.parser.rst:26 msgid "" "An :class:`.HTMLParser` instance is fed HTML data and calls handler methods " "when start tags, end tags, text, comments, and other markup elements are " "encountered. The user should subclass :class:`.HTMLParser` and override its " "methods to implement the desired behavior." msgstr "" +"Une instance de :class:`.HTMLParser` est alimentée par des données HTML. " +"Elle fait appel à des méthodes offrant un traitement spécifique quand est " +"rencontré un élément de balisage : balise ouvrante ou fermante, textes, " +"commentaires… Pour implémenter le comportement désiré, l'utilisateur crée " +"une sous-classe de :class:`.HTMLParser` en surchargeant ses méthodes." -#: ../Doc/library/html.parser.rst:31 +#: library/html.parser.rst:31 msgid "" "This parser does not check that end tags match start tags or call the end-" "tag handler for elements which are closed implicitly by closing an outer " "element." msgstr "" +"Cet analyseur ne vérifie ni que les balises fermantes correspondent aux " +"balises ouvrantes, ni n'invoque le gestionnaire de balises fermantes pour " +"les éléments implicitement fermés par un élément extérieur." -#: ../Doc/library/html.parser.rst:34 +#: library/html.parser.rst:34 msgid "*convert_charrefs* keyword argument added." -msgstr "" +msgstr "L'argument *convert_charrefs* a été ajouté." -#: ../Doc/library/html.parser.rst:37 +#: library/html.parser.rst:37 msgid "The default value for argument *convert_charrefs* is now ``True``." msgstr "" +"La valeur par défaut de l'argument *convert_charrefs* est désormais ``True``." -#: ../Doc/library/html.parser.rst:42 +#: library/html.parser.rst:42 msgid "Example HTML Parser Application" -msgstr "" +msgstr "Exemple d'application de l'analyseur HTML" -#: ../Doc/library/html.parser.rst:44 +#: library/html.parser.rst:44 msgid "" "As a basic example, below is a simple HTML parser that uses the :class:" "`HTMLParser` class to print out start tags, end tags, and data as they are " "encountered::" msgstr "" +"Comme exemple simple, un analyseur HTML minimal qui utilise la classe :class:" +"`HTMLParser` pour afficher les balises ouvrantes, les balises fermantes " +"ainsi que les données quand elles apparaissent ::" -#: ../Doc/library/html.parser.rst:64 +#: library/html.parser.rst:64 msgid "The output will then be:" -msgstr "" +msgstr "La sortie est alors :" -#: ../Doc/library/html.parser.rst:83 +#: library/html.parser.rst:83 msgid ":class:`.HTMLParser` Methods" -msgstr "" +msgstr "Méthodes de la classe :class:`.HTMLParser`" -#: ../Doc/library/html.parser.rst:85 +#: library/html.parser.rst:85 msgid ":class:`HTMLParser` instances have the following methods:" msgstr "" +"Les instances de :class:`HTMLParser` disposent des méthodes suivantes :" -#: ../Doc/library/html.parser.rst:90 +#: library/html.parser.rst:90 msgid "" "Feed some text to the parser. It is processed insofar as it consists of " "complete elements; incomplete data is buffered until more data is fed or :" "meth:`close` is called. *data* must be :class:`str`." msgstr "" +"Alimente l'analyseur avec du texte. Ce texte est traité dans la mesure où il " +"constitue des éléments complets ; les données incomplètes sont mises dans un " +"tampon jusqu'à ce que d'autres données soient fournies ou que la méthode :" +"meth:`close` soit appelée. L'argument *data* doit être de classe :class:" +"`str`." -#: ../Doc/library/html.parser.rst:97 +#: library/html.parser.rst:97 msgid "" "Force processing of all buffered data as if it were followed by an end-of-" "file mark. This method may be redefined by a derived class to define " "additional processing at the end of the input, but the redefined version " "should always call the :class:`HTMLParser` base class method :meth:`close`." msgstr "" +"Force le traitement de toutes les données du tampon comme si elles étaient " +"suivies par un caractère *fin de fichier*. Cette méthode peut-être redéfinie " +"par une classe dérivée pour ajouter des traitements supplémentaires à la fin " +"de l'entrée, mais la version redéfinie devra impérativement appeler la " +"méthode :meth:`close` de la classe de base :class:`HTMLParser`." -#: ../Doc/library/html.parser.rst:105 +#: library/html.parser.rst:105 msgid "" "Reset the instance. Loses all unprocessed data. This is called implicitly " "at instantiation time." msgstr "" +"Réinitialise l'instance. Toutes les données non traitées sont perdues. Cette " +"méthode est appelée implicitement lors de l'instanciation." -#: ../Doc/library/html.parser.rst:111 +#: library/html.parser.rst:111 msgid "Return current line number and offset." msgstr "" +"Renvoie le numéro de ligne et le numéro du caractère dans la ligne où le " +"curseur est positionné." -#: ../Doc/library/html.parser.rst:116 +#: library/html.parser.rst:116 msgid "" "Return the text of the most recently opened start tag. This should not " "normally be needed for structured processing, but may be useful in dealing " @@ -119,21 +156,25 @@ msgid "" "(whitespace between attributes can be preserved, etc.)." msgstr "" -#: ../Doc/library/html.parser.rst:122 +#: library/html.parser.rst:122 msgid "" "The following methods are called when data or markup elements are " "encountered and they are meant to be overridden in a subclass. The base " "class implementations do nothing (except for :meth:`~HTMLParser." "handle_startendtag`):" msgstr "" +"Les méthodes suivantes sont appelées lors de la rencontre de données ou " +"d'éléments de balisage ; elles sont destinées à être surchargées par la sous-" +"classe. L'implémentation de la classe de base ne fait rien (sauf pour ce qui " +"est de :meth:`~HTMLParser.handle_startendtag`) :" -#: ../Doc/library/html.parser.rst:129 +#: library/html.parser.rst:129 msgid "" -"This method is called to handle the start of a tag (e.g. ``
``)." +"This method is called to handle the start of a tag (e.g. ``
``)." msgstr "" -#: ../Doc/library/html.parser.rst:131 +#: library/html.parser.rst:131 msgid "" "The *tag* argument is the name of the tag converted to lower case. The " "*attrs* argument is a list of ``(name, value)`` pairs containing the " @@ -141,30 +182,43 @@ msgid "" "translated to lower case, and quotes in the *value* have been removed, and " "character and entity references have been replaced." msgstr "" +"L'argument *tag* contient le nom de la balise en minuscules. L'argument " +"*attrs* contient une liste de *n-uplets* ``(name, value)`` regroupant les " +"attributs présents entre les symboles ``<`` et ``>`` de la balise. Le " +"paramètre *name* est converti en minuscule ; les guillemets sont supprimés " +"du paramètre *value* et toute entité de référence ou de caractère est " +"remplacée." -#: ../Doc/library/html.parser.rst:137 +#: library/html.parser.rst:137 msgid "" "For instance, for the tag ````, this method " "would be called as ``handle_starttag('a', [('href', 'https://www.cwi." "nl/')])``." msgstr "" +"Par exemple, pour la balise ````, cette " +"méthode est appelée par ``handle_starttag('a', [('href', 'https://www.cwi." +"nl/')])``." -#: ../Doc/library/html.parser.rst:140 +#: library/html.parser.rst:140 msgid "" "All entity references from :mod:`html.entities` are replaced in the " "attribute values." msgstr "" +"Toute référence d'entité présente dans :mod:`html.entities` est remplacée " +"dans la valeur des attributs." -#: ../Doc/library/html.parser.rst:146 +#: library/html.parser.rst:146 msgid "" "This method is called to handle the end tag of an element (e.g. ``
``)." msgstr "" +"Cette méthode est appelée pour traiter les balises fermantes (p. ex. ````)." -#: ../Doc/library/html.parser.rst:148 +#: library/html.parser.rst:148 msgid "The *tag* argument is the name of the tag converted to lower case." -msgstr "" +msgstr "L'argument *tag* est le nom de la balise en minuscules." -#: ../Doc/library/html.parser.rst:153 +#: library/html.parser.rst:153 msgid "" "Similar to :meth:`handle_starttag`, but called when the parser encounters an " "XHTML-style empty tag (````). This method may be overridden by " @@ -172,21 +226,33 @@ msgid "" "implementation simply calls :meth:`handle_starttag` and :meth:" "`handle_endtag`." msgstr "" +"Traitée de façon similaire à :meth:`handle_starttag`, mais appelée quand " +"l'analyseur rencontre une balise vide de type *XHTML* (p. ex. ````). Cette méthode peut-être surchargée par les sous-classes demandant " +"cette information lexicale ; l'implémentation par défaut appelle simplement :" +"meth:`handle_starttag` et :meth:`handle_endtag`." -#: ../Doc/library/html.parser.rst:161 +#: library/html.parser.rst:161 msgid "" "This method is called to process arbitrary data (e.g. text nodes and the " "content of ```` and ````)." msgstr "" +"Cette méthode est appelée pour traiter toute donnée arbitraire (p. ex. les " +"nœuds textuels ou les contenus de ```` et ``