diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index 5a1305bad8..ec71c0146f 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -15,14 +15,15 @@ jobs:
strategy:
matrix:
tool:
+ - name: sphinx-lint
+ package: sphinx-lint
+ command: 'sphinx-lint --enable default-role --ignore .git'
- name: Orthographe
package: pospell
apt_dependencies: hunspell hunspell-fr-comprehensive
command: 'pospell -p dict -l fr_FR $CHANGED_PO_FILES'
- name: Longueur des lignes
- package: powrap
- apt_dependencies: gettext
- command: 'powrap --check --quiet --diff $CHANGED_PO_FILES'
+ command: 'awk ''{if (length($0) > 80 && length(gensub(/[^ ]/, "", "g")) > 1) {print FILENAME ":" FNR, "line too long:", $0; ERRORS+=1}} END {if (ERRORS>0) {exit 1}}'' $CHANGED_PO_FILES'
- name: Grammaire
package: padpo
command: 'padpo -i $CHANGED_PO_FILES 2>&1 | grep -v -Ff padpo.ignore'
@@ -42,9 +43,13 @@ jobs:
python-version: '3.9'
- name: Install ${{ matrix.tool.package }}
run: |
- [ -n "${{ matrix.tool.apt_dependencies }}" ] && sudo apt-get update && sudo apt-get install -y ${{ matrix.tool.apt_dependencies }}
- python -m pip install --upgrade pip setuptools wheel
- python -m pip install ${{ matrix.tool.package }}
+ if [ -n "${{ matrix.tool.apt_dependencies }}" ]; then
+ sudo apt-get update && sudo apt-get install -y ${{ matrix.tool.apt_dependencies }}
+ fi
+ if [ -n "${{ matrix.tool.package }}" ]; then
+ python -m pip install --upgrade pip setuptools wheel
+ python -m pip install ${{ matrix.tool.package }}
+ fi
- name: Run ${{ matrix.tool.package }}
env:
ADDED_FILES: ${{ join(fromJSON(steps.changed_files.outputs.added), ' ') }}
@@ -64,14 +69,18 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- - uses: actions/checkout@v2
- - uses: actions/cache@v2
+ - uses: actions/checkout@v3
+ - uses: actions/cache@v3
with:
path: '~/cpython/'
key: '1'
- - uses: actions/setup-python@v2
+ - uses: actions/cache@v3
with:
- python-version: '3.9'
+ path: ~/.cache/pip
+ key: '1'
+ - uses: actions/setup-python@v4
+ with:
+ python-version: '3.10'
- name: Clone cpython
run: |
if [ ! -d ~/cpython ]; then
@@ -86,9 +95,7 @@ jobs:
git -C ~/cpython checkout $(grep ^CPYTHON_CURRENT_COMMIT Makefile| cut -d= -f2)
- name: Prepare venv
run: |
- # If the venv exists but is broken, drop it (happens on Python upgrades):
- # see https://github.com/actions/setup-python/issues/170
- [ -d $HOME/cpython/Doc/venv/bin/ -a ! -e $HOME/cpython/Doc/venv/bin/python ] && rm -fr $HOME/cpython/Doc/venv
+ make -C $HOME/cpython/Doc clean-venv
make -C $HOME/cpython/Doc venv
- name: sphinx-build
run: make -C $HOME/cpython/Doc SPHINXOPTS="-q -j4 -D locale_dirs=$HOME/locales -D language=fr -D gettext_compact=0" autobuild-dev-html
diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst
index 0b7ca9e8db..03363622b8 100644
--- a/CONTRIBUTING.rst
+++ b/CONTRIBUTING.rst
@@ -1,26 +1,125 @@
Guide de contribution à la documentation via GitHub
-===================================================
-
-Instructions
-------------
+###################################################
Prérequis
-~~~~~~~~~
+=========
+
+Outils souhaitables
+-------------------
+
+Pour pouvoir participer à la traduction en commun, il est souhaitable
+d'installer :
+
+- un client ``git`` `Linux `_, `MacOS
+ `_ ou `Windows `_ ;
-- un client ``git`` `Linux `_, `MacOS `_ ou `Windows `_ ;
- un éditeur de fichier ``.po`` (comme `Poedit `_).
-Équipez-vous aussi de quelques outils pour vous aider dans
-votre traduction (voir `Outils utiles pour la traduction`_).
+Outils facultatifs
+------------------
+De plus, il peut être utile de s'équiper d'utilitaires pour faciliter
+la manipulation des fichiers ``.po`` et la traduction.
+
+`Poutils `_ est un paquet PyPI qui
+regroupe un certain nombre d'outils liés à la traduction. Dans un
+environnement disposant de Python 3.7 ou plus, installez-le avec ::
+
+ python3 -m pip install poutils
+
+Dans notre cas, les utilitaires de *Poutils* qui nous intéressent sont :
+
+Pospell
+^^^^^^^
+
+Vérificateur d'orthographe fondé sur Hunspell. ``make spell`` exécute
+Pospell. Pour l'utiliser, il vous faut installer Hunspell. Attention,
+dans Debian notamment (et ses dérivés comme Ubuntu), il existe plusieurs
+dictionnaires français qui diffèrent en raison de l'orthographe
+réformée. Installez celui qui contient les deux orthographes avec ::
+
+ sudo apt install hunspell hunspell-fr-comprehensive
+
+Potodo
+^^^^^^
+
+Permet d'identifier les parties de la documentation qu'il reste à
+traduire. ``make todo`` fait appel à Potodo.
+
+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. Pour connaître les options disponibles, tapez ::
+
+ pogrep --help
+
+Powrap
+^^^^^^
+
+Formateur de fichier *.po*. C'est l'outil qui se cache derrière ``make
+wrap``.
+
+Padpo (beta)
+^^^^^^^^^^^^
+
+Analyseur de code qui encapsule notamment `Grammalecte
+`_ et qui vérifie la grammaire, l'orthographe
+et la syntaxe des fichiers *.po*.
+
+Configuration des outils
+------------------------
+
+Configuration de Poedit
+^^^^^^^^^^^^^^^^^^^^^^^
+* N'oubliez pas de configurer votre nom et
+ votre adresse de courriel (Édition → Préférences → Général).
+* Vérifiez également qu'il est configuré pour passer à la ligne à 79
+ caractères (Édition → Préférences → Avancé → Passer à la ligne à
+ 79).
+
+Configuration de Git (rendre plus lisible l'affichage des modifications)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Le résultat de ``git diff`` est souvent encombré de changements inutiles de numéros
+de ligne, comme :
+
+.. code-block:: diff
+
+ -#: ../Doc/library/sys.rst:406
+ +#: ../Doc/library/sys.rst:408
+
+
+Pour dire à Git que ce ne sont pas des informations utiles, vous pouvez faire
+ce qui suit après vous être assuré que ``~/.local/bin/`` se trouve dans votre
+``PATH``.
-*fork* personnel sur Github
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.. code-block:: bash
-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, c'est un endroit
-où vous avez le droit de faire des modifications.
+ cat < ~/.local/bin/podiff
+ #!/bin/sh
+ grep -v '^#:' "\$1"
+ EOF
+
+ chmod a+x ~/.local/bin/podiff
+
+ 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.
+
+Première étape : créer et peupler son dépôt
+===========================================
+
+Sur Github
+----------
+
+Depuis votre compte GitHub, se rendre dans le dépôt des sources `python-docs-fr
+`_ puis cliquer sur son bouton ``Fork``.
+Ceci crée une copie du projet sur votre compte Github. C'est sur cette copie
+que vous avez le droit de faire des modifications.
Étape par étape :
@@ -40,12 +139,14 @@ où vous avez le droit de faire des modifications.
git remote add upstream https://github.com/python/python-docs-fr.git
-*fork* personnel sur une autre forge
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Sur une autre forge
+-------------------
-Si vous n'avez pas de compte Github, il est possible *fork* ce dépôt sur une autre forge.
+Si vous n'avez pas de compte Github, il est possible d'utiliser une autre forge.
Vous devez dans un premier temps initier un dépôt vide sur la forge où vous voulez héberger le
-dépôt.
+dépôt puis le peupler.
+
+Étape par étape :
.. code-block:: bash
@@ -66,15 +167,49 @@ dépôt.
git push -u origin
-Réservation d'un fichier
-~~~~~~~~~~~~~~~~~~~~~~~~
+Deuxième étape : choisir et réserver le fichier sur lequel travailler
+=====================================================================
-*Chaque fois que vous commencez un nouveau fichier, suivez cette procédure.*
+Note liminaire
+--------------
+
+Il est vivement conseillé de ne pas travailler sur fichiers des
+répertoires *c-api/*, *whatsnew/*, *distutils/* et *install/* :
+
+- *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/*, *install/*, et quelques autres parties qui seront bientôt
+ obsolètes. De manière générale, il n'est pas utile de traduire un module que
+ sa documentation mentionne comme obsolète.
+
+Trouver un fichier sur lequel travailler
+----------------------------------------
+
+Pour vous aiguiller dans votre choix, vous pouvez utiliser ``potodo``,
+un outil recherchant des fichiers ``.po`` à traduire. Une fois
+installé, utilisez la commande ``make todo`` dans votre clone local.
-Ensuite, vous devez trouver un fichier sur lequel travailler
-(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é.
+La liste renvoyée contient tous les fichiers qui ne sont pas encore complètement
+traduits. Vous pouvez choisir n'importe quel fichier non réservé dans la liste
+renvoyée (notez que ceux mentionnés plus haut sont automatiquement exclus).
+
+Vous pouvez commencer par des tâches faciles comme réviser les entrées
+*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é modifié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 le sont pas encore.
+
+Nous vous conseillons de choisir, si possible, un fichier traitant
+d'un sujet que vous maîtrisez, cela vous aidera grandement à produire
+une traduction de bonne qualité.
Si c'est votre première contribution, commencez par une toute petite
traduction, de quelques paragraphes maximum, pour vous familiariser. Il n'est
@@ -82,6 +217,11 @@ pas nécessaire de terminer un fichier lorsqu'on le commence, vous
pouvez donc prendre n'importe quel fichier, mais ne traduire que
quelques paragraphes.
+Réserver le fichier
+-------------------
+
+*Chaque fois que vous commencez un nouveau fichier, suivez cette procédure.*
+
Une fois que vous avez choisi un fichier sur lequel travailler vous pouvez nous
le signaler par différents moyens :
@@ -100,12 +240,15 @@ dans les tickets et les *pull requests*.
`irc://irc.libera.chat/#python-docs-fr `_
pour nous le signaler.
-Vous êtes maintenant prêt. Chaque fois que vous commencerez un nouveau fichier,
-suivez cette procédure :
-Pour travailler, nous avons besoin d'une branche, basée sur une version à jour
-(fraîchement récupérée) de la branche « upstream/3.10 ». On met donc à jour notre
-version locale.
+Création de la branche de traduction
+------------------------------------
+
+*Chaque fois que vous commencez un nouveau fichier, suivez cette procédure.*
+
+Vous êtes maintenant prêt. Pour travailler, nous avons besoin d'une
+branche, basée sur une version à jour (fraîchement récupérée) de la
+branche « upstream/3.10 ». On met donc à jour notre version locale.
.. code-block:: bash
@@ -122,12 +265,12 @@ fichier sur lequel on travaille. Par exemple, si vous travaillez sur
git checkout -b library-sys upstream/3.10
-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).
+Troisième étape: Traduction
+===========================
+
+Avec Poedit
+---------------
Ici, remplacez « library/sys.po » par le fichier que vous avez choisi précédemment.
.. code-block:: bash
@@ -138,11 +281,11 @@ Ici, remplacez « library/sys.po » par le fichier que vous avez choisi préc
Ou lancez simplement Poedit puis « Fichier » → « Ouvrir ».
-Traduction
-~~~~~~~~~~
+Vérifications après traduction
+------------------------------
-Vous pouvez dès à présent commencer à traduire le fichier en
-respectant les `conventions`_ du projet. Pour vous y aider, la commande :
+Après avoir modifié les fichiers, vérifiez que vous respectez les
+`conventions`_ du projet. Pour vous y aider, la commande :
.. code-block:: bash
@@ -157,8 +300,9 @@ Si ``make verifs`` trouve des problèmes de longueurs de ligne,
vérifiez votre configuration ``poedit`` (Édition → Préférences →
Avancé → Passer à la ligne à 79) ou utilisez ``make wrap``.
-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
+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
@@ -174,30 +318,34 @@ documentation local :
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.
+La documentation est publiée à l'adresse ``_.
+
+Attention: le port TCP/8000 ne peut être changé, il convient d'arrêter
+tout service qui écouterait sur celui-ci.
+
+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*
-~~~~~~~~~~~~~~
+Quatrième étape : publier sa traduction
+=======================================
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.
+* ``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
-``git commit`` permet de les propager :
+* ``git commit`` permet de les propager :
.. code-block:: bash
@@ -215,7 +363,7 @@ branche est liée à votre *fork* (et donc que vos futurs ``git pull`` et
git push --set-upstream origin
Sur Github
-++++++++++
+----------
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
@@ -243,7 +391,7 @@ GitHub puis relancer ``powrap`` :
git push
Sur une autre forge
-+++++++++++++++++++
+-------------------
Quand vous avez poussé vos modifications, il y a plusieurs possibilités.
@@ -300,38 +448,10 @@ 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 ``make todo`` dans votre clone
-local.
-
-Vous pouvez choisir n'importe quel fichier non réservé dans la liste renvoyée.
-Elle contient tous les fichiers qui ne sont pas encore complètement traduits, à
-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/*, *install/*, et quelques autres parties qui seront bientôt
- obsolètes. De manière générale, il n'est pas utile de traduire un module que
- sa documentation mentionne comme obsolète.
-
-Vous pouvez commencer par des tâches faciles comme réviser les entrées
-*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 le sont pas encore.
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
@@ -339,7 +459,7 @@ les traductions déjà définies dans le `glossaire`_.
Style
-~~~~~
+-----
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
@@ -350,7 +470,7 @@ documentation anglaise, si le rythme l'exige. Il faut aussi chercher des
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
@@ -363,13 +483,13 @@ processus de compilation n'est pas immédiat) ou pour des raisons de
concordance des temps.
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
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
+chose dont 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
@@ -377,20 +497,20 @@ phrase « these objects can be accessed by… » se traduit mieux par « on ac
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
+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 :
@@ -421,7 +541,7 @@ mais pas en
Liens hypertextes
-+++++++++++++++++
+^^^^^^^^^^^^^^^^^
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
@@ -432,11 +552,11 @@ doit devenir ```Jeu de la vie `_``.
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 `_.
+une primitive ou un concept défini dans le `glossaire Python `_.
La syntaxe est ``:term:nom_français``. Par exemple, traduisez
``:term:`dictionary``` en ``:term:`dictionnaire ```.
@@ -445,7 +565,7 @@ 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 »,
@@ -474,6 +594,7 @@ bytecode code intermédiaire
callback fonction de rappel
call stack pile d'appels
caught (exception) interceptée
+daemon *daemon*
debugging débogage
deep copy copie récursive (préféré), ou copie profonde
double quote guillemet
@@ -545,12 +666,12 @@ whitespace caractère d'espacement
========================== ===============================================
Ressources de traduction
-------------------------
+========================
- les canaux IRC sur irc.libera.chat :
- `#python-docs-fr `_ — communauté python autour de la documentation française,
- - `#python-fr `_ — communauté python francophone,
+ - `#python-fr `_ — communauté python francophone,
- `#python-doc `_ — communauté python autour de la documentation anglophone ;
- les listes de diffusion relatives à la documentation (courriel) :
@@ -559,8 +680,8 @@ Ressources de traduction
- 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 ;
+ - 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 française 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 ;
@@ -575,10 +696,10 @@ 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éfaut des claviers, permet de saisir des
@@ -603,7 +724,7 @@ simplement fonctionner :
- etc.
Comment définir la touche de composition ?
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+------------------------------------------
Cela dépend de votre système d'exploitation et de votre clavier.
@@ -622,7 +743,7 @@ ajouter l'équivalent de :
keycode 115 = Multi_key
-Utilisez ``xev`` pour connaitre la bonne correspondance de la touche que vous
+Utilisez ``xev`` pour connaître la bonne correspondance de la touche que vous
voulez assigner !
Ensuite, dans votre fichier *~/.xsession*, ajoutez :
@@ -640,8 +761,8 @@ modifier dans les « Paramètres » → « Clavier » → « Disposition » →
⇒ Sous Windows, vous
pouvez utiliser `wincompose `_.
-Le cas de « --- », « -- », « ... »
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Le cas de « --- », « -- », « ... »
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
La version anglaise utilise les
`smartquotes `_,
@@ -657,7 +778,7 @@ Les *smartquotes* sont normalement responsables de la transformation de
| « ... » : faites :kbd:`Compose . . .`
Le cas de « "…" »
-~~~~~~~~~~~~~~~~~
+^^^^^^^^^^^^^^^^^
Les guillemets français ``«`` et ``»`` ne sont pas identiques aux
guillemets anglais ``"``. Cependant, Python utilise les guillemets
@@ -668,7 +789,7 @@ traduire les guillemets mais pas les délimiteurs de chaîne.
| « "…" » : faites :kbd:`Compose < <` ou :kbd:`Compose > >`
Le cas de « :: »
-~~~~~~~~~~~~~~~~
+^^^^^^^^^^^^^^^^
| Du point de vue du langage *reStructuredText* (ou *rst*) utilisé dans la
documentation nous voyons soit « bla bla:: », soit « bla bla. :: ».
@@ -684,7 +805,7 @@ En français, nous mettons une espace insécable devant nos deux-points, comme :
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,
@@ -695,7 +816,7 @@ 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
@@ -708,7 +829,7 @@ 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 :
+- le deuxième paragraphe, lui aussi une énumération :
- premier sous-paragraphe,
- second sous-paragraphe ;
@@ -720,88 +841,3 @@ 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
---------------------------------
-
-Poutils
-~~~~~~~
-
-`Poutils `_ est un paquet PyPI qui
-regroupe un certain nombre d'outils liés à la traduction. Dans un
-environnement disposant de Python 3.7 ou plus, installez-le avec ::
-
- python3 -m pip install poutils
-
-Voici le détail des paquets qui nous intéressent dans Poutils :
-
-Pospell
-+++++++
-
-Vérificateur d'orthographe fondé sur Hunspell. ``make spell`` exécute
-Pospell. Pour l'utiliser, il vous faut installer Hunspell. Attention,
-dans Debian notamment (et ses dérivés comme Ubuntu), il existe plusieurs
-dictionnaires français qui diffèrent en raison de l'orthographe
-réformée. Installez celui qui contient les deux orthographes avec ::
-
- sudo apt install hunspell hunspell-fr-comprehensive
-
-Potodo
-++++++
-
-Permet d'identifier les parties de la documentation qu'il reste à
-traduire. ``make todo`` fait appel à Potodo.
-
-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. Pour connaître les options disponibles, tapez ::
-
- pogrep --help
-
-Powrap
-++++++
-
-Formateur de fichier *.po*. C'est l'outil qui se cache derrière ``make
-wrap``.
-
-Padpo (beta)
-++++++++++++
-
-Analyseur de code qui encapsule notamment `Grammalecte
-`_ et qui vérifie la grammaire, l'orthographe
-et la syntaxe des fichiers *.po*.
-
-
-Affichage des modifications par Git
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Le résultat de ``git diff`` est souvent encombré de changements inutiles de numéros
-de ligne, comme :
-
-.. code-block:: diff
-
- -#: ../Doc/library/sys.rst:406
- +#: ../Doc/library/sys.rst:408
-
-
-Pour dire à Git que ce ne sont pas des informations utiles, vous pouvez faire
-ce qui suit après vous être assuré que ``~/.local/bin/`` se trouve dans votre
-``PATH``.
-
-.. code-block:: bash
-
- cat < ~/.local/bin/podiff
- #!/bin/sh
- grep -v '^#:' "\$1"
- EOF
-
- chmod a+x ~/.local/bin/podiff
-
- 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.
diff --git a/Makefile b/Makefile
index e581c68b3e..48251e3c0d 100644
--- a/Makefile
+++ b/Makefile
@@ -20,7 +20,7 @@
# 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 := 1b37268ef10bd20c30d349b8401c88215c8a6be8
+CPYTHON_CURRENT_COMMIT := 100da7c31aeb3888962bf33c8cc3594272964815
LANGUAGE := fr
BRANCH := 3.10
@@ -34,7 +34,28 @@ EXCLUDED := \
library/distutils.po \
library/imp.po \
library/tkinter.tix.po \
- library/test.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
@@ -44,6 +65,7 @@ PYTHON := $(shell which python3)
MODE := html
POSPELL_TMP_DIR := .pospell/
JOBS := auto
+SPHINXERRORHANDLING = -W
# Detect OS
@@ -68,15 +90,16 @@ all: ensure_prerequisites
mkdir -p locales/$(LANGUAGE)/LC_MESSAGES/
$(CP_CMD) -u --parents *.po */*.po locales/$(LANGUAGE)/LC_MESSAGES/
$(MAKE) -C venv/cpython/Doc/ \
- SPHINXOPTS='-j$(JOBS) \
- -D locale_dirs=$(abspath locales) \
+ 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 serve' to see them."
+ @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
@@ -95,14 +118,13 @@ ensure_prerequisites: venv/cpython/.git/HEAD
exit 1; \
fi
-
-.PHONY: serve
-serve:
- $(MAKE) -C venv/cpython/Doc/ serve
+.PHONY: htmlview
+htmlview: MODE=htmlview
+htmlview: all
.PHONY: todo
todo: ensure_prerequisites
- potodo --exclude venv .venv $(EXCLUDED)
+ 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: ensure_prerequisites
@@ -116,23 +138,51 @@ DESTS = $(addprefix $(POSPELL_TMP_DIR)/,$(addsuffix .out,$(SRCS)))
.PHONY: spell
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 "Pospell checking $<..."
- mkdir -p $(@D)
+ @mkdir -p $(@D)
pospell -p dict -l fr_FR $< && touch $@
.PHONY: fuzzy
fuzzy: ensure_prerequisites
- potodo -f --exclude venv .venv $(EXCLUDED)
+ 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: spell
- powrap --check --quiet *.po */*.po
+verifs: spell line-length sphinx-lint check-headers
.PHONY: clean
clean:
@echo "Cleaning *.mo and $(POSPELL_TMP_DIR)"
- rm -fr $(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/about.po b/about.po
index abd282341b..e3811998b5 100644
--- a/about.po
+++ b/about.po
@@ -5,8 +5,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-08-24 09:01+0200\n"
-"PO-Revision-Date: 2018-07-23 17:55+0200\n"
+"POT-Creation-Date: 2022-10-18 15:46+0200\n"
+"PO-Revision-Date: 2022-07-08 17:54+0200\n"
"Last-Translator: Julien Palard \n"
"Language-Team: FRENCH \n"
"Language: fr\n"
@@ -53,25 +53,25 @@ msgstr ""
#: about.rst:24
msgid ""
-"the `Docutils `_ project for creating "
+"the `Docutils `_ project for creating "
"reStructuredText and the Docutils suite;"
msgstr ""
-"le projet `Docutils `_ pour avoir créé "
+"le projet `Docutils `_ pour avoir créé "
"*reStructuredText* et la suite d'outils *Docutils* ;"
#: about.rst:26
msgid ""
-"Fredrik Lundh for his `Alternative Python Reference `_ project from which Sphinx got many good ideas."
+"Fredrik Lundh for his Alternative Python Reference project from which Sphinx "
+"got many good ideas."
msgstr ""
-"Fredrik Lundh pour son projet `Alternative Python Reference `_, dont Sphinx a pris beaucoup de bonnes idées."
+"Fredrik Lundh pour son projet *Alternative Python Reference*, dont Sphinx a "
+"pris beaucoup de bonnes idées."
-#: about.rst:32
+#: about.rst:31
msgid "Contributors to the Python Documentation"
msgstr "Contributeurs de la documentation Python"
-#: about.rst:34
+#: about.rst:33
msgid ""
"Many people have contributed to the Python language, the Python standard "
"library, and the Python documentation. See :source:`Misc/ACKS` in the "
@@ -82,7 +82,7 @@ msgstr ""
"sources de la distribution Python pour avoir une liste partielle des "
"contributeurs."
-#: about.rst:38
+#: about.rst:37
msgid ""
"It is only with the input and contributions of the Python community that "
"Python has such wonderful documentation -- Thank You!"
diff --git a/bugs.po b/bugs.po
index cbe3448a51..045b57f2c2 100644
--- a/bugs.po
+++ b/bugs.po
@@ -5,8 +5,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-09-23 16:16+0200\n"
-"PO-Revision-Date: 2021-11-06 22:05+0100\n"
+"POT-Creation-Date: 2023-03-22 22:57+0100\n"
+"PO-Revision-Date: 2022-07-08 17:50+0200\n"
"Last-Translator: Jean Abou Samra \n"
"Language-Team: FRENCH \n"
"Language: fr\n"
@@ -61,6 +61,12 @@ msgstr ""
#: bugs.rst:22
msgid ""
+"You can also open a discussion item on our `Documentation Discourse forum "
+"`_."
+msgstr ""
+
+#: bugs.rst:25
+msgid ""
"If you're short on time, you can also email documentation bug reports to "
"docs@python.org (behavioral bugs can be sent to python-list@python.org). "
"'docs@' is a mailing list run by volunteers; your request will be noticed, "
@@ -72,11 +78,11 @@ msgstr ""
"volontaires, votre requête sera vue, mais elle peut prendre un moment pour "
"être traitée."
-#: bugs.rst:30
+#: bugs.rst:33
msgid "`Documentation bugs`_"
msgstr "`Bogues de documentation`_"
-#: bugs.rst:30
+#: bugs.rst:33
msgid ""
"A list of documentation bugs that have been submitted to the Python issue "
"tracker."
@@ -84,18 +90,18 @@ msgstr ""
"Liste des bogues de documentation soumis à l'outil de suivi des problèmes "
"Python."
-#: bugs.rst:33
+#: bugs.rst:36
msgid "`Issue Tracking `_"
msgstr "`Outil de suivi des problèmes `_"
-#: bugs.rst:33
+#: bugs.rst:36
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."
-#: bugs.rst:35
+#: bugs.rst:39
msgid ""
"`Helping with Documentation `_"
@@ -103,83 +109,98 @@ msgstr ""
"`Aider avec la documentation `_"
-#: bugs.rst:36
+#: bugs.rst:39
msgid ""
"Comprehensive guide for individuals that are interested in contributing to "
"Python documentation."
msgstr "Guide complet pour qui souhaite contribuer à la documentation Python."
#: bugs.rst:41
+msgid ""
+"`Documentation Translations `_"
+msgstr ""
+"`Aider avec la documentation `_"
+
+#: bugs.rst:42
+msgid ""
+"A list of GitHub pages for documentation translation and their primary "
+"contacts."
+msgstr ""
+"Liste de dépôts GitHub où la documentation est traduite, avec les personnes "
+"à contacter."
+
+#: bugs.rst:48
msgid "Using the Python issue tracker"
msgstr "Utilisation du gestionnaire de tickets Python"
-#: bugs.rst:43
+#: bugs.rst:50
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 "
-"l'outil de suivi des bogues (*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."
-#: bugs.rst:47
+#: bugs.rst:55
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."
-#: bugs.rst:54
+#: bugs.rst:62
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 l'outil de suivi des "
-"bogues, 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."
-#: bugs.rst:59
+#: bugs.rst:67
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."
-#: bugs.rst:62
+#: bugs.rst:70
+msgid "The submission form has two fields, \"Title\" and \"Comment\"."
+msgstr "Le formulaire de rapport contient deux champs, *Title* et *Comment*."
+
+#: bugs.rst:72
+#, fuzzy
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; "
+"fewer 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."
-#: bugs.rst:67
+#: bugs.rst:75
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 "
@@ -192,17 +213,17 @@ msgstr ""
"plateforme matérielle et logicielle vous utilisiez (en incluant les "
"informations de versions)."
-#: bugs.rst:72
+#: bugs.rst:80
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."
-#: bugs.rst:81
+#: bugs.rst:89
msgid ""
"`How to Report Bugs Effectively `_"
@@ -210,7 +231,7 @@ msgstr ""
"`Comment signaler des bogues de manière efficace `_ (en anglais)"
-#: bugs.rst:80
+#: bugs.rst:88
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."
@@ -219,7 +240,7 @@ msgstr ""
"bogue utile. Il décrit quel genre d'information est utile et pourquoi elle "
"est utile."
-#: bugs.rst:84
+#: bugs.rst:92
msgid ""
"`Bug Writing Guidelines `_"
@@ -227,7 +248,7 @@ msgstr ""
"`Guide pour la rédaction de rapports de bogues `_"
-#: bugs.rst:84
+#: bugs.rst:92
msgid ""
"Information about writing a good bug report. Some of this is specific to "
"the Mozilla project, but describes general good practices."
@@ -235,11 +256,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."
-#: bugs.rst:90
+#: bugs.rst:98
msgid "Getting started contributing to Python yourself"
msgstr "Commencer à contribuer à Python vous-même"
-#: bugs.rst:92
+#: bugs.rst:100
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 "
@@ -253,3 +274,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/allocation.po b/c-api/allocation.po
index 5f14969923..7dfa7cea54 100644
--- a/c-api/allocation.po
+++ b/c-api/allocation.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-08-24 09:01+0200\n"
+"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2018-10-20 21:16+0200\n"
"Last-Translator: Julien Palard \n"
"Language-Team: FRENCH \n"
@@ -20,8 +20,9 @@ msgid "Allocating Objects on the Heap"
msgstr "Allouer des objets dans le tas"
#: c-api/allocation.rst:17
+#, fuzzy
msgid ""
-"Initialize a newly-allocated object *op* with its type and initial "
+"Initialize a newly allocated object *op* with its type and initial "
"reference. Returns the initialized object. If *type* indicates that the "
"object participates in the cyclic garbage detector, it is added to the "
"detector's set of observed objects. Other fields of the object are not "
diff --git a/c-api/apiabiversion.po b/c-api/apiabiversion.po
index 9a724f526a..374251d475 100644
--- a/c-api/apiabiversion.po
+++ b/c-api/apiabiversion.po
@@ -24,59 +24,52 @@ msgid ""
"correspond to the version code is **built** with, not necessarily the "
"version used at **run time**."
msgstr ""
+"CPython révèle son numéro de version dans les macros suivantes. À noter "
+"qu'ils correspondent au code de la version **compilée** avec, pas "
+"nécessairement la version utilisée à l'**exécution**."
#: c-api/apiabiversion.rst:13
msgid ""
"See :ref:`stable` for a discussion of API and ABI stability across versions."
msgstr ""
+"Voir :ref:`stable` pour une discussion sur la stabilité des API et ABI entre "
+"(ou en fonction) de la version."
#: c-api/apiabiversion.rst:17
-#, fuzzy
msgid "The ``3`` in ``3.4.1a2``."
-msgstr "``PY_MAJOR_VERSION`` (le ``3`` dans ``3.4.1a2``)"
+msgstr "Le ``3`` dans ``3.4.1a2``.)"
#: c-api/apiabiversion.rst:21
-#, fuzzy
msgid "The ``4`` in ``3.4.1a2``."
-msgstr "``PY_MINOR_VERSION`` (le ``4`` dans ``3.4.1a2``)"
+msgstr "Le ``4`` dans ``3.4.1a2``."
#: c-api/apiabiversion.rst:25
-#, fuzzy
msgid "The ``1`` in ``3.4.1a2``."
-msgstr "``PY_MICRO_VERSION`` (le ``1`` dans ``3.4.1a2``)"
+msgstr "Le ``1`` dans ``3.4.1a2``.)"
#: c-api/apiabiversion.rst:29
-#, fuzzy
msgid ""
"The ``a`` in ``3.4.1a2``. This can be ``0xA`` for alpha, ``0xB`` for beta, "
"``0xC`` for release candidate or ``0xF`` for final."
msgstr ""
-"``PY_RELEASE_LEVEL`` (``0xA`` pour alpha, ``0xB`` pour bêta, ``0xC`` pour "
-"une version candidate et ``0xF`` pour final), dans ce cas c'est alpha."
+" Le ``a`` dans ``3.4.1a2``. Cela peut être ``0xA`` pour alpha, ``0xB`` pour "
+"bêta, ``0xC`` pour une version candidate ou ``0xF`` pour finale)."
#: c-api/apiabiversion.rst:35
-#, fuzzy
msgid "The ``2`` in ``3.4.1a2``. Zero for final releases."
-msgstr ""
-"``PY_RELEASE_SERIAL`` (le ``2`` au ``3.4.1a2``, zéro pour des versions "
-"finales)"
+msgstr "Le ``2`` dans ``3.4.1a2``. Nul pour des versions finales."
#: c-api/apiabiversion.rst:39
-#, fuzzy
msgid "The Python version number encoded in a single integer."
-msgstr ""
-"``PY_VERSION_HEX`` est le numéro de version de Python encodé en un seul "
-"entier."
+msgstr "Le numéro de version de Python encodé en un seul entier."
#: c-api/apiabiversion.rst:41
-#, fuzzy
msgid ""
"The underlying version information can be found by treating it as a 32 bit "
"number in the following manner:"
msgstr ""
-"Par exemple si le ``PY_VERSION_HEX` est défini à ``0x030401a2``, la "
-"version d'information sous-jacente peut être trouvée en la traitant comme un "
-"nombre sous 32 bits de la manière suivante:"
+"L'information sur la version sous-jacente peut être trouvée en la traitant "
+"comme un nombre sous 32 bits de la manière suivante:"
#: c-api/apiabiversion.rst:45
msgid "Bytes"
@@ -92,95 +85,92 @@ msgstr "Signification"
#: c-api/apiabiversion.rst:45
msgid "Value for ``3.4.1a2``"
-msgstr ""
+msgstr "Valeur pour ``3.4.1a2``"
#: c-api/apiabiversion.rst:47
msgid "1"
-msgstr ""
+msgstr "1"
#: c-api/apiabiversion.rst:47
-#, fuzzy
msgid "1-8"
-msgstr "``1-8``"
+msgstr "1-8"
#: c-api/apiabiversion.rst:47
msgid "``PY_MAJOR_VERSION``"
-msgstr ""
+msgstr "``PY_MAJOR_VERSION``"
#: c-api/apiabiversion.rst:47
msgid "``0x03``"
-msgstr ""
+msgstr "``0x03``"
#: c-api/apiabiversion.rst:49
msgid "2"
-msgstr ""
+msgstr "2"
#: c-api/apiabiversion.rst:49
-#, fuzzy
msgid "9-16"
-msgstr "``9-16``"
+msgstr "9-16"
#: c-api/apiabiversion.rst:49
msgid "``PY_MINOR_VERSION``"
-msgstr ""
+msgstr "``PY_MINOR_VERSION``"
#: c-api/apiabiversion.rst:49
msgid "``0x04``"
-msgstr ""
+msgstr "``0x04``"
#: c-api/apiabiversion.rst:51
msgid "3"
-msgstr ""
+msgstr "3"
#: c-api/apiabiversion.rst:51
-#, fuzzy
msgid "17-24"
-msgstr "``17-24``"
+msgstr "17-24"
#: c-api/apiabiversion.rst:51
msgid "``PY_MICRO_VERSION``"
-msgstr ""
+msgstr "``PY_MICRO_VERSION``"
#: c-api/apiabiversion.rst:51
msgid "``0x01``"
-msgstr ""
+msgstr "``0x01``"
#: c-api/apiabiversion.rst:53
msgid "4"
-msgstr ""
+msgstr "4"
#: c-api/apiabiversion.rst:53
-#, fuzzy
msgid "25-28"
-msgstr "``25-28``"
+msgstr "25-28"
#: c-api/apiabiversion.rst:53
msgid "``PY_RELEASE_LEVEL``"
-msgstr ""
+msgstr "``PY_RELEASE_LEVEL``"
#: c-api/apiabiversion.rst:53
msgid "``0xA``"
-msgstr ""
+msgstr "``0xA``"
#: c-api/apiabiversion.rst:55
-#, fuzzy
msgid "29-32"
-msgstr "``29-32``"
+msgstr "29-32"
#: c-api/apiabiversion.rst:55
msgid "``PY_RELEASE_SERIAL``"
-msgstr ""
+msgstr "``PY_RELEASE_SERIAL``"
#: c-api/apiabiversion.rst:55
msgid "``0x2``"
-msgstr ""
+msgstr "``0x2``"
#: c-api/apiabiversion.rst:58
-#, fuzzy
msgid ""
"Thus ``3.4.1a2`` is hexversion ``0x030401a2`` and ``3.10.0`` is hexversion "
"``0x030a00f0``."
-msgstr "Ainsi ``3.4.1a2`` est une hexane-version ``0x030401a2``."
+msgstr ""
+"Ainsi, ``0x030401a2`` est la version en notation hexadécimale sur un entier "
+"de ``3.4.1a2`` et ``0x030a00f0`` est la version en notation hexadécimale sur "
+"un entier de ``3.10.0``"
#: c-api/apiabiversion.rst:62
msgid "All the given macros are defined in :source:`Include/patchlevel.h`."
diff --git a/c-api/arg.po b/c-api/arg.po
index 3aa819930b..fae360ef57 100644
--- a/c-api/arg.po
+++ b/c-api/arg.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-09-23 16:16+0200\n"
+"POT-Creation-Date: 2023-03-22 22:57+0100\n"
"PO-Revision-Date: 2021-12-11 11:44+0100\n"
"Last-Translator: Julien Palard \n"
"Language-Team: FRENCH \n"
@@ -82,25 +82,22 @@ msgstr ""
"l'*unicode* ou le *bytes* renvoyé."
#: 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#``."
+msgid "Unless otherwise stated, buffers are not NUL-terminated."
+msgstr "Sauf indication contraire, les tampons ne se terminent pas par NUL."
+
+#: c-api/arg.rst:39
+msgid "There are three ways strings and buffers can be converted to C:"
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#``."
-#: c-api/arg.rst:42
+#: c-api/arg.rst:41
+#, fuzzy
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 "
-"inside a :c:type:`Py_BEGIN_ALLOW_THREADS` block without the risk of mutable "
-"data being resized or destroyed. As a result, **you have to call** :c:func:"
-"`PyBuffer_Release` after you have finished processing the data (or in any "
-"early abort case)."
+"Formats such as ``y*`` and ``s*`` fill a :c:type:`Py_buffer` structure. This "
+"locks the underlying buffer so that the caller can subsequently use the "
+"buffer even inside a :c:type:`Py_BEGIN_ALLOW_THREADS` block without the risk "
+"of mutable data being resized or destroyed. As a result, **you have to "
+"call** :c:func:`PyBuffer_Release` after you have finished processing the "
+"data (or in any early abort case)."
msgstr ""
"Néanmoins, quand une structure :c:type:`Py_buffer` est en cours de "
"remplissage, le tampon sous-jacent est verrouillé pour permettre à "
@@ -110,24 +107,43 @@ 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)."
-#: 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."
+#: c-api/arg.rst:48
+msgid ""
+"The ``es``, ``es#``, ``et`` and ``et#`` formats allocate the result buffer. "
+"**You have to call** :c:func:`PyMem_Free` after you have finished processing "
+"the data (or in any early abort case)."
+msgstr ""
+
+#: c-api/arg.rst:54
+#, fuzzy
+msgid ""
+"Other formats take a :class:`str` or a read-only :term:`bytes-like object`, "
+"such as :class:`bytes`, and provide a ``const char *`` pointer to its "
+"buffer. In this case the buffer is \"borrowed\": it is managed by the "
+"corresponding Python object, and shares the lifetime of this object. You "
+"won't have to release any memory yourself."
+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#``."
-#: c-api/arg.rst:51
+#: c-api/arg.rst:61
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`."
+"To ensure that the underlying buffer may be safely borrowed, the object's :c:"
+"member:`PyBufferProcs.bf_releasebuffer` field must be ``NULL``. This "
+"disallows common mutable objects such as :class:`bytearray`, but also some "
+"read-only objects such as :class:`memoryview` of :class:`bytes`."
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`."
-#: c-api/arg.rst:58
+#: c-api/arg.rst:67
+msgid ""
+"Besides this ``bf_releasebuffer`` requirement, there is no check to verify "
+"whether the input object is immutable (e.g. whether it would honor a request "
+"for a writable buffer, or whether another thread can mutate the data)."
+msgstr ""
+
+#: c-api/arg.rst:73
msgid ""
"For all ``#`` variants of formats (``s#``, ``y#``, etc.), the macro :c:macro:"
"`PY_SSIZE_T_CLEAN` must be defined before including :file:`Python.h`. On "
@@ -136,11 +152,11 @@ msgid ""
"otherwise."
msgstr ""
-#: c-api/arg.rst:83
+#: c-api/arg.rst:98
msgid "``s`` (:class:`str`) [const char \\*]"
msgstr "``s`` (:class:`str`) [``const char *``]"
-#: c-api/arg.rst:66
+#: c-api/arg.rst:81
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 "
@@ -157,7 +173,7 @@ msgstr ""
"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."
-#: c-api/arg.rst:75
+#: c-api/arg.rst:90
msgid ""
"This format does not accept :term:`bytes-like objects `. "
"If you want to accept filesystem paths and convert them to C character "
@@ -170,7 +186,7 @@ msgstr ""
"est préférable d'utiliser le format ``O&`` avec :c:func:"
"`PyUnicode_FSConverter` en tant que *converter*."
-#: c-api/arg.rst:148
+#: c-api/arg.rst:164
msgid ""
"Previously, :exc:`TypeError` was raised when embedded null code points were "
"encountered in the Python string."
@@ -178,11 +194,11 @@ msgstr ""
"Auparavant, une :exc:`TypeError` était levée quand la chaîne de caractères "
"Python contenait des codes NULL."
-#: c-api/arg.rst:89
+#: c-api/arg.rst:104
msgid "``s*`` (:class:`str` or :term:`bytes-like object`) [Py_buffer]"
msgstr "``s*`` (:class:`str` ou :term:`bytes-like object`) [``Py_buffer``]"
-#: c-api/arg.rst:86
+#: c-api/arg.rst:101
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 "
@@ -195,7 +211,7 @@ msgstr ""
"octets NULL. Les objets Unicode sont convertis en chaînes de caractères C en "
"utilisant l'encodage ``'utf-8'``."
-#: c-api/arg.rst:96
+#: c-api/arg.rst:111
#, fuzzy
msgid ""
"``s#`` (:class:`str`, read-only :term:`bytes-like object`) [const char \\*, :"
@@ -204,12 +220,14 @@ msgstr ""
"``s#`` (:class:`str`, :term:`bytes-like object` en lecture seule) [``const "
"char \\*``, ``int`` ou :c:type:`Py_ssize_t`]"
-#: c-api/arg.rst:92
+#: c-api/arg.rst:107
+#, fuzzy
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."
+"Like ``s*``, except that it provides a :ref:`borrowed buffer `. 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 "
@@ -217,11 +235,11 @@ msgstr ""
"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'``."
-#: c-api/arg.rst:565
+#: c-api/arg.rst:581
msgid "``z`` (:class:`str` or ``None``) [const char \\*]"
msgstr "``z`` (:class:`str` ou ``None``) [``const char *``]"
-#: c-api/arg.rst:99
+#: c-api/arg.rst:114
#, fuzzy
msgid ""
"Like ``s``, but the Python object may also be ``None``, in which case the C "
@@ -230,13 +248,13 @@ msgstr ""
"Comme ``s``, mais l'objet Python peut aussi être ``None``, auquel cas le "
"pointeur C devient *NULL*."
-#: c-api/arg.rst:104
+#: c-api/arg.rst:119
msgid ""
"``z*`` (:class:`str`, :term:`bytes-like object` or ``None``) [Py_buffer]"
msgstr ""
"``z*`` (:class:`str`, :term:`bytes-like object` ou ``None``) [``Py_buffer``]"
-#: c-api/arg.rst:103
+#: c-api/arg.rst:118
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``."
@@ -244,7 +262,7 @@ msgstr ""
"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*."
-#: c-api/arg.rst:108
+#: c-api/arg.rst:123
#, fuzzy
msgid ""
"``z#`` (:class:`str`, read-only :term:`bytes-like object` or ``None``) "
@@ -253,7 +271,7 @@ msgstr ""
"``s#`` (:class:`str`, :term:`bytes-like object` en lecture seule) [``const "
"char \\*``, ``int`` ou :c:type:`Py_ssize_t`]"
-#: c-api/arg.rst:107
+#: c-api/arg.rst:122
#, fuzzy
msgid ""
"Like ``s#``, but the Python object may also be ``None``, in which case the C "
@@ -262,25 +280,26 @@ msgstr ""
"Comme ``s#``, mais l'objet Python peut également être ``None``, dans ce cas "
"le pointeur C est définie à *NULL*."
-#: c-api/arg.rst:118
+#: c-api/arg.rst:134
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 \\*]"
-#: c-api/arg.rst:111
+#: c-api/arg.rst:126
+#, fuzzy
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."
+"This format converts a bytes-like object to a C pointer to a :ref:`borrowed "
+"` 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."
-#: c-api/arg.rst:116
+#: c-api/arg.rst:132
msgid ""
"Previously, :exc:`TypeError` was raised when embedded null bytes were "
"encountered in the bytes buffer."
@@ -288,17 +307,17 @@ msgstr ""
"Auparavant, :exc:`TypeError` était levée lorsque des octets *null* étaient "
"rencontrés dans le tampon d'octets."
-#: c-api/arg.rst:123
+#: c-api/arg.rst:139
msgid "``y*`` (:term:`bytes-like object`) [Py_buffer]"
msgstr "``y*`` (:term:`bytes-like object`) [``Py_buffer``]"
-#: c-api/arg.rst:121
+#: c-api/arg.rst:137
msgid ""
"This variant on ``s*`` doesn't accept Unicode objects, only bytes-like "
"objects. **This is the recommended way to accept binary data.**"
msgstr ""
-#: c-api/arg.rst:127
+#: c-api/arg.rst:143
#, fuzzy
msgid ""
"``y#`` (read-only :term:`bytes-like object`) [const char \\*, :c:type:"
@@ -307,7 +326,7 @@ msgstr ""
"``s#`` (:class:`str`, :term:`bytes-like object` en lecture seule) [``const "
"char \\*``, ``int`` ou :c:type:`Py_ssize_t`]"
-#: c-api/arg.rst:126
+#: c-api/arg.rst:142
msgid ""
"This variant on ``s#`` doesn't accept Unicode objects, only bytes-like "
"objects."
@@ -315,32 +334,32 @@ msgstr ""
"Cette variante de ``s#`` n'accepte pas les objets Unicode, uniquement des "
"objets assimilés à des octets."
-#: c-api/arg.rst:132
+#: c-api/arg.rst:148
msgid "``S`` (:class:`bytes`) [PyBytesObject \\*]"
msgstr "``S`` (:class:`bytes`) [``PyBytesObject *``]"
-#: c-api/arg.rst:130
+#: c-api/arg.rst:146
#, 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:expr:`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\\*`."
-#: c-api/arg.rst:137
+#: c-api/arg.rst:153
msgid "``Y`` (:class:`bytearray`) [PyByteArrayObject \\*]"
msgstr "``Y`` (:class:`bytearray`) [``PyByteArrayObject *``]"
-#: c-api/arg.rst:135
+#: c-api/arg.rst:151
#, 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:"
+"class:`bytearray` object. The C variable may also be declared as :c:expr:"
"`PyObject*`."
msgstr ""
"Nécessite que l'objet Python soit de type :class:`bytes`, sans avoir tenté "
@@ -348,11 +367,11 @@ msgstr ""
"type *bytes*. La variable C doit aussi être déclarée en tant que :c:type:"
"`PyObject\\*`."
-#: c-api/arg.rst:154
+#: c-api/arg.rst:170
msgid "``u`` (:class:`str`) [const Py_UNICODE \\*]"
msgstr "``u`` (:class:`str`) [``const Py_UNICODE *``]"
-#: c-api/arg.rst:140
+#: c-api/arg.rst:156
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` "
@@ -370,29 +389,29 @@ msgstr ""
"chaîne de caractères Python ne doit pas contenir de code *NULL*. Si elle en "
"contient, une exception :exc:`ValueError` est levée."
-#: c-api/arg.rst:172 c-api/arg.rst:180
+#: c-api/arg.rst:188 c-api/arg.rst:196
msgid ""
"Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:"
"func:`PyUnicode_AsWideCharString`."
msgstr ""
-#: c-api/arg.rst:163
+#: c-api/arg.rst:179
#, fuzzy
msgid "``u#`` (:class:`str`) [const Py_UNICODE \\*, :c:type:`Py_ssize_t`]"
msgstr "``u#`` (:class:`str`) [``const Py_UNICODE *``, ``int``]"
-#: c-api/arg.rst:157
+#: c-api/arg.rst:173
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 ""
-#: c-api/arg.rst:171
+#: c-api/arg.rst:187
msgid "``Z`` (:class:`str` or ``None``) [const Py_UNICODE \\*]"
msgstr "``Z`` (:class:`str` ou ``None``) [``const Py_UNICODE *``]"
-#: c-api/arg.rst:166
+#: c-api/arg.rst:182
#, fuzzy
msgid ""
"Like ``u``, but the Python object may also be ``None``, in which case the :c:"
@@ -401,14 +420,14 @@ msgstr ""
"Comme ``u``, mais l'objet Python peut aussi être ``None``, auquel cas le "
"pointeur :c:type:`Py_UNICODE` vaut *NULL*."
-#: c-api/arg.rst:179
+#: c-api/arg.rst:195
#, fuzzy
msgid ""
"``Z#`` (:class:`str` or ``None``) [const Py_UNICODE \\*, :c:type:"
"`Py_ssize_t`]"
msgstr "``Z#`` (:class:`str` ou ``None``) [``const Py_UNICODE *``, ``int``]"
-#: c-api/arg.rst:174
+#: c-api/arg.rst:190
#, fuzzy
msgid ""
"Like ``u#``, but the Python object may also be ``None``, in which case the :"
@@ -417,27 +436,27 @@ msgstr ""
"Comme ``u#``, mais l'objet Python peut également être ``None``, auquel cas "
"le pointeur :c:type:`Py_UNICODE` vaut *NULL*."
-#: c-api/arg.rst:184
+#: c-api/arg.rst:200
msgid "``U`` (:class:`str`) [PyObject \\*]"
msgstr "``U`` (:class:`str`) [``PyObject *``]"
-#: c-api/arg.rst:182
+#: c-api/arg.rst:198
#, 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:expr:`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\\*`."
-#: c-api/arg.rst:190
+#: c-api/arg.rst:206
msgid "``w*`` (read-write :term:`bytes-like object`) [Py_buffer]"
msgstr "``w*`` (lecture-écriture :term:`bytes-like object`) [``Py_buffer``]"
-#: c-api/arg.rst:187
+#: c-api/arg.rst:203
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. "
@@ -445,28 +464,28 @@ msgid ""
"`PyBuffer_Release` when it is done with the buffer."
msgstr ""
-#: c-api/arg.rst:207
+#: c-api/arg.rst:223
msgid "``es`` (:class:`str`) [const char \\*encoding, char \\*\\*buffer]"
msgstr ""
-#: c-api/arg.rst:193
+#: c-api/arg.rst:209
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 ""
-#: c-api/arg.rst:196
+#: c-api/arg.rst:212
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 "
+"must be a :c:expr:`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 "
+"The second argument must be a :c:expr:`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 ""
-#: c-api/arg.rst:204
+#: c-api/arg.rst:220
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 "
@@ -474,20 +493,20 @@ msgid ""
"`PyMem_Free` to free the allocated buffer after use."
msgstr ""
-#: c-api/arg.rst:212
+#: c-api/arg.rst:228
msgid ""
"``et`` (:class:`str`, :class:`bytes` or :class:`bytearray`) [const char "
"\\*encoding, char \\*\\*buffer]"
msgstr ""
-#: c-api/arg.rst:210
+#: c-api/arg.rst:226
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 ""
-#: c-api/arg.rst:243
+#: c-api/arg.rst:259
#, fuzzy
msgid ""
"``es#`` (:class:`str`) [const char \\*encoding, char \\*\\*buffer, :c:type:"
@@ -496,40 +515,40 @@ msgstr ""
"``s#`` (:class:`str`, :term:`bytes-like object` en lecture seule) [``const "
"char \\*``, ``int`` ou :c:type:`Py_ssize_t`]"
-#: c-api/arg.rst:215
+#: c-api/arg.rst:231
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 ""
-#: c-api/arg.rst:219
+#: c-api/arg.rst:235
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:expr:`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:expr:`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 ""
-#: c-api/arg.rst:229
+#: c-api/arg.rst:245
msgid "There are two modes of operation:"
msgstr "Il existe deux modes de fonctionnement :"
-#: c-api/arg.rst:231
+#: c-api/arg.rst:247
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 ""
-#: c-api/arg.rst:236
+#: c-api/arg.rst:252
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 "
@@ -538,7 +557,7 @@ msgid ""
"the buffer is not large enough, a :exc:`ValueError` will be set."
msgstr ""
-#: c-api/arg.rst:242
+#: c-api/arg.rst:258
msgid ""
"In both cases, *\\*buffer_length* is set to the length of the encoded data "
"without the trailing NUL byte."
@@ -546,7 +565,7 @@ msgstr ""
"Dans les deux cas, *\\*buffer_length* est la longueur des données encodées, "
"sans l'octet NUL de fin."
-#: c-api/arg.rst:248
+#: c-api/arg.rst:264
#, fuzzy
msgid ""
"``et#`` (:class:`str`, :class:`bytes` or :class:`bytearray`) [const char "
@@ -555,194 +574,207 @@ msgstr ""
"``s#`` (:class:`str`, :term:`bytes-like object` en lecture seule) [``const "
"char \\*``, ``int`` ou :c:type:`Py_ssize_t`]"
-#: c-api/arg.rst:246
+#: c-api/arg.rst:262
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 ""
-#: c-api/arg.rst:251
+#: c-api/arg.rst:267
msgid "Numbers"
msgstr "Les nombres"
-#: c-api/arg.rst:255
+#: c-api/arg.rst:271
msgid "``b`` (:class:`int`) [unsigned char]"
msgstr "``b`` (:class:`int`) [``unsigned char``]"
-#: c-api/arg.rst:254
+#: c-api/arg.rst:270
+#, fuzzy
msgid ""
"Convert a nonnegative Python integer to an unsigned tiny int, stored in a C :"
-"c:type:`unsigned char`."
+"c:expr:`unsigned char`."
msgstr ""
"Convertit un entier Python positif ou nul en un ``unsigned tiny int``, "
"stocké dans un :c:type:`unsigned char` C."
-#: c-api/arg.rst:599
+#: c-api/arg.rst:615
msgid "``B`` (:class:`int`) [unsigned char]"
msgstr "``B`` (:class:`int`) [``unsigned char``]"
-#: c-api/arg.rst:258
+#: c-api/arg.rst:274
+#, fuzzy
msgid ""
"Convert a Python integer to a tiny int without overflow checking, stored in "
-"a C :c:type:`unsigned char`."
+"a C :c:expr:`unsigned char`."
msgstr ""
"Convertit un entier Python en un ``tiny int`` sans vérifier le débordement, "
"stocké dans un :c:type:`unsigned char` C."
-#: c-api/arg.rst:593
+#: c-api/arg.rst:609
msgid "``h`` (:class:`int`) [short int]"
msgstr "``h`` (:class:`int`) [``short int``]"
-#: c-api/arg.rst:262
-msgid "Convert a Python integer to a C :c:type:`short int`."
+#: c-api/arg.rst:278
+#, fuzzy
+msgid "Convert a Python integer to a C :c:expr:`short int`."
msgstr "Convertit un entier Python en un :c:type:`short int` C."
-#: c-api/arg.rst:602
+#: c-api/arg.rst:618
msgid "``H`` (:class:`int`) [unsigned short int]"
msgstr "``H`` (:class:`int`) [``unsigned short int``]"
-#: c-api/arg.rst:265
+#: c-api/arg.rst:281
+#, fuzzy
msgid ""
-"Convert a Python integer to a C :c:type:`unsigned short int`, without "
+"Convert a Python integer to a C :c:expr:`unsigned short int`, without "
"overflow checking."
msgstr ""
"Convertit un entier Python en un :c:type:`unsigned short int` C, sans "
"contrôle de débordement."
-#: c-api/arg.rst:587
+#: c-api/arg.rst:603
msgid "``i`` (:class:`int`) [int]"
msgstr "``i`` (:class:`int`) [``int``]"
-#: c-api/arg.rst:269
-msgid "Convert a Python integer to a plain C :c:type:`int`."
+#: c-api/arg.rst:285
+#, fuzzy
+msgid "Convert a Python integer to a plain C :c:expr:`int`."
msgstr "Convertit un entier Python en un :c:type:`int` C."
-#: c-api/arg.rst:605
+#: c-api/arg.rst:621
msgid "``I`` (:class:`int`) [unsigned int]"
msgstr "``I`` (:class:`int`) [``unsigned int``]"
-#: c-api/arg.rst:272
+#: c-api/arg.rst:288
+#, fuzzy
msgid ""
-"Convert a Python integer to a C :c:type:`unsigned int`, without overflow "
+"Convert a Python integer to a C :c:expr:`unsigned int`, without overflow "
"checking."
msgstr ""
"Convertit un entier Python en un :c:type:`unsigned int` C, sans contrôle de "
"le débordement."
-#: c-api/arg.rst:596
+#: c-api/arg.rst:612
msgid "``l`` (:class:`int`) [long int]"
msgstr "``l`` (:class:`int`) [``long int``]"
-#: c-api/arg.rst:276
-msgid "Convert a Python integer to a C :c:type:`long int`."
+#: c-api/arg.rst:292
+#, fuzzy
+msgid "Convert a Python integer to a C :c:expr:`long int`."
msgstr "Convertit un entier Python en un :c:type:`long int`."
-#: c-api/arg.rst:608
+#: c-api/arg.rst:624
msgid "``k`` (:class:`int`) [unsigned long]"
msgstr "``k`` (:class:`int`) [``unsigned long``]"
-#: c-api/arg.rst:279
+#: c-api/arg.rst:295
+#, fuzzy
msgid ""
-"Convert a Python integer to a C :c:type:`unsigned long` without overflow "
+"Convert a Python integer to a C :c:expr:`unsigned long` without overflow "
"checking."
msgstr ""
"Convertit un entier Python en un :c:type:`unsigned long` C sans en vérifier "
"le débordement."
-#: c-api/arg.rst:611
+#: c-api/arg.rst:627
msgid "``L`` (:class:`int`) [long long]"
msgstr "``L`` (:class:`int`) [``long long``]"
-#: c-api/arg.rst:283
+#: c-api/arg.rst:299
#, fuzzy
-msgid "Convert a Python integer to a C :c:type:`long long`."
+msgid "Convert a Python integer to a C :c:expr:`long long`."
msgstr "Convertit un entier Python en un :c:type:`long int`."
-#: c-api/arg.rst:614
+#: c-api/arg.rst:630
msgid "``K`` (:class:`int`) [unsigned long long]"
msgstr "``K`` (:class:`int`) [``unsigned long long``]"
-#: c-api/arg.rst:286
+#: c-api/arg.rst:302
#, fuzzy
msgid ""
-"Convert a Python integer to a C :c:type:`unsigned long long` without "
+"Convert a Python integer to a C :c:expr:`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."
-#: c-api/arg.rst:617
-msgid "``n`` (:class:`int`) [Py_ssize_t]"
+#: c-api/arg.rst:633
+#, fuzzy
+msgid "``n`` (:class:`int`) [:c:type:`Py_ssize_t`]"
msgstr "``n`` (:class:`int`) [``Py_ssize_t``]"
-#: c-api/arg.rst:290
+#: c-api/arg.rst:306
msgid "Convert a Python integer to a C :c:type:`Py_ssize_t`."
msgstr "Convertit un entier Python en un :c:type:`Py_ssize_t`."
-#: c-api/arg.rst:297
+#: c-api/arg.rst:313
msgid "``c`` (:class:`bytes` or :class:`bytearray` of length 1) [char]"
msgstr "``c`` (:class:`bytes` ou :class:`bytearray` de longueur 1) [``char``]"
-#: c-api/arg.rst:293
+#: c-api/arg.rst:309
+#, fuzzy
msgid ""
"Convert a Python byte, represented as a :class:`bytes` or :class:`bytearray` "
-"object of length 1, to a C :c:type:`char`."
+"object of length 1, to a C :c:expr:`char`."
msgstr ""
"Convertit un *byte* Python, représenté comme un objet :class:`bytes` ou :"
"class:`bytearray` de longueur 1, en un :c:type:`char` C."
-#: c-api/arg.rst:296
+#: c-api/arg.rst:312
msgid "Allow :class:`bytearray` objects."
msgstr ""
-#: c-api/arg.rst:625
+#: c-api/arg.rst:641
msgid "``C`` (:class:`str` of length 1) [int]"
msgstr "``C`` (:class:`str` de longueur 1) [``int``]"
-#: c-api/arg.rst:300
+#: c-api/arg.rst:316
+#, fuzzy
msgid ""
"Convert a Python character, represented as a :class:`str` object of length "
-"1, to a C :c:type:`int`."
+"1, to a C :c:expr:`int`."
msgstr ""
"Convertit un caractère Python, représenté comme un objet :class:`str` de "
"longueur 1, en un :c:type:`int` C."
-#: c-api/arg.rst:631
+#: c-api/arg.rst:647
msgid "``f`` (:class:`float`) [float]"
msgstr "``f`` (:class:`float`) [``float``]"
-#: c-api/arg.rst:304
-msgid "Convert a Python floating point number to a C :c:type:`float`."
+#: c-api/arg.rst:320
+#, fuzzy
+msgid "Convert a Python floating point number to a C :c:expr:`float`."
msgstr "Convertit un nombre flottant Python vers un :c:type:`float`."
-#: c-api/arg.rst:628
+#: c-api/arg.rst:644
msgid "``d`` (:class:`float`) [double]"
msgstr "``d`` (:class:`float`) [``double``]"
-#: c-api/arg.rst:307
-msgid "Convert a Python floating point number to a C :c:type:`double`."
+#: c-api/arg.rst:323
+#, fuzzy
+msgid "Convert a Python floating point number to a C :c:expr:`double`."
msgstr "Convertit un nombre flottant Python vers un :c:type:`double` C."
-#: c-api/arg.rst:310
+#: c-api/arg.rst:326
msgid "``D`` (:class:`complex`) [Py_complex]"
msgstr "``D`` (:class:`complex`) [``Py_complex``]"
-#: c-api/arg.rst:310
+#: c-api/arg.rst:326
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."
-#: c-api/arg.rst:313
+#: c-api/arg.rst:329
msgid "Other objects"
msgstr "Autres objets"
-#: c-api/arg.rst:642
+#: c-api/arg.rst:658
msgid "``O`` (object) [PyObject \\*]"
msgstr "``O`` (objet) [``PyObject *``]"
-#: c-api/arg.rst:316
+#: c-api/arg.rst:332
#, fuzzy
msgid ""
"Store a Python object (without any conversion) in a C object pointer. The C "
@@ -754,42 +786,42 @@ msgstr ""
"référence sur l'objet n'est pas incrémenté. Le pointeur stocké n'est pas "
"*NULL*."
-#: c-api/arg.rst:325
+#: c-api/arg.rst:341
msgid "``O!`` (object) [*typeobject*, PyObject \\*]"
msgstr "``O!`` (objet) [*typeobject*, ``PyObject *``]"
-#: c-api/arg.rst:321
+#: c-api/arg.rst:337
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:expr:`PyObject*`) into "
"which the object pointer is stored. If the Python object does not have the "
"required type, :exc:`TypeError` is raised."
msgstr ""
-#: c-api/arg.rst:656
+#: c-api/arg.rst:672
msgid "``O&`` (object) [*converter*, *anything*]"
msgstr "``O&`` (objet) [*converter*, *anything*]"
-#: c-api/arg.rst:330
+#: c-api/arg.rst:346
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:expr:`void *`. The "
"*converter* function in turn is called as follows::"
msgstr ""
-#: c-api/arg.rst:337
+#: c-api/arg.rst:353
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\\*` "
-"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."
+"expr:`void*` argument that was passed to the ``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 ""
-#: c-api/arg.rst:343
+#: c-api/arg.rst:359
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 "
@@ -798,15 +830,15 @@ msgid ""
"value as in the original call."
msgstr ""
-#: c-api/arg.rst:349
+#: c-api/arg.rst:365
msgid "``Py_CLEANUP_SUPPORTED`` was added."
msgstr "``Py_CLEANUP_SUPPORTED`` à été ajouté."
-#: c-api/arg.rst:359
+#: c-api/arg.rst:375
msgid "``p`` (:class:`bool`) [int]"
msgstr "``p`` (:class:`bool`) [``int``]"
-#: c-api/arg.rst:353
+#: c-api/arg.rst:369
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 "
@@ -815,11 +847,11 @@ msgid ""
"how Python tests values for truth."
msgstr ""
-#: c-api/arg.rst:659
+#: c-api/arg.rst:675
msgid "``(items)`` (:class:`tuple`) [*matching-items*]"
msgstr "``(items)`` (:class:`tuple`) [*matching-items*]"
-#: c-api/arg.rst:362
+#: c-api/arg.rst:378
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 "
@@ -830,7 +862,7 @@ msgstr ""
"chaque unité de format particulière dans *articles*. Les unités de formats "
"pour les séquences peuvent être imbriquées."
-#: c-api/arg.rst:366
+#: c-api/arg.rst:382
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 --- "
@@ -839,7 +871,7 @@ msgid ""
"downcasts in C --- your mileage may vary)."
msgstr ""
-#: c-api/arg.rst:372
+#: c-api/arg.rst:388
msgid ""
"A few other characters have a meaning in a format string. These may not "
"occur inside nested parentheses. They are:"
@@ -847,11 +879,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 :"
-#: c-api/arg.rst:380
+#: c-api/arg.rst:396
msgid "``|``"
msgstr "``|``"
-#: c-api/arg.rst:376
+#: c-api/arg.rst:392
msgid ""
"Indicates that the remaining arguments in the Python argument list are "
"optional. The C variables corresponding to optional arguments should be "
@@ -860,11 +892,11 @@ msgid ""
"corresponding C variable(s)."
msgstr ""
-#: c-api/arg.rst:389
+#: c-api/arg.rst:405
msgid "``$``"
msgstr "``$``"
-#: c-api/arg.rst:383
+#: c-api/arg.rst:399
msgid ""
":c:func:`PyArg_ParseTupleAndKeywords` only: Indicates that the remaining "
"arguments in the Python argument list are keyword-only. Currently, all "
@@ -872,22 +904,22 @@ msgid ""
"be specified before ``$`` in the format string."
msgstr ""
-#: c-api/arg.rst:394
+#: c-api/arg.rst:410
msgid "``:``"
msgstr ""
-#: c-api/arg.rst:392
+#: c-api/arg.rst:408
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 ""
-#: c-api/arg.rst:399
+#: c-api/arg.rst:415
msgid "``;``"
msgstr ""
-#: c-api/arg.rst:397
+#: c-api/arg.rst:413
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 ``;"
@@ -897,7 +929,7 @@ msgstr ""
"virgule est utilise comme message d'erreur *au lieu* du message d'erreur par "
"défaut. ``:`` et ``;`` sont mutuellement exclusifs."
-#: c-api/arg.rst:401
+#: c-api/arg.rst:417
msgid ""
"Note that any Python object references which are provided to the caller are "
"*borrowed* references; do not decrement their reference count!"
@@ -906,7 +938,7 @@ msgstr ""
"à l'appelant sont des références *empruntées* ; ne décrémentez pas leur "
"compteur de références !"
-#: c-api/arg.rst:404
+#: c-api/arg.rst:420
msgid ""
"Additional arguments passed to these functions must be addresses of "
"variables whose type is determined by the format string; these are used to "
@@ -923,35 +955,34 @@ msgstr ""
"devraient correspondre à ce qui est spécifié pour l'unité de format "
"correspondante."
-#: c-api/arg.rst:410
+#: c-api/arg.rst:426
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\\*` "
-"functions return true, otherwise they return false and raise an appropriate "
-"exception. When the :c:func:`PyArg_Parse\\*` functions fail due to "
-"conversion failure in one of the format units, the variables at the "
-"addresses corresponding to that and the following format units are left "
-"untouched."
+"the format must be exhausted. On success, the ``PyArg_Parse*`` functions "
+"return true, otherwise they return false and raise an appropriate exception. "
+"When the ``PyArg_Parse*`` functions fail due to conversion failure in one of "
+"the format units, the variables at the addresses corresponding to that and "
+"the following format units are left untouched."
msgstr ""
-#: c-api/arg.rst:419
+#: c-api/arg.rst:435
msgid "API Functions"
msgstr "Fonction de l'API"
-#: c-api/arg.rst:423
+#: c-api/arg.rst:439
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 ""
-#: c-api/arg.rst:430
+#: c-api/arg.rst:446
msgid ""
"Identical to :c:func:`PyArg_ParseTuple`, except that it accepts a va_list "
"rather than a variable number of arguments."
msgstr ""
-#: c-api/arg.rst:436
+#: c-api/arg.rst:452
msgid ""
"Parse the parameters of a function that takes both positional and keyword "
"parameters into local variables. The *keywords* argument is a ``NULL``-"
@@ -960,26 +991,26 @@ msgid ""
"success; on failure, it returns false and raises the appropriate exception."
msgstr ""
-#: c-api/arg.rst:443
+#: c-api/arg.rst:459
msgid ""
"Added support for :ref:`positional-only parameters `."
msgstr ""
-#: c-api/arg.rst:450
+#: c-api/arg.rst:466
msgid ""
"Identical to :c:func:`PyArg_ParseTupleAndKeywords`, except that it accepts a "
"va_list rather than a variable number of arguments."
msgstr ""
-#: c-api/arg.rst:456
+#: c-api/arg.rst:472
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 ""
-#: c-api/arg.rst:466
+#: c-api/arg.rst:482
msgid ""
"Function used to deconstruct the argument lists of \"old-style\" functions "
"--- these are functions which use the :const:`METH_OLDARGS` parameter "
@@ -990,7 +1021,7 @@ msgid ""
"continue to be used for that purpose."
msgstr ""
-#: c-api/arg.rst:477
+#: c-api/arg.rst:493
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 "
@@ -999,7 +1030,7 @@ 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 "
+"should be a pointer to a :c:expr:`PyObject*` variable; these will be filled "
"in with the values from *args*; they will contain :term:`borrowed references "
"`. The variables which correspond to optional parameters "
"not given by *args* will not be filled in; these should be initialized by "
@@ -1008,31 +1039,31 @@ msgid ""
"if there was a failure."
msgstr ""
-#: c-api/arg.rst:492
+#: c-api/arg.rst:508
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 ""
-#: c-api/arg.rst:508
+#: c-api/arg.rst:524
msgid ""
"The call to :c:func:`PyArg_UnpackTuple` in this example is entirely "
"equivalent to this call to :c:func:`PyArg_ParseTuple`::"
msgstr ""
-#: c-api/arg.rst:516
+#: c-api/arg.rst:532
msgid "Building values"
msgstr "Construction des valeurs"
-#: c-api/arg.rst:520
+#: c-api/arg.rst:536
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. "
-"Returns the value or ``NULL`` in the case of an error; an exception will be "
-"raised if ``NULL`` is returned."
+"Create a new value based on a format string similar to those accepted by the "
+"``PyArg_Parse*`` family of functions and a sequence of values. Returns the "
+"value or ``NULL`` in the case of an error; an exception will be raised if "
+"``NULL`` is returned."
msgstr ""
-#: c-api/arg.rst:525
+#: c-api/arg.rst:541
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 "
@@ -1041,7 +1072,7 @@ msgid ""
"it to return a tuple of size 0 or one, parenthesize the format string."
msgstr ""
-#: c-api/arg.rst:531
+#: c-api/arg.rst:547
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. "
@@ -1052,7 +1083,7 @@ msgid ""
"`Py_BuildValue` returns."
msgstr ""
-#: c-api/arg.rst:539
+#: c-api/arg.rst:555
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 "
@@ -1060,188 +1091,203 @@ msgid ""
"be passed."
msgstr ""
-#: c-api/arg.rst:543
+#: c-api/arg.rst:559
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 ""
-#: c-api/arg.rst:549
+#: c-api/arg.rst:565
msgid "``s`` (:class:`str` or ``None``) [const char \\*]"
msgstr "``s`` (:class:`str` ou ``None``) [``const char *``]"
-#: c-api/arg.rst:548
+#: c-api/arg.rst:564
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 ""
-#: c-api/arg.rst:554
+#: c-api/arg.rst:570
#, fuzzy
msgid ""
"``s#`` (:class:`str` or ``None``) [const char \\*, :c:type:`Py_ssize_t`]"
msgstr "``s#`` (:class:`str` ou ``None``) [``const char *``, ``int``]"
-#: c-api/arg.rst:552
+#: c-api/arg.rst:568
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 ""
-#: c-api/arg.rst:558
+#: c-api/arg.rst:574
msgid "``y`` (:class:`bytes`) [const char \\*]"
msgstr "``y`` (:class:`bytes`) [``const char *``]"
-#: c-api/arg.rst:557
+#: c-api/arg.rst:573
msgid ""
"This converts a C string to a Python :class:`bytes` object. If the C string "
"pointer is ``NULL``, ``None`` is returned."
msgstr ""
-#: c-api/arg.rst:562
+#: c-api/arg.rst:578
#, fuzzy
msgid "``y#`` (:class:`bytes`) [const char \\*, :c:type:`Py_ssize_t`]"
msgstr "``y#`` (:class:`bytes`) [``const char *, int``]"
-#: c-api/arg.rst:561
+#: c-api/arg.rst:577
msgid ""
"This converts a C string and its lengths to a Python object. If the C "
"string pointer is ``NULL``, ``None`` is returned."
msgstr ""
-#: c-api/arg.rst:581
+#: c-api/arg.rst:597
msgid "Same as ``s``."
msgstr ""
-#: c-api/arg.rst:568
+#: c-api/arg.rst:584
#, fuzzy
msgid ""
"``z#`` (:class:`str` or ``None``) [const char \\*, :c:type:`Py_ssize_t`]"
msgstr "``z#`` (:class:`str` ou ``None``) [``const char *``, ``int``]"
-#: c-api/arg.rst:584
+#: c-api/arg.rst:600
msgid "Same as ``s#``."
msgstr ""
-#: c-api/arg.rst:573
+#: c-api/arg.rst:589
msgid "``u`` (:class:`str`) [const wchar_t \\*]"
msgstr "``u`` (:class:`str`) [``const wchar_t *``]"
-#: c-api/arg.rst:571
+#: c-api/arg.rst:587
msgid ""
-"Convert a null-terminated :c:type:`wchar_t` buffer of Unicode (UTF-16 or "
+"Convert a null-terminated :c:expr:`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 ""
-#: c-api/arg.rst:578
+#: c-api/arg.rst:594
#, fuzzy
msgid "``u#`` (:class:`str`) [const wchar_t \\*, :c:type:`Py_ssize_t`]"
msgstr "``u#`` (:class:`str`) [``const wchar_t *``, ``int``]"
-#: c-api/arg.rst:576
+#: c-api/arg.rst:592
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 ""
-#: c-api/arg.rst:581
+#: c-api/arg.rst:597
msgid "``U`` (:class:`str` or ``None``) [const char \\*]"
msgstr "``U`` (:class:`str` ou ``None``) [``const char *``]"
-#: c-api/arg.rst:584
+#: c-api/arg.rst:600
#, fuzzy
msgid ""
"``U#`` (:class:`str` or ``None``) [const char \\*, :c:type:`Py_ssize_t`]"
msgstr "``U#`` (:class:`str` ou ``None``) [``const char *``, ``int``]"
-#: c-api/arg.rst:587
+#: c-api/arg.rst:603
#, fuzzy
-msgid "Convert a plain C :c:type:`int` to a Python integer object."
+msgid "Convert a plain C :c:expr:`int` to a Python integer object."
msgstr "Convertit un :c:type:`long int` en un *int* Python."
-#: c-api/arg.rst:590
+#: c-api/arg.rst:606
msgid "``b`` (:class:`int`) [char]"
msgstr "``b`` (:class:`int`) [``char``]"
-#: c-api/arg.rst:590
-msgid "Convert a plain C :c:type:`char` to a Python integer object."
-msgstr ""
+#: c-api/arg.rst:606
+#, fuzzy
+msgid "Convert a plain C :c:expr:`char` to a Python integer object."
+msgstr "Convertit un :c:type:`long int` en un *int* Python."
-#: c-api/arg.rst:593
-msgid "Convert a plain C :c:type:`short int` to a Python integer object."
-msgstr ""
+#: c-api/arg.rst:609
+#, fuzzy
+msgid "Convert a plain C :c:expr:`short int` to a Python integer object."
+msgstr "Convertit un :c:type:`long int` en un *int* Python."
-#: c-api/arg.rst:596
-msgid "Convert a C :c:type:`long int` to a Python integer object."
+#: c-api/arg.rst:612
+#, fuzzy
+msgid "Convert a C :c:expr:`long int` to a Python integer object."
msgstr "Convertit un :c:type:`long int` en un *int* Python."
-#: c-api/arg.rst:599
-msgid "Convert a C :c:type:`unsigned char` to a Python integer object."
-msgstr ""
+#: c-api/arg.rst:615
+#, fuzzy
+msgid "Convert a C :c:expr:`unsigned char` to a Python integer object."
+msgstr "Convertit un :c:type:`long int` en un *int* Python."
-#: c-api/arg.rst:602
-msgid "Convert a C :c:type:`unsigned short int` to a Python integer object."
-msgstr ""
+#: c-api/arg.rst:618
+#, fuzzy
+msgid "Convert a C :c:expr:`unsigned short int` to a Python integer object."
+msgstr "Convertit un :c:type:`long int` en un *int* Python."
-#: c-api/arg.rst:605
+#: c-api/arg.rst:621
#, fuzzy
-msgid "Convert a C :c:type:`unsigned int` to a Python integer object."
+msgid "Convert a C :c:expr:`unsigned int` to a Python integer object."
msgstr "Convertit un :c:type:`long int` en un *int* Python."
-#: c-api/arg.rst:608
-msgid "Convert a C :c:type:`unsigned long` to a Python integer object."
-msgstr ""
+#: c-api/arg.rst:624
+#, fuzzy
+msgid "Convert a C :c:expr:`unsigned long` to a Python integer object."
+msgstr "Convertit un :c:type:`long int` en un *int* Python."
-#: c-api/arg.rst:611
+#: c-api/arg.rst:627
#, fuzzy
-msgid "Convert a C :c:type:`long long` to a Python integer object."
+msgid "Convert a C :c:expr:`long long` to a Python integer object."
msgstr "Convertit un :c:type:`long int` en un *int* Python."
-#: c-api/arg.rst:614
-msgid "Convert a C :c:type:`unsigned long long` to a Python integer object."
-msgstr ""
+#: c-api/arg.rst:630
+#, fuzzy
+msgid "Convert a C :c:expr:`unsigned long long` to a Python integer object."
+msgstr "Convertit un :c:type:`long int` en un *int* Python."
-#: c-api/arg.rst:617
+#: c-api/arg.rst:633
msgid "Convert a C :c:type:`Py_ssize_t` to a Python integer."
msgstr ""
-#: c-api/arg.rst:621
+#: c-api/arg.rst:637
msgid "``c`` (:class:`bytes` of length 1) [char]"
msgstr "``c`` (:class:`bytes` de taille 1) [``char``]"
-#: c-api/arg.rst:620
+#: c-api/arg.rst:636
+#, fuzzy
msgid ""
-"Convert a C :c:type:`int` representing a byte to a Python :class:`bytes` "
+"Convert a C :c:expr:`int` representing a byte to a Python :class:`bytes` "
"object of length 1."
msgstr ""
+"Convertit un caractère Python, représenté comme un objet :class:`str` de "
+"longueur 1, en un :c:type:`int` C."
-#: c-api/arg.rst:624
+#: c-api/arg.rst:640
+#, fuzzy
msgid ""
-"Convert a C :c:type:`int` representing a character to Python :class:`str` "
+"Convert a C :c:expr:`int` representing a character to Python :class:`str` "
"object of length 1."
msgstr ""
+"Convertit un caractère Python, représenté comme un objet :class:`str` de "
+"longueur 1, en un :c:type:`int` C."
-#: c-api/arg.rst:628
-msgid "Convert a C :c:type:`double` to a Python floating point number."
-msgstr ""
+#: c-api/arg.rst:644
+#, fuzzy
+msgid "Convert a C :c:expr:`double` to a Python floating point number."
+msgstr "Convertit un :c:type:`long int` en un *int* Python."
-#: c-api/arg.rst:631
-msgid "Convert a C :c:type:`float` to a Python floating point number."
-msgstr ""
+#: c-api/arg.rst:647
+#, fuzzy
+msgid "Convert a C :c:expr:`float` to a Python floating point number."
+msgstr "Convertit un :c:type:`long int` en un *int* Python."
-#: c-api/arg.rst:634
+#: c-api/arg.rst:650
msgid "``D`` (:class:`complex`) [Py_complex \\*]"
msgstr "``D`` (:class:`complex`) [``Py_complex *``]"
-#: c-api/arg.rst:634
+#: c-api/arg.rst:650
msgid "Convert a C :c:type:`Py_complex` structure to a Python complex number."
msgstr ""
-#: c-api/arg.rst:637
+#: c-api/arg.rst:653
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 "
@@ -1251,72 +1297,85 @@ msgid ""
"raised yet, :exc:`SystemError` is set."
msgstr ""
-#: c-api/arg.rst:645
+#: c-api/arg.rst:661
msgid "``S`` (object) [PyObject \\*]"
msgstr "``S`` (objet) [``PyObject *``]"
-#: c-api/arg.rst:645
+#: c-api/arg.rst:661
msgid "Same as ``O``."
msgstr ""
-#: c-api/arg.rst:650
+#: c-api/arg.rst:666
msgid "``N`` (object) [PyObject \\*]"
msgstr "``N`` (objet) [``PyObject *``]"
-#: c-api/arg.rst:648
+#: c-api/arg.rst:664
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 ""
-#: c-api/arg.rst:653
+#: c-api/arg.rst:669
msgid ""
"Convert *anything* to a Python object through a *converter* function. The "
-"function is called with *anything* (which should be compatible with :c:type:"
+"function is called with *anything* (which should be compatible with :c:expr:"
"`void*`) as its argument and should return a \"new\" Python object, or "
"``NULL`` if an error occurred."
msgstr ""
-#: c-api/arg.rst:659
+#: c-api/arg.rst:675
msgid ""
"Convert a sequence of C values to a Python tuple with the same number of "
"items."
msgstr ""
-#: c-api/arg.rst:662
+#: c-api/arg.rst:678
msgid "``[items]`` (:class:`list`) [*matching-items*]"
msgstr "``[items]`` (:class:`list`) [*matching-items*]"
-#: c-api/arg.rst:662
+#: c-api/arg.rst:678
msgid ""
"Convert a sequence of C values to a Python list with the same number of "
"items."
msgstr ""
-#: c-api/arg.rst:667
+#: c-api/arg.rst:683
msgid "``{items}`` (:class:`dict`) [*matching-items*]"
msgstr "``{items}`` (:class:`dict`) [*matching-items*]"
-#: c-api/arg.rst:665
+#: c-api/arg.rst:681
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 ""
-#: c-api/arg.rst:669
+#: c-api/arg.rst:685
msgid ""
"If there is an error in the format string, the :exc:`SystemError` exception "
"is set and ``NULL`` returned."
msgstr ""
-#: c-api/arg.rst:674
+#: c-api/arg.rst:690
msgid ""
"Identical to :c:func:`Py_BuildValue`, except that it accepts a va_list "
"rather than a variable number of arguments."
msgstr ""
+#~ 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`."
+
#~ 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 "
diff --git a/c-api/buffer.po b/c-api/buffer.po
index 2fb3f31a36..dc4feeb0e1 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: 2020-10-01 16:00+0200\n"
+"POT-Creation-Date: 2022-04-05 10:05+0200\n"
"PO-Revision-Date: 2021-10-27 21:13+0200\n"
"Last-Translator: David GIRAUD \n"
"Language-Team: FRENCH \n"
diff --git a/c-api/bytearray.po b/c-api/bytearray.po
index bdab1641cf..1d82668d06 100644
--- a/c-api/bytearray.po
+++ b/c-api/bytearray.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-01-27 19:26+0100\n"
+"POT-Creation-Date: 2022-04-05 10:05+0200\n"
"PO-Revision-Date: 2021-05-05 14:32+0200\n"
"Last-Translator: Mindiell \n"
"Language-Team: FRENCH \n"
@@ -65,7 +65,7 @@ msgstr ""
"Renvoie un nouvel objet *bytearray* depuis n'importe quel objet, *o*, qui "
"implémente le :ref:`protocole buffer `."
-#: c-api/bytearray.rst:50
+#: c-api/bytearray.rst:48
msgid ""
"Create a new bytearray object from *string* and its length, *len*. On "
"failure, ``NULL`` is returned."
@@ -73,20 +73,20 @@ msgstr ""
"Crée un nouvel objet ``bytearray`` à partir d'un objet *string* et de sa "
"longueur, *len*. En cas d'échec, ``NULL`` est renvoyé."
-#: c-api/bytearray.rst:56
+#: c-api/bytearray.rst:54
msgid ""
"Concat bytearrays *a* and *b* and return a new bytearray with the result."
msgstr ""
"Concatène les ``bytearrays`` *a* et *b* et renvoie un nouveau ``bytearray`` "
"avec le résultat."
-#: c-api/bytearray.rst:61
+#: c-api/bytearray.rst:59
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``."
-#: c-api/bytearray.rst:66
+#: c-api/bytearray.rst:64
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."
@@ -95,24 +95,24 @@ msgstr ""
"vérifiant que ce n'est pas un pointeur ``NULL``. Le tableau renvoyé a "
"toujours un caractère *null* rajouté."
-#: c-api/bytearray.rst:73
+#: c-api/bytearray.rst:71
msgid "Resize the internal buffer of *bytearray* to *len*."
msgstr "Redimensionne le tampon interne de *bytearray* à la taille *len*."
-#: c-api/bytearray.rst:76
+#: c-api/bytearray.rst:74
msgid "Macros"
msgstr "Macros"
-#: c-api/bytearray.rst:78
+#: c-api/bytearray.rst:76
msgid "These macros trade safety for speed and they don't check pointers."
msgstr ""
"Ces macros sont taillées pour la vitesse d'exécution et ne vérifient pas les "
"pointeurs."
-#: c-api/bytearray.rst:82
+#: c-api/bytearray.rst:80
msgid "Macro version of :c:func:`PyByteArray_AsString`."
msgstr "Version macro de :c:func:`PyByteArray_AsString`."
-#: c-api/bytearray.rst:87
+#: c-api/bytearray.rst:85
msgid "Macro version of :c:func:`PyByteArray_Size`."
msgstr "Version macro de :c:func:`PyByteArray_Size`."
diff --git a/c-api/bytes.po b/c-api/bytes.po
index a616a8e83f..deca3ebd31 100644
--- a/c-api/bytes.po
+++ b/c-api/bytes.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-01-27 19:26+0100\n"
+"POT-Creation-Date: 2022-05-21 16:37+0200\n"
"PO-Revision-Date: 2018-07-03 11:50+0200\n"
"Last-Translator: FULL NAME \n"
"Language-Team: FRENCH \n"
@@ -21,7 +21,7 @@ msgstr "Objets *bytes*"
#: c-api/bytes.rst:8
msgid ""
"These functions raise :exc:`TypeError` when expecting a bytes parameter and "
-"are called with a non-bytes parameter."
+"called with a non-bytes parameter."
msgstr ""
#: c-api/bytes.rst:16
@@ -96,7 +96,7 @@ msgstr "Commentaires"
#: c-api/bytes.rst:70
msgid ":attr:`%%`"
-msgstr ""
+msgstr ":attr:`%%`"
#: c-api/bytes.rst:70
msgid "*n/a*"
@@ -108,7 +108,7 @@ msgstr ""
#: c-api/bytes.rst:72
msgid ":attr:`%c`"
-msgstr ""
+msgstr ":attr:`%c`"
#: c-api/bytes.rst:75 c-api/bytes.rst:96
msgid "int"
@@ -120,7 +120,7 @@ msgstr ""
#: c-api/bytes.rst:75
msgid ":attr:`%d`"
-msgstr ""
+msgstr ":attr:`%d`"
#: c-api/bytes.rst:75
msgid "Equivalent to ``printf(\"%d\")``. [1]_"
@@ -128,7 +128,7 @@ msgstr ""
#: c-api/bytes.rst:78
msgid ":attr:`%u`"
-msgstr ""
+msgstr ":attr:`%u`"
#: c-api/bytes.rst:78
msgid "unsigned int"
@@ -140,7 +140,7 @@ msgstr ""
#: c-api/bytes.rst:81
msgid ":attr:`%ld`"
-msgstr ""
+msgstr ":attr:`%ld`"
#: c-api/bytes.rst:81
msgid "long"
@@ -152,7 +152,7 @@ msgstr ""
#: c-api/bytes.rst:84
msgid ":attr:`%lu`"
-msgstr ""
+msgstr ":attr:`%lu`"
#: c-api/bytes.rst:84
msgid "unsigned long"
@@ -164,10 +164,10 @@ msgstr ""
#: c-api/bytes.rst:87
msgid ":attr:`%zd`"
-msgstr ""
+msgstr ":attr:`%zd`"
#: c-api/bytes.rst:87
-msgid "Py_ssize_t"
+msgid ":c:type:`\\ Py_ssize_t`"
msgstr ""
#: c-api/bytes.rst:87
@@ -176,7 +176,7 @@ msgstr ""
#: c-api/bytes.rst:90
msgid ":attr:`%zu`"
-msgstr ""
+msgstr ":attr:`%zu`"
#: c-api/bytes.rst:90
msgid "size_t"
@@ -188,7 +188,7 @@ msgstr ""
#: c-api/bytes.rst:93
msgid ":attr:`%i`"
-msgstr ""
+msgstr ":attr:`%i`"
#: c-api/bytes.rst:93
msgid "Equivalent to ``printf(\"%i\")``. [1]_"
@@ -196,7 +196,7 @@ msgstr ""
#: c-api/bytes.rst:96
msgid ":attr:`%x`"
-msgstr ""
+msgstr ":attr:`%x`"
#: c-api/bytes.rst:96
msgid "Equivalent to ``printf(\"%x\")``. [1]_"
@@ -204,7 +204,7 @@ msgstr ""
#: c-api/bytes.rst:99
msgid ":attr:`%s`"
-msgstr ""
+msgstr ":attr:`%s`"
#: c-api/bytes.rst:99
msgid "const char\\*"
@@ -216,7 +216,7 @@ msgstr ""
#: c-api/bytes.rst:102
msgid ":attr:`%p`"
-msgstr ""
+msgstr ":attr:`%p`"
#: c-api/bytes.rst:102
msgid "const void\\*"
@@ -224,9 +224,9 @@ msgstr ""
#: 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 ""
#: c-api/bytes.rst:111
@@ -330,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/call.po b/c-api/call.po
index a02a8e1a3b..37f5609e90 100644
--- a/c-api/call.po
+++ b/c-api/call.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-10-21 15:04+0200\n"
+"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2020-07-20 15:07+0200\n"
"Last-Translator: FULL NAME \n"
"Language-Team: FRENCH \n"
@@ -49,8 +49,8 @@ msgstr ""
#: c-api/call.rst:29
msgid ""
-"To call an object, use :c:func:`PyObject_Call` or other :ref:`call API `."
+"To call an object, use :c:func:`PyObject_Call` or another :ref:`call API "
+"`."
msgstr ""
#: c-api/call.rst:36
@@ -209,12 +209,7 @@ msgid ""
"future extensions."
msgstr ""
-#: c-api/call.rst:161 c-api/call.rst:259 c-api/call.rst:360 c-api/call.rst:391
-#: c-api/call.rst:413
-msgid "This function is not part of the :ref:`limited API `."
-msgstr ""
-
-#: c-api/call.rst:153
+#: c-api/call.rst:151
msgid ""
"If *op* does not support the vectorcall protocol (either because the type "
"does not or because the specific instance does not), return *NULL*. "
@@ -222,19 +217,19 @@ msgid ""
"function never raises an exception."
msgstr ""
-#: c-api/call.rst:158
+#: c-api/call.rst:156
msgid ""
"This is mostly useful to check whether or not *op* supports vectorcall, "
"which can be done by checking ``PyVectorcall_Function(op) != NULL``."
msgstr ""
-#: c-api/call.rst:167
+#: c-api/call.rst:163
msgid ""
"Call *callable*'s :c:type:`vectorcallfunc` with positional and keyword "
"arguments given in a tuple and dict, respectively."
msgstr ""
-#: c-api/call.rst:170
+#: c-api/call.rst:166
msgid ""
"This is a specialized function, intended to be put in the :c:member:"
"`~PyTypeObject.tp_call` slot or be used in an implementation of ``tp_call``. "
@@ -242,11 +237,11 @@ msgid ""
"not fall back to ``tp_call``."
msgstr ""
-#: c-api/call.rst:183
+#: c-api/call.rst:177
msgid "Object Calling API"
msgstr ""
-#: c-api/call.rst:185
+#: c-api/call.rst:179
msgid ""
"Various functions are available for calling a Python object. Each converts "
"its arguments to a convention supported by the called object – either "
@@ -254,130 +249,130 @@ msgid ""
"pick one that best fits the format of data you have available."
msgstr ""
-#: c-api/call.rst:191
+#: c-api/call.rst:185
msgid ""
"The following table summarizes the available functions; please see "
"individual documentation for details."
msgstr ""
-#: c-api/call.rst:195
+#: c-api/call.rst:189
msgid "Function"
msgstr "Fonction"
-#: c-api/call.rst:195
+#: c-api/call.rst:189
msgid "callable"
-msgstr ""
+msgstr "appelable (*callable*)"
-#: c-api/call.rst:195
+#: c-api/call.rst:189
msgid "args"
msgstr ""
-#: c-api/call.rst:195
+#: c-api/call.rst:189
msgid "kwargs"
msgstr ""
-#: c-api/call.rst:197
+#: c-api/call.rst:191
msgid ":c:func:`PyObject_Call`"
msgstr ""
-#: c-api/call.rst:199 c-api/call.rst:203 c-api/call.rst:209 c-api/call.rst:219
+#: c-api/call.rst:193 c-api/call.rst:197 c-api/call.rst:203 c-api/call.rst:213
msgid "``PyObject *``"
msgstr ""
-#: c-api/call.rst:197
+#: c-api/call.rst:191
msgid "tuple"
msgstr ""
-#: c-api/call.rst:219
+#: c-api/call.rst:213
msgid "dict/``NULL``"
msgstr ""
-#: c-api/call.rst:199
+#: c-api/call.rst:193
msgid ":c:func:`PyObject_CallNoArgs`"
msgstr ""
-#: c-api/call.rst:201 c-api/call.rst:205 c-api/call.rst:209 c-api/call.rst:213
-#: c-api/call.rst:215
+#: c-api/call.rst:195 c-api/call.rst:199 c-api/call.rst:203 c-api/call.rst:207
+#: c-api/call.rst:209
msgid "---"
msgstr ""
-#: c-api/call.rst:201
+#: c-api/call.rst:195
msgid ":c:func:`PyObject_CallOneArg`"
msgstr ""
-#: c-api/call.rst:215
+#: c-api/call.rst:209
msgid "1 object"
msgstr ""
-#: c-api/call.rst:203
+#: c-api/call.rst:197
msgid ":c:func:`PyObject_CallObject`"
msgstr ""
-#: c-api/call.rst:203
+#: c-api/call.rst:197
msgid "tuple/``NULL``"
msgstr ""
-#: c-api/call.rst:205
+#: c-api/call.rst:199
msgid ":c:func:`PyObject_CallFunction`"
msgstr ""
-#: c-api/call.rst:207
+#: c-api/call.rst:201
msgid "format"
msgstr "format"
-#: c-api/call.rst:207
+#: c-api/call.rst:201
msgid ":c:func:`PyObject_CallMethod`"
msgstr ""
-#: c-api/call.rst:207
+#: c-api/call.rst:201
msgid "obj + ``char*``"
msgstr ""
-#: c-api/call.rst:209
+#: c-api/call.rst:203
msgid ":c:func:`PyObject_CallFunctionObjArgs`"
msgstr ""
-#: c-api/call.rst:211
+#: c-api/call.rst:205
msgid "variadic"
msgstr ""
-#: c-api/call.rst:211
+#: c-api/call.rst:205
msgid ":c:func:`PyObject_CallMethodObjArgs`"
msgstr ""
-#: c-api/call.rst:213 c-api/call.rst:215
+#: c-api/call.rst:207 c-api/call.rst:209
msgid "obj + name"
msgstr ""
-#: c-api/call.rst:213
+#: c-api/call.rst:207
msgid ":c:func:`PyObject_CallMethodNoArgs`"
msgstr ""
-#: c-api/call.rst:215
+#: c-api/call.rst:209
msgid ":c:func:`PyObject_CallMethodOneArg`"
msgstr ""
-#: c-api/call.rst:217
+#: c-api/call.rst:211
msgid ":c:func:`PyObject_Vectorcall`"
msgstr ""
-#: c-api/call.rst:219 c-api/call.rst:221
+#: c-api/call.rst:213 c-api/call.rst:215
msgid "vectorcall"
msgstr ""
-#: c-api/call.rst:219
+#: c-api/call.rst:213
msgid ":c:func:`PyObject_VectorcallDict`"
msgstr ""
-#: c-api/call.rst:221
+#: c-api/call.rst:215
msgid ":c:func:`PyObject_VectorcallMethod`"
msgstr ""
-#: c-api/call.rst:221
+#: c-api/call.rst:215
msgid "arg + name"
msgstr ""
-#: c-api/call.rst:227
+#: c-api/call.rst:221
msgid ""
"Call a callable Python object *callable*, with arguments given by the tuple "
"*args*, and named arguments given by the dictionary *kwargs*."
@@ -386,49 +381,49 @@ msgstr ""
"le *n*-uplet *args*, et des arguments nommés donnés par le dictionnaire "
"*kwargs*."
-#: c-api/call.rst:230
+#: c-api/call.rst:224
msgid ""
"*args* must not be *NULL*; use an empty tuple if no arguments are needed. If "
"no named arguments are needed, *kwargs* can be *NULL*."
msgstr ""
-#: c-api/call.rst:245 c-api/call.rst:269 c-api/call.rst:301 c-api/call.rst:334
-#: c-api/call.rst:357 c-api/call.rst:410
+#: c-api/call.rst:239 c-api/call.rst:261 c-api/call.rst:293 c-api/call.rst:326
+#: c-api/call.rst:347 c-api/call.rst:394
msgid ""
"Return the result of the call on success, or raise an exception and return "
"*NULL* on failure."
msgstr ""
-#: c-api/call.rst:236
+#: c-api/call.rst:230
msgid ""
"This is the equivalent of the Python expression: ``callable(*args, "
"**kwargs)``."
msgstr ""
"Ceci est l'équivalent de l'expression Python : ``callable(*args, **kwargs)``."
-#: c-api/call.rst:242
+#: c-api/call.rst:236
msgid ""
"Call a callable Python object *callable* without any arguments. It is the "
"most efficient way to call a callable Python object without any argument."
msgstr ""
-#: c-api/call.rst:253
+#: c-api/call.rst:247
msgid ""
"Call a callable Python object *callable* with exactly 1 positional argument "
"*arg* and no keyword arguments."
msgstr ""
-#: c-api/call.rst:266
+#: c-api/call.rst:258
msgid ""
"Call a callable Python object *callable*, with arguments given by the tuple "
"*args*. If no arguments are needed, then *args* can be *NULL*."
msgstr ""
-#: c-api/call.rst:284
+#: c-api/call.rst:276
msgid "This is the equivalent of the Python expression: ``callable(*args)``."
msgstr "Ceci est l'équivalent de l'expression Python : ``callable(*args)``."
-#: c-api/call.rst:277
+#: c-api/call.rst:269
msgid ""
"Call a callable Python object *callable*, with a variable number of C "
"arguments. The C arguments are described using a :c:func:`Py_BuildValue` "
@@ -436,92 +431,92 @@ msgid ""
"are provided."
msgstr ""
-#: c-api/call.rst:286
+#: c-api/call.rst:278
msgid ""
-"Note that if you only pass :c:type:`PyObject *` args, :c:func:"
+"Note that if you only pass :c:expr:`PyObject *` args, :c:func:"
"`PyObject_CallFunctionObjArgs` is a faster alternative."
msgstr ""
-#: c-api/call.rst:289
+#: c-api/call.rst:281
msgid "The type of *format* was changed from ``char *``."
msgstr ""
-#: c-api/call.rst:295
+#: c-api/call.rst:287
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 ""
-#: c-api/call.rst:299
+#: c-api/call.rst:291
msgid "The format can be *NULL*, indicating that no arguments are provided."
msgstr ""
-#: c-api/call.rst:304
+#: c-api/call.rst:296
msgid ""
"This is the equivalent of the Python expression: ``obj.name(arg1, "
"arg2, ...)``."
msgstr ""
-#: c-api/call.rst:307
+#: c-api/call.rst:299
msgid ""
-"Note that if you only pass :c:type:`PyObject *` args, :c:func:"
+"Note that if you only pass :c:expr:`PyObject *` args, :c:func:"
"`PyObject_CallMethodObjArgs` is a faster alternative."
msgstr ""
-#: c-api/call.rst:310
+#: c-api/call.rst:302
msgid "The types of *name* and *format* were changed from ``char *``."
msgstr ""
-#: c-api/call.rst:316
+#: c-api/call.rst:308
msgid ""
-"Call a callable Python object *callable*, with a variable number of :c:type:"
+"Call a callable Python object *callable*, with a variable number of :c:expr:"
"`PyObject *` arguments. The arguments are provided as a variable number of "
"parameters followed by *NULL*."
msgstr ""
-#: c-api/call.rst:323
+#: c-api/call.rst:315
msgid ""
"This is the equivalent of the Python expression: ``callable(arg1, "
"arg2, ...)``."
msgstr ""
-#: c-api/call.rst:329
+#: c-api/call.rst:321
msgid ""
"Call 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:expr:`PyObject *` arguments. The arguments are provided as a "
"variable number of parameters followed by *NULL*."
msgstr ""
-#: c-api/call.rst:340
+#: c-api/call.rst:332
msgid ""
"Call a method of the Python object *obj* without arguments, where the name "
"of the method is given as a Python string object in *name*."
msgstr ""
-#: c-api/call.rst:353
+#: c-api/call.rst:343
msgid ""
"Call a method of the Python object *obj* with a single positional argument "
"*arg*, where the name of the method is given as a Python string object in "
"*name*."
msgstr ""
-#: c-api/call.rst:367
+#: c-api/call.rst:355
msgid ""
"Call a callable Python object *callable*. The arguments are the same as for :"
"c:type:`vectorcallfunc`. If *callable* supports vectorcall_, this directly "
"calls the vectorcall function stored in *callable*."
msgstr ""
-#: c-api/call.rst:381
+#: c-api/call.rst:367
msgid ""
"Call *callable* with positional arguments passed exactly as in the "
"vectorcall_ protocol, but with keyword arguments passed as a dictionary "
"*kwdict*. The *args* array contains only the positional arguments."
msgstr ""
-#: c-api/call.rst:385
+#: c-api/call.rst:371
msgid ""
"Regardless of which protocol is used internally, a conversion of arguments "
"needs to be done. Therefore, this function should only be used if the caller "
@@ -529,7 +524,7 @@ msgid ""
"tuple for the positional arguments."
msgstr ""
-#: c-api/call.rst:397
+#: c-api/call.rst:381
msgid ""
"Call a method using the vectorcall calling convention. The name of the "
"method is given as a Python string *name*. The object whose method is called "
@@ -541,17 +536,17 @@ msgid ""
"`PyObject_Vectorcall`."
msgstr ""
-#: c-api/call.rst:406
+#: c-api/call.rst:390
msgid ""
"If the object has the :const:`Py_TPFLAGS_METHOD_DESCRIPTOR` feature, this "
"will call the unbound method object with the full *args* vector as arguments."
msgstr ""
-#: c-api/call.rst:419
+#: c-api/call.rst:401
msgid "Call Support API"
msgstr ""
-#: c-api/call.rst:423
+#: c-api/call.rst:405
msgid ""
"Determine if the object *o* is callable. Return ``1`` if the object is "
"callable and ``0`` otherwise. This function always succeeds."
diff --git a/c-api/capsule.po b/c-api/capsule.po
index 35f1acdf3e..ffb042ea56 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: 2021-01-27 19:26+0100\n"
+"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: FRENCH \n"
@@ -28,7 +28,7 @@ msgstr ""
#: 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:expr:`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 "
diff --git a/c-api/complex.po b/c-api/complex.po
index a06d5f3e72..68bc4bbbce 100644
--- a/c-api/complex.po
+++ b/c-api/complex.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-06-22 09:58+0200\n"
+"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2019-01-14 20:31+0100\n"
"Last-Translator: ANTOINE FOURES \n"
"Language-Team: FRENCH \n"
@@ -174,13 +174,15 @@ msgstr ""
"Renvoie un nouveau :c:type:`PyComplexObject` à partir de *real* et de *imag*."
#: c-api/complex.rst:118
-msgid "Return the real part of *op* as a C :c:type:`double`."
+#, fuzzy
+msgid "Return the real part of *op* as a C :c:expr:`double`."
msgstr ""
"Renvoie la partie réelle du nombre complexe *op* sous la forme d'un :c:type:"
"`double` en C."
#: c-api/complex.rst:123
-msgid "Return the imaginary part of *op* as a C :c:type:`double`."
+#, fuzzy
+msgid "Return the imaginary part of *op* as a C :c:expr:`double`."
msgstr ""
"Renvoie la partie imaginaire du nombre complexe *op* sous la forme d'un :c:"
"type:`double` en C."
diff --git a/c-api/conversion.po b/c-api/conversion.po
index 9da64040c2..af95d132bc 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: 2021-09-23 16:16+0200\n"
+"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: FRENCH \n"
@@ -51,58 +51,60 @@ msgid ""
"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``, "
-"``format != NULL`` and ``size < INT_MAX``."
+"``format != NULL`` and ``size < INT_MAX``. Note that this means there is no "
+"equivalent to the C99 ``n = snprintf(NULL, 0, ...)`` which would determine "
+"the necessary buffer size."
msgstr ""
-#: c-api/conversion.rst:33
+#: c-api/conversion.rst:34
msgid ""
"The return value (*rv*) for these functions should be interpreted as follows:"
msgstr ""
-#: c-api/conversion.rst:35
+#: c-api/conversion.rst:36
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]``)."
msgstr ""
-#: c-api/conversion.rst:39
+#: c-api/conversion.rst:40
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 "
"``'\\0'`` in this case."
msgstr ""
-#: c-api/conversion.rst:43
+#: c-api/conversion.rst:44
msgid ""
"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 ""
-#: c-api/conversion.rst:48
+#: c-api/conversion.rst:49
msgid ""
"The following functions provide locale-independent string to number "
"conversions."
msgstr ""
-#: c-api/conversion.rst:52
+#: c-api/conversion.rst:53
msgid ""
-"Convert a string ``s`` to a :c:type:`double`, raising a Python exception on "
+"Convert a string ``s`` to a :c:expr:`double`, raising a Python exception on "
"failure. The set of accepted strings corresponds to the set of strings "
"accepted by Python's :func:`float` constructor, except that ``s`` must not "
"have leading or trailing whitespace. The conversion is independent of the "
"current locale."
msgstr ""
-#: c-api/conversion.rst:58
+#: c-api/conversion.rst:59
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 ""
-#: c-api/conversion.rst:62
+#: c-api/conversion.rst:63
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 "
@@ -111,7 +113,7 @@ msgid ""
"ValueError, and return ``-1.0``."
msgstr ""
-#: c-api/conversion.rst:69
+#: c-api/conversion.rst:70
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 "
@@ -122,50 +124,50 @@ msgid ""
"the first character after the converted value."
msgstr ""
-#: c-api/conversion.rst:77
+#: c-api/conversion.rst:78
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 ""
-#: c-api/conversion.rst:86
+#: c-api/conversion.rst:87
msgid ""
-"Convert a :c:type:`double` *val* to a string using supplied *format_code*, "
+"Convert a :c:expr:`double` *val* to a string using supplied *format_code*, "
"*precision*, and *flags*."
msgstr ""
-#: c-api/conversion.rst:89
+#: c-api/conversion.rst:90
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 ""
-#: c-api/conversion.rst:94
+#: c-api/conversion.rst:95
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 ""
-#: c-api/conversion.rst:97
+#: c-api/conversion.rst:98
msgid ""
"``Py_DTSF_SIGN`` means to always precede the returned string with a sign "
"character, even if *val* is non-negative."
msgstr ""
-#: c-api/conversion.rst:100
+#: c-api/conversion.rst:101
msgid ""
"``Py_DTSF_ADD_DOT_0`` means to ensure that the returned string will not look "
"like an integer."
msgstr ""
-#: c-api/conversion.rst:103
+#: c-api/conversion.rst:104
msgid ""
"``Py_DTSF_ALT`` means to apply \"alternate\" formatting rules. See the "
"documentation for the :c:func:`PyOS_snprintf` ``'#'`` specifier for details."
msgstr ""
-#: c-api/conversion.rst:107
+#: c-api/conversion.rst:108
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 "
@@ -173,20 +175,20 @@ msgid ""
"respectively."
msgstr ""
-#: c-api/conversion.rst:111
+#: c-api/conversion.rst:112
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 ""
-#: c-api/conversion.rst:120
+#: c-api/conversion.rst:121
msgid ""
"Case insensitive comparison of strings. The function works almost "
"identically to :c:func:`strcmp` except that it ignores the case."
msgstr ""
-#: c-api/conversion.rst:126
+#: c-api/conversion.rst:127
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 30a33634f4..d3678e3c6f 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: 2021-09-23 16:16+0200\n"
+"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2021-12-11 11:57+0100\n"
"Last-Translator: Jules Lasne \n"
"Language-Team: FRENCH \n"
@@ -207,7 +207,7 @@ msgstr ""
"normalisé pour que le nombre de microsecondes et de secondes tombe dans la "
"plage documentée pour les objets :class:`datetime.timedelta`."
-#: c-api/datetime.rst:137
+#: c-api/datetime.rst:138
msgid ""
"Return a :class:`datetime.timezone` object with an unnamed fixed offset "
"represented by the *offset* argument."
@@ -215,7 +215,7 @@ msgstr ""
"Renvoie un objet :class:`datetime.timezone` avec un décalage anonyme fixe "
"représenté par l'argument *offset*."
-#: c-api/datetime.rst:144
+#: c-api/datetime.rst:146
msgid ""
"Return a :class:`datetime.timezone` object with a fixed offset represented "
"by the *offset* argument and with tzname *name*."
@@ -223,7 +223,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*."
-#: c-api/datetime.rst:150
+#: c-api/datetime.rst:152
#, fuzzy
msgid ""
"Macros to extract fields from date objects. The argument must be an "
@@ -236,19 +236,19 @@ msgstr ""
"`PyDateTime_DateTime`). L'argument ne doit pas être *NULL*, et le type n'est "
"pas vérifié :"
-#: c-api/datetime.rst:157
+#: c-api/datetime.rst:159
msgid "Return the year, as a positive int."
msgstr "Renvoie l'année, sous forme d'entier positif."
-#: c-api/datetime.rst:162
+#: c-api/datetime.rst:164
msgid "Return the month, as an int from 1 through 12."
msgstr "Renvoie le mois, sous forme d'entier allant de 1 à 12."
-#: c-api/datetime.rst:167
+#: c-api/datetime.rst:169
msgid "Return the day, as an int from 1 through 31."
msgstr "Renvoie le jour, sous forme d'entier allant de 1 à 31."
-#: c-api/datetime.rst:170
+#: c-api/datetime.rst:172
#, fuzzy
msgid ""
"Macros to extract fields from datetime objects. The argument must be an "
@@ -259,27 +259,32 @@ 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é :"
-#: c-api/datetime.rst:205
+#: c-api/datetime.rst:216
msgid "Return the hour, as an int from 0 through 23."
msgstr "Renvoie l'heure, sous forme d'entier allant de 0 à 23."
-#: c-api/datetime.rst:210
+#: c-api/datetime.rst:221
msgid "Return the minute, as an int from 0 through 59."
msgstr "Renvoie la minute, sous forme d'entier allant de 0 à 59."
-#: c-api/datetime.rst:215
+#: c-api/datetime.rst:226
msgid "Return the second, as an int from 0 through 59."
msgstr "Renvoie la seconde, sous forme d'entier allant de 0 à 59."
-#: c-api/datetime.rst:220
+#: c-api/datetime.rst:231
msgid "Return the microsecond, as an int from 0 through 999999."
msgstr "Renvoie la microseconde, sous forme d'entier allant de 0 à 999999."
-#: c-api/datetime.rst:224
+#: c-api/datetime.rst:236
+#, 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:243
msgid "Return the tzinfo (which may be ``None``)."
msgstr ""
-#: c-api/datetime.rst:199
+#: c-api/datetime.rst:210
#, fuzzy
msgid ""
"Macros to extract fields from time objects. The argument must be an "
@@ -290,7 +295,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é :"
-#: c-api/datetime.rst:229
+#: c-api/datetime.rst:248
#, fuzzy
msgid ""
"Macros to extract fields from time delta objects. The argument must be an "
@@ -301,26 +306,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é :"
-#: c-api/datetime.rst:235
+#: c-api/datetime.rst:254
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``."
-#: c-api/datetime.rst:242
+#: c-api/datetime.rst:261
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."
-#: c-api/datetime.rst:249
+#: c-api/datetime.rst:268
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."
-#: c-api/datetime.rst:254
+#: c-api/datetime.rst:273
msgid "Macros for the convenience of modules implementing the DB API:"
msgstr "Macros de confort pour les modules implémentant l'API DB :"
-#: c-api/datetime.rst:258
+#: c-api/datetime.rst:277
msgid ""
"Create and return a new :class:`datetime.datetime` object given an argument "
"tuple suitable for passing to :meth:`datetime.datetime.fromtimestamp()`."
@@ -328,7 +333,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()`."
-#: c-api/datetime.rst:264
+#: c-api/datetime.rst:283
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 98d4e69d0e..4ec951e3a1 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: 2021-09-23 16:16+0200\n"
+"POT-Creation-Date: 2023-03-22 22:57+0100\n"
"PO-Revision-Date: 2018-07-03 11:36+0200\n"
"Last-Translator: FULL NAME \n"
"Language-Team: FRENCH \n"
@@ -84,16 +84,17 @@ msgstr ""
#: c-api/dict.rst:75
msgid ""
"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 "
+"a :c:expr:`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 ""
#: 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. If *key* is not in the dictionary, :"
-"exc:`KeyError` is raised. Return ``0`` on success or ``-1`` on failure."
+"Remove the entry in dictionary *p* with key *key*. *key* must be :term:"
+"`hashable`; 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 ""
#: c-api/dict.rst:91
@@ -132,7 +133,7 @@ msgstr ""
#: c-api/dict.rst:120
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*`."
+"expr:`const char*`, rather than a :c:expr:`PyObject*`."
msgstr ""
#: c-api/dict.rst:123
@@ -180,7 +181,7 @@ msgid ""
"`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:"
+"reported. The parameters *pkey* and *pvalue* should either point to :c:expr:"
"`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 "
diff --git a/c-api/exceptions.po b/c-api/exceptions.po
index c4e3565fd3..533e9b28e5 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: 2021-09-23 16:16+0200\n"
+"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2018-10-04 12:24+0200\n"
"Last-Translator: Julien Palard \n"
"Language-Team: FRENCH \n"
@@ -28,8 +28,8 @@ 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 ``PyArg_*`` "
+"functions return ``1`` for success and ``0`` for failure)."
msgstr ""
#: c-api/exceptions.rst:20
@@ -219,12 +219,12 @@ msgstr ""
#: 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:"
-"`GetLastError` is used instead. It calls the Win32 function :c:func:"
-"`FormatMessage` to retrieve the Windows description of error code given by "
-"*ierr* or :c:func:`GetLastError`, then it constructs a tuple object whose "
-"first item is the *ierr* value and whose second item is the corresponding "
-"error message (gotten from :c:func:`FormatMessage`), and then calls "
+"*ierr* of ``0``, the error code returned by a call to :c:func:`GetLastError` "
+"is used instead. It calls the Win32 function :c:func:`FormatMessage` to "
+"retrieve the Windows description of error code given by *ierr* or :c:func:"
+"`GetLastError`, then it constructs a tuple object whose first item is the "
+"*ierr* value and whose second item is the corresponding error message "
+"(gotten from :c:func:`FormatMessage`), and then calls "
"``PyErr_SetObject(PyExc_WindowsError, object)``. This function always "
"returns ``NULL``."
msgstr ""
@@ -274,25 +274,31 @@ msgstr ""
#: c-api/exceptions.rst:258
msgid ""
+"Much like :c:func:`PyErr_SetImportError` but this function allows for "
+"specifying a subclass of :exc:`ImportError` to raise."
+msgstr ""
+
+#: c-api/exceptions.rst:266
+msgid ""
"Set file, line, and offset information for the current exception. If the "
"current exception is not a :exc:`SyntaxError`, then it sets additional "
"attributes, which make the exception printing subsystem think the exception "
"is a :exc:`SyntaxError`."
msgstr ""
-#: c-api/exceptions.rst:268
+#: c-api/exceptions.rst:276
msgid ""
"Like :c:func:`PyErr_SyntaxLocationObject`, but *filename* is a byte string "
"decoded from the :term:`filesystem encoding and error handler`."
msgstr ""
-#: c-api/exceptions.rst:276
+#: c-api/exceptions.rst:284
msgid ""
-"Like :c:func:`PyErr_SyntaxLocationEx`, but the col_offset parameter is "
+"Like :c:func:`PyErr_SyntaxLocationEx`, but the *col_offset* parameter is "
"omitted."
msgstr ""
-#: c-api/exceptions.rst:282
+#: c-api/exceptions.rst:290
msgid ""
"This is a shorthand for ``PyErr_SetString(PyExc_SystemError, message)``, "
"where *message* indicates that an internal operation (e.g. a Python/C API "
@@ -300,11 +306,11 @@ msgid ""
"use."
msgstr ""
-#: c-api/exceptions.rst:289
+#: c-api/exceptions.rst:297
msgid "Issuing warnings"
msgstr ""
-#: c-api/exceptions.rst:291
+#: c-api/exceptions.rst:299
msgid ""
"Use these functions to issue warnings from C code. They mirror similar "
"functions exported by the Python :mod:`warnings` module. They normally "
@@ -320,7 +326,7 @@ msgid ""
"return an error value)."
msgstr ""
-#: c-api/exceptions.rst:306
+#: c-api/exceptions.rst:314
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. "
@@ -330,7 +336,7 @@ msgid ""
"`PyErr_WarnEx`, 2 is the function above that, and so forth."
msgstr ""
-#: c-api/exceptions.rst:313
+#: c-api/exceptions.rst:321
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 "
@@ -339,65 +345,59 @@ msgid ""
"enumerated at :ref:`standardwarningcategories`."
msgstr ""
-#: c-api/exceptions.rst:319
+#: c-api/exceptions.rst:327
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 ""
-#: 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 ""
-
-#: c-api/exceptions.rst:333
+#: c-api/exceptions.rst:334
msgid ""
"Issue a warning message with explicit control over all warning attributes. "
"This is a straightforward wrapper around the Python function :func:`warnings."
-"warn_explicit`, see there for more information. The *module* and *registry* "
+"warn_explicit`; see there for more information. The *module* and *registry* "
"arguments may be set to ``NULL`` to get the default effect described there."
msgstr ""
-#: c-api/exceptions.rst:344
+#: c-api/exceptions.rst:345
msgid ""
"Similar to :c:func:`PyErr_WarnExplicitObject` except that *message* and "
"*module* are UTF-8 encoded strings, and *filename* is decoded from the :term:"
"`filesystem encoding and error handler`."
msgstr ""
-#: c-api/exceptions.rst:351
+#: c-api/exceptions.rst:352
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 ""
-#: c-api/exceptions.rst:360
+#: c-api/exceptions.rst:361
msgid ""
"Function similar to :c:func:`PyErr_WarnFormat`, but *category* is :exc:"
"`ResourceWarning` and it passes *source* to :func:`warnings.WarningMessage`."
msgstr ""
-#: c-api/exceptions.rst:367
+#: c-api/exceptions.rst:368
msgid "Querying the error indicator"
msgstr ""
-#: c-api/exceptions.rst:371
+#: c-api/exceptions.rst:372
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 "
-"``NULL``. You do not own a reference to the return value, so you do not "
-"need to :c:func:`Py_DECREF` it."
+"*type* (the first argument to the last call to one of the ``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 ""
-#: c-api/exceptions.rst:377
+#: c-api/exceptions.rst:378
msgid "The caller must hold the GIL."
msgstr ""
-#: c-api/exceptions.rst:381
+#: c-api/exceptions.rst:382
msgid ""
"Do not compare the return value to a specific exception; use :c:func:"
"`PyErr_ExceptionMatches` instead, shown below. (The comparison could easily "
@@ -405,14 +405,14 @@ msgid ""
"of a class exception, or it may be a subclass of the expected exception.)"
msgstr ""
-#: c-api/exceptions.rst:389
+#: c-api/exceptions.rst:390
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 ""
-#: c-api/exceptions.rst:396
+#: c-api/exceptions.rst:397
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 "
@@ -420,7 +420,7 @@ msgid ""
"tuple (and recursively in subtuples) are searched for a match."
msgstr ""
-#: c-api/exceptions.rst:404
+#: c-api/exceptions.rst:405
msgid ""
"Retrieve the error indicator into three variables whose addresses are "
"passed. If the error indicator is not set, set all three variables to "
@@ -429,14 +429,14 @@ msgid ""
"the type object is not."
msgstr ""
-#: c-api/exceptions.rst:411
+#: c-api/exceptions.rst:412
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 ""
-#: c-api/exceptions.rst:426
+#: c-api/exceptions.rst:427
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 "
@@ -449,14 +449,14 @@ msgid ""
"function. I warned you.)"
msgstr ""
-#: c-api/exceptions.rst:438
+#: c-api/exceptions.rst:439
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 ""
-#: c-api/exceptions.rst:445
+#: c-api/exceptions.rst:446
msgid ""
"Under certain circumstances, the values returned by :c:func:`PyErr_Fetch` "
"below can be \"unnormalized\", meaning that ``*exc`` is a class object but "
@@ -466,14 +466,14 @@ msgid ""
"improve performance."
msgstr ""
-#: c-api/exceptions.rst:453
+#: c-api/exceptions.rst:454
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 ""
-#: c-api/exceptions.rst:464
+#: c-api/exceptions.rst:465
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 "
@@ -481,7 +481,7 @@ msgid ""
"may be ``NULL``. Does not modify the exception info state."
msgstr ""
-#: c-api/exceptions.rst:471
+#: c-api/exceptions.rst:472
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 "
@@ -489,7 +489,7 @@ msgid ""
"exception state."
msgstr ""
-#: c-api/exceptions.rst:481
+#: c-api/exceptions.rst:482
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 "
@@ -498,7 +498,7 @@ msgid ""
"about the three arguments, see :c:func:`PyErr_Restore`."
msgstr ""
-#: c-api/exceptions.rst:489
+#: c-api/exceptions.rst:490
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 "
@@ -506,15 +506,15 @@ msgid ""
"state."
msgstr ""
-#: c-api/exceptions.rst:498
+#: c-api/exceptions.rst:499
msgid "Signal Handling"
msgstr "Traitement des signaux"
-#: c-api/exceptions.rst:508
+#: c-api/exceptions.rst:509
msgid "This function interacts with Python's signal handling."
msgstr ""
-#: c-api/exceptions.rst:510
+#: c-api/exceptions.rst:511
msgid ""
"If the function is called from the main thread and under the main Python "
"interpreter, it checks whether a signal has been sent to the processes and "
@@ -522,7 +522,7 @@ msgid ""
"module is supported, this can invoke a signal handler written in Python."
msgstr ""
-#: c-api/exceptions.rst:515
+#: c-api/exceptions.rst:516
msgid ""
"The function attempts to handle all pending signals, and then returns ``0``. "
"However, if a Python signal handler raises an exception, the error indicator "
@@ -531,44 +531,44 @@ msgid ""
"`PyErr_CheckSignals()` invocation)."
msgstr ""
-#: c-api/exceptions.rst:521
+#: c-api/exceptions.rst:522
msgid ""
"If the function is called from a non-main thread, or under a non-main Python "
"interpreter, it does nothing and returns ``0``."
msgstr ""
-#: c-api/exceptions.rst:524
+#: c-api/exceptions.rst:525
msgid ""
"This function can be called by long-running C code that wants to be "
"interruptible by user requests (such as by pressing Ctrl-C)."
msgstr ""
-#: c-api/exceptions.rst:528
+#: c-api/exceptions.rst:529
msgid ""
"The default Python signal handler for :const:`SIGINT` raises the :exc:"
"`KeyboardInterrupt` exception."
msgstr ""
-#: c-api/exceptions.rst:539
+#: c-api/exceptions.rst:540
msgid ""
"Simulate the effect of a :const:`SIGINT` signal arriving. This is equivalent "
"to ``PyErr_SetInterruptEx(SIGINT)``."
msgstr ""
-#: c-api/exceptions.rst:570
+#: c-api/exceptions.rst:571
msgid ""
"This function is async-signal-safe. It can be called without the :term:"
"`GIL` and from a C signal handler."
msgstr ""
-#: c-api/exceptions.rst:553
+#: c-api/exceptions.rst:554
msgid ""
"Simulate the effect of a signal arriving. The next time :c:func:"
"`PyErr_CheckSignals` is called, the Python signal handler for the given "
"signal number will be called."
msgstr ""
-#: c-api/exceptions.rst:557
+#: c-api/exceptions.rst:558
msgid ""
"This function can be called by C code that sets up its own signal handling "
"and wants Python signal handlers to be invoked as expected when an "
@@ -576,27 +576,27 @@ msgid ""
"interrupt an operation)."
msgstr ""
-#: c-api/exceptions.rst:562
+#: c-api/exceptions.rst:563
msgid ""
"If the given signal isn't handled by Python (it was set to :data:`signal."
"SIG_DFL` or :data:`signal.SIG_IGN`), it will be ignored."
msgstr ""
-#: c-api/exceptions.rst:565
+#: c-api/exceptions.rst:566
msgid ""
"If *signum* is outside of the allowed range of signal numbers, ``-1`` is "
"returned. Otherwise, ``0`` is returned. The error indicator is never "
"changed by this function."
msgstr ""
-#: c-api/exceptions.rst:578
+#: c-api/exceptions.rst:579
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 ""
-#: c-api/exceptions.rst:582
+#: c-api/exceptions.rst:583
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 "
@@ -604,15 +604,15 @@ msgid ""
"be called from the main thread."
msgstr ""
-#: c-api/exceptions.rst:587
+#: c-api/exceptions.rst:588
msgid "On Windows, the function now also supports socket handles."
msgstr ""
-#: c-api/exceptions.rst:592
+#: c-api/exceptions.rst:593
msgid "Exception Classes"
msgstr ""
-#: c-api/exceptions.rst:596
+#: c-api/exceptions.rst:597
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 "
@@ -621,7 +621,7 @@ msgid ""
"(accessible in C as :c:data:`PyExc_Exception`)."
msgstr ""
-#: c-api/exceptions.rst:602
+#: c-api/exceptions.rst:603
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 "
@@ -631,31 +631,31 @@ msgid ""
"variables and methods."
msgstr ""
-#: c-api/exceptions.rst:611
+#: c-api/exceptions.rst:612
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 ""
-#: c-api/exceptions.rst:619
+#: c-api/exceptions.rst:620
msgid "Exception Objects"
msgstr "Objets exception"
-#: c-api/exceptions.rst:623
+#: c-api/exceptions.rst:624
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 ""
-#: c-api/exceptions.rst:630
+#: c-api/exceptions.rst:631
msgid ""
"Set the traceback associated with the exception to *tb*. Use ``Py_None`` to "
"clear it."
msgstr ""
-#: c-api/exceptions.rst:636
+#: c-api/exceptions.rst:637
msgid ""
"Return the context (another exception instance during whose handling *ex* "
"was raised) associated with the exception as a new reference, as accessible "
@@ -663,127 +663,127 @@ msgid ""
"this returns ``NULL``."
msgstr ""
-#: c-api/exceptions.rst:644
+#: c-api/exceptions.rst:645
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 ""
-#: c-api/exceptions.rst:651
+#: c-api/exceptions.rst:652
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 ""
-#: c-api/exceptions.rst:658
+#: c-api/exceptions.rst:659
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 ""
-#: c-api/exceptions.rst:662
+#: c-api/exceptions.rst:663
msgid ""
":attr:`__suppress_context__` is implicitly set to ``True`` by this function."
msgstr ""
-#: c-api/exceptions.rst:668
+#: c-api/exceptions.rst:669
msgid "Unicode Exception Objects"
msgstr "Objets exception Unicode"
-#: c-api/exceptions.rst:670
+#: c-api/exceptions.rst:671
msgid ""
"The following functions are used to create and modify Unicode exceptions "
"from C."
msgstr ""
-#: c-api/exceptions.rst:674
+#: c-api/exceptions.rst:675
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 ""
-#: c-api/exceptions.rst:680
+#: c-api/exceptions.rst:681
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 ""
-#: c-api/exceptions.rst:694
+#: c-api/exceptions.rst:695
msgid "3.11"
-msgstr ""
+msgstr "3.11"
-#: c-api/exceptions.rst:686
+#: c-api/exceptions.rst:687
msgid ""
"``Py_UNICODE`` is deprecated since Python 3.3. Please migrate to "
"``PyObject_CallFunction(PyExc_UnicodeEncodeError, \"sOnns\", ...)``."
msgstr ""
-#: c-api/exceptions.rst:691
+#: c-api/exceptions.rst:692
msgid ""
"Create a :class:`UnicodeTranslateError` object with the attributes *object*, "
"*length*, *start*, *end* and *reason*. *reason* is a UTF-8 encoded string."
msgstr ""
-#: c-api/exceptions.rst:696
+#: c-api/exceptions.rst:697
msgid ""
"``Py_UNICODE`` is deprecated since Python 3.3. Please migrate to "
"``PyObject_CallFunction(PyExc_UnicodeTranslateError, \"Onns\", ...)``."
msgstr ""
-#: c-api/exceptions.rst:702
+#: c-api/exceptions.rst:703
msgid "Return the *encoding* attribute of the given exception object."
msgstr ""
-#: c-api/exceptions.rst:708
+#: c-api/exceptions.rst:709
msgid "Return the *object* attribute of the given exception object."
msgstr ""
-#: c-api/exceptions.rst:714
+#: c-api/exceptions.rst:715
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 ""
-#: c-api/exceptions.rst:722
+#: c-api/exceptions.rst:723
msgid ""
"Set the *start* attribute of the given exception object to *start*. Return "
"``0`` on success, ``-1`` on failure."
msgstr ""
-#: c-api/exceptions.rst:729
+#: c-api/exceptions.rst:730
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 ""
-#: c-api/exceptions.rst:737
+#: c-api/exceptions.rst:738
msgid ""
"Set the *end* attribute of the given exception object to *end*. Return "
"``0`` on success, ``-1`` on failure."
msgstr ""
-#: c-api/exceptions.rst:744
+#: c-api/exceptions.rst:745
msgid "Return the *reason* attribute of the given exception object."
msgstr ""
-#: c-api/exceptions.rst:750
+#: c-api/exceptions.rst:751
msgid ""
"Set the *reason* attribute of the given exception object to *reason*. "
"Return ``0`` on success, ``-1`` on failure."
msgstr ""
-#: c-api/exceptions.rst:757
+#: c-api/exceptions.rst:758
msgid "Recursion Control"
msgstr "Contrôle de la récursion"
-#: c-api/exceptions.rst:759
+#: c-api/exceptions.rst:760
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 "
@@ -793,42 +793,42 @@ msgid ""
"recursion handling."
msgstr ""
-#: c-api/exceptions.rst:768
+#: c-api/exceptions.rst:769
msgid "Marks a point where a recursive C-level call is about to be performed."
msgstr ""
-#: c-api/exceptions.rst:770
+#: c-api/exceptions.rst:771
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 ""
-#: c-api/exceptions.rst:774
+#: c-api/exceptions.rst:775
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 ""
-#: c-api/exceptions.rst:778
+#: c-api/exceptions.rst:779
msgid ""
"*where* should be a UTF-8 encoded string such as ``\" in instance check\"`` "
"to be concatenated to the :exc:`RecursionError` message caused by the "
"recursion depth limit."
msgstr ""
-#: c-api/exceptions.rst:790
+#: c-api/exceptions.rst:791
msgid "This function is now also available in the limited API."
msgstr ""
-#: c-api/exceptions.rst:787
+#: c-api/exceptions.rst:788
msgid ""
"Ends a :c:func:`Py_EnterRecursiveCall`. Must be called once for each "
"*successful* invocation of :c:func:`Py_EnterRecursiveCall`."
msgstr ""
-#: c-api/exceptions.rst:793
+#: c-api/exceptions.rst:794
msgid ""
"Properly implementing :c:member:`~PyTypeObject.tp_repr` for container types "
"requires special recursion handling. In addition to protecting the stack, :"
@@ -837,13 +837,13 @@ msgid ""
"Effectively, these are the C equivalent to :func:`reprlib.recursive_repr`."
msgstr ""
-#: c-api/exceptions.rst:801
+#: c-api/exceptions.rst:802
msgid ""
"Called at the beginning of the :c:member:`~PyTypeObject.tp_repr` "
"implementation to detect cycles."
msgstr ""
-#: c-api/exceptions.rst:804
+#: c-api/exceptions.rst:805
msgid ""
"If the object has already been processed, the function returns a positive "
"integer. In that case the :c:member:`~PyTypeObject.tp_repr` implementation "
@@ -851,483 +851,479 @@ msgid ""
"`dict` objects return ``{...}`` and :class:`list` objects return ``[...]``."
msgstr ""
-#: c-api/exceptions.rst:810
+#: c-api/exceptions.rst:811
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 ""
-#: c-api/exceptions.rst:814
+#: c-api/exceptions.rst:815
msgid ""
"Otherwise, the function returns zero and the :c:member:`~PyTypeObject."
"tp_repr` implementation can continue normally."
msgstr ""
-#: c-api/exceptions.rst:819
+#: c-api/exceptions.rst:820
msgid ""
"Ends a :c:func:`Py_ReprEnter`. Must be called once for each invocation of :"
"c:func:`Py_ReprEnter` that returns zero."
msgstr ""
-#: c-api/exceptions.rst:826
+#: c-api/exceptions.rst:827
msgid "Standard Exceptions"
msgstr "Exceptions standards"
-#: c-api/exceptions.rst:828
+#: c-api/exceptions.rst:829
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 "
+"c:expr:`PyObject*`; they are all class objects. For completeness, here are "
"all the variables:"
msgstr ""
-#: c-api/exceptions.rst:1022 c-api/exceptions.rst:1067
+#: c-api/exceptions.rst:1023 c-api/exceptions.rst:1068
msgid "C Name"
msgstr "Nom C"
-#: c-api/exceptions.rst:1067
+#: c-api/exceptions.rst:1068
msgid "Python Name"
msgstr "Nom Python"
-#: c-api/exceptions.rst:1022 c-api/exceptions.rst:1067
+#: c-api/exceptions.rst:1023 c-api/exceptions.rst:1068
msgid "Notes"
msgstr "Notes"
-#: c-api/exceptions.rst:891
+#: c-api/exceptions.rst:892
msgid ":c:data:`PyExc_BaseException`"
msgstr ":c:data:`PyExc_BaseException`"
-#: c-api/exceptions.rst:891
+#: c-api/exceptions.rst:892
msgid ":exc:`BaseException`"
msgstr ":exc:`BaseException`"
-#: c-api/exceptions.rst:893 c-api/exceptions.rst:941 c-api/exceptions.rst:1069
-msgid "\\(1)"
-msgstr "\\(1)"
+#: c-api/exceptions.rst:894 c-api/exceptions.rst:942 c-api/exceptions.rst:954
+msgid "[1]_"
+msgstr ""
-#: c-api/exceptions.rst:893
+#: c-api/exceptions.rst:894
msgid ":c:data:`PyExc_Exception`"
msgstr ":c:data:`PyExc_Exception`"
-#: c-api/exceptions.rst:893
+#: c-api/exceptions.rst:894
msgid ":exc:`Exception`"
msgstr ":exc:`Exception`"
-#: c-api/exceptions.rst:895
+#: c-api/exceptions.rst:896
msgid ":c:data:`PyExc_ArithmeticError`"
msgstr ":c:data:`PyExc_ArithmeticError`"
-#: c-api/exceptions.rst:895
+#: c-api/exceptions.rst:896
msgid ":exc:`ArithmeticError`"
msgstr ":exc:`ArithmeticError`"
-#: c-api/exceptions.rst:897
+#: c-api/exceptions.rst:898
msgid ":c:data:`PyExc_AssertionError`"
msgstr ":c:data:`PyExc_AssertionError`"
-#: c-api/exceptions.rst:897
+#: c-api/exceptions.rst:898
msgid ":exc:`AssertionError`"
msgstr ":exc:`AssertionError`"
-#: c-api/exceptions.rst:899
+#: c-api/exceptions.rst:900
msgid ":c:data:`PyExc_AttributeError`"
msgstr ":c:data:`PyExc_AttributeError`"
-#: c-api/exceptions.rst:899
+#: c-api/exceptions.rst:900
msgid ":exc:`AttributeError`"
msgstr ":exc:`AttributeError`"
-#: c-api/exceptions.rst:901
+#: c-api/exceptions.rst:902
msgid ":c:data:`PyExc_BlockingIOError`"
msgstr ":c:data:`PyExc_BlockingIOError`"
-#: c-api/exceptions.rst:901
+#: c-api/exceptions.rst:902
msgid ":exc:`BlockingIOError`"
msgstr ":exc:`BlockingIOError`"
-#: c-api/exceptions.rst:903
+#: c-api/exceptions.rst:904
msgid ":c:data:`PyExc_BrokenPipeError`"
msgstr ":c:data:`PyExc_BrokenPipeError`"
-#: c-api/exceptions.rst:903
+#: c-api/exceptions.rst:904
msgid ":exc:`BrokenPipeError`"
msgstr ":exc:`BrokenPipeError`"
-#: c-api/exceptions.rst:905
+#: c-api/exceptions.rst:906
msgid ":c:data:`PyExc_BufferError`"
msgstr ":c:data:`PyExc_BufferError`"
-#: c-api/exceptions.rst:905
+#: c-api/exceptions.rst:906
msgid ":exc:`BufferError`"
msgstr ":exc:`BufferError`"
-#: c-api/exceptions.rst:907
+#: c-api/exceptions.rst:908
msgid ":c:data:`PyExc_ChildProcessError`"
msgstr ":c:data:`PyExc_ChildProcessError`"
-#: c-api/exceptions.rst:907
+#: c-api/exceptions.rst:908
msgid ":exc:`ChildProcessError`"
msgstr ":exc:`ChildProcessError`"
-#: c-api/exceptions.rst:909
+#: c-api/exceptions.rst:910
msgid ":c:data:`PyExc_ConnectionAbortedError`"
msgstr ":c:data:`PyExc_ConnectionAbortedError`"
-#: c-api/exceptions.rst:909
+#: c-api/exceptions.rst:910
msgid ":exc:`ConnectionAbortedError`"
msgstr ":exc:`ConnectionAbortedError`"
-#: c-api/exceptions.rst:911
+#: c-api/exceptions.rst:912
msgid ":c:data:`PyExc_ConnectionError`"
msgstr ":c:data:`PyExc_ConnectionError`"
-#: c-api/exceptions.rst:911
+#: c-api/exceptions.rst:912
msgid ":exc:`ConnectionError`"
msgstr ":exc:`ConnectionError`"
-#: c-api/exceptions.rst:913
+#: c-api/exceptions.rst:914
msgid ":c:data:`PyExc_ConnectionRefusedError`"
msgstr ":c:data:`PyExc_ConnectionRefusedError`"
-#: c-api/exceptions.rst:913
+#: c-api/exceptions.rst:914
msgid ":exc:`ConnectionRefusedError`"
msgstr ":exc:`ConnectionRefusedError`"
-#: c-api/exceptions.rst:915
+#: c-api/exceptions.rst:916
msgid ":c:data:`PyExc_ConnectionResetError`"
msgstr ":c:data:`PyExc_ConnectionResetError`"
-#: c-api/exceptions.rst:915
+#: c-api/exceptions.rst:916
msgid ":exc:`ConnectionResetError`"
msgstr ":exc:`ConnectionResetError`"
-#: c-api/exceptions.rst:917
+#: c-api/exceptions.rst:918
msgid ":c:data:`PyExc_EOFError`"
msgstr ":c:data:`PyExc_EOFError`"
-#: c-api/exceptions.rst:917
+#: c-api/exceptions.rst:918
msgid ":exc:`EOFError`"
msgstr ":exc:`EOFError`"
-#: c-api/exceptions.rst:919
+#: c-api/exceptions.rst:920
msgid ":c:data:`PyExc_FileExistsError`"
msgstr ":c:data:`PyExc_FileExistsError`"
-#: c-api/exceptions.rst:919
+#: c-api/exceptions.rst:920
msgid ":exc:`FileExistsError`"
msgstr ":exc:`FileExistsError`"
-#: c-api/exceptions.rst:921
+#: c-api/exceptions.rst:922
msgid ":c:data:`PyExc_FileNotFoundError`"
msgstr ":c:data:`PyExc_FloatingPointError`"
-#: c-api/exceptions.rst:921
+#: c-api/exceptions.rst:922
msgid ":exc:`FileNotFoundError`"
msgstr ":exc:`FileNotFoundError`"
-#: c-api/exceptions.rst:923
+#: c-api/exceptions.rst:924
msgid ":c:data:`PyExc_FloatingPointError`"
msgstr ":c:data:`PyExc_FloatingPointError`"
-#: c-api/exceptions.rst:923
+#: c-api/exceptions.rst:924
msgid ":exc:`FloatingPointError`"
msgstr ":exc:`FloatingPointError`"
-#: c-api/exceptions.rst:925
+#: c-api/exceptions.rst:926
msgid ":c:data:`PyExc_GeneratorExit`"
msgstr ":c:data:`PyExc_GeneratorExit`"
-#: c-api/exceptions.rst:925
+#: c-api/exceptions.rst:926
msgid ":exc:`GeneratorExit`"
msgstr ":exc:`GeneratorExit`"
-#: c-api/exceptions.rst:927
+#: c-api/exceptions.rst:928
msgid ":c:data:`PyExc_ImportError`"
msgstr ":c:data:`PyExc_ImportError`"
-#: c-api/exceptions.rst:927
+#: c-api/exceptions.rst:928
msgid ":exc:`ImportError`"
msgstr ":exc:`ImportError`"
-#: c-api/exceptions.rst:929
+#: c-api/exceptions.rst:930
msgid ":c:data:`PyExc_IndentationError`"
msgstr ":c:data:`PyExc_IndentationError`"
-#: c-api/exceptions.rst:929
+#: c-api/exceptions.rst:930
msgid ":exc:`IndentationError`"
msgstr ":exc:`IndentationError`"
-#: c-api/exceptions.rst:931
+#: c-api/exceptions.rst:932
msgid ":c:data:`PyExc_IndexError`"
msgstr ":c:data:`PyExc_IndexError`"
-#: c-api/exceptions.rst:931
+#: c-api/exceptions.rst:932
msgid ":exc:`IndexError`"
msgstr ":exc:`IndexError`"
-#: c-api/exceptions.rst:933
+#: c-api/exceptions.rst:934
msgid ":c:data:`PyExc_InterruptedError`"
msgstr ":c:data:`PyExc_InterruptedError`"
-#: c-api/exceptions.rst:933
+#: c-api/exceptions.rst:934
msgid ":exc:`InterruptedError`"
msgstr ":exc:`InterruptedError`"
-#: c-api/exceptions.rst:935
+#: c-api/exceptions.rst:936
msgid ":c:data:`PyExc_IsADirectoryError`"
msgstr ":c:data:`PyExc_IsADirectoryError`"
-#: c-api/exceptions.rst:935
+#: c-api/exceptions.rst:936
msgid ":exc:`IsADirectoryError`"
msgstr ":exc:`IsADirectoryError`"
-#: c-api/exceptions.rst:937
+#: c-api/exceptions.rst:938
msgid ":c:data:`PyExc_KeyError`"
msgstr ":c:data:`PyExc_KeyError`"
-#: c-api/exceptions.rst:937
+#: c-api/exceptions.rst:938
msgid ":exc:`KeyError`"
msgstr ":exc:`KeyError`"
-#: c-api/exceptions.rst:939
+#: c-api/exceptions.rst:940
msgid ":c:data:`PyExc_KeyboardInterrupt`"
msgstr ":c:data:`PyExc_KeyboardInterrupt`"
-#: c-api/exceptions.rst:939
+#: c-api/exceptions.rst:940
msgid ":exc:`KeyboardInterrupt`"
msgstr ":exc:`KeyboardInterrupt`"
-#: c-api/exceptions.rst:941
+#: c-api/exceptions.rst:942
msgid ":c:data:`PyExc_LookupError`"
msgstr ":c:data:`PyExc_LookupError`"
-#: c-api/exceptions.rst:941
+#: c-api/exceptions.rst:942
msgid ":exc:`LookupError`"
msgstr ":exc:`LookupError`"
-#: c-api/exceptions.rst:943
+#: c-api/exceptions.rst:944
msgid ":c:data:`PyExc_MemoryError`"
msgstr ":c:data:`PyExc_MemoryError`"
-#: c-api/exceptions.rst:943
+#: c-api/exceptions.rst:944
msgid ":exc:`MemoryError`"
msgstr ":exc:`MemoryError`"
-#: c-api/exceptions.rst:945
+#: c-api/exceptions.rst:946
#, fuzzy
msgid ":c:data:`PyExc_ModuleNotFoundError`"
msgstr ":c:data:`PyExc_ModuleNotFoundError`."
-#: c-api/exceptions.rst:945
+#: c-api/exceptions.rst:946
msgid ":exc:`ModuleNotFoundError`"
-msgstr ""
+msgstr ":exc:`ModuleNotFoundError`"
-#: c-api/exceptions.rst:947
+#: c-api/exceptions.rst:948
msgid ":c:data:`PyExc_NameError`"
msgstr ":c:data:`PyExc_NameError`"
-#: c-api/exceptions.rst:947
+#: c-api/exceptions.rst:948
msgid ":exc:`NameError`"
msgstr ":exc:`NameError`"
-#: c-api/exceptions.rst:949
+#: c-api/exceptions.rst:950
msgid ":c:data:`PyExc_NotADirectoryError`"
msgstr ":c:data:`PyExc_NotADirectoryError`"
-#: c-api/exceptions.rst:949
+#: c-api/exceptions.rst:950
msgid ":exc:`NotADirectoryError`"
msgstr ":exc:`NotADirectoryError`"
-#: c-api/exceptions.rst:951
+#: c-api/exceptions.rst:952
msgid ":c:data:`PyExc_NotImplementedError`"
msgstr ":c:data:`PyExc_NotImplementedError`"
-#: c-api/exceptions.rst:951
+#: c-api/exceptions.rst:952
msgid ":exc:`NotImplementedError`"
msgstr ":exc:`NotImplementedError`"
-#: c-api/exceptions.rst:953
+#: c-api/exceptions.rst:954
msgid ":c:data:`PyExc_OSError`"
msgstr ":c:data:`PyExc_OSError`"
-#: c-api/exceptions.rst:953
+#: c-api/exceptions.rst:954
msgid ":exc:`OSError`"
msgstr ":exc:`OSError`"
-#: c-api/exceptions.rst:955
+#: c-api/exceptions.rst:956
msgid ":c:data:`PyExc_OverflowError`"
msgstr ":c:data:`PyExc_OverflowError`"
-#: c-api/exceptions.rst:955
+#: c-api/exceptions.rst:956
msgid ":exc:`OverflowError`"
msgstr ":exc:`OverflowError`"
-#: c-api/exceptions.rst:957
+#: c-api/exceptions.rst:958
msgid ":c:data:`PyExc_PermissionError`"
msgstr ":c:data:`PyExc_PermissionError`"
-#: c-api/exceptions.rst:957
+#: c-api/exceptions.rst:958
msgid ":exc:`PermissionError`"
msgstr ":exc:`PermissionError`"
-#: c-api/exceptions.rst:959
+#: c-api/exceptions.rst:960
msgid ":c:data:`PyExc_ProcessLookupError`"
msgstr ":c:data:`PyExc_ProcessLookupError`"
-#: c-api/exceptions.rst:959
+#: c-api/exceptions.rst:960
msgid ":exc:`ProcessLookupError`"
msgstr ":exc:`ProcessLookupError`"
-#: c-api/exceptions.rst:961
+#: c-api/exceptions.rst:962
msgid ":c:data:`PyExc_RecursionError`"
msgstr ":c:data:`PyExc_ReferenceError`"
-#: c-api/exceptions.rst:961
+#: c-api/exceptions.rst:962
msgid ":exc:`RecursionError`"
-msgstr ""
+msgstr ":exc:`RecursionError`"
-#: c-api/exceptions.rst:963
+#: c-api/exceptions.rst:964
msgid ":c:data:`PyExc_ReferenceError`"
msgstr ":c:data:`PyExc_ReferenceError`"
-#: c-api/exceptions.rst:963
+#: c-api/exceptions.rst:964
msgid ":exc:`ReferenceError`"
msgstr ":exc:`ReferenceError`"
-#: c-api/exceptions.rst:963
-msgid "\\(2)"
-msgstr "\\(2)"
-
-#: c-api/exceptions.rst:965
+#: c-api/exceptions.rst:966
msgid ":c:data:`PyExc_RuntimeError`"
msgstr ":c:data:`PyExc_RuntimeError`"
-#: c-api/exceptions.rst:965
+#: c-api/exceptions.rst:966
msgid ":exc:`RuntimeError`"
msgstr ":exc:`RuntimeError`"
-#: c-api/exceptions.rst:967
+#: c-api/exceptions.rst:968
msgid ":c:data:`PyExc_StopAsyncIteration`"
msgstr ":c:data:`PyExc_StopAsyncIteration`"
-#: c-api/exceptions.rst:967
+#: c-api/exceptions.rst:968
msgid ":exc:`StopAsyncIteration`"
msgstr ":exc:`StopAsyncIteration`"
-#: c-api/exceptions.rst:969
+#: c-api/exceptions.rst:970
msgid ":c:data:`PyExc_StopIteration`"
msgstr ":c:data:`PyExc_StopIteration`"
-#: c-api/exceptions.rst:969
+#: c-api/exceptions.rst:970
msgid ":exc:`StopIteration`"
msgstr ":exc:`StopIteration`"
-#: c-api/exceptions.rst:971
+#: c-api/exceptions.rst:972
msgid ":c:data:`PyExc_SyntaxError`"
msgstr ":c:data:`PyExc_SyntaxError`"
-#: c-api/exceptions.rst:971
+#: c-api/exceptions.rst:972
msgid ":exc:`SyntaxError`"
msgstr ":exc:`SyntaxError`"
-#: c-api/exceptions.rst:973
+#: c-api/exceptions.rst:974
msgid ":c:data:`PyExc_SystemError`"
msgstr ":c:data:`PyExc_SystemError`"
-#: c-api/exceptions.rst:973
+#: c-api/exceptions.rst:974
msgid ":exc:`SystemError`"
msgstr ":exc:`SystemError`"
-#: c-api/exceptions.rst:975
+#: c-api/exceptions.rst:976
msgid ":c:data:`PyExc_SystemExit`"
msgstr ":c:data:`PyExc_SystemExit`"
-#: c-api/exceptions.rst:975
+#: c-api/exceptions.rst:976
msgid ":exc:`SystemExit`"
msgstr ":exc:`SystemExit`"
-#: c-api/exceptions.rst:977
+#: c-api/exceptions.rst:978
msgid ":c:data:`PyExc_TabError`"
msgstr ":c:data:`PyExc_TabError`"
-#: c-api/exceptions.rst:977
+#: c-api/exceptions.rst:978
msgid ":exc:`TabError`"
msgstr ":exc:`TabError`"
-#: c-api/exceptions.rst:979
+#: c-api/exceptions.rst:980
msgid ":c:data:`PyExc_TimeoutError`"
msgstr ":c:data:`PyExc_ImportError`"
-#: c-api/exceptions.rst:979
+#: c-api/exceptions.rst:980
msgid ":exc:`TimeoutError`"
msgstr ":exc:`TimeoutError`"
-#: c-api/exceptions.rst:981
+#: c-api/exceptions.rst:982
msgid ":c:data:`PyExc_TypeError`"
msgstr ":c:data:`PyExc_TypeError`"
-#: c-api/exceptions.rst:981
+#: c-api/exceptions.rst:982
msgid ":exc:`TypeError`"
msgstr ":exc:`TypeError`"
-#: c-api/exceptions.rst:983
+#: c-api/exceptions.rst:984
msgid ":c:data:`PyExc_UnboundLocalError`"
msgstr ":c:data:`PyExc_UnboundLocalError`"
-#: c-api/exceptions.rst:983
+#: c-api/exceptions.rst:984
msgid ":exc:`UnboundLocalError`"
msgstr ":exc:`UnboundLocalError`"
-#: c-api/exceptions.rst:985
+#: c-api/exceptions.rst:986
msgid ":c:data:`PyExc_UnicodeDecodeError`"
msgstr ":c:data:`PyExc_UnicodeDecodeError`"
-#: c-api/exceptions.rst:985
+#: c-api/exceptions.rst:986
msgid ":exc:`UnicodeDecodeError`"
msgstr ":exc:`UnicodeDecodeError`"
-#: c-api/exceptions.rst:987
+#: c-api/exceptions.rst:988
msgid ":c:data:`PyExc_UnicodeEncodeError`"
msgstr ":c:data:`PyExc_UnicodeEncodeError`"
-#: c-api/exceptions.rst:987
+#: c-api/exceptions.rst:988
msgid ":exc:`UnicodeEncodeError`"
msgstr ":exc:`UnicodeEncodeError`"
-#: c-api/exceptions.rst:989
+#: c-api/exceptions.rst:990
msgid ":c:data:`PyExc_UnicodeError`"
msgstr ":c:data:`PyExc_UnicodeError`"
-#: c-api/exceptions.rst:989
+#: c-api/exceptions.rst:990
msgid ":exc:`UnicodeError`"
msgstr ":exc:`UnicodeError`"
-#: c-api/exceptions.rst:991
+#: c-api/exceptions.rst:992
msgid ":c:data:`PyExc_UnicodeTranslateError`"
msgstr ":c:data:`PyExc_UnicodeTranslateError`"
-#: c-api/exceptions.rst:991
+#: c-api/exceptions.rst:992
msgid ":exc:`UnicodeTranslateError`"
msgstr ":exc:`UnicodeTranslateError`"
-#: c-api/exceptions.rst:993
+#: c-api/exceptions.rst:994
msgid ":c:data:`PyExc_ValueError`"
msgstr ":c:data:`PyExc_ValueError`"
-#: c-api/exceptions.rst:993
+#: c-api/exceptions.rst:994
msgid ":exc:`ValueError`"
msgstr ":exc:`ValueError`"
-#: c-api/exceptions.rst:995
+#: c-api/exceptions.rst:996
msgid ":c:data:`PyExc_ZeroDivisionError`"
msgstr ":c:data:`PyExc_ZeroDivisionError`"
-#: c-api/exceptions.rst:995
+#: c-api/exceptions.rst:996
msgid ":exc:`ZeroDivisionError`"
msgstr ":exc:`ZeroDivisionError`"
-#: c-api/exceptions.rst:998
+#: c-api/exceptions.rst:999
msgid ""
":c:data:`PyExc_BlockingIOError`, :c:data:`PyExc_BrokenPipeError`, :c:data:"
"`PyExc_ChildProcessError`, :c:data:`PyExc_ConnectionError`, :c:data:"
@@ -1339,156 +1335,169 @@ msgid ""
"`PyExc_TimeoutError` were introduced following :pep:`3151`."
msgstr ""
-#: c-api/exceptions.rst:1008
+#: c-api/exceptions.rst:1009
msgid ":c:data:`PyExc_StopAsyncIteration` and :c:data:`PyExc_RecursionError`."
msgstr ":c:data:`PyExc_StopAsyncIteration` et :c:data:`PyExc_RecursionError`."
-#: c-api/exceptions.rst:1011
+#: c-api/exceptions.rst:1012
msgid ":c:data:`PyExc_ModuleNotFoundError`."
msgstr ":c:data:`PyExc_ModuleNotFoundError`."
-#: c-api/exceptions.rst:1014
+#: c-api/exceptions.rst:1015
msgid "These are compatibility aliases to :c:data:`PyExc_OSError`:"
msgstr ""
-#: c-api/exceptions.rst:1024
+#: c-api/exceptions.rst:1025
msgid ":c:data:`PyExc_EnvironmentError`"
msgstr ":c:data:`PyExc_EnvironmentError`"
-#: c-api/exceptions.rst:1026
+#: c-api/exceptions.rst:1027
msgid ":c:data:`PyExc_IOError`"
msgstr ":c:data:`PyExc_IOError`"
-#: c-api/exceptions.rst:1028
+#: c-api/exceptions.rst:1029
msgid ":c:data:`PyExc_WindowsError`"
msgstr ":c:data:`PyExc_WindowsError`"
-#: c-api/exceptions.rst:1028
-msgid "\\(3)"
-msgstr "\\(3)"
+#: c-api/exceptions.rst:1029
+msgid "[2]_"
+msgstr ""
-#: c-api/exceptions.rst:1031
+#: c-api/exceptions.rst:1032
msgid "These aliases used to be separate exception types."
msgstr ""
-#: c-api/exceptions.rst:1095
+#: c-api/exceptions.rst:1096
msgid "Notes:"
msgstr "Notes :"
-#: c-api/exceptions.rst:1037
+#: c-api/exceptions.rst:1038
msgid "This is a base class for other standard exceptions."
msgstr "C'est la classe de base pour les autres exceptions standards."
-#: c-api/exceptions.rst:1040
+#: c-api/exceptions.rst:1041
msgid ""
"Only defined on Windows; protect code that uses this by testing that the "
"preprocessor macro ``MS_WINDOWS`` is defined."
msgstr ""
-#: c-api/exceptions.rst:1046
+#: c-api/exceptions.rst:1047
msgid "Standard Warning Categories"
msgstr ""
-#: c-api/exceptions.rst:1048
+#: c-api/exceptions.rst:1049
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, "
+"the type :c:expr:`PyObject*`; they are all class objects. For completeness, "
"here are all the variables:"
msgstr ""
-#: c-api/exceptions.rst:1069
+#: c-api/exceptions.rst:1070
msgid ":c:data:`PyExc_Warning`"
msgstr ":c:data:`PyExc_Warning`"
-#: c-api/exceptions.rst:1069
+#: c-api/exceptions.rst:1070
msgid ":exc:`Warning`"
msgstr ":exc:`Warning`"
-#: c-api/exceptions.rst:1071
+#: c-api/exceptions.rst:1070
+msgid "[3]_"
+msgstr ""
+
+#: c-api/exceptions.rst:1072
msgid ":c:data:`PyExc_BytesWarning`"
msgstr ":c:data:`PyExc_BytesWarning`"
-#: c-api/exceptions.rst:1071
+#: c-api/exceptions.rst:1072
msgid ":exc:`BytesWarning`"
msgstr ":exc:`BytesWarning`"
-#: c-api/exceptions.rst:1073
+#: c-api/exceptions.rst:1074
msgid ":c:data:`PyExc_DeprecationWarning`"
msgstr ":c:data:`PyExc_DeprecationWarning`"
-#: c-api/exceptions.rst:1073
+#: c-api/exceptions.rst:1074
msgid ":exc:`DeprecationWarning`"
msgstr ":exc:`DeprecationWarning`"
-#: c-api/exceptions.rst:1075
+#: c-api/exceptions.rst:1076
msgid ":c:data:`PyExc_FutureWarning`"
msgstr ":c:data:`PyExc_FutureWarning`"
-#: c-api/exceptions.rst:1075
+#: c-api/exceptions.rst:1076
msgid ":exc:`FutureWarning`"
msgstr ":exc:`FutureWarning`"
-#: c-api/exceptions.rst:1077
+#: c-api/exceptions.rst:1078
msgid ":c:data:`PyExc_ImportWarning`"
msgstr ":c:data:`PyExc_ImportWarning`"
-#: c-api/exceptions.rst:1077
+#: c-api/exceptions.rst:1078
msgid ":exc:`ImportWarning`"
msgstr ":exc:`ImportWarning`"
-#: c-api/exceptions.rst:1079
+#: c-api/exceptions.rst:1080
msgid ":c:data:`PyExc_PendingDeprecationWarning`"
msgstr ":c:data:`PyExc_PendingDeprecationWarning`"
-#: c-api/exceptions.rst:1079
+#: c-api/exceptions.rst:1080
msgid ":exc:`PendingDeprecationWarning`"
msgstr ":exc:`PendingDeprecationWarning`"
-#: c-api/exceptions.rst:1081
+#: c-api/exceptions.rst:1082
msgid ":c:data:`PyExc_ResourceWarning`"
msgstr ":c:data:`PyExc_ResourceWarning`"
-#: c-api/exceptions.rst:1081
+#: c-api/exceptions.rst:1082
msgid ":exc:`ResourceWarning`"
msgstr ":exc:`ResourceWarning`"
-#: c-api/exceptions.rst:1083
+#: c-api/exceptions.rst:1084
msgid ":c:data:`PyExc_RuntimeWarning`"
msgstr ":c:data:`PyExc_RuntimeWarning`"
-#: c-api/exceptions.rst:1083
+#: c-api/exceptions.rst:1084
msgid ":exc:`RuntimeWarning`"
msgstr ":exc:`RuntimeWarning`"
-#: c-api/exceptions.rst:1085
+#: c-api/exceptions.rst:1086
msgid ":c:data:`PyExc_SyntaxWarning`"
msgstr ":c:data:`PyExc_SyntaxWarning`"
-#: c-api/exceptions.rst:1085
+#: c-api/exceptions.rst:1086
msgid ":exc:`SyntaxWarning`"
msgstr ":exc:`SyntaxWarning`"
-#: c-api/exceptions.rst:1087
+#: c-api/exceptions.rst:1088
msgid ":c:data:`PyExc_UnicodeWarning`"
msgstr ":c:data:`PyExc_UnicodeWarning`"
-#: c-api/exceptions.rst:1087
+#: c-api/exceptions.rst:1088
msgid ":exc:`UnicodeWarning`"
msgstr ":exc:`UnicodeWarning`"
-#: c-api/exceptions.rst:1089
+#: c-api/exceptions.rst:1090
msgid ":c:data:`PyExc_UserWarning`"
msgstr ":c:data:`PyExc_UserWarning`"
-#: c-api/exceptions.rst:1089
+#: c-api/exceptions.rst:1090
msgid ":exc:`UserWarning`"
msgstr ":exc:`UserWarning`"
-#: c-api/exceptions.rst:1092
+#: c-api/exceptions.rst:1093
msgid ":c:data:`PyExc_ResourceWarning`."
msgstr ":c:data:`PyExc_ResourceWarning`."
-#: c-api/exceptions.rst:1098
+#: c-api/exceptions.rst:1099
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 "\\(1)"
+#~ msgstr "\\(1)"
+
+#~ msgid "\\(2)"
+#~ msgstr "\\(2)"
+
+#~ msgid "\\(3)"
+#~ msgstr "\\(3)"
diff --git a/c-api/file.po b/c-api/file.po
index 37f2ce1a5a..d33211c76f 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: 2021-03-19 16:59+0100\n"
+"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2021-12-11 12:00+0100\n"
"Last-Translator: \n"
"Language-Team: FRENCH \n"
@@ -23,7 +23,7 @@ msgstr "Objets fichiers"
#, 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:expr:`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 "
@@ -76,8 +76,9 @@ msgid "Ignore *name* attribute."
msgstr "ignore l'attribut *name*"
#: c-api/file.rst:41
+#, fuzzy
msgid ""
-"Return the file descriptor associated with *p* as an :c:type:`int`. If the "
+"Return the file descriptor associated with *p* as an :c:expr:`int`. If the "
"object is an integer, its value is returned. If not, the object's :meth:"
"`~io.IOBase.fileno` method is called if it exists; the method must return an "
"integer, which is returned as the file descriptor value. Sets an exception "
@@ -120,7 +121,7 @@ msgstr ""
#: c-api/file.rst:68
msgid ""
-"The handler is a function of type :c:type:`PyObject *(\\*)(PyObject *path, "
+"The handler is a function of type :c:expr:`PyObject *(\\*)(PyObject *path, "
"void *userData)`, where *path* is guaranteed to be :c:type:`PyUnicodeObject`."
msgstr ""
diff --git a/c-api/float.po b/c-api/float.po
index 7f8321515e..cd18ca540b 100644
--- a/c-api/float.po
+++ b/c-api/float.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-01-27 19:26+0100\n"
+"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2019-01-14 15:30+0100\n"
"Last-Translator: ANTOINE FOURES \n"
"Language-Team: FRENCH \n"
@@ -72,7 +72,7 @@ msgstr ""
#: c-api/float.rst:47
#, fuzzy
msgid ""
-"Return a C :c:type:`double` representation of the contents of *pyfloat*. If "
+"Return a C :c:expr:`double` representation of the contents of *pyfloat*. If "
"*pyfloat* is not a Python floating point object but has a :meth:`__float__` "
"method, this method will first be called to convert *pyfloat* into a float. "
"If ``__float__()`` is not defined then it falls back to :meth:`__index__`. "
@@ -91,8 +91,9 @@ msgid "Use :meth:`__index__` if available."
msgstr ""
#: c-api/float.rst:60
+#, fuzzy
msgid ""
-"Return a C :c:type:`double` representation of the contents of *pyfloat*, but "
+"Return a C :c:expr:`double` representation of the contents of *pyfloat*, but "
"without error checking."
msgstr ""
"Renvoie une représentation du contenu d'un *pyfloat* sous la forme d'un :c:"
@@ -109,16 +110,18 @@ msgstr ""
"flottante. C'est une enveloppe autour du fichier d'entête :file:`float.h`."
#: c-api/float.rst:73
+#, fuzzy
msgid ""
-"Return the maximum representable finite float *DBL_MAX* as C :c:type:"
+"Return the maximum representable finite float *DBL_MAX* as C :c:expr:"
"`double`."
msgstr ""
"Renvoie le nombre à virgule flottante fini maximal *DBL_MAX* sous la forme "
"d'un :c:type:`double` en C."
#: c-api/float.rst:78
+#, fuzzy
msgid ""
-"Return the minimum normalized positive float *DBL_MIN* as C :c:type:`double`."
+"Return the minimum normalized positive float *DBL_MIN* as C :c:expr:`double`."
msgstr ""
"Renvoie le nombre à virgule flottante minimal normalisé *DBL_MIN* sous la "
"forme :c:type:`double` en C."
diff --git a/c-api/function.po b/c-api/function.po
index aaff98580f..2dedf0c20b 100644
--- a/c-api/function.po
+++ b/c-api/function.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-09-23 16:16+0200\n"
+"POT-Creation-Date: 2022-04-05 10:05+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: FRENCH \n"
@@ -20,11 +20,11 @@ msgstr "Objets fonctions"
#: 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."
#: c-api/function.rst:15
msgid "The C structure used for functions."
-msgstr ""
+msgstr "La structure C utilisée pour les fonctions."
#: 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``."
#: c-api/function.rst:28
msgid ""
@@ -39,6 +41,9 @@ msgid ""
"`PyFunction_Type`). The parameter must not be ``NULL``. This function "
"always succeeds."
msgstr ""
+"Renvoie vrai si *o* est un objet de type fonction (a comme type :c:data:"
+"`PyFunction_Type`). Le paramètre ne doit pas être ``NULL``. Cette fonction "
+"réussit toujours."
#: c-api/function.rst:34
msgid ""
@@ -46,6 +51,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."
#: c-api/function.rst:37
msgid ""
@@ -65,60 +72,77 @@ msgstr ""
#: 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*."
#: 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*."
#: c-api/function.rst:64
msgid ""
"Return a :term:`borrowed reference` to the *__module__* attribute of the "
"function object *op*. It can be *NULL*."
msgstr ""
+"Renvoie un :term:`borrowed reference` à l'attribut ``__module__`` de l'objet "
+"fonction *op*. Il peut être *NULL*."
#: c-api/function.rst:67
msgid ""
"This is normally a string containing the module name, but can be set to any "
"other object by Python code."
msgstr ""
+"C'est typiquement une chaîne de caractère contenant le nom du module, mais "
+"il peut être changé par du code Python pour n'importe quel autre objet."
#: c-api/function.rst:73
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``."
#: c-api/function.rst:79
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."
#: c-api/function.rst:96 c-api/function.rst:110
msgid "Raises :exc:`SystemError` and returns ``-1`` on failure."
-msgstr ""
+msgstr "Lève :exc:`SystemError` et renvoie ``-1`` en cas de d'échec."
#: c-api/function.rst:87
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."
#: c-api/function.rst:93
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."
#: c-api/function.rst:101
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``."
#: c-api/function.rst:107
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 16110f9095..6935f39282 100644
--- a/c-api/gcsupport.po
+++ b/c-api/gcsupport.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-11-04 18:14+0100\n"
+"POT-Creation-Date: 2022-03-18 17:06+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: FRENCH \n"
@@ -21,11 +21,11 @@ msgstr ""
#: 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 ""
#: c-api/gcsupport.rst:15
diff --git a/c-api/import.po b/c-api/import.po
index c3945cabcd..4303354d0e 100644
--- a/c-api/import.po
+++ b/c-api/import.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-09-23 16:16+0200\n"
+"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: FRENCH \n"
@@ -271,8 +271,9 @@ msgid ""
msgstr ""
#: c-api/import.rst:264
+#, fuzzy
msgid ""
-"This pointer is initialized to point to an array of :c:type:`struct _frozen` "
+"This pointer is initialized to point to an array of :c:struct:`_frozen` "
"records, terminated by one whose members are all ``NULL`` or zero. When a "
"frozen module is imported, it is searched in this table. Third-party code "
"could play tricks with this to provide a dynamically created collection of "
diff --git a/c-api/init.po b/c-api/init.po
index d2233e7b89..a79574f2df 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: 2021-09-23 16:16+0200\n"
+"POT-Creation-Date: 2023-03-22 22:57+0100\n"
"PO-Revision-Date: 2018-11-29 18:22+0100\n"
"Last-Translator: FULL NAME \n"
"Language-Team: FRENCH \n"
@@ -542,7 +542,7 @@ msgstr ""
#: c-api/init.rst:511 c-api/init.rst:644 c-api/init.rst:661
msgid ""
-"Use :c:func:`Py_DecodeLocale` to decode a bytes string to get a :c:type:"
+"Use :c:func:`Py_DecodeLocale` to decode a bytes string to get a :c:expr:"
"`wchar_*` string."
msgstr ""
@@ -571,10 +571,10 @@ msgid ""
"example, if the program name is ``'/usr/local/bin/python'``, the prefix is "
"``'/usr/local'``. The returned string points into static storage; the caller "
"should not modify its value. This corresponds to the :makevar:`prefix` "
-"variable in the top-level :file:`Makefile` and the ``--prefix`` argument to "
-"the :program:`configure` script at build time. The value is available to "
-"Python code as ``sys.prefix``. It is only useful on Unix. See also the next "
-"function."
+"variable in the top-level :file:`Makefile` and the :option:`--prefix` "
+"argument to the :program:`configure` script at build time. The value is "
+"available to Python code as ``sys.prefix``. It is only useful on Unix. See "
+"also the next function."
msgstr ""
#: c-api/init.rst:407
@@ -684,10 +684,10 @@ msgstr ""
#: c-api/init.rst:531
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 "
-"separated by a period. The returned string points into static storage; the "
-"caller should not modify its value. The value is available to Python code "
-"as :data:`sys.version`."
+"version; the first characters are the major and minor version separated by a "
+"period. The returned string points into static storage; the caller should "
+"not modify its value. The value is available to Python code as :data:`sys."
+"version`."
msgstr ""
#: c-api/init.rst:541
@@ -930,11 +930,11 @@ msgstr ""
#: c-api/init.rst:803
msgid ""
-"Note that the :c:func:`PyGILState_\\*` functions assume there is only one "
-"global interpreter (created automatically by :c:func:`Py_Initialize`). "
-"Python supports the creation of additional interpreters (using :c:func:"
-"`Py_NewInterpreter`), but mixing multiple interpreters and the :c:func:"
-"`PyGILState_\\*` API is unsupported."
+"Note that the ``PyGILState_*`` functions assume there is only one global "
+"interpreter (created automatically by :c:func:`Py_Initialize`). Python "
+"supports the creation of additional interpreters (using :c:func:"
+"`Py_NewInterpreter`), but mixing multiple interpreters and the "
+"``PyGILState_*`` API is unsupported."
msgstr ""
#: c-api/init.rst:813
@@ -1010,7 +1010,7 @@ msgstr ""
#: c-api/init.rst:869
msgid ""
"This data structure represents the state of a single thread. The only "
-"public data member is :attr:`interp` (:c:type:`PyInterpreterState *`), which "
+"public data member is :attr:`interp` (:c:expr:`PyInterpreterState *`), which "
"points to this thread's interpreter state."
msgstr ""
@@ -1380,7 +1380,7 @@ msgstr ""
#: c-api/init.rst:1223
msgid ""
-"The type of the *id* parameter changed from :c:type:`long` to :c:type:"
+"The type of the *id* parameter changed from :c:expr:`long` to :c:expr:"
"`unsigned long`."
msgstr ""
@@ -1574,10 +1574,10 @@ msgstr ""
#: c-api/init.rst:1411
msgid ""
-"Also note that combining this functionality with :c:func:`PyGILState_\\*` "
-"APIs is delicate, because these APIs assume a bijection between Python "
-"thread states and OS-level threads, an assumption broken by the presence of "
-"sub-interpreters. It is highly recommended that you don't switch sub-"
+"Also note that combining this functionality with ``PyGILState_*`` APIs is "
+"delicate, because these APIs assume a bijection between Python thread states "
+"and OS-level threads, an assumption broken by the presence of sub-"
+"interpreters. It is highly recommended that you don't switch sub-"
"interpreters between a pair of matching :c:func:`PyGILState_Ensure` and :c:"
"func:`PyGILState_Release` calls. Furthermore, extensions (such as :mod:"
"`ctypes`) using these APIs to allow calling of Python code from non-Python "
@@ -1701,7 +1701,7 @@ msgstr ""
#: c-api/init.rst:1507
msgid ":const:`PyTrace_CALL`"
-msgstr ""
+msgstr ":const:`PyTrace_CALL`"
#: c-api/init.rst:1512 c-api/init.rst:1523
msgid "Always :c:data:`Py_None`."
@@ -1709,7 +1709,7 @@ msgstr ""
#: c-api/init.rst:1509
msgid ":const:`PyTrace_EXCEPTION`"
-msgstr ""
+msgstr ":const:`PyTrace_EXCEPTION`"
#: c-api/init.rst:1509
msgid "Exception information as returned by :func:`sys.exc_info`."
@@ -1717,11 +1717,11 @@ msgstr ""
#: c-api/init.rst:1512
msgid ":const:`PyTrace_LINE`"
-msgstr ""
+msgstr ":const:`PyTrace_LINE`"
#: c-api/init.rst:1514
msgid ":const:`PyTrace_RETURN`"
-msgstr ""
+msgstr ":const:`PyTrace_RETURN`"
#: c-api/init.rst:1514
msgid ""
@@ -1730,7 +1730,7 @@ msgstr ""
#: c-api/init.rst:1517
msgid ":const:`PyTrace_C_CALL`"
-msgstr ""
+msgstr ":const:`PyTrace_C_CALL`"
#: c-api/init.rst:1519 c-api/init.rst:1521
msgid "Function object being called."
@@ -1738,15 +1738,15 @@ msgstr ""
#: c-api/init.rst:1519
msgid ":const:`PyTrace_C_EXCEPTION`"
-msgstr ""
+msgstr ":const:`PyTrace_C_EXCEPTION`"
#: c-api/init.rst:1521
msgid ":const:`PyTrace_C_RETURN`"
-msgstr ""
+msgstr ":const:`PyTrace_C_RETURN`"
#: c-api/init.rst:1523
msgid ":const:`PyTrace_OPCODE`"
-msgstr ""
+msgstr ":const:`PyTrace_OPCODE`"
#: c-api/init.rst:1528
msgid ""
@@ -1881,7 +1881,7 @@ msgid ""
"(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:expr:`void*` value per "
"thread."
msgstr ""
@@ -1900,8 +1900,8 @@ msgstr ""
#: c-api/init.rst:1669
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 "
+"expr:`void*` values. You need to allocate and deallocate them yourself. If "
+"the :c:expr:`void*` values happen to be :c:expr:`PyObject*`, these functions "
"don't do refcount operations on them either."
msgstr ""
@@ -1913,7 +1913,7 @@ msgstr ""
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."
+"instead of :c:expr:`int` to represent thread keys."
msgstr ""
#: c-api/init.rst:1685
@@ -1961,12 +1961,12 @@ msgstr ""
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`."
+"have been unassigned. This is a no-op if the *key* argument is ``NULL``."
msgstr ""
#: c-api/init.rst:1728
msgid ""
-"A freed key becomes a dangling pointer, you should reset the key to `NULL`."
+"A freed key becomes a dangling pointer. You should reset the key to `NULL`."
msgstr ""
#: c-api/init.rst:1733
@@ -2007,14 +2007,14 @@ msgstr ""
#: c-api/init.rst:1767
msgid ""
-"Return a zero value to indicate successfully associating a :c:type:`void*` "
+"Return a zero value to indicate successfully associating a :c:expr:`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:expr:`void*` value."
msgstr ""
#: c-api/init.rst:1774
msgid ""
-"Return the :c:type:`void*` value associated with a TSS key in the current "
+"Return the :c:expr:`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 ""
diff --git a/c-api/init_config.po b/c-api/init_config.po
index 4438ae7ba8..5bbbfd3b49 100644
--- a/c-api/init_config.po
+++ b/c-api/init_config.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-10-21 15:04+0200\n"
+"POT-Creation-Date: 2023-03-22 22:57+0100\n"
"PO-Revision-Date: 2019-09-04 11:42+0200\n"
"Last-Translator: FULL NAME \n"
"Language-Team: FRENCH \n"
@@ -33,7 +33,7 @@ msgstr ""
msgid ""
"The :ref:`Python Configuration ` can be used to build a "
"customized Python which behaves as the regular Python. For example, "
-"environments variables and command line arguments are used to configure "
+"environment variables and command line arguments are used to configure "
"Python."
msgstr ""
@@ -41,8 +41,8 @@ msgstr ""
msgid ""
"The :ref:`Isolated Configuration ` can be used to embed "
"Python into an application. It isolates Python from the system. For example, "
-"environments variables are ignored, the LC_CTYPE locale is left unchanged "
-"and no signal handler is registered."
+"environment variables are ignored, the LC_CTYPE locale is left unchanged and "
+"no signal handler is registered."
msgstr ""
#: c-api/init_config.rst:27
@@ -61,9 +61,8 @@ msgid ":pep:`587` \"Python Initialization Configuration\"."
msgstr ""
#: c-api/init_config.rst:37
-#, fuzzy
msgid "Example"
-msgstr "Exemple ::"
+msgstr "Exemple"
#: c-api/init_config.rst:39
msgid "Example of customized Python always running in isolated mode::"
@@ -290,7 +289,7 @@ msgid "Default: ``PYMEM_ALLOCATOR_NOT_SET``."
msgstr ""
#: c-api/init_config.rst:257
-msgid "Set the LC_CTYPE locale to the user preferred locale?"
+msgid "Set the LC_CTYPE locale to the user preferred locale."
msgstr ""
#: c-api/init_config.rst:259
@@ -330,7 +329,7 @@ msgid ""
"member:`PyConfig.dev_mode`."
msgstr ""
-#: c-api/init_config.rst:633 c-api/init_config.rst:1094
+#: c-api/init_config.rst:633 c-api/init_config.rst:1093
msgid "Default: ``-1`` in Python mode, ``0`` in isolated mode."
msgstr ""
@@ -338,7 +337,7 @@ msgstr ""
msgid "Isolated mode: see :c:member:`PyConfig.isolated`."
msgstr ""
-#: c-api/init_config.rst:798
+#: c-api/init_config.rst:797
msgid "Default: ``0`` in Python mode, ``1`` in isolated mode."
msgstr ""
@@ -364,16 +363,16 @@ msgid ""
"variable value."
msgstr ""
-#: c-api/init_config.rst:811
+#: c-api/init_config.rst:810
msgid ""
"Only available on Windows. ``#ifdef MS_WINDOWS`` macro can be used for "
"Windows specific code."
msgstr ""
#: c-api/init_config.rst:588 c-api/init_config.rst:646
-#: c-api/init_config.rst:770 c-api/init_config.rst:814
-#: c-api/init_config.rst:881 c-api/init_config.rst:990
-#: c-api/init_config.rst:1058 c-api/init_config.rst:1129
+#: c-api/init_config.rst:769 c-api/init_config.rst:813
+#: c-api/init_config.rst:880 c-api/init_config.rst:989
+#: c-api/init_config.rst:1057 c-api/init_config.rst:1128
msgid "Default: ``0``."
msgstr ""
@@ -391,7 +390,7 @@ msgid ""
"use_environment`."
msgstr ""
-#: c-api/init_config.rst:1103
+#: c-api/init_config.rst:1102
msgid "Default: ``1`` in Python config and ``0`` in isolated config."
msgstr ""
@@ -461,7 +460,7 @@ msgid ""
"`~PyPreConfig.parse_argv` of *preconfig* is non-zero."
msgstr ""
-#: c-api/init_config.rst:1191
+#: c-api/init_config.rst:1190
msgid ""
"The caller is responsible to handle exceptions (error or exit) using :c:func:"
"`PyStatus_Exception` and :c:func:`Py_ExitStatusException`."
@@ -569,7 +568,7 @@ msgstr ""
msgid "Fields which are already initialized are left unchanged."
msgstr ""
-#: c-api/init_config.rst:910
+#: c-api/init_config.rst:909
msgid ""
"The :c:func:`PyConfig_Read` function only parses :c:member:`PyConfig.argv` "
"arguments once: :c:member:`PyConfig.parse_argv` is set to ``2`` after "
@@ -646,9 +645,9 @@ msgid ""
msgstr ""
#: c-api/init_config.rst:541 c-api/init_config.rst:561
-#: c-api/init_config.rst:662 c-api/init_config.rst:851
-#: c-api/init_config.rst:967 c-api/init_config.rst:998
-#: c-api/init_config.rst:1018
+#: c-api/init_config.rst:662 c-api/init_config.rst:850
+#: c-api/init_config.rst:966 c-api/init_config.rst:997
+#: c-api/init_config.rst:1017
msgid "Default: ``NULL``."
msgstr ""
@@ -661,7 +660,7 @@ msgid ":data:`sys.base_exec_prefix`."
msgstr ""
#: c-api/init_config.rst:555 c-api/init_config.rst:655
-#: c-api/init_config.rst:868 c-api/init_config.rst:951
+#: c-api/init_config.rst:867 c-api/init_config.rst:950
msgid "Part of the :ref:`Python Path Configuration ` output."
msgstr ""
@@ -697,7 +696,7 @@ msgstr ""
msgid "stdin is always opened in buffered mode."
msgstr ""
-#: c-api/init_config.rst:1046 c-api/init_config.rst:1161
+#: c-api/init_config.rst:1045 c-api/init_config.rst:1160
msgid "Default: ``1``."
msgstr ""
@@ -784,7 +783,7 @@ msgid "If non-zero, enable the :ref:`Python Development Mode `."
msgstr ""
#: c-api/init_config.rst:637
-msgid "Dump Python refererences?"
+msgid "Dump Python references?"
msgstr ""
#: c-api/init_config.rst:639
@@ -855,235 +854,235 @@ msgstr ""
#: c-api/init_config.rst:691
msgid ""
"``\"ascii\"`` if Python detects that ``nl_langinfo(CODESET)`` announces the "
-"ASCII encoding (or Roman8 encoding on HP-UX), whereas the ``mbstowcs()`` "
-"function decodes from a different encoding (usually Latin1)."
+"ASCII encoding, whereas the ``mbstowcs()`` function decodes from a different "
+"encoding (usually Latin1)."
msgstr ""
-#: c-api/init_config.rst:695
+#: c-api/init_config.rst:694
msgid "``\"utf-8\"`` if ``nl_langinfo(CODESET)`` returns an empty string."
msgstr ""
-#: c-api/init_config.rst:696
+#: c-api/init_config.rst:695
msgid ""
"Otherwise, use the :term:`locale encoding`: ``nl_langinfo(CODESET)`` result."
msgstr ""
-#: c-api/init_config.rst:699
+#: c-api/init_config.rst:698
msgid ""
"At Python startup, the encoding name is normalized to the Python codec name. "
"For example, ``\"ANSI_X3.4-1968\"`` is replaced with ``\"ascii\"``."
msgstr ""
-#: c-api/init_config.rst:702
+#: c-api/init_config.rst:701
msgid "See also the :c:member:`~PyConfig.filesystem_errors` member."
msgstr ""
-#: c-api/init_config.rst:706
+#: c-api/init_config.rst:705
msgid ""
":term:`Filesystem error handler `: :"
"func:`sys.getfilesystemencodeerrors`."
msgstr ""
-#: c-api/init_config.rst:709
+#: c-api/init_config.rst:708
msgid ""
"On Windows: use ``\"surrogatepass\"`` by default, or ``\"replace\"`` if :c:"
"member:`~PyPreConfig.legacy_windows_fs_encoding` of :c:type:`PyPreConfig` is "
"non-zero."
msgstr ""
-#: c-api/init_config.rst:713
+#: c-api/init_config.rst:712
msgid "On other platforms: use ``\"surrogateescape\"`` by default."
msgstr ""
-#: c-api/init_config.rst:715
+#: c-api/init_config.rst:714
msgid "Supported error handlers:"
msgstr ""
-#: c-api/init_config.rst:717
+#: c-api/init_config.rst:716
msgid "``\"strict\"``"
msgstr ""
-#: c-api/init_config.rst:718
+#: c-api/init_config.rst:717
msgid "``\"surrogateescape\"``"
msgstr ""
-#: c-api/init_config.rst:719
+#: c-api/init_config.rst:718
msgid "``\"surrogatepass\"`` (only supported with the UTF-8 encoding)"
msgstr ""
-#: c-api/init_config.rst:721
+#: c-api/init_config.rst:720
msgid "See also the :c:member:`~PyConfig.filesystem_encoding` member."
msgstr ""
-#: c-api/init_config.rst:726
+#: c-api/init_config.rst:725
msgid "Randomized hash function seed."
msgstr ""
-#: c-api/init_config.rst:728
+#: c-api/init_config.rst:727
msgid ""
"If :c:member:`~PyConfig.use_hash_seed` is zero, a seed is chosen randomly at "
"Python startup, and :c:member:`~PyConfig.hash_seed` is ignored."
msgstr ""
-#: c-api/init_config.rst:731
+#: c-api/init_config.rst:730
msgid "Set by the :envvar:`PYTHONHASHSEED` environment variable."
msgstr ""
-#: c-api/init_config.rst:733
+#: c-api/init_config.rst:732
msgid ""
"Default *use_hash_seed* value: ``-1`` in Python mode, ``0`` in isolated mode."
msgstr ""
-#: c-api/init_config.rst:738
+#: c-api/init_config.rst:737
msgid "Python home directory."
msgstr ""
-#: c-api/init_config.rst:740
+#: c-api/init_config.rst:739
msgid ""
"If :c:func:`Py_SetPythonHome` has been called, use its argument if it is not "
"``NULL``."
msgstr ""
-#: c-api/init_config.rst:743
+#: c-api/init_config.rst:742
msgid "Set by the :envvar:`PYTHONHOME` environment variable."
msgstr ""
-#: c-api/init_config.rst:840 c-api/init_config.rst:942
-#: c-api/init_config.rst:969
+#: c-api/init_config.rst:839 c-api/init_config.rst:941
+#: c-api/init_config.rst:968
msgid "Part of the :ref:`Python Path Configuration ` input."
msgstr ""
-#: c-api/init_config.rst:751
+#: c-api/init_config.rst:750
msgid "If non-zero, profile import time."
msgstr ""
-#: c-api/init_config.rst:753
+#: c-api/init_config.rst:752
msgid ""
"Set the ``1`` by the :option:`-X importtime <-X>` option and the :envvar:"
"`PYTHONPROFILEIMPORTTIME` environment variable."
msgstr ""
-#: c-api/init_config.rst:760
+#: c-api/init_config.rst:759
msgid "Enter interactive mode after executing a script or a command."
msgstr ""
-#: c-api/init_config.rst:762
+#: c-api/init_config.rst:761
msgid ""
"If greater than 0, enable inspect: when a script is passed as first argument "
"or the -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 ""
-#: c-api/init_config.rst:767
+#: c-api/init_config.rst:766
msgid ""
"Incremented by the :option:`-i` command line option. Set to ``1`` if the :"
"envvar:`PYTHONINSPECT` environment variable is non-empty."
msgstr ""
-#: c-api/init_config.rst:774
+#: c-api/init_config.rst:773
msgid "Install Python signal handlers?"
msgstr ""
-#: c-api/init_config.rst:916 c-api/init_config.rst:1113
+#: c-api/init_config.rst:915 c-api/init_config.rst:1112
msgid "Default: ``1`` in Python mode, ``0`` in isolated mode."
msgstr ""
-#: c-api/init_config.rst:780
+#: c-api/init_config.rst:779
msgid "If greater than 0, enable the interactive mode (REPL)."
msgstr ""
-#: c-api/init_config.rst:782
+#: c-api/init_config.rst:781
msgid "Incremented by the :option:`-i` command line option."
msgstr ""
-#: c-api/init_config.rst:788
+#: c-api/init_config.rst:787
msgid "If greater than 0, enable isolated mode:"
msgstr ""
-#: c-api/init_config.rst:790
+#: c-api/init_config.rst:789
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 ""
-#: c-api/init_config.rst:793
+#: c-api/init_config.rst:792
msgid ""
"Python REPL doesn't import :mod:`readline` nor enable default readline "
"configuration on interactive prompts."
msgstr ""
-#: c-api/init_config.rst:795
+#: c-api/init_config.rst:794
msgid ""
"Set :c:member:`~PyConfig.use_environment` and :c:member:`~PyConfig."
"user_site_directory` to 0."
msgstr ""
-#: c-api/init_config.rst:800
+#: c-api/init_config.rst:799
msgid "See also :c:member:`PyPreConfig.isolated`."
msgstr ""
-#: c-api/init_config.rst:804
+#: c-api/init_config.rst:803
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 ""
-#: c-api/init_config.rst:808
+#: c-api/init_config.rst:807
msgid ""
"Set to ``1`` if the :envvar:`PYTHONLEGACYWINDOWSSTDIO` environment variable "
"is set to a non-empty string."
msgstr ""
-#: c-api/init_config.rst:816
+#: c-api/init_config.rst:815
msgid "See also the :pep:`528` (Change Windows console encoding to UTF-8)."
msgstr ""
-#: c-api/init_config.rst:820
+#: c-api/init_config.rst:819
msgid ""
"If non-zero, dump statistics on :ref:`Python pymalloc memory allocator "
"` at exit."
msgstr ""
-#: c-api/init_config.rst:823
+#: c-api/init_config.rst:822
msgid "Set to ``1`` by the :envvar:`PYTHONMALLOCSTATS` environment variable."
msgstr ""
-#: c-api/init_config.rst:825
+#: c-api/init_config.rst:824
msgid ""
"The option is ignored if Python is :option:`configured using the --without-"
"pymalloc option <--without-pymalloc>`."
msgstr ""
-#: c-api/init_config.rst:832
+#: c-api/init_config.rst:831
msgid "Platform library directory name: :data:`sys.platlibdir`."
msgstr ""
-#: c-api/init_config.rst:834
+#: c-api/init_config.rst:833
msgid "Set by the :envvar:`PYTHONPLATLIBDIR` environment variable."
msgstr ""
-#: c-api/init_config.rst:836
+#: c-api/init_config.rst:835
msgid ""
"Default: value of the ``PLATLIBDIR`` macro which is set by the :option:"
-"`configure --with-platlibdir option <--with-platlibdir>` (default: ``\"lib"
-"\"``)."
+"`configure --with-platlibdir option <--with-platlibdir>` (default: "
+"``\"lib\"``)."
msgstr ""
-#: c-api/init_config.rst:846
+#: c-api/init_config.rst:845
msgid ""
"Module search paths (:data:`sys.path`) as a string separated by ``DELIM`` (:"
"data:`os.path.pathsep`)."
msgstr ""
-#: c-api/init_config.rst:849
+#: c-api/init_config.rst:848
msgid "Set by the :envvar:`PYTHONPATH` environment variable."
msgstr ""
-#: c-api/init_config.rst:858
+#: c-api/init_config.rst:857
msgid "Module search paths: :data:`sys.path`."
msgstr ""
-#: c-api/init_config.rst:860
+#: c-api/init_config.rst:859
msgid ""
"If :c:member:`~PyConfig.module_search_paths_set` is equal to 0, the function "
"calculating the :ref:`Python Path Configuration ` "
@@ -1091,41 +1090,41 @@ msgid ""
"`~PyConfig.module_search_paths_set` to ``1``."
msgstr ""
-#: c-api/init_config.rst:865
+#: c-api/init_config.rst:864
msgid ""
"Default: empty list (``module_search_paths``) and ``0`` "
"(``module_search_paths_set``)."
msgstr ""
-#: c-api/init_config.rst:872
+#: c-api/init_config.rst:871
msgid "Compilation optimization level:"
msgstr ""
-#: c-api/init_config.rst:874
+#: c-api/init_config.rst:873
msgid "``0``: Peephole optimizer, set ``__debug__`` to ``True``."
msgstr ""
-#: c-api/init_config.rst:875
+#: c-api/init_config.rst:874
msgid "``1``: Level 0, remove assertions, set ``__debug__`` to ``False``."
msgstr ""
-#: c-api/init_config.rst:876
+#: c-api/init_config.rst:875
msgid "``2``: Level 1, strip docstrings."
msgstr ""
-#: c-api/init_config.rst:878
+#: c-api/init_config.rst:877
msgid ""
"Incremented by the :option:`-O` command line option. Set to the :envvar:"
"`PYTHONOPTIMIZE` environment variable value."
msgstr ""
-#: c-api/init_config.rst:885
+#: c-api/init_config.rst:884
msgid ""
"The list of the original command line arguments passed to the Python "
"executable: :data:`sys.orig_argv`."
msgstr ""
-#: c-api/init_config.rst:888
+#: c-api/init_config.rst:887
msgid ""
"If :c:member:`~PyConfig.orig_argv` list is empty and :c:member:`~PyConfig."
"argv` is not a list only containing an empty string, :c:func:`PyConfig_Read` "
@@ -1134,354 +1133,354 @@ msgid ""
"parse_argv` is non-zero)."
msgstr ""
-#: c-api/init_config.rst:895
+#: c-api/init_config.rst:894
msgid ""
"See also the :c:member:`~PyConfig.argv` member and the :c:func:"
"`Py_GetArgcArgv` function."
msgstr ""
-#: c-api/init_config.rst:1148 c-api/init_config.rst:1167
+#: c-api/init_config.rst:1147 c-api/init_config.rst:1166
msgid "Default: empty list."
msgstr ""
-#: c-api/init_config.rst:904
+#: c-api/init_config.rst:903
msgid "Parse command line arguments?"
msgstr ""
-#: c-api/init_config.rst:906
+#: c-api/init_config.rst:905
msgid ""
"If equals to ``1``, parse :c:member:`~PyConfig.argv` the same way the "
"regular Python parses :ref:`command line arguments `, and "
"strip Python arguments from :c:member:`~PyConfig.argv`."
msgstr ""
-#: c-api/init_config.rst:918
+#: c-api/init_config.rst:917
msgid ""
"The :c:member:`PyConfig.argv` arguments are now only parsed if :c:member:"
"`PyConfig.parse_argv` equals to ``1``."
msgstr ""
-#: c-api/init_config.rst:924
+#: c-api/init_config.rst:923
msgid ""
"Parser debug mode. If greater than 0, turn on parser debugging output (for "
"expert only, depending on compilation options)."
msgstr ""
-#: c-api/init_config.rst:927
+#: c-api/init_config.rst:926
msgid ""
"Incremented by the :option:`-d` command line option. Set to the :envvar:"
"`PYTHONDEBUG` environment variable value."
msgstr ""
-#: c-api/init_config.rst:934
+#: c-api/init_config.rst:933
msgid ""
"On Unix, if non-zero, calculating the :ref:`Python Path Configuration ` can log warnings into ``stderr``. If equals to 0, suppress "
"these warnings."
msgstr ""
-#: c-api/init_config.rst:938
+#: c-api/init_config.rst:937
msgid "It has no effect on Windows."
msgstr ""
-#: c-api/init_config.rst:946
+#: c-api/init_config.rst:945
msgid ""
"The site-specific directory prefix where the platform independent Python "
"files are installed: :data:`sys.prefix`."
msgstr ""
-#: c-api/init_config.rst:955
+#: c-api/init_config.rst:954
msgid ""
"Program name used to initialize :c:member:`~PyConfig.executable` and in "
"early error messages during Python initialization."
msgstr ""
-#: c-api/init_config.rst:958
+#: c-api/init_config.rst:957
msgid "If :func:`Py_SetProgramName` has been called, use its argument."
msgstr ""
-#: c-api/init_config.rst:959
+#: c-api/init_config.rst:958
msgid "On macOS, use :envvar:`PYTHONEXECUTABLE` environment variable if set."
msgstr ""
-#: c-api/init_config.rst:960
+#: c-api/init_config.rst:959
msgid ""
"If the ``WITH_NEXT_FRAMEWORK`` macro is defined, use :envvar:"
"`__PYVENV_LAUNCHER__` environment variable if set."
msgstr ""
-#: c-api/init_config.rst:962
+#: c-api/init_config.rst:961
msgid ""
"Use ``argv[0]`` of :c:member:`~PyConfig.argv` if available and non-empty."
msgstr ""
-#: c-api/init_config.rst:964
+#: c-api/init_config.rst:963
msgid ""
"Otherwise, use ``L\"python\"`` on Windows, or ``L\"python3\"`` on other "
"platforms."
msgstr ""
-#: c-api/init_config.rst:973
+#: c-api/init_config.rst:972
msgid ""
"Directory where cached ``.pyc`` files are written: :data:`sys."
"pycache_prefix`."
msgstr ""
-#: c-api/init_config.rst:976
+#: c-api/init_config.rst:975
msgid ""
"Set by the :option:`-X pycache_prefix=PATH <-X>` command line option and "
"the :envvar:`PYTHONPYCACHEPREFIX` environment variable."
msgstr ""
-#: c-api/init_config.rst:979
+#: c-api/init_config.rst:978
msgid "If ``NULL``, :data:`sys.pycache_prefix` is set to ``None``."
msgstr ""
-#: c-api/init_config.rst:985
+#: c-api/init_config.rst:984
msgid ""
"Quiet mode. If greater than 0, don't display the copyright and version at "
"Python startup in interactive mode."
msgstr ""
-#: c-api/init_config.rst:988
+#: c-api/init_config.rst:987
msgid "Incremented by the :option:`-q` command line option."
msgstr ""
-#: c-api/init_config.rst:994
+#: c-api/init_config.rst:993
msgid "Value of the :option:`-c` command line option."
msgstr ""
-#: c-api/init_config.rst:1008 c-api/init_config.rst:1016
+#: c-api/init_config.rst:1007 c-api/init_config.rst:1015
msgid "Used by :c:func:`Py_RunMain`."
msgstr ""
-#: c-api/init_config.rst:1002
+#: c-api/init_config.rst:1001
msgid ""
"Filename passed on the command line: trailing command line argument without :"
"option:`-c` or :option:`-m`."
msgstr ""
-#: c-api/init_config.rst:1005
+#: c-api/init_config.rst:1004
msgid ""
"For example, it is set to ``script.py`` by the ``python3 script.py arg`` "
"command."
msgstr ""
-#: c-api/init_config.rst:1014
+#: c-api/init_config.rst:1013
msgid "Value of the :option:`-m` command line option."
msgstr ""
-#: c-api/init_config.rst:1022
+#: c-api/init_config.rst:1021
msgid "Show total reference count at exit?"
msgstr ""
-#: c-api/init_config.rst:1024
+#: c-api/init_config.rst:1023
msgid "Set to 1 by :option:`-X showrefcount <-X>` command line option."
msgstr ""
-#: c-api/init_config.rst:1026
+#: c-api/init_config.rst:1025
msgid ""
"Need a :ref:`debug build of Python ` (the ``Py_REF_DEBUG`` "
"macro must be defined)."
msgstr ""
-#: c-api/init_config.rst:1033
+#: c-api/init_config.rst:1032
msgid "Import the :mod:`site` module at startup?"
msgstr ""
-#: c-api/init_config.rst:1035
+#: c-api/init_config.rst:1034
msgid ""
"If equal to zero, disable the import of the module site and the site-"
"dependent manipulations of :data:`sys.path` that it entails."
msgstr ""
-#: c-api/init_config.rst:1038
+#: c-api/init_config.rst:1037
msgid ""
"Also disable these manipulations if the :mod:`site` module is explicitly "
"imported later (call :func:`site.main` if you want them to be triggered)."
msgstr ""
-#: c-api/init_config.rst:1041
+#: c-api/init_config.rst:1040
msgid "Set to ``0`` by the :option:`-S` command line option."
msgstr ""
-#: c-api/init_config.rst:1043
+#: c-api/init_config.rst:1042
msgid ""
":data:`sys.flags.no_site` is set to the inverted value of :c:member:"
"`~PyConfig.site_import`."
msgstr ""
-#: c-api/init_config.rst:1050
+#: c-api/init_config.rst:1049
msgid ""
"If non-zero, skip the first line of the :c:member:`PyConfig.run_filename` "
"source."
msgstr ""
-#: c-api/init_config.rst:1053
+#: c-api/init_config.rst:1052
msgid ""
"It allows the usage of non-Unix forms of ``#!cmd``. This is intended for a "
"DOS specific hack only."
msgstr ""
-#: c-api/init_config.rst:1056
+#: c-api/init_config.rst:1055
msgid "Set to ``1`` by the :option:`-x` command line option."
msgstr ""
-#: c-api/init_config.rst:1063
+#: c-api/init_config.rst:1062
msgid ""
"Encoding and encoding errors of :data:`sys.stdin`, :data:`sys.stdout` and :"
-"data:`sys.stderr` (but :data:`sys.stderr` always uses ``\"backslashreplace"
-"\"`` error handler)."
+"data:`sys.stderr` (but :data:`sys.stderr` always uses "
+"``\"backslashreplace\"`` error handler)."
msgstr ""
-#: c-api/init_config.rst:1067
+#: c-api/init_config.rst:1066
msgid ""
"If :c:func:`Py_SetStandardStreamEncoding` has been called, use its *error* "
"and *errors* arguments if they are not ``NULL``."
msgstr ""
-#: c-api/init_config.rst:1070
+#: c-api/init_config.rst:1069
msgid ""
"Use the :envvar:`PYTHONIOENCODING` environment variable if it is non-empty."
msgstr ""
-#: c-api/init_config.rst:1073
+#: c-api/init_config.rst:1072
msgid "Default encoding:"
msgstr ""
-#: c-api/init_config.rst:1075
+#: c-api/init_config.rst:1074
msgid "``\"UTF-8\"`` if :c:member:`PyPreConfig.utf8_mode` is non-zero."
msgstr ""
-#: c-api/init_config.rst:1076
+#: c-api/init_config.rst:1075
msgid "Otherwise, use the :term:`locale encoding`."
msgstr ""
-#: c-api/init_config.rst:1078
+#: c-api/init_config.rst:1077
msgid "Default error handler:"
msgstr ""
-#: c-api/init_config.rst:1080
+#: c-api/init_config.rst:1079
msgid "On Windows: use ``\"surrogateescape\"``."
msgstr ""
-#: c-api/init_config.rst:1081
+#: c-api/init_config.rst:1080
msgid ""
"``\"surrogateescape\"`` if :c:member:`PyPreConfig.utf8_mode` is non-zero, or "
"if the LC_CTYPE locale is \"C\" or \"POSIX\"."
msgstr ""
-#: c-api/init_config.rst:1083
+#: c-api/init_config.rst:1082
msgid "``\"strict\"`` otherwise."
msgstr ""
-#: c-api/init_config.rst:1087
+#: c-api/init_config.rst:1086
msgid "Enable tracemalloc?"
msgstr ""
-#: c-api/init_config.rst:1089
+#: c-api/init_config.rst:1088
msgid "If non-zero, call :func:`tracemalloc.start` at startup."
msgstr ""
-#: c-api/init_config.rst:1091
+#: c-api/init_config.rst:1090
msgid ""
"Set by :option:`-X tracemalloc=N <-X>` command line option and by the :"
"envvar:`PYTHONTRACEMALLOC` environment variable."
msgstr ""
-#: c-api/init_config.rst:1098
+#: c-api/init_config.rst:1097
msgid "Use :ref:`environment variables `?"
msgstr ""
-#: c-api/init_config.rst:1100
+#: c-api/init_config.rst:1099
msgid ""
"If equals to zero, ignore the :ref:`environment variables `."
msgstr ""
-#: c-api/init_config.rst:1107
+#: c-api/init_config.rst:1106
msgid "If non-zero, add the user site directory to :data:`sys.path`."
msgstr ""
-#: c-api/init_config.rst:1109
+#: c-api/init_config.rst:1108
msgid "Set to ``0`` by the :option:`-s` and :option:`-I` command line options."
msgstr ""
-#: c-api/init_config.rst:1111
+#: c-api/init_config.rst:1110
msgid "Set to ``0`` by the :envvar:`PYTHONNOUSERSITE` environment variable."
msgstr ""
-#: c-api/init_config.rst:1117
+#: c-api/init_config.rst:1116
msgid ""
"Verbose mode. If greater than 0, print a message each time a module is "
"imported, showing the place (filename or built-in module) from which it is "
"loaded."
msgstr ""
-#: c-api/init_config.rst:1121
+#: c-api/init_config.rst:1120
msgid ""
"If greater or equal to 2, print a message for each file that is checked for "
"when searching for a module. Also provides information on module cleanup at "
"exit."
msgstr ""
-#: c-api/init_config.rst:1125
+#: c-api/init_config.rst:1124
msgid "Incremented by the :option:`-v` command line option."
msgstr ""
-#: c-api/init_config.rst:1127
+#: c-api/init_config.rst:1126
msgid "Set to the :envvar:`PYTHONVERBOSE` environment variable value."
msgstr ""
-#: c-api/init_config.rst:1133
+#: c-api/init_config.rst:1132
msgid ""
"Options of the :mod:`warnings` module to build warnings filters, lowest to "
"highest priority: :data:`sys.warnoptions`."
msgstr ""
-#: c-api/init_config.rst:1136
+#: c-api/init_config.rst:1135
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 ""
-#: c-api/init_config.rst:1141
+#: c-api/init_config.rst:1140
msgid ""
"The :option:`-W` command line options adds its value to :c:member:`~PyConfig."
"warnoptions`, it can be used multiple times."
msgstr ""
-#: c-api/init_config.rst:1144
+#: c-api/init_config.rst:1143
msgid ""
"The :envvar:`PYTHONWARNINGS` environment variable can also be used to add "
"warning options. Multiple options can be specified, separated by commas (``,"
"``)."
msgstr ""
-#: c-api/init_config.rst:1152
+#: c-api/init_config.rst:1151
msgid ""
"If equal to 0, Python won't try to write ``.pyc`` files on the import of "
"source modules."
msgstr ""
-#: c-api/init_config.rst:1155
+#: c-api/init_config.rst:1154
msgid ""
"Set to ``0`` by the :option:`-B` command line option and the :envvar:"
"`PYTHONDONTWRITEBYTECODE` environment variable."
msgstr ""
-#: c-api/init_config.rst:1158
+#: c-api/init_config.rst:1157
msgid ""
":data:`sys.dont_write_bytecode` is initialized to the inverted value of :c:"
"member:`~PyConfig.write_bytecode`."
msgstr ""
-#: c-api/init_config.rst:1165
+#: c-api/init_config.rst:1164
msgid "Values of the :option:`-X` command line options: :data:`sys._xoptions`."
msgstr ""
-#: c-api/init_config.rst:1169
+#: c-api/init_config.rst:1168
msgid ""
"If :c:member:`~PyConfig.parse_argv` is non-zero, :c:member:`~PyConfig.argv` "
"arguments are parsed the same way the regular Python parses :ref:`command "
@@ -1489,29 +1488,29 @@ msgid ""
"c:member:`~PyConfig.argv`."
msgstr ""
-#: c-api/init_config.rst:1174
+#: c-api/init_config.rst:1173
msgid ""
"The :c:member:`~PyConfig.xoptions` options are parsed to set other options: "
"see the :option:`-X` command line option."
msgstr ""
-#: c-api/init_config.rst:1179
+#: c-api/init_config.rst:1178
msgid "The ``show_alloc_count`` field has been removed."
msgstr ""
-#: c-api/init_config.rst:1183
+#: c-api/init_config.rst:1182
msgid "Initialization with PyConfig"
msgstr ""
-#: c-api/init_config.rst:1185
+#: c-api/init_config.rst:1184
msgid "Function to initialize Python:"
msgstr ""
-#: c-api/init_config.rst:1189
+#: c-api/init_config.rst:1188
msgid "Initialize Python from *config* configuration."
msgstr ""
-#: c-api/init_config.rst:1194
+#: c-api/init_config.rst:1193
msgid ""
"If :c:func:`PyImport_FrozenModules`, :c:func:`PyImport_AppendInittab` or :c:"
"func:`PyImport_ExtendInittab` are used, they must be set or called after "
@@ -1520,42 +1519,42 @@ msgid ""
"`PyImport_ExtendInittab` must be called before each Python initialization."
msgstr ""
-#: c-api/init_config.rst:1201
+#: c-api/init_config.rst:1200
msgid ""
"The current configuration (``PyConfig`` type) is stored in "
"``PyInterpreterState.config``."
msgstr ""
-#: c-api/init_config.rst:1204
+#: c-api/init_config.rst:1203
msgid "Example setting the program name::"
msgstr ""
-#: c-api/init_config.rst:1232
+#: c-api/init_config.rst:1231
msgid ""
"More complete example modifying the default configuration, read the "
"configuration, and then override some parameters::"
msgstr ""
-#: c-api/init_config.rst:1283
+#: c-api/init_config.rst:1282
msgid "Isolated Configuration"
msgstr ""
-#: c-api/init_config.rst:1285
+#: c-api/init_config.rst:1284
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 ""
-#: c-api/init_config.rst:1290
+#: c-api/init_config.rst:1289
msgid ""
-"This configuration ignores global configuration variables, environments "
+"This configuration ignores global configuration variables, environment "
"variables, command line arguments (:c:member:`PyConfig.argv` is not parsed) "
"and user site directory. The C standard streams (ex: ``stdout``) and the "
"LC_CTYPE locale are left unchanged. Signal handlers are not installed."
msgstr ""
-#: c-api/init_config.rst:1295
+#: c-api/init_config.rst:1294
msgid ""
"Configuration files are still used with this configuration. Set the :ref:"
"`Python Path Configuration ` (\"output fields\") to ignore "
@@ -1563,118 +1562,118 @@ msgid ""
"configuration."
msgstr ""
-#: c-api/init_config.rst:1304
+#: c-api/init_config.rst:1303
msgid "Python Configuration"
msgstr ""
-#: c-api/init_config.rst:1306
+#: c-api/init_config.rst:1305
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 ""
-#: c-api/init_config.rst:1310
+#: c-api/init_config.rst:1309
msgid ""
"Environments variables and command line arguments are used to configure "
"Python, whereas global configuration variables are ignored."
msgstr ""
-#: c-api/init_config.rst:1313
+#: c-api/init_config.rst:1312
msgid ""
"This function enables C locale coercion (:pep:`538`) and :ref:`Python UTF-8 "
"Mode ` (:pep:`540`) depending on the LC_CTYPE locale, :envvar:"
"`PYTHONUTF8` and :envvar:`PYTHONCOERCECLOCALE` environment variables."
msgstr ""
-#: c-api/init_config.rst:1322
+#: c-api/init_config.rst:1321
msgid "Python Path Configuration"
msgstr ""
-#: c-api/init_config.rst:1324
+#: c-api/init_config.rst:1323
msgid ":c:type:`PyConfig` contains multiple fields for the path configuration:"
msgstr ""
-#: c-api/init_config.rst:1326
+#: c-api/init_config.rst:1325
msgid "Path configuration inputs:"
msgstr ""
-#: c-api/init_config.rst:1328
+#: c-api/init_config.rst:1327
msgid ":c:member:`PyConfig.home`"
msgstr ""
-#: c-api/init_config.rst:1329
+#: c-api/init_config.rst:1328
msgid ":c:member:`PyConfig.platlibdir`"
msgstr ""
-#: c-api/init_config.rst:1330
+#: c-api/init_config.rst:1329
msgid ":c:member:`PyConfig.pathconfig_warnings`"
msgstr ""
-#: c-api/init_config.rst:1331
+#: c-api/init_config.rst:1330
msgid ":c:member:`PyConfig.program_name`"
msgstr ""
-#: c-api/init_config.rst:1332
+#: c-api/init_config.rst:1331
msgid ":c:member:`PyConfig.pythonpath_env`"
msgstr ""
-#: c-api/init_config.rst:1333
+#: c-api/init_config.rst:1332
msgid "current working directory: to get absolute paths"
msgstr ""
-#: c-api/init_config.rst:1334
+#: c-api/init_config.rst:1333
msgid ""
"``PATH`` environment variable to get the program full path (from :c:member:"
"`PyConfig.program_name`)"
msgstr ""
-#: c-api/init_config.rst:1336
+#: c-api/init_config.rst:1335
msgid "``__PYVENV_LAUNCHER__`` environment variable"
msgstr ""
-#: c-api/init_config.rst:1337
+#: c-api/init_config.rst:1336
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 ""
-#: c-api/init_config.rst:1341
+#: c-api/init_config.rst:1340
msgid "Path configuration output fields:"
msgstr ""
-#: c-api/init_config.rst:1343
+#: c-api/init_config.rst:1342
msgid ":c:member:`PyConfig.base_exec_prefix`"
msgstr ""
-#: c-api/init_config.rst:1344
+#: c-api/init_config.rst:1343
msgid ":c:member:`PyConfig.base_executable`"
msgstr ""
-#: c-api/init_config.rst:1345
+#: c-api/init_config.rst:1344
msgid ":c:member:`PyConfig.base_prefix`"
msgstr ""
-#: c-api/init_config.rst:1346
+#: c-api/init_config.rst:1345
msgid ":c:member:`PyConfig.exec_prefix`"
msgstr ""
-#: c-api/init_config.rst:1347
+#: c-api/init_config.rst:1346
msgid ":c:member:`PyConfig.executable`"
msgstr ""
-#: c-api/init_config.rst:1348
+#: c-api/init_config.rst:1347
msgid ""
":c:member:`PyConfig.module_search_paths_set`, :c:member:`PyConfig."
"module_search_paths`"
msgstr ""
-#: c-api/init_config.rst:1350
+#: c-api/init_config.rst:1349
msgid ":c:member:`PyConfig.prefix`"
msgstr ""
-#: c-api/init_config.rst:1352
+#: c-api/init_config.rst:1351
msgid ""
"If at least one \"output field\" is not set, Python calculates the path "
"configuration to fill unset fields. If :c:member:`~PyConfig."
@@ -1683,7 +1682,7 @@ msgid ""
"module_search_paths_set` is set to 1."
msgstr ""
-#: c-api/init_config.rst:1358
+#: c-api/init_config.rst:1357
msgid ""
"It is possible to completely ignore the function calculating the default "
"path configuration by setting explicitly all path configuration output "
@@ -1693,52 +1692,52 @@ msgid ""
"well."
msgstr ""
-#: c-api/init_config.rst:1365
+#: c-api/init_config.rst:1364
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 ""
-#: c-api/init_config.rst:1368
+#: c-api/init_config.rst:1367
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 ""
-#: c-api/init_config.rst:1372
+#: c-api/init_config.rst:1371
msgid ":c:func:`Py_RunMain` and :c:func:`Py_Main` modify :data:`sys.path`:"
msgstr ""
-#: c-api/init_config.rst:1374
+#: c-api/init_config.rst:1373
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 ""
-#: c-api/init_config.rst:1377
+#: c-api/init_config.rst:1376
msgid "If :c:member:`~PyConfig.isolated` is zero:"
msgstr ""
-#: c-api/init_config.rst:1379
+#: c-api/init_config.rst:1378
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 ""
-#: c-api/init_config.rst:1381
+#: c-api/init_config.rst:1380
msgid ""
"If :c:member:`~PyConfig.run_filename` is set, prepend the directory of the "
"filename to :data:`sys.path`."
msgstr ""
-#: c-api/init_config.rst:1383
+#: c-api/init_config.rst:1382
msgid "Otherwise, prepend an empty string to :data:`sys.path`."
msgstr ""
-#: c-api/init_config.rst:1385
+#: c-api/init_config.rst:1384
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."
@@ -1747,156 +1746,156 @@ msgid ""
"data:`sys.path`."
msgstr ""
-#: c-api/init_config.rst:1391
+#: c-api/init_config.rst:1390
msgid "The following configuration files are used by the path configuration:"
msgstr ""
-#: c-api/init_config.rst:1393
+#: c-api/init_config.rst:1392
msgid "``pyvenv.cfg``"
msgstr ""
-#: c-api/init_config.rst:1394
+#: c-api/init_config.rst:1393
msgid "``python._pth`` (Windows only)"
msgstr ""
-#: c-api/init_config.rst:1395
+#: c-api/init_config.rst:1394
msgid "``pybuilddir.txt`` (Unix only)"
msgstr ""
-#: c-api/init_config.rst:1397
+#: c-api/init_config.rst:1396
msgid ""
"The ``__PYVENV_LAUNCHER__`` environment variable is used to set :c:member:"
"`PyConfig.base_executable`"
msgstr ""
-#: c-api/init_config.rst:1402
+#: c-api/init_config.rst:1401
msgid "Py_RunMain()"
msgstr ""
-#: c-api/init_config.rst:1406
+#: c-api/init_config.rst:1405
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 ""
-#: c-api/init_config.rst:1411
+#: c-api/init_config.rst:1410
msgid "By default and when if :option:`-i` option is used, run the REPL."
msgstr ""
-#: c-api/init_config.rst:1413
+#: c-api/init_config.rst:1412
msgid ""
"Finally, finalizes Python and returns an exit status that can be passed to "
"the ``exit()`` function."
msgstr ""
-#: c-api/init_config.rst:1416
+#: c-api/init_config.rst:1415
msgid ""
"See :ref:`Python Configuration ` for an example of "
"customized Python always running in isolated mode using :c:func:`Py_RunMain`."
msgstr ""
-#: c-api/init_config.rst:1422
+#: c-api/init_config.rst:1421
msgid "Py_GetArgcArgv()"
msgstr ""
-#: c-api/init_config.rst:1426
+#: c-api/init_config.rst:1425
msgid "Get the original command line arguments, before Python modified them."
msgstr ""
-#: c-api/init_config.rst:1428
+#: c-api/init_config.rst:1427
msgid "See also :c:member:`PyConfig.orig_argv` member."
msgstr ""
-#: c-api/init_config.rst:1432
+#: c-api/init_config.rst:1431
msgid "Multi-Phase Initialization Private Provisional API"
msgstr ""
-#: c-api/init_config.rst:1434
+#: c-api/init_config.rst:1433
msgid ""
"This section is a private provisional API introducing multi-phase "
-"initialization, the core feature of the :pep:`432`:"
+"initialization, the core feature of :pep:`432`:"
msgstr ""
-#: c-api/init_config.rst:1437
+#: c-api/init_config.rst:1436
msgid "\"Core\" initialization phase, \"bare minimum Python\":"
msgstr ""
-#: c-api/init_config.rst:1439
+#: c-api/init_config.rst:1438
msgid "Builtin types;"
msgstr ""
-#: c-api/init_config.rst:1440
+#: c-api/init_config.rst:1439
msgid "Builtin exceptions;"
msgstr ""
-#: c-api/init_config.rst:1441
+#: c-api/init_config.rst:1440
msgid "Builtin and frozen modules;"
msgstr ""
-#: c-api/init_config.rst:1442
+#: c-api/init_config.rst:1441
msgid ""
"The :mod:`sys` module is only partially initialized (ex: :data:`sys.path` "
"doesn't exist yet)."
msgstr ""
-#: c-api/init_config.rst:1445
+#: c-api/init_config.rst:1444
msgid "\"Main\" initialization phase, Python is fully initialized:"
msgstr ""
-#: c-api/init_config.rst:1447
+#: c-api/init_config.rst:1446
msgid "Install and configure :mod:`importlib`;"
msgstr ""
-#: c-api/init_config.rst:1448
+#: c-api/init_config.rst:1447
msgid "Apply the :ref:`Path Configuration `;"
msgstr ""
-#: c-api/init_config.rst:1449
+#: c-api/init_config.rst:1448
msgid "Install signal handlers;"
msgstr ""
-#: c-api/init_config.rst:1450
+#: c-api/init_config.rst:1449
msgid ""
"Finish :mod:`sys` module initialization (ex: create :data:`sys.stdout` and :"
"data:`sys.path`);"
msgstr ""
-#: c-api/init_config.rst:1452
+#: c-api/init_config.rst:1451
msgid ""
"Enable optional features like :mod:`faulthandler` and :mod:`tracemalloc`;"
msgstr ""
-#: c-api/init_config.rst:1453
+#: c-api/init_config.rst:1452
msgid "Import the :mod:`site` module;"
msgstr ""
-#: c-api/init_config.rst:1454
+#: c-api/init_config.rst:1453
msgid "etc."
msgstr ""
-#: c-api/init_config.rst:1456
+#: c-api/init_config.rst:1455
msgid "Private provisional API:"
msgstr ""
-#: c-api/init_config.rst:1458
+#: c-api/init_config.rst:1457
msgid ""
":c:member:`PyConfig._init_main`: if set to 0, :c:func:"
"`Py_InitializeFromConfig` stops at the \"Core\" initialization phase."
msgstr ""
-#: c-api/init_config.rst:1460
+#: c-api/init_config.rst:1459
msgid ""
":c:member:`PyConfig._isolated_interpreter`: if non-zero, disallow threads, "
"subprocesses and fork."
msgstr ""
-#: c-api/init_config.rst:1465
+#: c-api/init_config.rst:1464
msgid ""
"Move to the \"Main\" initialization phase, finish the Python initialization."
msgstr ""
-#: c-api/init_config.rst:1467
+#: c-api/init_config.rst:1466
msgid ""
"No module is imported during the \"Core\" phase and the ``importlib`` module "
"is not configured: the :ref:`Path Configuration ` is only "
@@ -1905,14 +1904,14 @@ msgid ""
"maybe install a custom :data:`sys.meta_path` importer or an import hook, etc."
msgstr ""
-#: c-api/init_config.rst:1473
+#: c-api/init_config.rst:1472
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 ""
-#: c-api/init_config.rst:1477
+#: c-api/init_config.rst:1476
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 "
@@ -1920,7 +1919,7 @@ msgid ""
"until a proper public API is designed."
msgstr ""
-#: c-api/init_config.rst:1482
+#: c-api/init_config.rst:1481
msgid ""
"Example running Python code between \"Core\" and \"Main\" initialization "
"phases::"
diff --git a/c-api/intro.po b/c-api/intro.po
index 1ff19ede09..2e2cf77bbd 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: 2021-09-23 16:16+0200\n"
+"POT-Creation-Date: 2023-03-22 22:57+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: FRENCH \n"
@@ -120,11 +120,11 @@ msgstr ""
msgid ""
"The header files are typically installed with Python. On Unix, these are "
"located in the directories :file:`{prefix}/include/pythonversion/` and :file:"
-"`{exec_prefix}/include/pythonversion/`, where :envvar:`prefix` and :envvar:"
-"`exec_prefix` are defined by the corresponding parameters to Python's :"
-"program:`configure` script and *version* is ``'%d.%d' % sys."
-"version_info[:2]``. On Windows, the headers are installed in :file:"
-"`{prefix}/include`, where :envvar:`prefix` is the installation directory "
+"`{exec_prefix}/include/pythonversion/`, where :option:`prefix <--prefix>` "
+"and :option:`exec_prefix <--exec-prefix>` are defined by the corresponding "
+"parameters to Python's :program:`configure` script and *version* is ``'%d."
+"%d' % sys.version_info[:2]``. On Windows, the headers are installed in :"
+"file:`{prefix}/include`, where ``prefix`` is the installation directory "
"specified to the installer."
msgstr ""
@@ -134,8 +134,8 @@ msgid ""
"compiler's search path for includes. Do *not* place the parent directories "
"on the search path and then use ``#include ``; this will "
"break on multi-platform builds since the platform independent headers under :"
-"envvar:`prefix` include the platform specific headers from :envvar:"
-"`exec_prefix`."
+"option:`prefix <--prefix>` include the platform specific headers from :"
+"option:`exec_prefix <--exec-prefix>`."
msgstr ""
#: c-api/intro.rst:95
@@ -272,13 +272,13 @@ msgstr ""
#: c-api/intro.rst:231
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 "
+"value of type :c:expr:`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:expr:`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."
@@ -491,19 +491,27 @@ msgstr ""
#: c-api/intro.rst:497
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 "
+"API; most are simple C types such as :c:expr:`int`, :c:expr:`long`, :c:expr:"
+"`double` and :c:expr:`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 ""
-#: c-api/intro.rst:509
+#: c-api/intro.rst:507
+msgid ""
+"A signed integral type such that ``sizeof(Py_ssize_t) == sizeof(size_t)``. "
+"C99 doesn't define such a thing directly (size_t is an unsigned integral "
+"type). See :pep:`353` for details. ``PY_SSIZE_T_MAX`` is the largest "
+"positive value of type :c:type:`Py_ssize_t`."
+msgstr ""
+
+#: c-api/intro.rst:516
msgid "Exceptions"
msgstr "Exceptions"
-#: c-api/intro.rst:511
+#: c-api/intro.rst:518
msgid ""
"The Python programmer only needs to deal with exceptions if specific error "
"handling is required; unhandled exceptions are automatically propagated to "
@@ -512,7 +520,7 @@ msgid ""
"stack traceback."
msgstr ""
-#: c-api/intro.rst:519
+#: c-api/intro.rst:526
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 "
@@ -527,7 +535,7 @@ msgid ""
"explicitly documented."
msgstr ""
-#: c-api/intro.rst:534
+#: c-api/intro.rst:541
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 "
@@ -540,7 +548,7 @@ msgid ""
"clears the exception state."
msgstr ""
-#: c-api/intro.rst:544
+#: c-api/intro.rst:551
msgid ""
"The full exception state consists of three objects (all of which can be "
"``NULL``): the exception type, the corresponding exception value, and the "
@@ -553,7 +561,7 @@ msgid ""
"``sys.exc_info()`` and friends."
msgstr ""
-#: c-api/intro.rst:556
+#: c-api/intro.rst:563
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."
@@ -567,7 +575,7 @@ msgid ""
"referenced by the stack frames in the traceback."
msgstr ""
-#: c-api/intro.rst:567
+#: c-api/intro.rst:574
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 "
@@ -578,7 +586,7 @@ msgid ""
"of the error."
msgstr ""
-#: c-api/intro.rst:576
+#: c-api/intro.rst:583
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 "
@@ -587,11 +595,11 @@ msgid ""
"why you like Python, we show the equivalent Python code::"
msgstr ""
-#: c-api/intro.rst:591
+#: c-api/intro.rst:598
msgid "Here is the corresponding C code, in all its glory::"
msgstr ""
-#: c-api/intro.rst:643
+#: c-api/intro.rst:650
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:"
@@ -604,11 +612,11 @@ msgid ""
"success after the final call made is successful."
msgstr ""
-#: c-api/intro.rst:657
+#: c-api/intro.rst:664
msgid "Embedding Python"
msgstr "Embarquer Python"
-#: c-api/intro.rst:659
+#: c-api/intro.rst:666
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 "
@@ -616,7 +624,7 @@ msgid ""
"the interpreter can only be used after the interpreter has been initialized."
msgstr ""
-#: c-api/intro.rst:672
+#: c-api/intro.rst:679
msgid ""
"The basic initialization function is :c:func:`Py_Initialize`. This "
"initializes the table of loaded modules, and creates the fundamental "
@@ -624,7 +632,7 @@ msgid ""
"initializes the module search path (``sys.path``)."
msgstr ""
-#: c-api/intro.rst:679
+#: c-api/intro.rst:686
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 "
@@ -632,7 +640,7 @@ msgid ""
"argv, updatepath)`` after the call to :c:func:`Py_Initialize`."
msgstr ""
-#: c-api/intro.rst:684
+#: c-api/intro.rst:691
msgid ""
"On most systems (in particular, on Unix and Windows, although the details "
"are slightly different), :c:func:`Py_Initialize` calculates the module "
@@ -644,7 +652,7 @@ msgid ""
"on the shell command search path (the environment variable :envvar:`PATH`)."
msgstr ""
-#: c-api/intro.rst:693
+#: c-api/intro.rst:700
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/"
@@ -655,7 +663,7 @@ msgid ""
"in front of the standard path by setting :envvar:`PYTHONPATH`."
msgstr ""
-#: c-api/intro.rst:708
+#: c-api/intro.rst:715
msgid ""
"The embedding application can steer the search by calling "
"``Py_SetProgramName(file)`` *before* calling :c:func:`Py_Initialize`. Note "
@@ -666,7 +674,7 @@ msgid ""
"func:`Py_GetProgramFullPath` (all defined in :file:`Modules/getpath.c`)."
msgstr ""
-#: c-api/intro.rst:718
+#: c-api/intro.rst:725
msgid ""
"Sometimes, it is desirable to \"uninitialize\" Python. For instance, the "
"application may want to start over (make another call to :c:func:"
@@ -680,28 +688,28 @@ msgid ""
"released."
msgstr ""
-#: c-api/intro.rst:732
+#: c-api/intro.rst:739
msgid "Debugging Builds"
msgstr ""
-#: c-api/intro.rst:734
+#: c-api/intro.rst:741
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 ""
-#: c-api/intro.rst:738
+#: c-api/intro.rst:745
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 "
"available that support tracing of reference counts, debugging the memory "
"allocator, or low-level profiling of the main interpreter loop. Only the "
-"most frequently-used builds will be described in the remainder of this "
+"most frequently used builds will be described in the remainder of this "
"section."
msgstr ""
-#: c-api/intro.rst:744
+#: c-api/intro.rst:751
msgid ""
"Compiling the interpreter with the :c:macro:`Py_DEBUG` macro defined "
"produces what is generally meant by :ref:`a debug build of Python `."
msgstr ""
-#: c-api/intro.rst:755
+#: c-api/intro.rst:762
msgid ""
"Defining :c:macro:`Py_TRACE_REFS` enables reference tracing (see the :option:"
"`configure --with-trace-refs option <--with-trace-refs>`). When defined, a "
@@ -728,7 +736,7 @@ msgid ""
"this happens after every statement run by the interpreter.)"
msgstr ""
-#: c-api/intro.rst:762
+#: c-api/intro.rst:769
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 5a03337779..f910b9223c 100644
--- a/c-api/iter.po
+++ b/c-api/iter.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-11-27 10:27+0100\n"
+"POT-Creation-Date: 2022-04-05 10:05+0200\n"
"PO-Revision-Date: 2018-02-15 00:33+0100\n"
"Last-Translator: Julien Palard \n"
"Language-Team: FRENCH \n"
@@ -32,8 +32,8 @@ msgstr "Renvoie vrai si l'objet *o* supporte le protocole d'itération."
#: c-api/iter.rst:17
#, fuzzy
msgid ""
-"Returns non-zero if the object 'obj' provides :class:`AsyncIterator` "
-"protocols, and ``0`` otherwise. This function always succeeds."
+"Return non-zero if the object *o* provides the :class:`AsyncIterator` "
+"protocol, and ``0`` otherwise. This function always succeeds."
msgstr "Renvoie vrai si l'objet *o* supporte le protocole d'itération."
#: c-api/iter.rst:24
diff --git a/c-api/long.po b/c-api/long.po
index a39c1815da..8ec49d2f49 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: 2021-09-23 16:16+0200\n"
+"POT-Creation-Date: 2023-03-22 22:57+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: FRENCH \n"
@@ -72,13 +72,13 @@ msgstr ""
#: 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 "
+"integers between ``-5`` and ``256``. When you create an int in that range "
"you actually just get back a reference to the existing object."
msgstr ""
#: c-api/long.rst:50
msgid ""
-"Return a new :c:type:`PyLongObject` object from a C :c:type:`unsigned long`, "
+"Return a new :c:type:`PyLongObject` object from a C :c:expr:`unsigned long`, "
"or ``NULL`` on failure."
msgstr ""
@@ -96,13 +96,13 @@ msgstr ""
#: c-api/long.rst:68
msgid ""
-"Return a new :c:type:`PyLongObject` object from a C :c:type:`long long`, or "
+"Return a new :c:type:`PyLongObject` object from a C :c:expr:`long long`, or "
"``NULL`` on failure."
msgstr ""
#: c-api/long.rst:74
msgid ""
-"Return a new :c:type:`PyLongObject` object from a C :c:type:`unsigned long "
+"Return a new :c:type:`PyLongObject` object from a C :c:expr:`unsigned long "
"long`, or ``NULL`` on failure."
msgstr ""
@@ -125,44 +125,51 @@ msgid ""
"are no digits, :exc:`ValueError` will be raised."
msgstr ""
-#: c-api/long.rst:99
+#: c-api/long.rst:96
+msgid ""
+"Python methods :meth:`int.to_bytes` and :meth:`int.from_bytes` to convert a :"
+"c:type:`PyLongObject` to/from an array of bytes in base ``256``. You can "
+"call those from C using :c:func:`PyObject_CallMethod`."
+msgstr ""
+
+#: c-api/long.rst:103
msgid ""
"Convert a sequence of Unicode digits in the string *u* to a Python integer "
"value."
msgstr ""
-#: c-api/long.rst:107
+#: c-api/long.rst:111
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 ""
-#: c-api/long.rst:136
+#: c-api/long.rst:140
msgid ""
-"Return a C :c:type:`long` representation of *obj*. If *obj* is not an "
+"Return a C :c:expr:`long` representation of *obj*. If *obj* is not an "
"instance of :c:type:`PyLongObject`, first call its :meth:`__index__` method "
"(if present) to convert it to a :c:type:`PyLongObject`."
msgstr ""
-#: c-api/long.rst:122
+#: c-api/long.rst:126
msgid ""
"Raise :exc:`OverflowError` if the value of *obj* is out of range for a :c:"
-"type:`long`."
+"expr:`long`."
msgstr ""
-#: c-api/long.rst:145 c-api/long.rst:186 c-api/long.rst:209
+#: c-api/long.rst:149 c-api/long.rst:190 c-api/long.rst:213
msgid "Returns ``-1`` on error. Use :c:func:`PyErr_Occurred` to disambiguate."
msgstr ""
-#: c-api/long.rst:147 c-api/long.rst:190 c-api/long.rst:294
+#: c-api/long.rst:151 c-api/long.rst:194 c-api/long.rst:298
msgid "Use :meth:`__index__` if available."
msgstr ""
-#: c-api/long.rst:150 c-api/long.rst:193 c-api/long.rst:297
+#: c-api/long.rst:154 c-api/long.rst:197 c-api/long.rst:301
msgid "This function will no longer use :meth:`__int__`."
msgstr ""
-#: c-api/long.rst:140
+#: c-api/long.rst:144
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 "
@@ -170,20 +177,20 @@ msgid ""
"occurs set *\\*overflow* to ``0`` and return ``-1`` as usual."
msgstr ""
-#: c-api/long.rst:177
+#: c-api/long.rst:181
msgid ""
-"Return a C :c:type:`long long` representation of *obj*. If *obj* is not an "
+"Return a C :c:expr:`long long` representation of *obj*. If *obj* is not an "
"instance of :c:type:`PyLongObject`, first call its :meth:`__index__` method "
"(if present) to convert it to a :c:type:`PyLongObject`."
msgstr ""
-#: c-api/long.rst:163
+#: c-api/long.rst:167
msgid ""
"Raise :exc:`OverflowError` if the value of *obj* is out of range for a :c:"
-"type:`long long`."
+"expr:`long long`."
msgstr ""
-#: c-api/long.rst:181
+#: c-api/long.rst:185
msgid ""
"If the value of *obj* is greater than :const:`LLONG_MAX` or less than :const:"
"`LLONG_MIN`, set *\\*overflow* to ``1`` or ``-1``, respectively, and return "
@@ -191,141 +198,141 @@ msgid ""
"occurs set *\\*overflow* to ``0`` and return ``-1`` as usual."
msgstr ""
-#: c-api/long.rst:203
+#: c-api/long.rst:207
msgid ""
"Return a C :c:type:`Py_ssize_t` representation of *pylong*. *pylong* must "
"be an instance of :c:type:`PyLongObject`."
msgstr ""
-#: c-api/long.rst:206
+#: c-api/long.rst:210
msgid ""
"Raise :exc:`OverflowError` if the value of *pylong* is out of range for a :c:"
"type:`Py_ssize_t`."
msgstr ""
-#: c-api/long.rst:218
+#: c-api/long.rst:222
msgid ""
-"Return a C :c:type:`unsigned long` representation of *pylong*. *pylong* "
+"Return a C :c:expr:`unsigned long` representation of *pylong*. *pylong* "
"must be an instance of :c:type:`PyLongObject`."
msgstr ""
-#: c-api/long.rst:221
+#: c-api/long.rst:225
msgid ""
"Raise :exc:`OverflowError` if the value of *pylong* is out of range for a :c:"
-"type:`unsigned long`."
+"expr:`unsigned long`."
msgstr ""
-#: c-api/long.rst:224
+#: c-api/long.rst:228
msgid ""
"Returns ``(unsigned long)-1`` on error. Use :c:func:`PyErr_Occurred` to "
"disambiguate."
msgstr ""
-#: c-api/long.rst:234
+#: c-api/long.rst:238
msgid ""
"Return a C :c:type:`size_t` representation of *pylong*. *pylong* must be an "
"instance of :c:type:`PyLongObject`."
msgstr ""
-#: c-api/long.rst:237
+#: c-api/long.rst:241
msgid ""
"Raise :exc:`OverflowError` if the value of *pylong* is out of range for a :c:"
"type:`size_t`."
msgstr ""
-#: c-api/long.rst:240
+#: c-api/long.rst:244
msgid ""
"Returns ``(size_t)-1`` on error. Use :c:func:`PyErr_Occurred` to "
"disambiguate."
msgstr ""
-#: c-api/long.rst:249
+#: c-api/long.rst:253
msgid ""
-"Return a C :c:type:`unsigned long long` representation of *pylong*. "
+"Return a C :c:expr:`unsigned long long` representation of *pylong*. "
"*pylong* must be an instance of :c:type:`PyLongObject`."
msgstr ""
-#: c-api/long.rst:252
+#: c-api/long.rst:256
msgid ""
"Raise :exc:`OverflowError` if the value of *pylong* is out of range for an :"
-"c:type:`unsigned long long`."
+"c:expr:`unsigned long long`."
msgstr ""
-#: c-api/long.rst:255
+#: c-api/long.rst:259
msgid ""
"Returns ``(unsigned long long)-1`` on error. Use :c:func:`PyErr_Occurred` to "
"disambiguate."
msgstr ""
-#: c-api/long.rst:258
+#: c-api/long.rst:262
msgid ""
"A negative *pylong* now raises :exc:`OverflowError`, not :exc:`TypeError`."
msgstr ""
-#: c-api/long.rst:264
+#: c-api/long.rst:268
msgid ""
-"Return a C :c:type:`unsigned long` representation of *obj*. If *obj* is not "
+"Return a C :c:expr:`unsigned long` representation of *obj*. If *obj* is not "
"an instance of :c:type:`PyLongObject`, first call its :meth:`__index__` "
"method (if present) to convert it to a :c:type:`PyLongObject`."
msgstr ""
-#: c-api/long.rst:268
+#: c-api/long.rst:272
msgid ""
-"If the value of *obj* is out of range for an :c:type:`unsigned long`, return "
+"If the value of *obj* is out of range for an :c:expr:`unsigned long`, return "
"the reduction of that value modulo ``ULONG_MAX + 1``."
msgstr ""
-#: c-api/long.rst:271
+#: c-api/long.rst:275
msgid ""
"Returns ``(unsigned long)-1`` on error. Use :c:func:`PyErr_Occurred` to "
"disambiguate."
msgstr ""
-#: c-api/long.rst:283
+#: c-api/long.rst:287
msgid ""
-"Return a C :c:type:`unsigned long long` representation of *obj*. If *obj* "
+"Return a C :c:expr:`unsigned long long` representation of *obj*. If *obj* "
"is not an instance of :c:type:`PyLongObject`, first call its :meth:"
"`__index__` method (if present) to convert it to a :c:type:`PyLongObject`."
msgstr ""
-#: c-api/long.rst:288
+#: c-api/long.rst:292
msgid ""
-"If the value of *obj* is out of range for an :c:type:`unsigned long long`, "
+"If the value of *obj* is out of range for an :c:expr:`unsigned long long`, "
"return the reduction of that value modulo ``ULLONG_MAX + 1``."
msgstr ""
-#: c-api/long.rst:291
+#: c-api/long.rst:295
msgid ""
"Returns ``(unsigned long long)-1`` on error. Use :c:func:`PyErr_Occurred` "
"to disambiguate."
msgstr ""
-#: c-api/long.rst:303
+#: c-api/long.rst:307
msgid ""
-"Return a C :c:type:`double` representation of *pylong*. *pylong* must be an "
+"Return a C :c:expr:`double` representation of *pylong*. *pylong* must be an "
"instance of :c:type:`PyLongObject`."
msgstr ""
-#: c-api/long.rst:306
+#: c-api/long.rst:310
msgid ""
"Raise :exc:`OverflowError` if the value of *pylong* is out of range for a :c:"
-"type:`double`."
+"expr:`double`."
msgstr ""
-#: c-api/long.rst:309
+#: c-api/long.rst:313
msgid ""
"Returns ``-1.0`` on error. Use :c:func:`PyErr_Occurred` to disambiguate."
msgstr ""
-#: c-api/long.rst:314
+#: c-api/long.rst:318
msgid ""
-"Convert a Python integer *pylong* to a C :c:type:`void` pointer. If *pylong* "
+"Convert a Python integer *pylong* to a C :c:expr:`void` pointer. If *pylong* "
"cannot be converted, an :exc:`OverflowError` will be raised. This is only "
-"assured to produce a usable :c:type:`void` pointer for values created with :"
+"assured to produce a usable :c:expr:`void` pointer for values created with :"
"c:func:`PyLong_FromVoidPtr`."
msgstr ""
-#: c-api/long.rst:319
+#: c-api/long.rst:323
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 4f1d3a2386..55bd3511a0 100644
--- a/c-api/mapping.po
+++ b/c-api/mapping.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-10-01 16:00+0200\n"
+"POT-Creation-Date: 2022-04-05 10:05+0200\n"
"PO-Revision-Date: 2021-01-28 14:58+0100\n"
"Last-Translator: Jules Lasne \n"
"Language-Team: FRENCH \n"
@@ -32,11 +32,13 @@ msgstr ""
# → pas correct en VO !
# - "This function always succeeds." équivaut-il à "jamais d'erreur" ?
#: c-api/mapping.rst:14
+#, fuzzy
msgid ""
-"Return ``1`` if the object provides mapping protocol or supports slicing, "
-"and ``0`` otherwise. Note that it returns ``1`` for Python classes with a :"
-"meth:`__getitem__` method since in general case it is impossible to "
-"determine what type of keys it supports. This function always succeeds."
+"Return ``1`` if the object provides the mapping protocol or supports "
+"slicing, and ``0`` otherwise. Note that it returns ``1`` for Python classes "
+"with a :meth:`__getitem__` method, since in general it is impossible to "
+"determine what type of keys the class 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 "
diff --git a/c-api/marshal.po b/c-api/marshal.po
index 2d2bfca6ec..be0eee8b28 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: 2020-10-01 16:00+0200\n"
+"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: FRENCH \n"
@@ -41,9 +41,9 @@ msgstr ""
#: c-api/marshal.rst:24
msgid ""
-"Marshal a :c:type:`long` integer, *value*, to *file*. This will only write "
+"Marshal a :c:expr:`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."
+"native :c:expr:`long` type. *version* indicates the file format."
msgstr ""
#: c-api/marshal.rst:31
@@ -64,9 +64,9 @@ msgstr ""
#: 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:expr:`long` from the data stream in a :c:expr:`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`."
+"regardless of the native size of :c:expr:`long`."
msgstr ""
#: c-api/marshal.rst:60
@@ -77,14 +77,14 @@ msgstr ""
#: c-api/marshal.rst:56
msgid ""
-"Return a C :c:type:`short` from the data stream in a :c:type:`FILE*` opened "
+"Return a C :c:expr:`short` from the data stream in a :c:expr:`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`."
+"regardless of the native size of :c:expr:`short`."
msgstr ""
#: c-api/marshal.rst:66
msgid ""
-"Return a Python object from the data stream in a :c:type:`FILE*` opened for "
+"Return a Python object from the data stream in a :c:expr:`FILE*` opened for "
"reading."
msgstr ""
@@ -96,7 +96,7 @@ msgstr ""
#: c-api/marshal.rst:75
msgid ""
-"Return a Python object from the data stream in a :c:type:`FILE*` opened for "
+"Return a Python object from the data stream in a :c:expr:`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 "
diff --git a/c-api/memory.po b/c-api/memory.po
index c06c810c38..773069639c 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: 2021-09-23 16:16+0200\n"
+"POT-Creation-Date: 2023-03-22 22:57+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: FRENCH \n"
@@ -82,7 +82,7 @@ msgid ""
"extended with new object types written in C. Another reason for using the "
"Python heap is the desire to *inform* the Python memory manager about the "
"memory needs of the extension module. Even when the requested memory is used "
-"exclusively for internal, highly-specific purposes, delegating all memory "
+"exclusively for internal, highly specific purposes, delegating all memory "
"requests to the Python memory manager causes the interpreter to have a more "
"accurate image of its memory footprint as a whole. Consequently, under "
"certain circumstances, the Python memory manager may or may not trigger "
@@ -109,7 +109,7 @@ msgstr ""
msgid "Allocator Domains"
msgstr ""
-#: c-api/memory.rst:98
+#: c-api/memory.rst:100
msgid ""
"All allocating functions belong to one of three different \"domains\" (see "
"also :c:type:`PyMemAllocatorDomain`). These domains represent different "
@@ -125,11 +125,11 @@ msgid ""
"`PyObject_Malloc` for allocating memory for buffers."
msgstr ""
-#: c-api/memory.rst:110
+#: c-api/memory.rst:112
msgid "The three allocation domains are:"
msgstr ""
-#: c-api/memory.rst:112
+#: c-api/memory.rst:114
msgid ""
"Raw domain: intended for allocating memory for general-purpose memory "
"buffers where the allocation *must* go to the system allocator or where the "
@@ -137,20 +137,20 @@ msgid ""
"directly to the system."
msgstr ""
-#: c-api/memory.rst:117
+#: c-api/memory.rst:119
msgid ""
"\"Mem\" domain: intended for allocating memory for Python buffers and "
"general-purpose memory buffers where the allocation must be performed with "
"the :term:`GIL` held. The memory is taken from the Python private heap."
msgstr ""
-#: c-api/memory.rst:121
+#: c-api/memory.rst:123
msgid ""
"Object domain: intended for allocating memory belonging to Python objects. "
"The memory is taken from the Python private heap."
msgstr ""
-#: c-api/memory.rst:124
+#: c-api/memory.rst:126
msgid ""
"When freeing memory previously allocated by the allocating functions "
"belonging to a given domain,the matching specific deallocating functions "
@@ -158,18 +158,18 @@ msgid ""
"allocated using :c:func:`PyMem_Malloc`."
msgstr ""
-#: c-api/memory.rst:129
+#: c-api/memory.rst:131
msgid "Raw Memory Interface"
msgstr ""
-#: c-api/memory.rst:131
+#: c-api/memory.rst:133
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 ""
-#: c-api/memory.rst:135
+#: c-api/memory.rst:137
msgid ""
"The :ref:`default raw memory allocator ` uses the "
"following functions: :c:func:`malloc`, :c:func:`calloc`, :c:func:`realloc` "
@@ -177,60 +177,60 @@ msgid ""
"zero bytes."
msgstr ""
-#: c-api/memory.rst:215 c-api/memory.rst:323
+#: c-api/memory.rst:217 c-api/memory.rst:325
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:expr:`void*` to the "
"allocated memory, or ``NULL`` if the request fails."
msgstr ""
-#: c-api/memory.rst:147
+#: c-api/memory.rst:149
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 ""
-#: c-api/memory.rst:225 c-api/memory.rst:333
+#: c-api/memory.rst:227 c-api/memory.rst:335
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:expr:`void*` to the allocated memory, or ``NULL`` if "
"the request fails. The memory is initialized to zeros."
msgstr ""
-#: c-api/memory.rst:158
+#: c-api/memory.rst:160
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 ""
-#: c-api/memory.rst:238 c-api/memory.rst:346
+#: c-api/memory.rst:240 c-api/memory.rst:348
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 ""
-#: c-api/memory.rst:170
+#: c-api/memory.rst:172
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 ""
-#: c-api/memory.rst:174
+#: c-api/memory.rst:176
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 ""
-#: c-api/memory.rst:178
+#: c-api/memory.rst:180
msgid ""
"If the request fails, :c:func:`PyMem_RawRealloc` returns ``NULL`` and *p* "
"remains a valid pointer to the previous memory area."
msgstr ""
-#: c-api/memory.rst:184
+#: c-api/memory.rst:186
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:"
@@ -238,72 +238,72 @@ msgid ""
"called before, undefined behavior occurs."
msgstr ""
-#: c-api/memory.rst:259 c-api/memory.rst:367
+#: c-api/memory.rst:261 c-api/memory.rst:369
msgid "If *p* is ``NULL``, no operation is performed."
msgstr ""
-#: c-api/memory.rst:195
+#: c-api/memory.rst:197
msgid "Memory Interface"
msgstr ""
-#: c-api/memory.rst:303
+#: c-api/memory.rst:305
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 ""
-#: c-api/memory.rst:201
+#: c-api/memory.rst:203
msgid ""
"The :ref:`default memory allocator ` uses the :"
"ref:`pymalloc memory allocator `."
msgstr ""
-#: c-api/memory.rst:318
+#: c-api/memory.rst:320
msgid ""
"The :term:`GIL ` must be held when using these "
"functions."
msgstr ""
-#: c-api/memory.rst:211
+#: c-api/memory.rst:213
msgid ""
"The default allocator is now pymalloc instead of system :c:func:`malloc`."
msgstr ""
-#: c-api/memory.rst:218
+#: c-api/memory.rst:220
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 ""
-#: c-api/memory.rst:229
+#: c-api/memory.rst:231
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 ""
-#: c-api/memory.rst:241
+#: c-api/memory.rst:243
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 ""
-#: c-api/memory.rst:245
+#: c-api/memory.rst:247
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 ""
-#: c-api/memory.rst:248
+#: c-api/memory.rst:250
msgid ""
"If the request fails, :c:func:`PyMem_Realloc` returns ``NULL`` and *p* "
"remains a valid pointer to the previous memory area."
msgstr ""
-#: c-api/memory.rst:254
+#: c-api/memory.rst:256
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:"
@@ -311,38 +311,38 @@ msgid ""
"undefined behavior occurs."
msgstr ""
-#: c-api/memory.rst:261
+#: c-api/memory.rst:263
msgid ""
"The following type-oriented macros are provided for convenience. Note that "
"*TYPE* refers to any C type."
msgstr ""
-#: c-api/memory.rst:267
+#: c-api/memory.rst:269
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 "
+"of memory. Returns a pointer cast to :c:expr:`TYPE*`. The memory will not "
"have been initialized in any way."
msgstr ""
-#: c-api/memory.rst:274
+#: c-api/memory.rst:276
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:expr:`TYPE*`. On "
"return, *p* will be a pointer to the new memory area, or ``NULL`` in the "
"event of failure."
msgstr ""
-#: c-api/memory.rst:279
+#: c-api/memory.rst:281
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 ""
-#: c-api/memory.rst:285
+#: c-api/memory.rst:287
msgid "Same as :c:func:`PyMem_Free`."
msgstr ""
-#: c-api/memory.rst:287
+#: c-api/memory.rst:289
msgid ""
"In addition, the following macro sets are provided for calling the Python "
"memory allocator directly, without involving the C API functions listed "
@@ -350,83 +350,83 @@ msgid ""
"across Python versions and is therefore deprecated in extension modules."
msgstr ""
-#: c-api/memory.rst:292
+#: c-api/memory.rst:294
msgid "``PyMem_MALLOC(size)``"
msgstr ""
-#: c-api/memory.rst:293
+#: c-api/memory.rst:295
msgid "``PyMem_NEW(type, size)``"
msgstr ""
-#: c-api/memory.rst:294
+#: c-api/memory.rst:296
msgid "``PyMem_REALLOC(ptr, size)``"
msgstr ""
-#: c-api/memory.rst:295
+#: c-api/memory.rst:297
msgid "``PyMem_RESIZE(ptr, type, size)``"
msgstr ""
-#: c-api/memory.rst:296
+#: c-api/memory.rst:298
msgid "``PyMem_FREE(ptr)``"
msgstr ""
-#: c-api/memory.rst:297
+#: c-api/memory.rst:299
msgid "``PyMem_DEL(ptr)``"
msgstr ""
-#: c-api/memory.rst:301
+#: c-api/memory.rst:303
msgid "Object allocators"
msgstr ""
-#: c-api/memory.rst:308
+#: c-api/memory.rst:310
msgid ""
"There is no guarantee that the memory returned by these allocators can be "
-"successfully casted to a Python object when intercepting the allocating "
+"successfully cast to a Python object when intercepting the allocating "
"functions in this domain by the methods described in the :ref:`Customize "
"Memory Allocators ` section."
msgstr ""
-#: c-api/memory.rst:313
+#: c-api/memory.rst:315
msgid ""
"The :ref:`default object allocator ` uses the :"
"ref:`pymalloc memory allocator `."
msgstr ""
-#: c-api/memory.rst:326
+#: c-api/memory.rst:328
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 ""
-#: c-api/memory.rst:337
+#: c-api/memory.rst:339
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 ""
-#: c-api/memory.rst:349
+#: c-api/memory.rst:351
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 ""
-#: c-api/memory.rst:353
+#: c-api/memory.rst:355
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 ""
-#: c-api/memory.rst:356
+#: c-api/memory.rst:358
msgid ""
"If the request fails, :c:func:`PyObject_Realloc` returns ``NULL`` and *p* "
"remains a valid pointer to the previous memory area."
msgstr ""
-#: c-api/memory.rst:362
+#: c-api/memory.rst:364
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:"
@@ -434,276 +434,298 @@ msgid ""
"called before, undefined behavior occurs."
msgstr ""
-#: c-api/memory.rst:373
+#: c-api/memory.rst:375
msgid "Default Memory Allocators"
msgstr ""
-#: c-api/memory.rst:375
+#: c-api/memory.rst:377
msgid "Default memory allocators:"
msgstr ""
-#: c-api/memory.rst:378
+#: c-api/memory.rst:380
msgid "Configuration"
msgstr "Configuration"
-#: c-api/memory.rst:378
+#: c-api/memory.rst:380
msgid "Name"
msgstr "Nom"
-#: c-api/memory.rst:378
+#: c-api/memory.rst:380
msgid "PyMem_RawMalloc"
msgstr ""
-#: c-api/memory.rst:378
+#: c-api/memory.rst:380
msgid "PyMem_Malloc"
msgstr ""
-#: c-api/memory.rst:378
+#: c-api/memory.rst:380
msgid "PyObject_Malloc"
msgstr ""
-#: c-api/memory.rst:380
+#: c-api/memory.rst:382
msgid "Release build"
msgstr ""
-#: c-api/memory.rst:380
+#: c-api/memory.rst:382
msgid "``\"pymalloc\"``"
msgstr ""
-#: c-api/memory.rst:382
+#: c-api/memory.rst:384
msgid "``malloc``"
msgstr ""
-#: c-api/memory.rst:380
+#: c-api/memory.rst:382
msgid "``pymalloc``"
msgstr ""
-#: c-api/memory.rst:381
+#: c-api/memory.rst:383
msgid "Debug build"
msgstr ""
-#: c-api/memory.rst:381
+#: c-api/memory.rst:383
msgid "``\"pymalloc_debug\"``"
msgstr ""
-#: c-api/memory.rst:383
+#: c-api/memory.rst:385
msgid "``malloc`` + debug"
msgstr ""
-#: c-api/memory.rst:381
+#: c-api/memory.rst:383
msgid "``pymalloc`` + debug"
msgstr ""
-#: c-api/memory.rst:382
+#: c-api/memory.rst:384
msgid "Release build, without pymalloc"
msgstr ""
-#: c-api/memory.rst:382
+#: c-api/memory.rst:384
msgid "``\"malloc\"``"
msgstr ""
-#: c-api/memory.rst:383
+#: c-api/memory.rst:385
msgid "Debug build, without pymalloc"
msgstr ""
-#: c-api/memory.rst:383
+#: c-api/memory.rst:385
msgid "``\"malloc_debug\"``"
msgstr ""
-#: c-api/memory.rst:386
+#: c-api/memory.rst:388
msgid "Legend:"
msgstr ""
-#: c-api/memory.rst:388
+#: c-api/memory.rst:390
msgid "Name: value for :envvar:`PYTHONMALLOC` environment variable."
msgstr ""
-#: c-api/memory.rst:389
+#: c-api/memory.rst:391
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 ""
-#: c-api/memory.rst:391
+#: c-api/memory.rst:393
msgid "``pymalloc``: :ref:`pymalloc memory allocator `."
msgstr ""
-#: c-api/memory.rst:392
+#: c-api/memory.rst:394
msgid ""
"\"+ debug\": with :ref:`debug hooks on the Python memory allocators `."
msgstr ""
-#: c-api/memory.rst:394
+#: c-api/memory.rst:396
msgid "\"Debug build\": :ref:`Python build in debug mode `."
msgstr ""
-#: c-api/memory.rst:399
+#: c-api/memory.rst:401
msgid "Customize Memory Allocators"
msgstr ""
-#: c-api/memory.rst:405
+#: c-api/memory.rst:407
msgid ""
-"Structure used to describe a memory block allocator. The structure has four "
-"fields:"
+"Structure used to describe a memory block allocator. The structure has the "
+"following fields:"
msgstr ""
-#: c-api/memory.rst:626
+#: c-api/memory.rst:647
msgid "Field"
msgstr "Champ"
-#: c-api/memory.rst:626
+#: c-api/memory.rst:647
msgid "Meaning"
msgstr "Signification"
-#: c-api/memory.rst:628
+#: c-api/memory.rst:649
msgid "``void *ctx``"
msgstr "``void *ctx``"
-#: c-api/memory.rst:628
+#: c-api/memory.rst:649
msgid "user context passed as first argument"
msgstr ""
-#: c-api/memory.rst:413
+#: c-api/memory.rst:415
msgid "``void* malloc(void *ctx, size_t size)``"
msgstr "``void* malloc(void *ctx, size_t size)``"
-#: c-api/memory.rst:413
+#: c-api/memory.rst:415
msgid "allocate a memory block"
msgstr ""
-#: c-api/memory.rst:415
+#: c-api/memory.rst:417
msgid "``void* calloc(void *ctx, size_t nelem, size_t elsize)``"
msgstr ""
-#: c-api/memory.rst:415
+#: c-api/memory.rst:417
msgid "allocate a memory block initialized with zeros"
msgstr ""
-#: c-api/memory.rst:418
+#: c-api/memory.rst:420
msgid "``void* realloc(void *ctx, void *ptr, size_t new_size)``"
msgstr ""
-#: c-api/memory.rst:418
+#: c-api/memory.rst:420
msgid "allocate or resize a memory block"
msgstr ""
-#: c-api/memory.rst:420
+#: c-api/memory.rst:422
msgid "``void free(void *ctx, void *ptr)``"
msgstr "``void free(void *ctx, void *ptr)``"
-#: c-api/memory.rst:420
+#: c-api/memory.rst:422
msgid "free a memory block"
msgstr ""
-#: c-api/memory.rst:423
+#: c-api/memory.rst:425
msgid ""
"The :c:type:`PyMemAllocator` structure was renamed to :c:type:"
"`PyMemAllocatorEx` and a new ``calloc`` field was added."
msgstr ""
-#: c-api/memory.rst:430
+#: c-api/memory.rst:432
msgid "Enum used to identify an allocator domain. Domains:"
msgstr ""
-#: c-api/memory.rst:443 c-api/memory.rst:452
+#: c-api/memory.rst:445 c-api/memory.rst:454
#, fuzzy
msgid "Functions:"
msgstr "Fonctions"
-#: c-api/memory.rst:436
+#: c-api/memory.rst:438
#, fuzzy
msgid ":c:func:`PyMem_RawMalloc`"
msgstr ":c:func:`PyMem_RawCalloc`,"
-#: c-api/memory.rst:437
+#: c-api/memory.rst:439
#, fuzzy
msgid ":c:func:`PyMem_RawRealloc`"
msgstr ":c:func:`PyMem_RawCalloc`,"
-#: c-api/memory.rst:438
+#: c-api/memory.rst:440
#, fuzzy
msgid ":c:func:`PyMem_RawCalloc`"
msgstr ":c:func:`PyMem_RawCalloc`,"
-#: c-api/memory.rst:439
+#: c-api/memory.rst:441
msgid ":c:func:`PyMem_RawFree`"
msgstr ""
-#: c-api/memory.rst:445
+#: c-api/memory.rst:447
#, fuzzy
msgid ":c:func:`PyMem_Malloc`,"
msgstr ":c:func:`PyMem_Calloc`,"
-#: c-api/memory.rst:446
+#: c-api/memory.rst:448
#, fuzzy
msgid ":c:func:`PyMem_Realloc`"
msgstr ":c:func:`PyMem_Calloc`,"
-#: c-api/memory.rst:447
+#: c-api/memory.rst:449
#, fuzzy
msgid ":c:func:`PyMem_Calloc`"
msgstr ":c:func:`PyMem_Calloc`,"
-#: c-api/memory.rst:448
+#: c-api/memory.rst:450
msgid ":c:func:`PyMem_Free`"
msgstr ""
-#: c-api/memory.rst:454
+#: c-api/memory.rst:456
msgid ":c:func:`PyObject_Malloc`"
msgstr ""
-#: c-api/memory.rst:455
+#: c-api/memory.rst:457
msgid ":c:func:`PyObject_Realloc`"
msgstr ""
-#: c-api/memory.rst:456
+#: c-api/memory.rst:458
msgid ":c:func:`PyObject_Calloc`"
msgstr ""
-#: c-api/memory.rst:457
+#: c-api/memory.rst:459
msgid ":c:func:`PyObject_Free`"
msgstr ""
-#: c-api/memory.rst:461
+#: c-api/memory.rst:463
msgid "Get the memory block allocator of the specified domain."
msgstr ""
-#: c-api/memory.rst:466
+#: c-api/memory.rst:468
msgid "Set the memory block allocator of the specified domain."
msgstr ""
-#: c-api/memory.rst:468
+#: c-api/memory.rst:470
msgid ""
"The new allocator must return a distinct non-``NULL`` pointer when "
"requesting zero bytes."
msgstr ""
-#: c-api/memory.rst:471
+#: c-api/memory.rst:473
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 ""
-#: c-api/memory.rst:475
+#: c-api/memory.rst:477
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 ""
-#: c-api/memory.rst:482
+#: c-api/memory.rst:484
+msgid ":c:func:`PyMem_SetAllocator` does have the following contract:"
+msgstr ""
+
+#: c-api/memory.rst:486
+msgid ""
+"It can be called after :c:func:`Py_PreInitialize` and before :c:func:"
+"`Py_InitializeFromConfig` to install a custom memory allocator. There are no "
+"restrictions over the installed allocator other than the ones imposed by the "
+"domain (for instance, the Raw Domain allows the allocator to be called "
+"without the GIL held). See :ref:`the section on allocator domains ` for more information."
+msgstr ""
+
+#: c-api/memory.rst:494
+msgid ""
+"If called after Python has finish initializing (after :c:func:"
+"`Py_InitializeFromConfig` has been called) the allocator **must** wrap the "
+"existing allocator. Substituting the current allocator for some other "
+"arbitrary one is **not supported**."
+msgstr ""
+
+#: c-api/memory.rst:503
msgid ""
"Setup :ref:`debug hooks in the Python memory allocators ` "
"to detect memory errors."
msgstr ""
-#: c-api/memory.rst:489
+#: c-api/memory.rst:510
msgid "Debug hooks on the Python memory allocators"
msgstr ""
-#: c-api/memory.rst:491
+#: c-api/memory.rst:512
msgid ""
"When :ref:`Python is built in debug mode `, the :c:func:"
"`PyMem_SetupDebugHooks` function is called at the :ref:`Python "
@@ -711,19 +733,19 @@ msgid ""
"allocators to detect memory errors."
msgstr ""
-#: c-api/memory.rst:496
+#: c-api/memory.rst:517
msgid ""
"The :envvar:`PYTHONMALLOC` environment variable can be used to install debug "
"hooks on a Python compiled in release mode (ex: ``PYTHONMALLOC=debug``)."
msgstr ""
-#: c-api/memory.rst:499
+#: c-api/memory.rst:520
msgid ""
"The :c:func:`PyMem_SetupDebugHooks` function can be used to set debug hooks "
"after calling :c:func:`PyMem_SetAllocator`."
msgstr ""
-#: c-api/memory.rst:502
+#: c-api/memory.rst:523
msgid ""
"These debug hooks fill dynamically allocated memory blocks with special, "
"recognizable bit patterns. Newly allocated memory is filled with the byte "
@@ -733,32 +755,32 @@ msgid ""
"these bytes are unlikely to be valid addresses, floats, or ASCII strings."
msgstr ""
-#: c-api/memory.rst:509
+#: c-api/memory.rst:530
msgid "Runtime checks:"
msgstr ""
-#: c-api/memory.rst:511
+#: c-api/memory.rst:532
msgid ""
"Detect API violations. For example, detect if :c:func:`PyObject_Free` is "
"called on a memory block allocated by :c:func:`PyMem_Malloc`."
msgstr ""
-#: c-api/memory.rst:513
+#: c-api/memory.rst:534
msgid "Detect write before the start of the buffer (buffer underflow)."
msgstr ""
-#: c-api/memory.rst:514
+#: c-api/memory.rst:535
msgid "Detect write after the end of the buffer (buffer overflow)."
msgstr ""
-#: c-api/memory.rst:515
+#: c-api/memory.rst:536
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 ""
-#: c-api/memory.rst:520
+#: c-api/memory.rst:541
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 "
@@ -766,59 +788,59 @@ msgid ""
"memory block was traced."
msgstr ""
-#: c-api/memory.rst:525
+#: c-api/memory.rst:546
msgid ""
"Let *S* = ``sizeof(size_t)``. ``2*S`` bytes are added at each end of each "
"block of *N* bytes requested. The memory layout is like so, where p "
"represents the address returned by a malloc-like or realloc-like function "
-"(``p[i:j]`` means the slice of bytes from ``*(p+i)`` inclusive up to ``*(p"
-"+j)`` exclusive; note that the treatment of negative indices differs from a "
-"Python slice):"
+"(``p[i:j]`` means the slice of bytes from ``*(p+i)`` inclusive up to "
+"``*(p+j)`` exclusive; note that the treatment of negative indices differs "
+"from a Python slice):"
msgstr ""
-#: c-api/memory.rst:532
+#: c-api/memory.rst:553
msgid "``p[-2*S:-S]``"
msgstr ""
-#: c-api/memory.rst:532
+#: c-api/memory.rst:553
msgid ""
"Number of bytes originally asked for. This is a size_t, big-endian (easier "
"to read in a memory dump)."
msgstr ""
-#: c-api/memory.rst:539
+#: c-api/memory.rst:560
msgid "``p[-S]``"
msgstr ""
-#: c-api/memory.rst:535
+#: c-api/memory.rst:556
msgid "API identifier (ASCII character):"
msgstr ""
-#: c-api/memory.rst:537
+#: c-api/memory.rst:558
msgid "``'r'`` for :c:data:`PYMEM_DOMAIN_RAW`."
msgstr ""
-#: c-api/memory.rst:538
+#: c-api/memory.rst:559
msgid "``'m'`` for :c:data:`PYMEM_DOMAIN_MEM`."
msgstr ""
-#: c-api/memory.rst:539
+#: c-api/memory.rst:560
msgid "``'o'`` for :c:data:`PYMEM_DOMAIN_OBJ`."
msgstr ""
-#: c-api/memory.rst:542
+#: c-api/memory.rst:563
msgid "``p[-S+1:0]``"
msgstr ""
-#: c-api/memory.rst:542
+#: c-api/memory.rst:563
msgid "Copies of PYMEM_FORBIDDENBYTE. Used to catch under- writes and reads."
msgstr ""
-#: c-api/memory.rst:551
+#: c-api/memory.rst:572
msgid "``p[0:N]``"
msgstr ""
-#: c-api/memory.rst:545
+#: c-api/memory.rst:566
msgid ""
"The requested memory, filled with copies of PYMEM_CLEANBYTE, used to catch "
"reference to uninitialized memory. When a realloc-like function is called "
@@ -829,25 +851,25 @@ msgid ""
"bytes are also filled with PYMEM_DEADBYTE."
msgstr ""
-#: c-api/memory.rst:554
+#: c-api/memory.rst:575
msgid "``p[N:N+S]``"
msgstr ""
-#: c-api/memory.rst:554
+#: c-api/memory.rst:575
msgid "Copies of PYMEM_FORBIDDENBYTE. Used to catch over- writes and reads."
msgstr ""
-#: c-api/memory.rst:565
+#: c-api/memory.rst:586
msgid "``p[N+S:N+2*S]``"
msgstr ""
-#: c-api/memory.rst:557
+#: c-api/memory.rst:578
msgid ""
"Only used if the ``PYMEM_DEBUG_SERIALNO`` macro is defined (not defined by "
"default)."
msgstr ""
-#: c-api/memory.rst:560
+#: c-api/memory.rst:581
msgid ""
"A serial number, incremented by 1 on each call to a malloc-like or realloc-"
"like function. Big-endian ``size_t``. If \"bad memory\" is detected later, "
@@ -857,7 +879,7 @@ msgid ""
"incremented, and exists so you can set such a breakpoint easily."
msgstr ""
-#: c-api/memory.rst:567
+#: c-api/memory.rst:588
msgid ""
"A realloc-like or free-like function first checks that the "
"PYMEM_FORBIDDENBYTE bytes at each end are intact. If they've been altered, "
@@ -870,7 +892,7 @@ msgid ""
"getting used)."
msgstr ""
-#: c-api/memory.rst:576
+#: c-api/memory.rst:597
msgid ""
"The :c:func:`PyMem_SetupDebugHooks` function now also works on Python "
"compiled in release mode. On error, the debug hooks now use :mod:"
@@ -879,7 +901,7 @@ msgid ""
"`PYMEM_DOMAIN_OBJ` and :c:data:`PYMEM_DOMAIN_MEM` domains are called."
msgstr ""
-#: c-api/memory.rst:584
+#: c-api/memory.rst:605
msgid ""
"Byte patterns ``0xCB`` (``PYMEM_CLEANBYTE``), ``0xDB`` (``PYMEM_DEADBYTE``) "
"and ``0xFB`` (``PYMEM_FORBIDDENBYTE``) have been replaced with ``0xCD``, "
@@ -887,11 +909,11 @@ msgid ""
"``malloc()`` and ``free()``."
msgstr ""
-#: c-api/memory.rst:594
+#: c-api/memory.rst:615
msgid "The pymalloc allocator"
msgstr ""
-#: c-api/memory.rst:596
+#: c-api/memory.rst:617
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 "
@@ -900,115 +922,115 @@ msgid ""
"512 bytes."
msgstr ""
-#: c-api/memory.rst:601
+#: c-api/memory.rst:622
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 ""
-#: c-api/memory.rst:605
+#: c-api/memory.rst:626
msgid "The arena allocator uses the following functions:"
msgstr ""
-#: c-api/memory.rst:607
+#: c-api/memory.rst:628
msgid ":c:func:`VirtualAlloc` and :c:func:`VirtualFree` on Windows,"
msgstr ""
-#: c-api/memory.rst:608
+#: c-api/memory.rst:629
msgid ":c:func:`mmap` and :c:func:`munmap` if available,"
msgstr ""
-#: c-api/memory.rst:609
+#: c-api/memory.rst:630
msgid ":c:func:`malloc` and :c:func:`free` otherwise."
msgstr ""
-#: c-api/memory.rst:611
+#: c-api/memory.rst:632
msgid ""
"This allocator is disabled if Python is configured with the :option:`--"
"without-pymalloc` option. It can also be disabled at runtime using the :"
"envvar:`PYTHONMALLOC` environment variable (ex: ``PYTHONMALLOC=malloc``)."
msgstr ""
-#: c-api/memory.rst:616
+#: c-api/memory.rst:637
msgid "Customize pymalloc Arena Allocator"
msgstr ""
-#: c-api/memory.rst:622
+#: c-api/memory.rst:643
msgid ""
"Structure used to describe an arena allocator. The structure has three "
"fields:"
msgstr ""
-#: c-api/memory.rst:630
+#: c-api/memory.rst:651
msgid "``void* alloc(void *ctx, size_t size)``"
msgstr "``void* alloc(void *ctx, size_t size)``"
-#: c-api/memory.rst:630
+#: c-api/memory.rst:651
msgid "allocate an arena of size bytes"
msgstr ""
-#: c-api/memory.rst:632
+#: c-api/memory.rst:653
#, fuzzy
msgid "``void free(void *ctx, void *ptr, size_t size)``"
msgstr "``void free(void *ctx, void *ptr)``"
-#: c-api/memory.rst:632
+#: c-api/memory.rst:653
msgid "free an arena"
msgstr ""
-#: c-api/memory.rst:637
+#: c-api/memory.rst:658
msgid "Get the arena allocator."
msgstr ""
-#: c-api/memory.rst:641
+#: c-api/memory.rst:662
msgid "Set the arena allocator."
msgstr ""
-#: c-api/memory.rst:645
+#: c-api/memory.rst:666
msgid "tracemalloc C API"
msgstr ""
-#: c-api/memory.rst:651
+#: c-api/memory.rst:672
msgid "Track an allocated memory block in the :mod:`tracemalloc` module."
msgstr ""
-#: c-api/memory.rst:653
+#: c-api/memory.rst:674
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:656
+#: c-api/memory.rst:677
msgid "If memory block is already tracked, update the existing trace."
msgstr ""
-#: c-api/memory.rst:660
+#: c-api/memory.rst:681
msgid ""
"Untrack an allocated memory block in the :mod:`tracemalloc` module. Do "
"nothing if the block was not tracked."
msgstr ""
-#: c-api/memory.rst:663
+#: c-api/memory.rst:684
msgid "Return ``-2`` if tracemalloc is disabled, otherwise return ``0``."
msgstr ""
-#: c-api/memory.rst:669
+#: c-api/memory.rst:690
msgid "Examples"
msgstr "Exemples"
-#: c-api/memory.rst:671
+#: c-api/memory.rst:692
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 ""
-#: c-api/memory.rst:684
+#: c-api/memory.rst:705
msgid "The same code using the type-oriented function set::"
msgstr ""
-#: c-api/memory.rst:696
+#: c-api/memory.rst:717
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 "
@@ -1018,14 +1040,14 @@ msgid ""
"different allocators operating on different heaps. ::"
msgstr ""
-#: c-api/memory.rst:711
+#: c-api/memory.rst:732
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 ""
-#: c-api/memory.rst:715
+#: c-api/memory.rst:736
msgid ""
"These will be explained in the next chapter on defining and implementing new "
"object types in C."
diff --git a/c-api/method.po b/c-api/method.po
index 4519cfcf4d..7770ba02e1 100644
--- a/c-api/method.po
+++ b/c-api/method.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-01-27 19:26+0100\n"
+"POT-Creation-Date: 2022-04-05 10:05+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: FRENCH \n"
@@ -40,7 +40,7 @@ msgstr ""
#: c-api/method.rst:30
msgid ""
-"Return a new instance method object, with *func* being any callable object "
+"Return a new instance method object, with *func* being any callable object. "
"*func* is the function that will be called when the instance method is "
"called."
msgstr ""
diff --git a/c-api/module.po b/c-api/module.po
index b55782c636..fb3a4cb71d 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: 2021-09-23 16:16+0200\n"
+"POT-Creation-Date: 2023-03-22 22:57+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: FRENCH \n"
@@ -65,9 +65,9 @@ msgstr ""
#: c-api/module.rst:67
msgid ""
-"It is recommended extensions use other :c:func:`PyModule_\\*` and :c:func:"
-"`PyObject_\\*` functions rather than directly manipulate a module's :attr:"
-"`~object.__dict__`."
+"It is recommended extensions use other ``PyModule_*`` and ``PyObject_*`` "
+"functions rather than directly manipulate a module's :attr:`~object."
+"__dict__`."
msgstr ""
#: c-api/module.rst:78
@@ -437,17 +437,17 @@ msgstr ""
#: c-api/module.rst:391
msgid ""
-"Create a new module object, given the definition in *module* and the "
-"ModuleSpec *spec*. This behaves like :c:func:`PyModule_FromDefAndSpec2` "
-"with *module_api_version* set to :const:`PYTHON_API_VERSION`."
+"Create a new module object, given the definition in *def* and the ModuleSpec "
+"*spec*. This behaves like :c:func:`PyModule_FromDefAndSpec2` with "
+"*module_api_version* set to :const:`PYTHON_API_VERSION`."
msgstr ""
#: c-api/module.rst:399
msgid ""
-"Create a new module object, given the definition in *module* and the "
-"ModuleSpec *spec*, assuming the API version *module_api_version*. If that "
-"version does not match the version of the running interpreter, a :exc:"
-"`RuntimeWarning` is emitted."
+"Create a new module object, given the definition in *def* and the ModuleSpec "
+"*spec*, assuming the API version *module_api_version*. If that version does "
+"not match the version of the running interpreter, a :exc:`RuntimeWarning` is "
+"emitted."
msgstr ""
#: c-api/module.rst:406
@@ -510,7 +510,7 @@ msgstr ""
#: c-api/module.rst:506
msgid "Example usage::"
-msgstr ""
+msgstr "Exemple d'utilisation ::"
#: c-api/module.rst:524
msgid ""
diff --git a/c-api/number.po b/c-api/number.po
index e93d7add02..0ae959fba5 100644
--- a/c-api/number.po
+++ b/c-api/number.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-09-23 16:16+0200\n"
+"POT-Creation-Date: 2022-05-21 16:37+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: FRENCH \n"
@@ -55,7 +55,7 @@ msgstr ""
#: c-api/number.rst:46
msgid ""
"Return the floor of *o1* divided by *o2*, or ``NULL`` on failure. This is "
-"equivalent to the \"classic\" division of integers."
+"the equivalent of the Python expression ``o1 // o2``."
msgstr ""
#: c-api/number.rst:52
@@ -64,7 +64,8 @@ msgid ""
"by *o2*, or ``NULL`` on failure. The return value is \"approximate\" "
"because binary floating point numbers are approximate; it is not possible to "
"represent all real numbers in base two. This function can return a floating "
-"point value when passed two integers."
+"point value when passed two integers. This is the equivalent of the Python "
+"expression ``o1 / o2``."
msgstr ""
#: c-api/number.rst:61
@@ -183,17 +184,18 @@ msgid ""
"because binary floating point numbers are approximate; it is not possible to "
"represent all real numbers in base two. This function can return a floating "
"point value when passed two integers. The operation is done *in-place* when "
-"*o1* supports it."
+"*o1* supports it. This is the equivalent of the Python statement ``o1 /= "
+"o2``."
msgstr ""
-#: c-api/number.rst:187
+#: c-api/number.rst:188
msgid ""
"Returns the remainder of dividing *o1* by *o2*, or ``NULL`` on failure. The "
"operation is done *in-place* when *o1* supports it. This is the equivalent "
"of the Python statement ``o1 %= o2``."
msgstr ""
-#: c-api/number.rst:196
+#: c-api/number.rst:197
msgid ""
"See the built-in function :func:`pow`. Returns ``NULL`` on failure. The "
"operation is done *in-place* when *o1* supports it. This is the equivalent "
@@ -203,66 +205,66 @@ msgid ""
"an illegal memory access)."
msgstr ""
-#: c-api/number.rst:205
+#: c-api/number.rst:206
msgid ""
"Returns the result of left shifting *o1* by *o2* on success, or ``NULL`` on "
"failure. The operation is done *in-place* when *o1* supports it. This is "
"the equivalent of the Python statement ``o1 <<= o2``."
msgstr ""
-#: c-api/number.rst:212
+#: c-api/number.rst:213
msgid ""
"Returns the result of right shifting *o1* by *o2* on success, or ``NULL`` on "
"failure. The operation is done *in-place* when *o1* supports it. This is "
"the equivalent of the Python statement ``o1 >>= o2``."
msgstr ""
-#: c-api/number.rst:219
+#: c-api/number.rst:220
msgid ""
"Returns the \"bitwise and\" of *o1* and *o2* on success and ``NULL`` on "
"failure. The operation is done *in-place* when *o1* supports it. This is "
"the equivalent of the Python statement ``o1 &= o2``."
msgstr ""
-#: c-api/number.rst:226
+#: c-api/number.rst:227
msgid ""
"Returns the \"bitwise exclusive or\" of *o1* by *o2* on success, or ``NULL`` "
"on failure. The operation is done *in-place* when *o1* supports it. This "
"is the equivalent of the Python statement ``o1 ^= o2``."
msgstr ""
-#: c-api/number.rst:233
+#: c-api/number.rst:234
msgid ""
"Returns the \"bitwise or\" of *o1* and *o2* on success, or ``NULL`` on "
"failure. The operation is done *in-place* when *o1* supports it. This is "
"the equivalent of the Python statement ``o1 |= o2``."
msgstr ""
-#: c-api/number.rst:242
+#: c-api/number.rst:243
msgid ""
"Returns the *o* converted to an integer object on success, or ``NULL`` on "
"failure. This is the equivalent of the Python expression ``int(o)``."
msgstr ""
-#: c-api/number.rst:250
+#: c-api/number.rst:251
msgid ""
"Returns the *o* converted to a float object on success, or ``NULL`` on "
"failure. This is the equivalent of the Python expression ``float(o)``."
msgstr ""
-#: c-api/number.rst:256
+#: c-api/number.rst:257
msgid ""
"Returns the *o* converted to a Python int on success or ``NULL`` with a :exc:"
"`TypeError` exception raised on failure."
msgstr ""
-#: c-api/number.rst:259
+#: c-api/number.rst:260
msgid ""
"The result always has exact type :class:`int`. Previously, the result could "
"have been an instance of a subclass of ``int``."
msgstr ""
-#: c-api/number.rst:266
+#: c-api/number.rst:267
msgid ""
"Returns the integer *n* converted to base *base* as a string. The *base* "
"argument must be one of 2, 8, 10, or 16. For base 2, 8, or 16, the returned "
@@ -271,25 +273,26 @@ msgid ""
"`PyNumber_Index` first."
msgstr ""
-#: c-api/number.rst:275
+#: c-api/number.rst:276
msgid ""
-"Returns *o* converted to a Py_ssize_t value if *o* can be interpreted as an "
-"integer. If the call fails, an exception is raised and ``-1`` is returned."
+"Returns *o* converted to a :c:type:`Py_ssize_t` value if *o* can be "
+"interpreted as an integer. If the call fails, an exception is raised and "
+"``-1`` is returned."
msgstr ""
-#: c-api/number.rst:278
+#: c-api/number.rst:279
msgid ""
-"If *o* can be converted to a Python int but the attempt to convert to a "
-"Py_ssize_t value would raise an :exc:`OverflowError`, then the *exc* "
+"If *o* can be converted to a Python int but the attempt to convert to a :c:"
+"type:`Py_ssize_t` value would raise an :exc:`OverflowError`, then the *exc* "
"argument is the type of exception that will be raised (usually :exc:"
"`IndexError` or :exc:`OverflowError`). If *exc* is ``NULL``, then the "
"exception is cleared and the value is clipped to ``PY_SSIZE_T_MIN`` for a "
"negative integer or ``PY_SSIZE_T_MAX`` for a positive integer."
msgstr ""
-#: c-api/number.rst:288
+#: c-api/number.rst:289
msgid ""
-"Returns ``1`` if *o* is an index integer (has the nb_index slot of the "
-"tp_as_number structure filled in), and ``0`` otherwise. This function always "
-"succeeds."
+"Returns ``1`` if *o* is an index integer (has the ``nb_index`` slot of the "
+"``tp_as_number`` structure filled in), and ``0`` otherwise. This function "
+"always succeeds."
msgstr ""
diff --git a/c-api/object.po b/c-api/object.po
index 2119a1b4e8..4005de3226 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: 2021-09-23 16:16+0200\n"
+"POT-Creation-Date: 2023-03-22 22:57+0100\n"
"PO-Revision-Date: 2019-08-16 22:56+0200\n"
"Last-Translator: Julien Palard \n"
"Language-Team: FRENCH \n"
@@ -35,7 +35,7 @@ msgid ""
msgstr ""
"Traite proprement le renvoi de :c:data:`Py_NotImplemented` depuis "
"l'intérieur d'une fonction C (c'est-à-dire, incrémente le compteur de "
-"référence de `NotImplemented` et le renvoie)."
+"référence de ``NotImplemented`` et le renvoie)."
#: c-api/object.rst:24
msgid ""
@@ -118,7 +118,7 @@ msgstr ""
"attributs d'instance, contrairement aux autres descripteurs. Sinon, une :exc:"
"`AttributeError` est levée."
-#: c-api/object.rst:90
+#: c-api/object.rst:91
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 "
@@ -132,22 +132,23 @@ msgstr ""
#: c-api/object.rst:84
#, fuzzy
msgid ""
-"If *v* is ``NULL``, the attribute is deleted, however this feature is "
-"deprecated in favour of using :c:func:`PyObject_DelAttr`."
+"If *v* is ``NULL``, the attribute is deleted. This behaviour is deprecated "
+"in favour of using :c:func:`PyObject_DelAttr`, but there are currently no "
+"plans to remove it."
msgstr ""
"Si *v* est *NULL*, l'attribut est supprimé. Cette fonctionnalité est "
"obsolète,nous vous conseillons d'utiliser :c:func:`PyObject_DelAttr`."
-#: c-api/object.rst:95
+#: c-api/object.rst:96
#, fuzzy
msgid ""
-"If *v* is ``NULL``, the attribute is deleted, however this feature is "
-"deprecated in favour of using :c:func:`PyObject_DelAttrString`."
+"If *v* is ``NULL``, the attribute is deleted, but this feature is deprecated "
+"in favour of using :c:func:`PyObject_DelAttrString`."
msgstr ""
"Si *v* est *NULL*, l'attribut est supprimé. Cette fonctionnalité est "
"obsolète, nous vous conseillons d'utiliser :c:func:`PyObject_DelAttr`."
-#: c-api/object.rst:101
+#: c-api/object.rst:102
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 "
@@ -167,7 +168,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é."
-#: c-api/object.rst:119
+#: c-api/object.rst:120
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``."
@@ -176,7 +177,7 @@ msgstr ""
"cas d'échec. Ceci est l'équivalent de l'expression Python ``del o."
"attr_name``."
-#: c-api/object.rst:125
+#: c-api/object.rst:126
msgid ""
"A generic implementation for the getter of a ``__dict__`` descriptor. It "
"creates the dictionary if necessary."
@@ -184,7 +185,7 @@ msgstr ""
"Une implémentation générique de l'accesseur d'un descripteur d'un "
"``__dict__``. Crée le dictionnaire si nécessaire."
-#: c-api/object.rst:133
+#: c-api/object.rst:134
msgid ""
"A generic implementation for the setter of a ``__dict__`` descriptor. This "
"implementation does not allow the dictionary to be deleted."
@@ -192,7 +193,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."
-#: c-api/object.rst:141
+#: c-api/object.rst:142
#, fuzzy
msgid ""
"Compare the values of *o1* and *o2* using the operation specified by *opid*, "
@@ -211,7 +212,7 @@ msgstr ""
"*opid*. Renvoie la valeur de la comparaison en cas de succès, ou *NULL* en "
"cas d'échec."
-#: c-api/object.rst:151
+#: c-api/object.rst:152
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:"
@@ -229,7 +230,7 @@ msgstr ""
"l'équivalent de l'expression Python ``o1 op o2``, où ``op`` est l'opérateur "
"correspondant à *opid*."
-#: c-api/object.rst:160
+#: c-api/object.rst:161
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`."
@@ -237,7 +238,21 @@ 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`."
-#: c-api/object.rst:167
+#: c-api/object.rst:166
+#, fuzzy
+msgid ""
+"Format *obj* using *format_spec*. This is equivalent to the Python "
+"expression ``format(obj, format_spec)``."
+msgstr "Ceci est l'équivalent de l'expression Python : ``callable(*args)``."
+
+#: c-api/object.rst:169
+msgid ""
+"*format_spec* may be ``NULL``. In this case the call is equivalent to "
+"``format(obj)``. Returns the formatted string on success, ``NULL`` on "
+"failure."
+msgstr ""
+
+#: c-api/object.rst:177
#, fuzzy
msgid ""
"Compute a string representation of object *o*. Returns the string "
@@ -250,7 +265,7 @@ msgstr ""
"d'échec. Ceci est l'équivalent de l'expression Python ``repr(o)``. Appelé "
"par la fonction native :func:`repr`."
-#: c-api/object.rst:195
+#: c-api/object.rst:205
msgid ""
"This function now includes a debug assertion to help ensure that it does not "
"silently discard an active exception."
@@ -258,7 +273,7 @@ msgstr ""
"Cette fonction inclut maintenant une assertion de débogage afin d'assurer "
"qu'elle ne passe pas sous silence une exception active."
-#: c-api/object.rst:179
+#: c-api/object.rst:189
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:"
@@ -268,12 +283,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`."
-#: c-api/object.rst:190
+#: c-api/object.rst:200
#, fuzzy
msgid ""
"Compute a string representation of object *o*. Returns the string "
@@ -287,7 +302,7 @@ msgstr ""
"par la fonction native :func:`str`, et, par conséquent, par la fonction :"
"func:`print`."
-#: c-api/object.rst:204
+#: c-api/object.rst:214
#, fuzzy
msgid ""
"Compute a bytes representation of object *o*. ``NULL`` is returned on "
@@ -302,7 +317,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."
-#: c-api/object.rst:213
+#: c-api/object.rst:223
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``."
@@ -310,7 +325,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``."
-#: c-api/object.rst:235
+#: c-api/object.rst:245
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``, "
@@ -320,7 +335,7 @@ msgstr ""
"*cls*. Le résultat sera ``1`` quand au moins une des vérifications renvoie "
"``1``, sinon ce sera ``0``."
-#: c-api/object.rst:220
+#: c-api/object.rst:230
msgid ""
"If *cls* has a :meth:`~class.__subclasscheck__` method, it will be called to "
"determine the subclass status as described in :pep:`3119`. Otherwise, "
@@ -332,7 +347,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__``."
-#: c-api/object.rst:225
+#: c-api/object.rst:235
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 "
@@ -343,7 +358,7 @@ msgstr ""
"les objets peuvent surcharger cela en ayant un attribut :attr:`__bases__` "
"(qui doit être un *n*-uplet de classes de bases)."
-#: c-api/object.rst:232
+#: c-api/object.rst:242
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."
@@ -352,7 +367,7 @@ msgstr ""
"classe de *cls*, ou ``0`` sinon. En cas d'erreur, renvoie ``-1`` et "
"initialise une exception."
-#: c-api/object.rst:239
+#: c-api/object.rst:249
msgid ""
"If *cls* has a :meth:`~class.__instancecheck__` method, it will be called to "
"determine the subclass status as described in :pep:`3119`. Otherwise, "
@@ -363,7 +378,7 @@ msgstr ""
"Sinon, *inst* est une instance *cls* si sa classe est une sous-classe de "
"*cls*."
-#: c-api/object.rst:243
+#: c-api/object.rst:253
msgid ""
"An instance *inst* can override what is considered its class by having a :"
"attr:`__class__` attribute."
@@ -371,7 +386,7 @@ msgstr ""
"Une instance *inst* peut surcharger ce qui est considéré comme sa classe en "
"ayant un attribut :attr:`__class__`."
-#: c-api/object.rst:246
+#: c-api/object.rst:256
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 "
@@ -381,58 +396,58 @@ msgstr ""
"que ses classes de bases sont, en ayant un attribut :attr:`__bases__` (qui "
"doit être un *n*-uplet des classes de base)."
-#: c-api/object.rst:255
+#: c-api/object.rst:265
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 ""
-#: c-api/object.rst:258
+#: c-api/object.rst:268
msgid ""
-"The return type is now Py_hash_t. This is a signed integer the same size as "
-"Py_ssize_t."
+"The return type is now Py_hash_t. This is a signed integer the same size "
+"as :c:type:`Py_ssize_t`."
msgstr ""
-#: c-api/object.rst:265
+#: c-api/object.rst:275
msgid ""
-"Set a :exc:`TypeError` indicating that ``type(o)`` is not hashable and "
-"return ``-1``. This function receives special treatment when stored in a "
+"Set a :exc:`TypeError` indicating that ``type(o)`` is not :term:`hashable` "
+"and return ``-1``. This function receives special treatment when stored in a "
"``tp_hash`` slot, allowing a type to explicitly indicate to the interpreter "
"that it is not hashable."
msgstr ""
-#: c-api/object.rst:273
+#: c-api/object.rst:283
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 ""
-#: c-api/object.rst:280
+#: c-api/object.rst:290
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 ""
-#: c-api/object.rst:289
+#: c-api/object.rst:299
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."
+"no reason to use this function instead of the :c:func:`Py_TYPE()` function, "
+"which returns a pointer of type :c:expr:`PyTypeObject*`, except when the "
+"incremented reference count is needed."
msgstr ""
-#: c-api/object.rst:300
+#: c-api/object.rst:310
msgid ""
"Return non-zero if the object *o* is of type *type* or a subtype of *type*, "
"and ``0`` otherwise. Both parameters must be non-``NULL``."
msgstr ""
-#: c-api/object.rst:309
+#: c-api/object.rst:319
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, "
@@ -440,7 +455,7 @@ msgid ""
"``len(o)``."
msgstr ""
-#: c-api/object.rst:316
+#: c-api/object.rst:326
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 "
@@ -449,7 +464,7 @@ msgid ""
"defaultvalue)``."
msgstr ""
-#: c-api/object.rst:326
+#: c-api/object.rst:336
#, fuzzy
msgid ""
"Return element of *o* corresponding to the object *key* or ``NULL`` on "
@@ -459,7 +474,7 @@ msgstr ""
"l'attribut en cas de succès, ou *NULL* en cas d'échec. Ceci est équivalent à "
"l'expression Python ``o.attr_name``."
-#: c-api/object.rst:332
+#: c-api/object.rst:342
#, fuzzy
msgid ""
"Map the object *key* to the value *v*. Raise an exception and return ``-1`` "
@@ -471,7 +486,7 @@ msgstr ""
"``0`` en cas de succès. Ceci est équivalent à l'instruction Python ``o."
"attr_name = v``."
-#: c-api/object.rst:340
+#: c-api/object.rst:350
#, fuzzy
msgid ""
"Remove the mapping for the object *key* from the object *o*. Return ``-1`` "
@@ -481,7 +496,7 @@ msgstr ""
"Renvoie ``-1`` en cas d'échec. C'est l'équivalent de la commande Python "
"``del o[key]``."
-#: c-api/object.rst:346
+#: c-api/object.rst:356
msgid ""
"This is equivalent to the Python expression ``dir(o)``, returning a "
"(possibly empty) list of strings appropriate for the object argument, or "
@@ -491,7 +506,7 @@ msgid ""
"`PyErr_Occurred` will return false."
msgstr ""
-#: c-api/object.rst:355
+#: c-api/object.rst:365
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 "
@@ -499,7 +514,7 @@ msgid ""
"object cannot be iterated."
msgstr ""
-#: c-api/object.rst:363
+#: c-api/object.rst:373
msgid ""
"This is the equivalent to the Python expression ``aiter(o)``. Takes an :"
"class:`AsyncIterable` object and returns an :class:`AsyncIterator` for it. "
@@ -556,10 +571,6 @@ msgstr ""
#~ "par le *n*-uplet *args*. Si aucun argument n'est nécessaire, alors *args* "
#~ "peut être égal à *NULL*."
-#~ msgid ""
-#~ "This is the equivalent of the Python expression: ``callable(*args)``."
-#~ msgstr "Ceci est l'équivalent de l'expression Python : ``callable(*args)``."
-
#, fuzzy
#~ msgid ""
#~ "Call a callable Python object *callable*, with a variable number of C "
diff --git a/c-api/refcounting.po b/c-api/refcounting.po
index bc47906495..cafe207847 100644
--- a/c-api/refcounting.po
+++ b/c-api/refcounting.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-09-23 16:16+0200\n"
+"POT-Creation-Date: 2022-05-21 16:37+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: FRENCH \n"
@@ -23,10 +23,12 @@ 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."
#: c-api/refcounting.rst:16
msgid "Increment the reference count for object *o*."
-msgstr ""
+msgstr "Incrémente le compteur de références de l'objet *o*."
#: c-api/refcounting.rst:18
msgid ""
@@ -34,82 +36,102 @@ msgid ""
"term:`strong reference` in-place. The :c:func:`Py_NewRef` function can be "
"used to create a new :term:`strong reference`."
msgstr ""
+"Cette fonction est souvent utilisée pour convertir une :term:`référence "
+"empruntée` en une :term:`référence forte` *sur place*. La fonction :c:func:"
+"`Py_NewRef` peut être utilisée pour créer une nouvelle :term:`référence "
+"forte`."
#: c-api/refcounting.rst:22
msgid ""
"The object must not be ``NULL``; if you aren't sure that it isn't ``NULL``, "
"use :c:func:`Py_XINCREF`."
msgstr ""
+"L'objet ne doit pas être ``NULL``, la fonction :c:func:`Py_XINCREF` doit "
+"être utilisée s'il est possible qu'il soit ``NULL``."
#: c-api/refcounting.rst:28
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``."
#: c-api/refcounting.rst:31
msgid "See also :c:func:`Py_XNewRef`."
-msgstr ""
+msgstr "Voir aussi :c:func:`Py_XNewRef`."
#: c-api/refcounting.rst:36
msgid ""
"Create a new :term:`strong reference` to an object: increment the reference "
"count of the object *o* and return the object *o*."
msgstr ""
+"Créer une nouvelle :term:`référence forte` d'un objet : incrémente le "
+"compteur de référence de l'objet *o* et renvoie l'objet *o*."
#: c-api/refcounting.rst:39
msgid ""
"When the :term:`strong reference` is no longer needed, :c:func:`Py_DECREF` "
"should be called on it to decrement the object reference count."
msgstr ""
+":c:func:`Py_DECREF` doit être appelée quand la :term:`référence forte` n'est "
+"plus utilisée pour décrémenter le compteur de références de l'objet."
#: c-api/refcounting.rst:42
msgid ""
"The object *o* must not be ``NULL``; use :c:func:`Py_XNewRef` if *o* can be "
"``NULL``."
msgstr ""
+"L'objet *o* ne doit pas être ``NULL`` et la fonction :c:func:`Py_XNewRef` "
+"doit être utilisée si *o* peut être ``NULL``."
#: c-api/refcounting.rst:45
msgid "For example::"
-msgstr ""
+msgstr "Par exemple ::"
#: c-api/refcounting.rst:50
msgid "can be written as::"
-msgstr ""
+msgstr "peut s'écrire ::"
#: c-api/refcounting.rst:54
msgid "See also :c:func:`Py_INCREF`."
-msgstr ""
+msgstr "Voir aussi :c:func:`Py_INCREF`."
#: c-api/refcounting.rst:61
msgid "Similar to :c:func:`Py_NewRef`, but the object *o* can be NULL."
-msgstr ""
+msgstr "Semblable à :c:func:`Py_NewRef` mais l'objet *o* peut être ``NULL``."
#: c-api/refcounting.rst:63
msgid "If the object *o* is ``NULL``, the function just returns ``NULL``."
-msgstr ""
+msgstr "Cette fonction renvoie ``NULL`` si l'objet *o* est ``NULL``."
#: c-api/refcounting.rst:70
msgid "Decrement the reference count for object *o*."
-msgstr ""
+msgstr "Décrémente le compteur de références de l'objet *o*."
#: c-api/refcounting.rst:72
msgid ""
"If the reference count reaches zero, the object's type's deallocation "
"function (which must not be ``NULL``) is invoked."
msgstr ""
+"Si le compteur de références atteint zéro, la fonction de dés-allocation du "
+"type de l'objet (qui ne doit pas être ``NULL``) est invoquée."
#: c-api/refcounting.rst:75
msgid ""
"This function is usually used to delete a :term:`strong reference` before "
"exiting its scope."
msgstr ""
+"Cette fonction est généralement utilisée pour supprimer une :term:`référence "
+"forte` avant qu'elle ne soit plus accessible."
#: c-api/refcounting.rst:78
msgid ""
"The object must not be ``NULL``; if you aren't sure that it isn't ``NULL``, "
"use :c:func:`Py_XDECREF`."
msgstr ""
+"L'objet en argument ne doit pas être ``NULL``. :c:func:`Py_XDECREF` doit "
+"être utilisée si l'objet peut être ``NULL``."
#: c-api/refcounting.rst:83
msgid ""
@@ -123,6 +145,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."
#: c-api/refcounting.rst:95
msgid ""
@@ -130,6 +161,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."
#: c-api/refcounting.rst:102
msgid ""
@@ -140,24 +175,46 @@ 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."
#: c-api/refcounting.rst:109
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."
+
+#: c-api/refcounting.rst:114
+msgid ""
+"Increment the reference count for object *o*. A function version of :c:func:"
+"`Py_XINCREF`. It can be used for runtime dynamic embedding of Python."
+msgstr ""
+"Incrémente le compteur de références de l'objet *o*. C'est la version "
+"fonctionnelle de :c:func:`Py_XINCREF`. Elle peut être utilisée lorsque "
+"Python est embarqué dynamiquement dans une application."
-#: c-api/refcounting.rst:113
+#: c-api/refcounting.rst:120
msgid ""
-"The following functions are for runtime dynamic embedding of Python: "
-"``Py_IncRef(PyObject *o)``, ``Py_DecRef(PyObject *o)``. They are simply "
-"exported function versions of :c:func:`Py_XINCREF` and :c:func:`Py_XDECREF`, "
-"respectively."
+"Decrement the reference count for object *o*. A function version of :c:func:"
+"`Py_XDECREF`. It can be used for runtime dynamic embedding of Python."
msgstr ""
+"Décrémente le compteur de références de l'objet *o*. C'est la version "
+"fonctionnelle de :c:func:`Py_XDECREF`. Elle peut être utilisée lorsque "
+"Python est embarqué dynamiquement dans une application."
-#: c-api/refcounting.rst:118
+#: c-api/refcounting.rst:124
msgid ""
"The following functions or macros are only for use within the interpreter "
"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 5865046002..d04aea96ae 100644
--- a/c-api/reflection.po
+++ b/c-api/reflection.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-09-23 16:16+0200\n"
+"POT-Creation-Date: 2022-03-18 17:06+0100\n"
"PO-Revision-Date: 2019-02-26 12:01+0100\n"
"Last-Translator: Julien Palard \n"
"Language-Team: FRENCH \n"
@@ -60,12 +60,14 @@ msgstr ""
#: c-api/reflection.rst:36
msgid "Get the *frame* next outer frame."
-msgstr ""
+msgstr "Renvoie la *frame* encadrant immédiatement à *frame*."
#: c-api/reflection.rst:38
msgid ""
"Return a :term:`strong reference`, or ``NULL`` if *frame* has no outer frame."
msgstr ""
+"Renvoie un :term:`strong reference`, ou ``NULL`` si *frame* n'a pas de "
+"*frame* encadrante."
#: c-api/reflection.rst:60
msgid "*frame* must not be ``NULL``."
@@ -73,11 +75,11 @@ msgstr ""
#: c-api/reflection.rst:47
msgid "Get the *frame* code."
-msgstr ""
+msgstr "Obtenir le code *frame*."
#: c-api/reflection.rst:49
msgid "Return a :term:`strong reference`."
-msgstr ""
+msgstr "Renvoie un :term:`strong reference`."
#: c-api/reflection.rst:51
msgid ""
@@ -105,6 +107,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 15b5b657ac..ffe90e73c4 100644
--- a/c-api/sequence.po
+++ b/c-api/sequence.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-08-24 09:01+0200\n"
+"POT-Creation-Date: 2022-04-05 10:05+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: FRENCH \n"
@@ -20,11 +20,11 @@ msgstr ""
#: c-api/sequence.rst:11
msgid ""
-"Return ``1`` if the object provides sequence protocol, and ``0`` otherwise. "
-"Note that it returns ``1`` for Python classes with a :meth:`__getitem__` "
-"method unless they are :class:`dict` subclasses since in general case it is "
-"impossible to determine what the type of keys it supports. This function "
-"always succeeds."
+"Return ``1`` if the object provides the sequence protocol, and ``0`` "
+"otherwise. Note that it returns ``1`` for Python classes with a :meth:"
+"`__getitem__` method, unless they are :class:`dict` subclasses, since in "
+"general it is impossible to determine what type of keys the class supports. "
+"This function always succeeds."
msgstr ""
#: c-api/sequence.rst:23
@@ -85,8 +85,8 @@ msgstr ""
#: c-api/sequence.rst:72
msgid ""
-"If *v* is ``NULL``, the element is deleted, however this feature is "
-"deprecated in favour of using :c:func:`PySequence_DelItem`."
+"If *v* is ``NULL``, the element is deleted, but this feature is deprecated "
+"in favour of using :c:func:`PySequence_DelItem`."
msgstr ""
#: c-api/sequence.rst:78
@@ -166,8 +166,8 @@ msgstr ""
#: c-api/sequence.rst:148
msgid ""
"Returns the length of *o*, assuming that *o* was returned by :c:func:"
-"`PySequence_Fast` and that *o* is not ``NULL``. The size can also be gotten "
-"by calling :c:func:`PySequence_Size` on *o*, but :c:func:"
+"`PySequence_Fast` and that *o* is not ``NULL``. The size can also be "
+"retrieved by calling :c:func:`PySequence_Size` on *o*, but :c:func:"
"`PySequence_Fast_GET_SIZE` is faster because it can assume *o* is a list or "
"tuple."
msgstr ""
diff --git a/c-api/set.po b/c-api/set.po
index 8fdc3857d8..d970a92949 100644
--- a/c-api/set.po
+++ b/c-api/set.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-09-23 16:16+0200\n"
+"POT-Creation-Date: 2022-04-05 10:05+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: FRENCH \n"
@@ -21,14 +21,14 @@ msgstr ""
#: c-api/set.rst:15
msgid ""
"This section details the public API for :class:`set` and :class:`frozenset` "
-"objects. Any functionality not listed below is best accessed using the "
-"either the abstract object protocol (including :c:func:"
-"`PyObject_CallMethod`, :c:func:`PyObject_RichCompareBool`, :c:func:"
-"`PyObject_Hash`, :c:func:`PyObject_Repr`, :c:func:`PyObject_IsTrue`, :c:func:"
-"`PyObject_Print`, and :c:func:`PyObject_GetIter`) or the abstract number "
-"protocol (including :c:func:`PyNumber_And`, :c:func:`PyNumber_Subtract`, :c:"
-"func:`PyNumber_Or`, :c:func:`PyNumber_Xor`, :c:func:`PyNumber_InPlaceAnd`, :"
-"c:func:`PyNumber_InPlaceSubtract`, :c:func:`PyNumber_InPlaceOr`, and :c:func:"
+"objects. Any functionality not listed below is best accessed using either "
+"the abstract object protocol (including :c:func:`PyObject_CallMethod`, :c:"
+"func:`PyObject_RichCompareBool`, :c:func:`PyObject_Hash`, :c:func:"
+"`PyObject_Repr`, :c:func:`PyObject_IsTrue`, :c:func:`PyObject_Print`, and :c:"
+"func:`PyObject_GetIter`) or the abstract number protocol (including :c:func:"
+"`PyNumber_And`, :c:func:`PyNumber_Subtract`, :c:func:`PyNumber_Or`, :c:func:"
+"`PyNumber_Xor`, :c:func:`PyNumber_InPlaceAnd`, :c:func:"
+"`PyNumber_InPlaceSubtract`, :c:func:`PyNumber_InPlaceOr`, and :c:func:"
"`PyNumber_InPlaceXor`)."
msgstr ""
@@ -39,9 +39,9 @@ msgid ""
"`PyDictObject` in that it is a fixed size for small sets (much like tuple "
"storage) and will point to a separate, variable sized block of memory for "
"medium and large sized sets (much like list storage). None of the fields of "
-"this structure should be considered public and are subject to change. All "
-"access should be done through the documented API rather than by manipulating "
-"the values in the structure."
+"this structure should be considered public and all are subject to change. "
+"All access should be done through the documented API rather than by "
+"manipulating the values in the structure."
msgstr ""
#: c-api/set.rst:40
@@ -151,7 +151,7 @@ msgstr ""
#: c-api/set.rst:133
msgid ""
"Add *key* to a :class:`set` instance. Also works with :class:`frozenset` "
-"instances (like :c:func:`PyTuple_SetItem` it can be used to fill-in the "
+"instances (like :c:func:`PyTuple_SetItem` it can be used to fill in the "
"values of brand new frozensets before they are exposed to other code). "
"Return ``0`` on success or ``-1`` on failure. Raise a :exc:`TypeError` if "
"the *key* is unhashable. Raise a :exc:`MemoryError` if there is no room to "
diff --git a/c-api/stable.po b/c-api/stable.po
index 0e0c260777..e1f58647f1 100644
--- a/c-api/stable.po
+++ b/c-api/stable.po
@@ -16,10 +16,9 @@ msgstr ""
#: c-api/stable.rst:7
msgid "C API Stability"
-msgstr ""
+msgstr "Stabilité de l’API C"
#: c-api/stable.rst:9
-#, fuzzy
msgid ""
"Python's C API is covered by the Backwards Compatibility Policy, :pep:`387`. "
"While the C API will change with every minor release (e.g. from 3.9 to "
@@ -27,10 +26,12 @@ msgid ""
"API. Changing existing API or removing API is only done after a deprecation "
"period or to fix serious issues."
msgstr ""
-"L'API C de Python change à chaque version. La majorité de ces changement "
-"n'affecte cependant pas la compatibilité du code source. Typiquement, des "
-"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)."
+"L'API C respecte la politique de rétrocompatibilité de Python, :pep:`387`. "
+"Malgré la présence d’évolutions dans chaque version mineure (par exemple "
+"entre 3.9 et 3.10), la majorité de ces changements n'affecte pas la "
+"compatibilité du code source. Typiquement des API sont ajoutées mais pas "
+"modifiées ou supprimées, bien que cela puisse arriver après une période de "
+"dépréciation ou pour corriger un problème important."
#: c-api/stable.rst:15
msgid ""
@@ -40,12 +41,20 @@ msgid ""
"work on 3.10.8 and vice versa, but will need to be compiled separately for "
"3.9.x and 3.10.x."
msgstr ""
+"L’interface binaire de CPython (ABI) est entièrement compatible au sein "
+"d’une version mineure (à condition que la compilation soit toujours faite de "
+"même manière, comme indiqué dans :ref:`stable-abi-platform` ci-dessous). "
+"Ainsi le code compilé pour Python 3.10.0 fonctionnera avec Python 3.10.8 et "
+"inversement, mais il devra être compilé séparément pour 3.9.x et 3.10.x."
#: c-api/stable.rst:21
msgid ""
"Names prefixed by an underscore, such as ``_Py_InternalState``, are private "
"API that can change without notice even in patch releases."
msgstr ""
+"Les noms commençant par un caractère souligné, comme ``_Py_InternalState``, "
+"font partie de l’API privée et peuvent changer sans préavis même dans une "
+"version de correctif."
#: c-api/stable.rst:26
msgid "Stable Application Binary Interface"
@@ -58,6 +67,11 @@ msgid ""
"multiple versions of Python. Contents of the Limited API are :ref:`listed "
"below `."
msgstr ""
+"Le concept d’*API restreinte*, un sous-ensemble de l’API C de Python, existe "
+"depuis Python 3.2. Les extensions qui utilisent uniquement l’API restreinte "
+"peuvent être compilées une seule fois et fonctionner avec plusieurs versions "
+"de Python. Les objets faisant partie de l’API restreinte sont :ref:"
+"`documentés ci-dessous `."
#: c-api/stable.rst:33
msgid ""
@@ -66,6 +80,11 @@ msgid ""
"symbols exposed in the Limited API, but also other ones – for example, "
"functions necessary to support older versions of the Limited API."
msgstr ""
+"Python a aussi une *ABI stable* : un ensemble de symboles qui sont "
+"compatibles avec l’ensemble des versions Python 3.x. L’ABI stable contient "
+"les symboles utilisés par l’API restreinte, mais pas seulement — par exemple "
+"les fonctions nécessaires pour supporter les versions précédentes de l’API "
+"restreinte en font aussi partie."
#: c-api/stable.rst:38
msgid ""
@@ -73,12 +92,17 @@ msgid ""
"and Stable ABI work the same way for all uses of the API – for example, "
"embedding Python.)"
msgstr ""
+"(Par simplicité ce document parle *d’extensions*, mais l’API restreinte et "
+"l’ABI stable fonctionnent de la même manière pour tous les cas d’usages de "
+"l’API — par exemple pour embarquer Python.)"
#: c-api/stable.rst:44
msgid ""
"Define this macro before including ``Python.h`` to opt in to only use the "
"Limited API, and to select the Limited API version."
msgstr ""
+"Définissez cette macro avant d’inclure ``Python.h`` pour n’inclure que l’API "
+"restreinte et indiquer sa version."
#: c-api/stable.rst:47
msgid ""
@@ -88,6 +112,11 @@ msgid ""
"the specified one onward, and can use Limited API introduced up to that "
"version."
msgstr ""
+"Définissez ``Py_LIMITED_API`` à la valeur de :c:data:`PY_VERSION_HEX` "
+"correspond à la version minimale de Python que votre extension supporte. "
+"Cette extension fonctionnera sans re-compilation avec toutes les versions "
+"futures de Python 3, et peut utiliser l’ensemble des éléments de l’API "
+"restreinte présent dans cette version."
#: c-api/stable.rst:53
msgid ""
@@ -95,12 +124,19 @@ msgid ""
"minor version (e.g. ``0x030A0000`` for Python 3.10) for stability when "
"compiling with future Python versions."
msgstr ""
+"Il est recommandé de renseigner une version mineure minimale (par exemple "
+"``0x030A0000`` pour Python 3.10) plutôt que d’utiliser directement la macro "
+"``PY_VERSION_HEX`` pour ne pas dépendre de la version de Python utilisée "
+"lors de la compilation."
#: c-api/stable.rst:57
msgid ""
"You can also define ``Py_LIMITED_API`` to ``3``. This works the same as "
"``0x03020000`` (Python 3.2, the version that introduced Limited API)."
msgstr ""
+"Vous pouvez aussi définir ``Py_LIMITED_API`` à ``3``. Cette valeur est "
+"équivalente à ``0x03020000`` correspondant à Python 3.2, la première version "
+"à supporter l’API restreinte."
#: c-api/stable.rst:60
msgid ""
@@ -108,6 +144,9 @@ msgid ""
"``python3.dll`` rather than a version-specific library such as ``python39."
"dll``."
msgstr ""
+"Sur Windows les extensions qui utilisent l’ABI stable doivent être liées "
+"avec ``python3.dll`` et non pas avec une bibliothèque spécifique à une "
+"version comme ``python39.dll``."
#: c-api/stable.rst:64
msgid ""
@@ -117,6 +156,12 @@ msgid ""
"to ensure that, for example, extensions built with the 3.10+ Limited API are "
"not installed for lower versions of Python."
msgstr ""
+"Sur certaines plateformes Python essaiera de charger une bibliothèque "
+"partagée dont le nom contient ``abi3`` (par exemple ``mymodule.abi3.so``). "
+"Il ne vérifie pas si ces extensions respectent l’ABI stable. L’utilisateur "
+"(ou ses outils d’administration) doit s’assurer que les extensions compilées "
+"avec une version donnée de l’API restreinte, par exemple 3.10+, ne sont pas "
+"utilisées avec des versions plus anciennes de Python."
#: c-api/stable.rst:71
msgid ""
@@ -124,16 +169,23 @@ msgid ""
"library, not solely as macros. This makes them usable from languages that "
"don't use the C preprocessor."
msgstr ""
+"Toutes les fonctions de l’ABI stable sont présentes dans la bibliothèque "
+"dynamique de Python en tant que fonction, et pas uniquement comme macro. "
+"Elles peuvent donc être utilisées avec des langages qui n’utilisent pas le "
+"pré-processeur C."
#: c-api/stable.rst:77
msgid "Limited API Scope and Performance"
-msgstr ""
+msgstr "Porté de l’API restreinte et performance"
#: c-api/stable.rst:79
msgid ""
"The goal for the Limited API is to allow everything that is possible with "
"the full C API, but possibly with a performance penalty."
msgstr ""
+"L’objectif de l’API restreinte est de permettre l’ensemble des opérations "
+"possibles avec l’API C étendue, mais peut avoir un impact sur les "
+"performances."
#: c-api/stable.rst:82
msgid ""
@@ -141,6 +193,10 @@ msgid ""
"variant :c:func:`PyList_GET_ITEM` is not. The macro can be faster because it "
"can rely on version-specific implementation details of the list object."
msgstr ""
+"Par exemple la fonction :c:func:`PyList_GetItem` est disponible, mais la "
+"macro « dangereuse » :c:func:`PyList_GET_ITEM` ne l’est pas. Cette macro "
+"peut être plus rapide car elle dépend de détails d’implémentation spécifique "
+"à l’objet ``list``."
#: c-api/stable.rst:87
msgid ""
@@ -149,6 +205,11 @@ msgid ""
"allowing stability as Python's data structures are improved, but possibly "
"reducing performance."
msgstr ""
+"Si ``Py_LIMITED_API`` n’est pas défini certaines fonctions de l’API C seront "
+"remplacées par des macros ou une version en-ligne. Définir "
+"``Py_LIMITED_API`` désactive cette optimisation, permettant de se garantir "
+"contre les évolutions des structures de données utilisées par Python, et "
+"peut réduire les performances."
#: c-api/stable.rst:92
msgid ""
@@ -159,10 +220,17 @@ msgid ""
"where a version-specific one is not available – for example, for prereleases "
"of an upcoming Python version."
msgstr ""
+"En omettant la définition de ``Py_LIMITED_API`` il est possible de compiler "
+"une extension utilisant l’API restreinte avec une version spécifique de "
+"l’ABI. Les performances seront meilleures pour cette version de Python, mais "
+"la compatibilité sera réduite. Compiler en définissant ``Py_LIMITED_API`` "
+"produira une extension qui peut être utilisée quand une variante spécifique "
+"à une version n’est pas disponible — par exemple pour une version alpha de "
+"Python."
#: c-api/stable.rst:101
msgid "Limited API Caveats"
-msgstr ""
+msgstr "Inconvénients de l’API restreinte"
#: c-api/stable.rst:103
msgid ""
@@ -171,6 +239,10 @@ msgid ""
"only covers definitions, but an API also includes other issues, such as "
"expected semantics."
msgstr ""
+"Compiler avec ``Py_LIMITED_API`` *n’est pas* une garantie absolue que le "
+"code est conforme à l’API restreinte ou à l’ABI stable. ``Py_LIMITED_API`` "
+"ne concerne que la définition des objets, mais une API inclut aussi d’autres "
+"spécificités comme le comportement attendu."
#: c-api/stable.rst:108
msgid ""
@@ -181,18 +253,31 @@ msgid ""
"the argument will be used directly, causing a ``NULL`` dereference and "
"crash. A similar argument works for fields of structs."
msgstr ""
+"Une des limitations est que ``Py_LIMITED_API`` ne protège pas contre l’appel "
+"d’une fonction avec des arguments qui sont invalides pour une version de "
+"Python plus ancienne. Par exemple considérons une fonction qui accepte "
+"``NULL`` comme argument à partir de 3.9. ``NULL`` permet maintenant "
+"d’utiliser le comportement par défaut, mais Python 3.8 essayera d’accéder à "
+"l’objet pointé et dé-référencera ``NULL``, causant un crash. Des problèmes "
+"similaires peuvent se produire avec les attributs des structures."
#: c-api/stable.rst:115
msgid ""
"Another issue is that some struct fields are currently not hidden when "
"``Py_LIMITED_API`` is defined, even though they're part of the Limited API."
msgstr ""
+"Un autre problème est que certains attributs ne sont pas encore cachés "
+"lorsque ``Py_LIMITED_API`` est défini, même s’ils ne font pas partie de "
+"l’API restreinte."
#: c-api/stable.rst:118
msgid ""
"For these reasons, we recommend testing an extension with *all* minor Python "
"versions it supports, and preferably to build with the *lowest* such version."
msgstr ""
+"Pour ces raisons il est recommandé de tester une extension avec *l’ensemble "
+"des versions mineures* supportées de Python, et généralement de la compiler "
+"avec la plus *ancienne* de ces versions."
#: c-api/stable.rst:121
msgid ""
@@ -201,6 +286,11 @@ msgid ""
"few private declarations are exposed for technical reasons (or even "
"unintentionally, as bugs)."
msgstr ""
+"Il est aussi recommandé de vérifier la documentation de toutes les API "
+"utilisées pour vérifier qu’elles fassent bien partie de l’API restreinte. "
+"Même lorsque ``Py_LIMITED_API`` est défini quelques fonctions privées "
+"peuvent être exposées aux utilisateurs pour des raisons techniques, ou par "
+"erreur."
#: c-api/stable.rst:126
msgid ""
@@ -210,10 +300,15 @@ msgid ""
"particular, parts of the Limited API may be deprecated and removed, provided "
"that the Stable ABI stays stable."
msgstr ""
+"Notez aussi que l’API restreinte n’est pas forcément stable : compiler avec "
+"Python 3.8 en définissant ``Py_LIMITED_API`` garanti que l’extension "
+"fonctionnera avec Python 3.12, mais pas qu’elle pourra *être compilée* avec "
+"Python 3.12. En particulier certaines parties de l’API restreinte peuvent "
+"être dépréciées et retirées tant que l’ABI stable n’est pas modifiée."
#: c-api/stable.rst:136
msgid "Platform Considerations"
-msgstr ""
+msgstr "Considérations relatives aux plateformes"
#: c-api/stable.rst:138
msgid ""
@@ -222,6 +317,11 @@ msgid ""
"ABI, these details define a “platform”. They usually depend on the OS type "
"and processor architecture"
msgstr ""
+"La stabilité de l’ABI ne dépend pas que de Python mais aussi du compilateur "
+"utilisé, des bibliothèques systèmes et des options du compilateur. "
+"L’ensemble de ces détails correspondent à ce que l’ABI stable appelle une "
+"« plateforme ». Ils dépendent généralement du système d’exploitation et de "
+"l’architecture du processeur."
#: c-api/stable.rst:143
msgid ""
@@ -230,14 +330,19 @@ msgid ""
"does not break the Stable ABI. This is the case with Windows and macOS "
"releases from ``python.org`` and many third-party distributors."
msgstr ""
+"Les distributeurs de Python doivent s’assurer que toutes les versions de "
+"Python pour une plateforme donnée sont compilées de manière à ne pas rompre "
+"la compatibilité de l’ABI stable. C’est le cas des versions produites pour "
+"Windows et macOS de ``python.org`` et de la plupart des distributions "
+"tierces."
#: c-api/stable.rst:153
msgid "Contents of Limited API"
-msgstr ""
+msgstr "Contenu de l’API restreinte"
#: c-api/stable.rst:156
msgid "Currently, the Limited API includes the following items:"
-msgstr ""
+msgstr "Pour le moment l’API restreinte inclut les éléments suivants :"
#~ msgid ""
#~ "Unfortunately, the API compatibility does not extend to binary "
diff --git a/c-api/structures.po b/c-api/structures.po
index e367819a4d..c086cb1092 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: 2021-09-23 16:16+0200\n"
+"POT-Creation-Date: 2023-03-22 22:57+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: FRENCH \n"
@@ -45,7 +45,7 @@ msgid ""
"In a normal \"release\" build, it contains only the object's reference count "
"and a pointer to the corresponding type object. Nothing is actually declared "
"to be a :c:type:`PyObject`, but every pointer to a Python object can be cast "
-"to a :c:type:`PyObject*`. Access to the members must be done by using the "
+"to a :c:expr:`PyObject*`. Access to the members must be done by using the "
"macros :c:macro:`Py_REFCNT` and :c:macro:`Py_TYPE`."
msgstr ""
@@ -111,7 +111,7 @@ msgid "Return a :term:`borrowed reference`."
msgstr ""
#: c-api/structures.rst:102
-msgid "The :c:func:`Py_SET_TYPE` function must be used to set an object type."
+msgid "Use the :c:func:`Py_SET_TYPE` function to set an object type."
msgstr ""
#: c-api/structures.rst:107
@@ -143,7 +143,7 @@ msgid "Get the size of the Python object *o*."
msgstr ""
#: c-api/structures.rst:140
-msgid "The :c:func:`Py_SET_SIZE` function must be used to set an object size."
+msgid "Use the :c:func:`Py_SET_SIZE` function to set an object size."
msgstr ""
#: c-api/structures.rst:145
@@ -170,7 +170,7 @@ msgstr ""
#: c-api/structures.rst:174
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:expr:`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 "
@@ -212,95 +212,54 @@ msgid ""
"has four fields:"
msgstr ""
-#: c-api/structures.rst:397 c-api/structures.rst:493
-msgid "Field"
-msgstr "Champ"
-
-#: c-api/structures.rst:397 c-api/structures.rst:493
-msgid "C Type"
-msgstr "Type C"
-
-#: c-api/structures.rst:397 c-api/structures.rst:493
-msgid "Meaning"
-msgstr "Signification"
-
-#: c-api/structures.rst:241
-msgid ":attr:`ml_name`"
-msgstr ""
-
-#: c-api/structures.rst:249 c-api/structures.rst:412 c-api/structures.rst:495
-#: c-api/structures.rst:503
-msgid "const char \\*"
-msgstr ""
-
-#: c-api/structures.rst:241
+#: c-api/structures.rst:240
msgid "name of the method"
msgstr ""
-#: c-api/structures.rst:243
-msgid ":attr:`ml_meth`"
-msgstr ""
-
-#: c-api/structures.rst:243
-msgid "PyCFunction"
-msgstr "PyCFunction"
-
-#: c-api/structures.rst:243
+#: c-api/structures.rst:244
msgid "pointer to the C implementation"
msgstr ""
-#: c-api/structures.rst:246
-msgid ":attr:`ml_flags`"
+#: c-api/structures.rst:248
+msgid "flags bits indicating how the call should be constructed"
msgstr ""
-#: c-api/structures.rst:401 c-api/structures.rst:424
-msgid "int"
-msgstr "*int*"
-
-#: c-api/structures.rst:246
-msgid "flag bits indicating how the call should be constructed"
-msgstr ""
-
-#: c-api/structures.rst:249
-msgid ":attr:`ml_doc`"
-msgstr ""
-
-#: c-api/structures.rst:412
+#: c-api/structures.rst:411
msgid "points to the contents of the docstring"
msgstr ""
-#: c-api/structures.rst:253
+#: c-api/structures.rst:254
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 "
+"The :c:member:`ml_meth` is a C function pointer. The functions may be of "
+"different types, but they always return :c:expr:`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:expr:`PyObject*`, it is common that the method "
"implementation uses the specific C type of the *self* object."
msgstr ""
-#: c-api/structures.rst:260
+#: c-api/structures.rst:261
msgid ""
-"The :attr:`ml_flags` field is a bitfield which can include the following "
+"The :c:member:`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 ""
-#: c-api/structures.rst:264
+#: c-api/structures.rst:265
msgid "There are these calling conventions:"
msgstr ""
-#: c-api/structures.rst:268
+#: c-api/structures.rst:269
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 "
+"type:`PyCFunction`. The function expects two :c:expr:`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 ""
-#: c-api/structures.rst:278
+#: c-api/structures.rst:279
msgid ""
"Methods with these flags must be of type :c:type:`PyCFunctionWithKeywords`. "
"The function expects three parameters: *self*, *args*, *kwargs* where "
@@ -309,50 +268,46 @@ msgid ""
"using :c:func:`PyArg_ParseTupleAndKeywords`."
msgstr ""
-#: c-api/structures.rst:287
+#: c-api/structures.rst:288
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:expr:`PyObject*` values indicating the "
"arguments and the third parameter is the number of arguments (the length of "
"the array)."
msgstr ""
-#: c-api/structures.rst:297
+#: c-api/structures.rst:298
msgid "``METH_FASTCALL`` is now part of the stable ABI."
msgstr ""
-#: c-api/structures.rst:302
+#: c-api/structures.rst:303
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 :ref:`vectorcall protocol `: "
-"there is an additional fourth :c:type:`PyObject*` parameter which is a tuple "
+"there is an additional fourth :c:expr:`PyObject*` parameter which is a tuple "
"representing the names of the keyword arguments (which are guaranteed to be "
"strings) 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 ""
-#: c-api/structures.rst:312
-msgid "This is not part of the :ref:`limited API `."
-msgstr ""
-
-#: c-api/structures.rst:319
+#: c-api/structures.rst:318
msgid ""
"Extension of :const:`METH_FASTCALL | METH_KEYWORDS` supporting the *defining "
"class*, that is, the class that contains the method in question. The "
"defining class might be a superclass of ``Py_TYPE(self)``."
msgstr ""
-#: c-api/structures.rst:323
+#: c-api/structures.rst:322
msgid ""
"The method needs to be of type :c:type:`PyCMethod`, the same as for "
"``METH_FASTCALL | METH_KEYWORDS`` with ``defining_class`` argument added "
"after ``self``."
msgstr ""
-#: c-api/structures.rst:332
+#: c-api/structures.rst:331
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 "
@@ -361,16 +316,16 @@ msgid ""
"the second parameter will be ``NULL``."
msgstr ""
-#: c-api/structures.rst:341
+#: c-api/structures.rst:340
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:expr:`PyObject*` parameter representing the single "
"argument."
msgstr ""
-#: c-api/structures.rst:347
+#: c-api/structures.rst:346
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 "
@@ -378,27 +333,27 @@ msgid ""
"any given method."
msgstr ""
-#: c-api/structures.rst:357
+#: c-api/structures.rst:356
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 ""
-#: c-api/structures.rst:367
+#: c-api/structures.rst:366
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 ""
-#: c-api/structures.rst:371
+#: c-api/structures.rst:370
msgid ""
"One other constant controls whether a method is loaded in place of another "
"definition with the same method name."
msgstr ""
-#: c-api/structures.rst:377
+#: c-api/structures.rst:376
msgid ""
"The method will be loaded in place of existing definitions. Without "
"*METH_COEXIST*, the default is to skip repeated definitions. Since slot "
@@ -411,193 +366,213 @@ msgid ""
"calls."
msgstr ""
-#: c-api/structures.rst:389
+#: c-api/structures.rst:388
msgid "Accessing attributes of extension types"
msgstr ""
-#: c-api/structures.rst:393
+#: c-api/structures.rst:392
msgid ""
"Structure which describes an attribute of a type which corresponds to a C "
"struct member. Its fields are:"
msgstr ""
-#: c-api/structures.rst:399
+#: c-api/structures.rst:492
+msgid "Field"
+msgstr "Champ"
+
+#: c-api/structures.rst:492
+msgid "C Type"
+msgstr "Type C"
+
+#: c-api/structures.rst:492
+msgid "Meaning"
+msgstr "Signification"
+
+#: c-api/structures.rst:398
msgid ":attr:`name`"
+msgstr ":attr:`name`"
+
+#: c-api/structures.rst:411 c-api/structures.rst:494 c-api/structures.rst:502
+msgid "const char \\*"
msgstr ""
-#: c-api/structures.rst:399
+#: c-api/structures.rst:398
msgid "name of the member"
msgstr ""
-#: c-api/structures.rst:401
+#: c-api/structures.rst:400
msgid ":attr:`!type`"
-msgstr ""
+msgstr ":attr:`!type`"
+
+#: c-api/structures.rst:407 c-api/structures.rst:423
+msgid "int"
+msgstr "*int*"
-#: c-api/structures.rst:401
+#: c-api/structures.rst:400
msgid "the type of the member in the C struct"
msgstr ""
-#: c-api/structures.rst:404
+#: c-api/structures.rst:403
msgid ":attr:`offset`"
-msgstr ""
+msgstr ":attr:`offset`"
-#: c-api/structures.rst:440
+#: c-api/structures.rst:439
msgid "Py_ssize_t"
msgstr ""
-#: c-api/structures.rst:404
+#: c-api/structures.rst:403
msgid ""
"the offset in bytes that the member is located on the type's object struct"
msgstr ""
-#: c-api/structures.rst:408
+#: c-api/structures.rst:407
msgid ":attr:`flags`"
-msgstr ""
+msgstr ":attr:`flags`"
-#: c-api/structures.rst:408
+#: c-api/structures.rst:407
msgid "flag bits indicating if the field should be read-only or writable"
msgstr ""
-#: c-api/structures.rst:412
+#: c-api/structures.rst:411
msgid ":attr:`doc`"
-msgstr ""
+msgstr ":attr:`doc`"
-#: c-api/structures.rst:416
+#: c-api/structures.rst:415
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 ""
-#: c-api/structures.rst:421
+#: c-api/structures.rst:420
msgid "Macro name"
msgstr ""
-#: c-api/structures.rst:421
+#: c-api/structures.rst:420
msgid "C type"
msgstr "Type C"
-#: c-api/structures.rst:423
+#: c-api/structures.rst:422
msgid "T_SHORT"
msgstr ""
-#: c-api/structures.rst:423
+#: c-api/structures.rst:422
msgid "short"
msgstr ""
-#: c-api/structures.rst:424
+#: c-api/structures.rst:423
msgid "T_INT"
msgstr ""
-#: c-api/structures.rst:425
+#: c-api/structures.rst:424
msgid "T_LONG"
msgstr ""
-#: c-api/structures.rst:425
+#: c-api/structures.rst:424
msgid "long"
msgstr ""
-#: c-api/structures.rst:426
+#: c-api/structures.rst:425
msgid "T_FLOAT"
msgstr ""
-#: c-api/structures.rst:426
+#: c-api/structures.rst:425
msgid "float"
msgstr "*float*"
-#: c-api/structures.rst:427
+#: c-api/structures.rst:426
msgid "T_DOUBLE"
msgstr ""
-#: c-api/structures.rst:427
+#: c-api/structures.rst:426
msgid "double"
msgstr "double"
-#: c-api/structures.rst:428
+#: c-api/structures.rst:427
msgid "T_STRING"
msgstr ""
-#: c-api/structures.rst:429
+#: c-api/structures.rst:428
msgid "T_OBJECT"
msgstr ""
-#: c-api/structures.rst:430
+#: c-api/structures.rst:429
msgid "PyObject \\*"
msgstr "PyObject \\*"
-#: c-api/structures.rst:430
+#: c-api/structures.rst:429
msgid "T_OBJECT_EX"
msgstr ""
-#: c-api/structures.rst:431
+#: c-api/structures.rst:430
msgid "T_CHAR"
msgstr ""
-#: c-api/structures.rst:432 c-api/structures.rst:437
+#: c-api/structures.rst:431 c-api/structures.rst:436
msgid "char"
msgstr "char"
-#: c-api/structures.rst:432
+#: c-api/structures.rst:431
msgid "T_BYTE"
msgstr ""
-#: c-api/structures.rst:433
+#: c-api/structures.rst:432
msgid "T_UBYTE"
msgstr ""
-#: c-api/structures.rst:433
+#: c-api/structures.rst:432
msgid "unsigned char"
msgstr "``unsigned char``"
-#: c-api/structures.rst:434
+#: c-api/structures.rst:433
msgid "T_UINT"
msgstr ""
-#: c-api/structures.rst:434
+#: c-api/structures.rst:433
msgid "unsigned int"
msgstr "``unsigned int``"
-#: c-api/structures.rst:435
+#: c-api/structures.rst:434
msgid "T_USHORT"
msgstr ""
-#: c-api/structures.rst:435
+#: c-api/structures.rst:434
msgid "unsigned short"
msgstr "``unsigned short``"
-#: c-api/structures.rst:436
+#: c-api/structures.rst:435
msgid "T_ULONG"
msgstr ""
-#: c-api/structures.rst:436
+#: c-api/structures.rst:435
msgid "unsigned long"
msgstr "``unsigned long``"
-#: c-api/structures.rst:437
+#: c-api/structures.rst:436
msgid "T_BOOL"
msgstr ""
-#: c-api/structures.rst:438
+#: c-api/structures.rst:437
msgid "T_LONGLONG"
msgstr ""
-#: c-api/structures.rst:438
+#: c-api/structures.rst:437
msgid "long long"
msgstr ""
-#: c-api/structures.rst:439
+#: c-api/structures.rst:438
msgid "T_ULONGLONG"
msgstr ""
-#: c-api/structures.rst:439
+#: c-api/structures.rst:438
msgid "unsigned long long"
msgstr "``unsigned long long``"
-#: c-api/structures.rst:440
+#: c-api/structures.rst:439
msgid "T_PYSSIZET"
msgstr ""
-#: c-api/structures.rst:443
+#: c-api/structures.rst:442
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:"
@@ -607,7 +582,7 @@ msgid ""
"than :c:macro:`T_OBJECT`."
msgstr ""
-#: c-api/structures.rst:450
+#: c-api/structures.rst:449
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:"
@@ -616,7 +591,7 @@ msgid ""
"are set to ``NULL``)."
msgstr ""
-#: c-api/structures.rst:458
+#: c-api/structures.rst:457
msgid ""
"Heap allocated types (created using :c:func:`PyType_FromSpec` or similar), "
"``PyMemberDef`` may contain definitions for the special members "
@@ -627,100 +602,115 @@ msgid ""
"``T_PYSSIZET`` and ``READONLY``, for example::"
msgstr ""
-#: c-api/structures.rst:475
+#: c-api/structures.rst:474
msgid ""
"Get an attribute belonging to the object at address *obj_addr*. The "
"attribute is described by ``PyMemberDef`` *m*. Returns ``NULL`` on error."
msgstr ""
-#: c-api/structures.rst:482
+#: c-api/structures.rst:481
msgid ""
"Set an attribute belonging to the object at address *obj_addr* to object "
"*o*. The attribute to set is described by ``PyMemberDef`` *m*. Returns "
"``0`` if successful and a negative value on failure."
msgstr ""
-#: c-api/structures.rst:489
+#: c-api/structures.rst:488
msgid ""
"Structure to define property-like access for a type. See also description of "
"the :c:member:`PyTypeObject.tp_getset` slot."
msgstr ""
-#: c-api/structures.rst:495
+#: c-api/structures.rst:494
msgid "name"
-msgstr ""
+msgstr "nom"
-#: c-api/structures.rst:495
+#: c-api/structures.rst:494
msgid "attribute name"
msgstr ""
-#: c-api/structures.rst:497
+#: c-api/structures.rst:496
msgid "get"
msgstr ""
-#: c-api/structures.rst:497
+#: c-api/structures.rst:496
msgid "getter"
msgstr ""
-#: c-api/structures.rst:497
-msgid "C Function to get the attribute"
+#: c-api/structures.rst:496
+msgid "C function to get the attribute"
msgstr ""
-#: c-api/structures.rst:499
+#: c-api/structures.rst:498
msgid "set"
msgstr ""
-#: c-api/structures.rst:499
+#: c-api/structures.rst:498
msgid "setter"
msgstr ""
-#: c-api/structures.rst:499
+#: c-api/structures.rst:498
msgid ""
"optional C function to set or delete the attribute, if omitted the attribute "
"is readonly"
msgstr ""
-#: c-api/structures.rst:503
+#: c-api/structures.rst:502
msgid "doc"
msgstr ""
-#: c-api/structures.rst:503
+#: c-api/structures.rst:502
msgid "optional docstring"
msgstr ""
-#: c-api/structures.rst:505
+#: c-api/structures.rst:504
msgid "closure"
msgstr ""
-#: c-api/structures.rst:505
+#: c-api/structures.rst:504
msgid "void \\*"
msgstr ""
-#: c-api/structures.rst:505
+#: c-api/structures.rst:504
msgid ""
"optional function pointer, providing additional data for getter and setter"
msgstr ""
-#: c-api/structures.rst:510
+#: c-api/structures.rst:509
msgid ""
-"The ``get`` function takes one :c:type:`PyObject*` parameter (the instance) "
+"The ``get`` function takes one :c:expr:`PyObject*` parameter (the instance) "
"and a function pointer (the associated ``closure``)::"
msgstr ""
-#: c-api/structures.rst:515
+#: c-api/structures.rst:514
msgid ""
"It should return a new reference on success or ``NULL`` with a set exception "
"on failure."
msgstr ""
-#: c-api/structures.rst:518
+#: c-api/structures.rst:517
msgid ""
-"``set`` functions take two :c:type:`PyObject*` parameters (the instance and "
+"``set`` functions take two :c:expr:`PyObject*` parameters (the instance and "
"the value to be set) and a function pointer (the associated ``closure``)::"
msgstr ""
-#: c-api/structures.rst:523
+#: c-api/structures.rst:522
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."
msgstr ""
+
+#~ msgid ":attr:`ml_name`"
+#~ msgstr ":attr:`ml_name`"
+
+#~ msgid ":attr:`ml_meth`"
+#~ msgstr ":attr:`ml_meth`"
+
+#~ msgid "PyCFunction"
+#~ msgstr "PyCFunction"
+
+#~ msgid ":attr:`ml_flags`"
+#~ msgstr ":attr:`ml_flags`"
+
+#~ msgid ":attr:`ml_doc`"
+#~ msgstr ":attr:`ml_doc`"
diff --git a/c-api/sys.po b/c-api/sys.po
index 35d52c6c27..beba8891ff 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: 2021-09-23 16:16+0200\n"
+"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: FRENCH \n"
@@ -118,7 +118,7 @@ msgid ""
"Return the current signal handler for signal *i*. This is a thin wrapper "
"around either :c:func:`sigaction` or :c:func:`signal`. Do not call those "
"functions directly! :c:type:`PyOS_sighandler_t` is a typedef alias for :c:"
-"type:`void (\\*)(int)`."
+"expr:`void (\\*)(int)`."
msgstr ""
#: c-api/sys.rst:114
@@ -126,7 +126,7 @@ msgid ""
"Set the signal handler for signal *i* to be *h*; return the old signal "
"handler. This is a thin wrapper around either :c:func:`sigaction` or :c:func:"
"`signal`. Do not call those functions directly! :c:type:"
-"`PyOS_sighandler_t` is a typedef alias for :c:type:`void (\\*)(int)`."
+"`PyOS_sighandler_t` is a typedef alias for :c:expr:`void (\\*)(int)`."
msgstr ""
#: c-api/sys.rst:122
@@ -147,8 +147,8 @@ msgstr ""
msgid ""
"Decode a byte string from the :term:`filesystem encoding and error handler`. "
"If the error handler is :ref:`surrogateescape error handler "
-"`, undecodable bytes are decoded as characters in range U"
-"+DC80..U+DCFF; and if a byte sequence can be decoded as a surrogate "
+"`, undecodable bytes are decoded as characters in range "
+"U+DC80..U+DCFF; and if a byte sequence can be decoded as a surrogate "
"character, the bytes are escaped using the surrogateescape error handler "
"instead of decoding them."
msgstr ""
@@ -197,7 +197,7 @@ msgid ""
"`."
msgstr ""
-#: c-api/sys.rst:208
+#: c-api/sys.rst:166
msgid ""
"The function now uses the UTF-8 encoding on Windows if :c:data:"
"`Py_LegacyWindowsFSEncodingFlag` is zero;"
@@ -215,7 +215,7 @@ msgstr ""
msgid ""
"Return a pointer to a newly allocated byte string, use :c:func:`PyMem_Free` "
"to free the memory. Return ``NULL`` on encoding error or memory allocation "
-"error"
+"error."
msgstr ""
#: c-api/sys.rst:182
@@ -236,6 +236,12 @@ msgid ""
"functions."
msgstr ""
+#: c-api/sys.rst:208
+msgid ""
+"The function now uses the UTF-8 encoding on Windows if :c:data:"
+"`Py_LegacyWindowsFSEncodingFlag` is zero."
+msgstr ""
+
#: c-api/sys.rst:216
msgid "System Functions"
msgstr ""
@@ -367,8 +373,8 @@ msgstr ""
#: c-api/sys.rst:325
msgid ""
-"Note that ``#`` format characters should always be treated as "
-"``Py_ssize_t``, regardless of whether ``PY_SSIZE_T_CLEAN`` was defined."
+"Note that ``#`` format characters should always be treated as :c:type:"
+"`Py_ssize_t`, regardless of whether ``PY_SSIZE_T_CLEAN`` was defined."
msgstr ""
#: c-api/sys.rst:328
@@ -377,14 +383,14 @@ msgstr ""
#: c-api/sys.rst:334
msgid ""
-"Require ``Py_ssize_t`` for ``#`` format characters. Previously, an "
+"Require :c:type:`Py_ssize_t` for ``#`` format characters. Previously, an "
"unavoidable deprecation warning was raised."
msgstr ""
#: c-api/sys.rst:340
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, "
+"on success and non-zero on failure. If the runtime has been initialized, "
"also set an error on failure. Hooks added through this API are called for "
"all interpreters created by the runtime."
msgstr ""
@@ -406,7 +412,7 @@ msgstr ""
#: c-api/sys.rst:355
msgid ""
-"The hook function is of type :c:type:`int (*)(const char *event, PyObject "
+"The hook function is of type :c:expr:`int (*)(const char *event, PyObject "
"*args, void *userData)`, where *args* is guaranteed to be a :c:type:"
"`PyTupleObject`. The hook function is always called with the GIL held by the "
"Python interpreter that raised the event."
diff --git a/c-api/tuple.po b/c-api/tuple.po
index 59c89730a2..3be93d4b2c 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: 2021-09-23 16:16+0200\n"
+"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: FRENCH \n"
@@ -218,7 +218,7 @@ msgstr ""
#: c-api/tuple.rst:163
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:"
+"tuple, all fields are typed as :c:expr:`PyObject*`. The index in the :attr:"
"`fields` array of the :c:type:`PyStructSequence_Desc` determines which field "
"of the struct sequence is described."
msgstr ""
diff --git a/c-api/type.po b/c-api/type.po
index d19afb6194..d741ef3dc0 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: 2021-09-23 16:16+0200\n"
+"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2018-02-15 00:33+0100\n"
"Last-Translator: FULL NAME \n"
"Language-Team: FRENCH \n"
@@ -49,7 +49,7 @@ msgstr ""
#: c-api/type.rst:42
msgid ""
"Return the :c:member:`~PyTypeObject.tp_flags` member of *type*. This "
-"function is primarily meant for use with `Py_LIMITED_API`; the individual "
+"function is primarily meant for use with ``Py_LIMITED_API``; the individual "
"flag bits are guaranteed to be stable across Python releases, but access to :"
"c:member:`~PyTypeObject.tp_flags` itself is not part of the limited API."
msgstr ""
@@ -356,7 +356,7 @@ msgid ""
msgstr ""
#: c-api/type.rst:275
-msgid "Slots in :c:type:`PyBufferProcs` in may be set in the unlimited API."
+msgid "Slots in :c:type:`PyBufferProcs` may be set in the unlimited API."
msgstr ""
#: c-api/type.rst:279
diff --git a/c-api/typehints.po b/c-api/typehints.po
index 10b81e0280..5ba8daa27b 100644
--- a/c-api/typehints.po
+++ b/c-api/typehints.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-09-23 16:16+0200\n"
+"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: FRENCH \n"
@@ -30,8 +30,8 @@ msgid ""
"Create a :ref:`GenericAlias ` object. Equivalent to "
"calling the Python class :class:`types.GenericAlias`. The *origin* and "
"*args* arguments set the ``GenericAlias``\\ 's ``__origin__`` and "
-"``__args__`` attributes respectively. *origin* should be a :c:type:"
-"`PyTypeObject*`, and *args* can be a :c:type:`PyTupleObject*` or any "
+"``__args__`` attributes respectively. *origin* should be a :c:expr:"
+"`PyTypeObject*`, and *args* can be a :c:expr:`PyTupleObject*` or any "
"``PyObject*``. If *args* passed is not a tuple, a 1-tuple is automatically "
"constructed and ``__args__`` is set to ``(args,)``. Minimal checking is done "
"for the arguments, so the function will succeed even if *origin* is not a "
diff --git a/c-api/typeobj.po b/c-api/typeobj.po
index 711799c92f..2f7311a9d3 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: 2021-11-27 10:27+0100\n"
+"POT-Creation-Date: 2023-03-22 22:57+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: FRENCH \n"
@@ -22,11 +22,11 @@ msgstr "Objets type"
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 ``PyObject_*`` or "
+"``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 ""
#: c-api/typeobj.rst:16
@@ -58,7 +58,7 @@ msgstr ""
msgid "PyTypeObject Slot [#slots]_"
msgstr ""
-#: c-api/typeobj.rst:193
+#: c-api/typeobj.rst:199
msgid ":ref:`Type `"
msgstr ""
@@ -112,8 +112,8 @@ msgid ":c:member:`~PyTypeObject.tp_basicsize`"
msgstr ""
#: c-api/typeobj.rst:48 c-api/typeobj.rst:99 c-api/typeobj.rst:0
-#: c-api/typeobj.rst:408
-msgid "Py_ssize_t"
+#: c-api/typeobj.rst:414
+msgid ":c:type:`Py_ssize_t`"
msgstr ""
#: c-api/typeobj.rst:48
@@ -124,7 +124,7 @@ msgstr ""
msgid ":c:member:`~PyTypeObject.tp_dealloc`"
msgstr ""
-#: c-api/typeobj.rst:142 c-api/typeobj.rst:338
+#: c-api/typeobj.rst:142 c-api/typeobj.rst:344
msgid ":c:type:`destructor`"
msgstr ""
@@ -136,7 +136,7 @@ msgstr ""
msgid "(:c:member:`~PyTypeObject.tp_getattr`)"
msgstr ""
-#: c-api/typeobj.rst:362
+#: c-api/typeobj.rst:368
msgid ":c:type:`getattrfunc`"
msgstr ""
@@ -153,7 +153,7 @@ msgstr ""
msgid "(:c:member:`~PyTypeObject.tp_setattr`)"
msgstr ""
-#: c-api/typeobj.rst:367
+#: c-api/typeobj.rst:373
msgid ":c:type:`setattrfunc`"
msgstr ""
@@ -171,7 +171,7 @@ msgstr ""
#: c-api/typeobj.rst:64 c-api/typeobj.rst:68
msgid ":ref:`sub-slots`"
-msgstr ""
+msgstr ":ref:`sub-slots`"
#: c-api/typeobj.rst:64 c-api/typeobj.rst:68 c-api/typeobj.rst:82
msgid "%"
@@ -181,7 +181,7 @@ msgstr "%"
msgid ":c:member:`~PyTypeObject.tp_repr`"
msgstr ""
-#: c-api/typeobj.rst:74 c-api/typeobj.rst:360
+#: c-api/typeobj.rst:74 c-api/typeobj.rst:366
msgid ":c:type:`reprfunc`"
msgstr ""
@@ -217,7 +217,7 @@ msgstr ""
msgid ":c:member:`~PyTypeObject.tp_hash`"
msgstr ""
-#: c-api/typeobj.rst:396
+#: c-api/typeobj.rst:402
msgid ":c:type:`hashfunc`"
msgstr ""
@@ -229,7 +229,7 @@ msgstr ""
msgid ":c:member:`~PyTypeObject.tp_call`"
msgstr ""
-#: c-api/typeobj.rst:229 c-api/typeobj.rst:432
+#: c-api/typeobj.rst:235 c-api/typeobj.rst:438
msgid ":c:type:`ternaryfunc`"
msgstr ""
@@ -249,7 +249,7 @@ msgstr ""
msgid ":c:member:`~PyTypeObject.tp_getattro`"
msgstr ""
-#: c-api/typeobj.rst:373
+#: c-api/typeobj.rst:379
msgid ":c:type:`getattrofunc`"
msgstr ""
@@ -257,7 +257,7 @@ msgstr ""
msgid ":c:member:`~PyTypeObject.tp_setattro`"
msgstr ""
-#: c-api/typeobj.rst:378
+#: c-api/typeobj.rst:384
msgid ":c:type:`setattrofunc`"
msgstr ""
@@ -294,7 +294,7 @@ msgstr "__doc__"
msgid ":c:member:`~PyTypeObject.tp_traverse`"
msgstr ""
-#: c-api/typeobj.rst:342
+#: c-api/typeobj.rst:348
msgid ":c:type:`traverseproc`"
msgstr ""
@@ -302,7 +302,7 @@ msgstr ""
msgid ":c:member:`~PyTypeObject.tp_clear`"
msgstr ""
-#: c-api/typeobj.rst:130 c-api/typeobj.rst:421
+#: c-api/typeobj.rst:130 c-api/typeobj.rst:427
msgid ":c:type:`inquiry`"
msgstr ""
@@ -310,7 +310,7 @@ msgstr ""
msgid ":c:member:`~PyTypeObject.tp_richcompare`"
msgstr ""
-#: c-api/typeobj.rst:398
+#: c-api/typeobj.rst:404
msgid ":c:type:`richcmpfunc`"
msgstr ""
@@ -326,7 +326,7 @@ msgstr ""
msgid ":c:member:`~PyTypeObject.tp_iter`"
msgstr ""
-#: c-api/typeobj.rst:404
+#: c-api/typeobj.rst:410
msgid ":c:type:`getiterfunc`"
msgstr ""
@@ -338,7 +338,7 @@ msgstr ""
msgid ":c:member:`~PyTypeObject.tp_iternext`"
msgstr ""
-#: c-api/typeobj.rst:406
+#: c-api/typeobj.rst:412
msgid ":c:type:`iternextfunc`"
msgstr ""
@@ -387,9 +387,9 @@ msgid ":c:member:`~PyTypeObject.tp_dict`"
msgstr ""
#: c-api/typeobj.rst:132 c-api/typeobj.rst:136 c-api/typeobj.rst:140
-#: c-api/typeobj.rst:0 c-api/typeobj.rst:360 c-api/typeobj.rst:373
-#: c-api/typeobj.rst:396 c-api/typeobj.rst:404 c-api/typeobj.rst:408
-#: c-api/typeobj.rst:427 c-api/typeobj.rst:438
+#: c-api/typeobj.rst:0 c-api/typeobj.rst:366 c-api/typeobj.rst:379
+#: c-api/typeobj.rst:402 c-api/typeobj.rst:410 c-api/typeobj.rst:414
+#: c-api/typeobj.rst:433 c-api/typeobj.rst:444
msgid ":c:type:`PyObject` *"
msgstr ""
@@ -401,7 +401,7 @@ msgstr ""
msgid ":c:member:`~PyTypeObject.tp_descr_get`"
msgstr ""
-#: c-api/typeobj.rst:384
+#: c-api/typeobj.rst:390
msgid ":c:type:`descrgetfunc`"
msgstr ""
@@ -413,7 +413,7 @@ msgstr ""
msgid ":c:member:`~PyTypeObject.tp_descr_set`"
msgstr ""
-#: c-api/typeobj.rst:390
+#: c-api/typeobj.rst:396
msgid ":c:type:`descrsetfunc`"
msgstr ""
@@ -429,7 +429,7 @@ msgstr ""
msgid ":c:member:`~PyTypeObject.tp_init`"
msgstr ""
-#: c-api/typeobj.rst:354
+#: c-api/typeobj.rst:360
msgid ":c:type:`initproc`"
msgstr ""
@@ -441,7 +441,7 @@ msgstr ""
msgid ":c:member:`~PyTypeObject.tp_alloc`"
msgstr ""
-#: c-api/typeobj.rst:333
+#: c-api/typeobj.rst:339
msgid ":c:type:`allocfunc`"
msgstr ""
@@ -449,7 +449,7 @@ msgstr ""
msgid ":c:member:`~PyTypeObject.tp_new`"
msgstr ""
-#: c-api/typeobj.rst:348
+#: c-api/typeobj.rst:354
msgid ":c:type:`newfunc`"
msgstr ""
@@ -461,7 +461,7 @@ msgstr ""
msgid ":c:member:`~PyTypeObject.tp_free`"
msgstr ""
-#: c-api/typeobj.rst:340
+#: c-api/typeobj.rst:346
msgid ":c:type:`freefunc`"
msgstr ""
@@ -533,511 +533,523 @@ msgstr ""
msgid ":c:type:`vectorcallfunc`"
msgstr ""
-#: c-api/typeobj.rst:152
+#: c-api/typeobj.rst:153
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 "
-"are for internal use only. \"\" (as a prefix) means the field is required "
-"(must be non-``NULL``)."
+"**()**: A slot name in parentheses indicates it is (effectively) deprecated."
msgstr ""
-#: c-api/typeobj.rst:156
-msgid "Columns:"
+#: c-api/typeobj.rst:155
+msgid ""
+"**<>**: Names in angle brackets should be initially set to ``NULL`` and "
+"treated as read-only."
msgstr ""
#: c-api/typeobj.rst:158
-msgid "**\"O\"**: set on :c:type:`PyBaseObject_Type`"
+msgid "**[]**: Names in square brackets are for internal use only."
msgstr ""
#: c-api/typeobj.rst:160
-msgid "**\"T\"**: set on :c:type:`PyType_Type`"
+msgid ""
+"**** (as a prefix) means the field is required (must be non-``NULL``)."
msgstr ""
#: c-api/typeobj.rst:162
+msgid "Columns:"
+msgstr ""
+
+#: c-api/typeobj.rst:164
+msgid "**\"O\"**: set on :c:type:`PyBaseObject_Type`"
+msgstr ""
+
+#: c-api/typeobj.rst:166
+msgid "**\"T\"**: set on :c:type:`PyType_Type`"
+msgstr ""
+
+#: c-api/typeobj.rst:168
msgid "**\"D\"**: default (if slot is set to ``NULL``)"
msgstr ""
-#: c-api/typeobj.rst:172
+#: c-api/typeobj.rst:178
msgid "**\"I\"**: inheritance"
msgstr ""
-#: c-api/typeobj.rst:181
+#: c-api/typeobj.rst:187
msgid ""
"Note that some slots are effectively inherited through the normal attribute "
"lookup chain."
msgstr ""
-#: c-api/typeobj.rst:187
+#: c-api/typeobj.rst:193
msgid "sub-slots"
msgstr ""
-#: c-api/typeobj.rst:193
+#: c-api/typeobj.rst:199
msgid "Slot"
msgstr ""
-#: c-api/typeobj.rst:193
+#: c-api/typeobj.rst:199
#, fuzzy
msgid "special methods"
msgstr "méthode spéciale"
-#: c-api/typeobj.rst:196
+#: c-api/typeobj.rst:202
msgid ":c:member:`~PyAsyncMethods.am_await`"
msgstr ""
-#: c-api/typeobj.rst:198 c-api/typeobj.rst:234 c-api/typeobj.rst:238
-#: c-api/typeobj.rst:269 c-api/typeobj.rst:283 c-api/typeobj.rst:423
+#: c-api/typeobj.rst:204 c-api/typeobj.rst:240 c-api/typeobj.rst:244
+#: c-api/typeobj.rst:275 c-api/typeobj.rst:289 c-api/typeobj.rst:429
msgid ":c:type:`unaryfunc`"
msgstr ""
-#: c-api/typeobj.rst:196
+#: c-api/typeobj.rst:202
msgid "__await__"
msgstr ""
-#: c-api/typeobj.rst:198
+#: c-api/typeobj.rst:204
msgid ":c:member:`~PyAsyncMethods.am_aiter`"
msgstr ""
-#: c-api/typeobj.rst:198
+#: c-api/typeobj.rst:204
msgid "__aiter__"
msgstr ""
-#: c-api/typeobj.rst:200
+#: c-api/typeobj.rst:206
msgid ":c:member:`~PyAsyncMethods.am_anext`"
msgstr ""
-#: c-api/typeobj.rst:200
+#: c-api/typeobj.rst:206
msgid "__anext__"
msgstr ""
-#: c-api/typeobj.rst:202
+#: c-api/typeobj.rst:208
msgid ":c:member:`~PyAsyncMethods.am_send`"
msgstr ""
-#: c-api/typeobj.rst:202
+#: c-api/typeobj.rst:208
msgid ":c:type:`sendfunc`"
msgstr ""
-#: c-api/typeobj.rst:206
+#: c-api/typeobj.rst:212
msgid ":c:member:`~PyNumberMethods.nb_add`"
msgstr ""
-#: c-api/typeobj.rst:209 c-api/typeobj.rst:214 c-api/typeobj.rst:219
-#: c-api/typeobj.rst:224 c-api/typeobj.rst:244 c-api/typeobj.rst:249
-#: c-api/typeobj.rst:254 c-api/typeobj.rst:259 c-api/typeobj.rst:264
-#: c-api/typeobj.rst:275 c-api/typeobj.rst:279 c-api/typeobj.rst:285
-#: c-api/typeobj.rst:294 c-api/typeobj.rst:314 c-api/typeobj.rst:427
+#: c-api/typeobj.rst:215 c-api/typeobj.rst:220 c-api/typeobj.rst:225
+#: c-api/typeobj.rst:230 c-api/typeobj.rst:250 c-api/typeobj.rst:255
+#: c-api/typeobj.rst:260 c-api/typeobj.rst:265 c-api/typeobj.rst:270
+#: c-api/typeobj.rst:281 c-api/typeobj.rst:285 c-api/typeobj.rst:291
+#: c-api/typeobj.rst:300 c-api/typeobj.rst:320 c-api/typeobj.rst:433
msgid ":c:type:`binaryfunc`"
msgstr ""
-#: c-api/typeobj.rst:206
+#: c-api/typeobj.rst:212
msgid "__add__ __radd__"
msgstr ""
-#: c-api/typeobj.rst:209
+#: c-api/typeobj.rst:215
msgid ":c:member:`~PyNumberMethods.nb_inplace_add`"
msgstr ""
-#: c-api/typeobj.rst:314
+#: c-api/typeobj.rst:320
msgid "__iadd__"
msgstr ""
-#: c-api/typeobj.rst:211
+#: c-api/typeobj.rst:217
msgid ":c:member:`~PyNumberMethods.nb_subtract`"
msgstr ""
-#: c-api/typeobj.rst:211
+#: c-api/typeobj.rst:217
msgid "__sub__ __rsub__"
msgstr ""
-#: c-api/typeobj.rst:214
+#: c-api/typeobj.rst:220
msgid ":c:member:`~PyNumberMethods.nb_inplace_subtract`"
msgstr ""
-#: c-api/typeobj.rst:214
+#: c-api/typeobj.rst:220
msgid "__isub__"
msgstr ""
-#: c-api/typeobj.rst:216
+#: c-api/typeobj.rst:222
msgid ":c:member:`~PyNumberMethods.nb_multiply`"
msgstr ""
-#: c-api/typeobj.rst:216
+#: c-api/typeobj.rst:222
msgid "__mul__ __rmul__"
msgstr ""
-#: c-api/typeobj.rst:219
+#: c-api/typeobj.rst:225
msgid ":c:member:`~PyNumberMethods.nb_inplace_multiply`"
msgstr ""
-#: c-api/typeobj.rst:316
+#: c-api/typeobj.rst:322
msgid "__imul__"
msgstr ""
-#: c-api/typeobj.rst:221
+#: c-api/typeobj.rst:227
msgid ":c:member:`~PyNumberMethods.nb_remainder`"
msgstr ""
-#: c-api/typeobj.rst:221
+#: c-api/typeobj.rst:227
msgid "__mod__ __rmod__"
msgstr ""
-#: c-api/typeobj.rst:224
+#: c-api/typeobj.rst:230
msgid ":c:member:`~PyNumberMethods.nb_inplace_remainder`"
msgstr ""
-#: c-api/typeobj.rst:224
+#: c-api/typeobj.rst:230
msgid "__imod__"
msgstr ""
-#: c-api/typeobj.rst:226
+#: c-api/typeobj.rst:232
msgid ":c:member:`~PyNumberMethods.nb_divmod`"
msgstr ""
-#: c-api/typeobj.rst:226
+#: c-api/typeobj.rst:232
msgid "__divmod__ __rdivmod__"
msgstr ""
-#: c-api/typeobj.rst:229
+#: c-api/typeobj.rst:235
msgid ":c:member:`~PyNumberMethods.nb_power`"
msgstr ""
-#: c-api/typeobj.rst:229
+#: c-api/typeobj.rst:235
msgid "__pow__ __rpow__"
msgstr ""
-#: c-api/typeobj.rst:232
+#: c-api/typeobj.rst:238
msgid ":c:member:`~PyNumberMethods.nb_inplace_power`"
msgstr ""
-#: c-api/typeobj.rst:232
+#: c-api/typeobj.rst:238
msgid "__ipow__"
msgstr ""
-#: c-api/typeobj.rst:234
+#: c-api/typeobj.rst:240
msgid ":c:member:`~PyNumberMethods.nb_negative`"
msgstr ""
-#: c-api/typeobj.rst:234
+#: c-api/typeobj.rst:240
msgid "__neg__"
msgstr ""
-#: c-api/typeobj.rst:236
+#: c-api/typeobj.rst:242
msgid ":c:member:`~PyNumberMethods.nb_positive`"
msgstr ""
-#: c-api/typeobj.rst:236
+#: c-api/typeobj.rst:242
msgid "__pos__"
msgstr ""
-#: c-api/typeobj.rst:238
+#: c-api/typeobj.rst:244
msgid ":c:member:`~PyNumberMethods.nb_absolute`"
msgstr ""
-#: c-api/typeobj.rst:238
+#: c-api/typeobj.rst:244
msgid "__abs__"
msgstr ""
-#: c-api/typeobj.rst:240
+#: c-api/typeobj.rst:246
msgid ":c:member:`~PyNumberMethods.nb_bool`"
msgstr ""
-#: c-api/typeobj.rst:240
+#: c-api/typeobj.rst:246
msgid "__bool__"
msgstr ""
-#: c-api/typeobj.rst:242
+#: c-api/typeobj.rst:248
msgid ":c:member:`~PyNumberMethods.nb_invert`"
msgstr ""
-#: c-api/typeobj.rst:242
+#: c-api/typeobj.rst:248
msgid "__invert__"
msgstr ""
-#: c-api/typeobj.rst:244
+#: c-api/typeobj.rst:250
msgid ":c:member:`~PyNumberMethods.nb_lshift`"
msgstr ""
-#: c-api/typeobj.rst:244
+#: c-api/typeobj.rst:250
msgid "__lshift__ __rlshift__"
msgstr ""
-#: c-api/typeobj.rst:247
+#: c-api/typeobj.rst:253
msgid ":c:member:`~PyNumberMethods.nb_inplace_lshift`"
msgstr ""
-#: c-api/typeobj.rst:247
+#: c-api/typeobj.rst:253
msgid "__ilshift__"
msgstr ""
-#: c-api/typeobj.rst:249
+#: c-api/typeobj.rst:255
msgid ":c:member:`~PyNumberMethods.nb_rshift`"
msgstr ""
-#: c-api/typeobj.rst:249
+#: c-api/typeobj.rst:255
msgid "__rshift__ __rrshift__"
msgstr ""
-#: c-api/typeobj.rst:252
+#: c-api/typeobj.rst:258
msgid ":c:member:`~PyNumberMethods.nb_inplace_rshift`"
msgstr ""
-#: c-api/typeobj.rst:252
+#: c-api/typeobj.rst:258
msgid "__irshift__"
msgstr ""
-#: c-api/typeobj.rst:254
+#: c-api/typeobj.rst:260
msgid ":c:member:`~PyNumberMethods.nb_and`"
msgstr ""
-#: c-api/typeobj.rst:254
+#: c-api/typeobj.rst:260
msgid "__and__ __rand__"
msgstr ""
-#: c-api/typeobj.rst:257
+#: c-api/typeobj.rst:263
msgid ":c:member:`~PyNumberMethods.nb_inplace_and`"
msgstr ""
-#: c-api/typeobj.rst:257
+#: c-api/typeobj.rst:263
msgid "__iand__"
msgstr ""
-#: c-api/typeobj.rst:259
+#: c-api/typeobj.rst:265
msgid ":c:member:`~PyNumberMethods.nb_xor`"
msgstr ""
-#: c-api/typeobj.rst:259
+#: c-api/typeobj.rst:265
msgid "__xor__ __rxor__"
msgstr ""
-#: c-api/typeobj.rst:262
+#: c-api/typeobj.rst:268
msgid ":c:member:`~PyNumberMethods.nb_inplace_xor`"
msgstr ""
-#: c-api/typeobj.rst:262
+#: c-api/typeobj.rst:268
msgid "__ixor__"
msgstr ""
-#: c-api/typeobj.rst:264
+#: c-api/typeobj.rst:270
msgid ":c:member:`~PyNumberMethods.nb_or`"
msgstr ""
-#: c-api/typeobj.rst:264
+#: c-api/typeobj.rst:270
msgid "__or__ __ror__"
msgstr ""
-#: c-api/typeobj.rst:267
+#: c-api/typeobj.rst:273
msgid ":c:member:`~PyNumberMethods.nb_inplace_or`"
msgstr ""
-#: c-api/typeobj.rst:267
+#: c-api/typeobj.rst:273
msgid "__ior__"
msgstr ""
-#: c-api/typeobj.rst:269
+#: c-api/typeobj.rst:275
msgid ":c:member:`~PyNumberMethods.nb_int`"
msgstr ""
-#: c-api/typeobj.rst:269
+#: c-api/typeobj.rst:275
msgid "__int__"
msgstr ""
-#: c-api/typeobj.rst:271
+#: c-api/typeobj.rst:277
msgid ":c:member:`~PyNumberMethods.nb_reserved`"
msgstr ""
-#: c-api/typeobj.rst:338 c-api/typeobj.rst:0 c-api/typeobj.rst:421
+#: c-api/typeobj.rst:344 c-api/typeobj.rst:0 c-api/typeobj.rst:427
msgid "void *"
msgstr ""
-#: c-api/typeobj.rst:273
+#: c-api/typeobj.rst:279
msgid ":c:member:`~PyNumberMethods.nb_float`"
msgstr ""
-#: c-api/typeobj.rst:273
+#: c-api/typeobj.rst:279
msgid "__float__"
msgstr ""
-#: c-api/typeobj.rst:275
+#: c-api/typeobj.rst:281
msgid ":c:member:`~PyNumberMethods.nb_floor_divide`"
msgstr ""
-#: c-api/typeobj.rst:275
+#: c-api/typeobj.rst:281
msgid "__floordiv__"
msgstr ""
-#: c-api/typeobj.rst:277
+#: c-api/typeobj.rst:283
msgid ":c:member:`~PyNumberMethods.nb_inplace_floor_divide`"
msgstr ""
-#: c-api/typeobj.rst:277
+#: c-api/typeobj.rst:283
msgid "__ifloordiv__"
msgstr ""
-#: c-api/typeobj.rst:279
+#: c-api/typeobj.rst:285
msgid ":c:member:`~PyNumberMethods.nb_true_divide`"
msgstr ""
-#: c-api/typeobj.rst:279
+#: c-api/typeobj.rst:285
msgid "__truediv__"
msgstr ""
-#: c-api/typeobj.rst:281
+#: c-api/typeobj.rst:287
msgid ":c:member:`~PyNumberMethods.nb_inplace_true_divide`"
msgstr ""
-#: c-api/typeobj.rst:281
+#: c-api/typeobj.rst:287
msgid "__itruediv__"
msgstr ""
-#: c-api/typeobj.rst:283
+#: c-api/typeobj.rst:289
msgid ":c:member:`~PyNumberMethods.nb_index`"
msgstr ""
-#: c-api/typeobj.rst:283
+#: c-api/typeobj.rst:289
msgid "__index__"
msgstr ""
-#: c-api/typeobj.rst:285
+#: c-api/typeobj.rst:291
msgid ":c:member:`~PyNumberMethods.nb_matrix_multiply`"
msgstr ""
-#: c-api/typeobj.rst:285
+#: c-api/typeobj.rst:291
msgid "__matmul__ __rmatmul__"
msgstr ""
-#: c-api/typeobj.rst:288
+#: c-api/typeobj.rst:294
msgid ":c:member:`~PyNumberMethods.nb_inplace_matrix_multiply`"
msgstr ""
-#: c-api/typeobj.rst:288
+#: c-api/typeobj.rst:294
msgid "__imatmul__"
msgstr ""
-#: c-api/typeobj.rst:292
+#: c-api/typeobj.rst:298
msgid ":c:member:`~PyMappingMethods.mp_length`"
msgstr ""
-#: c-api/typeobj.rst:301 c-api/typeobj.rst:408
+#: c-api/typeobj.rst:307 c-api/typeobj.rst:414
msgid ":c:type:`lenfunc`"
msgstr ""
-#: c-api/typeobj.rst:301
+#: c-api/typeobj.rst:307
msgid "__len__"
msgstr ""
-#: c-api/typeobj.rst:294
+#: c-api/typeobj.rst:300
msgid ":c:member:`~PyMappingMethods.mp_subscript`"
msgstr ""
-#: c-api/typeobj.rst:307
+#: c-api/typeobj.rst:313
msgid "__getitem__"
msgstr ""
-#: c-api/typeobj.rst:296
+#: c-api/typeobj.rst:302
msgid ":c:member:`~PyMappingMethods.mp_ass_subscript`"
msgstr ""
-#: c-api/typeobj.rst:453
+#: c-api/typeobj.rst:460
msgid ":c:type:`objobjargproc`"
msgstr ""
-#: c-api/typeobj.rst:296
+#: c-api/typeobj.rst:302
msgid "__setitem__, __delitem__"
msgstr ""
-#: c-api/typeobj.rst:301
+#: c-api/typeobj.rst:307
msgid ":c:member:`~PySequenceMethods.sq_length`"
msgstr ""
-#: c-api/typeobj.rst:303
+#: c-api/typeobj.rst:309
msgid ":c:member:`~PySequenceMethods.sq_concat`"
msgstr ""
-#: c-api/typeobj.rst:303
+#: c-api/typeobj.rst:309
msgid "__add__"
msgstr ""
-#: c-api/typeobj.rst:305
+#: c-api/typeobj.rst:311
msgid ":c:member:`~PySequenceMethods.sq_repeat`"
msgstr ""
-#: c-api/typeobj.rst:307 c-api/typeobj.rst:438
+#: c-api/typeobj.rst:313 c-api/typeobj.rst:444
msgid ":c:type:`ssizeargfunc`"
msgstr ""
-#: c-api/typeobj.rst:305
+#: c-api/typeobj.rst:311
msgid "__mul__"
msgstr ""
-#: c-api/typeobj.rst:307
+#: c-api/typeobj.rst:313
msgid ":c:member:`~PySequenceMethods.sq_item`"
msgstr ""
-#: c-api/typeobj.rst:309
+#: c-api/typeobj.rst:315
msgid ":c:member:`~PySequenceMethods.sq_ass_item`"
msgstr ""
-#: c-api/typeobj.rst:443
+#: c-api/typeobj.rst:449
msgid ":c:type:`ssizeobjargproc`"
msgstr ""
-#: c-api/typeobj.rst:309
+#: c-api/typeobj.rst:315
msgid "__setitem__ __delitem__"
msgstr ""
-#: c-api/typeobj.rst:312
+#: c-api/typeobj.rst:318
msgid ":c:member:`~PySequenceMethods.sq_contains`"
msgstr ""
-#: c-api/typeobj.rst:448
+#: c-api/typeobj.rst:455
msgid ":c:type:`objobjproc`"
msgstr ""
-#: c-api/typeobj.rst:312
+#: c-api/typeobj.rst:318
msgid "__contains__"
msgstr ""
-#: c-api/typeobj.rst:314
+#: c-api/typeobj.rst:320
msgid ":c:member:`~PySequenceMethods.sq_inplace_concat`"
msgstr ""
-#: c-api/typeobj.rst:316
+#: c-api/typeobj.rst:322
msgid ":c:member:`~PySequenceMethods.sq_inplace_repeat`"
msgstr ""
-#: c-api/typeobj.rst:320
+#: c-api/typeobj.rst:326
msgid ":c:member:`~PyBufferProcs.bf_getbuffer`"
msgstr ""
-#: c-api/typeobj.rst:320
+#: c-api/typeobj.rst:326
msgid ":c:func:`getbufferproc`"
msgstr ""
-#: c-api/typeobj.rst:322
+#: c-api/typeobj.rst:328
msgid ":c:member:`~PyBufferProcs.bf_releasebuffer`"
msgstr ""
-#: c-api/typeobj.rst:322
+#: c-api/typeobj.rst:328
msgid ":c:func:`releasebufferproc`"
msgstr ""
-#: c-api/typeobj.rst:328
+#: c-api/typeobj.rst:334
msgid "slot typedefs"
msgstr ""
-#: c-api/typeobj.rst:331
+#: c-api/typeobj.rst:337
msgid "typedef"
msgstr ""
-#: c-api/typeobj.rst:331
+#: c-api/typeobj.rst:337
msgid "Parameter Types"
msgstr ""
-#: c-api/typeobj.rst:331
+#: c-api/typeobj.rst:337
msgid "Return Type"
msgstr ""
-#: c-api/typeobj.rst:340 c-api/typeobj.rst:416
+#: c-api/typeobj.rst:346 c-api/typeobj.rst:422
msgid "void"
msgstr ""
@@ -1045,16 +1057,16 @@ msgstr ""
msgid ":c:type:`visitproc`"
msgstr ""
-#: c-api/typeobj.rst:354 c-api/typeobj.rst:378 c-api/typeobj.rst:0
-#: c-api/typeobj.rst:421 c-api/typeobj.rst:448 c-api/typeobj.rst:453
+#: c-api/typeobj.rst:360 c-api/typeobj.rst:384 c-api/typeobj.rst:0
+#: c-api/typeobj.rst:427 c-api/typeobj.rst:455 c-api/typeobj.rst:460
msgid "int"
msgstr "*int*"
-#: c-api/typeobj.rst:396
+#: c-api/typeobj.rst:402
msgid "Py_hash_t"
msgstr ""
-#: c-api/typeobj.rst:410
+#: c-api/typeobj.rst:416
msgid ":c:type:`getbufferproc`"
msgstr ""
@@ -1062,41 +1074,40 @@ msgstr ""
msgid ":c:type:`Py_buffer` *"
msgstr ""
-#: c-api/typeobj.rst:416
+#: c-api/typeobj.rst:422
msgid ":c:type:`releasebufferproc`"
msgstr ""
-#: c-api/typeobj.rst:460
+#: c-api/typeobj.rst:467
msgid "See :ref:`slot-typedefs` below for more detail."
msgstr ""
-#: c-api/typeobj.rst:464
+#: c-api/typeobj.rst:471
msgid "PyTypeObject Definition"
msgstr ""
-#: c-api/typeobj.rst:466
+#: c-api/typeobj.rst:473
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 ""
-#: c-api/typeobj.rst:476
+#: c-api/typeobj.rst:483
#, fuzzy
msgid "PyObject Slots"
msgstr "Objets type"
-#: c-api/typeobj.rst:478
+#: c-api/typeobj.rst:485
msgid ""
"The type object structure extends the :c:type:`PyVarObject` structure. The :"
-"attr:`ob_size` field is used for dynamic types (created by :func:"
-"`type_new`, usually called from a class statement). Note that :c:data:"
-"`PyType_Type` (the metatype) initializes :c:member:`~PyTypeObject."
-"tp_itemsize`, which means that its instances (i.e. type objects) *must* have "
-"the :attr:`ob_size` field."
+"attr:`ob_size` field is used for dynamic types (created by :func:`type_new`, "
+"usually called from a class statement). Note that :c:data:`PyType_Type` (the "
+"metatype) initializes :c:member:`~PyTypeObject.tp_itemsize`, which means "
+"that its instances (i.e. type objects) *must* have the :attr:`ob_size` field."
msgstr ""
-#: c-api/typeobj.rst:487
+#: c-api/typeobj.rst:494
msgid ""
"This is the type object's reference count, initialized to ``1`` by the "
"``PyObject_HEAD_INIT`` macro. Note that for :ref:`statically allocated type "
@@ -1106,25 +1117,25 @@ msgid ""
"as references."
msgstr ""
-#: c-api/typeobj.rst:517 c-api/typeobj.rst:553 c-api/typeobj.rst:640
-#: c-api/typeobj.rst:742 c-api/typeobj.rst:778 c-api/typeobj.rst:820
-#: c-api/typeobj.rst:849 c-api/typeobj.rst:894 c-api/typeobj.rst:932
-#: c-api/typeobj.rst:979 c-api/typeobj.rst:1014 c-api/typeobj.rst:1062
-#: c-api/typeobj.rst:1082 c-api/typeobj.rst:1114 c-api/typeobj.rst:1184
-#: c-api/typeobj.rst:1218 c-api/typeobj.rst:1259 c-api/typeobj.rst:1343
-#: c-api/typeobj.rst:1469 c-api/typeobj.rst:1531 c-api/typeobj.rst:1567
-#: c-api/typeobj.rst:1596 c-api/typeobj.rst:1646 c-api/typeobj.rst:1690
-#: c-api/typeobj.rst:1781 c-api/typeobj.rst:1839 c-api/typeobj.rst:1893
-#: c-api/typeobj.rst:1921 c-api/typeobj.rst:1940 c-api/typeobj.rst:1964
-#: c-api/typeobj.rst:2019
+#: c-api/typeobj.rst:524 c-api/typeobj.rst:560 c-api/typeobj.rst:647
+#: c-api/typeobj.rst:743 c-api/typeobj.rst:779 c-api/typeobj.rst:821
+#: c-api/typeobj.rst:850 c-api/typeobj.rst:895 c-api/typeobj.rst:933
+#: c-api/typeobj.rst:980 c-api/typeobj.rst:1015 c-api/typeobj.rst:1063
+#: c-api/typeobj.rst:1083 c-api/typeobj.rst:1115 c-api/typeobj.rst:1185
+#: c-api/typeobj.rst:1219 c-api/typeobj.rst:1271 c-api/typeobj.rst:1355
+#: c-api/typeobj.rst:1481 c-api/typeobj.rst:1543 c-api/typeobj.rst:1579
+#: c-api/typeobj.rst:1608 c-api/typeobj.rst:1658 c-api/typeobj.rst:1702
+#: c-api/typeobj.rst:1793 c-api/typeobj.rst:1851 c-api/typeobj.rst:1905
+#: c-api/typeobj.rst:1946 c-api/typeobj.rst:1965 c-api/typeobj.rst:1989
+#: c-api/typeobj.rst:2058
msgid "**Inheritance:**"
msgstr ""
-#: c-api/typeobj.rst:555 c-api/typeobj.rst:599
+#: c-api/typeobj.rst:562 c-api/typeobj.rst:606
msgid "This field is not inherited by subtypes."
msgstr ""
-#: c-api/typeobj.rst:501
+#: c-api/typeobj.rst:508
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 "
@@ -1136,7 +1147,7 @@ msgid ""
"doing anything else. This is typically done like this::"
msgstr ""
-#: c-api/typeobj.rst:512
+#: c-api/typeobj.rst:519
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 "
@@ -1144,27 +1155,27 @@ msgid ""
"will not change this field if it is non-zero."
msgstr ""
-#: c-api/typeobj.rst:700 c-api/typeobj.rst:914 c-api/typeobj.rst:1533
-#: c-api/typeobj.rst:1674 c-api/typeobj.rst:1783 c-api/typeobj.rst:2004
+#: c-api/typeobj.rst:707 c-api/typeobj.rst:915 c-api/typeobj.rst:1545
+#: c-api/typeobj.rst:1686 c-api/typeobj.rst:1795 c-api/typeobj.rst:2037
msgid "This field is inherited by subtypes."
msgstr ""
-#: c-api/typeobj.rst:525
+#: c-api/typeobj.rst:532
msgid ""
"These fields are only present when the macro ``Py_TRACE_REFS`` is defined "
"(see the :option:`configure --with-trace-refs option <--with-trace-refs>`)."
msgstr ""
-#: c-api/typeobj.rst:528
+#: c-api/typeobj.rst:535
msgid ""
"Their initialization to ``NULL`` is taken care of by the "
"``PyObject_HEAD_INIT`` macro. For :ref:`statically allocated objects "
"`, these fields always remain ``NULL``. For :ref:`dynamically "
"allocated objects `, these two fields are used to link the "
-"object into a doubly-linked list of *all* live objects on the heap."
+"object into a doubly linked list of *all* live objects on the heap."
msgstr ""
-#: c-api/typeobj.rst:534
+#: c-api/typeobj.rst:541
msgid ""
"This could be used for various debugging purposes; currently the only uses "
"are the :func:`sys.getobjects` function and to print the objects that are "
@@ -1172,27 +1183,27 @@ msgid ""
"`PYTHONDUMPREFS` is set."
msgstr ""
-#: c-api/typeobj.rst:541
+#: c-api/typeobj.rst:548
msgid "These fields are not inherited by subtypes."
msgstr ""
-#: c-api/typeobj.rst:545
+#: c-api/typeobj.rst:552
msgid "PyVarObject Slots"
msgstr ""
-#: c-api/typeobj.rst:549
+#: c-api/typeobj.rst:556
msgid ""
"For :ref:`statically allocated type objects `, this should be "
"initialized to zero. For :ref:`dynamically allocated type objects `, this field has a special internal meaning."
msgstr ""
-#: c-api/typeobj.rst:559
+#: c-api/typeobj.rst:566
#, fuzzy
msgid "PyTypeObject Slots"
msgstr "Objets type"
-#: c-api/typeobj.rst:561
+#: c-api/typeobj.rst:568
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 "
@@ -1200,7 +1211,7 @@ msgid ""
"`PyBaseObject_Type` and :c:type:`PyType_Type` effectively act as defaults.)"
msgstr ""
-#: c-api/typeobj.rst:568
+#: c-api/typeobj.rst:575
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 "
@@ -1212,14 +1223,14 @@ msgid ""
"tp_name` initializer ``\"P.Q.M.T\"``."
msgstr ""
-#: c-api/typeobj.rst:576
+#: c-api/typeobj.rst:583
msgid ""
"For :ref:`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 ""
-#: c-api/typeobj.rst:581
+#: c-api/typeobj.rst:588
msgid ""
"For :ref:`statically allocated type objects `, the *tp_name* "
"field should contain a dot. Everything before the last dot is made "
@@ -1227,7 +1238,7 @@ msgid ""
"last dot is made accessible as the :attr:`~definition.__name__` attribute."
msgstr ""
-#: c-api/typeobj.rst:587
+#: c-api/typeobj.rst:594
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:"
@@ -1237,19 +1248,19 @@ msgid ""
"created with pydoc."
msgstr ""
-#: c-api/typeobj.rst:593
+#: c-api/typeobj.rst:600
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 ""
-#: c-api/typeobj.rst:605
+#: c-api/typeobj.rst:612
msgid ""
"These fields allow calculating the size in bytes of instances of the type."
msgstr ""
-#: c-api/typeobj.rst:607
+#: c-api/typeobj.rst:614
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 "
@@ -1258,7 +1269,7 @@ msgid ""
"in :c:member:`~PyTypeObject.tp_basicsize`."
msgstr ""
-#: c-api/typeobj.rst:612
+#: c-api/typeobj.rst:619
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."
@@ -1272,7 +1283,7 @@ msgid ""
"instances, yet those instances have a meaningful :attr:`ob_size` field)."
msgstr ""
-#: c-api/typeobj.rst:623
+#: c-api/typeobj.rst:630
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 "
@@ -1284,7 +1295,7 @@ msgid ""
"size."
msgstr ""
-#: c-api/typeobj.rst:631
+#: c-api/typeobj.rst:638
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:"
@@ -1295,12 +1306,12 @@ msgid ""
"alignment requirement for ``double``)."
msgstr ""
-#: c-api/typeobj.rst:638
+#: c-api/typeobj.rst:645
msgid ""
"For any type with variable-length instances, this field must not be ``NULL``."
msgstr ""
-#: c-api/typeobj.rst:642
+#: c-api/typeobj.rst:649
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 "
@@ -1308,7 +1319,7 @@ msgid ""
"subtype (though this depends on the implementation of the base type)."
msgstr ""
-#: c-api/typeobj.rst:650
+#: c-api/typeobj.rst:657
msgid ""
"A pointer to the instance destructor function. This function must be "
"defined unless the type guarantees that its instances will never be "
@@ -1316,7 +1327,7 @@ msgid ""
"The function signature is::"
msgstr ""
-#: c-api/typeobj.rst:656
+#: c-api/typeobj.rst:663
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, "
@@ -1334,14 +1345,14 @@ msgid ""
"allocated using :c:func:`PyObject_GC_New` or :c:func:`PyObject_GC_NewVar`."
msgstr ""
-#: c-api/typeobj.rst:671
+#: c-api/typeobj.rst:678
msgid ""
"If the type supports garbage collection (has the :const:`Py_TPFLAGS_HAVE_GC` "
"flag bit set), the destructor should call :c:func:`PyObject_GC_UnTrack` "
"before clearing any member fields."
msgstr ""
-#: c-api/typeobj.rst:683
+#: c-api/typeobj.rst:690
msgid ""
"Finally, if the type is heap allocated (:const:`Py_TPFLAGS_HEAPTYPE`), the "
"deallocator should decrement the reference count for its type object after "
@@ -1349,28 +1360,28 @@ msgid ""
"recommended way to achieve this is:"
msgstr ""
-#: c-api/typeobj.rst:705
+#: c-api/typeobj.rst:712
msgid ""
"An optional offset to a per-instance function that implements calling the "
"object using the :ref:`vectorcall protocol `, a more efficient "
"alternative of the simpler :c:member:`~PyTypeObject.tp_call`."
msgstr ""
-#: c-api/typeobj.rst:710
+#: c-api/typeobj.rst:717
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 "
"instance of a :c:type:`vectorcallfunc` pointer."
msgstr ""
-#: c-api/typeobj.rst:714
+#: c-api/typeobj.rst:721
msgid ""
"The *vectorcallfunc* pointer may be ``NULL``, 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 ""
-#: c-api/typeobj.rst:718
+#: c-api/typeobj.rst:725
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 "
@@ -1378,7 +1389,7 @@ msgid ""
"`PyVectorcall_Call`."
msgstr ""
-#: c-api/typeobj.rst:725
+#: c-api/typeobj.rst:732
msgid ""
"It is not recommended for :ref:`heap types ` to implement the "
"vectorcall protocol. When a user sets :attr:`__call__` in Python code, only "
@@ -1386,20 +1397,13 @@ msgid ""
"function."
msgstr ""
-#: c-api/typeobj.rst:732
-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 ""
-
-#: c-api/typeobj.rst:738
+#: c-api/typeobj.rst:739
msgid ""
"Before version 3.8, this slot was named ``tp_print``. In Python 2.x, it was "
"used for printing to a file. In Python 3.0 to 3.7, it was unused."
msgstr ""
-#: c-api/typeobj.rst:744
+#: c-api/typeobj.rst:745
msgid ""
"This field is always inherited. However, the :const:"
"`Py_TPFLAGS_HAVE_VECTORCALL` flag is not always inherited. If it's not, then "
@@ -1408,11 +1412,11 @@ msgid ""
"for :ref:`heap types ` (including subclasses defined in Python)."
msgstr ""
-#: c-api/typeobj.rst:755
+#: c-api/typeobj.rst:756
msgid "An optional pointer to the get-attribute-string function."
msgstr ""
-#: c-api/typeobj.rst:757
+#: c-api/typeobj.rst:758
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, "
@@ -1420,11 +1424,11 @@ msgid ""
"attribute name."
msgstr ""
-#: c-api/typeobj.rst:955
+#: c-api/typeobj.rst:956
msgid "Group: :attr:`tp_getattr`, :attr:`tp_getattro`"
msgstr ""
-#: c-api/typeobj.rst:765
+#: c-api/typeobj.rst:766
msgid ""
"This field is inherited by subtypes together with :c:member:`~PyTypeObject."
"tp_getattro`: a subtype inherits both :c:member:`~PyTypeObject.tp_getattr` "
@@ -1433,12 +1437,12 @@ msgid ""
"tp_getattro` are both ``NULL``."
msgstr ""
-#: c-api/typeobj.rst:968
+#: c-api/typeobj.rst:969
msgid ""
"An optional pointer to the function for setting and deleting attributes."
msgstr ""
-#: c-api/typeobj.rst:774
+#: c-api/typeobj.rst:775
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, "
@@ -1446,11 +1450,11 @@ msgid ""
"attribute name."
msgstr ""
-#: c-api/typeobj.rst:981
+#: c-api/typeobj.rst:982
msgid "Group: :attr:`tp_setattr`, :attr:`tp_setattro`"
msgstr ""
-#: c-api/typeobj.rst:782
+#: c-api/typeobj.rst:783
msgid ""
"This field is inherited by subtypes together with :c:member:`~PyTypeObject."
"tp_setattro`: a subtype inherits both :c:member:`~PyTypeObject.tp_setattr` "
@@ -1459,34 +1463,34 @@ msgid ""
"tp_setattro` are both ``NULL``."
msgstr ""
-#: c-api/typeobj.rst:789
+#: c-api/typeobj.rst:790
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 ""
-#: c-api/typeobj.rst:793
+#: c-api/typeobj.rst:794
msgid "Formerly known as ``tp_compare`` and ``tp_reserved``."
msgstr ""
-#: c-api/typeobj.rst:798
+#: c-api/typeobj.rst:799
msgid ""
"The :c:member:`~PyTypeObject.tp_as_async` field is not inherited, but the "
"contained fields are inherited individually."
msgstr ""
-#: c-api/typeobj.rst:806
+#: c-api/typeobj.rst:807
msgid ""
"An optional pointer to a function that implements the built-in function :"
"func:`repr`."
msgstr ""
-#: c-api/typeobj.rst:809
+#: c-api/typeobj.rst:810
msgid "The signature is the same as for :c:func:`PyObject_Repr`::"
msgstr ""
-#: c-api/typeobj.rst:813
+#: c-api/typeobj.rst:814
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 "
@@ -1495,83 +1499,83 @@ msgid ""
"``'>'`` from which both the type and the value of the object can be deduced."
msgstr ""
-#: c-api/typeobj.rst:936 c-api/typeobj.rst:987 c-api/typeobj.rst:1478
-#: c-api/typeobj.rst:1651 c-api/typeobj.rst:1785 c-api/typeobj.rst:1845
-#: c-api/typeobj.rst:1897
+#: c-api/typeobj.rst:937 c-api/typeobj.rst:988 c-api/typeobj.rst:1490
+#: c-api/typeobj.rst:1663 c-api/typeobj.rst:1797 c-api/typeobj.rst:1857
+#: c-api/typeobj.rst:1909
msgid "**Default:**"
msgstr ""
-#: c-api/typeobj.rst:826
+#: c-api/typeobj.rst:827
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 ""
-#: c-api/typeobj.rst:833
+#: c-api/typeobj.rst:834
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 ""
-#: c-api/typeobj.rst:839
+#: c-api/typeobj.rst:840
msgid ""
"The :c:member:`~PyTypeObject.tp_as_number` field is not inherited, but the "
"contained fields are inherited individually."
msgstr ""
-#: c-api/typeobj.rst:845
+#: c-api/typeobj.rst:846
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 ""
-#: c-api/typeobj.rst:851
+#: c-api/typeobj.rst:852
msgid ""
"The :c:member:`~PyTypeObject.tp_as_sequence` field is not inherited, but the "
"contained fields are inherited individually."
msgstr ""
-#: c-api/typeobj.rst:857
+#: c-api/typeobj.rst:858
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 ""
-#: c-api/typeobj.rst:863
+#: c-api/typeobj.rst:864
msgid ""
"The :c:member:`~PyTypeObject.tp_as_mapping` field is not inherited, but the "
"contained fields are inherited individually."
msgstr ""
-#: c-api/typeobj.rst:871
+#: c-api/typeobj.rst:872
msgid ""
"An optional pointer to a function that implements the built-in function :"
"func:`hash`."
msgstr ""
-#: c-api/typeobj.rst:874
+#: c-api/typeobj.rst:875
msgid "The signature is the same as for :c:func:`PyObject_Hash`::"
msgstr ""
-#: c-api/typeobj.rst:878
+#: c-api/typeobj.rst:879
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 ""
-#: c-api/typeobj.rst:882
+#: c-api/typeobj.rst:883
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 ""
-#: c-api/typeobj.rst:886
+#: c-api/typeobj.rst:887
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 "
@@ -1582,11 +1586,11 @@ msgid ""
"`PyObject_HashNotImplemented`."
msgstr ""
-#: c-api/typeobj.rst:1471
+#: c-api/typeobj.rst:1483
msgid "Group: :attr:`tp_hash`, :attr:`tp_richcompare`"
msgstr ""
-#: c-api/typeobj.rst:898
+#: c-api/typeobj.rst:899
msgid ""
"This field is inherited by subtypes together with :c:member:`~PyTypeObject."
"tp_richcompare`: a subtype inherits both of :c:member:`~PyTypeObject."
@@ -1595,14 +1599,14 @@ msgid ""
"are both ``NULL``."
msgstr ""
-#: c-api/typeobj.rst:906
+#: c-api/typeobj.rst:907
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 ""
-#: c-api/typeobj.rst:919
+#: c-api/typeobj.rst:920
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 "
@@ -1611,11 +1615,11 @@ msgid ""
"this handler.)"
msgstr ""
-#: c-api/typeobj.rst:924
+#: c-api/typeobj.rst:925
msgid "The signature is the same as for :c:func:`PyObject_Str`::"
msgstr ""
-#: c-api/typeobj.rst:928
+#: c-api/typeobj.rst:929
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 "
@@ -1623,28 +1627,28 @@ msgid ""
"function."
msgstr ""
-#: c-api/typeobj.rst:938
+#: c-api/typeobj.rst:939
msgid ""
"When this field is not set, :c:func:`PyObject_Repr` is called to return a "
"string representation."
msgstr ""
-#: c-api/typeobj.rst:944
+#: c-api/typeobj.rst:945
msgid "An optional pointer to the get-attribute function."
msgstr ""
-#: c-api/typeobj.rst:946
+#: c-api/typeobj.rst:947
msgid "The signature is the same as for :c:func:`PyObject_GetAttr`::"
msgstr ""
-#: c-api/typeobj.rst:950
+#: c-api/typeobj.rst:951
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 ""
-#: c-api/typeobj.rst:957
+#: c-api/typeobj.rst:958
msgid ""
"This field is inherited by subtypes together with :c:member:`~PyTypeObject."
"tp_getattr`: a subtype inherits both :c:member:`~PyTypeObject.tp_getattr` "
@@ -1653,15 +1657,15 @@ msgid ""
"tp_getattro` are both ``NULL``."
msgstr ""
-#: c-api/typeobj.rst:963
+#: c-api/typeobj.rst:964
msgid ":c:type:`PyBaseObject_Type` uses :c:func:`PyObject_GenericGetAttr`."
msgstr ""
-#: c-api/typeobj.rst:970
+#: c-api/typeobj.rst:971
msgid "The signature is the same as for :c:func:`PyObject_SetAttr`::"
msgstr ""
-#: c-api/typeobj.rst:974
+#: c-api/typeobj.rst:975
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:"
@@ -1669,7 +1673,7 @@ msgid ""
"attributes."
msgstr ""
-#: c-api/typeobj.rst:983
+#: c-api/typeobj.rst:984
msgid ""
"This field is inherited by subtypes together with :c:member:`~PyTypeObject."
"tp_setattr`: a subtype inherits both :c:member:`~PyTypeObject.tp_setattr` "
@@ -1678,24 +1682,24 @@ msgid ""
"tp_setattro` are both ``NULL``."
msgstr ""
-#: c-api/typeobj.rst:989
+#: c-api/typeobj.rst:990
msgid ":c:type:`PyBaseObject_Type` uses :c:func:`PyObject_GenericSetAttr`."
msgstr ""
-#: c-api/typeobj.rst:994
+#: c-api/typeobj.rst:995
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 ""
-#: c-api/typeobj.rst:1000
+#: c-api/typeobj.rst:1001
msgid ""
"The :c:member:`~PyTypeObject.tp_as_buffer` field is not inherited, but the "
"contained fields are inherited individually."
msgstr ""
-#: c-api/typeobj.rst:1006
+#: c-api/typeobj.rst:1007
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 "
@@ -1707,7 +1711,7 @@ msgid ""
"accessed and must be considered to have a zero or ``NULL`` value instead."
msgstr ""
-#: c-api/typeobj.rst:1016
+#: c-api/typeobj.rst:1017
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 "
@@ -1722,17 +1726,17 @@ msgid ""
"the subtype exist and have ``NULL`` values."
msgstr ""
-#: c-api/typeobj.rst:1031
+#: c-api/typeobj.rst:1032
msgid ""
":c:type:`PyBaseObject_Type` uses ``Py_TPFLAGS_DEFAULT | "
"Py_TPFLAGS_BASETYPE``."
msgstr ""
-#: c-api/typeobj.rst:1034
+#: c-api/typeobj.rst:1035
msgid "**Bit Masks:**"
msgstr ""
-#: c-api/typeobj.rst:1036
+#: c-api/typeobj.rst:1037
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."
@@ -1741,7 +1745,7 @@ msgid ""
"zero."
msgstr ""
-#: c-api/typeobj.rst:1043
+#: c-api/typeobj.rst:1044
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 "
@@ -1752,30 +1756,30 @@ msgid ""
"gets INCREF'ed or DECREF'ed)."
msgstr ""
-#: c-api/typeobj.rst:1064 c-api/typeobj.rst:1084 c-api/typeobj.rst:1116
+#: c-api/typeobj.rst:1065 c-api/typeobj.rst:1085 c-api/typeobj.rst:1117
msgid "???"
msgstr ""
-#: c-api/typeobj.rst:1058
+#: c-api/typeobj.rst:1059
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 ""
-#: c-api/typeobj.rst:1069
+#: c-api/typeobj.rst:1070
msgid ""
"This bit is set when the type object has been fully initialized by :c:func:"
"`PyType_Ready`."
msgstr ""
-#: c-api/typeobj.rst:1079
+#: c-api/typeobj.rst:1080
msgid ""
"This bit is set while :c:func:`PyType_Ready` is in the process of "
"initializing the type object."
msgstr ""
-#: c-api/typeobj.rst:1089
+#: c-api/typeobj.rst:1090
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 "
@@ -1785,12 +1789,12 @@ msgid ""
"tp_clear` are present in the type object."
msgstr ""
-#: c-api/typeobj.rst:1345 c-api/typeobj.rst:1412
+#: c-api/typeobj.rst:1357 c-api/typeobj.rst:1424
msgid ""
"Group: :const:`Py_TPFLAGS_HAVE_GC`, :attr:`tp_traverse`, :attr:`tp_clear`"
msgstr ""
-#: c-api/typeobj.rst:1100
+#: c-api/typeobj.rst:1101
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:"
@@ -1799,48 +1803,48 @@ msgid ""
"``NULL`` values."
msgstr ""
-#: c-api/typeobj.rst:1110
+#: c-api/typeobj.rst:1111
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 "
"includes the following bits: :const:`Py_TPFLAGS_HAVE_STACKLESS_EXTENSION`."
msgstr ""
-#: c-api/typeobj.rst:1121
+#: c-api/typeobj.rst:1122
msgid "This bit indicates that objects behave like unbound methods."
msgstr ""
-#: c-api/typeobj.rst:1123
+#: c-api/typeobj.rst:1124
msgid "If this flag is set for ``type(meth)``, then:"
msgstr ""
-#: c-api/typeobj.rst:1125
+#: c-api/typeobj.rst:1126
msgid ""
"``meth.__get__(obj, cls)(*args, **kwds)`` (with ``obj`` not None) must be "
"equivalent to ``meth(obj, *args, **kwds)``."
msgstr ""
-#: c-api/typeobj.rst:1128
+#: c-api/typeobj.rst:1129
msgid ""
"``meth.__get__(None, cls)(*args, **kwds)`` must be equivalent to "
"``meth(*args, **kwds)``."
msgstr ""
-#: c-api/typeobj.rst:1131
+#: c-api/typeobj.rst:1132
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 ""
-#: c-api/typeobj.rst:1139
+#: c-api/typeobj.rst:1140
msgid ""
"This flag is never inherited by :ref:`heap types `. For "
"extension types, it is inherited whenever :c:member:`~PyTypeObject."
"tp_descr_get` is inherited."
msgstr ""
-#: c-api/typeobj.rst:1156
+#: c-api/typeobj.rst:1157
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 "
@@ -1850,68 +1854,82 @@ msgid ""
"behave differently depending on what kind of check is used."
msgstr ""
-#: c-api/typeobj.rst:1167
+#: c-api/typeobj.rst:1168
msgid ""
"This bit is set when the :c:member:`~PyTypeObject.tp_finalize` slot is "
"present in the type structure."
msgstr ""
-#: c-api/typeobj.rst:1172
+#: c-api/typeobj.rst:1173
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 ""
-#: c-api/typeobj.rst:1180
+#: c-api/typeobj.rst:1181
msgid ""
"This bit is set when the class implements the :ref:`vectorcall protocol "
"`. See :c:member:`~PyTypeObject.tp_vectorcall_offset` for "
"details."
msgstr ""
-#: c-api/typeobj.rst:1186
+#: c-api/typeobj.rst:1187
msgid ""
"This bit is inherited for :ref:`static subtypes ` if :c:member:"
"`~PyTypeObject.tp_call` is also inherited. :ref:`Heap types ` do "
"not inherit ``Py_TPFLAGS_HAVE_VECTORCALL``."
msgstr ""
-#: c-api/typeobj.rst:1194
+#: c-api/typeobj.rst:1195
msgid ""
"This bit is set for type objects that are immutable: type attributes cannot "
"be set nor deleted."
msgstr ""
-#: c-api/typeobj.rst:1196
+#: c-api/typeobj.rst:1197
msgid ""
":c:func:`PyType_Ready` automatically applies this flag to :ref:`static types "
"`."
msgstr ""
-#: c-api/typeobj.rst:1220
+#: c-api/typeobj.rst:1202
msgid "This flag is not inherited."
msgstr ""
-#: c-api/typeobj.rst:1207
+#: c-api/typeobj.rst:1208
msgid ""
"Disallow creating instances of the type: set :c:member:`~PyTypeObject."
"tp_new` to NULL and don't create the ``__new__`` key in the type dictionary."
msgstr ""
-#: c-api/typeobj.rst:1211
+#: c-api/typeobj.rst:1212
msgid ""
"The flag must be set before creating the type, not after. For example, it "
"must be set before :c:func:`PyType_Ready` is called on the type."
msgstr ""
-#: c-api/typeobj.rst:1214
+#: c-api/typeobj.rst:1215
msgid ""
"The flag is set automatically on :ref:`static types ` if :c:"
"member:`~PyTypeObject.tp_base` is NULL or ``&PyBaseObject_Type`` and :c:"
"member:`~PyTypeObject.tp_new` is NULL."
msgstr ""
-#: c-api/typeobj.rst:1227
+#: c-api/typeobj.rst:1221
+msgid ""
+"This flag is not inherited. However, subclasses will not be instantiable "
+"unless they provide a non-NULL :c:member:`~PyTypeObject.tp_new` (which is "
+"only possible via the C API)."
+msgstr ""
+
+#: c-api/typeobj.rst:1228
+msgid ""
+"To disallow instantiating a class directly but allow instantiating its "
+"subclasses (e.g. for an :term:`abstract base class`), do not use this flag. "
+"Instead, make :c:member:`~PyTypeObject.tp_new` only succeed for subclasses."
+msgstr ""
+
+#: c-api/typeobj.rst:1239
msgid ""
"This bit indicates that instances of the class may match mapping patterns "
"when used as the subject of a :keyword:`match` block. It is automatically "
@@ -1919,23 +1937,23 @@ msgid ""
"unset when registering :class:`collections.abc.Sequence`."
msgstr ""
-#: c-api/typeobj.rst:1256
+#: c-api/typeobj.rst:1268
msgid ""
":const:`Py_TPFLAGS_MAPPING` and :const:`Py_TPFLAGS_SEQUENCE` are mutually "
-"exclusive; it is an error enable both flags simultaneously."
+"exclusive; it is an error to enable both flags simultaneously."
msgstr ""
-#: c-api/typeobj.rst:1239
+#: c-api/typeobj.rst:1251
msgid ""
"This flag is inherited by types that do not already set :const:"
"`Py_TPFLAGS_SEQUENCE`."
msgstr ""
-#: c-api/typeobj.rst:1264
+#: c-api/typeobj.rst:1276
msgid ":pep:`634` -- Structural Pattern Matching: Specification"
-msgstr ""
+msgstr ":pep:`634` — Spécifications pour le filtrage par motif"
-#: c-api/typeobj.rst:1249
+#: c-api/typeobj.rst:1261
msgid ""
"This bit indicates that instances of the class may match sequence patterns "
"when used as the subject of a :keyword:`match` block. It is automatically "
@@ -1943,37 +1961,37 @@ msgid ""
"unset when registering :class:`collections.abc.Mapping`."
msgstr ""
-#: c-api/typeobj.rst:1261
+#: c-api/typeobj.rst:1273
msgid ""
"This flag is inherited by types that do not already set :const:"
"`Py_TPFLAGS_MAPPING`."
msgstr ""
-#: c-api/typeobj.rst:1271
+#: c-api/typeobj.rst:1283
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 ""
-#: c-api/typeobj.rst:1277
+#: c-api/typeobj.rst:1289
msgid "This field is *not* inherited by subtypes."
msgstr ""
-#: c-api/typeobj.rst:1282
+#: c-api/typeobj.rst:1294
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 ""
-#: c-api/typeobj.rst:1407
+#: c-api/typeobj.rst:1419
msgid ""
"More information about Python's garbage collection scheme can be found in "
"section :ref:`supporting-cycle-detection`."
msgstr ""
-#: c-api/typeobj.rst:1290
+#: c-api/typeobj.rst:1302
msgid ""
"The :c:member:`~PyTypeObject.tp_traverse` pointer is used by the garbage "
"collector to detect reference cycles. A typical implementation of a :c:"
@@ -1983,7 +2001,7 @@ msgid ""
"`_thread` extension module::"
msgstr ""
-#: c-api/typeobj.rst:1305
+#: c-api/typeobj.rst:1317
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`` "
@@ -1991,14 +2009,14 @@ msgid ""
"part of a reference cycle."
msgstr ""
-#: c-api/typeobj.rst:1309
+#: c-api/typeobj.rst:1321
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 ""
-#: c-api/typeobj.rst:1314
+#: c-api/typeobj.rst:1326
msgid ""
"When implementing :c:member:`~PyTypeObject.tp_traverse`, only the members "
"that the instance *owns* (by having :term:`strong references ` hold a reference to "
"their type. Their traversal function must therefore either visit :c:func:"
@@ -2027,14 +2045,14 @@ msgid ""
"superclass). If they do not, the type object may not be garbage-collected."
msgstr ""
-#: c-api/typeobj.rst:1338
+#: c-api/typeobj.rst:1350
msgid ""
"Heap-allocated types are expected to visit ``Py_TYPE(self)`` in "
"``tp_traverse``. In earlier versions of Python, due to `bug 40217 `_, doing this may lead to crashes in subclasses."
msgstr ""
-#: c-api/typeobj.rst:1347
+#: c-api/typeobj.rst:1359
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:"
@@ -2042,14 +2060,14 @@ msgid ""
"are all inherited from the base type if they are all zero in the subtype."
msgstr ""
-#: c-api/typeobj.rst:1355
+#: c-api/typeobj.rst:1367
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 ""
-#: c-api/typeobj.rst:1360
+#: c-api/typeobj.rst:1372
msgid ""
"The :c:member:`~PyTypeObject.tp_clear` member function is used to break "
"reference cycles in cyclic garbage detected by the garbage collector. Taken "
@@ -2064,7 +2082,7 @@ msgid ""
"good reason to avoid implementing :c:member:`~PyTypeObject.tp_clear`."
msgstr ""
-#: c-api/typeobj.rst:1370
+#: c-api/typeobj.rst:1382
msgid ""
"Implementations of :c:member:`~PyTypeObject.tp_clear` should drop the "
"instance's references to those of its members that may be Python objects, "
@@ -2072,7 +2090,7 @@ msgid ""
"example::"
msgstr ""
-#: c-api/typeobj.rst:1384
+#: c-api/typeobj.rst:1396
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 "
@@ -2087,7 +2105,7 @@ msgid ""
"in a safe order."
msgstr ""
-#: c-api/typeobj.rst:1395
+#: c-api/typeobj.rst:1407
msgid ""
"Note that :c:member:`~PyTypeObject.tp_clear` is not *always* called before "
"an instance is deallocated. For example, when reference counting is enough "
@@ -2095,7 +2113,7 @@ msgid ""
"is not involved and :c:member:`~PyTypeObject.tp_dealloc` is called directly."
msgstr ""
-#: c-api/typeobj.rst:1401
+#: c-api/typeobj.rst:1413
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 "
@@ -2105,7 +2123,7 @@ msgid ""
"invoke :c:member:`~PyTypeObject.tp_clear`."
msgstr ""
-#: c-api/typeobj.rst:1414
+#: c-api/typeobj.rst:1426
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:"
@@ -2113,18 +2131,18 @@ msgid ""
"are all inherited from the base type if they are all zero in the subtype."
msgstr ""
-#: c-api/typeobj.rst:1422
+#: c-api/typeobj.rst:1434
msgid ""
"An optional pointer to the rich comparison function, whose signature is::"
msgstr ""
-#: c-api/typeobj.rst:1426
+#: c-api/typeobj.rst:1438
msgid ""
"The first parameter is guaranteed to be an instance of the type that is "
"defined by :c:type:`PyTypeObject`."
msgstr ""
-#: c-api/typeobj.rst:1429
+#: c-api/typeobj.rst:1441
msgid ""
"The function should return the result of the comparison (usually ``Py_True`` "
"or ``Py_False``). If the comparison is undefined, it must return "
@@ -2132,74 +2150,74 @@ msgid ""
"set an exception condition."
msgstr ""
-#: c-api/typeobj.rst:1434
+#: c-api/typeobj.rst:1446
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 ""
-#: c-api/typeobj.rst:1438
+#: c-api/typeobj.rst:1450
msgid "Constant"
msgstr "Constante"
-#: c-api/typeobj.rst:1438
+#: c-api/typeobj.rst:1450
msgid "Comparison"
msgstr "Comparaison"
-#: c-api/typeobj.rst:1440
+#: c-api/typeobj.rst:1452
msgid ":const:`Py_LT`"
-msgstr ""
+msgstr ":const:`Py_LT`"
-#: c-api/typeobj.rst:1440
+#: c-api/typeobj.rst:1452
msgid "``<``"
msgstr "``<``"
-#: c-api/typeobj.rst:1442
+#: c-api/typeobj.rst:1454
msgid ":const:`Py_LE`"
-msgstr ""
+msgstr ":const:`Py_LE`"
-#: c-api/typeobj.rst:1442
+#: c-api/typeobj.rst:1454
msgid "``<=``"
msgstr "``<=``"
-#: c-api/typeobj.rst:1444
+#: c-api/typeobj.rst:1456
msgid ":const:`Py_EQ`"
-msgstr ""
+msgstr ":const:`Py_EQ`"
-#: c-api/typeobj.rst:1444
+#: c-api/typeobj.rst:1456
msgid "``==``"
msgstr "``==``"
-#: c-api/typeobj.rst:1446
+#: c-api/typeobj.rst:1458
msgid ":const:`Py_NE`"
-msgstr ""
+msgstr ":const:`Py_NE`"
-#: c-api/typeobj.rst:1446
+#: c-api/typeobj.rst:1458
msgid "``!=``"
msgstr "``!=``"
-#: c-api/typeobj.rst:1448
+#: c-api/typeobj.rst:1460
msgid ":const:`Py_GT`"
-msgstr ""
+msgstr ":const:`Py_GT`"
-#: c-api/typeobj.rst:1448
+#: c-api/typeobj.rst:1460
msgid "``>``"
msgstr "``>``"
-#: c-api/typeobj.rst:1450
+#: c-api/typeobj.rst:1462
msgid ":const:`Py_GE`"
-msgstr ""
+msgstr ":const:`Py_GE`"
-#: c-api/typeobj.rst:1450
+#: c-api/typeobj.rst:1462
msgid "``>=``"
msgstr "``>=``"
-#: c-api/typeobj.rst:1453
+#: c-api/typeobj.rst:1465
msgid ""
"The following macro is defined to ease writing rich comparison functions:"
msgstr ""
-#: c-api/typeobj.rst:1457
+#: c-api/typeobj.rst:1469
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 "
@@ -2207,15 +2225,15 @@ msgid ""
"specifies the requested operation, as for :c:func:`PyObject_RichCompare`."
msgstr ""
-#: c-api/typeobj.rst:1463
+#: c-api/typeobj.rst:1475
msgid "The return value's reference count is properly incremented."
msgstr ""
-#: c-api/typeobj.rst:1465
+#: c-api/typeobj.rst:1477
msgid "On error, sets an exception and returns ``NULL`` from the function."
msgstr ""
-#: c-api/typeobj.rst:1473
+#: c-api/typeobj.rst:1485
msgid ""
"This field is inherited by subtypes together with :c:member:`~PyTypeObject."
"tp_hash`: a subtype inherits :c:member:`~PyTypeObject.tp_richcompare` and :c:"
@@ -2223,7 +2241,7 @@ msgid ""
"tp_richcompare` and :c:member:`~PyTypeObject.tp_hash` are both ``NULL``."
msgstr ""
-#: c-api/typeobj.rst:1480
+#: c-api/typeobj.rst:1492
msgid ""
":c:type:`PyBaseObject_Type` provides a :attr:`tp_richcompare` "
"implementation, which may be inherited. However, if only :attr:`tp_hash` is "
@@ -2231,23 +2249,23 @@ msgid ""
"will not be able to participate in any comparisons."
msgstr ""
-#: c-api/typeobj.rst:1489
+#: c-api/typeobj.rst:1501
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:"
+"is used by :c:func:`PyObject_ClearWeakRefs` and the ``PyWeakref_*`` "
+"functions. The instance structure needs to include a field of type :c:expr:"
"`PyObject*` which is initialized to ``NULL``."
msgstr ""
-#: c-api/typeobj.rst:1496
+#: c-api/typeobj.rst:1508
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 ""
-#: c-api/typeobj.rst:1501
+#: c-api/typeobj.rst:1513
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 "
@@ -2256,7 +2274,7 @@ msgid ""
"not be a problem."
msgstr ""
-#: c-api/typeobj.rst:1506
+#: c-api/typeobj.rst:1518
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 "
@@ -2265,7 +2283,7 @@ msgid ""
"tp_weaklistoffset` of that slot's offset."
msgstr ""
-#: c-api/typeobj.rst:1511
+#: c-api/typeobj.rst:1523
msgid ""
"When a type's :attr:`__slots__` declaration contains a slot named :attr:"
"`__weakref__`, that slot becomes the weak reference list head for instances "
@@ -2273,31 +2291,31 @@ msgid ""
"`~PyTypeObject.tp_weaklistoffset`."
msgstr ""
-#: c-api/typeobj.rst:1516
+#: c-api/typeobj.rst:1528
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 ""
-#: c-api/typeobj.rst:1523
+#: c-api/typeobj.rst:1535
msgid ""
"An optional pointer to a function that returns an :term:`iterator` for the "
"object. Its presence normally signals that the instances of this type are :"
"term:`iterable` (although sequences may be iterable without this function)."
msgstr ""
-#: c-api/typeobj.rst:1527
+#: c-api/typeobj.rst:1539
msgid "This function has the same signature as :c:func:`PyObject_GetIter`::"
msgstr ""
-#: c-api/typeobj.rst:1538
+#: c-api/typeobj.rst:1550
msgid ""
"An optional pointer to a function that returns the next item in an :term:"
"`iterator`. The signature is::"
msgstr ""
-#: c-api/typeobj.rst:1543
+#: c-api/typeobj.rst:1555
msgid ""
"When the iterator is exhausted, it must return ``NULL``; a :exc:"
"`StopIteration` exception may or may not be set. When another error occurs, "
@@ -2305,74 +2323,74 @@ msgid ""
"this type are iterators."
msgstr ""
-#: c-api/typeobj.rst:1548
+#: c-api/typeobj.rst:1560
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 ""
-#: c-api/typeobj.rst:1552
+#: c-api/typeobj.rst:1564
msgid "This function has the same signature as :c:func:`PyIter_Next`."
msgstr ""
-#: c-api/typeobj.rst:1561
+#: c-api/typeobj.rst:1573
msgid ""
"An optional pointer to a static ``NULL``-terminated array of :c:type:"
"`PyMethodDef` structures, declaring regular methods of this type."
msgstr ""
-#: c-api/typeobj.rst:1564
+#: c-api/typeobj.rst:1576
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 ""
-#: c-api/typeobj.rst:1569
+#: c-api/typeobj.rst:1581
msgid ""
"This field is not inherited by subtypes (methods are inherited through a "
"different mechanism)."
msgstr ""
-#: c-api/typeobj.rst:1575
+#: c-api/typeobj.rst:1587
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 ""
-#: c-api/typeobj.rst:1579
+#: c-api/typeobj.rst:1591
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 ""
-#: c-api/typeobj.rst:1584
+#: c-api/typeobj.rst:1596
msgid ""
"This field is not inherited by subtypes (members are inherited through a "
"different mechanism)."
msgstr ""
-#: c-api/typeobj.rst:1590
+#: c-api/typeobj.rst:1602
msgid ""
"An optional pointer to a static ``NULL``-terminated array of :c:type:"
"`PyGetSetDef` structures, declaring computed attributes of instances of this "
"type."
msgstr ""
-#: c-api/typeobj.rst:1593
+#: c-api/typeobj.rst:1605
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 ""
-#: c-api/typeobj.rst:1598
+#: c-api/typeobj.rst:1610
msgid ""
"This field is not inherited by subtypes (computed attributes are inherited "
"through a different mechanism)."
msgstr ""
-#: c-api/typeobj.rst:1604
+#: c-api/typeobj.rst:1616
msgid ""
"An optional pointer to a base type from which type properties are "
"inherited. At this level, only single inheritance is supported; multiple "
@@ -2380,7 +2398,7 @@ msgid ""
"metatype."
msgstr ""
-#: c-api/typeobj.rst:1612
+#: c-api/typeobj.rst:1624
msgid ""
"Slot initialization is subject to the rules of initializing globals. C99 "
"requires the initializers to be \"address constants\". Function designators "
@@ -2388,7 +2406,7 @@ msgid ""
"valid C99 address constants."
msgstr ""
-#: c-api/typeobj.rst:1617
+#: c-api/typeobj.rst:1629
msgid ""
"However, the unary '&' operator applied to a non-static variable like :c:"
"func:`PyBaseObject_Type` is not required to produce an address constant. "
@@ -2396,27 +2414,27 @@ msgid ""
"strictly standard conforming in this particular behavior."
msgstr ""
-#: c-api/typeobj.rst:1623
+#: c-api/typeobj.rst:1635
msgid ""
"Consequently, :c:member:`~PyTypeObject.tp_base` should be set in the "
"extension module's init function."
msgstr ""
-#: c-api/typeobj.rst:1628
+#: c-api/typeobj.rst:1640
msgid "This field is not inherited by subtypes (obviously)."
msgstr ""
-#: c-api/typeobj.rst:1632
+#: c-api/typeobj.rst:1644
msgid ""
"This field defaults to ``&PyBaseObject_Type`` (which to Python programmers "
"is known as the type :class:`object`)."
msgstr ""
-#: c-api/typeobj.rst:1638
+#: c-api/typeobj.rst:1650
msgid "The type's dictionary is stored here by :c:func:`PyType_Ready`."
msgstr ""
-#: c-api/typeobj.rst:1640
+#: c-api/typeobj.rst:1652
msgid ""
"This field should normally be initialized to ``NULL`` before PyType_Ready is "
"called; it may also be initialized to a dictionary containing initial "
@@ -2425,43 +2443,43 @@ msgid ""
"they don't correspond to overloaded operations (like :meth:`__add__`)."
msgstr ""
-#: c-api/typeobj.rst:1648
+#: c-api/typeobj.rst:1660
msgid ""
"This field is not inherited by subtypes (though the attributes defined in "
"here are inherited through a different mechanism)."
msgstr ""
-#: c-api/typeobj.rst:1653
+#: c-api/typeobj.rst:1665
msgid ""
"If this field is ``NULL``, :c:func:`PyType_Ready` will assign a new "
"dictionary to it."
msgstr ""
-#: c-api/typeobj.rst:1658
+#: c-api/typeobj.rst:1670
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 ""
-#: c-api/typeobj.rst:1664
+#: c-api/typeobj.rst:1676
msgid "An optional pointer to a \"descriptor get\" function."
msgstr ""
-#: c-api/typeobj.rst:1682 c-api/typeobj.rst:1794 c-api/typeobj.rst:1818
+#: c-api/typeobj.rst:1694 c-api/typeobj.rst:1806 c-api/typeobj.rst:1830
msgid "The function signature is::"
msgstr ""
-#: c-api/typeobj.rst:1679
+#: c-api/typeobj.rst:1691
msgid ""
"An optional pointer to a function for setting and deleting a descriptor's "
"value."
msgstr ""
-#: c-api/typeobj.rst:1686
+#: c-api/typeobj.rst:1698
msgid "The *value* argument is set to ``NULL`` to delete the value."
msgstr ""
-#: c-api/typeobj.rst:1697
+#: c-api/typeobj.rst:1709
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 "
@@ -2469,13 +2487,13 @@ msgid ""
"func:`PyObject_GenericGetAttr`."
msgstr ""
-#: c-api/typeobj.rst:1702
+#: c-api/typeobj.rst:1714
msgid ""
"Do not confuse this field with :c:member:`~PyTypeObject.tp_dict`; that is "
"the dictionary for attributes of the type object itself."
msgstr ""
-#: c-api/typeobj.rst:1705
+#: c-api/typeobj.rst:1717
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, "
@@ -2491,13 +2509,13 @@ msgid ""
"the very end of the structure."
msgstr ""
-#: c-api/typeobj.rst:1717
+#: c-api/typeobj.rst:1729
msgid ""
"The real dictionary offset in an instance can be computed from a negative :c:"
"member:`~PyTypeObject.tp_dictoffset` as follows::"
msgstr ""
-#: c-api/typeobj.rst:1724
+#: c-api/typeobj.rst:1736
msgid ""
"where :c:member:`~PyTypeObject.tp_basicsize`, :c:member:`~PyTypeObject."
"tp_itemsize` and :c:member:`~PyTypeObject.tp_dictoffset` are taken from the "
@@ -2507,7 +2525,7 @@ msgid ""
"it is done for you by :c:func:`_PyObject_GetDictPtr`.)"
msgstr ""
-#: c-api/typeobj.rst:1732
+#: c-api/typeobj.rst:1744
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 "
@@ -2516,7 +2534,7 @@ msgid ""
"should not be a problem."
msgstr ""
-#: c-api/typeobj.rst:1737
+#: c-api/typeobj.rst:1749
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, "
@@ -2524,14 +2542,14 @@ msgid ""
"`~PyTypeObject.tp_dictoffset` is set to that slot's offset."
msgstr ""
-#: c-api/typeobj.rst:1742
+#: c-api/typeobj.rst:1754
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 ""
-#: c-api/typeobj.rst:1745
+#: c-api/typeobj.rst:1757
msgid ""
"(Adding a slot named :attr:`~object.__dict__` to the :attr:`__slots__` "
"declaration does not have the expected effect, it just causes confusion. "
@@ -2539,17 +2557,17 @@ msgid ""
"though.)"
msgstr ""
-#: c-api/typeobj.rst:1751
+#: c-api/typeobj.rst:1763
msgid ""
"This slot has no default. For :ref:`static types `, if the "
"field is ``NULL`` then no :attr:`__dict__` gets created for instances."
msgstr ""
-#: c-api/typeobj.rst:1757
+#: c-api/typeobj.rst:1769
msgid "An optional pointer to an instance initialization function."
msgstr ""
-#: c-api/typeobj.rst:1759
+#: c-api/typeobj.rst:1771
msgid ""
"This function corresponds to the :meth:`__init__` method of classes. Like :"
"meth:`__init__`, it is possible to create an instance without calling :meth:"
@@ -2557,14 +2575,14 @@ msgid ""
"meth:`__init__` method again."
msgstr ""
-#: c-api/typeobj.rst:1768
+#: c-api/typeobj.rst:1780
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 ""
-#: c-api/typeobj.rst:1772
+#: c-api/typeobj.rst:1784
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 :"
@@ -2576,43 +2594,43 @@ msgid ""
"subtype's :c:member:`~PyTypeObject.tp_init` is called."
msgstr ""
-#: c-api/typeobj.rst:1779
+#: c-api/typeobj.rst:1791
msgid "Returns ``0`` on success, ``-1`` and sets an exception on error."
msgstr ""
-#: c-api/typeobj.rst:1787
+#: c-api/typeobj.rst:1799
msgid ""
"For :ref:`static types ` this field does not have a default."
msgstr ""
-#: c-api/typeobj.rst:1792
+#: c-api/typeobj.rst:1804
msgid "An optional pointer to an instance allocation function."
msgstr ""
-#: c-api/typeobj.rst:1800
+#: c-api/typeobj.rst:1812
msgid ""
"This field is inherited by static subtypes, but not by dynamic subtypes "
"(subtypes created by a class statement)."
msgstr ""
-#: c-api/typeobj.rst:1805
+#: c-api/typeobj.rst:1817
msgid ""
"For dynamic subtypes, this field is always set to :c:func:"
"`PyType_GenericAlloc`, to force a standard heap allocation strategy."
msgstr ""
-#: c-api/typeobj.rst:1809
+#: c-api/typeobj.rst:1821
msgid ""
"For static subtypes, :c:type:`PyBaseObject_Type` uses :c:func:"
"`PyType_GenericAlloc`. That is the recommended value for all statically "
"defined types."
msgstr ""
-#: c-api/typeobj.rst:1816
+#: c-api/typeobj.rst:1828
msgid "An optional pointer to an instance creation function."
msgstr ""
-#: c-api/typeobj.rst:1822
+#: c-api/typeobj.rst:1834
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 "
@@ -2621,7 +2639,7 @@ msgid ""
"that type (but not an unrelated type)."
msgstr ""
-#: c-api/typeobj.rst:1828
+#: c-api/typeobj.rst:1840
msgid ""
"The :c:member:`~PyTypeObject.tp_new` function should call ``subtype-"
">tp_alloc(subtype, nitems)`` to allocate space for the object, and then do "
@@ -2633,20 +2651,20 @@ msgid ""
"be deferred to :c:member:`~PyTypeObject.tp_init`."
msgstr ""
-#: c-api/typeobj.rst:1836
+#: c-api/typeobj.rst:1848
msgid ""
"Set the :const:`Py_TPFLAGS_DISALLOW_INSTANTIATION` flag to disallow creating "
"instances of the type in Python."
msgstr ""
-#: c-api/typeobj.rst:1841
+#: c-api/typeobj.rst:1853
msgid ""
"This field is inherited by subtypes, except it is not inherited by :ref:"
"`static types ` whose :c:member:`~PyTypeObject.tp_base` is "
"``NULL`` or ``&PyBaseObject_Type``."
msgstr ""
-#: c-api/typeobj.rst:1847
+#: c-api/typeobj.rst:1859
msgid ""
"For :ref:`static types ` this field has no default. This means "
"if the slot is defined as ``NULL``, the type cannot be called to create new "
@@ -2654,39 +2672,39 @@ msgid ""
"factory function."
msgstr ""
-#: c-api/typeobj.rst:1855
+#: c-api/typeobj.rst:1867
msgid ""
"An optional pointer to an instance deallocation function. Its signature is::"
msgstr ""
-#: c-api/typeobj.rst:1859
+#: c-api/typeobj.rst:1871
msgid ""
"An initializer that is compatible with this signature is :c:func:"
"`PyObject_Free`."
msgstr ""
-#: c-api/typeobj.rst:1863
+#: c-api/typeobj.rst:1875
msgid ""
"This field is inherited by static subtypes, but not by dynamic subtypes "
"(subtypes created by a class statement)"
msgstr ""
-#: c-api/typeobj.rst:1868
+#: c-api/typeobj.rst:1880
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 ""
-#: c-api/typeobj.rst:1872
+#: c-api/typeobj.rst:1884
msgid "For static subtypes, :c:type:`PyBaseObject_Type` uses PyObject_Del."
msgstr ""
-#: c-api/typeobj.rst:1877
+#: c-api/typeobj.rst:1889
msgid "An optional pointer to a function called by the garbage collector."
msgstr ""
-#: c-api/typeobj.rst:1879
+#: c-api/typeobj.rst:1891
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 "
@@ -2698,74 +2716,88 @@ msgid ""
"instance. The signature is::"
msgstr ""
-#: c-api/typeobj.rst:1889
+#: c-api/typeobj.rst:1901
msgid ""
"(The only example of this are types themselves. The metatype, :c:data:"
"`PyType_Type`, defines this function to distinguish between statically and :"
"ref:`dynamically allocated types `.)"
msgstr ""
-#: c-api/typeobj.rst:1899
+#: c-api/typeobj.rst:1911
msgid ""
"This slot has no default. If this field is ``NULL``, :const:"
"`Py_TPFLAGS_HAVE_GC` is used as the functional equivalent."
msgstr ""
-#: c-api/typeobj.rst:1905
+#: c-api/typeobj.rst:1917
msgid "Tuple of base types."
msgstr ""
-#: c-api/typeobj.rst:1907
+#: c-api/typeobj.rst:1943
+msgid ""
+"This field should be set to ``NULL`` and treated as read-only. Python will "
+"fill it in when the type is :c:func:`initialized `."
+msgstr ""
+
+#: c-api/typeobj.rst:1922
+msgid ""
+"For dynamically created classes, the ``Py_tp_bases`` :c:type:`slot "
+"` can be used instead of the *bases* argument of :c:func:"
+"`PyType_FromSpecWithBases`. The argument form is preferred."
+msgstr ""
+
+#: c-api/typeobj.rst:1929
msgid ""
-"This is set for types created by a class statement. It should be ``NULL`` "
-"for statically defined types."
+"Multiple inheritance does not work well for statically defined types. If you "
+"set ``tp_bases`` to a tuple, Python will not raise an error, but some slots "
+"will only be inherited from the first base."
msgstr ""
-#: c-api/typeobj.rst:1933 c-api/typeobj.rst:1952 c-api/typeobj.rst:1966
+#: c-api/typeobj.rst:1958 c-api/typeobj.rst:1977 c-api/typeobj.rst:1991
msgid "This field is not inherited."
msgstr ""
-#: c-api/typeobj.rst:1917
+#: c-api/typeobj.rst:1940
msgid ""
"Tuple containing the expanded set of base types, starting with the type "
"itself and ending with :class:`object`, in Method Resolution Order."
msgstr ""
-#: c-api/typeobj.rst:1923
+#: c-api/typeobj.rst:1948
msgid ""
"This field is not inherited; it is calculated fresh by :c:func:"
"`PyType_Ready`."
msgstr ""
-#: c-api/typeobj.rst:1929
+#: c-api/typeobj.rst:1954
msgid "Unused. Internal use only."
msgstr ""
-#: c-api/typeobj.rst:1938
+#: c-api/typeobj.rst:1963
msgid "List of weak references to subclasses. Internal use only."
msgstr ""
-#: c-api/typeobj.rst:1947
+#: c-api/typeobj.rst:1972
msgid ""
"Weak reference list head, for weak references to this type object. Not "
"inherited. Internal use only."
msgstr ""
-#: c-api/typeobj.rst:1957
+#: c-api/typeobj.rst:1982
msgid ""
"This field is deprecated. Use :c:member:`~PyTypeObject.tp_finalize` instead."
msgstr ""
-#: c-api/typeobj.rst:1962
+#: c-api/typeobj.rst:1987
msgid "Used to index into the method cache. Internal use only."
msgstr ""
-#: c-api/typeobj.rst:1971
+#: c-api/typeobj.rst:1996
msgid ""
"An optional pointer to an instance finalization function. Its signature is::"
msgstr ""
-#: c-api/typeobj.rst:1975
+#: c-api/typeobj.rst:2000
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 "
@@ -2775,24 +2807,38 @@ msgid ""
"object in a sane state."
msgstr ""
-#: c-api/typeobj.rst:1982
+#: c-api/typeobj.rst:2007
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 ""
-#: c-api/typeobj.rst:1999
+#: c-api/typeobj.rst:2024
msgid ""
-"For this field to be taken into account (even through inheritance), you must "
-"also set the :const:`Py_TPFLAGS_HAVE_FINALIZE` flags bit."
+"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 "
+"created the object (if the object becomes part of a refcount cycle, that "
+"cycle might be collected by a garbage collection on any thread). This is "
+"not a problem for Python API calls, since the thread on which tp_dealloc is "
+"called will own the Global Interpreter Lock (GIL). However, if the object "
+"being destroyed in turn destroys objects from some other C or C++ library, "
+"care should be taken to ensure that destroying those objects on the thread "
+"which called tp_dealloc will not violate any assumptions of the library."
+msgstr ""
+
+#: c-api/typeobj.rst:2043
+msgid ""
+"Before version 3.8 it was necessary to set the :const:"
+"`Py_TPFLAGS_HAVE_FINALIZE` flags bit in order for this field to be used. "
+"This is no longer required."
msgstr ""
-#: c-api/typeobj.rst:2008
+#: c-api/typeobj.rst:2047
msgid "\"Safe object finalization\" (:pep:`442`)"
msgstr ""
-#: c-api/typeobj.rst:2013
+#: c-api/typeobj.rst:2052
msgid ""
"Vectorcall function to use for calls of this type object. In other words, it "
"is used to implement :ref:`vectorcall ` for ``type.__call__``. "
@@ -2800,74 +2846,61 @@ msgid ""
"attr:`__new__` and :attr:`__init__` is used."
msgstr ""
-#: c-api/typeobj.rst:2021
+#: c-api/typeobj.rst:2060
msgid "This field is never inherited."
msgstr ""
-#: c-api/typeobj.rst:2023
+#: c-api/typeobj.rst:2062
msgid "(the field exists since 3.8 but it's only used since 3.9)"
msgstr ""
-#: c-api/typeobj.rst:2026
-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 "
-"created the object (if the object becomes part of a refcount cycle, that "
-"cycle might be collected by a garbage collection on any thread). This is "
-"not a problem for Python API calls, since the thread on which tp_dealloc is "
-"called will own the Global Interpreter Lock (GIL). However, if the object "
-"being destroyed in turn destroys objects from some other C or C++ library, "
-"care should be taken to ensure that destroying those objects on the thread "
-"which called tp_dealloc will not violate any assumptions of the library."
-msgstr ""
-
-#: c-api/typeobj.rst:2040
+#: c-api/typeobj.rst:2068
msgid "Static Types"
msgstr ""
-#: c-api/typeobj.rst:2042
+#: c-api/typeobj.rst:2070
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 ""
-#: c-api/typeobj.rst:2046
+#: c-api/typeobj.rst:2074
msgid ""
"This results in types that are limited relative to types defined in Python:"
msgstr ""
-#: c-api/typeobj.rst:2048
+#: c-api/typeobj.rst:2076
msgid ""
"Static types are limited to one base, i.e. they cannot use multiple "
"inheritance."
msgstr ""
-#: c-api/typeobj.rst:2050
+#: c-api/typeobj.rst:2078
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 ""
-#: c-api/typeobj.rst:2052
+#: c-api/typeobj.rst:2080
msgid ""
"Static type objects are shared across :ref:`sub-interpreters `, so they should not include any subinterpreter-"
"specific state."
msgstr ""
-#: c-api/typeobj.rst:2056
+#: c-api/typeobj.rst:2084
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."
+"Also, since :c:type:`PyTypeObject` is only part of the :ref:`Limited API "
+"` as an opaque struct, any extension modules using static types must "
+"be compiled for a specific Python minor version."
msgstr ""
-#: c-api/typeobj.rst:2064
+#: c-api/typeobj.rst:2092
msgid "Heap Types"
msgstr ""
-#: c-api/typeobj.rst:2066
+#: c-api/typeobj.rst:2094
msgid ""
"An alternative to :ref:`static types ` is *heap-allocated "
"types*, or *heap types* for short, which correspond closely to classes "
@@ -2875,29 +2908,29 @@ msgid ""
"`Py_TPFLAGS_HEAPTYPE` flag set."
msgstr ""
-#: c-api/typeobj.rst:2071
+#: c-api/typeobj.rst:2099
msgid ""
"This is done by filling a :c:type:`PyType_Spec` structure and calling :c:"
"func:`PyType_FromSpec`, :c:func:`PyType_FromSpecWithBases`, or :c:func:"
"`PyType_FromModuleAndSpec`."
msgstr ""
-#: c-api/typeobj.rst:2079
+#: c-api/typeobj.rst:2107
msgid "Number Object Structures"
msgstr ""
-#: c-api/typeobj.rst:2086
+#: c-api/typeobj.rst:2114
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 ""
-#: c-api/typeobj.rst:2416
+#: c-api/typeobj.rst:2444
msgid "Here is the structure definition::"
msgstr ""
-#: c-api/typeobj.rst:2139
+#: c-api/typeobj.rst:2167
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 "
@@ -2907,30 +2940,30 @@ msgid ""
"and set an exception."
msgstr ""
-#: c-api/typeobj.rst:2148
+#: c-api/typeobj.rst:2176
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 ""
-#: c-api/typeobj.rst:2193
+#: c-api/typeobj.rst:2221
msgid "Mapping Object Structures"
msgstr ""
-#: c-api/typeobj.rst:2200
+#: c-api/typeobj.rst:2228
msgid ""
"This structure holds pointers to the functions which an object uses to "
"implement the mapping protocol. It has three members:"
msgstr ""
-#: c-api/typeobj.rst:2205
+#: c-api/typeobj.rst:2233
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 ""
-#: c-api/typeobj.rst:2211
+#: c-api/typeobj.rst:2239
msgid ""
"This function is used by :c:func:`PyObject_GetItem` and :c:func:"
"`PySequence_GetSlice`, and has the same signature as :c:func:`!"
@@ -2938,7 +2971,7 @@ msgid ""
"`PyMapping_Check` function to return ``1``, it can be ``NULL`` otherwise."
msgstr ""
-#: c-api/typeobj.rst:2219
+#: c-api/typeobj.rst:2247
msgid ""
"This function is used by :c:func:`PyObject_SetItem`, :c:func:"
"`PyObject_DelItem`, :c:func:`PyObject_SetSlice` and :c:func:"
@@ -2948,17 +2981,17 @@ msgid ""
"deletion."
msgstr ""
-#: c-api/typeobj.rst:2230
+#: c-api/typeobj.rst:2258
msgid "Sequence Object Structures"
msgstr ""
-#: c-api/typeobj.rst:2237
+#: c-api/typeobj.rst:2265
msgid ""
"This structure holds pointers to the functions which an object uses to "
"implement the sequence protocol."
msgstr ""
-#: c-api/typeobj.rst:2242
+#: c-api/typeobj.rst:2270
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 "
@@ -2966,21 +2999,21 @@ msgid ""
"member:`~PySequenceMethods.sq_ass_item` slots."
msgstr ""
-#: c-api/typeobj.rst:2249
+#: c-api/typeobj.rst:2277
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 ""
-#: c-api/typeobj.rst:2255
+#: c-api/typeobj.rst:2283
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 ""
-#: c-api/typeobj.rst:2261
+#: c-api/typeobj.rst:2289
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 "
@@ -2989,7 +3022,7 @@ msgid ""
"``1``, it can be ``NULL`` otherwise."
msgstr ""
-#: c-api/typeobj.rst:2267
+#: c-api/typeobj.rst:2295
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 "
@@ -2997,7 +3030,7 @@ msgid ""
"the index is passed as is to the function."
msgstr ""
-#: c-api/typeobj.rst:2274
+#: c-api/typeobj.rst:2302
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:"
@@ -3006,14 +3039,14 @@ msgid ""
"``NULL`` if the object does not support item assignment and deletion."
msgstr ""
-#: c-api/typeobj.rst:2283
+#: c-api/typeobj.rst:2311
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 ""
-#: c-api/typeobj.rst:2290
+#: c-api/typeobj.rst:2318
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 "
@@ -3023,7 +3056,7 @@ msgid ""
"c:member:`~PyNumberMethods.nb_inplace_add` slot."
msgstr ""
-#: c-api/typeobj.rst:2299
+#: c-api/typeobj.rst:2327
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 "
@@ -3033,70 +3066,70 @@ msgid ""
"via the :c:member:`~PyNumberMethods.nb_inplace_multiply` slot."
msgstr ""
-#: c-api/typeobj.rst:2310
+#: c-api/typeobj.rst:2338
msgid "Buffer Object Structures"
msgstr ""
-#: c-api/typeobj.rst:2318
+#: c-api/typeobj.rst:2346
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 ""
-#: c-api/typeobj.rst:2373 c-api/typeobj.rst:2438 c-api/typeobj.rst:2458
+#: c-api/typeobj.rst:2401 c-api/typeobj.rst:2466 c-api/typeobj.rst:2487
msgid "The signature of this function is::"
msgstr ""
-#: c-api/typeobj.rst:2328
+#: c-api/typeobj.rst:2356
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 ""
-#: c-api/typeobj.rst:2332
+#: c-api/typeobj.rst:2360
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``."
+"set :c:expr:`view->obj` to ``NULL`` and return ``-1``."
msgstr ""
-#: c-api/typeobj.rst:2335
+#: c-api/typeobj.rst:2363
msgid "Fill in the requested fields."
msgstr ""
-#: c-api/typeobj.rst:2337
+#: c-api/typeobj.rst:2365
msgid "Increment an internal counter for the number of exports."
msgstr ""
-#: c-api/typeobj.rst:2339
+#: c-api/typeobj.rst:2367
msgid ""
-"Set :c:data:`view->obj` to *exporter* and increment :c:data:`view->obj`."
+"Set :c:expr:`view->obj` to *exporter* and increment :c:expr:`view->obj`."
msgstr ""
-#: c-api/typeobj.rst:2341
+#: c-api/typeobj.rst:2369
msgid "Return ``0``."
msgstr ""
-#: c-api/typeobj.rst:2343
+#: c-api/typeobj.rst:2371
msgid ""
"If *exporter* is part of a chain or tree of buffer providers, two main "
"schemes can be used:"
msgstr ""
-#: c-api/typeobj.rst:2346
+#: c-api/typeobj.rst:2374
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."
+"expr:`view->obj` to a new reference to itself."
msgstr ""
-#: c-api/typeobj.rst:2349
+#: c-api/typeobj.rst:2377
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."
+"Here, :c:expr:`view->obj` will be a new reference to the root object."
msgstr ""
-#: c-api/typeobj.rst:2353
+#: c-api/typeobj.rst:2381
msgid ""
"The individual fields of *view* are described in section :ref:`Buffer "
"structure `, the rules how an exporter must react to "
@@ -3104,7 +3137,7 @@ msgid ""
"types>`."
msgstr ""
-#: c-api/typeobj.rst:2358
+#: c-api/typeobj.rst:2386
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:"
@@ -3113,19 +3146,19 @@ msgid ""
"internal` are read-only for the consumer."
msgstr ""
-#: c-api/typeobj.rst:2365
+#: c-api/typeobj.rst:2393
msgid ""
":c:func:`PyBuffer_FillInfo` provides an easy way of exposing a simple bytes "
"buffer while dealing correctly with all request types."
msgstr ""
-#: c-api/typeobj.rst:2368
+#: c-api/typeobj.rst:2396
msgid ""
":c:func:`PyObject_GetBuffer` is the interface for the consumer that wraps "
"this function."
msgstr ""
-#: c-api/typeobj.rst:2377
+#: c-api/typeobj.rst:2405
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 "
@@ -3133,15 +3166,15 @@ msgid ""
"these optional steps:"
msgstr ""
-#: c-api/typeobj.rst:2382
+#: c-api/typeobj.rst:2410
msgid "Decrement an internal counter for the number of exports."
msgstr ""
-#: c-api/typeobj.rst:2384
+#: c-api/typeobj.rst:2412
msgid "If the counter is ``0``, free all memory associated with *view*."
msgstr ""
-#: c-api/typeobj.rst:2386
+#: c-api/typeobj.rst:2414
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 "
@@ -3149,67 +3182,68 @@ msgid ""
"*view* argument."
msgstr ""
-#: c-api/typeobj.rst:2392
+#: c-api/typeobj.rst:2420
msgid ""
-"This function MUST NOT decrement :c:data:`view->obj`, since that is done "
+"This function MUST NOT decrement :c:expr:`view->obj`, since that is done "
"automatically in :c:func:`PyBuffer_Release` (this scheme is useful for "
"breaking reference cycles)."
msgstr ""
-#: c-api/typeobj.rst:2397
+#: c-api/typeobj.rst:2425
msgid ""
":c:func:`PyBuffer_Release` is the interface for the consumer that wraps this "
"function."
msgstr ""
-#: c-api/typeobj.rst:2405
+#: c-api/typeobj.rst:2433
msgid "Async Object Structures"
msgstr ""
-#: c-api/typeobj.rst:2413
+#: c-api/typeobj.rst:2441
msgid ""
"This structure holds pointers to the functions required to implement :term:"
"`awaitable` and :term:`asynchronous iterator` objects."
msgstr ""
-#: c-api/typeobj.rst:2431
+#: c-api/typeobj.rst:2459
msgid ""
"The returned object must be an :term:`iterator`, i.e. :c:func:`PyIter_Check` "
"must return ``1`` for it."
msgstr ""
-#: c-api/typeobj.rst:2434
+#: c-api/typeobj.rst:2462
msgid ""
"This slot may be set to ``NULL`` if an object is not an :term:`awaitable`."
msgstr ""
-#: c-api/typeobj.rst:2442
+#: c-api/typeobj.rst:2470
msgid ""
-"Must return an :term:`awaitable` object. See :meth:`__anext__` for details."
+"Must return an :term:`asynchronous iterator` object. See :meth:`__anext__` "
+"for details."
msgstr ""
-#: c-api/typeobj.rst:2444
+#: c-api/typeobj.rst:2473
msgid ""
"This slot may be set to ``NULL`` if an object does not implement "
"asynchronous iteration protocol."
msgstr ""
-#: c-api/typeobj.rst:2453
+#: c-api/typeobj.rst:2482
msgid ""
"Must return an :term:`awaitable` object. See :meth:`__anext__` for details. "
"This slot may be set to ``NULL``."
msgstr ""
-#: c-api/typeobj.rst:2462
+#: c-api/typeobj.rst:2491
msgid ""
"See :c:func:`PyIter_Send` for details. This slot may be set to ``NULL``."
msgstr ""
-#: c-api/typeobj.rst:2471
+#: c-api/typeobj.rst:2500
msgid "Slot Type typedefs"
msgstr ""
-#: c-api/typeobj.rst:2475
+#: c-api/typeobj.rst:2504
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 "
@@ -3223,80 +3257,80 @@ msgid ""
"member:`~PyTypeObject.tp_basicsize`."
msgstr ""
-#: c-api/typeobj.rst:2485
+#: c-api/typeobj.rst:2514
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 ""
-#: c-api/typeobj.rst:2492
+#: c-api/typeobj.rst:2521
msgid "See :c:member:`~PyTypeObject.tp_free`."
msgstr ""
-#: c-api/typeobj.rst:2496
+#: c-api/typeobj.rst:2525
msgid "See :c:member:`~PyTypeObject.tp_new`."
msgstr ""
-#: c-api/typeobj.rst:2500
+#: c-api/typeobj.rst:2529
msgid "See :c:member:`~PyTypeObject.tp_init`."
msgstr ""
-#: c-api/typeobj.rst:2504
+#: c-api/typeobj.rst:2533
msgid "See :c:member:`~PyTypeObject.tp_repr`."
msgstr ""
-#: c-api/typeobj.rst:2517
+#: c-api/typeobj.rst:2546
msgid "Return the value of the named attribute for the object."
msgstr ""
-#: c-api/typeobj.rst:2523
+#: c-api/typeobj.rst:2552
msgid ""
"Set the value of the named attribute for the object. The value argument is "
"set to ``NULL`` to delete the attribute."
msgstr ""
-#: c-api/typeobj.rst:2519
+#: c-api/typeobj.rst:2548
msgid "See :c:member:`~PyTypeObject.tp_getattro`."
msgstr ""
-#: c-api/typeobj.rst:2526
+#: c-api/typeobj.rst:2555
msgid "See :c:member:`~PyTypeObject.tp_setattro`."
msgstr ""
-#: c-api/typeobj.rst:2530
-msgid "See :c:member:`~PyTypeObject.tp_descrget`."
+#: c-api/typeobj.rst:2559
+msgid "See :c:member:`~PyTypeObject.tp_descr_get`."
msgstr ""
-#: c-api/typeobj.rst:2534
-msgid "See :c:member:`~PyTypeObject.tp_descrset`."
+#: c-api/typeobj.rst:2563
+msgid "See :c:member:`~PyTypeObject.tp_descr_set`."
msgstr ""
-#: c-api/typeobj.rst:2538
+#: c-api/typeobj.rst:2567
msgid "See :c:member:`~PyTypeObject.tp_hash`."
msgstr ""
-#: c-api/typeobj.rst:2542
+#: c-api/typeobj.rst:2571
msgid "See :c:member:`~PyTypeObject.tp_richcompare`."
msgstr ""
-#: c-api/typeobj.rst:2546
+#: c-api/typeobj.rst:2575
msgid "See :c:member:`~PyTypeObject.tp_iter`."
msgstr ""
-#: c-api/typeobj.rst:2550
+#: c-api/typeobj.rst:2579
msgid "See :c:member:`~PyTypeObject.tp_iternext`."
msgstr ""
-#: c-api/typeobj.rst:2564
+#: c-api/typeobj.rst:2593
msgid "See :c:member:`~PyAsyncMethods.am_send`."
msgstr ""
-#: c-api/typeobj.rst:2580
+#: c-api/typeobj.rst:2609
msgid "Examples"
msgstr "Exemples"
-#: c-api/typeobj.rst:2582
+#: c-api/typeobj.rst:2611
msgid ""
"The following are simple examples of Python type definitions. They include "
"common usage you may encounter. Some demonstrate tricky corner cases. For "
@@ -3304,33 +3338,33 @@ msgid ""
"and :ref:`new-types-topics`."
msgstr ""
-#: c-api/typeobj.rst:2587
+#: c-api/typeobj.rst:2616
msgid "A basic :ref:`static type `::"
msgstr ""
-#: c-api/typeobj.rst:2604
+#: c-api/typeobj.rst:2633
msgid ""
"You may also find older code (especially in the CPython code base) with a "
"more verbose initializer::"
msgstr ""
-#: c-api/typeobj.rst:2648
+#: c-api/typeobj.rst:2677
msgid "A type that supports weakrefs, instance dicts, and hashing::"
msgstr ""
-#: c-api/typeobj.rst:2675
+#: c-api/typeobj.rst:2704
msgid ""
"A str subclass that cannot be subclassed and cannot be called to create "
"instances (e.g. uses a separate factory func) using :c:data:"
"`Py_TPFLAGS_DISALLOW_INSTANTIATION` flag::"
msgstr ""
-#: c-api/typeobj.rst:2694
+#: c-api/typeobj.rst:2723
msgid ""
"The simplest :ref:`static type ` with fixed-length instances::"
msgstr ""
-#: c-api/typeobj.rst:2705
+#: c-api/typeobj.rst:2734
msgid ""
"The simplest :ref:`static type ` with variable-length "
"instances::"
diff --git a/c-api/unicode.po b/c-api/unicode.po
index 37ca35fa87..e9bbe2915e 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: 2021-09-23 16:16+0200\n"
+"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2018-10-04 12:27+0200\n"
"Last-Translator: FULL NAME \n"
"Language-Team: FRENCH \n"
@@ -16,11 +16,11 @@ msgstr ""
#: c-api/unicode.rst:6
msgid "Unicode Objects and Codecs"
-msgstr ""
+msgstr "Objets Unicode et Codecs"
#: c-api/unicode.rst:12
msgid "Unicode Objects"
-msgstr ""
+msgstr "Objets Unicode"
#: c-api/unicode.rst:14
msgid ""
@@ -31,19 +31,31 @@ 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)."
#: 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 "
+":c:expr:`Py_UNICODE*` and UTF-8 representations are created on demand and "
+"cached in the Unicode object. The :c:expr:`Py_UNICODE*` representation is "
"deprecated and inefficient."
msgstr ""
+"Des représentations :c:expr:`Py_UNICODE*` et UTF-8 sont créées à la demande "
+"et mises en cache dans l'objet Unicode. La représentation :c:expr:"
+"`Py_UNICODE*` est dépréciée et inefficace."
#: 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 :"
#: c-api/unicode.rst:27
msgid ""
@@ -51,14 +63,21 @@ msgid ""
"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."
#: 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:"
+"APIs (typically :c:func:`PyUnicode_FromUnicode`) and only bear the :c:expr:"
"`Py_UNICODE*` representation; you will have to call :c:func:"
"`PyUnicode_READY` on them before calling any other API."
msgstr ""
+"Les objets Unicode « historiques » ont été créés via une des APIs dépréciées "
+"(typiquement :c:func:`PyUnicode_FromUnicode`) et supportent uniquement la "
+"représentation :c:expr:`Py_UNICODE*`; vous devrez appeler :c:func:"
+"`PyUnicode_READY` sur eux avant d'appeler n'importe quelle autre API."
#: c-api/unicode.rst:37
msgid ""
@@ -66,16 +85,21 @@ msgid ""
"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 ""
+msgstr "Type Unicode"
#: 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 :"
#: c-api/unicode.rst:52
msgid ""
@@ -83,12 +107,17 @@ msgid ""
"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`."
#: c-api/unicode.rst:61
msgid ""
-"This is a typedef of :c:type:`wchar_t`, which is a 16-bit type or 32-bit "
+"This is a typedef of :c:expr:`wchar_t`, which is a 16-bit type or 32-bit "
"type depending on the platform."
msgstr ""
+"Ceci est un *typedef* de :c:expr:`wchar_t`, qui est un type 16-bit ou un "
+"type 32-bit selon la plateforme."
#: c-api/unicode.rst:64
msgid ""
@@ -96,6 +125,9 @@ msgid ""
"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."
#: c-api/unicode.rst:74
msgid ""
@@ -198,9 +230,9 @@ msgstr ""
#: 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 ""
#: c-api/unicode.rst:203
@@ -235,7 +267,7 @@ msgid ""
"The returned buffer is always terminated with an extra null code point. It "
"may also contain embedded null code points, which would cause the string to "
"be truncated when used in most C functions. The ``AS_DATA`` form casts the "
-"pointer to :c:type:`const char *`. The *o* argument has to be a Unicode "
+"pointer to :c:expr:`const char *`. The *o* argument has to be a Unicode "
"object (not checked)."
msgstr ""
@@ -472,7 +504,7 @@ msgstr "Commentaires"
#: c-api/unicode.rst:464
msgid ":attr:`%%`"
-msgstr ""
+msgstr ":attr:`%%`"
#: c-api/unicode.rst:464
msgid "*n/a*"
@@ -484,7 +516,7 @@ msgstr ""
#: c-api/unicode.rst:466
msgid ":attr:`%c`"
-msgstr ""
+msgstr ":attr:`%c`"
#: c-api/unicode.rst:469 c-api/unicode.rst:505
msgid "int"
@@ -496,7 +528,7 @@ msgstr ""
#: c-api/unicode.rst:469
msgid ":attr:`%d`"
-msgstr ""
+msgstr ":attr:`%d`"
#: c-api/unicode.rst:469
msgid "Equivalent to ``printf(\"%d\")``. [1]_"
@@ -504,7 +536,7 @@ msgstr ""
#: c-api/unicode.rst:472
msgid ":attr:`%u`"
-msgstr ""
+msgstr ":attr:`%u`"
#: c-api/unicode.rst:472
msgid "unsigned int"
@@ -516,7 +548,7 @@ msgstr ""
#: c-api/unicode.rst:475
msgid ":attr:`%ld`"
-msgstr ""
+msgstr ":attr:`%ld`"
#: c-api/unicode.rst:478
msgid "long"
@@ -528,7 +560,7 @@ msgstr ""
#: c-api/unicode.rst:478
msgid ":attr:`%li`"
-msgstr ""
+msgstr ":attr:`%li`"
#: c-api/unicode.rst:478
msgid "Equivalent to ``printf(\"%li\")``. [1]_"
@@ -536,7 +568,7 @@ msgstr ""
#: c-api/unicode.rst:481
msgid ":attr:`%lu`"
-msgstr ""
+msgstr ":attr:`%lu`"
#: c-api/unicode.rst:481
msgid "unsigned long"
@@ -548,7 +580,7 @@ msgstr ""
#: c-api/unicode.rst:484
msgid ":attr:`%lld`"
-msgstr ""
+msgstr ":attr:`%lld`"
#: c-api/unicode.rst:487
msgid "long long"
@@ -560,7 +592,7 @@ msgstr ""
#: c-api/unicode.rst:487
msgid ":attr:`%lli`"
-msgstr ""
+msgstr ":attr:`%lli`"
#: c-api/unicode.rst:487
msgid "Equivalent to ``printf(\"%lli\")``. [1]_"
@@ -568,7 +600,7 @@ msgstr ""
#: c-api/unicode.rst:490
msgid ":attr:`%llu`"
-msgstr ""
+msgstr ":attr:`%llu`"
#: c-api/unicode.rst:490
msgid "unsigned long long"
@@ -580,10 +612,10 @@ msgstr ""
#: c-api/unicode.rst:493
msgid ":attr:`%zd`"
-msgstr ""
+msgstr ":attr:`%zd`"
#: c-api/unicode.rst:496
-msgid "Py_ssize_t"
+msgid ":c:type:`\\ Py_ssize_t`"
msgstr ""
#: c-api/unicode.rst:493
@@ -592,7 +624,7 @@ msgstr ""
#: c-api/unicode.rst:496
msgid ":attr:`%zi`"
-msgstr ""
+msgstr ":attr:`%zi`"
#: c-api/unicode.rst:496
msgid "Equivalent to ``printf(\"%zi\")``. [1]_"
@@ -600,7 +632,7 @@ msgstr ""
#: c-api/unicode.rst:499
msgid ":attr:`%zu`"
-msgstr ""
+msgstr ":attr:`%zu`"
#: c-api/unicode.rst:499
msgid "size_t"
@@ -612,7 +644,7 @@ msgstr ""
#: c-api/unicode.rst:502
msgid ":attr:`%i`"
-msgstr ""
+msgstr ":attr:`%i`"
#: c-api/unicode.rst:502
msgid "Equivalent to ``printf(\"%i\")``. [1]_"
@@ -620,7 +652,7 @@ msgstr ""
#: c-api/unicode.rst:505
msgid ":attr:`%x`"
-msgstr ""
+msgstr ":attr:`%x`"
#: c-api/unicode.rst:505
msgid "Equivalent to ``printf(\"%x\")``. [1]_"
@@ -628,7 +660,7 @@ msgstr ""
#: c-api/unicode.rst:508
msgid ":attr:`%s`"
-msgstr ""
+msgstr ":attr:`%s`"
#: c-api/unicode.rst:508
msgid "const char\\*"
@@ -640,7 +672,7 @@ msgstr ""
#: c-api/unicode.rst:511
msgid ":attr:`%p`"
-msgstr ""
+msgstr ":attr:`%p`"
#: c-api/unicode.rst:511
msgid "const void\\*"
@@ -648,14 +680,14 @@ msgstr ""
#: c-api/unicode.rst:511
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 ""
#: c-api/unicode.rst:519
msgid ":attr:`%A`"
-msgstr ""
+msgstr ":attr:`%A`"
#: c-api/unicode.rst:522 c-api/unicode.rst:534
msgid "PyObject\\*"
@@ -667,7 +699,7 @@ msgstr ""
#: c-api/unicode.rst:522
msgid ":attr:`%U`"
-msgstr ""
+msgstr ":attr:`%U`"
#: c-api/unicode.rst:522
#, fuzzy
@@ -676,7 +708,7 @@ msgstr "Un objet Unicode."
#: c-api/unicode.rst:524
msgid ":attr:`%V`"
-msgstr ""
+msgstr ":attr:`%V`"
#: c-api/unicode.rst:524
msgid "PyObject\\*, const char\\*"
@@ -691,7 +723,7 @@ msgstr ""
#: c-api/unicode.rst:531
msgid ":attr:`%S`"
-msgstr ""
+msgstr ":attr:`%S`"
#: c-api/unicode.rst:531
msgid "The result of calling :c:func:`PyObject_Str`."
@@ -699,7 +731,7 @@ msgstr ""
#: c-api/unicode.rst:534
msgid ":attr:`%R`"
-msgstr ""
+msgstr ":attr:`%R`"
#: c-api/unicode.rst:534
msgid "The result of calling :c:func:`PyObject_Repr`."
@@ -736,8 +768,8 @@ msgstr ""
#: c-api/unicode.rst:557
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 ""
#: c-api/unicode.rst:564
@@ -784,8 +816,8 @@ msgstr ""
#: c-api/unicode.rst:610
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 ""
#: c-api/unicode.rst:613
@@ -887,7 +919,7 @@ msgstr ""
#: c-api/unicode.rst:708
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:"
+"`Py_UNICODE` buffer, or ``NULL`` on error. This will create the :c:expr:"
"`Py_UNICODE*` representation of the object if it is not yet available. The "
"buffer is always terminated with an extra null code point. Note that the "
"resulting :c:type:`Py_UNICODE` string may also contain embedded null code "
@@ -919,7 +951,7 @@ msgstr ""
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 "
-"resulting :c:type:`Py_UNICODE*` string may contain embedded null code "
+"resulting :c:expr:`Py_UNICODE*` string may contain embedded null code "
"points, which would cause the string to be truncated when used in most C "
"functions."
msgstr ""
@@ -955,9 +987,9 @@ msgstr ""
#: c-api/unicode.rst:778
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 ""
@@ -993,10 +1025,10 @@ msgstr ""
#: c-api/unicode.rst:814
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 ""
#: c-api/unicode.rst:821
@@ -1036,7 +1068,7 @@ msgid ""
"ParseTuple converter: encode :class:`str` objects -- obtained directly or "
"through the :class:`os.PathLike` interface -- to :class:`bytes` using :c:"
"func:`PyUnicode_EncodeFSDefault`; :class:`bytes` objects are output as-is. "
-"*result* must be a :c:type:`PyBytesObject*` which must be released when it "
+"*result* must be a :c:expr:`PyBytesObject*` which must be released when it "
"is no longer used."
msgstr ""
@@ -1056,7 +1088,7 @@ msgid ""
"ParseTuple converter: decode :class:`bytes` objects -- obtained either "
"directly or indirectly through the :class:`os.PathLike` interface -- to :"
"class:`str` using :c:func:`PyUnicode_DecodeFSDefaultAndSize`; :class:`str` "
-"objects are output as-is. *result* must be a :c:type:`PyUnicodeObject*` "
+"objects are output as-is. *result* must be a :c:expr:`PyUnicodeObject*` "
"which must be released when it is no longer used."
msgstr ""
@@ -1113,26 +1145,26 @@ msgid "wchar_t Support"
msgstr ""
#: c-api/unicode.rst:942
-msgid ":c:type:`wchar_t` support for platforms which support it:"
+msgid ":c:expr:`wchar_t` support for platforms which support it:"
msgstr ""
#: c-api/unicode.rst:946
msgid ""
-"Create a Unicode object from the :c:type:`wchar_t` buffer *w* of the given "
+"Create a Unicode object from the :c:expr:`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 ""
#: c-api/unicode.rst:954
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 "
-"trailing null termination character). Return the number of :c:type:"
+"Copy the Unicode object contents into the :c:expr:`wchar_t` buffer *w*. At "
+"most *size* :c:expr:`wchar_t` characters are copied (excluding a possibly "
+"trailing null termination character). Return the number of :c:expr:"
"`wchar_t` characters copied or ``-1`` in case of an error. Note that the "
-"resulting :c:type:`wchar_t*` string may or may not be null-terminated. It "
-"is the responsibility of the caller to make sure that the :c:type:`wchar_t*` "
+"resulting :c:expr:`wchar_t*` string may or may not be null-terminated. It "
+"is the responsibility of the caller to make sure that the :c:expr:`wchar_t*` "
"string is null-terminated in case this is required by the application. Also, "
-"note that the :c:type:`wchar_t*` string might contain null characters, which "
+"note that the :c:expr:`wchar_t*` string might contain null characters, which "
"would cause the string to be truncated when used with most C functions."
msgstr ""
@@ -1141,23 +1173,23 @@ 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 "
"number of wide characters (excluding the trailing null termination "
-"character) into *\\*size*. Note that the resulting :c:type:`wchar_t` string "
+"character) into *\\*size*. Note that the resulting :c:expr:`wchar_t` string "
"might contain null characters, which would cause the string to be truncated "
-"when used with most C functions. If *size* is ``NULL`` and the :c:type:"
+"when used with most C functions. If *size* is ``NULL`` and the :c:expr:"
"`wchar_t*` string contains null characters a :exc:`ValueError` is raised."
msgstr ""
#: c-api/unicode.rst:975
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 ""
#: c-api/unicode.rst:982
msgid ""
-"Raises a :exc:`ValueError` if *size* is ``NULL`` and the :c:type:`wchar_t*` "
+"Raises a :exc:`ValueError` if *size* is ``NULL`` and the :c:expr:`wchar_t*` "
"string contains null characters."
msgstr ""
@@ -1198,7 +1230,7 @@ msgstr ""
#: c-api/unicode.rst:1011
msgid ""
-"The codecs all use a similar interface. Only deviation from the following "
+"The codecs all use a similar interface. Only deviations from the following "
"generic ones are documented for simplicity."
msgstr ""
@@ -1237,7 +1269,7 @@ msgid ""
"``NULL`` if an exception was raised by the codec."
msgstr ""
-#: c-api/unicode.rst:1312
+#: c-api/unicode.rst:1313
msgid ""
"Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:"
"func:`PyUnicode_AsEncodedString`."
@@ -1291,57 +1323,59 @@ msgstr ""
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."
+"is not responsible for deallocating the buffer. The buffer is deallocated "
+"and pointers to it become invalid when the Unicode object is garbage "
+"collected."
msgstr ""
-#: c-api/unicode.rst:1113
+#: c-api/unicode.rst:1114
msgid "The return type is now ``const char *`` rather of ``char *``."
msgstr ""
-#: c-api/unicode.rst:1103
+#: c-api/unicode.rst:1104
msgid "This function is a part of the :ref:`limited API `."
msgstr ""
-#: c-api/unicode.rst:1109
+#: c-api/unicode.rst:1110
msgid "As :c:func:`PyUnicode_AsUTF8AndSize`, but does not store the size."
msgstr ""
-#: c-api/unicode.rst:1119
+#: c-api/unicode.rst:1120
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 ""
-#: c-api/unicode.rst:1126
+#: c-api/unicode.rst:1127
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 ""
-#: c-api/unicode.rst:1130
+#: c-api/unicode.rst:1131
msgid "UTF-32 Codecs"
msgstr ""
-#: c-api/unicode.rst:1132
+#: c-api/unicode.rst:1133
msgid "These are the UTF-32 codec APIs:"
msgstr ""
-#: c-api/unicode.rst:1138
+#: c-api/unicode.rst:1139
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 ""
-#: c-api/unicode.rst:1215
+#: c-api/unicode.rst:1216
msgid ""
"If *byteorder* is non-``NULL``, the decoder starts decoding using the given "
"byte order::"
msgstr ""
-#: c-api/unicode.rst:1149
+#: c-api/unicode.rst:1150
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 "
@@ -1349,21 +1383,21 @@ msgid ""
"``-1`` or ``1``, any byte order mark is copied to the output."
msgstr ""
-#: c-api/unicode.rst:1228
+#: c-api/unicode.rst:1155
msgid ""
"After completion, *\\*byteorder* is set to the current byte order at the end "
"of input data."
msgstr ""
-#: c-api/unicode.rst:1231
+#: c-api/unicode.rst:1232
msgid "If *byteorder* is ``NULL``, the codec starts in native order mode."
msgstr ""
-#: c-api/unicode.rst:1195 c-api/unicode.rst:1270
+#: c-api/unicode.rst:1196 c-api/unicode.rst:1271
msgid "Return ``NULL`` if an exception was raised by the codec."
msgstr ""
-#: c-api/unicode.rst:1165
+#: c-api/unicode.rst:1166
msgid ""
"If *consumed* is ``NULL``, behave like :c:func:`PyUnicode_DecodeUTF32`. If "
"*consumed* is not ``NULL``, :c:func:`PyUnicode_DecodeUTF32Stateful` will not "
@@ -1372,53 +1406,53 @@ msgid ""
"number of bytes that have been decoded will be stored in *consumed*."
msgstr ""
-#: c-api/unicode.rst:1174
+#: c-api/unicode.rst:1175
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 ""
-#: c-api/unicode.rst:1182
+#: c-api/unicode.rst:1183
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 ""
-#: c-api/unicode.rst:1263
+#: c-api/unicode.rst:1264
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 ""
-#: c-api/unicode.rst:1192
+#: c-api/unicode.rst:1193
msgid ""
"If ``Py_UNICODE_WIDE`` is not defined, surrogate pairs will be output as a "
"single code point."
msgstr ""
-#: c-api/unicode.rst:1199
+#: c-api/unicode.rst:1200
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 ""
-#: c-api/unicode.rst:1203
+#: c-api/unicode.rst:1204
msgid "UTF-16 Codecs"
msgstr ""
-#: c-api/unicode.rst:1205
+#: c-api/unicode.rst:1206
msgid "These are the UTF-16 codec APIs:"
msgstr ""
-#: c-api/unicode.rst:1211
+#: c-api/unicode.rst:1212
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 ""
-#: c-api/unicode.rst:1222
+#: c-api/unicode.rst:1223
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 "
@@ -1427,7 +1461,13 @@ msgid ""
"result in either a ``\\ufeff`` or a ``\\ufffe`` character)."
msgstr ""
-#: c-api/unicode.rst:1239
+#: c-api/unicode.rst:1229
+msgid ""
+"After completion, ``*byteorder`` is set to the current byte order at the end "
+"of input data."
+msgstr ""
+
+#: c-api/unicode.rst:1240
msgid ""
"If *consumed* is ``NULL``, behave like :c:func:`PyUnicode_DecodeUTF16`. If "
"*consumed* is not ``NULL``, :c:func:`PyUnicode_DecodeUTF16Stateful` will not "
@@ -1437,47 +1477,47 @@ msgid ""
"*consumed*."
msgstr ""
-#: c-api/unicode.rst:1248
+#: c-api/unicode.rst:1249
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 ""
-#: c-api/unicode.rst:1256
+#: c-api/unicode.rst:1257
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 ""
-#: c-api/unicode.rst:1266
+#: c-api/unicode.rst:1267
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 ""
-#: c-api/unicode.rst:1274
+#: c-api/unicode.rst:1275
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 ""
-#: c-api/unicode.rst:1278
+#: c-api/unicode.rst:1279
msgid "UTF-7 Codecs"
msgstr ""
-#: c-api/unicode.rst:1280
+#: c-api/unicode.rst:1281
msgid "These are the UTF-7 codec APIs:"
msgstr ""
-#: c-api/unicode.rst:1285
+#: c-api/unicode.rst:1286
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 ""
-#: c-api/unicode.rst:1292
+#: c-api/unicode.rst:1293
msgid ""
"If *consumed* is ``NULL``, behave like :c:func:`PyUnicode_DecodeUTF7`. If "
"*consumed* is not ``NULL``, trailing incomplete UTF-7 base-64 sections will "
@@ -1485,14 +1525,14 @@ msgid ""
"of bytes that have been decoded will be stored in *consumed*."
msgstr ""
-#: c-api/unicode.rst:1301
+#: c-api/unicode.rst:1302
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 ""
-#: c-api/unicode.rst:1305
+#: c-api/unicode.rst:1306
msgid ""
"If *base64SetO* is nonzero, \"Set O\" (punctuation that has no otherwise "
"special meaning) will be encoded in base-64. If *base64WhiteSpace* is "
@@ -1500,173 +1540,173 @@ msgid ""
"the Python \"utf-7\" codec."
msgstr ""
-#: c-api/unicode.rst:1316
+#: c-api/unicode.rst:1317
msgid "Unicode-Escape Codecs"
msgstr ""
-#: c-api/unicode.rst:1318
+#: c-api/unicode.rst:1319
msgid "These are the \"Unicode Escape\" codec APIs:"
msgstr ""
-#: c-api/unicode.rst:1324
+#: c-api/unicode.rst:1325
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 ""
-#: c-api/unicode.rst:1330
+#: c-api/unicode.rst:1331
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 ""
-#: c-api/unicode.rst:1337
+#: c-api/unicode.rst:1338
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 ""
-#: c-api/unicode.rst:1342
+#: c-api/unicode.rst:1343
msgid ""
"Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:"
"func:`PyUnicode_AsUnicodeEscapeString`."
msgstr ""
-#: c-api/unicode.rst:1346
+#: c-api/unicode.rst:1347
msgid "Raw-Unicode-Escape Codecs"
msgstr ""
-#: c-api/unicode.rst:1348
+#: c-api/unicode.rst:1349
msgid "These are the \"Raw Unicode Escape\" codec APIs:"
msgstr ""
-#: c-api/unicode.rst:1354
+#: c-api/unicode.rst:1355
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 ""
-#: c-api/unicode.rst:1360
+#: c-api/unicode.rst:1361
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 ""
-#: c-api/unicode.rst:1368
+#: c-api/unicode.rst:1369
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 ""
-#: c-api/unicode.rst:1374
+#: c-api/unicode.rst:1375
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 ""
-#: c-api/unicode.rst:1378
+#: c-api/unicode.rst:1379
msgid "Latin-1 Codecs"
msgstr ""
-#: c-api/unicode.rst:1380
+#: c-api/unicode.rst:1381
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 ""
-#: c-api/unicode.rst:1386
+#: c-api/unicode.rst:1387
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 ""
-#: c-api/unicode.rst:1392
+#: c-api/unicode.rst:1393
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 ""
-#: c-api/unicode.rst:1399
+#: c-api/unicode.rst:1400
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 ""
-#: c-api/unicode.rst:1406
+#: c-api/unicode.rst:1407
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 ""
-#: c-api/unicode.rst:1410
+#: c-api/unicode.rst:1411
msgid "ASCII Codecs"
msgstr ""
-#: c-api/unicode.rst:1412
+#: c-api/unicode.rst:1413
msgid ""
"These are the ASCII codec APIs. Only 7-bit ASCII data is accepted. All "
"other codes generate errors."
msgstr ""
-#: c-api/unicode.rst:1418
+#: c-api/unicode.rst:1419
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 ""
-#: c-api/unicode.rst:1424
+#: c-api/unicode.rst:1425
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 ""
-#: c-api/unicode.rst:1431
+#: c-api/unicode.rst:1432
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 ""
-#: c-api/unicode.rst:1438
+#: c-api/unicode.rst:1439
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 ""
-#: c-api/unicode.rst:1442
+#: c-api/unicode.rst:1443
msgid "Character Map Codecs"
msgstr ""
-#: c-api/unicode.rst:1444
+#: c-api/unicode.rst:1445
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 "
-"codecs included in the :mod:`encodings` package). The codec uses mapping to "
+"codecs included in the :mod:`encodings` package). The codec uses mappings to "
"encode and decode characters. The mapping objects provided must support "
"the :meth:`__getitem__` mapping interface; dictionaries and sequences work "
"well."
msgstr ""
-#: c-api/unicode.rst:1450
+#: c-api/unicode.rst:1451
msgid "These are the mapping codec APIs:"
msgstr ""
-#: c-api/unicode.rst:1455
+#: c-api/unicode.rst:1456
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 ""
-#: c-api/unicode.rst:1459
+#: c-api/unicode.rst:1460
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 "
@@ -1676,14 +1716,14 @@ msgid ""
"treated as undefined mappings and cause an error."
msgstr ""
-#: c-api/unicode.rst:1470
+#: c-api/unicode.rst:1471
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 ""
-#: c-api/unicode.rst:1474
+#: c-api/unicode.rst:1475
msgid ""
"The *mapping* object must map Unicode ordinal integers to bytes objects, "
"integers in the range from 0 to 255 or ``None``. Unmapped character "
@@ -1691,68 +1731,68 @@ msgid ""
"``None`` are treated as \"undefined mapping\" and cause an error."
msgstr ""
-#: c-api/unicode.rst:1483
+#: c-api/unicode.rst:1484
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 ""
-#: c-api/unicode.rst:1490
+#: c-api/unicode.rst:1491
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 ""
-#: c-api/unicode.rst:1493
+#: c-api/unicode.rst:1494
msgid "The following codec API is special in that maps Unicode to Unicode."
msgstr ""
-#: c-api/unicode.rst:1497
+#: c-api/unicode.rst:1498
msgid ""
"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 ""
-#: c-api/unicode.rst:1501
+#: c-api/unicode.rst:1502
msgid ""
"The mapping table must map Unicode ordinal integers to Unicode ordinal "
"integers or ``None`` (causing deletion of the character)."
msgstr ""
-#: c-api/unicode.rst:1504
+#: c-api/unicode.rst:1505
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 ""
-#: c-api/unicode.rst:1508
+#: c-api/unicode.rst:1509
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:1515
+#: c-api/unicode.rst:1516
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 ""
-#: c-api/unicode.rst:1522
+#: c-api/unicode.rst:1523
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 ""
-#: c-api/unicode.rst:1526
+#: c-api/unicode.rst:1527
msgid "MBCS codecs for Windows"
msgstr ""
-#: c-api/unicode.rst:1528
+#: c-api/unicode.rst:1529
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 "
@@ -1760,13 +1800,13 @@ msgid ""
"is defined by the user settings on the machine running the codec."
msgstr ""
-#: c-api/unicode.rst:1535
+#: c-api/unicode.rst:1536
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 ""
-#: c-api/unicode.rst:1542
+#: c-api/unicode.rst:1543
msgid ""
"If *consumed* is ``NULL``, behave like :c:func:`PyUnicode_DecodeMBCS`. If "
"*consumed* is not ``NULL``, :c:func:`PyUnicode_DecodeMBCSStateful` will not "
@@ -1774,58 +1814,58 @@ msgid ""
"will be stored in *consumed*."
msgstr ""
-#: c-api/unicode.rst:1550
+#: c-api/unicode.rst:1551
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 ""
-#: c-api/unicode.rst:1557
+#: c-api/unicode.rst:1558
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 ""
-#: c-api/unicode.rst:1566
+#: c-api/unicode.rst:1567
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 ""
-#: c-api/unicode.rst:1573
+#: c-api/unicode.rst:1574
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 ""
-#: c-api/unicode.rst:1577
+#: c-api/unicode.rst:1578
msgid "Methods & Slots"
msgstr ""
-#: c-api/unicode.rst:1583
+#: c-api/unicode.rst:1584
msgid "Methods and Slot Functions"
msgstr ""
-#: c-api/unicode.rst:1585
+#: c-api/unicode.rst:1586
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 ""
-#: c-api/unicode.rst:1589
+#: c-api/unicode.rst:1590
msgid "They all return ``NULL`` or ``-1`` if an exception occurs."
msgstr ""
-#: c-api/unicode.rst:1594
+#: c-api/unicode.rst:1595
msgid "Concat two strings giving a new Unicode string."
msgstr ""
-#: c-api/unicode.rst:1599
+#: c-api/unicode.rst:1600
msgid ""
"Split a string giving a list of Unicode strings. If *sep* is ``NULL``, "
"splitting will be done at all whitespace substrings. Otherwise, splits "
@@ -1834,27 +1874,27 @@ msgid ""
"list."
msgstr ""
-#: c-api/unicode.rst:1607
+#: c-api/unicode.rst:1608
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 "
+"CRLF is considered to be one line break. If *keepend* is ``0``, the line "
"break characters are not included in the resulting strings."
msgstr ""
-#: c-api/unicode.rst:1614
+#: c-api/unicode.rst:1615
msgid ""
"Join a sequence of strings using the given *separator* and return the "
"resulting Unicode string."
msgstr ""
-#: c-api/unicode.rst:1621
+#: c-api/unicode.rst:1622
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 ""
-#: c-api/unicode.rst:1629
+#: c-api/unicode.rst:1630
msgid ""
"Return the first position of *substr* in ``str[start:end]`` using the given "
"*direction* (*direction* == ``1`` means to do a forward search, *direction* "
@@ -1863,7 +1903,7 @@ msgid ""
"indicates that an error occurred and an exception has been set."
msgstr ""
-#: c-api/unicode.rst:1639
+#: c-api/unicode.rst:1640
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, "
@@ -1872,36 +1912,36 @@ msgid ""
"``-2`` indicates that an error occurred and an exception has been set."
msgstr ""
-#: c-api/unicode.rst:1647
+#: c-api/unicode.rst:1648
msgid "*start* and *end* are now adjusted to behave like ``str[start:end]``."
msgstr ""
-#: c-api/unicode.rst:1654
+#: c-api/unicode.rst:1655
msgid ""
"Return the number of non-overlapping occurrences of *substr* in ``str[start:"
"end]``. Return ``-1`` if an error occurred."
msgstr ""
-#: c-api/unicode.rst:1661
+#: c-api/unicode.rst:1662
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 ""
-#: c-api/unicode.rst:1668
+#: c-api/unicode.rst:1669
msgid ""
"Compare two strings and return ``-1``, ``0``, ``1`` for less than, equal, "
"and greater than, respectively."
msgstr ""
-#: c-api/unicode.rst:1671
+#: c-api/unicode.rst:1672
msgid ""
"This function returns ``-1`` upon failure, so one should call :c:func:"
"`PyErr_Occurred` to check for errors."
msgstr ""
-#: c-api/unicode.rst:1677
+#: c-api/unicode.rst:1678
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 "
@@ -1909,56 +1949,56 @@ msgid ""
"string as ISO-8859-1 if it contains non-ASCII characters."
msgstr ""
-#: c-api/unicode.rst:1682
+#: c-api/unicode.rst:1683
msgid "This function does not raise exceptions."
msgstr ""
-#: c-api/unicode.rst:1687
+#: c-api/unicode.rst:1688
msgid "Rich compare two Unicode strings and return one of the following:"
msgstr ""
-#: c-api/unicode.rst:1689
+#: c-api/unicode.rst:1690
msgid "``NULL`` in case an exception was raised"
msgstr ""
-#: c-api/unicode.rst:1690
+#: c-api/unicode.rst:1691
msgid ":const:`Py_True` or :const:`Py_False` for successful comparisons"
msgstr ""
-#: c-api/unicode.rst:1691
+#: c-api/unicode.rst:1692
msgid ":const:`Py_NotImplemented` in case the type combination is unknown"
msgstr ""
-#: c-api/unicode.rst:1693
+#: c-api/unicode.rst:1694
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 ""
-#: c-api/unicode.rst:1699
+#: c-api/unicode.rst:1700
msgid ""
"Return a new string object from *format* and *args*; this is analogous to "
"``format % args``."
msgstr ""
-#: c-api/unicode.rst:1705
+#: c-api/unicode.rst:1706
msgid ""
"Check whether *element* is contained in *container* and return true or false "
"accordingly."
msgstr ""
-#: c-api/unicode.rst:1708
+#: c-api/unicode.rst:1709
msgid ""
"*element* has to coerce to a one element Unicode string. ``-1`` is returned "
"if there was an error."
msgstr ""
-#: c-api/unicode.rst:1714
+#: c-api/unicode.rst:1715
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 "
@@ -1966,7 +2006,7 @@ msgid ""
"the object after the call if and only if you owned it before the call.)"
msgstr ""
-#: c-api/unicode.rst:1727
+#: c-api/unicode.rst:1728
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 243e2dc615..93c436db1b 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: 2021-09-23 16:16+0200\n"
+"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: FRENCH \n"
@@ -35,12 +35,12 @@ msgstr ""
#: 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:"
+"Note also that several of these functions take :c:expr:`FILE*` parameters. "
+"One particular issue which needs to be handled carefully is that the :c:expr:"
"`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 "
+"taken that :c:expr:`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 ""
@@ -94,16 +94,17 @@ msgid ""
"`PyRun_InteractiveLoop`, otherwise return the result of :c:func:"
"`PyRun_SimpleFile`. *filename* is decoded from the filesystem encoding (:"
"func:`sys.getfilesystemencoding`). If *filename* is ``NULL``, this function "
-"uses ``\"???\"`` as the filename."
+"uses ``\"???\"`` as the filename. If *closeit* is true, the file is closed "
+"before ``PyRun_SimpleFileExFlags()`` returns."
msgstr ""
-#: c-api/veryhigh.rst:82
+#: c-api/veryhigh.rst:84
msgid ""
"This is a simplified interface to :c:func:`PyRun_SimpleStringFlags` below, "
-"leaving the :c:type:`PyCompilerFlags`\\* argument set to ``NULL``."
+"leaving the :c:struct:`PyCompilerFlags`\\* argument set to ``NULL``."
msgstr ""
-#: c-api/veryhigh.rst:88
+#: c-api/veryhigh.rst:90
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 +113,26 @@ msgid ""
"information. For the meaning of *flags*, see below."
msgstr ""
-#: c-api/veryhigh.rst:94
+#: c-api/veryhigh.rst:96
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 ""
-#: c-api/veryhigh.rst:101
+#: c-api/veryhigh.rst:103
msgid ""
"This is a simplified interface to :c:func:`PyRun_SimpleFileExFlags` below, "
"leaving *closeit* set to ``0`` and *flags* set to ``NULL``."
msgstr ""
-#: c-api/veryhigh.rst:107
+#: c-api/veryhigh.rst:109
msgid ""
"This is a simplified interface to :c:func:`PyRun_SimpleFileExFlags` below, "
"leaving *flags* set to ``NULL``."
msgstr ""
-#: c-api/veryhigh.rst:113
+#: c-api/veryhigh.rst:115
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 +141,20 @@ msgid ""
"``PyRun_SimpleFileExFlags()`` returns."
msgstr ""
-#: c-api/veryhigh.rst:120
+#: c-api/veryhigh.rst:122
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 ""
-#: c-api/veryhigh.rst:126
+#: c-api/veryhigh.rst:128
msgid ""
"This is a simplified interface to :c:func:`PyRun_InteractiveOneFlags` below, "
"leaving *flags* set to ``NULL``."
msgstr ""
-#: c-api/veryhigh.rst:132
+#: c-api/veryhigh.rst:134
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 +162,7 @@ msgid ""
"term:`filesystem encoding and error handler`."
msgstr ""
-#: c-api/veryhigh.rst:137
+#: c-api/veryhigh.rst:139
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 +171,13 @@ msgid ""
"specifically if needed.)"
msgstr ""
-#: c-api/veryhigh.rst:146
+#: c-api/veryhigh.rst:148
msgid ""
"This is a simplified interface to :c:func:`PyRun_InteractiveLoopFlags` "
"below, leaving *flags* set to ``NULL``."
msgstr ""
-#: c-api/veryhigh.rst:152
+#: c-api/veryhigh.rst:154
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`` "
@@ -184,7 +185,7 @@ msgid ""
"and error handler`. Returns ``0`` at EOF or a negative number upon failure."
msgstr ""
-#: c-api/veryhigh.rst:160
+#: c-api/veryhigh.rst:162
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 "
@@ -194,7 +195,7 @@ msgid ""
"the Python source code."
msgstr ""
-#: c-api/veryhigh.rst:171
+#: c-api/veryhigh.rst:173
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 "
@@ -205,26 +206,26 @@ msgid ""
"line-editing and tab-completion features."
msgstr ""
-#: c-api/veryhigh.rst:180
+#: c-api/veryhigh.rst:182
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 ""
-#: c-api/veryhigh.rst:183
+#: c-api/veryhigh.rst:185
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 ""
-#: c-api/veryhigh.rst:190
+#: c-api/veryhigh.rst:192
msgid ""
"This is a simplified interface to :c:func:`PyRun_StringFlags` below, leaving "
"*flags* set to ``NULL``."
msgstr ""
-#: c-api/veryhigh.rst:196
+#: c-api/veryhigh.rst:198
msgid ""
"Execute Python source code from *str* in the context specified by the "
"objects *globals* and *locals* with the compiler flags specified by "
@@ -233,31 +234,31 @@ msgid ""
"token that should be used to parse the source code."
msgstr ""
-#: c-api/veryhigh.rst:202
+#: c-api/veryhigh.rst:204
msgid ""
"Returns the result of executing the code as a Python object, or ``NULL`` if "
"an exception was raised."
msgstr ""
-#: c-api/veryhigh.rst:208
+#: c-api/veryhigh.rst:210
msgid ""
"This is a simplified interface to :c:func:`PyRun_FileExFlags` below, leaving "
"*closeit* set to ``0`` and *flags* set to ``NULL``."
msgstr ""
-#: c-api/veryhigh.rst:214
+#: c-api/veryhigh.rst:216
msgid ""
"This is a simplified interface to :c:func:`PyRun_FileExFlags` below, leaving "
"*flags* set to ``NULL``."
msgstr ""
-#: c-api/veryhigh.rst:220
+#: c-api/veryhigh.rst:222
msgid ""
"This is a simplified interface to :c:func:`PyRun_FileExFlags` below, leaving "
"*closeit* set to ``0``."
msgstr ""
-#: c-api/veryhigh.rst:226
+#: c-api/veryhigh.rst:228
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 "
@@ -266,19 +267,19 @@ msgid ""
"`PyRun_FileExFlags` returns."
msgstr ""
-#: c-api/veryhigh.rst:235
+#: c-api/veryhigh.rst:237
msgid ""
"This is a simplified interface to :c:func:`Py_CompileStringFlags` below, "
"leaving *flags* set to ``NULL``."
msgstr ""
-#: c-api/veryhigh.rst:241
+#: c-api/veryhigh.rst:243
msgid ""
"This is a simplified interface to :c:func:`Py_CompileStringExFlags` below, "
"with *optimize* set to ``-1``."
msgstr ""
-#: c-api/veryhigh.rst:247
+#: c-api/veryhigh.rst:249
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 "
@@ -289,7 +290,7 @@ msgid ""
"returns ``NULL`` if the code cannot be parsed or compiled."
msgstr ""
-#: c-api/veryhigh.rst:255
+#: c-api/veryhigh.rst:257
msgid ""
"The integer *optimize* specifies the optimization level of the compiler; a "
"value of ``-1`` selects the optimization level of the interpreter as given "
@@ -298,20 +299,20 @@ msgid ""
"or ``2`` (docstrings are removed too)."
msgstr ""
-#: c-api/veryhigh.rst:266
+#: c-api/veryhigh.rst:268
msgid ""
"Like :c:func:`Py_CompileStringObject`, but *filename* is a byte string "
"decoded from the :term:`filesystem encoding and error handler`."
msgstr ""
-#: c-api/veryhigh.rst:273
+#: c-api/veryhigh.rst:275
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 ""
-#: c-api/veryhigh.rst:280
+#: c-api/veryhigh.rst:282
msgid ""
"Evaluate a precompiled code object, given a particular environment for its "
"evaluation. This environment consists of a dictionary of global variables, "
@@ -320,7 +321,7 @@ msgid ""
"only_parameter>` arguments and a closure tuple of cells."
msgstr ""
-#: c-api/veryhigh.rst:289
+#: c-api/veryhigh.rst:291
#, fuzzy
msgid ""
"The C structure of the objects used to describe frame objects. The fields of "
@@ -329,13 +330,13 @@ msgstr ""
"La structure C utilisée pour décrire les objets *Code*. Les attributs de "
"cette structure sont sujets à changer à tout moment."
-#: c-api/veryhigh.rst:295
+#: c-api/veryhigh.rst:297
msgid ""
"Evaluate an execution frame. This is a simplified interface to :c:func:"
"`PyEval_EvalFrameEx`, for backward compatibility."
msgstr ""
-#: c-api/veryhigh.rst:301
+#: c-api/veryhigh.rst:303
msgid ""
"This is the main, unvarnished function of Python interpretation. The code "
"object associated with the execution frame *f* is executed, interpreting "
@@ -345,7 +346,7 @@ msgid ""
"of generator objects."
msgstr ""
-#: c-api/veryhigh.rst:308
+#: c-api/veryhigh.rst:310
msgid ""
"This function now includes a debug assertion to help ensure that it does not "
"silently discard an active exception."
@@ -353,33 +354,33 @@ msgstr ""
"Cette fonction inclut maintenant une assertion de débogage afin d'assurer "
"qu'elle ne passe pas sous silence une exception active."
-#: c-api/veryhigh.rst:315
+#: c-api/veryhigh.rst:317
msgid ""
"This function changes the flags of the current evaluation frame, and returns "
"true on success, false on failure."
msgstr ""
-#: c-api/veryhigh.rst:323
+#: c-api/veryhigh.rst:325
msgid ""
"The start symbol from the Python grammar for isolated expressions; for use "
"with :c:func:`Py_CompileString`."
msgstr ""
-#: c-api/veryhigh.rst:331
+#: c-api/veryhigh.rst:333
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 ""
-#: c-api/veryhigh.rst:340
+#: c-api/veryhigh.rst:342
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 ""
-#: c-api/veryhigh.rst:347
+#: c-api/veryhigh.rst:349
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 "
@@ -387,34 +388,34 @@ msgid ""
"case, ``from __future__ import`` can modify *flags*."
msgstr ""
-#: c-api/veryhigh.rst:352
+#: c-api/veryhigh.rst:354
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 ""
-#: c-api/veryhigh.rst:358
+#: c-api/veryhigh.rst:360
msgid "Compiler flags."
msgstr ""
-#: c-api/veryhigh.rst:362
+#: c-api/veryhigh.rst:364
msgid ""
"*cf_feature_version* is the minor Python version. It should be initialized "
"to ``PY_MINOR_VERSION``."
msgstr ""
-#: c-api/veryhigh.rst:365
+#: c-api/veryhigh.rst:367
msgid ""
"The field is ignored by default, it is used if and only if ``PyCF_ONLY_AST`` "
"flag is set in *cf_flags*."
msgstr ""
-#: c-api/veryhigh.rst:368
+#: c-api/veryhigh.rst:370
msgid "Added *cf_feature_version* field."
msgstr ""
-#: c-api/veryhigh.rst:374
+#: c-api/veryhigh.rst:376
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/c-api/weakref.po b/c-api/weakref.po
index e110ae1742..c87980a274 100644
--- a/c-api/weakref.po
+++ b/c-api/weakref.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-09-23 16:16+0200\n"
+"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2021-12-16 17:25+0100\n"
"Last-Translator: Andy Kwok \n"
"Language-Team: FRENCH \n"
@@ -58,7 +58,7 @@ msgid ""
"a callable object that receives notification when *ob* is garbage collected; "
"it should accept a single parameter, which will be the weak reference object "
"itself. *callback* may also be ``None`` or ``NULL``. If *ob* is not a "
-"weakly-referencable object, or if *callback* is not callable, ``None``, or "
+"weakly referencable object, or if *callback* is not callable, ``None``, or "
"``NULL``, this will return ``NULL`` and raise :exc:`TypeError`."
msgstr ""
"Retourne un objet de référence faible pour l'objet *ob*. Elle renvoie "
@@ -81,7 +81,7 @@ msgid ""
"can be a callable object that receives notification when *ob* is garbage "
"collected; it should accept a single parameter, which will be the weak "
"reference object itself. *callback* may also be ``None`` or ``NULL``. If "
-"*ob* is not a weakly-referencable object, or if *callback* is not callable, "
+"*ob* is not a weakly referencable object, or if *callback* is not callable, "
"``None``, or ``NULL``, this will return ``NULL`` and raise :exc:`TypeError`."
msgstr ""
"Retourne un objet mandataire à référence faible pour l'objet *ob*. Ceci "
diff --git a/copyright.po b/copyright.po
index 96aaceeadc..0876ef0034 100644
--- a/copyright.po
+++ b/copyright.po
@@ -5,15 +5,15 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-01-27 19:26+0100\n"
-"PO-Revision-Date: 2021-01-28 14:22+0100\n"
-"Last-Translator: Jules Lasne \n"
+"POT-Creation-Date: 2023-03-22 22:57+0100\n"
+"PO-Revision-Date: 2022-04-07 14:48-0400\n"
+"Last-Translator: Jean-Michel Laprise \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.4.2\n"
+"X-Generator: Poedit 3.0.1\n"
#: copyright.rst:3
msgid "Copyright"
@@ -24,9 +24,10 @@ msgid "Python and this documentation is:"
msgstr "Python et cette documentation sont :"
#: copyright.rst:7
-msgid "Copyright © 2001-2021 Python Software Foundation. All rights reserved."
+#, fuzzy
+msgid "Copyright © 2001-2023 Python Software Foundation. All rights reserved."
msgstr ""
-"Copyright © 2001-2021 Python Software Foundation. Tous droits réservés."
+"Copyright © 2001-2022 Python Software Foundation. Tous droits réservés."
#: copyright.rst:9
msgid "Copyright © 2000 BeOpen.com. All rights reserved."
diff --git a/dict b/dict
index 618f9089c9..e577577936 100644
--- a/dict
+++ b/dict
@@ -25,6 +25,7 @@ c99
chacha20
cadriciel
cadriciels
+capturants
catucci
cobjects
composabilité
@@ -36,6 +37,7 @@ contribués
coroutine
coroutines
cpython
+CSV
curryfication
cython
d'allocateurs
@@ -66,6 +68,7 @@ désérialisées
Distutils
encodable
ethnomathématiques
+Excel
farrugia
finaliseur
frederik
diff --git a/distutils/apiref.po b/distutils/apiref.po
index 03cc69f0f0..09b0fad9c7 100644
--- a/distutils/apiref.po
+++ b/distutils/apiref.po
@@ -5,8 +5,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-09-23 16:16+0200\n"
-"PO-Revision-Date: 2021-12-11 12:30+0100\n"
+"POT-Creation-Date: 2022-10-18 15:46+0200\n"
+"PO-Revision-Date: 2022-10-18 12:23+0200\n"
"Last-Translator: Jules Lasne \n"
"Language-Team: FRENCH \n"
"Language: fr\n"
@@ -1369,8 +1369,8 @@ msgid ""
"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 "
@@ -2143,10 +2143,11 @@ msgid ""
msgstr ""
"Pour AIX, à partir de Python 3.9, une chaîne de caractères est renvoyée "
"commençant par ``aix``, puis des champs additionnels (séparés par ``'-'``) "
-"qui représentent les valeurs combinées de `AIX Version`, `Release and "
-"Technology Level` (premier champ), `Build Date` (deuxième champ) et taille "
-"en bits (troisième champ). En Python 3.8 et avant, seul un champ additionnel "
-"avec la version d'AIX et la `Release` étaient renvoyés."
+"qui représentent les valeurs combinées de la version d'AIX accompagnée du "
+"numéro de publication et du « niveau de technologie » (premier champ), la "
+"date de la version (deuxième champ), et taille en bits (troisième champ). En "
+"Python 3.8 et avant, seul un champ additionnel avec la version d'AIX et le "
+"numéro de publication étaient renvoyés."
#: distutils/apiref.rst:1151
msgid "Examples of returned values on AIX:"
@@ -2252,8 +2253,9 @@ msgstr ""
"environ``."
#: distutils/apiref.rst:1201
+#, fuzzy
msgid ""
-"Note that this is not a fully-fledged string interpolation function. A valid "
+"Note that this is not a full-fledged string interpolation function. A valid "
"``$variable`` can consist only of upper and lower case letters, numbers and "
"an underscore. No { } or ( ) style quoting is available."
msgstr ""
@@ -2554,7 +2556,7 @@ msgid ""
"a corresponding *short_option*. All option tuples must have long options."
msgstr ""
"Si une option prend un argument, sa *long_option* doit se terminer par "
-"``'='``. *short_option* doit être un seul caractère, jamais ``':'`'. "
+"``'='``. *short_option* doit être un seul caractère, jamais ``':'``. "
"*short_option* doit être ``None`` si l'option n'a pas de forme courte "
"correspondante. Tous les triplets d'options doivent avoir des options "
"longues."
diff --git a/distutils/builtdist.po b/distutils/builtdist.po
index 3596c6fa56..83ffe935bf 100644
--- a/distutils/builtdist.po
+++ b/distutils/builtdist.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-09-23 16:16+0200\n"
+"POT-Creation-Date: 2022-04-05 10:05+0200\n"
"PO-Revision-Date: 2021-12-11 12:33+0100\n"
"Last-Translator: Jules Lasne \n"
"Language-Team: FRENCH \n"
@@ -39,12 +39,12 @@ 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 sûrement 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)."
+"Une \"distribution compilée\" vous fait sûrement 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 ""
@@ -324,12 +324,12 @@ msgstr ""
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 "
@@ -371,11 +371,11 @@ msgstr ":command:`bdist_msi`"
#: distutils/builtdist.rst:141
msgid "msi"
-msgstr "`msi`"
+msgstr "msi"
#: distutils/builtdist.rst:145
msgid "bdist_msi is deprecated since Python 3.9."
-msgstr "`bdist_msi` est obsolète depuis Python 3.9."
+msgstr "``bdist_msi`` est obsolète depuis Python 3.9."
#: distutils/builtdist.rst:147
msgid ""
diff --git a/distutils/introduction.po b/distutils/introduction.po
index 552c200e83..69e6b28596 100644
--- a/distutils/introduction.po
+++ b/distutils/introduction.po
@@ -5,8 +5,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-09-23 16:16+0200\n"
-"PO-Revision-Date: 2021-12-11 12:42+0100\n"
+"POT-Creation-Date: 2022-03-18 17:06+0100\n"
+"PO-Revision-Date: 2022-10-18 12:31+0200\n"
"Last-Translator: Eric Régnier \n"
"Language-Team: FRENCH \n"
"Language: fr\n"
@@ -119,7 +119,7 @@ msgstr ""
"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. "
+"de la compilation et de l'installation du module."
#: distutils/introduction.rst:58
msgid ""
@@ -150,7 +150,7 @@ msgid ""
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) ; "
+"(une liste de purs modules Python, dans ce cas) ;"
#: distutils/introduction.rst:76
msgid ""
@@ -325,13 +325,13 @@ 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++)."
+"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++)."
#: distutils/introduction.rst:164
msgid "package"
diff --git a/distutils/setupscript.po b/distutils/setupscript.po
index 786606337d..5bbe202dcf 100644
--- a/distutils/setupscript.po
+++ b/distutils/setupscript.po
@@ -5,8 +5,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-10-01 16:00+0200\n"
-"PO-Revision-Date: 2021-12-11 12:42+0100\n"
+"POT-Creation-Date: 2022-04-05 10:05+0200\n"
+"PO-Revision-Date: 2022-10-18 16:06+0200\n"
"Last-Translator: Philippe GALVAN\n"
"Language-Team: FRENCH \n"
"Language: fr\n"
@@ -894,7 +894,7 @@ msgstr ""
"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`."
+"contenir des motifs ``glob``."
#: distutils/setupscript.rst:484
msgid ""
@@ -983,7 +983,7 @@ msgstr ""
"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 "
+"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é."
diff --git a/distutils/sourcedist.po b/distutils/sourcedist.po
index 12fb52c4f9..53dcefd230 100644
--- a/distutils/sourcedist.po
+++ b/distutils/sourcedist.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-12-31 11:33+0100\n"
+"POT-Creation-Date: 2022-04-05 10:05+0200\n"
"PO-Revision-Date: 2020-02-04 21:21+0100\n"
"Last-Translator: ZepmanBC \n"
"Language-Team: FRENCH \n"
@@ -112,7 +112,7 @@ msgstr "Fichier *tar* compressé par *bzip2* (:file:`.tar.bz2`)"
#: distutils/sourcedist.rst:37 distutils/sourcedist.rst:43
msgid "\\(5)"
-msgstr ""
+msgstr "\\(5)"
#: distutils/sourcedist.rst:37
msgid "``xztar``"
diff --git a/extending/building.po b/extending/building.po
index 3b85e33cd3..2da87acee9 100644
--- a/extending/building.po
+++ b/extending/building.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-08-24 09:01+0200\n"
+"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2021-12-11 12:46+0100\n"
"Last-Translator: Julien Palard \n"
"Language-Team: FRENCH \n"
@@ -44,8 +44,9 @@ msgid "The initialization function has the signature:"
msgstr "La fonction d'initialisation doit avoir le prototype :"
#: extending/building.rst:20
+#, fuzzy
msgid ""
-"It returns either a fully-initialized module, or a :c:type:`PyModuleDef` "
+"It returns either a fully initialized module, or a :c:type:`PyModuleDef` "
"instance. See :ref:`initializing-modules` for details."
msgstr ""
"Elle doit donner soit un module entièrement initialisé, soit une instance "
diff --git a/extending/embedding.po b/extending/embedding.po
index 6051d35c42..1256471a6c 100644
--- a/extending/embedding.po
+++ b/extending/embedding.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-08-24 09:01+0200\n"
+"POT-Creation-Date: 2023-03-22 22:57+0100\n"
"PO-Revision-Date: 2019-12-25 17:24+0100\n"
"Last-Translator: Antoine \n"
"Language-Team: FRENCH \n"
@@ -422,11 +422,11 @@ msgstr ""
#: extending/embedding.rst:304
msgid ""
-"``pythonX.Y-config --ldflags`` will give you the recommended flags when "
-"linking:"
+"``pythonX.Y-config --ldflags --embed`` will give you the recommended flags "
+"when linking:"
msgstr ""
-"``pythonX.Y-config --ldflags`` vous donnera les drapeaux recommandés lors de "
-"l'édition de lien :"
+"``pythonX.Y-config --ldflags --embed`` vous donnera les drapeaux recommandés "
+"lors de l'édition de lien :"
#: extending/embedding.rst:313
msgid ""
diff --git a/extending/extending.po b/extending/extending.po
index 43dec4079f..2bada8abf1 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: 2021-11-27 10:27+0100\n"
+"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2021-12-11 12:50+0100\n"
"Last-Translator: Julien Palard \n"
"Language-Team: FRENCH \n"
@@ -143,19 +143,19 @@ msgstr ""
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."
#: extending/extending.rst:83
msgid ""
@@ -311,14 +311,13 @@ msgstr ""
msgid ""
"When a function *f* that calls another function *g* detects that the latter "
"fails, *f* should itself return an error value (usually ``NULL`` or "
-"``-1``). It should *not* call one of the :c:func:`PyErr_\\*` functions --- "
-"one has already been called by *g*. *f*'s caller is then supposed to also "
-"return an error indication to *its* caller, again *without* calling :c:func:"
-"`PyErr_\\*`, and so on --- the most detailed cause of the error was already "
-"reported by the function that first detected it. Once the error reaches the "
-"Python interpreter's main loop, this aborts the currently executing Python "
-"code and tries to find an exception handler specified by the Python "
-"programmer."
+"``-1``). It should *not* call one of the ``PyErr_*`` functions --- one has "
+"already been called by *g*. *f*'s caller is then supposed to also return an "
+"error indication to *its* caller, again *without* calling ``PyErr_*``, and "
+"so on --- the most detailed cause of the error was already reported by the "
+"function that first detected it. Once the error reaches the Python "
+"interpreter's main loop, this aborts the currently executing Python code and "
+"tries to find an exception handler specified by the Python programmer."
msgstr ""
"Lorsqu'une fonction *f* ayant appelé une autre fonction *g* détecte que "
"cette dernière a échoué, *f* devrait donner une valeur d'erreur à son tour "
@@ -333,12 +332,13 @@ msgstr ""
"d'exception spécifié par le développeur Python."
#: extending/extending.rst:168
+#, fuzzy
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 "
-"it is fine to do so. As a general rule, however, this is not necessary, and "
-"can cause information about the cause of the error to be lost: most "
-"operations can fail for a variety of reasons.)"
+"message by calling another ``PyErr_*`` function, and in such cases it is "
+"fine to do so. As a general rule, however, this is not necessary, and can "
+"cause information about the cause of the error to be lost: most operations "
+"can fail for a variety of reasons.)"
msgstr ""
"(Il y a des situations où un module peut effectivement donner un message "
"d'erreur plus détaillé en appelant une autre fonction :c:func:`PyErr_\\*`, "
@@ -543,9 +543,10 @@ msgstr ""
"objets dans le tas en Python !)"
#: extending/extending.rst:300
+#, fuzzy
msgid ""
"If you have a C function that returns no useful argument (a function "
-"returning :c:type:`void`), the corresponding Python function must return "
+"returning :c:expr:`void`), the corresponding Python function must return "
"``None``. You need this idiom to do so (which is implemented by the :c:"
"macro:`Py_RETURN_NONE` macro)::"
msgstr ""
@@ -1615,7 +1616,7 @@ msgstr ""
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 "
-"data type which stores a pointer (:c:type:`void \\*`). Capsules can only be "
+"data type which stores a pointer (:c:expr:`void \\*`). Capsules can only be "
"created and accessed via their C API, but they can be passed around like any "
"other Python object. In particular, they can be assigned to a name in an "
"extension module's namespace. Other extension modules can then import this "
@@ -1644,7 +1645,7 @@ msgstr ""
#, fuzzy
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 "
+"The function :c:func:`PyCapsule_New` takes a name parameter (:c:expr:`const "
"char \\*`); you're permitted to pass in a ``NULL`` name, but we strongly "
"encourage you to specify a name. Properly named Capsules provide a degree "
"of runtime type-safety; there is no feasible way to tell one unnamed Capsule "
@@ -1679,11 +1680,12 @@ msgstr ""
"chargent contient l'API C correcte."
#: extending/extending.rst:1203
+#, fuzzy
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 "
"used library modules. It stores all C API pointers (just one in the "
-"example!) in an array of :c:type:`void` pointers which becomes the value of "
+"example!) in an array of :c:expr:`void` pointers which becomes the value of "
"a Capsule. The header file corresponding to the module provides a macro that "
"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."
@@ -1750,7 +1752,7 @@ msgid ""
"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 !"
+"pointeurs disparaîtrait lorsque :func:`PyInit_spam` se finit !"
#: extending/extending.rst:1283
msgid ""
diff --git a/extending/index.po b/extending/index.po
index 0faebfbcd0..2369e90cc8 100644
--- a/extending/index.po
+++ b/extending/index.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-08-24 09:01+0200\n"
+"POT-Creation-Date: 2022-10-18 15:46+0200\n"
"PO-Revision-Date: 2018-07-04 11:38+0200\n"
"Last-Translator: Julien Palard